|
|
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 |
- ********************************************************************************
: {& B9 Z$ h/ d: F" I1 Q - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
3 }9 X& |: {* N! t6 a* Z! L - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
- Y1 V- [4 i# B! e4 F - * Suu tam & Soan *
X S8 N2 ? P' j, o% ~ - ********************************************************************************5 a) X" ?2 @" M+ v9 Z' A5 N. r
& c: g5 P5 b- F8 U: D' q$ W7 J3 A- ; Next available MSG number is 104* x' |8 U t' ?4 i
- ; MODULE_ID ACAD2000doc_LSP_0 [4 n9 Y3 {& d' n
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
# Q# ^2 y' N; k - ;;;4 g) c5 U. o, F. ^4 l- Z" P$ H- T/ @3 ]
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.' B; X+ Z, e3 ]' T. n7 p% Y! \
- ;;;
$ }# v+ H/ R( T9 `2 B% G8 L* J - ;;; Permission to use, copy, modify, and distribute this software$ r" L W D# q- k9 I% Y/ w0 E
- ;;; for any purpose and without fee is hereby granted, provided
# c6 `3 a( S l4 r2 x - ;;; that the above copyright notice appears in all copies and: b& Q9 J9 v+ e" n% k; {! T
- ;;; that both that copyright notice and the limited warranty and
9 w C# v9 ~2 d5 U# z* K- t' ]. q# l - ;;; restricted rights notice below appear in all supporting) f% i/ s) D7 \! i, F6 A9 E/ h
- ;;; documentation.6 v) f5 B5 D) a
- ;;;
( k( S6 ^+ _: p - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
3 f2 O4 O ^0 m: K9 X: v0 K - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
; G4 [9 M7 A" R! Z, |$ {, w4 U - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.) y6 X9 h9 o' y
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
9 b) q Q: @, E2 r S - ;;; UNINTERRUPTED OR ERROR FREE.
2 F! M3 E0 U. e1 y. ?( c% {, Z - ;;;
3 [3 L5 h5 ?$ ^; ?' i3 J& J - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
' V/ r( F8 F' y7 o. o* @- B - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
; Y! l* R: \; K0 R' v2 j% p1 u# ]) o - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
# L& C0 G8 o+ j6 S4 x - ;;; (Rights in Technical Data and Computer Software), as applicable.
8 X2 l X0 c' A* r, m: Z' Q# L - ;;;
7 _' _6 O3 U5 n - ;;;.9 ^# w3 Q* w$ k( h2 \
- ;;;5 b7 B9 B7 w D, x; C
- ;;; Note:
% M$ y4 |$ F5 w' ?4 P - ;;; This file is loaded automatically by AutoCAD every time
& F7 v: y& l' c+ w - ;;; a drawing is opened. It establishes an autoloader and1 j3 n* _- Y) f
- ;;; other utility functions.
" c A9 N( X' B3 ~* B* I; L! | - ;;;, d7 r6 k; B) b! K; F& Z, p
- ;;; Globalization Note:
; ]5 m+ L" k, t - ;;; We do not support autoloading applications by the native + A5 [# J8 q8 k
- ;;; language command call (e.g. with the leading underscore: f A: D7 Y( A2 @" G
- ;;; mechanism.)
$ r/ x3 |, p( z. s$ w
+ L9 ^5 K& t9 p+ I: f# Y6 x2 P
6 g! I& f/ J- q2 Z- ;;;===== Raster Image Support for Clipboard Paste Special =====
6 j7 ?4 \. y, b9 Q( w5 X/ O - ;;3 k3 m3 R" D) h h# a5 N
- ;; IMAGEFILE& f: ^- W3 [. O9 J" Z
- ;;
; ~, J0 _ m N$ ^ - ;; Allow the IMAGE command to accept an image file name without% R" K1 w ?8 @7 e
- ;; presenting the file dialog, even if filedia is on.
% J3 o0 c2 O! z* D! k2 N4 w - ;; Example: (imagefile "c:/images/house.bmp")* b) P6 l: b+ D! C$ r
- ;;0 W! q) ^8 h! h$ [9 C
- (defun imagefile (filename / filedia-save cmdecho-save)$ J2 D- N# l! r( x9 ^
- (setq filedia-save (getvar "FILEDIA"))
6 l M2 p: Z4 l" [ - (setq cmdecho-save (getvar "CMDECHO"))
/ v0 m: A3 I+ P - (setvar "FILEDIA" 0)
5 E, w# v! \8 R$ u* @& b3 r - (setvar "CMDECHO" 0)
# J n8 l0 }, U* } - (command "_.-image" "_attach" filename)
" u' {% ^2 X/ Y5 P - (setvar "FILEDIA" filedia-save)
# u1 |$ Z* T( g2 { - (setvar "CMDECHO" cmdecho-save)2 ] u8 e+ _. g' |% O9 f' S6 z2 u
- (princ)
# i: U1 Q1 G) q - )5 p' c) s3 N$ f, G/ F, N, J# B. y
$ Q- z- _5 W7 X- (defun c:zx () (command "zoom" ".5x"))
8 s9 [, ^( A5 T0 S9 R( }6 s - (defun c:zz () (command "zoom" "p"))* n3 Y) o6 P; B" Z- ~5 }: o9 Z
- (defun c:za () (command "zoom" "a"))! B& N( l+ u( F: K& E! M
- (defun c:zd () (command "zoom" "d"))
/ M$ v+ E, I& p v - (defun c:ze () (command "zoom" "e")) {+ d8 e1 G0 @! a* A
- (defun c:zr () (command "zoom" "" ""))7 ~0 y, p7 |" V( M+ F" n/ a
- (defun c:vv () (command "ucs" "v"))' T2 j% o0 j: Z* u2 ^ i1 s! ]- D: }/ H
- (defun c:co () (ssget) (command "copy" "p" "" "m"))1 E1 `/ Q4 }. |3 `5 L0 }
- (defun c:c () (command "circle"))/ M. u) P. Y$ r
- (defun c:rt () (command "rotate"))0 o0 A9 G8 A/ J* q( c
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))5 t* y+ A7 m1 a
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
: n- x8 w) J) H - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))! a8 C9 G( }9 z7 o) M6 ?$ t
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))( V( f& O, ?' O* \
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))$ u6 U5 \, G! T* j6 S2 S
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
, M5 ?( q+ \* T# N" m7 t; K7 A4 w/ |$ W: K - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))/ l+ w' L* w8 F1 R5 y
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
- R1 y4 W& b- {% c2 v( G! T; V: Y - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))0 ^5 H) R' \9 k* L& I" L
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))2 y4 J* L# M3 f2 x" D7 S o
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
* ^3 z/ V- }$ R0 I8 n5 o - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
" P0 c* f: y2 Q0 b, Y& v; e - (defun c:fd () (command "find" "p" "" )(princ))(princ)
( ~6 v$ L& c0 \9 N - / p; s# z& L$ A/ C ~* q) Y4 n
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)3 `5 D/ ]: W( l# O2 k! \7 B
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
/ A, t) V8 I$ `& Q - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
/ G7 c5 ]0 m# D! x8 j4 ~" W - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)$ E( o" g5 x9 d* p5 k9 N2 Q% {
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))' ?- N" I) J# m
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))+ A/ C/ R( R4 O- E, w! H
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))" f7 O$ Z" d( w5 C
- & K. C1 B, _: B, n, E7 A7 {
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
; W F: f1 K% d4 b( S) w3 g5 a - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
2 W2 X; w" T$ E6 L }. W3 Y - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n")): Y. d8 p5 C! c2 m
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))2 x) f a' P( a, [0 k1 L
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
! e! a' E: K- X" N/ q( W - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
& B$ T% u- ]6 d* P
: W+ m; n0 x$ s/ o% f- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
2 b$ @8 U2 A' F) p - , _: L% o: l5 O% x" l
- ;free lisp by cadviet,cd2k44( C+ F+ X3 m. |, r8 \2 C! `
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830( Q+ Z+ @" T* S; Z5 J4 W$ g) S
- (defun c:FTEXT (/ ent tstyle )
7 o- x, ]0 _ V( Q - (command "undo" "be")
8 {; v( N+ p) Q( k - (setq ent (entsel "\n Pick text :")) ^' A7 K1 `5 P1 Z" X5 d. f5 a4 `
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
6 d7 J5 \( B% O4 G$ X O - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
; l# J" m1 q+ W" u5 Y5 k" ]* L - (setvar "TEXTSTYLE" Tstyle)0 X, }! `2 C. Z" X2 d7 o; M4 [. ]
- (command "undo" "end")
% n- o; y. N' i: t4 ~ - )6 h( J! N! Z& G' a
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)" P; R& | k+ N! X' u# o1 O
+ q, i5 a5 }' O ?* r0 G1 L R- ;free lisp by cadviet,cd2k44
% s: ^, v0 i6 K; C3 @0 e' e - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538301 I) N, p3 K7 P; A- M3 z
- (defun c:Fvnh (/ ent tstyle )0 b* @! W7 ]( {- v, W! J) y
- (command "undo" "be")3 r& p& V! S5 [
- (setq ent (entsel "\n Pick text :"))
2 \: B) A7 C e& W - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
. |* h$ n a5 J5 J/ u - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
# H( a9 K" B+ { b. P N - (setvar "TEXTSTYLE" Tstyle)( G; y. |* Q. H& ~/ I0 O* m
- (command "undo" "end")
: D/ P- r2 X+ g% Z - )$ }6 [- S0 ^0 l( q, b
W0 d) K$ p$ a, M- ;free lisp by cadviet,cd2k44' {/ t0 k# a b
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
! a/ \) C) O. N1 d+ L4 X3 I - (defun c:Chbg (/ ent tstyle ): J) O& x+ D. r! t! F1 [0 t
- (command "undo" "be")0 s. x$ s/ \+ E
- (setq ent (entsel "\n Pick text :"))# z3 u4 j) x0 ?6 U- v/ |0 ~
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
3 V5 y! o1 S1 e/ g7 v% M& Y - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")7 J2 E% g6 I- U" e! E
- (setvar "TEXTSTYLE" Tstyle)
" {9 G2 _7 G) Y - (command "undo" "end")
8 C; b [! o6 l; Q- o - )$ m4 v& E* U; ?+ Q4 c
- ; t! Q2 t1 l2 B, l
- ;free lisp by cadviet,cd2k44; T* e- Y" J+ D% w @
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
3 G! \) p1 B- i/ B - (defun c:Chsm (/ ent tstyle )' S/ R r# _: ]6 T2 c; g
- (command "undo" "be")
, f( [+ S- K! n+ c$ Y - (setq ent (entsel "\n Pick text :")): d, `) L; ?9 J, P
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))) e+ ~: j8 ]/ N1 c& ?: Y) j
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")/ u' k8 ~0 s& F3 z- f( q
- (setvar "TEXTSTYLE" Tstyle)/ o9 X+ `3 e; f6 U" E( B( S
- (command "undo" "end"); P2 Z1 _ o9 M' L. ]0 ~
- )$ b& C- E4 D, f! S. u8 o8 h# T# h+ H
+ Y, X/ |5 a- A( @) p- ;free lisp by cadviet,cd2k443 T+ K+ C) E3 i" [( S
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830. x/ Q% _/ r9 x2 H
- (defun c:Fttf (/ ent tstyle )1 n3 A h. w6 K
- (command "undo" "be")0 K4 u. E8 x S* V- E! ]! N) Q; u5 n
- (setq ent (entsel "\n Pick text :"))
+ B& I% _; N8 K2 k: ^. k4 s - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
( I$ ~& B/ k( T0 c% h! u& Z- |1 D( G6 Z - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
# W4 j3 T% _6 @$ V - (setvar "TEXTSTYLE" Tstyle)4 M3 {- c/ m% \* y$ m. W2 I5 ~
- (command "undo" "end")6 @# Y* X9 h' d* G" y
- )
4 @" X" ^6 A8 y7 c% {" H - 8 P, X1 A: n/ D8 u, a: ?$ F! @
- ;;; ============================================ l7 K9 y8 k( t, W. l% H
- ;;;
% x k! M6 o# w. n2 d - ;;; LISP Creater Tao Duong Dan AUTOCAD2000% @) P: H% a9 C& Q( w
- ;;;
' }- j8 y* c( q - ;;; ============================================( t4 {9 ~+ F' j, C
- 0 G' R. g7 z1 E0 E1 ?
- ;;; ============================================
* C3 F' S( w( p* M% \& P - ;;;( q3 {3 s9 `( E* h) }( ~
- ;;; CREATING FROM AUTOCAD2000' T" O t' C! \) k& c D
- ;;;
2 g7 ^5 S; t4 y3 U0 R# h - ;;; ============================================+ H& j" K6 f; O
- ; n6 C( G9 L( S7 _$ C/ r
- (setvar "INSUNITS"4)- P0 Y0 l0 L$ g; w$ q
- (setvar "ANGBASE"0)4 h3 L' a0 f8 Y0 X6 N* @
- (setvar "ANGDIR"0)
; l5 |" D* b _" t1 r - (setvar "AUNITS"0)3 B, a7 ~; |0 v
- (setvar "AUPREC"8)
& }7 L o, Y+ b B8 h% ~2 }# Y' T - (setvar "LUNITS"2)7 Y; `4 ? P5 ~4 L6 i
- (setvar "LUPREC"8)
3 c# H. j& | A, i3 v- M* W - (setvar "ACADLSPASDOC"1)
' M1 O0 F! f* z2 c - (setvar "pickbox"5)
2 a9 Z1 n6 I( z5 X1 B; {4 h0 ` - (setvar "blipmode"0)* q! u- y6 K8 A2 ~: N5 G
- (setvar "mirrtext"0)
5 C# w! H/ b; E; C- ` - (setvar "cursorsize"100)
" }* @; E7 u+ u5 c - (setvar "ZOOMFACTOR"75)
& V9 e4 Y. V9 Z l - (setvar "LTSCALE" 10)( z6 @7 l! f, V& j
- (setvar "lwunits"1)% B& |7 d o6 V! ^0 A: r& U
- (setvar "DIMBLK" "Closed"), U6 k E% w9 Q6 V A d) z) k$ n
- (setvar "DIMGAP"0.0693)0 y- ?6 p. I/ r6 R1 |
- (setvar "DIMASZ"0.20)* F. n5 b: g2 Y8 U% i |4 j4 Q
- (setvar "DIMCEN"0.2)
9 N: k4 x1 R) b& k2 N; L- Y - (setvar "DIMDLI"0.1)! [, ^' i; o) @- f" {8 a
- (setvar "DIMEXE"0.0693)- P" w! f' J& Z9 j
- (setvar "DIMEXO"0.25)) U R4 s# x3 U6 m% A
- (setvar "DIMDEC"0)9 v/ Z1 V# T# I1 k8 I
- (setvar "DIMTIX" 1)1 k7 j" e) \* u: J
- (setvar "DIMTXT" 0.099)' g* k+ ]( m6 X$ D+ Y e9 N/ X7 ]$ W
- (setvar "DIMCLRT" 7)6 E' j8 y3 p# L; i5 F6 a
- (setvar "DIMTVP" 1)
/ { `7 t7 [" G9 ]2 }; Z# ]. g( a - (setvar "DIMJUST" 0)
/ g7 J, X: M/ d3 a% @7 C8 q4 C - (setvar "DIMTIH" 0)
) b9 D* j# E4 B: ^ - (setvar "DIMTOFL" 1)% P( ~* S# a, o' h9 _
- (setvar "DIMSCALE" 1111.1111)
/ o V6 K9 S& M0 Q8 Q, x$ H3 {* t
2 \2 f2 b7 m# c8 q- * O8 m" v; o: @
- 4 i; A% H7 a9 T, x$ f5 @
- (defun c:zp () (command "'.zoom" "p"))7 U! q$ ~3 j0 y. c5 @& l
- (defun c:zz () (command "'.zoom" "p"))
9 [) o( |1 P2 l. S( y( z* L - (defun c:ze () (command "'.zoom" "e"))
6 L/ y7 F0 z7 G M - (defun c:za () (command "'.zoom" "a"))
9 c. _9 M4 {0 A* h) o- { - (defun c:zd () (command "'.zoom" "d"))
) V) k" E A( p& Y& ?7 { - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
8 X. c) w: ]( J6 d - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))7 {7 K+ X( Y; D: X9 k5 C' E
- (defun c:de () (command "ddedit")(princ))
7 m8 _. j1 Q/ m* d( X1 e& v) K% l& Y - (defun c:dda () (command "Dimaligned")) j# _4 Q" ], L; a) z! Z' h+ k; ?
- (defun c:ddb () (command "Dimabaseline")). c( R0 ]0 Z7 V4 V2 b
- (defun c:ddc () (command "Dimcontinue"))
3 n: F* z5 k# N! M, a* X - (defun c:dde () (command "Dimtedit"))2 E- K6 f, j4 O. p( r
- (defun c:ddf () (command "Ddattdef"))
2 I7 ^7 R2 V7 q) J - (defun c:ddi () (command "Dimdiameter"))# f$ j. {; @- E, l, ]: x8 x
- (defun c:ddl () (command "Dimlinear"))! ^& M4 _" F6 H9 k
- (defun c:ddn () (command "Dimangular"))
7 r/ A4 s0 h6 X* |! c. ]+ Y) f - (defun c:ddo () (command "Dimordinate"))# A3 e% T- B' b* a
- (defun c:ddr () (command "Dimradius"))
- q o7 S$ e3 T' E9 l z5 y - (defun c:dds () (command "Dimstyle"))
9 a- R2 {) ?& t( P c; K! j2 W - 0 G$ n; N" ~: T, Z5 A, ?9 ^" d
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)& w6 \' `6 i) G
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
/ `- b6 F1 B* f0 Q; H$ \! ~1 s1 h - (defun c:UU () (command "dim1""update""all"))% r$ P8 ]# p1 n) }% G- K: {0 G
- (defun c:ded() (command "dim1""tedit"))
+ w6 D7 F% l6 u. K1 f2 W! Q n - (defun c:da () (command "dim1""ali"))
1 D) ^( R( J9 H' k9 I" L* P - (defun c:dll() (command "dim1""l"))7 u2 b& i- w8 c0 u
- (defun c:dan() (command "dim1""an")). I$ R/ Z7 X) c5 a! J
- (defun c:d1 () (command "dim1""ra"))& y. |/ k% U" _' `1 } d- ?
- (defun c:n () (command "dim1""new")); V4 D v' p* x6 G8 z
- $ D" ^0 q8 Y! r/ y' J' h& O! Z
- (DEFUN C:PE () (COMMAND "PEDIT"))) U+ w' _% y; E' l& k* c$ A4 v
- (DEFUN C:PL () (COMMAND "PLINE"))3 w y) @7 [. Z+ `6 Q& h, Z
- (defun c:dd () (command "dist")(princ))
; u# o: c7 c8 k) ^0 ~7 C3 l9 V - (defun c:w () (command "pedit" pause "w" "au")(princ))
; ~5 |; o( s, p7 f: i6 ]% D - (defun c:pg () (command "polygon" "polygon"))4 ]% C# b" s) Z8 a3 z: [2 c
- (defun c:el () (command "ellipse"))
6 e" Y @6 C1 x9 f9 l4 L2 Q: m - (defun c:xe () (command "explode"))" {" y/ C' N$ [: P
- (defun c:eex () (command "extrude"))
' M; B; g: ~7 P2 b) s* O - (defun c:xg () (command "xline""a"))
4 I4 j- A+ v7 N; O8 [, P9 F - (defun c:xh () (command "xline""h"))* d- y9 O+ X5 |# C: H" K- j; l
- (defun c:xv () (command "xline""v"))9 K+ o4 W9 B6 @& q4 R+ S; A. I
) c5 P0 n5 G1 @! z V; P- (defun c:oc () (command "osnap""cen"))
3 v' ], }. [) A+ i - (defun c:od () (command "osnap""nod"))
2 e) L/ Z9 \4 z7 f# i6 Z - (defun c:oe () (command "osnap""end"))
+ ~7 D* l# O) S) A - (defun c:oi () (command "osnap""int"))
( n/ Y5 O8 p' P - (defun c:or () (command "osnap""per"))
+ U) D9 R8 k, o9 V4 j6 u& t- \ - (defun c:on () (command "osnap""none"))
' H; `9 I: H: Z& H& L - (defun c:oq () (command "osnap""qua"))
1 n7 a8 d6 e, Q; n o - (defun c:om () (command "osnap""mid"))/ |) A; J( W2 H/ S
- (defun c:ot () (command "osnap""tan"))
. {6 y0 a/ K0 x$ _$ v( ^ - (defun c:oin () (command "osnap""ins"))
. B W9 z* z, k2 s& D - (defun c:oa () (command "osnap""nea"))4 j# t& ~3 T% \9 @: }6 q+ N0 w
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
+ A0 z+ e3 V9 I* A& D - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
! ]6 H+ P# A0 \3 u0 U P. Q7 } - ;(defun c:nn () (command "new" "y" ))' m4 Z- C" G2 r9 d1 D% |
- ' r- q) B9 A4 t1 B% B- M7 }
- (defun c:/ () (command "limits"))/ I1 o) |' w- y* x% F
- (defun c:`1 () (command "region"))- ] P) j0 \5 c) K; R
- (defun c:`2 () (command "subtract"))
# C/ ~5 L7 H+ c3 f - (defun c:`3 () (command "union"))
. \1 B5 F$ K/ P3 [# \; p0 B8 c) t - (defun c:`4 () (command "intersect"))! Z) w5 M9 y7 q2 _5 J
- (defun c:`c () (command "cal")); L$ o" r9 D- \, t
- (defun c:`g () (command "Polygon"))" ^5 l# }; D( ~; p X1 ~5 S8 d
- ( q* C$ s" c: p M7 A; V H$ l& {
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
7 b* P. }; N' r o! i - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))) s! u# _) m6 s! u" \
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)
& m P6 w! Q/ g( _6 n* q+ q - ; T p& s( w8 H7 p8 O u4 _1 l4 D! M
- (defun c:ddm () (command "ddlmodes" pause))9 Q$ }; O5 D! v2 H# n) ^
5 m" b8 A2 [" o+ u1 U* X- (defun c:sha () (command "shade" pause))
4 H' p; l1 S6 Q8 a. E
( t& @) F) R0 X( S- (defun c:sr1 () (command "surftab1" "p" "" pause))
4 [5 w, \. O* i% C2 v+ G3 y - (defun c:sr2 () (command "surftab2" "p" "" pause))
' N. L G7 T/ N2 X" E. S - 5 ^3 Y, ~* `1 [* r
- (defun c:ad () (command "audit""y"))- N: u, [( {5 a$ B5 W' Z+ W
- (defun c:q () (command "quit"))0 A" n4 R* w5 r: w) f! I# @
- " l( F, D7 g( b, L( f" z
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))' a% m* d4 s( _) V% L8 B. a
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))2 f& Y. c+ I! d2 i1 K
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))2 b' S4 s+ b9 O) @& W k \$ A
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45")): ^: g2 D0 Y0 g
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
; }2 r5 K1 P/ K" U - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
& y2 A. n2 B6 S2 _* V6 g) @ - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))# B! u5 @$ x' z9 r7 P- t1 p
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))0 T* o6 o% ^/ W, H' @
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
0 |7 C" W' o [: U. Z3 k) z) P7 b
~3 Y5 ]1 M8 w& q0 j& |- (defun c:u3 () (command "ucs""3"))8 G8 G0 d. }/ | |' Y' C7 G
- (defun c:ue () (command "ucs""o""end")), Y- `" v* S. A) W2 F
- (defun c:ui () (command "ucs""o""int"))" r. x2 X7 L2 t: P8 V6 }+ L
- (defun c:um () (command "ucs""o""mid"))
2 ]- h: ^& d- O! Z# U - (defun c:uc () (command "ucs""o""cen"))
- W3 i: @' B% g* t! @% F5 Z3 x; R - (defun c:uq () (command "ucs""o""qua"))1 Z+ |: x. j/ G4 |2 g4 o
- (defun c:3s () (command "ucs""3"))" T( K* @: f9 i0 z
- (defun c:sx () (command "ucs""s"))
* q7 m5 W( W$ z9 u4 _ - (defun c:sf () (command "ucs""o"))
6 S9 s7 Q ~5 F$ A. O! T - (defun c:sz () (command "ucs""p"))1 H5 ^1 l) o, N% `( z7 C. {
- (defun c:sr () (command "ucs""r"))
5 k2 ^" R, t, l; u7 q& J - (defun c:sw () (command "ucs""w"))
( A3 [7 {# j* s7 u2 c. G - (defun c:fv () (command "ucs""v"))0 {$ m1 M8 K/ W ^8 f! l& D
- (defun c:ux () (command "ucs""x"))
8 r6 Q7 t1 j. I - (defun c:uux () (command "ucs""x""90"))1 N8 Z# C* ?8 f! g
- (defun c:xxu () (command "ucs""x""-90"))
b1 ^2 l g# C! ]0 [/ a- E - (defun c:uy () (command "ucs""y"))" U; o3 I( Y: O) @: q
- (defun c:uuy () (command "ucs""y""90"))) L3 A N6 Q9 h+ i, c
- (defun c:yyu () (command "ucs""y""-90"))
! q8 [( j0 a; W3 C, X) s+ z - (defun c:uz () (command "ucs""z"))
7 v2 Y% v! X) b$ g: n, j - (defun c:uuz () (command "ucs""z""90"))
}4 x" v5 ~6 @0 B - (defun c:zzu () (command "ucs""z""-90"))8 X1 M6 v4 p6 e+ }
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)
, l4 u8 w+ `# @6 I$ [! U* P3 ?1 D - (defun c:ucm () (command "ucsman" ))(princ)5 D2 s! V$ Q( v, K
- $ L0 I0 D- H9 M9 A5 S
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
5 d8 J' m+ E. ~* ^- m - (defun c:sd () (command "vpoint""_non""1,-1,1"))
, t9 U) F: ^; [8 k& m( J) F6 L7 x/ ] - (defun c:se () (command "vpoint""_non""1,1,1"))0 p Q3 ?- h' N: k( B$ {$ q& S6 y
- (defun c:sq () (command "vpoint""_non""-1,1,1"))% X- x9 Q" y0 Q
- (defun c:vc () (command "plan"""))
, E, T0 ~. x- ^0 s k6 \4 Q+ J - (defun c:vd () (command "dview""all"))2 M' X H* t; ?8 E1 P N4 t" q/ F" H
- & F7 x" x4 D* u3 {
- (defun c:TT0 () (command "tilemode""0"))4 v+ v, @+ _; C$ l$ ?* p
- (defun c:TT1 () (command "tilemode""1"))
7 N! p1 A3 \* Z, b/ f - ! I& y3 o4 H9 G$ H( ~5 D' l i
- (defun c:vt () (command "vpoint""_non""0,0,1"))
g1 a5 z( b6 J1 [1 J) D - (defun c:vb () (command "vpoint""_non""0,0,-1"))+ a: G$ t) m( [* A8 g, f9 |$ w3 r u
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
w4 M( p! y) x! x - (defun c:vr () (command "vpoint""_non""1,0,0")): p% A) ]9 d) k' C
- (defun c:vf () (command "vpoint""_non""0,-1,0"))
1 x |5 L5 \$ ~" i- T+ ? - (defun c:vk () (command "vpoint""_non""0,1,0"))5 t( A* E8 T- c+ A x3 I
- * \# }6 m1 I; R& |8 g) `% R- Q
- (DEFUN C:MM () (COMMAND "MIRROR"))0 {5 K, |; ]4 ^: a3 U5 d) C
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
g9 b5 |% t; X& U2 E# E0 A; } - h4 [6 ^) ~. ^& G$ G
- (defun c:mee (/ a)
+ t/ b& t3 i/ X* g5 z$ F1 ~4 z - (setq a (ssget))(command "move"a"""end"pause"end"))$ V% y2 e. _2 k! l) E" z
- (defun c:mc (/ a)& E7 `0 `: p% {2 ~$ N
- (setq a (ssget))(command "move"a"""cen"pause"cen"))' v" X7 \$ a8 z% K7 j
- (defun c:cc (/ a); `* W" u2 d% z: J
- (setq a (ssget))(command "copy"a"""m"))2 y3 Z6 }- L9 @% s5 A2 ~
- (defun c:ce (/ a)
; k7 F+ z! b$ E - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
: c" l2 Q- v; M/ K& n: L - (defun c:cn (/ a)) ], K* `4 f, D$ |! w2 |
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
7 ^. l" U. c8 I# c2 K6 V - (defun c:tl ()(command "trim""l"""))7 h2 h* S8 s* z2 @
- (defun c:tf (/ a)
1 k, o/ P( i" b9 l' l: y6 O - (setq a (ssget))(command "trim"a"""f"))
. N+ s/ f' i/ C; m - (defun c:el ()(command "extend""l""")). }* j7 B* Q- [3 \* S9 _& h
- (defun c:ef (/ a)0 x0 U0 q I; T( ?( ?
- (setq a (ssget))(command "extend"a"""f"))
! h3 T. a# W4 `4 H I2 ~9 l- J
5 L; h9 D; o& p$ W
0 F' Z3 I$ i( i) c- T+ t- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))# ]* F& i5 m: D1 y' E( t3 L
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
4 [0 ^! ] J/ P2 Y5 e - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
; k! j; T( G3 C: I- ~ - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))" v% y, \; A+ z; A
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))3 ]# L1 o/ h! ` t
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))( k0 [* _! }6 {% L5 W D
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))! u# Y, @$ z9 w4 [+ W8 N
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
6 Q: s) Y5 O. O# }4 _* o1 P* V - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))' O8 G% Y+ [+ ~6 A
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200")). a) a# Y4 u1 D. W8 Z/ l- {
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
8 c. n+ C' N4 y" R5 G' i - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
8 g0 U7 {! R3 g: U - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))9 c7 j) f7 Q5 M+ c5 l6 D
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))" |9 l6 \! m( W r& U
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))9 D& O( F% P$ t. ?% G! X6 E/ B( a
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
. K- w5 n0 Y8 I! O8 Q" R' i% T - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
c1 q0 `8 E8 ~
! @( t0 P- @2 o1 w* t- (defun c:mla () (command "-mledit""av"))7 k) u7 v3 u, D# |4 J
- (defun c:mlc () (command "-mledit""mc")); a. \3 {1 ^0 K6 ?3 z
- (defun c:mld () (command "-mledit""dv"))
; R* {" ]7 A' H6 L3 u) U - (defun c:mle () (command "mline""end"pause"end"))
8 F% X* k o9 h' Z* b# u - (defun c:mli () (command "-mledit""ca""int"pause"int"))
9 O. E3 Q' f1 f4 q - (defun c:mlj () (command "-mledit""cj")); {2 N2 p# }4 m2 ~% [
- (defun c:mlt () (command "-mledit""mt"))
/ y6 p/ B4 M7 b# k \ - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
; Z4 @7 Z+ u& D - (defun c:mlw () (command "-mledit""wa"))
( s. K( l. b# n( d6 n$ i - 0 Y! {0 K' A9 P$ |3 {9 |% w
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
) j X4 d0 J% q! R. g$ q - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))8 @% n; o- J. A' j
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO")); |, p" G$ `3 }4 r2 v
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
7 l# K1 r% V& k: o* Z6 H# q - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z")): @& w6 l& I0 I6 K0 X
- : Z- g! h) o4 U5 y
- (defun c:p0 () (command "pline""""w""0""0"))
! J! D3 _1 \( b) X - (defun c:ot () (command "offset""t"))9 p# Q6 ~9 d$ E* ~+ R5 S
- (defun c:t () (command "mtext"pause"j""bl""h"pause))
! Q2 J" K2 Z* Z: u/ _ - (defun c:uo () (command "ucs""ob"pause))
- @7 E8 x1 [$ }0 ?( _2 C - (defun c:f0 () (command "fillet""r""0"))
* W) A: m% b2 l) K9 R2 A% Q6 g+ c - (defun c:fr () (command "fillet""r"))
1 _6 } {* {) Y' X8 \. _$ ~
/ v% o) S6 `3 _8 x2 K2 y- ;CHAMFER
) [# ^/ D5 O7 M0 p3 U" M - (defun c:cf () (command "chamfer"))
) X6 f* w2 N: d& K - (defun c:cfd () (command "chamfer" "d"))8 ~3 K4 J$ `1 S& n% b! K7 \
- (defun c:cf0 () (command "chamfer" "d" "0" ""))' ~& L$ U* ?2 K4 t
! [7 [. ]8 b" m5 G$ Y- ;FILLET
: L( n1 V. e3 X4 O, `6 D - (defun c:f () (command "fillet")); Y! y; p# d9 c0 S
- (defun c:fr () (command "fillet" "r"))
& u/ m& L3 |+ M" O8 P+ L2 Q3 O - (defun c:f0 () (command "fillet" "r" "0"))
2 w8 O- p& [! ? c - , Q. [' h2 ^& |5 ?: Z+ z0 |
- (defun c:OO () (command "oops"))
) W6 t' K2 @; e8 Z# I5 m( _ - (defun c:dln () (command "dimlinear"))
' |9 q; N# f& U! h7 l7 n - (defun c:dan () (command "dimaligned"))
: |; O9 m) N. F# a$ U$ {# x - (defun c:ddc () (command "dimcontinue"))
3 u, h, }3 X. M$ D* r - # S/ L9 W% L6 u9 R' e6 U* w
- (defun c:sc () (command "scale" "auto"))* u" E* n8 I, t3 n
- (DEFUN C:XO () (COMMAND "snapang"))3 z( S2 T ?6 E7 N
- (defun c:cc (/ a)' ]! w+ \) S( f, f0 C6 s, ]
- (setq a (ssget))(command "copy"a"""m"))
* M3 a9 e% g7 w. Z7 [
' E1 E- F$ V. ?5 F- (defun c:PJ (/ a)" }' N! r; d3 |8 P
- (setq a (ssget))(command "pedit"a"""j""all""y"))
2 K/ {3 x5 t6 B3 I - (defun c:JJ (/ a)
J* R" j" C8 D! f& S - (setq a (ssget))(command "pedit"a"""j""y"))& |! Q/ c6 {8 U& E9 k' k. g# J
- (defun c:TN (/ a)
7 q% I4 ^$ y( s7 e: k3 p5 \ B - (setq a (ssget))(command "change"a"""p""T"))9 r; n* ?" i( ^9 d( P) r
- * r6 v/ A* a4 R. A: v- A7 e
- $ s# G7 C$ |4 r1 {5 U, j+ \& n
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
- J: m! [1 Z, F- _' p3 s/ r; y
) s7 z* o/ y: V3 t A* z- P' C; h% B- (defun C:IB ()(setvar"cmdecho"1)' `5 {7 f7 J& g
- (setq pt(cadr(entsel"\nSelect Block:")))4 z& z, y( H) M, v) _) ^
- (setq e1(ssget pt)) 1 e! [7 m& W6 V+ ~; X3 Y
- (setq e2 (entget (ssname e1 0)))2 l3 u- g- [) n: x( f/ O
- (setq blname (cdr(assoc 2 e2)))
9 m( c/ Z' w. g, g# H+ z0 ?. ] }% ~/ s - (setq oer *error* *error* err2)(command ".insert" blname))" O% C; o. i/ }
- * a& F- s* D5 ^' c% u% c' i4 l
- (defun c:II ()& X% p" q, I/ H* C
- (setvar "cmdecho" 0)9 ^( [0 K0 P9 Q
- (setq olderr *error* *error* myerror)6 A+ t9 P7 L/ C! ~
- (prompt "\nSelect objects: ")/ c- D8 A/ l* i8 t, I) e$ y
- (command "select" "au" pause)
# u+ P9 W1 W b W - (setq sstxt (ssget "p")* W j- k( t2 Y9 w- T0 h
- sslen (sslength sstxt)0 n3 I& q! a5 b& X
- ctr 0& E& l/ J& ?# `+ |0 R
- )
& ^1 k0 `; n4 U# Y8 v - (command ".undo" "mark")
8 l0 m+ m/ [0 z0 Z; X - (while (< ctr sslen)8 H# ]2 G/ p: b5 g' x/ Q% ~ C& C4 P
- (setq listxt (entget (ssname sstxt ctr)) B4 j0 t1 b I* V! z; a
- txttxt (cdr (assoc 1 listxt))% }" C9 o1 a* c* S! {* |
- enttxt (cdr (assoc 0 listxt))
' e0 j. V* i8 A0 a. X - )
* ~" I9 X( _% _ - (if (= enttxt "TEXT")+ a1 m+ [0 ^, N. @% K
- (progn1 L! s5 u3 k3 T
- (setq testxt (substr txttxt 1 3))1 a L7 P, |& G: h. T
- (if (or (= testxt "%%C") (= testxt "%%C"))
/ I5 G+ o5 B* L, l6 y - (setq newtxt (substr txttxt 4)); O3 b, C+ O6 i0 } m
- (setq newtxt (strcat "%%C" txttxt))
`) T* h0 }- k - )2 T# {' q' F' U
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)) Q7 A% y7 p2 c- e, Q: {
- (entmod listxt)0 F+ l! e* |7 v2 Z
- )
1 ?$ W _" S4 B& k& E& N; A1 T - )$ r. Z q/ q8 `& z3 ]
- (setq ctr (1+ ctr))
& m+ ?, I5 }! d% g: z: n - ) |* B8 K" I( l1 |% y
- (setq *error* olderr)
/ F s. \4 Z$ l& U8 q6 D7 i - (setvar "cmdecho" 1)- F" k, J' O) q$ ?1 y
- (princ)
5 k, b& ^. W3 s0 B3 ^# C; D - )
3 L1 Q& D) ?$ |5 K - 7 S F' ]2 n0 H6 i
- (defun c:DG ()
& ?- M- G7 J) B a: Q: C - (setvar "cmdecho" 0)
5 ~# o& }- h1 ?# { - (setq olderr *error* *error* myerror)' f+ i; @5 x6 z- D2 n" H
- (prompt "\nSelect objects: ")
% M" T* L( f# A3 n5 U D - (command "select" "au" pause)6 n7 p" k' E- I4 a$ I* ]+ S
- (setq sstxt (ssget "p"), O+ y" D1 j: e0 z/ ^
- sslen (sslength sstxt)& D* I1 k# S1 k7 v
- ctr 0
- [9 W, G/ H% M$ Y# j+ P( D$ w* u- |" Y# `( s - )
) U# F9 I1 R0 C! |/ B* h4 z+ } - (command ".undo" "mark")
+ b5 z$ P# J" e. S6 v - (while (< ctr sslen), k$ B! X) j' [' A
- (setq listxt (entget (ssname sstxt ctr))
' C% h D4 L- ^ - txttxt (cdr (assoc 1 listxt))
$ k: i% z2 f5 I - enttxt (cdr (assoc 0 listxt))( t3 T h/ W2 H
- )
% @# L( C; `2 g' n - (if (= enttxt "TEXT"). }, c6 l" J) P
- (progn
9 i2 m, n! x* u; p, G3 W$ R - (setq testxt (substr txttxt 1 3))
9 h) ]% b0 v7 U* Z( }: d; K5 @ - (if (or (= testxt "%%d") (= testxt "%%d"))
% p( H/ d# \# W+ [- _ - (setq newtxt (substr txttxt 4))
7 |3 s2 G" `7 h0 @ - (setq newtxt (strcat txttxt "%%dC" ))
4 R/ |* m$ h5 U( i" Q* q$ P- B+ ` - )
$ g: `+ a8 b2 _; ^2 |* ~ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
+ r+ Z2 }3 m8 g+ ?, s( J2 T/ S - (entmod listxt)
4 j8 X6 I+ r: c2 G( O# x - )
0 | k" m. I/ Y" ? - )) ?7 U" R, q, S X1 \9 o
- (setq ctr (1+ ctr))
2 U- B1 x% R' H8 v - ) B7 A7 b* P d* R5 L% i$ P
- (setq *error* olderr)* c5 |7 R4 K+ z# B6 V* \
- (setvar "cmdecho" 1)
& k- Q4 u) B7 A6 }* t+ A) V7 A" V - (princ)3 O0 V/ I1 ^6 }6 k8 o2 A! D) g p
- )
: q4 B: j4 e/ x0 y! J0 Q - 2 l# H) i3 ?1 x
- (defun c:PI ()
! ~1 L, b* t4 E+ @9 R7 |+ L) V1 i - (setvar "cmdecho" 0)/ ?/ e; {4 o2 O. V/ G* D
- (setq olderr *error* *error* myerror)
; v% Z9 J5 ~- f3 T) H - (prompt "\nSelect objects: ")
0 n( Q4 }$ c7 J3 L9 {. _ - (command "select" "au" pause)* n3 h( _' R( P3 x* x- V# J* d
- (setq sstxt (ssget "p")
7 t0 R" d! R+ ^6 A, k8 o+ p - sslen (sslength sstxt)
/ i- o) K* A/ P+ W - ctr 0
0 p6 B& D+ y2 C: ]2 W - )
" I2 l" a# R0 T& v - (command ".undo" "mark")& Y# |* [. u" t: p% D
- (while (< ctr sslen)
, t! I0 d. g; ` - (setq listxt (entget (ssname sstxt ctr))6 t' _& f: R# z" K0 l; i
- txttxt (cdr (assoc 1 listxt))# d( p2 _9 `* x/ y2 p3 @- c9 n
- enttxt (cdr (assoc 0 listxt))0 E* ]' j; e! g! [' G1 c6 Q& m
- )
5 J- I. ]1 M2 t9 @; l% ^( M( b - (if (= enttxt "TEXT")
9 b: T) B$ G; s4 v2 ^ - (progn
) g& @7 b1 @* o" i2 g7 Q1 S - (setq testxt (substr txttxt 1 3))7 l" u1 X5 U* c' f/ E
- (if (or (= testxt "%%p") (= testxt "%%p")), B0 _# B& L) P, }' Z( q8 u5 _
- (setq newtxt (substr txttxt 4))
2 M. I+ N: \3 g8 B - (setq newtxt (strcat "%%p" txttxt))) D( T" J# L5 q2 p1 d3 U) A) Q6 G
- ). U5 y, l6 D5 u' H
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
, [; \1 [& W9 j( A0 g5 U# X& D4 ~ - (entmod listxt). X! I2 U1 d0 s: ?$ |" G$ U
- )
( b5 \* U2 n/ B/ F: F! S. H) M - )' G6 n( c5 o3 V, ^! s$ S! ~. e
- (setq ctr (1+ ctr))& r" N8 n/ U( q9 s: `, _
- )
1 o1 e; ?" i3 N - (setq *error* olderr)
y2 v; J s6 L+ g9 g o F3 X! H - (setvar "cmdecho" 1) Q* l+ E* m) o7 `' d' j
- (princ)
0 |1 s! r Q7 C& C2 l9 l - )/ H' F1 @5 p1 p u# a
3 R+ R! j6 ?" {: w1 t- (Defun c:CB (/ a)8 p: m5 ^& ^3 i# C. x
- (setq olderr *error* *error* myerror)& k5 x1 ~; ^% {
- (setq ocmd (getvar "cmdecho"))/ r# |" N! Z6 H1 O: l) F
- (setq oblp (getvar "blipmode"))5 S5 V2 Z% R1 ]; u
- (setvar "cmdecho" 0)
" x# }2 n) u. Y+ A1 K - (setq a (ssget))
G! C) g+ |2 q) l0 ^* _ - (command "CHPROP" a "" "C" "bylayer" "")
( @* E1 a/ w; K+ b; ?9 I4 j# ~% D- { - (setvar "cmdecho" ocmd)
0 P4 d2 x. Z( ~ - (setvar "blipmode" oblp)
, y& }7 K3 j7 V. N+ X - (setq *error* olderr)
! c; b7 Q/ m w0 Q! O5 c) Y - (princ), s8 k" ?; Z+ N. x! \
- )
. @1 B1 |: _1 @0 o - Y6 v& s! w; k" I
- (defun c:LCC (/ co43 obj23 la23)
" Q7 B5 @$ D# [ - (setvar "cmdecho" 0)
. `; g: B @$ ~1 W7 }1 B( H8 h - (setq co43 (getstring "\nNew color : "))2 F J0 ]! [- F
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))( q$ ]3 y* M1 U- ^7 U! F$ d( G( i! @
- (if obj23 (progn
# [: I" m4 t. z* g% ^* `- n - (setq obj23 (entget obj23))6 j" F2 Q. _. E5 |0 t. \1 W% f
- (setq la23 (cdr (assoc 8 obj23)))
: r9 i, ^1 w4 A! P% t" p4 L6 B - (command "layer" "c" co43 la23 "")6 ?0 j/ G+ u6 C3 C& Y. J- X
- )4 w$ t& l- X, r1 } I2 C
- )4 _# q0 E6 b# L
- (prompt (strcat "\nLayer has changed..." la23))
; U6 b* ?$ i: f% I - (setvar "cmdecho" 1)
+ n1 q, m: q, ^, _- N1 g4 n - (princ)
. y8 q% w5 I/ Z - )
: w% c0 P+ R @7 n
5 S' D: ?1 z8 }) _- (Defun c:RP (/ a)
: l I9 X8 J+ e - (setq olderr *error* *error* myerror) G/ {& M: G8 l( n5 o
- (setq ocmd (getvar "cmdecho")); E! m5 M5 O4 `/ ?$ B; m
- (setq oblp (getvar "blipmode"))
9 H3 n7 R( u+ j8 u. \; W - (setvar "cmdecho" 0)
! _$ H m7 s4 A - (prompt (strcat "\nUSE: Delete object(s) belonging to"
8 o# `# \' [" j8 U0 j - " the layer of the entity picked...!"))
5 b/ Y* [) w% K/ m5 H4 t9 i6 ~2 e - (setq a (entsel "\nPick the entity with the desired layer to delete: ")) j1 [: r& t' t. r( _
- (if (/= a nil)
" a( H( b3 ^4 }% Y1 U- { - (progn (setq a (cdr (assoc 8 (entget (car a )))))
& }% V0 T6 N# ?! u* O8 C' j; e3 G( e& h7 E - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))! a3 b t/ V5 ?
- (prompt "\nNo entity selected!")) m, G2 e7 c' N% c2 }* b7 Z
- (setvar "cmdecho" ocmd)
3 C; ^, s) u% [$ O4 E2 E# g - (setvar "blipmode" oblp)
; F+ T, M) J- [$ G - (setq *error* olderr)4 ~9 O! Z6 u- H3 I" H% B
- (princ)
- s5 c; t9 y* J/ b3 d* C8 { - )7 r: c" U2 q5 R2 Z% E
- 4 F$ ?6 \) L2 U3 C. ?$ Q% }
- (DEFUN C:WL(/ SSET NET SSL M)
1 K. ?- l5 {- H8 j* y! T" l - (PRINC "\nSelect lines :")
6 C4 E, s8 a* W+ S: ? - (SETQ SSET (SSGET))7 T# q2 P: e# P% R! k4 ^
- (IF (/= NIL SSET) (PROGN
, q5 ?1 L/ H8 c# q. [- r - (SETQ SSL (SSLENGTH SSET))0 z1 ] B9 j) ~" F! g. }
- (INITGET 4)
w& q4 }5 E3 Z! r' V8 O - (SETQ NET (GETREAL "New width : "))
% m) U5 I& s5 w& X - (IF (/= NIL NET)
% X* B+ z# v! g9 T6 U9 W# w - (WHILE (> SSL 0)( y1 G7 u- i. p) F5 ?, C
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))# n/ t2 M, g9 n o2 ?
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") & F' a; m6 z$ ~
- (COMMAND "PEDIT" M "Y" "W" NET "")
- u# G5 l8 S0 a% W+ b0 P. a - )
1 d/ e$ ]1 U% M6 \ Q, O1 g - )
9 z S" } l& r) g- b: W0 w0 o - )))( _& t% d5 k: ^+ A, N" Z
- (PRINC)
0 L5 P5 ?$ | C( ^ - )$ T% `( z/ {) k5 w0 [
- 5 Q( `2 K i5 _1 i! ?! g" o F$ y3 U
- (defun C:MML ()
k0 ^' C6 ~% Y5 J - (princ "\nSelect objects to move to another Layer.")+ T; X. b3 |. R# x8 R E
- (setq ss (ssget))4 R0 I$ w- B. a0 `8 }6 u7 W9 Q
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
/ c) A h4 S Z7 _ Q+ S - (setq counter 0)5 n( ?# @/ x m/ t: x1 \9 l
- (prompt "Moving to layer.....")(princ ul1)
$ u" y' v+ P; @/ I0 A4 N - (setq e (ssname ss counter))
- k- \$ z' r) P* l$ u8 `* X - (setq l (cdr (assoc 8 (entget e))))! _( k0 M! g5 s( ^& n6 S. m" Q$ V
- (setq S (ssget "X" (list (cons 8 l))))
, e' M9 p' B, q _$ O8 {& ~ - (command "CHANGE" ss "" "P" "LA" UL1 "")# z" p# o: {. r( l/ v* c0 _
- (setq counter (+ counter 1))9 e% J7 @% e. s2 ~
- (princ)
: W0 }3 q5 m/ H1 f - ) ( @8 w# O2 L9 e) p5 D- k
! f9 a: ~' d `- u0 }- ;;; ================================ GHI CHU ============================% R5 x6 x: Z; b0 G2 a/ T0 a
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
2 A7 k# ^" l5 b6 c# q - ;;; =======================Thuong Dung Font Romant.vnh===================0 K& z x" a. y/ c7 l: {
+ N1 A) r8 g2 ]3 u4 P# }* _- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
5 y- [6 h% v2 i/ b - (setq oer *error* *error* err2)
4 v: p( d+ A4 }: Z* B/ d - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")0 K7 r( @# {2 |
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
6 L1 v' }- c6 N& \ - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))( J6 s7 ~2 q- x+ m
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
- s3 R9 ~( p& O/ r - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p")), b/ c& O& n/ `6 G7 Y y: u# C
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))/ [8 Z+ e$ a- s) N; l6 a! q% ]2 N
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))/ v% f8 A4 M' _7 Z6 e
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))4 d$ w5 `, D/ O
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))2 i' l$ e+ ^# E# S0 D
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
+ @. b% x: B: w# L" g; P/ p
$ A% `% w" ]5 z5 e% R9 D* Z& V- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))1 V! V* [/ V$ b: G& U. S
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
" ], ? `5 U( p0 Q! l - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))7 I) O8 [: N Y4 a1 b2 w: d3 b
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
& O1 L |$ d/ Y" ?3 u - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))# ?- T! [, b3 I8 R+ e# G* v/ N9 y
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
6 y& A+ h( C# q, ~' g0 f - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))9 N7 A& K1 c; X- p; \5 E, L5 n
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
' y- G9 s) Y/ l+ |* e -
; S- g1 C; X: P - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))) R* i% {& F+ D$ V
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM")); o2 }* S+ I3 \0 e% U$ w; H
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))- T! }2 n, n. |3 W- n7 |
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
! j$ S2 D& v8 b3 T& |$ j* l- A - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))0 u5 F5 d+ @! i* P3 p4 t. i
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
+ m1 |# S" s6 g3 U6 L9 `6 ?! k - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))- R* ]) P1 j. \0 z
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))$ O( R6 }) S# Q4 C" `
- (setq pta (getpoint% ~9 b# G. S8 l: i1 ?' I3 r$ m
- "\nPick first corner. : "))
& b1 Y2 X+ j# d+ a' \- S - (setq ptb (getcorner pta
/ w% W: L0 H( X# n - "\nPick second corner. : "))
$ G% o- x c5 _1 @9 y% }# { - (setq ptc (list (car ptb)(cadr pta)))
9 b- X2 d; T: L' ]5 ^ X - (setq ptd (list (car pta)(cadr ptb)))
" ]! [. o5 Q Y9 ?& |: H - (setq ang (angle pta ptb))
. G% O, N& T0 N- h' I9 O# { - (setq d1 (/(distance pta ptb) 2))
" a$ P/ B1 H+ L9 Z3 Z - (setq cp (polar pta (- ang (dtr 0)) d1))
& }# ~, N R! Q7 C3 B - (setq X (distance pta ptc))/ D2 K+ \: j2 Z" _/ X+ D' I9 j+ n
- (setq Y (distance pta ptd))6 d0 E) M2 I/ V, p% j
- (setq X1 (rtos x 2 1))
5 @; L3 C# v8 `' L8 X# T - (setq Y1 (rtos y 2 1))5 l) J! J4 g3 Z# ]$ n' p
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))3 n, ]8 D2 c6 p+ X- b% {
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))/ g$ E0 _9 m- \5 n# X3 Z
- (defun dtr (angg)7 N* t5 \; r0 J5 ~
- (* pi (/ angg 180.0)))
/ X# X w) H. F$ m
; _% ]8 A9 d6 e* y- (defun c:WS (/ pta ptb rmsz pl1)4 v P+ N8 a0 B) z( Q8 c. k
- (setq oer *error* *error* err2)
9 a. z& J6 W5 i3 [# ^( v8 n; a+ Y - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
7 ^7 ~' z! B( {$ q7 X - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))' A% K, H0 @6 e! f' O
- ! H$ y1 p9 ?8 d: R3 L0 |
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
1 \% n: a" d: f; {, P5 F - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
8 y9 V$ s2 Z4 w/ a - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
; p; m; l9 G M; U* Y! _% \! v - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))7 F$ n! R" `+ P
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
2 E3 x% Z% P- g4 r - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
+ X1 `+ D2 }1 j) @; O - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))6 J, X4 S- K+ ~( T! r$ k. p% \
! H# h3 s ?' h' |4 U7 e7 Q- (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))
$ t. F; M* Q7 q. n, H. X$ r - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))1 q; T1 G. x0 u: U2 G
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
' ]2 }) L. c! l# Y7 Z' C( J: B# v1 Q! O - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
$ T1 ~/ I: M' Z. e, a. V8 s - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
; I( Q/ V3 e& ~; d# Y; n - (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"))$ X p" d1 o! \4 p1 {( r, L" ?
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))3 G- Z* g/ r2 {5 n1 w
- (setq pta (getpoint
4 ?/ D0 ?: y+ z - "\nPick first corner. : "))
U! r# C, j; D! ~/ Z" n8 Z% ~ - (setq ptb (getcorner pta
" j3 t7 D& j8 k - "\nPick second corner. : "))
. t, K% c3 O5 a/ k$ H% i. \ - (setq ptc (list (car ptb)(cadr pta)))
: i4 D0 n9 D1 i7 I6 C - (setq ptd (list (car pta)(cadr ptb)))
8 C" ], E7 t9 X' v7 V+ \( {3 [ - (setq ang (angle pta ptb))
8 G5 N. K; Z7 M- o+ M0 q - (setq d1 (/(distance pta ptb) 2))/ n3 S# X# h8 x" u: N: j- ?2 n
- (setq cp (polar pta (- ang (dtr 0)) d1))
; D7 b( M2 V- A5 q: O - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))* g" F: O% x) |
- (defun dtr (angg)
1 z% g# b& x3 m) |! b - (* pi (/ angg 180.0)))
: T; b% Q9 k8 j - 0 q! g" U, `* {" f
- ;;; ================================ GHI CHU ============================: R1 W9 k/ U: j; ]4 J% N2 @
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
" U" u2 B) B2 `$ [1 L$ @: t& g - ;;; =======================Thuong Dung Font Romant.vnh===================
( d/ P+ @3 l% \' \) u
! V: G) X% L4 u$ S# J- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)8 c* _1 {, E6 i
- (setq oer *error* *error* err2)
5 Z5 A' Z) C( k+ w - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
) `$ |, a5 D _4 |. U - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))! Z9 F8 g9 O# [( j
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))4 u7 u$ q ^" f7 h$ [ x
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
* k" E& D/ N0 N' M - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
3 U. ^6 O: y1 y% @/ i - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))+ {: i" ^0 D k0 C
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))9 m/ P& w3 r& V7 p
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
6 _! }' h( p4 t& Z) B& U B - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))5 X0 t# x# M, Z: y/ H3 U
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
1 g! z3 j! O8 Q5 A: b4 ` - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))) _+ K! u% p- \0 Y) k8 I0 i
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
; [1 d' G2 d' V - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
1 ~# ]9 E# i7 i; P/ f( d/ W( U - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
2 E3 ~: p8 M$ @1 t0 i' P - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")); }8 g( L2 Q# Z
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n")), T4 Z5 i( ]# q
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))& j5 R$ ~# p, T/ ^8 B
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
$ b ?. P7 d+ T- E& V - (setq pta (getpoint
3 @8 o4 J, t) l. j, c9 c - "\nPick first corner. : "))
) r$ T$ D: ^, T- ^9 n& w - (setq ptb (getcorner pta
$ \6 a( k: F5 c( f - "\nPick second corner. : "))) u" A% s! R8 J5 e2 b( W
- (setq ptc (list (car ptb)(cadr pta)))
6 p7 s" D; l5 c. }1 F; i1 j& Y - (setq ptd (list (car pta)(cadr ptb))), U5 j" s; x0 O# f
- (setq ang (angle pta ptb))7 X- _& i! z- v" P& a1 Y4 y0 I
- (setq d1 (/(distance pta ptb) 2))7 j/ n( N6 P4 x. W0 Z6 m: t
- (setq cp (polar pta (- ang (dtr 0)) d1))
& W4 F6 W" T: z/ |2 ] - (setq X (distance pta ptc))
: @, j0 k) t: B9 y - (setq Y (distance pta ptd))9 f. E# r' y* _/ v
- (setq X1 (rtos x 2 1))& ^) s( O, d# @& D
- (setq Y1 (rtos y 2 1))$ E9 F7 ^2 R L" d9 x! X8 _
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))& b; t( J$ k, k% S
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))4 F, B& L* N' F
- (defun dtr (angg)
+ m; B& y, F$ k! K( O* q7 H - (* pi (/ angg 180.0)))4 C/ Y( a; Z- h& \$ l; @& n
- ! g; h! O" Z& u9 B
- ;;; ================================ GHI CHU ============================
, P7 J0 g& V6 h - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========. t0 P) m1 w3 ?1 D
- ;;; =======================Thuong Dung Font Romant.vnh===================
% ?8 u& @% H9 r- ` - ; B# ]5 _+ {6 a4 i5 U& L
- (defun c:GS (/ a b c d)
, f* D- u$ V9 q - (graphscr). p2 t, A& W, m7 i4 b7 h+ j& s# T6 Q
- (prompt "\nSelect text to set style....")% {( V J* ~- \" U+ B- R; e3 W
- (setq a (entsel))2 _. o2 S( j/ h) P- `
- (setq b (entget (car a)))" Y- n/ b6 |9 a! s X/ d/ _$ o
- (setq c (cdr (assoc 7 b)))
" m; p+ S6 |: O! R+ S: `" s - (setq d (cdr (assoc 40 b)))1 [) D5 D- f1 E+ J a
- (command "style" c "" d "" "" "" ""))& R$ W+ d- @ }0 H. Y" A$ B
- (princ "\nType GS to set text style.")
8 E( n; R* e, Y, ^ - 0 E0 U8 S! K' h f O
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
6 _: G6 x4 D" C - (setq olderr *error* *error* myerror)$ z z) T; s7 q% [# P( i& T2 d, a
- (setq ocmd (getvar "cmdecho"))' r3 Z$ Q4 R% a5 }, r
- (setq oblp (getvar "blipmode"))
0 R3 ^" a; [+ ` - (setvar "cmdecho" 0)
; y8 u5 q: p& s7 z - (initget 1) ;3D point can't be null3 j% } a* n( b% D/ W
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))3 w5 c- o8 W6 B- O5 Y; ?
- (setvar "ORTHOMODE" 1)0 J6 o% G# ?9 i( T: V/ \# [
- (initget 7) ;Length can't be 0, neg, or null+ w D* s! A! P- ~& O
- (Setq l (getdist pt1 "\nLength: "))- P8 V. t# ~, V& E8 U' O
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))7 X: D0 B. y$ R4 |
- (grdraw pt1 pt2 2)
& l1 _; {. p5 e/ C( S. ] - (initget 7 "Square") ;Width can't be 0, neg, or null
9 V3 T! X& A3 ]0 i4 G - (setq w (getdist pt1 "\nSquare/<Width>: "))/ w9 d, i4 m' r2 M
- (if (= w "Square")
; @- a- B5 w a m, [3 Y6 _4 ? - (setq w l)
4 K# D2 p6 \8 F1 y - )
+ _# H! q5 N i- v. ` ]9 N b - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
2 g, P& e8 u6 P, j% P- W - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
$ U! D8 v+ ?; G Z% l8 U - (grdraw pt2 pt3 2)" S7 j+ ]7 u2 k7 R" H% C3 v. x: ]
- (grdraw pt3 pt4 2)
8 @4 h' b3 _( p" Z5 i( y- c - (grdraw pt4 pt1 2)( c8 Q3 p* B( v f! l: O. w: b+ v2 N
- (setvar "ORTHOMODE" 0) c" X/ `, O9 v2 q& q
- (command "pline" pt1 pt2 pt3 pt4 "close")
8 b! |# x+ G0 z - (setvar "cmdecho" ocmd)
0 s& n9 F, `5 n; Q - (setvar "blipmode" oblp)
8 V: K$ }: P5 c7 W' X/ o - (setq *error* olderr) ; Restore old *error* handler, {! C0 G1 y$ V8 [6 X: T' A
- (princ)
- F5 X2 K" ~6 B; f# p4 { - ); S4 E3 q7 P* v
2 I: f: a( E4 t! f5 t- (defun c:SG (/ ent pt1 pt2 ang)+ C: l5 i z3 j2 z' W: s
- (setq cmd (getvar "cmdecho"))
( ?* z, e0 }( i - (setvar "cmdecho" 1)
) J. o9 I. a3 q. s) i* {7 z - (prompt (strcat"\nSnap angle will be set to angle of line"))
/ p; X4 D. L" I t+ M/ E - (setq ent (entget (car (entsel))))8 |6 ]2 o) d# @/ l/ G/ C' R
- (setq pt1 (cdr (assoc 10 ent)))
+ N* @) i5 w" P - (setq pt2 (cdr (assoc 11 ent)))
; p& @. g5 e& {5 ]) H - (setq ang (angle pt1 pt2))
+ T) g& X. T* M - (setq ang (/ (* ang 180.0) pi))
* m! [7 X4 k6 q5 H. H( a - (setvar "cmdecho" 0). Y7 Y! P4 D) ~0 _9 p
- (command "setvar" "snapang" ang)( u6 y! y+ V9 t/ z; G) o+ y$ q
- (setvar "cmdecho" cmd)
! X7 [% U' J: `1 A1 E8 L - )% K+ L2 k- h1 z: q* t9 [! K
- ' c' w: l, a" a+ h; S/ V0 I4 x
- (defun C:TG (). ^! x- H! v9 e& x% k! Z
- (initget "Increase New")7 {& r. k# x& c- t, A5 i
- (setq ans (getkword "Increase/<New>: "))& t" P. O+ n) b2 g( S6 X; l
- (modang)
4 ]0 L; v, E) C7 p& i7 | } - )6 ^( D, {1 T; D+ }
- (defun modang (/ ang ss ca e na ssl)9 u, v: o4 u) n* Y' g
- (if (= ans "Increase")
% g/ ? g3 V; d7 W" r$ t/ O# m - (princ "\nIncrease angle for text by: ")
6 h9 j! M8 J3 a' `! g) |7 ~5 ` - (princ "\nNew angle for text: ")1 T+ k9 _* K% C0 B6 p8 W
- )4 r. J5 x- M) j9 e/ |
- (setq ang (getreal))
2 ?/ _: i& n6 h& X - (setq ang (* (/ ang 180) pi))
' _5 g1 Y+ w% t7 c. t f/ L; P - (setq ss (ssget))
G; [; ]! }& }! @ - (setq ca 0 ssl (sslength ss))
+ ?2 A" z% o: l9 | - (while (< ca ssl)9 y! I1 ?5 }# _2 ^4 C- A
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
/ v* P L, k5 d( w: @; [ A - (progn
8 q- K# F/ Q! o }9 H - (if (= ans "Increase")& d3 E% H7 {5 f+ ]' J* h! T
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
& U# b/ Z k6 D - (setq na (cons 50 ang))
& [# F4 {# o3 K5 k6 k - )
! e& \: J. N) b) W2 I+ S. z! ^ - (setq e (subst na (assoc 50 e) e))4 t3 G; S/ z( d) |' V3 p
- (entmod e)8 [9 V {; Y# M! q* ? t* ~1 z
- (setq ca (1+ ca))
2 v7 W, y+ A; X) h% Q - )+ L% j. W% B2 P
- )
% ^0 z# I0 A7 m# K. b% K - )
9 S' W) a [; e Y - (terpri)
' i1 G2 G1 o; c: J" ^' D) f - )
1 L* o9 s# m; V) y7 n; i - * n1 q& n: k: g z- W4 W# Y
- 4 X0 }/ {* J9 q
- (defun c:WL (). K' T' ^: \2 o, n' J, a
- (setvar "cmdecho" 0)
8 X# b; F+ X/ U - (setq a 1)
. d3 P& o' q: o$ u - (prompt "\nSelect Polylines to change: ")' n; L" u' m% I4 w
- (while (/= a nil)
" s- G& X3 v' P$ l# K - (progn
- F# l- D( M( w% A4 F - (setq a (entsel))% L6 J, W, }8 m0 ]
- (if (/= a nil), c- u/ j& K# S" w7 u
- (progn
7 n' ~3 q# f% A$ v5 a& e" K - (setq b (entget (car a)))
4 T+ ~% e2 }0 j' R# `+ p0 } - (setq c (cdr (assoc 40 b))): P8 r6 V. f4 l" @% x( v( {
- (princ c)5 Q) V' g' g6 a$ f# d3 I1 y! b, D
- (command "pedit"a"w""lw""")
0 M% b; H5 L8 ^7 H8 @ - ))))
# U3 Y9 x9 B6 P; \6 @; i% h* F - (princ)
# L# s: t3 P) L' s: l - )
/ p1 _. B: F0 Y - , P2 P" G2 u ~1 @9 h( `. p/ C
- ;;; ================================ TEXT FIT ============================
* q4 f" `8 E0 s' l - 6 z8 m4 K+ o& u; q* x% W0 \+ c
- (Defun c:FT ( )+ w. e/ u$ j; H4 `+ C5 w2 D
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
) e* V" ]2 p; w0 D3 b+ K* f& e - (Defun LL-xyz (arg) (CAR (TextBox arg)) ), Q9 N! L% u: A |& V. W: w
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
) k4 x6 O, D+ x, w& ^3 _ - (Defun LL-y (arg) (CADAR (TextBox arg)) )
$ T. j. e# G+ [+ @ - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )& l( E% P( O: K+ h2 I4 Q; F5 `
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )! D/ u! t1 \9 A) d% }2 P
- Textent (If ename (EntGet ename)) ) $ d9 d8 s8 M5 O% f
- (If (= (CDR (Assoc 0 textent)) "TEXT")! D N1 X! X/ c- j% t: ]
- (Progn (initget 0 "Start")7 J9 H1 N, K5 h: u1 U% s
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) ); H) W, X' d7 s [7 a" S3 D( |$ r
- (setsnapang Textent) ;set snap along text entity' p: `; i, ?5 E! u) j
- (setvar "ORTHOMODE" 1) ;drag along the text
0 Y2 x& C% P. k; U - (setq
6 {& N% g* d# U: Q - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
* x0 M5 X4 ]5 R - (setvar "snapang" 0)' w2 [. P, U! H
- (cond. O- G% B6 l% S5 [4 l
- ((= (type TMP) 'STR) ;;new starting point to be selected
/ v ?0 b, v- P9 m: Q2 |- D" b - (setq Start (getpoint "\nPick new starting point: "))3 _- u; R* T: Z: q! a
- (if Start (progn
% x B: i& e3 Z5 z - (command "_UCS" "_E" (cdr (assoc -1 textent)))0 B8 T, u! L8 \& D$ e3 j6 M% ]- T
- (setvar "ORTHOMODE" 1)
) `% V$ w5 q! b2 o: o; [2 ^ - (setq NewPt- V+ Z7 }9 k3 G. Q& t
- (if Start' c! o# M1 U8 Y6 K+ ]4 W
- (getpoint (trans Start 0 1) " ending point: ") nil ) )7 t2 }1 ^7 s9 v4 H0 ]
- (if NewPt (setq NewPt (trans NewPt 1 0)))5 @+ b0 R7 J( M1 G. C- k9 A# e$ |! H
- (setvar "ORTHOMODE" 0): m7 P9 h! n1 g3 M( d/ ^
- (command "_UCS" "_W") ) ) )
, O8 O+ A# n1 `( w1 d: f - ((not (null TMP)) ;;new ending point selected
! L* V; E: H* {1 q3 |* a k4 {, [/ M - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
5 \9 w9 Y& n) T8 O& z - (t (setq Start nil NewPt nil) ) )
! V' z& p% k6 U8 y6 t; I - (if (and Start NewPt) (progn- ?- @: |2 \) P: f+ {$ a f
- (setq Val (Assoc 41 Textent) ;;current width factor
* D$ r! P6 Q, W$ a - Val (if Val (cdr Val) 1.0) LTC_% 2 m- Q# L9 n* p, ]
- (* (/ (Distance Start NewPt) NewEnd ) Val )- l- i' ^! g' ~; i: X
- textent (Subst (cons 41 LTC_%)1 k. r( K1 Q+ ?0 A! ~/ o
- (assoc 41 textent) textent)7 M0 i$ b! M& M" {5 ` V' z( r
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
: R( i4 B" W' G# t1 |8 u+ B) P* A - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )! l, g6 l/ O6 |/ @0 }6 t
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
& Y7 Y6 ?+ h5 |# e1 r - ( F C" |3 z& ?0 b& }& U9 H2 J6 V
- ;=====================================================================+ i& o* R0 c! X$ O! M
- ;=========================COPY + ROTATE ==============================6 ~9 A$ a6 ?' A% F
- ;=====================================================================+ V, t+ g) K, L
- e( u6 K+ }" ^5 ~- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)7 S& ?' S+ ]+ A a4 |3 E9 Z% i
- (setq olderr *error*
) K5 G1 y( H5 ^. c- C3 R! w$ I7 C8 E - *error* croerr). o# d1 Y* n# i. H* `5 e' c% g
- (setq cm (getvar "cmdecho"))0 S3 J, p6 s$ d, L# i5 F
- (setvar "cmdecho" 0)# v. R1 v, u- u# R8 d0 x" h
- (setq loop t)% a( i5 u; d# p- L6 [; p4 j' [
- (while (not (setq ss1 (ssget))))
" b* V, r% n9 G- ]- F* s' y; W& }' e - (initget 1 "Multiple")
- ~$ C v0 j/ }0 t - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))/ X& K$ }3 b8 U: z# d
- (if (= bp "Multiple")
L x! J( E2 |$ j0 ] - (progn8 u* ~$ \) ]3 y; V8 _! ]
- (setq bp (getpoint "\nBase point: "))3 k* }- R1 L5 p* c' X$ O
- (setq mult t)$ o. O+ s" K- {/ {
- ), O9 E( T! H! s) E$ h8 X
- )
9 U9 F G5 f5 ?- L% O/ x- T. N% v - (while loop1 u- h, ^( g# [1 D1 A% L/ g
- (setq loop mult)0 G% S1 H' Z* j: p2 w$ V5 C+ U
- (setq lent (lastent))# i$ \( S5 v9 K* V2 {5 d3 g
- (command ".copy" ss1 "" bp bp) Q& L- |0 q) q/ u+ x4 Z
- (setq ss2 (lss lent))9 N' {# L7 q( p9 s( Q6 Y
- (setq lp1 (getvar "lastpoint"))) |; s7 h0 y# c+ U4 N6 s6 i3 A
- (prompt "\nSecond point of displacement: ")& b& b9 q1 @" o' P
- (command ".move" ss2 "" bp pause)1 A f* h- L7 K8 q
- (setq lp2 (getvar "lastpoint"))& t4 `( J9 T0 b0 e: h
- (redss ss1): V1 ?: y3 g4 `1 K
- (if (and (not mult)3 [* B7 O& t+ C: b
- (= (distance lp1 lp2) 0)7 {/ j) e5 I. g% w
- )
4 g) K0 C7 B- T - (setq lp2 (getpoint "\nRotation Point: "))
! Q, i. e2 Z7 @9 O - )
4 }- Q; g/ C( `/ H - (if mult8 F s. E3 \! p9 n( P
- (prompt "\nRotation angle ")6 q8 @" C; K! C- @9 E8 C0 F
- (prompt "\nReference/<Rotation angle>: ")/ X: o9 o* c" d! K( W6 _
- )+ E' m' B' w) }1 I' d5 x
- (command ".rotate" ss2 "" lp2 pause)+ V, B p1 h' l1 v8 K
- )
1 V" {% H8 _- p6 d, G - (setvar "CMDECHO" cm)# Z2 \" C* C/ T2 P
- (setq *error* olderr)( M- b! [4 j9 }3 M/ \: K- P
- (princ)( i/ m6 S3 R: s( U
- )
6 l0 b" n2 B* W. A! p - (princ)- {0 q( ~* n+ L8 X) q8 J
- (defun croerr (s)
& W \9 `4 L% I - (if (/= s "Function cancelled")
9 r- I1 B1 ?0 }" f2 ~* X: w0 S - (princ (strcat "\nError: " s))
. w" |& B ]0 ^( p8 ]1 H) n - ) 4 D2 y6 g1 b5 `3 e' c# I( {) `
- (setq S nil)" D& N" ]6 ]* w7 g; Q$ s" [% s
- (setvar "CMDECHO" cm)
' A* H7 D; y' i/ \! J - (setq *error* olderr). o1 D5 D# s& ?
- (princ)1 p4 ]2 j* ^1 A4 L! ]) ~
- )
; E2 |* R% Q$ p9 p - (defun lastent (/ a b)
" x& R: L" V& \: e: I - (if (setq a (entlast))
5 K! b7 V8 d9 A7 h - (while (setq b (entnext a))
5 s) i/ s5 z3 X - (setq a b)
/ \! ?# k6 D5 S! E* t Z) t9 K' t - )
( L/ X% d' ]4 J6 _1 I6 x - )8 H. K( l: t% q/ e0 p
- a+ f' x. v4 Q, ?- W% ~5 g
- )
$ M/ t+ w) p( v, R - (defun redss (ss / en i)
9 T5 r: v+ j5 ] C+ ` - (setq i 0)' n2 j9 P$ X9 o r- m. q% G
- (while (setq en (ssname ss i))4 o! e" j. {# [& a' a: I; y
- (redraw en 1)' R3 U( w: m0 Z1 `4 k$ @$ k" ?
- (setq i (1+ i)): A5 i) R0 p! r7 y+ `+ K4 }- c
- )/ u, O& Y. h4 H
- )
# i9 \" j! Q4 J4 E# w - (defun lss (en / sels ed)
. p+ J; i3 H' n2 L6 I; A - (setq sels (ssadd))
7 ^2 Y- g# [) A - (while (/= en nil)
* m0 j8 P7 g9 L) J4 F3 M* C - (if (setq en (entnext en)) (setq ed (entget en)))' o! p K2 I1 o4 }$ T0 K( M2 i
- (if (/= en nil) (setq sels (ssadd en sels))) L. L- z& q3 W+ p& k
- (if (or (= (cdr (assoc 0 ed)) "Polyline")
+ L: J- H% J: Y+ W0 L. B - (= (cdr (assoc 0 ed)) "Insert")( @: t S) M* |; T: A
- ). D8 o$ ^' S" j3 a+ v# G9 X
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
# f0 D2 K$ C% T - )
3 t) u# H4 h) N; B P% Y } - ); @ g5 B/ W8 |# q
- sels" m3 H) [) f$ f- r. {+ W* m
- )
; [4 N2 F9 Y$ M+ C1 M5 Y9 q - 6 X. J7 o% l2 m1 k
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
# x4 X! \) a; z7 L4 P
$ R% ]6 {! {+ e; M7 Y" U) D, E4 `2 t- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
7 `; i, S- x2 h% ~! Q - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))5 s u v( v& d9 @! o/ F7 Q
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))" |' s# x4 p# }5 t+ K
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))7 Q P" S' P5 B* u, T% U6 X
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
7 \( |7 t; t9 N- \) F - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
9 V- ^4 V; O8 B# v3 L - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
?/ A# S9 F6 r7 q4 W j' M: d - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))* p; T& h' F7 O5 p3 L. ]2 a, |
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
4 \7 b) N& O! P - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
, [& U4 i1 Y' k - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
; Z$ T! ~. P7 J& B- Q - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))( \9 l* U- K6 j0 R2 e/ Y
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" "")), a8 [3 Q+ i2 [$ `5 C0 N
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
0 X8 O* k' Q+ J/ m2 X - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
7 L1 E- V. k" F& Z' O& } - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))- |( u7 }) d, g
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
8 w4 X! v& {5 X - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))- X8 B/ }' }' C1 [* O _
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))' Z( ?; G9 {0 o9 ^) b$ c5 ~* P% ~
* Z1 u$ `+ P, n/ A3 i8 x+ g: H- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
. H# U6 w: ~7 N w) Q" P; } - , b! x4 C' U& [8 E% m; a
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============, m( Z3 h. W8 u/ r1 w& [& ? [
: p1 X, j& m9 l' \2 P7 e- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!"). n) ^' U6 B( r& g# F
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
6 d+ l# `3 v1 n$ X) l - / k- [$ z6 z2 y: _$ V
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
8 |8 J# L# ^+ ?3 E2 D, w - % j7 w `) w$ \$ O% c8 w; h
- ;(DEFUN C:netxuatanh ()5 |# W% N+ N: [2 R
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""; f8 t5 Y9 y+ n" @' |3 v. ^7 d
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""* w4 ?* n9 C5 e& X" G6 y
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""
) t* {) I/ c# B, K { - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
0 `1 j2 W. [/ G+ f- H. C2 i2 b5 Q* f- A - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
% X4 z5 a3 S+ I* J, j( C+ r - "M" "THAY" "C" "7" "" "Lw" "0.7" ""% g& v8 ^* p* ^
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""6 t' C" e* Q3 O0 C+ Q3 H
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
0 i8 m. p8 x/ E. I - "M" "COT" "C" "2" "" "Lw" "2" ""
6 B; D; b- G5 N' E - "M" "Defpoints" "C" "7" ""
9 ]4 @3 A6 P) K' Y S" Q - "M" "0" "C" "3" "" "Lw" "0.5" ""0 i) D2 K O0 x8 ?; C
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""3 }# a1 |, c) M" ]2 b. k
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""
/ X2 j* n, p) c" x$ \4 A% U - ; "M" "3" "C" "8" "" "Lw" "0.35" ""! u$ P! w" x. n* o
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""6 H2 I+ t5 Q U
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""2 k* `2 q9 G* V
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""4 `8 s! W6 ` \' N: V
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
7 F3 B, x+ z, H# Y# {( X - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "": g& x1 h( w7 R& T) p# ^
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""/ _, G! y8 O0 _4 h0 d( T
- "M" "KE" "C" "8" "" "Lw" "0.3" ""
7 D0 [9 i& b5 T+ K - "M" "KT" "C" "9" "" "Lw" "0.35" ""
+ Z. H1 a8 D; `* n$ x - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
2 F& V8 ]8 N1 _# ~1 X! i+ r( `' W - "M" "NETMANH" "C" "43" "" "Lw" "0.5" "") S% Y' l8 h, E1 U- _% F' F/ z
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""4 Q& C5 C! o6 f. O! g+ O$ V* a
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""( N6 }" o3 e4 P0 ~, O
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""+ { f5 ~) a+ x' W, x: f
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""4 ]- n0 [. O( n. Y4 B9 O$ ?
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" """ `3 |2 V4 h- [. [& o
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
$ {4 G* G' E! `8 I. g/ ? - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
7 ]5 N4 [8 `: T
1 g1 n6 y, s! ^$ Y0 F9 P$ R- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===( h. U4 p6 ^7 S) t# ?
- ~" V+ k) P# `+ H/ O/ m$ G" K
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
! h1 e3 z6 Y# A! l3 U. q - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
" N0 p' w% j$ B& Z$ P6 C( V - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
5 d) b$ \' b2 d7 K1 ? - ; "M" "250" "C" "250" "" "Lw" "0.35" ""
2 d; j% s8 M9 M8 R6 q - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
; t, l. r$ ^- J. w: R# L( ? - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )) v& ?5 I1 Q5 ^3 Z! \
- * j8 h) f: F8 S
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======! D. b. H& f3 ^! ~2 s1 ^6 ^% T
- ;===================================30|04|2024==============================
2 Y. {0 T' I, c0 Y# m" s
* X* A' i8 y& c( D- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )% Y, T) B, T0 D. c) i q% h) B
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
( n0 N% v/ O* u3 W) C% a3 J* m - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )0 O+ \! D/ @: Z7 m/ Q1 d' T) n
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
4 x- n# w% @+ S- n% S* T - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )) Y, f4 G% ^ v9 u d8 ?% Q* o
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )2 K; ]* r0 j: G) o9 }5 i
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )3 d( _6 t q8 v1 T6 G- l" j
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" ): k) m& ]% B3 x, u6 }3 Q- z1 E
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
- y q) f( h6 c - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
" R R2 B' w. W' l, M1 F
" ?: w+ W; Y" h; n- \; b+ d$ k- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
3 A, t3 a0 c: V2 Z+ T6 d - ;===================================17|10|2024===================================
4 x B( Q% w, A - + v* {6 p- l$ d9 {3 _% v* D/ ]! g
- (Command "DIMTXSTY" "ROMANT-DIM" )
7 Y6 Y1 g) S. o0 z) G - (Command "DIMBLK" "" "Closed" )9 b8 Q0 l4 l+ \2 i0 h% e
- ( D) J) s2 e5 G
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=+ ?; ~1 y+ W: X( m8 b1 E* |3 W% d
- ;===================================17|10|2024===================================, i8 |5 B& O$ ]
- K) M f" k% _) e- m" G- ;(Command "-units" "2" "8" "1" "8" "" "N")
6 @4 |. n, W" a5 b9 q3 Y, W - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)# v2 S0 m, P7 [- @' r$ x2 r
- 6 x5 ]( d; m1 _8 i
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
( x5 s& E5 A& Q6 C0 P - ;===================================17|10|2024===================================* L7 G. G! ~4 |1 G5 x: W- l' V% m
- ' s5 [, q, u, }
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====7 y& G- n; ~: J- E
- ! l. F9 v& n7 ^; d8 o t# \1 ~
- ;======================== DAT NET IN & TI LE BAN VE =============================
3 Y% ? h0 G% q7 j
4 h6 P1 T8 {+ a" R4 ]( S- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
/ L6 t: @2 \3 w9 G, T - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
1 ]/ j$ e: v8 i, j9 q - ;=============================11|07|2025==============================
1 {$ P* N6 {7 i4 A4 B* L* ] - ;Ti Le Ban Ve - 1 : 100
: u8 I3 N+ C! l# M ?5 m - (Defun c:kta4 () q. B; h8 D: H; j6 f% f
- (setq mv_sc 100);Ti le ban ve
* D) `6 l; E' [6 c' W - (setq x4 297)
8 j4 E( y, v0 F - (setq y4 210)0 K( y0 \ U. Z- a, ~
- (setq x4 (* mv_sc x4)
3 r: ^) M& i- E$ F - y4 (* mv_sc y4) )
6 m0 f4 i1 [, H, Y. D* L7 E - (command 4 |5 m- h8 P; e! |, ^
- "LIMITS" "0,0" (list x4 y4)
" }- T5 @" j% ^3 R$ P, G - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"' \' S( K- v% D# D! s
- ;Khung CHU NHAT Chinh 8 f6 I8 @0 \% _
- "RECTANG" "500,500" "@28700,20000". K% a$ G# \3 T0 J/ {# j/ u( F: J' y
- "RECTANG" "700,700" "@28300,19600"
% O2 P, ]+ Z' P' S C) L - ;Khung Ten Chung. t) {. i J- Y/ m$ \$ E
- "RECTANG" "700,700" "@8000,1250"
: ^, P4 K/ ?, n - "RECTANG" "700,700" "@17300,2500"' t0 g) X/ m' J8 Z" I
- ;Ten Ban Ve- @1 R4 g& A$ J& r
- "RECTANG" "18000,700" "@11000,1250"
1 c5 ?2 Y, o8 L$ z9 Q% O0 K# c - "RECTANG" "18000,700" "@11000,2500"
9 |1 i) `% Z* m6 M( l1 z- B - ;Khung Ti Le + Ngay Thang Nam2 V4 H% U/ u0 |: x
- "RECTANG" "22500,700" "@2000,2500"; g+ S/ e' H# X/ D# D/ }
- ;Khung CHU TRI
! C8 w: ?4 O3 l* z1 M6 Z6 Q - "RECTANG" "8700,700" "@3800,2500"
4 ^: B5 E! p( D N( `5 S - "ZOOM" "_a" ))$ v/ V0 n! H8 X# P: [
- ;=====================================================================5 T9 E5 i: {6 X7 z6 z- N8 U. O
- ;Ti Le Ban Ve - 1 : 100
3 K" }/ m8 T; |$ J/ o. p - (Defun c:kt4a (): q# z/ \4 e$ c Y
- (setq mv_sc 100);Ti le ban ve1 Q) r6 c$ j8 A; y9 @ ?! J
- (setq x4 297)# [/ m- u/ x; m& m, ?0 j4 q
- (setq y4 210)
' y9 E( L" ?% F# [ - (setq x4 (* mv_sc x4)
) t; |# J5 t5 M6 H) s - y4 (* mv_sc y4) )$ H I* C8 \# ?$ K
- (command 3 w$ b# o1 G7 M: S) k3 `% U0 _
- "LIMITS" "0,0" (list x4 y4)
4 f. G+ T9 H, t* G. e+ j* n0 h3 M - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
" ^6 d; P' }( f) D - ;Khung CHU NHAT Chinh - s" F3 k7 |9 F
- "RECTANG" "2000,500" "@27200,20000"
# S7 E: @) M0 m$ f$ Z h7 m - "RECTANG" "2200,700" "@26800,19600"6 Y8 I( k! o# g. @9 U m; U0 K$ K
- ;Khung Ten Chung
8 y$ H, @1 G) \; l! x5 O - "RECTANG" "2200,700" "@6500,1250"
w/ ?% z/ B7 j/ k- ` - "RECTANG" "2200,700" "@15800,2500"
8 q. H& ]% X" A - ;Ten Ban Ve
0 l$ R& C$ J1 b* j8 U - "RECTANG" "18000,700" "@11000,1250"
$ o7 m5 {' e" _9 b0 L - "RECTANG" "18000,700" "@11000,2500". M% i9 y0 Z* z
- ;Khung Ti Le + Ngay Thang Nam
% C$ k# @3 P# Y# r& J - "RECTANG" "22500,700" "@2000,2500"
* h, K; K8 @0 v* ^& K- B1 A - ;Khung CHU TRI9 V Y& s, f2 _, B
- "RECTANG" "8700,700" "@3800,2500"; m: ?( P: |$ C3 X0 H9 I
- "ZOOM" "_a" ))
9 `" u" H: ]( f" g- p4 |
6 l( q" t+ Y0 J! k2 {- ;;; ============================GHI CHU Khung Ten========================/ B4 F7 {0 g( q/ w5 E
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========! V, @3 P! `6 G! X* P8 `
- ;;; =======================Thuong Dung Font Romant.vnh===================# | p! l2 o/ O$ R% Y2 m+ k
- $ E- V! _3 |. R8 a
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1): m6 H, }# u' z4 y8 c( J$ [
- (setq oer *error* *error* err2)
5 I, n$ L# ]6 e/ g5 ^ - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
% F7 ]% ~: T1 f1 s1 v2 @; T/ V - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))# Q' [7 ?9 p% a& [
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
# a7 } ]! h) c0 j - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
7 z. n* K1 \3 |+ N. f/ R - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
% Q+ P2 D0 D1 d - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :")) U' V. ^$ a& r' d# z
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
/ J, G% ]# b! `* Z2 i" o' }$ K r - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
& A; R/ \! p1 ~7 }7 j - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))5 m$ @" b" K2 R5 t
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
Y8 l+ f: N; l0 \/ w - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
: _# S$ h! u7 H0 B - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))* ^( X* R8 {( z+ z5 L' f; x \
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
" A8 \7 ~* u7 x/ H5 d - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
/ t4 N9 h' o. Q" [! d& v: t) M - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))% \7 g' E! s2 ~* R8 H
- (setq pta (getpoint$ t6 ?( C5 E% ]- L- W$ E
- "\nPick first corner. : "))$ z7 N* o" T7 t1 F
- (setq ptb (getcorner pta
+ z3 u; q# c# K' i - "\nPick second corner. : "))6 x2 e2 R. ]0 o, r! L" a* l( i! G, {
- (setq ptc (list (car ptb)(cadr pta)))! U+ ^+ D. y# P- {; X2 Z7 p3 T
- (setq ptd (list (car pta)(cadr ptb)))- j% l. c$ @) f# j
- (setq ang (angle pta ptb)) N# `; G" X5 r( U7 ]' Z4 v
- (setq d1 (/(distance pta ptb) 2))
7 p, o( G6 ]" V H0 Z! ? - (setq cp (polar pta (- ang (dtr 0)) d1)), \( p. P5 n( x8 I+ n1 X
- (setq X (distance pta ptc)) V( x% ?+ h8 W
- (setq Y (distance pta ptd)): L) @; `+ Y" u+ P) g& T5 g
- (setq X1 (rtos x 2 1))0 z+ A! d/ e& \" q$ s9 O- w/ {
- (setq Y1 (rtos y 2 1))
, r, e' a s5 c% _5 o - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
" j+ Y9 W. l1 m( v4 A - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
) v) J9 ^; C5 p6 U" r% i# P0 t! n& r - (defun dtr (angg)
! t- k- p* U* }8 s' h* D7 V - (* pi (/ angg 180.0)))9 Y& Q7 |2 t4 R
- / x# P0 k# J% X/ n
- ;=====================================================================2 a/ Q- U; D" w; C7 s0 S" G
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
, Q. Q0 s, i X- e: y8 K1 O( N - ;=====================================================================
# H6 y! M# i5 a, u( o - ! S* c& k5 ?- {8 ^- C4 H
- (Defun c:a6 ()
( O& D; D0 R) U% y- N4 } - (setq mv_sc 100);Ti le ban ve/ o3 a( {5 S6 B7 o8 Q& f- v6 C1 [
- (setq x4 74.25)( ~# J& i/ H0 j$ c3 P f$ c
- (setq y4 52.5)
# P4 R6 ]# o, b. l/ t. [ - (setq x4 (* mv_sc x4) ' k% ]. \6 L# e! d$ q5 ^8 K
- y4 (* mv_sc y4) )
, p. l y% B/ } - (command
" o5 ]& \- \) k+ K& W2 c - "LIMITS" "0,0" (list x4 y4)
5 Z( O7 j+ c/ y# U8 b - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
5 ~- m+ T* w$ s5 ~* D# Y( @ - "RECTANG" "125,125" "@7175,5000"* \, f/ t% w; n
- "RECTANG" "175,175" "@7075,4900"
% d& I; @5 F4 Y9 Z! ~ - "ZOOM" "_a" ))
5 O3 q0 r+ f" q, v7 v) p - ;=====================================================================$ y0 w8 s9 x* }" B9 x
- (Defun c:a5 ()
! A4 {4 ~( [$ Y - (setq mv_sc 100);Ti le ban ve
, ]. T; h- o1 J* `) n* [8 ~ - (setq x4 147.5)
5 _' H, {3 z- Z; _) B( }6 v8 R5 B - (setq y4 104)! A( D6 v L! G5 Q
- (setq x4 (* mv_sc x4) 6 h. d: F- q5 w" P
- y4 (* mv_sc y4) )
; I, |! U: n' r7 T - (command
! F! A# E" M& X4 S( D5 I - "LIMITS" "0,0" (list x4 y4)
, F' [9 {' p$ l8 d: c# m8 q3 g - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C", \( y8 W6 B& ^+ f/ ?' Q
- "RECTANG" "250,250" "@14350,10000"1 _0 P. l2 h% i$ u. F( e4 E
- "RECTANG" "350,350" "@14150,9800": L M) Z" P J: J& ^9 g$ c
- "ZOOM" "_a" ))
1 R' u5 ^ O' H" _6 W3 P! z/ @: x - ;=====================================================================* p- `' L( d5 k
- (Defun c:a4 ()5 C( F0 O, j7 Y+ N
- (setq mv_sc 100);Ti le ban ve
& v: x4 T* z, b( R! ? - (setq x4 297)
) n( R9 l( U3 [; K; U# u& p4 k/ R - (setq y4 210)7 v/ o# F2 }3 s) S5 W7 y
- (setq x4 (* mv_sc x4)
0 c& o% i1 S% o( U. s, R - y4 (* mv_sc y4) )! A2 Z, Y' I& ~ t) H
- (command / v" X, G4 }+ P
- "LIMITS" "0,0" (list x4 y4)
; Q+ W) U0 E& A& j - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
3 d! n& Y! y! i8 B& w - "RECTANG" "500,500" "@28700,20000"9 L: S2 O( K& h( Q
- "RECTANG" "700,700" "@28300,19600"
4 Z1 u: F9 }. I$ {, G$ ]9 W - "ZOOM" "_a" ))
& V! z4 T" G" J3 n8 o. m% I' f# r! u J( y - ;=====================================================================
# H) S8 f1 t' s4 w, `" P) f - (Defun c:a3 ()
( z' z) S0 H" o - (setq mv_sc 100)
% W3 |0 _; J! m - (setq x3 420)
1 P+ y N' \ j/ W3 y3 S+ a - (setq y3 297)
% P0 D& ]) \% g5 l7 @ - (setq x3 (* mv_sc x3) ' v% e$ i7 T! R' u" b0 n
- y3 (* mv_sc y3) )
9 l \ e1 D) x - (command
$ i, S1 ]6 N- X2 x; D# | - "LIMITS" "0,0" (list x3 y3)- l7 X% z/ h8 g; B$ {; }$ p! h
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"4 R5 L) J, o1 N) ^6 D
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
' u/ k" K1 x# a6 R - "RECTANG" "990,990" "@40024.28571429,27720"
/ M( o+ i/ g: `) S - "ZOOM" "_a" ))
. R7 o' l: f, w - ;=====================================================================
* a* W `8 l0 C0 j& S# Z1 q - (Defun c:a2 ()1 g" p3 p0 Z; o0 u0 @
- (setq mv_sc 100)
5 c' L$ p' ~. E: V. P - (setq x2 594)( T) N) e- s) s5 W
- (setq y2 420), t. ~5 _% U8 h# z
- (setq x2 (* mv_sc x2) 4 A# W, \- z: Z3 b8 Z4 W& ^5 R
- y2 (* mv_sc y2) )
7 t, x- W2 X" P8 G6 {1 o - (command ; N1 S) E" V; J+ `6 c- z/ b' A
- "LIMITS" "0,0" (list x2 y2) l/ N7 H: p' L" U
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
9 y, w: P; a$ s, f' a( L( w - "RECTANG" "1000,1000" "@57400,40000"7 J8 l! Q3 [" h0 n0 p' z+ n
- "RECTANG" "1400,1400" "@56600,39200"
/ P1 M" K$ }* m1 z$ ~ - "ZOOM" "_a" ))2 Y' s2 Q8 S2 w2 H
- ;=====================================================================
, a# R& ?2 t6 C) V1 R. M' ` - (Defun c:a1 ()# m# W, k- V. ?/ I
- (setq mv_sc 100)
0 o. Y8 x0 R4 h! u& f e - (setq x1 840)# A) Z3 q# n2 H1 w
- (setq y1 594)! ~2 F: p" i0 ?" p6 G. @
- (setq x1 (* mv_sc x1) + i ~/ o; ~& q- C
- y1 (* mv_sc y1) )% g- n- \$ D* m* A0 q1 b: X
- (command 1 f6 s: [' e/ p9 V+ M
- "LIMITS" "0,0" (list x1 y1)
+ Y ?$ G: W+ l+ N1 w - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C") Z2 j9 d; X8 i9 M2 \! h$ A4 A8 K$ q a
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"; Q8 m0 b1 n+ n s( B" V
- "RECTANG" "1980,1980" "@80048.57142857,55440": Y5 V' a& y$ J7 G- c5 j
- "ZOOM" "_a" ))
* o6 S# y' [) K/ P* T# V - ;=====================================================================( n/ @# Y4 ]: M
- (Defun c:a0 ()
2 e6 g6 H3 @" D( ~. ~ - (setq mv_sc 100)4 B( }0 z7 L7 |
- (setq x0 1188): P0 H) h9 F- J2 t) X, {
- (setq y0 840)
1 W: H& ]" {+ g - (setq x0 (* mv_sc x0)
8 A! A6 v& h8 P' r7 i, [ b8 ]0 [8 ? - y0 (* mv_sc y0) )4 y2 V' L y; m/ s& f
- (command
0 p# v$ W% u8 u4 d* X% ^* F - "LIMITS" "0,0" (list x0 y0)
J! o+ M0 m6 J7 Y) c' P" i9 ^1 u0 }% _ - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"; x1 ]* U" ?" h6 H
- "RECTANG" "2000,2000" "@114800,80000": F( d4 k ^* t: }! B/ g2 _4 O
- "RECTANG" "2800,2800" "@113200,78400") k0 R( `# X- L* W1 S3 A. S
- "ZOOM" "_a" ))
4 `. x6 S. ~3 A8 e( R U
6 Z# n' g, D, h# L- ;=====================================================================% u# d, S) {6 U) h5 F7 h/ u
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================3 l% ^8 }2 {, @7 g5 ^1 A
- ;=====================================================================1 W. Z) X5 K9 O& m: ~% ^5 [
3 {! O' p( }; m( T- m- (Defun c:6a ()
( @$ D! B3 a7 z) J. w8 w1 [ - (setq mv_sc 100);Ti le ban ve
4 m8 B& y6 V3 i* K2 d. l P - (setq x4 74.25)
- [9 \, v/ D" l) }! k& o3 g - (setq y4 52.5)) @% h8 T; \' F1 b* q# J
- (setq x4 (* mv_sc x4) 7 I% E. f! z1 h3 e. U
- y4 (* mv_sc y4) )- v) d* z5 e; W% {
- (command # N& N* b5 c: F& W
- "LIMITS" "0,0" (list x4 y4)
( i U/ c& Z* d( A* N) s& j; N/ W - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"9 x2 N1 M9 @7 O0 i( ?* ~6 r
- "RECTANG" "505,125" "@6800,5000"; N& X9 q* N9 l- d
- "RECTANG" "555,175" "@6700,4900"% m9 H8 y. R9 l' ~6 x% R6 q. t( D
- "ZOOM" "_a" ))
2 F6 _, ?) I3 a' f3 c* R - ;=====================================================================. {4 n% C& u/ @7 ]( A F
- (Defun c:5a ()6 U1 k3 E: M. M8 w3 d8 @; x
- (setq mv_sc 100);Ti le ban ve
- v3 r3 C [7 m% G: f - (setq x4 148.5)* E& S* W: t; I$ Z3 {4 i
- (setq y4 105)
' q- @0 R* L7 ~1 {: L - (setq x4 (* mv_sc x4) # S) }8 W0 d+ Q
- y4 (* mv_sc y4) )3 D1 u. _/ t' P" D: {/ j
- (command 0 x7 o4 M8 r2 @# [, K, L; B7 B' K
- "LIMITS" "0,0" (list x4 y4)
7 E" R8 A) V! w - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
# ~5 g6 J: N* v9 V+ c& r2 w - "RECTANG" "1000,250" "@13600,10000"( D, B9 ~2 K& d( S
- "RECTANG" "1100,350" "@13400,9800"2 V4 `, I6 F+ R( a
- "ZOOM" "_a" ))' |& a, N3 Z5 `! `
- ;=====================================================================
- ^( q" w% S, }/ M2 ]" C- O - (Defun c:4a ()# X7 O% q3 L( h6 d6 q
- (setq mv_sc 100);Ti le ban ve
( A. b6 y3 H- i$ M' I5 T - (setq x4 297)
% E* t3 y7 W0 q( M' C# g - (setq y4 210)
1 z* [3 M& v' X! i - (setq x4 (* mv_sc x4) # O, m% S O6 t1 G5 U7 I6 j
- y4 (* mv_sc y4) ). [$ V9 L# g5 J7 b
- (command 6 M" N, M( y* w0 R. ^6 M# c
- "LIMITS" "0,0" (list x4 y4)& P+ k, ^. S; X1 L! l
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% K# S9 G) t. u$ b- G7 u
- "RECTANG" "2000,500" "@27200,20000"
# S7 P: F# P1 t% q+ S8 J/ _0 K3 q7 B, q - "RECTANG" "2200,700" "@26800,19600") y z2 K T, i! i. ?6 M
- "ZOOM" "_a" ))- s5 o: m. |0 S9 @
- ;=====================================================================7 G" m& a1 `' o4 w8 b
- (Defun c:3a ()
( R, a( X0 R3 T - (setq mv_sc 100)( x5 D4 o/ v( \* J
- (setq x3 420.0428571429)
/ V* q& ^ C0 p# a - (setq y3 297)
9 Z% d* k0 V; K$ d - (setq x3 (* mv_sc x3)
) x. C* ^; {) |4 ^ - y3 (* mv_sc y3) )
9 ]6 C! Z% i: y' K& M0 X4 `1 G - (command
8 @ _2 N2 i5 m/ ? - "LIMITS" "0,0" (list x3 y3)
6 ?9 J6 A2 q6 M3 O& a% Z - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
2 F8 u$ h+ O. q @/ A7 B - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
5 _. y0 Q5 C/ z7 C- o, s5 a - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"! z1 H9 l! X9 g0 l, ? K( V- u
- "ZOOM" "_a" ))4 o% S* W5 R* @
- ;=====================================================================
. A# k& `0 w8 p2 o2 |0 g; B - (Defun c:2a ()
- A- e) z/ c4 I) z - (setq mv_sc 100)4 k+ F N9 ?2 T8 i0 T! ~0 O4 W
- (setq x2 594)" }& r4 w d9 s8 g- g7 X% k
- (setq y2 420)# S, s- {+ q, S% S0 f( ^( S! t
- (setq x2 (* mv_sc x2) ! u0 b7 u9 v/ S( T* s" ~. w
- y2 (* mv_sc y2) )
" c8 ~% |' w& O: ^ - (command
" P" V( N, o. S' o - "LIMITS" "0,0" (list x2 y2)+ m+ d' `' Y! L1 x. y
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
& G, ^( D: C# C3 H+ h |3 W - "RECTANG" "4000,1000" "@54400,40000". f+ a( c( F+ j5 {
- "RECTANG" "4400,1400" "@53600,39200"" v. L/ h9 [9 x
- "ZOOM" "_a" ))& [/ j1 m8 g2 r
- ;=====================================================================
% d5 d" |0 _# t5 q* _' V - (Defun c:1a (); h; @% u P8 @
- (setq mv_sc 100)3 q( I" V$ |3 t: S6 }* V
- (setq x1 840.0857142857): o; Q: o4 ~4 V
- (setq y1 594)2 ]( z" F$ D+ \) x
- (setq x1 (* mv_sc x1) 5 b' u; i ?4 C5 L- q; Z1 f
- y1 (* mv_sc y1) )- O2 N" i' i: \* D7 R7 C
- (command
! @' p3 ]% Q. x6 O; r$ B - "LIMITS" "0,0" (list x1 y1)" d! M5 W1 B. G' Y5 h5 [* R$ B
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C") G7 R4 F. `% F* A/ Q9 f
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"5 r* m9 z2 n6 F. n- Q9 v7 M
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
4 A5 n- U/ }' g6 s% s - "ZOOM" "_a" )). w8 E5 G: U' c/ u' U* Y
- ;=====================================================================
( `: D! F8 i+ G( v8 F2 `* c O - (Defun c:0a ()
8 R# q$ {0 t% W! F* Z - (setq mv_sc 100)8 g* o! c3 {- a" i; S
- (setq x0 1188)* s8 @/ m# w& n/ m' _/ L9 W
- (setq y0 840)7 W6 d: G, W' S
- (setq x0 (* mv_sc x0) # w! V0 M, b' h8 ]# k( a: T) v
- y0 (* mv_sc y0) )
* U) Z- \0 L0 w/ ]5 w2 Q - (command ; s6 Z( A" s9 H S* D
- "LIMITS" "0,0" (list x0 y0)5 N) T* n" ]. [& U( B6 |
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"$ v& }6 w5 j' u/ r# H! N$ a
- "RECTANG" "8000,2000" "@108800,80000"
9 f# h- [2 F3 V* u# L X7 F - "RECTANG" "8800,2800" "@107200,78400"5 T0 {6 V$ E9 x7 R. q
- "ZOOM" "_a" ))
3 @7 ?; [ N( e
& \+ U; |8 r$ z. J' T- ;=====================================================================+ P: q+ Z6 M; X) v. g- Z
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================. R( P- }, v: T2 S$ S4 f" q* g
- ;=====================================================================+ T# ]/ e+ ]; D$ W! n( q: y
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL), R, t" o8 O& \7 u0 c
- (command "undo" "be")7 R) M5 p6 Y+ \3 |' Z
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor"))); W1 m) O, O! v1 h& l1 }, L
- (setvar "CMDECHO" 0)
6 f, Q; m& D9 D. A. | - (setq a (getpoint "\n chon diem chen :"))4 m# u) _3 H/ M6 r5 e! c b" |6 v
- (if (not TL) (setq TL 1.00))' X6 Y" Z4 G" h% y7 T
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:"))), f8 _: a9 g& [/ x+ D
- (if TL1 (setq TL TL1))
, S3 [* w7 |# @9 N - (setvar "osmode" 0)/ s5 K' R* e1 R6 X& _% A
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
j4 h0 ?, z, I- d- V3 a. {$ F - (initget "0 1 2 3 4")
3 D+ \6 k: k' D t/ V6 Y2 v - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))/ l: _- U& \: Z1 W
- (if (= kho "0")
+ I& J7 }% R% |- v( K0 Q - (progn
1 g- a- [' _( t& w; ` ?7 a - (setq b (polar a 0 (* TL 1189)))
( w1 ]1 R2 |5 A# x, o - (setq c (polar b (/ pi 2) (* TL 841)))* {: |$ m5 _7 n
- (setq d (polar a (/ pi 2) (* TL 841)))
5 R4 z: I. y; n - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))" V* A6 S4 w7 n2 X5 }( c% H: s
- (setq f (polar e 0 (- (* TL 1189) (* TL 24)))). o; z. T! f7 h' I7 [
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
; Y2 {( q+ k' O: D - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
0 @5 q) [! s5 T8 F/ x+ ] - (command "Pline" e f g h "c") - P' R# E; j# r- F6 n
- (command "change" "last" "" "properties" "layer" "0" "")
9 C, U8 E5 f. A - (setvar "cecolor" "4")
3 ~. z8 v$ T* j/ F$ a4 Y, I - (command "Pline" a b c d "c"), B7 s7 B$ C- Y# Y
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) % z H, G$ x; n6 p9 ~# r5 J% A9 B
- (if (= kho "1")9 u3 s$ B- D* R! q
- (progn
/ F+ q+ W% D: e0 X/ A9 l - (setq b (polar a 0 (* TL 841)))$ i$ Q1 M; v2 R2 T; i; R/ J
- (setq c (polar b (/ pi 2) (* TL 594)))
. s) E7 D% b3 c - (setq d (polar a (/ pi 2) (* TL 594)))
8 Y9 m# u' p# q1 z) D5 Z - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))1 a8 j! X' i3 c" x! a
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))" \2 b4 b& a8 ?" A0 M9 i" N
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
2 M8 g& Q. @+ Q: [9 A* o) \ - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
5 o" d6 n( h% y" r$ o - (command "Pline" e f g h "c")
& {+ g. B+ @$ Y) R! ~4 x( _ - (command "change" "last" "" "properties" "layer" "0" "")
" T- u8 z! P8 I' h O D - (setvar "cecolor" "4")
2 T) W! {0 H- L B - (command "Pline" a b c d "c")
V$ x6 o8 z2 {5 _* Q7 V- z. j' B - (command "change" "last" "" "properties" "layer" "defpoints" "")))4 G) B- L: `$ q5 Z! F4 K, t
- (if (= kho "2")
. z5 m2 w; k* h8 J! j - (progn
5 g& }/ P" {1 C' @! q+ e - (setq b (polar a 0 (* TL 594))): P2 {! d9 k$ e- p
- (setq c (polar b (/ pi 2) (* TL 420)))
n( a, x2 q8 q0 p9 |$ W - (setq d (polar a (/ pi 2) (* TL 420)))- g" ~, `7 u9 G+ A0 Q: E
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
3 j: T0 L% G" v: n. ]7 M - (setq f (polar e 0 (- (* TL 594) (* TL 20))))
$ P' k* T# }5 `0 w7 f - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
2 D3 ]* j) Z1 q; Y# \; h$ V - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))6 c$ |% {- Q3 v l' P3 e0 ~
- (command "Pline" e f g h "c")
' J; S7 m8 W( E& _6 y3 g/ R. b - (command "change" "last" "" "properties" "layer" "0" "")
! g6 z ]. Q! x: f) c - (setvar "cecolor" "4")/ O5 B, V! e" S
- (command "Pline" a b c d "c"). ?, Z$ n2 K+ K( V
- (command "change" "last" "" "properties" "layer" "defpoints" "")))$ J, w: f" J0 l$ d/ B
- (if (= kho "3")7 E: b& ?) [6 t9 \' A$ V9 X+ H* e
- (progn
! f5 d5 ~1 `) a3 [* _8 N - (setq b (polar a 0 (* tl 420)))
% M2 {( u5 u/ o - (setq c (polar b (/ pi 2) (* TL 297)))
3 E4 X& ^! q. T. ~ - (setq d (polar a (/ pi 2) (* TL 297))) S* Q* T Y" E
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
% k: v& l) e" r; X& s - (setq f (polar e 0 (- (* TL 420) (* TL 20))))% U3 d) M! ^# Y& V0 `
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20)))); h) e' G8 `5 t9 k
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))4 K1 s+ g9 s* m; @0 e2 A
- (command "Pline" e f g h "c")4 y3 w8 t1 C: r) d0 K! s& |/ m
- (command "change" "last" "" "properties" "layer" "0" "")& `7 V- Q) `% k# d; j1 l* p" a
- (setvar "cecolor" "4")
, w% m7 x8 U o& G& E% A* x: K9 h8 r - (command "Pline" a b c d "c")& m1 P4 L/ X; q, J4 ~) s/ G8 y& u% Z5 G
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) z1 g# Q$ a5 p( U' N! b
- (if (= kho "4")+ H0 ~' u; K5 Z5 Q7 U
- (progn$ J# i* t3 q, G5 R7 ? {
- (setq b (polar a 0 (* TL 297)))
* Q! n. ?& f. {, _7 B& E% h. e' f3 t/ @ - (setq c (polar b (/ pi 2) (* TL 210)))
+ h5 ~$ \# W' Y. Y# P$ P - (setq d (polar a (/ pi 2) (* TL 210)))+ v+ j' s9 n! C. m. O z1 s
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))& F; A+ L) ^7 E/ T* e) s5 {! E, K
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))) @5 O. R4 O E$ B, C* F
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
3 [: S% {4 S+ H: U$ \$ | - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
- i! v, v7 V3 k5 q - (command "Pline" e f g h "c") 0 o0 ]" D& N3 k+ p+ b
- (command "change" "last" "" "properties" "layer" "0" "")# R D) S% h* W' d+ a3 z/ _
- (setvar "cecolor" "4")
; S& I) O7 V5 H+ q% ^ - (command "Pline" a b c d "c")+ p3 N- M& L3 j3 {) n4 Y
- (command "change" "last" "" "properties" "layer" "defpoints" "")))9 c; z: c4 ]7 N1 E
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)0 @3 ]1 A3 a6 B4 \
- (command "undo" "e")- p- i$ }9 m) n# F2 A: J
- (princ)), l: m k/ V) f
- ;=====================================================================% J! N7 p1 e9 d6 D a
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================, N: e% T& B9 b
- ;=====================================================================
# f- D( _; k5 E( M7 F& L% U. I/ f - & z& X. n% p2 r2 G8 n+ ` P% c; L
- ;=====================================================================
" n) l: n6 [: o/ Z3 _ - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================: r9 X: |- Z+ J
- ;=====================================================================# E; g) Q7 r* \; m( m
( {3 ^& g6 V! t8 D, Y% g, d& S( _- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""# j$ P# @+ n0 Z! m
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
+ @3 [" `6 y9 P - "M" "MANH" "C" "9" "" "Lw" "0.1" """ c& D9 w0 t. L2 S9 w8 P( V
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
4 {% l1 ^8 U! ^8 s% `) S& v - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
# G; a0 P+ N, I4 n" [- f - "M" "THAY" "C" "7" "" "Lw" "0.2" ""& }3 C, `; I3 s" o7 t$ X+ p$ ]
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""+ @5 F4 y" w1 c! g' u
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""4 y" ^& y* n! S5 H/ V
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
- t: S1 ?, [/ R0 [& q2 \ - "M" "Defpoints" "C" "7" ""
( v- m; o: }# Z' _, N: ?. s! o7 b - "M" "0" "C" "3" "" "Lw" "0.12" ""8 M& T! J! \" }& P
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
f; y6 Q9 G% r: M/ ?1 K1 d2 G+ h - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""9 a3 i' g9 j. I6 F
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
: @" V$ h1 ^: R' c: q; l2 Z - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
3 W6 o% d1 V" l! \% p* v: C - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
G, B) v& I- _/ X$ s( q$ }, c - "M" "MANH" "C" "9" "" "Lw" "0.12" ""
1 t& H5 {+ o4 a8 v: x8 i5 j - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
3 c: e3 r' e3 u. I- u - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
' t& G% S& q, y" J$ c# h: ` - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
1 ^% R) L1 F1 `) I% s - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""! H# Y* k1 I9 t7 Z6 S% R- O
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
# _! q! ^3 p; g* {2 R2 {2 i - "M" "COT" "C" "1" "" "Lw" "0.4" ""- h6 r( j0 F4 e$ L
- "M" "Defpoints" "C" "7" ""4 y1 ?0 X% j3 M7 B" F. h
- "M" "0" "C" "3" "" "Lw" "0.2" ""5 \* f/ a$ h! q$ i
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
) y$ n! y' B% c. w4 W - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
2 t: e, e% I( y9 Q" ] - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
" F4 p, ^* k: Q5 U8 l/ x - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
7 g; ~* @, M8 C$ N - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""5 z2 h4 m+ u1 o8 @/ `
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""/ I2 W7 l6 k" n8 m7 R) X! m
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""0 b- @$ x$ E: c" W F: x
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
+ N- _* g* Y. @0 l C - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
0 |* G- p3 |& T( J - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" "") i8 I* ]/ f, ?$ k4 i
- "M" "HATCH" "C" "5" "" "Lw" "0.15" """ |- M6 G# k: T! g, p! f
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
; r( f% N' u+ Q - "M" "Defpoints" "C" "7" ""' Y/ d" y. H- Y, g
- "M" "0" "C" "3" "" "Lw" "0.25" ""
' P+ \9 {1 K9 Y V4 A - "M" "CUA" "C" "6" "" "Lw" "0.25" ""
7 A2 }3 k1 F! ] - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
7 y7 D z s6 }; ]- O$ { - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
: B' J# e1 A/ [# m$ G - S0 W& ?) ^; ~7 e
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""2 S/ b8 U, ^& A* M. L+ @- N: j
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
2 @) b8 R0 L# i2 X& ^( k0 ]+ |# Y - "M" "MANH" "C" "9" "" "Lw" "0.25" ""1 @1 [6 g7 s; g( q' T2 _- b% T
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""* ]- R u2 }3 W/ U8 A: J* p
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""3 E( B; C1 ~4 F% `* l
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
$ V+ b: u8 q6 Y! w - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" "". U; V8 q$ n, a a) h4 J1 R& q
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
& R+ b8 g8 g4 o3 @2 F0 R- y* u - "M" "COT" "C" "1" "" "Lw" "0.7" ""
: S& b1 N, ^' d" O# i$ [8 o - "M" "Defpoints" "C" "7" ""7 D5 r: K9 G5 E( |
- "M" "0" "C" "3" "" "Lw" "0.25" ""' f6 N. \% M6 f% E' \' |) n
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
! c2 y+ L2 ~2 F0 X1 J! o% Q- e - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
. w0 z% P, t. [+ [, K; C/ G% H - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)9 x4 Q) w# C( A/ D
- : G3 N! [4 X" W8 I9 L# n
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" "". c; \# q; @, R. B9 M# p
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
6 d& B; h, C K9 Q: v4 _ - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
$ |" K3 V4 ]. c5 g% Z - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""6 d; V8 O. @/ [ m; U4 T
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
- {0 d; M6 ?5 g - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
: B* l# _$ D y Q) d - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
! W4 T2 |, c1 Y: c - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""! s3 g1 J) d: ?' J
- "M" "COT" "C" "1" "" "Lw" "0.7" """ t4 A' K. x: j9 \' I
- "M" "Defpoints" "C" "7" ""% ?$ w2 s d7 F; b8 S- E
- "M" "0" "C" "3" "" "Lw" "0.35" ""- ^& W, ?) P( A7 \$ ~: Y
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""$ _1 j- G0 [( @, f9 Y% U2 ?3 }
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
2 J/ v" |% I- w3 g - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))* p3 g Z! D2 M: T/ I$ e( j
- : c* e7 m' G6 O% r7 K
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
+ d' N T$ B/ n' X7 m - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" "") |. N9 Y6 v4 X; I
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""- B# a! d8 n' i% N9 h! e
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""9 |7 [; p& m% c( B
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
1 t2 K- ?- Y# M$ s - "M" "THAY" "C" "7" "" "Lw" "0.4" ""0 B5 L4 x* t3 A. f
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
5 t/ C5 k% P7 n) _' P - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""$ n1 H1 e. Z" y" a" m6 ~
- "M" "COT" "C" "1" "" "Lw" "0.85" ""* \: K! K; W2 c5 Z+ \ X
- "M" "Defpoints" "C" "7" ""% T: z3 D0 U. F4 J# X
- "M" "0" "C" "3" "" "Lw" "0.35" ""/ k6 @9 K9 n/ P2 @( X
- "M" "CUA" "C" "6" "" "Lw" "0.4" "", Z7 x' A* X5 p; w* F a+ Z
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" "": G+ A6 }, r0 J! k4 S
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
6 q9 K8 G/ s& k -
1 H3 h3 ^6 F4 g- x: h - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
% J; @2 p- |1 f - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
% R: d/ \1 Z) ] - "M" "MANH" "C" "9" "" "Lw" "0.35" ""' w" o2 `$ \" h4 s- z" e
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
8 r( Y: d7 ?8 m N$ d - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
4 s- r9 ^% q9 Q9 f4 ~ - "M" "THAY" "C" "7" "" "Lw" "0.5" ""' p5 f( l5 O. A$ B4 h
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""2 C2 e2 V0 e2 w1 ]" ~
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
3 d* t2 {6 j! _" C U! a( t8 ] - "M" "COT" "C" "1" "" "Lw" "0.1" ""
' p" \8 ?1 T( |* e8 H - "M" "Defpoints" "C" "7" ""
0 h8 i+ `2 ]$ ~6 \) C - "M" "0" "C" "3" "" "Lw" "0.5" "", u( m# w. p, V6 f$ U
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""# [5 |" b( A4 j0 M6 @) l
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
) D' c; T6 I) t1 d( t - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
$ T" J4 e! ]/ V - (DEFUN C:O () (COMMAND "OFFSET"))3 A5 z* t0 l, \% l
- (defun c:s1 () (command "surftab1"))
1 o0 n! g: o P0 ?4 g' g" } - (defun c:s2 () (command "surftab2"))
3 d4 k* t7 H5 h - (defun c:ep () (command "explode"))
, z9 u, q* R1 t! B! m5 @* j - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))/ e2 @# `# ?" Q g( Z
- (DEFUN C:QV () (COMMAND "QSAVE"))# ~9 b2 a9 o; L
- (DEFUN C:S () (COMMAND "STRETCH" "C"))7 k* p3 A% R/ p! d* k8 _0 N
- 0 k7 \# y% o- m
- ;************************** CAT DIM **************************
" X+ q3 n$ H! s5 y5 k) V5 I4 S
t) m4 K/ v* s# T8 ^1 W% r; t- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
' e- H: E& M6 K$ [. O6 X - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)2 L8 Y2 B+ w3 m$ `4 O/ ?# {6 E
- (SETQ CMD (GETVAR "CMDECHO"))+ q9 S) [3 T S' w7 D# C j1 l
- (SETQ OSM (GETVAR "OSMODE"))8 j B4 m8 @4 |9 ?4 C
- (SETQ OLDERR *error*
# n; F/ t0 p, j. w - *error* myerror) k# c" |, c1 Z) Y
- (PRINC "Please select dimension object!")
! R% Q1 l( T* \. P - (SETQ SS (SSGET))/ X( d- H6 f2 F
- (SETVAR "CMDECHO" 0)
; h. a$ \% X4 R5 J - (SETQ PT (GETPOINT "Point to trim or extend:")); o6 P- u7 W/ r( U. n: U+ J
- (SETQ PT (TRANS PT 1 0))) C8 F' ]) }- V) S
- (COMMAND "UCS" "W")! Y/ c# {: @+ Q- ?. l3 Q) o! x
- (SETQ LTH (SSLENGTH SS))" S5 h( C3 g* U8 V8 \
- (SETQ DEM 0)
7 q) L& ^( G$ A0 ]: v* U' \5 f: I" f - (WHILE (< DEM LTH)
( V( d, q# _( r- c8 Z9 r# @: m# P - (PROGN& i* L# O7 ^" }3 ]9 a/ C! u
- (SETQ DS (ENTGET (SSNAME SS DEM))). i; c4 n( ?1 Z
- (SETQ KDL (CDR (ASSOC 0 DS)))2 ^& B" s( \" ]
- (IF (= "DIMENSION" KDL), K2 V3 R, K! U5 j; i/ N
- (PROGN
5 c7 h" H2 y3 v. V - (SETQ PT10 (CDR (ASSOC 10 DS)))$ m: h- Q* L8 {- h$ I; w. J+ D
- (SETQ PT11 (CDR (ASSOC 11 DS)))) {2 G0 t* [; Q! }
- (SETQ PT13 (CDR (ASSOC 13 DS)))
( e4 ?! h: m% F* }! V- J' @& z - (SETQ PT14 (CDR (ASSOC 14 DS)))
) q% j3 S9 o R5 } - (SETQ N70 (CDR (ASSOC 70 DS))) a/ g' u! ]9 F
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))& m8 w* F4 I5 f; F r* u7 r0 V% h
- (PROGN" M6 r v) g" e& A$ k
- (SETQ GOCY (ANGLE PT10 PT14))
" C9 g/ X8 X' |: x& o" P8 p7 x - (SETQ GOCX (+ GOCY (/ PI 2)))
6 k1 O; j0 Y4 Z8 q) R; C - ): O, r0 W& f8 Q& T+ T6 K, k
- )
: Q j( Z8 z( j" _9 s - (SETVAR "OSMODE" 0)
S$ ?7 x! d# T F, S - (SETQ PTI (POLAR PT GOCX 2))
" @/ Q# D& P' @ - (SETQ PT13I (POLAR PT13 GOCY 2))! l* m1 n# s! f6 G+ a, P0 K% j, t
- (SETQ PT14I (POLAR PT14 GOCY 2))' C7 i. f- K8 l/ i( w
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL)) u# \; ^# u# k1 b8 i7 W! ^ U# @* q
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
4 U1 X- j7 [) Y( v% n' s# } - (SETQ O13 (ASSOC 13 DS))
" u, k4 L' S; P( w! V3 g. c - (SETQ O14 (ASSOC 14 DS))- e; e2 n/ J7 ^( v. _# W9 ?. H9 g
- (SETQ N13 (CONS 13 PT13N))& N# D6 D3 y$ F Q
- (SETQ N14 (CONS 14 PT14N))
- v' N& O/ O+ M* F4 | - (SETQ DS (SUBST N13 O13 DS))( V) a, |7 {* C3 @4 l
- (SETQ DS (SUBST N14 O14 DS))
1 C/ ]- p; e' H. f" j9 Z O& } - (ENTMOD DS)8 V) w/ @) K& [6 O6 T
- ); s; D- {) _/ J G" \. d' `
- )# w% ?4 {. } n4 [9 }8 |
- (SETQ DEM (+ DEM 1))# L2 c: X) h0 ^8 \# C
- )
' b( f* x! y8 |. J - )
: E' H6 ^6 w- K3 `/ j - (COMMAND "UCS" "P")* ~# W; e% o2 y% D7 J
- (SETVAR "CMDECHO" CMD)% D$ u- C: ^4 j' T m
- (SETVAR "OSMODE" OSM). _9 J* B O1 K N. a% q
- (setq *error* OLDERR) ; Restore old *error* handler
0 W3 w& }' Y- e, J0 R1 P2 m' {. \ - (PRINC)$ g0 U' u1 J& S4 R' s# f5 _ c, @0 z& a# w
- )/ N/ u8 Y6 p Z3 d
( r* c: V9 x2 ]6 }& \" N3 b- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI/ N) O* a- S5 y g6 T
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
- }" e2 h" g f; D - (SETQ CMD (GETVAR "CMDECHO"))+ b" s4 G* z0 ^ b- }7 G/ D' _4 ]
- (SETQ OSM (GETVAR "OSMODE"))9 `8 {8 B: p* _) V2 l3 P3 `
- (SETQ OLDERR *error*
/ }. O( |9 | x# u - *error* myerror)# K5 P! I. l$ f- _ _: F
- (PRINC "Please select dimension object!")
/ _) p7 Z. t5 Q, R# @9 D5 v5 q - (SETQ SS (SSGET))5 B* @3 r' \" Q, S/ I2 i
- (SETVAR "CMDECHO" 0)& U7 s1 ^% I8 \2 @
- (SETQ PT (GETPOINT "Point to trim or extend:"))
1 C/ F5 S" b" |2 d R - (SETQ PT (TRANS PT 1 0))' o% g3 y( W( `- p
- (COMMAND "UCS" "W")
5 G% g9 j3 |# x2 S1 C, y - (SETQ LTH (SSLENGTH SS))
; V, `3 v5 `# c* Y; b - (SETQ DEM 0)
9 e3 C% g. G+ k' k) s - (WHILE (< DEM LTH)
+ v; e4 ?; p8 ?# t0 a - (PROGN
8 n- J$ C! V9 }8 J0 q; s - (SETQ DS (ENTGET (SSNAME SS DEM))). d- z6 |; b! q
- (SETQ KDL (CDR (ASSOC 0 DS)))
) J9 O* O0 ~# ]6 m& j# y - (IF (= "DIMENSION" KDL)- U9 y( H$ H1 G! K. d) D0 P1 W
- (PROGN
" Y1 r3 }; K" n4 [ - (SETQ PT13 (CDR (ASSOC 13 DS)))
' F6 R8 f( F; Q/ |/ U: ? - (SETQ PT14 (CDR (ASSOC 14 DS)))
3 j# s7 s. q* K' [3 y - (SETQ PT10 (CDR (ASSOC 10 DS)))6 S4 R' e8 z c7 ?5 o: Y- e
- (SETQ PT11 (CDR (ASSOC 11 DS)))
9 N& G# o, x3 X6 F. f. T, g - (SETQ N70 (CDR (ASSOC 70 DS)))
1 [) u* R" T& O4 d+ ` - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
: r% I, w+ Y) t - (PROGN
) Q2 u) Z; g" l2 Y' j0 C$ v - (SETQ GOCY (ANGLE PT10 PT14))
3 [0 i8 K1 P+ _. K( a: p: r6 B/ ]3 c - (SETQ GOCX (+ GOCY (/ PI 2)))% j# x [3 ?5 M" }4 t# F( Z
- )
* j4 @' Y7 ~* k& X) q - )7 r, E q+ T1 d/ V' t
- (SETVAR "OSMODE" 0)
' r7 K3 h/ T/ S. [# L5 \! Q$ x - (SETQ PTI (POLAR PT GOCX 2))9 O; O) P1 F6 p; j
- (SETQ PT10I (POLAR PT10 GOCY 2))
M/ p) n# A7 Q - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))7 W( W9 S! O* m; s1 b5 b0 c
- (SETQ KC (DISTANCE PT10 PT10N))2 W' t8 K. v' X+ o4 [
- (SETQ O10 (ASSOC 10 DS))
g1 X: k V4 i/ ~: l - (SETQ N10 (CONS 10 PT10N))
2 j3 _% D- \1 |: d h* y - (SETQ DS (SUBST N10 O10 DS))
- b0 N( D# l; ]1 a5 h* `7 b - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
) b3 l$ F( z: ] E( @0 k - (SETQ O11 (ASSOC 11 DS))
2 h# }# e5 c) [; B. a - (SETQ N11 (CONS 11 PT11N))) p) [: T2 q0 {. X a
- (SETQ DS (SUBST N11 O11 DS))
4 \( x) c, S, F9 H0 J9 e( d0 g# u1 T - (ENTMOD DS)
# U: ~- q7 M/ l - )
4 T4 Y6 S9 s! M! u) R# ~ - )
6 S8 _! ?& k# z8 m - (SETQ DEM (+ DEM 1))- M- G9 b, ]! e' L: W3 l6 [1 c
- ) S# v& z+ c: o1 i- `! B" ]5 \
- )
! X4 @& a; {6 t2 E - (COMMAND "UCS" "P")
7 I' A* r% n/ P- w* n - (SETVAR "CMDECHO" CMD)( p* Z" A2 d+ r8 P J( w: {
- (SETVAR "OSMODE" OSM)
+ \7 g4 `* J$ {8 Z5 N - (setq *error* OLDERR)) F( k) q, l6 v
- (PRINC)
7 [- R+ |* q4 h; }- }$ N4 q" A6 d ~ - )
( }6 o3 g4 ]' P/ y2 @2 U) Z) f
, U. j1 v- T$ f/ W- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================5 G& n0 d, ?" }9 ^
- , y- a2 F! ~+ o5 w( m
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
2 m7 L* S* Q4 @ p6 x/ C! o2 d8 g - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")1 O% r4 x7 m" `$ V" y' `' |
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
4 a' R/ M( c3 k4 G - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))2 A w" ?8 g& M- G: L
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
. r) ^6 K% P* s) V - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
0 z) o) s5 x w/ y# q* v/ ] - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
( t( G( S) U5 l, S+ M/ b; K6 { - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
, l K! h9 W8 h, r) I0 f% D - # H3 I0 O0 j/ M1 ^( p( {
- ;;; ================ CHEN COT (TUU) =================7 W0 K A/ n. |8 [# I
- $ o4 Y: l5 i" E5 F9 ~6 \
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
* q, H8 S, i$ ^/ y! } - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")- z5 X3 M% r( f- I4 p9 X
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
0 A; O; c9 `5 S+ _1 k - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
% l, A1 G' t; l5 \/ J1 @& s - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")* `" d& T, d8 g8 n
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
/ L, P& W& e5 \% w+ O6 `; |8 S - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
- f; X0 {$ E4 c' W2 C# z - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))+ l9 x) j9 l3 o, L1 Z" k
+ q) Y+ n2 U" F) i8 `- ;;; ================ CHEN KY HIEU THEP (TP) =================
- t# c2 H/ K1 g* P! G0 u" t - 1 R0 x( A: {- k U
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")1 z, Z4 Z8 x* b& d4 i2 b
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
% h9 g/ E7 w+ X+ t - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt- t$ X2 ?! a2 O( t
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
3 _8 O" i2 @4 b q; S0 I - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")* j2 W6 ?% ]7 m2 S5 b3 s
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))5 \! q$ i& B0 M U& c) M0 h
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
: C, u: Z7 \4 | - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))5 h+ e: {8 v4 {# _, X
- 5 u8 L8 q. y: b' f0 U
- ;=========================== TAM TUONG (TAM) =================================
5 J( s) w( S( U0 F4 T& n5 Y$ W8 H - . w3 z' `6 [- H' N9 s: u C
- (defun c:tam(/ data_m)9 ]$ L$ S# K4 G5 |: X
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
: A. g, P9 K: j# I& J - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))% m* K( H2 Z4 m& E" I3 \
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)3 ~, b& z# r( G8 o
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset6 R, X! t* J: `$ m U
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr, `7 ? R) s5 R& ]3 X* V
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ); y$ j3 K6 D' T6 @/ g0 x& K! k
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if, d8 X" O( p: H. \
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)4 \' r9 p8 y% ?: R# H# }1 E
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
) R9 \- C. f% e6 z- ^0 K4 E - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
* \' l8 C6 K- n5 p9 D* o - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<5 L* K$ I3 S8 W5 j( m
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)/ _, A9 I( W- F! K _
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
8 G, i- x( A" y1 U8 j3 I2 n - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4( z% [: s3 D9 ]+ s/ W5 t
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
( G' |# ?# Q8 q - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget! ~7 L9 v4 s7 a. e$ |
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))% ?) G2 p/ C* H
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ)): i9 B2 q! J" j1 [6 u( F
, z f: F" A+ H5 Q6 t& o- ;============ GHI CHU PHI (T1) ================
9 a& n0 o8 i1 I" O9 ]
# Y$ y, S0 M9 z/ P* m1 v- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))- q0 T% B2 R& Q7 `
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
8 u8 C. U3 q3 d5 t+ }+ O! T - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
- x0 x Y4 `; b( P/ k - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
, @) ~ {' w) t" H, O" U: y" i - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))' c0 a: f, O0 } Y Z8 u; Y$ {* Z+ E
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
. m1 _. m5 |& h! q' M+ R1 j& S - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
6 q0 q2 j! d( a/ i ~ - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
8 p7 D( c. v/ s% T! K - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")1 |6 c- ]" R" V, _1 ?
- (command "ddedit" pause))
, w4 v8 b4 Q5 m1 [$ m6 f# t3 w; c& z
' S- \4 D" n, ^ R' ]; F" p- ;;; ========================== Join (J) =================
5 V9 P& ^& W7 V5 D4 M U( o. x - ' I: h1 P# b9 f( E3 t. Q/ d2 b
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
3 d* D, @2 g+ R' {' S - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))3 F0 d+ g' C$ l( S& \0 B7 P* ?
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
5 r. @8 s% K% O6 T - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
8 A" u+ v* m8 J* L4 f - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))/ r" w/ y& V6 P4 v# i. ~) k& a
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
2 h( V5 \$ m ?" C2 D+ G4 j+ i - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) $ o% O: j7 g; k5 ]* N, ?
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))$ d+ V# D; |3 X! G- P
- (setq *error* m:err m:err nil)(princ))
5 c0 f0 X2 {8 R8 X( m/ L - 4 K/ N i% B8 S& Y3 W% W
- ;=====================================================================) }* o c- K) G; h/ x
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.* ?# a) I4 u5 m- p/ w, F; z2 z
- ;=====================================================================/ D" g# r- ], E' v" D2 c! T
& v: j4 q+ Y3 d) T5 Q+ c4 [5 F- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
+ P5 o8 }9 S- \7 b. O - (setq old (getvar "OSMODE")) . ^0 [5 `0 J% A# e1 }" D
4 T8 R$ N% B1 n' e9 N% B- (setq p1 (getpoint "\nStart point:")); Z- l: G: E; p# t
- (setq p2 (getpoint p1 "\nEnd point:"))% Q" L0 I* |9 O1 [8 |( b
- (setq side (getpoint p2 "\nOpen side")). \- s: P! A- b8 S; y9 [
- % v6 }4 M- K# d. m6 L2 }
- (setq dis (distance p1 p2))
4 ^8 A/ A" Y2 s, j4 w, m/ P" ` - (setq ang (angle p1 p2))3 i" Y) W; a d" w
- (if (< ang (angle p1 side))
% Z- \5 q/ a, q6 \' T1 E9 O) i6 C& Z; {: ~ - (setq angside (/ pi 2) )
" |' f6 J+ d2 y3 }7 C) I) w - (setq angside (- (/ pi 2)))% c/ O' h2 P0 A
- )
8 `) r9 o( C1 B3 @5 w - (if (>= (- (angle p1 side) ang) pi)
' q1 S1 K2 S* T2 m- }2 q( V - (setq angside (- (/ pi 2)))
1 ~& I0 ]4 V( f. `/ r& Z - )" Q$ H5 `( K- z, d
- (if (>= (- ANG (angle p1 side) ) pi)/ `3 V9 f" g8 m. V4 w/ z
- (setq angside (/ pi 2)): H2 u/ q# B+ R. \* `; R
- )
. ?2 [7 l v7 {4 ]# i" U - # T( m3 E+ G! Q8 O5 ]' t" C
- (setq p3 (polar p2 (+ ang angside) dis) )$ ~& l# G$ J+ y
- (setq p4 (polar p1 (+ ang angside) dis) ) z! F! Q5 V2 Z C
- (setq wid (/ dis 15))
3 N( I9 o' Z/ N( y
: O% }3 V: b' m, g U7 W- (setvar "OSMODE" 0)& u% R" Y3 |0 @3 f6 m3 q8 P
- 9 n! N9 y2 \% W" N; ]8 @
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
M% q3 X) b% ]/ w - (polar p2 (+ ang pi) wid) . d* G' `* p4 I( A% T
- (polar p3 (+ ang pi) wid)
% L/ \3 u: V9 V+ V - "")6 h) {. _6 a6 w) B+ g
- # t' ~6 d* H% s2 `
- (setvar "OSMODE" old)
! R+ g/ T+ }. \& M! g - (princ)7 Z7 h- M- W( S+ |9 M
- )
: K- Z/ p4 K, K6 N5 f2 r$ W - 2 V4 I' f* x2 H9 z
- ;=====================================================================1 Q T7 M0 k6 }; k6 {3 C$ }
- 6 Q# u" _5 e) Q8 H7 C9 k6 L
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old); n- I/ c1 [+ l" X/ d1 k4 V
- (defun cua1 (pt1 pt2)
* r4 i, a: N, k* C6 }8 Y0 [4 b. W - (setq p1 pt14 C; g a! }. Y
- p2 pt2)
8 z9 d* B' K& v2 y# y; D - : v, j& l$ @6 v6 k
- (setq ang (angle p1 p2))) `: n: O8 A0 ^% u" q9 u% K; _" W0 c
- (if (< ang (angle p1 side))
! I( {# y0 k9 T% @ - (setq angside (/ pi 2) )) ^+ R& o. Q+ d( g4 G e d
- (setq angside (- (/ pi 2)))
( F! D4 C0 {0 a# W - )
. Z% H, }$ I! x; D; d9 t5 T% F' \ - (if (>= (- (angle p1 side) ang) pi)7 Y; v" Z+ z. `1 ?# {/ [' ~
- (setq angside (- (/ pi 2)))# h( ?7 @) \* b- J
- )+ J/ Y. C; l5 |' |8 n) T/ v: \" r0 v
- (if (>= (- ANG (angle p1 side) ) pi)
7 ~6 P1 r# y# D& {# A7 T5 K - (setq angside (/ pi 2))
1 O6 ]- Q8 M, l3 ?: v2 ]2 g - )4 C7 M% y. N2 m/ a* X3 r8 t$ r
- 0 [) M( e5 L# |9 K% ]5 } m+ b1 W
- (setq p3 (polar p2 (+ ang angside) dis) )
" j# R$ H" r* e) h( ^ - (setq p4 (polar p1 (+ ang angside) dis) )3 v" j K! w3 K2 A( Q
- (setq wid (/ dis 15))
1 [3 c- w+ q6 [6 k. S. Y - . s6 Y' ?& o* e' e4 M U/ h
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
: j* |- ~/ \1 j* Z1 i - (polar p2 (+ ang pi) wid)
5 y4 u+ e1 I2 a8 d# n/ b - (polar p3 (+ ang pi) wid) 0 w( d8 ^0 v M1 a
- "")6 V$ N2 t! R3 w+ T0 R: G$ L! c( k; _
- )
' u4 G N. s4 L7 R) o$ L - ;=====================================================================
) V8 e; }# V; G) u) { - (setq old (getvar "OSMODE"))
' x2 O1 A" P0 K* s1 Z) C9 ~+ x, B" Y - q: D+ b4 u( b/ o& q# R4 D) z
- (setq p1 (getpoint "\nStart point:"))
: w) J7 |* @& _% z8 }- { - (setq p2 (getpoint p1 "\nEnd point:"))
! u; s# h4 s+ Q* Q - (setq side (getpoint p2 "\nOpen side"))! } L- F) n+ e+ h, X0 f1 k
- D$ H) R" N% D/ B7 ^) R* K
- (setq dis (distance p1 p2))
: m* K$ U: M- j - (setq dis (/ dis 2))" F8 a$ r$ h% t" R
9 V6 R- C- a7 V4 ?& {) V O; R1 n1 P- (setvar "OSMODE" 0)5 U! `- x r5 f
- 7 m2 _( ~/ o; y1 a, O4 }5 s
- (setq p1 (polar p1 (angle p1 p2) dis))+ M/ B: M3 D0 y' L
- (cua1 p1 p2)
5 K* ~9 @2 c" T
2 Z/ L0 A, l* {" `+ y {" X& O- (setq ang (+ ang pi))5 e' N& B9 Q! m$ X, p0 ^
- (setq p2 (polar p1 ang dis))
4 v2 w6 i0 c, n+ q' X: k0 Q& k - ; (setq side (polar p1 () dis)) |; ] s6 v/ N1 h2 A
- (cua1 p1 p2) 7 E5 C: O" h" \2 o
% f; K1 `8 u( M1 q5 X- (setvar "OSMODE" old)
3 ~1 B! [3 `: `2 v0 f/ s) p - (princ)& }0 Q- K! h! t1 ]& f6 C! F
- )
; ~1 Y/ \5 C" U) d: C& Z$ W
- ^5 [4 _4 {+ c- \. P) o- ;=====================================================================2 i' U7 Y; T7 |! k1 e
- ;"Glue" text strings. All adopt first's properties.
) }/ g$ ^" M8 B8 v* \& { - ; Author:8 O/ u( `5 A" R; L3 J0 x9 j, n( `- @& Q! b
- ; Henry C. Francis
2 A5 ?1 U+ r% x: M/ G" s - ; 425 N. Ashe St.
, \' ]! ?) {8 Y* S% m6 N - ; Southern Pines, NC 28387
( \" G ~1 m0 a& b S0 u. U - ; http://www.pinehurst.net/~pfrancis5 X+ z, V+ V8 }( q) E
- ; e-mail hfrancis@pinehurst.net' @5 }0 u! x& c1 B
- ; All rights reserved.
1 k1 {( g; e) O+ t - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
. N; [: y% @& Q, y; H - (while7 L/ s5 v5 l8 P$ B3 ^
- (not
7 d6 @* W% H2 p, s- ~1 t$ G - (and
/ S: ~* p: F8 m2 V4 k - (setq ename1 (car(entsel "\nSelect first text string to join: ")))/ s& \# c- w- N( |
- (setq ent1 (entget ename1))1 i7 v4 f7 [* \; {7 d
- (eq(cdr(assoc 0 ent1))"TEXT")
( \$ t! w1 R9 h! ] - );and
1 S, X j3 T' ?1 Q) c. W - );not) Y1 t0 W6 E8 c$ V8 b
- );while; x! a/ ?8 Y: R# u$ D
- (setq old1 (cdr(assoc 1 ent1)))& @% r: ]. F8 ~; S/ h
- (while
z5 u& g/ U) Y- O0 C& S - (not
7 s! `- v$ E, s+ P/ O1 [ - (and2 r r' l( b5 S/ h7 E! ~1 z }
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))
) C. e5 Q% A8 W: E5 Q - (setq ent2 (entget ename2))
' [* Z7 ~( i; c& J+ o+ \& ]/ \ - (eq(cdr(assoc 0 ent2))"TEXT")
+ [$ ?! x6 ~& L- f - (not(eq ename1 ename2))1 f# r" K$ w$ h7 H8 h t* @% g2 T
- );and
( x. Q6 p0 x) Q4 ?0 d4 n" m2 m - );not; g0 J3 ?/ W% U- q' Y5 C
- );while, Y5 t- A- i- @7 }5 r
- (setq old2 (cdr(assoc 1 ent2)))9 m4 k0 J: L& g8 B$ m" S
- (setq new1 (strcat old1 " " old2)0 F/ b" i( H7 G8 Q, p2 h* S8 v. [
- ent14 i6 h3 A! q; l, l9 o/ k
- (subst (cons 1 new1)
% H' [' ~4 v' j5 _* \ - (assoc 1 ent1)2 l6 Y4 U6 z" j
- ent1)$ K2 u% a. Y. o
- );setq1 l2 K# v" R% x3 ?
- (entmod ent1); t( J4 B8 d# L! I, l/ j
- (entdel ename2)/ E" [, E9 z! L5 \4 o8 v
- (princ). J7 W" Q$ `! L6 g5 B: n0 |- b! x
- );defun
0 F% L) a9 R( ?% M+ q - ; Z$ I3 L( X V9 A# m8 A
- ;=====================================================================
+ }+ d0 s$ V5 l
7 m, Y) v8 u z: J; s3 x: j: r- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
) G: W/ j6 }0 ~
: N& x8 Z% ]" u. a- (defun nterr (s)- t, Q$ `% S- j) @! B. T; M
- (command "_.UCS" "" "_.UNDO" "E")! @ T. \' r% }4 K
- (setvar "cmdecho" 1); K7 V; A( A; _' r8 G7 e z
- (setvar "blipmode" 0)
: Y* g0 z6 @4 C, P# b - (setq *error* olderr)
7 H5 Y! r2 B$ N - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
9 O7 w+ n: V; K, Q - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)1 e+ M" d3 U3 v8 [
- (princ)
3 k* b) y) C. t3 t$ n" i# K' J - )" c) u1 Q" Q) n; C
- + ?+ _2 y! n8 X* [
- (defun tim_in (dt / p01 p02 ktra)/ U+ e+ i4 ?- ^) ~+ b4 W
- (setq p01 (cdr (assoc 10 (entget dt))))$ S D& F" r T- P2 s& w! K2 B6 g
- (setq p02 (cdr (assoc 11 (entget dt)))): {) ]9 B" Y2 ~) ?. Y
- (setq ktra T)- G' I. g3 m0 ^% J: e# Y9 r
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) : A$ _7 h$ L$ O+ J8 d
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))7 D: E4 K5 M/ H: [. Y8 @
- (setq ktra nil)
# R, V0 ?3 C$ |. k# y5 }9 ` - )6 I% G4 S" s3 V/ P% M' h9 n: R5 P
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) 5 S |; g( {9 m9 V: i9 B& C2 G
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
+ C; H+ H5 W* W6 V; u - (setq ktra nil)2 ^6 q2 ~5 C% p5 }
- )
8 ]5 e; m2 @, m5 X3 v5 U - ktra
$ {% {1 C+ d8 v. Y& J' {$ V0 E - )
. f# g: u" b) O8 }. x3 \. V3 d - " O: D+ ~( c7 l4 T/ Y. a
- (defun timdt (dt1 dt2 / p01 p02)
) r' c& i1 T; J) j2 }; D+ U$ | - (setq p01 (cdr (assoc 10 (entget dt2))))8 w* Y. k: N# I, d; b
- (setq p02 (cdr (assoc 11 (entget dt2))))5 O" Y& S+ a6 A
- (setvar "ucsicon" 0)2 i$ b# W0 L- ^; }
- (command "_.UCS" "E" dt1)
: R( n6 A" q4 _7 E' P6 f# p - (setq p01 (trans p01 0 1))# |9 E. _6 H: T+ l c! B6 f5 Q C
- (setq p02 (trans p02 0 1))
9 p# A d' B! k8 t - (command "_.UCS" "")% \6 T' a% n0 W" y" m" Y
- (setvar "ucsicon" 1)" N" m, D0 d9 H- B+ l: z
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
" O0 h1 ?$ [% B1 r - T# {5 K3 O8 t! G; Q9 P% a
- nil
% ]% ], w: ?- e: w4 l2 _6 K1 X - )5 \! H' ?+ C/ d% x/ j6 L
- )
+ Z1 Q% p9 {. y3 t& q- R O/ Q - 7 t% j, T; |% T3 Y, \$ u
- (defun tim_out (dt / p01 p02 kt)
9 v$ [' p8 r2 J1 r - (setq p01 (cdr (assoc 10 (entget dt))))
; T( F7 E L9 D" f - (setq p02 (cdr (assoc 11 (entget dt))))1 y6 F# [7 [" K* C& f e* H
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
W- D, ?8 c8 \- k4 z7 G - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))( D# A4 f+ f; b- W# d
- (setq kt p02)1 k7 F6 t3 @) H: C0 z/ P) v# g
- )5 o3 A) ]' ] g; a+ Q' M3 j$ ?
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) $ `) h4 K5 F1 O/ t( Y% Q
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
) K$ m6 u3 x: h - (setq kt p01)" B) \) O3 \+ p; l
- )
6 g; z9 j# ^; j4 X2 F2 k - kt
# Z n6 O$ r! b+ j; {- ~ - )# Q% Y, q, f5 v9 y$ w
7 _) u/ p' T3 o- (setvar "cmdecho" 0)
- r9 A: D" @% r7 n - (setq olderr *error* *error* nterr)) J; d; h, |3 W- G* y+ Z' A
- (command "_.UNDO" "G" "_.UCS" "")
0 S ]9 O4 s- @: T% J' Y; e - (while (null ss1)
; H) z' s3 _# I# M' N7 G# Q8 J6 J - (princ "\nChon tuong muon noi...")4 o2 U% J7 ~4 ?- d3 `- K1 e
- (initget 1)- h3 N( H+ t5 ?: Q! o% D
- (setq g1 (getpoint "\n>Goc thu nhat:"))
; t& M- Q, `2 k4 D3 L - (initget (+ 1 32))
2 I' J: m4 I8 W% @" B - (setq g2 (getcorner g1 "\n>Goc thu hai:"))& p; Z% k& p2 y+ W) R
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))1 }1 O$ t3 h8 U& x% P# M' G
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))! R$ Y* G: ~& y" X
- )1 P l% [# C& k2 |& ~; ^! J
-
$ s" H2 q1 q7 d# K% D$ B - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
* n3 P2 }7 g5 w" d - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2))); `7 {+ M+ p# l6 ^5 e% K& N; {+ Q
- g1 temp), f! u( A0 l4 N6 H; t
- (setq ss1 (ssget "w" g1 g2))
E, x5 x% L3 e - (if ss1 (command "_.ERASE" ss1 ""))3 K+ ]' k$ T- \) }. |, P
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
1 e% e2 D2 u% J0 `! i+ o, U; L7 N4 F - & I: Z# G5 C% D7 q2 N
- (setvar "blipmode" 0)- N2 A* u) U d8 i1 b& D
- (setq i 0 l (sslength ss1))! w5 q9 M3 U5 `! g
- (while (< i l)
' y2 j4 ^ T) k% M1 ^' z+ w - (if (tim_in (ssname ss1 i))4 n$ Z0 s8 [# C- {" H' ^8 l, u
- (progn
1 i' Q' w. u/ [% I$ t; q6 K+ d - (ssdel (ssname ss1 i) ss1)
* f! T, Z( j( `9 T0 `( D& w( j7 d - (setq i 0 l (1- l))
2 n) p$ I+ d; _+ x - )
- q: F9 ^6 z* A5 S1 @, U - (setq i (1+ i))5 B! K. F) c) X
- )+ N+ f ?' K+ g3 Z" X* E4 x
- )' I/ M8 D1 d) ], y8 ~/ H
- (setq l (sslength ss1))
: o7 O9 B9 Y8 a/ e - (while (>= l 2)
( B/ p* T& s5 _* `% I8 n3 U - (setq e1 (ssname ss1 0))
$ ^/ x; P% {9 W6 a1 L( K1 C - (ssdel e1 ss1)
9 _7 v$ b+ ^* V# U: K1 o$ v - (setq e2 nil i 0 l (sslength ss1))' E7 I% k5 d, v1 W
- (while (< i l)
6 T& g! E) A' h" b - (if (timdt e1 (ssname ss1 i))
3 B1 v; Y, }- D. |6 O" o2 T) } - (progn
" G% D0 W( U8 j: { - (setq e2 (ssname ss1 i))
0 N/ l' ]( _! } - (setq dd (tim_out e1))
5 P4 I4 N: s& c) V3 w; x. j - (setq dc (tim_out e2))
! ]+ H4 |2 A, i" q - ). V, P# u7 a: U* U+ B1 i
- )" p1 X. Y; c5 F7 `4 q8 q4 T
- (setq i (1+ i))
1 F4 a( |! u# g - )8 g9 u( c) R, y
- (if e2 (progn
# _4 F- i, x. l' Q+ V - (ssdel e2 ss1)
% v; r% O+ ^+ w - (command "_.ERASE" e2 "")7 N9 O# F" s, G8 b
- (setq temp (entget e1))% H: M9 [2 R+ R1 Z3 d1 V
- (setq old (assoc 10 temp))6 f8 E- Y y+ l) t$ C
- (setq new (cons 10 dd))
5 S0 |/ D. p& @& b/ { - (setq temp (subst new old temp))( Z! [; U. o" K' g
- (entmod temp); F. p3 g4 K) M/ Y9 A& D# A: j$ w# N
- (setq temp (entget e1))
/ D+ l+ t7 G- x' z) l - (setq old (assoc 11 temp))4 K! A4 J5 B0 E4 o
- (setq new (cons 11 dc))
3 L% `! s, N3 I5 o - (setq temp (subst new old temp))* c) w, U* ~6 X( H; K6 p/ d; r: O; u
- (entmod temp)
' h; b1 Y" f( L9 v; U - (redraw e1)+ J* z/ p+ y. |& m+ t- }
- (setq l (sslength ss1))
/ L$ ]) t# V( r& G: p - )+ K, C9 a% C' K, S! M
- )6 v! v, q! f0 a
- )
) W4 f6 [! F- R. H - 0 |. X& c+ R8 K7 ^0 S) P8 W- \
- (command "_.UCS" "" "_.UNDO" "E")
2 G$ k' h' v- K( }) \# F5 f# P - (setvar "cmdecho" 1)
5 f) {% A, C0 M8 a: [ - (setvar "blipmode" 0)
6 D& J" T8 k3 N* ? - (setq *error* olderr)! x* Y" V7 ]" e2 }8 A
- (princ)- _! o* ?+ Z( i( h8 D2 Q( u
- )$ i2 e4 B! @, ~" C- ]* X
- ;*********************************************************************! V+ z- t. G6 i6 w: h P9 P
- (defun ketthuc ()
5 ^! q! k9 K& L. v# T - (setvar "cmdecho" luuecho)
7 J0 X2 t0 U% w. g7 k - (setq *error* luu$ \3 R& ]) `9 e9 o2 E
- luu nil
+ E$ E' [/ A$ C1 l8 N - luuecho nil8 N9 y0 g8 C3 j/ E
- );setq
! l9 V f' n: `) I - (princ)( P' b- s2 M; W1 [) u7 S8 s
- ) * x* J) q3 @% y) w0 k
- ;*********************************************************************
1 h: G7 \0 ?: s+ A - (defun modau (); ]2 f- J- K( T x2 x6 B8 w0 X
- (setq luu *error
3 V* H4 R( H" l/ D: D - luuecho (getvar "cmdecho")% F6 c; u4 Z# h) | v. S5 `5 H
- *error (ketthuc)
+ ^0 i" {. {) H# N - )& g6 ` |3 z" I+ h; I' k1 j& i
- )2 w+ p+ P- E- C7 f; A
- ;********************************************************************** O; l ^& F8 g# P
- (defun xulytext (text / kytu ma sokt luusokt lui ) J5 t, w7 U# n7 E: n2 Q, b: |
- (setq kytu (substr text (strlen text))
% _4 M4 O- T. F1 d5 @7 z - ma (ascii kytu)
, R% x* o5 r4 N. W8 u8 V9 b - sokt (read kytu) 0 S; U( `: ?/ ~8 j T; h% z
- lui 1' i- Z; a- ?% o) b" Q5 o
- )# a7 L* f7 Y+ ~5 ^
- (if (numberp sokt)
6 `3 z) d9 l% } - (progn$ m9 ]0 {% X: _# d, e
- (setq luusokt (1+ sokt))
" `9 Z) R3 B) C# @" U* H: E% o0 I5 G - (if (and (numberp sokt) - s2 g; l8 j& i
- (> (strlen text) 1)4 [( z, {$ @- P8 ^* t3 x k1 t
- )
6 C" M) n3 t' Y - (progn" c0 r* l: G$ ~. Z! h% x9 u
- (setq kytu (substr text (1- (strlen text)))) P& `' p6 ]" Q2 k, A, s
- sokt (read kytu) , Q( v8 ~0 ]2 x) x; r, V
- )
: C- w7 ~- b, v2 q - (if (numberp sokt) % c, t; B/ }$ w' T( k- n9 j+ q
- (setq luusokt (1+ sokt)4 ~" D D1 ]) q
- lui 2
" o9 Y$ B& W9 F9 \
8 C8 G# {. Q& r' F* C3 x- )) P6 Q, f3 f% N
- )4 o2 p+ f# u+ F1 I$ v4 Z+ j
- );progn
6 U! s, D. l& }; D' s+ O - )
$ p' H/ e0 ^# @ - (if (= luusokt 100) (setq luusokt 0))
$ _* x# ]# Y6 w& I$ _ - (setq kytu (rtos luusokt 2 0)
, P. W; I) e- r' [# [* w" r - $ V4 l# k- K2 a: f: N! P
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)) V1 v2 o4 R9 p* |
- )
* I* ?9 m1 o9 _8 G/ g$ k - );progn 8 x1 g. S6 L% Q4 T' D4 H
- (if (or (= kytu "z")
: f2 C. x. x: l' h - (= kytu "Z")* }- D# j3 \0 v- P9 B
- )
3 s7 X" t9 ~& @4 v8 q" ] - (setq text (strcat text "0"), M& [7 S2 e0 q* c) Z' D
- textxl "0"
/ z( f# t) h) d) o - )4 Y _/ o" U9 }1 k, s- ^% I& i7 r0 B
- (setq ma (1+ ma)
! |( G$ |0 z" `( V) l - text (strcat (substr text 1 (1- (strlen text))) (chr ma)), c4 h; M8 l! }2 _1 }1 f+ s- A
- )
: q: U* e) H D( f. d - );if
- A! `2 `0 L* } X" c - );if" u0 z8 d4 ?9 `' j( k
- )
2 l- b Z2 A* y( Z) W. e - ;*********************************************************************" P+ ^" b4 Y# P: k N! _
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle); d+ o0 {6 G% |4 M/ @1 ?
- ;Neu doi tuong la text thi tiep tuc* _& Z8 k! J& f4 c2 X
- (setq doituong (entget tendoituong)
: y8 l8 R% l# z5 ?+ x - kieu (cdr (assoc 0 doituong))
2 D' e2 q% W6 V/ [. {' r; [6 f - canle (cdr (assoc 72 doituong))- r( Y5 v( s' c* k5 J) Y9 w" ]) d3 v6 f$ U
- ) & l9 F) t. I9 p' d I t
- (if (or (= kieu "TEXT")
' x2 E+ I: |2 Z& H; ~0 I - (= kieu "MTEXT") % k* D* z1 D) Y6 N1 x& ]
- )
0 O2 h! o5 m$ Z( Z1 k& f q% z - (progn
5 I' p5 |( t% j' k" J; k7 h6 r - (setq textxl (xulytext textxl)' U$ i o6 i" J" w+ E% D& f& N
- text (cons 1 textxl)
9 ?- Z# U$ m: h# B8 j6 T0 X - vitri10 (cdr (assoc 10 doituong))% ^: z, Z$ ~* {' Y) r6 J
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
1 T/ Q- @; H' \$ R3 \ - vitri10 (cons 10 vitri10)5 J/ N; O; L" \$ j; s
- vitri11 (cdr (assoc 11 doituong))) t t3 |$ s* E9 ?
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
* \1 {! Q: R! h4 Y$ y9 T( d e - vitri11 (cons 11 vitri11)
! V- `( m4 @' u - dem 06 _- Q7 l! p. B) }7 W$ [8 c) B7 ~
- dsach nil
$ Z6 Z8 U4 s* ]6 C - )2 A% t: s4 n1 O) L1 h
- (foreach tam doituong
8 D1 j& g- a2 W - (cond6 q$ C7 H4 U6 @3 d
- ((= (car tam) 1) (setq dsach (append dsach (list text)))): k) b8 D- L! @' o: f
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))6 B! a k, n; L$ n; p
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))1 V5 W D2 u& M9 I; O1 y
- ((setq dsach (append dsach (list tam))))( O( h! V4 N9 |, d, t; z, }7 F
- )
v1 r& N) L8 j* A7 M: z - )
! i& I- x; H: K2 \* P* l - (entmake dsach)2 |# b# w6 d% x
- );progn3 }/ f, e* ]# R. |* J- e! x! b* x/ y
- );if
* } l, H4 ~4 M) a - );7 y) O# l* R$ Z7 k
- ;*********************************************************************4 |& u# H6 M7 R" G4 I
- ;sao doi tuong cu sang vi tri moi7 a3 u" |3 ]$ t5 e3 p
( r1 t/ g" {( l& r2 E- (defun copy_dt (tendoituong )2 X: o1 v* R6 l( _
- (command "copy" tendoituong "" goc toi ). T- t$ @4 n) W6 G
- );defun; |6 L: z3 o3 L3 i2 Y7 [/ m5 n& C
- " o% _" m l/ z% n0 c
- ;*********************************************************************. @ S4 [% `2 C8 `
2 P) w6 j! x& p( J- x0 Y- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
" J- v* F& S- c9 G4 v( z( ?- ^ - ; Khoi dau cua chuong trinh: n4 D% x# r2 Y+ E4 @1 m. B7 ?
- (princ "\nCopy Inteligent...\n")% \3 C4 ~8 t8 q( }8 x
- (setq luuecho (getvar "cmdecho")5 O5 t: j F1 U
- luu *error*
( t8 C) ~% f: G) D3 Y+ o - *error* ketthuc: L6 ]- }0 \/ @# r
- cumdt (ssget)
z0 G B+ q- X4 e, s+ i! A$ B - dodai (sslength cumdt)0 a3 w7 \+ g) A8 f. E. I: n! z
- goc (getpoint "\nSelect base point:"): [. c% C5 h" ? s: F! N& t0 F+ K
- thoat nil
/ r7 J# X' C( i' [# @0 S1 }% g - dem 0
/ n3 e6 b! L8 P$ R# E5 }& |4 X - textxl nil* c5 x9 w* [: t4 H
- );
* n% v* C+ y" ? - (setvar "cmdecho" 0)1 `6 ]8 J9 w/ Y6 O, b
- ; Loc ra duoc ong text de xu ly/ t3 h( f l0 _9 u2 m! X: H
- (while (and (= thoat nil)
2 C5 e! S$ w; W3 g - (< dem dodai)! I6 j1 C7 d8 y! y
- )' I' r, n/ H: J) C! d
- (setq ten (ssname cumdt dem)2 c5 s6 I* S% I3 Q9 ~0 a
- dem (1+ dem)! j" t2 O1 d( F/ y& f: e* X
- doituong (entget ten)
. O- e* {/ @, o& A9 Q" }/ n2 y - kieu (cdr (assoc 0 doituong))
* W6 V- t& W( p& J - )( X4 \ e* T+ B5 m+ P- w
-
' t0 d; B1 o& {3 w - (if (or (= kieu "TEXT")
. l2 g+ _% t- y/ S1 u - (= kieu "MTEXT")
5 i- F. @9 J- ]$ y' L* K - )
" a0 D& p- l$ O - (setq thoat T
& Y. q1 C1 C) B+ V% o% z" { z5 {! Z - textxl (cdr (assoc 1 doituong))
5 M, ?' o- }: L5 P) }% N - ) _3 l8 a" a; V: h
- )
2 }9 D' y8 \. g2 v - );
1 }# U6 ?" E& K" H - (while T 0 z/ V7 w% w7 b+ f6 ?4 J8 y
- (setq toi (getpoint "\nSelect next point: " goc)9 V4 f0 Y+ A+ p6 e {3 G+ L
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))- O- T; V; _/ H, h6 K
- dem 0& S( X2 b: C7 B+ h/ z8 j
- ), V. X$ S8 e9 x' s* p1 C0 x1 o$ X
- (while (< dem dodai)
- `; k H2 l6 ]5 h3 Z6 O - (setq ten (ssname cumdt dem)
3 C, B- P$ |$ v - dem (1+ dem)
1 h2 Y1 t1 E) H7 H - doituong (entget ten)
7 f6 a* I! i3 N* e. z - kieu (cdr (assoc 0 doituong))
! d% ?- y( c2 _! ]( V& c - )( y ]+ Y+ M( O3 i" z
/ k/ h+ c' c. t! A/ }- (if (or (= kieu "TEXT")
: G& }* w! c3 M3 y - (= kieu "MTEXT")
1 ?. ]/ A, E* J; m. z! _7 O - )
/ L' ^7 U5 t! n9 e7 I2 i6 a - (doitext ten), R2 L9 G& q1 o7 `! o* b
- (copy_dt ten)
' R7 C: X$ `+ C% ^; a% p" |+ m - : R+ V+ r5 V5 d" e9 m5 n
- );if" v% N$ K0 u" i% p' q5 ~9 n
- )6 }" j$ B; n* a a/ F
- );while+ j# Z/ X: \1 d& F! t% w
- (ketthuc)
. \* K- _2 D8 F3 I' ~ - );defun
* B) a( {4 \" \4 m; f - (princ "Type \"DG\" to start")
$ r! c7 C9 [* {0 W) K - ;Note: bien toan cuc: textxl vitrilech
* Y$ T4 M/ G# D# y
8 ~9 o R( x1 N4 v4 ~7 H4 _/ l1 r: O# x- ;=====================================================================
, U b7 m2 Y7 S2 [/ e" y* q - ;;; PLJOINFUZZ.LSP4 K6 d3 J* x8 d& c% c
- ;;; Joins lines, arcs and polylines using a fuzz distance* i- h$ w( x( @, L9 T2 Y! y
- ;;; If only one object is selected it tries to join to all objects that are possible
, j* ^3 v- t& w8 \( S - ;;; By Jimmy Bergmark
; d, f8 V- y) Z. [ - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
5 H8 N, p7 T6 l* d - ;;; Website: www.jtbworld.com
( k' B" H. V- _1 `2 r+ Y - ;;; E-mail: info@jtbworld.com
* W# C) c- U$ a& U5 T - ;;; Tested on AutoCAD 2002,2004 and 20056 D& X2 ~1 l( H' f3 |. e# f0 _
- ;;; Latest revision made 2004-11-117 o) ^8 |) }/ R: m$ u% x
- ;;; Minor code cosmetic change made 2004-11-134 e" A/ C+ X) }
- ;;; Bug corrected 2004-12-232 ~0 B; a1 E4 Z+ D
- 1 {& l2 [' V8 J9 t2 H3 y8 ^( t7 h8 C
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
( Z( p% j9 J1 M. c: F& G - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
3 q% Z; N! Q- q/ F" b/ a" ^- r - (setq oldcmdecho (getvar "cmdecho"))) ]" Z* P" q) V" b/ r$ c; r0 y: V
- (setq oldpeditaccept (getvar "PEDITACCEPT"))5 e$ G. ^" b% i; x; y j- B
- (setvar "cmdecho" 0)
2 c) F1 O% h0 e/ N0 ^! ^ - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
( X0 l. _% c% S, V6 u8 | S - (if A2k4 (setvar "PEDITACCEPT" 0))
( v' ?3 ~! i4 m6 N- ~ - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))) R* i) c- \& n) T
- (princ "\nSelect object to join: ")
7 M% @6 R* [7 c - (setq ss1 (ssget okObjects))
' m4 |: i+ i/ C4 c$ r - (setq fuzz (getdist "\nFuzz distance <0>: "))' ~# Y% T) u. `% H: B
- (if (= fuzz nil) (setq fuzz 0)), j: x. F G, t% `6 H
- (if (/= ss1 nil)5 j# C% _; A( R0 ^( E
- (progn& s) ]: `9 [' x6 T. E
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0)))))) [+ g3 T: t' O8 I ~3 g
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))( b9 a! r$ T" {6 D
- (if (member objType '("LINE" "ARC"))
% ^1 n- W' @* G; R - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
/ M5 v& y. X$ Z& h% D - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz ""); ]1 i+ P& W' V, \, z% G
- )) w/ M; M; A* G5 i6 c2 k5 B" j( H* H
- )+ H6 W+ U9 b0 H \5 C# L) B
- )
9 U2 X! Y+ e7 |8 g) B& Z% G - (setvar "cmdecho" oldcmdecho)6 k2 e4 q0 v1 B& a$ h$ Y8 a
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))% {! ~5 ]1 Q8 i: ?5 }( O( m
- (princ)) _7 D5 A& B' d/ ]
- )
2 n' l- U8 b" W0 G - " Y9 _4 e6 s' c: [1 [; A" i
- ;===========================VE CAO TRINH===========================
9 e; i$ n" O: P
5 v3 Z- W5 Y0 F+ X3 k: W- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
+ W- L& ^$ L6 u5 J' N& E - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
0 y9 _: f& x5 f7 X" q$ T - (SETQ OLDERR *error*
: V5 I. J, ]* ~! s2 a - *error* loisb): k: U0 L: S& b
- (command "layer" "m" "dim" "c" "" """")/ D9 ]$ u. H" l( v" {+ L
- (SETQ CMD (GETVAR "CMDECHO"))
6 _- W G$ v* g) F1 _* P# z - (SETQ NBC (GETVAR "CLAYER"))
- p& y& g5 U8 b3 S( [, U" p1 b - (SETQ OSM (GETVAR "OSMODE"))
+ ^, v* J' c4 Q0 ^ h7 p - (SETVAR "CMDECHO" 0)% |- `/ j0 W6 J& L y
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))/ _ E# ?: ^! m/ M5 }. M7 P
- (SETQ TX (GETSTRING "\nCao trinh:"))8 m D7 q3 j7 ?
- (SETQ FCH (SUBSTR TX 1 1)): R' k0 q: U; o x# e7 _
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
6 J3 D( k) g3 B+ n. W - (SETQ CRST (GETVAR "TEXTSTYLE"))
% b) p" c7 }' e" O% p7 Z - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))* `& H6 E* O6 P, S+ ^8 m; P
- (SETQ TSIZE (GETVAR "TEXTSIZE"))+ S) T/ x& o; K0 f! p( ]) D2 R" q% o) U
- (SETQ STR (RTOS TSIZE 2))' Q0 ?) a7 R2 \# v+ u
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))4 Q* g+ y/ o: C e. F" v
- (IF (= RSIZE 0)
1 W* z/ s x# \ - (PROGN/ C8 R- @' C! _0 `1 u3 h0 [. |/ Y
- (INITGET 4)
. b+ L$ B: X* `% U6 A% b0 u X - (SETQ TSIZE (GETREAL PRMT))
" y% F6 v) M( a4 {3 h0 [! C5 c - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))7 |2 N8 {1 G s }
- (SETVAR "TEXTSIZE" TSIZE))
, F6 |9 I2 q. [" g! U, W' | - )5 i8 Z7 A. w% y
- )+ u9 k" A& T3 }8 ?+ I% m$ X$ K
- (PRINC)
) A! P) m3 I) H. g; ^% } - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))# T5 N& D( e1 D8 I5 C9 p2 @7 i- L
- (SETVAR "OSMODE" 0)
% w* C2 L5 Q" ?1 i& { - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
L9 u2 Z8 \; e2 p" }( I - (SETQ NPI (/ PI 2))+ d/ e: H: p7 V) _0 @+ V
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))& m4 Z+ \4 e: D: R
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))8 D5 I( @" ?, Z" Y
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
7 ]' |' @4 c, _4 ]- u( r+ V/ P) F - (SETQ PT5 (POLAR PT4 NPI (* 5 TL))): r; N5 b8 v' ]9 g0 c1 ?) z
- (SETQ PT6 (POLAR PT2 NPI TL))
7 K2 u: a7 h+ T' s v4 }; Y - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
) f+ h. g, K5 [3 R& t - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
3 c3 R3 r# W* D( N1 e - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
+ Q& H+ {/ J2 }5 x - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))1 s9 Y! f3 H6 b4 _1 L; T
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
) ~! x5 I+ G- Y5 V# I* h - (COMMAND "COLOR" "7" "")
7 C( X/ T* c: x3 Z - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
, |; a! E! A8 ~2 r) \! o - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
/ H6 a/ _( W" r3 t# r% K2 s - (COMMAND "COLOR" "BYLAYER" "")
6 ?2 t0 m9 Y* D$ ?% G# {' d3 e: f - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
- E1 n3 ] K8 K; K8 U. ?6 [ - (COMMAND "COLOR" "BYLAYER" "")
. W, h% Y/ @& q3 D m) V1 k4 I - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
% Q1 q+ @! Y# s" }3 @ - (SETVAR "CLAYER" "0") b( f2 t- C/ |% x9 x3 n2 g
- (command "ddedit" pause)
: d; | n( B( z% x5 Q- N( f6 G" s - (COMMAND "COLOR" "BYLAYER" "")
% A! G) _6 _# S- K - (SETVAR "CMDECHO" CMD)
) V0 f, @! {* j5 t% _/ i X! @: Z - (SETVAR "CLAYER" NBC)8 l. z4 g( m2 M
- (SETVAR "OSMODE" OSM)
% v! i6 ?8 z9 S/ y8 `. N# Q, H - (PRINC)
& Z+ _+ C( {. n, c, B$ I - )
* {9 @0 v# d" X: I - / |9 l/ H. y3 \& W; C1 K$ m6 Z
- ;;; =========================== VE NET CAT CHEO (GC) =============================
5 n7 S$ l4 i5 t - . b: j3 {6 F( V
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)7 v; J. v6 c- y% M% A3 ^
- (setq x (getvar "osmode")). S! h) F8 n% z1 H4 v
- (setq p1 (getpoint "First point : ")0 j! V& Z8 C+ V% \# D. D' o
- p2 (getpoint p1 "Second point : "))
; x5 U" k! m1 ]" t) I _ - (setq l (distance p1 p2)); A# M1 s3 k1 ^6 R" y
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))* o G6 g/ r$ l2 X1 E
- p12 (polar p2 (angle p1 p2) (/ l 5)))3 r" F1 j. {4 O2 R* O
- (setq ang (angle p1 p2)): _, o$ s% P$ |5 T2 |+ M2 x
- (setq p3 (polar p1 ang (/ l 2.5))
8 ]3 f( h! {/ |: H" ]+ p2 ^ - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
" S8 E- z. j) |% G J - p5 (polar p3 ang (/ l 5))/ I& z) n! S7 z, {; ~* f" k1 Q
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
0 N; [9 G: G$ q* w4 W; T - (setvar "osmode" 0)
* j$ ~1 j7 T+ \5 }' U* N - (command "pline" p11 p3 p4 p6 p5 p12 ""); t4 X9 t' i8 T8 Z* ~, b1 w2 F* M9 K
- (setvar "osmode" x)
; x$ [7 j- J" H - )
8 V6 c' w8 d! v4 j6 ] - ;----------------------------------------------------------------------------------
0 Y$ J" m4 N8 x6 `% j2 L4 B# r - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6; X4 L7 q+ a9 k% F( O Z* y4 G h
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE")) j& h' Q/ J. n# U# x3 h V
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
' {2 z5 Y0 S8 t& W3 `3 q - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
" ?7 N# S! V0 w7 p8 }& \& F - (setq sb 50.0 sh 200.0 se 20.0)2 c, p6 ~$ g; o( T+ S
- (setq ang (angle ps1 ps2))
# e5 u* x$ W/ D+ n# [) I% U - (setq pf1 (polar ps1 ang (- 0.0 se)))3 X) {# P$ z9 a3 N- ^
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) )); ^# Q8 w& m2 M! d
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))) S8 ~% V0 S1 e2 }
- (setq pf5 (polar pf2 ang sb))7 L% O. n$ M9 F$ _% _) w
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))4 ]6 }4 p" k6 o
- (setq pf6 (polar ps2 ang se))9 y% r, U4 \6 u d% J, j9 N
- (setvar "OSMODE" 0)
7 P t) s7 W# i: _! }5 x1 J: C- e5 E. G - (setvar "BLIPMODE" 0)
) Y- F$ O8 E) V$ V - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
$ c$ |9 {8 ~: K. ~" J" v - (setvar "OSMODE" 703)
4 y. Q9 p) x+ j - (princ) )
# M \$ _1 l p) s$ E/ \0 C8 b - ;----------------------------------------------------------------------------------
6 t& ?3 @ }! Z$ L* T8 x; ^ - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6% f% F6 k: j& r2 |
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))# t1 z2 |: K1 X/ Z [7 k/ U
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
4 z! ]# Y# ^% W, Z0 G& | - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
O/ \1 k0 h1 N& E7 o - (setq sb 100.0 sh 150.0 se 20.0)
% I4 M8 q* I) g - (setq ang (angle ps1 ps2))
0 ]" A: q5 y& N/ c0 y4 Y8 F2 { - (setq pf1 (polar ps1 ang (- 0.0 se)))
6 ?! B8 W" Z0 ?: S5 b - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
& e. f h! s0 a& Q% ~1 f2 ^- G - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
; W, g/ k: Z3 a% Q1 y% D( E - (setq pf5 (polar pf2 ang sb))5 u6 ` E8 b) Q! E: ` F7 U: K3 ~
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
2 o" ]. Q5 _1 z) Y- n# d - (setq pf6 (polar ps2 ang se))& U: `$ w9 Z" Y7 c- ?2 \
- (setvar "OSMODE" 0)
$ S! ?- S$ K- h - (setvar "BLIPMODE" 0)
2 D8 ~4 e' \8 n' P/ Q( M# v - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")* q, M9 y: W( b2 p. B6 N: T7 _
- (setvar "OSMODE" 703)0 [- G/ n( K+ ?! N+ L) x
- (princ) )% F# _* W4 f+ |- F% Z% |
- ;----------------------------------------------------------------------------------& j2 c" e x& R* b6 [4 _
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6- f! U0 q( R( x" e+ ]' h* H' E& e/ p9 L: x
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
2 Q8 ] s& b. p4 H - (setq ps1 (getpoint "\Chon diem thu nhat: ")) g1 s; L' ^; m( w+ n' h
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))6 f/ B; q+ g( V
- (setq sb 100.0 sh 250.0 se 20.0)) Z3 A4 ` d! [! T$ B
- (setq ang (angle ps1 ps2))9 A5 V8 i& S2 p1 y
- (setq pf1 (polar ps1 ang (- 0.0 se)))
) |+ B( }) J/ K Z' F0 L - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))' K. C: T% I( w. d7 u& w$ r* Y$ P1 I
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))% |3 P; ]2 Q; K
- (setq pf5 (polar pf2 ang sb))
" c$ y: @/ X) n1 i3 F) o- { - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))* {+ \: p+ a1 Q
- (setq pf6 (polar ps2 ang se))5 ^4 U1 e1 b' j6 J- h
- (setvar "OSMODE" 0)
. k5 B) v5 Y1 ~) j% i - (setvar "BLIPMODE" 0); B% S- s) V7 e0 G. j: b8 O- h! e7 }# O
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")! Q4 u* K4 w* K- W7 W/ b* M
- (setvar "OSMODE" 703)
( C- |( Y% A9 c8 v; Q+ A/ A - (princ) )
; N- e7 n: r4 j1 w
* Z7 U. s; C7 C7 M* @6 C- ;==================================================================================3 c" F0 \* X$ V& m. j8 \- f4 V
- (defun c:ang (/ ent pt1 pt2 ang)
$ |" `( R7 F% u, P* W& | - (setq cmd (getvar "cmdecho"))/ c, N9 f9 I8 g
- (setvar "cmdecho" 1)
1 M# C4 m$ @. t$ ]+ G2 } - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
$ b8 }$ H/ o( J, C* O - (setq ent (entsel "\nChon duong thang:"))
5 }/ S5 z' v7 K+ ]8 D7 c2 E - (if ent : r- J! O' |5 |0 }
- (progn8 N- w4 N) p3 O Y
- (setq ent (entget (car ent))): P* E3 Y% G5 b* s; t: T
- (setq pt1 (cdr (assoc 10 ent)))& i# h2 I0 H+ |8 i0 a; l
- (setq pt2 (cdr (assoc 11 ent)))
% q, D3 G0 i7 E5 H - (setq ang (angle pt1 pt2)). z3 \1 _% `# \( K
- (setq ang (/ (* ang 180.0) pi)); A; [) [5 E* r. s Y- {) r
- (setvar "cmdecho" 0)# M/ D9 v) M9 ~% u: [$ o# E- O& ~
- (command "setvar" "snapang" ang)" ?) Y1 `$ ?7 U; k9 o
- (princ "\nGoc cua truc toa do moi : ")
9 x* V6 {" \7 [6 S/ l$ F - (princ ang)9 {: M( ?# w6 H; _; e8 F
- )
$ T: B% t* ` P5 L7 j5 ?# z1 j - )" Y2 H' b7 j, A8 Q7 P" ~
- (setvar "cmdecho" cmd)
6 x: N" Q6 [5 q- e, I - (princ) I4 D: e6 f% S: K4 U
- )- F: F" n) F( m! J. l2 I: h3 c
- ;==================================================================================
! i( ?; }$ H" p; F- F/ o% l - ;============================== KY HIEU DOI XUNG ==============================( D( `( Y" ~! H( b
- ;==================================================================================' q6 a' y1 I8 b1 ^6 l0 S `
- # c% m P; a% ^9 Q) V6 q0 r
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9( `, t5 z/ ^/ |; s0 A0 k
- SZ G45 G135 G90 G180 SS loi)
3 N* I# n- A) I7 Z2 k3 E7 x - (defun loi (s): C8 C* A# @6 D9 {9 y7 i$ g
- (if (= s "Function cancelled")
( }. W& K; s+ y: R: o3 A# b( A - (princ)1 ?1 s4 }: i3 M; Y
- (princ (strcat "Error:" s))+ M0 e1 e* b$ t, U! v0 f, v
- )" d( r# z! p3 U5 j
- (SETVAR "CMDECHO" CMD) a1 w u1 m7 O( s
- (SETVAR "OSMODE" OSM)
3 l2 Y' t% Q8 u+ d+ X8 z I$ o - (SETQ *error* OLDERR)1 t4 m. K0 y4 X, x- \
- (PRINC)9 ?+ d5 R5 v8 E1 x' f! G* \
- )
8 J" @( N' O8 ? - (SETQ CMD (GETVAR "CMDECHO"))( L% ~& \5 ^7 D. q7 L/ A) \
- (SETQ OSM (GETVAR "OSMODE"))8 _4 \+ v9 H, B, H9 i5 A5 L
- (SETVAR "CMDECHO" 0)
2 j- L/ L$ x% c0 W; W! L% l - (SETQ OLDERR *error*
' N( P+ c- C" D5 i( `/ `0 T - *error* loi)7 G; Y+ z1 L2 b3 _
- (SETQ SZ (GETREAL "Size <1>:"))# {6 D, Z6 z% Z( [( P" K
- (IF (= SZ nil) (SETQ SZ 100))) x0 {7 s: ^6 @$ b! [
- (SETQ G45 (/ PI 4))* z0 J5 j% D j. X1 Y
- (SETQ G135 (* 3 (/ PI 4)))
% P u2 v# k4 Z$ g' \ - (SETQ G90 (- G45 (/ PI 2))) D3 b, u6 D$ I+ H
- (SETQ G180 (+ G135 (/ PI 2)))
% o- b9 {! o; a" A* q: c - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
1 C% l( q5 i" p: g1 Q - (SETVAR "OSMODE" 0)5 M E( L( w+ D/ a }1 m
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))7 c( h5 x7 A& H3 W
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))% v- ?1 L. x# L" V+ X( ?
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
" F% f; D9 w# H9 {" `; { - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
- h! v \' s# d; Y; Q1 D - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
0 F u+ ]6 c4 o- Q3 O - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))! B4 u- k. {9 x
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))9 J" F. L: L: S0 i
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))# |3 w! Q% A% ]7 f2 C
- (PRINC "\nGoc quay:")' `* u. R* }& O* \) r0 k
- (SETQ SS (SSADD))
: q: o* L; `2 v, Y! k7 D - (command "layer" "m" "Dim" "c" "" """")3 d1 T4 H. l# `9 G) h
- (COMMAND "COLOR" "1" "")4 h& s6 Z! _$ x+ B* N
- (COMMAND "LINE" PT8 PT2 "")# ]: ~ c) p& i7 j4 U0 s8 d
- (SETQ SS (SSADD (ENTLAST) SS))
1 f. Q- i) z* C. b+ y5 E6 p% ` - (COMMAND "LINE" PT9 PT5 "")
5 u, @, `- ~- V* V; s" t! M - (SETQ SS (SSADD (ENTLAST) SS))
e# l J; Z" ^( g7 C. G8 M- q; d- s, C( Z - (COMMAND "COLOR" "1" "")
4 I% H6 |) j+ G- T) g$ Y8 O8 J - (COMMAND "SOLID" PT2 PT3 PT4 "" ""). V9 v* M: L# i ^3 Q
- (SETQ SS (SSADD (ENTLAST) SS))3 P: c; M y, \3 j% k5 |
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")+ {0 R* S4 O- X8 V
- (SETQ SS (SSADD (ENTLAST) SS))7 ?0 |; x' A* V. x" j ]' X8 m
- (COMMAND "ROTATE" SS "" PT1 PAUSE)
0 \1 p& ~% g: v% Y. q7 } - (COMMAND "COLOR" "BYLAYER" "")1 q8 `% x8 T; U3 \
- (SETVAR "CMDECHO" CMD)( r' D; X& i; ?: q( M, V1 N
- (SETVAR "OSMODE" OSM)
J+ n- }* ^/ r9 J4 K6 N - (SETQ *error* OLDERR)
7 z$ U- u. l7 _! k - (PRINC)
# A9 H Q/ {% x - )
7 G- B5 ~ H% x* ?7 r
7 _# M J4 j1 b5 ]# G- ;==================================================================================; X. J% \6 a! @7 S7 O
- ;================================= KY HIEU TRUC ===============================/ }2 [: E* p: D" G( b T
- ;==================================================================================, v. B7 D$ K- f+ q5 X- P! }0 r
- , t! i! y9 k' s
- (defun C:vetruc ()% |: q9 {' c5 L' y i" Y. p
- (setq bk (getvar "USERR3"))
2 T: s4 L7 ~% a5 t/ L - (if (= bk 0)$ g4 N* B% I: d" R- x
- (progn
! P6 E" ^* @3 H- ~3 Z - (setq cont "1")$ v' X& e1 q& U3 @* o
- (setvar "USERR3" 1); y8 M" z7 _6 v! P. m4 H8 ^" {
- )/ ]: c! r) g* @
- (setq cont (rtos bk))' D2 f5 a) f! V7 s% I% _
- ) {- u4 ?- u7 M, r$ t |& J9 |
- (setq pt1 (getpoint "\n Nhap diem dat:"))
& \. m0 j! }" h+ Y# F - (command "layer" "m" "Dim" "c" "" """")0 q+ h. q+ p1 H. d7 H& ]
- (command "osnap" "")
% t( R) N( n' j3 T2 a, p% v6 R! h' \ - (COMMAND "COLOR" "7" ""): K0 w# a" j2 G! ]( r
- (command "circle" pt1 150 "")
5 M3 B, o7 z& \: v, \7 U5 G0 ^ - (setq pt2 (polar pt1 0 150))" H" s# i* t- _! [! h4 `. h
- (setq pt3 (polar pt1 (/ pi 1) 150))
8 q6 w$ n1 _8 B6 G$ ]* e - (setq pt4 (polar pt1 0 300))4 l: J* A! l. x1 t
- (setq pt5 (polar pt1 (/ pi 1) 300))
( [7 ~8 k( x: U3 ^ - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))$ W7 l) R: q: x# x3 `
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))5 ^$ G2 y, p- r9 u! D# v e
- (setq pt8 (polar pt1 (/ pi 2) 150))! Z- l: m5 ]* P+ z; S$ p
- (setq pt9 (polar pt1 (/ pi 2) 300))
- \) {: ~0 S$ @# f* w/ H - (setq pt10 (polar pt1 0 150)) z7 ?* F4 H. o- F
- (setq pt11 (polar pt1 (/ pi 4) 150))
$ {% {, ?! A' c4 K - (COMMAND "COLOR" "BYLAYER" "")! i9 {" M# V9 j% H7 q
- (command "line" pt2 pt4 "")/ U( P( ~: Z# F
- (command "line" pt6 pt7 "")" J1 N! ]; p' C
- (command "line" pt3 pt5 "")
, _3 q4 X, G5 |+ ]! K - (command "line" pt8 pt9 "")4 v0 a( L* d+ T& ]+ P6 [
- (setq dk (strcat "\n Size:<"cont">"))( q% \1 z1 G0 M
- (setq bk (getreal dk))2 n4 Z9 R$ T# T! e n9 u
- (if (= bk nil)$ [. N4 a& |( S3 ^+ A7 E
- (progn
3 j1 k9 C* \. u - (setq bk (getvar "USERR3"))
. k% B }5 N2 b; [# `! O - )
' M1 c/ ~$ B( j7 w9 \ - (setvar "USERR3" bk)
! t& u+ k3 n4 `8 I" D0 K - ); W: u; O1 @4 d- i+ e
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk""). _" R+ a" l2 ^; q
- (COMMAND "COLOR" "7" "")
& W8 C; Q) T( r$ q - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
: A g# y$ h" B3 e7 {8 y/ K - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") 6 E4 p- V3 D S& X" ]
- (COMMAND "COLOR" "BYLAYER" "")5 B7 x7 G% p% t6 m
- )+ Z$ I- T7 S% U
7 d# C2 a9 f' H' U5 @6 \2 r, L- ;=====================================================================- F: G& z7 h# v- c: N, }7 N+ H
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)$ t$ T* v8 Z% r
- ;
6 b) Q7 a8 d w" D6 B( I& k - ;Jeffery P Sanders
# X, A+ l9 _, v4 w; _% P( |: H - ;
7 i$ `8 s- C, o5 W - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
: r: t8 r* Y" t2 U! }8 W# ^ - (setvar "cmdecho" 0)
$ R2 ?6 o" `: h2 z c1 G! t% m - (if(setq en(entsel))% ]7 d8 D8 F7 |1 J: ?% e
- (progn
" b7 _& G5 B2 h( i) m. |* {! V - (setq enlist(entget(car en)))3 M5 r7 O* s, u$ @% e6 e7 I, y
- (if(= "TEXT"(cdr(assoc 0 enlist)))
, s! L _& s* d& L+ |1 t: Y/ f - (progn
; M& ^/ d$ `0 X4 |5 k - (setq tx(cdr(assoc 1 enlist))) r" J4 c5 H% z$ I: k1 n- g1 F( {
- newtx "" cnt(strlen tx)
1 ^+ p! _; [' N R5 K8 l - note "\n...CASE Reversed. \n " l) L& c/ w/ x* x3 r" L p
- )+ ?6 g6 b' R, p: h# M0 s
- (while (> cnt 0)
. D2 v2 j' y3 Q x - (setq tp(substr tx cnt 1))
7 M6 l5 e) D8 {7 d1 o# ~" b - (setq asc(ascii tp))
. M( d, a6 f% Q+ _9 Q5 w - (if (> asc 96)% w B! e6 M. X4 [' N$ w8 Y. }
- (setq tp(strcase tp))/ a% R' |! {7 b& d( F' t
- (setq tp(strcase tp T))" C8 L1 {4 H+ z9 `* v4 G
- )
e5 {% `! S. N3 D+ X ^; x - (setq newtx(strcat tp newtx))
+ b2 i9 d) S; m# |* C* G) Y - (setq cnt(- cnt 1))
% C+ U3 k; J; F - )1 O2 p( o. v- R8 c* `
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
+ D0 `- X9 ^) M8 L& P% C9 W - (entmod enlist). T% [5 k% |7 N
- )
$ e( y; `: Q h/ O - (setq note "\n....Text Only Please. \n ")
; i/ U( K4 C* B# M. R# M9 `# v - )
. y! J0 O% k% b2 [5 R - ); J, Q! w- j# R
- (setq note "\n....Nothing Selected. \n ")6 Q0 J( l0 T1 x( x- Y/ E" q
- )
7 m% }: J# R) p+ ^2 h7 z - (setvar "cmdecho" 1)9 Q5 H: j: E& Q& k5 ~' S
- (princ note)
& L* u2 I* X' q - (princ): f, B$ j0 {; Z7 U/ i0 ^" f0 j
- )3 s7 o0 }" h: ?0 r( e8 O
3 W' B9 {* ?: t: v' z0 {- ;=====================================================================
- S; p( Q: M! i - ;==================== NEW TEXT STYLE UPDATE ==========================
5 e! X0 q$ S3 ~ - ;=====================================================================
; _8 h$ r5 ~" f: I7 n' x
* [( o4 _" l( S- \ j; |- (defun c:nS (/ tdt ssdt sodt index)
) n$ X7 S, i, J; l* i* L4 { - (defun ObjName (ssdt /)9 K+ L( u* H( `( U
- (cdr (assoc '0 (entget ssdt)))
5 P8 c0 {# I4 e% p" K6 ]. `9 T' ^ - )
- n/ u: R6 G$ c3 G: ^. h. p - (defun MoPL (ssdt /). n& J/ M2 A# D' X
- (= (cdr (assoc '70 (entget ssdt))) 0)& y* z9 k0 }; }* L7 R/ u" U$ x7 W
- )
% j; l& r' y6 m/ G' k' b - (defun NoiPL (ssdt /)+ E5 v$ c7 t9 v
- (if (MoPL ssdt)3 k" f/ k% x* c/ d1 V
- (command ".PEDIT" ssdt "J" "All" "" "X")
0 b7 Y) g- @+ m( n0 W - )
7 G7 j2 O: Y! `; l- O) w - ); o1 ~/ j3 b- U/ i% j1 X9 E
- (defun NoiLC (ssdt /); b2 l3 o2 M" }% s0 C8 h0 o( |! L3 U
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")" ~/ P% O/ X$ [, I+ G/ J/ ?/ o
- )* |0 N, n2 m. ]4 l
- (setq1 e( f+ A8 Q( ^0 ^2 k6 Y5 q
- tdt (ssget)
6 ^/ n! s2 y+ b5 [4 X: K7 }% @ - sodt (sslength tdt)5 e* Z ]4 I3 k4 q* X; J
- index 0/ W, [3 z1 Q" {$ \ g: ]2 Y
- )
' {; }& r: x U( C - (repeat sodt
! E9 e5 H% r, g - (setq) s+ z, P& g+ r t7 ]5 [, Z' f
- ssdt (ssname tdt index)
. b4 m) C: i! q$ T! {3 [9 E) z0 x - index (1+ index)
! L( w8 o6 x' q9 F3 p5 D2 b8 o - )( Y5 P6 u7 Z2 P
- (if (or (= (Objname ssdt) "LWPOLYLINE")% a( D0 @, E& e3 N" R- S
- (= (Objname ssdt) "POLYLINE")0 C: W& F- ]. k& {
- )6 P5 }; y# J' p+ G0 [3 @8 H
- (NoiPL ssdt)
. _8 `7 [9 F+ P) V2 V. Q* B" ] - )
4 s }9 C& N8 d2 w* r' h% K0 F! _: H - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))1 g4 u& {2 m ^* z6 g
- (NoiLC ssdt) n8 \3 D4 f* y1 N* V
- )
' y$ S9 H5 z/ O1 R0 U$ S! y$ ~ - )$ w$ Q- m% t. P7 l
- (princ)! V2 h5 y0 `# J3 R
- ) R2 I6 d) g+ Y0 h5 p, o8 R O: w
# V8 O- w4 O- f* z0 F- ;=====================================================================
P4 b3 M( _- r$ S& Y; R& @7 o6 p - ;;; AREAM.LSP; ^' M: b2 @" h0 D, J+ r
- ;;; Function: Calculates the total area of selected objects6 ^/ T- {. ^* G* U8 Y7 X
- ;;; By Jimmy Bergmark
5 T5 M7 `$ l, d2 d7 T( e& G5 C - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved4 M9 e, F6 P! O$ q" z
- ;;; Tested on AutoCAD 2000
t* M& m. R* Y% I( N( g5 n4 w
' ]* H; M2 s) ?. S- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
7 r) w% k- d2 Y3 ^5 D - (defun errexit (s)
2 g# M1 H3 m+ ]7 H- T3 O6 {! H - (restore)7 X9 P$ _! [8 `% \% y
- )0 S8 ?# Z. u* l& x
- B, P6 q) e/ b1 G) z9 e- (defun undox ()
0 ]8 t. b4 T1 f; j; T: _7 v - (command "._undo" "_E")
" k# {/ d* u4 m, ^; F - (setvar "cmdecho" oldcmdecho)
- D+ \: H4 [) x7 O" n3 h - (setq *error* olderr)
, P3 C" `( r2 Y! m/ I0 h - (princ)
2 D2 g# Q2 X( z$ |2 A! g - )
5 U J2 o6 h$ z: ^8 J - + O, o, Y* o9 B |1 q
- (setq olderr *error*
! v) G# J6 k# O" u& I - restore undox
T, R2 q+ w, V - *error* errexit5 b1 I# h! ^9 h( X; M+ f& |
- )
+ Q9 g; q* K/ ~( n$ h, u1 E - (setq oldcmdecho (getvar "cmdecho")). X& j% K; d2 V' {
- (setvar "cmdecho" 0)
; c" J( Y9 W' B3 Q# x0 ]' d - (command "._UNDO" "_BE")8 u1 |( P- g9 `- P) ?
- (if (setq ss1 (ssget '((-4 . "<OR")# g1 l, G2 O* B7 U3 G# \! j) V# i2 [& V
- (0 . "POLYLINE")
0 k5 h; d, k5 ?" a+ ?% F - (0 . "LWPOLYLINE")
0 h Q9 V, }. T9 f - (0 . "CIRCLE")2 ^5 g b( z; i* V: _
- (0 . "ELLIPSE")
' H' [- y9 s, J2 B - (0 . "SPLINE")
3 X: F! }, ^5 R& X' _& k$ [9 a - (0 . "REGION")
$ \ y% m- [ n - (-4 . "OR>")
1 ~0 }$ r( x( \- E% X: a - )
$ s. s( S3 p; b& f - )
! o4 m$ t# x- l& P4 m7 _, s9 `5 K - )
% A+ k5 m) c5 ^% y& ? - (progn
, ~- o% U# o4 S1 |: y( ^ - (setq nr 0) j0 o! G! R% R0 P# C6 M
- (setq tot_area 0.0)% @0 C' v9 s$ Q- w
- (setq en (ssname ss1 nr))$ D# @8 E9 h) m) o
- (while en+ e& M: c- Q6 z
- (command "._area" "_O" en)
6 T t6 c6 n2 L" k' B2 b - (setq tot_area (+ tot_area (getvar "area")))
* R/ J% i" A& j. Q - (setq nr (1+ nr))
# f. l% d7 Z1 W - (setq en (ssname ss1 nr))! R$ \5 V* e6 f
- ), g! v3 j ~+ Z% @9 ~$ l9 G
- (princ "\nTotal Area = ")# g* K& A4 m2 z- c& E" l7 a( k
- (princ tot_area)0 [4 }9 q/ [3 y, [0 z R
- )$ C! L8 `& ~* X1 ]+ ?
- )- S9 q$ Y4 y- M& G1 o
- (restore)
7 N8 c/ h8 M8 b! z1 P" K( X - ); d" g% x; A5 \
- + J8 A# U8 O: z" B, r4 m7 }! S* q
- ;=====================================================================
* q& o6 b8 m# N - ;;; By Jimmy Bergmark
; @9 e% `$ B; ~* x2 z - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
9 g L3 `5 h4 W. s8 ~, d4 [9 X - ;;;- n7 ~# k. x) V( l+ o( c: T
- ;;; Created: 2008-03-31
3 M: F( [+ t2 }9 i0 S - ;;;
. e( ~1 G+ K& _' M6 u4 z5 u$ m - ;;; Convert Attribute definitions to mtext ~+ p7 r& X2 [
- ;;;2 {9 h! c0 k6 ~, z. H
Q: e& s) i* ?% z+ t! j, p1 a- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
5 ^; L/ `( m, S2 U" H - (setq eset1 (ssget (list (cons 0 "ATTDEF")))" e0 J. O/ z2 X- I
- blkcnt 0+ d8 ]- ^& `% }# M; [6 g
- )
s, X0 \( A) h1 D1 d3 N+ \% {# f
& s9 X# {, C$ E, o- (if eset1
, l# n, k" w% W! H% R: E8 @ - (while (<= blkcnt (- (sslength eset1) 1))
# P0 B) G/ W1 }8 g- t( E - (setq en (ssname eset1 blkcnt)
4 K. V# M; i: D v% A# L - enlist (entget en)# I' d; W% l) B& E! X' O
- ht (cdr (assoc 40 enlist)): p! Q- s Y& _4 j1 A
- pnt (assoc 10 enlist). K, J# r- M" c6 u: o
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
; {& W4 q* @ n2 A - space (cdr (assoc 67 enlist))
; t% m6 ]0 v0 ~3 s+ P' p/ i - )2 ]& D$ \( R+ D) L f/ c
- (setq vl (list# ?, o* a& f8 t, ]' B" Z! o3 e I! z
- (cons 0 "MTEXT")
6 M- W8 m6 B$ m# M* c3 u - (cons 100 "AcDbEntity")
; C3 @7 q* E n+ A2 ?( ~ - (cons 100 "AcDbMText")0 i) U# z4 a- J5 C+ d: q6 T
- (assoc 7 enlist)
+ D8 l$ u: n+ T3 w# b$ |6 T2 M - (assoc 8 enlist)
* |0 J; D ]* e0 f6 j4 }# D( C - pnt+ m: X/ {+ C( p6 x- n7 W
- (assoc 40 enlist)
0 h8 P0 h: B% u% @7 ~ - (cond ((assoc 62 enlist))
" C4 f' V+ Y7 N% { - ((cons 62 256))" o- b( E. ]/ J
- ). }" M/ i3 |4 U y
- (cons 1 (cdr (assoc 2 enlist)))
1 b; z% I1 e% K5 P# u - (if (= space nil)' o1 C. W& U# i6 b! h, j( b
- (cons 67 0)
- x4 S+ w* V9 j - (cons 67 space)) r; H o: n$ u. w! u j5 Z4 ~& J6 m3 X
- )
$ j) F' z! o% j) ~# E: j3 i' y/ { - )
' P/ A+ ~! m' g9 z& \6 Y0 @& @+ ^ - )3 b/ a" Y3 K; T6 ?
- (entdel en)
1 M* l* E4 T! L3 ~+ O7 x7 I( } - (entmake vl)0 u& W/ c x1 j- D2 M0 r- I# ~
- (setq blkcnt (1+ blkcnt))8 ^. h$ F0 O9 e, P4 ]9 _1 } e
- )5 u# k* @, T+ \ H; y; b
- )
7 I5 F" K) @# w. q( ~9 r - )
# L9 H; F1 t2 K2 ^ - ! r% I3 T7 t. ]5 a
- ;=====================================================================
1 f( i( F( i1 i' i' J! S7 m6 _+ ` - 9 V/ b# Y/ L3 i9 D
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)% [: E8 H- I2 H8 R- _) d
- ; Khoi dau cua chuong trinh
+ S1 v0 L: U- q8 f& t - (princ "\nCopy Inteligent...\n"); I3 t4 H @" P |. I
- (setq luuecho (getvar "cmdecho")
H/ E) U s6 N o6 J, `% U% X! s e - luu *error*
7 Y, A4 X; ?+ \7 C' [- E& l - *error* ketthuc# r H2 |; |, S M
- cumdt (ssget)6 E' c" X3 f9 d- G5 I5 q- o
- dodai (sslength cumdt)2 C4 J$ L( c+ F$ R6 p1 @
- goc (getpoint "\nSelect base point:")
# @2 U$ @; g& w: ^& y - thoat nil2 p7 E$ M" D& E1 H! a
- dem 0# Z# I0 @8 _1 S9 x$ k% }+ q+ r n
- textxl nil0 h7 d" D; M" {& d7 X4 y
- );3 f+ s, w' x% ]" Q* O# `5 E
- (setvar "cmdecho" 0)6 g/ n ] q4 K0 } N$ @1 l
- ; Loc ra duoc ong text de xu ly# I! F9 L, ^6 P7 C
- (while (and (= thoat nil)
4 ^+ M9 Y g& S; v" ^ - (< dem dodai)
' T, t+ f2 ?( b: u$ t9 H& T. V - )) y3 }3 g! N) j$ h7 N6 q- l" W
- (setq ten (ssname cumdt dem)
7 j- O% [7 Z" F9 a& Q - dem (1+ dem)
( f8 Z( Z: @% `4 J& [% _, Y+ } - doituong (entget ten), L( h. e9 o1 |- J* N
- kieu (cdr (assoc 0 doituong)) . z6 K+ X a0 H* v, u0 v& N
- )
/ ] c8 B }2 |+ l x% Y- E - # c$ l) u4 ]* w' c) u
- (if (or (= kieu "TEXT")
6 f* E @: f5 G8 k% Z - (= kieu "MTEXT")
3 M5 W# i6 \8 u, U! M. J - )
7 I/ g$ p" i W9 V5 `4 j - (setq thoat T% E9 ?( ?$ `1 c& h+ L7 |4 R! V" ]
- textxl (cdr (assoc 1 doituong))
! M V g" _- b) o - )
8 Q' c6 Y( y+ P& ^* ]1 g: O [ - )- u/ k/ e2 Z* E, X$ H3 @
- );
& }. L6 ?6 Y' C i9 i$ j# Y% Z - (while T
L0 A8 P9 z" A# @8 q - (setq toi (getpoint "\nSelect next point: " goc)
8 n6 {9 i3 M( @ - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))% g, u6 x* A5 E/ v; }' {
- dem 06 w8 R8 Y$ t1 z. P! ~6 K
- )
" V0 ^9 G: V; q) C( k - (while (< dem dodai)0 |# |: j9 Y0 A8 m1 e4 O1 j9 Q
- (setq ten (ssname cumdt dem)5 K: l' y: k1 r% G. s3 M6 _
- dem (1+ dem)* I0 b% \+ X' j% P, k
- doituong (entget ten)
( s* u- B5 s1 v - kieu (cdr (assoc 0 doituong))
& \5 n& I9 r( @% f& W7 A' | - ), V. Y' h" x" _% }" f
- ! `: O3 J. [& B: S2 @6 u& v" A
- (if (or (= kieu "TEXT")% K0 p3 n( D& r9 ?) y7 V# R
- (= kieu "MTEXT") 0 l1 _; T+ [- n+ X; X l
- )
; [. q8 c$ F( k6 S9 \- f# Q - (doitext ten)
" ~. @3 L; } G# u - (copy_dt ten), [0 q2 r! l, t& A3 l: E
- , _/ R" X6 j% n" C% r1 o& r( M/ m8 i0 c
- );if% h+ ]# Q& {/ W/ I) a% o: [8 h/ ]
- )9 [0 e& B+ s( E' ?/ t9 j
- );while3 i! ]/ W5 p4 D5 i# q8 h& P
- (ketthuc), x3 T! F' m( h ^
- );defun3 E/ q" d4 H+ D; P( Z! d4 d7 v( G
- (princ)4 E# N/ P% N3 F( N2 p# R% h
- $ L* E( [( [' W/ Y' ]
- ;=====================================================================# m- \7 E3 Y6 @" [: N" E
- ;;; By Jimmy Bergmark
. |: A6 A) L2 U - ;;; Copyright (C) 2008 JTB World, All Rights Reserved& k% \- H: I; Q& @
- ;;;
8 x3 O* u8 `& l - ;;; Created: 2008-03-31# a f! H* _4 G9 X: f8 ?' R
- ;;;
0 b" P" S4 m8 H6 B - ;;; Convert Attribute definitions to text5 Q- A. t# C5 M* _) r
- ;;;6 Q6 F6 j) N B+ ^' x
5 i! m1 x5 E @* c% h- f7 `- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
. @( ^* j& X8 j4 l) v1 [ - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
+ [, Z3 d7 e' S: r) {6 F/ K - blkcnt 0
4 [0 p4 t' F: f, I - )
4 f- a) V3 a8 n- l# O0 W9 j - 9 p$ c/ @- h) J2 }
- (if eset1
9 R) e }* z; [4 c1 d - (while (<= blkcnt (- (sslength eset1) 1))
( U, X7 c! w. f9 H - (setq en (ssname eset1 blkcnt). b8 X: _" T/ V( M( P$ @
- enlist (entget en). ?6 j( @3 d6 ?% k
- space (cdr (assoc 67 enlist))
3 A# x$ F v! z- _ - )
# e( Y4 L0 g. D - (setq vl (list: ]0 ^+ k- x' C7 N
- (cons 0 "TEXT")
' ~# c0 ]( S" J7 [+ V3 s - (cons 100 "AcDbEntity")
0 M. w* t: F9 |) o - (cons 100 "AcDbText")
* V0 P) M6 n+ ?3 r( b - (assoc 7 enlist)
) C7 Z/ K& A) H; ^) P; o ? - (assoc 8 enlist)
6 y. G2 y+ s' M, e! V# V - (assoc 10 enlist)
! U; o& ]. G: |7 }+ t - (assoc 40 enlist)3 b2 P/ {# n7 q. o& l8 @/ ^: _2 h2 c/ Q
- (cond ((assoc 62 enlist))- o% ?$ h, M6 D! G0 ?4 V. u/ l% c9 H; g
- ((cons 62 256))9 O. t3 b7 _+ w" ?: j
- )
" E, M4 U% j) R# W! J! G - (cons 1 (cdr (assoc 2 enlist)))
' u- Y. T& [: i) I* _% M: F N6 c - (if (= space nil)
5 |: f+ U5 D& ] - (cons 67 0)
5 h# C' |3 E* x2 R( H+ M - (cons 67 space): k0 a) q$ ?: ~3 i2 v
- )
2 K, J/ d2 Q$ j8 O! m; T8 c1 i - )' \0 q0 D# ~' U4 d6 P: x" B& j
- )0 J5 B" J7 h+ @( E6 U
- (entdel en)/ V$ j! q/ c9 X$ n1 N- N
- (entmake vl)/ @; O7 _* B" a8 |4 @: c7 N- d
- (setq blkcnt (1+ blkcnt))
: Q: B" }& U* }5 q - )( t4 _0 u3 X; S a9 F; K
- )
9 V' a: w; i' Q* D7 }9 H- I" l% b - )
9 A- V, Y: a8 ]+ o3 |/ l: h. f - ;=====================================================================
& U) o/ O7 K) ^/ G/ S4 T - ;============================ Doi Truc ===============================
5 A! F- N8 ^( [% X/ h - ;=====================================================================
; n# V9 @% e- Z4 }' T7 M6 @ M - 6 Y) W1 d8 `# O. X0 U# h3 z
- ;=====================================================================
' y y: Z6 b( o, H2 X4 i0 E( p - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============9 L- i0 g H1 N' v! `3 B# R# s) \
- ;=====================================================================
; j" T6 y% o/ t; M7 h: G - (defun c:ga1 ()6 Z2 G \# O* V4 z7 g
- (setq a (getpoint "\nChon diem: "))
7 j; L, H# ?) e: Z- {- ~' ] - (setq b (getpoint a"\nChon diem: "))- v3 @, n% D5 E) h6 h) s& L
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ j9 w& u1 p: o' d3 f
- (command ".circle" c a)
. n; D; v+ J4 \* \3 X0 V4 j6 \ - (command ".line" a c "")8 y! y& R/ }6 O, g, p! \
- (command ".array" "last" "" "p" c "1" "" "")
) `, Z- E2 L5 a; q; \2 o - (princ))
, R" P! X. u6 E: Y5 J - " ?0 d7 r- l5 L1 Y# l1 `$ u
- (defun c:ga3 ()
. i" y% Q; P/ `2 m+ s: G - (setq a (getpoint "\nChon diem: "))$ w, p: i: o) W0 V% Q% L9 e
- (setq b (getpoint a"\nChon diem: "))
5 Q( N# y7 @+ N$ U/ g3 s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 [- d+ X& z7 @4 D% ?: m/ A+ [6 L* u
- (command ".circle" c a)
/ O. ~4 G$ E. K) B. I" B - (command ".line" a c "")& p# |- U9 a! r( T* b, b
- (command ".array" "last" "" "p" c "3" "" ""). ]( |% x, y2 ?( g6 k$ M9 I
- (princ))+ _& {. Y% d, W; J4 B, B
6 Q6 \9 [& C; M2 `/ U- (defun c:ga5 ()+ a& { ?4 v6 F
- (setq a (getpoint "\nChon diem: "))1 z6 X- h7 ]4 Z
- (setq b (getpoint a"\nChon diem: "))
) e& W6 s9 O, Q: L - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 }. I+ w3 z6 [
- (command ".circle" c a)
' f" o D- I/ w1 z - (command ".line" a c "")
$ G1 J& p8 Z: F0 _ - (command ".array" "last" "" "p" c "5" "" "")
6 i) M, k' d* L1 N3 S0 j5 I - (princ))
8 A- I: ~( N% R& U2 o
/ b- h; q, e+ s l- (defun c:ga7 ()/ S0 h# s# `7 e+ J' Z0 Q6 Q
- (setq a (getpoint "\nChon diem: "))
6 c# n# |' M# L3 B - (setq b (getpoint a"\nChon diem: ")): w( w6 }/ ^, x3 t% P
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( L- R# w- J7 r2 p( `* @; o+ @
- (command ".circle" c a)2 `! r! R' a( P* r' J/ x4 z/ V
- (command ".line" a c "")
# Y c7 ?0 }7 f9 i/ d# @ - (command ".array" "last" "" "p" c "7" "" "")
# N/ i, K( y/ |( W1 V - (princ))
/ c3 ]* T) [ _4 Z9 O0 k A5 l- ~
; G/ m: B' t% e- (defun c:ga9 ()
& m* m- r; b3 L4 ^& g - (setq a (getpoint "\nChon diem: ")); n. V% f4 v9 J% x- B$ v; ^
- (setq b (getpoint a"\nChon diem: ")): Z0 N8 c( f3 c
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% H" p. C" b. i* T! F - (command ".circle" c a)6 O) W6 _$ T# Z; t$ ]4 H# J( M0 E
- (command ".line" a c "")9 k/ t8 w0 e3 ~, ?. ?
- (command ".array" "last" "" "p" c "9" "" "")
0 Y% q l7 t$ ~ - (princ))0 v- E! x$ M# A1 D a% G
- ! `" H) _/ y5 c' B0 } p
- (defun c:ga11 (); Z7 l% [( ]5 e" k
- (setq a (getpoint "\nChon diem: "))! c6 ^) {5 l# D4 Z
- (setq b (getpoint a"\nChon diem: "))
) V2 }5 @' E2 C3 M1 m. ?, W - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- U, W! j# \4 J
- (command ".circle" c a)" j7 h ]* i" O% }" x
- (command ".line" a c "")
3 F' s+ s5 @ E/ F) j" P - (command ".array" "last" "" "p" c "11" "" "")3 N5 R2 j- ?: n7 E# J
- (princ))2 N& X& u8 h1 c3 E' U' d V) z% [
- 3 Z1 Q4 g! N0 e% H( N: h4 l
- (defun c:ga13 ()! C# `' |; k) B' p
- (setq a (getpoint "\nChon diem: "))
. }- {3 b1 Q6 S6 z - (setq b (getpoint a"\nChon diem: ")); v' Z/ u, D8 f# I
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% p# H; ~/ `& X* ~
- (command ".circle" c a)8 m8 g" T0 t* m! o
- (command ".line" a c "")$ c6 G9 k7 r# b" B" R
- (command ".array" "last" "" "p" c "13" "" "")5 t2 N. b/ z5 O9 _' q8 P
- (princ))
- P7 J2 u* y, ?$ R2 C
* N- L: K4 L D2 Z, H0 x- (defun c:ga15 ()! Q% H3 ?9 u% R2 D. M0 Y N
- (setq a (getpoint "\nChon diem: "))
* m* [& D( U1 c - (setq b (getpoint a"\nChon diem: "))
! q9 q& N5 Z/ A3 B& u - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 {. [8 D8 i, r3 q, r; }6 B* N6 c3 G - (command ".circle" c a)! R0 {$ N6 X8 D- ?' O
- (command ".line" a c "")8 C; p% C/ x% i$ M( Q
- (command ".array" "last" "" "p" c "15" "" "")
5 }% C8 B z" @+ U - (princ))
/ A# {$ m) i* |% D7 n
; o+ j j7 f3 m7 g1 \- _- (defun c:ga17 (); }0 X) S* P% L6 K) O/ k$ Z* e$ x
- (setq a (getpoint "\nChon diem: "))
% b1 D; |. i5 Y; |" N - (setq b (getpoint a"\nChon diem: "))
0 X- @3 q0 Z9 I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 e: ^- X6 S! \5 o3 E; C6 k: k
- (command ".circle" c a)
6 \0 b) q9 M7 M+ J7 G - (command ".line" a c "")* V; N- o: N( i) b9 d1 A, l8 _& b
- (command ".array" "last" "" "p" c "17" "" "")
* M$ P# m0 @; K* \" t- B/ h - (princ))0 e: L) u5 b% [. p4 e5 {
- . D$ }" H0 T0 C, F0 W. v/ \6 T
- (defun c:ga19 ()
: @; @# |- Y" h9 }+ q& G1 T - (setq a (getpoint "\nChon diem: "))
$ f* }9 U8 X- j4 o9 A* S2 m - (setq b (getpoint a"\nChon diem: "))
) _) z& P' z3 R L( d - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ }4 E+ ~* p u - (command ".circle" c a)
3 y8 N' g5 Y: Z: N: z; z - (command ".line" a c "")5 k1 N: A( M6 a' A. o
- (command ".array" "last" "" "p" c "19" "" "")
! ^. J( [: `; @* K; O1 H* m - (princ))/ T, d4 j7 A- h! l
& l, E# h. b" a: ]2 f8 f* d/ ~- ;=====================================================================) B1 m5 C* T2 T4 N5 d5 N
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
2 A) A P" S7 B - ;=====================================================================
& E4 h+ s" i6 H5 L0 `6 Y - (defun c:ga2 ()
?4 m* `, m5 g- O9 |" T - (setq a (getpoint "\nChon diem: "))
4 `. }- U g5 Y) E0 `" E/ ] - (setq b (getpoint a"\nChon diem: "))
; B# j5 \! M6 d; W' [1 h - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 r% n% o" d! s2 ?
- (command ".line" a c "")9 \" U7 ]+ x% c' l
- (command ".array" "last" "" "p" c "2" "" "")4 }0 R5 w6 y9 q+ J6 ?. k& f
- (command ".circle" c a)1 J1 f y# |7 u3 e, a+ v2 }
- (princ))9 y# K2 j! E3 w* s
1 s) \8 H/ D) h! ~- (defun c:ga4 ()" ~* X0 S0 j7 c. k
- (setq a (getpoint "\nChon diem: "))1 q& b+ ~1 S5 Q8 D: K5 K
- (setq b (getpoint a"\nChon diem: "))
: g" G# E9 T0 o8 s$ Y8 a - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 `2 Q O- D% \- f) b
- (command ".line" a c "")1 f- G% }; `2 }" o, M# O! {
- (command ".array" "last" "" "p" c "4" "" "")& T, o4 P" \( E% d# E7 M/ a
- (command ".circle" c a)
- I6 R. T9 F x* Q+ R1 Z5 K - (princ))( i# g+ ?, l2 g
( z& K! O6 u- e2 Z- }0 C9 g+ a- (defun c:ga6 (); C, r' [% V- ?) u# p, y+ J
- (setq a (getpoint "\nChon diem: "))4 H$ P# F" t8 N! q" B/ Z( f
- (setq b (getpoint a"\nChon diem: "))
6 { ~9 E- K) w) l2 t( d2 e* h - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 V9 O2 O8 x! k- }, ~
- (command ".line" a c "")$ N/ ]/ r" S% H8 p+ _0 M4 S
- (command ".array" "last" "" "p" c "6" "" "")
3 ~' ]" j, R$ y- a) c - (command ".circle" c a)9 R' \+ c% _% H
- (princ))
/ h9 V. B5 }0 G7 ] - " e# F* J, t. G& N; D; f
- (defun c:ga8 ()- p$ _& a+ w! O' H) w3 x0 \( G+ m
- (setq a (getpoint "\nChon diem: "))! a; J+ I5 P- K$ f. |* H) O* R
- (setq b (getpoint a"\nChon diem: "))
2 C* m% x6 [; ^ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ }0 e2 X* X1 J9 d) | - (command ".line" a c "")/ e" E$ `7 g* ^
- (command ".array" "last" "" "p" c "8" "" ""). Q6 X) w; \* K* E7 {
- (command ".circle" c a)
3 M/ b% I' D6 g/ o4 _6 ^ - (princ))
% S+ R$ q) m& ?1 f
8 R6 T. e' ]2 M! E: L# I8 `- (defun c:ga10 ()9 o& E Q! V0 }! O! @0 t' b# k+ d% z/ V5 h
- (setq a (getpoint "\nChon diem: "))4 \4 w0 R1 F0 l) q: A" J+ G
- (setq b (getpoint a"\nChon diem: "))4 a! F3 g5 L! |* B: G
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 ^: \ D; ], ?: D1 G
- (command ".line" a c "")7 D1 h; n& T+ N$ x0 f3 }
- (command ".array" "last" "" "p" c "10" "" "")
' |& i1 V3 d0 P8 G - (command ".circle" c a)/ S$ N6 p. F8 a: Q5 s: x
- (princ))
) F# x2 ^7 y& r5 w* ~+ f9 K - ( I4 G. J+ i! {8 e0 |7 X
- (defun c:ga12 ()
3 m# W3 ?8 y6 r% z) h - (setq a (getpoint "\nChon diem: "))
7 n8 ]5 K) Z0 r7 X - (setq b (getpoint a"\nChon diem: "))
' e' k5 [8 ^# X& a0 C1 D, D# h - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 y1 G: r; h/ |5 J
- (command ".line" a c "")4 ]* N" V: _, ]- ^( s
- (command ".array" "last" "" "p" c "12" "" "")
6 i" A7 l- M- A- h" y" m$ n/ @, d# ? - (command ".circle" c a)
5 {: ~, a% E5 v# j- L% t - (princ))
; o) y& o' ?5 p - * b! g) {' Y7 O$ d
- (defun c:ga14 ()
# ^6 Q6 m) g' Y2 T: d/ M* S - (setq a (getpoint "\nChon diem: "))0 X! ~. M/ A) l4 f
- (setq b (getpoint a"\nChon diem: "))
" ?+ n& a- D0 c) u - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): x( D2 E8 k& m# A1 i i
- (command ".line" a c "")3 o3 q" b, H. _" p7 g
- (command ".array" "last" "" "p" c "14" "" "")& b* ~7 m; \# M0 G4 \) ]/ `$ J4 y
- (command ".circle" c a)
% L" F. Y, N, e Q& Z ^ - (princ))
5 }. t8 o3 f7 G5 i' G; P - + C3 d/ V' ?3 y7 D3 ^+ K. a
- (defun c:ga16 ()0 E/ j v- ~' s L( k4 u7 {
- (setq a (getpoint "\nChon diem: "))
7 L& N0 {& M# `' a - (setq b (getpoint a"\nChon diem: ")). Z& @, u3 y/ @+ Z0 h p; A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 A8 ?5 R6 O- P8 U - (command ".line" a c "")
( B4 r5 J$ e$ r& u - (command ".array" "last" "" "p" c "16" "" ""). z4 Q. R, c) P& u) C7 \: F9 z
- (command ".circle" c a)& @$ q6 p1 \& Z0 k# M
- (princ))* @% q9 u7 N+ p7 p5 R$ ~( r& o
- B! i7 r/ {9 J- z- (defun c:ga18 ()
n% x E. L" @6 {* ?# { - (setq a (getpoint "\nChon diem: "))
& S( S& n" b1 v$ g9 v - (setq b (getpoint a"\nChon diem: "))
8 F# M9 a& g6 O, t - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# l t5 ^# q" ^6 ?8 N# h5 H3 l/ s) D
- (command ".line" a c "")
" X9 `3 R+ L y! f - (command ".array" "last" "" "p" c "18" "" "")
) N, c* \ D) B8 E5 _2 a - (command ".circle" c a)* f; q# Z; ]3 ]/ d0 m/ t* A* q
- (princ))
9 r' ~$ k- d; ]/ l
& M* r( A6 O& | d0 V- (defun c:ga20 ()- i- y# d M& G# A; w
- (setq a (getpoint "\nChon diem: ")); ]( }( z: E% \) L2 b
- (setq b (getpoint a"\nChon diem: "))5 C- b6 i% j: ]# W( F! T
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
k3 }- G' l- b6 y7 ^ - (command ".line" a c "")
5 F& l9 ^1 ]1 D6 o7 N t - (command ".array" "last" "" "p" c "20" "" "")! R$ V& ~: @4 B( \. ^5 b
- (command ".circle" c a), y n, g2 _! g3 M2 M1 i0 i, @
- (princ))
: _& [- ?3 _2 D' B# m& [$ W - . C4 f R' t4 ~/ y. N; [/ O
- ;=====================================================================
, A( v- F: ]) z* [4 u - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============5 [) L7 \6 S( q1 t
- ;========================== 06-11-2016 ~ 18h00 =======================4 S: e0 P# V" ]5 D) P# C. r
- ;=====================================================================
4 y# D) T( |4 X! J - (defun c:ga ()5 ~( O+ n9 a# m {' M- ?
- (setq a (getpoint "\nChon diem: "))5 E; s: s1 _. \* S, r) j) a4 B- z, m
- (setq b (getpoint a"\nChon diem: "))
# o# v$ N$ v0 w, ~" `* H# D - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). z3 A. g# p5 `) F) U' m9 Q0 e
- (command ".circle" c a)" ?- ^$ l. K; h! j6 d- k
- (command ".line" a c "")5 H5 l+ j0 g0 d# A& ^6 Y2 d/ s
- (command ".array" "last" "" "p" c "NUM" "" "")
0 z0 E: r; d* m' B7 n& I" S - (princ))+ E% D/ f/ \: l- i3 e
- 6 W9 @. @8 r" k8 y
- ;=====================================================================+ Q' `8 ?% w3 V# A' ^9 H
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============( P) \- e& {( \: z; H1 @
- ;========================== 06-11-2016 ~ 18h40 =======================: O# ?* z5 ~. X& R8 {( B$ z
- ;=====================================================================
( L4 [1 E* u9 O - - c) o; L0 S) N5 ?% \! y
- (defun c:hoathi (). v/ ?0 z8 {3 w2 p6 o! b% v: l
- (setq a (getpoint "\nChon diem: "))
1 k, |5 V0 h0 R, P - (setq b (getpoint a"\nChon diem: "))0 d! s: ~: ]: j" g/ r |9 O; y- O
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' w' B1 R1 m8 _, D+ a) o- Z( e
- (command ".line" a c "")
# D6 ~) r$ b# U: x. h - (command ".array" "last" "" "p" c "NUM" "" "")
2 _( O! G$ l, L# e; _! E - (princ))9 s v* g/ q+ Q6 @' g( J7 i3 C
) @0 W; L& t9 V1 ]4 Q1 Q- ;=====================================================================5 p% q& t! k4 f
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
9 I3 M( c( q& N6 [ - ;========================== 03-11-2024 ~ 19h33 =======================9 {+ k x; k% Y/ R" R# `
- ;=====================================================================9 Y1 `" M9 M+ K- Q
- " O3 S+ u2 {. j
- (defun c:cung ()4 B8 \# @2 D3 s% y$ C/ ?
- (setq a (getpoint "\nChon diem: "))
f. b9 w/ N$ {. v6 f9 h - (setq b (getpoint a"\nChon diem: "))
; o3 n' D2 |$ s0 L, E9 { - (setq c (getpoint a"\nChon diem: "))
. E5 r) e6 L! m* f' F9 l/ J N - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 M# d3 k Y: Z+ F' A - (command ".arc" a b c "")" J4 @5 e0 f F2 J; e+ L V3 t
- (command ".array" "last" "" "p" c "NUM" "" "")! V% c. D3 `* i, M: W3 k2 a9 b$ n
- (princ))* M8 o4 j7 ^* T' \+ f' @' X/ ~
& `" N3 D7 ~" {, O, Q* x8 G9 F- ;=====================================================================; A. u. O# }* s9 _, u' L5 J" ]
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============: T4 q' d* r2 ^0 b# G/ d* J4 m6 t; }
- ;========================== 03-11-2024 ~ 20h02 =======================: l4 R9 H4 w8 x4 @
- ;=====================================================================) K; A; {; M& Q- {% l9 i+ X
- _" R6 T/ ~( [
- (defun c:hecloic (); |; P8 g* o7 x- V/ w& h
- (setq a (getpoint "\nChon diem: "))
1 `- M0 R- T+ g$ C8 D - (setq b (getpoint a"\nChon diem: multi "))" }7 o, h8 X# n4 B
- (setq c (getpoint a"\nChon diem: "))(princ)& y; B# u& O" \; y0 G. o0 J+ n
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 U: \7 r* Z/ Z' S; @7 F - (command ".arc" a b c "")
. H8 v% p$ i# V" \" j( g - (command ".array" "last" "" "p" c "NUM" "" "")' c6 ~/ o$ m ?) D) y
- (princ))
6 g' S6 n4 c9 M4 X' |. Q
; N! g. W+ I5 O! c- ;=====================================================================
& } g4 G& J3 k S9 |) h - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============$ d' H d. w7 d; N% Q
- ;========================== 03-11-2024 ~ 19h38 =======================
6 p$ s% F3 P; R' N- H' } - ;=====================================================================2 j3 i) {$ @4 K0 k5 {- P
- : g0 _3 K) W2 q9 e& h3 T
- (defun c:gay () }! t, a4 _4 h
- (setq a (getpoint "\nChon diem: "))
" C" K: ?8 {: t - (setq b (getpoint a"\nChon diem: "))
2 w* X" d! L; Y: t - (setq c (getpoint a"\nChon diem: "))(princ)& Z) r8 C: J8 v* |, T p* [
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# C3 R# t5 l# a1 R1 g. K
- (command ".pline" a b c "")7 V6 a* S" B1 D9 u' o
- (command ".array" "last" "" "p" c "NUM" "" "")$ z. X4 u6 _" \% g* @
- (princ)) k% M5 o e% T
- " E+ g4 S4 w5 v1 L% C- t
- ;=====================================================================5 U9 m R: x5 U8 h7 h
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============) `8 o+ x) ~" V- o
- ;========================== 03-11-2024 ~ 20h02 =======================
0 Z; O: m m6 k - ;=====================================================================% y5 G4 {/ ?. A
- " e. z; @) z: U' g$ P! q h" W8 K8 `* a
- (defun c:hecloit ()
/ ^$ D, Q! d$ P0 } - (setq a (getpoint "\nChon diem: ")) c2 v( ^4 c3 q$ T
- (setq b (getpoint a"\nChon diem: multi "))) L* b! \& h d+ T6 ?* i
- (setq c (getpoint a"\nChon diem: "))(princ)$ H) u* l& \5 Z( t, u
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( n4 K- \7 K! I# y7 ?: X1 y& w - (command ".pline" a b c "")* }* M% ~, q* e: `3 \! {( L q& }
- (command ".array" "last" "" "p" c "NUM" "" "")
( H. t& C# @2 B+ [) x - (princ))5 \7 x5 m1 ~& M! B: e; n: L
1 v/ B& _* n3 o4 ~% y& R# u- , V& k. ?; I. c- N" ~
- ;;; ============================ Merge Hatch =============================
/ L" G( r3 b8 P: D# I) N% S( j - / s( X) t! t& O+ v g( P V
- (defun c:mh (/ ss entht sl i dt dtht)
( b* Q6 J" S7 r: m - # M( ?4 [8 y$ O6 Q* V% Q
- (princ "\nMerge Hatch - free lisp from CADViet.com")
8 S# ` c$ [4 ]# B/ f$ f - 5 D0 D3 K+ t/ d6 K5 a, n
- (setq
0 G# b+ t6 `" e1 w" {4 e1 z - ss (ssget '((0 . "HATCH")))
, S0 D( T( M4 F" C* a4 t - sl (if ss
% g0 L7 m6 f$ A+ N( V' v: D7 y4 l% g - (sslength ss)
* m! N# r8 i! R - 0
! O( k. o/ j7 z( q - )" C+ X) ]/ D3 l% ~
- i 0
, h2 {7 D. X$ P% {: m - l 0# _# i% K$ t! M+ j- f3 q) C) L
- )" {8 r1 {1 H) F2 p
- k# [7 f; @2 E0 [8 G
- (repeat sl
( o4 ?0 H3 T* R" l - (setq
; D E+ z+ o1 ~/ {" i - entht (ssname ss i)
8 |! E, X5 V4 ?1 h0 [9 L$ R# L - dtht (getbdata entht)
" R/ q9 p @3 Z# g1 G# l; w - dt (append dt dtht)
# q, F8 \" X. S+ [4 V- { - l (+ l (cdr (assoc 91 (entget entht))))& M! B6 \1 \* b- d r
- i (1+ i)
1 A0 n* P) |; Y* E3 [ `" N - )
" L. X2 T& @2 B0 B - )/ j" s* [7 S6 V4 X y
- # y$ W+ x6 v3 m* B |3 f/ s
- (setq ent (ssname ss 0)
* }& i4 n1 J7 I) E8 A7 Z - ss (ssdel ent ss)4 z, m1 d( \7 Q1 ^
- tt (entget ent), x0 ? z7 _8 p2 C2 P5 p4 [
- duoi (member (assoc 75 tt) tt)- Y) U8 C- b( q$ e2 N9 y2 G8 c
- dau (reverse (member (assoc 91 tt) (reverse tt)))2 q+ S5 \6 a6 Y7 M0 o
- tt (append dau dt duoi). P; v( U- o1 `. b, ?. |6 S
- tt (subst (cons 91 l) (assoc 91 tt) tt)
2 V2 W1 F0 z2 a* S! {* @ - )+ m! s! p- X+ x* J& Z" [0 f; k
- (entmod tt)# ?2 T/ x6 q9 T& X( E
- ' e9 ^6 e( P% q' Q
- (command ".erase" ss "")
* t/ \8 l6 E" h% j" O' n - (princ)
( I! G/ f4 f8 Z0 I - )
1 y+ E% K, z* s( K( \ - 2 V$ I& U8 g: I/ f
- (defun getbdata (ent)1 B$ s# j9 A8 P+ N
- (setq tt (entget ent)( @( [, F& L. I5 a) Q6 V) l% E% q
- tt (cdr (member (assoc 75 tt) (reverse tt)))
' u3 E, @7 U( B/ d5 V - tt (cdr (member (assoc 91 tt) (reverse tt)))
0 ^. {8 z0 c s3 W: e) a. I - )
+ F2 s/ Z5 Y7 a+ @) w; i - ); j. c8 G6 K" d6 \% }. S
- 3 _) X/ X2 m2 K, K: T8 J2 Z4 G( K
- + n$ a3 B, ~& w6 Q% \ f
- (princ)
: A, I; \ d: W" Y9 v
# @% I: B4 a! L. p1 D9 P- ;;; =========================== CAC LENH LAYER ==============================7 X8 k- A/ F; Z6 |: R1 H3 @
- ;;; =========================== Layer hien hanh =============================
# B( B1 H5 G3 t- `5 X& D7 O - 8 S- \3 p3 {) [' R% O7 {
- (defun layset (/ LAY) (setvar "cmdecho" 0)* p/ z# f) \' A
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))6 x$ g' }5 J& E0 m3 z1 v: |+ b
- (if LAY (progn * I; |* g* ^3 |
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
: {" \3 S! J# I& \ - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
0 n' @# H4 g- X" `+ O - (progn) T2 x4 r F" {1 L& L8 l
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
& _, _' w3 \# e" S. ?0 T- E - (progn/ `) D; X& V6 o: H' W0 A9 b+ ]
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )3 k) X& ?2 |; J" p; t0 j5 O8 O. N
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))
% W' E S# d5 n( E - 7 b2 N8 Q$ m3 ?: l
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
7 l! ^! R; s. H x; M
, f" O& x/ m4 H( s& e( M1 u& l- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)7 s6 f# M1 F6 g- b4 H) V
- (if (not (setq SS (ssget "i")))
( M# ` \. R7 R! [0 O - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")9 B5 s! n' b2 g
- (setq SS (ssget)) ) ); ~6 x9 `$ V' ?7 ?. X5 X6 }4 x! U- Q, P
- (if SS (progn# o8 z$ z( A; Z0 a, _
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") ' r. A4 J" ~- p$ y, }0 H" K' Q
- (if (> (getvar "cmdactive") 0)
8 v$ p; r' j% i p4 d h - (progn1 J* y' d$ O6 }2 n
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )/ g, T0 E$ P6 s1 z }. L7 ~5 |
- (setq SS nil) ) (if (> CNT 0)
7 Q- m* T9 u$ u5 A - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
\% P% `% V0 S( s: ~ - (if SS (progn: A* n ~& U n
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")- N! T' h$ b! Z" l) j6 b$ Z9 s
- (if (= (sslength SS) 1)
" u5 _6 N2 w) o9 O7 d/ R - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
, k2 _5 N# O& T0 p F - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end& E; }6 ~1 n: N, ?+ G& D7 d
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
: v! e B3 G) W. U, _
F; y- v [) }& k& b" e1 h- ;;; =========================== Layer Iso ===================================9 J; ^4 D9 K8 ^- }# J
) G! t5 X, C7 m, L4 L: U! V- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)$ C9 e2 c) E' [
- (if (not (setq SS (ssget "i"))) (progn9 x& x" z: P' N9 @. L* a
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")) w% u' x& L! X: V& a5 i9 Q7 Y
- (setq SS (ssget)) ) )3 a- t- e* J s
- (if SS (progn (setq CNT 0)1 b& t! _ Q9 ?! r$ T3 }
- (while (setq LAY (ssname SS CNT))
. y) U0 O+ _/ N& T) Q - (setq LAY (cdr (assoc 8 (entget LAY))))" N+ W5 U0 C" n% b
- (if (not (member LAY LAYLST)); D2 S' j I9 H3 s( c, K
- (setq LAYLST (cons LAY LAYLST)) )
. ]. J! o$ b1 [/ w1 } - (setq CNT (1+ CNT)) ) T. j: B- b) z# A4 ?
- (if (member (getvar "CLAYER") LAYLST)0 Z8 ~- F( Z5 O. A
- (setq LAY (getvar "CLAYER"))3 O8 c0 T* m' C9 l2 t$ C, O ~
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
; Y1 X, z1 t! J& l E1 F - (command "_.LAYER" "_OFF" "*" "_Y")2 s' ~- c% N% O7 \( S: f5 B. _
- (foreach VAL LAYLST (command "_ON" VAL))
1 Q- u& _! I& Z8 h - (command "") (if (= (length LAYLST) 1)& A7 p( V# `% i# Z) Z% n
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
8 K3 V E, B5 ~9 Q8 m) C6 b$ L - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "" C' Q! Q" L5 h! ^/ N
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )$ J9 k& ]" d5 |8 T# R6 I
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))
! h9 h' v3 y- i7 j5 \9 R( ~0 ~0 i - 0 b9 ^! \5 x, v' S, i
- ;;; ========================= Layer Match ==================================0 t) d) Q3 K: F% f2 z0 G
5 P( `5 C7 O% u; W3 d! ^; G$ B- (Defun LAYMCH (/ SS CNT LOOP LAY ANS), c; v5 F& ~8 Z* m2 F5 _: }, c
- (setvar "cmdecho" 0)2 D! ~) t- V/ y
- (if (not (setq SS (ssget "i"))) (progn. w* {! j5 L& t2 m
- (prompt "\nChon doi tuong muon thay doi Layer : ")* s7 x9 k }$ n+ H+ O9 i
- (setq SS (ssget)) ) )7 ?3 o/ p6 p/ B2 M- W; Y
- (if SS (progn
( g2 j/ c! m! V8 r - (setq CNT (sslength SS))
* X$ F. ]) G' N - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") # F7 `# b# R8 C/ D* y( z( \7 B
- (if (> (getvar "cmdactive") 0) (progn+ @3 B0 W$ m( R! b
- (command "0,0" "0,0") (setq SS (ssget "p")3 } j3 C* y0 C/ b
- CNT (- CNT (sslength SS)) ) )
: W2 e: A% ~* m - (setq SS nil) ) (if (> CNT 0)
9 c5 s; e% `' D3 ^# {) a - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
+ z/ V' O- f# [, @, R% w, t8 u& [ - (if SS (progn8 P5 S. g. p: l0 _7 C! z8 T7 K' u8 s
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )9 r$ d. U6 i" p3 D5 _! ?
- (while LOOP (cond
: e" X6 w0 h; x) C# w+ Q: ^4 |) | - ((not LAY)
' i& ^. j$ W$ I# Q - (prompt "\nKhong chon doi tuong.")* ]5 u3 c. g* `
- (prompt "\nSu dung layer hien hanh? <Y> ")/ d. Y9 a* i; `; ]; n1 f/ p3 b% V2 ?
- (setq ANS (strcase (getstring))); Z* X1 a& T3 q9 _
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
, C# k8 f" ?% h, d4 h" b - (setq LAY (getvar "clayer") LOOP nil ) ) ), x g- U/ ~# K; A: p
- ((listp LAY) (setq LOOP nil) ), U2 {# F2 X9 y0 Z
- ((= LAY "Ten")1 q% L1 T7 [2 u7 c
- (setq LAY (getstring "\n>Nhap ten layer: "))
& @+ e4 H3 s4 d/ a' F/ p - (cond
8 f/ a. E: O3 T5 p4 v8 a - ((tblsearch "LAYER" LAY) (setq LOOP nil) )8 W7 N$ P7 ?& B% K6 M) T+ P. A
- ((/= LAY "")
# {2 f# p# l" L% M w2 ^1 |/ u5 P - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
& X# ]& c8 x0 J! ?( B - (setq ANS (strcase (getstring)))) p% Z0 J$ W+ p. ?. V6 [3 g h) H
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))$ c' ?$ l8 v$ h [3 Y {& b
- (progn f. a0 _& \6 F3 G( B1 p6 j" D S
- (command "_.LAYER" "NEW" LAY "")
5 ]; B4 {9 ?% r% x+ T - (setq LOOP nil) )
7 Y5 f8 M# f& Y5 y. }( w3 t& V F - (prompt "\nLoi ten layer.") ) ) ) ) )
! Q9 }$ ^: a/ D - (if LOOP (progn (initget "Ten"): p' r5 G6 @8 G1 W9 m; e
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
* w& X, m3 a& J4 I - (if (listp LAY), y! `4 O7 b3 w! A7 Z6 J9 i3 p
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
1 z+ e1 b8 y) r4 a9 l3 D - (command "_.chprop" SS "" "_la" LAY "")
, V. N) C+ _8 c; c - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )% n) n9 M3 n: X
- (if (= LAY (getvar "clayer"))% O2 Y( H! P [ M% b
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )3 M+ O. g4 O% z0 x" j8 D
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
, O9 t( c5 N, |
# T4 j% }+ Q% L: J- ;;; ============================ Layer OFF =================================
+ w, v4 s7 b+ y S4 n9 T% G - ' p! ]5 g2 R, r, e3 F8 y
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)4 R9 c% i/ H* t' a9 R, w9 B+ b
- (SETQ SSET (SSGET))0 ^, G" F" K* y0 F! ^1 A0 b" S
- (IF (/= NIL SSET) 1 W- ^& [' o3 M* j* n' R- m6 Q- p
- (PROGN) u o" v2 b( q* F* h( H1 Z% r6 r# ?
- (SETQ SSL (SSLENGTH SSET))8 C, F: r& i& a4 h/ \8 f
- (SETQ LAY "")
& _0 k5 y6 x' m/ B4 y - (SETQ I 0)4 v/ A9 k8 }4 T# _+ h: @1 n
- (SETQ MODE 0) & Q7 E- f; e" D6 Y: c! U1 X# J) a" P
- (WHILE (< I SSL)
" D/ k, w' u1 X- p \ - (SETQ ENT (ENTGET (SSNAME SSET I)))
6 y4 ?' ~- D9 d# U* j) \/ d - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
3 T L ]8 {5 K k - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
. z3 y5 P# Z5 q! V# P - (SETQ I (+ I 1)) ^( ?2 I7 G1 M! v1 x6 K
- )
2 }6 z7 D- s2 B. s9 i* ? - (COMMAND "LAYER" "OFF" LAY "")
8 I- e) ]. i. O" B3 U - (IF (= MODE 1) (COMMAND "") )
" U5 u, Q5 x0 s+ V4 M - )
/ s8 x2 m9 I5 @! t B, O - )
+ T0 y; T8 J" r: A - (PRINC)9 I' G8 S9 o; p9 [! R
- )
$ o% ]9 T s" A3 R" x/ A
, R) V" `; r1 k/ v, R- _! K$ i- ;;; ================================ Layer ON ==============================% u( L, I8 `9 V* ~7 F; E V
- & @& C- v8 V2 H: v
- (Defun LAYON () (setvar "cmdecho" 0)
, c- D8 e+ O4 X1 ]( r- e* a - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")& A1 I- V* A% O4 g6 L
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))3 Y3 A$ b- i4 D, |; f3 [" b: h+ v
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
6 H* Y4 _2 r# ]# d" V - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
! j" V2 X% Z0 W- R) e - 6 I% U$ u! F! D
- ;;; ============================== Layer Freeze ===========================
, H- }, u+ a! _( I* ~
. ^" m R6 W# t+ S7 r# G- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
* | l4 M: j6 ^" q# l t - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
9 B7 z/ H8 T2 ?0 \( B5 A - (IF (/= NIL SSET) (PROGN
1 a& I/ ?1 y2 E( u* B8 C0 H7 w - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) 8 y6 F* `8 C9 |
- (WHILE (< I SSL)
$ r' B' R- f- u1 N0 X/ T" G - (SETQ ENT (ENTGET (SSNAME SSET I)))
- l4 @/ W4 X+ P* ?: M3 r I - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ): ^0 P& T+ V& E8 ?, Y) E. B: A
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
: z# \1 p% B1 {2 ^2 |6 ?* e4 c - (COMMAND "LAYER" "FREEZE" LAY "")
$ D8 \* D: v' A1 L9 v( [2 [ - (IF (= MODE 1) (COMMAND ""))))
; ^& q+ R) o& j5 G6 y5 [$ Z- D - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)$ D/ O; o1 O7 h6 s. A. s6 {" n
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
4 A- w$ w9 ]5 V0 m5 k- _ - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz)): x2 f% |. x/ y7 m! _4 Q
7 H: L/ t* [4 I! H- ;;; ============================== Layer Thaw ===============================
* ]- ?7 f7 U( h. j8 s/ f$ Y - 6 o: k' x! @, n% f4 X
- (Defun LAYTHW ()
$ q( V5 k6 O7 c" A' }# ]* l - (setvar "cmdecho" 0)
& }; p, K A5 z+ [7 e - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")9 u4 b# V% h, g! ]+ r
- (Command "_.LAYER" "_THAW" LAY "")" K0 {1 E/ j/ |
- (princ (strcat "\n Layer : " LAY " da THAW."))3 b$ r- N. x& E- ~; F
- (princ) )& D0 m4 }" d2 j+ _% ]
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))2 e8 ]4 d* s" \. l) j5 @
- ; R7 F( D% {" x+ Q: d
- ;;; ============================== Layer Lock ==============================
. S8 [9 Z9 B6 {' k, A
# O" q+ q( B. V# G- (Defun LAYLCK (/ LAY)
v1 I$ }6 I. Z, { - (setvar "cmdecho" 0)
( @* `7 M6 Y1 }4 B# ~6 P" P( P - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
7 a1 R$ D+ H1 g - (if LAY. w3 o ^ ]3 z1 Q, J6 \
- (progn
' c6 P" N+ c$ H' ]3 ]6 V - (setq LAY (cdr (assoc 8 (entget (car LAY))))): C( t8 H- V% s( M
- (Command "_.LAYER" "_LOCK" LAY "")& W- Q( E5 x. A7 ?8 f* n
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
, z, }2 O$ a* e' Z - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))) Q0 h0 ?' G* q, D- z2 l' O
- 3 S) r% Z; w; o" D3 e6 ^$ H
- ;;; ============================== Layer UnLock ==============================
; n) j8 v! b) _% d; |( { - 5 x8 S# J& }) ?8 e% c7 m7 I
- (Defun LAYULK (/ LAY)
& G* z, |& T) R4 G7 R4 T4 b& h9 f - (setvar "cmdecho" 0)' |% O4 V" U' r4 E, y
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
: E2 K5 O2 _' W8 }8 h. O - (if LAY) s, K: ?8 J' b8 T- a* |3 B, i
- (progn
5 D7 O: y9 o \8 B - (setq LAY (cdr (assoc 8 (entget (car LAY)))))7 F2 b! V, J8 O1 i
- (Command "_.LAYER" "_UNLOCK" LAY "")
8 Z; p3 S w2 U | y - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) ) y, C6 |7 X7 o @- L0 _8 C- Y
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))) q; @2 m+ ^8 h+ M
- 8 x {/ t/ ~: \9 w5 E
- ;;;===================== Delete all objects of Layer ======================== l5 _" a& E+ O4 c1 ~' a5 }
7 S7 B+ L9 j# c; {9 Z4 C- (defun DELAYER (/ ocmd L S) ' O( V6 W# n) x5 V, e
- (setq ocmd (getvar "CMDECHO"))+ @: u$ e: p* L+ H; c, \
- (setvar "CMDECHO" 0)
( f/ Y' J+ `+ i+ y3 z2 v - (setq L (strcase (getstring "\nLayer(s) to delete: ")))
$ f* [" _% e) F6 s" d6 K" ^ - (setq S (ssget "X" (list (cons 8 L))))
3 S# ^2 r3 P% @* n - (if S
5 q7 ^2 c. h) G& |/ _ - (command "ERASE" S "")
5 r, w$ W" c- G& @ - (princ "Layer empty or not a valid layer name.") ) 4 J4 q" t- }! a5 ?/ S' C
- (setq S nil) 8 T6 Y/ K/ w- l9 [, v) V4 ^1 v
- (setvar "CMDECHO" ocmd)
$ I- H6 w4 A2 J! c - (princ) )
: R' l& d& A0 ]! p - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))4 A# j/ { p$ c" x
+ v& ?' K9 i0 G0 D; H- ;;; ========================= HET CAC LENH LAYER ===========================9 ~ O8 [+ g8 k' A7 T
: I* V" ?& T5 p/ g- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
' y' V, N; O9 ^+ `6 I - 1 V; E) a* [* c/ _) B* B! A4 Y1 l
- (Defun C:EET ()7 l0 c: \( B9 q& f. w; z
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
; r( ~' S; F0 G# f+ h) I. E - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))3 p& v7 _3 L4 q! o, `0 ?
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
: U; r4 g: K# x7 a - (Setq I -1)
, \1 Z& ^4 R! a' e! J) C! z - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
0 l3 w* J/ p! T$ e1 v: } - (Repeat LEN! q3 Q& d4 o5 A& Z8 b6 h
- (Setq I (1+ I))
4 s% R' B5 @1 T b. k7 L - (Command (List(SSname SS I) SIDE)) ) (Command "")
. d1 w$ M g: D) b - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
7 f! x9 d3 v' ?6 g
& w$ N9 J- I! J: Z" t1 Y- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
+ K/ I+ |8 |" T* L l
' H) K& T9 J; v }, \" J9 d# Y2 d7 J- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512) w/ e* p* _4 ]! f! B" |0 w
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
4 C8 F' e# @6 m - (setvar "osmode" os)
& W2 E& R# T# G" }4 @4 L - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
+ i/ R3 s4 I0 |9 R: j5 P; F( B4 | - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
8 [/ V+ Z4 T" A8 k- G - & {8 h, M! Z6 B" z* J
- ;; ================ Change width of polylines =========================$ }5 b' a/ |" c& N: d( z
2 Y. @" {7 I4 @# o! l z& _- (DEFUN wp (/ a b sophantu sodem list1 ha:wid), r( y- |" U% N; H
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !") ' M& ~0 J! q& s K
- (setq b (ssget)) 0 N9 R0 }" j {$ @. R! q# Q+ g
- (setq sophantu (sslength b))
0 c1 q' c) y+ W8 {- ~- E: e( O5 B - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))1 c [( a; n6 k
- (princ "\nDo rong polyline <")
# F9 T$ J1 C9 o/ p: m+ ]( R& j - (princ ha:wid)
' L& r1 l4 E( a - (princ ">: ")( o6 W8 j$ W/ _
- (initget 4)6 B/ N/ R- Z# n/ ]
- (setq ha:wid (getdist))
/ e( F6 _8 m. ~6 q" | - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
. P1 o! {9 M+ }, C, c/ W( L, Z - (setvar "tracewid" ha:wid)
3 N% g4 n- z# N3 S* K+ | - (setvar "cmdecho" 0)
0 ^! P' V E' A9 V6 \ I( i - (setq sodem 0) 1 {5 ~: ]. _2 L0 Z+ K" \
- (repeat sophantu
8 U& H6 Z, W1 H: R, |/ }, x4 C, D9 i - (setq a (ssname b sodem))
" n1 E, m1 M; E, `1 a9 { - (setq list1 (assoc 0 (entget a)))% V* h' o6 `- q* \
- (cond) Y0 W# R" O' j, A7 C1 d( w
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
2 G# w7 d1 K" X3 i8 d5 A - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) ) r/ x% }6 Q3 x- x6 T& Q5 g
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
; y$ @. p8 Z3 s2 G: l% u - (defun c:wp () (wp)) (defun c:pw () (wp))0 d2 c! b5 {- E
/ \. L b6 J T% g# m/ L" G- ;; ================ Change radius of circles ==========================9 J5 |" k! W! W- l3 O, c% e
; b3 {3 M! S& r- U0 z9 a- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
2 c4 V1 R" ]0 I3 h8 _" ^# j u - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))$ ]7 `* s: a1 u
- (IF (/= RD NIL) (PROGN (SETQ I 0)
8 G# F# W- b* {) {" ~ - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
c( Z7 s, v/ y - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
' w8 q9 O3 \/ ^8 y2 j; n - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) ), S6 }0 }0 L9 T( u4 d& Z n
- 4 R) L u5 E1 \1 M0 a! w' @
- ;;; ============================== TEXT Hight ===============================* K7 v! A: x M4 o9 M: I' F
) \% `8 c% S: y. U ]- (defun texthght (/ ent hght)
/ M! [" d5 i# l1 ~ - (setvar "cmdecho" 1)
& l p5 X$ [$ B5 t; i4 ~0 V - (prompt (strcat"\nSelect text entity with required text height"))/ \* c6 b$ |) x) {7 v
- (prompt (strcat"\n."))' i7 O/ e- P3 d6 a. H5 N
- (setq ent (entget (car (entsel))))# F+ e# I9 Y3 s3 u2 Y3 l
- (setq hght (cdr (assoc 40 ent)))9 }% Y; t ]- b5 _& h' B2 y
- (prompt (strcat"\nText height now set at "))(prin1 hght)
; P7 }: F( }1 b- V/ ~9 p" l' ]2 G9 ` - (prompt (strcat"\n."))
5 m7 C+ g9 a/ X3 \$ k& W - (setvar "cmdecho" 1)' @. b" S/ @6 u- O f# r S) l
- (command "DTEXT" PAUSE hght "") )) K8 A- k* y' q6 @+ u* N& q
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))# y; L! C# x$ A7 v) @+ G
( m; d, u: C# d1 H' [- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================8 r- B6 t3 s. |) Z/ l3 z7 `
% i1 P1 j/ S6 U$ v- (defun c:tuu () (setvar "cmdecho" 0)
+ t/ E" W1 [ t+ Y/ Q7 R! @# D - (prompt "\nHay chon dong TEXT can gach chan ")
% @* j% g% w/ e# R - (prompt "\nSelect objects: ")( k; z% u/ J8 W8 Y' O/ T+ R
- (command "select" "au" pause)
0 _4 T8 P% ^9 t& a2 d( G - (setq sstxt (ssget "p"); u1 q7 m# f, L- ~
- sslen (sslength sstxt)
7 i4 n j4 v# q - ctr 0 )' O7 @( n9 f9 C+ b
- (command ".undo" "mark")
6 Y9 `& b9 L/ M U - (while (< ctr sslen)
, t5 ~; j. `6 _( a - (setq listxt (entget (ssname sstxt ctr))
0 U/ {- v# M- _# [4 P0 r - txttxt (cdr (assoc 1 listxt))
5 ?& [* k* c9 j8 e3 x3 ^ - enttxt (cdr (assoc 0 listxt)) )
& G) X* u0 \ V- G7 o8 q8 y - (if (= enttxt "TEXT")' u5 y. D# M& l( W4 z
- (progn8 G- q+ }- W. w3 k5 A: G- T# @
- (setq testxt (substr txttxt 1 3))
- a; R- A9 K) e4 e2 w+ [3 e - (if (or (= testxt "%%u") (= testxt "%%U"))
1 D3 j1 h5 k; F - (setq newtxt (substr txttxt 4))
+ H" i9 R. b0 ~3 B5 { - (setq newtxt (strcat "%%u" txttxt)) )
# t- R# _' y4 }9 a& E6 B$ S9 ] - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))$ Q" ~ V; C- `: q! a' k- u& Q
- (entmod listxt) ) )
% Y5 ]( u3 T, B' D0 W# S - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))& l& g0 R/ d% N( {
4 |! ?+ R% p0 [! l1 D- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================, d& g) X" y, Z, a" x# M$ ]
# p7 |; K* D$ S! k2 v& `- (defun c:tob () (setvar "cmdecho" 0)2 M, A8 ]6 r+ F9 z
- (prompt "\nHay chon dong TEXT can gach tren dau ")
# `! Y+ M1 s# ~8 u2 P) \ - (prompt "\nSelect objects: ")9 G3 E9 k, |8 L; O4 D
- (command "select" "au" pause)2 Z% s" M5 A3 q8 a- J6 t
- (setq sstxt (ssget "p")
& j! `: [0 ^! E - sslen (sslength sstxt)
8 I! ~4 Y% ~* g3 Q A - ctr 0 )& d- u- K. F9 u7 X: z( p) `1 l
- (command ".undo" "mark")
0 Q4 v) X) R7 X( ?" z+ P8 V - (while (< ctr sslen)
" E5 p5 }5 B; B6 z - (setq listxt (entget (ssname sstxt ctr))% \; b! E: E+ ?7 C% O4 ~
- txttxt (cdr (assoc 1 listxt))8 E5 b& ?, u* u. |! m' \0 I8 X
- enttxt (cdr (assoc 0 listxt)) )
$ a) }, M- |; \' Q. L - (if (= enttxt "TEXT")
' G# ?1 y6 A% F! X& r - (progn3 M: I* o3 t5 X
- (setq testxt (substr txttxt 1 3))
6 G: f! Q6 J1 e- t2 A# ~) ^ - (if (or (= testxt "%%o") (= testxt "%%o"))
5 J- V( K8 J `" @ - (setq newtxt (substr txttxt 4))- O5 a6 k3 x- q/ V5 R$ B
- (setq newtxt (strcat "%%o" txttxt)) )
6 N- r$ d! k; r. f# _; ] - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
9 c2 ]: @6 e9 o2 r P - (entmod listxt) ) )
8 u" {7 S9 c8 S& W - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
' \; s$ x5 `/ b" D! V - ' M0 D+ x* G+ [; Q( H3 G
- ;;; ========================== Tim & thay the TEXT ==========================
) H5 }6 j6 Y& R7 c% I8 }6 s - / _2 q, m, s% t, e0 O" \
- (defun frstring (str search replace / str1 str2 index find)
. h$ X* G$ b0 ]4 G- x# @ - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
* y8 x% c9 M. Z - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
; s9 V) _2 P f+ C$ _# T7 m1 H - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
/ |- d4 H3 O- j$ J5 R; P( H - (defun hai (/ dial)/ ^3 Q: ]: t x# c8 s9 N
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog% x0 u$ d+ ]. [" e8 t% Z
- (if (not (new_dialog "find" Dial)) (exit)) ;;( |4 l8 |) v/ e/ h" V- \
- (mode_tile "find" 2); Tao dau nhac tai hop thoai
8 K( c2 x8 z5 Z ~ o7 H$ p - (action_tile "find" "(hai1)")8 M. d# f: ~; h: a% H3 q# p
- (action_tile "replace" "(hai2)")
* }0 \+ E' o1 i4 T - (action_tile "cancel" "(done_dialog) (exit)"). o" n ]3 T% g# f3 S8 o' S3 c
- (start_dialog) 3 [3 J6 T7 f/ P
- (unload_dialog dial))4 G. d/ O6 D3 v
- (defun hai1 () (SETQ str1 (get_tile "find")))
1 l: O2 p( v+ |& f& Q( t b/ E - (defun hai2 () (SETQ str2 (get_tile "replace")))
: E5 O4 N/ ~$ y/ _# @6 _) f9 J+ V - ! b( t* J5 Z6 J- y, [ b
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)2 W3 B9 `! i! t4 } ~' A j
- (hai)
; t0 g; f" Y& I; b - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")0 _! R% J* }* I+ }" r9 m! [# H
- (progn
7 i# Z' I L% q5 y. ~0 o7 w) a E - (setq taphop (ssget '((0 . "TEXT"))))
: S2 E, n0 N$ i, u; O2 b5 u5 T* o - (setq sodem 0)! U9 Z5 j8 c0 J! r. [5 V
- (if taphop
, d' D& U, t* S2 y [2 H4 k - (progn
7 i% Q' ?1 }, v9 G1 B$ L% f. i1 E - (Repeat (sslength taphop)
5 A- X, m* V9 @6 s' F) j - (setq a (entget (ssname taphop sodem)))# x3 q( W" y& r0 `% D# {
- (setq str (cdr (assoc 1 a)))
# f Z% n4 |1 K7 _* M: R - (setq newstr (frstring str str1 str2)); P* _& }7 g# {4 c# J" [ O
- (setq a (subst (cons 1 newstr) (assoc 1 a) a)): z C* t$ R+ t6 T# V
- (entmod a)+ W. K/ T, H: b
- (setq sodem (1+ sodem)) ) )
0 t7 S' U* Z& T% a9 {" F - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))5 H7 i% c! F4 V
- 1 c) K, z& r' m: M( u
- ;;;============================= CHTEXSTY.LSP =============================
0 r b# y3 T7 Q; D - / Q* j% H' M4 m+ C- l
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ") Q' Z" U4 d& \% g* F! t g* z6 m0 u
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
8 @3 F6 v9 z! d - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
& \ q8 K, @3 o. k# k m/ A - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
, b, m5 Z$ \+ e9 X; a- |$ _8 U - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))8 w7 ~! W0 @6 p' V: P `. B# U
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))9 m& z2 \, W1 c3 F
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J)). A a- ^8 S) n- p# X
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G "")): B& ^7 D. J& I
- (Initget 1) (Setq A (Strcase (Getstring. U% V$ @" `, U5 n1 v5 `
- "\nEnter text style to change: "))) (Initget 1)" U; V2 [5 H0 @6 L/ C1 L
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
9 m( x* ~, |9 k# s; q - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If% n; z. q$ _5 }$ W: m3 Q
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))4 X$ A2 K) n ^$ t. U O4 F
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C)) j. | h6 u' A \7 {
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))! D! E3 d4 P" K7 \- H- t* s; z- m
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))" \ S2 m# B5 `8 T5 M M3 C1 J
- 8 |4 Z3 J( l' x* O
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))% Z; D1 c0 z% Z) \" H; E/ z% ~/ j
- (Setq J (Cdr (Assoc 50 A))))3 W. j4 }7 U: V* a4 f
- $ j$ Q( F" |1 M$ a
- ;;; ============================ DRAW CLOUD =============================
2 R+ a" m8 `0 P) V - Z. K9 {% x1 _5 T+ R- a% f
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
0 Z: @- H4 y6 |7 Z. M0 r - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")/ U3 N3 [0 h$ U0 h5 F* `. l% f$ A
- (setq la (getvar "clayer"))/ v8 Q0 v; s6 t2 s
- (command "layer" "m" "cloud" "c" "5" "" "")
! `) n+ W! m2 J# W4 N - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
7 H. R8 T3 I# L. J" A4 e0 B - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
: H6 ~/ Y! c5 p - (setq cnt 1 ss (ssadd))! r( o* w |0 O2 W
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
' C6 r6 _. L# s! W+ \8 K( ~ - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75)) V- \ G' }% {
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
( D. e r1 `; E& s - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)" r8 @% ~3 I: M3 @( \4 O# E
- (command "pedit" arc1 "y" "j" ss "" "x")3 u$ b/ W5 f+ P. S; }
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
6 ]; h# z# P7 o! v" w# w& [ - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
1 G$ K7 Z4 `" z2 W. w- x - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
' ?1 h* Q2 C, r' E - ( r7 U) T6 I2 ]: D. B* C
- ;;; ================================ Funtion-Dulieu ========================: Q+ m4 y; Y8 D% Y
- ;;; ================================ Funtion-Dulieu ========================* M2 g7 K. [$ c1 w* h
- ;;; ================================ Funtion-Dulieu ========================2 n \$ A0 {$ E+ q r: i% W
- Z1 b% R5 C. q j$ X) X( a* v3 h- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )% H e7 X% g+ Q3 J7 Z0 ~1 e$ d
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
y6 X z; ^/ y, X1 b c. q - (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)). b8 z+ y* _$ N3 a1 b4 N4 Z( J6 i
- (defun hacat (hacat1 hacat2 / hacat3 chon) (if (and (/= hacat1 nil) (/= hacat2 nil)) (progn (setq hacat3 (polar hacat1 (angle hacat1 hacat2) (/ (distance hacat1 hacat2) 2))) (setq chon (ssget hacat3)) (command "break" chon hacat1 hacat2) ) ) (princ) )
4 _' D' P+ A/ o: I, B+ P9 w: Q5 ] - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
- b3 A n- y3 l$ A x0 ^5 p - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))- _5 z* l3 Z' ]! q
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))* t9 t% f& w _/ g
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2))): ]/ Y% w* A4 z. f; M
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
4 |- m% j- u9 m/ i - (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)))5 ]( Z q' K0 W
- (defun dtr (dtr) (* pi (/ dtr 180.0)))
3 T. h/ h7 U& ^* L' q - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
& L* }6 h l/ c - " S* Y3 q# j: k
- ;;;==============================PROGRAME===============================
0 H/ f( Q+ R( e - ;;;=====================EditDiM Hien Hop Thoai Dep======================
8 x. w6 D6 P/ p: t - ;;;==============================PROGRAME===============================; q, y# h4 d* F; Y/ @
: r& o2 U. T8 p5 C- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)/ |8 L4 m9 D( B$ O( n
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
5 s% \6 m! V& v9 b* I# D - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
' [' i; b' Z$ D4 |0 Q - (Setq Oldlis (Entget (Car Chon))
! H5 \6 {/ {! q# t0 k z6 `7 i - Pt10 (Cdr (Assoc 10 Oldlis))4 i0 v) o' l8 w' q3 r0 u7 V
- Pt13 (Cdr (Assoc 13 Oldlis)) B4 W# g3 E3 M ]* S
- Pt14 (Cdr (Assoc 14 Oldlis))
. _: L; \# R3 u - St (Cdr (Assoc 70 Oldlis)): w, j: P. W$ P+ M- F
- Dimdefault (Cdr (Assoc 1 Oldlis))4 Y4 w0 ?4 C& w) B6 m: p
- )3 g# _5 j8 h8 f$ J K) p6 S
- (Cond
( j+ U v$ o" l; e - ((Or (= 32 St)(= 0 St)(= 160 St))2 I" E4 |: Q2 T
- (Progn$ Z# G0 Q2 A& ~% S0 k) U2 ^
- (Setq Ang (Cdr (Assoc 50 Oldlis))
3 `3 _8 q6 [& G) h6 b; x - Pt (Polar Pt13 Ang 500)' L( Q: K& v3 S) S% [5 F/ ~/ m" a
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)1 c3 Z* h' J9 g. I6 {' s) Q" c9 p
- Dis (Rtos (Distance Pt13 Hc))3 k# h9 g: l: ^ ^+ y& o0 k y' I/ r
- )
9 M+ b+ ]1 l3 t/ M - )% n& {; f& ^1 E% `1 u: d( C
- )# @* B9 C& k0 h2 I3 C" E1 ^
- ((Or (= 33 St)(= 1 St))% x6 K+ V( ]- r- c
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))1 `& T/ A5 C" ^8 ]1 V& h# e
- );;End Cond
+ D% F7 p: l3 _6 z - (If (= Dimdefault "") (Setq Dimdefault "<>"))7 K6 Y; m1 D W$ C% q/ G
- (Setq Dial (Load_Dialog "Hai.Dcl"))
2 }0 d( j- Z5 |7 Y$ ^0 N - (If (Not (New_Dialog "eddim" Dial)) (Exit))) r- J+ F7 y5 F7 m
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))8 m+ n+ ~6 F: J6 T
- (Set_Tile "text" Dis))
+ E# ~% W: Q; J$ n0 s) j - (Set_Tile "ha:edim" Dimdefault)2 F" ~) a4 n7 g
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai6 ]5 v9 f) t- h# P2 n
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")8 ] d" P5 W- [0 O
- (Setq State (Start_Dialog))(Unload_Dialog Dial)% B8 _$ v' V- ^0 l) p
- (If (And Str (= 3 State)) A; `. o/ j' [
- (Progn @+ p# o+ C: R# b6 t3 j% W0 q2 S
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis))), q4 E7 X& ~; o6 L" p, ~1 ?
- )
* X3 k! |* f' l2 i - (Defun C:EH (/ Chon Name )4 {: ~9 \# {# d" N% S
- (Defun *Error* (Msg)
4 b, Z x# O4 y/ e - (Princ "\nerror: ")(Princ Msg)(Princ " ")
3 Z4 D- t0 a6 _4 Y, T - (Start_Dialog)(Unload_Dialog Dial)# O" m; B) ^' J! g' ]
- (Setq *Error* Olderr)(Princ)5 _( K( L5 y5 P6 \& j _# w
- )
: g, L$ Y \6 Z" P - (Setq Olderr *Error*)
! L: ~" H' H( ~$ E, m2 e0 p - (Setq Chon T)
8 \7 H H7 j" @& m - (While Chon
) _. ^9 y9 j# ?+ [& }! E$ r. F - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
3 d: M) G% B' R - (If Chon
6 |8 T! l, t* C, I$ Q - (Progn
- r- V5 R) l4 I: ^* \8 O$ h - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
' t. q1 A9 l8 E8 T1 J( } - (Cond
& A u5 T) K2 F, N- D( z3 E - ((= Name "INSERT")(Command "Ddatte" Chon))' z8 ?8 [( y; Q0 | j4 H/ J, j
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
) P: p# C! u: @% a2 Q2 [$ d' @ - ((= Name "DIMENSION") (Hai_Edim Chon))
) V2 c0 l- a0 X! v - )+ B+ s* x5 f+ T, W; e+ s
- );End Cond# M9 q/ z3 \& ?3 x/ X6 Y. e: I5 w
- );End Progn1 t S: @0 u8 u( w
- );End While! v+ n* g6 A8 J- m) k/ I
- (Setq Olderr *Error*)(Princ)
6 J4 I0 Y3 ?% }0 B8 F$ [& A - );End Program
3 Q6 o! L3 w9 p4 p8 f- S( m$ N
6 V4 Q1 G! V7 E+ [3 l8 B3 j0 N0 g- ;;;====================DDeditDim=====================6 a1 Y, P4 h$ p- o
- ;;;=====================Hai.DCL======================
G( v6 Q# ^4 s9 d3 R) M - ;;;====================DDeditDim=====================2 ~% E* X; E* h. y Q
- 2 p' W* B- [/ U: {! I( l
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)/ q. B2 d Q: |% m/ ^) {
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl% i3 {% N$ \/ ?1 |0 g
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)2 @; ]: g- ~- {# ]3 v# d( _3 N# d
- (Setq Oldlis (Entget (Car Chon)) a5 ]% W# X% d# S7 U
- Pt10 (Cdr (Assoc 10 Oldlis))
# s! O. W/ N6 f - Pt13 (Cdr (Assoc 13 Oldlis))7 @: d9 o' A( p1 U( [ y7 H
- Pt14 (Cdr (Assoc 14 Oldlis))+ ]5 N3 @9 g( a* [9 z
- St (Cdr (Assoc 70 Oldlis))
" A a h3 w# t j' x! ^3 c6 e) M - Dimdefault (Cdr (Assoc 1 Oldlis))$ K8 r5 r5 B0 M, g4 f
- )7 y: t6 t, u2 ^- P7 n# g, I' j' o
- (Cond
4 i# ~6 N, }3 w M @4 ` - ((Or (= 32 St)(= 0 St)(= 160 St))
* @3 i. E1 }% K - (Progn$ {3 `! y+ v3 i7 q0 j6 Y
- (Setq Ang (Cdr (Assoc 50 Oldlis)). B+ k: p8 T0 ^1 P4 C
- Pt (Polar Pt13 Ang 500)
( W1 R3 X B+ }; C - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
( e% e8 S* ~# _8 A/ ]9 @, E6 G - Dis (Rtos (Distance Pt13 Hc))0 @! a( a0 A7 j
- )
4 X8 A/ o' y# G" j. D; ? - )
* T! G; y7 Y+ E3 Q( R8 l& t - )
( y3 ]) b$ ]3 h* a# p+ b7 t% S - ((Or (= 33 St)(= 1 St))
9 T+ T0 v* I2 B2 D& ~! v8 K- c i - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))& @1 { {, L$ t+ P& ^+ G
- );;End Cond! F+ f4 X* Q( [! S9 w; I
- (If (= Dimdefault "") (Setq Dimdefault "<>")); o( _/ Q5 R6 Y/ i& P
- (Setq Dial (Load_Dialog "Hai.Dcl"))
, K& ~+ {, T' [ - (If (Not (New_Dialog "eddim" Dial)) (Exit))$ s/ A3 R8 Q* C/ R" _/ @3 `
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))4 j2 R. I( K8 S" R4 U" c) T* L% g5 ?
- (Set_Tile "text" Dis))
3 E @; s. @( G# N - (Set_Tile "ha:edim" Dimdefault)
/ o3 z+ c/ Q' `* G6 ]1 a! ~ - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai- w# z8 s! o9 ~2 S. d/ a: i2 t" p
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
7 U h% ^: v) g4 G - (Setq State (Start_Dialog))(Unload_Dialog Dial)
4 g1 O0 y9 ^ F; g$ v0 H - (If (And Str (= 3 State))
+ M- O* E5 v- {3 P5 e - (Progn0 u; z8 }3 @0 L2 |, o
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))4 K3 n; @. d0 Q! D; _
- )
# s+ s; u `( v9 J' X - (Defun C:EH (/ Chon Name )8 i0 e8 g$ X% ^, t% a2 i) Z
- / f+ }% ~* D- |5 a
- ;;;********************Du Lieu********************
+ [. T$ ]; R+ [+ o0 ?+ X - , n5 j* A, A$ f, b: I. {' v; O4 N
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
0 y. P/ i/ P) E5 \/ w0 L- p - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
5 |% D& j! d8 O( S& i - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
5 v" u0 T3 V" z( z$ T6 X - (Progn [2 a2 S: O2 V: k+ r6 j" Y& Y$ ~) d
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
' b8 c, Z8 l U L7 v# H - (Setq Chon (Ssget Hacat3))4 T9 p. |+ a' a6 u1 |" m
- (Command "Break" Chon Hacat1 Hacat2)+ ^+ Y0 ]; R. \/ { Q
- )" ~* u5 k" ]6 ^
- ): w7 N& g$ j8 f, U6 P
- (Princ)
/ k+ e: K) j [4 j8 A: g - )7 u3 r* K* g; k' q) C
- ;;
" ]9 k' Y% \+ I" z8 u9 y( G4 Q - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))6 j6 W- R3 l& |: e( ^4 w
- ;;
1 h: q! R R7 ?8 x: R) D3 t - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop)). I& Q. r# C: x& ` }
- ;;
$ v& _9 ?% T; w7 j# y2 B - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
/ [9 V. O/ x7 Z8 i# I5 V1 d - ;;' g+ `4 m9 N, m' h. _* T
- (Defun Reinit ()(Setvar "Cmdecho" 1))! H6 u8 I B4 n# z. {" E. J- B
- ;;7 T" S+ |6 }( X- n4 S1 I
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
% b1 T& R* \& z' B6 |, c, r - ;;
# j' \% i2 J. b$ W5 y* O# o - ;;Cho 2 Diem Tinh Ra Vec To Phap
. @5 n, p( E7 H% `3 }' q; o - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
) ~. ] k: H1 O1 W. f V2 M1 F5 K - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
% o, D! @: R" C - ;;Da Biet 2 Diem Thuoc Duong Thang
0 d4 o& Y. n) E* X' F1 H- _ - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
H& A. `; S1 q+ | - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)1 p; O, a4 ]1 I. ?# x+ [" A7 F
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))
9 g4 I; s* Y' }$ d {3 u - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang, G, W% O. `4 t0 g3 C0 e6 v
- ;;Da Biet 2 Diem Thuoc Duong Thang+ b1 p4 c0 n4 s5 [$ W
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
/ k* V$ {& ~4 f- u - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100). ^# W; e9 Z9 U1 ^0 ^- [
- Hc (Inters P1 P2 Dc1 Dc2 Nil)): _8 j# R% u7 f) x! d G
- (Distance Dc1 Hc)1 O4 V) s. L! p: ]9 G4 g
- )$ Q- {6 U; T4 ]4 V. Z- i
- (load "nhapcua.lsp")
' i5 E9 S9 H, R& C: q6 d - (Defun *Error* (Msg); Z9 D& \/ x$ g5 r/ ^$ ~
- (Princ "\nerror: ")(Princ Msg)(Princ " ")8 h9 ]. e$ v4 j
- (Start_Dialog)(Unload_Dialog Dial)
: |9 ^$ A( q8 x, X - (Setq *Error* Olderr)(Princ)
3 ?4 Y' Y6 ], t7 [" ~9 E- ]) k4 K# J - )/ F9 X6 _ ?# H( h
- (Setq Olderr *Error*)% C& Y8 R4 h+ E7 g
- (Setq Chon T)8 ^ j/ R6 x, c* C5 ^
- (While Chon5 R( I& _( J: L& L- I, v6 e9 H
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
4 }5 n6 \9 l4 b, \ - (If Chon/ y" _# O6 ?5 ^; a. I0 ]2 o( k
- (Progn
' Z) a0 O2 Q" w, \ - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))9 ^& F+ H2 ?7 T5 T
- (Cond
$ F0 R* @7 \3 C: B - ((= Name "INSERT")(Command "Ddatte" Chon)). |' C+ t4 p/ E" ^& S3 ~1 `* N
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))/ W" _5 `/ ~& v
- ((= Name "DIMENSION") (Hai_Edim Chon))
6 o% v" J9 d& K" S: F" _. E - )" y$ m% Y4 M1 |+ q
- );End Cond
# u2 u: k' f3 ^# b" Q2 Y - );End Progn8 f$ [6 _1 `7 p1 J' c4 L( |
- );End While
1 w% c+ q, ~* y I5 t5 Z - (Setq Olderr *Error*)(Princ)
7 @2 F/ w6 E1 a* [, k' [1 M - );End Program
. W3 l6 G# g/ t+ g
) E. S5 q5 K' C4 d$ r- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
( H2 k7 ~8 c, _* `9 T! k, F - ;====================================Nhapcua.LSP====================================
4 M! ]& v+ R- I$ \3 k - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================5 o9 j0 O F' Y( D! M& @- O
, v/ M0 {1 I4 K. J
5 X( K+ @! J# \1 B
# L \* A: I1 B& j4 p- ;*******************;*******************;*******************;*******************) E5 T# M$ P# D3 M7 B, h1 F
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****3 E2 t4 l) ?& V; h0 L
- ;*******************;*******************;*******************;*******************' s' d9 R7 I2 e' r3 b1 q8 c/ x
2 m6 E$ s) z- P. m: }% P- ;VE HINH BINH HANH6 X. [1 D( J* L" i
- 7 ?" o6 }* B+ E+ v4 N. s- j
- (defun c:binhhanh (/ p1 p2 p3)% P" z9 D$ O1 T# Z8 e# O1 n& `
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))
2 R% F) k% ]$ ~' a$ r - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
' X. }" M# J. P4 k& Y - (setq om (getvar "osmode")), c. a7 W( [4 k
- (setvar "osmode" 0)
5 A5 b5 I% J1 j- Y5 V - (command "line" p1 p2 "")8 L/ w+ ]& ~' f
- (setvar "osmode" om)
1 i0 Y3 f' F$ H/ C8 [5 x3 g0 U - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))# e& Q+ E6 ~! r Y& s6 D
- (setq a (angle p2 p1))
3 k5 @$ H/ o. a) w7 ]6 T1 Z0 ^4 }$ S - (setq d (distance p1 p2))
9 Z/ d* R R9 `; e - (setq p4 (polar p3 a d)). e4 w! `+ X/ m" Z$ [
- (command "OSNAP" "none")
/ L/ e1 U# @( g# F8 }0 `8 | - (command "erase" "l" "")
$ F6 o; x9 R* ` - (command "pline" p1 p2 p3 p4 p1 "")
4 f: d3 H) C0 C, K3 W" E8 p! N5 i - (setvar "osmode" om)% {8 t% ^: ^, e2 a3 P: @
- )
6 n: u {+ Y z6 D7 |# \, @ - ; K5 A" z+ e8 C+ H; b
- ;VE LUOI COT
# S, `/ H" n: ]% H - - z% D( U6 Z4 P5 H0 _ M% P& r1 x
- (defun c:LuoiCot ()
: p Z5 \# K1 x4 O2 X6 u! O - (setq om (getvar "osmode"))) W' C& b# W) z4 s1 V
- (setvar "osmode" 0)$ D3 J9 s& ~! V
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))# h! E* i* v/ q* K$ m
- (setq p0 (getpoint "\n Chon Basic Point:")) a. P# j C0 O7 g; C; ~+ o( H
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))" H- T0 i1 n* d% g5 ?/ X! j# G5 K7 q
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))& B3 J2 K% E6 |# W7 Q7 h
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
* Q. v; { A5 x/ K' i" _: r9 m1 p% D - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ), z+ D* S# I1 I
- (command "rectang" p1 p2)
1 o9 U6 X; R8 P& n ?6 e+ x4 G* e - (command "hatch" "solid" "l" "")
* U/ @2 N0 C1 E4 j- Q6 P! Z - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))& |! A' Q: \; s, ~3 ?2 V/ c
- (setq nn (getint "\n So buoc cot phuong ngang : "))
; T9 M1 e9 T! |1 G0 ~0 W% ^ - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) ): m+ [6 r# \$ t
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )' Z1 p. u' [0 H
- (command "select" "w" w1 w2 "")
+ b8 K. a" Q' Z5 T7 A - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )0 W z! f7 ~& t! g+ Q4 ]. W
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")" ~) x- c, O1 D& y& E- A8 y C! a6 U
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))9 q3 P$ ]; g s( V- Q7 f" ?6 B
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
0 J w5 _ H1 X+ v$ X) ` - (command "zoom" "w" w1 w2)
5 S- R4 J2 Z2 P, t. B% B! v - (command "select" "w" w1 w2 "")
3 o: |# O" P, j. [6 n$ r - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))& b2 q8 v& i$ d- L2 s, O
- (setq nd (getint "\n So buoc cot phuong doc : "))
# G1 V% a) L5 E* m - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )2 o' S" n3 q2 V) p# ^0 b$ s) Q
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
# S2 r% I( n _5 r) U' u! k - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )1 k( Z# B# @5 H/ V, k5 }
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
/ l* l0 p& L: \* d8 ~, ?, k1 M - (command "zoom" "w" w1 w2)
( G5 U9 ]% n% ]& D: k! f+ Q - (setvar "osmode" om)4 g* g7 L4 Y1 F/ R* u
- )1 v7 ~- v0 y; _+ i3 Z6 W& R; h1 P- P
$ M) p, E% b, Q+ i) k3 W8 I5 _- ;VE CUA DI& S1 n" G; N% G5 E/ _( n& o
- 1 {( b, R! e' p* m7 [; V0 ~/ S
- (defun c:cuadi ()4 U) R1 ^* [1 \6 h
- (setq om (getvar "osmode"))
6 B2 [; g% [- U5 H6 A3 @) a - (setvar "osmode" 0)
1 m& X9 X: Q2 V# {- p. v - 9 L( ^& ? v s" |6 R& y' ^
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))' g6 \' w; y: u4 N L% S) R
- (setq b (getreal "\n Nhap be rong cua : "))
! @ F$ o& P9 P - (setvar "osmode" om)* h8 c% O4 f `
- (while (< 0 1)
+ g: ~3 U* z% j3 M - (progn D' \. g! ?) @2 A$ t/ D
- (setq p0 (getpoint "\n Chon Basic Point:"))
7 q3 ?: c' N; I7 o% G3 a& z% t/ D - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
# s+ b* K7 z. V! S3 m0 ?" ^- ^6 H. _ - (command "osnap" "none")" y2 _- H7 v9 n8 F, Z1 _9 e: [- V
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
$ _' P. }2 @! X3 L3 M' }5 A$ u - (setq a1 (angle p0 p1))
1 Y/ B- s" [7 `2 ]' S: Z - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
/ a; K2 N; V/ h - (setq a2 (angle p0 p2))
0 s: b& s* @! Q* r - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
3 r3 H4 Q2 [* H4 [( r - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")3 {" u& G6 i* Z" w1 D
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))4 K0 O: Q. C$ _3 @
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) / m- J. O: k- _5 W9 O
- (setvar "osmode" om)9 @& p: z3 R6 o r
- ))
" F* ?9 j2 C+ Q# A' R - )
, \- z# [. M C4 @& N - $ n, n; z: f* Z7 k1 G+ H3 R
- ;VE CUA SO/ R( P; c) O" u3 I( X3 `: \
- + H. P2 ?- D% O1 g- F& C4 k
- (defun c:cuaso ()- p6 M1 a9 b) B) N4 k9 m% K
- (setq om (getvar "osmode"))0 M' O2 ~ c4 x7 v L
- (setvar "osmode" 0)
6 x" v2 p3 I+ x7 n0 P; q8 p
. @3 }& I V5 N0 n c+ {8 ~( D- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))5 N5 R: j, R5 y; T
- (setvar "osmode" om)( n3 x( P; j, d
- (while (< 0 1)
! z- d$ k9 M; {' K5 q8 j - (progn
; J5 ?" w* a1 ?# X - (setq p0 (getpoint "\n Chon Basic Point:"))
: C8 ]6 v5 b$ W0 d( [3 i p7 ?! Q - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))) F2 ]- I0 q4 l8 @3 b
- (command "osnap" "none")# }/ C& Q( I, k/ g
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
3 }( N3 z9 w2 u* B4 ]7 o9 I+ O - (setq b (distance p0 p1))- D4 |4 d: p, j' m
- (if (< b (/ (* hstl 600) tile)) (setq du 50))% R; Y4 y$ A: I! Z5 y! \0 W
- (if (> b (/ (* hstl 600) tile)) (setq du 150))
1 c$ ]6 |( q/ S8 b0 g2 L2 `7 S - (if (> b (/ (* hstl 1800) tile)) (setq du 200))
" b* F( c* V V& [3 D. S+ @) V% v - (setq a1 (angle p0 p1))# s: g7 f/ h5 _$ y
- (setq a2 (angle p0 p2))
" o- s; `. c- G. F& X - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
+ K& A5 Z( Y& g/ x - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )0 R. y& N% N' h# d
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )! n& z+ A' ?) E: S: W
- (command "pline" p0 "w" "0" "0" p1 "")
' Z' a' L$ e9 n - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")* x9 P2 Z/ Z& T: m
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
& Q: X! z6 _2 U1 W! s' R - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
, ~" r5 e0 p) ^. _, X - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
. l2 _" ^: W' w! M - (setvar "osmode" om)
2 [- f- I" ^8 L - ))4 ~" c8 p0 N; n8 L6 m
- )
3 Y# ?( ]0 x9 I& L - ) Y H5 o' O& h. s/ a% D, k; m
- ;;;=== General Utility Functions ===
# z C0 A' @, X* _' v# t3 n; F8 }0 S - 2 x' f' N: d3 y9 H3 u
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
+ f' b! g) x4 G$ q - ; ADS function. Now it's a simple AutoLISP function that calls the
- L# t! F: ~# U - ; built-in function (help). It's only purpose is R12 compatibility. 9 @' \4 Y8 L! n4 T* v
- ; If you are calling it for anything else, you should almost certainly , Y5 E# R" `" _7 H9 I) C6 U
- ; be calling (help) instead.
3 X+ N! i1 N0 A2 {7 m: P4 R! @ - 4 i2 e r; j9 B- N4 E! g) R( _# F
- (defun acad_helpdlg (helpfile topic); O3 g# b4 c0 `, D
- (help helpfile topic)7 H) u" s3 ], D: ]- ]
- )5 Y) J. @4 B) Y0 P" \
7 {9 f6 v0 [# p# v- 6 F1 S7 ^ H3 L. _: i. I
- (defun *merr* (msg)' }& O! _. D/ B3 k$ U
- (setq *error* m:err m:err nil)% N' r0 q( C) c7 A) B2 x
- (princ)
' ]; g, u6 D" j+ H. g - )
1 W% n6 r' v; O
1 R: B, F* }, W0 I9 D* j- (defun *merrmsg* (msg)
" H- W" ~- S' f; O3 W/ e - (princ msg)
! J: \3 L' ^4 C/ I0 s - (setq *error* m:err m:err nil)
" O4 H/ p' `( v3 o - (princ)0 u; f$ ]: Y" {6 |7 u
- )
0 j) t4 d5 p3 J# |/ Y, K
" d' W. ]+ `' x, p- ;; Loads the indicated ARX app if it isn't already loaded
! I8 a" c! J+ J1 x - ;; returns nil if no load was necessary, else returns the2 f$ {. h! y3 J% k" j4 P9 m, {7 s
- ;; app name if a load occurred.$ k1 T/ `: l& u: y
- (defun verify_arxapp_loaded (app) ; [1 e: b+ t6 P R# _/ [
- (if (not (loadedp app (arx))); x+ C+ b u# U% r+ ~7 J" c' R4 v
- (arxload app f)
$ s1 U0 A1 h; Z: l$ } - )
8 D& C, N7 n+ y5 { - )
6 H; _) x1 M9 \/ i( a
7 ]! ^& n4 F2 e1 G+ o+ ?- ;; determines if a given application is loaded...2 c, v4 o2 L9 c$ K- ]
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
/ `6 l5 Y1 l; e0 y- w' T. J - ;;
3 Y5 J6 m2 g" n: a% v! X - ;; app is the filename of the application to check (extension is required)' u3 K9 t& y3 J
- ;; appset is a list of applications, (such as (arx) or (ads)
) n$ z9 c; ~, \7 H9 x% o7 d) p4 y - ;; + F. n+ e+ O4 V8 }) A; v/ r. D: D
- ;; returns T or nil, depending on whether app is present in the appset% N0 _* J/ x5 R) _, F- B0 N9 z e9 |
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
! g6 w+ P, E! X! W7 `% } - ;; Also, if appset contains members that contain paths, app will right-match
: _6 o Q4 w9 I% @ - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that4 n" p4 t- x7 V6 n# O5 K
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
7 O; J" X7 x9 _. W O - (defun loadedp (app appset)! f/ x* ?0 M% h% ^
- (cond (appset (or $ O6 d" Y0 n; b& r7 C
- ;; exactly equal? (ignoring case) d+ }9 W( ?. }) m' f
- (= (strcase (car appset))
9 L+ ^% Q0 D4 h/ t, ~* D; U% w - (strcase app))
. r2 \7 p, S" z& J3 a' p - ;; right-matching? (ignoring case, but assuming that3 }9 R. K# v6 T3 E/ D5 o. S; m
- ;; it's a complete filename (with a backslash before it)
% c; P. U* I2 g; Z' {7 L; C - (and , A8 i5 z( g9 S% {
- (> (strlen (car appset)) (strlen app))
- @$ |7 K6 `0 L2 Y2 z7 T$ l- u - (= (strcase (substr (car appset)
; [) T+ h% d2 Q" v - (- (strlen (car appset))
1 o Z9 z; P$ ] I' [1 ` - (strlen app)
3 d# I" B: J0 o) @+ F4 e# {$ n - )
; i4 T" p% h' v- Q - )
9 D+ x* v4 D9 W+ ~1 `: p% a+ r - )
4 n7 b9 f" s) b9 u$ |& A1 ~ - (strcase (strcat "\\" app))+ i% Y0 f: [9 n9 e7 ?% c. M0 P* v
- )
( s: O& k* Q$ S5 H% V; B - )6 K" l6 U; T W$ l+ M c
- ;; no match for this entry in appset, try next one....
2 r8 ?5 n: [+ \+ S4 H; A3 B, @ - (loadedp app (cdr appset)) )))
7 v: ?; ^+ A7 L9 z# [; q/ A - )) Y. c& [6 o! S+ A, ]
- * T) P! T: [0 S, a. I
' y6 `/ D' w# n- ;;; ===== Single-line MText editor =====
0 O& [# w8 Q. L3 K - (defun LispEd (contents / fname dcl state)* r5 X: g& z8 d; W$ r- Y/ h* ]# I2 O
- (if (not (setq fname (getvar "program")))' M3 z, ~/ x3 _# \9 D
- (setq fname "acad")
. x$ F$ _. Y+ Q3 s - )
6 \4 M% m7 q6 S$ J - (strcat fname ".dcl")! h# ? n8 `( O% c9 [- i
- (setq dcl (load_dialog fname))5 ~. s8 f/ m% Q A
- (if (not (new_dialog "LispEd" dcl)) (exit))
: ~. u+ M: H, @" o2 ?* }# e - (set_tile "contents" contents)
! ^1 f; @" Q6 p5 B - (mode_tile "contents" 2)! g: W% S! P, K
- (action_tile "contents" "(setq contents $value)"): o8 c( d$ p% s7 l
- (action_tile "accept" "(done_dialog 1)")/ s' ^( }& h& m: H* z- d8 N
- (action_tile "mtexted" "(done_dialog 2)" )
/ A* } ^0 q% F0 B" |' o5 x. y- n - (setq state (start_dialog))# v3 J" U ?6 Y0 O" ?# m/ z
- (unload_dialog dcl)
$ Z2 r3 v2 Z! M9 e - (cond
v) F3 _7 |8 N - ((= state 1) contents)# E& H+ X U3 f1 k7 i
- ((= state 2) -1)$ ]& Z8 L5 c; I
- (t 0)- x$ u; U: e2 [9 X# w. a- B
- )1 O" x# k0 S A" s7 B; k
- )
( C+ j2 F. q, ?6 U3 L; Z- T( R& _4 F3 U
$ i; }( A" d% ^5 F$ K y- ;;; ===== Discontinued commands =====4 D/ i3 b( a. ?. @3 s
- (defun c:ddselect(/ cmdecho-save)
8 r3 Y4 M3 O7 }8 k" r! \ - (setq cmdecho-save (getvar "CMDECHO"))+ J5 N; k; ~& G" d9 }) ]0 K
- (setvar "CMDECHO" 0)
' V9 H5 n7 R+ J, Y" J - (command "._+options" 7)
! c# T! q/ f8 t1 @* V/ s - (setvar "CMDECHO" cmdecho-save)1 @- Z$ |0 \, W% I# U2 ?- [: X
- (princ)
$ t1 i; A( g; t! `) U6 ^ - )
3 |5 u$ i4 R. h- ] - - i% B% [! R5 T6 B5 j |
- (defun c:ddgrips(/ cmdecho-save)
% @' ~+ q P! Y: {$ h$ z# v! v9 E - (setq cmdecho-save (getvar "CMDECHO"))8 w* B; G4 v0 A$ V, E4 B' Z
- (setvar "CMDECHO" 0)
0 \$ T. s, j. t6 ]7 m( N" L+ U0 B - (command "._+options" 7)/ |8 |" \1 P7 i6 K4 i
- (setvar "CMDECHO" cmdecho-save)' m! ~3 @0 t! O; k: V
- (princ)
/ }% ?1 Z, G7 R/ d% G - ) F. ^/ j- C2 q" N& j6 p0 W7 G$ T
% a( ?, z8 F) w+ H- (defun c:gifin ()
& n' u4 E! Z/ p - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")* t( t6 [) y- _3 R3 M6 N
- (princ)( s8 A: @9 n& M w1 G3 ~
- )0 W8 |5 d9 v" {# |, A% \
- 6 f2 `. u+ [: X/ [8 X
- (defun c:pcxin () t) x w' t# k' t4 e$ w
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")3 A+ F: H2 r: q8 s' Q @
- (princ)7 `7 [' \: [5 l( [4 ?) \1 Z
- ), C% `" \+ d5 V. U8 }
( R' j2 K, w2 ^; n- (defun c:tiffin ()
* e+ [* Z" k( r) \ - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
$ I i: G5 c3 M" ^0 b- d. n - (princ)
4 P/ f5 L$ l) m; N - )/ C+ A+ k- T- \3 P6 [+ N$ l
$ a, C4 R! u6 M( P) g4 y8 Q- (defun c:ddemodes(); X7 O' T; w! S, ?* E# \2 ~2 x
- (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.")# e- K' _( b$ D. }
- (princ)4 g( U" `6 H& A
- )5 x7 N& i' D4 g* v( a* K
- + F+ P" E2 d# e; |& ~
- (defun c:ddrmodes(/ cmdecho-save)
- L3 m R8 i2 e& e - (setq cmdecho-save (getvar "CMDECHO"))5 P( |0 y6 h; C( \1 _7 r
- (setvar "CMDECHO" 0)
* u: V/ K, v1 [ C - (command "._+dsettings" 0)
; y, @; L+ a' E - (setvar "CMDECHO" cmdecho-save)
0 ?0 J& O1 Q- k9 j( k - (princ) Y* }6 U" t- u
- )$ W w. d' N9 W7 ?
- 1 m- c1 P1 ~1 c* b4 `. v7 e3 e
- ;; HPCONFIG" c$ K% l! u( D: \0 V
- (defun c:hpconfig (/ hlppath)
+ q9 z: M3 \& n% J - (if (not (setq hlppath (findfile "acad.hlp")))7 r) Q& p( w8 i+ A: j( P* D" m8 g
- (setq hlppath ""))
# E* F% `& }1 j; N1 \6 h6 L1 ~+ d - (help hlppath "hpconfig")
5 z; y/ F3 W/ L0 H G - (princ)
' y, L" ] x8 a- s4 \* [9 w; o - )
: V2 B1 J, [+ D8 L - * m! Z) O! B- q3 o
- ;; OCECONFIG
q5 k, r1 g' `9 Q; d8 l - (defun c:oceconfig (/ hlppath)2 ?! Y. W) {$ O' H
- (if (not (setq hlppath (findfile "acad.hlp")))
# t( F7 l5 v c" N3 J& [9 a L. h - (setq hlppath ""))
; ]# z; }; h D P/ ~* ~ - (help hlppath "oceconfig")/ L0 w) v( v$ T& [8 n' _
- (princ), ~! W- T; c3 ~ Y& a$ w, e |3 N$ }
- )6 K1 i7 l+ _* J8 {& s7 Y
+ e9 d+ m8 l* Z8 p/ }- ;; CCONFIG
0 O' Q0 {# e: i' f3 ? - (defun c:cconfig (/ hlppath)
* y( S1 l; e9 Q# f& l R E6 H% e - (if (not (setq hlppath (findfile "acad.hlp")))
9 p7 Q( P4 ?2 x - (setq hlppath ""))
4 Q6 J% ` T! y1 g( R& ~! ? - (help hlppath "cconfig")
4 Z; v& ]9 p6 A( E - (princ)3 c1 j: W. D5 | N6 p" R) ~9 D
- )
% ^+ @1 R, c: ]1 o. p8 _& c5 S - * Z' q7 @) ^, g( z* u! g
- ;;; ===== AutoLoad =====
/ z: h% I: N8 k2 s }
' A T' K# B' C3 P- ;;; Check list of loaded <apptype> applications ("ads" or "arx")' _7 O2 H, b# F
- ;;; for the name of a certain appplication <appname>.
9 e- H$ d s z: {2 D6 H6 c - ;;; Returns T if <appname> is loaded.
+ z6 F# G0 m4 k8 A: Q# Z( W- q - $ q/ o$ Z$ O# i6 [7 x) j. W% W! r
- (defun ai_AppLoaded (appname apptype), M1 k5 z; W ?/ C
- (apply 'or
E! l& y* k: a1 m; A% v5 d2 D - (mapcar
- }: J* Z; m1 O% v3 g" B - '(lambda (j)
" Q2 R, H* L e# }0 ? - (wcmatch
9 R: e! B# f+ o, ]$ l - (strcase j T)0 \5 f g* D5 A8 ?4 N
- (strcase (strcat "*" appname "*") T)
1 t0 Y7 j" R& Y9 S - )
( f4 m- M. _0 r% ^: J! }2 x! ]; x0 ] - )- A+ N. @$ y7 u" m; s0 Q' n
- (eval (list (read apptype))). J$ @$ \; d9 I2 A. l; m/ H: Y
- )
* ]" S' u& G3 r% w+ u - ); K( p+ x! `7 F+ D' [) z5 U
- )7 B$ t- _) W/ G. M+ _1 C# S
8 J. S. ]" G$ U8 [. p2 o$ T0 v- ;;
: k k" Y- r; h/ a7 m3 y. y% E2 l' k - ;; Native Rx commands cannot be called with the "C:" syntax. They must
5 S: j v, {3 r - ;; be called via (command). Therefore they require their own autoload % ?( h2 |5 I. s5 i% ^9 d
- ;; command.* O# V1 M8 m1 U4 ] x5 K
- 8 |3 ~* _& d- q4 u
- (defun autonativeload (app cmdliste / qapp)
2 {$ l3 A* c# `9 [/ a4 ^ - (setq qapp (strcat "\"" app "\""))# Y! H& e {- ?9 m1 p3 \$ b- E
- (setq initstring "\nInitializing...")
1 r4 i! a3 [' _0 F& o3 N - (mapcar$ V1 M8 O$ S0 ?* |
- '(lambda (cmd / nom_cmd native_cmd)& w4 W, H6 G9 ~3 J* `9 w7 ?! ] D0 E' _
- (progn0 v; |/ U) O+ n. ]5 m
- (setq nom_cmd (strcat "C:" cmd))
2 m+ b+ k, T0 g - (setq native_cmd (strcat "\"_" cmd "\""))9 }. }' O' b) S2 v2 o- i/ P
- (if (not (eval (read nom_cmd)))1 P- ]( H5 q' R4 f A
- (eval
/ R V& Y' R% B+ k+ o6 o" y - (read (strcat3 n" ~( D& G4 g! n
- "(defun " nom_cmd "()"
0 a+ Q/ I7 ^1 h7 C' N: Z - "(setq m:err *error* *error* *merrmsg*)"
9 @8 M1 z0 ^/ v* t" x" }6 F7 U4 Q - "(if (ai_ffile " qapp ")"- a' m" F; @0 W7 I
- "(progn (princ initstring)"
6 |$ ]; b3 O9 z, Y, @ - "(_autoarxload " qapp ") (command " native_cmd "))"
6 P% G# q m& ]# k5 I - "(ai_nofile " qapp "))"
( K+ `$ |1 j. u2 _( @; v8 B% J - "(setq *error* m:err m:err nil))"
0 K$ W: l8 ~9 p1 b - ))))))
6 b6 q9 X! q& v, a6 e" W( U+ } - cmdliste)
9 `9 t Z# x- s0 L - nil
& l1 ^* e% x8 y( L2 [) m - )% L/ e7 E5 m2 X: x& L# M) r
- - M6 o+ p1 o5 q8 W o* U( z
- (defun _autoqload (quoi app cmdliste / qapp symnam)
# V8 T7 a/ K0 q& Y" n5 g - (setq qapp (strcat "\"" app "\""))
! R- t8 J) U0 _1 Q3 b2 J - (setq initstring "\nInitializing...")
% G; E; S0 l9 t' j% m7 } - (mapcar3 E; w, U- C9 r
- '(lambda (cmd / nom_cmd)
" N: T8 h5 N% M% @$ v4 Y9 O - (progn
2 d+ m& x% u }4 x0 W - (setq nom_cmd (strcat "C:" cmd))" o2 o i+ g/ c$ `
- (if (not (eval (read nom_cmd)))
" Y/ b" h; H" @' q: E - (eval% r: P" e% {% ?) r
- (read (strcat
7 b; p z( G9 [6 o( O) l3 h$ y - "(defun " nom_cmd "( / rtn)"5 {, T* |, ?4 _& ^8 u
- "(setq m:err *error* *error* *merrmsg*)"; U& ~. U9 s8 S- M, x. s
- "(if (ai_ffile " qapp ")"
3 h. v8 j) U+ i8 Z4 q - "(progn (princ initstring)"' ]/ h5 Z+ n* w1 K$ X* |% t$ [) Q
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
( Y/ J7 I' J5 O- t - "(ai_nofile " qapp "))"
* ~7 e1 b6 `% M; p; }; t - "(setq *error* m:err m:err nil)"' @ v" Y: e1 E% K- l
- "rtn)"
6 T" ^! @' D7 `$ I - ))))))2 f3 g( Z# W! J6 g" ?* S/ L
- cmdliste)
0 X- N' o, ]9 R3 A$ V7 g( f7 h# v - nil
) `9 r V/ U G% f+ x; C; ^ - )
* J* {% Y* l8 s) o - $ U/ f: `* j# W0 v4 K) N
- (defun autoload (app cmdliste)
9 d' z, X- P; p% @ - (_autoqload "" app cmdliste)
' d1 l) l! ^: Q0 _8 l1 t" s - )* \; f: y) K4 d9 A4 {
& F1 N h6 W! s( t3 \- a% t- J- (defun autoarxload (app cmdliste)
' @, ?7 c! {- j& \$ @- D3 M - (_autoqload "arx" app cmdliste)
& c/ T# {# v" B - )
J* O* ^9 |" z- n8 l8 q+ }9 Z - . F2 c8 F& W; f" |$ K# Z7 j
- (defun autoarxacedload (app cmdliste / qapp symnam)( U/ C$ o" @4 Z7 F
- (setq qapp (strcat "\"" app "\""))
2 p! e: O* w. E9 W6 |0 M - (setq initstring "\nInitializing...")
; U4 {! C U! O; [6 Z - (mapcar
) P* g& i+ L" f, Z3 d - '(lambda (cmd / nom_cmd)5 R2 `# F J+ i: f) Q( z9 g. E
- (progn0 z2 a- N- Y4 G6 c) }: X
- (setq nom_cmd (strcat "C:" cmd)): r) y1 p6 Z$ ~5 j* r3 B: P
- (if (not (eval (read nom_cmd)))
3 O- Y. h/ G* J5 u, s1 A0 K) H - (eval
2 k! h4 [0 X7 g6 ~' ?* \ - (read (strcat
1 O+ f- B+ H4 N. A' C$ w0 R) n - "(defun " nom_cmd "( / oldcmdecho)" V' f0 D1 @$ b4 l
- "(setq m:err *error* *error* *merrmsg*)"
4 ~6 O/ g! R4 J* `9 y - "(if (ai_ffile " qapp ")"
, Y3 k4 V5 Q# T1 E - "(progn (princ initstring)"
3 J6 h: q2 U% C3 ~ U& h - "(_autoarxload " qapp ")"
* f! t6 @4 e+ Z) U6 C - "(setq oldcmdecho (getvar \"CMDECHO\"))"
( J$ _ W% H; y( X+ g - "(setvar \"CMDECHO\" 0)"6 p- s% _2 ]5 h i9 ~
- "(command " "\"_" cmd "\"" ")"
! E. C& C, s6 m - "(setvar \"CMDECHO\" oldcmdecho))". o2 X1 m+ x8 M" w/ h5 u
- "(ai_nofile " qapp "))"6 \) o: H8 M, g" H( @- u8 p9 x' P# ~
- "(setq *error* m:err m:err nil)"* J8 N+ _5 Q/ L/ Y
- "(princ))"
2 {/ `( [6 q. B, |% f0 |& d - ))))))
/ W$ g; v; c* j/ L# F - cmdliste)
; e8 [( B W }! O& W" s4 Y - nil. _# u4 v M" ~( {4 u
- )
3 \. e. r* P u - ( I1 e1 j: P4 S% f
- (defun _autoload (app)
, y+ q, d# K$ q% ^; q1 N, t: c - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
! z1 @$ C, A/ ~# a - (load app)
2 @& k L6 ?" j3 p1 v- j+ G - )
; X/ |/ M/ d. Q/ V! c2 z" x - 2 ~; p6 g1 H1 k [ K
- (defun _autoarxload (app); r5 ?, j$ R' V& V
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)( V9 J' |+ ]0 j1 S* m5 w" |
- (arxload app)
3 \0 j% C. A3 x' x6 b, v) T - )
/ O3 s% O1 C2 t9 R
5 d" Y, | J& P1 F- (defun ai_ffile (app)! v: N6 O- g$ X) q# S
- (or (findfile (strcat app ".lsp"))" h5 P8 Y# v/ U f% l: S {; `$ m
- (findfile (strcat app ".exp"))& p* r8 ^. e: T8 `8 N$ B$ _7 J
- (findfile (strcat app ".exe"))/ L, W% {% g7 }7 [5 ~: r; \
- (findfile (strcat app ".arx"))
- M! p" h) C5 q* t( `7 [$ n) o. W - (findfile app)) N1 U9 [. Z) H9 |+ x
- ). m6 s0 }1 i3 Z
- )
4 X& F9 L6 g7 a
+ K7 T3 @0 k/ W( N( D( g- (defun ai_nofile (filename)
1 S% U# M& x+ g( Q1 A4 }- |1 } - (princ, y5 `) P' f* E" w! s% b4 w
- (strcat "\nThe file "$ { k2 I8 H8 ?9 M2 C2 }/ b
- filename
- F9 c8 p: m( G4 o - "(.lsp/.exe/.arx) was not found in your search path folders."
$ j+ `# x( T4 ]6 } - )$ L5 M! [, K* N6 P: b2 K( c
- )
) ?! d" P) g6 E2 O* z - (princ "\nCheck the installation of the support files and try again.")! |' H. H' W" q7 N3 w' L
- (princ)% v5 m6 g5 f) h/ P) j
- )9 z/ |! z. I/ x( b! t
- ) d+ A0 P/ l" L
& |: b4 e0 z6 u9 T4 H- ;;;===== AutoLoad LISP Applications =====
9 T1 g9 g, X9 c K+ l* c - ; Set help for those apps with a command line interface
3 w( W( Q3 \) J# K6 N
, n$ c: @6 _1 G, E$ o4 @* m- `- (autoload "edge" '("edge"))
* p' X( d1 _7 _* T - (setfunhelp "C:edge" "" "edge")
. q4 c5 `* b; J# t$ p0 D - 5 P7 a! X) P- j( v3 k& B
- (autoload "filter" '("filter " "filter"))2 ?1 C9 y& |- J& {
8 ]) b; m- i! f! ]: U* }5 Z) L! q( f- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
* i9 M$ l, P( ~( e8 N - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")! S& [+ T5 N' _; c: p* Y( b$ z* x
- )
# y% l5 [9 d1 s2 j/ \! q8 O! _6 x - (setfunhelp "C:3d" "" "3d"). R8 U! D6 J) \1 D+ P+ c5 L
- (setfunhelp "C:ai_box" "" "3d_box")9 G* [' p" L- }* U7 g) N: @
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")3 F2 S( k4 l- @+ Z/ i: `5 A
- (setfunhelp "C:ai__wedge" "" "3d_wedge")8 Z- h8 T' i! {2 B- A
- (setfunhelp "C:ai_dome" "" "3d_dome")
" `- X% L# H+ W; { r - (setfunhelp "C:ai_mesh" "" "3d_mesh")
( B# O6 _) _6 g* u3 s6 o% p - (setfunhelp "C:ai_sphere" "" "3d_sphere")% L) |% q9 y& Y. ?! j: ]
- (setfunhelp "C:ai_cone" "" "3d_cone")
* O) ~! o" E: z( p - (setfunhelp "C:ai_torus" "" "3d_torus")
& q/ U2 N5 k* e' l - (setfunhelp "C:ai_dish" "" "3d_dish")( V! Q) I6 z+ a/ w: c
- 0 K1 K, O' E: h2 n) `( @; s+ a) N- Q
- (autoload "3darray" '("3darray"))8 c6 [8 }; U0 B% h, h! b
- (setfunhelp "C:3darray" "" "3darray"). l! @& f+ L0 z7 P
- + B# ?9 I) m# F1 u5 L a' J4 C8 m
- (autoload "ddvpoint" '("ddvpoint"))6 V* ?& w, s# t5 B
- 8 I% B% s, n8 p' Q
- (autoload "mvsetup" '("mvsetup"))
3 P) m* o5 i/ Q6 C8 i - (setfunhelp "C:mvsetup" "" "mvsetup")+ y: }6 E- ?2 Q* L# T# B
- , ~6 [' x+ _$ B; `6 k0 U
- (autoload "ddptype" '("ddptype"))
% T6 m% ~. {, }! \6 z+ l - 1 G0 [3 ?0 u- [! K, U2 V, N8 |$ L
- (autoload "attredef" '("attredef"))
6 p) r; p9 q. D - (setfunhelp "C:attredef" "" "attredef")
& J7 u/ Q% R& @) H# ^! d4 }+ D - 4 n, [2 T" z6 ?* ?4 x
- (autoload "xplode" '("xp" "xplode"))
: W# ]/ X9 g- m. [* _* ^ - (setfunhelp "C:xplode" "" "xplode")! C$ e- a% S t9 {; a6 Y) E: S
. `& V s* n# M) ` c5 m& r- (autoload "tutorial" '("tutdemo" "tutclear"
, ^ e4 D1 x- w! o. H; k1 }1 g- O - "tutdemo" , `* G6 h, }: W7 O0 [
- "tutclear")): W+ K$ Y, v1 l# _( s* h/ B
- 6 S1 ?; V2 Y" Q4 `
- ;;;===== AutoArxLoad Arx Applications =====" O) D& B/ ~ b% O: B
4 ^7 h9 L2 n0 Z" V7 z) C6 r- (autoarxload "geomcal" '("cal" "cal"))' l6 L6 s5 ?2 b- S$ N' e
7 I: d8 q- Y) o+ ?( Q- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"+ a& f {5 h6 Y" Y% `
- "mirror3d" "rotate3d"
/ @3 c8 H s2 T& U - "align"))
2 |/ M% B1 R9 F - ' Q7 {: p/ N) ]3 H: e' ^; i
% `/ E9 s+ P: \/ W* P* }- ;;; ===== Double byte character handling functions =====
* l: X/ }! P, Q1 p y$ J& V - . w h2 U+ V3 g
- (defun is_lead_byte(code)% s, _5 p* u. H/ }
- (setq asia_cd (getvar "dwgcodepage"))
$ C- A0 @9 |: h - (cond
0 f% j% X5 i: w. O - ( (or (= asia_cd "dos932") b: `/ K6 I" h: ?* d) A! T
- (= asia_cd "ANSI_932")
4 C7 [( ?, k( j" v3 Y. t2 g+ O - )
9 W/ i( F' A* ` - (or (and (<= 129 code) (<= code 159))( A2 u) r* d- m! g
- (and (<= 224 code) (<= code 252))
/ o. `$ ?$ U: A( P4 G6 l7 E - )/ U4 c2 G. h* A A: u/ k
- ); l8 ?/ M+ x" ]" Q/ k
- ( (or (= asia_cd "big5")
6 H2 s% q u# \/ j: s - (= asia_cd "ANSI_950")
# d+ s/ k: J: ` F; w* y4 r2 J - )) @( \! n3 N3 l
- (and (<= 129 code) (<= code 254))* H, m! J# e! [* L6 i$ |6 T
- )
. e, [- s2 M( A3 ?( f& n' j, ] - ( (or (= asia_cd "gb2312")
! i2 I9 W2 p u2 E/ |% y0 E2 L- g - (= asia_cd "ANSI_936")8 H+ s! d0 I* s9 z' o
- )* q s9 z0 Z& E! M) ~2 a' M
- (and (<= 161 code) (<= code 254))7 n& Q3 x$ R* ]. b3 J3 f! ?
- ) |+ k5 `7 g; h+ e' U/ e9 n' G) K
- ( (or (= asia_cd "johab")4 T5 X w9 l# @) @2 e+ x" C3 S
- (= asia_cd "ANSI_1361")5 `; U+ h7 ]$ l) z4 b' _0 _, ?
- )2 x; y2 n" i- d( Y. S0 U) i, G
- (and (<= 132 code) (<= code 211))
" G. C4 w8 ?% K+ k - )
1 t$ ?3 k. R" M3 w0 Z' x: s - ( (or (= asia_cd "ksc5601")- J- D" ~7 `3 c x0 g7 p
- (= asia_cd "ANSI_949")- n' @# H9 }7 H9 E# p' F5 ]
- )
2 y% f# w5 g& U" s( o! h - (and (<= 129 code) (<= code 254))
6 e) l& t" h! O7 S( O* H; i, b: n - )9 n8 D. q: E$ H$ s& f5 `
- )
R% X' W3 p3 e. D. \ - )% r0 {7 _+ N) z, w4 z! k- i% G
) r$ N9 B7 r& ?- r- ;;; ====================================================
) z: F. R. [9 b: V( o* D, N - , E% Y9 q; p7 \3 X
; g4 w7 t' O- s! O, E- ;;;( q. j4 x) L& h j9 \( M7 U3 m
- ;;; FITSTR2LEN
& ?1 x' _+ ?. N: a. {" ~3 M; j - ;;;
7 u/ Z: a0 \, a v0 S$ [/ H: K - ;;; Truncates the given string to the given length. " e! n$ c: ~( \% E" q; I5 x
- ;;; This function should be used to fit symbol table names, that
2 l, l0 Z( k8 }: v$ @ - ;;; may turn into \U+ sequences into a given size to be displayed( B! n. E+ ]2 e; @/ z# |$ y1 v2 b
- ;;; inside a dialog box. T- e% C8 D: J# E
- ;;;/ W0 R8 M, }' s+ ]% G
- ;;; Ex: the following string: / I$ l* C9 y$ [% ^: {9 ^- p0 ~9 p9 _
- ;;;7 \- N: T, ^0 y# N
- ;;; "This is a long string that will not fit into a 32 character static text box."# f0 V- T7 B+ f* \
- ;;;
1 E1 L' {+ @) K W9 c5 t. g - ;;; would display as a 32 character long string as follows:+ t3 ^' o @* t2 h5 |2 o
- ;;;# G: W- L- ~$ O# q
- ;;; "This is a long...tatic text box."
+ o/ [$ b) B3 N3 U - ;;;
; Y! ]4 R' m3 S; v. I; X% w - . b3 W" t& K" Y0 y
- (defun fitstr2len (str1 maxlen)
& F+ x4 x$ |* x: y( k1 r+ O2 r - + S; v4 ]' Q f- r
- ;;; initialize internals
8 ?5 S+ X8 i3 y9 p( @ - (setq tmpstr str1)
4 U+ F$ W, Q) Y) E7 X - (setq len (strlen tmpstr))1 S0 u5 V: Y+ ]" b# R# W* U
# k, U a! f, }3 x/ P- (if (> len maxlen) ! i- T. s6 C) p; K4 v" N2 t
- (progn
7 a: O- L" j/ f8 S& O - (setq maxlen2 (/ maxlen 2))
4 M0 G/ D6 k/ j3 i - (if (> maxlen (* maxlen2 2))
2 u$ ]8 _4 b' w5 F: a j, L - (setq maxlen2 (- maxlen2 1))
# t. G! P7 |. P1 A! Q - )
0 e! V; g A7 b8 q; w6 Z$ I - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
2 O1 J' T' S& _. Y, U+ y - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3))); j, B& ^* y4 e
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))- X& Y4 B2 y9 V" D* E( _: c
- ); ~+ w+ Q/ ]# N6 X0 F7 t Y, v4 J
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
% j% F2 ]3 H) [1 f9 [8 X: Q7 G' K - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))+ I% o4 B+ H/ C3 a
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
; ?, G! F0 y& J8 f+ f - )
$ d! ^; S; }8 D7 K: q; ] a - (setq str2 (strcat tmpstr1 "..." tmpstr2))7 Y1 V2 } O% B8 z! l9 t9 M
- ) ;;; progn
1 E2 _5 L7 s) L) G/ B - (setq str2 (strcat tmpstr))$ k3 }1 [- P6 L% o/ P
- ) ;;; if
4 E' b8 [2 Z: i8 q - ) ;;; defun
6 _0 t& [9 D$ \
5 R3 y2 e+ D, }. `8 ~# q6 |
+ u& }1 ?1 o+ j( e* H) @- ;;;3 \( }/ q0 C+ D, G
- ;;; If the first object in a selection set has an attached URL
$ L$ k$ D! \7 e5 d( Y- ?! T - ;;; Then launch browser and point to the URL.7 @9 Q2 W& @( A+ r5 b$ A+ A+ N& H% o
- ;;; Called by the Grips Cursor Menu# d2 }. }( K$ g" Q& F% p! S* O
- ;;;
6 ^' s: f. @9 I9 c
; }5 ^! x9 T+ t. |/ x6 A- S9 h/ Z( B- (defun C:gotourl ( / ssurl url i)% `0 ~$ ^4 L6 ~ x: k9 n" L& H" H
- (setq m:err *error* *error* *merrmsg* i 0)* W6 I7 I- @) g+ i0 t3 k
- 5 b& f1 D) u5 ]( y) Q7 i
- ; if some objects are not already pickfirst selected,
) M6 o! h2 k) ]6 y* H - ; then allow objects to be selected& `' `% i+ [( X
- 2 i* m) i8 J. W# E) ]3 w
- (if (not (setq ssurl (ssget "_I")))
! A; Y% z9 e3 V0 m( }' q3 a% f - (setq ssurl (ssget))8 R% F4 H- U, g4 E% F
- )
. v1 m5 M/ a# T t
! ?" J( X$ @/ {) J, e3 H _- ; if geturl LISP command not found then load arx application
- U' h i$ |: a3 s0 |9 s - ' F; _5 E1 j) ?1 E4 T
- (if (/= (type geturl) 'EXRXSUBR)7 X; Z5 i$ ^( x' t. K
- (arxload "dwfout")
7 r! X4 |7 [$ Q- E - )
. q1 Z/ d/ a4 J0 Q - * }0 s8 |! B) Z3 B
- ; Search list for first object with an URL4 m" y+ e. J% j. A! Z% q
- (while (and (= url nil) (< i (sslength ssurl)))
& F6 V9 Y* S7 [/ u - (setq url (geturl (ssname ssurl i))
3 ~$ s! o% U# T# i/ G. P - i (1+ i))0 R ^5 a! j( p- l
- )
: p2 o+ \( z8 b# N& Q9 m
+ y3 C; n; A# |. A- ; If an URL has be found, open browser and point to URL
$ |' u! v, H7 H9 |# c - (if (= url nil)6 c! m& t, r9 e# j5 @8 X
- (alert "No Universal Resource Locator associated with the object.")
8 f. A3 K t" K# b0 ?' L6 o - (command "_.browser" url)$ v+ B( [* G/ W* ?* v
- )
. N% Z5 S1 R3 S9 K3 D5 ^ n/ J - ! G% ~ \: B( v. B { M4 j
- (setq *error* m:err m:err nil)
& e. @4 t, f- S+ r - (princ)' y: c. Q" F0 v1 D2 M
- 7 Q9 w9 t8 l2 _2 z8 ?) w; h8 F3 m
- )+ Z3 L1 q8 u: i0 M( w' A
- O$ H/ w( P0 D$ l/ M1 J$ o
- ;; Used by the import dialog to silently load a 3ds file
% F# W7 s, p c* m3 P - (defun import3ds (filename / filedia_old render): [4 p7 T8 p8 x' m
- ;; Load Render if not loaded, G7 z8 T( k+ I! N
- (setq render (findfile "acRender.arx"))
, Z, B+ `6 o1 u S - (if render' ^: y+ j' R! o' H q- J/ W* D
- (verify_arxapp_loaded render)
A d: w9 t# m) d+ d* U3 D% u' H - (quit)$ @' d r+ v8 W# x' _+ M$ j0 E0 h
- )5 |- q0 J8 L8 \7 w9 c
- $ h) H" |/ b5 C2 O6 m) E( L; U" F
- ;; Save current filedia & cmdecho setting.: Y% @$ C6 H* F, X4 y& _
- (setq filedia-save (getvar "FILEDIA"))
7 g# F, I* J/ S2 j, b7 l - (setq cmdecho-save (getvar "CMDECHO"))7 L5 n& Z3 `- l
- (setvar "FILEDIA" 0)8 P6 c) }- i( W1 |7 K0 A; e3 z' |
- (setvar "CMDECHO" 0)
3 [+ a: M1 w1 k" j( j. J - * O3 v: f1 ~8 F0 g3 C+ ?
- ;; Call 3DSIN and pass in filename.
. R. H& o( \! x - (c:3dsin 1 filename)
( z+ W9 |3 I1 j x, A4 ]
' ?0 R: z" {# J9 @- ;; Reset filedia & cmdecho) A: @7 x# i9 W7 [! a: N# q S
- (setvar "FILEDIA" filedia-save)
; `( `6 d% Y; w& b1 i9 V - (setvar "CMDECHO" cmdecho-save)
/ y* ?+ z+ I& X3 { - (princ)
" Y( r6 L% Q4 V5 G/ a# ~ - )
$ N4 g1 ^6 ~& ^1 W7 `8 S0 I8 x
" A7 A* Y4 z/ ?$ q- - V, k2 ?: l7 y# ^& r+ t
- ;;;=== Menu Functions ======================================) U. p7 h+ V I5 f- b1 e* g8 Q
9 V( }/ N5 W0 w0 ^1 Y- (defun ai_rootmenus ()# Y/ K4 T0 n8 u% N% ~
- (setq T_MENU 0)/ l& W8 P" K3 y3 m6 h
- (menucmd "S=S"). I+ I( S: H; X8 a D) k* x, | B
- (menucmd "S=ACAD.S")2 L2 t2 U5 O, d- l9 G
- (princ)
0 ?) ^/ Y/ G8 ] a/ O7 @' n0 I G - ). s6 M4 [3 m2 V! Q7 a. z
" }) W, P$ V3 @: @% D/ O7 ?- (defun c:ai_fms ( / fmsa fmsb)
& Z6 v: p6 f( \2 z - (setq m:err *error* *error* *merr*)
( s7 H1 R* C$ k: S/ `' h: j; d - (ai_undo_push)! N- d' k# ]1 l- g4 T/ Q/ I; y
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
, n, f. a Z: W3 D% ?4 ?! i - (setq fmsa (vports) fmsb (nth 0 fmsa))- J+ V: _5 G: r3 D! g
- (if (member 1 fmsb)
# _: ]0 I0 W1 _: L - (if (> (length fmsa) 1)
$ R/ q4 E+ e+ ^, B* w; Y - (command "_.mspace")+ Y0 N" @: l. R8 I3 Q5 B' U
- (progn
: c8 l# C& _- _' J6 G; u3 z - (ai_sysvar '("cmdecho" . 1))
7 x6 u7 @5 _& G" h H - (command "_.mview"), b' H# C' t" [ N0 P6 q
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
- }$ Q. E) m" _9 W& \* y; G - (command pause)
3 r, s, n' q/ H& m6 L8 u8 N! M - ); X3 l# N5 t8 n' b
- (ai_sysvar NIL), Q7 o. h/ q$ Q, q1 j4 K1 ^
- (command "_.mspace")
5 x3 z' ^* r" e - )1 N6 v" _9 ]$ k! C$ O% K: ]$ _
- )
1 |" m) I) |3 Z! h6 O f; \ - )7 u+ d/ p5 ^" W- D( i
- (ai_undo_pop)
0 S: L$ |# h7 \ - (setq *error* m:err m:err nil)8 m- g% s& }. p
- (princ)
, x8 Q3 f" A2 \) Z! x - ), _! R7 G5 Z9 w2 Q$ ?
- 1 i3 b3 ] ]2 p8 f+ h* Z/ m0 D; `
- (defun ai_onoff (var)
& r% N: ]' A; |# w# V8 B - (setvar var (abs (1- (getvar var))))
1 y* q, g/ \! C9 J* Y8 h- O - (princ)
1 u+ E7 i# n2 R - )
; g7 \: H# e/ {- | - j! e; A. n! h$ P* ]" W' | E! w
- ;;; go to paper space; ?2 B8 G4 c( w2 k( k; i
- (defun c:ai_pspace ()
% s& C! L/ y0 C - (ai_undo_push)* g, l; _2 V' o1 N( {4 c
- (if (/= 0 (getvar "tilemode")): u7 Q) B) _9 r8 q# m3 k
- (command "_.tilemode" 0)
1 c/ S2 f _5 e' Q - )2 L+ a9 x! ]5 n% j$ f) r* G
- (if (/= 1 (getvar "cvport"))3 c6 r; ~0 Q6 {& U3 U0 L: @4 w$ x
- (command "_.pspace")
+ e& U* b9 [" w7 f/ p3 A - )
+ f, ^8 G, l0 n& { - (ai_undo_pop)
4 l" d% o4 M5 P# h& v - (princ)/ R: V. | j8 U# o5 D
- )9 ]6 z. o/ Z/ c" l7 u
- 4 ], e' K' \$ {7 T
- ;;; go to tilemode 1; B L- u2 Z# X: @! M
- (defun c:ai_tilemode1 ()
9 @7 g0 P1 w: T$ Y - (ai_undo_push)7 ~" j1 ?- R# ^
- (if (/= 1 (getvar "tilemode"))+ C$ C5 R6 r5 C$ w) W9 P/ |
- (command "_.tilemode" 1)
7 m" R, U0 ]# }" z9 W - ): e, {0 B! A# z( h* O
- (ai_undo_pop): ?" T' v9 @. W) Y
- (princ)
2 o9 H6 k4 d: j [6 E1 k - )9 q5 I1 r! o b, n
( X1 A5 a0 }6 i+ s. B1 f* K- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
' n: [9 \: Q, ` - ;;; Toolbar Dimensions/ Align Text/ Centered
* \. ?7 n0 D a/ O) o! [
' v- h* l/ l' A5 a% k* u- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
* y: {1 {& e7 j: b [. V5 J - (setq ai_sysvar (getvar "cmdecho"))
* |" {; ^% i. I - (setvar "cmdecho" 0)0 p! r/ W4 E, ?5 e1 R$ f$ N
- (cond
; |8 x7 {7 \9 w4 {6 s4 N# q - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))/ k, t! K- ]5 F
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" + _9 E, g8 H/ ?5 M* e- v
- "_.dimtedit" ai_dim_ss "_h")0 x& x, d% ~- K( B1 k6 K
- ), T$ J1 q8 R" T/ D1 X# g
- (T nil)
6 [2 J6 h2 D/ H - )
- [& Z6 w- I. e! x; Q$ t2 C - (setvar "cmdecho" ai_sysvar)
" d) S; G7 S# V' h# l' g - (princ)4 D+ D6 M% {( M* n6 x7 @* Z
- )/ y- k% r9 x2 I3 T: Y0 F6 |1 {5 I
& B A$ ~1 l9 `7 v2 w- V0 j- ;;; Shortcut menu for Dimension Text Above / x: p0 i3 E" }) }9 l$ |2 Z/ m
4 u9 L2 b) q2 J' h* S; r/ a0 T- (defun c:ai_dim_textabove (/ ss)
2 Z8 y1 H4 J- O7 l1 M+ N0 i K - (ai_sysvar '("cmdecho" . 0))
% h8 w9 W/ W( a- a3 K% H - (if (setq ss (ssget "_I"))7 h$ ^1 z2 ?3 O
- (command "_.dimoverride" "_dimtad" 3 "" ss "")5 ?7 G; |7 i) z. X
- (if (setq ss (ssget))# R$ A( E4 V5 ^1 K
- (command "_.dimoverride" "_dimtad" 3 "" ss "") , p; s v4 g) p, p, ]
- )% B% f# O* K" T0 m. W
- )6 Z/ @* K5 d0 C
- (ai_sysvar NIL)0 A2 x7 Y9 f% a
- (princ)4 b2 Q1 D2 t7 f( h' @! z5 h: O# N
- )
# F9 P# o8 {, p' g
7 {& C' N; b0 z% i# Z- ;;; Shortcut menu for Dimension Text Center 1 `1 p' V; g' _3 g! E _0 i
- + Y- x# w3 s- J. q* p
- (defun c:ai_dim_textcenter (/ ss)- r3 ?; p3 _# q- `
- (ai_sysvar '("cmdecho" . 0))
1 k+ d# l4 k% H! V; ^1 I6 S" \ - (if (setq ss (ssget "_I")): }) a' x+ z: j3 I
- (command "_.dimoverride" "_dimtad" 0 "" ss "")- I& z0 b0 h- y6 L& L/ E7 q) k
- (if (setq ss (ssget))
2 s( l k8 `) A: X - (command "_.dimoverride" "_dimtad" 0 "" ss "")
2 W& X' T) r% q& T - )8 {4 C' _! Y* e- ~2 J
- )$ Q* x4 H% A* y! r1 l
- (ai_sysvar NIL)
" I4 M' ~, U2 p' d* ? - (princ)/ Z7 Y( ^9 A; D/ y
- ): x( b+ O# G; t) U8 V6 P% t
- ' j! F U5 f1 v* U1 U" m
- ;;; Shortcut menu for Dimension Text Home ! {! C4 G: o( n2 u. }/ ~; k
- 6 J; l8 |3 u% U+ t- a
- (defun c:ai_dim_texthome (/ ss)
9 k f m$ s# X - (ai_sysvar '("cmdecho" . 0))6 `, ^/ {" ]! N7 l
- (if (setq ss (ssget "_I"))3 e$ g! j3 U; C1 F: e5 U
- (command "_.dimedit" "_h")8 k/ k, o2 X! i, Z
- (if (setq ss (ssget))7 U! j: X. K; b. d j* I9 w
- (command "_.dimedit" "_h" ss)* T+ L9 }3 i5 i) {; a7 x, K
- )+ u6 X+ ?4 u* O: {7 ]: Y
- )& v5 u. V' h3 p7 G. R( M* d
- (ai_sysvar NIL)
; u$ F7 D. C( l) Z5 \ - (princ)- C7 L4 i! a$ U. B1 o# C$ K+ `
- )1 {. Q5 `6 m* a
- & o$ ?6 V9 n9 n5 x4 a- o
- $ n# H- [4 r- _7 e: [. t
- ;;; Screen menu item for CIRCLE TaTaTan option.
6 j- L& C- I! T) n2 O) q& P - ;;; first, get points on entities3 D5 a- n6 B& ^ `
- (defun ai_circtanstart()
& O. A/ Y$ _6 I9 {* f, H3 B - (setq m:err *error* *error* *merr*)
; X* j8 x+ w, b7 Q - (ai_sysvar & m9 l( ^ O: Q5 f& i' o5 ~
- (list '("cmdecho" . 0)
0 Q9 w* s$ p" X- P" { - ;; make sure _tan pick for CIRCLE gets same entity
+ J% }1 Z! H5 i1 j- F: H - (cons "aperture" (getvar "pickbox"))
, C# H& W: {" d. O- C - )9 e! N1 ?, {( ~" k3 r7 u
- )
+ C5 K7 `/ X5 ~7 T+ o6 @ - ;; prompts are the same as CIRCLE/TTR command option
- N V. L1 Z! U( U9 g! H! K) j - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))* p3 r6 z7 p8 H* N
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
7 H, R. i. r& v - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))% h" E+ E2 r4 u! a+ ?( k" M
- )
( l m6 w; }; s - ;;; Command-line version
/ K" {; f5 a0 v9 r' \; \$ a* `: h; u - (defun c:ai_circtan (/ pt1 pt2 pt3)
6 }& O: [* n! t+ D - (ai_circtanstart)
; O: k/ k, F' U7 X" {, [2 k - $ N' H( c+ G0 j. t7 h: y1 t. E
- (ai_sysvar '("osmode" . 256)); n! ]. S* y3 n- p& q' C W6 e {
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)# m* N6 T6 \, u$ |* x' a; Y, w. V
-
0 X# u, u' }: S. \ - (ai_sysvar nil)
" t4 C( R5 T4 M" ~ - (setq *error* m:err m:err nil)
5 y9 s+ p2 P7 Q! Y! F7 }3 q - (princ)
% Y8 L( N- } P& M# | - )0 S2 s# K) P& i3 v4 v& _
- ;;; Use this if CMDNAMES == CIRCLE
7 q1 t+ l& S. W- [8 d" t1 B - (defun ai_circtan (/ pt1 pt2 pt3)' D6 V3 a- K( k! @4 Z
- (ai_circtanstart)
" ~: x$ s9 J1 }1 @' i
# ]5 u7 O0 e0 X0 o+ _/ I/ \, J3 _- (ai_sysvar '("osmode" . 256))% ]& o ^# e/ b" W! }
- (command "_3p" pt1 pt2 pt3); b9 P! E, T. { F) |- K' r+ y
-
1 B6 f i- g: G/ x( a# e1 P - (ai_sysvar nil)" |- v+ x, F/ _. F
- (setq *error* m:err m:err nil)
3 w% T: a, J* f3 d: _/ g: E - (princ)9 b* f+ R, |8 Q. j
- )
6 a+ B+ a, K; o5 v" m) D9 K - 1 m7 t8 F8 W, Y4 H
- / F5 u. G2 W7 L; h% g7 x
# g V, a( ]4 @' f6 Z- ;;; Shortcut menu Deselect All item.
+ @# T% y: J/ G+ ~) m - ( A l1 d1 N, w0 S4 e; V7 p& z
- (defun ai_deselect ()
, K# h3 m6 G7 t. ]& w - (if (= (getvar "cmdecho") 0) ;start if
0 O4 P. a) `; a! a% {" @' n" d - (command "_.select" "_r" "_all" "")
9 r2 z" ?$ F6 }* C6 e$ w/ |/ ? - (progn ;start progn for cmdecho 1
2 P f$ L" w" L: O6 A/ S - (setvar "cmdecho" 0)! }, w+ n2 A) c, F3 [
- (command "_.select" "_r" "_all" "")* I5 a& h% M/ |: g* [
- (setvar "cmdecho" 1)
k- p, R6 y3 m6 }4 g - ) ;end progn for cmdecho 1
# o2 f' O) J4 `& t' V3 Z% [ - ) ;end if
2 {$ _; A! J. s- J& H0 ] - (terpri): x: d+ G% A' \: x4 b, U' t
- (prompt "Everything has been deselected")
- a! P1 g( x1 P7 t; c - (princ)
# d& g8 z" S0 M( H* ^7 p1 H4 b - )
3 s- c8 b* P( V, y# n
/ ?! P. Z1 C; F: Z3 } d+ ?- ;;; Command version of ai_deselect to be called from the CUI
$ N- R/ I7 q) s - ;;; so it gets properly recorded by the Action Recorder0 e( k* h# ?, t% A, b
- ;;;
+ D8 v* t. i' j) A! k! s - (defun c:ai_deselect ()
8 h& q; _. i2 @3 L5 h8 p7 r% m% I - (ai_deselect)
# l. s* l0 J+ t, l- U# V A - (princ)
; g% e/ L: S( C+ j - )/ A! L0 J& A1 M8 O. E0 T
0 Z4 V; [7 P6 L5 G( n1 @- ;;;, U+ x @) G/ a0 ~+ N. L
- ;;; Enable Draworder to be called from a menu
5 f1 z# |' ~1 J% K9 F% b - ;;; Checks for Pickfirst selected objects
0 M0 f! q+ n* `7 b+ y i - ;;;
! u" v0 h3 \. Q- o/ X/ F
+ b2 J4 H& h7 k' A% Y# Z- (defun ai_draworder (option / ss )
; d5 z2 W, U) m3 q7 Z9 S( |8 I9 O2 c
5 t% [0 N. u7 Q+ w; S5 W- (setq m:err *error* *error* *merr*)! \1 G, O0 ~* C% d0 K7 o
- (ai_sysvar '("cmdecho" . 0))
0 v7 v, l7 L% ] G* A9 o - d; ^# [- P( T
- (if (setq ss (ssget "_I"))4 W+ {5 Q9 F2 _; u0 J# [9 s: P
- (command "_.draworder" option)$ h \- S0 }( V+ W p2 I5 f! F
- (if (setq ss (ssget))8 k! R) l& J& ^5 n: l$ I
- (command "_.draworder" ss "" option)
, y$ Y0 n8 s6 |) G3 r( v) T - )* G1 ^6 P3 @ ?" r, m
- ), _ c0 S9 o1 Q8 p0 {9 y* J
- (ai_sysvar NIL)
& { u# |( _$ Z4 P# c+ _9 I - (setq *error* m:err m:err nil)
8 g. m" G: \4 j% n$ R0 e - ' K, W- S9 N0 |+ V
- (princ)
1 X/ A2 e( S3 y - )
# a6 R$ Z% D/ ? ?2 Z" Q/ K - # \5 Q* k2 p$ s: l1 N
- ;;; Command version of ai_draworder to be called from the CUI
3 X- ?% ?. P5 r6 }/ @ - ;;; so it gets properly recorded by the Action Recorder; ~- v% @0 `9 K1 L: }
- ;;;
1 \8 Q% A/ t" Z: T- q - (defun c:ai_draworder ()2 q! ?' y' X- m+ Q' ]: j
- (initget "Above Under Front Back")
( G0 l4 J6 H% _* Z1 Q - (ai_draworder (strcat "_" (getkword)))9 L2 G( Y$ g; f
- (princ) i1 y" t1 Z9 M# c0 F+ W
- )
' V% h( X* h) \/ H; ?2 f - 2 F: ^0 a. f; C# c7 M9 d
- (defun c:vlisp ()6 l) V5 W' |) n- n k
- (if (/= nil c:vlide) (c:vlide))5 J7 c1 S& u a
- )
% Q" b! B+ p, V# V% M4 [, r( \3 Q
' R7 |6 E0 B% x* q4 \! v- (princ "loaded.")
' b7 s* W9 p, A. t3 X* O, E6 O) j* I
- y0 {! C n# Q1 ^8 |% r9 |4 T9 H- ;; Silent load. K, ?; a1 R2 K2 v
- (princ)
) b" \6 w* x0 w - 0 Y8 F6 O, N7 B3 E- n# I
- ;;;----------------------------------------------------------------------------
% F- o& a/ ?3 f, ] - ;;;
* N# r3 h8 c$ {2 C7 G - ;;; DDCHPROP.LSP Version 0.5
: h4 Z) G1 z6 {" n) v. q - ;;;& ?( L5 @, {3 O" \! r
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
O/ o( [" a+ G+ ^" F" ~ - ;;;6 }( @; Y. z2 d3 F' m% J
- ;;; Permission to use, copy, modify, and distribute this software, U3 N }: c; B+ x# R, v$ ^
- ;;; for any purpose and without fee is hereby granted, provided* \ S! d; Q; l! Z4 x% ]
- ;;; that the above copyright notice appears in all copies and that
& x( e- U3 u* f! J# D4 q" l - ;;; both that copyright notice and this permission notice appear in6 U5 W- {3 D9 K- ]- }' m4 H, P+ X
- ;;; all supporting documentation.) E& l" H. Q p/ `. i# g9 E& N
- ;;;6 t8 I5 i: d5 K+ O6 q% V& L
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED$ l" C' f4 e1 R* t% S/ ] [* q
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
# }$ t$ ]4 A, o3 h6 j7 j( E - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.! T0 Y4 Q4 s( A1 _( A* [2 B- ^4 l
- ;;;
, ?8 e" \ H, N t3 I - ;;; 2 February 1992' {6 o3 R' s- L2 ?5 s
- ;;;
+ R8 f& v, |/ T' u- Y' E% ] - ;;;----------------------------------------------------------------------------
6 @: D' Y, m3 d" X' k, u - ;;; DESCRIPTION3 S. E: A) f* R! ?
- ;;;----------------------------------------------------------------------------( U/ M) a* K! S2 c3 I% y0 w
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
1 m- t$ e, M% H+ N/ F - ;;;
0 M3 E2 W3 u' \$ e# N( G) H - ;;; The command looks similar to DDEMODES. The main dialogue has an image 8 ?3 }# S; N" a* e/ \: F. x F
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
6 |3 x/ b0 ?/ p* M/ g5 g* }8 \ - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
, P" ^+ @& G0 \' V - ;;; The dialogues are all defined in the DDCHPROP.DCL file.
1 \9 @$ w2 K7 I/ W" v. y u - ;;;
* e2 w) A0 h' t - ;;;
7 `5 B( o- \1 b) ^! _1 l4 J b' h - ;;;----------------------------------------------------------------------------( M# D, k& x& p8 ^: N7 h. R" N
- ;;;----------------------------------------------------------------------------
/ u, H" D8 U/ `8 t G5 Q5 O - ;;; Prefixes in command and keyword strings: ' K9 L; ? w, `: {
- ;;; "." specifies the built-in AutoCAD command in case it has been , s$ B+ c8 d5 S1 @$ [4 Y" P8 X
- ;;; redefined.
- E0 r- P7 s/ x0 H* b - ;;; "_" denotes an AutoCAD command or keyword in the native language
& ~' n/ r% Y0 V) B6 X - ;;; version, English., W; E8 s, k! \- w6 {0 N
- ;;;----------------------------------------------------------------------------& [+ s# z- I7 G+ B U& O; A
- ;;;+ a# v9 l. m6 N2 C7 Q
- ;;;
8 J! S7 r. ]: H% Q - ;;; ===========================================================================! f7 T: @" f4 s6 P
- ;;; ===================== load-time error checking ============================
: L7 L8 q5 K, h, { - ;;;; B% d8 r; m/ Q- ~
; b7 m% ]( {# P' f; g( i2 b- (defun ai_abort (app msg)& E$ |# Z8 `& x% A. n q; z9 D
- (defun *error* (s)
: |0 a, K1 v; ?$ l# {" A7 F0 T- b - (if old_error (setq *error* old_error))# q7 U# U9 w w; `# \: \( m
- (princ)
' Y" P3 b' T0 m8 B, f - )
* m0 h' |: I; b1 Y Q! }0 {9 c4 } - (if msg8 a t! ~" h+ @7 N
- (alert (strcat " Application error: "5 R) O) D* E# g1 A" @) R; ~
- app
9 V6 ^5 P" y8 S* F - " \n\n "' u9 W7 H' y6 h! U [9 S# g
- msg7 f* @0 }) X9 ]! q; {
- " \n"6 o L* s& H/ G* n
- )% b2 e* E3 w# t
- )+ s6 N$ J: t; t, G9 r- E/ k
- )1 I9 \1 _6 c8 X- a( g
- (exit)
7 e3 T* k S" W$ F/ U - )0 d" T" o6 I5 X2 I; y& q
- & ^* T8 ] V& o7 J, a; t
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
% ~+ w1 r2 X) r1 ~0 ] - ;;; and then try to load it.2 g& u k% l( r; G$ ]. j0 T
- ;;;
3 A' F* Q9 E% c3 j ` - ;;; If it can't be found or it can't be loaded, then abort the
. S0 L4 U% T6 G- t - ;;; loading of this file immediately, preserving the (autoload)
$ v. N- C: D- j/ ~' ?& x - ;;; stub function., ]9 x6 T" X1 Z3 R
- ) H) ]- E- J; n# E( F$ R/ b- I# W
- (cond2 |' f/ K; r i5 K% c4 E5 h/ X; H: E
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.+ ^5 S2 J9 U$ w0 T" D% N+ m6 E& g
0 n. v O: [9 f4 j7 l9 g- ( (not (findfile "ai_utils.lsp")) ; find it5 O. A. A; @& r0 q& Z
- (ai_abort "DDCHPROP"9 j( n+ H- ]" v7 g: i
- (strcat "Can't locate file AI_UTILS.LSP.": z m) X: q$ O
- "\n Check support directory."))); V" H% @: \: Q9 j' p2 V0 K3 D6 r
- 4 q9 y$ m2 z/ x$ Q$ n
- ( (eq "failed" (load "ai_utils" "failed")) ; load it* `+ t( e, N/ r8 i: U5 {. W
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
+ ^0 P! y2 R6 O- S+ l - )" E# _+ W( ^5 M5 T; W6 U& P) h
- ) w0 Q" D0 X5 B5 G7 s: m
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP' M- ^" [/ t6 w* T' N
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
0 v/ k/ p9 Y# M. H, k, u; r1 e - ) ; ai_abort's alert box dialog.
5 t! ]6 o, S$ f5 E; _4 g - * w2 R7 r8 b& W6 {& Z# G5 _
- ;;; ==================== end load-time operations ===========================% r, G2 h9 N: v! t
9 f! t- e. b1 _- ;;; Initialize program subroutines and variables.0 l& k: j3 ]8 E6 C
- 4 P7 ` B5 f4 A+ v% `5 s
- (defun ddchprop_init ()
+ I9 A) U. C2 Q5 m# g
. z/ t1 t7 _: p3 m9 Y ~- ;;
' T- L$ ^8 z/ \, v - ;; Define buttons and set values in CHPROP dialogue box 1 }. D) @, G& Z
- ;;1 q! B' Z" q8 H/ N' x2 C
- (defun call_chp ()
* L" d+ W0 V- u& u - (if (not (new_dialog "ch_prop" dcl_id)) (exit))7 I) B2 k0 D$ r) L0 l2 \
- (set_tile "error" "")4 d. x; R+ `) \3 j9 s* h
- ;; Set initial dialogue tile values3 g$ p" }" _2 y% s5 y9 Q0 D
- (set_col_tile)* w8 d: Q, k" o6 [
- (if (= lay-idx nil)! t+ O. Y, u, ], P
- (set_tile "t_layer" "Varies")
: l+ e8 N* o* w1 c - (set_tile "t_layer" (nth lay-idx laynmlst))
! ]/ [. S0 a9 V, ]6 Q - )6 a5 k1 y8 h0 E4 B& p
- (cond
5 Z% |: s N6 @# h0 W# h$ h8 M - ((= lt-idx nil)' d+ m) I: T, r# w6 m9 X
- (set_tile "t_ltype" "Varies")
- y" f- m4 }# g) D9 A7 r# q/ M: t - )0 P9 W ?- d1 E& B5 b5 T2 g
- ((= lt-idx 0) ; set tile "By layer & layer linetype"3 B6 d* r1 t1 d* O m5 C
- (set_tile "t_ltype" (bylayer_lt))
$ O( m( C& K& I" p2 R4 X% D, D - )" W- c* A8 m7 \+ s4 n& E
- (T V+ @0 t; ]+ p# Y9 ^3 t
- (set_tile "t_ltype" (nth lt-idx ltnmlst))
4 U! r! _1 L4 B* F* H - ); e4 U$ n( _6 p# J$ b
- )
' Z+ f! Q6 R: w$ ]0 `/ v: T - (if (or (= ethickness nil) (= ethickness "Varies"))' d& ^) f* y- J# b/ q
- (set_tile "eb_thickness" "Varies")! y- |. r% \2 u- Y. z
- (set_tile "eb_thickness" (rtos ethickness))
+ v0 ~- M9 a. Y# ~ - )& o' S8 p6 B+ ]2 l9 B
- ;; Define action for tiles5 T; U8 z5 \+ @
- (action_tile "b_color" "(setq ecolor (getcolor))")/ a7 q9 E5 E a( f& T
- (action_tile "show_image" "(setq ecolor (getcolor))")- [# `4 C6 N+ ?! A( o
- (action_tile "b_name" "(setq elayer (getlayer))")+ o! K" M( Z0 [* D" ?( o3 L1 x
- (action_tile "b_line" "(setq eltype (getltype))")
# K, i3 K' k# {: Z; O- G - (action_tile "eb_thickness" "(getthickness $value)")
0 a6 \0 O9 ]; m* x# V, p - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
, N/ F$ ^5 P2 g% j* \) E - (action_tile "accept" "(test-ok)")
b9 E7 X0 m o3 S% e4 f( v& t2 A! g - (if (= (start_dialog) 1)
$ b+ A* w! t% O8 ], W - (progn
4 y2 ]$ v \- f& \ - (command "_.chprop" ss ""). V- @0 T+ ^7 T/ h" Q
- (if ecolor
1 x. p! v7 h7 p t$ L - (progn
7 B$ C) L' t7 U$ z1 W - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))3 o9 h; u/ v8 l u
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))4 Z% f. H6 `+ g
- (command "_c" ecolor)9 t( @7 [; V. z0 a1 {9 `( d B( X* u
- ): z% l4 u A' ]* P
- )7 E2 E0 u; T: y( U O: d: O
- (if (and (/= eltype "Varies") lt-idx)1 E8 ]% @& n+ d ?$ G" m8 E- ?$ V( w, [
- (command "_lt" eltype)& S- i+ C& u" Z3 u9 }
- )
- V6 p' @7 F- _# Q9 h - (if (and (/= elayer "Varies") lay-idx)! v+ h% X& g9 ]" y
- (command "_la" elayer)
0 T$ Z) s4 N" {% u! | - )) s- i. E3 Z; a' _* @# R* X
- (if (and (/= ethickness "Varies") ethickness)
2 _/ g7 |. k+ A5 H% E; X - (command "_t" ethickness)/ D1 x/ Z9 U$ R; l& j7 p4 G
- ). c% z) f" f" W d' c @5 K! s
- (command "")
E8 |; e. J |. N/ F& V; h1 v# Y - )
7 h5 v# z% r& ^) m6 H! f - (princ "\nProperties unchanged")
8 u3 g/ F& [3 b& P' U - ). C7 v2 q5 j6 O8 L
- (princ). U& b2 N$ q' }1 K/ @4 u
- )
% O4 f$ {: j' F8 n - ;;
# @6 Z. w3 x0 }* p" M - ;; Function to set the Color text tile and swab to the current color value.% O+ g5 s- R3 w; N7 @& o2 T
- ;;* B+ S9 V! q6 w; v% j M1 f
- (defun set_col_tile()
& I; u: s4 Y& i - (cond ' J2 d/ z) f1 F3 p8 @ x$ I( G
- ((= ecolor nil)! c* V t6 }' [3 r* @ t$ |- n% X* M
- (set_tile "t_color" "Varies") z& h) U5 h5 z/ _! E
- (col_tile "show_image" 0 nil)
% i+ e/ N: ?; @* J - )
9 J6 `8 ?) g% N8 j: z - ((= ecolor 0)
" d! E& c) @* h; U: Y - (set_tile "t_color" "BYBLOCK")
d+ z/ a' K; X' I* J& s, \" T, n - (col_tile "show_image" 0 nil)
; U. n N/ I# A6 R$ [: z6 R - )0 o d, t9 D0 U" ^4 c
- ((= ecolor 1)9 q1 r: o3 l, e# p
- (set_tile "t_color" "1 red")
( P# n+ |' |$ H3 j2 U* U& | - (col_tile "show_image" 1 nil)- ? U' R& ?9 @* ?6 {9 V! G" p# s
- )/ t1 B+ K6 q$ x4 j. R. l+ f$ [
- ((= ecolor 2)
; l9 N+ l/ Y4 ^3 G, n9 v! I9 X' N - (set_tile "t_color" "2 yellow")
, n9 _6 C0 }3 m6 P2 d4 e7 m - (col_tile "show_image" 2 nil)
6 K; O9 z* N1 s1 N. L/ G - )# R8 _# Z1 w' R# S5 D) E/ }
- ((= ecolor 3) K$ x$ _0 V3 E3 X% e) j# t) i
- (set_tile "t_color" "3 green")
/ A! R/ Q g) E9 G - (col_tile "show_image" 3 nil)+ I( `3 l9 H! m$ k' w3 E' h1 x5 Z
- ) E: c# j" t* ~4 b7 G' v7 L( i
- ((= ecolor 4)& B/ D2 ]. G5 w# i4 B! _ @1 e, }
- (set_tile "t_color" "4 cyan")( a* Z; c3 x0 j; f! j
- (col_tile "show_image" 4 nil)# E- U7 |8 N, f/ U9 x6 H7 J. k* P( J
- )* T! W" z/ h" b* _( H
- ((= ecolor 5)
* _$ [/ \ Z5 K9 i3 N" _ - (set_tile "t_color" "5 blue")! c! l9 w. l; g3 [" M# Z% x" o
- (col_tile "show_image" 5 nil)
4 @0 b. B$ B4 w - ). y i7 T% U! S, @" l3 }& d
- ((= ecolor 6)
0 y. ?+ v; I1 m$ M - (set_tile "t_color" "6 magenta")
: O6 j4 q' ~9 _" D - (col_tile "show_image" 6 nil). K# {' n$ v( S9 b
- ), s5 j; v$ X% j; b" l; K# j
- ((= ecolor 7)
) i- @) ?+ j( G: U7 W k# | - (set_tile "t_color" "7 white")
2 K$ Q& z5 G: R0 j* t) S - (col_tile "show_image" 7 nil)' }# K% h" T. q* g: s/ M
- )
( O/ ~- h) D. @; Q8 l - ;; If the color is "BYLAYER", then set the tile to
/ v( b) B s( \0 U; l; R - ;; show it's set By layer, but also indicate the3 o1 |1 g( H- R& M. O& W
- ;; color of the layer - i.e. By layer (red)
9 ~) v4 G, N) v( i0 d - ((= ecolor 256)
0 Q2 M2 [6 x' t* r0 x - (set_tile "t_color" (bylayer_col))
$ a% P- G! @. z8 e2 g9 S2 d" P4 e - (col_tile "show_image" cn nil)* x- q3 _# A1 W3 W: g. \
- )
% {) c& j$ R/ K1 K" u' T9 e$ k' \. Y) \- I - (T
5 o/ I# C" L6 P9 G3 i - (set_tile "t_color" (itoa ecolor))# }- r) k( w$ e$ z" O
- (col_tile "show_image" ecolor nil)
5 J3 m& Q# X% B f( X* T - )0 h2 f: P+ G$ N9 \8 \! G
- ). G/ ?6 z1 ~5 B$ o2 q, A
- )# |: `; u% K0 j; ^" d: M
- ;;
* {5 C! i& I! k! p& P - ;; Function to put up the standard color dialogue.
" M/ c9 \- n/ W/ D; d - ;;0 T$ [& v' P0 I$ C
- (defun getcolor(/ col_def lay_clr temp_color); C$ N+ \2 {% @9 I0 w
- ;; col_def is the default color used when rq_color is called. If ecolor
; ]9 Q/ w& \% E/ S' ?# J - ;; is nil (varies) then set it to 1, else use the value of ecolor.
* B- U) O$ a. Q - (if ecolor: K9 O. c: w8 p
- (setq col_def ecolor)! g0 E* @0 n! Y0 N3 ^
- (setq col_def 1)# Z% ^- B @: x/ I& B# A
- )) V2 j( c7 \* k. ~, f, y
- : U8 [; Q& B4 k
- ;; If we're working with a single layer, get its color
, I0 O% s% E0 H1 a - ;; for use in the color swatch if the user selects color BYLAYER.
/ `% d8 H- k, F( U6 e6 T& `9 ^ - (if (/= elayer "Varies")
/ z# W) O" i5 E& k+ c - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
* e/ N; U$ W k6 P$ W5 V$ a - (setq lay_clr 0)9 f( w% \- v! Q. ^! W G! D
- )$ B! n; a1 Z) }
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
! K+ F5 @, b0 H' F4 i2 |* l - (progn( F' v$ |0 L" K& {" G
- (setq ecolor temp_color)& ^3 ]3 l9 e' V# u; V* @2 @8 ~
- (set_col_tile)8 G. q" o" _" @( U
- ecolor- O$ v6 Q+ \" s2 H$ f
- )
! g% y5 Z' O5 t6 X5 E6 P6 B" |. ] - ecolor
9 z5 D$ b* x* }6 p* K* c - ) % M4 G- l4 `" c+ f
- )
/ M9 x$ _5 k6 J; {' ^$ i - ;;
. B0 z) |6 Q& }' }- G# a - ;; This function pops a dialogue box consisting of a list box, image tile,
) X+ K: u- E& |1 M F* D8 H - ;; and edit box to allow the user to select or type a linetype. It returns
' d3 J+ t# L+ h J1 t# Y2 e2 P - ;; the linetype selected.2 M% C+ P' R& X' p8 a& j' {/ t
- ;;0 O( O3 B7 T" x
- (defun getltype (/ old-idx ltname)$ t e" L2 K4 ?& Z; x+ y" B3 q# _
- ;; Initialize a dialogue from dialogue file1 U5 @* [; Q5 m' i6 E. L/ w- J& K
- (if (not (new_dialog "setltype" dcl_id)) (exit))0 ]6 D% A, x* k, S! y' w
- (start_list "list_lt")
( Q' J: O8 y& j( G- n - (mapcar 'add_list ltnmlst) ; initialize list box3 w2 x& a( ?, l+ X
- (end_list)3 b) `1 P! O6 u" b4 m
- (setq old-idx lt-idx). G4 R2 r# A; J) G9 p: o
- ;; Show initial ltype in image tile, list box, and edit box3 M& o# w9 ^7 E( ?! G0 w9 r" N
- (if (/= lt-idx nil)
9 Q0 f$ Y8 |# V3 X) f6 J9 [( f7 [- r - (ltlist_act (itoa lt-idx))
& q% J0 E' }* W& \3 X3 z3 z - (progn
0 `5 |3 O! j' L X9 R$ F- L1 t - (set_tile "edit_lt" "Varies")+ e, z% Q; a a# I$ o
- (col_tile "show_image" 0 nil)
6 E, s# v `2 u - )
8 o, }1 M( M1 Q3 w2 e: U - )
3 | x2 X" O" T0 I - (action_tile "list_lt" "(ltlist_act $value)"): Z9 S$ G0 F, r" v: e/ n
- (action_tile "edit_lt" "(ltedit_act $value)")
$ h9 r. O# y! z; c - (action_tile "accept" "(test-ok)")2 W- {, @8 t5 E" |
- (action_tile "cancel" "(reset-lt)")
& O6 G' N! J" Z9 R1 G- [4 e - (if (= (start_dialog) 1) ; User pressed OK
$ J1 J5 R" Y T$ u( f" q - (cond
/ g- p) a6 P4 {+ g( r8 J - ((= lt-idx nil). ^5 H W# X1 j5 C0 s/ k# O5 U
- (set_tile "t_ltype" "Varies")' C Y0 n9 f9 `: m: j D
- "Varies"7 o1 E( q+ a8 W3 ?" Z: E4 l& l
- )$ k6 {8 b( |1 l4 G H! ?- S: f8 ]
- ((= lt-idx 0)
/ K$ G1 f; ?$ j, A% Q - (set_tile "t_ltype" (bylayer_lt))
3 e! f/ K0 d9 F5 J - "BYLAYER"
0 ^- \, t- p$ u- C- V4 P - )! n2 I) ~2 e- g
- ((= lt-idx 1)' h/ Q( @' U* a: i. L
- (set_tile "t_ltype" "BYBLOCK")6 L0 i( m' m) a- ]
- "BYBLOCK"9 W% W6 k/ a% E' M. U
- )
, {( p3 D! w& J: C4 Q4 g - (T ! j' ~/ y# a* C9 J
- (set_tile "t_ltype" ltname) - [: f, b! p) G9 \
- ltname+ j. j/ g/ E8 D* e( P) s! G
- )5 n9 S4 e& t" N# n, i9 N
- )& p0 ? r& H2 Z4 @0 J) h
- eltype! W0 A9 T! E$ p9 p$ T+ ?
- )
" L2 H( ?6 ?" \7 D% |0 k - ) `7 V$ l. H7 w' S
- ;;1 x( X, B2 M. w
- ;; Edit box entries end up here4 v ]) B1 u4 s/ Y; ^
- ;;9 j7 g% @2 d* B1 H
- (defun ltedit_act (ltvalue)
2 \4 K; p8 S: B$ ` - ;; If linetype name,is valid, then clear error string, " M; o! O7 }9 B& K
- ;; call ltlist_act function, and change focus to list box.$ E0 v* V0 Q* R
- ;; Else print error message.
+ l$ k9 f, j& q" `, M# } - (setq ltvalue (strcase ltvalue))+ E6 U$ C+ z) o. Y
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))% y$ d! H: |/ j% l- r* ]! [1 ~& G. c
- (setq ltvalue "BYLAYER")* P% t; A2 P! O2 }6 U
- )+ P. O3 d4 u6 b
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))3 X. ~# H9 [0 L4 G5 d
- (setq ltvalue "BYBLOCK")! Z, {: g7 A' K
- )
! H. e, g' G6 d8 C+ P: H - (if (setq lt-idx (getindex ltvalue ltnmlst)), c2 Z0 [) |* u( X. V! |0 I/ J
- (progn
, k5 O s; u. L1 C5 P& ? - (set_tile "error" ""), i! {5 U& H2 w
- (ltlist_act (itoa lt-idx))
- i; a; f0 e6 j" H$ J - (mode_tile "list_lt" 2). B' _" n' q7 M A' u
- )
! s1 X3 a" C: F6 a- I - (progn8 h, f, b' t! D8 Y3 V8 I
- (if (/= ltvalue "VARIES")
8 T7 h. @& W4 z - (set_tile "error" "Invalid linetype.")5 m# a1 V" J4 w3 W: m7 p: ?: D
- )
9 Q7 g& h! k+ |) }4 o - (setq lt-idx old-idx)3 o- {% `/ ?- s
- )
7 _& C- U* B. B0 Q - )6 ^8 f9 V' b3 F: Y( c
- )5 \1 o8 V, [# M' N" f; Y8 l/ E
- ;;
P+ o: c' D& p: L- J - ;; List selections end up here
- r+ v! H& m3 y2 w/ R - ;;: [6 z; L- V" [ [3 z& F, T, p
- (defun ltlist_act (index / dashdata)9 z% p0 }8 S: [; l" D4 m
- ;; Update the list box, edit box, and color tile
. C& h# ~& q/ n4 X" \9 s a - (set_tile "error" "")
6 R% [3 o! \0 y. w# f- [" |) H - (setq lt-idx (atoi index)): a, q1 B- {1 J9 M
- (setq ltname (nth lt-idx ltnmlst))/ K! F# q7 b) x( e, s
- (setq dashdata (nth lt-idx mdashlist))3 b# s8 K& i, p& b: d
- (col_tile "show_image" 0 dashdata): G, |9 m8 w- q" q1 C
- (set_tile "list_lt" (itoa lt-idx))# P1 L+ M& o0 J1 @! N
- (set_tile "edit_lt" ltname)% e0 k# u. a* q k* k
- )
) s6 H- W, F5 J1 k" R0 A* g - ;;* b, l. H: t' W1 k4 v) ^" X' r! i
- ;; Reset to original linetype when cancel it selected
; q( q; Q) Y7 x0 V8 g) h' L - ;;# R1 N' w8 l5 j# E) r) Q
- (defun reset-lt ()6 X( M1 }0 T! d4 `2 D. B2 k
- (setq lt-idx old-idx)# x- v8 j! K& X; f
- (done_dialog 0)
7 @; A* w( y+ C - )
. [" v8 A5 C. [$ E - ;;* f6 N% Z* c! J$ f( X
- ;; This function pops a dialogue box consisting of a list box and edit box to
0 f3 ?' j0 g3 ]1 U - ;; allow the user to select or type a layer name. It returns the layer name
6 }: x+ F' a" O6 {" U - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the % Q7 v" a* G& }, L/ ?% F
- ;; drawing.6 e5 X/ Q- k0 O: l
- ;;
; W% n$ H7 u9 l. B6 R; C4 r - (defun getlayer (/ old-idx layname on off frozth linetype colname)
, b4 U( M# Z4 R2 U* O% c% `. G - ;; Load a dialogue from dialogue file
9 N3 k( N A w Z8 C9 v' l - (if (not (new_dialog "setlayer" dcl_id)) (exit))6 @) E U4 \( N* T1 E' [5 `! D
- (start_list "list_lay")
0 I( \: H* C$ ^7 H9 E- L- k - (mapcar 'add_list longlist) ; initialize list box" s8 o+ Z" o/ `( D
- (end_list) V- w, C2 n X+ Y
- ;; Display current layer, show initial layer name in edit + X; p" X* V7 p4 ` y& W0 O! j# U
- ;; box, and highlight list box.
- z) j( d+ S* O. C7 R/ R, d5 s - (setq old-idx lay-idx)) f" j& ^3 S7 |" C7 w$ }
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
+ ?5 }. [, i6 @0 X3 e - (set_tile "cur_layer" (getvar "clayer"))
! |$ q( R* Q: h% |, Y$ F - (action_tile "list_lay" "(laylist_act $value)")) B* c' d0 i, e. t) u c& ?
- (action_tile "edit_lay" "(layedit_act $value)")( f) g% R9 M8 |" n
- (action_tile "accept" "(test-ok)")
1 ?5 ]9 z2 F, w( A - (action_tile "cancel" "(reset-lay)")! Y6 F# D0 ]" D; I9 m" ^ j- h
- (if (= (start_dialog) 1) ; User pressed OK, I& W4 A' X/ m/ t
- (progn8 f6 k3 p3 j* u' x! Y" M' S
- (if (= lay-idx nil) (setq layname "Varies"))0 i2 t0 q8 D9 X( p7 ?% `- |
- (set_tile "t_layer" layname)
: V0 m2 Y m" ~& `# I# X" ~$ } - ; If layer or ltype equals bylayer reset their tiles% f& Z6 U4 {4 v* o
- (if (= lt-idx 0)9 J2 N7 F; s! Y7 u
- (set_tile "t_ltype" (bylayer_lt))
/ d& X) b/ r) M2 m( L& U - )2 e7 d! A% z+ \1 i- Z4 l" T
- (if (= ecolor 256)7 a1 j8 a+ s" r* E. ^$ w8 Y& H! w2 s$ `
- (progn9 {9 Q F, w8 y$ A% |& Z3 O
- (set_tile "t_color" (bylayer_col))4 Z7 u& K* |' y6 L$ Z# F9 h
- (col_tile "show_image" cn nil)( ~5 \& R! a' \: c5 C% X) e
- )
& Y9 _6 t3 k* T6 v3 ~ - )
, G* X5 B, K; f, ^( p5 E4 a - layname
. \ B! A, F5 H5 [ - )
. T3 q& e2 V1 \6 A5 c( K7 t$ {" y - elayer
7 U F7 o- v$ f2 s6 B1 [* { - )
9 v6 ]7 y5 N, P5 q4 e - )7 H* Y) k1 N! l9 ~5 J+ D# b
- ;;
8 h2 s5 h; q" N; `( H# k3 Z0 E k- T# o" l - ;; Edit box selections end up here: r( o2 o V Z5 j% { p2 H
- ;;
7 A- d+ }( E: m) S: j - (defun layedit_act (layvalue)
4 Y5 Y. N' C" W) _4 Y - ;; Convert layer entry to upper case. If layer name is
' @; J: F2 A% G$ E6 k - ;; valid, clear error string, call (laylist_act) function,
' v- n! z: U2 q Q% C+ ^( n - ;; and change focus to list box. Else print error message.
1 u4 K' M5 z& p$ G/ X, ?( x - (setq layvalue (strcase layvalue))6 y+ L* v3 Z! |4 s
- (if (setq lay-idx (getindex layvalue laynmlst))5 z3 s: q4 |+ L: j) Y4 d& X$ s/ @' A0 ~
- (progn/ J$ N9 d8 w1 g1 q9 Z3 c
- (set_tile "error" "")
" O* _0 Q. X" _ u - (laylist_act (itoa lay-idx))! r- p# L* G8 Y7 T$ O7 S2 |" D
- ): }4 L9 U& ]" s% p8 e
- (progn
- m% d# d. m- t+ y. i5 X5 [6 ^9 d - (set_tile "error" "Invalid layer name.")
7 B, {" G6 I2 P* e/ [$ \$ Z& r - (setq lay-idx old-idx)0 z+ D# E& W! Y: ?$ w
- )
' m9 z* D. U3 { - )0 P! I2 w- Q: O) p* Q6 j
- )
/ \. T2 A7 v( O - ;;
% V+ b9 }6 C* O. i/ Q9 o k - ;; List entry selections end up here9 k! I( I h# f2 h: Q
- ;;) \) s+ U% @) Y0 ?# d) E
- (defun laylist_act (index / layinfo color dashdata)+ ?/ d, q! ]( \9 c @( ?
- ;; Update the list box, edit box, and color tile0 O& @: u, K e
- (set_tile "error" "")3 H' |( t7 Q. l
- (setq lay-idx (atoi index))
A+ P9 i6 b! H( W - (setq layname (nth lay-idx laynmlst))
0 w) ?' C* D- Z) C - (setq layinfo (tblsearch "layer" layname))
; D- W3 i3 L2 B% Z - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4). s: _% L# [& U$ Z( R3 o
- (set_tile "error" "Cannot change entity to locked layer.")9 q2 P' m/ d$ r# c8 F/ e) d+ b
- (progn7 ]0 l4 i. i8 I0 a1 h
- (setq color (cdr (assoc 62 layinfo)))
: }7 J# T. v6 K- x - (setq color (abs color))
1 I/ M& W6 {2 E o$ a - (setq colname (colorname color))
0 N, J& U; ?. R2 X M - (set_tile "list_lay" (itoa lay-idx))
; P% C: c2 T1 i9 U2 r - (set_tile "edit_lay" layname)
5 \9 S5 \; _- M& l) H9 P - (mode_tile "list_lay" 2)0 C, D2 i8 [/ m# Q! r; K
- )- r; M$ C3 |/ l; P# T
- )+ E( o+ a2 @; w3 J9 u1 g- P
- )6 O% C. K/ N$ b6 k# |
- ;;2 s H% ^6 b" D9 W2 v3 y4 z
- ;; Reset to original layer when cancel is selected
4 J& }5 n. {9 g8 L - ;;
( S+ {# D. H& k# [8 H1 S3 S - (defun reset-lay ()
% Q$ M @" P/ g; Z$ l- A6 |1 j - (setq lay-idx old-idx)
* A3 d+ n; M0 \% Q' D - (done_dialog 0)
0 ?" t8 E5 |% D - )
# o/ o; x( R5 g: J* t7 X+ P - ;;
3 |- v! B& T2 x" h( L0 E5 k - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
/ G2 s; f/ ]6 Y) A' Z/ d5 `! } - ;; string can't be converted to a real, this routine checks if the first 9 [3 k4 p9 N* G% |8 h- B
- ;; character is "0". It also checks to see if the value equals "Varies".9 }) O2 E3 C. a0 ?( D
- ;;, b8 b1 ?! B/ U! `# O& r- `
- (defun getthickness (value)
% _; R J6 Q+ A1 ~. `8 M, n - (setq value (strcase value))- { p, k* b) M
- (if (or (= value "VARIES")2 n& |) ^) z; G& H5 V, I- q
- (distof value)
?9 {9 ^. ?3 |( L; p& e - )" Q0 I' W+ n2 a' R( Y
- (progn, i5 u7 r0 V& g
- (set_tile "error" "")+ J) D0 A, \" S- m: _: C
- (if (= value "VARIES")* v. L: M, G w' o( B
- (progn# [3 n2 L) T* g+ |$ b8 H) W
- (set_tile "eb_thickness" "Varies")5 ?3 Z4 n: m, x" Q9 ]/ {
- (setq ethickness nil)0 A. Z% E* e2 U. l
- )3 ?2 Q" f9 s! I) m% A6 a# X. u
- (progn% m. K: h! q }4 [+ t
- (setq ethickness (distof value))$ d) x* Y3 ~. |. r6 i: R
- (set_tile "eb_thickness" (rtos ethickness))/ F/ F7 u( w7 W0 h
- ethickness8 P* W* v6 W/ _; u/ R; [; W
- )
1 O, P; p+ S3 c. ]" E4 p - )1 G `" z4 k7 t( ?0 j7 {* |+ n; o
- )4 V' l1 W4 M% G# i
- (progn& P& T& q0 }% x! g: f
- (set_tile "error" "Invalid thickness.")" O! V. {1 W2 f! E' ~# t
- nil
6 F% y) [- \0 i0 Y - )
2 K4 t, {. h' ^9 R - )% o9 l; U6 i$ M$ n7 _3 e/ l
- )6 l1 n, H* ?! X) Q, a0 q
- ;;
1 H+ b3 |* z" M, J- B. D - ;; This function make a list called laynmlst which consists of all the layer
% h0 g+ ]& B& j9 ]5 d9 F - ;; names in the drawing. It also creates a list called longlist which + w* j) J; T& L
- ;; consists of strings which contain the layer name, color, linetype, etc. 2 I3 L! h6 g- `
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
) ~$ ]! Q% ~! P8 L - ;; same.
, W R# e4 P6 v$ @. A - ;;
" E3 H W) g4 ?/ G. c y - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname $ X L6 x5 A! b( ]
- xdlist vpldata sortlist name templist bit-70 W% W. G" ^# a+ E" J! r4 H' Y
- )6 v: u. o! D6 P: o: E6 |: P" b
- (if (= (setq tilemode (getvar "tilemode")) 0). L2 A* x/ @1 m- o( z
- (progn
# F! |1 b5 p( ^. [ l7 j - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
. p9 J" W0 C0 `% I# ~$ y - (cons 69 (getvar "CVPORT"))
8 n- K- a: b2 ?7 m" X - )& n& V$ p S' C# O- |: U, X
- )
& C. \4 G, C* ^7 t - ) 8 J$ l; U5 s1 `' K4 r
- (setq cvpname (ssname ss 0))
' p% j6 W$ E1 A, p0 @, b - (setq xdlist (assoc -3 (entget cvpname '("acad"))))8 A2 V8 N* N& ~5 A& [
- (setq vpldata (cdadr xdlist))7 H0 Q6 h9 I; N) i- r9 j3 T' {8 f2 \
- )
$ l, _. |6 W: y5 | - )! `+ Q+ S' p5 [
- (setq sortlist nil)+ [% R9 {8 Z; i% y! f5 I
- (setq templist (tblnext "LAYER" T))
+ z; N5 ]( q) {7 K, X - (while templist
" b0 N" S" H3 v$ f- z" z - (setq name (cdr (assoc 2 templist)))! F& @6 z" u$ \2 c
- (setq sortlist (cons name sortlist))
; V7 i1 P0 B. B" E6 b! x; n - (setq templist (tblnext "LAYER"))1 s( h2 [, ]& G; \% n
- )
8 z& ` E/ N: X: k2 [ - (if (>= (getvar "maxsort") (length sortlist))& v/ G9 {+ r# v' a
- (setq sortlist (acad_strlsort sortlist))
; k5 M" z; I" p6 m - (setq sortlist (reverse sortlist)); Y7 r6 X+ p" I0 Z
- )
; P9 }) A" U5 j. ]! ^% l; @ - (setq laynmlst sortlist)
& l' R9 A( d; D) V/ A8 I& @1 t, f" m - (setq longlist nil)( K3 K# g+ f9 I1 |* o; k
- (setq layname (car sortlist))
# ` ^' b5 p# I6 z. ~% l - (while layname% k5 H6 n" C. Y9 {4 T' Z
- (setq laylist (tblsearch "LAYER" layname))( M/ W* N# y8 y* N
- (setq color (cdr (assoc 62 laylist)))8 }, F, i3 i2 J' G# o
- (if (minusp color)
+ a8 K J7 K+ P" S9 q9 E1 V% v - (setq onoff ".")- k3 ~8 C& [$ Z$ s! J2 O; T3 q# M; h4 K
- (setq onoff "On")
( `8 b* P2 n' [; P, n& l; J: O$ m7 Q - )8 K, c7 z9 n( _
- (setq color (abs color))
7 }3 t$ @5 M" N: z5 Q4 G3 G - (setq colname (colorname color))
$ m6 x/ L0 Q" I( a* h: g9 m B - (setq bit-70 (cdr (assoc 70 laylist)))
% k! ^& k/ U6 ]# {2 g - (if (= (logand bit-70 1) 1)0 {- u1 G8 l5 D7 |
- (setq frozth "F" fchk laylist)
' q) g m" R% |. p% f, J \ - (setq frozth ".")
1 L5 i1 `" e/ S5 H: h& r - )& L$ W6 V% s0 u- J
- (if (= (logand bit-70 2) 2)
5 n, o g+ x4 C, r: E - (setq vpn "N")
g" b" x* l. E* \( M - (setq vpn ".")0 Y& y$ F* n: C8 }# d* X F
- )
" ]# p& Y$ P9 g+ t# \ - (if (= (logand bit-70 4) 4)( {6 p' t, C) g, ?! K5 _
- (setq lock "L")
/ \9 Y. d$ ^" U$ ~ - (setq lock ".")% n8 D0 A1 h. y
- )5 t4 \, Z7 l% P1 M
- (setq linetype (cdr (assoc 6 laylist)))
/ ~0 V/ ]9 Y5 ?& s! U8 [ - (setq layname (substr layname 1 31))& ^4 e6 S1 \+ l1 _
- (if (= tilemode 0)4 s1 @$ G4 T9 P1 x' M7 i* f5 |" |
- (progn( w, A4 Q: t3 g* X% B
- (if (member (cons 1003 layname) vpldata)" r9 m3 M1 m8 v3 X) c3 L: \
- (setq vpf "C")' ]+ ?6 A$ x! F( m8 {% n
- (setq vpf ".")
; n6 d+ Y) V1 @- w; m; L2 G5 N2 h - ): w& @! s3 d8 h1 w; q6 O: I
- )
/ ?+ r% }* I& J, X e - (setq vpf ".")
' [# |; S2 [# j - )
* S. i: A: Z8 n3 r7 A$ T - (setq ltabstr (strcat layname "\t"
5 \' x; H1 x3 w5 B/ H - onoff "\t"1 R! D- x& P! @( C' S2 y
- frozth "\t"4 x/ \$ N2 o$ v* P- g( }
- lock "\t"
F- k3 e. |9 M$ Z7 y - vpf "\t"
& ^1 z* K9 S8 W/ T - vpn "\t"+ E4 c, _* c8 ]
- colname "\t"( e e t6 y$ [# @7 W; p7 L" \" G
- linetype
5 y+ @! [, K% k+ h - )
% v$ h2 L: B( H - )* _2 y8 y. L3 M3 v3 z
- (setq longlist (append longlist (list ltabstr)))
, B5 g- B5 ?9 m+ f# u' i3 c - (setq sortlist (cdr sortlist))
G- t: v: _# B# n0 J, U - (setq layname (car sortlist))
5 Q5 G9 I: X* Y8 }* A/ p# f - )
5 D) f# g- r3 K- `4 G A5 E& Z - )
( Y. E& ~% x3 Q - ;;
* j1 k3 K, Y2 u4 i: N3 X" D# w - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
! u* B. O: |3 b0 c* m2 b - ;; linetype names read from the symbol table. Mdashlist is list consisting ) B6 S* T" {, w
- ;; of lists which define the linetype pattern - numbers that indicate dots,
) k, i$ ]1 ^' n4 y A" n. z - ;; dashes, and spaces taken from group code 49. The list corresponds to the ' p7 R- s. |2 D
- ;; order of names in ltnmlst.2 l. ?$ f5 \1 G* \' u) W9 {/ X
- ;;
0 C3 I: ~- L+ x+ H - (defun makeltlists (/ ltlist ltname)$ F9 F A, H* s+ K* t5 c
- (setq mdashlist nil)( n7 s2 ~" ?3 @5 J+ I/ j
- (setq ltlist (tblnext "LTYPE" T))
2 ?! v# m- z: }" P - (setq ltname (cdr (assoc 2 ltlist)))2 M; v( g; V5 o& Q; g* r& P
- (setq ltnmlst (list ltname))7 N. N' x4 t0 e- p
, n2 Q* E' z P( k& u! b$ P- (if (= ltname "CONTINUOUS")0 ^3 E# ~9 q# ~- {! I
- (setq mdashlist (list "CONT"))
- P) ~- W4 O3 C - (setq mdashlist 2 U0 a! P0 q% \. ^! M
- (append mdashlist (list (add-mdash ltlist)))3 @/ T2 a; D F7 x8 p- h
- )- m1 W2 a! s0 a* \6 T* ~8 N
- )" R; I8 `1 Z/ v, T* c9 |9 q
- (while (setq ltlist (tblnext "LTYPE"))
8 y0 E" h; |& c7 t" H; e! W; }: B - (setq ltname (cdr (assoc 2 ltlist)))
+ Z3 v# w) v! ?2 I- L - (setq ltnmlst (append ltnmlst (list ltname)))2 u% k! K7 _* E! x+ `5 x4 c( T" L7 q t
- (setq mdashlist / `. ~: Y- C! s5 Y3 M1 C* S
- (append mdashlist (list (add-mdash ltlist)))
0 U- q; g6 ^/ t2 q) S - )% {; [* j# I. O7 z( _- W5 o
- )6 p0 S+ g) C4 p1 f/ v; K# f9 n
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
" ?( _- T) M' S2 n$ ^4 u - (setq mdashlist (cons nil mdashlist))* z3 {5 r! A" F! Z' T; [9 c
- (setq ltnmlst (cons "BYLAYER" ltnmlst))& `$ Q$ ]' P& j7 a
- (setq mdashlist (cons nil mdashlist))
' I, b9 }, n1 o/ k7 C5 Y - )- m" u5 |$ M- K4 }
- ;;$ X# A5 n" e0 P# v6 c
- ;; Get all the group code 49 values for a linetype and put them in a list $ A/ q2 P1 }: N9 ~+ F7 m( c* h
- ;; (pen-up, pen-down info); M5 Q# S* p1 B1 }4 d
- ;;6 D) Q/ A, N @& k
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize), m9 t3 l/ G0 A
- (setq dashlist nil)) n1 u+ j' S$ _: L4 R% L
- (while (setq assoclist (car ltlist1))4 j# o3 t5 D8 a% [( L) e( ?
- (if (= (car assoclist) 49)
% x6 e2 u8 |' F/ b9 q - (progn
4 z2 s8 k: b1 [- a - (setq dashsize (cdr assoclist))
. {# B* z. Q( ^' L/ y' N. O - (setq dashlist (cons dashsize dashlist))
* L1 |$ ~4 }- f- K4 B& z - )
, x1 D! v' u8 w: w7 @: P; _% y - )$ ~% N s% P! D5 Y% Q
- (setq ltlist1 (cdr ltlist1))
$ a, H8 T6 Y2 ^& \- _, }! G - )( W1 C- X$ G1 S4 e& i( D7 y! j
- (setq dashlist (reverse dashlist))
3 u# @$ D S! @ - )& _: z7 c8 W5 o* c
- ;;* O0 m4 I" {7 {5 p( l9 Y
- ;; Color a tile, draw linetype, and draw a border around it
- J# l6 Z# ^: {- p$ D - ;;, t5 E8 M, E; e; n' M& U
- (defun col_tile (tile color patlist / x y)* @- G+ a0 q2 Z; A4 R0 X4 c/ A0 w, ]
- (setq x (dimx_tile tile))
+ w! \$ G; X5 \% I) {* a' J - (setq y (dimy_tile tile))
( u, h* W% I( b% e4 W( ]" l) {# w - (start_image tile)
0 }6 @9 ?+ X4 g: J$ r - (fill_image 0 0 x y color)6 h* c6 H5 t# M0 H; k0 i0 y# w" x; Z' b
- (if (= color 7). U4 p: e& K- O. l" n: d) J# M' q
- (progn, t W3 K& t- e# ^2 C6 A( x
- (if patlist (drawpattern x (/ y 2) patlist 0))
2 f0 P t4 w# ^" w# x! Y/ r - (tile_rect 0 0 x y 0)8 u0 u) ^- m0 K( X8 z3 a+ X9 a
- )
2 ]6 m7 c- P; k! X5 b9 C1 g - (progn* Q8 O9 A& w: {4 N! ]
- (if patlist (drawpattern x (/ y 2) patlist 7))
8 G% j0 `! b. l+ s - (tile_rect 0 0 x y 7)
2 i& k w4 f2 \; ]9 O8 V' C5 U - )
5 e$ v0 u( i+ ]% G, S, r - )
# _ N( H3 G0 s0 l; P - (end_image)0 |: o! p9 ]3 |
- ); L- G/ s2 p$ @0 G) I2 y! m9 @. f
- ;;
8 B1 g/ D' ]% H! E - ;; Draw a border around a tile
! A3 t6 K% D3 p9 N, H - ;;+ }; S v) y7 j% J9 q( z7 \7 O* k) _
- (defun tile_rect (x1 y1 x2 y2 color)" d' E/ G0 b: u
- (setq x2 (- x2 1))
( |0 t; O& z4 |9 s3 K: ^ J - (setq y2 (- y2 1))# D% Y8 { }8 }' U& x0 B8 b* q
- (vector_image x1 y1 x2 y1 color)
! H9 X3 p$ p7 z - (vector_image x2 y1 x2 y2 color)5 y B- h" W9 M$ {+ J8 v1 K
- (vector_image x2 y2 x1 y2 color)7 k6 g# ?: u% s. t4 F9 ]
- (vector_image x1 y2 x1 y1 color)
6 c# z5 d( G, S9 w - )
0 e! l+ Q/ } a - ;;) b/ y) z0 s/ d% n$ z/ }# f+ x
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
- c9 h- l, `* V* D9 R8 p8 e6 k - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
4 q4 l, s2 n1 d+ g - ;; list of numbers that define the linetype, and color is the color of the
6 X9 S* z) q$ S - ;; tile.! I& G) L( E" b7 g, s
- ;;
$ ^3 b. k' s* I4 }8 b - (defun drawpattern (boxlength y2 pattern color / x1 x2
9 E5 q6 |9 ]- h - patlist dash)
0 W0 c: Z& N! { - (setq x1 0 x2 0)0 Z1 r: a- W) o {! B/ L9 ?
- (setq patlist pattern)
* M. W R* O* O1 Y0 P) G - (if (= patlist "CONT")" u5 Z! }; { p& Z: K
- (progn
1 o4 b8 K! z% h8 i - (setq dash boxlength)
2 S, J: D0 p _. |% u# Z - (vi)) L8 h U& {2 y$ b0 s
- (setq x1 boxlength)
+ {- B- B1 U f4 C" H+ X- T - )
6 R3 Z8 A7 f8 U, R2 I" J - )4 W& s# H6 P7 ^0 x3 M& ^
- (while (< x1 boxlength)
& V0 o7 K0 |2 B5 F7 ^4 s/ w" `8 O - (if (setq dash (car patlist))
$ J8 g. P& |# r+ ?4 z - (progn$ X* `* r+ n0 y) C, F' S7 E! L
- (setq dash (fix (* 30 dash)))
; y- K5 y( ^6 S: q M - (cond
8 w4 e/ B: Z* G# k$ P - ((= dash 0)
; \) k) N( a9 V# [! A - (setq dash 1) 3 J, N; W& l2 X
- (vi)
, V8 W1 X6 r9 ~* R - )
/ q8 B1 Q9 H; C: j- x$ \0 t - ((> dash 0) # c) P+ e& y A9 r
- (vi)* j( ], R# i8 g1 j) S" Z* ]
- )- n- H1 L2 E5 w- k6 N
- (T 7 J$ f! Y" X7 [& G
- (if (< (abs dash) 2) (setq dash 2))
, e4 V0 q3 [8 V9 T; u8 e4 |; H8 M - (setq x2 (+ x2 (abs dash)))( i2 {6 {1 P, ^& C
- )
. N+ G. R( Y, r& V/ C* B* e - )- r3 V2 Q' T |' ~" X1 V |
- (setq patlist (cdr patlist))6 f" R9 k; ^- H1 Q
- (setq x1 x2)1 m+ p, {' p/ M& O) l( V
- )3 y4 V4 m% @$ ]# D) ]' T( w' \9 u
- (setq patlist pattern)
; M$ Q% O1 P5 P$ o4 g1 T4 Y; b# ? - )
8 H8 C' {0 }7 B9 U& a) a - )
1 ^3 {+ \3 {+ w* [% N1 ?2 X3 M5 C) h& s - )2 I; a3 ^' D, ^* }: S
- ;;
3 `5 [4 @$ T! Y" E' T/ s - ;; Draw a dash or dot in image tile
& L; H2 s* q f! V3 ` - ;;
3 ~' A! ~7 i3 F - (defun vi ()
3 a) S3 E8 O+ V' b9 C - (setq x2 (+ x2 dash))& E$ T( n0 c8 y" @# `5 M0 J1 l
- (vector_image x1 y2 x2 y2 color)
% z4 I7 ?* X% w6 c) c: u - )
2 V* Z7 d1 n8 |, L: n. S5 r - ;;
8 g p+ H% i8 P0 c4 Y - ;; This function takes a selection and returns a list of the color, linetype,
4 Z$ n, p0 B0 Q5 W6 g& E - ;; layer, and thickness properties that are common to every entities in the
& ^2 C! F9 N2 P! K; ]8 j- s6 j& O - ;; selection set - (color linetype layer thickness). If all entities do not $ x) d- |; a+ N9 Q9 S; p
- ;; share the same property value it returns "Varies" in place of the $ p+ G% m" { [) s- y
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)9 L2 @9 M" L D
- ;;9 s, K) K- \% ^% F) ~) a
- (defun getprops (selset / sslen elist color ltype layer4 P* v2 j6 j' |( x k: G+ w
- thickness go chk-col chk-lt chk-lay chk-th ctr)
( |# F) A) z. a+ [4 x( ~' N$ L - (setq sslen (sslength selset))3 U3 H0 y8 W5 U$ [$ r% s' Q. d
- (setq elist (entget (ssname selset 0))); @6 |; |9 X( ?# ?- W8 K' c
- (setq color (cdr (assoc 62 elist))): j2 x) o4 B, p6 D7 h
- (if (not color) (setq color 256))
- E0 Z" J3 k- t X1 U( V) O9 k - (setq ltype (cdr (assoc 6 elist)))1 Y# @4 O8 c( V+ ?0 g/ a1 _" z& W
- (if (not ltype) (setq ltype "BYLAYER"))
$ w- }6 B: Q$ o1 z( p - (setq layer (cdr (assoc 8 elist)))
% s i! W: v, o. j+ b } - (setq thickness (cdr (assoc 39 elist)))
: O+ Q7 ~: R/ Y - (if (not thickness) (setq thickness 0))
4 s8 U/ |1 S! C8 R4 M7 y; U0 ~3 J+ C - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1). j6 s4 O; }- `8 `! D d: \
5 x" L+ @; L+ s% a, G5 f# W P- ;; Page through the selection set. When a property8 }+ w# _$ B) i0 J* k0 [
- ;; does not match, stop checking for that property.- p+ F9 U. \, y' U' V
- ;; If all properties vary, stop paging.5 z s5 }& A2 T1 ]' }4 K. e
Y8 b) k; X% b: K3 N- (while (and (> sslen ctr) go)9 z! N" K+ m1 Y) K1 ~* {" V; `+ V
- (setq elist (entget (setq en (ssname selset ctr))))
( u; B) a# |1 `+ I" g6 k* c - (if chk-col (match-col))2 T! C7 F) o' w5 f) K" f
- (if chk-lt (match-lt))/ Y+ A- o* ^- o5 o8 j
- (if chk-lay (match-lay))
, `0 f5 \! K; N, A a. u - (if chk-th (match-th))
; Y$ A, `' x2 Y7 A( `6 P - (setq ctr (1+ ctr))$ @; v" ]8 b+ o
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))* k7 L% Q( T0 n* t6 [7 B
- (setq go nil)( Q4 f& y9 }. g# ~- p; c
- )& |1 V8 ~7 `! g! z2 G \9 \
- )- t$ s( I8 ]9 k! {) N" |+ f
- (list color ltype layer thickness)6 V( k. U6 `% }- Q1 a
- )* _8 B5 m5 }8 Y; Z' A1 s
$ U8 ^, N/ l* @- a: e- (defun match-col (/ ncolor)
- g" r8 \" G2 @; V) \3 U, Q9 o) H - (setq ncolor (cdr (assoc 62 elist)))
Q# C0 E0 D8 ^" t7 O; U6 l - (if (not ncolor) (setq ncolor 256))
7 u4 m2 Q1 `& ]+ m ~* s - (if (/= color ncolor). z( T: E, c t8 @2 r4 U
- (progn
1 W) P( h5 a4 V( V: [# S - (setq chk-col nil)
, L6 c% T/ Y, C. S) B+ f - (setq color nil)" S) X2 W7 D; y( o/ Y% b9 K
- )' l) f( T+ A- J9 F3 u( H: j
- )
- R( D( [7 W2 L$ w) m/ x - )% x) g0 o/ l0 b b2 K
/ e" J1 [# Q1 |; M- (defun match-lt (/ nltype)" u4 I/ t% F4 V, s& s
- (setq nltype (cdr (assoc 6 elist)))
1 f' D' K2 z$ B7 X3 }. i5 h - (if (not nltype) (setq nltype "BYLAYER"))
8 A- Q ?6 o" S - (if (/= ltype nltype)3 c: {+ R% }2 B. H7 Y
- (progn( b) M' j7 p$ W8 n& a4 D) ]4 x
- (setq chk-lt nil)
4 ?8 `* ^, M! t" C' C; I; y" L - (setq ltype "Varies")- H$ f4 W, s* B0 @& M1 S
- )
0 D& B8 |" {4 _1 ] L7 @7 _" y - )0 L2 C" y& m$ J; @( J
- )
" k7 z) X0 t+ u: t) C, h. N; w - 8 Y6 a; A8 O4 {7 y. T
- (defun match-lay (/ nlayer)' ]* d3 S0 t# W9 p* u0 \ l. C4 F
- (setq nlayer (cdr (assoc 8 elist)))
9 c( Y2 s+ `" Q% i0 R5 U7 v - (if (/= layer nlayer)
: f6 N! q. i' a1 B" i& Z* n: } s - (progn+ m2 C) C; N& {! t1 @
- (setq chk-lay nil), V. u, S) |9 P( _; c# G" s5 @2 a" g: P
- (setq layer "Varies")8 H6 k/ y ?! r$ ^: Z# w% J* M
- )' M5 P, t. o: q- A3 U3 x
- )
, `. r$ n t$ ^ - )5 r! R0 X7 x# x. q4 t8 l5 d
; L$ K* p* D. \/ m% l! a; M; [# f9 q- (defun match-th (/ nthickness)
% q) p/ a0 g- t# ^& x9 d6 j9 Z% t - (setq nthickness (cdr (assoc 39 elist)))
, y8 e( x: O# _: P# E - (if (not nthickness) (setq nthickness 0))9 l+ v, D. u: W" F' h% K% f
- (if (/= thickness nthickness)
" ?: A& F6 f0 \ c( G - (progn. p, e1 ~# |$ P% C) I# N8 O8 A& ^+ F. x
- (setq chk-th nil)
5 R- d1 X! U) |) j% A& g# w - (setq thickness "Varies")
4 M* g3 @6 v; }' d( P% w - )
) N1 _2 P6 F; @/ g" u# j - )$ q( ^9 J) m. ]
- )
1 y% I+ N" e# a - 6 ?3 f' u! q4 n) y% R, }
- ;;# V& h, M7 r! m; S
- ;; If an item is a member of the list, then return its index number, else
- ~' n; W" y: E- c/ Z - ;; return nil.
" D n& f; I1 b8 H% [ - ;;# N" Q# A% H) n5 R8 J
- (defun getindex (item itemlist / m n)! N" z. U* `( U
- (setq n (length itemlist))! a/ ]& h8 J* l* E" r! i
- (if (> (setq m (length (member item itemlist))) 0)( C% @5 t8 j0 R7 G/ U3 Q
- (- n m)6 G5 {# [ E/ y+ ]/ \2 S
- nil
F- Z3 Z' m8 {$ c9 P* V8 b - )
' G0 Q# U( w4 U5 R4 L/ }) Y0 R+ Y - )
- j: t# d: J3 G( n - ;;
: E% B, w3 Y7 K7 c( V - ;; This function is called if the linetype is set "BYLAYER". It finds the # @5 X; ~& |$ k: D( E
- ;; ltype of the layer so it can be displayed beside the linetype button.
. g, ?; V$ t* q2 y4 Z - ;;
( B" J4 ^, V0 _- ]7 Z# G. d h - (defun bylayer_lt (/ layname layinfo ltype)
4 S! f0 w ~& m- p7 w+ S! H7 W - (if lay-idx0 p/ r% x3 _5 k6 h* C
- (progn
2 p; ^0 O1 o! `' ?; D7 A - (setq layname (nth lay-idx laynmlst))$ i M* [, J% e( G# E7 d' E# L: U
- (setq layinfo (tblsearch "layer" layname))- b( }; w- Q. u/ E: {; y" x" T
- (setq ltype (cdr (assoc 6 layinfo)))! P' z7 j6 I: |2 M: A. r( O
- (strcat "BYLAYER (" ltype ")")
" d" K& \! f* Y' w. j, ^ - )
* p( V% K5 x0 P, S$ ^" k' v' `7 h/ \) d - "BYLAYER"5 N- `; ^# b, u9 R% O9 `/ k& z3 K
- ) B7 r( [* _' X" b. d* c/ @
- )
& D. q. o8 a8 B, r7 \* w - ;;- ]# c3 O' J. g- J" H- D1 ^
- ;; This function is called if the color is set "BYLAYER". It finds the $ u: V, L, c3 o6 r( P8 q7 B
- ;; color of the layer so it can be displayed beside the color button." A! q2 e9 J3 O) ^
- ;;
0 n h9 O: w7 z8 J - (defun bylayer_col (/ layname layinfo color), O6 b' v' s$ Y9 z; K$ r
- (if lay-idx! t/ c/ a! ?" {
- (progn8 z' G: L7 H+ H: w
- (setq layname (nth lay-idx laynmlst))
* D$ T" _. a& r5 } - (setq layinfo (tblsearch "layer" layname))3 Y" u" x1 H6 Z$ r: I6 G* d l7 ~
- (setq color (abs (cdr (assoc 62 layinfo))))
3 K& }0 ?! k9 I: t; ^ - (setq cn color)
' A3 g6 \. S( F! z9 K - (strcat "BYLAYER (" (colorname color) ")")
- S( T/ b* g+ r1 ?3 a7 } - ), i8 K1 V. n. \$ Y5 C: ]. _
- (progn6 O2 |; v% x. e+ t
- (setq cn 0)2 x' l$ V2 E# }4 N
- "BYLAYER"/ q5 c D* i/ A# ?$ Z* w: r
- )
9 X9 {" _- C& O4 u - )+ N+ v$ l8 N" m! h1 i' s
- )7 L1 B4 n7 P d9 E9 w/ j
- ;;
( a6 _, g- a1 P# v! k5 r" c# h - ;; If there is no error message, then close the dialogue
; A% j: b; v6 j: d! [6 S9 s - ;;
6 _) Y- E' |+ F5 n- Y+ _! M - ;; If there is an error message, then set focus to the tile
/ J1 C) L% o) ] - ;; that's associated with the error message.
( P+ Y( D: S' j# x - ;;# `/ C* y& }" [* k; K
- (defun test-ok ( / errtile)! y9 l) s- J. Z* j
- (setq errtile (get_tile "error"))5 [6 r+ e, k: J1 |6 H
- (cond% D) G m5 n" u' |" Y) {! f
- ( (= errtile "")
$ M' [+ Z0 V( R% [9 j* w8 C - (done_dialog 1))2 W; W6 c# C% F1 N# Q2 R
- ( (= errtile "Invalid thickness.")8 N, Y9 B8 ^4 C) ^0 F* G a" n' t
- (mode_tile "eb_thickness" 2))) ~8 {! u$ R7 V% e; B
- )
C6 Z! s9 f$ @* C* I2 A- J4 ~ - )* q1 X" ]$ V. ]; }" C
- ;;8 f! f: ~3 y! A1 @2 m& y- w
- ;; A color function used by getlayer., d Q8 ?2 }+ G! ?0 W2 h6 ?1 |' ]
- ;;/ B; {- E6 n' [7 S
- (defun colorname (colnum)
i2 L l! i3 S' { - (setq cn (abs colnum))1 a4 G+ ~9 Z) ?. [! d
- (cond ((= cn 1) "red")
3 h3 t& S7 n9 I+ \" j - ((= cn 2) "yellow")
' S* f/ f2 o; ^4 l4 z, o2 a - ((= cn 3) "green")
; V: Q4 B, T, c2 K# O, @ - ((= cn 4) "cyan")
: e1 f. r: [' l+ E - ((= cn 5) "blue")
/ H( K$ K6 K. `$ L8 D" c7 m/ \ - ((= cn 6) "magenta")7 {. x. f9 Y) R9 f, M& ]
- ((= cn 7) "white")
& v6 c% o2 w" |( i1 e - (T (itoa cn))
6 e W% l3 H9 x Z% c0 b' C - )/ R+ `/ y. n# B2 ~4 B
- )- f+ f+ h8 M' B
' r& Y/ Y+ [+ D- k% J- ;;; Construct layer and ltype lists and initialize all& j! k# c5 Z$ X* s
- ;;; program variables:% N. n4 g" c/ H A& A$ ]/ Y
9 v, {( d" z! U G, N- (makelaylists) ; layer list - laynmlst
& @ d; J/ J( A7 G - (makeltlists) ; linetype lists - ltnmlst, mdashlist0 V% B7 u- Y% f6 n* m, q
- ;; Find the property values of the selection set. m; f" y1 F# J. Z
- ;; (getprops ss) returns a list of properties from# G+ K( q* J& [' V. y$ {5 B' u
- ;; a selection set - (color ltype layer thickness).8 f. s8 V, x t
- (setq proplist (getprops ss))2 \- Z+ ~0 V: O5 K& P4 z
- (setq ecolor (car proplist)), W/ ?* Q* e+ z/ y
- (setq eltype (cadr proplist)), P1 [& m- S( _& v* k/ _* F0 C, ~, Y' b
- (setq elayer (caddr proplist))
?2 T, e8 B, M& z1 o" c - (setq ethickness (cadddr proplist))/ Q$ h- ^3 M6 {1 z ^* Q" W
- ;; Find index of linetype, and layer lists; Z8 e( m# x# l2 @
- (cond
& d- q2 n% b3 Y" i' ]" j1 D$ P - ((= eltype "Varies") (setq lt-idx nil))+ m \' \$ d H+ |8 D3 D. f
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst))), r f8 P$ t6 i. h6 T
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
4 O- D7 T$ V% z5 l; p - (T (setq lt-idx (getindex eltype ltnmlst))); z9 o! J1 n# R5 U9 t
- )+ q3 T1 b( T, t# E0 S/ {/ V. g
- (if (= elayer "Varies"): ^ X# L. H5 s# _) ]
- (setq lay-idx nil)! s& O$ z5 W2 `2 f
- (setq lay-idx (getindex elayer laynmlst))
- m+ o, r4 A; c2 T [3 i - )
. p# ~$ M& t& y2 Y" j1 |! v - (if (= ethickness "Varies")
, ?* o, r# s( M( u- z - (setq ethickness nil)
- ^6 ^7 F1 C1 p4 b6 E2 B) A' D - ) I" X" V# G. J4 [
: X: \5 P3 R, W- ) ; end (ddchprop_init)) ~- P6 P2 y% |# x6 u! W% w
- . P3 \! E( f7 l: I
- ;;; (ddchprop_select)6 a! F; t1 U6 e. }8 z
- ;;;
- T2 [2 ?+ U& F9 Y8 k - ;;; Aquires selection set for DDCHPROP, in one of three ways:2 f+ j f2 i( m/ C0 @& m
- ;;;. Q5 c7 ~9 Q, ^ L- C) V
- ;;; 1 - Autoselected.' w# d0 ~5 w) {8 k& P7 S% ]9 a
- ;;; 2 - Prompted for.
) o9 @) s( x0 E3 X& c - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
2 @6 \ {; C1 X, l6 G - ;;;
& t& D3 D5 F( n4 G0 ^6 k( \ - ;;; The (ddchprop_select) function also sets the value of the. M; E+ j% p+ B) R9 ?+ W8 Q
- ;;; global symbol AI_SELTYPE to one of the above three values to# @1 {# E" v7 }6 `- N) _8 x
- ;;; indicate the method thru which the entity was aquired. C+ P d- T" l/ B% ]
- 9 s2 r% k9 u: l1 Y1 A. z8 D
- 5 b/ t; \ h) x8 s; f
- (defun ddchprop_select ()
9 U5 ?$ w) \/ P# A3 O - (cond
* Y. W* T Z* J- ~) n0 V - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to |9 P+ m& \2 c9 `# U/ R9 R3 m
- (cond ; (ddchprop) as argument2 L; ]; H4 l/ R. [; g1 c
- ( (not (zerop (sslength ss))) ; If not empty, then/ i( j+ O1 V4 {$ {
- (setq ai_seltype 3) ; then return pickset.$ V' C% P% P' |: A! ^/ P& y
- (ai_return ss))))
4 @' n5 X, y& Q# K: m2 C: q. F
# I) j0 ?. Y2 y0 V f/ c- ( (ai_aselect)) ; Use current selection, B. s( F8 r8 t" \+ }
- ; set or prompt for objects
% ?& X; R# a7 i; x1 w8 D# ]4 S- t - + V; ~( A0 [7 O' K; d
- (t (princ "\nNothing selected."): F4 b0 ~1 y, y+ P9 n6 f
- (ai_return nil))
- _7 j0 f7 r7 e. p - )
+ c' Z" Y' q; D7 p6 j - )0 [) E7 M. D. D- A
- 3 S. o/ L2 _1 k6 n1 s# U h1 u
- ;;; Define command function.
; K1 V# k/ {* h7 X - 7 i7 O9 Y4 o4 h- M' |6 s& z; I2 A
- (defun C:CH ()
: j5 T3 m" }/ | - (ddchprop nil)3 b/ e3 w( ~: s1 y% q }& h" D4 ~
- (princ)) X7 k5 I1 U8 @, i! D" |
- )% x7 k2 W7 k8 i
. [" W% j3 [4 w- 1 c2 t; v1 l1 M" P2 {" s2 T
- ;;; Main program function - callable as a subroutine.
# ^+ \, Z# V, k f2 Z+ | - ;;;( e2 _0 `0 @8 P" y
- ;;; (ddchprop <pickset> )
( W" l2 c9 d/ ]7 o1 h/ Y: z" l - ;;;
# e# y& ^% R* A9 m2 ~7 b0 O - ;;; <pickset> is the selection set of objects to be changed.2 w5 r7 ?7 j5 h1 a/ t! y
- ;;;
4 Y8 Q0 ?% ~/ T. Q( H - ;;; If <pickset> is nil, then the current selection set is4 m d \& y( J! h
- ;;; aquired, if one exists. Otherwise, the user is prompted) _4 K6 k# D) a" W# r* o. R
- ;;; to select the objects to be changed.: q4 r& T! I4 |" z8 g
- ;;;5 N/ W J9 j( p: `
- ;;; Before (ddchprop) can be called as a subroutine, it must" T8 W6 b2 B6 ~% h0 w/ Q2 n
- ;;; be loaded first. It is up to the calling application to
- I+ }1 P, F* q$ | - ;;; first determine this, and load it if necessary.& z! j, Y& [/ S: s( `# L
- 9 B# v$ K* u1 [# e7 O$ i
- (defun ddchprop (ss /9 @% v2 E6 t( M- J) U) l
6 b& x9 M0 L i7 N9 j. \' T0 S& _$ F- add-mdash ecolor ltedit_act s5 k$ w6 m. P. `6 E" \9 a
- assoclist elayer ltidx selset
" ]% v& A& v: [) f7 c - bit-70 elist ltlist set_col_tile
1 H ^, m2 r4 r9 G" Y4 r - boxlength eltype ltlist19 c6 ]- G! ]3 j# R
- bylayer-lt en ltlist_act sortlist
$ [% Z, Z- x" x1 f - bylayer_col ethickness ltname X# U, M9 N0 ]; T
- bylayer_lt fchk ltnmlst sslen& I, y1 S# W8 r+ X+ O! G
- call_chp frozth ltvalue templist" y6 H# s/ k9 e4 ?+ S
- chk-col getcolor ltype temp_color8 u8 j5 f/ A4 L: f+ L- |
- chk-lay getindex m test-ok* n- X1 R( z- c3 g2 J
- chk-lt getlayer makelaylists testidx
# S; c/ V, O! r% L; n/ \ - chk-th getltype makeltlists testlay. }' D( ~$ A+ z' X6 J) [( F
- cmd getprops match-col th-value# p0 p6 _& k6 o" [, T
- cmdecho getthickness match-in thickness
7 U- e+ U0 `* o - cn globals match-lay tile" `3 q9 x6 {2 |2 Y( B9 A
- cnum go match-lt tilemode# A* M! Y K' k" \# n
- col-idx index match-th tile_rect9 j4 q$ S3 r1 M5 }) l9 w. m) g+ k
- colname item match_col vi; \9 Q5 D% `( c4 I! K' h
- colnum item1 mdashlist vpf
/ V0 v1 D/ l5 Z: C8 z - color item2 n vpldata: D& N5 u) Y3 v# E! T0 ]
- colorname itemlist name vpn$ C" r. \( J6 z8 C# r. B
- col_def lay-idx ncolor x% T! k% ?& ] D$ t4 f
- col_tile layedit_act nlayer x1
( Q' V. p6 n6 I$ C+ x; v - ctr layer nltype x2
) m7 [- J$ e9 D1 r& P |2 P, E - cvpname layinfo nthickness xdlist
|; J- Y$ [) Z. J - dash laylist off y& D. b9 }* o, q% \
- dashdata laylist_act old-idx y17 U- S. u( t( Z! k) i
- dashlist layname olderr y2
6 S* j$ I& n! { - dashsize laynmlst on undo_init _+ ]) ]# D9 F7 \7 d
- dcl_id layvalue onoff
& _. d8 d3 x; Z - linetype patlist. x0 R1 H8 p, q, \
- ddchprop-err list1 pattern
9 t; R8 f) f; ~! M( d. q - longlist proplist8 J8 u# t+ u( n7 |6 I5 _- @
- lt-idx reset-lay
/ x1 @; T6 A# d - drawpattern ltabstr reset-lt9 h. |7 `" C2 I, Y% ]& @
- )# h0 q3 T& }) A& d7 p
8 G$ l% U; W) p- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
$ f X, T5 `* `. S - old_error *error* ; save current error function
- A# ~/ I, \, v! C8 o - *error* ai_error ; new error function
* ^! f! W, t# q) r5 A% c - )
# f( U+ N0 k: O: g# T
8 ]$ \8 w/ I, [$ W0 H- (setvar "cmdecho" 0)
' b. B0 [7 `5 B+ o5 D6 e" L - 6 X* g6 |$ Q' f! T' b2 m, X: G
- (cond& ?- @' e0 Y# J) t3 F$ l; |
- ( (not (ai_notrans))) ; Not transparent?6 l p+ H; r K, p- Z5 I
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
2 }' l. N- A' I* P& c2 \( Z0 a - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
1 x T' M" l# W+ T( ] - ( (not (setq ss (ddchprop_select)))) ; objects to modify?% w) M3 X; y( i8 ^( }8 r+ X
- c6 Q* d8 A& n$ A- (t (ai_undo_push)
% r5 z# V# |0 b, _; _) R# C - (ddchprop_init) ; Everything's cool,3 x$ b1 w) P4 C! i7 v& G" T
- (call_chp) ; so proceed!
& j9 ~: {5 t! ~4 ?0 Z; a i - (ai_undo_pop)
* E' g6 P m a - )
0 [5 g! }' t+ l4 G5 e( g - )
; S9 y8 w3 U5 {6 ^& r4 I& l3 q - + u" W4 U9 N, d6 o
- (setq *error* old_error)
5 S# I1 h; m8 V; j7 R! [( L% x - (setvar "cmdecho" old_cmd)
! T6 u/ l" \& w' H - (princ)- w# n) b1 ]/ q/ ^3 l" w9 m3 Z
- )
% L% U* j7 i3 ^4 u* Q" } - 3 [# X7 P6 r. H( c, j2 i7 e
- ;;;----------------------------------------------------------------------------
& v3 g& C% h2 {" B0 ?% P4 L" E* q
% w2 u) ?2 h+ z" O. D" ]4 l- (princ " DDCHPROP loaded.")
" J. w+ S0 C3 Z2 l: U) a - (princ)
) @2 j6 i* t# s5 d9 W - , E) G% v6 _/ j" `: g' o
- ;;;----------------------------------------------------------------------------9 p7 N1 N g/ U/ _2 @/ |8 a
; X6 G2 w* V `5 z& M- ;--------------------------------ddmodify.lsp----------------------------------" g/ D1 e" [4 p% i
- ; Next available MSG number is 111# y/ D0 C. C% I3 F
- ; MODULE_ID DDMODIFY_LSP_8 K" X/ _7 h* P. K4 t
- ;;;----------------------------------------------------------------------------
* i. I! b& g( _9 ]4 p4 ` - ;;; DDMODIFY.LSP
4 N) E4 w+ M' J( z9 a+ P - ;;;4 z' M8 q- p2 K# v5 u: p
- ;;; Copyright 1997 by Autodesk, Inc./ f+ L0 _& z, C0 T9 l! [7 l
- ;;;
. {! L5 A! c8 V* i& X7 R - ;;; Permission to use, copy, modify, and distribute this software) q0 G# [' i8 n0 J4 j# j
- ;;; for any purpose and without fee is hereby granted, provided
: F4 A( a9 X8 @7 P, [8 c - ;;; that the above copyright notice appears in all copies and9 E8 k5 {7 R5 b( ?, b
- ;;; that both that copyright notice and the limited warranty and1 \, k/ Z8 m6 ~
- ;;; restricted rights notice below appear in all supporting
8 {) U# m* o3 ?( o1 f( A* F - ;;; documentation.7 C# e2 j( p3 a9 w; e
- ;;;2 E, F; y( e+ S( v9 v
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
: `! X" F' L9 U0 Y% E# J - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF# o, v+ ^, w" ^3 w3 N
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
( c& K) J( n7 r0 W a - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE3 Q4 W. g' K$ }1 `2 j& k6 B
- ;;; UNINTERRUPTED OR ERROR FREE." P' o Z+ H+ T1 n
- ;;;9 _) S* J1 k, z6 @* {
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to2 r3 Y3 c* k6 r3 _! S
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
" m4 Q5 r) K3 J, k B; W# ^! t$ ^ - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
5 |5 |! w/ k8 B( v0 ^9 H+ @ - ;;; (Rights in Technical Data and Computer Software), as applicable.4 R3 p& _/ b( z1 e2 W
- ;;;2 y* y \' M" Y
- ;;;.3 @- U$ M0 k( I2 m! e% V# R
- ;;;
5 c- A8 t# Z0 `2 e3 d9 E5 q - ;;;----------------------------------------------------------------------------
1 v+ K. R1 D' \* K. C1 ^* o4 `' j - ;;; DESCRIPTION
p* j: J, R; I- Z+ k) F - ;;;3 `$ b$ ?3 {' G: r6 e
- ;;; This function allows the user to get a listing comparable to the LIST, ]. N5 Q! J# ^; Q. q. [$ x
- ;;; command for most objects. In addition, most object fields in the
1 |! u+ O1 {7 Q, q" s) h - ;;; dialogue box are editable. Points can be specified dynamically by/ t5 L3 \+ `5 ^3 X( P# u7 f; T
- ;;; temporarily dismissing the dialogue box. Each object has a unique
) N: ~3 G; B7 @ k" M - ;;; dialogue.
; p7 w$ j8 @4 j0 K6 t - ;;;
% M4 B( v5 x6 z% k; P7 c, Y - ;;; Naming conventions
% o8 g3 m" L: Y8 U+ G2 `5 ? - ;;; Long function and widget names may use an underscore "_"$ D$ M) H. d3 }* k
- ;;; in their names to make them easier to read, long variable
" ?% S ^. E0 o/ b6 M - ;;; names use a dash "-".
! t% n8 Z L# a$ z0 K - ;;;----------------------------------------------------------------------------
& f1 t- R$ }. P - ;;;----------------------------------------------------------------------------
2 o1 G" T. c8 R4 N& y7 v - ;;; Prefixes in command and keyword strings:3 E L8 n, ]5 X9 _
- ;;; "." specifies the built-in AutoCAD command in case it has been7 a$ y4 ]) B+ P& e1 j! s
- ;;; redefined.
- }# v& R$ c% t: _% m' w* T; H- b - ;;; "_" denotes an AutoCAD command or keyword in the native language, {+ E7 G3 |% z5 j. B9 v
- ;;; version, English.+ b% k' |& z% w- W/ c: I' Y
- ;;;----------------------------------------------------------------------------
0 |0 @- c, V/ a3 o - ;;;/ I% B/ ~/ z, T% M
- ;;; Avoid (gc)s on load to improve load time.( z6 [4 O+ d9 v' D
- ;;;9 C0 D7 J* C6 V" k. D3 {
- (defun do_alloc (/ old_allod new_alloc)
' O; f5 F2 M! `1 b1 @ - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))' M/ @0 ~" n( b! h
- (expand (1+ (/ 17000 new_alloc)))
6 T) Z' F; D4 h3 e. p* G - (alloc old_alloc)" W& \1 z6 n6 j; d0 B. h
- )
9 Y- R7 }4 ?) H - (do_alloc)
) k$ O1 V, Y( Q: I. y0 {5 { - (setq do_alloc nil)8 {# z2 S! N" B b$ L/ Y
. L2 H- U0 m) f, b- X. j" r- ;;;
) D* E* ~7 m& a - ;;;
: N2 |* @: H* C4 W7 r% s4 t - ;;; ===========================================================================8 p" s0 O: p; W" ?) R z- J+ [
- ;;; ===================== load-time error checking ============================3 w' V5 v+ |* b8 L5 X
2 P3 D a" ~! F9 ]2 S' ^6 x- (defun ai_abort (app msg)7 d( i8 V1 H w; `0 L1 O9 f
- (defun *error* (s)
5 j9 o5 O/ O# M0 d/ A% |8 {) Z - (if old_error (setq *error* old_error))
8 a/ h M1 T( H+ w) Z7 K - (princ)8 n" J6 Q! _; R3 T
- )0 t- \$ U6 r! u& W0 v
- (if msg9 n( {$ X4 u9 H
- (alert (strcat " Application error: "
! Z- P- D- R1 x6 F) t* l$ l/ V4 D - app
# ]* Z, y* Y' \) ?! S - " \n\n "/ f9 p# d" {" X O0 C
- msg& e* D: \0 Y& \
- " \n"
! P" g6 Y+ _$ q4 Q' y6 B/ K" Y0 d - )8 H- d! r: u: M! ?& Z% Z$ O2 p
- )
8 N9 k$ n' Q7 M4 u2 {9 p - )7 v$ j1 A! _) K9 m
- (exit)/ t, P) m2 D+ r/ w9 B" b
- ); B: p! c2 u4 @
- U3 e; A3 e0 y3 T6 \
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,' ~0 S/ h n3 I
- ;;; and then try to load it. If it can't be found or can't be
; K |' b S2 U/ w7 n) z - ;;; loaded, then abort the loading of this file immediately.
' i1 @, ?( d" [- X4 e
% |# I* {6 V! W- (cond
- u* h4 w5 b1 }' J - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.2 F p/ A! a1 X* _) ~
% q: k4 b' Y3 ~" ]' @8 l- ( (not (findfile "ai_utils.lsp")) ; find it
8 ^; r, e1 h8 h6 I5 ~! E5 \ - (ai_abort "DDMODIFY"
( A% }0 O( v; k1 D% z8 J - (strcat "Can't locate file AI_UTILS.LSP."
) u$ i9 p7 w. _& B - "\n Check support directory.")))
# A7 B3 U7 L8 I$ h9 B7 `8 {& | - $ U! {9 ^# V0 ?+ @3 X+ n8 s
- ( (eq "failed" (load "ai_utils" "failed")) ; load it1 X. @% |( v/ B7 {' V. ^
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
* g9 W" `' n1 \& r4 T - )
5 L* }- C8 ^% Z0 u4 D5 n
v- ~" X7 J; R7 D! T: U V0 N- p0 D- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can' q4 M% R$ \, ]6 n
- ;;; be assumed that all functions defined therein are available.
$ x, c( E. }6 }1 A$ N( q
; o" R+ n) m) e- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
& y; f2 ^5 Q4 G, S) U/ ~) Y - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
. Q9 p2 \7 Y/ N) E - ;;; does not abort the running application itself (so that it can
' h$ ~9 b; s2 v% f - ;;; also be called from within the command without also stopping4 X' @: @+ |3 x* u# h
- ;;; an AutoCAD command currently in progress).
4 C+ V0 Z7 U" V1 p% g1 [
; J* |8 Z8 i9 l. [- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
1 {; ?9 u5 U* n - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
+ D) o, @0 i( l: a5 V" Y; ]8 y - ) ; ai_abort's alert box dialog.( J# N/ P. p; h3 F* ^* v
' ]2 _+ g* C3 n- ;;; ==================== end load-time operations ===========================
' h' \# _4 ~( @
. F, V) G( J V8 ?- ;;; global variables' [( R( ^9 A9 n. o+ ?' a' S
9 M; {+ P t# ~6 U- (setq hatch-elist nil)7 n+ \, }6 S, Q
. k. O b: Z' H* p- j6 R- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are& z/ a4 q1 u/ I6 P' I! r
- ;;; assumed to be available.
% Y" y h( n4 \( s( P, \ - / s# d) y/ G" L
- ;;; Define and encapsulate all subroutines that are declared8 y1 }8 s* [8 y7 z7 D# F8 m7 e1 C/ A
- ;;; locals of the (ddmodify) function./ k9 u$ `( v) _0 o7 m
- 6 n) y% a6 H4 k$ A W1 Y
- (defun ddmodify_init ()5 g% }+ l6 y1 W' L5 T
- ;;
! C4 Y. P# _4 U2 u# ~% P# v* H - ;; These three functions modify the enitity list for common properties. Since
# ]# z: p! M' Y - ;; color, ltype, and thickness are absent from the object list when they are
' K3 Q: i( ^1 i ]! O - ;; set to their defaults (i.e. color = bylayer), a simple substitution using4 Y& m% b+ s, u# g4 D! ~- c
- ;; SUBST is not possible.
0 D9 g1 p2 k& Q% G# U3 _ - ;;, c {1 B/ } z# t w2 F. \
- (defun modify_properties ()
7 t/ \* h: G& w0 E+ V: ~ - (emod ecolor 62)
, r- G, W7 j8 s# K( j0 t [8 O0 U8 { - (emod eltype 6)' }: b4 P G+ R7 T- L: N# X/ \
- (emod ethickness 39)
0 X2 _. t$ i) T# g# r8 S* E; ? - (emod eltscale 48)
6 v4 F( \# N, ^/ {" Z - (tempmod elayer 8 nil)9 D" Z1 b2 o* b p! f
- )
; N3 M) A( r+ [: w2 k2 {. P - ;;
9 m4 P! V0 g; [. e - ;; This function is used for modifying common properties of the ACIS
9 b. h6 {9 h% T; c0 t" a, U4 x5 g - ;; based geometry objects. Thickness is not valid for these objects
5 V9 [: V$ [6 b7 b/ y- g - ;; so it is left out.
9 V) d" U8 d( z - ;;
) f J1 C5 T7 }. _ - (defun modify_prop_geom (); g, O, D, d: H' r: j
- (emod ecolor 62)3 g( x+ e, @' e/ K3 U
- (emod eltype 6)' F! O* a! @. Y+ ~3 ~7 B
- (emod eltscale 48)/ f4 P7 }$ a7 D( p" M
- (tempmod elayer 8 nil)9 H! t7 r: @( \: p' n' d
- )
3 Z/ n/ O* c. T
+ O* v+ \& }+ W& F1 ^- (defun emod (value bit)
( a* f6 G; z0 g! { - (if (= bit 62)1 ^( V' k/ x+ I3 f" v# e9 Z6 w" {
- (progn5 W. D9 Y, t( h0 B6 N3 \
- (if (or (= value "BYLAYER"): Y$ X: `7 N H/ l: A
- (= value "BYLAYER")) (setq value 256)) N9 e8 l7 g5 @& J* s
- (if (or (= value "BYBLOCK")
* f+ O3 z" e1 p5 b7 p. E9 W - (= value "BYBLOCK")) (setq value 0))
* c: \: N1 P- Y( n - )8 O' i( w8 \; }6 M! S/ j" h
- )
; \" N. s9 ~5 n5 S - (if (setq oldlist (cdr (assoc bit elist)))/ { t9 h7 C% q$ k2 A
- (tempmod value bit nil)/ C. B' m) j, J
- (setq elist (append elist (list (cons bit value))))
5 l `: e. I5 ^. m7 g# O - )
( c" x5 o' ]( k - )! N: ]% m6 }7 P. }
- ;;# i2 K$ I% |9 f3 ~5 P/ s
- ;; Resets object list to original values. Called when the dialogue or
: C) O0 Q8 |" o' I$ R - ;; function is cancelled.
; H$ ^: ^ G2 ?* Z/ G p/ i - ;;+ z! S5 H5 J+ M1 r4 |, a* ]% R$ ~; R
- (defun reset ()
8 R4 X) n+ m# |7 F( J4 Y - (setq elist old-elist
. \3 B& C+ z& @ - ecolor (cdr (assoc 62 old-elist))
& }5 n3 H0 m- L7 X5 W - ethickness (cdr (assoc 39 old-elist))0 C0 ?. ]8 V6 B' [) g7 R
- eltype (cdr (assoc 6 old-elist))6 s; v c2 w* {4 ? ~0 o" `
- elayer (cdr (assoc 8 old-elist))
: ~ T5 T+ f/ K8 q$ {% V - eltscale (cdr (assoc 48 old-elist))
( @1 ?1 ^2 _8 v - )0 @9 e" z8 l: l8 M
- (if (not ecolor) (setq ecolor "BYLAYER"))
! F! R- j/ X; l1 x& O - (if (not eltype) (setq eltype "BYLAYER"))9 z: l; p# d+ M0 U6 a( l
- (if (not ethickness) (setq ethickness 0))
4 T' k e! i) v! i L6 v; A, V - (if (not eltscale) (setq eltscale 1))
/ Q2 z; `5 R- m; m6 i - (modify_properties)
: T. j4 I" u8 G) L) L. w, R) j9 x& t - (setq reset_flag t)6 R" ]7 l8 y( J+ Y( {
- (entmod elist)
: \( S7 J: R# H$ z& T O - )
% D( X: E M2 z1 c - ;;
0 C( r+ F! E |% B9 Y' H/ n - ;; Modify object when dialogue is temporarily dismissed to reflect latest. i+ n7 p/ g: l; a9 y
- ;; settings of dialogue. It converts the point from current UCS coordinates to
0 p f7 Q& r4 E( \) w* y$ ? - ;; the proper object coordinates (world or object).! b# L, h; ?2 C' c
- ;;' C c$ O/ |# F
- ;; Arguments: value - in current UCS coordinates
" E$ s/ Y) K9 s( X: K - ;; bit - object code (i.e. 10 for start point)0 E" I% L; }- Q
- ;; ptype - point type 0=world 1=planar
( X, Q0 N- g& X# w x - ;;
9 B% R8 a" g- ^+ X - (defun tempmod (value bit ptype / newpoint)8 d( i; _; \( M8 J1 @" V, Z
- (cond
) v( Q% m9 H1 A2 J" a - ((= ptype 1) (setq value (trans value 1 ename)))
3 h! H9 y: ? j F+ J2 H. z: R2 U) p0 j - ((= ptype 0) (setq value (trans value 1 0)))
$ ?7 u) |$ L9 O7 R1 v% m% W - )
- y- X0 L+ c3 c7 Q5 _ - (setq elist (subst (cons bit value)8 t8 e( e+ W* c6 q% U H, n7 ^ E
- (assoc bit elist)1 g" d4 k8 B" v2 s
- elist
# R* S c! m" j3 S( Z - )
( _ {3 A! a1 ~# |6 W - )# s2 b4 k$ f$ B9 p
- )
3 x4 A0 `0 A" Z* ] - ;;
& [5 Z, T3 U9 B& [( i - ;; The following functions are called after a dialogue has been temporarily
! d3 t( @8 w o% _7 e8 ?& Y - ;; dismissed and the user is selecting a point. If a point is selected the3 D$ d4 X, `% Y& C: |
- ;; object list is modified and new X,Y,Z values set. If no point is selected
8 z3 m; U! L5 |2 d+ T* T# L - ;; (null response), then the point is reset back to its previous values.
$ X0 t; @* W! u, d8 ]- r) T - ;;0 i- i, {$ S" [6 f" U6 H
- (defun ver_pt1 (ptype)8 T+ s3 d* s8 n0 o% Y, U
- (if pt1" b7 ]; h5 c; V2 ?9 J9 \1 S- E
- (progn3 b8 M. B5 a) A" k: w2 D- g" e$ [
- (tempmod pt1 10 ptype)! z& w' j+ W/ k
- (entmod elist)
( P% D9 l% k; }1 y6 [ - )1 |% r3 {9 V9 D5 M5 b& f& Q2 K
- (setq pt1 (list x1 y1 z1))" g3 F7 ?! q3 h' B5 f+ `" k M! ~
- )5 ]9 E9 a* E0 v% s3 L# _
- )
5 j' X7 O( N8 n2 z/ U - ' k9 f6 L3 s, C. j& W8 |
- ; (move_pt1 <ptype> )
5 p0 _* L) }2 c - ;9 E1 g& X# n1 @1 [2 G
- ; Called in liew of (ver_pt1) to translate block insertions which
+ y: L' o$ ? l; h; B: X2 r8 O# ^( d - ; might have variable attributes attached to them. If the distance
* ~8 R x5 _6 I, e" ~ - ; the block is to be moved is < 1e-6, the move is deferred.
* I, i# b1 J; z1 { - - X% v: {* x- V$ ^6 @
- (defun move_pt1 (ptype / basept hi)5 y: _' i: I( Y y6 X. P% H+ V
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))6 e# j6 A& l6 f: u) I; J" J
- (cond
0 b, o- B5 w1 x h& P( n - ( (not pt1)
8 Q0 x$ U/ F* H I) @ - (setq pt1 (list x1 y1 z1)))6 P9 O! c& p, z
- 4 s u# g Q( B
- ( (> 1e-6 (distance pt1 basept)))
8 h* t2 x: l7 w- F- E+ Y0 ` - ! |2 x. i, [ b' t" @, t
- (t (tempmod pt1 10 ptype)
: O3 V( ]5 H- H. c0 M A - (setq hi (getvar "highlight"))( E$ D7 o2 }/ L; F! m) a
- (setvar "highlight" 0)
! z2 ]2 h! b3 ^- q' L ] - (command "._move" ename "" basept pt1)4 @ t2 W& r0 }3 y( P3 i
- (setvar "highlight" hi))
* M% z3 N! l" f5 W: m - )8 D! j; u8 g4 H7 {8 v- f! l3 O
- )/ k5 _5 K* i9 }
0 Q* e! P7 o; E# X8 r: S2 P5 n+ U/ \- (defun ver_pt2 (ptype)0 _ E) x: v* Y" B5 o2 ?; y' T, C
- (if pt2' I4 m9 Z! G0 m3 G" C0 n0 b2 n! k
- (progn1 u% ^+ H' h5 U
- (tempmod pt2 11 ptype)' m$ J$ ]% {+ y2 F" R4 M- }0 ?
- (entmod elist)4 B+ ]: k, Z/ p5 ]2 Q. i, A+ C
- )+ k2 g3 a. l$ t1 o2 f* Z3 C
- (setq pt2 (list x2 y2 z2)) U9 O2 I3 p3 j' h' X8 }
- )
$ u$ [7 \* h7 s6 q - )
6 g% F4 N( G* [/ U+ _; r
: T$ ]$ F: y4 |, r- (defun ver_pt3 (ptype)
8 G4 e: o# N* u" C - (if pt3
! G7 I: m6 |' `3 t4 |: x1 ?9 W - (progn; |3 Y- A! d2 J0 M, P
- (tempmod pt3 12 ptype)! d) A6 |; u h7 s" e
- (entmod elist)# D: V, _( J! u. f" i. l3 |! N
- )" P5 V9 F8 y4 ]& L6 j
- (setq pt3 (list x3 y3 z3))- g9 ]5 a' y. L1 }
- )0 @+ `+ C" [- t9 o& M9 T% j; u
- )
' l" z8 g" A2 C5 W$ E' k
; u0 U5 p" V. J. C$ ^9 `: _7 ~; q- (defun ver_pt4 (ptype)
, _8 }- l4 @9 g, s& c - (if pt4
/ A" @8 ?# O3 D' ?7 E9 j0 s; S - (progn
: A1 ~) _' G( n; s* ^0 r - (tempmod pt4 13 ptype)/ g( F5 c7 v0 n2 ]* x
- (entmod elist)
. k; B3 e' ~. Q! G; O - )
7 R& E) t( a5 r. i$ g" @; t( s - (setq pt4 (list x4 y4 z4))
8 ]* d; D6 P/ n) ~ - )+ K( t3 A/ \) N/ ^5 A% ]( [
- )
, X! |9 P- ]1 w, J - ;; Xline/Ray8 P. k& a- n( n( w. q# i
- (defun ver_xline_pt1(); a% Y$ b- O2 }/ F( S! w6 s4 E
- (if xline_pt1
* B/ C- [! Q6 b" r$ I9 n - (progn2 |* B+ {0 z3 ~3 k( @% J
- ;; convert to WCS.
M: ^/ q: ~! [% m$ L - (setq value (trans xline_pt1 1 0)); _0 i/ g6 \. I
- (setq elist (subst (cons 10 value). c, J& _( w; E" a! |! U
- (assoc 10 elist)
0 _% n5 u6 K4 ]) d# n0 Z- a4 ? - elist0 s1 m( K8 p: S( S
- )1 a& n7 Q! }" b6 l
- )9 w8 ?, a, V' m! R0 k) h# T
- )
) ^3 V7 |2 @/ W9 T* J - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))( l: q/ t3 ]2 N9 L' c- L
- )
5 g: J( [, d2 ]* D) f - )# M- L5 w1 J6 R/ H/ k
- ' ^/ c) c$ N/ I2 D$ C" ]
- (defun ver_xline_pt2()
- T d) Y/ ~3 U- K1 n; k8 ] - (if xline_pt24 g t! O/ X% T; _/ W1 L
- (progn
/ a8 y5 {* |/ E1 K" S - ;;& B) }1 k5 d D" t; G7 H, l
- ;; Calculate new Direction Vector WCS, o% C3 O M- U
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
; P: R- {1 I) D/ X5 Z( j, f4 I - (setq temp_dir (trans xline_pt2 1 0))
: }8 ~# @7 }( {6 d - (setq temp_dir_x (car temp_dir))7 L6 y- m/ p* L
- (setq temp_dir_y (cadr temp_dir))
$ F5 M$ W4 n: W$ r, i - (setq temp_dir_z (caddr temp_dir))- a- u5 s% L! ~6 ?# D$ `
- e' u6 x9 T; o8 `# U& X) f
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
2 v+ l; q) H' x1 U - (setq temp_xline_x1 (car temp_xline_pt1))* W2 ^9 ]' m+ z* V" O0 {
- (setq temp_xline_y1 (cadr temp_xline_pt1)) N4 u( |! V# E; @. n) Z6 u
- (setq temp_xline_z1 (caddr temp_xline_pt1))! H0 F# m# h% {
. h4 N3 R" O$ W$ ^. W- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)" V/ C0 g0 Z! j) z' l
- (expt (- temp_dir_y temp_xline_y1) 2)
* X) H' ^+ m1 N. j - (expt (- temp_dir_z temp_xline_z1) 2): q g1 d1 b4 L" E9 G
- ))): g% _& f9 M9 y* {" q/ a
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
) e, ]5 _& D" A- y - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom)) F1 v* g6 Y% C$ B3 J. Y
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
) ~6 k! c- C$ b4 C0 P$ @& \8 l - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
/ h9 R% a; k+ h- r* u1 z+ U8 y2 Z, W - (assoc 11 elist)
: A: C# F8 \; G2 Q; V - elist
6 L; H1 ?) W' X - )
2 y4 L* e9 C& e: W2 F6 n - )
, Z5 p; y5 l% Q9 R+ Q, ` - (entmod elist)3 A6 L4 G/ p6 i7 E9 |# Z" K# E% A
- (setq xline_x2 (car xline_pt2))
9 J# L& r$ p5 A - (setq xline_y2 (cadr xline_pt2))% p: H# B3 h' e8 u7 p6 i
- (setq xline_z2 (caddr xline_pt2))( p( O; C, \) d- b
4 A# e: V0 K. W/ @/ w- - J: N1 r, w- p
- )
$ R4 b% B3 [/ d5 t! U - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
- Z4 q7 s$ R; ] {4 S - )6 b, c, G: x7 ~, d# K3 w0 z' Z
- )9 [$ F8 z. Y, ^, X3 x/ ]
# `; m, P" j; t6 N' M; x- ;;
* q. b9 L2 G, v, A# O - ;; Common properties for all objects+ j/ G/ |; t. o ^
- ;;
; R1 d! t8 m) N; d; e - (defun set_tile_props ()
: J4 l* c5 ^+ ^3 c - (set_tile "error" "")3 S" J3 T6 L1 ?- }
- (setcolor)
3 f5 F: O1 C( r* U5 c - (cond& z3 D7 K U, W
- ((= eltype "BYLAYER")
s+ i; }$ ~ L* j( \) x+ J - (set_tile "t_ltype" (bylayer_lt)))
" F6 ]7 B% d: ?5 B* E7 D/ g6 l1 s, l - ((= eltype "BYBLOCK")6 o8 M$ k$ T* U9 R3 Q! N8 m
- (set_tile "t_ltype" "BYBLOCK"))% m9 a) S4 H' r* j8 Q
- (T (set_tile "t_ltype" eltype))8 K- c, C1 V6 Y# g3 P) t2 V
- )
9 s) g8 Q, F$ _* D, \ - (set_tile "t_layer" elayer)
2 f- j: a3 ]" W/ |# ]+ J3 Z! A! P' @ - (set_tile "eb_thickness" (ai_rtos ethickness))' z. z z( i. C S
- (set_tile "eb_ltscale" (ai_rtos eltscale))
& c5 B) x: E9 P; L) ?; T - (setq which_tiles (ai_common_state etype)): i7 Y0 X: v4 C9 `+ o( J9 x
- ;; Disable tiles if need be...
- ~" r! E) o' ?3 P9 k: H7 E - s% E1 }( ^% {, Y7 I$ X7 z. f" h
- ;; Layer Button and Text Field$ g) g1 W6 F& e! X7 P7 U+ b
- (if (/= 1 (logand 1 which_tiles))3 J" i& f, Q+ F+ m9 q" Y
- (progn
' [: Y1 ]7 B( ` x. ` - (mode_tile "t_layer" 1)
' j5 D& S0 Q4 d# N* _# `2 ?7 k - (mode_tile "b_name" 1)
: r/ N! X- c& ?$ z - )0 d" X, w6 n6 N/ R: u G
- )
+ R- ^; Q4 `; q { - ;; Color Button and Text Field) u" |; D1 r# B( Z' x. G
- (if (/= 2 (logand 2 which_tiles))
" ?- {. j) O1 E/ @: N; M7 w - (progn+ ]; A6 \ V+ C7 t
- (mode_tile "t_color" 1)
4 w$ V) \, _/ {4 ^) k$ U& m - (mode_tile "b_color" 1)
7 |* f2 U0 G* @% o& W0 f4 [ - (mode_tile "show_image" 1)
8 v3 |6 N# y' _ - )
# d6 Z# y. v1 I" Y7 ~/ y9 X6 ]8 f - )
( h4 s$ P; x ^: ?9 e4 r6 P' X - ;; Linetype Button and Text Field
$ z/ F$ J& O# S - (if (/= 4 (logand 4 which_tiles))8 Z M, z6 o* m4 k
- (progn8 n$ s6 X8 Q" r! |3 g2 g! e+ u @4 N
- (mode_tile "t_ltype" 1)' R' y; ]6 Z6 _8 h6 \
- (mode_tile "b_line" 1)
. S7 M1 V( b' _& b' R- j - )
# D: f4 @- }4 M8 F - )
' S. ]' D1 v/ A( a$ v - ;; Linetype Scale Edit Field" Q2 N7 U& O/ u
- (if (/= 8 (logand 8 which_tiles))6 ^$ p' N l6 H
- (progn5 o( X: Z4 d, u- O6 D
- (mode_tile "eb_ltscale" 1)% L l8 V! H" u2 U5 [0 s
- )
/ o" P- H# J% |4 u1 }; m - )% {1 s' Q, w" B+ x
- ;; Thickness Edit Field.; E& |/ @' c( m4 M: T
- (if (/= 16 (logand 16 which_tiles))
( h1 v5 b% V2 ^' e0 j$ f - (progn
- ~# w$ T) z! z1 Z$ G& H1 a - (mode_tile "eb_thickness" 1)' Y! z! C) i% I
- )
: G- |$ J# R; i0 r* q3 g. } - )# O+ j! [5 P6 n" [* c+ B
- )
( o" Y" ?0 y1 b/ g( L* y3 `) U - ;;1 r0 m4 [9 X' D" Q- Z6 ?8 V: Y$ r" w
- ;; XYZ Point values for all enitites) L- [# S/ |: U! H% u8 T: f, Z% }: Z! F
- ;;
/ t6 y2 v0 J% Q, i, | E) D - (defun set_tile_pt1 (ptype)! G- Z+ g0 v S0 c" p- W
- (if (= ptype 0)* D7 n- Q; l8 n; Z' L
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))/ H2 ^% K9 F: f2 b, Z
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))% V$ a2 U8 E T
- )! _) ^7 r4 W7 x
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))) F. {' z9 f. c0 Z& g$ c) M: C
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))7 F" A1 k7 w) n4 c
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1)))) i. d: j0 B# N: o+ Q
- )
t7 p3 n; Q# c$ O% _; s - (defun set_tile_pt2 (ptype)
4 v( U) W$ B/ Q" R9 v& g% {2 A! n - (if (= ptype 0)+ x* T8 R4 c8 a+ h) s9 r. z
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1)), o/ K6 W0 P g( D# G, z
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
$ K0 |; ]! f6 V2 P - )% K$ U% o$ q/ `, _2 r. p d
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
% Y/ g" f8 P: j8 k& l# M& B - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))+ n8 g4 |: s$ p; L6 P G6 Y( S4 d7 `
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))( X1 x8 R" Y* J! ^) o
- )
6 V m. N" B0 [ - (defun set_tile_pt3 (ptype)
( V1 [7 t. S% L5 V+ G6 t$ q$ u4 w - (if (= ptype 0), x% n5 W8 X! A8 `: k! k; w. N
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
8 A$ ?1 ]# X" y5 k - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
# w( R" Z5 U. t; c" z( E - )
$ x! X6 q" r" e9 i3 v2 A - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
$ N- \7 X9 L" R3 s, Q - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))$ R8 [& M# S& f( m+ s0 K
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
9 ~& d$ B* Y7 Y' V1 l B, I6 t - )0 d& q6 G4 l1 v
- (defun set_tile_pt4 (ptype)5 I- v, \. ~: [9 z+ }1 ^: j
- (if (= ptype 0)$ U8 C( T8 l, u2 l
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
8 W; d' K) i" |3 D% X% U - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
( w) r. J+ z" S5 J' ~3 S& o - )# F( k1 [! y: n& g g3 R
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))$ r: Z5 S! x' ^# K. k3 `
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
! y( x3 u: i6 r3 K - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))$ C% r+ O- r% l
- )4 p3 S% A. ~1 C* W* S3 c3 [7 o
- ;;" M: Z$ S, d/ N9 n9 e
- ;; Xline/Ray. V7 V/ p" p, A) y5 }
- ;;$ X" m$ r/ C# J# o: M
- (defun set_tile_xline_pt1 ()
+ \- i) A0 ]$ f% Y9 a* I9 i' M - |, c% y* K6 N" |% F) K N, V
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
) C; X' G8 Q$ {6 R7 c - : s$ D/ A2 O: J- Y
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
4 W( e/ {7 P% e+ s d+ R - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))# i4 i D0 E" V: W
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1)))), S% @2 ~2 D. [# v/ k3 w8 L: y
- )" A7 U% C& b- P( Q2 Y+ s9 k' b
- (defun set_tile_dirv ()5 v7 S) } ?7 N
- ;; Convert 11 group to local UCS (displacement)& h' T, ^ H% z9 Q* H8 q
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
: ~5 d! O/ ~; X7 m! V3 j
v8 ]& T& I9 B9 A5 s8 x- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
+ A- I7 V+ R3 I, p3 Y/ |* z - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))( T% z; [7 O T) s' m
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))& e$ ], Z3 y" H' a! v2 {
- )& d# R* D n. Y4 d
- (defun set_tile_xline_pt2 ()
& D9 v n) D$ ~1 q) U - (if (not xline_pt2)8 t7 w$ m7 J4 k0 Q. N
- ;; Initial second point is Root Point + Direction Vector! c$ D5 [1 e" r4 _
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))1 k+ Z* C; U( l+ \/ o
- )
7 E6 x( b) ?" f$ ?% _ - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
6 B4 {: U* j; t+ C" O - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
|1 J: r, i( _* r5 B2 ? - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))" z8 J. d$ j# ^% ~
- )2 b9 _; I. _- ]; l, C
- , p8 D m% ?: f# G. m) L: ^$ r; `
- ;;* ~) w; m( m3 ~; f* Q: |7 N
- ;; Handle for all objects
3 r2 N% s) [7 ?: ]5 B' W - ;;. k# ?" F( n8 f+ c
- (defun set_tile_handle ()) W+ u2 l. j/ {! ~% J' q
- (if (setq hand (cdr (assoc 5 elist)))
" M3 c8 ~9 ?7 p, S6 x7 ~ - (set_tile "Handle" hand)4 o/ a/ t- r9 T) R. ]1 d1 c
- (set_tile "Handle" "None")
- @ M+ \0 c+ Z5 @ - )
6 x8 Y7 u- \9 r - )
% b" t5 M& X& P( {# C3 O) O - ;;6 _. k0 a+ \9 _& L/ ]: r
- ;; Radius for ARC and CIRCLE0 V, @; p5 \* t0 S1 {5 w) k
- ;;8 [ L: V. p6 o- I; @$ v
- (defun set_tile_rad ()
/ ^, q- @/ ~+ `9 Y) `1 ?# j8 g" L - (setq radius (cdr (assoc 40 elist)))2 B& f0 s% z) k
- (set_tile "radius" (ai_rtos radius))
1 x. j& i& P0 `5 F% g! N) f - )
- J! U3 n `8 q: F. K0 f# e+ K - ;;* B; x& f# s" m N2 Y
- ;; Start angle for ARC
- Q9 G- X q x - ;;2 h7 z7 t: ^: u' {) b* {, M5 Z6 Q
- (defun set_tile_stang ()3 o# W* o2 t& ], g
- (setq st_ang (cdr (assoc 50 elist)))9 e. Z T5 V4 ^" l+ P, N
- (set_tile "st_ang" (ai_angtos st_ang))
" M, T5 x: e, G, n - )1 W2 Q* m5 X, \. \" U# H0 i
- ;;
' o0 w. B# z; S) D5 O4 o" g - ;; End angle for ARC
. P# D1 k+ _. ?0 w. D0 ^$ A - ;;& w- K! ?# l4 _, \6 ~1 W+ P
- (defun set_tile_endang ()8 y% {+ r! U7 M7 f4 _* i0 {
- (setq end_ang (cdr (assoc 51 elist)))3 h; T/ ^7 C9 i& U
- (set_tile "end_ang" (ai_angtos end_ang))
7 I, b# [/ K% {1 v. E$ f. D - )4 B3 R( P* d; N5 H# K5 w% y
- ;;
- C7 V3 p# `1 C0 h- r. m - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
. M& p% r% M; P - ;;
/ q0 r2 s: P& a" V+ U$ N7 G5 ^, I2 C - (defun set_tile_rot ()
8 V" c8 U; A3 w; O: N; t6 h. T - (setq rot (cdr (assoc 50 elist)))( m/ K; S" }3 T+ k/ E0 w" v
- (set_tile "rot" (ai_angtos rot))9 j" M6 u/ i, O( S
- )" b5 \- e9 j5 h5 y
- ;;4 v: p! Q2 w, }- ~& R6 C
- ;; Height - Text, Attributes and Shapes. X3 ]2 w: J! n$ T. r
- ;;
* Z1 `+ S. M" y% Y8 @. J$ K - (defun set_tile_hght ()( C! I% I# _, i3 _/ w \* ^5 _
- (setq hght (cdr (assoc 40 elist)))' P( l d% f* l5 s
- (set_tile "hght" (ai_rtos hght))
+ X- O2 P8 A5 E- o% E' X - )) R y2 L2 v! w, N C V/ Y `5 q% Q
- ;;, K3 w5 z( c$ i% V) b2 Q
- ;; Width Factor - Text, Attributes and Shapes
: |' O4 v$ {# O3 ]: C: D1 k - ;;
! u# f- u6 M$ g1 L. M& D, ~; L- ] - (defun set_tile_wid ()
5 f E" c* b" o, G8 l6 k6 ?" N6 m# j - (setq wid (cdr (assoc 41 elist)))
6 ?+ z1 B) C. ~! {3 a - (set_tile "wid" (ai_rtos wid))8 t4 x* c% E9 S) _, t/ v( E! M( O7 H5 n
- )6 F+ }7 H$ i5 ]5 t1 h1 p7 z
- ;;, J W. o/ u1 G5 b- l0 ^8 {
- ;; Obliquing Angle - Text, Attributes and Shapes6 I7 H; A2 l' C2 D4 a, [
- ;;
: b' i. o5 \ P* f8 ~2 J) W$ W0 c - (defun set_tile_obl ()
! I! H2 c6 F, h' D. P$ k2 Y' Z - (setq obl (cdr (assoc 51 elist)))
3 r# {5 q5 \6 b7 ` - (set_tile "obl" (ai_angtos obl)), G9 Z2 @ `, z0 w) @: g0 f* q
- )
" a8 M/ {# S d$ a1 x - ;;
/ i& k+ h3 L- n$ F$ i( a - ;; Text string7 _ P) H4 R% ]' p& u* B
- ;;$ l1 I) r- {* e u0 K7 X f# O# @: M
- (defun set_tile_text ()
0 U( H1 W) U% J! h; t- u/ F; S - (setq text (cdr (assoc 1 elist)))
/ B$ H, d1 m, p - (set_tile "t_string" text)
' @! e1 W8 b. x: h2 }- j - )$ M, C# a7 l+ b" E5 N% p
- ;;
2 y9 U3 K* X! l. s: |7 b - ;; Attribute Tag
; P, ^! p' p$ s9 l+ u - ;;
4 q1 Y7 D7 M; E1 O6 m$ \3 \ - (defun set_tile_tag () y, T4 \0 n4 k9 o2 X
- (if (= etype "ATTDEF")
! f: A( C: O) g' j0 f7 } - (progn
! l3 y* _9 v8 D2 ~2 a( N9 `" J/ b - (setq attag (cdr (assoc 2 elist)))) X% A+ `, j. N- M2 F+ m6 p. ]1 A
- (set_tile "tag" attag)1 \7 V. Y4 I+ c) @) X* r. c4 j
- )
( b5 J) [) _ q - )7 r1 v$ J* R) ?8 b! V
- )
. m7 W6 d; }2 ^( h9 r; H7 n! m - ;;
. \! B) M! E3 a0 f; x8 V, z - ;; Attribute Definition7 ]. u# [9 L2 [4 q* u1 x
- ;;3 T9 c% l: X Z& B3 t; }
- (defun set_tile_prompt ()
' {% l9 ^8 Y3 `; h, V) ~0 c4 M - (if (= etype "ATTDEF")1 I/ X$ o: e! C* {. y% @
- (progn( ~3 }8 Y( R* V) z% M8 r7 r
- (setq atprompt (cdr (assoc 3 elist)))) b P- V# a2 \; E9 \
- (set_tile "prompt" atprompt)
- B5 ~# ^) Y8 `$ C, ~ - )
: d4 x+ D5 c! V. C - ) I& D* J3 o+ y, B& n9 ]$ j( W, A
- )
2 o, Z+ @6 J' j5 p5 V - ;;
# L E% U$ s% M - ;; Justification setting for Attributes and Text. Initializes% r& F6 M6 |' ~; u, ?8 a
- ;; popup list box
6 Y4 E+ [. o4 V8 z. @! x2 C1 B* ? - ;;8 x4 l& [- j& ]+ `, f9 @ r
- (defun set_tile_just ()2 u3 ?( {5 t8 t0 |1 k/ }
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment0 r, b4 Z7 F1 S: G( k
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
) E7 _0 [0 b9 w( z - (setq ha-prev ha)
1 p( T5 p+ L! `" |: o9 a( T6 v - (if (= etype "ATTDEF")
- e" _. n. B" B; b5 \ - (setq va (cdr (assoc 74 elist))) ; vertical alignment5 G7 B/ N+ N% v) D( m
- )
6 ?3 V1 G6 o% O* M5 M- {5 [ - (setq jlist
/ c8 ]$ ~& ~% V) t* C( f - (list "Left" "Center" "Right"
9 R5 c! |- j5 S" ~+ L1 R. Q - "Aligned" "Middle" "Fit"* s: d4 Q# I1 R7 N& `
- "Top left" "Top center" "Top right"
% e/ Y4 h# v# O/ m$ a - "Middle left" "Middle center" "Middle right"
) C) P! T9 p" f7 ]8 S8 m - "Bottom left" "Bottom center" "Bottom right"
) C. t$ R. ~8 k& i - )
, [! p' d. }5 L+ f8 I - )
$ b. M3 D& o" A, x1 K1 Y* G; ~. e - (start_list "popup_just")
$ v% _. X+ D: ^ - (mapcar 'add_list jlist)
' q8 ^9 l+ d0 n5 M - (end_list)% g0 M( D/ t' j0 P/ v0 ?/ c+ q4 j- ~
- (set_just_idx)
: j: u0 Q' p/ y' P( c - (set_tile "popup_just" (jlist_act just-idx))9 {% } r1 J, I, B8 g( D& O
- )- S* @- P& o! D6 @8 X" W
- ;;; p: e' U6 u- b) R! y
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
5 \+ W! c4 m- ^5 N6 P1 ~ - ;; box.
* T7 a6 d' O! l3 Q8 b2 U8 _- n# i - ;;
7 [ n' z9 _8 F* f/ Q - (defun set_tile_style (/ sname style-idx tlist)% Z6 O1 B! l/ @% q/ P
- (setq tlist (tblnext "STYLE" T)
. E( O( X# Z3 r; e - slist nil)- [& u2 g' D! ?7 u
- (while tlist- l# p/ R3 m) `; O" {' X" }
- (setq sname (cdr (assoc 2 tlist)))
% [) d5 |, q* U - (if (and (/= sname "")
/ ]% L. }# U/ O6 | d" W. c+ C - (/= (logand 16 (cdr (assoc 70 tlist))) 16))# E+ @8 m8 R @8 z0 M/ Z
- (setq slist (cons sname slist))); Z9 ~) S: e/ w9 B) ]* G& G
- (setq tlist (tblnext "STYLE")))# n4 i$ r5 ]+ F
- (if (>= (getvar "maxsort") (length slist))
7 s( U( H. h: b# C& |, A% J, a8 Z - (setq slist (acad_strlsort slist)) ; alphabetize style list+ r# u9 f! ?2 k9 R% _
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
8 D" E; B' g" t$ ~7 Q+ q
$ s, @4 q& K: h8 W- I! m- (start_list "style")3 @: l5 V9 X& d7 u9 `
- (mapcar 'add_list slist)9 q0 n) H% M; m0 ~9 z; }
- (end_list)
7 T \& j1 x( q2 Q# e7 } - (setq tstyle (cdr (assoc 7 elist)))8 n+ j- n- M, L6 C
- (setq style-idx (getindex tstyle slist))) R$ L& p' B: `6 z
- (set_tile "style" (itoa style-idx))% d8 N/ ^0 B5 ?" S* l8 E; l
- )) I/ i ]( T5 P; k
- ;;1 M) F5 q; m4 A4 l1 G: s0 R
- ;; Text and Attribute setting - upside-down, backwards
& b+ R& Z' [" [* G6 ?/ D% \& l - ;;
) z. T5 k+ m! b" Y, i - (defun set_tile_bk-up (): U+ a: J2 _$ D9 s1 @
- (setq bk-up (cdr (assoc 71 elist)))0 m7 g9 K$ K p; Q! W
- (if (= (logand bk-up 2) 2)5 h1 y# ~" a4 v1 r7 z
- (set_tile "bkwd" (itoa (setq bkwd 1)))
5 @9 \( n& I5 z6 k$ B2 B3 Y, w, H3 N0 S - (set_tile "bkwd" (itoa (setq bkwd 0))), T: ]! Q* _* ~
- )$ r" A Y% A6 K& x* a
- (if (= (logand bk-up 4) 4)
' @8 o+ ~& d3 o1 v" e) E - (set_tile "upsd" (itoa (setq upsd 1)))
2 o# F S1 V& n) S - (set_tile "upsd" (itoa (setq upsd 0)))
1 J7 E4 ?7 E' S. e) E - )
% v4 F5 Y8 H0 v - ); C# L: M* i6 i5 ~3 S: S
- ;;* V5 I" i( ]( I3 P {& Q" K3 |
- ;; Attribute setting - invisible, constant, verify, preset. k$ B5 H4 f- `7 V6 C9 S
- ;;
5 Q( m9 @' [& s5 t! p - (defun set_tile_icvp (). Z ^) r0 n- B. `& {
- (if (not (setq icvp (cdr (assoc 70 elist))))4 w; A: S2 A/ h* C$ y5 K% P
- (setq icvp 0)
+ t5 u9 a! K7 l! Q" u - )% R5 z6 l$ }! u) u& O
- (if (= (logand icvp 1) 1), D/ u4 ~$ i. _- M% g, G. f
- (set_tile "inv" (itoa (setq inv 1)))
% ]- E% ~# w1 q4 ~ b - (set_tile "inv" (itoa (setq inv 0)))
0 n" C3 R. ]/ W4 q; y; i0 x: `: W - )+ n- o2 n7 u' V1 |; U* C! L
- (if (= (logand icvp 2) 2)7 e' L# P$ A* O* E0 f- @4 c
- (set_tile "con" (itoa (setq con 1)))
9 a( C/ J$ j- }+ n; B+ X7 W% S - (set_tile "con" (itoa (setq con 0)))
8 _ i$ f" z4 q/ |0 t - )
5 p9 @9 F7 ~" W6 `. X - (if (= (logand icvp 4) 4). E4 f1 G" q" G a3 @' K% |" [! S* N2 ^
- (set_tile "ver" (itoa (setq vfy 1)))) ^. [* o8 ], @% W$ @
- (set_tile "ver" (itoa (setq vfy 0)))) f8 A% a% W, v+ j; x( K
- )8 M# [4 Z5 c+ W# j5 { y
- (if (= (logand icvp 8) 8)# r$ q1 D3 ~6 F- u8 f/ v9 ~4 P
- (set_tile "pre" (itoa (setq pre 1)))
0 v/ i2 r- ?# ~! s8 e - (set_tile "pre" (itoa (setq pre 0))). S( e3 U1 i. P. ]% p% d! \* x
- )) e" _; l6 B! E6 w- }& p4 v
- )4 n5 |2 q& A8 B2 _! @
- ;;7 Y' T7 B. Y2 q" `
- ;; Scale factors for block insertions
. _- V. |# P7 }3 J B2 ^ - ;;) n% {: l7 l0 E" W) [: h, }
- (defun set_tile_scale (/ temp)$ k h; G+ Z- n3 |
- (setq temp (getvar "LUNITS"))
) j$ A$ T+ C7 U6 B3 \5 R - (setvar "LUNITS" 2)6 I/ z( D4 B- ^
- (setq xscale (cdr (assoc 41 elist)))* W+ Z2 ]$ o- i. N' d$ J
- (set_tile "xscale" (ai_rtos xscale))
' }* m6 u8 s0 N - (setq yscale (cdr (assoc 42 elist)))* P1 f# x9 t1 |' Z
- (set_tile "yscale" (ai_rtos yscale))
5 A \$ H. F( F) [2 Q - (setq zscale (cdr (assoc 43 elist)))
% j3 Z1 ]- Q0 {. d; Z+ K+ @3 h, [ - (set_tile "zscale" (ai_rtos zscale))8 h, _3 v4 O4 c7 f* R
- (setvar "LUNITS" temp)
& ]) q# v' A, C! N" K: [ - )& |5 N- b8 G5 i* s7 w
- ;;1 m5 c% h8 \/ K) l1 x i% c' E: b
- ;; Rows and columns for block insertions$ @$ `6 m! l9 Y Y7 c& A7 H
- ;;* K4 o% ]. P8 M) A. l2 n
- (defun set_tile_rc ()9 J& x9 X {) ^4 P3 ^
- (setq columns (cdr (assoc 70 elist)))+ \' ~0 {2 C- a+ b2 f
- (set_tile "columns" (itoa columns ))
4 J# V) f* L8 v6 u, B- y( c1 \4 ` - (setq rows (cdr (assoc 71 elist)))
& }3 g% ]2 {6 S; h - (set_tile "rows" (itoa rows))
" k* }/ @; l9 b* ]) x' y - (setq col-sp (cdr (assoc 44 elist)))6 H+ v# n' b) _
- (set_tile "col_sp" (ai_rtos col-sp))2 A4 s0 }2 d" O" K$ Q9 p
- (setq row-sp (cdr (assoc 45 elist)))* C4 r: C: Z! z( E4 Y
- (set_tile "row_sp" (ai_rtos row-sp))6 E) v8 W s$ C9 ~
- (if (/= hasclip T)
4 i1 F- x- V" A4 w G& a! F6 [ - (mode_tile "xcliponoff" 1)
* \- n. r r0 x/ q) E - (set_tile "xcliponoff" (itoa xcliponoff)). V/ |* T2 l! B( N/ @5 E3 Z
- )# t- U' C% j# ?8 k
- )
+ {6 a, T: T+ v; H1 d+ z# e1 w/ g$ W - ;;2 j" G6 H# i/ k% Z# ~# `. h
- ;; Invisible edges for 3DFACE" `7 b+ X. |: t2 X2 s; h
- ;;
$ E9 R, S4 N7 ~0 V* B% s& _ - (defun set_tile_edges ()
8 H/ n. z" n! y7 {6 P# W: E9 i - (setq f-vis (cdr (assoc 70 elist))): s1 m& b2 E% M5 d, y, ]
- (if (= (logand f-vis 1) 1)
) j) a2 W, ~. W6 s - (set_tile "edge_1" (setq edge1 "0")): I" S5 g4 f( r# }
- (set_tile "edge_1" (setq edge1 "1")) T6 I" d" g! y
- )
5 V8 w% J" x, @8 G - (if (= (logand f-vis 2) 2); E4 l6 z: ~. B) _
- (set_tile "edge_2" (setq edge2 "0")), D2 }& r: R( W1 ?
- (set_tile "edge_2" (setq edge2 "1"))7 v- G# g# h, w4 m; w& |* u2 Y, X
- )6 Y7 E% B, t" V. b/ F4 J2 X
- (if (= (logand f-vis 4) 4)
9 I6 |3 l1 g" b/ \& s: ? - (set_tile "edge_3" (setq edge3 "0"))8 I8 r, L Q! Z9 y3 b
- (set_tile "edge_3" (setq edge3 "1"))
p( e9 A& }4 g6 y1 K* w' y - )
' s! u5 W. T6 ~8 M - (if (= (logand f-vis 8) 8)+ [0 { {& _0 i3 [5 c
- (set_tile "edge_4" (setq edge4 "0"))4 z. ~- s2 G$ z* L/ O# V5 l
- (set_tile "edge_4" (setq edge4 "1"))# X; \! P0 z& ~* K1 N" J
- )/ I: A; p# w/ O* Q7 \* E1 G
- )9 B& G. B0 ?& q$ p0 z* s
- ;;; e$ e8 o3 B" a
- ;; XYZ Point values for polyline vertex2 \: |* g, c9 ]$ ]
- ;;
( {1 g7 [( @1 l3 M, p - (defun set_tile_vpt (ptype)
2 _+ T! b) Y2 ^ - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
7 ]3 ?* X: v5 }; F7 s( r8 M) W; i - (progn
7 f2 u: O7 Z. f# G& g - ;; ctr is 1 based, vertices are zero based.2 T/ P4 O8 t$ }
- (setq vpt (cdr (getLwVert (- ctr 1))))! m8 s4 e+ y; D) Z& r/ ]; ` g" D+ c
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
* D3 L5 z3 S" c- H - (set_tile "ytext" (rtos (setq y1 (cadr vpt)))): A4 a- ?! B- a- \
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))# q& z7 E4 i) G' C; P) X
- )# W; Z# x. H; S* F
- (progn
5 C! [$ k) |& { q - (if (= ptype 0)7 P {/ {0 L6 }- t& p9 _- S' x1 U5 y
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))2 h0 l3 {# N l# b: M s
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
! D* W4 s4 h% ]) s/ D5 M - ); S( Y( s/ N) K* U
' d$ m7 ^6 m$ t! `1 c( S! [- (set_tile "xtext" (rtos (setq x1 (car vpt))))) B3 j7 ]8 D: k- h% D
- (set_tile "ytext" (rtos (setq y1 (cadr vpt)))); J6 l! R% A9 y
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
8 c) o8 i# k/ c - )
; w y; ?% e& x: x0 H - )
4 M" }/ j, n0 Z- ]1 o' N - 2 T4 k# w% M$ N5 _
- )
8 H) A/ o" A! ^. m! d8 }" x% D - ;; This is the equivalent to doing an entnext on the heavy weight
) B; y, f4 u8 o8 s; w' Z7 K. W, o; { - ;; polylines. The hard coded '4' below allow stepping over the2 | _. w+ f6 f! J5 ^
- ;; 40 41 and 42 group code information. The while loop finds the
& O% S; X3 [3 J8 o - ;; first vertex which will be used as the starting assoc in the
1 G( F: t7 G. |4 V a% I - ;; call to nth.
- ~) v8 h0 Z% c. C! ]% I6 ^& } - ;;
3 n! P, \; u% [: G1 V. i0 Y" } - (defun getLwVert (tmpctr / count tmp)
2 C7 X$ \6 Q+ F# E H - (setq count 0)2 {, u( t: S9 Y
- (while (/= (car (nth count vlist)) 10)" H5 N5 Z* j* B, s1 L
- (setq count (+ count 1))
# N: X% h2 F- }" ]/ J$ d2 M+ H& G - )8 _+ Z* E3 A: [4 M6 `: [5 o, I/ N4 b
- ;; If the counter reaches the number of vertices,8 P& z9 m3 ^) F2 U3 F* V0 e8 M9 X
- ;; reset ctr and tmpctr to zero again., w7 J' r1 T) u1 |" `4 Q
- (if (= tmpctr (cdr (assoc 90 vlist)))
5 j. T( D- v1 T. n3 Q7 t2 G) m - (progn
+ v- [- p. H" ^6 n) x! ]9 { - (setq ctr 0)" b, B9 m8 d# w3 h7 h& ~
- (setq tmpctr 0)7 ^4 w- Z2 k6 \# E
- )3 P" I4 {" d: `8 B( b% y( K1 l
- )
( L! [# c' c. f - (setq tmp (nth (+ count (* tmpctr 4)) vlist))
( L f/ T$ z7 N% M - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))$ u# K: l. j+ v0 K
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1)); S% T7 b* @- \2 G1 u' |
- (setq tmp (cons 10 pt1))
4 c7 b% s& _$ ^3 Q8 z" \ - (setq tmp tmp)1 i8 z7 b: m9 V# q# o
- )
) {) v/ Q3 l% ?; ^4 c. y: G2 t5 g - ;;/ r# p; ^9 p: v) q1 g( n( V
- ;; Set tiles for Spline properties. If the spline is rational then we
2 ~$ y8 f7 C( I$ }6 V4 N - ;; need to display the weight values of the control points, so set) Y+ k- f- Y5 e7 ?( x6 w" y% y5 [% q
- ;; flag to 1.
" z' Q& e/ X+ n - ;; 1 = rational spline
& |. `3 v) ]1 e; s7 I; ^ - ;; 0 = non-rational spline8 @1 c6 k0 k) a R
- ;;
0 {% @" H3 |3 P" s5 j: l4 f k1 E# n& T - (defun set_tile_spline_props ()
4 G. m4 o* p! n$ r8 m4 H0 O - (setq rational_spl_flag 0) ;; initialize rational spline flag" |( `9 `+ S; C8 q
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))- N9 K& `" H0 {7 F! p
- (setq bit70 (cdr (assoc 70 elist)))
, |, H3 {3 ~0 X3 `1 e' e - (if (= (logand bit70 1) 1)/ `7 k# v4 O- Y; P! l
- (set_tile "SpProp4" "Closed")
0 ?' N, k* l& c9 o# E - (set_tile "SpProp4" " ")& f' a7 Q- ?) q+ I1 `6 Z
- )' y$ `" B( X9 F2 W4 L
- (if (= (logand bit70 2) 2). }6 C0 ?4 h0 w4 {0 i1 i
- (set_tile "SpProp3" "Periodic")- z- W% g) A4 g! _% y9 n- D
- (set_tile "SpProp3" "Non-Periodic")
, F! W5 J. Y1 T& k0 |/ G2 d/ I" t# p3 g - ); j4 Y6 m/ ~$ A/ s! }7 X. Z$ Q
- (if (= (logand bit70 4) 4)
1 E R$ i$ Z* m - (progn
. q4 l7 F# `, k; Z, q: W. x2 @3 f - (set_tile "SpProp2" "Rational")
1 g' T+ a0 t' W0 m" Q7 o3 q9 | - (setq rational_spl_flag 1) ;; this is a rational spline" D3 q4 L3 R5 a
- ), x) N2 m7 b! w7 P+ d0 _
- (set_tile "SpProp2" "Non-Rational")
+ A* h, j: I. s2 o1 ] - )* r a* p3 C9 ^. j% B; B7 s! J
- (if (= (logand bit70 8) 8)1 H$ O; V6 B( B# y$ n0 Y( M9 F
- (set_tile "SpProp1" "Planar")
7 l9 b" t- y7 ^ - (set_tile "SpProp1" "Non-Planar")
0 O; \4 h: j5 S* [/ x - )
) P; N( O6 g1 t - (if (= (logand bit70 16) 16)
0 }- `3 T: c; f/ R- A% ]& h - (set_tile "SpProp5" "Linear")
, I9 H; q; z. d( z2 { - (set_tile "SpProp5" " ")
2 v3 ?$ q2 c! k/ B, X) V - ). \, a2 F0 [2 K2 W/ z6 j ~$ f
- )4 Q3 K- Y: Y" a5 B+ z8 Z% {) P
- ;;( \( H0 f. B2 X1 P
- ;; XYZ Point values for spline points
- h, s" K7 p# |0 {+ H! | - ;; Need to account for WCS/UCS- f i l' l' A; y8 S& I
- ;;
- i5 a' K5 J9 v7 O9 c% y - (defun set_tile_cntl_pt (): ]- t7 Z; H4 m7 b
- (setq cntl-pt (cdr (assoc 10 elist)))
$ d" Q# c$ N- x+ c - (set_tile "xtext" (rtos (setq x1 (car cntl-pt)))) I. o8 |& m/ w
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
! T( |+ ^# i5 C$ P* h" I! a8 | - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
6 E+ `! d6 H+ |# |- X/ Z - (if (= rational_spl_flag 1) ;; if rational spline
5 |4 l% o* u5 [7 C# E" N - (progn ;; show weight
2 r/ l2 F+ c% n2 L' @% X4 a- z" h( e* ]3 ] - (setq weight (cdr (assoc 41 elist)))
& m6 s! H' g3 Z3 B3 N# o - (set_tile "weight" (rtos weight))
- L; z& ~( Q1 \+ j$ s2 H @ - ) ;; else
7 [! ~& g( `; o$ }6 N1 M: P - (mode_tile "weight_text" 1) ;; disable weight field
- x4 a) o4 [8 U) V1 x - )
* V, l- S; n( F( m1 ] - )7 H2 @7 J$ p5 Q
- ;;
- [8 r. I! {8 J% |* P - ;; XYZ Point values for spline points
) o& n1 L3 i& Q0 b - ;; Need to account for WCS/UCS7 b" z5 j9 ]) P: N3 s! u8 i9 k( k
- ;;& u7 x5 f. S, V+ F
- (defun set_tile_data_pt ()
4 m$ F4 [+ \( Y7 {+ N* i: _ - (if (not (assoc 11 elist))
4 u% O! D$ e/ a4 i - (mode_tile "data_pts" 1)
" P/ ~: H* _# {% j% W8 d9 ` - (progn
( N% t( T5 @( ^' ] - (setq data-pt (cdr (assoc 11 elist)))
. w; t' L( ]9 v3 D2 U. J1 i - ;; display points with current precision.
! y" _. @; H2 K: e& F0 Z& s3 Q - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
0 x7 @4 m+ E5 ~2 I- E( S - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
+ O. }% G. v" W# m# d( l3 B* K( l - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))1 J+ ]/ u6 C6 v/ ^( b7 \& K5 \
- )
6 w; K7 T6 s( F9 B: E - )/ Q* N6 O4 m7 b0 p' ]
- )
( _& G, Y. U) |3 P3 ]$ u# w+ O1 m - ;;! f# O e' x3 y3 j8 P" q
- ;; Fit curve, fit spline, or smooth spline surface setting
, s. `* Y9 o2 _9 B5 G# s" k - ;;
5 X. S: O2 w F: l# C - (defun set_tile_fitsmooth ()
J v/ x9 ~; y5 [8 X' u - (cond
# s' L L% B7 ]: m& q3 x1 } - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")2 e* D1 B/ c2 `
- (set_tile "none" "1")
# O( X* o" _- a- L5 t* \% c7 S - )
7 {3 H% Z* }. a: c8 ?2 U$ L& Y( d8 [ - ((= (logand bit70 4) 4)7 r6 q7 I) ?& I: T) Y4 ?- j S4 ]4 s
- (cond( ?+ U* `% `8 L4 \9 f+ _, V
- ((= bit75 0)
% {3 }9 Z( u7 `( n - (set_tile "none" "1")3 Z( x' W* O0 N' D' I% A" a
- (setq spltype 0)) b( r/ Z+ `% i
- )& j; m) K, _3 i7 m, W$ o5 i: y
- ((= bit75 5). h& x* ?1 h: ?8 M
- (set_tile "quad" "1")
1 G$ p. {5 N% @2 C7 A - (setq spltype 5)# ?6 A7 ?. f& J6 ?3 e2 d
- )
$ X+ h$ d- q" I/ U( Q: j5 H - ((= bit75 6)
6 o/ u9 V3 w* K5 b; w+ g - (set_tile "cubic" "1")1 w0 D1 D6 j' g" p0 T9 x+ _. i/ O
- (setq spltype 6)
4 [3 l, C' I/ K" ]9 s - )% n/ Z; j1 W0 B2 `2 \" z5 ]7 [, X! f
- ((= bit75 8)
- `; y# c- j. o$ h7 }7 L. i7 F - (set_tile "bezier" "1")
. R1 m* C! ?& O - (setq spltype 8)0 x' M$ @/ Y1 H' y) @& f2 C
- )/ a& I; r0 C$ |# t6 C* a- V' }2 Z
- )
. o5 @" J& b; D - )
1 @3 Z' [/ U/ X2 d0 i5 f3 L+ k/ E5 ` - ((= (logand bit70 2) 2)
4 x. [; ~" {" ^7 B: J - (set_tile "fit" "1")( r$ Q) N& h( t0 s
- (setq spltype 1)
2 x( o, j- ]; L - )
# [6 W: D& n7 m5 V - (T (set_tile "none" "1"))
* P; m$ v5 m! _7 ~: g - )) \* F: B! J2 i' L, t
- )
- |) s# @3 V% T0 O0 Y - ;;4 F) v L0 D' b D1 B. L* F7 x, t
- ;; Closed or Open mesh and polyline setting9 J5 ?/ B+ a$ g+ U+ r1 o0 i
- ;;# Y. {1 G6 @% z' ]! P
- (defun set_tile_closed () L) ^' ]# s6 X
- (if (= pltype "3D mesh")
" @9 W' g; g$ o! W$ l( B) n( t2 U - (progn- j! s4 [+ g6 p& o( j. ]' l" {
- (if (= (logand bit70 32) 32)
/ y2 M: f+ _9 v2 L+ Z7 Y: B2 Q - (set_tile "closedn" (setq closedn "1"))% P! K% \: W& d& j, Q' R
- (set_tile "closedn" (setq closedn "0"))
) N% B$ y) o, h% N& t8 I7 ] - )
7 p3 e8 n" T+ A - (if (= (logand bit70 1) 1)
3 |4 T0 I8 D4 O! a4 g - (set_tile "closedm" (setq closed "1"))3 y- r9 K7 A& M! N, a7 l2 r
- (set_tile "closedm" (setq closed "0"))0 N+ n5 {! R) I7 k
- )6 j/ g* w5 U" j
- (setq old-closedm closedm old-closedn closedn)
; d0 e# B4 z/ _- C - )& Q; ?3 T- ]2 o1 O+ T
- )7 g: d5 f$ {% N/ Q
- (if (or (= pltype "2D polyline")2 q! V4 l8 `9 A. D
- (= pltype "3D polyline")
4 g& ?9 |, H% S - )( g3 l6 X- t5 R6 S K
- (progn
2 H" S- j# u" ?; w% T0 L1 x - (if (= (logand bit70 1) 1). \* X# ]1 q% G$ e% p# D+ G' W
- (set_tile "closed" (setq closed "1"))
8 S" ?9 m' S: K/ M+ p4 O - (set_tile "closed" (setq closed "0"))+ _9 _: Z7 S# E/ S
- )% ], b2 U. q! [1 m. E4 a) R# H
- (setq old-closed closed)
/ ^& w; P2 L \6 y5 c8 z6 V7 \ - )% [) o m5 k- l8 ~* J
- )
/ r' u" J. a1 c! Q) {; T0 ~ - ); K5 P9 ]' y* z; n/ Y- y
- ;; Set common action tiles
. L, ~% J& h/ Q - ;;9 |( a6 T1 q+ h- t: n
- ;; Defines action to be taken when pressing various widgets. It is called* r2 }# d7 ^0 s W; S0 w
- ;; for every object dialogue. Not all widgets exist for each object dialogue,- q/ W0 B T9 O8 Z2 J9 z3 B7 N' t
- ;; but defining an action for a non-existent widget does no harm.
\4 X5 U7 J i4 \; m - (defun set_action_tiles ()
* {+ t1 _) p% ~8 k0 g- w) w1 j - (action_tile "cancel" "(dismiss_dialog 0)")5 Z7 ^5 g& _+ x& r; q
- (action_tile "accept" "(dismiss_dialog 1)")
k2 R; Y9 S1 \2 Q! F - (action_tile "help" "(help \"\" help_entry)")
; w( p% [' z; \7 |9 W% Y - (action_tile "b_color" "(getcolor)")1 k; r$ c+ i+ U! o
- (action_tile "show_image" "(getcolor)")
( S/ K+ S5 E3 _% i2 k; u" I - (action_tile "b_name" "(setq elayer (getlayer))")
0 V8 a0 @3 Q l6 a. B; | - (action_tile "b_line" "(setq eltype (getltype))")5 p2 o D' I; H
- (action_tile "eb_thickness" "(getthickness $value)")
/ x H6 }) X& u- A3 f - (action_tile "eb_ltscale" "(getltscale $value)")
$ ~9 B" i. j6 B* J6 d
1 `* A; [7 Y P0 A7 o0 @- (action_tile "pick_1" "(dismiss_dialog 3)")
! F6 V9 E+ ~4 i1 a. d8 k - (action_tile "pick_2" "(dismiss_dialog 4)")
1 r# H7 }! h* N( y- ~- z0 D! A; h! O# w - (action_tile "pick_3" "(dismiss_dialog 5)"); V; z: l1 r6 s O) P
- (action_tile "pick_4" "(dismiss_dialog 6)")8 ], m- R: `" n9 c! l" y6 r4 l
- (action_tile "x1_pt" "(ver_x1 $value)")
* G( A V5 a0 r6 O - (action_tile "y1_pt" "(ver_y1 $value)")) w+ p" F" l( @' f0 y
- (action_tile "z1_pt" "(ver_z1 $value)")- P# D: m+ N; H) a6 K! T
- (action_tile "x2_pt" "(ver_x2 $value)")6 Z2 [' ]( }& L- h8 A; U
- (action_tile "y2_pt" "(ver_y2 $value)")
) U$ u& e8 C) o) R5 h - (action_tile "z2_pt" "(ver_z2 $value)")1 r: U) E* ?9 g7 J# r2 b3 [% @
- (action_tile "x3_pt" "(ver_x3 $value)")
0 h; C' ]& L' [1 D6 T - (action_tile "y3_pt" "(ver_y3 $value)")
c- j; b8 o6 c* V* ~ - (action_tile "z3_pt" "(ver_z3 $value)")
+ V- Z% B+ G' t - (action_tile "x4_pt" "(ver_x4 $value)")2 J1 Q v& ?1 M8 L5 `5 m- O* O
- (action_tile "y4_pt" "(ver_y4 $value)")
! f) O6 R# q( j0 m2 X" J - (action_tile "z4_pt" "(ver_4 $value)")
0 D$ Q+ ?1 n+ {. ~) m
' `3 o: G* J/ e6 D/ G( F- ;; Action tiles for Xline & Ray
% m- v/ e" A; O) W - (action_tile "xline_x1" "(ver_xline_x1 $value)")2 r0 C& T. Z" V; ~5 D7 y
- (action_tile "xline_y1" "(ver_xline_y1 $value)")
2 J5 a" x" A* ]$ J( C7 n" _* k/ c+ R - (action_tile "xline_z1" "(ver_xline_z1 $value)")
! ^% S; A6 x: i9 j. q - (action_tile "xline_x2" "(ver_xline_x2 $value)")
7 {! V) T1 M. @" m, v - (action_tile "xline_y2" "(ver_xline_y2 $value)")2 r2 K+ E3 ?# J# R: t8 _9 ]5 i' [" }9 |
- (action_tile "xline_z2" "(ver_xline_z2 $value)")! z* ^; K; X6 v$ e
2 s. r% A# |/ B, [9 C+ p+ E5 }- (action_tile "edge_1" "(setq edge1 $value)")2 a! B( `7 Z, h* v! R
- (action_tile "edge_2" "(setq edge2 $value)")
4 q7 h7 n& s+ |+ h1 z - (action_tile "edge_3" "(setq edge3 $value)")$ F7 \, H$ j8 ~! ?
- (action_tile "edge_4" "(setq edge4 $value)")
" c( Q6 c3 H8 L7 L& V( g: k! s: ]
5 v8 P. ^. |6 s* E: H- (action_tile "radius" "(ver_rad $value)")
5 X; o3 ^/ f M% P6 D9 O+ S - (action_tile "st_ang" "(ver_ang1 $value)")
$ ^) r. a4 s/ D) C: \* i, g( V - (action_tile "end_ang" "(ver_ang2 $value)")! F2 V" g0 q% s: t1 R
- (action_tile "end_eang" "(ver_eang $value)")4 z" c! E# D; }4 v& {0 i
- (action_tile "minrad" "(ver_minrad $value)")
: H9 _7 z& R3 S8 Z# } - (action_tile "majrad" "(ver_majrad $value)")
0 ]6 ]% ~5 L: r5 m/ e9 |# i0 z5 [
/ Y1 D) f4 F/ l4 w# G5 m/ q4 C- (action_tile "xscale" "(ver_xscl $value)")( B" X1 O- L, a/ G; C8 B" ]0 I
- (action_tile "yscale" "(ver_yscl $value)")
) n$ G7 ~! f: p5 j, \; G - (action_tile "zscale" "(ver_zscl $value)")# s, g% n2 t& B* z* Z1 j/ S
- (action_tile "rot" "(ver_rot $value)")% R( u- `- ~" Z% S
- (action_tile "columns" "(ver_col $value)")
1 \9 g! P4 m% b4 m# C. s. \ - (action_tile "rows" "(ver_row $value)")
2 O% C6 c) I# \7 ]) H - (action_tile "col_sp" "(ver_colsp $value)")1 H* d2 S' O9 u0 B$ a5 h9 u
- (action_tile "row_sp" "(ver_rowsp $value)")
- {) c6 v2 M+ A) X" ~
6 s6 T8 T4 x( R- (action_tile "hght" "(ver_hght $value)") g: V* y. u6 h7 i ?
- (action_tile "wid" "(ver_wid $value)"): r* J6 m7 j! N! a) A- o/ H: g
- (action_tile "obl" "(ver_obl $value)")
t7 q4 b- _1 R - (action_tile "style" "(style_act $value)")9 t3 E, [, o& ^6 _# d
& K7 X; J2 V7 l6 d4 Z: q- (action_tile "t_string" "(ddgettext)")( v: D, X& _7 l- H1 L$ {3 H# U1 S
- (action_tile "tag" "(ver_tag)")# T; `4 l, A$ s g; g9 e
- (action_tile "prompt" "(ddgetprompt)")9 F1 C8 [* H& X. B: e
- (action_tile "bkwd" "(setq bkwd (atoi $value))")0 Q' {4 Z U& j$ Q7 @0 G
- (action_tile "upsd" "(setq upsd (atoi $value))")2 U% ~+ H) R* x( T* Z& i
- (action_tile "inv" "(setq inv (atoi $value))")+ ^: i' k/ B( f
- (action_tile "con" "(setq con (atoi $value))")
+ K. a3 D% ]% V" w$ ~5 k7 X' f4 z - (action_tile "ver" "(setq vfy (atoi $value))")$ M+ H1 ~$ M! x9 w# q4 y% q
- (action_tile "pre" "(setq pre (atoi $value))")6 @) e, {3 P2 S4 {2 A+ M8 n% m
- (action_tile "popup_just" "(jlist_act $value)")7 `+ x4 u& f: e* x
- ( B# j* m4 N8 J% ^0 [: I; h6 N' u% `
- (action_tile "closed" "(setq closed $value)")* M" Q3 D# R- t, q
- (action_tile "ltgen" "(setq ltgen $value)")
& J3 P4 ]- U+ u$ I1 @# c3 X - (action_tile "closedm" "(setq closedm $value)")1 M$ u9 k" ^" K# l( i# @5 R
- (action_tile "closedn" "(setq closedn $value)")
- F$ |& [6 G O6 E4 d( L; V - (action_tile "next_v" "(next_vertex)")% `; A/ Q! k( s8 f) }
- (action_tile "xcliponoff" "(setq xcliponoff $value)")4 Q6 F7 C" s9 m' R1 `- p. Y
- $ j7 M: X5 s* q8 Q
- (action_tile "next_cntlpt" "(next_cntl_pt)")) a3 {& c( v: d$ x X9 U$ p
- (action_tile "next_datapt" "(next_data_pt)")6 I/ C' @: M" |% t2 j
- 9 q# o6 I3 Y/ i4 t
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
( d1 a# N6 b, x) u2 M2 ^: R - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")# p8 w( E* V- x. \/ {
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
/ U" j. v6 ?/ z. s) w - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
8 \! J3 c W3 Z. d# _: A6 j - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")! h0 A+ X, v6 R& y
: x0 g' e/ g2 {9 G8 |- (action_tile "u" "(ver_u $value)")/ ~& O' E' C! o' z- H6 k
- (action_tile "v" "(ver_v $value)")
; n5 m0 {9 a6 M - )
* a4 p: F8 }+ z6 d7 N. u
( R# p2 u( Q8 m6 B& c# f- (defun ddgettext()6 k/ Z$ u& I6 O" p
- (setq text (get_tile "t_string"))
2 T7 M+ r$ p+ O) Z7 J7 G' A - )
) p7 b$ R3 E" U0 t3 H4 ?/ j
' R0 [% A$ x6 N/ @, }- R- (defun ddgetprompt()4 [, X3 L& U- A
- (setq atprompt (get_tile "prompt"))
; k5 o7 T8 D7 P3 d1 t! U* x2 N8 p - )
! C( }3 |0 q, G* C
: N5 x" i+ ?( @* G- ;; As OW doesn't support disabling of individual radio buttons within. f( {0 P. a1 M1 ^% m, c1 ?6 p
- ;; clusters, a check must be performed as to the legitimacy of the4 Y) ?1 `% Y% V1 |& P
- ;; button pushed and reset if necessary.
3 N; `8 C3 B: h2 d' Q - (defun radio_gaga (pushed)
2 V4 z2 z4 m5 s" R, n# W - (cond- Q5 U8 s3 e$ a( ^8 x" e0 r
- ((and (= pltype "3D polyline")
. p( h6 r. z" C! F - (or (= pushed "fit")8 V# s |% Q3 q _. Q
- (= pushed "bezier")5 i" M3 t6 z0 Q' G0 t8 Q- b& `8 r
- ): `6 h; u6 t4 u( Q! s
- ), t0 o7 y' p. Y5 O, L
- (set_tile "none" "1"): v: Z. ?, a5 }: t5 v
- nil* {4 W9 g {1 O0 E
- )
U+ t2 `9 G L( i7 z7 l0 {; [ - ((and (= pltype "3D mesh")
5 |1 V3 E5 J8 M- D, a( v# k s - (= "fit" pushed) m+ {- Q `' D; ]% j
- )
+ X1 I @& _4 c/ G - (set_tile "none" "1")
6 c. k( h; Q9 I) H! _8 S8 I - nil
9 k" r! ?3 D3 d1 ^( I - )
9 f4 B9 i' H4 Z3 N E, l - ((= pltype "Polyface mesh")
$ I, N# k& d1 K7 \& g% i. Z - (set_tile "none" "1")
0 A. Y2 p0 u/ R - nil
5 B/ G/ V r" z6 q* m - )1 o0 d& N) V+ W. A4 G. ~2 a! A
- ((and (= pltype "2D polyline")) D9 T5 S, `" `% i0 q0 J; Y
- (= "bezier" pushed). u5 O, n3 U6 N! V
- )
* n, Z7 P7 C1 p' T - (set_tile "none" "1")
1 I& a3 g! K6 l, {$ ], { h8 i1 Q - nil
% y+ ]$ L" g# L4 l- G) C2 d* n( l - )
: s/ H( k- X! [, G( i - (T)+ O. r- ~8 K/ s+ Y5 }* f
- )
( H) w1 @2 D, J9 F6 Q - )' Z2 |* E) l1 F5 K, c) s
- ;;
5 `- Q4 ^0 |0 T( u; W - (defun set_uv (type_n)
' @+ V' g& U2 f" I# s: ?# h - (setq spltype type_n)& l' w* y6 q$ l# {5 h
- (if (= pltype "3D mesh")1 M% P: z3 Q7 U+ y0 F9 K; w9 ]
- (if (= spltype 0)* x( l h j5 q, S4 i/ w
- (progn4 H( q( d7 T6 d+ ?- N8 ?9 f
- (set_tile "u" (itoa (setq u 0)))
$ u5 i; G& @6 L1 b8 f, l+ O - (set_tile "v" (itoa (setq v 0)))
9 E$ _3 ?) z6 p; S! n - )5 C, m. j" ]& C2 [ M1 x
- (progn& o, P. A( ` X% P
- (if (= u 0)6 c; P+ }! w/ N) g5 n& U' O
- (set_tile "u" (itoa (setq u (getvar "surfu"))))1 n7 K1 a) r8 O2 C0 Z
- )
% u0 q/ e/ L3 h& x2 } - (if (= v 0)
7 l4 ~/ a9 x6 {, X" N u- v9 t - (set_tile "v" (itoa (setq v (getvar "surfv"))))- ~+ u4 P; Q2 x/ U
- )
, N: p' ?; \7 j, a$ z - )
2 l. E2 }( Y, h4 q8 M- ~ - )
1 t$ p$ M: j4 i: G% k- O - ): L7 q! g+ d6 B3 S
- ); Z- w6 w0 S" Z2 y/ L/ t% x' Y
4 o( t2 O. C% E$ B5 F
- i* ]+ j: A2 h& o2 g- ;;2 G* |' M$ X; i: h9 d
- ;; Verification functions+ a. _, e1 K( s" O8 M
- ;;
6 O+ A2 C3 D/ u, e8 v I- [! w - ;; Verify distance function. This takes a new X, Y, or Z coordinate or
! M; i9 m3 }4 ^0 s7 a# i' z C - ;; distance value, the tile name, and the previous value as arguments.$ V6 ^: S1 Z3 s6 D
- ;; If the distance is valid, it returns the distance and resets the tile.
3 P8 m. B! W5 R+ o5 D8 l" U - ;; Otherwise, it returns the previous value, sets the error tile and keeps- U- N# n2 m( g8 A4 W. e8 C
- ;; focus on the tile. Shifting focus to the tile with invalid value can! l; R5 K+ J9 a+ ~+ \
- ;; trigger a callback from another tile whose value is valid. In order3 R" u+ q5 _; @
- ;; to keep the error message from being cleared by this secondary callback,7 k% ?' `7 N# T8 f" \% X5 |
- ;; the variable errchk is set and checked. The last-tile variable is set
) Z* g/ }( o$ d) S* q( ^ - ;; and checked to ensure the error message is properly cleared when the
5 ]* G$ y( _1 e. C$ W - ;; user corrects the value and hits return.3 M3 L. m- A5 E/ }4 o- z* a; Z: R
- ;;
% X; X4 Y+ O1 o' \' b2 H1 r" j+ a, A - (defun verify_d (tile value old-value / coord valid errmsg)1 b& d1 T( D9 ]: a H |
- (setq valid nil errmsg "Invalid input value.")
4 Z3 V# R- m4 c2 G - (if (setq coord (distof value))' Z9 v6 g5 c. b4 x0 F% n" s
- (progn4 |" H5 L# s0 h: N8 G4 o( j
- (cond1 R5 i O0 m0 h4 y) a& p
- ((or (= tile "radius")
3 ?3 c' A+ s& C( \& e - (= tile "hght")# _& W: F4 B3 s
- (= tile "wid")' u2 l" s+ O) c) T4 C' R- `
- (= tile "majrad")
* p' ]2 y9 K& i0 h9 j - (= tile "minrad")/ J0 X9 U% Q6 X7 t. G8 L
- (= tile "eb_ltscale")' C# M! y% y# |; Y5 ^( H* u: c
- )
2 P0 a, b) g9 O2 s) ^$ t% w - (if (> coord 0)2 O3 j* u7 i A3 u( ^2 u1 x
- (setq valid T)
1 `! J1 t; D( \7 I( b, G* s/ v - (setq errmsg "Value must be positive and nonzero.")4 s7 Y! d' j( }/ Q0 p1 T
- )7 r+ f/ h' Y3 m% P+ G
- )
2 T) y- G: c# i% _6 K - ((or (= tile "xscale")
' p0 k; ?+ g8 O& |- E - (= tile "yscale")7 |2 v6 T) y; ~
- (= tile "zscale")
! _* T A1 a: G6 \! C - )& R8 f# e% z' ?7 [6 Q" H
- (if (/= coord 0)" V( m7 }8 O2 m* F+ {+ u7 K- b
- (setq valid T)
$ p/ c: g. J% [+ m( |- m9 t& y - (setq errmsg "Value must be nonzero.")
% f. ?0 l, F$ K3 R% \6 v: W - ), t: l5 P+ J0 H- o+ S5 A: a
- )6 E; R" n; x; u% Z3 X7 t
- (T (setq valid T))
+ n) ]6 X$ h1 w - )
' }: D% k7 s# c+ M' _, e: J! b, N - )0 l- y: ^, h! b; ?+ Z0 Q7 Q
- (setq valid nil)
6 V0 E7 n: ]8 V* O0 T; N - )( G+ r" W7 v. m, G: E
- (if valid
" K2 @) k% q8 A( k - (progn4 @2 J! M) J. @+ v
- (if (or (= errchk 0) (= tile last-tile))
" A ?7 @8 f4 I" H! A& z3 c7 y - (set_tile "error" "")
0 c1 w1 `% @& U p. P - )4 @/ N$ u! ~8 ~. s
- (set_tile tile (ai_rtos coord))
3 v3 y" F0 b' q# c8 ` - (setq errchk 0)
1 i- b# g* C" Y4 i+ e6 @ |9 W - (setq last-tile tile)
% Z3 z+ @& c2 u) b - coord
5 L }) P1 H- w - )1 V/ ]) X) I5 i0 _; F
- (progn* _6 ^1 R0 P" ?( s3 V
- (mode_tile tile 2) ; Move focus to offending field c- r3 d! M: E4 c+ W9 Y- q( T
- (mode_tile tile 3) ; Select offending text* Q4 J: _7 P" p+ i2 U: B9 O
- (set_tile "error" errmsg)5 w6 y5 u9 F1 y0 Y' O
- (setq errchk 1)
% i/ N1 [. _0 i; l+ B - (setq last-tile tile): Z Y# I A# G' [: E
- old-value
$ k5 E7 q& g5 |5 Q$ ?; Q1 M% Y - ): I- Y: T& B3 e9 I5 Q
- )
1 g, i" T$ S0 C6 ^# m1 Q9 G+ R - )6 q; J( O% P8 i( n2 G! L& ]
- ;; Function for Xline coord edit box checking.; v& ?4 F+ L( a0 @( F$ V6 k
- (defun verify_xline (tile value old-value / coord valid errmsg) g |; R1 H. z% e' A, f
- (setq valid nil errmsg "Invalid input value.")
( f: g* ^7 R+ M$ S$ @' I - (if (setq coord (distof value))) S5 ]9 I; E# Z3 D# w/ [5 [
- (setq valid T)
! p6 F" A2 ]( t! l8 p: w4 f7 Q* M - (setq valid nil)
8 I7 s" \# j- f' R o6 F - )
6 x- {" A- \* p8 E - (if (and coord
; X# f: p% A- ]0 t1 D - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
e( f$ U( H" H* u4 U - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
- t% _; ^, M) B3 k/ P - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
5 X/ @2 T; {6 Q, G4 B: w" ^+ H - )
3 H# U2 V8 |' L$ M/ N- W - )3 _6 u* D% G0 s1 b$ D3 h
- (progn
9 T7 w* w6 Q& ^6 `0 _ - (setq errmsg, e3 C$ H% z1 b5 e& T! D
- "The Root point and the Second point cannot be equal.")
8 Y- y0 y/ v6 f1 b - (setq valid nil)
- h. `/ M7 s. ^( E8 X0 }1 T - )/ a7 x) ^5 T- y9 B# `9 q
- )5 ]% Y# ^7 ?+ M5 F- E" \; h4 @
- (if valid6 U! |$ `/ {) m) n F2 k
- (progn
" z4 q9 A6 D. j0 i* j* V - (if (or (= errchk 0) (= tile last-tile))7 }% N3 O2 b9 X o3 `
- (set_tile "error" "")
0 w* g3 P2 ~3 f7 {- _6 a* { - )
3 P3 b9 @' Y; ~. }' C - (set_tile tile (ai_rtos coord))
: t) W2 d5 B |0 W* r' ^ - (setq errchk 0)
5 x& c3 n; C. X+ [) Y1 a - (setq last-tile tile)
$ X5 _6 {1 A1 S3 n; Y' s0 t2 Y# I, O - coord7 k" n p( T& t, g* c* M
- )( j& P+ p* X8 |
- (progn' ^% ~5 G! f# Q, ]" N% l
- (mode_tile tile 2) ; Move focus to offending field) o+ @% `! i j/ N3 g
- (mode_tile tile 3) ; Select offending text' {' p0 a; o- m* L0 e4 S
- (set_tile "error" errmsg)' G& {' u& E! d. V' K5 v1 B3 |2 `9 D
- (setq errchk 1)
& T" i$ G5 g( _ - (setq last-tile tile)
3 a" y% F4 j G0 A! P - old-value
# Q$ A$ H! |) U/ l0 X8 P/ z4 i( t - )
" O- w$ u' ^+ d+ |, X - )
- T$ l% f4 v: u. Y# y3 w8 e - )) G9 ?3 s* Z& G; P
. q5 }3 N+ n4 k( L7 ]- ;;5 o* a; f# a( C4 N# l% g
- ;; Verify angle function. This takes an angle and a tile name as arguments.
! s0 m+ K0 P5 k5 t+ I; ~7 c; T0 V - ;; If the angle is valid, it returns the angle and resets the tile.5 e' L8 ]$ K3 w
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
- X: v& Q, r6 l" o - ;;
/ u) W' q, r) b# Y' D - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)% m6 `0 `% ? @7 |7 w- q
- (setq valid nil
& t- U: q Q0 a1 z4 j- F1 `5 S - errmsg "Illegal input value."
; ~- J+ G( S( A5 Z. m; T - )* X& x; y4 P) @, s* G/ v) g
- (if (setq ang (angtof value))
5 y7 p( c3 ~. w! z# \ - (cond/ g) }4 R6 G& d# r5 w0 d% t
- ((= tile "obl") ; Restrict obliquing angle
# v* D0 [3 p. S& [: R5 s& i - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
. x+ P2 ^: X3 _# Z4 f# r1 G( ?3 f* Q; y, D - (if (or (<= ang oblqmax)& P7 ?3 S5 b. D C) J. h2 M
- (>= ang (- (* 2.0 PI) oblqmax))
. j- o' ?* F! C* P3 C+ n! B - )
+ m; Q3 R6 n" f; b - (setq valid T)
, E) Z# w, V: v F3 V - (setq errmsg; \, n3 x* |) w7 H. x
- "Value must be between -85 and +85 degrees.")
& K6 Q% B: x7 X, i - ); C. U* C' r5 B0 Z& O$ ~1 K: U3 I
- )% K# c* W% f" P. l; N3 O
- (T (setq valid T)) ; Other angles not restricted5 z4 V' g( i* c; r6 k4 p# z4 N; v8 M
- )7 S; \- M' j" ], ~/ r
- (setq valid nil) ; Invalid angle input
8 c+ @7 r- `! a/ K - )' H" R8 g! k+ z: K
- (if valid
8 J' Y, x9 A, J7 h% E - (progn
7 l0 R: d; J- H. e2 E5 V7 x. m$ e - (if (or (= errchk 0) (= tile last-tile))/ K. O% \8 R; |4 u n, }
- (set_tile "error" "")
: H3 j: k& A8 a - )! Z" Z' x$ R$ N
- (set_tile tile (ai_angtos ang))0 u$ ]" o: Q3 y, u5 E' G
- (setq errchk 0). {1 `& d+ e% }8 f6 e% }
- (setq last-tile tile)+ |* x4 {# N2 j, B7 L5 F# h+ x" T9 c
- ang
$ b( O" I, b8 a& a2 o - ). q7 _8 e# @* R3 p4 u( v4 W% l
- (progn5 w+ c: F1 }, i3 N/ u- e# L% h
- (mode_tile tile 2) ; Move focus to offending field
6 D* p$ g$ }- U) c* d/ O - (mode_tile tile 3) ; Select offending text; b3 L, w8 ~" [/ K+ V
- (setq last-tile tile)' d& N" P% y, c- C+ |
- (setq errchk 1)
+ Z, ]8 g, |3 z( G% `; L - (set_tile "error" errmsg)
. R4 |6 A, o4 P( H' l - old-value
2 \! u9 p* a8 b7 K( W - )+ ~% A k& V. A0 H
- ): C/ U. h) t& ~$ S/ L( U6 H
- )6 M! Y$ a7 I% ~" j
- ;;5 f1 y* _6 g$ Y$ g
- ;; Verify angle function. This takes an angle and a tile name as arguments.
* ^0 e" r" \) H* v/ R - ;; If the angle is valid, it returns the angle and resets the tile.
+ F7 j; ~6 M! r5 t - ;; Otherwise, it sets the error tile and keeps focus on the tile.1 V. G) L) [, t# l
- ;; This function is specifically for the end angle of the ellipse object. If0 }7 u" b0 h% |( y
- ;; the end angle resolves to zero then we want to display it as 360., h+ J( V0 M5 ^: Q
- ;;1 ]( ?2 a; S5 Q
- (defun verify_ae (tile value old-value / ang tempend)9 R. B9 b9 V6 E7 {- M* r" \
- (if (setq ang (angtof value))
) n4 M- D$ j3 R9 N8 m - (progn
3 C/ D# C1 J5 K5 z0 |2 p: h4 `" Q0 z - (if (or (= errchk 0) (= tile last-tile))6 e/ J# z6 r' r2 P3 K' _5 u
- (set_tile "error" "")# B# I: c: V, d! t1 F6 u8 M
- )
$ O# ~- k+ `( Z1 Z# Z! b9 \9 a" Q - (setq tempend (ai_angtos ang))
3 c" L* B% H5 G7 P$ _2 N' S2 i - (if (= tempend "0")
' ^; V& n* @# \0 U x9 Z- l( X - (set_tile tile "360")& V- ?" u' ^1 r
- (set_tile tile tempend)- A4 K$ h* u. m
- )7 {9 n" C% U; T' D/ D0 ^0 N- E
- (setq errchk 0)
6 t: Y$ t. k. T, d - (setq last-tile tile)
* _0 m" D0 ?) z5 g6 O) K - ang
( _& K( x S& F8 m$ Y - )
( e' E1 P/ e# p# R2 P- M8 G7 p - (progn6 c0 |; P; @5 X' ]# p/ ?( Q. o
- (mode_tile tile 2) ; Move focus to offending field. p4 i# `) \( z1 a9 u: \
- (mode_tile tile 3) ; Select offending text( `+ W0 `9 B: a6 \; Y
- (setq last-tile tile)" x/ p- e. y1 H7 `5 Z
- (setq errchk 1)8 }( L4 f! G/ S3 W. }
- (set_tile "error" "Illegal input value.") c' v& k- `! v
- old-value
" G! Y9 l* C, }/ y6 H- c+ k - )' w, V- h. D$ C0 B3 X/ y
- )7 T/ c' g$ L' A! I$ k" f3 W2 }
- )8 Q, E7 \9 B4 o" e# t) R
- ;;, d/ i# m8 r5 ^5 a, ^" O+ l
- ;; Verify integer function. This takes an integer and a tile name as
9 L6 p5 r# c0 f: t4 ^ - ;; arguments. If the integer is valid, it returns the integer and resets the0 s2 _) Y' L; c; X
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
9 s4 o! b" V) G; m; n - ;;6 I0 b) U# m0 S+ ~2 q
- (defun verify_i (tile value old-value / int valid errmsg)
2 B) O) m3 n8 C, m+ `" `2 |, x - (setq valid nil)6 h( n; i" c6 ]- x
- (setq errmsg "Value must be an integer.")2 V: r1 B3 |' ^) F' I8 J6 B2 ]
- (setq int (atoi value))
% X1 g: t4 X0 j# `* M k: N+ Y0 o4 i - (if (setq intchk (distof value))
7 V8 H! l7 L2 [" ?9 C8 e6 w - (cond
& E( {, i6 C4 U' R }5 x - ((or (= tile "columns") (= tile "rows")); F: p8 A" B; G' _* R% W; Y
- (if (and (= int intchk), @) W- E% L. C8 e: T' B
- (>= int 0)
5 Z1 _/ }6 v" k; f' @1 @ - (<= int 32767)- D" X# D9 B* i
- )
! _3 q& G5 G1 b6 y3 i - (setq valid T)& `& t1 u, U, k3 ^
- (setq errmsg "Value must be an integer between 0 and 32767.")
% V9 A4 J. t6 x0 q3 | - )
4 L0 L5 v( V( `( _ - )
# t( q! d7 q( h3 z! H! }: P - ((and (or (= tile "u") (= tile "v"))); T2 @ p* z2 ~; U9 \ U
- (if (and (= int intchk)
3 E. T3 M# n, Z - (>= int 0)
; V1 M+ e( _: p' I* j - (< int 201)3 S8 O; b2 P j& u; r+ @
- )
$ m2 S3 i2 {' _3 Z! c3 s" Z( I - (setq valid T): }/ T4 t" s0 K& v
- (setq errmsg "Value must be an integer between 0 and 200.")
" s' R% W- W0 X, k1 w - )- A' a6 S) w' P r
- )) W( A) `( L' r
- )5 X6 d: A& `8 D- c
- )- r# ^$ U: O1 M' @" T# M' w
- (if valid. ?9 X' D- q: J M1 D$ v. z+ V9 Z U9 f
- (progn, _# }5 r0 Y1 ?+ m0 y' ^) ]" g: W
- (if (or (= errchk 0) (= tile last-tile))3 t3 H* q) i( @
- (set_tile "error" "")9 \. H1 B3 b/ C2 Q8 U
- )
# X+ o% w9 c. O0 K% j# n - (set_tile tile (itoa int))
! {. i% y* B7 j& W) _ - (setq errchk 0); |) }) @+ g2 `/ v) I7 h
- (setq last-tile tile)4 M& ]1 \, ?' b$ n. s+ ]+ t
- int% z2 N# l) I- ]5 M# E/ [( O) K
- )2 R4 J. B: i" B8 Z. M0 f* p* I# l
- (progn
! C" J2 I% H# I8 d& i$ r2 v4 p - (mode_tile tile 2) ; Move focus to offending field
% B# e# u+ M' @+ |* ] - (mode_tile tile 3) ; Select offending text' |% \! b ~* ^! E3 L. M7 J5 n# b& k
- (set_tile "error" errmsg)
K* Q1 l8 m/ J8 V0 o - (setq errchk 1)# a( ^$ V m$ c0 v1 q
- (setq last-tile tile)* Y0 j& ]8 l- O7 |! |; d1 d2 @; v) `
- old-value
) g% A+ _5 U- n; l# S. Q - )
; y& D3 l- M+ C" F4 Q' j- O/ B" }: q - )
# s; h, l% _. @. P- r - )
' r. z8 @7 }# A7 G" q0 ~9 W# Z - ;;) {' n0 v# k2 e0 h
- ;; Functions that verify tile values for integers0 t2 g4 s* s1 F0 e/ x
- ;;3 i. _0 l0 n0 Q: A8 ]& x8 R8 _7 Y
- (defun ver_col (value), T' y+ ~! L8 s0 C7 z A
- (setq columns (verify_i "columns" value columns))* U l% i7 Z: ~& z* a+ A
- )
) G$ @% Y8 |+ v0 l. |3 G6 \ - (defun ver_row (value)
9 [1 ]$ r* S% H0 { - (setq rows (verify_i "rows" value rows))) \1 y& ?' i g. U% I
- )$ F, ~; [3 E+ K, l
- (defun ver_u (value): F+ ~" c+ ~( O0 K
- (setq u (verify_i "u" value u)). `* g+ H0 A: W) m1 M! y/ \
- )0 e. i7 U% \5 N% V( ]( q
- (defun ver_v (value)& [8 N# u3 e+ p8 L: Q% A# k+ ]
- (setq v (verify_i "v" value v))8 q* F6 m0 l Y9 G* I* N
- )
8 a% s$ [% w2 Y- W- c$ i5 k! F - ;;
% @7 P4 ^7 L- A6 j( i6 n - ;; Functions that verify tile values for reals
/ m+ a8 s7 H/ I" h2 r - ;;* N( Z- m7 u( I8 Z
- (defun ver_x1 (value)
* A; V" O# Z. B' M' e0 ?* N - (if (setq x1 (verify_d "x1_pt" value x1)) (calc)): y$ {; U/ R9 d2 h& u
- )5 Y, m+ s# I, w: l
- (defun ver_y1 (value)
; g! W. a8 |5 n( S2 \* ?: R" w - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
9 n3 O+ J! V) b0 ^8 X* z - )! [, j3 ?4 ~1 K" [- t8 X* ~8 `
- (defun ver_z1 (value); j% L& m# T( [! o" p+ o5 F" B* |
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc)), K/ N! A6 v; M9 z3 J
- )' P; e8 z: i6 f# ^& ]2 X. w( x
- (defun ver_x2 (value)5 k8 Q3 f2 f' L% |; ~' ?
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc)); h6 F4 R, u3 a. ]5 T' r/ U) e
- )
- H/ g" P. P" l# k. |6 p - (defun ver_y2 (value)
& M7 {' j3 A1 ~ - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))9 V7 w3 i2 M$ p3 W- w
- )) Q, Y4 P: Q+ C- {
- (defun ver_z2 (value)9 [$ Z9 z9 t% n/ E6 h: a3 C% x
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
9 m' A1 Q4 j( D3 d& E- b - )
4 g! K6 s5 C+ j1 T- m - (defun ver_x3 (value)8 G, ]1 n# I1 J N) p
- (setq x3 (verify_d "x3_pt" value x3))3 F6 A' G: V6 ]: j2 Y$ o5 \" W# K# ?, F
- )$ t# ^3 m( j* Y$ S% Q1 W: p8 o
- (defun ver_y3 (value)
# g l5 X0 a; U8 N4 `& y4 v# P - (setq y3 (verify_d "y3_pt" value y3))
. J% R! I( f' U. d5 c- q( q - )
; d; M' P; C& |0 M6 t5 H# U! |" j - (defun ver_z3 (value) \/ k! e8 Y. z. w
- (setq z3 (verify_d "z3_pt" value z3))1 h$ p6 o& O7 ], l1 P
- )
' o& _% |5 N. |4 H/ P; i - (defun ver_x4 (value); w: _/ a& V9 Y* x& Z# X0 O
- (setq x4 (verify_d "x4_pt" value x4))
8 G; P; o/ i, a L% k4 E - )
; W7 q$ C% A! m7 I% F$ o - (defun ver_y4 (value)
9 J$ H+ b& f9 n5 ]# L* R - (setq y4 (verify_d "y4_pt" value y4))
2 ?+ x1 \6 x, ?- c2 ^ - ): N8 S2 R' Z. d- W/ W4 l( n7 J( B
- (defun ver_4 (value)
8 T# I1 q3 n. J1 @$ ~. `* d& m - (setq z4 (verify_d "z4_pt" value z4))
D8 j' u1 ?: K7 p" R& ~ - )
! A' r3 |6 o) o5 C4 w - (defun ver_xscl (value)7 J }* s! W# S0 a& @
- (setq xscale (verify_d "xscale" value xscale))
9 D+ v* Q6 h% F4 I9 } R! E7 t! g' ~ - )
$ e v4 S N7 Z: V3 Q2 r - (defun ver_yscl (value); d5 B4 y a* B' m# `4 n9 [$ m, j+ |
- (setq yscale (verify_d "yscale" value yscale))% W3 G4 @- s! r. Q
- )
8 f, G' f. @' x8 K! V k - (defun ver_zscl (value)
* R$ e- T' M& t* r2 t2 Z - (setq zscale (verify_d "zscale" value zscale))5 Z9 O$ p J1 r% H
- ) L9 n) X* H1 F! Y1 L
- (defun ver_colsp (value)
4 }/ y9 l u2 u L$ }9 y, f - (setq col-sp (verify_d "col_sp" value col-sp))
, I+ \0 L6 w$ w7 O3 W - )# h- a! |7 h0 \4 l' B/ l" l8 W
- (defun ver_rowsp (value); m, D# k* w3 H5 O& z3 R. P
- (setq row-sp (verify_d "row_sp" value row-sp))
: x/ F* M# }$ p% k5 m - )1 l+ ~* K" X1 U1 a$ z
- (defun xclip ()+ t! I) p2 X! [8 Z# P% o
- (setq xclipmode t)
0 t3 N* s, w: ~+ S& x7 \, B - (if (= xcliponoff "1")( E$ I$ T. X( L, y5 J
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
2 d6 }" m* z% }) _- J4 D0 n! u+ V - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")$ e+ P0 ?+ b. a% @
- )
# o7 y1 U/ v9 a( j1 }0 Z1 M: ^, Z9 }7 S - )
5 d) |! r4 E/ O: J/ N( Q/ x9 E% N - (defun ver_rad (value)
8 D4 @+ j, \% {% a8 _ - (if (setq radius (verify_d "radius" value radius))& [0 _& p$ }( ?4 P* P3 z" z
- (calc): L6 B) n$ d$ Q1 V( E
- )2 r, R' e4 }. z5 y
- )9 r% ~. [* N4 A( n) F% Z
- (defun ver_majrad (value)
( ~' R% u; c! m7 N+ k - (if (setq majrad (verify_d "majrad" value majrad))
$ l$ h7 X( z1 I - (ell_calc_newval "majrad")+ R5 ~ |2 M8 j: f
- )
6 R& L$ j; A; g( s9 S6 [0 d5 R - )
2 G, K2 K+ m, Y" z( ~ - (defun ver_minrad (value)
4 C. ?, p1 T) W: W - (if (setq minrad (verify_d "minrad" value minrad))& O9 W; a; n7 u6 Q1 I7 u; A
- (ell_calc_newval "minrad")
) A4 ?! [3 b0 }# r - ), l; U4 {4 `7 f8 D4 ?+ Q
- )* O: J% W* k# x! K' N; [
- (defun ver_hght (value)
5 e( g+ n1 J* G$ E' J! o8 } - (setq hght (verify_d "hght" value hght))' ?7 d/ J8 @0 o6 B6 p
- )
4 m" ?8 `1 o. q: A - (defun ver_wid (value)
5 J Z7 j8 u: T$ } - (setq wid (verify_d "wid" value wid))" v( ]" Z; X8 C: r- h
- )) n! t( b" D. S! @$ Q- ~
- (defun ver_xline_x1 (value / temp)* x; Y! Y3 t+ `, Q; v m# g
- (setq temp xline_x1)8 K4 b. z0 s: g3 _( P
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
" j; Q8 P- w5 G$ P, N: I) _0 R4 m' r - (if (/= temp xline_x1)
$ ~& q. Z5 B1 _8 m) f Y - (progn (modify_xline 0) (set_tile_dirv) )- P) u4 ?0 {' n+ F8 e k! L7 k# O
- )- s9 U- G- a) x
- )
0 p$ E4 M" C0 A2 p - (defun ver_xline_y1 (value / temp)# C; s0 o; g# P$ H+ H$ u3 {$ m
- (setq temp xline_y1)& u$ T% t! E* M. ~3 \( M
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
- D% u1 ?$ C/ j! E! [) F0 F+ t - (if (/= temp xline_y1)
w# R; s" ~, y* s q - (progn (modify_xline 0) (set_tile_dirv) )
6 {- \/ H8 M- i7 W* ] - )8 n9 I4 x6 J$ @
- )$ _2 `3 ^5 g9 G1 v$ \/ V$ e
- (defun ver_xline_z1 (value / temp)
! l. d- v$ Z, C( a0 S - (setq temp xline_z1)! K( ]7 U& Q% _/ D( n: f2 F
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
5 T0 S' ], D1 R- a% Q" Y& ?+ _% o - (if (/= temp xline_z1)% p- ~+ {. l2 i6 H) R; A7 {8 y2 Q
- (progn (modify_xline 0) (set_tile_dirv) )
" l2 S& l8 }8 ^4 u) i/ V; Q - )
, e: b( D* Y5 _, }% l/ z - )2 H3 d+ r% a6 Q' U+ V, D5 `
- (defun ver_xline_x2 (value / temp)$ Z% H m. j6 l# S |3 J
- (setq temp xline_x2): O7 {" u( s. G% A% Y- l' b
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))9 o: l" I4 u. ^4 ]" d; g) i! S
- (if (/= temp xline_x2)
% r7 Y n! I8 F( x. y - (progn (modify_xline 0) (set_tile_dirv))" d! }/ z* D8 c7 R/ i6 }' C6 a
- )
O, \8 q. B2 l7 Q7 O- @ - ): z! W- k& H0 L$ m* g8 z
- (defun ver_xline_y2 (value / temp)
) M! V' T3 @( {1 }4 M - (setq temp xline_y2)
+ S8 V D7 |# S. J! B* d - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))- o" W3 U" O5 ?$ _( C# b3 W" F+ w9 j
- (if (/= temp xline_y2)
) t Y6 f i# t - (progn (modify_xline 0) (set_tile_dirv) )
. ^7 d8 o; u* B# X% H- I - )+ |9 v/ g# k4 e! u$ [! h' I
- ) B: G. c0 {+ ~5 o
- (defun ver_xline_z2 (value / temp)
/ n4 t% R+ @4 W3 C3 _, a - (setq temp xline_z2)/ P# F- _8 Y! h# K
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))4 E: f/ L% J8 N0 |( ?1 J
- (if (/= temp xline_z2)
6 [. W0 t, H' @" k* K) v - (progn (modify_xline 0) (set_tile_dirv) )
/ `1 s% O" w- b2 {4 t - )
( i/ K2 D5 n4 W9 q* w# X3 Z! Q0 u - )4 l7 d% C; [$ i! V+ t
- ;;
: i" c( \' x4 ?* l8 l; g6 Q - ;; Functions that verify tile values for angles" U' g3 t# T* I8 R8 ]
- ;;
/ M5 S6 ~9 U6 M7 R p; z - (defun ver_ang1 (value)
4 g* V e, t) d) J# p$ h; A; x0 T - (if (setq st_ang (verify_a "st_ang" value st_ang))
8 p4 C8 v3 D9 N3 f - (calc)
2 L6 q9 I& [9 `! V - )
* J3 X/ e. \$ J) o; w - )
+ w4 S# o& w- J1 `5 J+ o. g2 n! j3 O - (defun ver_ang2 (value)
# P" D9 p, G" e8 b - (if (setq end_ang (verify_a "end_ang" value end_ang))9 J7 |! ^ q& y4 _# X* c+ X
- (calc)
: {' F& M/ V! M7 q* | - )
; U- o$ ]$ j+ v1 i3 T; n8 F - )4 f: r' D. }' Y' g% m1 J
- ;;" X M$ w1 [1 v3 G& u: l
- ;; Verify tile value for ellipse end angle. Handled slightly4 h+ O" y- e' L
- ;; differently than the other angles.
$ t" z1 W% w6 K8 m1 b- G - ;;
* i: T# }3 A2 u) o5 b* P - (defun ver_eang (value)( f, P8 d! @+ t2 k! I" `
- (setq end_eang (verify_ae "end_eang" value end_eang)), c) P+ o- g8 y K
- )1 ~4 E! N# `& G9 F5 b) G# y
- (defun ver_rot (value)
0 ]# [# P* z( M$ Q- }# d4 ?# w# d - (setq rot (verify_a "rot" value rot))
% }. i$ q! Z n/ t* `0 a3 Y - )
0 m$ j# _1 @1 A - (defun ver_obl (value)
( `' o o5 a, U+ p% x1 t$ H% x% Z* w - (setq obl (verify_a "obl" value obl))
' t f% C+ b' p/ s. x - )
5 Z( Z1 S' M* }. d Y - ;;: H2 u& G( W) f" X% d0 `; G: y
- ;; Function that verifies attribute tag field for null string,
) O) t; J9 O( L* T - ;; or a string that contains one or more spaces. Tile value
( T; R1 [4 P" M6 t8 i - ;; is also converted to upper-case as well.
+ A" Q" M. [/ r# S- J$ V+ ^+ w& D% { - ;;
1 r0 o R$ G* p - ;;" d" e' @+ w. d* Z# i& k- e
- (defun ver_tag ( / tval)
9 ^3 c2 e1 r0 A+ p' C# y - (setq tagval (get_tile "tag"))
' W5 G' B2 F# k6 } - (set_tile "error" "")
# e+ @! U1 B7 L, g) c - (cond
4 |7 |. J9 m1 s" c - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))6 T2 j, j, {* i5 h$ }6 h
- (wcmatch tval "* *"))
* s, s( }4 j" i& A. B" r - (set_tile "error" "Invalid attribute tag.")
, C( E& p0 ^; U9 r$ n$ @# L. n - (mode_tile "tag" 2)
% n' d/ B- h# ]7 m/ B1 o( w - (mode_tile "tag" 3))
+ [3 ?! l" |. y8 f- H) l - (t (set_tile "error" "")# Y, b9 S Y+ g4 a
- (set_tile "tag" tval)/ g/ A9 e4 V. c$ N1 T
- (setq attag tval)))
' s- S/ ?3 K- N- d' |; @+ I - )
' G( o) m4 T$ Q+ T" P - ;;) `1 Q% s" w- h* u& F5 j6 J6 T
- ;; Calculation functions. G( L; C" \' u2 m0 q
- ;;. k( N0 P1 O/ f& x
- (defun calc ()3 f0 f, p. `2 x$ N
- (if (= etype "LINE") (line_calc))7 O* ?/ k& z# @8 z) o2 G8 l
- (if (= etype "ARC") (arc_calc))4 z+ N' q, U" C8 j
- (if (= etype "CIRCLE") (cir_calc))0 Q4 V' o7 B3 Z2 I: p! ^0 `
- )3 b$ I8 ^* a' u
- ;;
, ~3 l( W8 J K0 s' W - ;; Calculation functions for lines, arcs, and circles
7 X) G4 H; z: L$ F5 a$ h - ;;/ @( ?! X- j n
- (defun line_calc ()$ c/ Y) x7 x1 ?5 f1 h
- (setq stpt (list x1 y1 z1))
- i+ }' \1 x4 D# G - (setq endpt (list x2 y2 z2))0 d9 q& q( b( F7 U
- (set_tile "delta_x" (rtos (- x2 x1))), i) [# R$ o% [4 F2 ]; W
- (set_tile "delta_y" (rtos (- y2 y1)))3 p8 |9 u3 H( X }* T; P
- (set_tile "delta_z" (rtos (- z2 z1)))
: p5 x- e3 U; K3 y4 m7 x - (set_tile "l_length" (rtos (distance stpt endpt)))
2 q4 o' V1 F/ N2 {1 x3 _ - (set_tile "l_angle" (angtos (angle stpt endpt)))1 {: P3 H7 m8 b$ Y& c i7 \
- )# ^) |; `, B* q# n5 g. E4 U
' q/ w+ b; N1 g, f8 w) Z+ T- (defun cir_calc ( / area units)! M4 r# Z; |. p: Y4 ?
- (setq radtest radius)
5 i( z. X" N6 u4 Z - (set_tile "Dia" (rtos (* 2 radius)))
2 S0 ]# y8 ~" D! b) L6 {& a - (set_tile "Circum" (rtos (* 2 pi radius)))
! ]/ j/ r) T$ C' N+ `4 A - (setq area (* pi (* radius radius)))3 k. b! E! g9 P% H9 `- ~- N+ r! {
- (setq units (getvar "LUNITS"))# f; ^: n9 R! |0 i% Q" {
- (if (or (= units 3) (= units 4))) d" U# N: H8 Z7 s/ X$ ^4 O
- (progn
4 }: z6 F+ J6 @ - (setq area (/ area 144.0))3 S/ F% X2 k' x
- (set_tile "Area" (strcat (rtos area 2) " square ft"))
. r" J, \; Z4 w; G2 }: H4 I. D - )
; Z) T9 d0 ~* f/ J - (set_tile "Area" (rtos area))
# H% g9 T9 R# m, T" `/ \, N - )) ~7 ], u6 j: Y$ P+ a
- )- ?. a! i0 v% s+ n4 z) v& s
- 4 s C4 B7 X3 p* R
- (defun arc_calc ()
( a, u- }5 r' y0 L2 Y8 x z$ S0 c - (setq totang (- end_ang st_ang))
5 S# b, _8 M+ ^% e- g" J8 {! }- b - (while (< totang 0)* E5 B$ E/ ~5 `; q9 u( h
- (setq totang (+ totang (* 2 pi)))
" l- X& a& ?% h6 d. n1 q - )0 S& P6 h- {* M8 W; [" D5 S7 K
- (while (> totang (* 2 pi))
6 v! W* ]0 A/ _# C - (setq totang (- totang (* 2 pi))). ]8 q7 t( O* }2 q& n
- )1 {$ |* E- y" \1 y; G6 j
- (set_tile "tot_angle" (angtos totang))8 [# z) T7 x3 f( R4 _
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
3 X2 t$ ]- \ v% m - (set_tile "arclen" (rtos arclen))
4 V1 X, Z$ T, N! H: T1 h - )
2 C, E2 K9 ?* J/ J/ Y. w9 @ - ;;& E- B: `$ L! ]$ t
- ;; Calculate the major radius, minor radius, major axis direction.. G( K! m% a( m% }8 `
- ;; Get radius ratio. Convert Start, end parameters to start and end
/ V( E& f% @8 Q; w$ f, r0 S `$ q - ;; angles. Save Major Radius value in "old_majrad" in case the user2 j0 Q3 ^1 {) N
- ;; chooses to input a new Major Radius value later. It's needed to- M& C2 M: ?( x7 R7 K
- ;; calculate a new Major Axis Vector value.
# J$ _5 r: \ Z - ;;
3 S, a x8 d! B - (defun ell_calc ()+ V0 R. W. D3 }
- ;; Get major radius from the major axis vector.
% V/ U: l: ?5 d# p5 W7 F8 X - (setq majaxis (cdr (assoc 11 elist)))
% }2 o" q+ m- u. \4 v% e - (setq xx (car majaxis))
1 j5 `( f7 z! F2 x, ]) Z# y - (setq yy (cadr majaxis))
Y! {4 k) N% m" u3 s: H( h - (setq zz (caddr majaxis))" _" S) D7 ]5 _) M, E
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))! d8 N* u7 l. w
- (set_tile "majrad" (ai_rtos majrad))
+ `; L0 E$ L5 i# U/ Z- a - (setq old_majrad majrad)% E6 G. d; k3 y/ y% W/ t1 L9 [
- ;; Get radius ratio
1 u9 U5 K+ \# ?+ \& M1 C H# X - (setq rrat (cdr (assoc 40 elist)))
. a) [( Z- e3 d1 D, c) Z - (set_tile "rratio" (rtos rrat)). y- V. w8 S0 M U" Z
- ;; Calculate minor radius; o! U2 e! L3 R% D6 j
- (setq minrad (* majrad rrat))2 b2 P+ i5 z( P! Y( ^0 I; Y- ~
- (set_tile "minrad" (ai_rtos minrad))! b e( O* J# ]' i5 _
- ;; display major axis vector! s& B1 ~* Q6 W: G* q8 b
- (set_tile "Majraddirx" (rtos xx))
- j9 E2 C" {3 ]3 B; j' y9 H- Y8 F - (set_tile "Majraddiry" (rtos yy))* f. n5 ?8 {3 L7 c9 o$ @' a) ~0 b% }
- (set_tile "Majraddirz" (rtos zz))( a! s1 ~$ E, R. p9 M/ n, q
+ ^1 l: m1 u4 `7 v7 A7 o/ o/ m' Y5 d- ;; Convert start parm to start angle
& A6 P. f4 X8 i/ A" `' s1 x - (setq stparm (cdr (assoc 41 elist))), [/ J* n S0 O) \% k! V
- (setq vecx (cos stparm))
/ Y$ C1 y o0 n$ m$ S' X9 M( k/ b% b - (setq vecy (sin stparm))9 y$ Z* Q' c% ^# q& |. ~
- (setq st_ang (atan (* rrat vecy) vecx))
4 r0 U: m- H8 r( M - (setq tempst_ang (ai_angtos st_ang))
! g. N6 t2 o1 `. x7 {7 L. d; u - (set_tile "st_ang" tempst_ang)
* }$ \( q9 j8 N$ n# } e' X - ;; Convert end parm to end angle. If end angle evaluates to 0
) O4 H, @2 H5 b) V - ;; degrees then display it as 360 degrees.
& s: j5 q7 u, {' ~0 R' p9 N - (setq endparm (cdr (assoc 42 elist)))6 }9 |! o$ @3 v& X, V# k0 s7 H
- (setq evecx (cos endparm))
5 w9 X- {& d7 s4 }* @: C$ V! w$ I - (setq evecy (sin endparm))! {% H) E8 o& J% d
- (setq end_eang (atan (* rrat evecy) evecx))
% x8 a: S. P3 R: l - (setq tempend_eang (ai_angtos end_eang))
& @! }: }; A0 g - (if (= tempend_eang "0")* d: H; z- b% O: l. j7 [
- (set_tile "end_eang" "360")
6 Z! M* g7 |3 Q5 v* g$ s - (set_tile "end_eang" tempend_eang)# Y# f% {2 v( e: b
- )1 |# O. v( A! c: B T
- ;; Get area of the ellipse.
/ _( G* W6 V% K$ d0 l. t - (ell_calc_area)
# z. Y1 m1 F. g4 E- l4 G+ d% i - )' \, M6 c0 G, G
- ;; Calculate area of ellipse. If it is an arc then
0 Q9 c# X7 e/ O5 O6 X' A# c - ;; grey out area display.$ b J8 d( L9 z D, t* s. W
- ;;
( P2 f; F) f% z2 u# f - (defun ell_calc_area ( / area units)
3 U. b( ]. O$ J6 u$ m, b0 \. q5 z - (if (and (= tempst_ang "0") (= tempend_eang "0")), Z' G* v' G; J4 \( n3 v @& u2 q
- (progn5 m- j, h& o6 d* u( a
- (setq area (* pi majrad minrad))
S& a6 w$ _+ ~! G; ?% G4 v - (setq units (getvar "LUNITS"))9 l. t2 E& @/ u+ N
- (if (or (= units 3) (= units 4))
1 b0 B ^# |- r+ g( s - (progn
; x; z- _: S2 [% y - (setq area (/ area 144.0)) A) ^$ X* O }9 A0 c
- (set_tile "Area" (strcat (rtos area 2)" square ft"))/ N f1 f( Q. l3 v
- ), i/ V' L, H' Z; Q1 `. B2 `
- (set_tile "Area" (rtos area))2 v. s& f4 ^, G, L. [3 E
- )
( K# Z. r4 }# I: F - )
; W; t' N q2 A - (mode_tile "Area_text" 1)
9 S# R# _! O# ^ - )
: Z+ r7 ~; s3 G4 d& `9 j - )
' l/ A: Y5 S/ b2 F3 u6 T - ;;
5 I6 l+ u6 M8 J7 q4 E; `3 [ - ;; Calculate new values for ELLIPSE
8 ~ F2 K! S1 S4 C$ L - ;; Minor Radius, Area9 A6 O j. Q8 i* {% _' F
- ;;; [* z8 t6 J! F# t
- (defun ell_calc_newval (ell_tile)( W& G* {( A! e6 u) x
- (if (= ell_tile "majrad")9 z- I6 u6 _2 `/ Z
- (progn M4 I# n& c6 i
- (setq rrat (/ minrad majrad))" h; m6 z8 n7 N& c- e4 |: s
- (set_tile "rratio" (rtos rrat))& H% x3 J B5 |( T8 E* J
- (ell_calc_area)
0 [; w: n8 y4 _- t - )# m Y/ y7 o6 F5 w8 ^. x
- )* o% m( k" n) ^5 ^( X
- (if (= ell_tile "minrad")+ I& k, L+ }; L. Q0 R; R+ J
- (progn
+ Q# U0 o! B4 N+ c6 Z - (setq rrat (/ minrad majrad))- b; \& `/ I2 c
- (set_tile "rratio" (rtos rrat))
2 A; U0 `! Y6 t8 e* ^5 Z+ M - (ell_calc_area)
7 D4 v: U" e: l- h! m: ]3 @2 C4 a - )
# c+ u/ Y+ I: N - )& @/ K1 _0 E2 d1 k' [% y
- )6 f2 E3 m1 |- ~& {
3 B; d9 G) X4 ~ G4 U7 F d! o- (defun set_dimen_props (/ loop a stl txstyname)
, v7 R: I! T- @; ^3 K V6 O. I* [
( }" c$ p- o1 a$ t% G$ z0 G- s- (setq stname (cdr (assoc 3 elist)) ; get style name
2 t9 B# ^! d! j - stl (tblnext "DIMSTYLE" T)
+ D/ O1 Y6 [$ D" J: K - stlist nil)! a* i" ~% j% e9 x8 K
- ;; Get all style names and list them in alphabetical order. ~2 L# c6 T* E2 X( [' P' M" k* y# W
- (while stl
/ l, `1 w! V( y y: c# @6 Y - (setq sname (cdr (assoc 2 stl)))
: v9 A$ m# S$ }6 k! E6 R5 n1 f - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
' I3 U. S# w1 R6 k# l& f - (setq stlist (cons sname stlist)))3 i0 V) D5 ]+ `9 E( U) I- a
- (setq stl (tblnext "DIMSTYLE")))
1 ` p! ] p9 X6 i& c- S - ' `, f! {! F; b8 P
- (setq len (length stlist)
T6 z, w# x0 _1 M, R - loop 0/ u/ E& U9 E: K$ D
- dimsty stname
4 J* ]0 O5 }- E0 R$ L- _1 P - )
; w, z6 l7 o# ]- p* I" @+ Z' w
* K) T* N' v+ p6 Y+ g- ;; alphabetize style list, depending on maxsort
4 C$ s+ B/ ]& W! C, E - (if (>= (getvar "maxsort") len)) [0 F9 Z) E4 E# F _
- (setq stlist (acad_strlsort stlist))
0 W) u6 S' e4 M2 s$ ]/ r) v - (setq stlist (reverse stlist)))
, q8 Z3 n# Y) M* H0 a* B D
) ?7 ^# Q1 v3 \6 Z% x; `- ; *UNNAMED style (dimsty = nil at this point) is replaced with
8 T9 a9 {" ]0 {* @" H3 s! R - ; the current style. After R13, we require dimensiosn to have a
) E. }" _9 v: x - ; dimstyle, so we plug any holes where we find them.6 j% r# \: y, g; \6 ^" Z
- (if (null dimsty)
2 W0 h7 J# ]+ h* N - (setq dimsty (getvar "dimstyle"))
* R- _' r2 b' D# m - )
' T" E1 H. W) } - ; Show the styles in combo box
, Y7 h' T2 @3 V: E# n' I4 @9 P/ V - (start_list "mod_style" 2)
# `( P6 E6 k+ G( z8 u& N - (while (< loop len), L- @" v/ S0 a8 ?7 H6 g
- (add_list (nth loop stlist))5 @" S3 r5 ^' H0 q
- (setq loop (1+ loop))5 O$ l3 u. G& @( f7 l4 w0 f
- )( M& r9 n7 F( Y/ Q1 a g
X' j" W3 H( \& E& U8 R9 g- (end_list)
5 Y7 d7 T% U: `+ S - % m- R! B5 |: S8 Z
- ; Hilight the style name of the selected entity$ L5 M6 D3 f: e& Q/ F
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
2 C, B7 e1 K, \+ c! G - (setq loop (1- loop))) g2 ~+ Y& k! Q( D, J4 T
- )5 U# M( M" b( v7 ^$ Q
- (set_tile "mod_style" (itoa loop))- g0 D- u9 B& o, h
8 ]- e( W% a# S2 Q3 v2 D) K- ; The following is the list dimvars. It must be sorted in the same9 X( x# ~5 H4 Y9 g4 F+ g
- ; order as the resfub returned from DDIM (ADS module).
- z2 m" O- y& ~* m( x
4 V( ?, G1 X0 |7 m/ o- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
" G( K: @! }; O- {' p5 N% ?; w" m ~; y - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"# f4 `* X) [2 v& P$ ?
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
9 H7 b9 s) V" o! a# P; Z - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
& p, o3 l- t* ^+ B( v4 J ] - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"! X# y% g6 F( Z5 ~
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
$ z0 q9 b8 ~9 N& r, B1 z - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"+ b9 o* M" _) ~) Q b5 b% I& K
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
R; u9 F+ { t+ T- u - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
& C- B, w c; x! z; x# R7 ] - "dimdec" "dimtdec" "dimaltu" "dimalttd"! q' K$ F" Y! z5 P' b% B
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
, @) Y1 A' Y. {+ L$ u - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"6 w3 e# R! T7 t4 f, p- s0 k$ e- G& H
- "dimtxsty"
' i1 ]: @+ d/ |. A& w - ))) E# k6 `0 O+ {1 f
- (progn4 z6 {. m- r: |
- (setq sv_dvlist (ddimen_getostate dimsty)
- ?1 [1 f0 k- D" i; w6 F - txstyname (assoc 340 sv_dvlist)' Y9 B' x+ D* J5 |. q
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
" S# s3 C: v+ O$ l9 W - txstyname sv_dvlist)
% j- d" K$ \0 X* O$ F6 j2 N( _ - dimlist sv_dvlist
7 P8 H% p+ N1 s: e - )$ V4 k: `* @5 Z3 v- m. Y: d1 e
- )( V' z/ U$ S, H: _3 S
- (if (= dimtype "DDLEADER"); p* }9 h- n! ^' F
- (mode_tile "mod_format" 1)% g! b: J4 w- `9 X) G
- )0 a7 B- M9 ]+ j) y" E8 g
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")+ m6 k2 h! y" b8 o: l9 S I
- (action_tile "mod_text" "(done_dialog 4)")% K$ B' a8 G' s: q a
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
, e/ U2 C# [: y' t - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
4 U' Y) o4 Z$ \$ A - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
+ f3 B+ A7 Q! y% @) Z - (action_tile "accept" "(done_dialog 1)")0 ` E% F1 `4 s. C; |, ^' z y, v$ p! q
- )
N& d$ V/ j' ]$ t - ;;
) S1 K2 A2 s+ z* {5 O) O. q0 O - ;; Get dimvars that have been restored.9 y9 x3 L# f" R5 G
- ;;' N3 V. j Y' M' Z+ H
- (defun ddimen_getvars (/ elm dvlist dv i)
: a# K2 U9 i2 U7 l - (setq i 35 x, T$ w( `5 c J
- dvlist (list (cons 0 "DIMSTYLE"). n( r8 I! q" Y5 C2 f& ?" }
- (cons 2 (getvar "dimstyle")) (cons 70 0)), t. l# `" \' T- w2 N5 Y; U
- )- V' W \5 j) q. U V7 H
- (while (setq dv (nth i dimtbl))" A0 m& y5 `6 f. O6 c# N& u
- (setq elm (getvar dv)
* S" p$ ^2 d. Z- M - dvlist (append dvlist (list (cons dv elm)))
. |( Z6 U* \/ k0 } B% m: G - i (1+ i)5 \( F2 l1 Y1 k; G& F
- )
y7 k$ \3 N2 ]3 s7 j - )9 r Y) s K( d, `: F1 @$ \6 V! G
- dvlist
. Y3 _3 `8 T, V8 a1 _; a1 E - ). E8 G1 L1 M! m
* Y! ^* J8 q) x( G& e& [! V- ;;
$ ^) ~* i/ @, w, v! p' b! t: n& B - ;; Get the original states of dimvars. This is for DIMENSION entities.* M5 e& k( d0 f- N: s
- ;;1 [! Y: j# R5 o8 C" _- P" K1 y% b2 A
- (defun ddimen_getostate (dimsty / dvlist elm i dvvars), I# d6 x" p* F
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list6 T3 B3 l$ }) C1 n
- dvvars (ddimen_getvars) ; Get dimvars for that entity
! C2 V; A. e6 f! z1 o - i 1. u/ H. K9 _9 g6 |: }7 ~. N
- )
B6 T2 r# `* Z6 N* ?7 N" X - 6 D8 b( E* y# p, T/ K/ _, O1 m
- ; Create a list that contains values of the selected entity.
1 A! }& U. R" F* ^# W) H* {; I7 X( a1 c - # _3 q# ]( X$ r/ w$ K, e
- (while (setq elm (nth i dvlist))
1 s, V8 f5 Z3 u+ i" v6 H - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)2 L7 D3 T. o: |* I/ w: {1 i
- i (1+ i)
, d. q c3 W0 J$ u B. e - )
2 V6 N3 I1 ? ?5 U- i- Q6 Q - )
: @3 B I, R O" \- o( i" O - dvlist6 K3 E% D% M3 y- P" X
- )* \! k7 R2 M8 R2 q2 Q+ Z
/ p* j! d& e" d }9 z- ;;
0 q- S# ^2 I0 ?0 G M3 m1 f* }! i2 l - ;; Restores dimvars of the selected enity.
, B8 H* A5 ]& F - ;;( [) L$ h/ |0 q" U5 a$ I
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)$ x* O, h- v8 n
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
' W/ `4 I* e" o. f9 x4 r p- O - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
8 G/ k: X1 @$ |% h. k - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"9 e# [! \) Q" y: B2 x2 @
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"% y3 Y' K/ q/ ^3 p7 c! Y) F
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
0 e8 [+ F8 y6 I# _) d0 A - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"4 U9 L& m' h) R5 V
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin" Y6 u0 @) J) ?! t' s. o1 \
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"/ z" b+ s4 O8 Z0 F) w; k
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit" I/ z) C5 }. J: ?: n
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
! s$ p6 I6 t5 o9 } - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
, h6 g4 f1 L$ [) s1 ^ - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt": P" _7 l8 N8 y# ?1 T1 a R! n
- "dimtxsty"
. l7 m- C6 B) J - ))
" e$ G t5 p/ _6 E; U/ ` - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings* x1 w) ^! a2 I1 N& H
- (progn8 t6 B. M' k; y! s. E$ H1 ]& N
- (setq en (cdr (assoc -1 elist)))" U5 Q o. f) A8 |2 g
- (command "_.dimstyle" "" "" en)
3 A, s- { B$ P; K/ G* } - )
0 B" \% A' X- M* J# Q2 B- ?9 f1 y - dimsvcurset- S p2 h& j# h
- )
2 j& K. E# M2 p7 C8 @& l" ? - ;;
7 u# m4 p+ i$ R$ v8 z9 t+ ^ - ;; Modify Leader
8 M% N* n0 y2 l& Q2 X; Z8 s - ;;( W5 i' e9 v: d" E1 e3 i+ P3 {
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl: |* I+ @6 S% @! K; T3 h* O R
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
9 ?) [% H* F' p - dimtype dimsvcurset). v3 x @+ q1 j/ O& t& |
- (setq dimtype "DDLEADER"' `8 M8 B9 T. ^0 R0 k3 ^8 t: P
- dimsvcurset (ddimen_dimsty_restore)$ T8 {, ?9 I6 x. d: I
- )
) @( w! g8 i( o - (if (not (new_dialog "ddleader" dcl_id)) (exit))
G$ Y5 ]9 G+ v8 c" \ S - ;; Set initial tile values
/ p C3 }6 m( z# k& Z5 S' h/ y - (set_tile_props)
) c( K' }( i( M1 N; c+ n9 c - (set_dimen_props)! t6 L( ]6 {( X7 z
- (set_tile_handle)+ F' r& ~# y4 l# m! M
- ;; Define action for tiles- ?0 A, G9 H) K' Y
- (set_action_tiles)$ F. R) f+ @, K1 x" m/ ^* z
- (mode_tile "mod_text" 1)0 \/ k4 D( Y. x/ L
- * z, B7 ?- @1 U: G- u
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")& p7 H, w- J2 P( Y' L- _
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")4 K. z; a$ M ]4 d
- ;; Get ARROW and TYPE.
8 W* y$ G ^- Y* F2 e ~9 c - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
* |: w# s1 N& w1 C* F& Y - (if (= 1 (logand (cdr (assoc '72 elist))))
& V/ b, b* d, ? - (set_tile "s-s" "spline")
- P/ }8 t) g# j - (set_tile "s-s" "straight")
. Y4 M+ m# r$ a$ r5 ^ - ) w$ Q- b$ p- k8 ~$ \
- ;; Start the dialogue.$ H' s$ V" X6 p- @( g- I4 W
- (setq dialog-state (start_dialog))
4 r+ s, h2 s$ U) T- p - (if (= dialog-state 1)+ G: e; G; s( n" P; \
- (progn
3 R6 p) o7 G: g- C' r5 g7 r1 | - ;; update the style
+ i K& i% ~1 F) B3 M1 h - (if (/= dimsty stname)
: R7 c6 N; ^6 Q7 ]8 y7 w; s7 v - (progn
W$ V5 A$ j# e# C3 [/ A9 f - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
+ z- i Q3 G$ v7 t; Z* ^4 _: u - ; doesn't have it.3 S( G% w% h$ ~2 d
- (if (null (assoc 3 elist))
2 B; [% d$ W8 t) R - (setq elist (append elist (list (cons 3 dimsty))))
f8 o$ M6 B$ P - ; else just replace it.
! Q) @2 ^! ?- `" f2 h5 ? - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))5 l, `% e! T2 k5 s* H
- )
& u. n2 x+ t2 U$ L. \; @ - ; refresh sv_dvlist with new dimstyle.# Z+ |( b: |% f
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
! \! |* m3 Z, k+ z6 j7 J - )) i! O9 G. d' e& {0 y+ n
- )
- t4 d' M7 R6 w5 ~7 U2 A u3 j# P - (if (not (null dimlist)) ; attempted to change dimvars
3 s3 Z6 |6 z! v# V9 n - (ddimen_complist sv_dvlist dimlist dimtbl)- ?1 M* c0 d( ^
- )
+ X7 k( F6 t+ p5 @) I* j U( I - ;; update for ARROW.
( p; N! H8 I+ a, `* y - (if (= "1" arrow)" D* `3 s3 f# U+ h8 p' t) s
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
3 I( a- K. S% U' u- P6 I - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist)). v9 H% X5 E: ~5 [
- )0 B5 g, n# @9 B( z& [6 ?2 ]) u
- ;; update the TYPE.
- _! h& u+ I- `, }! A1 o" H5 Y- s - (if (= "spline" leadtype)
' ?3 x/ i, _* ^ - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist)). H% h! v2 b) I( n6 P5 K" t
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))$ T: H* ~, N0 a1 a6 J- b
- )( `( ?) w6 {- `
- (modify_prop_geom)2 H/ S% Q# j" _/ n, y0 j5 J9 x2 m
- ;; update the Color: |3 H8 ~5 t2 }' Z% W3 Z7 T" A$ n
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))7 I N6 V2 u4 ^* z s" ~# q
- (entmod elist)( V) Y% f# [9 `9 i2 F5 b5 P% n f
- )
: @; _: a; Q0 B% Q - ). p1 W9 w7 z" a6 g2 C
- (ddimen_setvars dimsvcurset) ; Prepare to exit- D9 K5 U* A( f& L& N' o3 }
- )
( X3 q, j3 y% ?) @5 | - 2 a1 s# @3 b; [7 O
- ;;
+ L' y4 ]2 S3 t/ t' H4 r - ;; Get dimvars of a dimstyle with overrides.
; |$ n9 X' l: I6 i7 V# f - ;;& @. M# O! ~) T
- & k+ G2 Q* ~* A
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
7 X3 f7 ?7 d" u7 y
+ i M$ F' J/ o$ ?- ;; Get override information for the specified entity.
8 v+ n6 a# M$ D9 d! c/ D# j- [ - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we. p9 t3 Z* p% d+ `" Z' h1 e
- ;; must obtain override information through this tedious operation.
, {- Z4 w0 P Y3 o3 | - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))4 ~" Y$ R7 |" A1 M( |8 I6 R
- dvlist (tblsearch "dimstyle" dimsty)
+ ^" f# t6 K: t' V1 X. _+ u - i 2
0 e5 z" I- J& X6 C7 L% s - ) y& |5 [" e! X0 I
9 I* |2 r1 s; F8 i( _+ @- ; Update the list with overrides if overrides exist.
* s: W! Q! k7 {$ j1 A( N" W0 O
& Z2 y) F. ]& }( W0 p2 J# J" l8 I- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))" H7 `6 k6 t& a) C3 \ A/ @$ s
- (progn: e# i3 q6 s; ]2 E4 Z" }
- (while (setq elm (cdr (nth i dimovr)))
, ?2 m0 `/ |7 [# b- P/ w# S: G! b4 H - (progn3 n- _# j5 m" [5 L( _% k
- (if (or (= elm "{") (= elm "}"))
1 V* X0 c! y$ f* }; k - (setq i (1+ i))) P% d& l5 x& s! Q1 B
- (progn5 S8 E0 W# c+ N. U) D' d" o
- (if (or (and (< 180 elm)& a: L8 s* ]2 J5 a9 ~
- (< elm 190)5 ]' s& v6 k m, ]# }
- )
3 ^$ o7 j3 G& I - (and (< 80 elm)
& a9 c! b: `8 M+ V( ] - (< elm 90)
! e3 X6 ^$ l8 a2 A - )2 O( ]$ Y0 Y$ O# o
- )0 d4 g* {6 X! f# C+ ?( @) u
- (setq elm (- elm 10))* m' Z4 \% l& |6 n, V/ d b
- )) L0 c3 y! @) L" v* v" p* R
- (setq i (1+ i)+ W# |- U3 T$ N& p3 I
- elm (cons elm (cdr (nth i dimovr))) x1 C( P: z, B) C# D' x5 Q8 ?, e
- dvlist (subst elm (assoc (car elm) dvlist) dvlist); J# L& w1 h- @0 R+ [
- i (1+ i)+ D) y: U* }4 s+ A- E5 v7 r
- )2 X7 P" E9 f9 Y! \3 p
- )' O6 d3 u' _. T C
- )
4 f4 L* k% @! L g - )6 b4 @3 e4 ~8 Q* v+ u3 Y
- )
% y4 m( J0 b0 _3 H - )
% I6 [9 l3 g% @& ^" @6 Z; N - ), X3 O/ q0 \7 ^* m
- dvlist
5 O% t2 o2 ~) T } - )
: K/ S4 a+ A* u
) h$ R' g. V% O3 A- ;;
# z; t5 t* }% g" j - ;; Modify POINT
, \5 B" W( w+ t( k# b5 S0 f - ;;
9 X2 j$ e- \8 z9 s a \ - (defun modify_point ()1 i8 l4 v% A3 w0 q/ X
- (modify_properties); A) N3 k1 L: w) S8 N7 r3 d; a
- (setq pt1 (list x1 y1 z1))
) Y: D) @. P5 I0 q- g$ P" Q3 X - (tempmod pt1 10 0)
9 u+ a0 J1 B5 |" M - (entmod elist)1 F' {1 \) V+ W' C, [) L1 L
- )
9 {$ P7 q6 w) m' F7 C& }, I: y - " N- W4 ]7 [- V8 Y: b
- (defun ddpoint ()& m, U6 Q t6 D
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
o* n1 k; X: i+ r# R/ C7 |1 \+ U: g' x4 K - ;; Set initial tile values! b4 g$ Q, P4 V _ X' I0 n
- (set_tile_props)
# Z0 F& h3 F3 e7 Y$ M6 ] - (set_tile_handle)
' R- c$ Y$ G3 c% B1 D - (set_tile_pt1 0)1 z# M8 K- z6 z( ^. C8 M9 z y) i
- ;; Define action for tiles
: L" s: ?* Y2 x - (set_action_tiles)& H* {& H8 W& J/ w3 g) s
- (setq dialog-state (start_dialog))7 h" f9 r0 b1 S7 d' W
- (if (= dialog-state 0)5 q6 l) c( {. s. F1 y9 q. z
- (reset)$ C. Q. r. |8 w7 h8 Z$ h* L8 y0 _
- )
' U! P' {- L$ w! h0 _9 f - (if (= dialog-state 3)
$ g7 q' o/ E" x( u8 ?% R+ s - (progn$ L' e# u, `8 o, D1 q8 t0 f
- (modify_point)
+ t% I' N0 i. W/ L - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
# \) f; O& R/ \# b1 K! e: J - (ver_pt1 0)
* I) D- P% `8 \7 B( c- j - (ddpoint)
1 y0 T5 L2 l0 K% C - )
2 |/ f6 [/ \0 f/ A/ m - ); h' n& V& @+ `' s
- (if (= dialog-state 1); c0 }$ ]: L. M4 K
- (modify_point)! q% }0 Y: V2 t' ]% x g, Y
- ); Z1 W' A- P1 ~% K, z1 [0 t. h6 `/ O( H
- ), Z: `- C. P; x1 @; ^7 u& C1 K
- ;;+ X% C. ~5 |5 Y/ r) W0 H5 A
- ;; Modify LINE
) p" S# y) u5 P$ G# v - ;;
* U, P6 X' r- c, K2 Y& e - (defun modify_line ()
5 E7 S8 f( Z" x( \. s4 L - (modify_properties)- r# U# D" A% P5 B- Q
- (setq pt1 (list x1 y1 z1))
# ^/ E# E j! R; C. S& \6 x - (setq pt2 (list x2 y2 z2))
! j% ?1 G( \% G9 U% w0 g1 y+ g - (tempmod pt1 10 0)
3 C( q9 M2 `2 Z) V3 p5 V/ m! K - (tempmod pt2 11 0)
( ~3 i5 u2 G( Y; p. ]% A% U, y - (entmod elist)4 w$ j5 q/ ~* b, G
- ), r, Q0 V- E" x
- (defun ddline ()7 V. M+ K& x% ?
- (if (not (new_dialog "ddline" dcl_id)) (exit))6 P) _3 y6 _/ O' V$ v3 r
- ;; Set initial tile values
1 j7 [# v6 O9 J: ^9 M1 R - (set_tile_props)
. g ~3 r' X9 H$ |$ i - (set_tile_handle)
7 w8 U) {3 H I' D& d4 Q" i - (set_tile_pt1 0)
1 @, b5 S4 e4 \2 [: W9 M9 P8 g( j - (set_tile_pt2 0)
, x: \3 a" K; L# O) H - (line_calc)/ f% J' N' j' {9 [
- ;; Define action for tiles9 g$ P3 f T3 ^! G7 @; f
- (set_action_tiles)
4 S, F6 _. a8 q - (setq dialog-state (start_dialog))1 v _- C* q( w1 N! W
- (if (= dialog-state 0)* d% P R2 ]/ ~. m; z! }
- (reset)
6 C. L8 S: d L% H; D - )0 l H! \( {/ z. k% e6 ^: E# N$ d# j
- (if (= dialog-state 3)& b( L7 B2 {/ A. M0 [
- (progn8 |' i4 {3 U. L) H/ M7 Q0 e
- (modify_line)
$ u4 }$ G# y* d! R! f, T - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))2 F& f' ~9 O- P% `, N B$ `, Y
- (ver_pt1 0)) h$ S0 K7 N+ S" N) @: ~
- (ddline)+ N' E* w( S( h% q4 B/ [) _4 O
- )
' @' T3 U8 C# e1 e - )& G6 X' W" e. ~& f3 p1 o2 B
- (if (= dialog-state 4)
2 C% G* Z: I( f8 K: m4 x9 e" y8 e - (progn
. B# @- O- h3 f - (modify_line)! H/ ^0 p9 ]# H2 K
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
# p6 Q- u$ ~; U( _, ~4 ` - (ver_pt2 0)8 m# n1 t! h, E8 J1 \. g
- (ddline): u( Q/ i' X9 R2 v8 U7 V8 T
- )
8 {( z$ Q: D$ `; b/ q$ x* a: L - )& o. M6 l5 R: u3 f$ c% i
- (if (= dialog-state 1)+ P J; B; _( A; r
- (modify_line); C4 B$ D" L. h% Y# D" a2 f- i, U+ M
- )1 F4 C6 O% z0 Q0 o9 \
- )
2 h& j# A. l3 _7 N - ;;
$ G' s Z! V. ?% C- h% Q6 v - ;; Modify MLine
3 w( _5 `# p0 _( x" O - ;;8 W. m& L( C9 j: {% R4 o. w: [
- (defun modify_mline ()
2 c5 ^4 G6 w+ i - (modify_properties)
. G5 d: o0 X, V- T - (entmod elist)- e' v8 @ T0 R e: H- W
- )
7 k7 K/ v# e; e& w a9 q9 V - (defun ddmline ()7 T, D' a' Q% M1 v. E' e' {2 r
- (if (not (new_dialog "ddmline" dcl_id)) (exit))6 W% T# }) L% ?$ R. }9 Q
- ;; Set initial tile values) v) A( x1 a8 v7 E1 }. u. c
- (set_tile_props)
/ k6 m1 h5 X, {5 v1 ~ - (set_tile_handle)
7 z4 \2 j( B0 c1 a% k( Q9 R& F2 U - ;; Set mline style text field.6 C8 R+ H& w' |
- (set_tile "ml_style" (cdr (assoc '2 elist)))( }/ T0 G, ~- T' I; f5 `4 ~2 N% n
- : S5 [4 a% ^1 ^& W, ^: o
- ;; Define action for tiles/ g7 V, d& |; L3 Z# K1 H, p- \6 Z
- (set_action_tiles)
" ^" M6 g8 Z2 a Y) w. w$ I - (action_tile "ml_edit" "(done_dialog 3)")
# b: Z _. w+ n - (setq dialog-state (start_dialog))
7 M. L8 e* K9 s. W! @$ `" k7 T8 o - ;; Dialog cancelled, reset to original values.
4 U% p( V' V) d, A- S - (if (= dialog-state 0)5 t# R* F& z: R4 c2 b: z# }. M2 S- I
- (reset)! v# |$ H& Q* c3 E
- )
! u3 q; N) K; U - ;; Dialog OKed, update the mline.4 ~) j1 b0 p' O- v$ F, v8 t% k7 r
- (if (= dialog-state 1)9 K% w: t6 n+ h9 o0 T% I3 C4 L
- (modify_mline)) E1 ~0 D- y3 g
- )
$ S$ Y# e1 \6 `0 Z8 q9 t - ;; Edit Mline, call MLEDIT.
! s8 s% a% o& j! x# O( w' Q - (if (= dialog-state 3)
0 _! |' O% q9 |8 D - (progn3 \7 t' T# Q1 G
- (modify_mline)3 |2 R1 g9 m7 c% Y/ a/ t5 @
- (command "_mledit")
: p' ^6 C1 k8 v - (ddmline)6 u; N4 B5 ^4 z
- )
$ O- }7 H* Z0 k0 s) ^ - )
5 j# G0 `: ~) c0 x& _ - )
% B8 T* i2 v( ?, A; x. O+ N+ D - ;;
* ~) g U0 v9 M! d$ V - ;; Modify Xline
) {$ c7 K& u; t4 B* T( u" y- t3 } - ;;
2 R9 e% X% r& P* B+ `* k6 J* l - (defun modify_xline (flag)- w# |0 F' m' T9 h. N; f2 h4 K
- (modify_prop_geom)' O- b2 ?4 T" d7 {9 z
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1)), Y. x7 x" X/ k
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))! w) B, J& o; a+ s, _
- ;; Update the Root point.
- Q3 k' @# x5 U: n - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
! u ~% I! e. T9 Y) v6 r - (assoc 10 elist). G( ]. f5 q& \4 Y8 B; J
- elist
. Y+ G; t. h! |% a+ x# @# ? - )
& Q, y) {: F3 u - )4 ~' M# y6 x' |- g
- ;;$ P( Z+ o% d( Y: m( ^; M' D
- ;; Calculate new Direction Vector WCS2 B6 r9 N; C J
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))* ^6 X& t ]8 J. @3 h
- 6 E% s# y. ?. @" l/ _% c3 q
- (setq temp_dir (trans xline_pt2 1 0))4 s& y0 R: i! T2 Y
- (setq temp_dir_x (car temp_dir))
3 ~2 Z# [9 H$ F+ b$ g3 n$ a - (setq temp_dir_y (cadr temp_dir))8 X; G. u3 U+ X$ |$ j1 i( F. h6 @
- (setq temp_dir_z (caddr temp_dir))% k. |% W8 B) V) Q& S
- Z" r: @; V2 \9 a
- (setq temp_xline_pt1 (trans xline_pt1 1 0))7 ~, l3 Y9 P. r8 @) X. x
- (setq temp_xline_x1 (car temp_xline_pt1))" z9 q/ F* Y" m6 L. t, [
- (setq temp_xline_y1 (cadr temp_xline_pt1))2 }2 l4 R+ p$ }3 _9 C2 l
- (setq temp_xline_z1 (caddr temp_xline_pt1))3 L( j% ^) i4 C8 M& x# a* I, m
4 w3 e6 E+ Q, M: U4 ?! d! C1 ~- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
+ N0 u5 S2 x6 @& e3 g- F& J# C( q( Q - (expt (- temp_dir_y temp_xline_y1) 2)) A1 X$ e; Y) G+ a/ ~0 L1 U' R1 y
- (expt (- temp_dir_z temp_xline_z1) 2)
6 v! @4 k. U( q8 A( E8 j- Q - )))
4 p) ]+ I$ g5 R# O& T4 _2 ~7 H) j - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
4 }- H- l( s j. C - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
& r/ |* ?+ T8 ?& ?1 C8 a9 a - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
, X: N0 d( F9 ?' M. ^6 h K, Y - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
% N7 u! F8 N' x - (assoc 11 elist)
" N$ n7 p( u' {9 R) L% ?4 N3 g! V* _ - elist3 w. ]- K* x D& P( h) _
- )! P9 w6 s: f. C" w% R! m* Z8 c
- )6 a. t' D4 g- ^, N7 F# n2 z3 a- j
- (if (= 1 flag); r2 K: Z9 ~4 T) @6 F% b
- (entmod elist)7 h. w: {1 m4 E5 \ D
- )
, ~+ a9 b- f6 _ - )
7 M/ c3 t5 N- e. [8 @; } - 3 [9 @( K9 ?& S+ Y( b
- (defun ddxline ()
. p, f& b1 H$ z5 D0 p( E7 g% N1 m - (if (= etype "XLINE")6 J$ }" G2 Q8 E( [+ N' [7 v+ Z/ l
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
8 }0 R1 w# I8 U - (if (not (new_dialog "ddray" dcl_id)) (exit))" T* o$ L: C! w' ^% d# l/ z& [& ^
- ), n+ T9 S' I u& N7 d/ m* e
- ;; Set initial tile values, u$ d* I. P: x
- (set_tile_props)2 c6 Q, d9 {& x: Q% O
- (set_tile_handle)
' ?5 c. t" c3 b8 e9 p& f - (set_tile_xline_pt1)! a$ o/ M& j( w, Z, e. R- k
- ;; Convert to UCS and post Direction vector./ O6 V# G$ D1 {1 [9 `
- (set_tile_dirv)% k* G2 N0 `5 x1 `
- ;; Calculate second point by adding Root Point + Direction Vector.
3 p# T8 v/ ~* l9 H1 P - (set_tile_xline_pt2)7 D1 h$ D( |" G" y' O0 K% S' w
- ;; Define action for tiles7 J! ~2 n; E/ ^# r
- (set_action_tiles). a) E2 ~* {/ C! z# D7 f
- (setq dialog-state (start_dialog))
" H+ T# @4 u" r) Y8 a9 } - (if (= dialog-state 0)5 M% {$ x6 n! P7 N& c# G4 U' Y8 V5 v
- (reset)
5 d- l6 k8 ^% p \5 }3 `% a - )& o" M, K% Q! r4 \: U0 W" C
- (if (= dialog-state 3)4 I) @$ I3 c6 L' A
- (progn/ A% D! q! }1 A. m
- (modify_xline 1)& ^* _8 t: v, W+ {
- (while (equal xline_pt2! r5 r. |1 _1 d7 B" ~1 Z' c
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
+ a2 ~- h6 h# ^: K - (princ "The Root point cannot equal the Second point.")
: \! B) d; X, p. u C0 y2 g7 s - )) e/ Z1 M* o& S% r0 @" {
- (ver_xline_pt1)+ y1 Q- W4 Z0 {7 m N1 B. \
- (ver_xline_pt2)3 p$ K) C# \* \0 I7 q
- (princ)
1 W, J0 l+ ?& u9 U - (ddxline)
* Z, e6 E$ P O6 c+ m8 b- O - )7 c+ e }8 j A5 v! B6 {6 U# c
- ) E3 F y7 K Q
- (if (= dialog-state 4)
, g) ?2 H4 }) x6 [0 B) u* |3 ?! f - (progn' z; M$ q/ @: h, V6 g
- (modify_xline 1)
2 ^0 B9 G3 ?6 ^' D3 D, Z, D- [! D - (while (equal xline_pt1. \1 o8 w0 S1 V$ C' i4 f
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)7 c: l. [3 t6 X0 l( t9 ~" r$ U7 T, ?
- (princ "The Second point cannot equal the Root point."); S: J3 [6 q/ Q4 x6 w' C) x
- )
: | G& R$ N. Y: W3 q& K6 Z - (ver_xline_pt2)3 Y; I) v6 K( O d( k' L2 a
- (princ)6 W, ?+ ]& M0 p
- (ddxline)
7 y, s$ T* k% b# Q& p) C$ k - )- z3 w2 B+ V) U6 S
- ), g7 x( A/ `& @1 K4 }, l- M3 E
- (if (= dialog-state 1)1 b1 N `! J- F. P* |1 C; R
- (modify_xline 1)5 d7 j2 o+ P" ^$ o. w+ n+ F0 L
- )! X3 v; v7 F9 Q3 Z( Z
- )3 ?* v& m" u% h) u7 v" \! F
- ;;! H# b/ G' r' J- |
- ;; Modify ELLIPSE
9 V1 {/ a& g* Y: ]2 i# U( H; q - ;;
9 U: d5 h B# M: Q+ q - (defun modify_ellipse ()' @+ K+ r4 w6 L _. f+ k
- (modify_prop_geom)
- W0 E* q' ~* ^# p - ;; Update Ellipse Center Point value.
3 T" a5 D* G1 q8 `1 b - (setq pt1 (list x1 y1 z1))& i$ }/ E0 i- Y
- (tempmod pt1 10 1)
* e; ^& B' n' Y6 o& | - ;; Update Start Parameter value.
9 U: l' S: i* Y - (setq y_val (sin st_ang)) N- ^: u/ E) ]+ u) ]# Z1 u3 E& a
- (setq x_val (* rrat (cos st_ang)))
$ {* b6 C2 W2 T5 J) j# ?# P8 s1 c - (setq stparm (atan y_val x_val))" W3 U2 W, d, D$ ~: u1 Y: _. Y3 k
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))% f" p/ j4 D* ^: m) U, U3 s2 q' O8 [
- ;; Update End Parameter value. Normalize it, if it's less than
4 g5 e4 I9 f4 ^& g5 I1 n8 o; U" | - ;; the start parameter.3 {& o; G3 ?9 z& I: V" ?
- (setq y_eval (sin end_eang))
- t( Z* u3 z2 d+ U [5 J8 O+ T - (setq x_eval (* rrat (cos end_eang)))
/ z+ N; k- H3 G9 g+ @1 p2 B7 [8 F - (setq endparm (atan y_eval x_eval))% ~* T8 J# m% {+ e. @9 N
- (setq diffparm (- endparm stparm))
/ d" ^3 X" _5 J1 d - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
4 D0 d0 p/ j% X" u - ;; Since zero length arcs are not allowed - construct the full
3 ]9 P/ ^! j7 `. Z - ;; ellipse in this case.
6 Q6 Q! G( Z( \8 g/ [; k - (if (<= (* diffparm diffparm) 1.0e-12)9 A, P: g i/ y P3 F# p
- (setq endparm (+ stparm (* 2 pi)))
- M* d7 _( B: f% s# B+ t- g/ L - )/ ^3 b* C' E& c7 ~& G" k# j: L+ r
- (if (<= endparm stparm)% q9 j J, s; g5 T8 \: X# v
- (setq endparm (+ endparm (* 2 pi)))
& V* F" u9 D u1 F1 d - )
6 Q9 G# M; F( v2 ^" W9 k - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))( {2 f+ C1 w3 i5 Z$ V
- ;; Calculate the Major Axis Vector by first calculating0 b! |) J+ R6 M2 y5 w
- ;; a unit vector using the old Major Radius value. Then
3 B$ F0 {! Q0 c% c4 D0 C - ;; Multiplying that by the (possibly) new Major Radius
9 m, M, h+ E( p0 S0 C - ;; value to get the new Major Axis Vector value.
( b! I, O4 Y, ~& T$ ~+ z6 V+ e* e - (setq unitxx (/ xx old_majrad))
% }. \" Q2 H5 o# u2 b% }2 U9 I - (setq unityy (/ yy old_majrad))2 {9 h0 I3 H6 Z% K' i% a
- (setq unitzz (/ zz old_majrad))* ~* |4 ]+ n# P
- (setq newvecxx (* unitxx majrad))
5 f" R( T, A+ l9 s8 I - (setq newvecyy (* unityy majrad))7 W8 j8 N; C2 B. v6 K0 n
- (setq newveczz (* unitzz majrad))5 O6 Y6 h* g. m3 X9 J
- (setq newmajaxis (list newvecxx newvecyy newveczz)) J4 G; B6 U2 l6 R2 {6 u. Z" M* G
- ;; Update Major Axis Vector value0 W& e, e8 w) `$ ]% n# ` \; b/ }" W
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))) \$ }- P8 r0 h& |5 n
- ;; Update Radius Ratio value# A% X# l6 k# s3 I+ p: d
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))8 g. A! g G+ l& ~8 @) Y" H
- (entmod elist)& R8 x# h3 [2 ^: J! u5 {' s6 n
- )
; E. n7 _3 B% A5 l. Q5 }. l - ( T% `& T0 H6 _& i. E, B6 R
- (defun ddellipse ()
7 m( Q% _; `! S) V - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
6 p" ^7 b3 X9 b3 ^/ C' z0 E; \# a, U# o - ;; Set initial tile values
+ Z9 o M4 A3 {- ?& j$ W7 K7 j - (set_tile_props)& e/ e8 H" I6 l/ M# w( `2 f. X& d
- (set_tile_handle)
" t1 q. W$ F6 | p - (set_tile_pt1 1)
7 T. n; {* e7 I7 R/ c) K2 b, w - (ell_calc)7 z7 P4 S* m; z- P! i
- ;; Define action for tiles1 o# q% v- W3 q u" s# t; F
- (set_action_tiles)& b+ W9 B' s& f! O
- (setq dialog-state (start_dialog))
. B' D3 a1 F9 y3 s+ W) b5 I - (if (= dialog-state 0)( I$ W- e. k3 \2 v* A
- (reset)
8 e. d) o& l' M: R% H- g( E - )
) P7 [! K0 @. G# ~$ V/ C+ O - (if (= dialog-state 1)
3 f% X* N ^/ `' b. [& I - (modify_ellipse)7 c7 ^+ i5 ?! |% d+ F5 U/ ]
- )! x0 a$ t$ F4 ~4 g( k( Z+ Z
- (if (= dialog-state 3)
+ c5 Q8 q0 h" @% B( r0 O0 R - (progn8 y" a" C9 I! m- u, r
- (modify_ellipse)1 e# ?4 C5 f: q
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
& I% S' F% q) G) o - (ver_pt1 1)
8 x$ ?' j. z. o( w3 k) X# Q - (ddellipse)
( z7 r7 X) ? R+ O% f$ p - )+ i8 s" h+ r f) i K
- )
. m- O9 L0 v* _0 n - )
5 f" X# I* P& @' l: B% B) c- \/ C5 l - ;;5 u$ f7 u# ~! M) j0 `
- ;; Modify REGION$ `& T: c, I9 Y- t" Z; [
- ;;" S7 s3 R' I" v' P4 F5 @* z
- (defun modify_region ()# o7 F: R, l* X- A. ]
- (modify_prop_geom)
$ N. @- Y" i7 t: ?9 J, A6 _4 i4 l - (entmod elist)
1 o$ U! ]+ m( P6 b+ p4 K; d, i - )2 z+ c6 L/ E1 l$ \. U
/ Y; \+ S5 l% V$ ?- (defun ddregion ()
9 X7 V, g3 i. d0 d/ ]2 B2 ` - (if (not (new_dialog "ddregion" dcl_id)) (exit))# p: P# R; s4 M" q6 \" _3 R, {
- ;; Set initial tile values2 E. W! w$ F* q" V. l6 F. H: t
- (set_tile_props)
! E3 z, {9 ^1 R$ z) q" ~ - (set_tile_handle)+ U) \, ~1 {2 ]9 J, |* d
- ;; Define action for tiles
3 Y! |2 z! I. P( b - (set_action_tiles)
" Y9 @7 {$ u2 j6 h- i - (setq dialog-state (start_dialog))0 @. l; G( U# h! u; B# V: }
- (if (= dialog-state 0)
7 {5 l/ d$ R8 i3 B2 ]) C - (reset)
+ |5 v" ?6 p& M: K: Q - )! E$ U# d: z7 Y2 \ L9 [ y
- (if (= dialog-state 1)
^; N& ]) w9 E. N) a - (modify_region)+ \8 w3 [7 {7 W
- )
% |0 S0 p. q6 x( M5 c - )' D; C4 U; Z( A$ o
- ;;( j) u' u: Q0 J$ K+ z3 B( x! ^
- ;; Modify 3DSOLID
) F6 ?( X1 N9 w# ~ - ;;
! w; [& ^+ p9 c6 s/ H; m - (defun modify_3dsolid ()
8 k9 w; h% b& l' [ _4 i - (modify_prop_geom)
& k- u7 j# _8 I& Y I- u - (entmod elist)
; f' l& }; X8 w - )$ \7 k/ t/ q) Q3 N$ O2 r1 U
/ [8 e' x9 a8 K, p$ G. a a- (defun dd3dsolid ()
0 b4 A% P; j5 R0 u4 L! i - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))) a+ O+ w% P! P
- ;; Set initial tile values
" P/ ^& `8 ^3 e/ [& k6 s - (set_tile_props)! F* x4 l$ T. M! d5 b$ h8 t- ~
- (set_tile_handle)
* q+ f& \, K) g - ;; Define action for tiles+ `9 V2 L; E* D6 E: Y
- (set_action_tiles)
" H6 M0 a8 V% J5 b7 N p: y! o) @ - (setq dialog-state (start_dialog)) c+ G8 z8 @7 S. E, j
- (if (= dialog-state 0)
+ |1 A6 }# p; h+ j, h - (reset)
! @; u( _4 ?% t5 `4 J - )
# H8 L* H* q. J' F# _ - (if (= dialog-state 1)
, G' e5 s! \$ c4 E e& A* Q - (modify_3dsolid)
( u/ v6 F+ l1 Q" n( y; u: q. \- Q - )
2 e6 q7 n& J$ Y+ y - )
; H0 I5 L( Y' [% V8 u2 A$ G2 { - ;;6 s" ^. p0 u$ m! E; Y1 O
- ;; Modify AcDbHatch
3 J" M& h2 \; l - ;;
. r! | I C# k6 y# E - (defun modify_hatch ()
- |3 l8 |# ?3 n4 h. l5 | - (modify_prop_geom)
0 H1 S6 e; f. \( u0 S* f* s4 i - (entmod elist)
0 o4 Y" [! s1 V' L1 `! h5 a - )) G9 e4 I7 J5 n7 u, q
- , B9 T# M0 m* y
- (defun ddnewhatch (); g$ d, T! w, D: {* S1 n
- (if (equal hatch-elist nil)
M% i4 [6 O" H5 a0 f/ H5 S- ]9 i - (setq hatch-elist old-elist)
. G1 [1 a1 E& t$ n4 F2 D7 ~' A# {+ X - )$ c/ f9 f+ j y& Z% A
- 9 p H+ O7 y+ h/ l- H. p" S
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))) V* x) m" f2 H& b
- 6 v2 }+ k3 U1 o0 k/ z# A' `
- ;; disable the thickness tile
! Z2 j2 q9 G7 r% \3 }/ P - (mode_tile "eb_thickness" 1)
& I7 r0 {* w. l, L. j - (mode_tile "e_thickness" 1)
: u! C( b! i6 k. U S8 R - 2 n8 U; @0 D4 B. b; W* X+ B* V
- (setq help_entry "modify_associative_hatch_dialog")
2 M+ ^7 Z6 c2 Y; e9 p6 l: @+ X - (set_tile_props)
8 j. x# F9 ^9 b# I - (set_tile_handle)& N! f; l9 Y, E9 u* K2 b8 ^: f1 z
- * \1 M/ g3 l1 q2 f5 S) w
- ;; Define action for tiles
4 u9 d! h! a2 ?& Z7 W# h& u5 q - (set_action_tiles)
. x, e. e2 b' _& F& q: j - (action_tile "b_hatch" "(done_dialog 2)")
* S$ k4 \( R4 Z8 @& z - (setq dialog-state (start_dialog))
& j0 }; p) l. W - (cond
/ A a( J; V3 R! k, x - ( (eq dialog-state 0)
5 U! F+ a& C1 I7 g, ? f( o - (setq old-elist hatch-elist)7 s; |6 v+ T# n3 o6 L
- (setq hatch-elist nil)* j6 Z, E0 A) ^( H5 W
- (if (= (checkforlockedlayer ename) nil)% a0 P t E {0 z9 t* i/ ~
- (reset)
, u% f( _1 m9 P$ a/ l) U0 j N - (progn ;;; special handling for locked layer reset
m5 R' N4 A3 N0 n% T: ~ - ;; unlock the layer9 |; K, ]0 i. [! F( F, j: `1 u
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
8 \. [- n+ L' Q6 z - (command "_.-LAYER" "_Unlock" layername "")
+ \2 ?& H2 b, V) g - ;; reset modifiction& L! R$ s: Z- e; C
- (reset)9 \" a; P0 B2 }
- ;; lock the layer again
C) J: H( F( a% n+ I - (command "_.-LAYER" "_Lock" layername "")0 i. s7 s" _6 }8 Y1 B
- )
L E9 y. k9 A7 C - )
4 K8 z* P. y8 D7 k' X8 i$ X - nil ;;; makes (ddnewhatch) return nil for Cancel
u: r: ~! Y+ j - )2 u6 B9 w7 _' g' E
- ( (eq dialog-state 1)1 m1 R, l$ G9 D
- (setq hatch-elist nil)
3 P& j: ? w7 W _% i - (modify_hatch); F) m7 h3 q% @: q' P
- T ;;; makes (ddnewhatch) return T for Ok
8 I" ]3 G" {1 r- ]3 N- P - )
' `8 C; l7 z& k7 \3 @# i$ r _, ] - ( (eq dialog-state 2)
) a" o# J; U- C- t9 p
6 D/ J( y/ {- i- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))4 u; y& I( S; H- t4 X
- 46 b! F2 Y$ d1 ]" w. R) h+ I
- ) 4 J$ t- N [+ p' Y) w1 N) y
- ;;; new selected layer is on a locked layer
, z, |% j& M9 c8 a1 X - ;;; we can simply modify the hatch properties' N9 U* @& P5 ]' q+ |) i+ K
- (modify_hatch). e9 V$ D( K- [* k. S8 A( v
- (progn' e3 ^" @" I) x5 G
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))1 L1 n+ @& j4 Y/ A0 t K4 k
- 4+ G) r% A3 Z9 l/ C& T2 N8 r
- )
2 Z; B: e F P; d9 j5 T' R - ;;; We changed the layer previously and now the hatch lies on a locked layer.
* w$ R& k: t# D - ;;; We have to unlock the layer forethat we can update the hatch properties.+ y; j, |4 o4 I8 W2 w
- ;;; If we don't do that (entmod) fails to update to the new layer.% Q# n, s: X2 x+ f
- (progn) s( Q) d! c2 o
- (setq layername (cdr (assoc 8 (cdr elist))))
' {5 |9 C4 ^+ b5 c# Z9 t7 @3 B - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer$ f0 a: j* Q% W4 p2 G4 J; w9 |; W
- (modify_hatch) ;;; update the properties
: m1 o' W$ _% n% q. d m1 ]: a - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again( p; e+ v( F' `9 ]6 u$ `
- )
# ~; K! A/ F9 e0 f2 K) {5 E5 g - ;;; All other cases we simply update the properties
; b2 i7 P$ T4 w G' V8 Q- Z# S4 _ - (modify_hatch)+ v0 j+ e- S3 Y
- )$ v! @$ P1 j {( H4 p
- )* I' k6 u/ u$ a/ O9 J( N
- )
, l" Z& ?# [" U4 u& x5 X - (if (= (checkforlockedlayer ename) nil)
) m% a! S3 d1 v" j) l. U+ C( h - (command "_hatchedit" ename)% N, m6 e1 b; L3 v+ N
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
' z# T# F+ E9 W' S3 V - )1 w. x: @) ?! m; L" V' a, F- G( D
- (ddmodify ename)
' q: e' G5 p( }! q4 R0 x s - )
" Y. }$ B) J& P( L/ v - )
5 @4 M& g8 C5 ~ b7 V( } - )
5 s; i/ L( X' d ]- m& d" K0 A - ;;
# P, u$ v+ J* Y/ G6 h: a6 l* a - ;; Modify BODY
& c% \, _: l0 h2 t' R( _ - ;;; R6 ?* I; [- Q5 u7 J
- (defun modify_body ()2 A5 L( n' Z3 d) M6 q
- (modify_prop_geom)
& J& J: @& {/ y$ S+ w - (entmod elist)% L4 b' \- `& t4 U+ n! d
- )9 P- I# c7 n1 u: h, V$ H
: W. [% ~4 o# D! L: R, y- (defun ddbody ()2 y# T) {8 ^5 X5 P
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
$ {4 S) h8 n) H( w( ? - ;; Set initial tile values
0 g7 B2 c8 I( Z+ }' P2 o7 r+ ^ - (set_tile_props)4 _% M$ ?8 N" H) n( F$ a/ [
- (set_tile_handle)1 E* ?* k% Z8 q/ H5 Q" V( a; s
- ;; Define action for tiles
% V7 `" f/ K% O% e, [% m - (set_action_tiles)
1 |% x) o# z, v - (setq dialog-state (start_dialog))/ l6 \) W# h" D7 \( C, e
- (if (= dialog-state 0)
]( I& L$ U3 i# }+ d% i - (reset)0 V( t, t! G% k2 K! I
- )5 i3 r, R: T- q
- (if (= dialog-state 1)
+ z$ [& H8 X- O0 V F! w - (modify_body)
+ ?$ B6 u+ N# _. `! } - )$ F' C: A \; w. U! @7 c/ \( b9 Z
- )! }) Y$ Z$ X9 m; G0 v* Q
- ;;/ z: Y3 N" c% q+ Z6 Q8 e Z
- ;; Modify CIRCLE' t" p3 t% q+ t T+ Z2 M
- ;;( O, G1 I H+ l2 A( W v3 S
- (defun modify_circle ()7 e& P; h9 P4 s* |, Z$ n2 v& R
- (modify_properties)6 U. i+ g$ _0 ?7 N, Z5 e
- (setq pt1 (list x1 y1 z1))
8 R6 Q0 f9 B# ]5 N, [1 r$ O4 r - (tempmod pt1 10 1)
1 z6 O: W7 P1 ~ d% z. z - (tempmod radius 40 nil)
% A# n0 q5 [+ l3 J - (entmod elist)' u: X( i( N2 I
- )
5 M1 M) i% ?$ z7 J - 0 \4 t- k1 `0 X4 |) N% z) S6 H0 Y- ^
- (defun ddcircle (). h: R" x0 s! P$ X4 ?
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
6 l+ ]% G- P: r( U - ;; Set initial tile values
' t/ d0 F+ s6 G4 A% c& V3 u4 f - (set_tile_props)
+ d( O& C/ F: r9 Q' v# S - (set_tile_handle)
, w- Y$ j% L% H9 a! J. v - (set_tile_pt1 1)
3 `- u2 w( o4 E/ J2 o& C, f - (set_tile_rad)
' D7 l/ y% U6 c1 f" I* _ - (cir_calc)
8 |, k4 q" |% s1 R* S* w- Q7 [! a - ;; Define action for tiles
3 Z2 W1 b3 m" j8 C - (set_action_tiles)* D8 p2 _1 g7 `$ E& \
- (set_tile_pt1 1)) o. o/ c- C% ~5 q: J! X
- (setq dialog-state (start_dialog))2 O2 g8 b1 D" A; }7 j! y; B
- (if (= dialog-state 0)" b. d( m& M2 Y1 o, J
- (reset)3 i, o7 b" i* l0 m, c
- )! [! Y) ~" y! P5 E' x
- (if (= dialog-state 1)/ T: f8 Y+ |1 _
- (modify_circle)) S& N! m8 J# A
- )
' l; P! D9 F, A - (if (= dialog-state 3)
& \+ x7 R6 [. Q1 A$ K - (progn) g+ d2 j6 E' V- e
- (modify_circle)5 F; E9 h: D' h p: }. S# ~
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
5 e- m" \$ u0 w E7 f - (ver_pt1 1)
$ T, x) s/ L/ I% s' G - (ddcircle)$ D) J. T9 o ]
- ) v4 k' J# M( k& G$ G. X
- )
6 C- E$ I8 Y! \' F- b* r+ E - )
7 i9 C4 [1 o% `) i) T - ;;
7 g# @! w0 ^) w - ;; Modify ARC
" i! Q/ }/ s- V- F/ f' F: F, e, T6 m - ;;/ Q$ I( n9 z# N# M/ j
- (defun modify_arc ()& M7 U% O& m, s7 c7 t0 [" Z9 y, Z3 r" }
- (modify_properties)
4 ]* k/ _; r- A$ V - (setq pt1 (list x1 y1 z1))/ A* K3 `0 J/ b- C' e. P7 b) g% j. Z
- (tempmod pt1 10 1)
1 g6 M8 C: C$ L8 K - (tempmod radius 40 nil)9 r' v, |& ?+ n) k
- (tempmod st_ang 50 nil)
9 N" d4 O! b) n+ N6 V1 I - (tempmod end_ang 51 nil)
/ C4 q7 f1 G- N" m# F - (entmod elist)
0 M; }, `+ n3 X$ e0 a - )
. ? f' J! k/ N; a0 L - (defun ddarc ()' K4 {9 K; s2 W8 A, A
- (if (not (new_dialog "ddarc" dcl_id)) (exit))
6 L3 ^+ Z0 a6 p2 D7 H" } - ;; Set initial tile values
# B: a8 ?3 o- a4 L) F! X - (set_tile_props)8 ]0 E2 x) i1 `, ]
- (set_tile_handle)2 @2 B* S( B' h+ z3 T/ D$ @) r
- (set_tile_pt1 1)1 z# {4 X; P4 W6 L4 Y9 o0 o$ I
- (set_tile_rad)
+ H: ^8 u5 c3 k: V8 X( c3 Y) Y" ? u - (set_tile_stang)" c& P* {: _) W9 h* ?5 _
- (set_tile_endang)* X% ^$ E5 k" L! v4 u
- (arc_calc)$ Z, Q2 O0 w8 Z' m
- ;; Define action for tiles
3 o& S$ s9 Q2 h! @/ ]; r - (set_action_tiles)+ M; M" m9 }, ^$ m# ]& _( @
- (setq dialog-state (start_dialog))
' o! b$ h7 ?' C$ {# k7 U - (if (= dialog-state 0)
. z; W ]6 a- p; j- p( q - (reset)
3 T X( c! |3 ~% ] - )
- r! w9 \& F: R, ~- Q( w - (if (= dialog-state 1)1 i$ T6 j, e4 r4 Q# G9 N
- (modify_arc)$ l) ?* [" W: j" w: Y ~3 N) F
- )3 z6 l! ]$ Q' m$ U/ }7 @: m
- (if (= dialog-state 3)
6 b( z: u; g: z - (progn
/ P9 O9 Q# z* C* R5 h+ \ - (modify_arc)) Q; a" z9 E8 s; U& M; H0 F. ?& b
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))6 F7 c: E8 d X% E; Z3 A
- (ver_pt1 1)) c& v! L' h; j# \: t
- (ddarc)
L* m& i& E z5 _; ], }7 ^ - )/ D0 K3 B2 y- M! x
- )
7 t) E" `9 h0 G% k/ E3 k2 n - )
/ N1 W1 g9 ~5 m- a6 E9 u( R) K - ;;6 G* M8 F+ i0 C
- ;; Modify SOLID or TRACE
9 ^' k9 ]5 P9 L0 } - ;; Note the Z value of the object is determined by the Z value of the fourth. ?$ Y c6 ]/ R3 Y+ E- t
- ;; point - code 13. Changing the point values of a solid or trace from a UCS$ I; D$ l7 {9 H- G
- ;; that is nonplanar to the UCS the object was created may confuse the user.5 h" S" x$ t& {0 A3 f6 Y/ e
- (defun modify_solid ()
* N! ~0 k1 a4 M1 r; t3 R - (modify_properties)$ v- c+ ]$ k3 |6 V0 P8 `/ J
- (setq pt1 (list x1 y1 z4))
- l* }7 V8 C( X& p - (setq pt2 (list x2 y2 z4))5 G7 j# G7 V& V) y$ d* ^
- (setq pt3 (list x3 y3 z4))2 W; x1 G( g* G. R
- (setq pt4 (list x4 y4 z4))
% W/ N+ S: }9 K* F0 [" l2 k% U - (tempmod pt1 10 1)/ a) B+ j( r* I+ `. e) Q2 u' V
- (tempmod pt2 11 1), B, [4 k3 P! p+ `
- (tempmod pt3 12 1)
6 b" U) @/ j0 }; P - (tempmod pt4 13 1)
4 u9 L* s" {9 q$ E& g: j5 Z - (entmod elist)5 j7 D; n3 L. r) T. z' `3 G
- )
: m+ N+ j1 ^6 a - / x( [& \# H$ l- S
- (defun ddsolid () s! b h: |9 U, X+ i& E- b
- (if (= etype "SOLID"); V# y6 i0 I. w; X
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
7 h# B2 K$ I4 T2 [5 K - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
" P: }2 K9 t/ |$ R/ q, B' R - )
7 q W* G: W v0 T$ K9 A - ;; Set initial tile values
( w/ K: A# d6 |( J: I! J8 W - (set_tile_props)
1 I$ P" W" W% `' ~( m& B - (set_tile_handle)
/ y6 j; I, Q& p) @1 v - (set_tile_pt1 1)
. u& Y, [& K( H; O2 p5 ~ - (set_tile_pt2 1)
/ K1 ~( w! ]" b# X. Y# s6 g - (set_tile_pt3 1)
! Z: R5 q' E; u3 C l - (set_tile_pt4 1)
$ g/ t. U$ w' j: O. c+ ?" X - ;; Define action for tiles
! t+ s5 Q/ ?1 _, K# Y - (set_action_tiles)6 c/ G; N' [- M
- (setq dialog-state (start_dialog))
$ N& U) y& W$ v - (if (= dialog-state 0)0 p- M' q9 c; o2 ]" r. n; k: [
- (reset)
1 \: l/ b! X/ {1 e/ c - )
' [# j& j0 k* l7 |8 I! n - (if (= dialog-state 1)
+ w2 B" r- x" O$ X) R& r- q: H' } - (modify_solid)
4 r2 D1 f: V$ T - )
* ^( E- }$ Q. d8 J0 y - (if (= dialog-state 3), d" a1 ?2 T9 l1 _: q' G9 W" _' E0 C
- (progn* y" Z! U6 H( f3 W# d
- (modify_solid)
5 x6 R* @9 O; n - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))2 l/ R8 a& S: u; a
- (ver_pt1 1)* ^# X* F* z! ?0 d
- (ddsolid): R$ A/ ~6 j6 ~' u2 x# |* @3 z1 C
- )
, s+ ?; |. W' S* P: V - )
7 \9 Z1 g8 K. o' E) { @$ C- E - (if (= dialog-state 4)7 d- U6 |& C0 a3 z# |' H; j3 P
- (progn/ A( ^- O: B$ Q+ }% U% g, j# n
- (modify_solid), V+ Q$ P S3 H1 @
- (entmod elist)
9 @* u% d' I3 n- i7 X" ^) { - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
- r' F6 F* S ]8 }, u: H( r - (ver_pt2 1)
9 ?3 h0 |5 g% j5 L - (ddsolid)' @" y; y- b8 _, h
- )) X ~/ j" G) s1 j+ X
- )
) H1 [* e+ F8 F+ O - (if (= dialog-state 5)
3 E) s* @4 u' c; }' q% v. h - (progn
4 D6 Z2 m _; R9 o5 u! | - (modify_solid)
W# t. j h8 }; l) N - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
9 X/ o* E1 O9 p3 @+ s - (ver_pt3 1)
/ G: P+ L% V! x; t8 } - (ddsolid)
, F6 U2 u+ c! I0 w - )
5 m; W9 Q& U, H7 N+ E9 w - )
& z6 g$ b8 g/ R( F' K - (if (= dialog-state 6)/ R9 S7 f7 o" c8 V0 M, |! e9 G
- (progn
# G0 m5 h) I) U9 w3 g - (modify_solid)/ P7 X" I, B1 q& A" C% r
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))# J8 A$ d( U# F% D. Y
- (ver_pt4 1)
9 Q/ @7 D3 h) p- `* ~. v1 J+ n - (ddsolid)$ o: o+ i; ?: G" T
- )
2 b- n6 H' K- D& h. T/ E1 W - ), T3 |' C4 ~( F- A7 N; q- ?! L
- )5 Y) _2 x5 i+ d
- ;;. b) e% ] o9 N% C' b. K
- ;; Modify 3DFACE2 m' ]( F7 t, Y4 J
- ;;6 r3 v, H3 d/ Q% c$ A
- ;; Check visibility of edges
X) o/ X0 A K7 ]0 Z - ;;
& I: L. J8 W, D! ?1 j - (defun edgetest (/ bit1 bit2 bit3 bit4)7 h6 \- P. V, Y4 D0 I! I3 L
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))$ q3 l7 v9 V# ^7 ?
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))0 Q1 X. C0 D/ y: C: g' X- U
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
% N0 [; Z" s- k7 N6 a - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
& x8 G) U% q+ q( B - (+ bit1 bit2 bit3 bit4)
# `; A' |4 T) H, z - )6 d! g2 q9 O. J- {* v: [+ X& u1 C
- 8 V/ L" z* M+ Q6 j0 z
- (defun modify_3dface ()( U: l c, V: }$ X+ f: X
- (modify_properties)
8 K" G/ z& W0 [1 e2 M) | - (setq pt1 (list x1 y1 z1))
# A, m- P$ r5 P6 m6 y - (setq pt2 (list x2 y2 z2))& \8 m2 v' n& b9 B# y7 b
- (setq pt3 (list x3 y3 z3))' A$ O- f9 a, O c( j! T
- (setq pt4 (list x4 y4 z4))2 Q# t% e) V2 G' L2 f
- (tempmod pt1 10 0): O; x1 b3 p+ T& b5 @. v
- (tempmod pt2 11 0)
6 E- f0 V! E2 j- v( z - (tempmod pt3 12 0)
5 t# ~1 u4 z, l; w - (tempmod pt4 13 0)
& {& u& S1 T' ?+ n$ J - (tempmod (edgetest) 70 nil)
! H, ^. A9 s/ k8 x1 D N. g - (entmod elist). g) I) g' l: a: B2 A
- )5 O% h# `$ |6 ^, L: G _; K! e/ o8 @
- + Y6 K" I& g- n; F9 s: V
- (defun dd3dface (), q! C2 o( H1 A) b
- (if (not (new_dialog "dd3dface" dcl_id)) (exit)). Q/ _0 Q' A( F! q4 _
- (set_tile_props)
% E- ]# V! e+ D" f7 Y9 S3 P - (set_tile_handle)
5 ^5 d+ l U, x+ W - (set_tile_pt1 0)) ~" ?: i. ^) v- y, s" g
- (set_tile_pt2 0)* n6 G2 U6 a7 O$ F/ i5 F. L0 B
- (set_tile_pt3 0)6 y# C/ X* V C
- (set_tile_pt4 0)8 ?% F# o$ {8 H: K
- (set_tile_edges)# \( g3 D1 U l* _
- ;; Define action for tiles! v" Y7 g6 a0 B% n( q0 ]
- (set_action_tiles)
/ X9 P6 l( `7 \3 T) H3 u - (setq dialog-state (start_dialog)) ^" p4 e9 w5 p- M e: k
- (if (= dialog-state 0)
+ C! n" s" c- _) u2 w% q& U - (reset)
3 n" R7 W& ^( b/ c/ i/ f$ i M - )
+ `" L3 p$ e& Z7 f" K+ v. L1 H - (if (= dialog-state 1)
" h; v6 G* [! I V- H - (modify_3dface)# q5 a: \% u# L& X+ p
- )4 _3 w+ i1 |2 k. N
- (if (= dialog-state 3)6 g9 r& c; K2 s: ~* R0 t* w$ m
- (progn4 Q3 C. ]9 a" E' Y2 c' E
- (modify_3dface)
5 P# X. X/ o2 ~0 m. y: l2 Q. Y - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))) J5 H2 U/ ? \9 X. f
- (ver_pt1 0)
4 }- Y. C* a% C9 B, r1 e# f5 E9 g - (dd3dface)1 {) K7 ~1 R' C6 D
- )5 Y$ o, L: k1 D$ I+ ^3 ]
- )4 p1 A* p- w+ G
- (if (= dialog-state 4)9 u0 b# M: D5 y: p k; i
- (progn' R' J) i4 B5 u
- (modify_3dface)( b/ G1 b# @1 a3 K) V
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: ")); y8 `1 g* e0 A
- (ver_pt2 0)0 a$ Z6 ]' i1 G$ L, [( c d
- (dd3dface)* \: F- v! Z, m* o0 z
- )
/ n9 q( Z" A( G; a; B0 j - )
, B1 \( S2 l% w: Y1 N( o5 K - (if (= dialog-state 5)6 R, e6 {2 f8 [' [, c6 X& F* K2 y
- (progn) B5 q& k4 d" L2 D
- (modify_3dface)
; h3 R2 `6 I7 p* v v ?6 f1 }/ P7 S' E - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
/ N: [, |+ u6 `+ ^3 w - (ver_pt3 0)
- F. b6 ^ K0 a6 T5 U - (dd3dface)" \; P5 v, T0 z) h4 G/ k' r
- )
8 K" c6 }# C. e7 ` - )8 C& a# d3 W% q
- (if (= dialog-state 6)5 z- l! b/ _( g! E
- (progn5 f4 o# p2 W# T0 U3 ]" e8 s' r Z. G- F
- (modify_3dface)
, i' I) E4 K. ]: ^" B. v f( [ - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))* k* {$ y3 z" X
- (ver_pt4 0)4 i# K! s' I/ N
- (dd3dface)
* }, {& D% x* x" { I3 m1 B5 g - )
8 X* V# Y6 R0 p9 p - )
5 q8 ?! {0 C% {1 s! V1 W1 c - )
7 s% r1 C7 W* d3 q; F
5 f' A p. K5 E4 Q- ;;
b- m" t% G, K" y7 D: W - ;; Image functions/ Y, i" C& `5 p0 s
- ;;
5 h4 U& g$ v C4 S3 R - (defun image_scale (/ upixel en n userscale temp)
# i( L, {9 R. C% \ - ;; Calculate the size of an image pixel in AutoCAD units
% r7 N$ w! ]5 }; ^( Z- u1 }1 {* A6 A - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
) M1 K* K( ^' l+ j; e- P6 I - 4 y5 v4 g' \- T. Y5 _: D. ~
- ;; Retrieve the user scale: k/ `2 D& S2 h" l! G
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
! h0 }# S, e" M. {. k; q2 k
7 S: |+ X3 c' L/ ~3 g `2 \- ;; Next, extract the image units and pixel resolution- L1 W. V6 J5 g1 L# `) a0 B3 Y
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
( B& p* `1 ~! {/ T: \ - (setq image:scale (* (cadr (assoc 13 elist)) upixel)). i! d% B& d. [( s& O. J0 }) n ]* B
- (progn; p9 j# F; O R0 |1 n, ~; O
- ;; Convert the user scale to the proper word1 H$ m/ o" e* _/ W
- (setq n (cdr (assoc 72 en)))
* L+ }$ J+ C) N5 Y8 E; U9 }4 U2 S. a - (setq temp (getvar "LUNITS"))" \- f: d* M. G4 t, S
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
7 e5 m' a- z! R: D- g - (if (= n 1) (setq userscale "Millimeter"))
- P+ r. U5 o r6 J, N - (if (= n 2) (setq userscale "Centimeter"))
1 f. T v% g# y2 ]; {1 b - (if (= n 3) (setq userscale "Meter"))# A" e$ j1 ^/ |/ k
- (if (= n 4) (setq userscale "Kilometer")): Y8 ~+ n5 B' P& Q/ P: b1 |
- (if (= n 5) (setq userscale "Inch"))3 j2 I, {, Z, [: e: z# ]0 [& `
- (if (= n 6) (setq userscale "Foot"))
O/ @- B+ U" a7 |& ?# Z. ^ - (if (= n 7) (setq userscale "Yard"))! Z2 X9 u) Y ^! _/ g) @4 A
- (if (= n 8) (setq userscale "Mile"))+ _# s+ I' r* E
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
8 B( T7 Z. ~* i7 B. x* p9 X - )9 c( q8 b" C! e+ ?' ?3 n: C% S& {7 j
- )
' J4 j& O* L/ ?/ F - )6 E. G5 u3 w+ [9 \
- . d9 n7 ?' J) M- A. \
- ;;
0 F7 q: R' w0 [ - ;; Scale factors for block insertions* j1 ^+ K0 n1 \" y) E) S
- ;;
0 }7 R) t' {. g8 R$ s - (defun image_set_tile_scale (/ temp) g) w# \5 j) e- \5 u
- (setq temp (getvar "LUNITS"))
2 Y0 p% J) T, ~1 e - (setvar "LUNITS" 2)
0 F# h/ q6 S) s2 b" x f - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))6 n+ u% ]# i/ ^9 k, R2 Q9 p( J# _
- (set_tile "wid" (ai_rtos (* image:width image:mult)))! A' @' T: ?: L6 ^( t
- (set_tile "hght" (ai_rtos (* image:height image:mult)))9 k. t& Y: e! C
- (setvar "LUNITS" temp)
. |+ m! g4 u" Y9 z - )
5 z; A, [1 ^* d" z - 8 `, [8 g( q7 p6 N J0 ` y
- ;;% w) Y% M/ ~3 x" H- G4 {
- ;; Set the scale, width and height values appropriately.
# ?9 r0 u& v/ b; N2 ^ - ;;
* I! L* J; T( s8 l( g; i - (defun image_update (field value / orig_value new_value mult)
5 }' A( v. c0 o - (if (= field "xscale")! ^+ V- d: i1 \
- (setq orig_value image:scale)0 g$ d; x0 a+ z; j
- ); ]0 X) @) ~! `! i) Q. x
- (if (= field "wid")) _8 C v ]+ r* V7 w
- (setq orig_value image:width)% K& Z" e/ _ p2 h. t1 D5 \+ e
- )5 Y) e1 q) M! [- S
- (if (= field "hght"): |4 v H$ g9 a3 _" T* `! r% r+ E
- (setq orig_value image:height)
# R& j' N3 G9 k( j* L# A ` - )
# `) R# j2 d; I9 ~0 J6 ] - (setq new_value (verify_d field value (* image:mult orig_value)))
1 v- C! p# L7 w% L. ], I - (if (/= new_value old_value)
* f& E6 Y* Z# L - ;; Make sure the user has entered a sufficiently large value9 D1 i; T" e5 l" d- _) j( ?2 O! n
- (if new_value& }; C& X7 I" k
- (progn
' t, Q7 _. z. D! n - (if (< new_value 1e-8)
3 ^, B4 n# [% A, J+ \ - (setq mult image:mult)
5 R7 x7 t4 w. ~0 g - (setq mult (/ new_value orig_value))
2 I2 u$ T2 i& L1 P3 Q$ N - )# R5 c; f x) t1 u0 D
- (setq image:mult mult)
- r Q8 X* V# P5 r# I. H - (image_set_tile_scale)
( B/ ~( M( |$ D; A - )# a& Q( C9 s& O# n: d* a
- )
. U4 u& F; ]$ Q- d$ \7 F5 u - )# T7 R5 b! k4 H; y8 `0 G' a3 W4 N6 O
- )2 L% [' L& @" L" L& {. X% q0 q
+ \0 Z: Y. o3 n+ i( q- (defun image_disp_opt (bit)
: h! f) }: U' K, |8 N - (setq image:options (Boole 6 image:options bit))
" E/ N4 X% v9 v - )- \9 W# i3 e8 X( [5 n
- ! Q% ?' v' a. v
- (defun image_modify ()
. _# `8 c( B8 N6 J - (modify_properties)
& a6 ?$ @& A, o# Q4 I2 Q: o6 @ - (setq pt1 (list x1 y1 z1))0 F# x# R/ v" f7 G
- (tempmod pt1 10 0)8 r8 b# d/ W( o
- (entmod elist)
0 I* @2 I7 X9 I9 k; p - )
! k6 ^8 m, J' B% G/ I2 }
' Y3 ?( O; | Y+ R- (defun image_clean_variables ()/ Z9 k, v u- d9 x+ }& n
- ;; Clean up global variables used here
- p% a8 y. i, g# o0 G( T/ Z - (setq image:scale nil)
; ^8 ^& W) \2 ^+ N+ ] - (setq image:angle nil)
5 V% d$ A" L! \0 m& [; o - (setq image:width nil)
2 T% w/ ?, E2 K' S - (setq image:height nil) n0 _8 A* _1 ^+ J& H( \6 `# O" z
- (setq image:options nil)
0 M9 n X3 Q1 @$ b$ X - (setq image:oname nil)
, A/ U6 V6 L2 Q6 d - (setq image:olist nil)
4 B: L8 H* J# q - (setq image:mult nil)
: T' q$ r3 \7 v6 r+ Q/ ] - (setq st_ang nil)2 b# w1 a8 `6 ^& P$ f7 O# N- P
- )5 x u' g6 E- T5 a: d4 H/ q
- 3 t. C1 ]0 s! o& [& l
- (defun image_scale_vector (v1 value)1 Z* o5 U/ @ K( d0 O6 U9 [3 t
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))' h: u5 C" {" c% b2 i: p4 {8 W' I7 }
- )
$ X( v* I6 V7 E3 p, G - 0 G& h5 ?: t+ z1 ~- n
- (defun image_cross_product (v1 v2 / vx vy vz)6 ?# H6 |. J0 ?/ f; C- s. W- v, f
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
K: W* I2 M6 M/ B; h7 y - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))+ Z9 n- X/ E* Q1 e9 t7 j- @
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
+ [' e6 V: w7 Z) q! p" Q0 r - (list vx vy vz)
2 b4 x& n% x: M! Z9 A" l) b6 v - )
+ @) e! N: z: N: l5 g - ) M4 t }& q( d4 G* Z
- (defun image_dot_product (v1 v2)
% b" h/ M+ R) v6 x* B) t - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))2 ?; R) g4 j2 a$ ]/ ^: i+ r. \
- ) ]4 e. h. A4 c+ X( d4 O) v0 O o8 Z7 \5 ]
- # C$ y. G- d2 x0 r& o: e
- (defun image_add_vector (v1 v2)
+ e1 l% ?" L& v( W6 C( J, ] - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
5 i1 M* Q. j( h% Y( R& r5 Z; m: w - )
# |% T" _0 L, L, T; `
6 } P, o1 u* {* x& O- (defun image_subtract_vector (v1 v2)
6 E% @8 j$ z" B) b - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
: ^2 A3 l5 m j# b9 U2 K - )4 L: F: h& k- o) Q
& @5 ]# D' e5 \! K; f" X" T' d- (defun image_normalize_vector (v1)
, p# g% N( p' c4 C - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1)))). a% u( {' {4 E& V) V. F
- )
4 n1 h' M( D, e* h - " D$ [/ L) M8 s, h
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane) S+ e& k7 W7 B3 }$ b
- ;; Normalize the axis+ T" w/ y# o" i, R: L+ e8 P& J
- (setq axis (image_normalize_vector axis))* w' U; V1 [- ^% M
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
+ j7 D& m( Y5 J1 ^ - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))9 e4 G+ e% Q% t- A7 c3 P8 g
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
* n- {& G- t8 Z) t6 c% W - (setq in_rot_plane
* v* P d, ]6 R- ~. \) e8 f7 m- M - (image_add_vector
5 l. E* W, U O$ g, b. a - (image_scale_vector axis_x_in_rot_plane (cos angle))
1 d* b# I4 P( _+ W7 `6 r: a - (image_scale_vector axis_y_in_rot_plane (sin angle))0 {) L$ b n, W9 c- Q- }- {8 m
- )/ x1 y# Y# y2 q5 A* p" }+ R
- )/ \- x) ]% {; w9 K: A/ U
- (image_add_vector along_axis in_rot_plane)
2 A( J7 g y7 ` - )+ H) F* a5 l/ y
- 8 ~0 I- A# P! M1 s( [ D
- ;;: u( I8 |" ?0 F( k, @
- ;; Calculate current rotation angle if appropriate., X t9 o" r# {8 [5 \) k) T @
- ;; If not, grey out the rotation field./ L& g2 L4 e% `* ^7 y* c, r
- ;;
$ n' i6 x, o. N - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
! }2 s* ~- `& I$ [ [2 Z - ;; Determine if image normal is codirectional with; `6 d, w8 q- F3 t. C
- ;; the current UCS Z-vector.8 \% Y7 ^( Z* h8 m- p
- ;;
% j$ |) ^2 @/ r$ q" W. O - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
1 {% H$ {0 b. m - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))& d6 ~& e! a2 } z: |0 j! v
- (setq zlength (* (last normal) (last normal)))
+ n+ \- J" P$ {/ M& \ - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.& ~0 T# J3 {4 x; S; l
- ;;
( d e6 ^9 M& v& r* f - ;; cos(.0001)^20 f. W. y+ i; {# N# L+ G( _9 `8 ^
- ;; Tolerance = --------------
: Q. f5 _* G4 a0 M n - ;; sin(.0001)^2" h0 h. H8 l& t4 R, F1 [
- ;;
9 K e" y9 l. U$ p+ N - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))# \0 H" _$ |7 i: i9 D* w; F9 b R
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
$ c1 y& i( t1 d- E3 v- Y - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
7 D Z" D- |0 f3 k1 W - (progn% z" w0 q+ ~0 A8 k7 S5 m, O9 |' ~
- (mode_tile "st_ang" 1)
# X/ B2 V, z5 v$ Y - (setq image:angle 0)( v! H% s* N; w' {6 n o
- )
! l* e2 E9 }" c2 I - )* P( J% ]$ s9 y
- )
& V, t8 e* g. x
! S+ @0 M- a3 q# m8 I; ]- ;;
+ H& _0 ^) [$ s5 Y' Z2 t9 W8 J - ;; Modify Image. j, W; A K. M) l7 e9 H+ ]- ^' l
- ;;! }. D9 C! J/ F! h# D
- (defun modify_image (/ u_vector v_vector z_vector): \! f& u! o# F( Y* C% T% `, i6 B3 S [
- (modify_properties)
( k( n) f+ q& V* S - (setq pt1 (list x1 y1 z1))
& s, X/ @ b0 v/ l# m3 x - (tempmod pt1 10 0): C } L3 X8 n$ V
- ;; Make display option changes to image
7 z! ]8 {/ T" k, j% Q: {: s9 C$ x - (emod image:options 70)! Y9 u; ^2 O7 W3 w
- ;; Get the u and v vectors* ^+ d* i: ~ K* p
- (setq u_vector (cdr (assoc 11 elist)))
& A: A. I6 E3 V7 \ - (setq v_vector (cdr (assoc 12 elist)))
+ x( c) y' m% U6 h2 v7 C" {, C - 0 g" D/ H! J% j' b' x3 F7 v
- ;; Make scale changes to the vectors
) L3 m0 H& |6 d# M- ` - (if (/= image:mult 1)) v7 s; L/ Q8 c
- (progn" \* \" h0 R0 l* W8 [1 O2 t' b
- (setq u_vector (image_scale_vector u_vector image:mult))
4 b+ o* g) F4 N# I4 C& \7 S' e" g7 A - (setq v_vector (image_scale_vector v_vector image:mult))0 ]1 K9 G% b& L0 a9 ^$ d
- )1 O( ?, G9 J" l" l% J8 M1 v x9 f
- )8 T1 s7 T2 Q) F5 r% c& ` [) N! a2 ^
- ;; Rotate the vectors+ U' ^9 i% B6 }( @& Z, T& S8 }# |
- (setq st_ang (- st_ang image:angle)). O8 [! M7 @2 V/ ^+ Y% S) d
- (if (/= st_ang 0)
8 O1 W% @, m8 Z; e* u - (progn
) D8 a8 z# P4 b - (setq z_vector9 V7 p8 W. i- G9 z, g% R
- (image_cross_product
+ J) w& @5 Q! M% D2 y1 P - (image_normalize_vector u_vector)
$ p/ g8 I) t5 z& V9 i. t6 r6 L - (image_normalize_vector v_vector)
; S, {: E, ~& a# _. U' X) F. m - )" a2 T. J% t# H
- )
+ j9 |# Q a7 f5 f0 @4 f9 E" u. C - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))! T1 x* e# Y2 k$ k# Z
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
3 L# N* X) }: F! d, U$ @0 X - )* O. x4 g' N( L n6 I% e
- )
8 i$ \# h+ H: Y, I8 _ - (emod u_vector 11)% x- f, w: t( } P4 e& X1 A
- (emod v_vector 12)
) c4 y; q! a! m& u1 h) }, y( R - (entmod elist)
% e( T4 ^- i) J+ g$ R* Z2 U - )
+ \) V/ d; W" c5 `5 }' N - 2 { }5 t# k* Y6 z0 G$ D9 \ k
- ;;
9 p6 c1 ~4 \9 Y0 ]4 k; P - ;; Run imageadjust on given entity, working around possible
) K0 ~' R. P) M, P/ H7 D/ e8 b - ;; re-entrancy problems4 _8 u$ r) k. c8 Y. c1 ^
- ;;$ u, y# E U2 }$ b9 g1 w. e7 ~$ u
- (defun image_adjust (ename)+ B+ e6 b& {, H0 f$ E
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...9 C1 Y+ \5 [# w: Z
- (imageadjust ename). N+ v# ^; K0 ?! r8 G6 M
- )
( v* F, ~. q3 k
9 O/ y5 w& g9 c6 `- E; X. v) Z- (defun ddimage ()$ m. p: R6 T, f# g" f* Z
- (if (not (new_dialog "ddimage" dcl_id)) (exit))
& n8 F' Z* m$ V" d$ E8 D - 0 Z ]; {+ y- ~& c" ?) V) G# G& V% t% p
- ;; Grey out the thickness field.
- `5 u- G9 z0 u3 `1 Y0 X5 l3 F - (mode_tile "b_thickness" 1)6 L7 |: g) {# B. w# B/ y& M
- (mode_tile "eb_thickness" 1)
( v2 }& ?. a7 S) q4 K
4 _# f# R% J& z j% f! R- ;; Get the associated def object.# Z. w' Y. x. K3 V
- (setq image:oname (cdr (assoc 340 elist)))
7 z2 w$ v9 C) G- U+ s" b0 s - (setq image:olist (entget image:oname))* T; _1 Z. M) k2 W
- ! w H2 e2 G6 g. f0 V3 J8 C- F
- ;; Set initial tile values
1 o8 G2 o% b7 D+ ~! ^ - (set_tile_props)8 w* n# K2 |% G. G l* {/ G* [
- (set_tile_handle)6 @& y5 S, d7 y& Y3 g6 T4 i
- (set_tile_pt1 0)
8 G# z7 d# y2 w; o- b - (setq image:scale (image_scale))- t* P; g/ \6 N0 n
- (setq st_ang (image_rotation))6 @2 a j$ N! |! e- z& c
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
& ?+ E5 ~+ @- g' N" R7 q - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
5 P- c2 \$ s) |8 o - (setq image:options (cdr (assoc 70 elist)))
" A! ?: H' C+ Q, w) m' \' | X - ! l5 f R- l5 Y8 N1 b' a
- ;; Record the last multiplier for use in image_update function
' I. k1 t% ^, y" a% R1 f) i% v' C# k - (setq image:mult 1)
' [6 P& N, Y6 J) J
! Z7 t( S- z4 ]$ V2 A- ;; Retrieve the image name9 d0 J& `# l. l* r- A
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))2 } [ ~6 K, \8 n' a
- (setq flag 0)
$ u5 i( z5 | q - (foreach n fn& ^- A& v1 V, L2 j
- (if (= flag 1)6 H$ E7 W* M1 P# P& q" u# ~# }9 T, h
- (progn% \) |2 t) y4 N& o4 [$ Y
- ;; Display the image name/ p; W5 ?" z/ G3 N1 G4 d
- (set_tile "image_name" (cdr n))
. s2 X( s( f5 y9 ?2 X9 z0 J+ d - (setq flag 2)
. G) E* t/ |% ]% c7 s* L - )
+ i5 h1 ]/ P- B5 }9 R - )4 k7 W$ v. y t% ^7 {# [& w
- (if (= flag 0)# |2 l- {3 `/ F. C
- (if (equal (cdr n) image:oname) (setq flag 1))- f/ L! Z5 Y. y1 v, S$ o
- )/ x3 G2 G5 R b1 l( [* ?
- ) B& p4 }) Y0 r- j8 M
! v3 F5 g [# U$ W5 f. p5 ^& v- (set_tile "image_path" (cdr (assoc 1 image:olist)))5 k6 y: {: U2 P1 d& F* |
- (set_tile "st_ang" (ai_angtos image:angle))) G5 C' J' B/ x% W8 Q Y3 o
- (image_set_tile_scale)
6 e; B8 {8 l' f( {' G
5 e7 \& U8 J& O* M- ;; Check the appropriate boxes5 B! ?: b6 u6 T1 a
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))/ p: N7 P$ a2 N3 c1 t: L2 U
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))! J+ h' L# t% R( s) |9 I4 `
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))3 v8 W u4 Y& c" S
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
; B# H" g5 Y+ B& j+ I - * C% ]0 t% v; V$ s, P: k
- ;; Define action for tiles1 M8 B8 m+ y8 X2 ^
- (set_action_tiles)
7 U2 \1 G+ S; e' a - (action_tile "xscale" "(image_update \"xscale\" $value)")$ C7 p; e a, U% k+ J
- (action_tile "st_ang" "(ver_ang1 $value)")5 s5 t, \$ N$ Q5 G
- (action_tile "wid" "(image_update \"wid\" $value)")% p( y2 y( I; u9 S
- (action_tile "hght" "(image_update \"hght\" $value)")7 I" F6 s# V+ u4 o4 d9 _: D2 m
- (action_tile "image_show" "(image_disp_opt 1)"): i6 J0 G( D4 ]
- (action_tile "image_non_ortho" "(image_disp_opt 2)")& l( z, h) V& h: U$ n6 {# M4 D4 Y
- (action_tile "image_clipped" "(image_disp_opt 4)") d$ |0 q# s, t
- (action_tile "image_transparency" "(image_disp_opt 8)")
! z+ r' N0 j* q3 }. F - (action_tile "image_adjust" "(done_dialog 4)")
% ~& Z, D4 N5 Q8 Z# @3 d. w
$ V9 k, x; `1 R7 h. o& E$ K- (setq dialog-state (start_dialog))
% _6 c: N0 Z/ m - (if (= dialog-state 0)
3 E, N; Q% O7 s* N - (progn
+ Y5 f0 N y0 r% c$ R - (reset)) C' |0 O/ W/ z
- (image_clean_variables)
$ h _$ J" X$ f9 t; q - )
1 @' E, f" M8 o0 h - )$ H: v8 y- @+ K- \
- (if (= dialog-state 1): B. w& t9 v7 y5 j$ ^6 V; s+ g8 Y
- (progn" y4 [! f9 d+ h/ U1 F) U& j1 R
- (modify_image)0 L. q) T8 M ^, V" R
- (image_clean_variables)
* M& @ g% n2 x& K" V7 l - )
- T$ }1 X6 z( W7 P) M - )
+ y4 Z6 ]: }/ u/ L% }' Y% A$ w9 Y - (if (= dialog-state 3)' R% N, N4 U: X3 O
- (progn
5 W' d1 r4 r) F3 r0 z2 f; K - (modify_image)2 @( @8 a, j) X: _8 ^! N# u) ^ O( Q! u
- (image_clean_variables)
' z( d6 A& ^' |/ C8 C( V - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
0 p0 c" u' L& h4 w- Z4 T) n - (ver_pt1 0)& m6 j1 e# G0 i. ?
- (ddimage)
: ]8 O f) O2 | C0 R$ L& E - )
" x$ M% Z9 R1 R& X - )
& f. f1 B# x5 m) n. G) S' ]9 n; S - (if (= dialog-state 4)
* s0 P* r5 o" k& D# k# B9 Z - (progn
$ P9 y7 n+ u% ]) w* p - (modify_image): k9 C- `8 h- Q5 n% p9 H
- (image_adjust ename)$ ]* r1 X4 D4 z8 f
- (setq elist (entget ename))
3 _0 i: B" |4 l2 o3 S - (ddimage)
0 k$ d5 S1 f8 _! f - )
2 P$ n) \6 ~3 L) N/ m) W5 n - )
% q" ]1 ?/ Q) N p6 u3 W, B - )
6 c+ J0 J+ V* k2 ]" b
9 J8 u* R. h+ i! I- ;;8 V+ Y' w" ~4 P3 v) _; R; v
- ;; Modify BLOCK (and its Attributes, if any)
0 d& Q- Q2 k9 j& k- ^" W( o9 x. d - ;;
" T0 ?. k% ^! \2 K; u5 Y: O - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr9 x, i8 T# t9 a* D5 A
- new_wid old_wid old_rot scaling old_scale
" q0 m4 _+ M" ]! k+ ? - xdelta ydelta zdelta xbase ybase zbase ipos): T- V$ G ]9 A* i- x
- (modify_properties)2 Z6 d7 ~ q" t O, i
$ y. l) Y$ r& y7 r- ;; First, translate and scale the Attributes, if there are any.+ C6 u% E# Y3 |) ~, S
- (setq old_rot (cdr (assoc 50 elist))
# d9 Y. \3 N) K - old_scale (list (cdr (assoc 41 elist))6 _7 ]- H# U! e7 Y
- (cdr (assoc 42 elist))( R* O8 X7 O9 B
- (cdr (assoc 43 elist))( H+ I- R1 s6 o
- )( Z: h4 T5 Q. y$ m" N6 M2 n
- scaling (or (/= xscale (car old_scale))' e/ l) p2 }" R
- (/= yscale (cadr old_scale))
( j6 ~0 i; A# {3 c# Z* H/ ] H) G - (/= zscale (caddr old_scale))
% B- ]8 z: S1 ?0 z( v; ?2 ?9 D - )
3 a* Q+ }3 n$ x1 K- c" c - attr nil ; No Attributes modified yet
7 T$ k3 [+ z: D/ e - )5 @* [9 M2 J8 {
- (if scaling8 ]3 ]; u" ?; c/ E7 F2 Q9 L
- (progn
9 q. t Q( l I! F# |3 q - (setq xdelta (/ xscale (car old_scale))- _+ e. v& D5 z8 v" o3 V
- ydelta (/ yscale (cadr old_scale))/ o) `$ V. W5 w% [. \3 F
- zdelta (/ zscale (caddr old_scale))
- A" _! q5 X) ~1 p# @ - ipos (cdr (assoc 10 elist))! q* m. c2 ~9 U
- xbase (car ipos)! @" @4 k+ J6 E7 b
- ybase (cadr ipos)
' f- K# d0 F+ S+ _ - zbase (caddr ipos). ?$ o9 ]. V' Q+ E7 w- e, |9 W- h
- en2 (entnext ename) ; First Attribute
' {% S6 |) X) Q- l' B( x - )) O' R* E+ \7 f$ B
- ' c* J0 @/ E# l( f& f+ T% t3 s
- ; If the Block is rotated, temporarily un-rotate it, along" X2 ` q2 e, u3 P- D$ I
- ; with all its Attributes, so the scaling/translation of the4 i! b" t9 m- W) t
- ; Attributes won't have to take the Block rotation into account.1 T# f: V- i7 ~2 ?; g2 I1 [8 s
- (if (/= old_rot 0.0)
8 q; z& q5 l0 i1 z- {3 e, n - (progn$ R- r8 {2 | p. @; r7 f" U: P* Q
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
! L! K% R! n+ D - (setq old_rot 0.0! n# w, N$ G) v% S8 O! P- y
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)
9 y) H: s2 {. v4 P) V) v& r( P+ ? - ), J* p% `% P3 Y. n) l
- )
6 X6 H ~$ m% w# u; B3 T6 S - )
, n- ?% e; [2 v/ @1 b
- s. f2 W# V/ x/ A: K) j6 d2 O3 E- t- (while en2
* T3 C- O5 c* X9 `* S3 `" ~ - (setq el (entget en2))
3 i2 F* S$ y% C* `0 ` - (if (= (cdr (assoc 0 el)) "ATTRIB")% O' K# F3 J2 g6 `: O r! E5 J
- (progn1 `6 z" X0 p. L$ M7 }) D) S
- (setq old_hgt (cdr (assoc 40 el)) ; Height
+ m- c- j" A+ c - old_wid (cdr (assoc 41 el)) ; Width-factor9 R2 ~8 q; a5 m( N- W
- oldp1 (cdr (assoc 10 el)) ; Generation start point
2 q! I, d; b3 ]" J( y+ J1 m - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt# J( l2 r4 n) B s* l" N6 q" O
- ha (cdr (assoc 72 el)) ; Horizontal alignment [" m9 v( V! s" M
- va (cdr (assoc 74 el)) ; Vertical alignment& ^, M) m. W" n- X" K& F) W
1 z/ Y) A( |1 c- ; Translate gen. start point
1 I, `$ Q; F7 h; k7 K1 m! D - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
& z# S9 R! r0 G C8 S2 T0 v - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
6 w+ N9 H& e/ W7 [7 K: h3 A& ~3 k - (+ zbase (* zdelta (- (caddr oldp1) zbase)))8 t# d/ f4 j* Y! e$ C2 j
- )+ K( `9 [* H1 A) o( l+ d8 |3 S6 N
- el (subst (cons 10 p1) (assoc 10 el) el)' O2 u6 y+ f9 q( v& l
- )
& R/ V4 c7 T, f# M, a, b$ y - & D7 s3 a$ g5 z
- ; Translate alignment pt similarly, if present and applicable
5 @+ |- N2 A4 k- p6 y - (if (and oldp2 (or (/= ha 0): }$ Q# [* U& |- z
- (/= va 0)4 Q Q9 c; T: g+ z9 V, d
- )$ L- M* Q4 q# N, f5 _( e
- )) q: u* ~& j D. b& B. S
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))% D9 E3 u; B2 b0 O' u9 P
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))# j6 O, s: r( y8 `) s( A3 X
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))3 j7 i" {/ }" ]8 e7 h) V1 m
- )
& X8 A2 U$ f. n, c2 J# w - el (subst (cons 11 p2) (assoc 11 el) el)5 u; Q1 X) d/ r
- )
, g/ H& Q/ L. u- M$ f2 a W/ _! ? - )! R1 N; L" A, A. O# Q
- - `& T, G: \2 J8 i. i3 k
- ; Each Attribute's height and width-factor were computed
. @. w* U& c" L8 |5 E/ H) z5 a - ; based on the Block's scale factors. Adjust them now,
; [- u& X$ a" f! ^4 r - ; by first reducing to values for 1x1 scale...
. F! c2 Y6 ~: E* C% ~6 U( F - (setq new_hgt (/ old_hgt (cadr old_scale))3 d, N2 O8 H$ F
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
8 o# B9 u- H7 C7 E5 h4 Y - )% }! _1 a8 Y1 _
- ; ...and then rescaling.7 O3 P. B; [3 L3 [2 @
- (setq new_hgt (* new_hgt yscale)4 f/ x1 O2 {, d
- new_wid (* new_wid (/ xscale yscale))! G6 T, |# s; w+ W: ^
- )
9 P' U8 {& R0 O: | - (if (/= new_hgt old_hgt)& j+ W8 o1 o2 d( o/ p
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
" d. p! @" w& h - ). @8 h2 d. o2 o1 g
- (if (/= new_wid old_wid)
& L! x- e) `0 ]' P9 w - (setq el (subst (cons 41 new_wid) (assoc 41 el) el)), j1 ], E# o8 l7 N1 ~
- )
+ Z; l9 I i6 { - (entmod el)
# u3 d4 a0 J: E3 X% u& c( Z0 N* L - (setq attr T ; At least one Attribute modified4 L" m; C' [. K0 u/ L5 t0 |
- en2 (entnext en2) ; Next Attribute9 H3 t0 h$ l% W6 b7 B
- )+ |3 ~' e, B5 E5 Z$ |# l/ u% G3 G
- )- u& s) m- b! C& |8 ~& [. ?
- (setq en2 nil) ; No more attributes5 G q, G$ E! U' O* [
- )
/ M! w6 h Y: i4 U) [; E, q - )
; S" {; D; x: B' u - )
1 W( I% v, i3 T - )
! b& T+ w5 Z+ ~
- Y. G" b. d. D0 k# _- K- (setq pt1 (list x1 y1 z1))2 c( T/ Z+ @" {' J# l% g& i9 n
- (tempmod xscale 41 nil)
P+ Q8 K3 P% A- v% k6 U! e! B1 U8 U: S - (tempmod yscale 42 nil)
$ |+ ~5 n9 e9 z - (tempmod zscale 43 nil)$ i) {" T. _+ K3 V
- (tempmod col-sp 44 nil)6 N( B2 ?$ n8 c0 B
- (tempmod row-sp 45 nil)9 w( z- s; V! t% Q; |- D- I
- (tempmod columns 70 nil)
1 }! x6 E" b( `( T# G - (tempmod rows 71 nil)3 N# H9 e8 a2 J3 Y1 o
- (if (= xclipmode nil)2 j# k, v$ ]7 \3 a/ p- ^- L
- (entmod elist)4 |3 Z1 O3 n' ?' |7 g1 _8 Z
- (setq xclipmode nil)5 c0 @& H7 j" R7 r t
- )4 _, `% _% y' Q* p- b: i
- (move_pt1 1)
- c; g' F Z& m - % h" e- m+ l; M5 _* D) E
- ;; Now do the rotation with the ROTATE command.
3 a7 E- p. ]) v! o - (if (/= old_rot rot)0 W) @/ M8 S2 l1 L
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
/ ^; L* \3 F7 Y+ E' O - (if attr ; Else, if attributes were modified,4 Z4 a2 ?# H- z3 g# Q
- (entupd ename) ; just regen to force attrib display
# ^+ g# [( G0 H - )
: Q, p2 q; u) A, h7 q- a - )/ L* ~# Q, P% J J* _
- (setq elist (entget ename))/ t( V. o( f+ ~' _4 d* ^* m
- )8 p% ^( I; P7 O! i
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
) z" l6 D! O. l - (setq newhatch 0)
3 o7 O+ ^& ~' [! h; U% A - (setq blkname (cdr (assoc 2 elist)))
8 U! G! A5 x0 X! d+ B" ^ J1 p% b - (setq blklist (tblsearch "block" blkname))
* u6 k. W/ ^) M - (setq blktype (cdr (assoc 70 blklist)))
, L) F# I: f/ i7 u8 W8 b/ d3 U - (setq xcliponoff 0)/ p2 o: k% \7 u& @ u6 ]2 B' S
- (if (or (= blktype 0)(= blktype 36))1 t0 m4 Y# G& D/ d
- (progn
[- `; h+ t" k( B - (setq xcliponoff (xclipon elist)) \& w0 K' j; v2 G- \$ }7 {
- (setq temp_xclip xcliponoff)
6 Q& M, M- z2 }7 E% B3 k' ?2 c# K - )' L+ {1 x2 A8 H' x# l$ y) p
- )6 |1 \8 A: A/ C+ y
- (if (= (logand blktype 4) 4)
: `- f0 V# d8 @8 C: C1 Q1 Q - (progn
) f* v5 T# @5 |; u2 [ - (setq xrefpath (cdr (assoc 1 blklist)))% c- ^: C. ^% `! ]/ k3 _2 V, N
- (setq help_entry "modify_External_Reference_dialog")4 N- y0 w( g+ ], C
- (if (not (new_dialog "ddxref" dcl_id)) (exit)), j s# @6 B3 ?1 x2 l$ {" Z
- (set_tile "Bl_name" blkname)
4 G. t) f: h- T8 v8 S% @ - (set_tile "path" xrefpath)3 O) Y* h+ w8 D& p5 w, z0 p2 o
- )
3 ~' x/ |: A) f u1 h: ^% V - (progn
6 M% w; a6 [& ~; R. E - ;; Get program name for use as Xdata app name1 M% W8 S2 d$ D, L+ b+ s
- (if (not (setq program (getvar "program")))2 g# `$ Q% D6 N. B, v. @
- (setq program "acad")
1 l. i1 l( d* Q - )! ]6 m, U$ F, q# C) s9 Q
- (if (and (setq temp (assoc -3 (entget ename (list program))))+ ]8 I0 G: G/ {* ]* K1 D
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")+ V8 J6 |2 q: m6 V i/ B8 m/ c8 R
- (assoc 1005 (cdadr temp))8 `5 X5 o/ V% g8 f" i( x# E. N. k
- ), {6 T2 W8 I, g2 A. ?2 v
- (progn
$ V% }- H; J; B - (setq newhatch 1)9 n F1 J/ A. L8 P/ O& r! F
- (setq help_entry "modify_Hatch_dialog")
3 F; Z' Q' H, G* m' q" c - ;;; convert the object into a new hatch6 B0 |3 f+ I) i1 @: F4 r2 F6 Q$ I& h
- (ai_undo_on) ;; enable undo2 M# y6 [- o) ?# F9 ^ j
- (COMMAND "_.UNDO" "_Mark")
2 Z* B/ n2 z/ m5 A2 X' J - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")* }( n$ I/ e) R# q3 L2 _8 V7 y8 e
- ;;; suppress nasty message from convert command
7 k, g- o; F" w v/ u1 W* ~ - (princ "\r \r")8 O3 L P2 E7 `6 w- k- v2 f* i3 W
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))& q u$ q6 i3 P! j' }; M
- (setq old-elist elist); l4 k: W2 R! u$ J
- ;;; If we have cancelled ddmodify
5 E2 y5 H2 C: \ - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
2 o @8 h6 ~, P! ?4 H: f - (command "_.UNDO" "_Back")% o+ L" p% S2 }2 G0 ~/ [/ Z: m
- )
7 G' R8 p( t$ x! O0 O. E - (ai_undo_off) ;; restore undo state
8 l+ O/ R7 g, e8 T3 _4 {. R - )" ?6 V0 _/ V4 k2 @1 r1 `
- (progn
" S( F% ~; E [ - (if (not (new_dialog "ddblock" dcl_id)) (exit))
* W' ?4 v# x* H6 X' D4 k1 y* |. q( ` - (if ( = "*" (substr blkname 1 1))
! h, _% y- y3 S - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
" i+ m! O/ X+ O# I. O9 B - (set_tile "Bl_name" blkname)
; Q4 r' A, E4 c0 l - ). h5 l# q' J* T
- (setq help_entry "modify_Block_Insertion_dialog"): |+ Q& x7 S2 {/ o# z9 I, {- |
- )
" Y( W# g# `3 [* M" M- X1 u h - )
1 I$ E9 a# C; V! l/ `( d3 B - ): J! x1 \/ U1 k$ x z
- )
* J x) _. {5 d$ h3 I - (if (= newhatch 0)
7 D6 H& ~& D! F2 E) [ - (progn$ \1 N \# f0 u) X: W7 p. N
- (set_tile_props)2 }3 c% k- D/ Y, R; \+ f z
- (set_tile_handle)
! U3 R" X& k" C4 h% D/ l - (set_tile_pt1 1)1 ]4 C- x4 ]$ N
- (set_tile_rot)
. T4 e6 O+ N0 Y( f4 x( ^- I/ m, D. ]$ m - (set_tile_scale)
4 G* X( F6 ^, T( ]! @, e - (set_tile_rc)4 K+ z5 U% r* q/ d% k0 Y$ f
- (if (= (logand blktype 1) 1)6 ~5 X# U$ \9 N. U0 L: l+ v6 o
- (progn
; a# j' ?- Q9 s - (mode_tile "xscale" 1)
* e+ g3 W+ }$ O2 K2 o - (mode_tile "yscale" 1)) d% `" e5 S) k+ r
- (mode_tile "zscale" 1)3 q- H1 C3 ^: c0 W/ y
- (mode_tile "rot" 1)
4 b# _) j7 y! k& K, b - (mode_tile "columns" 1)
. @% ] v5 L' x9 ~0 X% Z) `/ Q/ ^2 e - (mode_tile "rows" 1)
; p: j' @4 k k5 i, J* I; j1 e; l4 C - (mode_tile "col_sp" 1)3 P% _5 `. @) T' P4 [9 m
- (mode_tile "row_sp" 1)8 W0 K, ^8 t* Q; I5 W
- ): w9 J& u- z6 j" {
- )% J% P5 m4 F: O; _# h4 U% ?
- ;; Define action for tiles
, j' R' @4 X8 r/ R- F - (set_action_tiles)
; h+ ^9 E+ K! g - (setq dialog-state (start_dialog)): Z6 D$ R6 W. q
- (cond5 O* i. ~' ?; _+ `$ |: Z' V
- ( (eq dialog-state 0)
5 t& o9 z1 @5 N$ z - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))7 c! t' r, R/ ?* y5 D7 W1 S
- (move_pt1 1)- ^: ?5 z7 R$ I; [8 y+ u* P
- (reset))
$ r$ n; C! N% x" U - ( (eq dialog-state 1)" q1 t& I' b/ J9 w9 u
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))/ F& [" K! _: R& e
- (xclip)
4 i" J4 W# [& v0 `/ F! m& ~- N - )1 H4 M/ M. d% G6 g
- (modify_block))
* x; C5 `% S2 s - ( (eq dialog-state 3)
+ @, S, B* g; e0 V# }/ ~, [4 R) G - (modify_block)2 Q4 P3 r5 V" }/ S& w! V9 m
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))7 R, L6 N c% u1 I y5 c
- (move_pt1 1)
! `; k- [7 q7 A: K3 z( |1 q - (ddblock))
2 z, N) e$ i8 {' \ h - ( (eq dialog-state 4), A6 \! b$ p3 u& i) ] A- S% B
- (modify_block)0 N, j% P8 M7 o3 v, K, P
- ;; Get current handle.' Y- l; z" S& ^8 N* P9 ]+ h
- (setq hand (cdr (assoc 5 elist)))+ Y/ ]* W1 ?3 k" J: h9 f
- (command "_hatchedit" ename)% e* p/ @7 ^% I: ~; g0 A
- ;; If OK in hatchedit, a *new* entity is created and the old one
: Z6 z! J7 \9 ~0 E, i, x - ;; is deleted. So if the old one exists, it must have been a
) P/ A# D" w, [" c - ;; so rest the entity.
: z2 a8 J2 U, s8 G+ |( {$ ^ - (if (entget (handent hand)) (reset))
8 U8 k6 r6 K$ R0 K ? - )( u+ M/ Z+ B( {
- )5 N2 f9 C* f6 D
- ). T8 P+ o1 E9 a/ B$ M% ]
- )/ f3 c2 K9 {; z, j' r
- )5 s, Y1 @; W5 I0 E
- ;;/ X7 A B* W" r% \4 }1 H
- ;; Modify SHAPE
9 ~7 {! [! J7 Y: Z# c6 y) D0 I - ;;; D- B; h S/ _# `/ \5 ~* R' E2 k5 W, u
- (defun modify_shape ()
0 W D Z, L/ P) {( T; L h - (modify_properties)7 e- a3 n6 p) U7 \
- (setq pt1 (list x1 y1 z1))7 Q. W6 C+ d+ f; t8 E* P
- (tempmod pt1 10 1)6 j( k7 q2 C# G7 z
- (tempmod hght 40 nil)2 |- u% e) G: e" r0 Z! ~+ s6 s& u
- (tempmod wid 41 nil)8 z; m4 V4 _/ z v) `! K! J$ e
- (tempmod rot 50 nil)
5 v" C/ Q4 {) {( m2 o+ I - (tempmod obl 51 nil)6 T/ R$ P; ~( z- k" b' h/ B. M
- (entmod elist)
9 A& E( t' n. j6 [5 I2 ?" a - ), C' F* z. B. [: l9 g! C8 k
+ T8 k$ h0 F! e& [- F, U( U- (defun ddshape ()0 Z; I/ S" z* @1 ~1 L1 ]" Z
- (if (not (new_dialog "ddshape" dcl_id)) (exit))
) M1 [. h5 c. S9 d* i F2 a( U - (set_tile_props)/ o; \0 W3 d4 B. U5 o0 B1 U
- (set_tile_handle). ^2 I9 J* X8 G0 I3 U' h! r% o
- (set_tile_pt1 1)
' T8 I }6 ]3 u. }; X - (set_tile_rot)
1 |) q% V! ]- _8 f* S - (set_tile_hght)
$ }$ M, ]; e' P& c! o - (set_tile_wid)
! C: m/ o" n9 B3 _0 j* F - (set_tile_obl)+ O* s. V4 J& S6 W# m7 J
- (set_tile "sh_name" (cdr (assoc 2 elist)))5 u) `1 M" o1 ^. u% t. `8 @
- ;; Define action for tiles
$ N+ ?' X1 } C9 q8 ]7 u - (set_action_tiles)
+ C3 s$ A! {( V4 J - (setq dialog-state (start_dialog))8 F5 q/ |9 Y0 b: U4 ]. q
- (if (= dialog-state 0)
# E0 u$ z! V' S( N+ ] - (reset)* v9 e _8 i5 a" m5 |. r
- )
4 V+ M/ n( V) L# g% c. h$ C - (if (= dialog-state 1)
% O2 ~4 A- E$ q% x" v9 u - (modify_shape). R) P, w: B4 v! M& v1 w. n
- )( E) B) R# `6 |& t3 C$ a0 j
- (if (= dialog-state 3)
) `; h* _0 F- ^- A+ \/ R9 j - (progn
/ ~5 D7 h2 O8 \+ } - (modify_shape)( _) X6 b5 p7 M5 s
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))% L5 ~! h6 ]: T' [+ _
- (ver_pt1 1)0 C4 c/ d4 ?: C4 O; N: ]6 W
- (ddshape)
k8 V* y1 q$ q0 } - )
2 N% A6 m$ T2 w/ y. v( L% r7 {& T2 i - ), d, B7 M7 S( E0 T4 ?! {4 W
- )( @* d: p' x) s! w
- ;;4 U- {( ]9 c# F4 n' e, b
- ;; Modify TEXT or ATTDEF7 K W& Q+ d3 q5 \! ~
- ;;9 _+ P: ]. O- |8 }$ A5 Z
- ;; Set bit code for upside-down and backwards setting
9 l& \/ d& \1 {# f' n: J, D - ;;7 N; Q. \. y: O' t' O
- (defun code_71 ()
- @( J: j4 W2 H# [ - (cond ((and (= bkwd "0") (= upsd "0")) 0)
1 p4 I0 g9 k9 b( O9 i& K+ p J5 v7 U - ((and (= bkwd "1") (= upsd "0")) 2)
, J$ `. d4 Y( M, T# I - ((and (= bkwd "0") (= upsd "1")) 4)5 w7 c z$ h1 O7 p+ P* P5 ]# T6 l
- ((and (= bkwd "1") (= upsd "1")) 6)4 F/ `& i5 e3 }/ b& K/ D
- )
0 m" G8 w! Q% U5 x# P# I - )* K/ ^1 ], i' j2 y, c. e) X
- ;;
( l+ C/ B7 h$ F, j: D - ;; Style action. Reset widget values to style defaults
9 L @) l; G' Z; |- _ - ;;
6 y8 X4 B0 B9 V& d6 t; e' t& J2 i - (defun style_act (index / style-list)! T( N! H& a. G. g: R: J
- (setq style-idx (atoi index))
- U$ n& R" w3 g7 ^( M, c$ F2 G! V K - (setq tstyle (nth style-idx slist))5 m$ l( @& X- \% ?8 U1 P4 a, c
- (setq style-idx (itoa style-idx))
, m& n- l" `8 `" e$ } - (set_tile "style" style-idx)2 U0 F6 Z% ~1 o- d
- (setq style-list (tblsearch "style" tstyle))
8 Z! K$ Z0 d, G+ N - (setq shght (cdr (assoc 40 style-list)))
- ~3 _5 g0 H% J5 _- S6 k! v - (if (/= shght 0)
2 M+ [9 b2 o8 u7 ] - (progn2 H3 V/ I9 q7 u! |
- (setq hght shght); L( A% a1 s2 O' c# P
- (set_tile "hght" (ai_rtos hght)); h5 r) h* J- K1 g' P3 |& A9 k
- )7 z* X& S- v7 P4 r- R, ]+ S2 ?
- )
* Z- Z# \/ E: W0 {9 S3 ^3 t - (setq wid (cdr (assoc 41 style-list))), A8 v* U+ y; ?" }
- (set_tile "wid" (ai_rtos wid)): T) u: I0 [; H" D; K/ D3 }
- (setq obl (cdr (assoc 50 style-list)))
2 r- l" Y. ~7 o5 v; A3 R - (set_tile "obl" (ai_angtos obl))
( J2 X4 u- U4 X0 h* c3 n, e& g4 g - (setq bk-up (cdr (assoc 71 style-list)))* G U# _0 P* i4 k' [; l" l" X( @
- (if (= (logand bk-up 2) 2)
, B6 p# N1 `4 |( a - (set_tile "bkwd" (itoa (setq bkwd 1)))
0 I. D8 ~% _' v - (set_tile "bkwd" (itoa (setq bkwd 0)))
' e' H# `/ F4 p8 s" A; F - )
8 ?% U7 t# V* q/ ]- k% G; v, q - (if (= (logand bk-up 4) 4)9 l1 J3 q0 ^2 p
- (set_tile "upsd" (itoa (setq upsd 1)))
# u9 X& `6 B+ [/ S/ i4 Q# p5 Y - (set_tile "upsd" (itoa (setq upsd 0)))/ |) v; e/ W) c7 Y, q
- )
7 l. C2 {! c$ D) A2 |: y2 E) q - )
. r" c6 [) J9 N9 [- |9 ^0 t$ u" X4 J6 Y - ;;
u8 ?: i1 t2 R+ K% K( q - ;; Justification action. Set vertical and horizontal alignment variables,
, H$ |/ y% R) ^- s - ;; grey out rotation and height if alignment = "aligned", grey out rotation. C9 S0 a" H# O+ Q$ p/ H( W
- ;; if alignment = "fit"./ F* D3 O! y! J! F
- ;;- Y# T/ e! Q* m9 z: ^8 l2 g ^# f+ p
- (defun jlist_act (index / templist)
1 o, v" M, _4 Q% ^ - (setq just-idx (atoi index))9 @% W* f1 h7 u5 ~% y( a$ S% j
- (cond
% R" ^; a0 ^' c9 y8 o - ((= just-idx 0) (setq va 0 ha 0))4 W/ ]7 L# N0 W$ J' L
- ((= just-idx 1) (setq va 0 ha 1))
4 Q* i* Q) ^" H: [8 N, n0 Q - ((= just-idx 2) (setq va 0 ha 2))7 `) L! z B: S* X* }/ Q9 x# C
- ((= just-idx 3) (setq va 0 ha 3))# |* ]; w: [# D7 O
- ((= just-idx 4) (setq va 0 ha 4))9 J4 |( _8 j9 y/ J ^$ t+ G, {
- ((= just-idx 5) (setq va 0 ha 5)). D4 F) ]) b3 l/ [
- ((= just-idx 6) (setq va 3 ha 0))( ^) l7 r* a! K' f
- ((= just-idx 7) (setq va 3 ha 1))
: N& m, {7 Q; h$ c: l& ~% S - ((= just-idx 8) (setq va 3 ha 2))( f7 d/ y2 p" t( p. X) ~- T
- ((= just-idx 9) (setq va 2 ha 0))* |) B* M7 w% ?1 k& b
- ((= just-idx 10) (setq va 2 ha 1))1 E5 L* z. V- `; W
- ((= just-idx 11) (setq va 2 ha 2))
# \: r/ _* b" `# o - ((= just-idx 12) (setq va 1 ha 0))
7 B+ Y9 d5 n0 r7 K; } - ((= just-idx 13) (setq va 1 ha 1))/ N3 G* ^' U, G; K( G9 `! W' F
- ((= just-idx 14) (setq va 1 ha 2))8 N% [5 j2 `' R) Q* C6 a
- )8 R8 Z. h# _6 n1 D1 C
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
1 g; X' @4 l6 b3 l6 L2 _ - (mode_tile "rot" 1)8 D5 W5 {3 ]3 ^+ F" B
- (mode_tile "rot" 0)& _( a5 ?# ]' ?( k: N+ W0 g0 s
- )7 n5 I9 b' {4 B" N( {# i% k/ m
- (if (= ha 3) ; If Aligned text
4 r8 I7 v. ?& @ - (mode_tile "hght" 1)
+ E5 V. f& z- H* Y6 m. r% u* j - (mode_tile "hght" 0): x7 x& ^9 c; r2 y$ C
- )
+ Z: T" `. F2 @: { - (if (= ha 5) ; If Fit text" X0 o* E$ j7 n" j
- (mode_tile "wid" 1)
: _: M2 T' J7 G7 y+ [5 Q( r2 D - (mode_tile "wid" 0)
. H8 w8 [% k$ V8 T2 N - )
; g, K2 z+ I" c4 s& }% y5 ]. s8 c - ;; Reset rotation and height if changing from aligned.
" y# k- h4 a9 d; C8 _3 v- @8 K - (if (and (= ha-prev 3) (/= ha 3))
' F# H& u- A/ u% U* d- a | - (progn& A+ N+ t! A( F9 h1 M
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
/ K! E6 e# D) l: e. t# U9 _) G' @ - (set_tile "hght" (ai_rtos (setq hght 1.0)))
% S7 m( O" J; z0 t! a' Z! f - )5 {- e7 k2 s' X% B/ |
- )9 {) f$ h: J5 w$ g3 b0 H
- + _1 k3 j0 _# y8 m
- ;; Reset rotation and width if changing from fit.
* C9 i, c: G8 x, ^# e( `. Y - (if (and (= ha-prev 5) (/= ha 5)), _9 ], f6 J# c) G( W$ y: R/ G
- (progn
9 n2 ^& l% f) p5 h - (set_tile "rot" (ai_angtos (setq rot 0.0)))7 S7 Q; S5 O7 k4 e5 {7 x2 d& h: H
- (set_tile "wid" (ai_rtos (setq wid 1.0)))
/ Q+ D# P V: a: b* H H7 y: ] - )# B P& x- I2 v9 L; b9 H% K
- ) [$ ]) c# Q) K! s
- ' S/ ~$ [, d; A" R1 h. Z* `
- (setq ha-prev ha) ; update ha-prev for next time! m. ^- C. v0 `0 g( Z
- (setq just-idx (itoa just-idx))
4 V _, L. R, s# H& [- } Z; E - )
% m! B% t' z$ D7 R - ;;4 ]' ^- e" L, p* p# \0 x+ h5 X
- ;; Set intitial alignment setting based on vertical and horizontal alignment
0 r: ^; D" ?' h3 F( e - ;; bit codes.( }/ X0 |9 e; B* M
- ;;
9 l3 H, s% i! {0 I' n: O - (defun set_just_idx ()8 R9 d6 {: W& L8 z+ y5 X; `
- (cond
, `7 ], j H& O( \- b6 U0 ] - ((= ha 0) ; Horiz alignment = Left
8 v3 N& V( {/ ?0 r! [% ~ - (cond+ y" \. `6 f% k% w d+ [. S
- ((= va 0) (setq just-idx "0")): g( [$ ]) \5 G$ u; d# s, R- V2 `8 h
- ((= va 1) (setq just-idx "12"))7 l6 e/ \! ?$ f2 h$ e
- ((= va 2) (setq just-idx "9"))( B+ s9 g5 @0 m& I& ^
- ((= va 3) (setq just-idx "6"))
5 p# v1 z1 u* O% k; b& c5 J - )
4 i' O" g* N* V0 n - )$ h, s$ _, M7 V) O& K+ }) A
- ((= ha 1) ; Horiz alignment = Center
; V1 c; n2 l! q9 }/ w; s - (cond
) ?3 a0 X+ D; Z9 w - ((= va 0) (setq just-idx "1"))% Z; O8 H5 u" u
- ((= va 1) (setq just-idx "13"))% {+ V& ` D6 i) I$ T
- ((= va 2) (setq just-idx "10"))# v6 o1 ]$ S" z3 P! {5 j, V
- ((= va 3) (setq just-idx "7"))
8 O( s8 c8 v+ y3 } j5 } - )
$ C# A( P# u1 m" P7 ^" w% R - )- B, R* t* u/ C3 w6 M
- ((= ha 2) ; Horiz alignment = Right f! P. L Z/ S2 ^" O4 {
- (cond
5 O6 l4 |* s& A4 P h - ((= va 0) (setq just-idx "2"))
4 E6 B) m5 z; e/ W8 X - ((= va 1) (setq just-idx "14"))
3 h7 Y/ z" i9 {* } - ((= va 2) (setq just-idx "11"))0 C9 {8 ]6 T. U/ w4 i, v
- ((= va 3) (setq just-idx "8"))
4 X& R6 Q; `* G) u8 A - )
1 H8 i& V) j/ ?- O4 b( Z - )
# M; R7 [0 W0 ?/ Q* O - ((= ha 3) (setq just-idx "3")) ; Aligned5 `6 R0 n+ V4 A- ^- I8 A! Z
- ((= ha 4) (setq just-idx "4")) ; Middle) C! D8 ?. P/ A8 Q
- ((= ha 5) (setq just-idx "5")) ; Fit! E/ Q5 T, j' o8 o; O
- (T (setq just-idx "0"))
, F9 C9 v& a) {3 Q1 C7 d# ^! `$ H" R+ a - )
$ ~' T, G6 H" K - just-idx
5 f8 z4 r8 N, R' x( r7 ^6 f - )% `- V* C" `/ C* k* [ b$ M
Y; g/ z( k5 C" g- h- (defun modify_text ()
+ S2 ~& r" Z1 N2 ^0 E4 n - ;; insertion point8 }( |5 J( t5 F5 A5 Y( T
- (setq showpt (list x1 y1 z1))0 F- O* {- b6 B9 w8 B
- (setq bit-10 (trans showpt 1 ename))
4 C& Q1 @& q3 W* V! | - ;; alignment point
5 P, |1 K+ z h2 s+ y* G* R" j - ;; for 'Aligned' or 'Fit', alignment point must be different! W4 {( {5 d* T {
- ;; for all others, use insertion point
$ K, g) G( I! p: \& h0 O- r - ;; (ACAD will recompute insertion point)+ c* A$ m' B& E" z2 K. D! d* p) X
- (if (or (= ha 3) (= ha 5))
Q2 i5 V5 {2 U* j, v5 z% I1 M% J - (progn
9 b5 Z0 u7 d! j - ;; if no alignment point, fabricate one
" n/ g( Z3 v& @+ m - (if (not alipt)% w- i* l6 k' `% E3 D# o& p: q
- ;; add text width to insertion point
$ z, h, X: }4 ^: ^ - (setq alipt Z% i+ S% a; A2 u( c% p5 J
- (list (+ (car showpt) (car (cadr (textbox elist))))1 n. S" ]5 E) Q5 h& K! i
- (cadr showpt)
7 Y# }8 z9 k! I5 K4 X3 f0 C - (caddr showpt)
/ i# @$ H6 K! x% u0 `* M9 [4 g6 c - )' U5 S W- L0 w/ D: d
- )$ m+ W# e2 I( {5 I- n
- )
, u* }/ l) @, ?* T - (setq bit-11 (trans alipt 1 ename))+ r! c, h+ Y. r) {# Z- v, c
- )
. T9 ^! A$ H/ n# i$ G3 Y9 k3 f - (setq bit-11 bit-10)$ r% a7 r1 J5 F A* {, V- X
- )
, R8 J5 `7 u) i& j; M" T2 f" | - (modify_properties)" |- _$ O n2 S0 I* e
- (tempmod tstyle 7 nil)* p% x# w1 k" G4 V& Y3 ^: G
- (tempmod bit-10 10 nil)
4 L+ ^5 n) u6 p0 ]. ?: J% j. L2 r$ j - (tempmod bit-11 11 nil)
$ \/ a i% J. H; ?% O( G. G& k2 b4 ?3 M - (tempmod text 1 nil)+ n: \+ E, V$ Q+ U) S/ N9 d
- (tempmod hght 40 nil)
3 r/ `- c$ @& d2 z - (tempmod wid 41 nil)
, L h3 `8 d x4 Q. I* z. C - (tempmod rot 50 nil)* C) Q6 H) n3 L) Z: @( e C
- (tempmod obl 51 nil)0 Q' Z5 \* a, r
- (setq bk-up (+ (* bkwd 2) (* upsd 4))): n* U; i$ L& h6 U7 I1 @$ H! D
- (tempmod bk-up 71 nil)! a) ~) z+ W1 j% J* ^2 N
- (tempmod ha 72 nil)
6 ^. | q1 c: l& p* O) w: W - ;; Attdefs use 74, text 730 L9 j7 J' J$ [; u3 b
- (if (= etype "ATTDEF")
* y: W ~1 |2 |& m, T - (progn+ y9 p t! Z+ u0 _1 G u9 S
- (tempmod attag 2 nil)
2 a8 _5 |; q2 G- R - (tempmod atprompt 3 nil)! @5 ?/ g/ u9 e" ?" O9 E. R
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))# l! T# X) ?- \7 P
- (tempmod icvp 70 nil)# L& H) S; }0 y8 h9 f
- (tempmod va 74 nil)
9 w" Y) F2 V/ _8 r5 } - ), H; w1 K9 p( _2 T, E/ p$ o
- (tempmod va 73 nil); }6 Z& h# ?2 h6 ^
- )1 x: y9 }8 U; D
- (entmod elist)
3 D5 v6 `6 ~0 a* k - )
% ]: `7 D6 M6 M7 t, H - 1 H8 k3 [( ^1 f! q
- (defun ddtext (/ 2ndpt slist i)
2 F; _1 l+ U: Z" w. Q4 N - (if (= etype "TEXT")+ K9 a4 r8 Y8 D8 u: s5 f
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
: c! n1 [6 G& T7 p7 E O. x* B - (if (not (new_dialog "ddattdef" dcl_id)) (exit))/ D& n, G" ~7 T4 A+ X
- )
) V0 ^) ]3 i" @% |4 z - (set_tile_props) a$ D" m* K- b0 A+ H
- (set_tile_handle)! S6 C: g$ Q* t0 K7 z
- (set_tile_text)
, E2 i7 O; ]0 `+ w/ `; t - (set_tile_tag)
* V, L! c) Q5 Y- g - (set_tile_prompt)+ K, p1 }8 B: S/ q: O! z
- (set_tile_hght)
" [1 V W" w6 B7 X/ ^ - (set_tile_wid) L7 B$ ]: q! p
- (set_tile_rot)( r* T& `) w0 }5 V7 h1 S
- (set_tile_obl); g' Y9 e3 }, j$ l: `; r
- (set_tile_bk-up)
, E# Y0 G3 K: k1 H& O - (set_tile_icvp)' I7 h b* X! x/ n& G
- (set_tile_style)% A3 S9 H! i* Y' D/ S, y
- (set_tile_just)3 P4 W' W' ^0 ? Y. i& a
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))2 D; e" J& ~' t6 V- \5 y% C% L
- (if (not (assoc 11 elist))
?' z$ F, Z, W2 ~- c9 b* o' Z4 q - (progn (setq pt2 pt1)
" {! ] s' }% k% ] - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))6 ~" d1 o1 D0 c; Q
- )/ G3 N6 i" D9 M( }6 z+ _$ a9 L
- ;;(trans '(0.0 0.0 0.0) ename 1))" \% C. h# |$ x( E c& R
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))2 }: }) R8 n2 ~1 S* O4 K+ Y
- ) ~9 J- p9 U2 j' d: X$ k
- (if (or (and (= ha 0) (= va 0)), x0 J8 x2 Y: s3 k/ V0 m/ q
- (= ha 3)/ r9 T' S& C! @& b' j# p$ a
- (= ha 5)
6 z" s6 _2 G5 e& s% x5 s7 d6 J - )$ |8 L- _5 i) p% M- m) j
- (setq showpt pt1)
" T) g% X& B4 k8 s, U* ] - (setq showpt pt2)
0 g6 F) t8 @, `0 y! @; ^; _4 V1 z3 ~ - )
% a1 s2 L/ K8 Z% g1 y5 D. p( H - (if (or (= ha 3) (= ha 5))+ ?" o+ Y4 @3 e4 o. D6 R
- (setq alipt pt2)2 z% }; g. f: }6 ?
- (setq alipt nil)! w) j2 S7 t4 `5 O1 r
- )
. Z/ [9 J3 c* c& k
& W- o( l# ^& k. F- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt)))): g2 N% H/ E, C3 f8 U% U& t" r
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))6 c8 W; s2 ~8 R( B$ C0 q: K
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt)))), H& W1 w3 Q' o
2 p& A8 K2 v$ t- ;; Define action for tiles
; P5 Q$ Z1 q- x' n2 l - (set_action_tiles) d, G3 B2 ~$ T! h Q9 b$ ~( P
- ;; Set focus initially to the text edit box.) I2 \+ _/ \$ p3 ~5 ]7 {8 T
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))2 l& J5 N3 J4 }% P/ s1 m
- (setq dialog-state (start_dialog))
. z* b6 P3 D3 N# [2 w9 r$ C - (if (= dialog-state 0)8 D& k& ~9 `' {1 S# Q& Q2 p; d
- (reset)
3 a: d# X9 p; J7 ~) ^ - )
4 g O7 _& k4 N9 g+ D% k" ] - (if (= dialog-state 1). @6 R1 b& N7 u5 L; O
- (modify_text)& ~' u4 z [6 s: e. P9 u
- )
* L8 @% D( Y# ^" d, C$ l, s - (if (= dialog-state 3)
6 L: B1 O+ ]5 ~) n - (progn
- ^8 ~7 W) L' z' l - (modify_text)
% Q9 R, l6 _3 w0 B5 o6 N: T& a9 W p - (if (or (= ha 3) (= ha 5)): V+ e% P7 u. T6 ~8 c" F4 ]1 @
- (progn
7 b6 N% V% M+ i - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
( {; K- I+ w0 I) v - (if (not showpt)
, p3 \# e' o3 l' ^ - (setq showpt (list x1 y1 z1))
) g* v! O2 C5 l# U - )
- E# _' s0 m" G' x - (setq 2ndpt (getpoint showpt "\nSecond point: "))4 n% B8 n+ L2 | N
- (if 2ndpt1 L* s6 V# k5 t; s
- (progn
& ~" @! p1 A+ N* } - (setq alipt 2ndpt)
8 e5 f6 ^2 B* V0 I5 k9 e- _ - (tempmod showpt 10 1)/ q4 j9 D; m5 {
- (tempmod alipt 11 1)' c: V- Z% }/ Y' h
- (entmod elist)
/ B- r6 S1 {* t0 E+ U - )) {( S- I2 {$ e1 B) k( c
- )9 x9 `" {$ ?3 j* U: x1 w8 k" A
- (setq elist (entget ename))
5 n( v1 B, a' n; {6 Q7 q$ C& | - )5 G, s) e0 f |9 V# x" v
- (progn
# V$ K O9 u) C* m7 x/ ~5 ~7 K - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))% j' g% P( i) a2 A; v! m" n
- (if showpt
9 i8 J7 C8 C5 z8 x - (progn4 A" K0 w( n& O5 p9 z
- (if (and (= ha 0) (= va 0))
$ [9 g. Y' V% ~7 Q& R - (tempmod showpt 10 1)
+ G- K% M9 T. U0 C3 J& } - (tempmod showpt 11 1)
& d/ q! u" w7 O7 N: B0 Y - )
7 f$ M/ n) D0 d8 h: w+ d - (entmod elist)
; I" }2 R+ q! E n- C - )
2 I/ s- w- j0 G - (setq showpt (list x1 y1 z1))) ]6 `2 l$ D& L. B
- )
2 N) w! s" N7 f& g& s) V - )
3 g; Y4 T1 x( v1 K2 E ^9 \ - )
. T( C9 x6 E+ k Q1 C* b R - (ddtext)
2 p$ A. v1 P1 C' n6 |% R8 r - )6 e6 i6 _6 E3 j. `1 j
- )
7 ?7 m" K. i$ t8 [& ?3 N - )0 \; E1 `$ V4 ]1 P" c; {. G
- + |' `! o. Q* P J* Y
- ;;
+ X2 Z m4 S4 P3 b5 ^ - ;; Modify MTEXT' p( q5 r3 X8 [5 c0 c
- ;;
& t+ v& ?, F' \4 a8 l( }# r - (defun modify_mtext ()) \& w% X# k. M0 N0 p
- (modify_properties)4 h: q. G8 N; t Y$ d
- (setq pt1 (list x1 y1 z1))$ W" _, g& {$ g/ ?' a
- (tempmod pt1 10 0)
+ _: F; K/ Y! N z( M; J4 p; i - (tempmod text 1 nil)/ q6 L% E: g7 y, K' z
- (tempmod tstyle 7 nil)4 b% t) g" ^5 o7 r: c
- (tempmod just-idx 71 nil)
& Y- `, L* F' m0 D0 f, J" t - (cond( s, O; U; m6 a: a
- ((= dir-idx 0) (setq dir-idx 1))
B. G& A: ^; w - ((= dir-idx 1) (setq dir-idx 3))) B( w$ u8 P* d( r
- ((= dir-idx 2) (setq dir-idx 5))( y* z8 Q0 U+ |2 e" W: L0 x
- (T (setq dir-idx 1))$ B( I! w' X3 s5 d) o
- )/ Z I$ \/ v7 W
- (tempmod dir-idx 72 nil)
4 `! f' d1 ^3 ?8 q& Y2 K" ]4 M - (tempmod hght 40 nil)3 ^- V9 i$ M9 @. S
- (tempmod wid 41 nil). e& p2 q* n+ R( Y
- (tempmod rot 50 nil)
+ I2 F; I9 c( t - (entmod elist)
F2 T7 R/ S% i/ Y9 L% X4 L7 {3 c - )
+ c& b; k$ [" D* ~ - & f. c- T: F# i
- ;; Set MText text style1 \ |1 S, q9 _& D! P& v3 e
- (defun MText_style (index / style-list), d' `) n& u' R; j1 S3 y9 x$ g
- (setq style-idx (atoi index))
% L" c" ~' E! [; E0 @4 [! k4 @& ~ - (setq tstyle (nth style-idx slist))
+ n& ?6 Z8 ?8 s" j, N/ N* x - (setq style-idx (itoa style-idx))
. C5 Z' x+ T2 }( O - (set_tile "style" style-idx)" D# `. V1 G9 o2 Z* D5 p- \1 Q0 Y* j
- (setq style-list (tblsearch "style" tstyle))
% b! S1 n. H) O, } - (setq shght (cdr (assoc 40 style-list)))
% v) z- X" K% K4 S( E5 Q1 K - (if (/= shght 0)
+ ]- `1 k9 e0 h" D2 N; M - (progn5 ~. t% b& f% i# B! \2 c$ c7 W
- (setq hght shght)
# w( p( M8 U# y% ? A. ? - (set_tile "hght" (ai_rtos hght))# I0 K+ C- E% H
- )$ N# a" Z2 G! M7 q, ]9 E: ?
- )' W7 a8 [, I, _- Z6 V
- )
8 E/ t4 q2 _* m( N
. e% [) p' ?1 d5 _1 f- ;; Run DDEDIT on given entity, working around possible re-entrancy
9 g5 c$ p8 A* o: y# Y9 x - ;; problems with MTEXTED
$ k" c: N: [% }; r+ M - (defun safe_ddedit (ename / orgMTextEd work)
$ i5 M. ]7 O o' M+ N - (setq orgMTextEd (getvar "MTEXTED")), Q. C! C# f0 ^* @
- (setq work orgMTextEd)
0 _5 q! L* w( K' G$ ] - (if (= ":" (substr work 1 1))) A) R$ u9 q! `7 A! A
- (progn
3 F& n- L C+ y6 b) O- @/ m - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
; i9 z; v/ T8 e" u( W: W9 K. U- O - (setq work (substr work 2))3 @5 w( u: z7 ^9 ?/ o
- )* @) B& \8 T! z, c X9 J
- (if (= "#" (substr work 1 1))
; q7 q" y0 h1 u/ h4 ^7 o4 V - (setq work (substr work 2))9 t; j# {1 J# c; Z
- )
. |8 D3 y d _, m) X( I1 E% H1 T - (setvar "MTEXTED" work)
1 h/ g4 b; Q3 L - )6 p- F- f5 b' w# r( p( C1 {8 A
- ), Y5 {2 Q; s- Q; B: a
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...1 T3 W) d4 b ?0 x+ B* Z5 ]
- (command "_DDEDIT" ename "")
" t1 A- m( b& h. B2 A+ H - (setvar "MTEXTED" orgMTextEd)
) l/ T: f9 e0 g2 H1 o - )8 S; M' {& j7 i* A2 c5 c
7 X u' ]) M/ X: ~5 c- ;; Verify MText object width2 S4 V1 k; k% \
- (defun ver_MtextWidth (value)
/ E+ P) Q z& x8 | l' x$ o' S - (setq value (distof value))8 P+ F1 R0 `4 u. X
- (set_tile "MTextWidth" (ai_rtos value))' V6 g8 D; n8 J. k# k
- (set_tile "error" "")0 D: x& {4 @6 E' D
- (if (< value 0.0)1 a3 `; G8 Y9 x# x
- (set_tile "error" "Value must be zero or positive.")
9 E( ?4 G) D" {7 ?3 F7 G - (setq wid value)9 g' i3 Q; i3 e) {$ \
- )8 c: v0 _5 R' _8 I) T( K
- )* T) x! W' Q" }4 X4 D
, r$ Y8 e* a5 m9 R- (defun ddmtext ( / gc3)
) D9 I4 r0 p" y) N0 |3 Z1 z - ;; Get dialog
& L- L3 _8 T1 _& x" O6 \ - (if (not (new_dialog "ddmtext" dcl_id)) (exit))# K* A$ ]4 A& G8 A6 E2 ^% Z* [! b) t
- & f4 t3 P/ X6 c1 T
- ;; Load list boxes
" U/ T/ |! Y" a i+ C - (start_list "MTextJustify")* z! t0 z3 E u$ H: n" N8 n! @
- (mapcar 'add_list '() t5 @4 W$ r' u; k `; [7 I* p
- "Top Left". l9 l9 [% R% T+ H1 Z( A8 a
- "Top Center"
) K4 ? X1 w; t1 J& b# |2 d# C. T - "Top Right"
$ Z8 C0 A7 u/ K- B7 o - "Middle Left"
6 R! T6 r2 r( ~5 e - "Middle Center"+ `1 H* p& n2 j7 }% G. }
- "Middle Right"4 B; n. r4 l6 c
- "Bottom Left"8 T3 ^% Y! V! _9 P x- v1 T: f
- "Bottom Center"3 ~) m# G1 |, R/ g* O% y
- "Bottom Right"
% Q5 W* U. t& z: \6 _6 _! l - )/ o% n- p$ ~4 E m) @
- )
7 J" r. v( [8 G$ y( s - (end_list)' `! ^& C4 W) H; k* @4 V' h, m9 N
- 5 M+ [ O6 ?# a0 o
- (start_list "MTextDirection")9 |6 K. ~# i6 N8 t5 S1 b
- (mapcar 'add_list '(
2 B! c; M* B: K" U' ] - "Horizontal"
, @! ]+ X5 i. T. H% p. n" A - "Vertical": \: F. Y4 C7 m; `' t
- "By Style"
; s- e# n; j1 ] - )5 }$ _. ?$ x) D |" i& x( }% c
- )+ ]/ W& u/ s7 D$ i% T- j
- (end_list)$ k$ ` k1 a7 [. y) W
0 `* ?: k5 i' ^; \/ Z, }- ;; Set initial tile values
. F+ L$ q0 r/ K' ? S - (set_tile_props)
$ k* y" r$ H# x: [$ y) q# `) {$ S - (set_tile_handle)
% m( w; m8 U0 g( k# D9 K8 { - (set_tile_pt1 0)0 T0 r5 k* N6 a- p U9 Y" ?
- (set_tile_style)
+ ?- a8 y& i$ \9 s @ - (setq just-idx (cdr (assoc 71 elist)))
$ ?/ H$ J# y6 e) x7 r - (set_tile "MTextJustify" (itoa (1- just-idx)))5 U. f) m# K3 H8 r6 S; u9 r
- (setq dir-idx (cdr (assoc 72 elist))), Y z0 u$ L$ o( N$ i, Y: g1 _
- (cond
/ z% ?' n$ A' J7 c5 u' t& J - ((= dir-idx 1) (setq dir-idx 0))
7 l, p! @, r7 h7 T$ d; h - ((= dir-idx 2) (setq dir-idx 0))
+ h$ r6 ?" a. X - ((= dir-idx 3) (setq dir-idx 1))$ P$ Q. n ?4 {* r; p
- ((= dir-idx 4) (setq dir-idx 1))9 A# N# G+ S3 g$ ^
- ((= dir-idx 5) (setq dir-idx 2))
2 u1 n- q! f' g - (T (setq dir-idx 0))
& i1 ~: w7 A* c& H6 n2 J% X5 F - )
6 D6 v$ j( S% c: X7 Z* H7 A, h - (set_tile "MTextDirection" (itoa dir-idx))
J! n) `: u) H' q" ~ - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
# K. A2 ~: o9 O& n/ |% w - (set_tile_hght) L8 h; `; X' h2 o' a% S8 B
- (set_tile_rot)
/ D0 S$ ?1 m4 m - / K( o( O6 O; d; D
- ;; Set edit box, disable if too long
4 o' k) O- D+ O9 `8 J - (setq gc3 (cdr (assoc 3 elist))
0 c, ?$ b( B5 T0 T8 I0 H5 r, ~! D - text (cdr (assoc 1 elist)))
; F4 }+ ?$ w0 B! U% n - (if gc3" v& O1 q' o$ B1 o/ v! B# c! N
- (progn ;; Text is over 250 chars, disable edit tile
8 m# B/ M% Y( u - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
. |/ y- `* l0 d/ q2 L3 Y" \% p - (mode_tile "t_string" 1)
9 e9 p G/ T& V- |+ G2 I - )
$ }3 Z6 B! l* M7 B. ]& b( } - (if (> (strlen text) 80)
3 a7 G% G' d* u, g/ q, `# \8 I - (progn ;; Still too big, X5 @# ^( X" F2 ?
- (set_tile "t_string" (strcat (substr text 1 25) " ...")), l7 G- y8 e9 k; F
- (mode_tile "t_string" 1)
) R, @) U' @' t" J, p - )
8 W0 Y: Q9 q% w6 S3 H - (set_tile "t_string" text)
: j& ^+ i. q$ V3 z - )' z- m) X' T% H% h9 v7 d }$ J
- )7 y3 H1 L! s( v( v
- 3 Y* J0 w% }& u& Y) r- C
- ;; Define action for tiles, G7 s. `; d/ J8 [: _/ Z
- (set_action_tiles)7 h& V/ X( P4 k4 M' X: ~
- (action_tile "style" "(MText_style $value)")( t9 R$ K" H% z
- (action_tile "MTextWidth" "(ver_MtextWidth $value)"); Q2 }4 l! P5 e- ^
- (action_tile "MTextEdit" "(done_dialog 4)"): O Y$ }6 \/ ~- n( O
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
$ |4 v! N- {8 `& h4 h% C) f2 \3 g - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")$ X; [" l O3 B! w/ a, W
- 6 j/ d9 Q# Z M( w) \" o3 u! M7 F
- ;; Set initial focus to text edit box.* ~4 o; |6 [* R+ y& f
- (mode_tile "t_string" 2)' k' W) P5 `1 Y& }5 U
2 g* s1 q5 Q- x/ N- ;; Run the dialog( k$ G0 k* w' j3 E& W: j* W6 l4 Q8 ?# U7 K
- (setq dialog-state (start_dialog))- F* X+ ]% @% z% G; ^1 x+ E* E( u
- (cond
9 d U+ o+ R+ n - ;; Cancelled - restore saved data- d q% H9 A/ U' A2 k
- ((= dialog-state 0) (reset))
: q1 a6 l! ~4 E3 X! i( e - ;; OK - save new data7 p: L* ^* ]! O
- ((= dialog-state 1) (modify_mtext))
/ x" b _" _+ y) j; Z7 u - ;; Pick new insertion point7 A# h2 Z3 F5 Y8 _3 ^
- ((= dialog-state 3)4 I4 B% j: l$ G: l' B$ Q; i
- (modify_mtext)$ }+ ~4 |5 ?/ Q* o' a
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: ")). x" R' n$ J& A0 H' i. V4 p
- (ver_pt1 0)
& X7 T7 A6 {& c4 Q9 w - (ddmtext)4 }" D2 y$ L* v; y! b% q
- )
* t( Z/ D- b7 ?" |/ r$ H - ;; Run full editor
2 X) i! G; P% n1 r3 { - ((= dialog-state 4)
) X' k1 z+ Y/ u+ D0 S3 Z+ K - (modify_mtext)8 b- n5 f0 G( k# P
- (safe_ddedit ename)# V! F, i- K2 m% B5 A% T
- (setq elist (entget ename))$ K% p1 F& D) ~* G$ B# z
- (ddmtext)* w% ]- |& f0 {8 y' \$ ]6 T
- )& k) W1 u6 r$ T7 N
- (T nil)
& w- y+ l$ T, v+ E, Z- R - )
& b/ |$ Y& o% g2 E - )( g* [+ ~ a, m( n( c5 J' v" F
- + C# f4 C3 H& N
- ;;
: N0 S# J- j$ V7 C1 K - ;; Modify VIEWPORT8 U+ |" n3 w! K! ~# G
- ;;- v3 ^; e. b, \/ Y5 b' |
% R3 z. _! e7 |) t% v- (defun ddvport ()
) w( z' |( ~5 H! B - (if (not (new_dialog "ddvport" dcl_id)) (exit))* y1 m& {' i- o: ^7 I2 N3 Z0 r
- (set_tile_props)4 R, I8 d! G3 I" `* }- I
- (set_tile_handle)
4 H6 S, Z) h! B8 v" F - (setq vpt (cdr (assoc 10 elist)))
; _) E* F5 L2 `% ^/ C. v, v7 \ - (set_tile "xtext" (rtos (setq x1 (car vpt))))
: _; o9 b4 s; l: K5 l - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
" D- r6 _$ c' B: l9 J9 h( U1 Q - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
' ?0 B1 ` \ z# q/ @- f - (setq wid (cdr (assoc 40 elist)))
' v- Z. z' y& P7 e8 N - (set_tile "wid" (rtos wid))
3 i$ U: Z+ g2 y! w# E/ T - (setq hght (cdr (assoc 41 elist)))
6 P/ h0 g$ J# p6 _% P1 M5 F# r/ R - (set_tile "hght" (rtos hght)) D* a' f/ m- W0 X5 o [
- (setq vpid (cdr (assoc 69 elist)))
0 i) B; P! ]% v1 p - (set_tile "vpid" (itoa vpid))" C$ F. E* i. a3 f
- (setq on-off (cdr (assoc 68 elist)))
( k! H+ d# Y! R - (cond
/ l, _! ?! i% w i - ((= on-off 0) (set_tile "on-off" "OFF"))$ x' v1 Q' z2 l& J( R5 {# A
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
6 s" U6 I0 n4 h. j - (T (set_tile "on-off" "ON and Inactive"))2 d& T g( }: D
- )! `9 d2 [: k. ^: q0 }
0 ?. F Z. |/ G, ?- ;; Define action for tiles- ~9 C0 @/ {& @ ?- i
- (set_action_tiles)# ]0 H, T0 j* _
9 q3 |3 A; l9 s- (setq dialog-state (start_dialog)). |0 L; N4 ^& L z! _
- (if (= dialog-state 0)
/ G. E5 K7 @9 W8 _% I: q( H/ j9 J - (reset)
$ a1 a( T7 a+ r, [+ y- W - )
, @8 P; ]3 ]/ O8 {) _/ P1 Z - (if (= dialog-state 1)1 U% V8 R+ N) r; ?% J g" Z
- (progn
- j0 s# \( s& O& [8 `( F - (if (= ecolor 0) (setq ecolor "BYBLOCK"))
- |* @+ ]+ s: {0 e7 D$ I - (if (= ecolor 256) (setq ecolor "BYLAYER"))$ m, M. J: P4 Y
- (command "_.chprop" ename ""
" k' v+ |6 N/ n( R- _! q - "_la" elayer
L0 R/ B7 v4 z2 } a) s; S - "_c" ecolor "") L# U2 s4 D9 s
- )
, c8 z: _1 Q4 u! I: X, L - )
; x9 ]' l$ D4 _ - )
0 P6 W( z- M+ K - )
; t, |- L% x% [' j9 L% z - ;;
% N1 f9 g' p( O7 n - ;; Modify POLYLINE
) e7 {+ \5 }" A! z - ;;; M2 `- L$ y4 M6 ~0 s+ ~
- (defun modify_polyline ()4 |8 o: D! {) x) r) u& C
- (modify_properties)
0 I" Q1 ^: X/ ` - (if (= ltgen "1")2 s( W3 z0 p2 u) j& U# |$ B
- (if (/= (logand bit70 128) 128)( u% y+ ^) n% j% [' g4 L
- (setq bit70 (+ bit70 128))$ g2 V0 S R6 Z; ~9 P4 O
- ) T/ U7 M. h6 h) e
- )( b! s0 S8 [ H2 O; y% c; L/ H1 l, h
- (if (= ltgen "0")
8 Y* v+ B% u& C3 y. U- i r0 v - (if (= (logand bit70 128) 128)( t7 _/ C1 y! A. A0 g4 J
- (setq bit70 (- bit70 128))& G3 m4 N" d+ H
- )0 V @. D( w# }7 O
- )! y' E/ y/ \' X& k; @
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))( J/ d) N: D {% ~" ^2 U' k ]
- (entmod elist)! v2 U# [0 Y0 {. o" v( M% X. H+ r
- ;; Added to take care of updating Vertex information for color
/ @- ]" G$ o9 A( F( n; Y$ A3 ` - ;; and linetype./ e: Z1 O# I+ e6 o
- (setq save-ename ename save-elist elist)
1 f' j. l4 z! u - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
X0 ?: ~' x- m- _ - (progn4 ^& ^) h- F4 y7 ^9 J5 B% L
- (emod ecolor 62)
$ [! |) o( T2 N: H) W3 O3 I. m - (emod eltype 6)
% {+ U! q5 `: K1 Z - (emod eltscale 48); V. f) n- q. N+ l4 ^
- (entmod elist)
. H+ J0 F' k0 e9 d% P - )9 K$ x$ J7 U% q; g
- (progn
q7 G [" J( g# n6 L - (setq ename (entnext save-ename))
6 M3 u6 t/ ~3 W2 h - (setq elist (entget ename))5 Y) R: ~* ~$ Y- S4 Y% f
! H$ u$ d( @# F5 g, r- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))# t& U+ n( s& j) S. V
- (emod ecolor 62)- C( N+ c9 w! z
- (emod eltype 6)
r1 M7 F/ [" u: w - (emod eltscale 48)% z5 |. h2 b2 G& {7 g* @1 L6 j' q. p
- (entmod elist)! ^: s. N' D# [9 ]! }- K' I5 u
- (setq ename (entnext ename))
7 d, t( ]' ]' W" Q6 m - (setq elist (entget ename))8 O+ \+ G3 [( Q4 @: W6 o6 s
- )
" f N$ C l4 k3 m6 \$ A) d - )( ~# X' h/ E Y0 s+ s' b. \
- )
4 i7 Y; d6 Y; q% O, H' i# W - ;; Update the SEQEND7 p/ [! C! X5 O9 |
- (if (= (cdr (assoc 0 elist)) "SEQEND")' h7 `+ Z! ^: ` ^$ Q
- (progn
, @- X6 c9 M& J$ }/ W( n; H; p - (emod ecolor 62)& r9 ?7 Q( y( ~7 z: |8 Z9 g
- (emod eltype 6)
5 f6 q: |) y" W! H - (emod eltscale 48)( ?9 N# ]9 h5 N5 h6 l
- (entmod elist)
4 t( i+ j# @+ d' [2 _ H0 k5 { - )
1 r L: i! X% O$ x. \4 u - )
( t6 A2 u5 l2 `6 _2 |7 T - ;; Go back to header.
1 B& I- }5 z' H/ K( k& Q: ^) t - (setq ename save-ename elist save-elist)* L2 t( B1 S V- E5 d/ ~
- * f3 [" j5 ~. G& Y; H L
- (entupd ename)9 N) S' K3 Q: q t3 u2 v7 j
- )
. F0 \' s- u# }" v
! P+ g; s0 b& M |. } j- ;; Increment vertex. Set tile values to next vertex6 s& f, `* e Z& a
- ;;; y6 g- d' w/ v5 @0 m# a
- (defun next_vertex ()* D; `- _: e1 R
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
: x; Y) v. A' [) }3 B0 q/ H" m - (progn
" W+ a! N) g4 ~+ R - ;; If the counter reaches the number of vertices,( _" p/ W& r, R7 Y
- ;; roll it over to zero again.2 \! \4 B1 T/ f; U* Q0 @& [6 E9 i
- (if (= ctr (cdr (assoc 90 vlist)))' d( D2 }+ F7 u$ g1 v
- (setq ctr 0), A. w+ V0 A3 D! o( {
- )
3 V( i# Z7 v9 f - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))! |/ F/ B5 {8 `
- (set_tile_vpt pointype)/ t/ y! Z; x* ~! n& M' A
- )$ H. x* \2 ~$ ?+ m0 L! A1 x
- (progn
. @, A3 X* h: e$ |& R' i - (setq vname (entnext vname))( o8 l3 O( e- ?, d. u
- (setq vlist (entget vname))9 x; t3 [0 s- l; g
- (if (= (cdr (assoc 0 vlist)) "VERTEX")! ~( F. ] M3 g0 T V
- (progn. H8 \( w0 p: q: R" D) F' K
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
0 d0 k- v' B, `3 W- P - (set_tile_vpt pointype)
: Q/ \3 J# j" I. Y) e. q2 p - )
& q3 n) B1 {6 g9 J; } - (progn L2 z( W. w- j' \
- (setq vname (entnext ename))8 z C& D) o9 V/ s3 u( R. u
- (setq vlist (entget vname)): {8 ^& i4 A! N, W) U
- (set_tile_vpt pointype)
$ u$ m" c; z" M& ?/ c& v1 { - (set_tile "ctr" (itoa (setq ctr 1)))
( E- i7 A! J; J1 q - )
& ^0 k7 V) \( Y - )
; d7 X8 z/ D, r, z' H - )
7 g$ W) [2 W7 I5 p - )4 \- C( l5 d2 P) E- g
- )
) N/ h# J4 g6 m" K6 m5 n
: L6 x6 o' [2 d& [2 O m: p) k- (defun ddpline (/ oldecho)3 l7 { u! A7 K* b1 ~
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
) O2 |, G P, z: V- L4 u - (set_tile_props); l6 Z7 c: H9 |$ e
- (set_tile_handle)
1 B' X$ o6 Q' Y0 c - (setq bit70 (cdr (assoc 70 elist)))* l* f6 p% Y$ k8 |
- (setq bit75 (cdr (assoc 75 elist)))
: I0 B- u, [7 f, W; L/ _ - (cond
- I8 b7 J) x+ c7 C - ((= (logand bit70 8) 8) ; 3DPOLY
; V6 Y, z- y# T - (set_tile "ptype" (setq pltype "3D polyline"))
4 q9 A3 o/ D; j) n+ X - (setq pointype 0) ; WCS or ECS point values) w6 J0 v1 ^ H0 i+ p
- (mode_tile "fit" 1)* w: N1 B) n- k. U2 b; C2 D
- (mode_tile "mesh" 1)
( E' F: v5 a" \8 F0 L( M - (mode_tile "bezier" 1)% ^& E7 q' i- z
- (mode_tile "ltgen" 1)" P: }0 [, j/ m- O7 d; W% t
- (set_tile "none" "1")
0 s P/ ~7 }( }9 |( ? - (set_tile_closed)
1 O$ g' H g N8 U8 n - (set_tile_fitsmooth)
9 q" V. b" e1 [( ]: V. H. | - )9 r6 x$ {/ U! v" N4 T
- ((= (logand bit70 16) 16) ; 3DMESH
# q! H) ]5 _1 [' o2 { - (set_tile "ptype" (setq pltype "3D mesh"))2 j9 k) k. Q# O/ l2 X
- (setq pointype 0)
% }( g- Q7 T$ g6 Z% C8 K - (mode_tile "pline" 1)
# A5 @( q* ]" K7 ^) ]- U - (mode_tile "fit" 1)
7 } x# R( U) C: I7 k% g - (mode_tile "ltgen" 1)
; c& W+ K8 }; S7 R- O - (setq m (1- (cdr (assoc 71 elist))))
- v+ j( |8 m" r; d$ F% Y) v3 \ - (setq n (1-(cdr (assoc 72 elist))))
6 @4 }# o5 I# \+ a1 f) e! d) B - (setq u (1- (cdr (assoc 73 elist))))
1 O! E7 B @/ \2 A" h! Z - (if (< u 0) (setq u 0))8 Z+ d' R8 T! i M) L
- (setq v (1- (cdr (assoc 74 elist))))
& [0 n/ F& D5 u4 ?4 g% O - (if (< v 0) (setq v 0)). E) _, ~7 T$ }* V7 B# Y! F
- (set_tile "m" (itoa m))
5 R5 b1 l7 }6 P - (set_tile "n" (itoa n))0 U1 u2 C- W& R
- (set_tile "u" (itoa u))
2 p5 |' Z, q" Z; ?. J3 W$ Q - (set_tile "v" (itoa v))
; U* I! M7 r- C, p9 o - (set_tile_closed)0 Y+ D! D6 H. V, K5 _. a1 x1 J6 m
- (set_tile_fitsmooth)
( D- Z3 Y2 {! F$ D! v+ H+ v& j - )! S; v& D* H* D/ d* @. |1 [
- ((= (logand bit70 64) 64) ; POLYFACE MESH
4 V. X; x M1 b9 c& ^& |8 o - (set_tile "ptype" (setq pltype "Polyface mesh"))
; p) K& j% H$ P; \* ` ^ - (setq pointype 0)
) P2 Y; H8 g* i1 F( z4 n - (mode_tile "f-s" 1)5 Z; w. f2 {& W4 h: m
- (mode_tile "mesh" 1)
/ o( [; e% k; p6 J4 l y - (mode_tile "pline" 1)5 S0 Q! P, O9 I% `* `- A& }3 ^2 o
- )4 Y! o( ~6 r4 a. s
- (T ; 2D POLYLINE
6 \" t q9 ?& g6 i - (set_tile "ptype" (setq pltype "2D polyline"))
3 x6 M, P1 L: c& _6 M7 w3 { - (setq pointype 1)+ N0 C5 p" d' m
- (mode_tile "bezier" 1)/ ?- M5 ~' _( q( L& N% ~7 t) L( |) I
- (mode_tile "mesh" 1)
: @% }8 m# K1 f/ A$ G - (if (= (logand bit70 128) 128)# [. B2 N' U! F$ I* ^1 J g0 j
- (set_tile "ltgen" (setq ltgen "1"))
# |. n* S5 ?2 @9 D: t - )
8 I! E1 U& |; _( x9 A r2 ^, w. W - (set_tile_closed)
, D8 Q9 |. z: h9 y" t. A. @" U - (set_tile_fitsmooth)
7 D7 V$ |' ]$ q9 N& g - )
$ n8 A& E( d! |; }+ p9 N, D: v! G2 d - )
5 W l4 o( j6 c F) }
$ |9 E9 B* m$ M+ ~: k- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE") r; e2 m1 e& X% C7 [
- (progn
- `, T \) C$ {! _3 q$ E# _ - (if (not next) (setq vname ename))
0 A4 e/ B! M2 m' q" b - (setq next T)
' W" b6 P0 E. b' r, L* _) d - (set_tile "ctr" (itoa (setq ctr 1)))
: o+ N' Z) m4 S: i2 b6 }; K0 K* u - (setq vlist (entget ename))" I6 w, a4 {. ]4 a8 ?
- )7 z- E3 C" Q% o1 u9 B3 P
- (progn4 V5 E4 ~, ~7 M3 {" F5 D
- (if (not next) (setq vname (entnext ename)))
. b |" d) f4 E0 E6 e) c4 c A - (setq next T)# u* j6 |% l5 P# O7 Y: U7 {
- (set_tile "ctr" (itoa (setq ctr 1))), S- S8 X4 Q$ L7 L0 t
- (setq vlist (entget vname))
+ G4 B$ Z4 h, m - )% [/ \& M+ ]5 c3 D0 Q
- )! |2 ~# U. W. D+ ~) H
- (set_tile_vpt pointype)+ s4 O }. U# P' W$ q
- ;; Define action for tiles; t5 z' p* m6 K
- (set_action_tiles)* u( @) e& `$ p1 t& I- H' Q
- (setq dialog-state (start_dialog))
4 K* t! P8 ~, w% s% H. `% m
1 }3 k4 K0 y# s& d! ~1 x$ X- (if (= dialog-state 0)
4 v, B6 z( B3 y, N - (reset)
! \: s6 [3 X, w' y7 B* s) m - )
) u$ C9 m; C7 z8 Z1 @( c - (if (= dialog-state 1)
- U+ }/ r7 J6 | - (progn7 F0 Q7 m" M! }( T+ c: k& f s
- (modify_polyline)% }# N$ g( _# G1 [' _6 E" o) O
- (if (or (= pltype "2D polyline"); M5 Q& G6 ?6 `! R
- (= pltype "3D polyline")% n' j, j) y$ v" r0 k8 i
- )
: g9 |2 t* ^7 b3 |- Q - (progn! u v3 k9 G: K2 Y0 e8 S
- (command "_.pedit" ename)
% p" R! u0 B3 d: {& r. z+ `! I - (if (= spltype 0) (command "_d"))
3 f9 z, C; D2 Y) D - (if (= spltype 1) (command "_f"))
7 i4 L! T" T2 _: E# }5 s7 ] - (if (or (= spltype 5)
6 o g* R5 M- M: M$ e* r7 _7 @3 z - (= spltype 6)
+ A$ \5 F3 I, Y2 [6 ~5 d# }- I: G - )0 N* K3 I$ g. j4 K7 ~( T* [2 b
- (progn7 [5 b& t6 W/ ]1 `" B* g
- (setvar "splinetype" spltype)2 V; V( y% J" @2 `+ q; G. e
- (command "_s")3 N9 ]! k) t3 {' L% E% u
- )
3 j4 r, x1 W$ P8 e D$ O - )# [5 Y$ F4 P E- O' Z; N
- (if (= closed "0")5 V; g. T9 y1 ]: \; C4 p9 v
- (command "_o")
' y! X3 g9 H2 K4 u$ [% p% }3 } - (command "_c")
6 S5 `2 t$ n) U" B+ w: J+ v - )
1 ]+ z! j4 f6 d' O6 A( A - (command ""): E9 Z) v& a- k' k. {
- - s2 D e5 P! M0 O0 h- t& j
- (if (= spltype 0)
( n, N$ {" o. |, o$ B - (progn6 @9 m$ s/ d( s$ Q
- (setq oldecho (getvar "cmdecho"))
* e ^; ^, x1 o, i! y - (command "_cmdecho" 0)
# Q# f9 j) j% m5 }: ?8 F - (command "_convertpoly" "_light" ename "")
& o$ H, C7 \, A2 T0 u) V! P - (command "_cmdecho" oldecho)
; `# @( I* H+ H$ z' h' b - ), Y; `- {$ x& V1 c+ j' ~" _* a/ ?
- )
/ o- ]5 ]9 v/ E6 P - )
! {' @7 Y5 ?, h7 L# f9 j1 b; R& }) @ - )6 K+ f- \+ [+ t1 m( G
- (if (= pltype "3D mesh")
+ g) B Y; |6 l' m - (progn
( r* C, A. t3 }- Y( K - (command "_.pedit" ename)
9 ~1 U4 R1 k [) y3 F$ u: j - (if (= spltype 0) (command "_d"))
6 i; x4 `% y' y& o - (if (or (= spltype 5)
, j A, S% `0 ^; F - (= spltype 6)2 k& ^1 w6 h- E( D, H, M* K
- (= spltype 8)+ H: u* Q- E( q/ y
- )0 K2 c+ f- d$ B G% O2 I. E* G
- (progn) y) P; Q& h3 |/ }
- (setvar "surftype" spltype)
; [$ |3 K" }2 a* n9 n" t( g8 W; m8 e0 R - (setvar "surfu" u)
$ k/ o& `! I- X- x3 P4 O' i - (setvar "surfv" v)2 I) H# Y1 c& g$ O' c/ U/ L
- (command "_s")
9 v5 B) C8 a- h9 g, C6 T - )$ j" A& x# h' S4 e* `$ [ |
- )
4 ^* a9 `$ h* B - (if (/= closedm old-closedm)
* N; c& z& r0 D7 U1 c" n - (command "_m")
9 e$ G( J8 p: a$ z' @* F8 a - )
' D& }+ D: z3 |3 {( m6 L6 _ - (if (/= closedn old-closedn)+ a" E! T, B& v" P
- (command "_n"), H3 F+ f- O! w4 \/ P9 j# H) h2 g
- )# K) R4 c9 t9 E: r e" P3 W1 w
- (command "")
& |8 B# t+ u8 n: K$ Z; t3 F3 ^ - )
: C% i! G! v. I7 z - ) A' E3 z1 x g8 p2 q( z# W3 R
- )1 @- E% D m0 ], [" B( Z
- )
& k8 d8 B* h; |+ x - )
# V+ { ^% W0 H9 M' }0 y0 b9 e - ;;
: a c& {/ p" o$ A$ B - ;; All the spline data is contained in a single elist. We must do some
9 n2 e! o) @0 Y/ I* p9 Z5 m: u6 e - ;; tricky list processing to loop through the elist in order to display6 N* y1 C1 ?; w
- ;; all of the control points.0 \+ c4 _6 D/ `3 Q- n
- ;;: \! c- K4 O5 W# g8 \# A/ ]
- ;; The structure of the elist is different for rational and non-rational
, v# w; h0 R2 q* a+ c# u* f - ;; splines. Therefore, we check the rational spline flag.
* r- v% W4 `* I0 K2 h' d8 T - ;;- N: |6 z9 X: k0 ]0 C
- (defun next_cntl_pt ()1 e; }" L( P6 b ]* W/ [% q8 k0 t9 s
- (setq elem-no 0) ;; elem-no = element counter, V% R5 Q0 u% k3 |$ @1 L+ P) A
- (if (= first-10-time 1) ;; If first time, find location of first$ H8 M* m4 D3 }
- (foreach list_item elist ;; cntl point element in elist
. n8 |; x8 g4 ?# Q' m1 ] a - (progn' }: G& ]# J- W! y6 y0 Q4 E
- (setq elem-no (+ 1 elem-no))) l- r9 J/ m% u5 F& j& s) ~
- (if (= (car list_item) 10)
W! r( H: y: }) k* o - (progn
( W* S0 o& y, K - (if (= first-10-time 1)
1 Z7 _9 i7 f( T- I5 o# J$ y, d* I - (progn
' [- i: E$ q2 h+ E, \; N8 i3 ]" D" \ - (setq first-10-rec (- elem-no 1))
" ^# N8 G; N3 m6 g( q - (setq first-10-time 0)& j* Z) L# q i1 L7 k3 f% r
- (if (= rational_spl_flag 1) ;; if rational, \- U7 ]1 p% d% I& A& W
- (setq cur-10-rec (+ elem-no 1))$ M; j: a4 K6 i! b5 M8 E
- (setq cur-10-rec elem-no)* J4 ^* C$ f. Q' I5 X" \. ~, U" r
- )
+ b4 r% S) ?' l$ G" a: F3 t$ b# f - ). s- V$ O: R9 o/ y& e
- )0 K3 l& t6 m$ d" s$ }/ f) ~
- )2 ]8 D- F4 R9 v: w
- ) k9 E3 ~) k, k o6 U
- )
0 k- Y8 U" q4 x d0 q: N - )6 l1 e% W6 c# E9 _. j9 `% [' ~$ u
- )
8 W, B6 U; f8 i8 C - ;; Now we know the location of the first "10" record; it's stored' K* u( ?$ ^6 S' t# K% j, O5 P
- ;; in first-10-rec. The first 10 record was already displayed when
2 w; m/ s( E a3 T& S# Y, Q" a - ;; the dialog first came up so let's display the second one when7 o% Z8 m4 X5 S) V- Z9 E# S, b
- ;; the user presses the "next" button (the first time through).% w3 p0 p) U# i4 O6 t0 i
- ;;
2 V# l' _ v9 n: L+ J1 B! I6 A5 ~ - (setq temprec (nth cur-10-rec elist))2 j4 x* g+ K2 u
- ;;3 k+ j. Q9 y3 y$ L$ {: i" \, I
- (if (= (car temprec) 10) ;; if 10 record
2 } h0 \/ A6 |2 K5 g2 y W3 L - (progn
& o5 A% G, |5 x& t) N/ ] R1 _ - (if (= rational_spl_flag 1) ;; if rational spline
* J# s; t1 k4 y. s6 Q - (progn
8 K8 e' P T* v - (setq tempweight (nth (+ cur-10-rec 1) elist))3 V2 u; f" [- F( x- {) q/ Y
- (setq cur-10-rec (+ 2 cur-10-rec))
, ~# Y+ B+ X1 \: N - )4 J8 ?" ]0 g) f9 R& G9 O, v
- (progn ;; else
/ X4 _4 h. B; D7 i' D5 g: ~9 L - (setq cur-10-rec (+ 1 cur-10-rec))/ \9 P0 O& d) r
- )+ b* {$ }$ t$ D3 N4 h
- )
- U6 V; \% X& M$ V! L1 ~. w& g/ a' S - ) ;; end if rational spline) R2 l+ N% F; }
- (progn ;; else reset counters# n! K6 P, M# ?
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
0 J- y! ?, O; F; T; Z* e. } - (setq tempweight (nth (+ first-10-rec 1) elist))! [) p5 I3 C1 ]; U U& h
- (setq cntl-pt-indicator 0)
+ l( t. j7 q! z" ?5 D* `, H& w0 ~2 R4 x - (if (= rational_spl_flag 1) ;; if rational7 L7 R# \4 ]% ~( s( A4 p, Q
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec& F# q/ F( a& l1 G& H
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec1 e3 {/ t( r7 a$ \
- )- K' w" H; m- t& t: R0 X
- )
G: }. W1 e2 D; A. l7 S - ) ;; end if 10 record) c4 x' b6 E1 |$ h
- # r, @- w' M! T5 }4 I# V
- ;; Display cntl point, weight and ctr. Increment ctr.
! j' G. ]% w8 q - (setq cntl-pt (cdr temprec))
3 k2 v- K; N. U - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))1 c8 e- t" H+ V% c0 i
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
- _ }4 d" S9 D. p; c - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
. X9 o3 \! K9 J1 A( c - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
, F' [5 U8 ~0 ~; |, l* {- R - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))' \% ]0 m0 J) o) C4 _
- (if (= rational_spl_flag 1) ;; if rational
% a" i* J C: X( c W! a# P/ k - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
/ {0 M$ z C$ I6 N# q4 {+ E3 m7 K - (mode_tile "weight_text" 1) ;; disable wght
/ g' ~' ] s, T - )
! h o2 s; G. L2 n0 h - )
4 e" ~$ h5 I* s' q - ;;
2 G7 S5 G# ^1 r3 G0 I" K1 [( q - ;; All the spline info is contained in a single elist. We must do some. U" J1 y/ F: F- O5 E! a
- ;; tricky list processing to loop through the elist in order to display
! [5 o0 r( `3 \! g) A - ;; all of the user data points.0 P+ o( E/ o' z( ?, R
- ;;
; n; M1 e) X6 M - (defun next_data_pt ()
) X2 _8 ^9 X" m2 X$ z( y1 T6 `* v - (setq elem-no 0) ;; elem-no = element counter
: g7 m D- v) `1 N6 D; o* z- T - (if (= first-11-time 1) ;; If first time, find location of first5 j/ H9 O; L7 s0 P8 [
- (foreach list_item elist ;; data point element in elist7 e/ S$ T- d2 A1 Q5 h
- (progn
4 ?* }: [5 A }6 [9 G% ^ - (setq elem-no (+ 1 elem-no))% P% H8 Z4 t- S4 C% {2 m' W, Q
- (if (= (car list_item) 11)
/ ^% _3 S% h* Y& E$ w. C# h- S, W7 K - (progn1 v6 {5 @3 x: A* c
- (if (= first-11-time 1)* k. ^1 W: F" P3 L l5 z$ r. B8 t
- (progn' ^7 b: M! c4 C0 M1 w/ R; T: Z
- (setq first-11-rec (- elem-no 1))
- h6 m. N, }$ p% } - (setq cur-11-rec elem-no)
5 y* B0 m' e( c5 \) H - (setq first-11-time 0)
4 [( T" S# ]" k1 l* {- s3 t - )
9 k% B" I6 }' m3 O1 G0 A2 f9 V - )
' m; E! z7 N/ S8 l - ), C1 Z, W+ `( d, m
- )
% x3 e2 L3 T" c! w6 d& ]- T+ @ - )" n- P/ O r- G$ r) `
- )0 b# |/ u" Z& \: | F. @' W
- )2 ]7 @! E8 u3 p. @
- (setq temprec (nth cur-11-rec elist))
- v9 U. ~- o9 s1 ?6 h8 Q' V. G9 @* } - ;; If it's not a DXF "11" element then we've gone past the last
5 B1 o& d; {6 O$ q5 X' a - ;; "11" element. Go back to first "11" element. Reset counters.$ l" V$ o/ U4 M2 k- P( q; y
- (if (= (car temprec) 11)
) O I7 p) ]6 N' \ - (setq data-pt (cdr temprec))
/ G0 E2 Z! p5 h/ J6 b - (progn ;; else
% E0 m/ e* _; j/ A- I0 M' h% X$ ]. P - (setq data-pt (cdr (nth first-11-rec elist)))- A' d+ {0 q( w
- (setq cur-11-rec first-11-rec)
+ g3 y8 }5 A a/ s7 L - (setq data-pt-indicator 0)0 b. g. X% m5 k
- )
, A% e! t* Y, l" L$ Z - )3 u# {, o" O- X; ?' Z# R
- ;; Display data point and ctr. Increment counters., {8 C3 f, s" G; w3 c( C
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
+ N$ b- q, w8 H$ o - (set_tile "dytext" (rtos (setq y1 (cadr data-pt)))) O: B5 n9 i, P* B7 ? m3 _
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
! P8 N/ l- o, N& {6 D - (setq data-pt-indicator (+ 1 data-pt-indicator))
; Z5 l$ j* |4 b; n5 U4 w - (set_tile "data_ctr" (itoa data-pt-indicator))$ r( [7 @# T4 `, p0 X* h
- (setq cur-11-rec (+ 1 cur-11-rec))% u6 n" O4 k1 U8 h: K
- )
+ N7 ~0 X5 t: }2 Y. y6 x% X - ;;. N. n* r/ o, O; V/ M# B, |5 x
- ;; Modify SPLINE+ v/ G, _+ v5 ^& d! i _: O- Y) v
- ;;
) k3 Y. [$ l4 }& T/ X1 Q$ k - (defun modify_spline ()4 W/ g: |6 G j7 `- W
- (modify_prop_geom)$ c% f9 V+ H) s- V2 o
- (entmod elist)) x2 P5 ~2 P$ V+ B' \4 b+ _: Z
- )9 g' h7 Y) T x( C6 F* U8 P* V
- ! x6 K& o7 X. f3 p1 \3 F
- (defun ddspline ()
+ u! I8 r! W/ D9 t9 p - (if (not (new_dialog "ddspline" dcl_id)) (exit))
& v! l" ?. z* L* b: a& t0 D9 J - (set_tile_props)
, i. C* D4 J1 p5 h3 r- M - (set_tile_handle)
M; M& c* @4 ]( o1 X M/ K) R - (set_tile_spline_props)
% H+ U3 F* n, p" |% G- C* R - ;; Display first control point# n H) g* ]$ j3 U |6 l8 X- ?
- (set_tile_cntl_pt)
5 i, n9 B6 o4 o' ?. _) V! @" q/ ~) E - ;; Display first data point. j' Q, {/ i6 B7 x5 c$ a2 J
- (set_tile_data_pt)% d2 D& E4 u1 D r* ?
# \0 ]) Z3 [7 t, c- ;; Initialize flags to indicate first time through the dialog.. C5 b/ }$ H5 ]0 S9 R$ v
- ;; For control points and user data points the "next" buttons( m1 z7 b. Y( Y& p5 _8 _/ U* ~+ P
- ;; in the dialog call the appropriate functions.: u, o$ m7 Q H# `0 `
- (setq first-10-time 1). p& z m8 e8 r* M
- (setq first-11-time 1)
) r1 k, I2 B- ` s - ;; initialize control point number counter1 r& Z* `5 X- s# Q6 l/ P
- (setq cntl-pt-indicator 1)
$ z7 D, x* V* A - (setq data-pt-indicator 1)
- F) V; C: O0 Y" q - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))# D- @# l/ c- Q6 Y
- (set_tile "data_ctr" (itoa data-pt-indicator))
6 {" @- A! l; w* } - (set_action_tiles)
) F/ Y, \) |1 K( V5 J. B- R2 d3 ? - (setq dialog-state (start_dialog))5 @6 m7 w1 @1 a7 C4 M' M
- " \, N4 A1 f: x" _# `
- (if (= dialog-state 0). y1 r3 s7 K- `/ G' s8 M
- (reset)" a; j2 R# E* r5 p: A$ w9 V
- )
! Y6 T/ x5 M# u( T - (if (= dialog-state 1)
( |3 k. @" U* U" ^0 b9 y3 k' l - (modify_spline)( {2 Z/ E4 n, M) U7 R, j; P: G
- )1 w2 w1 R7 t. t, M
- )
& _5 R* e: L1 h& W" ~
: c6 ~1 [: i7 L) ?/ n- ;;
0 u+ G1 U3 C& E" u J2 e! k - ;; Modify DIMENSION5 _' E0 X5 z9 F' N* t
- ;;
* I* S( o/ l$ L: L N% w2 H - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl4 X7 e4 Y9 G5 u1 t: T
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist. q/ d0 d! i0 f
- dimtype dimsvcurset)- Y( h7 f* H! A; f, y% {( c
- (setq dimtype "DDIMEN"
- r5 f4 [8 ~+ ]6 B. T9 ]4 {; q - dimsvcurset (ddimen_dimsty_restore)1 q' o' q' U: G3 L
- )
: u* Z: E/ `1 A& n" }: v - (if (not (new_dialog "ddimen" dcl_id)) (exit))
' t; [* q8 J3 x) r" o, ^ - (set_tile_props)1 x c- F$ l9 r* e; }
- (set_dimen_props)
8 V. T6 A( Z+ w$ ]$ F' r5 } - (setq dimtext (cdr (assoc 1 elist)))
- Z, S8 E/ P6 B4 M - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))7 N( R& o; B. d) F4 g. w
- (set_tile_handle)
: v: F* r0 u3 e f; B l, A3 \1 u6 q - ;; Define action for tiles, G8 g8 v; {9 a! y% v ~
- (set_action_tiles)
2 _4 d; n8 p) [6 E
4 L: g# E' q. e# e$ b- ;; Set initial focus to text edit box.+ O3 D# ~% Q- X& S v0 C+ T- Y
- (mode_tile "t_string" 2)3 g9 U9 {% q% S* \- T6 @4 M1 o. p6 U
* I8 X5 s. P+ }- (setq dialog-state (start_dialog))
) f6 ?! x4 L/ Q5 O - (if (= dialog-state 0): b. e! P4 c# S& P' K- C0 ^
- (if (= ddimmt 1)
$ T2 g) x5 v- K4 b& p - (reset)$ `$ I% Y" V8 p; g n# k
- )) U; e& {. K, ^0 X' |- A2 w
- ); ]* e" [6 F4 _, Z2 A
- (if (= dialog-state 1)
: r1 a" U3 U! m5 A0 q - (progn
! l( I& m0 _1 E) ^6 j/ k0 p( t - (if (/= dimsty stname)0 d" ]; `/ X. u4 q7 j( }+ k! r
- (progn: J# Z) `5 x/ s) v7 B6 d$ j+ l* t
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
5 Z9 W$ x( V" @; D7 n - ; doesn't have it.+ O* S. R" a C! E. Y8 b* K
- (if (null (assoc 3 elist))
) T' m: W: r7 c - (setq elist (append elist (list (cons 3 dimsty))))6 e( a) o# X& k9 w
- ; else just replace it.
# c% E. ]/ \% H* i: \$ t: q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
6 `0 d$ ^( e/ l# [% Z - ): X8 F+ L% G4 q: |, X G a( g, ~
- ; refresh sv_dvlist with new dimstyle.
* }3 ~) M' Q9 D% _2 W" S8 U$ M - (setq sv_dvlist (tblsearch "dimstyle" dimsty))& a$ E1 ?) v: L8 r
- ); _! k, _* D5 H8 @
- )' M _& @4 _5 o1 R% d F/ P& x
- (if (not (null dimlist)) ; attempted to change dimvars, i' V; y6 ^& H' V5 m+ s) ^9 L3 o5 p
- (ddimen_complist sv_dvlist dimlist dimtbl)
/ L1 g: c! q3 _( l! Y* W6 M1 v - ) h; V- C3 g4 e
- ; Modify dimension text7 ?; e8 [4 H0 q. ]5 b
- (if (/= dimtext text)
, Y, s& j( ]$ t T - (progn
; d# [. \* ?' H& f' V - (setq dimtext (if (= text "<>") "" text))+ ^+ c, U9 [) t8 Z8 F
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist)), ~1 i9 y. g6 w! F
- )
/ h- _1 Y* N( V: Q" D - )% G1 L; p& G& @. O, T: `
- (modify_properties)" Q' K. F+ T* Z
- (entmod elist)
: s7 W9 e( I( K4 E# h" D - )
|) m8 h0 y; p* @6 Z' Z - )+ j+ i# }! j" V6 p2 q- G
- (if (= dialog-state 4)
6 M1 b& C u) [ - (progn
; l4 K4 F- N$ h: z# @: u - (setq ddimmt 1)
* h- P7 Y3 N Q# x, X - (if (/= dimsty stname)
. [, ]; h- U5 t( h# }5 g% Q - (progn X8 I5 B' D/ ` v! f8 m* }8 K
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
! U/ A N3 |9 \0 `$ I1 C j( T- n - ; doesn't have it.
/ ]) _2 \& q5 e1 i i - (if (null (assoc 3 elist))/ B3 N; H$ m% x3 f* y
- (setq elist (append elist (list (cons 3 dimsty))))
* O8 ]' M6 T b% `+ x G - ; else just replace it.
+ h9 ^2 ]$ ^4 t0 ^8 S - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
: V; B' E: v2 [' m - )
4 A# w1 n6 `& K" s0 [+ E - ; refresh sv_dvlist with new dimstyle.
) e' q/ s: B$ R* u. a. S - (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 I7 n1 X A' `
- )
K1 `8 Z+ w# n' D X! q - )$ }- L% M! x: q' @4 T
- (if (not (null dimlist)) ; attempted to change dimvars
' Z2 G" W; |5 h3 i0 V - (ddimen_complist sv_dvlist dimlist dimtbl)# @) X+ K* ?, D, Y- r3 t! R
- )
7 ?& Z \/ O8 {/ B( Q9 f - ; Modify dimension text
- {, F8 D8 ]$ V) z# z% m/ ]; ^ - (if (/= dimtext text)
0 J. r0 F, C' l3 g6 P - (progn
! ~; U9 A4 ^! [2 V- L* M - (setq dimtext (if (= text "<>") "" text))
9 y% K6 a( E3 ?1 N3 } { - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
/ f0 y7 a# e+ @7 G+ X - )
2 M, e) J5 Q$ l+ }' q# z - )6 T- ]& o) J9 j0 Q8 u3 }
- (modify_properties)
& f# m. y0 W% X1 P: o5 X& K1 e - (entmod elist), g9 m! A- w, d2 ^/ q; W4 ~
- (safe_ddedit ename)
: F1 A' E) Z$ ? o4 F - (setq elist (entget ename))
0 g+ h& R, L! ^! d" E - (ddimen)
/ }! R" t3 I+ e0 b& v8 p - )
q/ ], _+ n8 y, ] - )- _' D- h7 `0 M d; F6 e
- (ddimen_setvars dimsvcurset) ; Prepare to exit
$ N9 d4 C9 l9 T8 ^ - ), J! M: X( }" S! U8 n: ]
) h, e5 m1 o1 E: b* ?/ U# o8 S- ;;
/ j! N/ I- a: w e' }8 f - ;; Modify TOLERANCE" x# {7 P y1 `- _$ y" Z
- ;;. j3 b; v7 _8 Q; @' h
- (defun ddtolerance (/ a stname n dimtbl
* Q' |% j0 Y3 _* z6 w: ?4 s - dimsty dimlist dimovr sv_dvlist stlist dimtype
* B2 U# W. \# X) t - dimsvcurset)
2 Y" H3 d. @3 R, B - (setq dimtype "DDTOLERANCE"
! d, b1 F3 b/ d3 U - dimsvcurset (ddimen_dimsty_restore)
m) j9 E6 K% v) c) t - )1 }3 x3 M. J" _& ?3 w
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
) c' |) |1 C+ x! R2 \' } - (set_tile_props) Q* P( I0 v% H5 p* p
- (set_dimen_props)* N) }" z& O& ]' T0 \1 Y- N u* u
- (set_tile_handle)$ w1 H. N3 J0 E- N* l( t
- (set_action_tiles)5 z' Q3 E# N' Q* q1 u+ u( N
- (setq dialog-state (start_dialog))0 ~/ w8 \" h2 L" ]& M6 V
- (if (= dialog-state 0)5 p* f5 d$ H/ S* T
- (if (= ddimmt 1)9 @6 i. s* t4 X4 l) j8 X1 U
- (reset)7 d- a# J- Z1 `
- )
4 H r4 D( [! ~+ p - )
D/ d+ Y4 @# V+ Y R - (if (= dialog-state 1)
( |5 d1 B2 \( O& i - (progn' x0 h8 v8 _. o4 v
- (if (/= dimsty stname)
$ q! r1 f2 n( |3 a+ R! B8 H- } - (progn
4 a' p+ h# N1 `" o - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case3 o/ o& R5 R7 i
- ; doesn't have it.8 ]8 r4 {3 M+ R g9 N$ N6 I' A! w
- (if (null (assoc 3 elist))
" t* I) J& \- ~ - (setq elist (append elist (list (cons 3 dimsty))))
% @9 Z" k" n5 S( M' h- ]# S ? - ; else just replace it.
- I R. C& Q4 r! A7 k# E - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
, I: h% y% _* w% j; j, H9 g* e - )* W! Z* y: S3 N* d. B, e
- ; refresh sv_dvlist with new dimstyle.% M( i9 C, l, h8 s# Q) e
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
. P3 x) N1 E9 w; w - )
: m8 @' ^$ v) a' F2 e: V - ): Y3 e1 ~; G% A; [4 T y1 `
- (if (not (null dimlist)) ; attempted to change dimvars
- l6 K# F; q$ e- n% _( {+ ]( @1 h - (ddimen_complist sv_dvlist dimlist dimtbl)
: O. B; P% I* `+ D/ L- D - )
& s: r9 ^3 z% [- l) @/ W8 V - (modify_prop_geom)3 O2 D* s# p2 K1 [6 ?9 C" A# Z1 V
- (entmod elist)* @& e! e, @# V" ~6 f; c: k# y
- )
6 p- W1 G: H) h4 u2 ~# I, J( ? - )+ T- O @/ I b- s. p
- (if (= dialog-state 4)
5 R$ d9 M+ L6 h( @6 g8 o - (progn0 T* `9 h7 L$ M% c% z
- (setq ddimmt 1)% e6 o! B9 o5 R% t2 v$ I; M* O
- (if (/= dimsty stname)
9 Z) O8 ~# ^6 N( C$ Z; Z+ ^+ n" a - (progn* l% w/ ~ e& O- a
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case8 I; A* o$ p$ m/ E
- ; doesn't have it.
3 F/ ?# ~1 B/ l) x$ v - (if (null (assoc 3 elist))" q9 F- A; B# a- P9 |
- (setq elist (append elist (list (cons 3 dimsty)))): Z1 D w* X% q! [3 ~2 Q% p
- ; else just replace it.+ M8 v# \; n# q8 i: E7 {
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))1 J/ Z8 E" d; i& z `5 M! y
- )
6 g! ?) w) Z3 S2 g( @" |5 J# ] - ; refresh sv_dvlist with new dimstyle.8 e7 s+ ^" Z7 x1 R$ C; _
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
' }& ?9 y( L2 V( C- U - )2 G$ N- W( `8 {. j j
- )' ~; n6 J4 m7 o+ P
- (if (not (null dimlist)) ; attempted to change dimvars
+ ~3 k0 ^5 u! r5 ]- W u& `- P+ U* m - (ddimen_complist sv_dvlist dimlist dimtbl): Y% n5 x; q3 f( X
- )$ `! X7 |) N$ p" h5 ?) z
- (modify_properties), z6 H6 Z. r# Y( k4 ]
- (entmod elist)
7 W: z, R4 Y5 H P - (safe_ddedit ename)
4 W0 V5 x; C4 I - (setq elist (entget ename))
. ^; g5 U; Y" l! u$ ?! O) x( n% C - (ddtolerance)& D4 `0 F7 `8 ~9 B% v
- )
; s' B$ g3 [' V0 A. e, | - )
5 P! N+ h+ [5 C: h z/ ] - (ddimen_setvars dimsvcurset) ; Prepare to exit
# ?+ R* L; ^4 c1 x0 L0 E - )
) _- j8 a& r L' o5 ~# x7 L+ t" c - : k {$ f I( Q& S
- ;;# B5 y* P) ~1 V
- ;; ddimen_dlg - jump to ADS ddim module
4 ^3 L; b& I) s$ n3 K0 r) u - ;;7 i) K9 ~7 ^. x# J, L
, S6 x/ ]) n t" Q- T- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)' P# g6 Z! X. a. t' {
& e$ e, G5 T7 ]; V# g$ {7 O/ J- ; Jump to DDIM with overrides if any.
& }* Z$ n* j2 R0 }; O% e7 ], e - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
& K- u! O0 C" [( L* g - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format( R: M, ?4 R' d% m+ b, P% R
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
) ^1 o) n: p9 \" X1 r5 a - )% ~) M. v5 O7 p. G( W
- )/ W4 r! U: u8 Y$ v
- ' y$ J4 y' t$ U. G$ K
- ;;
, h: H2 k7 H* | - ;; Dimension variables updated are stored as overrides.2 o8 s% b5 {; K- U3 T
- ;;
0 D. W8 @& a; v( L5 U0 x" B
9 \4 W' e& v! a" Q- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar. m5 R/ }6 M# L
- dv dime commandIssued)0 r5 K' B% [. U; ?
- * Z" |9 Z& }% t
- ; Here we skip the following first three items:" p0 h( M& g* i, j8 v
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
0 f8 l5 I( O; d7 F! V0 | - ;
& x5 M. J& s& q2 k; l* E, ^7 H) z- H - ; The list comparison immediately begins with dimvar., `$ [0 {: Y( b) @! o6 l+ K
- ;5 v4 Y5 u9 @! r [/ c
- ; dimolist - original states of dimvars
0 [1 b/ B0 q) j2 x- O' I) O9 m' S - ; dimnlist - new dimvar list which is of the resbuf's
& j" V3 R3 e$ f$ \# z - ; dime - entity name for the dimension; C% y" e+ x# k# B- Q% N
- ; odvar - value of dimvar for the dimolist
E3 \3 ]& T: _) [ - ; ndvar - value of dimvar for the dimnlist
. _* C p' c' v5 E; Q% U4 g1 p
/ m4 L( x# Y5 n4 D S7 O- (setq i 33 Y& Q7 \& I. \- \+ V
- dime (cdr (assoc -1 elist))4 O/ m, |; P* g& }. E
- )$ v/ D! k$ J0 Q
- (while (setq odvar (cdr (nth i dimolist)))- J+ M& ^6 ^& B. X' W$ b2 ]
- (progn
* U4 Q. ~- G3 b0 L - (setq ndvar (cdr (nth i dimnlist))): [& s9 j% V. i* { c
- (setq dv (nth i dimtbl))
0 l4 M1 c% P# c7 V4 Q5 o - (if (eq dv "dimtxsty")
3 a8 v- v% V' ?0 F8 s9 ?2 w* d% V0 ` - (setq odvar (cdr (assoc 2 (entget odvar)))/ K6 P0 H$ p2 S; e O) T
- ndvar (cdr (assoc 2 (entget ndvar)))
3 B( X" k( U n3 l2 B, X! @+ ^ - )1 q. h& S; i* Z: v5 `
- )- n% {$ H6 M% V3 P
- 2 p- z' T2 L) O4 A9 O1 @
- ;
! b: \: ~. p3 X. V- u. | - ; In order for DIMOVERRRIDE to operate correctly with string; X* f6 C+ s" l/ Z) y3 g; g: P
- ; based dimvars, we must pass "." versus NULL strings. ]) b) h7 z* a
- ; In this case ndvar is the new dimvar value the user wishes
! k2 b6 T4 u" V5 i% P; F5 c z - ; to update on selected dimensions.
; O# ~; y0 C! P- M4 I+ U) x) ` - ;( S8 j0 J. }3 j: i+ y" f
- (if (/= ndvar odvar)
3 I7 Q2 ]; X; u) f6 C5 q6 i - (if (= 'STR (type ndvar))
, S0 ?+ I2 \! P1 ^3 ^ - (if (= ndvar "")
9 b: `7 f [! Q - (setq ndvar ".")))). _$ I. ]/ I' m: b$ w9 L7 ~6 I/ ~8 R
- . _4 z. s/ R4 v; i2 D
- (if (/= ndvar odvar)
3 n0 g/ T2 N$ z - (progn7 E1 C, w+ P2 G3 |
- (setq dv (strcat "_" dv))" T. \- {$ `5 a* ^$ e( ^4 m
- ;
9 {8 ?. w1 \( v2 D/ } - ; Start the dimoverride command) t5 B& M& h) W
- ;
+ q& Z. _9 s" m; N3 W4 x8 a - (if (not commandIssued)
2 D* k+ t, O" ?& x/ S j- u - (progn
5 s/ H: b% [! K7 F - (command "_.dimoverride")0 _1 P- f. X! J* }
- (setq commandIssued "T")
/ D. ]! d* N) E( X2 ~. N - )! B; N& s/ C/ _% K5 }+ k
- )5 v5 s" `2 C, I& D0 S" p- _1 K5 ]
- ;
' E+ r% a* t3 v0 W$ U - ; Issue dim overrides
* v9 B* |/ b: T- {: F0 P c5 g/ }+ q - ;
% Y, U8 F( o6 j p - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))& j6 X O: d3 U( C, r; v
- (or (= ndvar 0) (= ndvar 256))$ y$ `6 [) z/ G4 C0 w* \/ \
- )! ^/ b* \/ e" x' [) R
- (progn
4 `8 l2 _' F9 N; I* f - (if (= 0 ndvar) (command dv "BYBLOCK"))" d" i2 n: M2 R+ B; N
- (if (= 256 ndvar) (command dv "BYLAYER"))" E5 H' M+ z7 d9 _9 e
- )
# `5 W5 R. C! M - (command dv ndvar)! C: H4 y- Z& E4 P Z$ b. M
- )2 l& }+ R% E0 M* e$ ]! e
- )+ Y7 q0 Q$ x% s0 n! {: n% k8 G. J
- )
! H- Q. E% ~( y2 `/ y' n% d7 E4 o - (setq i (1+ i))2 c2 i5 k0 E2 }5 k. Z
- )4 [/ f& G) O) N) @ Z# s3 m" f
- ). d2 {" A8 I) s4 H
- ;2 R$ _, ]( V: E( W
- ; Select Entity and terminate command
0 o, j/ Z5 Z6 o - ;
0 l$ w# S2 P T; a; W6 N - (if commandIssued
, k; J5 h0 x2 J - (command "" dime "")' V8 h- E' V: M, f1 R! D
- )
' Y* o5 x. ?! ?2 P, r( n - )
/ V, j$ U9 ?. b - " R! D3 S i7 t# b7 R S
- ;;
) ]# {: ?+ K/ P" a2 x$ y' u2 ` - ;; Get style name currently selected style name.
, o' ]4 }/ W, s( `+ b - ;;
' l- u# `& G; O* U9 M3 s1 ^; j - 5 ^8 N8 Q+ \3 h3 w% W
- (defun ddimen_style (/ dimsty)
/ ^! y" }2 G6 |" l2 r; u - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)4 i5 g1 ]; B8 |1 t3 y
- dimlist (ddimen_getdimvars dimsty)$ Z8 s7 x. E5 c( k( y
- )
) H/ Y3 n* X! v; h - dimsty! R7 ~1 o/ C' |9 c3 x
- )/ B) @+ s8 v+ d; O
9 [1 o* n7 H, F5 h6 C* [; v- ;;; C4 N) q0 y- o# d
- ;; Set dimvars
4 A0 s* V: E) @ - ;;
9 t1 t4 _! l; D5 m3 W# _ - (defun ddimen_setvars (dimsvcurset / dv i)% `) G5 R- j/ M5 b* s1 @' W
- (setq dv (cdr (nth 1 dimsvcurset)))
; W% M! g( R- {4 C( A1 ~+ s0 e - (command "_.dimstyle" "" dv)
# H8 s: i# W% M/ ^: c o% C - (setq i 3)
% l4 Q k8 F- K" P! P0 g. T' a5 g% F- d( V - (while (setq dv (nth i dimsvcurset))$ g0 l* \ o- C# s0 @+ i( X# N+ t0 `8 P
- (progn
& g# K% p7 V" |8 R - (setvar (car dv) (cdr dv))
$ W7 c1 Q! A' |7 h- j8 c! K - (setq i (1+ i)), s% p Y- ]7 [0 V" n6 {# ?
- )5 ~' \" k% t7 L9 q
- ), g% O( X( k" i6 M) i0 d: R" [/ [$ @
- )! \0 n& @: r' c: q9 `
- ;;2 l9 n& X- I# Z! k8 N7 [$ ^
- ;; End-of-dimension
: {' ^& Q+ ]; A/ C8 @5 W4 P0 |, V - ;; ==================
4 z2 u8 ~* T# k! H* i0 x+ a. u
( |; l5 c+ a; U5 C- ;;( A8 v8 B; t ?# J2 Z
- ;; Sub-dialogues for properties. Common to all object dialogues- X5 ?2 i! F7 w& Z6 Y
- ;;5 ~3 Z6 u* b4 {8 y6 i! } }
- ;; This function pops a dialogue box consisting of a list box,image tile, and- P2 `2 z/ z, I0 K
- ;; edit box to allow the user to select or type a color number. It returns' J2 `; y% c. f! b
- ;; the color number selected.% a% h$ y' J: z% b' F
- (defun getcolor (/ old-idx colorno cname lay_clr)
6 k/ l. }" |# u; ] - (if (= (get_tile "error") "") ^ b5 I, g/ r% _
- (progn
* G1 z; e' P% Z/ q: ? - ;; Get the color associated with this object's layer, for use
; K# U2 n4 A6 ?7 v - ;; in the color swatch if the user selects color BYLAYER.2 H$ S7 H4 ^& {& X8 Q' r: X9 T7 G! {
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))) v6 |9 n) R* Z: ^1 g$ u
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))' c u9 w1 ]. R& G3 _
- (progn
: @4 h. J- C2 A# }! ? - (setq ecolor temp_color) {5 t6 G; Q5 ~- t. x8 N
- (setcolor)
1 D$ O& Z5 q, Y _% j I9 [2 ~; r - )/ P& B% r# ]0 G& y- i& @
- (setq testcolor temp_color)
: w# J. `& \+ E8 r o( Q4 v9 {' q - )
7 f* ?( q! R, H" Q7 ~- a2 ` - )
g" ]2 _# E8 H8 r! e - )
; r. d$ c9 ^/ r& N/ L- c6 I6 i - ecolor- l+ y& P- Q1 q
- )0 Y. m. h8 y& A( z: u" R! ]; R, w
- ;;
2 m1 I& \" g8 z% L - ;; Function to set the color tiles.; j7 G( M, t8 K+ ?
- (defun setcolor()
% L$ J7 Z. m+ `. \ - (cond5 G- i' b' ]2 N8 p. g
- ((= 0 ecolor)
- q' u0 b. I0 W3 L( ?8 V - (set_tile "t_color" "BYBLOCK")
: _7 G$ v* |8 `# n" `5 x - (col_tile "show_image" 7 nil) ; show BYBLOCK as white6 ]) z3 o; p5 o: Z B+ s5 L& y
- )
) }" P# {! H; b3 S+ H4 V6 t - ((= 1 ecolor)
, [# m& F7 w' u. T, V - (set_tile "t_color" "1 red")4 `- f9 |" Q& R, Y7 s( H2 L
- (col_tile "show_image" 1 nil)/ L# t, ]7 g/ f
- )
. c/ T, {- p: _. q - ((= 2 ecolor), T2 ^! t- ?9 w$ ]3 D
- (set_tile "t_color" "2 yellow")) b( p2 n( b! w3 ?
- (col_tile "show_image" 2 nil)
6 c. W# b) f# G& @6 Y - )- G2 m* A6 H0 U# d* S
- ((= 3 ecolor)
" X6 x0 y: c2 D$ X9 L3 k - (set_tile "t_color" "3 green"). \& M" c7 T" P- t4 C
- (col_tile "show_image" 3 nil)3 l& I) i( N+ N# {0 l* d T1 y0 g
- )/ W; L2 ?9 c. Y
- ((= 4 ecolor)" @4 v, Y6 l8 g- @; r
- (set_tile "t_color" "4 cyan")
& A+ o3 S3 Z) @3 H6 p - (col_tile "show_image" 4 nil)
0 R3 a+ w, }- C' o2 [. I/ o% ^/ b- j( K - )
! O# r. w B. d/ Q9 T& E - ((= 5 ecolor)
3 t/ K+ M/ L) w4 c$ e6 A, L* f4 _ - (set_tile "t_color" "5 blue")
- J! I9 m7 p# g0 p$ S - (col_tile "show_image" 5 nil) R( M+ T3 C9 }; c
- )
$ ~! e6 Q+ U( e - ((= 6 ecolor)8 }) v& I4 K" [4 H B
- (set_tile "t_color" "6 magenta")8 |/ p/ w2 R5 P
- (col_tile "show_image" 6 nil)0 Z8 x o, |0 X7 P1 D m- i
- )
9 ]$ c& ]) O/ Q$ g9 r/ e - ((= 7 ecolor)& z5 U S7 A" Q) g7 s) k
- (set_tile "t_color" "7 white")
$ V2 `; V6 Y% w: l - (col_tile "show_image" 7 nil)7 ~: Y% D& J* [2 ^
- )+ V2 @, j8 \3 A3 q4 G( C4 D
- ((= 256 ecolor)1 x' O; a6 \! k( h# L0 K) t2 R
- (set_tile "t_color" "BYLAYER")
& f$ k& ~' g/ m8 a* y# J' v! I - (col_tile "show_image" (bylayer_col) nil)
# o8 i; S2 |- w" N D. Z! Y: q# K6 ~ - )9 P- n9 I! _5 u5 O- c3 u
- (T
2 U2 d7 M( p% \8 K/ e - (set_tile "t_color" (itoa ecolor))
# d5 r7 Q9 ?4 H0 z9 Z - (col_tile "show_image" ecolor nil)
' }3 n H: _5 T4 [ - )
: Z6 M; B) g3 h3 u! M9 Z- l4 T7 g8 l - )
/ Q" H' i) R W - )
9 a* N G3 X% }- O - ;;+ k- h9 e( c3 w- k- G
- ;; This function pops a dialogue box consisting of a list box, image tile, and
3 |! n d2 z- U5 Z3 n6 Y2 ? - ;; edit box to allow the user to select or type a linetype. It returns the/ f# i7 K+ s f& J2 v7 {+ Y* E
- ;; linetype selected.: e" y! v3 E/ D* J. m4 K
- ;;- M, J( f8 y3 j% x. {
- (defun getltype (/ old-idx ltname)- d% K6 h& S/ b5 f4 N
- (if (not lt-idx)
- B+ L- H: j8 P" A - (progn. W% B- _/ L& f8 w r' P
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist. I5 i. R) H8 h4 q6 a
- (cond
, L- Z7 Q( N# v - ((= eltype "BYLAYER")
7 j9 M+ p1 V* m+ ^ - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
^: @" Y3 q& |& b' o1 L - ((= eltype "BYBLOCK")) r4 R# r6 u Y$ k: O; x* d7 |
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
4 V T" |& c5 ?( `, x3 q# R( Z( M - (T (setq lt-idx (getindex eltype ltnmlst)))( C9 f& `2 @1 ]* k) w
- ) ~+ c' w! y, v( P" i
- )
. c3 {7 Y3 R/ x - )
9 X. B! C$ w4 d( Q% Q - ; y7 f' { y4 l
- (if (= (get_tile "error") "")1 M C) a. i, Z K0 N% x
- (progn* D3 V2 a- `- U
- (if (not (new_dialog "setltype" dcl_id)) (exit))
+ \3 M4 z" F. h3 V8 m0 w- g' v - (start_list "list_lt")
& u6 P( n ?. v; ~ - (mapcar 'add_list ltnmlst) ; initialize list box$ }* C* q) l$ M' E
- (end_list)
4 A+ ?# O6 o9 l( L7 _ - (setq old-idx lt-idx). D3 m2 ]# ?) \
- (ltlist_act (itoa lt-idx)); x r6 m7 P/ q6 T: w
9 q. W2 M: q: S9 [, d' [7 K* P- (action_tile "list_lt" "(ltlist_act $value)"); Y' Q6 Z' m S6 u$ K1 \
- (action_tile "edit_lt" "(ltedit_act $value)")
! V2 e$ {5 Z. D6 a# l - (action_tile "accept" "(test_ok)")
' t+ }/ R( _* j' \6 }- G- l - (action_tile "cancel" "(reset_lt)")# N* n! C8 R2 r3 z7 `: R
- 6 ?( s8 ?* D N5 _
- (if (= (start_dialog) 1) ; User pressed OK
" \; E; d+ D$ q$ \8 d - (cond' P% J# r4 c& K; ?- X
- ((= lt-idx 0)
# v1 y5 j3 ~" y - (set_tile "t_ltype" (bylayer_lt))% {' |) }5 z8 d+ p% Y2 p
- "BYLAYER"
" `) H2 o) h4 A+ D2 m2 K9 M, G# u - )
, g/ x6 y. Y, g/ l7 H: { - ((= lt-idx 1)
A f; s3 F5 O' i, W - (set_tile "t_ltype" "BYBLOCK")" b7 j5 r% V7 d3 |' X3 \; K
- "BYBLOCK"
8 u! b' ~+ S3 S4 o; Q" ] - )
6 [6 w# i# a$ H) {1 o6 L - (T (set_tile "t_ltype" ltname) ltname)
% z- s' @' t( x' _5 O - )" [! a+ d( X" B+ u
- eltype
5 h5 k4 q G3 D - )* N2 \* C' y( c5 a5 i' m" w- p3 ^1 D
- )
0 p+ a) a7 Q+ g; { - eltype
8 a0 b. Z( d( {4 x: U7 ~3 } - )" k( C7 V$ E4 j8 T
- )! o: w4 o$ i! o0 j) q
- ;;
8 H( f/ Q0 N M! R. X" f - ;; Edit box entries end up here
3 W% j- L3 X M9 \# i5 N - (defun ltedit_act (ltvalue)
) d# F- y/ d9 f; a- I! R - (setq ltvalue (xstrcase ltvalue))1 d3 L+ C- p1 p( J* Y
- (if (or (= ltvalue "BYLAYER")
* v/ E- L) c6 s3 d$ }6 P6 o - (= ltvalue "BY LAYER"))3 K; Y5 R4 c9 [8 c$ ~+ `; q
- (setq ltvalue "BYLAYER")5 B1 x7 D+ r" R# h4 U0 j$ j' H$ ]% j8 i
- )6 W4 o2 n+ O; E& C- n3 }
- (if (or (= ltvalue "BYBLOCK")
4 g" U0 U2 G6 H& s1 v- T$ H - (= ltvalue "BY BLOCK"))
' R: N: i. e, w$ |: ^: y, U - (setq ltvalue "BYBLOCK")
. V0 @1 @, ]7 K$ i1 a* I D* j - )2 R. v6 N% `) E+ f
- (if (setq lt-idx (getindex ltvalue ltnmlst)). G# |, R/ ~! O* J' N
- (progn* X* ` |4 l* v3 g. W& X" o
- (set_tile "error" "")7 R& o1 f' K9 W6 `
- (ltlist_act (itoa lt-idx))
/ _4 V" }: T; z. c6 {" P - ). ^/ s& s! o# A3 X" U& g
- (progn' Q2 G+ n1 P0 B# E0 Y
- (set_tile "error" "Invalid linetype.")
$ n' ]) i( C5 L7 d. V; H- h! @1 M+ i$ B - (setq lt-idx old-idx): Q! t* w& y! D$ d$ ~
- ;; (mode_tile "edit_lt" 2)# D3 P8 Z3 W+ [1 J2 @' W2 k4 g7 q6 h/ I
- ;; (mode_tile "edit_lt" 3)
3 K4 v- Z5 e9 t7 J X( b - )6 y r3 ^) J) V8 h
- )4 S7 b9 [! l* ~. r. b9 `% j
- )0 Y1 C1 `/ `+ d/ U s) I/ {- q
- ;;9 c1 X: z8 U$ v* y/ k
- ;; List selections end up here. Update the list box, edit box, and color! A; k V4 @6 @2 Q- A
- ;; tile.
7 j( |& ]% W6 S% V - ;;
0 t5 w4 p- z2 ^. x& c- @/ p - (defun ltlist_act (index / dashdata)
2 r" E7 p3 N$ t" f( p. [ - (set_tile "error" ""): \# l& {2 w" L. v: A5 \
- (setq lt-idx (atoi index))( E [$ G: A; j7 j1 C3 u9 ?
- (setq ltname (nth lt-idx ltnmlst))9 E# N# h$ a/ E, |9 f; G( [6 ]
- (setq dashdata (nth lt-idx mdashlist))
9 g* e: ?" E M' P - (col_tile "show_image" 0 dashdata) V0 j% c( ^1 u. d" _3 T9 @
- (set_tile "list_lt" (itoa lt-idx))
$ N8 d5 L7 f1 F5 H - (set_tile "edit_lt" ltname)9 [1 ^1 O9 }/ H5 j. o T4 `
- )
+ |7 v/ B* U) c1 L; Y$ a - ;;
% T1 S+ S- |2 O - ;; Reset to original linetype when cancel it selected
: P( V0 Z2 z7 k) y3 X. O' g9 B; H - ;;. \( W6 _( e9 ]( O: G
- (defun reset_lt ()
; ?0 j+ w' T2 a E* o& ] - (setq lt-idx old-idx)# O! A, Y' Z& m* j6 V4 {
- (done_dialog 0): A! \; m+ C$ S Y2 H- ?
- )8 ^; Y8 F( A0 P
- ;;6 r4 A' c1 H) Y$ g2 W( O8 y
- ;; This function pops a dialogue box consisting of a list box,image tile, and- S' o; |1 t N8 W1 p& l/ [; h) \
- ;; edit box to allow the user to select or type a layer name. It returns the+ u& ^" c; K' [/ ?
- ;; layer name selected. It also has a button to find the status (On, Off,
7 o- G% L, ]( M - ;; Frozen, etc.) of any layer selected.. R. C& a( h& ` f- V
- ;;
1 y# R2 j) {/ {; L3 n - (defun getlayer (/ old-idx layname on off frozth linetype)
- m3 H; O% i, `8 F9 P8 E - ;; Create layer list the first time the layer
: |. ?& A' f' j0 O& `8 }1 x1 C9 y - ;; dialogue is called.
+ @0 H) E9 _/ [: C - (if (not lay-idx)
, x$ M4 K6 ]# J0 k* Y - (progn
8 b9 V& I3 v4 Q% p9 ~3 \ - (make_lay_lists)+ J/ a9 j6 g* {% @, [/ g
- (setq lay-idx (getindex elayer laynmlst))% a% a2 C7 D" {$ {) L; X
- )
7 Z5 |7 Y" u% p/ p/ l7 z - )3 j0 k( f+ v) v$ ~( i
8 I w+ p' Q7 U( y! }- (if (= (get_tile "error") "")1 {, x' l* U! m5 n2 I" i& N
- (progn
% r4 M u! G# B$ j% V' k7 W - (if (not (new_dialog "setlayer" dcl_id)) (exit))/ C3 Y. x, F; K t' D6 k
- (set_tile "cur_layer" (getvar "clayer")); S2 ?$ H: B/ N- v
- (start_list "list_lay")' K4 F2 ~6 a1 H$ m
- (mapcar 'add_list laynmlst) ; initialize list box
( j6 ^* H/ A' s; D, H! d - (end_list)
5 v7 z' F6 g5 t. L% y4 N - (setq old-idx lay-idx)
0 O( D' G, P5 H6 R8 J) N; ^ - (laylist_act (itoa lay-idx))
! I- \; ]+ q! F+ |: B$ d - (action_tile "list_lay" "(laylist_act $value)")
) p" u' \- W; v, K* l. R - (action_tile "edit_lay" "(layedit_act $value)")5 }( U* _( ~- G" k/ k: q$ h
- (action_tile "accept" "(test_ok)")& U C) M5 U9 X
- (action_tile "cancel" "(reset_lay)"): X3 Z! N# H6 e/ h) D. W
- (if (= (start_dialog) 1) ; User pressed OK
: Y, d+ b2 X# {3 B - (progn8 w) K" U- ]9 L
- (set_tile "t_layer" layname)2 `& q/ h! r6 z
- (setq elayer layname)
6 V+ E, b) l; ?; ^( [1 f9 E' w - ;; If layer equals bylayer reset color tile3 Z& s& f0 X/ G) J1 D' ?
- (if (= ecolor 256)- B: O# |) O# q5 R. s N1 o5 V/ B8 t
- (col_tile "show_image" (bylayer_col) nil)' R9 y$ v- X0 R$ j
- )* }) ^3 R% K6 ^( S
- layname
4 a5 e2 e5 J5 p, C# R/ T - )
: e! X& U! d0 w& r0 n7 l - elayer: m" B' \# z( n# A2 F9 ], X& [
- )
# d+ j U% v3 K9 u9 V: E - )
' `- K: p5 B0 g5 b5 m( `# ~) P" r% m$ D1 } - elayer
. {4 J1 _, [ w+ A& v8 o - )
% I% P( r. v. s. j - ), V/ ]: { w5 N4 j3 u
- ;;
" ~. S* \9 O# h9 ^- b - ;; Edit box selections end up here. Convert layer entry to upper case. If
3 |7 i I, T4 {5 o- N9 Y' j8 ?2 V - ;; layer name is valid, clear error string, call (laylist_act) function.: I8 Y4 @5 e- c1 E A1 o8 N
- ;; Else print error message.
% S) g" K: B3 }# I$ e# W - ;;3 x; N; Q; Z; t1 s5 J
- (defun layedit_act (layvalue)3 N' W8 M h4 e4 x8 t0 Z0 x; c
- (setq layvalue (xstrcase layvalue))8 w" @6 ?3 V7 Y! S% w! H0 [8 x
- (if (setq lay-idx (getindex layvalue laynmlst))6 X, [1 B. k. @7 z% M) ^
- (progn
$ k! g1 W7 j+ b. q+ Q - (set_tile "error" "")
" P2 j" Z3 p( ]/ i4 Q+ w |& l& {+ w - (laylist_act (itoa lay-idx))
- ~: I: W y4 V( W/ P* t) _8 i% H - )) y5 Y% w. ?' c K* `/ C1 b
- (progn
2 W! N. S. R2 n6 [2 V# H6 n; [ - (set_tile "error" "Invalid layer name.")4 Z/ t! K1 j; a5 W
- ;; (mode_tile "edit_lay" 2)
" T" z& i3 y: K8 o - ;; (mode_tile "edit_lay" 3)# A0 d1 h+ t0 [
- (setq lay-idx old-idx)
* A9 w1 H, }7 z' J$ i - )7 F' L' |" V: h' C! h9 O+ b/ h; v
- )5 E: l$ i, u$ g. _
- )
7 N# J! X2 F) W3 ] - ;;
$ L- L* [6 g1 @7 h6 r% Z( o - ;; List entry selections end up here.6 X, B& }' k" F5 ?
- ;;
% U9 R; @. G. ^# v0 L. s, Z - (defun laylist_act (index / layinfo color dashdata)
* a7 R, R( i6 J: ]* U" I - ;; Update the list box, edit box, and color tile./ ~/ I+ x# H! t/ ~/ m1 L+ e
- (set_tile "error" "")
! a9 v& g8 [1 y# _5 w7 s - (setq lay-idx (atoi index))
( j) U. L! M+ ` - (setq layname (nth lay-idx laynmlst))7 u; g1 I. Y7 b+ u) M& _$ b$ K
- (setq layinfo (tblsearch "layer" layname))2 o, V2 r( f3 O: G2 B7 Q; d1 d
- (setq color (cdr (assoc 62 layinfo)))
! q$ B3 K+ [+ ?7 y# Z J3 j6 J! P - (setq color (abs color))8 q; C( g* [4 S
- (setq colname (colorname color))
( w5 z' T6 U7 n4 o- U2 e - (set_tile "list_lay" (itoa lay-idx)) H+ Y0 }$ u1 Q7 j
- (set_tile "edit_lay" layname)8 e: B: E3 w1 X/ R
- )# e4 I1 L S' x! j1 M1 u
- ;;3 U, m, ?% D6 a' X }5 A! s+ }
- ;; Reset to original layer when cancel is selected.
! _+ `6 @! o0 C/ e/ y$ m - ;;
% p* O# N% L) p% q2 }1 ?1 U/ A# ~ - (defun reset_lay ()
8 [3 | W$ f( J. J* y' m0 X - (setq lay-idx old-idx)
& ?; B5 V" s |- ~/ \7 H, n - (done_dialog 0)
0 m+ G6 l+ K. A1 ?* P - )
, O8 @/ N% E8 I6 M0 W/ A2 u6 U! B; } - ;;9 d9 I0 t; i& ^3 M' {7 R/ m
- ;; Checks validity of thickness from edit box.+ U1 G. l% b3 B) E- L F
- (defun getthickness (value)
2 y, {) M. L/ V* I - (setq ethickness (verify_d "eb_thickness" value ethickness))- F, _* r s! T
- )
) I; d5 b3 W, T! R - ;;
6 g- A' |: d y" u - ;; Copy of (getthickness) for ltscale. If more, make this function2 L/ | M( ^/ K* N7 o1 {
- ;; generic.
4 N" Y6 Z) B" ^/ J' ] - (defun getltscale (value)% K5 e3 U5 }7 L5 _, s, H4 Q5 t
- (setq eltscale (verify_d "eb_ltscale" value eltscale))6 ]$ |5 M6 h# S5 A7 D7 |# p" u
- )
" V, b8 A# e$ B; v% }) O! E - ;;
3 V9 T9 X* h% U7 Y, V7 c - ;; This function makes a list called laynmlst which consists of all the layer
; h$ J q- e8 c: U" s. F; d0 [& V - ;; names in the drawing. It also creates a list called longlist which6 x9 p" W+ y4 @: F3 f6 }+ w* b
- ;; consists of strings which contain the layer name, color, linetype, etc.
- K. v+ ~1 b9 Z- G$ _' @ - ;; Longlist is later mapped into the layer listbox. Both are ordered the
' @( N+ k, ~1 E: p7 u- Y - ;; same.8 s- X- U" g* c; p0 N5 Q' ^8 o
- ;;
6 X; |$ _+ {% S m: ^4 I0 _* D - (defun make_lay_lists (/ layname sortlist name templist layer_number)
: B8 }4 ?- W2 E: ~! c# ? - (setq sortlist nil)7 p6 I- y8 o( W
- (setq templist (tblnext "LAYER" T))8 w, _* q$ k4 _
- (setq layer_number 1)/ q! }: A& M1 _% Y8 Y; j
- (while templist
" h7 S& O3 N; U7 v' W& ~ - ;; No xref dependent layers, please., F: X, b& A+ x6 N! T
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)9 \4 v" Z' d9 N& X" K6 V
- (progn) C, P2 l7 e8 Y1 w) U% M; n. w
- (setq name (cdr (assoc 2 templist)))$ S. M! m1 P, k
- (setq sortlist (cons name sortlist))4 r/ [( K- e( E6 Y2 o7 O H T
- )
3 l2 ]" [6 F4 \1 S - )
; N. [9 H+ M" }" i7 R+ a4 C - ; Get the next layer.1 g9 ~' y4 Z' k
- (setq templist (tblnext "LAYER"))4 w B. V8 |' J3 V# e
- ;; Not dead message...$ @% A5 z5 _" P0 ?
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))/ `2 y' w$ g# H+ }; C
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))+ w+ ^. U8 J q% u* H& z X# D
- )
/ h3 w8 B, P9 q$ l4 l8 H. \0 m - (setq layer_number (1+ layer_number))
5 `2 T! x$ d/ y! W0 L - )* B: e! }5 B/ ^- v
- (set_tile "error" "")
" w, _3 j& d5 D' @ - (if (>= (getvar "maxsort") (length sortlist))
& c/ n: t6 ?0 E( z2 I - (progn, h, W! I+ E V+ y
- (if (> layer_number 50), f4 P/ f4 g/ h/ T7 A
- (set_tile "error" "Sorting...")
* M: y+ w( G2 H' k& f3 [2 _' x8 X - )3 \3 B1 V- o: i. H* s
- (setq sortlist (acad_strlsort sortlist))
, V7 z% i$ V+ h9 \$ h& O - )/ G6 k5 \' h" p' w. j& u" H
- (setq sortlist (reverse sortlist))
( R' p4 P1 J; ?/ N - )! ^' X( Y3 k; }$ E
- (set_tile "error" "")
! |0 N6 U w5 H: V! |3 u* V6 ] - (setq laynmlst sortlist)
{) Z \. K) f$ I+ u/ k; [+ ` - )
. G' E7 z7 o5 e5 ~ - ;;9 r& Z0 n8 K4 P
- ;; This function makes 2 list - ltnmlst & mdashlist.
1 e5 A( c1 p; J* u% p9 L7 W - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist; p; E6 ^. m/ }- ~" H* c; \
- ;; is list consisting of lists which define the linetype pattern - numbers w. `$ Z+ B. e! q- S" ~7 r
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list
: ~- S/ S! o; N' @ - ;; corresponds to the order of names in ltnmlst.0 H; Q6 B: m9 k N
- ;;5 Q p- A+ e! b v
- (defun make_lt_lists (/ ltlist ltname)8 R, d I2 o8 S% X8 }/ N$ @
- (setq mdashlist nil)2 |5 `$ i6 d$ o& X9 `" P
- (setq sortlist nil)2 ^* i7 [# q: f9 G0 m
- (setq ltype_number 1)# O; T9 Z% ^! D+ f
- (setq ltlist (tblnext "LTYPE" T))
+ r5 z/ t; z* Y% n9 B& }; u2 Z7 J - ;;(setq ltname (cdr (assoc 2 ltlist))); r2 @! {/ ?' H) S
- ;;(setq ltnmlst (list ltname)): K# |0 \. ?0 E2 U
- (while ltlist
8 F3 t6 Y, y7 Y5 y1 P - ;; No xref dependent linetypes, please.
9 k6 L9 Q7 I( C6 D/ v, o - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)( k8 |/ F: @* m3 F7 l/ E+ U5 I
- (progn
+ }, d5 p7 G! v- d M, S6 b - (setq ltname (cdr (assoc 2 ltlist)))
" D- g% _% n* u6 X, E# |: d - (setq sortlist (cons ltname sortlist))+ M( A2 c' C. Q0 v$ b
- )
; R+ M. _- I0 y! P. m/ N. H* K - )) e0 r: S& b; Y' F+ l
- ;; Get the next linetype.
6 P1 u* [- ]5 _, _- l$ ^ - (setq ltlist (tblnext "LTYPE")): G) R6 N* `5 Q, M" i$ Y) v ]
' p& V( C2 i" B$ i# w- ;; Not dead message...! Z& q1 T$ n, z* B
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
' ^' @% N9 x- I% [# B - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
/ K6 R, \" `# [ - )
2 l" R* V# G9 K$ f4 L. Y- i" y" o - (setq ltype_number (1+ ltype_number))' @' Z8 }9 y, U* W* e4 n* `5 ]& q
) A) `4 n/ O: ^( g/ H! l; F" E- )
) k" q" }% L9 e. W- g; c" M- M0 m( \ - + i4 m) Z4 I/ q$ I j% F
- ;; Remove Collecting message.
3 N7 E6 q7 {1 b/ n - (set_tile "error" "")
- N5 u, a! U2 G5 |) N' F - 0 ]0 \0 b. {% W: O& H
- ;; Sort based on maxsort.
" b( ?! c3 e" Z2 H - (if (>= (getvar "maxsort") (length sortlist))
) S% A( ?8 R0 @! V. | - (progn! W7 E2 h+ O; ]9 @+ `
- (if (> ltype_number 50). c2 ^) J! Z4 \) N5 t6 z
- (set_tile "error" "Sorting...")
) h- ~- M5 j$ H6 K* l - )6 d$ G5 ~. z8 z7 t+ M) n
- (setq sortlist (acad_strlsort sortlist))
( ^- [2 ]9 k5 y/ F/ n6 l - )% m. N8 [3 k! Z
- (setq sortlist (reverse sortlist))3 X. K, `0 |9 D. R t, R. F1 k. E; E
- )
- x. n& W6 b% K9 X* B$ P! d - (set_tile "error" "")
) E3 P% t, H1 @: m9 p - (setq ltnmlst sortlist). [) P4 l, i/ a: n* D, J; A
- + U% R2 h: y4 l# s+ L
- (foreach ltname ltnmlst
* @3 d& k/ }) h. ~1 W# a* b - (setq ltlist (tblsearch "LTYPE" ltname))
- R! q& C% x1 B0 z: a- v - (if (= ltname "CONTINUOUS")1 L3 U4 v/ \# F+ t$ L8 t
- (setq mdashlist (append mdashlist (list "CONT")))
- f" E+ g& M; j8 P; V @ - (setq mdashlist! y7 E3 \% N/ f8 Q7 w
- (append mdashlist (list (add_mdash ltlist)))# A/ g9 S4 ?1 \* `) ~0 }0 O& X) ^0 H
- )
/ W, |1 j9 x6 x7 _3 G8 |5 i - )
0 Y8 G! K' K% {# D3 y0 ?0 H5 U - )
) J1 m! d7 j$ `! F2 i - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
4 b8 r# o" ]& ]' s, c* G - (setq mdashlist (cons nil mdashlist))6 ]8 J7 s0 @* Q! s0 Q7 v
- (setq ltnmlst (cons "BYLAYER" ltnmlst)); h, o$ s! l3 L8 W' K* Q$ p4 d
- (setq mdashlist (cons nil mdashlist))
& b$ Z7 O* v$ }( H/ ^& H - )
/ b* |2 f; }1 Y9 j - ;;
; ~( k1 m' I. i) W! C _, m2 z8 @. _ - ;; Get all the group code 49 values for a linetype and put them in a list' @! ?# r) B1 q$ Q
- ;; (pen-up, pen-down info).7 P% _9 L8 Q2 p, {: A
- ;;
; O7 x' E$ o3 O* }! t - (defun add_mdash (ltlist1 / dashlist assoclist dashsize): W" G0 H: [( b) h. W1 C2 F
- (setq dashlist nil)# L2 |5 v) B( ^
- (while (setq assoclist (car ltlist1))
, a( X) M! p# {) E - (if (= (car assoclist) 49)
4 s. t+ T7 j8 I3 d; R! T5 |& z - (progn5 D) Y* b7 F: {) e
- (setq dashsize (cdr assoclist))
' f b. e) f8 K$ m - (setq dashlist (cons dashsize dashlist))( m4 `1 X2 U3 ?, }* a
- )* K; l/ P) S9 ~9 {
- )
R8 o" a) S% N" x ~7 k - (setq ltlist1 (cdr ltlist1))
6 i1 [6 `4 X( n2 b - ) [8 A& K$ D# T
- (setq dashlist (reverse dashlist))! m, |. k9 I# m. y2 c( ?
- ); A# q% Z; T, { F4 ~
- ;;5 O! p2 z5 ]; S3 o i
- ;; Color a tile, draw linetype, and draw a border around it+ u; r r5 u; p; r, j& _
- ;;$ h" ?. R `& ?( p6 t
- (defun col_tile (tile color patlist / x y)( x% M/ r, k7 t4 d
- (setq x (dimx_tile tile))
1 R' l$ U: {, G8 Q - (setq y (dimy_tile tile))" T- Z/ O. P0 `- X% j4 R
- (start_image tile)& S+ ]- X0 ~/ |) h
- (fill_image 0 0 x y color)
" z) n- w5 I0 _1 [9 a4 ] - (if (= color 7)+ N0 d/ Y% }1 @9 }' u
- (progn
7 {5 g2 w6 V# O( I6 b1 |& a& o - (if patlist (drawpattern x (/ y 2) patlist 0))) `/ B8 g6 U# m* l; L s
- (tile_rect 0 0 x y 0)
7 ^# R6 k3 l" L7 C' n - )
$ Y' \8 B. |1 }1 [! v( {& Z - (progn
3 f/ A7 c4 O5 | w# s - (if patlist (drawpattern x (/ y 2) patlist 7))+ Y3 J( A# J3 m, A$ O# o v" ~
- (tile_rect 0 0 x y 7)( d; Z2 X3 s E8 e; x
- )3 f# ~( c; _1 s0 U
- )
- g! w9 ]) n1 w7 A9 R, m( r0 m - (end_image)
: u+ B; f" v0 P - )
8 u) f) z! F$ R( F - ;;- j% t: V, ]8 S: m% T: P9 n9 C
- ;; Draw a border around a tile
/ {* B: i$ i8 W - ;;
! \$ Z, G) }0 t1 `/ X - (defun tile_rect (x1 y1 x2 y2 color)
8 B* q* s, _" j0 t4 I - (setq x2 (- x2 1))
% [+ a$ u; m2 W) b) a" h - (setq y2 (- y2 1))! F1 {* G+ j3 _8 f6 k) V
- (vector_image x1 y1 x2 y1 color)
* I' M& G' ^8 M, E/ o - (vector_image x2 y1 x2 y2 color)
$ T9 |4 K: C' L; F3 h - (vector_image x2 y2 x1 y2 color). I0 _3 n+ Q8 z: |" F3 J
- (vector_image x1 y2 x1 y1 color); T9 M/ b- c2 T" K& @, U
- )
; B! g) J& ^- {9 J& A0 V. _8 _6 S - ;;1 N1 i2 w |9 q4 b9 I: R
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
4 ^; R$ P6 g6 P% A- P - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
& [' `5 [6 H5 K& H1 ^1 E0 d( o - ;; list of numbers that define the linetype, and color is the color of the
5 S! K: X- I# S& { @. F - ;; tile.1 K& [; {% |: u8 k
- ;;
% h3 e! m3 v( S {/ c5 j - (defun drawpattern (boxlength y2 pattern color / x1 x2
, l, n8 h7 Z3 m# d# |; p# b - patlist dash)
7 [- m$ V, p* ], G( j - (setq x1 0 x2 0)
9 Y9 r9 l" t$ w1 n4 i* z) M - (setq patlist pattern)
9 D/ [2 b' U/ p+ R. b - (setq fx 30)5 D/ l+ @2 h3 B+ c6 l
- (if (= patlist "CONT")
, V7 ]) |* i5 U- `- Y: |2 ? - (progn (setq dash boxlength)$ @8 E5 W& H" r4 m0 w& R
- (vi)
1 F( n) m) N( Q6 ? k - (setq x1 boxlength)
. K5 t) O6 d/ X; Z - )7 o7 j! ?# F+ c g. u6 X2 N
- (foreach dash patlist
3 C9 t% ]6 |/ ]3 O- Z3 d7 u, J - (if (> (abs dash) 2.5) n- \! ~* }, x0 ~1 Y
- (setq fx 2)
) D6 C; _- J# K1 y; d - )
* x) n. e( @, y: Z - ). Y& L! Y) F9 i2 N% I6 G
- )0 Y1 O$ _& f5 _
- (while (< x1 boxlength)
5 R4 K$ Q8 `! M4 v3 Q# g, [/ W$ R; w, p5 ] - (if (setq dash (car patlist))6 b$ g: Q) Y1 ?4 V
- (progn
7 i, F9 _7 q) ~' Y3 v+ G9 X - (setq dash (fix (* fx dash)))1 g: Q" U' a- ^ u; M
- (cond; i1 n% Z3 l5 _* _
- ((= dash 0) (setq dash 1) (vi))
- @1 U& Y/ S8 ^' N# X; I$ C$ u - ((> dash 0) (vi))8 P- k: X" y; ?, }5 S2 t" V
- (T8 M. z" {3 O. I* F9 D/ G
- (if (< (abs dash) 2)$ h- B( F, O1 e
- (setq dash 2)
5 l# q* `9 m+ c" X" `" L - )9 H8 B8 f! ]3 B: v+ ~0 ]! l
- (setq x2 (+ x2 (abs dash)))( D2 P+ ]+ W" v& G4 J
- )
5 U7 d8 Y$ c8 r - )
& {1 i; I* W+ b, y; O5 S - (setq patlist (cdr patlist))- n% y9 u) _$ P) o, y' _
- (setq x1 x2)+ j. B2 q. o: }6 h# {8 Q( j
- )' p# B0 F% F" d) {9 @! |# Y; S
- (setq patlist pattern)
+ T1 @' d5 V8 n# {0 F" @) x/ G - )
9 t2 c% o4 Z# `5 b( P+ p( j - )
$ P' `% s$ ?/ ^% S8 D$ _# U - )5 K) F, g1 T6 y+ m: Y- W8 V
- ;;
& Y% }1 x, G, D - ;; Determain state of xclip
9 U2 b# w; v6 c9 w' q* e( j - ;; Returns the group 71 value of the spacial filter dictionary.
& q7 Z' d+ x4 r" t' x# | - ;; If the entity doesn't have a spacial filter dictionary, this/ Z7 D) ^. u& r9 `$ Z
- ;; returns 0. If it does it will return 0 or 1 depending on the2 Y, u! Z# K) Q0 y
- ;; current setting of the state of the clipping visibility.
/ C, H! v1 @9 O1 b8 s( I4 b - ;;
1 D+ ^* V4 I! Y5 T& { - (defun xclipon(elist); F; e. k, c5 e; m% Z1 p0 p! \( w3 x4 c1 P
- (setq hasclip T)
8 k3 v. q$ T. p% q. [: v4 l - (if (/= (assoc 360 elist) nil)0 d/ h; @0 y0 }/ P, h. d3 p% J
- (progn
4 U+ t+ c( S1 P3 H% o8 j. J( c2 w, B9 @ - (setq tmp (entget(cdr(assoc 360 elist))))9 B5 N8 J, W! O" @" P3 t
- (if (/= nil (assoc 360 tmp))
6 ~0 p. U% `9 S! @- ?8 w+ ~ - (progn0 {/ O0 K" L; t1 |! {3 y
- (setq tmp (entget(cdr(assoc 360 tmp))))
2 G0 j+ r$ p, w0 l5 J - (if (/= nil (assoc 360 tmp))# H5 y- @. { S0 j! h! _( C8 _
- (progn
" v4 P6 Z. V1 Q7 M - (setq tmp (entget(cdr(assoc 360 tmp))))
2 k$ o3 C; Z$ W+ c6 K; X9 w - (if (/= nil (assoc 71 tmp))
; n3 l9 b2 T X. R - (cdr(assoc 71 tmp))
! N! |: S/ f" u - (progn
% k$ R7 u0 j, h* y8 r. {( R _3 ~" V - (setq hasclip nil)
1 f- b. d, i5 b1 N4 p) `; i+ D - (eval 0)
0 {1 Q/ c1 z& k6 S+ I - )
! x y) r( t) z7 \3 W - )
6 g3 A8 A( m9 ] - )
7 L" _7 I& o: Q* C - (progn
3 K- Y3 x0 h) Y1 G6 v4 @6 E" U - (setq hasclip nil)7 l" _ x& N( v3 y1 _" z" v
- (eval 0)
4 y8 o, c/ h+ z$ {2 d! _ - )
( z) {( B6 l5 J/ z: ]( C - )5 v* A4 t1 K2 w1 M9 g
- )$ t- P' v6 w {9 j, A7 r& r
- (progn
$ p+ s8 q5 g! z" e& J- t% [! M - (setq hasclip nil)7 k5 S, _# u2 G# P# n$ n9 ?3 q' U% x
- (eval 0)8 V# Z* r: [- M. s& w* N
- )8 n" W4 I; u( y1 p+ m8 J0 c6 w
- )
( `0 ?0 k E2 F4 Y, l- N - ); T7 ^5 g) J9 x1 b4 }
- (progn % q- a1 L# o: a: ]4 l, ~! a
- (setq hasclip nil)/ l+ b% p! Z% M. ]( `- |
- (eval 0)/ M$ D3 o( ^' J2 P
- )" A8 {" Y& w$ B j$ L
- )( P3 w; k2 Z! [) B9 E8 w# h
- )" V- ~( E* u/ Y5 l
- ;;8 p( n8 {' a9 N7 V' W5 r. R# U
- ;; Draw a dash or dot in image tile2 j0 Y! k6 X* z8 \; N
- ;;1 l5 e; y0 q- n" v7 ?2 G
- (defun vi ()
: q- H! Q8 a. X H0 ]9 w+ ^' { - (setq x2 (+ x2 dash))
; N" A2 C( m# p+ k9 E - (vector_image x1 y2 x2 y2 color)
6 ]) R4 z" V& ]0 C- D - ) q; G% ]% V4 e2 j; F
- ;;
. z/ V- x! g8 o1 e2 h- G - ;; If an item is a member of the list, then return its index number, else; @ T9 v( I* [+ q1 p0 p0 E- t3 L
- ;; return nil.
: R. ~: ?5 p/ O, N - ;;
/ f) d. E+ \3 H! _/ U - (defun getindex (item itemlist / m n)
3 `, V& I2 B3 V - (setq n (length itemlist))
$ N+ H" U+ }, e9 A3 P2 D8 S: d( L9 c2 ` - (if (> (setq m (length (member item itemlist))) 0)
+ l: |9 e8 Y$ y5 m7 {( A - (- n m)( |, p0 E, a" m2 u4 [' p
- nil
J) t2 E5 L1 @2 a- T( v0 A) X - )
, z4 j( G% L, b. W/ p - ) I" R# B/ `8 b: J5 B. w: f' \7 c
- ;;
. \: k! ]( p: h) s! s0 z* y7 V - ;; This function is called if the linetype is set "BYLAYER". It finds the9 K4 Y9 D' K q+ Q% S
- ;; ltype of the layer so it can be displayed beside the linetype button.3 x. w) S) Y/ K: M2 t# k
- ;;
% `$ h+ H8 H' u$ B1 l" l - (defun bylayer_lt (/ layname layinfo ltype)
/ |9 `) K# ?/ ] - (if lay-idx$ t4 J& Z; o+ s H, D$ A; a
- (progn
# E, J; A! p* _( Y$ ] - (setq layname (nth lay-idx laynmlst))
8 ]" d) b& H2 M" V$ v$ e - (setq layinfo (tblsearch "layer" layname))7 E. J: _# k$ E% C. B% D
- (setq ltype (cdr (assoc 6 layinfo)))
9 ^1 E: q8 [( P+ ]- ~ - "BYLAYER"9 B, b: C' F% M( |3 M8 l
- )
9 E. E6 ?" O. I8 M* v - "BYLAYER"( M/ B* Z. r q, h
- )" s$ Q. o" b! R
- )$ ]& K# {. t3 j8 @9 C
- ;;
1 S% v% f% c. ]3 x* x3 Z - ;; This function is called if the color is set "BYLAYER". It finds the color' O! u9 ~3 w" G5 j- n' K& Y, H
- ;; of the layer so it can be displayed beside the color button.* B1 Q% A# ?+ S. ^
- ;;
4 D6 V" ]' B6 |' |- Q: q/ c9 f) w - (defun bylayer_col (/ layname layinfo color)
& g3 M) U. V, F) U3 B$ f - (setq layinfo (tblsearch "layer" elayer))* V6 }" j3 I2 l0 c* c! A
- (setq color (abs (cdr (assoc 62 layinfo))))
2 |# A/ `2 M1 h: I1 k4 r0 l+ J - )
, P' h# y5 P+ Y - ;;
: y# I% M) g4 e' ^ - ;; Used to set the color name in layer subdialogue.
8 E+ S& h, [3 L1 o% | - ;;3 a' A7 u7 g; `. c" j/ i) D
- (defun colorname (colnum / cn)
- S" [+ G+ w( G) Y; q+ f - (setq cn (abs colnum))- Z% a+ k/ h4 m6 K0 O4 j
- (cond ((= cn 1) "red")
, P, f. w y/ w/ {. O. ~ - ((= cn 2) "yellow")
5 F) H. A) n) v S& B - ((= cn 3) "green"). Q. p( i8 r+ Q, I8 ~+ `; S& M
- ((= cn 4) "cyan")
8 ^5 f% }9 E9 w! ?5 G - ((= cn 5) "blue")4 F, n7 x* z1 @
- ((= cn 6) "magenta")1 W8 [; F3 B8 x; t1 P3 o0 n
- ((= cn 7) "white")& L* t9 c) M, M& ^" f! @* N
- (T (itoa cn))
- c6 n; ?( u8 L* Y) u& k( g - )7 H- H. c4 ?2 {9 f) G
- )
# t6 w# D3 m4 E4 c6 Q( B0 { - ;;
4 u$ F4 s* l4 W9 A0 s- z$ ^ - ;; If their is no error message, then close the dialogue.
% }. v$ y6 {" X - ;;2 @/ k) L% B3 G) V
- (defun dismiss_dialog (action)
4 m/ _7 m0 X. v+ ], _ - (if (= action 0)6 K: @" \7 \" a; E7 o& f, c+ L
- (done_dialog 0). H# X5 f; A* s6 q% t
- (if (= (get_tile "error") "")) E6 m* K/ k4 e0 e
- (done_dialog action)
9 K2 q5 F# ~ A* s+ H! F/ a0 A - )
6 W) G6 d8 E! i( ~ - )
8 \# o2 V2 q; P: ] - )
! G. T: z7 t, k+ W- y
, m: ^& r* ?& k( _5 N- (defun test_ok ()
; E8 D- H. G# B, p A0 ~! P - (if (= (get_tile "error") "")8 _) D3 ^3 R8 Q! g0 |
- (done_dialog 1)) d9 i6 {8 u. T' B8 w: T+ w" X
- ): y- q' Z) D- I* u
- )
! ?' @0 u% o- M! I' ?6 z
4 g2 p* T7 b5 @) b9 T6 J$ E- (defun cancel ()
# Y/ D; g3 Q5 U e0 |9 u0 m - (done_dialog 0)7 V; V. U+ C# Q: h0 G
- )
* t) ~& N3 o* D$ Z8 @: w - " t" d3 a) e7 j! \3 R
- ;;; =======================================================================
1 u |5 v5 ?* _0 E# p/ D" y% @5 {; X - ;;; SETUP layer and linetype lists for application, and initialize all# {6 O& a1 x- g6 C
- ;;; program variables./ |- d H8 N5 e" L" Y2 x
- 8 A' h/ r7 m- X3 v. X
- (setq elist (entget ename), j5 a+ w4 L1 U" q9 n' Q2 Y
- old-elist elist
6 d3 r! K% W+ k0 L$ t0 P' r; Q - modlist elist
. U3 _3 o2 @) L5 d8 N5 ~/ Q/ [& h - etype (strcase (cdr (assoc 0 elist)))
* c0 ^$ c9 Z1 `" u2 W - ecolor (cdr (assoc 62 elist))
9 C$ |3 |/ m( ^# s9 c7 x - elayer (cdr (assoc 8 elist))
6 z( z5 k1 l4 k$ g! A - eltscale (cdr (assoc 48 elist))
: r, D* B' ^' N# ]" d4 [% j% c - ethickness (cdr (assoc 39 elist))+ {4 U) `9 I ~2 F( O! N0 w: O+ S
- eltype (cdr (assoc 6 elist))
( G4 Z3 P9 Q, Z: L/ K: T - )* }* b, W0 Y+ X6 m: @
- (if (= (assoc 210 elist) nil)8 _2 l) X5 \: d* S9 d: U) S
- (setq extru (list 0.0 0.0 1.0))0 ~- M4 l6 S% x2 e. }1 _ U, C
- (setq extru (cdr (assoc 210 elist)))8 ^: ~& r6 S+ |6 D- `9 {7 g# D
- )
2 Z5 O3 b0 e+ [! G! U - * Y0 O& t; y% K
- (if (not ecolor) (setq ecolor 256))' H1 u7 l2 f: p# F( j
- (if (not eltype) (setq eltype "BYLAYER"))$ I+ I( ]# x7 Y* E4 a, U0 @
- (if (not ethickness) (setq ethickness 0))
6 x) @ \: v+ i* z9 R% E - (if (not eltscale) (setq eltscale 1))4 Q8 p Q7 z) m E
- ) ; end ddmodify_init/ e2 t" D9 f R, G1 s/ I
- . |$ c# t) Q. j) H% p0 z* N2 ^
- ;;; --------------------------------------------------------------------------3 R. k- _4 I0 H% R2 K8 X- |' L
- ;;; Function: DDMODIFY_SELECT
) G6 Z9 S, J# ~ y4 t - ;;;. h: z" u/ a, x! P3 o: c4 N# c
- ;;; Object aquisition function. T% k4 ^0 q/ \2 T8 ^$ I/ M/ a4 t
- ;;;7 `3 t& z* b- q5 ]5 w- L: T
- ;;; (ddmodify_select)9 f/ R& ~3 ~6 g% M0 x8 ~& u
- ;;;7 n! H7 p0 E6 i0 u* a" c
- ;;; Obtains object to be modified, in one of three ways:
; q% ]% r- y7 h4 O) U - ;;;, L+ |6 R% S- q: w
- ;;; 1 - Autoselected./ _8 }2 ?- k0 d p
- ;;; 2 - Prompted for.
2 |& L9 _0 h2 N; I! O - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
9 y- I- b& D( }6 s0 q - ;;;: p) J5 a' Q$ s. z3 p; O$ m
- ;;; The (ddmodify_select) function also sets the value of the6 o+ d2 z* a* U1 c+ x a
- ;;; global symbol AI_SELTYPE to one of the above three values to' n8 Y6 @# t0 v
- ;;; indicate the method thru which the object was aquired.8 q9 A* X0 i; V+ ?0 M# C
- ;;;) [2 c; v1 ]. a) U# v8 T9 m \
- ;;; This value can be useful to applications that want to RESTORE5 }1 X- p: a" S. m# l2 I( @
- ;;; an object that was autoselected to its previous selected state& q- d6 B4 w, v5 T
- ;;; when they terminate, although there doesn't appear to be any
4 f% w' H" E. W2 B" P - ;;; way to do this right now.( H' D8 ]' J- I* t0 f# W6 Z& l1 C
- ; P# `9 f7 a3 q& ` E% S
- (defun ddmodify_select ()& H/ V7 k) ]* l" s
- (cond
7 L3 k2 n9 l3 e3 U# W - ( ename ; (ddmodify) was called; w: `1 ^7 @% y7 ~: O( n3 y, t+ L" `
- (cond ; with an <ename> argument
& [4 }( \+ b; h: C6 H" J. H - ( (entget ename) ; If object is non-deleted
" d! q* F! v7 m - (setq ai_seltype 3) ; then return its ename.
* V' k, k- ]) a, E3 P - (ai_return ename))))+ u8 {! X2 \- r) ?! c
& ]( O# r9 y7 k8 I2 H- ;; return auto-selected , see ai_utils.lsp
" h$ f" Q- T. R+ V - ( (ai_autossget1 "\nSelect one object to modify: "))* p" u2 M- M! G5 [7 A1 |
. [) A J1 t1 t9 c* _/ M7 ^- (t (princ "\nNothing selected.")
1 d: ?1 n1 O7 d: H% }3 k" E) r - (ai_return nil))
1 Z' j1 v# J& [1 @9 \/ a - )
! e- k7 _1 k3 ]+ A1 O$ V - )% n3 k8 E: X! t& i2 D
- 9 g' f; U0 Z5 J( @& |
- ;;; ============= Command line interface function =======================4 z2 H9 O7 c$ \5 r
- 1 A4 R/ C# G1 Z7 t2 E
- (defun C:MMO (): J* N' U: c+ Q5 M
- (ddmodify nil) d& E, m1 I1 K3 p: H, e
- (princ)) ]$ O3 J4 B1 I" a3 X
- )' G2 O+ b; H0 V; ?" ?
- 1 O+ S' G% r$ ?" d0 z
- ;;; ================== (ddmodify) - Main program ========================- L! I5 u. y! p) n0 B# ^% w, s
- ;;;
! C# ?! M! a1 c' h* U K' \% M) \ - ;;; (ddmodify <ename> )
$ w5 K$ l7 _$ C" s - ;;;
7 B% O( Y( k- g) G" v - ;;; Main program function, callable as a subroutine.. O, e2 o+ L v5 y- t
- ;;;
. w! l6 r! E) V - ;;; <ename> = object name of the object to modify.. g6 F& ^1 Y. x" T, |
- ;;;
5 V+ A6 }0 A7 z8 Y4 A - ;;; If <ename> is nil, then user is prompted to select
6 r- ]* v# N! a, \) _/ }, N6 d - ;;; the object interactively.
3 S9 {6 \! z( N+ q' p - ;;;6 n; H' T M7 u. x( O+ ^- L
- ;;; Before (ddmodify) can be called as a subroutine, it must
& E8 E0 |" \7 M3 k# @3 { - ;;; be loaded first. It is up to the calling application to$ O+ Y1 B% v/ n0 j l) d; I {
- ;;; first determine this, and load it if necessary.
3 U$ G2 `; o9 r3 z - 5 W; ]7 K8 s. a2 m: C3 |
) G" u% q! R6 H; N; k @) ?9 L- (defun ddmodify (ename /
+ m7 N1 P0 w" J - 2ndpt ell_calc_area move_pt1 templist
2 T" |2 F: S+ H& F3 b- W - add_mdash ell_tile n tempmod& T4 ^$ I. r, `
- alipt eltscale name tempst_ang# a/ K$ v6 R( x4 ]) N( Q4 ?) ~' P
- ang eltype newpoint test_ok
# y, \: {5 }6 P, ~' q7 S9 m - arc_calc emod next text' g/ \4 Z7 k. C) E: c
- arclen end_ang next_vertex th-value
( t# B V, X( x2 i) A - assoclist endpt obl tile7 C7 T( h2 ]. {4 H& M( D
- atprompt errchk off tile_rect
9 B" v+ y( L( w7 Z1 n; o7 H+ G$ s - attag ethickness old_majrad tilemode( w/ \+ r/ K- z3 z; Z: L' o
- attprompt etype old-closed totang
3 ]; p0 x6 y% J+ T - bit extru old-closedm tstyle( P. c, r+ D2 ~2 M! ~
- bit1 fchk old-closedn u+ |! u, a! A3 ?7 r& A
- bit-10 first-10-rec old-elist undo_init/ T% A! V( @ f0 \5 O. K6 q3 K
- bit-11 first-10-time olderr upsd5 x/ V8 {$ r* p
- bit2 first-11-rec old-fit v
( \) }8 _, f$ |1 G' y. z - bit3 first-11-time old-idx va; O" V+ |, \9 b" \0 y5 O1 z
- bit4 fit oldlist value
~; `& o' k+ y6 i& _8 @* a - bit70 frozth old-spltype ver_4
1 h+ q0 r) g+ y, c2 P1 T - bit-70 f-vis old-u ver_ang1
! n9 Y! f$ y& H, x9 i. F( l - bit75 fx old-v ver_ang2
; a3 F6 q: v4 I: Q - bk-up get_color on ver_col
6 [4 ]% U2 _' P L3 }" V* @: @ - bkwd getcolor onoff ver_colsp! Q; h; ^. w1 N. i% ~
- boxlength getindex on-off ver_eangle! X2 Q# A7 t$ s5 N
- bylayer_col getlayer patlist ver_hght3 m& _4 |7 F5 z
- bylayer_lt getltype pattern ver_majrad
- i( a1 S" |& N$ c" m5 ^ B - calc getthickness pltype ver_obl
$ {2 _7 n! d, C& |8 n8 V - cancel globals polytype ver_pt17 y! t/ y4 x' R' u3 g+ ^; @$ C- N' M
- cir_calc ha pre ver_pt2/ y& Q2 B6 t% A G* l, n
- closed ha-prev proplist ver_pt3- y: }8 F3 w& b7 l( I
- closedm help_entry pt ver_pt4
6 J1 D% b+ e* M9 S. V - closedn hght pt1 ver_rad
4 n8 i W1 h9 ]% @ - cmd icvp pt1_eq_pt2 ver_rot$ m* Q& l2 x- f; r) i
- cn image_add_vector pt2 ver_row6 N% A! t5 k) D w9 e' ^
- cname image_clean_variables pt3 ver_rowsp$ p' d# g9 r6 D( V6 m
- cntl-pt-indicator image_cross_product pt4 ver_tag$ v4 E& {$ f9 F% }$ g: C
- code_71 image_disp_opt ptype ver_u) M) h0 J6 U: X% m7 y5 m$ S
- col_tile image_dot_product radius ver_v2 e* D: g3 b {) s
- col-idx image_normalize_vector rational_spl_flag ver_wid w- Y3 J0 ~+ S7 ]4 c7 \
- colname image_rotate_vector reset ver_x1
3 O% g0 { M- R2 D6 K% c0 f* w - colnmlst image_scale reset_flag ver_x2# ^: `' a5 z$ `$ v( j h
- colnolst image_scale_vector reset_lay ver_x3( j& Z3 y4 C' U5 I
- colnum image_update reset_lt ver_x43 s( Z( J- n0 k3 q$ c( l1 R% r" P
- color index reset_uv ver_xline_pt1( Q g4 o2 \7 i% _; ]' l
- colorname inv rot ver_xline_pt2" H2 a/ q, i% M
- colorno item rows ver_xline_x1
/ z W2 t. i! T7 B - col-sp item1 row-sp ver_xline_x2: C6 i3 s& I: F; J
- columns item2 rrat ver_xline_y1
( b+ K, k9 F) o/ t% Y3 f, Z9 v - con itemlist s ver_xline_y2/ H/ i& B) c$ Q5 F! D8 a9 d/ i L
- coord jlist set_action_tiles ver_xline_z17 N* B, L" S {+ J5 g8 @
- ctr jlist_act set_just_idx ver_xline_z2# s8 Z3 X4 a5 [- ?6 M9 @
- cur-10-rec just-idx set_tile_bk-up ver_xscl
1 B! Z* Q" R# R$ v. v9 U2 T" Q - cur-11-rec layedit_act set_tile_cntl_pt ver_y1! v. K. z2 O& Q8 ]
- cvpname lay-idx set_tile_data_pt ver_y25 m& R1 }% F+ E; r, d* ]
- dash layinfo set_tile_dirv ver_y3
# j8 o& N& B; N3 {3 m - dashdata laylist set_tile_edges ver_y4( B4 C9 f1 y L
- dashlist laylist_act set_tile_endang ver_yscl1 n8 h9 C0 _7 a; Y/ x6 _: p, _- c
- dashsize layname set_tile_hght ver_z13 p6 q. A, \. a+ Q
- data-pt-indicator laynmlst set_tile_icvp ver_z2" u! B2 B7 p# S
- dcl_id layvalue set_tile_just ver_z3
9 M5 g/ @: e) I+ ^ - dd3dface line_calc set_tile_obl ver_zscl
* ^; S9 @* [- t/ |9 z t - dd3dsolid linetype set_tile_prompt verify_a
) L) l! l) q: |& Q" X% g' u A - ddarc list1 set_tile_props verify_d
) m1 S2 D" H6 N4 Y! ^- w8 { - ddblock longlist set_tile_pt1 verify_i
! X2 d) R: ]8 \ - ddbody ltabstr set_tile_pt2 verify_xline8 d' j' b( @$ K* P
- ddcircle ltedit_act set_tile_pt3 vfy
; Y) C5 R( Y7 ]& N5 M/ D l# R/ z - ddellipse ltidx set_tile_pt4 vi& e0 ~: d, y* {
- ddgetprompt lt-idx set_tile_rad vlist
0 c( S" M# q5 w# o6 b% ? - ddgettext ltlist set_tile_rc vname
5 R( S! W7 P1 w( p" z - ddimage ltlist_act set_tile_rot vpf: Z1 F6 p! N. w, P, Z
- ddimen ltlist1 set_tile_scale vpid! n/ `5 r5 Z# E; g
- ddleader ltname set_tile_spline_props vpldata. E! M" g$ s# d5 O, S7 k+ N) z
- ddline ltnmlst set_tile_stang vpn
5 t; N2 Q' u6 T% q! `' c - ddlist ltvalue set_tile_style vpt
5 _) n' {- S6 h - ddmline ltype set_tile_tag which_tiles" T7 ?/ C$ l7 ~$ E; |
- ddmodify_err m set_tile_text wid) h U/ k2 Y0 T" k( }# r8 t
- ddmtext majrad set_tile_vpt x
2 ?- m- G& n/ H* ~1 m - ddpline make_lay_lists set_tile_wid x14 \! h9 E" t) r j- s" f) i
- ddpoint make_lt_lists set_tile_xline_pt1 x2 `; d( Y& O; K2 ~
- ddray mdashlist set_tile_xline_pt2 x3
: {8 L9 p( j. T/ H2 j - ddregion minrad setcolor x43 H) X6 ?8 B% D
- ddshape modify_3dface shght xdlist
5 [7 E7 H' p) Z# T! \ - ddsolid modify_3dsolid showpt xline_pt1
! E7 _- K* S k+ W5 o - ddspline modify_arc size xline_pt2( z4 p2 v. [2 t
- ddtext modify_block slist xline_x18 [2 o. T3 w6 K7 W( {* z
- ddvport modify_body sname xline_x2
6 b( A: b2 B% {2 F - ddxline modify_circle sortlist xline_y10 A/ L; x. j; o8 O# I3 G d$ ]5 J
- denom modify_ellipse spltype xline_y2, o4 ]3 X; H( e' I7 E
- dialog-state modify_image ss xline_z13 `2 j, ?$ g9 O# Z
- dir_pt modify_line st_ang xline_z2
0 ^9 W T8 g$ z8 y3 @; g - dir_ptx modify_mline stpt xscale9 ` a3 g2 w$ q" c
- dir_pty modify_mtext style_act xx
5 H2 |! b3 ?) t- b/ @ C' } \ - dir_ptz modify_point style-idx y; l. ` R5 o, g0 v
- dismiss_dialog modify_polyline style-list y1
2 ~% g" X9 c3 ]. h5 n) X) ^ - drawpattern modify_prop_geom tagval y2
* |3 w6 V0 ]( p. \0 P, h$ D - echo modify_properties temp y3) e6 g% v& J* R: \# E6 F
- ecolor modify_ray temp_color y4
! q! f# o% r% q( V+ ?: A - edge1 modify_region temp_dir_x yscale
0 |! I* y" C ?) O& w; j# Y - edge2 modify_shape temp_dir_y yy0 z: w4 ^6 D$ a3 P- V w/ z, [
- edge3 modify_solid temp_dir_z z1' O6 N3 y( {5 u/ m, I$ D/ {% l$ m) t
- edge4 modify_spline temp_xline_pt1 z2
8 M" D& m& @* s1 K - edgetest modify_text temp_xline_x1 z3
0 I7 K8 P( D% q - elayer modify_vport temp_xline_y1 z4
5 i$ @7 p2 J/ O8 _1 F - elist modify_xline temp_xline_z1 zscale3 Y4 \+ b9 A" k7 O; j/ x
- ell_calc modlist tempend_eang zz
- A& Q3 G+ _* a# a+ \ - dir-idx safe_ddedit ver_MtextWidth xcliponoff! A) \! m2 j5 _; r
- MText_style/ I$ i0 O9 `4 w
- )
$ U @9 r* z& v5 S- O
0 Q& `" M- x8 J* y8 _& J- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho6 u8 U* T6 V' j- K
- old_error *error* ; save current error function) M' n; n4 Z' g5 x/ P# q. I, w
- *error* ai_error ; new error function
u4 m- ?$ g3 ~+ x - )
( r" U! I. P9 @
& R2 a' K/ T6 E S4 J- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle) ?$ F2 w# E6 x3 M' h/ W
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
4 b. @1 C0 N! |) K7 u, e! N. G6 \ - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
1 d& e6 p0 i4 |1 u
g1 m7 ~- w( H$ c% @5 X: Y. c- R- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)9 |8 Z9 {6 `. a0 ^9 q; D& j7 J
- (t 1)))0 Y1 L" \3 |' Y3 m# V: N: l7 w
- (cond
! G5 V3 f: l( c) `0 g! F( Q - ( (not (ai_notrans))) ; Not transparent?% U+ q" G2 T/ _8 J
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?6 o' O7 e1 O% j" t% {9 b
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
0 {& `# S4 g) l: j9 U: O - ( (not (setq ename (ddmodify_select)))) ; object to modify?% u! z3 N! q: R9 E1 Z4 Q
- , D4 Y9 x5 v0 G' E$ \2 m6 y9 e! k
- (t (ai_undo_push)
2 _" X7 S; D' | - (ddmodify_init) ; everything okay, proceed.
1 _( C! C4 P& }3 l: _5 o - (cond- V! b2 y3 f, x7 `$ ?, V3 u5 q$ W
- ((= etype "LEADER")
9 t# Q# C2 ]. g& \5 | - (setq help_entry "modify_Leader_dialog")$ W: y; t+ d5 e6 H: s8 X
- (ddleader)9 _& @ h8 E( W) H
- )
, D7 j- m& U* p' y/ n - ((= etype "ARC") ~1 f, g0 ?6 z: c9 B' m2 U& o
- (setq help_entry "modify_Arc_dialog")3 h/ y: S' [, ~& Q3 L
- (ddarc)2 R2 s( U4 H' i" Z& C* S
- )
/ j8 V7 `" N, ]; y! O3 o - ((= etype "ATTDEF")0 T; C8 f8 l" c/ b- m
- (setq help_entry "modify_Attribute_Definition_dialog")$ O% c( q3 K q6 R
- (ddtext)* p0 d ~3 j9 I) c$ T6 z
- )
% g L3 H, y9 @+ z/ x - ((= etype "CIRCLE")" P& N* k3 y% q) |
- (setq help_entry "modify_Circle_dialog")
9 {: m. n# F. a( N - (ddcircle)
% c; |. J) a7 t1 ~3 N% [ - )
: e. v/ I6 o/ j5 H* x - ((= etype "ELLIPSE")
, m a. C7 C2 \& r9 j* u, R0 C. P - (setq help_entry "modify_Ellipse_dialog")8 c- {- N8 j5 d% t) T, x& O/ y0 T
- (ddellipse)+ R+ x& i% d1 o) y; }5 \( Z
- )
3 g8 Q/ T' ]# ^) h4 v - ((= etype "3DSOLID")
' f* O( a; h, a: {- _: S, ?, ~! Y - (setq help_entry "modify_3d_Solid_dialog")
+ N P) q" H' u" ^& j9 V - (dd3dsolid)
2 U9 w, ?: Y5 F* r$ \ - )9 {( p6 c. @0 C% i: {5 Q
- ((= etype "BODY")' K6 Y7 E3 v& h- U1 g0 Y
- (setq help_entry "modify_Body_dialog")' I( N% w5 J1 r6 L9 k7 }: u. T o
- (ddbody)
+ x& U, G9 r6 U - )& ~: k9 X0 i% g) Z: {. U
- ((= etype "REGION")$ n% L( M- `0 G% `4 K. ^- y! F
- (setq help_entry "modify_Region_dialog")* {8 U/ \; u& F, U# N
- (ddregion)' H7 n% ]- `: {: B$ N+ N5 {+ @
- )3 u: U8 |& t7 c2 Y% R i' _
- ((= etype "HATCH")
: U3 ~' F4 @7 T - (setq help_entry "modify_Hatch_dialog")
: ~& P) }& ~* d- p. q* x4 l - (ddnewhatch)& E$ s- i* r V
- )
$ c( d/ ]6 [1 ?: ?5 i$ y2 r - ((= etype "SPLINE")% p9 @" E, n2 X% {) K
- (setq help_entry "modify_Spline_dialog")3 s2 e- n' V# V$ o$ X; U
- (ddspline) `- E6 C- e% e+ i
- )
3 H" l) m8 ?+ U) e - ((= etype "INSERT") ; see ddblock for help_entry8 q9 n$ s5 d" k5 N
- (ddblock)5 I$ X& }4 m. h% H, _$ ?9 t V
- )6 L6 G: H' ~3 Y9 N* |$ i: Z+ P0 _
- ((= etype "LINE")
+ _* r" t$ F" Y1 l4 @3 [ - (setq help_entry "modify_Line_dialog")
7 x8 ^) j5 D; ]0 I) i! \& W' X - (ddline): o. q# z4 b5 x1 Y& z4 v
- )
) ]6 j% E! b! _0 p# b - ((= etype "MLINE")
' }* |9 k: l) T - (setq help_entry "modify_multiLine_dialog")
5 O+ _6 p3 _. e' c& |/ K' l5 b' ` - (ddmline)
/ o/ q- D; Q6 t- `# y( C& Z& [ - )
& A: Y' q8 k4 u# I( b - ((= etype "RAY"): ~8 L7 c3 p; k3 Y% O
- (setq help_entry "modify_Ray_dialog")" O" c, l) \$ B* W) V4 H
- (ddxline)) s( B+ c4 x5 r, \
- )
, g" c# i6 {: V - ((= etype "XLINE")& ~4 V/ k2 f" w4 U+ o
- (setq help_entry "modify_Xline_dialog"). \ ^8 Q$ d) k5 `9 _% @
- (ddxline)8 L6 ?; V: ~/ [, C/ F4 ]
- )
! V* H0 X8 B+ K" ? - ((= etype "POINT")5 _$ |1 P# d3 S5 B% s- q6 ^
- (setq help_entry "modify_Point_dialog")4 Q/ a; Z8 U0 m6 |1 l
- (ddpoint)
: B# [6 r; M3 z9 G4 R$ t. B6 `# A - )
/ ~2 ~+ H( t# P \: c" W - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
) G7 `6 ~0 }! n% l3 ]1 z - (setq help_entry "modify_Polyline_dialog")' V; \& H0 C, d9 V+ w, Q4 r
- ;; If a 2D pline, check to see if it is planar to the current# T3 @0 y3 h E' v
- ;; UCS, reject if not. To see if the pline is parallel,
0 b* B% S3 h: c( q3 k - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
1 B& w' n7 I$ y& w- W1 {& O" i6 P - ;; and then converted to the current UCS and checked to see if' e+ l% j5 i% [4 m6 m' \
- ;; it is equal to (0,0,1).4 K. p; {$ o: S# W
4 L! e6 t# z) b- ;; Incase the 210 is default and not in the dxf list., r4 k' [/ Z8 a8 W% u% @1 D, p2 d
- (if (= (assoc 210 (entget ename)) nil) S+ D* x: p+ g( F8 y4 R0 p
- (ddpline)( s6 q& n- d/ S5 l
- (progn
$ j6 ^4 V+ Y) u# S* B, C3 T - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
( t1 P# V% \6 u$ l9 |( f2 {% d - (not (equal '(0.0 0.0 1.0)
( G2 F8 z2 \ |% a - (trans (mapcar '+
4 ]" _& X0 L% L. M' D - (cdr (assoc 210 (entget ename)))
7 M; [4 q5 t. T, e0 @9 m - (trans '(0.0 0.0 0.0) 1 0)3 t0 N" p# S: W. k# S) f# Y
- )
4 D# S7 V+ K$ D4 E; M. v - 0 1
( {3 n! q0 ~" S: X0 h$ y8 ~ - )5 n8 a5 Q0 {8 x7 X$ |/ ^
- 0.0000000001 ; fuzz" Y, |; w: u4 p5 \- d
- )
$ q; c- {# ^$ z8 x - )
& ]* Q! D5 `* [+ S8 e& ], v' i) u! S - )
$ Q# x0 e: @ z# s7 V" s - (princ "\nThe 2D Polyline is not parallel to the current UCS.")
P- e3 z% D& y/ r - (ddpline)
/ p2 L7 ?& W% G& l* i2 g - )* `; s: C1 V) K W
- )
3 R' C$ k2 z6 r" p) V/ z& d, u u - )
- E& n# x" g! x7 ]- b0 V - )# C1 M6 ^7 A6 `+ m" b) F8 c
- 7 M; N d6 }4 D- x( X- O
- ((= etype "SHAPE"): \0 ^) C3 s1 y" Z3 i
- (setq help_entry "modify_Shape_dialog")
( D0 ~8 z8 Q7 t2 P X- e - (ddshape); x6 q# T# ^0 F [4 {: E
- )
6 k `: \$ R% e% ]9 ~' G - ((= etype "SOLID")% ]; i6 ]+ M, O$ v9 ]. |# P
- (setq help_entry "modify_Solid_dialog")' o6 U7 ~2 O0 _& Y: t
- (ddsolid)
2 \; ^1 w3 e5 U( j0 d5 w( c - )" I% D# Y+ R6 |1 g6 q
- ((= etype "TEXT")
& M" p$ H' A! S7 ?% l3 P* J; s+ \. P - (setq help_entry "modify_Text_dialog")
: s$ F: O5 {8 }6 L: T4 e! k4 R - (ddtext)
# Z" E# r& p1 r' C2 x$ r1 c - )! w4 c2 }7 @1 _/ \) y
- ((= etype "MTEXT")
) }. ~5 o' O7 h) Z6 y) u( H - (setq help_entry "modify_MText_dialog")6 x& h: H+ q, J
- (ddmtext)& V' X- U d+ @1 b) r5 S
- )4 N3 O( ~, R6 R$ b8 w, G
- ((= etype "TRACE")- ^% K3 l- C0 g# F: f) E$ G
- (setq help_entry "modify_Trace_dialog")
% w- ?( D# f2 l# w6 B- o - (ddsolid). t! C4 U0 J$ Q, v: y- g0 |
- )
- M/ _ O, c+ P q - ((= etype "VIEWPORT")& u5 [( f' r( p
- (setq help_entry "modify_Viewport_dialog")
! T/ ~6 [6 |6 [5 C - (ddvport)
2 L/ Y/ e; G+ m: w1 M9 Q - )2 B/ K/ i8 k" {3 u, E
- ((= etype "IMAGE")5 b. S# a6 }2 `9 M" ^2 x& g3 |% ]
- (setq help_entry "modify_Image_dialog")
f0 @' A! Y2 H - (ddimage)
6 O2 ?% B2 ?9 K - )
2 m" S; ]0 z8 \/ Y& ~( }% H- v2 O& x - ((= etype "3DFACE")
) q: p7 ]+ P o- d6 E% J* f4 Z - (setq help_entry "modify_3D_Face_dialog")
7 \/ l! K) @6 g. L$ n5 O& n; M - (dd3dface)9 g [6 q+ F. s {/ Z# ~
- )
5 f; v9 Y0 ]+ g - ((= etype "DIMENSION")6 l: R1 O3 d) X f
- (setq help_entry "modify_Dimension_dialog")8 R) D" E0 y9 o' _- S$ d1 k& G' l
- (ddimen)
! b1 i+ R1 @2 j* Y$ p - )& h1 e6 [2 t( P: o: i
- ((= etype "TOLERANCE")
0 n; m& [. H9 c6 s - (setq help_entry "modify_Tolerance_dialog")2 V# \! ~" y( |' f
- (ddtolerance)
2 _9 {/ C: T( l! M9 h. J2 d - )+ S: w1 ^6 F* _( h
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.2 P. f- k- S3 F0 b
- ;; This allows DDMODIFY to work on any custom object or any new object type% e& |% y$ _5 ~, R J
- ;; that isn't specifically handled above by calling the more generic DDCHPROP., ?2 V4 q$ ]) {3 ]" [! X$ t
- (t
5 v- o+ [, d% `- ^- i - (if (and (not ddchprop) (not (load "ddchprop" nil)))( u; N1 Z+ ` R( }
- (princ (strcat "No dialog support for object type: " etype "."))) P+ n1 L$ _" ]5 ~$ u4 n+ N
- (progn
3 p' [/ o6 p( f/ @ - (setq tempss (ssadd ename))" p! D k9 p7 f8 f
- (ddchprop tempss)
8 ?; ?1 W* [' N - (setq tempss nil)
& V- e# {: L0 ~" D9 }2 ]! ^0 { - )
: [4 f% W9 r( N8 a' T% Y - )
4 Y9 U* O* ?% y7 A2 L; E% ?- Y! t+ d3 T - )
8 ~* Q, o: @- R - ;; Previous fall-through condition.
# ~& o8 F/ e" z2 o( G - ;; (t (princ (strcat "No dialog support for object type: " x% ^0 R0 D( }
- ;; etype "."
' Q5 ^; i* \! Z M8 c& i8 v3 M - ;; )
1 H6 j# _& n" m0 n - ;; )
( a+ I7 C) E! ^! ^* n - ;; )
3 m+ p# e" g, h# l/ s% Z$ ^ - ;; ): ~4 ]7 ~$ N" n! u8 q- U, g
- (ai_undo_pop)& W1 ~. u& _. s
- )
$ C- o0 p, K- W* u' y" P2 O - )
l* q8 i* D8 } y( W6 J) o ~
1 y H7 z2 G; T8 G) V% G6 X" e- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle& _6 r; Q; _2 T/ _0 _4 O
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back$ O& U* T* N5 r% O. R) ]
- ) ; to what we started with
$ d7 v8 c& l" t: J1 w& S
* F4 ~1 p% H( k+ s. ]6 a- (setq *error* old_error)
/ O" U! Q, h& c8 c4 w - (setvar "cmdecho" old_cmd)8 ~; H* P* c3 s4 R; Z
- (if (not reset_flag) ; if object was modified, then: B- o6 W K9 h. A; E* J- \: o
- (ai_return ename) ; return it's ename to caller
# ~, W0 p5 e2 D8 e - )
$ X' M, H1 g: j* C% R - )4 {( O/ k6 m' a, E) Q
1 F' v; S5 }' L2 a- (defun checkForLockedLayer (ename) @+ G* O3 |( u' E! s3 ]
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))9 Z: a& A* ?0 K$ A, h
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))+ G3 M5 V# H% q2 y# ]" A. n4 `8 l
- (if (= layerflag 4); p- p4 v0 m; _) Q: j4 |! K5 R$ r8 y
- T
W8 p/ T6 ?& {# G9 F/ k# d/ R5 N - nil
( R$ L% G8 m, ~( W1 p; { - )
5 V! b1 k# {1 H. S( B6 m, A - )
/ }( Q. g$ l8 ^& M7 `! {5 X, a
2 y! [/ G5 X1 u S! ]+ o- (princ " DDMODIFY loaded. ")3 X+ J; a5 K8 i" j8 v: P. @4 o
- (princ)- H& n+ D; s0 v/ k4 _
- ;;;???;;;---------------------------------------------------------------------------------------8 E$ n+ j6 P/ X# x0 `
- 1 Z8 ?) }! [& c; b3 \/ h& h
- ; Next available MSG number is 8 ; c6 x) } J( R
- ; MODULE_ID DDUCSP_LSP_" Y# _. O7 Y, X' D' t( K/ Y9 }
- ;;;9 Q- `7 l- }+ j% h
- ;;; dducsp.lsp3 `* P0 i5 y+ X. ?3 p. e+ k
- ;;;/ j" U6 T8 y5 X8 A) x7 L( {
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
" Z. K4 t7 L) U" a - ;;;; Z+ t/ d: w) W: p
- ;;; Permission to use, copy, modify, and distribute this software
/ x0 x! q! y9 ]0 S' |; s - ;;; for any purpose and without fee is hereby granted, provided
7 Y( l2 R# b' [ - ;;; that the above copyright notice appears in all copies and
* k) B: z1 O* N4 S, b7 n# H9 X2 g% V - ;;; that both that copyright notice and the limited warranty and
f+ H5 Q5 [8 O2 V7 v; v - ;;; restricted rights notice below appear in all supporting
, P. Z# Y0 E; a/ v% w8 w: _ j9 y - ;;; documentation.' c- x7 U* w- y/ u
- ;;;
+ O" i. d) x. r1 j, D% [4 s - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
8 f5 z/ `# q# }8 ]5 b& j; } - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
+ s% R' c3 n: y$ x [; C - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
0 e- d9 r) q1 F - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
. p, I' R. L8 [: G* ] - ;;; UNINTERRUPTED OR ERROR FREE.
) N/ Y9 S; a' p0 n5 J. k1 ^, }0 u0 y - ;;;
; k6 `3 D; U; H( A) ^ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
- a4 t1 V# J- R/ r+ o - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer* B& x5 c' b; S% b0 [- ]1 m
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) $ a9 S7 g3 r, S4 K! }
- ;;; (Rights in Technical Data and Computer Software), as applicable." Z" \1 u! M- T# P# A0 f
- ;;;
4 _2 Z% q8 @- E' W4 {* u0 z% o; { - ;;;.
W! g( R' l9 N% A* H - ;;; C:DDUCSP - User Coordinate System presets dialogue.
1 r. D8 Z4 ~# A6 l& Q2 i, f$ T - ;;; ; ]$ r6 B0 B5 w% R
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
1 R$ }5 v( S* z - ;;; slide images are in ACAD.SLB.) `8 B2 Q `% S, n( t% @( b8 \
- ;;;8 I$ z! [( S0 t9 } l
- ;;; ===========================================================================
' x d- V. V" w - ;;; ===================== load-time error checking ============================+ k+ m! S3 v0 r/ ^
- ;;;2 \! y, P$ Q D% K9 h
_% w* A6 e+ ]+ l- (defun ai_abort (app msg)9 x! B; V7 [1 A, A/ d B: Y6 V
- (defun *error* (s)4 j, V4 O: B- l: O( [+ p% _% t
- (if old_error (setq *error* old_error))
& v5 P( d& K7 d+ M) o/ L1 h5 h - (princ)4 t! m% K5 m' E( n0 z
- )
, c' B6 ~5 i9 }5 [. e( \& J) ? - (if msg
, K0 S; Q$ _' F! ]- r" h0 ^5 P - (alert (strcat " Application error: "
7 a: z3 A* n0 G) b - app
, f& S6 w1 ^6 K1 ~; A8 N - " \n\n "
4 S" ]% h8 ~9 E, V+ @6 G; m - msg
4 c/ |. U8 ? J- l - " \n"# m9 m+ V" ~2 o
- )2 B' U2 y: i: m' V( Z; s
- )
: z5 p' w$ o6 U6 b \ - )* J2 {5 l! Y' k
- (exit)' ^# z2 T7 }' v4 l* J6 U
- )
4 s+ f$ v9 z( i/ O - e5 `6 n6 W$ g' s9 Y5 |
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
2 X$ a" z, v# X: \' M - ;;; and then try to load it.1 l$ G) A3 U% y! ~0 A) k) R2 v, z
- ;;;* m2 q8 {) a7 z
- ;;; If it can't be found or it can't be loaded, then abort the
1 W: S- D3 b$ K - ;;; loading of this file immediately, preserving the (autoload)$ [3 @7 b i! e7 A- N; c2 e
- ;;; stub function.
! u) Z0 O6 q6 m6 I/ l0 L, a, n1 K! u
5 ^5 r5 j3 C2 j1 p" r9 F" s- (cond
! k4 x" |: M: J1 U( ?, H) O* e - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded./ ~" Q8 n" K9 C5 G6 E J! j/ q
- - L2 P `7 S& \2 U- y% ^0 h+ a
- ( (not (findfile "ai_utils.lsp")) ; find it) o- o: ?9 ]* Q
- (ai_abort "DDUCSP"7 w% E% z! K* \2 T% `
- (strcat "Can't locate file AI_UTILS.LSP."
# `9 x/ I) Z/ e. m: M4 o - "\n Check support directory."))): c1 ?# s6 I$ O
- 0 a e: V' ?1 W# W
- ( (eq "failed" (load "ai_utils" "failed")) ; load it" w1 r. f, N2 s/ r
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
' j. q- n9 j2 R* ~4 z2 T5 ~6 Z: q - )
0 Q( S" r' g; g$ |% r
8 R3 a% z3 W2 r9 T) |- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
' ]8 Q$ Y. E* w - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses+ d& @& N8 K! l- X. |9 e% H
- ) ; ai_abort's alert box dialog.: D* m& G9 p6 ]4 w, x8 b6 [
- + }5 \! Y- w+ J: j! T
- ;;; ==================== end load-time operations ===========================
% u/ l4 q# p" v9 e1 @
2 d6 K- E7 ^# K4 g. Y5 s3 t- (defun ai_ucsp_start ( / program)
2 j* u9 s* v8 `. f: ^ - ;; Get program name
$ C, x) {+ q9 }/ Q- @9 S, L - (if (not (setq program (getvar "program")))9 W6 A- ~3 [* |
- (setq program "acad")+ X) k+ i4 [- R8 c% ~7 g {
- )& k# |; g& m6 z# |
- (foreach v0 '("world" "left" "cview" "top" "front"
) p$ n3 D. _2 l6 M+ r - "bottom" "back" "right" "prev")
: G3 }: X" p- a* |1 p: }* b# F - (start_image (strcat "ucsp_" v0))/ g8 x/ S# p$ Q4 H* K+ u3 V$ p4 M+ E
- (slide_image
7 |+ `0 S4 `: T; ^, O2 U2 @ - 0 0
' x- I$ ~$ O% ?( s3 [* B/ V5 @ - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
4 M1 r$ P+ p9 F6 {& K - (strcat program "(u-" v0 ")")
& c$ q- Q" P6 j2 _4 I u. g `/ R$ A - )
1 _- r: Z7 ^1 W( [4 ]) e - (end_image)- _! H/ d ]9 I4 x
- )
- W, g: ]5 Y6 a% L7 ] - )
5 f1 J! ~' A$ J# p; A- u4 h - $ ~% K3 i" N& [3 f1 P# M% f
- (defun ai_ucsp_set ()
- a5 w5 f* u/ x4 m( M - (if ai_ucsp_sv
3 X5 X1 {1 J* P0 J3 r7 x - (command "_.UCS" "_V")
2 \% P* g/ W7 J' h! B - (if ai_ucsp_prevs& ]" o0 F9 L7 X9 [) i) M
- (command "_.UCS" "_P")
% V+ V# e2 Q9 t6 O - (if ai_ucsp_chg H' S* ^% y7 q+ `6 a( F) R
- (progn+ L% A7 b/ f$ x- p* D
- (if (/= ai_ucsp_a "*")
4 ~7 u* W3 M( A8 T - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
J# h! @$ S! I; Z - ): n: P- [/ K- s' }
- (if (< ai_ucsp_pick 6)
) ^1 y+ K9 j3 `8 P, Q1 q' ~$ M+ D - (setq ai_ucsp_set0 "@")! f; t6 z6 K d* ~# K' B5 Z5 r
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")7 |/ c! e9 b; v) I7 Z
- )
# V* \! l& U, N - (cond ((= ai_ucsp_pick 0)1 f+ z2 j! O% C. ]6 I8 p
- (setq ai_ucsp_set1 "0,-1,0"4 B4 d2 ~9 x5 o
- ai_ucsp_set2 "0,0,1"6 i" S+ F9 f5 T k3 `4 {4 e- M- `
- )0 |, A5 V+ y+ Z3 {
- )
7 q/ W1 }) m2 H( v: w) u - ((= ai_ucsp_pick 2)
9 _1 m: k5 @( ? - (setq ai_ucsp_set1 "1,0,0". P2 ? ?8 V9 H7 r7 c
- ai_ucsp_set2 "0,0,1"- u" _7 u* a, `
- )
# ]% M& h: B7 d+ ?3 s% i8 ` - )8 K4 h" Z3 B7 ~: H
- ((= ai_ucsp_pick 3)* B0 d( K* k: e) ]4 o( L
- (setq ai_ucsp_set1 "1,0,0"- I% q: l0 I" q1 y
- ai_ucsp_set2 "0,-1,0"
$ z0 q3 ?" F j, S- z3 F - )% k/ _# |4 \: H
- )
. K( `2 ^0 a. G% ^" R$ W) `! ^ - ((= ai_ucsp_pick 4)
6 [' {7 ` B0 {8 N( K - (setq ai_ucsp_set1 "-1,0,0"' _* s+ T% j8 g8 b3 x Z
- ai_ucsp_set2 "0,0,1"5 j& _# V& Y8 P/ A! y
- )
4 I& f8 ^* s1 y - ); ]- R+ v/ z, }1 Q
- ((= ai_ucsp_pick 5)
8 M6 z$ j) p) \$ @ - (setq ai_ucsp_set1 "0,1,0") R) I. l9 h9 r4 U
- ai_ucsp_set2 "0,0,1"
: I# K* Q' J8 R5 | c - )
# W( n# V9 c0 t2 `6 d; K - )
8 i- I2 ~& a: P - (T
: z w7 o, Y: Z/ \8 e& o - (setq ai_ucsp_set1 "1,0,0"
7 Y1 X& E# I \% { - ai_ucsp_set2 "0,1,0"
) }* K' L% n! e5 T( } - )
, v( m. m: d4 f1 d* K5 U6 J6 ^ - )9 O2 E8 D8 M9 b
- )' C- h8 k% E+ ?) d9 B9 y) p
- (command "_.UCS" "_3P" ai_ucsp_set0 . N2 Z1 F: g* X8 L. R5 A
- (strcat ai_ucsp_a ai_ucsp_set1)
& ], `8 d; W4 U$ H1 J$ Q1 u& t" A( P - (strcat ai_ucsp_a ai_ucsp_set2)
8 q5 g6 w8 N; b$ n - )
: K( I8 @; f/ v2 P7 t - )
$ [5 n3 D3 x# m1 c$ @9 h4 {4 f: a - )+ i' V1 _4 r$ t M9 o: I' a
- )
& v* n( v& G* Z/ c& |( z. L - )& j9 }* R0 s9 w* j5 G5 V
- )+ v' B- R3 z/ r3 @# D
# ^- O/ a# e, K- (defun ai_ucsp_p (val currtile)
" h0 s8 R, g: H1 g$ h: `( ] - (mode_tile ai_ucsp_currtile 4)
' y& \! m" ]- v% e - (setq ai_ucsp_pick val2 ~7 T' Y2 h% Q6 g( ^8 f) B( y1 I W3 m
- ai_ucsp_sv nil$ m" y7 \% h5 a5 M R; C/ y2 N
- ai_ucsp_currtile currtile
" I Y0 B* g f) s- G9 @9 a - )' R1 ^7 N2 M+ _" }% \. n& x
- (if (/= val 1)7 s/ ?& h- P, D5 b: v
- (setq ai_ucsp_chg T)% Q$ j. _6 M# \# v* g, q
- )
" s$ r) W. O: c1 J: ^0 |- N - (mode_tile ai_ucsp_currtile 4)0 G; a. I* q( d3 [: u8 D- n
- )) H6 {/ K4 H' i& v# q* u
- / d g( `3 X9 Y+ c! ~* ]
- (defun ai_ucsp_swcs (); d1 ]# d* f' \
- (mode_tile ai_ucsp_currtile 4)7 W" z/ ~8 p3 L6 @7 m
- (set_tile "ucsp_a_wcs" "1")
" A1 B4 r# E2 i( h - (setq ai_ucsp_pick 6
% a' r. ]6 b. a) x9 c g S0 i - ai_ucsp_sv nil5 @* {; N8 n" V W( a' }! r
- ai_ucsp_currtile "ucsp_world"
$ h. e! T% l* [6 K - )
3 f' p0 z2 v- U+ u - (if (/= 1 (getvar "WORLDUCS"))
) Z8 _4 |$ {$ W$ h: i - (setq ai_ucsp_chg T)& ~4 K7 ?8 z( I8 ~
- (setq ai_ucsp_chg nil)
0 p# {, A% f. Q0 E - )( {4 v9 [! R/ D" A' D9 N8 d8 @ u
- (mode_tile ai_ucsp_currtile 4)
6 m7 V/ r7 g: `0 L8 o( ~8 x+ s - )
& E; L& _6 k% a% _% F
4 D) Z5 K6 N' E9 u- (defun ai_ucsp_cview ()
: l0 G2 i4 T7 c% y6 ` - (mode_tile ai_ucsp_currtile 4)
: q4 J6 a0 L' A - (setq ai_ucsp_sv T
3 i- ]& _9 d& f7 l - ai_ucsp_chg nil
/ G \- b6 r. @% ?/ x4 y - ai_ucsp_currtile "ucsp_cview"
( t! S% \+ m8 L/ \2 f2 y" { - )& S2 ]8 |8 B2 ^+ k1 Z( d' ~" e
- (set_tile "ucsp_a_wcs" "1")
- e) i/ w; E" ]6 Q. {. S% ? - (mode_tile ai_ucsp_currtile 4)2 x* L# B6 D- H& q8 _
- )1 G7 t# y f; ^4 Q* V
- 3 ~; K' Y2 e/ i2 T6 ~
- (defun ai_ucsp_rucs (typ)
7 z4 {4 e7 Y6 J4 |. h( M' ^ - (setq ai_ucsp_a typ)3 T1 K" m; l* b" f
- (mode_tile ai_ucsp_currtile 2)
# s& Y; I E. m* y! V6 z - )
4 P$ G0 W5 h! p- i0 m6 W
& h3 |* b. ~9 p. @- (defun ai_ucsp_prev (): x) P9 c4 d0 C3 m9 n& Y- H
- (mode_tile ai_ucsp_currtile 4)/ F6 _+ x$ l5 [$ V! @$ F" d; s
- (setq ai_ucsp_prevs T
8 [3 X, h: M! }% O4 A. L - ai_ucsp_currtile "ucsp_prev"
2 R8 w3 P p ^" ?$ M - )
: j2 G" z# t( j - (mode_tile ai_ucsp_currtile 4)7 O: h# v6 u9 \) V- M
- )
% V. ^9 \2 o- Z# k: R - ( z+ r8 n5 t* `$ d4 }& W- k& ]( n; q
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
$ `" O4 e. P; G2 M) u - (if (not (new_dialog "dducsp" dcl_id))/ R2 l5 k1 f& j3 `& K" K
- (exit)) \" Y S& h, ]$ O
- )
2 o# _4 t+ \1 @+ n
4 q. z$ }' B4 L; j3 m+ e, H% |- (ai_ucsp_start)
' `) u2 v: R, @ - (setq ai_ucsp_a "@"
4 a; I# M" S( k, h - ai_ucsp_pick 2
3 C6 u' V* P& I; w - ai_ucsp_currtile "ucsp_top"% T9 N- X3 p7 U* T
- )
7 h4 U0 y+ X1 d/ S - (if (= 1 (getvar "WORLDUCS"))1 I9 {6 B4 z! ]8 o. ` i# a! ^
- (progn9 h& H% x# u4 W
- (set_tile "ucsp_a_wcs" "1")
3 U" \6 C2 d, D# r - (setq ai_ucsp_currtile "ucsp_world")
( a; \) l) u+ ?1 ]5 c - )# c9 F8 B4 @& C! Z. _, [$ ]
- (set_tile "ucsp_r_ucs" "1")0 X% _& @* N* R: o( }/ z
- )
. C' Q* }4 N) T! E- z& v# f - (mode_tile ai_ucsp_currtile 2)
( [7 @2 A7 m& ^% s - (mode_tile ai_ucsp_currtile 4)
: J, w! A$ x% d6 N7 j. b - (action_tile "ucsp_world" "(ai_ucsp_swcs)")# n3 S8 o2 ]4 R6 s
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")" e% g3 O* D: d3 _7 G8 b. w
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")( I) e1 M5 l) W
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
7 {7 _6 O; s+ n; c; _# u4 ` - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
" B/ ?3 l* ^& Y5 I0 P1 x' ~ - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
' R# f! N+ Q3 N! G - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")* F3 T; A8 a3 d8 g- }
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")' z/ N1 r3 P$ D# V+ X) M
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")$ ]4 `; L- |+ p7 y4 s
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")' {5 l5 d) g W' F
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
6 T! a8 }; u3 H: b6 | - (action_tile "accept" "(done_dialog 1)")
" W5 L' d* n3 Y$ p: ] - (action_tile "cancel" "(done_dialog 0)")% g3 B# b6 }7 }, S
- (action_tile "help" "(help \"\" \"DDUCSP\")")+ ~, j, P% v" s6 w! N9 ^: c! n/ e
- (if (= (start_dialog) 1): E: U1 C0 @) ~0 n" b+ J
- (ai_ucsp_set), p6 {8 X* G- W! f( l) S
- )
5 l$ V* ]) `5 }, J& v# L7 A3 p! w - )" h4 j: o. j! n* v m1 S
- 7 Q+ x2 p2 T. L" R6 z: z6 e
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
6 ^8 h6 n. z; P, w2 W - ai_ucsp_sw undo_init)
& B8 y- W4 R* j3 D) H" k- j" J0 M
$ ]4 e" R0 P! R, }$ i# e5 r0 v0 A- ;; Set up error function.
% k0 G+ U- D0 ]- W5 ` - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho6 w* g2 O3 H6 |
- old_error *error* ; save current error function
% V/ l0 L# z3 [( C - *error* ai_error ; new error function
. a7 r" M: D, i - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
/ h$ i' i" N- {4 Q/ M) }, k7 O - )
$ f7 h6 j, E, V' I+ N0 L5 E, O
' j: o) r, A2 r4 M- (setvar "CMDECHO" 0)" y: u" m* z: W
- 0 v8 o4 z! a, h+ n( c+ E
- (cond
6 c$ H; Z6 I' O3 i9 U, a - ( (not (ai_notrans))) ; transparent not OK
+ D% Y1 C# l3 t# K0 Z - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?; m- p+ [$ W( w# o$ U8 i
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
1 T$ o# }7 a) t: l - (T (ai_undo_push)/ B3 {* M- F/ o' L7 i1 y' X
- (setvar "OSMODE" 0)# n) Z; X/ V4 o1 Q m
- (ai_ucsp_main)4 G) u1 o$ x5 G4 J) t. L
- (setvar "OSMODE" old_osmode)
6 ?/ W6 a3 i+ _9 E- T3 K - (ai_undo_pop)
" k) M7 p. j) M: G2 G - ), K* Z+ T# ?0 I, i1 c1 `
- )4 c% M) z- |& [% |
" L: e* C8 f! ^$ y0 n z; w- (setq *error* old_error)
* j4 l6 c' L; I* o - (setvar "cmdecho" old_cmd)2 @! q: u# C2 ]" h' Q. F7 D
* z3 D+ [. q+ ~% v7 z- (princ)8 G0 y; l- c) V0 C
- )( |, P& q1 c5 F+ T. Y
- 4 f- O, J% b+ N) Z
- (princ " DDUCSP loaded. ")
* b% L* k- V: g7 J" | - (princ)
- h( y) V0 D2 K" r - ( C6 |, A! ]6 b/ a8 Y" x
- ;;;???;;;---------------------------------------------------------------------------------------
9 V0 a5 _: k- L" T) Y) U& R - 2 ^6 ?! m1 l" G4 c# [
- ;;;----------------------------------------------------------------------------5 i3 H9 Y. z$ M: ]2 ~
- ;;;" ]- g2 k: @& @4 T
- ;;; EXCHPROP.LSP 3 Q6 j+ k! I7 B6 S
- ;;; Polyline and text modification capabilities added by 9 ^$ V) D4 p, n) w8 ^
- ;;; Randy Kintzley . @# p4 K% q) R2 T2 @; W
- ;;;
1 V. H/ N5 {7 A- g* R2 v( B6 b) V - ;;; Copyright (C) 1997 by Autodesk, Inc.- P* g5 q# J; l( N! c. V& @" N
- ;;;
" P9 c( E& Y. E - ;;; Permission to use, copy, modify, and distribute this software
K6 M) ^: l% _ - ;;; for any purpose and without fee is hereby granted, provided" }: c4 P0 k, ^, \0 a. H" ]
- ;;; that the above copyright notice appears in all copies and1 L( c1 T( m( ~
- ;;; that both that copyright notice and the limited warranty and' b2 Z. d7 \, x M: j7 N+ O
- ;;; restricted rights notice below appear in all supporting( Y- w$ V" {8 k# v. V( }' v! a
- ;;; documentation.2 w8 I, O7 {3 p; f
- ;;;
5 ^9 o1 e% D/ W1 o9 M5 _ - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
1 w0 d" U. G, ^$ i( j. O; I% c, C9 A8 r - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF$ I B, [& T) r
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.: U2 m% l" Z8 ^$ v- t6 L% Y
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE1 {3 C, W; ^6 B! K# b
- ;;; UNINTERRUPTED OR ERROR FREE.
0 L5 X8 ?$ N( N4 o0 |4 o3 j9 X - ;;;
5 y+ F3 i$ C Y4 p - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
: \6 x/ {. O' |! e/ T5 X$ B# K - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
7 D* W2 E( H9 a - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)& k- _: |4 W! t9 `# i3 c
- ;;; (Rights in Technical Data and Computer Software), as applicable.
, O" J9 z! ^/ | - ;;;8 g( d3 `& t% ?8 G# F( C) d; B( E1 v
- ;;;.
# m* j7 g- l/ q1 \4 I1 I - ;;; 28 February 1997% b: b$ E+ D0 y7 K( n
- ;;;
* e/ t) z4 y# @+ J - ;;;
5 u, H0 u! r" r% f - ;;;----------------------------------------------------------------------------, @' G( T/ r/ f1 o2 X
- ;;; DESCRIPTION
2 Z" i% A+ T$ U( d7 s5 T1 M - ;;;----------------------------------------------------------------------------6 k6 p+ {& u; e Q/ m
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This * K3 X( {$ l6 }
- ;;; command gives the user the abilitie to change several characteristics
$ M1 X7 q3 R4 t% x a- l3 t - ;;; of selected polyline and text objects.
$ q& n) h7 b5 }7 J; j% b - ;;; The style and height of selectected text objects can be modified ! w) o1 o- u, T# c
- ;;; (including text, mtext and attribute definitions) as well as, width and " ?- O( Y" s7 }* C' i
- ;;; elevation characteristics of selected polylines (includes lightweight and
5 v- O- t) t5 y4 c5 \ - ;;; traditional polylines.)
- Y1 C4 n. s2 o5 o, f" F - ;;;----------------------------------------------------------------------------
0 w4 `% {* u) _( D5 G$ f - ;;;----------------------------------------------------------------------------
$ i3 E/ C- \' r9 _3 Z2 \ - ;;; Prefixes in command and keyword strings:
2 Y' v' N, ~6 ]4 r( t, | - ;;; "." specifies the built-in AutoCAD command in case it has been
0 p! W9 B" z4 k- t% d: y - ;;; redefined.
! x" d n2 q- a) F$ n" A - ;;; "_" denotes an AutoCAD command or keyword in the native language+ s6 g* G: q! ^0 O, C
- ;;; version, English.* a* [! b/ a5 q6 g( ~
- ;;;---------------------------------------------------------------------------- ] X! t& n5 B
- ;;;
& l( v3 `4 j6 E* g' c* Z - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
. w# F( H+ Z+ n/ N! w! O) k7 [ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ P& L3 x7 c- e. S - ;Functions created as result of loading file: exchprop.lsp
1 |0 E& P) W4 I0 h- |! u+ H - ; DDCHPROP2
, r+ A* O9 J: T3 l- i% G, ^ - ; DDCHPROP2_INIT& V3 U2 F$ z1 x: L" O
- ; DDCHPROP2_SELECT( y* z1 J: z# X3 T& t+ i% f$ V) d
- ;3 z% |5 T/ n2 d0 o! h( x: Q
- ;Variables created as result of loading file: exchprop.lsp
/ m' {3 z( _0 f) P. t+ @' h - ; OLD_ALLOC
/ I% b/ [; X6 q- T0 p. E0 N - ;
+ u. k Q$ {& d7 T - ;Functions created as a result of executing the commands in: exchprop.lsp& f6 y2 m6 I, I# Q) R
- ;' |6 \4 C5 a/ }# o% E2 y
- ;Variables created as a result of executing the commands in: exchprop.lsp
4 `/ l$ e4 [- Z$ Z - ; AI_SELTYPE
- ?4 ?3 h( |& P1 ^, ] - ; BONUS_ALIVE
8 W6 E2 T. j& v1 \! ^1 I) g4 u - ; BONUS_OLD_ERROR5 D" p& [; Y* A2 `$ {
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# [, X; s2 |7 M
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
( E- C: H5 J+ d" c# D - 7 y1 O+ ?1 `* N. S9 ^( s6 V2 {
- ;;;
7 n, a5 F% o. I( I c# N3 o - ;;; Avoid (gc)s on load to improve load time.& H# [. Y2 b3 s, n E$ [0 b% }, p
- ;;;
6 @" A& M: ?! q r - (defun do_alloc (/ old_allod new_alloc)" H4 p& r% f" h
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000)). q$ a4 l4 N- S$ b8 @5 Z
- (expand (1+ (/ 4750 new_alloc)))& ?: _; A3 z. i5 ]3 M. O
- (alloc old_alloc)
, a) k0 G: z% p2 a4 z2 ] - );defun) a0 ^8 u# ?# R( u+ B
- 6 _+ M: m5 u7 j" j' L
- ;runs at load time - rk# v# ]6 m6 n' ]. H/ _2 F% t2 q
- (do_alloc)
( x' j5 E5 b% C" y h - (setq do_alloc nil)
1 ^9 h/ Q; w. x: C1 L; h: O - ;;;
; {, n& }* G$ D4 }. w, l - ;;; ===========================================================================
* a+ h+ Z- m6 k: j - ;;; ===================== load-time error checking ============================
& _/ I/ U5 v7 L7 v - ;;;
. O+ I) g: d/ a% S - ' B. [" \) H7 ^
- (defun ai_abort (app msg)
8 \4 x0 E/ P' S. ~8 K - (defun *error* (s)
% v( Z( \3 K/ `) U- @; | - (if old_error (setq *error* old_error))2 a! X! u( `3 D
- (princ)
( y! u, J7 `, z1 q+ e! {5 H6 J - );defun
% c5 [& |# G/ v2 {) p; P& e - (if msg/ v7 [, T5 x* m% c8 J
- (alert (strcat " Application error: "
) a, o/ Q, u+ x/ S - app
4 h$ S( U7 u0 d3 _. i, t: [- x) P - " \n\n "
: G; V3 g: d& T# A; ^ - msg/ o9 |5 x: E s8 y
- " \n"" Q" j" E+ }" D3 x) U {
- )
) x) o* c8 J& Z6 O) n0 a - );alert" `# ]- o" @" E
- );if: a: Q) p) Z3 i
- ;(*error* msg)" L# f8 @: }6 V, F6 f0 t( E/ R" w
- (exit)/ Z! H0 W4 D, y* B$ V
- );defun ai_abort/ v8 X( F# S8 @) P( F) G5 c7 d
- 0 b0 l" e4 w% l: Q0 s
- ;runs at load time - rk
0 @& E9 A8 ?# [% q u; H5 f9 G - ;(if (and *error* ;added the if wrapper around this - rk., [( Y9 v1 a. K; S, G f6 o
- ; (not old_error)
' N/ O2 b& C4 H6 B - ; );and
4 l! L( T- k/ p - ; (setq old_error *error*);setq% K0 D- f, d3 m7 u* j% R1 R) ~
- ;);if2 t- J+ ]2 l) _7 {. X- D. n, d
- k1 J9 R" P4 \) K- ! r# w3 h; N. c4 A
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,$ i+ y7 D. u# ]4 c
- ;;; and then try to load it.
: d A: p* U1 [) ^ - ;;;
' Y, l" W1 W& E7 ^& V+ J - ;;; If it can't be found or it can't be loaded, then abort the
& ?4 [1 |4 l$ U. U9 W - ;;; loading of this file immediately, preserving the (autoload)& Q1 D* w+ s3 @# r
- ;;; stub function.! u, D. I4 [# Y8 c6 D
- ; _) c6 a" M# {5 r( P2 o* |
- ;runs at load time - rk.
% _6 q7 x; _5 o T$ ^ - (cond
' w6 P1 }1 @/ i; R7 i. U6 Q - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
% ]* N# f( \8 L, J - ( (not (findfile "ai_utils.lsp")) ; find it( [3 l z4 g) S' G. b: f0 B
- (ai_abort "EXCHPROP"% k/ t9 v7 y0 l
- (strcat "Can't locate file AI_UTILS.LSP.". L) o' ?4 _/ r* A1 k
- "\n Check support directory.")
2 Z. `8 n* |) |' [6 j$ T - );ai_abort
' K( Z3 Q' J8 k5 w; y- ] - )* h p& \2 q2 s ]3 r2 I5 z
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
8 K- G6 f% C! C7 @1 x - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")7 ~ _$ q) I# L
- )' n* ^* W7 D- }
- );cond close, J. S4 F% Y# k r' Q O
9 Z3 g& Q) D. m3 g, o: V- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
0 L t( H; K$ U - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
& `7 F8 g$ i% I$ `# E0 V% I - );if ; ai_abort's alert box dialog.4 |; G' R! m+ \: V, \9 |
- r; l! W) x E' u8 m7 {+ N
- ;;; ==================== end load-time operations ===========================
. P* q) W8 g f, K/ A% X# x
. e0 W1 v/ S, D. T( V- ;;; Initialize program subroutines and variables.
% ]$ O) B& w7 B+ g- i( p
# f; S" N) ]( J! S7 U( l# c8 l- (defun ddchprop2_init()* s- d, F% O& t( J4 ^
- / @( E9 ~2 m U
. a) U1 g" z% F1 _
6 p$ f5 m. f% F9 ~" T$ V. J7 |- ;;
1 B2 W$ n* z* _% B/ o0 B' q - ;; Define buttons and set values in CHPROP dialogue box" f1 I) c" @0 _, E( @, [" T5 n
- ;;
: V& A/ m h R) Q. c - (defun call_chp2 (/ cmdact p1 p2)
|: ~5 v0 e( j/ T" p" v" [. P/ e
6 n$ M2 w( D4 X6 E/ X- (if (not (new_dialog "ch_prop" dcl_id)) 0 u D. \0 a3 ^. w. @% d
- (exit)' R' Z5 p, `5 h* l
- )/ }4 g2 X U9 K5 g7 b0 l6 k
- 8 V1 s* }6 J3 U9 A4 T; ?6 w0 s
- (set_tile "error" "")# r. d: f" h* r" t
- ;; Set initial dialogue tile values
( Q+ I+ @/ S* i; `1 N - (set_col_tile)
% V& \: z E- r( e" ~: ] - (set_tile "t_layer" elayer)
# w/ ? M9 ]# u4 N' H - ( }" V% [ n; y( }! |1 ]
- (cond
) l8 Q: M4 \9 J6 T% `/ i( J K" v - ((= lt-idx nil)* h. M! i& M" H, k
- (set_tile "t_ltype" "Varies"): u" W2 n/ X0 ?
- )! w8 k, g# @8 G8 X
- ((= lt-idx 0) ; set tile "By layer & layer linetype"; i: H, i% N- L0 W p
- (set_tile "t_ltype" (bylayer_lt))
. k- E/ y. G9 U1 D# Q, [7 z+ A - )) j8 o( x6 O* ~5 G
- (T
+ @8 L$ o6 Y0 W9 _6 ^2 n - (set_tile "t_ltype" (nth lt-idx ltnmlst))' j( m& v8 D! a+ B
- )- D$ b8 X8 k3 d7 O
- )+ X( \! D1 [2 i% N# S7 V4 P2 }
- / |! H- [5 j$ r# `. R$ w; e9 p5 e+ \
- (if (or (= ethickness nil)7 t* Y! q$ m1 g
- (= ethickness "")1 T# u& P" \: l2 w; c. Y7 ]
- (= ethickness "Varies") 7 N+ i! c0 K; A
- );or3 y b5 Q; i# T K8 X
- (set_tile "eb_thickness" ""): x2 Z: b! V& \
- (set_tile "eb_thickness" (ai_rtos ethickness))
6 v$ e: c. m9 z2 ?" H; f) f5 e - );if
0 X% _+ }8 }8 ]. T - (if (or (= eltscale nil), K# F1 y: `1 X# O) f
- (= eltscale "") J$ R) `& v6 w2 S, c
- (= eltscale "Varies")+ m. A! S& n8 I+ \( b' e
-
& w- d4 c$ F j1 ^( I4 O$ L; A - )6 H1 U( i2 {7 M ]! ~7 i
- (set_tile "eb_ltscale" "")( k/ Z4 f9 B, C% k
- (set_tile "eb_ltscale" (ai_rtos eltscale)). k2 ]4 P7 B. y& b7 _5 h1 O8 Y# P$ S
- )6 ~( ~% a9 ?! G' g' ^3 K
- (if! P0 V% R8 r ?6 m) [
- (numberp ewidth)
0 l; X9 Y4 v8 H! k/ u; A& [* c - (set_tile "poly_wid" (ai_rtos ewidth))( v3 J0 v. N2 d, u+ }9 I
- (set_tile "poly_wid" ewidth)
2 {2 R' e$ d3 P) ]8 R - )( y4 |4 \1 L% v+ z, U$ D( K, ^2 O
- (if
6 W/ J. I$ q" N% r6 a8 p: z - (numberp eelevation)
; D% m- I! m0 ^7 c/ I) v - (set_tile "poly_elev" (ai_rtos eelevation))
& y7 M# W9 z4 q: ^; {" Q/ K - (set_tile "poly_elev" eelevation)
; k/ R3 k) {3 V$ { - )
; W- |/ s6 `* G - (if1 j- [% ]! q# [8 v0 R( p) ]" w8 T
- (numberp eheight)
5 I: n) W; ?$ J P- P3 d - (set_tile "text_hgt" (ai_rtos eheight))
2 ^# M8 L1 x" V - (set_tile "text_hgt" eheight)$ a) Z) R- c/ e, `5 C
- )( m1 d$ l( \. B9 p" L
- (if (not estyle)
# Y7 x+ y& v( h- u" g% S. ^ - (setq estyle "")
! g) p1 T) x2 G+ t0 B. _3 x% } - );if
6 r: E) @7 m4 J' C* D( @ - (setq hair_style_list (tnlist '("style" 16)));setq! b5 _! V* a k4 @
- (if (not (member estyle hair_style_list))
; v# N7 K( w" R; { - (setq hair_style_list (append hair_style_list (list estyle)));setq
/ w9 h+ B- _0 k. G5 a/ J. i - );if
& y$ k ?' P4 ^4 d5 Q - + v6 h% m. {0 e
- (setq hair_style_list (acad_strlsort hair_style_list));setq. @6 m6 o4 ]( M- }/ p; V3 l0 g) V
- (mpoplst "text_style" hair_style_list)+ j* M9 p7 u& n* G. k
- (set_tile "text_style"
8 Z: [" ~+ }0 _% I. m) K$ f - (itoa (position estyle hair_style_list))& o7 D9 F7 x8 V5 x
- );set_tile
9 u! w) l. B7 E5 \0 k5 D9 T
. v& b; R+ v$ Q' G+ o- ;; Disable tiles if need be... ;@RK
% W% L& d& y# b% J" T [, E$ M7 i - (setq a 0)
$ L3 D2 r" P2 j7 r" q - (while ( < a (sslength ss))
; k; [- z2 u) e0 N5 s- L$ R7 V- Z6 ]8 } - (setq which_tiles' ?# [9 T: k% u6 l& K Z
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
. H! j/ O$ Q5 z" B. V+ J8 Q - $ n8 Y6 ?& a7 E; r1 q
- ;; If all fields are enabled, don't bother checking anymore.+ n2 J% p- B# T/ z
- (if (/= which_tiles (logior 1 2 4 8 16))& ]& a; g+ Q! q& \. q3 w) K) j
- (setq a (1+ a))
$ N2 y1 H4 I, o/ m - (setq a (sslength ss))4 R H3 Z/ \* \. l3 }$ m" q
- )
. H3 c" U- _4 I& v: J! B3 Z! u - )
4 t5 E( Z ~- L7 U& ]; \0 Z9 w x7 K - ;; Layer Button and Text Field7 j. t" i/ @% f$ i/ s% Y. Q' W6 U" w& n
/ H% P3 ~8 J: f$ T# N- (if (/= 1 (logand 1 which_tiles))+ Z, Q% M0 F B* T. M, K
- (progn$ D( O% t3 F5 l# s- _- F
- (mode_tile "t_layer" 1)) F1 ~, E/ C% |- {1 G
- (mode_tile "b_name" 1)
0 L9 a5 c) E5 T4 ?. c - )
4 s6 ?) h: r1 u- t+ T* C - )
% g' Y2 R% @; c( G; v; j
& C( ]# c% t3 k3 n* g( I6 v- ;; Color Button and Text Field3 Y* @ E6 u7 l8 T8 c* Z
- (if (/= 2 (logand 2 which_tiles))
" ]) W6 Y8 b, B% ]$ M - (progn
- k: F0 s; s; n, a! \$ X - (mode_tile "t_color" 1)1 b4 f1 v) R3 B
- (mode_tile "b_color" 1)
. Z/ }# X- B) X8 t- ^$ j8 v - (mode_tile "show_image" 1)
# N ]& X" b3 [ - )
/ a A- h) P5 D/ M2 | - )
5 X; e9 _! U, C! g- q" L - ;; Linetype Button and Text Field8 \) _ A8 _2 H8 ?
- (if (/= 4 (logand 4 which_tiles))
) a& \" \7 [' w - (progn! N# J8 w2 v; o* F1 S
- (mode_tile "t_ltype" 1)
1 X; t9 U; t9 y - (mode_tile "b_line" 1)
' n# G6 v3 I G% n - )
. W( K3 E: E; X- q E - )6 t. E) e: H; M9 G. ?4 Z
- ;; Linetype Scale Edit Field9 q r: X7 \! x1 L8 [$ h+ {# y. w
- (if (/= 8 (logand 8 which_tiles))
0 L( C% [/ g0 Z6 C" x6 u0 V - (progn% g2 M2 ^: R6 m. d7 T' J
- (mode_tile "eb_ltscale" 1)8 _) l s& K) U1 u
- )
( z* t6 b2 @$ S& P$ f4 M - )
+ [/ `8 t# p8 a2 D: V" f - ;; Thickness Edit Field.
$ K& |! S+ l* e4 g* ^ - (if (/= 16 (logand 16 which_tiles))
7 Z8 U5 d7 \) A- F - (progn
3 R9 ^2 O1 }! u1 T; o - (mode_tile "eb_thickness" 1)
7 E9 v! c, M* L/ ~ - )
) W- T. k) `" f: |* p2 z `/ V% v) t - )0 A0 g* m# X' X
- / \& G9 }" `/ R( n! V# E
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97! Y6 A+ \" i1 p4 V0 h# `3 R" D
- (if (not (= 2 (logand 2 eflag)))
, X: J7 H7 n7 G2 z' I - (progn
. f0 P9 J* z9 e& d: u! y - (mode_tile "text_hgt" 1)0 K, L" D2 S- ~( \3 H
- (mode_tile "text_style" 1)
C" w( O) c$ ?: g& l p9 G% ? - );progn6 o) y+ P; n! V- P0 j0 B* y
- );if( P5 p3 i2 \4 P! P: @/ A n
- (if (not (= 1 (logand 1 eflag)))) E6 c! U9 p0 D! k
- (progn
W! m# [- v6 b# F8 g% B - (mode_tile "poly_wid" 1)( N, j: |/ e; Z1 [3 D8 w
- (mode_tile "poly_elev" 1)( B4 y4 ^1 f0 G* ~" k
- );progn then disable polyline fields8 P' w& {, f2 j
- );if
- [$ L- F9 j8 {' g9 j7 Z+ O5 @ - " }% Z! o$ L9 G( i( a7 n4 E6 E
- ;; Define action for tiles
+ Z$ F/ _# x# j- a+ h: \, X3 F9 g4 x - (action_tile "b_color" "(setq ecolor (getcolor))")( q* g, m$ r% I/ p
- (action_tile "show_image" "(setq ecolor (getcolor))")
. Z9 e, M: ]5 o' J$ l+ V1 p+ ?1 C - (action_tile "b_name" "(setq elayer (getlayer))")2 P' e# G2 G$ D
- (action_tile "b_line" "(setq eltype (getltype))")
4 {; O) [ G% _- s- t* ~ - (action_tile "eb_ltscale" "(getscale $value)")+ U7 f3 i' s" y5 H2 i' F( c
- (action_tile "eb_thickness" "(getthickness $value)")
/ Z+ P @0 _, B - (action_tile "poly_wid" "(getwidth $value)")3 U9 Z( g+ B$ z
- (action_tile "poly_elev" "(getelevation $value)")/ ~2 M( D5 |, A5 F* U) w9 X& _ a- C
- (action_tile "text_hgt" "(getheight $value)"), R) y6 ?3 V7 {& s, K+ v) c
- (action_tile "text_style" "(getstyle $value hair_style_list)") ( {1 H$ T& ?; ]% H
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")1 i" u4 e# s: |9 h! d5 v% z
- (action_tile "accept" "(test-main-ok)")' [) n+ O6 Y- o# E) w6 M F8 Q) W
8 I3 `9 w& n3 ]( L- (if (= (start_dialog) 1)
' ^) X p" _ Z' @* W" V$ `+ d - (progn
9 N' j }; }9 Y7 ^2 d - ; Update special properties for polyline and text selection-sets.3 R2 S7 F! g: u g' h! }
- + k7 I/ N5 M( h- ~( G. o
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop; `& E2 n! z5 K/ l6 m, U
- (or ewidth
1 E! O, U( c5 t! N- T. m - eelevation/ P; U( h$ H. |( u0 A3 k
- );or
6 g" ~# b- d' {# v# B$ G" k - );and! w0 m: X+ g2 l
- (progn
4 s6 V1 U$ N4 \( q8 j: c0 r* l. h - (setq ss-index 0
# a( H: N* [4 f: g3 y2 n2 i - ss-length (sslength poly_ss)
3 E0 X+ U# O4 W7 Z( J# e1 B - );setq
: ~6 s2 ?, k# o - (while (< ss-index ss-length)7 F# u5 ?; K7 ^5 ^& ?5 r) M! O
- (setq ename (ssname poly_ss ss-index)5 a. j) s/ _. s6 `/ Z. g
- elist (entget ename)
0 t! ~' Y, S! h# ] - );setq
4 E) f* }* i! J/ @4 ?# t, I - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
% Y% r6 w0 O4 A: D; H) {# K - (if ewidth w' a) ]; j7 j. C0 [. u- v9 w" `
- (command "_.pedit" ename "_W" ewidth "_x")
% `' ?: o- H1 g5 U5 W2 [2 t - );if ( m; f8 ? Z" c+ `, U5 f2 V
- (if eelevation ' [ N' c) S* |; N( F' g
- (progn
2 N& L, p6 c E4 i- k: G: x - (setq p2 (list 0.0 0.0 eelevation));setq+ n4 I! D$ C# C* n O7 ?( o
- (if (equal (cdr (assoc 0 elist)) "POLYLINE"), U2 U1 F+ \, t/ [
- (setq p1 (list 0.0 0.0
U0 @. \+ v9 Y Z9 l; J - (caddr (cdr (assoc 10 elist)))
! _0 a/ f6 y7 X& o# ? - );list
1 D" y/ _" @8 ? - );setq3 O- Q# b0 B F# L
- (progn" Z4 S0 L% c) ~3 L* L
- (if (assoc 38 elist)
8 H* H* [- b [9 P; o8 t& P i - (setq p1 (list 0.0 0.0( E* |' V' S; A0 b
- (cdr (assoc 38 elist))* o& z. j( ^ K& x
- );list, T/ q* k$ S8 Y: l% x$ F' |6 x
- );setq
- U+ n5 y9 A S) U( m! [& A7 E# O - (setq p1 '(0.0 0.0 0.0))
+ e4 A6 L9 h' a* K1 x5 N L, e4 { - );if
( P; [$ d5 x: t7 j8 a* T& k7 S. j - );progn / v. ^( x# a9 ]% V6 i( {
- );if8 K, V& d# J9 N& u. J- }$ U2 e: J
- (command "_.move" ename "" p1 p2)6 V: K# S+ I) }8 @# n- H1 @
- );progn then change the elevation of the polyline
& E) a2 p% F' m) ^9 @: [* d - );if k" c8 H; Q! l& k
- (command "_.ucs" "_p")4 G1 G- N+ r5 t9 g& X2 V
- (setq ss-index (1+ ss-index))
. }1 l6 \2 G+ ? - );while; M% `: D7 g o- U2 ^
- );progn then polylines are in the selset5 A; l& N0 E& r+ M6 `
- );if: s/ b* R3 P! J; x+ E
- (if (and (= 2 (logand 2 eflag)) ; text
) [. W" q; ]) N# H - (or eheight - D" u6 q6 q. w" q
- estyle
' [1 m( c) @: ~" s - );or7 }+ i; A. |9 M
- );and. a$ h, _: o, A7 w
- (progn
X1 p3 X& o" C: M4 z/ @0 Q) s - (setq ss-index 0 ss-length (sslength txt_ss)). m/ E1 G5 t0 x0 ]
- (while
) T" |3 C/ _1 o% l( m X - (< ss-index ss-length), h& J9 e' {+ }8 X' A ` o8 A
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))5 I& v2 M4 z" K( g
- (if (numberp eheight)
/ j" V1 d0 t& X" t0 m* X! R - (setq elist (subst (cons 40 eheight)
/ Z4 A; F: I& E9 {3 A* z# R - (assoc 40 elist)
4 i0 Z8 F& H8 t0 W" j - elist. X3 w' G& Y6 |) A$ _% N$ T
- );subst
5 d; ]; B0 j) r" @: ^ - );setq
r" A6 I) Q7 @- l$ C) g: G - );if# k6 K: o/ p% ^: a
- (if (and estyle ;(not (equal estyle ""))
# ~7 ^; k& a3 }# E* R - (not (equal estyle (cdr (assoc 7 elist))))# h3 q/ t$ P) {, p( u8 r7 I
- );and
5 c Q& V4 T' W F1 x+ C8 t. C% |) Q - (progn # I6 Q! }. m5 f
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt , V& m& C4 X+ i+ y# O, z4 j
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))* u6 E z/ S! T
- ; (setq elist (fix_mtext_fonts estyle , M1 x; d7 Z9 M8 E1 p
- ; elist" d+ K0 f/ ]/ M
- ; )
4 m% R, m0 y# H8 |& W0 o* a9 A0 g - ; );setq then1 [/ x+ p- d* n! C
- (setq elist (subst (cons 7 estyle)
! E' S. d7 }( U/ T3 ] - (assoc 7 elist); S3 ?" `: ^) G* p9 \: y7 S
- elist" h9 w1 A1 s; w" c$ V/ b
- );subst
4 F2 l% H4 i# J) f - );setq else
# K! k# v( t( A2 N0 i - ;);if $ S: X+ b& H& y7 y. u
- );progn
' Q/ ?9 ~% g I2 T9 a, F - );if
0 [7 O, m& ~0 v5 Q7 Z8 n0 p - (entmod elist)
9 k6 b n! s8 N/ {1 F, l% L - (setq ss-index (1+ ss-index))
8 l* B9 L c- H5 `6 u$ z - );while) m) H$ t% G- t! X( M# t4 X
- );progn then* h9 Y. }& `1 }) f7 l5 y
- );if. f: y# X5 g! C$ w
- 7 O# j# M! _5 V! H% j2 b
- (setq cmdact (getvar "cmdactive"))0 s+ W# h) x2 h" T" x$ y8 |
- (command "_.chprop" ss "")7 c$ K. B4 p7 ]
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?! s% F! y! s4 {3 }: v& d) ~4 h% H
- (progn
( H& k& f; C% G% b' M1 j# a - (if ecolor0 I: o8 }; c" J! b% O
- (progn" p0 X: x$ X1 J( J& q6 j. V, t: h/ E
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
7 w1 p1 J. f7 q0 |" t% Y0 ^8 z; I' l/ X - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
* z+ Y% Z1 z( U( U* s% c9 I! U - (command "_c" ecolor)# @( k- l3 @' ?1 q$ T! ]" y
- );progn then
0 z# ?0 w% U7 w# u. W7 y5 M - )
/ f6 }. ^9 c8 [& [* W% f - (if (and lt-idx
& C4 y( l8 w5 C4 O9 E - (/= eltype ;|MSG0|;"Varies")
9 X. q) H! P. e& j - )9 r# v5 M6 C# _' y: k
- (command "_lt" eltype)% A; }$ Q8 a4 _4 Y0 f4 n& f
- )5 Q1 A( F" F7 l. ]2 ~ w8 N
- (if (and lay-idx
/ g" @: ^3 O$ S* t - (/= elayer ;|MSG0|;"Varies")3 Y+ ?4 V- b% g1 | z, D9 E! Y/ ] k
- )
: S9 O( ]" K; ?" {( L - (command "_la" elayer)
7 O5 {' B! q9 ?. M - )4 t! E) W5 c8 [+ W) Y6 V
- (if (and ethickness - ^) p4 {7 Z) J7 n, G8 ?0 ^
- (/= ethickness ""); j0 `* k& t) |( J0 {- v
- (/= ethickness "Varies")
7 U% _; [+ r/ y# G) t - )
6 Q" }6 @7 J* l: O w: j' V: R0 i# b* ^ - (command "_t" ethickness)
/ D+ Y3 s( _7 c% N2 `) f5 M1 x - )
* x) g" K" Q; K& h - (if (and eltscale (/= eltscale ""))' s- [9 S! i9 z, {
- (command "_lts" eltscale)
8 Y. T* a) a/ G4 h$ ] - );if
8 X7 ^. C" Y: f2 U% J) c7 U% F - (command "")
Z. k7 L, f$ t# X; @2 D8 m% s - )
9 U7 q3 m0 d( w+ k/ z8 } - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
3 N8 d' e5 E/ {" n - )" E. p4 _5 N; f5 z& s/ L; V
0 V" D, B5 N2 ^- );progn then OK was picked in the dialog.( K# M$ G, g) u/ ]! k
- 6 N* L- b8 W. z$ @. T. l3 h4 }
- ;; Fred GERBER - 25-AUG-94" R# u8 t+ b0 x# v
- ;; Don't print the "Properties unchanged" message when the user cancels
, F; U- O0 _- K/ I* k - ;; the dialog because he knows that already (otherwise he would have* i, z& o# y$ R: J9 Y, {1 g
- ;; hit the "OK" button). Display the message only if CHPROP fails for, {; W, U$ m ^# T3 M
- ;; some reason, because it is not the expected behavior of the command.
- M+ a' a7 m5 ?" q/ P3 `: b ] e - ;;) g! Z+ d* p7 y% s: c5 b" c4 J
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
% [4 e6 m; |) q6 U h/ d - );if
; u/ u# c/ t' ^" r( ?' O* [0 j - (princ)
% v" Y- ]! L3 \: v4 T - );defun call_chp27 e' M+ D% Y3 D1 f
- ;;+ |5 d; \7 y9 |
- ;; Function to set the Color text tile and swab to the current color value.8 e; E i# p' h. p) u
- ;;
5 Z, l2 \9 u* P - (defun set_col_tile()+ G6 n3 u% F, ^6 J
- (cond
0 a4 u2 K% _; l3 l - ((= ecolor nil)0 B" w6 S8 R9 c: n# j4 F" r
- (set_tile "t_color" "Varies")# h! _1 Q# u# o2 X8 C
- (col_tile "show_image" 0 nil)& s! i$ ]7 B9 B5 E9 I
- )
) S( h5 {/ J' u! n - ((= ecolor 0)# Q. y4 s% q' ~+ R
- (set_tile "t_color" "BYBLOCK")
3 [: R2 o: N# v( c; G3 N7 S - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
: T* N- |. ?; V# E9 ^; V/ G - )
/ x5 v! b8 k O \3 r - ((= ecolor 1)
$ U. K; b) t% ~% V. f5 l& c - (set_tile "t_color" "1 red")8 K3 j ?+ O) z+ j1 j
- (col_tile "show_image" 1 nil)
0 M! _) C7 F* B; Q/ C - )/ l0 r9 T4 m4 g7 C3 h! G# P+ | r
- ((= ecolor 2)
8 i7 u0 a6 G) d7 N- h/ H$ | - (set_tile "t_color" "2 yellow")* t3 B7 h9 O/ t$ [& g# r) j/ d
- (col_tile "show_image" 2 nil)
9 C) l4 C; _+ u H7 A! `" _/ U - )
/ D+ k, o9 t. N5 X+ t* }" _4 y- I - ((= ecolor 3)
. }/ g, [7 c+ { f4 m - (set_tile "t_color" "3 green")
. e7 C7 H2 x, k! j+ [4 U# \' k - (col_tile "show_image" 3 nil)$ D2 u$ f% z, c0 b6 c Z
- ). v% E* W' \3 u. u
- ((= ecolor 4) X1 `# _0 U" P0 O# Q
- (set_tile "t_color" "4 cyan")- Z7 L& F7 m; [& }0 P
- (col_tile "show_image" 4 nil)7 o9 u4 p1 x# @8 T
- )8 l# }2 k) j. B9 L0 [# ?& X
- ((= ecolor 5)# d2 c* l% w0 ?" s, y
- (set_tile "t_color" "5 blue")' G" ?& N. Z A X8 M, }5 y
- (col_tile "show_image" 5 nil)
; B0 {: e( K: ]" F, w - )7 g u7 D3 V7 `6 U& [8 `5 X& k
- ((= ecolor 6)8 [1 N/ o) s9 R1 f0 n
- (set_tile "t_color" "6 magenta")
, X$ {' ]2 U% ?6 y - (col_tile "show_image" 6 nil)
+ Y2 i+ Y/ X* @. k- @! L- z& m3 G - )
5 f% S+ u4 _1 l$ Q3 [7 S - ((= ecolor 7)1 P* M2 n: E# p4 T# w( a
- (set_tile "t_color" "7 white")1 q. y9 j' I: v# S4 ]: D! j
- (col_tile "show_image" 7 nil)
& K8 ?8 w3 d0 |, k: ]' `+ G, K - )
+ m/ |% A7 m% l: O - ;; If the color is "BYLAYER", then set the tile to& E" O& l. }' V' T
- ;; show it's set By layer, but also indicate the
% R: ?: N% @# w/ s - ;; color of the layer - i.e. By layer (red)
P5 I9 v# Y) | - ((= ecolor 256)3 Z$ g8 v5 M3 B9 ]0 A5 |
- (set_tile "t_color" (bylayer_col))& c( _5 `% i: g
- (col_tile "show_image" cn nil)4 m+ r1 {6 v/ o; a1 {$ W
- )
, M7 Y5 M" w+ s: W - (T
9 J; j0 S6 o, H# H! r - (set_tile "t_color" (itoa ecolor))
9 T* N8 y. n; } - (col_tile "show_image" ecolor nil)
, R% |1 M+ W+ L3 f. Y% g+ A - )
: C7 }7 _0 u4 m$ m- X( ^ - ), f, x" q4 ^7 `4 ~" x( V
- )
, O" i' |6 q7 ~; h7 c) w3 ? - ;;
" y" g5 D: ^5 O1 a; K) T - ;; Function to put up the standard color dialogue.
" ]9 t! O5 X8 G5 T; Q3 Y - ;;( C7 G" v! U. K$ A7 ?5 o$ M! W
- (defun getcolor(/ col_def lay_clr temp_color)
, k. }0 j* b# g7 [' Z - ;; col_def is the default color used when rq_color is called. If ecolor
* L, _0 ]+ ]. P) p% G - ;; is nil (varies) then set it to 1, else use the value of ecolor.. ~7 Y; M2 E5 l1 Z9 n9 }) M
- (if ecolor3 C) k( ]9 O" m; ]- }
- (setq col_def ecolor)
% b7 S" a! |5 l* v6 Z - (setq col_def 1)
& d9 V1 a9 L) _0 B3 \3 i0 l - )
3 v2 `. m! a/ Z - & c8 i- ]7 i' J* g% t6 W3 r
- ;; If we're working with a single layer, get its color
$ ]" z* y8 o( c# _: K {8 n6 d7 h - ;; for use in the color swatch if the user selects color BYLAYER.
|# r) V) O5 T( E - (if (/= elayer ;|MSG0|;"Varies")
0 i) ~. R& b6 |. a, ^ - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
1 C5 s9 K" Y# @, B. c4 z% q - (setq lay_clr 0)
- o# ^ s0 L7 i2 w - )
- g4 h1 P6 w( V" S5 ` - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
# k0 [. o( s+ Z; c3 M9 E# y) K - (progn. o' r3 E6 S) t8 Q% I) W- _, y7 c7 U4 d+ u
- (setq ecolor temp_color); {! {6 q4 r4 ~) y% j; ~: s7 c
- (set_col_tile): ?: [6 N1 L/ y7 \& {2 p% B2 X3 P
- ecolor6 Q* `5 z2 G, S6 W. c
- )
( q: Q* O; k2 V& j0 n( c( o) K - ecolor
+ S& K5 o f0 I( V. K - )- l) g2 q1 H! t( L: `2 `* Q
- )& N5 b$ z9 D/ f; m& U) `8 a" T
- ;;0 z3 s* r% b- ?; E5 Y% |
- ;; This function pops a dialogue box consisting of a list box, image tile,
8 Y6 F& _! R8 Y6 Z$ W - ;; and edit box to allow the user to select or type a linetype. It returns
+ X$ D9 C! W- { - ;; the linetype selected.
; N2 k" V l4 a x. Z" t; y - ;;
8 e" ~! m, Y2 v5 ^4 U4 K( e. L9 S - (defun getltype (/ old-idx ltname)$ v5 a6 q7 R/ Y5 G; l6 E
- ;; Initialize a dialogue from dialogue file6 Q4 v+ M6 h" F
- (if (not (new_dialog "setltype" dcl_id)) (exit))
5 A8 ?* M: U8 z6 w: r! L+ | - (start_list "list_lt")
+ G& L, ]$ y2 x6 q* G - (mapcar 'add_list ltnmlst) ; initialize list box( \0 J0 T/ Y& l5 |, U
- (end_list)
0 `( K. ]# a9 d2 a& @2 W - (setq old-idx lt-idx)
6 {- B# y7 c+ m$ I- o - ;; Show initial ltype in image tile, list box, and edit box9 i& C% d3 L, O
- (if (/= lt-idx nil)- G. @3 c+ U& s
- (ltlist_act (itoa lt-idx))
6 S7 X# E- ?3 b/ q8 [ - (progn
% J; n% I) E8 r D# [ L5 h) _+ N - (set_tile "edit_lt" "")
$ h; U0 b. v# | - (col_tile "show_image" 0 nil)0 w, [, S; }8 h8 \, U
- );progn else
# V! `& R+ ~# k o( z& ^( ^9 v - );if6 u, \& E; F' d' C$ X
- (action_tile "list_lt" "(ltlist_act $value)")* R4 ]. v" G; n
- (action_tile "edit_lt" "(ltedit_act)")
O4 g+ V- E$ x' w, G - (action_tile "accept" "(test-ok)")
8 B$ k& u4 e/ @) B$ Q5 K - (action_tile "cancel" "(reset-lt)")4 W" V1 i: I9 U5 g* D: W$ Y. y
- (if (= (start_dialog) 1) ; User pressed OK
& T( Z0 o; D* Y3 b* J6 Q0 _+ L( h - (cond* M2 {4 X& y, Q9 e, W
- ((or (= lt-idx nil)6 a# _+ A% { Y. [* s3 i: c* X1 r
- (= lt-idx (1- (length ltnmlst)))
" \' ]1 o% L/ E( `& J - );or
" i6 c4 p5 E; j0 T1 N0 ]+ |* i - (set_tile "t_ltype" "Varies")
. _" a. o0 [9 |2 f0 } E( u - ;|MSG0|;"Varies"
1 R+ f; k: x/ [% B. {9 J' I - )
& q/ d5 q7 }' w& n - ((= lt-idx 0)/ J$ Q5 k: @5 C3 `: |' q& c
- (set_tile "t_ltype" (bylayer_lt))- E7 C) R& P+ T @3 e4 I6 k
- ;|MSG0|;"BYLAYER"
& q; }" ]% V$ c& U4 ] - )2 @, y4 N& v; t: M2 d5 a
- ((= lt-idx 1)/ P9 n$ I" U% {# K" J) ^
- (set_tile "t_ltype" "BYBLOCK")
( F* x! `7 ~6 A% q* }8 U" J2 W7 M - ;|MSG0|;"BYBLOCK"+ g$ @' a! u; b! D- _
- )
& [5 D/ x9 T4 }2 I0 l: o - (T0 T$ e( G: ]* l% Z+ J0 e
- (set_tile "t_ltype" ltname)
8 Z" {+ }) U8 b8 o, n' j# Z; Z - ltname8 s4 y2 I/ d: H$ [
- )
; I* l2 n3 P! ?* W3 C- G# @ - );cond then
1 l9 g# X( B. G, q z0 z - eltype6 m+ z* k# @! f. `5 d. B
- );if0 z2 |2 p" T6 k9 h d
- );defun
, [+ ^. F; N. X8 ]# R3 P - ;;
" h9 G' C8 X/ S6 U! i! | - ;; Edit box entries end up here
( n$ ^2 H* l0 U$ D- N# s - ;;
6 q' U) R0 S* [ I1 A0 |" D3 `5 C - (defun ltedit_act ( / flag)
7 l2 o ^0 ]+ _6 E/ r - ;; If linetype name,is valid, then clear error string,
& Z; S: H- k# M' u" j8 X - ;; call ltlist_act function, and change focus to list box.
; G! Y Q6 R9 Q i# f - ;; Else print error message.
( N9 Z$ Z' H2 a: S5 c - . m" s4 U2 U: r0 j' ]8 q
- (setq ltvalue (xstrcase (get_tile "edit_lt")))
# E$ u$ u+ C6 m4 F0 H7 f7 V4 {% a - (if (or (= ltvalue ;|MSG0|;"BYLAYER"). V* Q1 Q; {( R" }
- (= ltvalue "BY LAYER")
" ?8 F# {' y @6 o. X - )
; M( a0 t$ t, U% E - (setq ltvalue "BYLAYER")3 d- l' X5 J& o8 B
- )
; o3 D4 `/ G' t2 ~% Y4 _ - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")) E% M3 n1 d: I3 ]9 H8 L
- (= ltvalue "BY BLOCK")
9 p0 J: W, |' D1 S6 e - )$ p: e/ k( A6 _# J# B, V
- (setq ltvalue "BYBLOCK")% r: r! V ?9 U* W% |4 H; |2 Q
- )
# ^; t& [0 `3 y, |/ }$ n2 r: y - (if (setq lt-idx (getindex ltvalue ltnmlst))9 P& P; K# `6 m0 ~) M1 W
- (progn
7 Q8 y( X" ]) k6 } - (set_tile "error" "")
* u$ p* }8 l7 |1 y9 m& z. U - (ltlist_act (itoa lt-idx))
- c6 M+ W. O) u: l. B, ^* {+ k - ;(mode_tile "list_lt" 2)
$ d) M8 \+ ?5 |) R* s$ T* o) s. a - );progn then- ^* o! ]) @. W' m
- (progn
- z# h& M$ w, r: j - (if (/= ltvalue "")
1 O) h$ |8 C+ ^ S C: X) ~5 x - (progn
5 P7 n& w5 U' ]7 m$ B# J: g1 ? - (set_tile "error" "Invalid linetype.")$ y4 \- o. A' }$ P
- (setq flag T), r( q' m! j' m
- );progn
7 h: _/ e& l! ] ]: n+ Q' s7 F; H - )0 C; v& O* ~; P' H ^" }- k
- (setq lt-idx old-idx)
: e5 f: y5 N7 R% t! ] - );progn else) g7 U; J$ a* ^4 x: u S
- );if
1 K. d- [$ O% _9 @& A - (if (and (not flag) ;added so a return will take you out of the dialog.9 b5 u& J4 g% P- b9 k/ f/ ?$ Y
- (= $reason 1)& j+ b0 Y* z' U5 |4 y: V4 ^0 ~: S o
- );and2 N" x6 f( b0 ?9 j# R9 w
- (done_dialog 1)
5 H5 R ?8 \) f% O. E - );if 8 ?/ }$ c: h& W3 _ p
- );defun ltedit_act. \9 g U8 w, W% X% y1 Y
- ;;
- v4 [" @9 W7 V( M2 w6 P5 ` - ;; List selections end up here6 |$ T# f8 V f
- ;;" [/ x+ |* J7 \5 b$ \8 Y6 I
- (defun ltlist_act (index / dashdata)
8 J4 t& v) g) O; | - ;; Update the list box, edit box, and color tile
6 G/ o( ^& U1 r2 X* C2 D( q - (set_tile "error" "")) T# `1 }& p4 z* a7 l0 @
- (setq lt-idx (atoi index))
/ `9 _5 G" i. z: z! s4 }" F& y - (setq ltname (nth lt-idx ltnmlst))8 X& T3 m% b. c! a0 q, g+ k' b
- (setq dashdata (nth lt-idx mdashlist))
( D# S( N e3 ]( X2 V3 q - (col_tile "show_image" 0 dashdata)
" i9 N* p" R" p3 G - (set_tile "list_lt" (itoa lt-idx))" g/ s, A7 \* u2 P
- (set_tile "edit_lt" ltname)
! i, a- P+ x2 U! X+ p7 T: L5 C) C/ C - )% U- P6 b# I* ?1 ], B0 |$ w8 Z
- ;;
1 U ]: L! F5 c - ;; Reset to original linetype when cancel it selected1 f; H. o+ ]7 u# x }
- ;;
5 N% b3 M4 I0 V4 x; J$ D7 W$ @( U - (defun reset-lt (), F4 W8 H$ u7 D4 P+ r" X
- (setq lt-idx old-idx)
# W, U7 w2 ]) F$ N& X - (done_dialog 0)
" m3 x/ S9 O. w - )
7 A% m1 Y; M- ?: \; u9 F; m2 K - ;;
( O4 [+ W/ W: d# c) S2 j - ;; This function pops a dialogue box consisting of a list box and edit box to
% P9 ]8 l4 i% G. `7 M' @! `, h5 F - ;; allow the user to select or type a layer name. It returns the layer name
! N. R" R w2 [2 K, g - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
( f! w! ^) U. q; ]# X- Q - ;; drawing.& q. c4 Z9 I% |* u% Y, { L$ a X2 q. I
- ;;& _2 w" ?' I1 `. h+ B) ^; Z9 h l) ~
- (defun getlayer (/ old-idx layname on off frozth linetype colname)' N6 }4 A, {3 W4 g0 `( I4 o
- ;; Create layer list the first time the layer O( {' h: |: y& T/ Z, S& |
- ;; dialogue is called.
0 Q! p" }8 @: w- O - (if (not lay-idx)
! ?2 A( x1 ~: z3 S - (progn$ N2 ^! Q0 {& L
- (makelaylists) ; layer list - laynmlst
& f/ o- W& z& n - ;rk
4 ~; Q6 H5 f R: m" F* R - (setq lay-idx (getindex elayer laynmlst)): R2 b4 Q0 O4 E" B
- );progn
, g, ~1 O7 M6 e! b% w% g+ W: R- f - );if
% n9 B+ L: r+ g1 K8 ^/ m! O - ! J/ j* ^; \, A+ A8 e
- ;; Load a dialogue from dialogue file
% L/ j3 { o# Q( w3 G8 {" d, [ X - (if (not (new_dialog "setlayer" dcl_id)) (exit))5 h3 p% h1 K/ b" M, z# w
- (start_list "list_lay")
) Y1 L! c/ X2 U `4 _; q: ~- l Q - (mapcar 'add_list longlist) ; initialize list box- E/ I% G/ Y. i: q# w
- (end_list)8 }- _4 z0 H* R: e2 W v! E
- ;; Display current layer, show initial layer name in edit
6 y4 b: A1 M5 a4 ~; _ - ;; box, and highlight list box.3 p6 x8 I0 |6 M& w& _
- (setq old-idx lay-idx)5 Q9 M& N! d; {1 V* ?
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx))). ]% `! N+ M5 q: |5 |8 ?! J+ O* L
- (set_tile "cur_layer" (getvar "clayer"))
( k- y2 N0 I& W5 x+ q4 {- r: u0 i - (action_tile "list_lay" "(laylist_act $value)")2 M6 H, o) p* R6 m# k3 W8 i
- (action_tile "edit_lay" "(layedit_act)")* p0 Y4 f* o: G
- (action_tile "accept" "(test-ok)")" T/ P4 g o$ U0 Z2 A
- (action_tile "cancel" "(reset-lay)")
' x2 X. D8 W- R - (if (= (start_dialog) 1) ; User pressed OK
9 D9 K6 A- j; b6 o - (progn8 G* L5 N& I3 C0 _, n- d
- (if (or (= lay-idx nil)/ G' i+ c7 A s3 x" l! Y1 S
- (= lay-idx (1- (length laynmlst)))0 G0 x. s! r; d
- );or
' q7 b6 \* D2 m' F - (progn0 p6 R' K; f6 c8 U6 w0 C
- (setq lay-idx nil) , s2 R. N7 O+ A$ i& G$ F! r
- (setq layname ;|MSG0|;"VARIES")
5 Y! W0 w, t7 i1 v5 {" I+ w8 L$ o - (set_tile "t_layer" "Varies")4 e7 {3 L' z8 Z
- (setq layname "")
/ `( |( \0 [+ f u+ P - );progn \2 \# [0 c; [$ D2 x6 F$ {
- (set_tile "t_layer" layname)
3 w+ h+ c7 u2 E5 K8 V+ S5 q - );if
- A) P) B( e* {: S2 d$ w - ; If layer or ltype equals bylayer reset their tiles& J; o! L" f. f; l8 C9 t
- (if (= lt-idx 0). d M# K! n( e9 H# m1 }
- (set_tile "t_ltype" (bylayer_lt))
7 k" b( m$ K: U" X$ s - );if
$ y( P6 X; T$ [! ] - (if (= ecolor 256)+ P% |* `( e: h" Z
- (progn; R4 |% _3 q% r- U* L. u
- (set_tile "t_color" (bylayer_col))
( \7 x. b, j# C- ~7 s3 d. k7 \ - (col_tile "show_image" cn nil); o% }- a+ o) W% d f
- )
4 X- D; F. o% b" Q" F/ L& B. L9 H - );if: H+ c3 n V5 `+ H" n( C, q2 O
- layname
7 y D# t1 H8 ~$ c - );progn& [. k' {8 }. ]
- elayer b; r+ ^6 c9 b, F# R. m" x# ]
- );if
2 A2 o( ?5 c( T - )
# N& R6 b9 u& w, a o2 h - ;;
4 g3 d' m9 O& [ - ;; Edit box selections end up here$ M! t2 {/ }) @( s+ e) P
- ;;6 f; s" r6 f. n6 \( G7 P0 v3 J2 U
- (defun layedit_act()
% m- C3 [8 g- r1 u1 z3 L - ;; Convert layer entry to upper case. If layer name is1 D( _2 Q2 `+ V+ B2 m
- ;; valid, clear error string, call (laylist_act) function,3 D9 S1 _* F$ `0 \/ l
- ;; and change focus to list box. Else print error message.8 C$ i! r# @: p2 L
- (setq layvalue (xstrcase (get_tile "edit_lay")))3 q" Y- b0 Q, K9 J
- (if (setq lay-idx (getindex layvalue laynmlst)). L( }5 b9 q% k5 L& _' h
- (progn( y9 y6 i5 o- x# v a M1 i
- (set_tile "error" "")' ^( w9 b8 {! y
- (laylist_act (itoa lay-idx))4 E9 I4 K6 }8 k
- )
, v5 j" }) @( f3 q! i - (progn! t1 k' e! w2 [2 \" g1 A% }! I
- (set_tile "error" "Invalid layer name.")
: M5 J$ J: x" L8 e - (mode_tile "edit_lay" 2)
' U, N- }& ^& B- D - (setq lay-idx old-idx)6 y" _$ L2 `- g3 l( h: w/ E3 c
- )) T9 u) e0 Z7 g: }
- );if: ]8 L! L2 j) [0 Y6 i( p9 }
- );defun
- f2 G) L4 K$ E - ;;
4 l8 d( n8 T" w. R: q! i- s3 v - ;; List entry selections end up here
. B) N' |) n+ Y r3 |4 r* Z4 E - ;;
) Z9 w' V3 q/ C6 F# L - (defun laylist_act (index / layinfo color dashdata)
0 m/ N" O: v& K5 y7 L" x - ;; Update the list box, edit box, and color tile' i* D+ } }5 Q( r5 K; ^
- (set_tile "error" "")9 j/ H; {; ?* `& Q* ?& h
- (setq lay-idx (atoi index))
" [( j5 v) F" c: J/ u - (if (not (equal lay-idx (1- (length laynmlst))))
5 C6 G8 U6 ~8 b6 L6 L - (progn
* O* _) I& t( c% ?0 `# f - (setq layname (nth lay-idx laynmlst))" L; g3 L: S! y' y& z6 R
- (setq layinfo (tblsearch "layer" layname))
2 S% H. o# u5 R% M9 M9 W - (setq color (cdr (assoc 62 layinfo)))
/ | v! ^9 ~7 |" v* G# ^' H - (setq color (abs color))
* B, q5 S' g+ C! U: [- J( m8 M: r( U - (setq colname (colorname color))
* B+ U& E! v( k, f, U - (set_tile "list_lay" (itoa lay-idx))! W/ ^) v; @% [% R9 D7 \" b- @( J
- (set_tile "edit_lay" layname)$ I$ ]! b5 Y. R/ ~3 a
- ;(mode_tile "list_lay" 2)8 A5 y: |2 k( x8 I5 E x) P" S
- );progn then
) `$ \6 }0 Z+ W3 }. F2 @$ W) F - (set_tile "edit_lay" "")
8 T( s1 [* [' O3 @: `; }$ q/ G - );if - K# B5 A$ E O8 q# D5 S
- );defun laylist_act' O2 O# T$ } V( b" p
- ;;
6 {. Q1 r( _: ]/ u% X' N6 k - ;; Reset to original layer when cancel is selected
4 i0 z+ K2 x8 ^' `3 u( A - ;;
* k B' O, A- V" M - (defun reset-lay ()
+ u. k( I. ?7 l! {$ Y B$ T" ~ - (setq lay-idx old-idx)1 M& s, D8 e( m
- (done_dialog 0)) E/ B3 U: R" i; y
- )
& P1 R) p$ e! ?1 f& g% q. ~/ ~
6 z R- q5 a8 a; B# z5 _3 Y# b- ;; Checks validity of linetype scale from edit box. It checks to3 `% A2 m( O" E: n( {
- ;; see if the value equals "Varies".6 z- f* m; T9 k% l1 v
~5 Z7 p" [7 x. F& U# X; w1 v& D- (defun getscale (value / rval)
3 B4 d& K8 d- T - (setq value (strcase value)
5 P3 i) N* f1 Y% a% c - rval (distof value)
& C$ r6 k4 U) L6 o1 D; W - );setq/ a+ u% s8 d4 E
- (if (or (= value "")' G+ @( s) p7 z# a& i& {. k
- (> rval 0.0). W6 R' a, q( L6 i
- )& u, V: J, ^2 H" x
- (progn$ U5 ] R9 i* _3 E$ \' U4 u
- (set_tile "error" "")' `5 ~" g5 u# e; i6 n
- (if (= value "")" T* ]# V3 f5 p V2 d r8 E* u
- (progn/ w( j. j1 x3 }6 m0 c6 u+ \9 g
- (set_tile "eb_ltscale" "")
! U: s2 H! c& i - (setq eltscale nil)3 X6 R3 A! m: J* X4 t" R0 t, c, m
- );progn then
5 V% n5 ]# m& u$ o* Q. I! G& h - (progn) [8 \1 n4 ^2 b% z. m7 k$ Y; Q c0 }
- (setq eltscale (distof value))
! M) I- K7 G' Y- q$ | - (set_tile "eb_ltscale" (ai_rtos eltscale))
3 R# |$ K9 h8 [# @" ` - eltscale
$ I" b6 G; l1 x) _/ c3 q+ _5 J. _* e - );progn else
: q6 b8 n" k/ I* _) n+ J& a - );if+ i+ B/ W' d \- G' _( N$ S
- );progn
e9 f* P5 P8 S+ J1 Y - (progn# @; Z1 p; l1 v% G, H
- (set_tile "error" "Invalid ltscale.")# Q5 H* t0 B9 W* I, Z
- nil; o2 e) T5 a1 S1 B! W" n3 z
- );progn else
3 w/ u* y# s2 R7 g# B# [$ s' r - );if# A* O% f: A5 r2 H6 q9 [1 `
- );defun
: B/ H% }* |9 T; b' m' X+ H1 A - ;;+ E6 {: U' M {: V/ M# N& {
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a1 I4 u' R/ ^, d8 R
- ;; string can't be converted to a real, this routine checks if the first( J1 X* ~3 B/ Q. C: w( ?
- ;; character is "0". It also checks to see if the value equals "Varies".
2 T3 D! V1 |$ P - ;;3 g2 X. W" K$ d: Z: g
- (defun getthickness (value)7 q: L$ O4 p h) s2 i* P! u. U6 J
- (setq value (strcase value))% Z1 r; n: U' I2 H* j" K- I; L8 C
- (if (or (= value "")
0 V& M- e1 D% q - (distof value)
+ l# [0 b e5 D3 ~1 w - );or1 }! @/ D! X7 H" M; r- |2 k
- (progn
2 B' ~" r; F6 Y4 ?' b0 H2 _ - (set_tile "error" "")
: e# o% y, f, Z- `8 y* k! } - (if (= value "")
; p7 q+ Y' y$ l0 d3 L+ f - (progn* i1 L/ Y. c! i7 V* r, `
- (set_tile "eb_thickness" "")
4 J5 L3 [) u' K& y9 G& H - (setq ethickness nil), Q9 [$ e1 ^$ \) ^' F) T9 V" t( b
- );progn+ ]3 {: l7 w0 t: f( p" S7 a
- (progn; _. L" U# l5 r& t
- (setq ethickness (distof value)) C/ J: G1 c$ V; J1 y& t/ p5 x5 d
- (set_tile "eb_thickness" (ai_rtos ethickness))
9 g) a |3 x/ K5 { - ethickness7 a! X8 Q. P q! }9 J8 x; V: T: Q& h$ ?
- );progn$ j/ m7 l9 a: p# \4 S+ Q( J
- );if4 h% \7 Z1 L( N# q# C' X
- );progn3 U, ?2 X+ `6 ^( f
- (progn3 @0 E. C; C4 k# }
- (set_tile "error" "Invalid thickness.")
& p/ u' w2 D$ Y4 m - nil2 G7 d, E) _/ b% ]! ^$ Q% i3 [
- );progn9 }9 f$ J I& ]
- );if
5 F( L5 x, b; c3 ? B - );defun 4 F& B6 s2 Q) l3 @
- ;;+ h8 N' L5 S9 w; U. w/ J; P9 w! Z
- ;; Checks validity of polyline elevation from edit box.
" h2 N& H5 g9 {8 J) y, j3 K - ;;* P. V# i; _" P% w
- (defun getelevation (value)' R: F) x; e O/ K0 I7 G# b% W7 O
- (setq value (strcase value))" B3 |. j( S! N* t/ i2 ?
- (if (or (= value "")' e: {; l- ^6 ]" g J3 x0 _# J
- (distof value)! U; W8 w) m3 \$ B
- )
1 [# U. j& Q7 i# s - (progn
3 n G1 d. a4 R/ D1 n - (set_tile "error" "")4 M$ {/ O* z! ~2 V7 {/ G
- (if (= value "")9 `+ d ?) \0 j0 w5 u' G3 T! a/ Y9 a* h
- (progn6 n2 M* x7 q% Q# W+ E0 {
- (set_tile "poly_elev" "")
! j y3 v n. i9 U) w) N1 H9 c - (setq eelevation nil)
, i7 y/ x% A7 o% g' y! U+ s8 m& ^ - );progn
2 W8 ^ @2 ], l - (progn
; P* E8 e& o, M) D+ }! E2 B% ~ - (setq eelevation (distof value))4 s: d8 g5 ]% D! v) ]
- (set_tile "poly_elev" (ai_rtos eelevation)) J4 a* ]- S I0 V! s
- eelevation! u$ m( Q! S t" K: `7 `+ u
- );progn
. z( m0 z, G6 k( S" I- ~ - );if$ Y$ Q' x/ s3 ~/ x1 Z# M: d& s1 p
- );progn' u! A" ?7 B0 q+ u0 q
- (progn0 x. R5 D4 I! e( w1 G* e
- (set_tile "error" "Invalid elevation.")% b% [8 s8 j+ r
- nil2 m; s7 t! B% K9 i$ E
- );progn
' W' O$ o3 H! O2 ]5 c* g - );if
2 f% g! w4 Y" y! A% m. B9 b3 E9 m/ ~ - );defun
7 ^, K1 m; j2 y* J- e9 J/ z( V - ;;
0 m. Q C6 Y" x# w5 L - ;; Checks validity of polyline width from edit box.' ?* C; e4 N- ?
- ;;
! q6 q0 C$ `' t9 D! y& g - (defun getwidth (value / rval)! q$ j, j, s, b9 E6 U" N% D# K2 X
- (setq value (strcase value)
+ j& y7 y* L9 u- |, }' w - rval (distof value)* O9 u' U$ z g; ]9 O1 I! U1 w
- )/ b. o* A2 ]* t
- (if (or (= value "")1 |5 S; {, o; r, L- ^
- (>= rval 0.0)1 L) o0 ~9 m* O& U, i- n. E. e3 Q
- )
* H% j! U8 [4 F& G - (progn
; z! ~- a' r) V% B* t! \$ h# t - (set_tile "error" "")
3 f* w, s# Q, x - (if (= value "")
2 _" L7 r# q7 O7 h" L5 D/ J) A - (progn
2 l4 L. g. ~' H1 n+ b* F& ] - (set_tile "poly_wid" "")! m# I) k ^, k4 K
- (setq ewidth nil)/ H6 c9 M4 t f- d6 [) M
- );progn
4 P0 q6 y0 W# J, {7 m - (progn3 {( ^9 m9 M3 o
- (setq ewidth (distof value))
6 [" ^/ X0 n' B* _' B8 L4 D - (set_tile "poly_wid" (ai_rtos ewidth))/ J; P+ v7 G; j1 c! A4 g: m& q2 O
- ;width& ?' o- q7 J! ]0 \) I4 e
- );progn- M n' N. Z# w! B5 Y
- );if/ e0 w# {- G& C" @2 Y! x
- );progn: z4 u* ]- D- e. s8 b7 j- F# t
- (progn
9 z/ |. x: D9 P1 _& t' h1 G) G - (set_tile "error" "Invalid width.")% R+ `5 N i) L3 T5 k
- ;(setq ewidth nil)5 Q; a% r% V. y
- nil " O, g; y0 x) H7 a5 h8 _* V
- );progn; d2 Q$ [+ Z1 ?0 i1 ^/ l. o
- );if
U4 @! F: p' ]* |3 d; r - );defun) y$ P& G9 l; \3 \$ w# v/ }) e: F
- ;;
) _5 T9 h& l% d' u - ;; Checks validity of text height from edit box.6 O4 R4 Z/ W" ~& y) G9 e2 I
- ;;$ n. @4 p* o0 X" R0 D5 T, [
- (defun getheight (value / rval)
- h( w# S+ b5 A+ ~9 { - (setq value (strcase value)
- K- w0 r/ o7 l* T - rval (distof value)
. ]. E" M& R5 G% k - )
: O" L" y, h1 Z' H, m - (if (or (= value "")
1 n5 m! d9 K( `5 `8 b - (> rval 0.0)1 t1 z+ @+ M/ {
- )( p% e w( R7 M0 t
- (progn
7 [. A# ~. _+ u, X" @4 V! ~ - (set_tile "error" "")2 m; n, K/ @$ M$ D9 T, V
- (if (= value "")- j" _ X$ M) m) ?1 ?5 o1 c; y
- (progn' c$ @, V- G. `3 t
- (set_tile "text_hgt" "")/ \& r* x: z: `9 l7 i2 I6 R1 q
- (setq eheight nil)% j( b) }6 e+ D) T; f( j! s( p% M
- );progn
. Y! |' r* F$ }+ B5 X+ ]- Z! Z% L! r - (progn8 c2 C2 x1 O! a( L
- (setq eheight (distof value))/ E* i0 O h( ~+ z# ^
- (set_tile "text_hgt" (ai_rtos eheight)): f7 u2 t' {) ^- S7 l7 O- a
- eheight
# m. g* Z8 W' b) `# C - );progn
. Z/ B- R; w: T" c9 U( T - );if( V b: b Y# K Q* a
- );progn
8 C$ D& ?# e, J+ I4 q5 ^ - (progn
/ r+ [" x* U$ w3 S+ @ - (set_tile "error" "Invalid height.")
6 N' T. Y/ v2 Z% e# ~' k - nil8 B9 P5 G" S1 g6 O
- );progn+ J8 s. q; O% q2 l. Y' u2 V
- );if7 Y2 Q4 |% [9 f7 E9 a
- );defun1 O$ t: p l2 l8 U7 w
, V8 ]! N, T8 ]4 b2 B3 q) b- (defun getstyle (value lst / rval)
2 o& q- H5 {4 h" j: h - ;(setq value (strcase value))( n. z; @1 ?( _
- (set_tile "error" "")7 |5 `% {/ u0 f- N6 r o
- (setq estyle (nth (atoi value) lst))
( L6 G5 `+ O/ I4 b. b4 l - (if (equal estyle "")% m& z9 W( \4 e7 S) @8 T2 X
- (setq estyle nil)
; D/ E: p: s8 [2 K, C - );if
( @7 r' T$ h! A; T; o. d. G1 G - # L- S# h+ x: o: M' b% A) p+ D
- );defun getstyle
' _0 h0 \2 A2 ~/ p5 A2 @5 q6 A0 M7 c
4 k V4 l& a; O' \/ g+ l" {1 B( `% G- ;;. x0 |8 r9 f0 F8 x! `
- ;; This function make a list called laynmlst which consists of all the layer
+ v! Q/ h$ B6 J - ;; names in the drawing. It also creates a list called longlist which
3 Z, C; q/ t! A# f( h - ;; consists of strings which contain the layer name, color, linetype, etc.
& u$ ~; [: S6 w- P- z G/ f - ;; Longlist is later mapped into the layer listbox. Both are ordered the
4 e; k }: }3 T/ B - ;; same.
5 a& x: {, k/ _# i2 \3 D - ;;
2 w3 l' x9 V% r( u2 Y8 I - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname) D& _" z8 R, V" W! P% W, N' G
- xdlist vpldata sortlist name templist bit-70
' G5 j6 b& u# G - layer_number
3 e0 X+ D+ [2 \; K6 x" P - )$ w l6 l+ w" k% X" y; P
- (if (= (setq tilemode (getvar "tilemode")) 0)
: R: K* r( r9 |2 _ - (progn" g/ W$ x# w: y- R6 ` Y) F
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")) K8 n0 E {" ^ R& i# b7 q' E% x
- (cons 69 (getvar "CVPORT"))
: S5 F" v$ X f. Z- p. {! m# ^ - )+ L; I# g% n! G- L& ?* B5 S+ s5 a. ?
- )
% c4 j+ q* }7 j0 F - )7 r7 Y$ W2 y" ]( j* \ I0 c
- (setq cvpname (ssname ss 0))
$ h' x+ f$ ?: I+ K - (setq xdlist (assoc -3 (entget cvpname '("acad"))))8 ?9 i1 |6 E* X. y/ @; _
- (setq vpldata (cdadr xdlist))( j G3 g: L& R& Q, Y
- )
2 P8 y' |" J: V( n( B - )
" O. C3 E1 k3 }4 R5 a - (setq sortlist nil)7 _& B4 @6 B- S3 r* ^1 E0 S! T7 w3 e
- (setq templist (tblnext "LAYER" T))$ e9 \2 G( J R1 P6 R ], W
- (setq layer_number 1)
7 |/ c4 i$ n- F! l - (while templist" Y, a& A# [- Z5 _/ B( D. E/ Y9 B
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))' X- v1 U0 i' s. A
- (progn $ R& R9 c' P: C* l( t/ J
- (setq name (cdr (assoc 2 templist)))
3 G# ]! g! {% @* @5 `. T' v! c - (setq sortlist (cons name sortlist))% J# |# c/ O# S9 o
- ;; Not dead message...% {5 [4 T( L& G B% K
- (setq layer_number (1+ layer_number))% b2 A* V+ r0 M1 c ? c8 R0 E, p
- );progn
* Q5 C3 L- e) g. a( H - );if
* [/ E3 m7 m' M" ~6 m - (setq templist (tblnext "LAYER"))( [& o3 z. c A. V7 l' I$ L0 }
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
4 B, X1 K2 h; X7 l - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
: }1 |! J, ^3 G8 Q1 }# P - );if
* s7 u! V& T2 J) H - )
" D7 l, P1 C+ I% v3 k; C% q - (set_tile "error" "")5 V; a8 r% I" d! T x$ m
- (if (>= (getvar "maxsort") (length sortlist))
! f- f+ P: w) ` @( O% W6 G - (progn" w1 n! `9 n9 F
- (if (> layer_number 50)
3 d1 v# ~+ {5 M! D - (set_tile "error" "Sorting...")
! E2 ?& F2 j: b& i- e8 Y - )5 z9 O- W+ |5 D0 k# J# ~
- (setq sortlist (acad_strlsort sortlist))
. ]8 U; g$ I1 a" P% V - )4 S7 p, d% K8 _* k4 _8 N+ h
- (setq sortlist (reverse sortlist))2 H) j- i* f* y4 f( A0 \' h: @
- )
. T$ ]5 [$ [% B4 Q5 U - (set_tile "error" "")# c ?6 P2 h- M- A! J
- (setq laynmlst sortlist)! O. y6 O$ L" q, ~2 N D
- ;rk
& S7 d0 C5 S. ~5 s7 B% Y4 y B) w% J' D - (setq laynmlst (append laynmlst (list "")))
, l0 _, b8 G, |" b5 p+ k4 p0 l& S8 R - 8 {3 v" W9 B$ F; K/ v, c
- (setq longlist nil)5 e }. g! n9 T$ D& l0 f, D7 Z; T
- (setq layname (car sortlist))
2 H& i! N$ H1 z2 |0 @3 g% B: Y6 K1 } - (setq layer_number 1)+ v- E# s9 `9 G- E1 S1 d
- (while layname2 C. G4 z/ H! G7 t1 S. E& x7 p8 C. S
- (if (= (/ layer_number 50.0)
+ l9 q4 L6 ^2 l# I$ t - (fix (/ layer_number 50.0))
4 m) p5 f" @% ^9 f! r; | - )* W$ {8 e" x5 B. a: _- K% G
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))3 `7 b( p C! a: a! L+ o$ Y
- );if
5 x6 q+ @$ r8 m4 r - (setq layer_number (1+ layer_number))3 O6 d- V6 O8 B( a
- (setq laylist (tblsearch "LAYER" layname))
: v6 R4 ], _) I4 M! D - (setq color (cdr (assoc 62 laylist)))9 C7 Y0 |0 h+ z+ |+ |. C6 g
- (if (minusp color)6 t) @; Q" V$ V
- (setq onoff ".")' h) n. \' Q ]" {; G( J7 T" ^- D
- (setq onoff "On")4 z0 w u: W* o7 w/ f
- )
% Q5 c4 g% ^8 P# f - (setq color (abs color))/ [# P0 j4 K( C
- (setq colname (colorname color))" a1 @& E2 m2 S. U4 F
- (setq bit-70 (cdr (assoc 70 laylist)))7 @8 {5 Y0 t, T8 p, E; ^3 ?
- (if (= (logand bit-70 1) 1)
! @6 n* e7 f3 B* @' y - (setq frozth "F" fchk laylist)- N; \6 B- o7 d2 n1 e: P
- (setq frozth ".")
~# `6 d& ^/ ^$ U6 m4 \. R - )6 P; j" e1 ~& Z+ C. O: w! e/ N
- (if (= (logand bit-70 2) 2)2 u9 J+ X; F) T6 M, f7 e; x
- (setq vpn "N")( _% i8 V. j+ t2 \( i, V
- (setq vpn ".")6 P2 \1 H: u" x
- )
. ^7 t9 |0 r+ r, g - (if (= (logand bit-70 4) 4)
& D6 g6 | x7 O; f6 C/ `6 d/ X - (setq lock "L")
, [( n. V4 D2 }- B* h - (setq lock ".")
! A5 z# J/ A7 s1 k4 q& M% `! U - )1 m) n( M- X; b3 j3 b
- (setq linetype (cdr (assoc 6 laylist)))
( Z8 A6 Y. {' `* k: k( X1 { - (setq layname (substr layname 1 31)): F+ U$ J3 H; w% G2 S; F
- (if (= tilemode 0)
' R+ G- f) q; f - (progn6 J( C o' ?) _/ p% y% V
- (if (member (cons 1003 layname) vpldata)( | ?1 f+ u, x" R1 O
- (setq vpf "C")
8 V' @& P% _7 c - (setq vpf ".")0 u! D! O7 n9 F, Z4 J& j7 Y
- )
& l L; W5 q4 P" h. |" J$ Z - )
, ]3 Y1 M0 \& E4 e4 K - (setq vpf ".")
2 {0 `, W* J0 k3 S0 i" b+ H - )
/ w- Q! s& `- K; {" I- [ - (setq ltabstr (strcat layname "\t"! \: R ~; o' Q; G
- onoff "\t"2 @3 h* ^ _) i2 z4 v
- frozth "\t"
4 v& E G9 f+ [3 t6 s - lock "\t"% b$ @1 h/ @3 K4 e
- vpf "\t"
: r) s" ]* M9 Q w7 f) v0 [ - vpn "\t"% ^+ [9 A5 M9 D- {" Q, c. \) ]6 l
- colname "\t"
3 F5 R; \) z: r) x6 d2 p# r0 B - linetype
x. k8 r& p; D6 h$ P" E% |6 F - )0 L+ E) @, r$ m7 N0 A
- )" c5 Y! C n- v
- (setq longlist (append longlist (list ltabstr)))
0 Y _4 q# b5 }, p3 `7 @ - (setq sortlist (cdr sortlist))
" f% @, g* ?0 S9 h, p7 N: Z - (setq layname (car sortlist))
! i$ z. I% C4 `- ~5 Y+ O! G8 Z - );while A0 w4 \8 W! N7 f0 m' ?
- (setq longlist (append longlist (list "")))" ?. a0 r5 L9 \( I& }0 P
- (set_tile "error" "")
1 |& V' C, z4 J1 f - )! z9 E2 t4 y" V! @4 p# u6 a/ {2 z
- ;;
. b( l6 Y( a$ f - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
?& w" f- M S! n8 N& R: E& t - ;; linetype names read from the symbol table. Mdashlist is list consisting
% p3 K: i5 T" `. b# o6 r7 O% i) s$ N - ;; of lists which define the linetype pattern - numbers that indicate dots,
5 c" c1 H7 X. V- a$ | - ;; dashes, and spaces taken from group code 49. The list corresponds to the7 U6 d1 ]6 F$ r
- ;; order of names in ltnmlst.
% J% M3 D+ j) V* n/ w. ~; [ - ;;$ a/ ] x7 l5 p- I( X4 ?: h- H
- (defun makeltlists (/ ltlist ltname)
- P3 `/ V5 {% @# R4 V( h9 Y8 N2 G - (setq mdashlist nil); K$ Z1 [1 S1 ?" h
- (setq ltlist (tblnext "LTYPE" T))
+ Y0 `8 [" i1 K! S' f& i) W5 } - (setq ltname (cdr (assoc 2 ltlist)))7 `( _% n* Z8 T' G
- (setq ltnmlst (list ltname))' M+ `! I4 ? @! z. W& P
- (while (setq ltlist (tblnext "LTYPE"))
T3 }2 v v' p4 I- e6 m - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
4 g( L. g2 T# \8 O' T - (progn
; z* N" X7 e' h* C8 {: ~ - (setq ltname (cdr (assoc 2 ltlist)))9 v# r7 {! K! N9 f7 c
- (setq ltnmlst (append ltnmlst (list ltname)))4 k+ @4 M& H( K' f; S6 r
- );progn
- x- K+ t. e: E% U) X# W' x - );if
' d& I: N0 Y; @- x. ]0 N3 d0 ~2 d: ^8 W2 | - );while1 d d' k8 D2 j5 g9 v) K4 x
- (setq ltnmlst (acad_strlsort ltnmlst))+ R4 M. b* N5 F* }! a+ _. K, r) C
- (setq ltnmlst (append ltnmlst (list "")));add by rk ) o' l% A6 r t
- (foreach ltname ltnmlst2 \+ g) d4 i, C! G; }5 c
- (setq ltlist (tblsearch "LTYPE" ltname))
: L! L5 s3 w' j5 T2 x! \ - (if (= ltname "CONTINUOUS")- s: M& t, Y7 H# L4 A: x$ w
- (setq mdashlist (append mdashlist (list "CONT")))
# G! c& K, {7 \$ }+ I2 j. J - (setq mdashlist% b! B# y# }, f0 V+ j3 s/ {
- (append mdashlist (list (add-mdash ltlist)))
2 ` S$ B! U: F' ]1 | - )
! [& ^4 v% w; C% I1 B/ \# Z - ), x' V1 c3 t& f9 L& N
- )
R; W/ x- z% J1 Z3 h; T- n - (setq ltnmlst (cons "BYBLOCK" ltnmlst))* M8 H9 w0 N+ @' C
- (setq mdashlist (cons nil mdashlist))* a3 [, m" R3 \" a
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
& G& D5 P9 d, s8 d - (setq mdashlist (cons nil mdashlist))
* I4 O+ Q# _2 e3 W- p y - )! c' q1 p o: z# n1 \
- ;;
# H2 }* P+ u0 n* e/ x2 G - ;; Get all the group code 49 values for a linetype and put them in a list
; z" Y- d4 Q& d# \4 J - ;; (pen-up, pen-down info)7 ]' E# N3 G5 p9 U9 s$ r7 g: R
- ;;+ N8 v3 _3 E2 S4 ~
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)6 V7 y2 W; j3 u- c" w/ I. e9 h
- (setq dashlist nil)3 n/ G8 W$ c. `
- (while (setq assoclist (car ltlist1))' x2 H+ [7 o5 J( e" M
- (if (= (car assoclist) 49)8 I& n. Z( |( l% O5 R2 r2 S1 ^
- (progn
% q7 F: m/ ~ Q - (setq dashsize (cdr assoclist))8 Q- j' \: Y+ g1 B2 D
- (setq dashlist (cons dashsize dashlist))' ~& l( G6 J- p% D5 D. q' S
- )3 c3 q2 y- [5 K0 N! K/ w H, @
- )
6 O$ i1 P5 ~' |9 e% D% j9 i' z - (setq ltlist1 (cdr ltlist1))
1 K" Y% i% t, l - )4 b* V& D- P/ m7 ~% Q
- (setq dashlist (reverse dashlist))
9 ]* q T1 G( `4 P/ g4 L# K( ~ - )( W& e2 [; Y$ C% r$ U
- ;;
; x% v0 J+ _$ ~1 A. b3 [ f - ;; Color a tile, draw linetype, and draw a border around it
8 O: c9 J S) \2 @ - ;;
+ q! _- M% T3 q: v% v( _: p8 O8 ^ - (defun col_tile (tile color patlist / x y)6 C) m% a* R& z+ z2 w( y V7 ^
- (setq x (dimx_tile tile))' U$ f2 q6 J7 i& S/ j
- (setq y (dimy_tile tile))) E1 S: i' w9 m
- (start_image tile)
e% I# Q9 N% x1 j# u; Y$ m - (fill_image 0 0 x y color)
2 G6 \, f5 A* M3 D6 j/ U3 ~" k - (if (= color 7)
/ S5 t) X% P: ` }9 Q# `& B! i - (progn- ^/ U/ Y& Z+ a4 K+ H# X8 M. p; L1 S
- (if patlist (drawpattern x (/ y 2) patlist 0))
( f( A; `3 t! o+ i8 |$ U$ p. }4 f - (tile_rect 0 0 x y 0)9 W3 X+ y( a( O5 p7 z4 r+ [
- ), ]8 n5 K3 o+ o* z0 M$ z) @- o
- (progn& @+ {) f3 f( K# x
- (if patlist (drawpattern x (/ y 2) patlist 7))9 _9 v5 W$ @$ v0 m9 ^1 c% [4 P
- (tile_rect 0 0 x y 7)
% ]" Q2 z& ?( S - )/ a8 s6 J# s: q, L9 K
- )0 m. t- J6 J. u; e$ Y
- (end_image)7 O* C5 @- }4 `& U+ N. o. y
- )
7 j& L2 M- w; Y6 z0 o - ;;2 ` ?* N- X' a1 F1 N4 J
- ;; Draw a border around a tile
$ o% `$ Q1 C1 C) ~, { - ;;3 Q" o. h: C5 G6 i$ Y6 K
- (defun tile_rect (x1 y1 x2 y2 color)
1 |1 j& t0 e W3 D% J/ |: Q - (setq x2 (- x2 1))
4 t6 u r1 P0 R! z - (setq y2 (- y2 1))
: ]9 m: n6 c5 \* N - (vector_image x1 y1 x2 y1 color)
2 P+ a- V2 |1 m: b! ^$ | - (vector_image x2 y1 x2 y2 color)3 O' ^4 `2 u" Z, n$ A
- (vector_image x2 y2 x1 y2 color)
$ F5 h2 w( l8 H& i5 x - (vector_image x1 y2 x1 y1 color)" i+ M& [- T' Z
- )* g- a! {& z( J% ]( w5 O! e8 k
- ;;
4 S9 z: Z: f5 T4 w - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
" q j2 o5 M7 v0 M1 T - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
8 i3 X/ {; D( I - ;; list of numbers that define the linetype, and color is the color of the
5 i9 a/ }6 Z4 ] - ;; tile.
, w; ?9 E2 j' ]7 u' ~2 ], f - ;;
. V9 l8 h S0 F0 z0 i6 @ - (defun drawpattern (boxlength y2 pattern color / x1 x2% w* f; j; y1 D4 w K( X0 |! k
- patlist dash)
9 r) T7 w( o. r - (setq x1 0 x2 0)* z; |5 e& K5 ]1 r7 A1 Z) H) S" J r
- (setq patlist pattern); ?7 s9 A9 b% |+ y% ^5 Z' ^
- (setq fx 30)
7 k8 T4 m: {+ M% H. v# R+ Q - (if (= patlist "CONT"): f; u0 V. Y: R; l2 u
- (progn8 c6 h g. E7 p, Q- l5 B
- (setq dash boxlength)
3 K2 {* s4 x9 u- r, g. x5 k% d; E - (vi)
8 ? r0 j- q& q3 E4 @( S - (setq x1 boxlength)
0 {/ }; N( k& K- f0 S0 l6 o - )
7 o' C2 q, G X& R - (foreach dash patlist
. s% v" O+ \/ N2 I - (if (> (abs dash) 2.5)- X' t( g, @ D+ [
- (setq fx 2)
3 R' T1 |/ Y* X+ m( t. b* `. I# A/ l - )
% t& ^+ p9 v' C X - )) y( B5 \' }; U9 K' B6 i) c7 V
- )* i9 k4 k- n& Q% v5 }) q {$ r! F
- (while (< x1 boxlength)$ d* A- z' [- m) I1 t( G
- (if (setq dash (car patlist))
( ?% ?. J: `4 Z& [7 h - (progn
; }& W) {* D$ A6 ?8 M - (setq dash (fix (* fx dash)))
) s( _+ Z. o/ @: |; y" `& S+ c - (cond
; H& W2 G. N4 r! Z1 A+ K& C0 u - ((= dash 0)
9 A9 q, x3 }4 y3 ] - (setq dash 1). T: L1 ]+ I1 ]* M' q6 L
- (vi)
4 H2 T+ {" E: I7 N7 x - )
& c. P \& V3 ?; j- F - ((> dash 0)
- `3 _+ S0 p- o1 |+ E: T) q - (vi): u: z2 \9 d' H
- )$ Z& ~9 h( u+ P3 T9 v8 R' J% Y
- (T2 G) X( |, J! X# v8 @# X
- (if (< (abs dash) 2) (setq dash 2))
7 R ~& h3 d: l. D( f, Z! u5 V - (setq x2 (+ x2 (abs dash)))
' t, m& C5 K, k* s5 m K - )1 u/ p0 }! S5 B2 i' E
- )0 @2 D) ^7 v: F/ A, R8 O! t
- (setq patlist (cdr patlist))) u# m6 L7 s0 U' B6 \4 g# y" B0 P
- (setq x1 x2)9 h5 _1 J+ L- s1 k& I6 Q
- )
, L6 L, ?4 p* F; I" Q; u - (setq patlist pattern)
" i9 p, J" s( m- @ - )( T0 z- c" A9 r' V
- )' V! w8 y# ^! h. i" a, Q
- ). Y' v0 k3 F5 W& y- _
- ;;
4 h }8 P( S% l) I! e' e$ p - ;; Draw a dash or dot in image tile5 B- j" k" g* K' B4 P4 Y- M- | {
- ;;7 }: z* x3 u- t3 ]2 {% ^) c
- (defun vi ()
* s8 u Q1 o# G; Q1 ^0 r! |' P - (setq x2 (+ x2 dash))$ M) V& e9 Q4 D' n- y0 z2 f+ L
- (vector_image x1 y2 x2 y2 color)
) Z, \* b' m$ |) b - )% h2 O+ l- t% d$ N
; W; e4 U2 C* ]4 _! e2 h- ;; This function takes a selection and returns a list of the color,( e- Q" X+ p7 g, [/ [& o
- ;; linetype, layer, linetype scale, and thickness properties that
" n4 m& k% C& l; s - ;; are common to every entities in the selection set - (color1 j- L. H1 E9 W5 A! |4 P$ C2 z
- ;; linetype layer thickness). If all entities do not share the same1 ~& s9 j9 ?+ J* \0 y
- ;; property value it returns "Varies" in place of the property
% s) p) p) R1 U+ s9 T( ? - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
5 J' J- e4 q5 |+ J - ;; The last item in the return list is an integer flag for the6 I& ?% J$ K" F# ~6 ?
- ;; homegenity of the selection-set object types.' M, Y$ K2 Z! k% h) n/ F1 e
- ;; 1 = All polylines
- A4 P9 G `) I. H% [ - ;; 2 = All text or mtext or attdef, or a combination of the three
3 ^) P3 I1 o0 ` - ;; -1 = Any other mix of objects* Z' ?- `% X) j, \/ h' J/ S' N. X# i
# G0 F& }0 B1 t7 j A" R2 I5 n3 I& m- (defun getprops (selset / sslen elist color ltype layer ltscale thickness! D" R0 w' E; `9 }, H) b6 A
- width elevation height go ctr % T" B- Z3 J1 m1 L7 l: a5 q
- eflag
" W! G/ d* P4 C0 c - etype temp
& b* s4 h, W/ B' C1 c/ Y P" A - txt_ss ;;;;rk 11:24 AM 1/30/97) c. C* O! B1 ~% M! U1 a
- tmp 5 L/ K6 ]8 v% B& J- {
- poly_ss - \8 V& L1 S9 t" j' x
- style( O; {3 V3 }" P2 ~
- )
) I8 ?0 A$ ]) P7 Y t0 N; X - G2 O; S1 u3 I5 o1 q- c# }
- 8 f Z6 r! Q; [# P4 J
- (setq sslen (sslength selset)8 x( s6 N' F8 ^% J$ H, j1 y, A
- elist (entget (ssname selset 0))( k+ \' m8 V5 Z. w, f
- etype (strcase (cdr (assoc 0 elist)))) d6 U, t$ F7 g7 j( x8 ^
- color (cdr (assoc 62 elist))' q3 f3 t' |+ ~# L) e+ J( j
- ltype (cdr (assoc 6 elist))
& j1 _: x; L& g1 D - layer (cdr (assoc 8 elist))
7 g# A% O) s1 v& F- R, _3 I Q) M - thickness (cdr (assoc 39 elist))# H% O' i: S* r1 @( F4 }( v
- ltscale (cdr (assoc 48 elist))" W3 h8 I9 a# G V% Z: n
- );setq+ r0 I' N+ g3 k/ `7 I$ y5 w
/ g' T% q& O A; a$ j! K- (if (not color) (setq color 256)); @! O2 \& O& k/ h
- (if (not ltype) (setq ltype "BYLAYER")); P6 X- {/ l% V* a& K* k6 R
- (if (not thickness) (setq thickness 0))
6 J- w, q7 a- N - (if (not ltscale) (setq ltscale 1)): x8 f) ]4 e1 G
7 E% N2 }% f+ G! k( W; z! k$ I" ]- (if (not width) (setq width ""))* A" X5 q; M6 E8 h, {
- (if (not elevation) (setq elevation ""))
$ l0 t ?" z5 X7 {( _ - (if (not height) (setq height ""))% Q! i( T3 P9 v6 y8 v! V
- ' {* I" w4 _: k3 R% t7 o) N; @1 e. @
- (setq go T
' Q4 F6 {7 r8 `, ~' L$ b6 U - chk-col T
- r( k7 m4 i$ I - chk-lt T ' O$ k% } P3 b! h/ d/ [4 Q* I
- chk-lay T
- ^5 ~6 V: @! P* T2 R& s/ t% U - chk-lts T ! U. y/ D1 \) Q% W' h4 ~/ G3 y* M% M
- chk-th T
" q- s4 V0 r; }: m4 b% } - ctr 0; K3 _3 h1 {( f
- );setq
/ P7 f) e$ c% U" E, W) Y - $ B+ h+ B. b7 J) F
- ;; Page through the selection set. When a property. ?; j8 @9 ?0 ] e
- ;; does not match, stop checking for that property./ U5 u; r1 h; i% I
- ;; When the selection set is not homogenous, stop checking.
$ ]$ G/ Z+ ?% b D/ G; ` - ;; If all properties vary and the set is not a type 1+ [. P7 A% \) O# L" k6 u0 r. F
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.1 o( b% m- b# x8 A" n+ a
- 7 M9 ^* n4 {3 u4 a9 }
- ;Lets set the eflag so we know if the selection set includes any " U( k* k' c$ e1 n j; e
- ;combination of polylines, lwpolylines, text, mtext or attdefs.2 Y1 V. _) q: e$ U
% ~1 ?) f5 [# C w- S4 J |- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97) z" u* F! T. B$ {) R: S: y8 N
- (setq eflag 0)
6 w% W! a, d* g F, k2 ? - (if (setq poly_ss & w/ N" y% I$ b0 |) Q4 L. R
- (ssget "P" (list '(0 . "*POLYLINE")
3 ~4 ?9 ]' d4 O% Z( D7 A - '(-4 . "<AND") ) Y) n- M0 T! o3 b
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
0 N, T8 L. q- L' |9 e7 ]# U - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
7 Q8 x6 W( z, l2 |" P b5 m; S - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
8 o- R% c8 |8 L4 d v0 u3 r - '(-4 . "AND>") 1 ]3 y6 Y: e& U+ i
- );list
; u3 e; Y% b8 O9 z - );ssget get 2d polylines (legacy and lw)
6 \# i8 J1 q# | - );setq
( _2 R! m) W* y/ \' N - (progn4 y# o) |$ p! c+ b& O7 d" N
- (setq eflag (+ eflag 1))& t0 a+ i/ e/ \. r
-
4 k) g- N6 w- W% L. } - (setq tmp (entget (ssname poly_ss 0)));setq
7 ^1 [& X" b* z - ' x' V X$ `0 X! C8 H
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))" a: a9 [. E0 Z* [$ h% N, Z
- (setq elevation (last (cdr (assoc 10 tmp)))): Q7 T+ q+ P, j2 @7 D0 H% Y/ u
- (setq elevation (cdr (assoc 38 tmp)))
0 W7 a% j+ `* F+ ^ - );if
/ F9 A/ S, k5 C' \3 o7 g. X7 k - (if (not elevation)
- q+ R. ~9 I6 F% O3 r+ q) } - (setq elevation 0.0);setq" G- M4 J& q: K3 ^3 C: _ g% {" H
- );if" i5 v2 ^) s3 j! L
- . q/ ]2 m/ L- y& s/ x
- (setq tmp (ssget "P" 9 R% k1 m5 U) D
- (list 6 C5 u8 t/ S; T) B7 B5 p
- '(-4 . "<OR")3 T8 j5 L, [% V) a$ I
- '(-4 . "<AND") " |) y" E+ @9 T5 b( ?& `
- '(0 . "LWPOLYLINE")
: \5 u" s; ]' v- [+ U - (cons 38 elevation)' _* ? {8 v4 |7 R0 q$ ~* A
- '(-4 . "AND>")
1 Y* ?; M+ u0 r! v - '(-4 . "<AND")1 d8 j! J9 K/ U0 r$ j. v i/ q6 H2 f; O
- '(0 . "POLYLINE")
- s6 S* w" y2 u1 U8 x* C - '(-4 . "*,*,=") 0 I r: C; T0 `8 ?) g% _
- (cons 10 (list 1.0 1.0 elevation))' i7 g9 t, G$ m! D/ ?: X
- '(-4 . "AND>") : g' ?/ H+ u! l# k7 w3 f3 N% `; }
- '(-4 . "OR>")
4 R* W3 \8 y7 L) }" t - );list9 R2 a& R: q- _1 a$ w
- );ssget
% G; d* `8 B o5 J4 p - );setq
0 @3 t( {/ f* h$ H% q) Y; r+ R - # b% |; G% }! @" I; t
- (if (and tmp
$ a' V; o1 u( a$ ~, G - (equal (sslength tmp) (sslength poly_ss))
$ Z" H. ~+ B5 S' A8 p - );and6 u: N* x7 l' `0 J# a) ]' x
- (setq elevation (ai_rtos elevation));setq6 A- t2 }+ I& r. G" M5 K9 z7 a4 E
- (setq elevation "")0 }! }) k: N+ v7 T8 b" A2 R
- );if
0 R7 H: i" Q6 [" J* {3 T( R" o - 0 ^$ u2 P+ P C' }1 x: w
- (setq width (pl_width_getter poly_ss));setq
, R4 x' Q* r0 L! X# \4 G r, W* Z4 S- c4 y - 0 r# W$ [' ~9 K$ _. B
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
: N9 C% u7 ?% X! ^# t6 k' H2 L - );if
; @3 K+ ^: O6 F) W. n - (command "_.select" selset "")* ?# z$ Z" O% m7 [3 ^% A( R0 M
-
5 i; S8 [3 a* d. q7 V - (if (setq txt_ss ' w3 w) K- T* N+ C7 L3 r- O
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 7 B! I* z2 K3 I
- (0 . "ATTDEF") (-4 . "OR>"))) @7 c- M2 i1 M- s
- )
1 e. ^# t- T5 ~2 N. E - );setq
$ M. q* `) [+ y - (progn) P! X% A1 M" _4 ?$ w" S) G
- (setq eflag (+ eflag 2))0 D/ A2 ^) m! V& W6 s {+ H) u
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
4 |6 _, @3 i4 X* n( |2 z( O% r - tmp (ssget "P" (list (cons 40 height)))
! j3 ?# ^2 z' q4 y- u0 N$ }/ C - );setq
6 E, [7 e1 W5 `" ?; b7 Q/ h% h - (if (and tmp
( T1 i# A7 `. U" J; `% ~; q - (equal (sslength txt_ss) (sslength tmp))
D" k% t" W2 L' q) i% B6 G) G$ W3 D - );and
, |, z/ S% H: r) d$ L" J7 r5 o - (setq height (ai_rtos height));setq ;@rk need to translate from float
; T3 K5 ^+ Q+ E, [. U9 e. c- c - ;to string and back again easily
" d r+ q9 b3 g2 S% Q, _1 v - (setq height "");setq else the height varies
! ?7 l+ n7 K. `2 Z( r. B+ C# u* A - );if2 q1 j, {6 r- I, Z
- (command "_.select" txt_ss "")
* E5 u7 ]7 `* K, N# `! f: o - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))! v! y/ a& U' p& K0 X: ~
- tmp (ssget "P" (list (cons 7 style)))
" I+ {. ~- s! _" ^: K) ^1 } - );setq 5 u3 q# ^# P: V
- (if (not (and tmp
4 b! X# E' e( K j6 a7 }& M - (equal (sslength txt_ss) (sslength tmp)) * o4 f# l+ L3 o. Y2 V
- );and4 b9 N6 E! F* L) W q5 Q
- );not) A. z- n' k- t8 n6 u
- (setq style "");setq then the style varies $ ^( U! u* l3 r P7 P
- );if( x; k1 o" k/ B' S/ @; S- @( t' X& a
- );progn the text type objects are in the selection set" G4 C- P4 X4 B6 w* N; q( b! ]
- );if
. k2 Z! t7 R3 ^2 h* K - (command "_.select" selset "")
2 O2 l8 }- ?1 r6 _! ~: T7 ]: V$ n - & d( g# [: H! k& Q
- (while (and (> sslen ctr)
$ p5 D/ j' ~. F' G - go
) t; E3 ~8 k: d" } - );and! `! S( L" @2 X" W# S# x( j
- (setq elist (entget (setq en (ssname selset ctr))))
+ u# c) s: _' _. w - 7 \# b( m) |& t0 J9 T$ P2 y
- (if chk-col (match-col))
- v! Y# S* E" Q- H8 @8 V - (if chk-lt (match-lt)) a0 Z! U0 r* x) ]9 p+ s
- (if chk-lay (match-lay))
7 [" g: C* v( ` }1 B - (if chk-lts (match-lts))
3 Y9 L; x( c2 N( F X! F6 v - (if chk-th (match-th))5 l) r9 A# o& S, R$ C \% r( e& j$ Q
2 _7 e% |- [ z% a- ;(if chk-etype (match-etype))
" C d- k1 n7 h( ^7 F& o9 b ^7 ^
3 e3 a" p3 D& e1 m- (setq ctr (1+ ctr))
/ y# |3 ]1 @: K+ \& I# _' d - (if (and (not chk-col)
% ?/ w" v' F( q( x+ E& } - (not chk-lt)
9 I% z, X) N2 c5 G+ l - (not chk-lay)7 t# Z8 |; ^: n2 Q
- (not chk-lts)
- T' h8 H7 B3 ~9 M3 E ? - (not chk-th)
. n; C2 a/ [( A( I - ;(not chk-etype)
* P% i; y* G/ }3 W; u2 H3 _- t - );and3 O0 U: g) W( p6 w( C
- (setq go nil)
# h! B/ g+ E) U" ~0 x* k+ D - );if
4 M% R1 o+ _9 J6 H5 t - );while! ~ F; N( L; p. x' U
- " q5 N5 P5 b7 C V
- (list color ltype layer thickness ltscale
( H/ y! ^( | i7 G - width elevation height eflag
* e5 `$ I5 ]1 ? - style poly_ss txt_ss: n( g8 {3 N* I4 T+ c
- )1 g/ r0 k/ y7 N; }$ l, @8 h* E
- );defun getprops
6 c4 G0 ^7 g6 n8 X$ j8 L2 S7 }) X
$ Q6 E0 Z; d% T! C- ; This is a speedy little routine to tell whether the polylines in
+ I8 n7 \7 a5 [* S. P( m+ Y8 S - ;the selection set argument are of varying width or a constant value.
4 _: g% l; B. N/ N1 D, D k u; W - ;Looping through the vertex's has to be done for old polylines when
, h; T3 l! x9 c: }* z - ;the polyline header has width values of 0.0. Basically, in this case, ' {, n$ I2 D5 @7 i( Z3 B9 D
- ;information in the polyline entity header is abmiguous. Width values : e: G/ K0 l' @% w" d
- ;of 0.0 in the header entity could mean the polyline has a constant
) V r) X% {0 v3 O& l - ;width of 0.0 or it could mean that the polyline has vertex's of varying 6 G( D% s V& j
- ;width.
" t9 L- w+ P7 N# A* r - ;" a4 a3 B9 R+ L" W- }
- ; It's all in wrist. Err a.., I mean it's all in the 'if'' K/ i: g3 Y$ n; k/ |' C a% B! d
- ;;
+ l9 H& P) @# }* g& u - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
1 F9 s9 T5 I& A- ^! N
. L* O. Y0 V9 W* a4 ^8 g- (if ss
" C: o; _$ W! f. C - (command "_.select" ss "")
# z: E/ Q* a' i - );if4 [) @( O- d) r
- (setq width ""& J( ?& j6 {) D: X( c3 \
- flag nil% x0 K1 I4 h+ B9 e' h' D5 F
- flag2 nil4 a; ~* b7 a" ?. q
- );setq
4 k0 s$ Q# l/ D% G. P Z0 e0 W% d. p - (if (not , H4 T( V5 P0 K7 n+ F; c+ A
- (and ss
+ H5 x8 B+ i3 \1 O) ~; ^ }+ k - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq7 _, L# z1 ^8 ^) q# s
- (setq na (ssname ss2 0)
$ I6 q* X- `; Q* t( D - width (cdr (assoc 43 (entget na)))
3 j/ I' ?9 [% s1 y - );setq
2 G9 X7 h' v C% b+ c - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")4 u6 p& V6 j$ ~8 U6 G* y
- (cons 43 width)
! A7 v' ]7 r; X - );list
: I" B9 {! o: j5 u. V, X - );ssget- i6 Q. s. e8 o
- );setq6 k& [- _, q4 [/ w3 s6 f8 Q
- (setq flag T) ! F$ z2 Q! _9 A' K2 D3 }
- (equal (sslength ss2) (sslength ss3))# t, p* L/ T! i, @% T( I
- );and |1 ?) P$ Q9 I& @! o4 A
- );not/ c' E( _ O4 B+ s% T
- (progn" L% @6 }) W/ }/ @7 N
- (if flag: V f7 r, a4 a) c% \9 ~
- (setq width nil) - g2 a/ m6 K: S' Y0 z( l% d" h+ L
- );if
, p. t9 e9 S" _# K- T! b# j5 D - );progn
4 y6 L4 n* U6 s6 {: B# L. ~( ~$ P - );if
. @, D' \' q7 o, R" m -
/ u' Z' K/ G, b - (if (not
1 f6 O# Q T# H! E( J% c/ R - (and ; C/ A0 f0 k: Z9 h3 D
- ss" _; l- E0 j9 A" K% z; E5 F5 H4 V
- (progn (command "_.select" ss "") 5 L; B; \- |- x* S' Q, N
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
# d$ I8 d- u8 o$ ] - ) ' B) Y6 ^3 p; q: K, h9 `
- (setq na (ssname ss2 0); Y5 {; `* N* K; e9 F
- e1 (entget na)
: H! f1 [+ C u1 Z0 h; L - width_a (cdr (assoc 40 e1))
3 ^8 u1 s# [* v5 h. H" [4 y# J - width_b (cdr (assoc 41 e1)); T5 t, x% I5 H2 Q* l2 c2 |
- );setq
- Q1 F5 Z8 G1 C! K - (equal width_a width_b)
" q3 L% f* G. W+ z) J - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
8 m$ a5 J2 Z0 w. v% F - (cons 40 width_a)
/ t U% K% {1 N8 C/ a( w - (cons 41 width_b)* h) W) t2 i# M- h4 d2 j
- );list0 X2 F ^9 y( z2 v z6 c+ g* G4 k* ~: H
- );ssget+ @3 x' j1 L( W5 E( p& y
- );setq* ?8 t& r- c' ^& S9 O* i
- (setq flag2 T)
; D2 Z; Y( o" _* g0 \ - (equal (sslength ss2) (sslength ss3)) E2 q9 `* c# H' u
- );and
# u& ?5 i; J6 o1 | U3 f8 C! Q - );not 4 u( Y7 n& K1 l& x5 O& Q' o
- (progn& K i" ~; e& `( S2 {) D8 g W
- (if flag2
) p8 n, ]1 v: @) ~" X - (setq width nil);setq" H4 s* S% i+ J" Q
- );if8 a* V) g7 i, c: d3 C- E9 w
- );progn then
0 H& S) S, s8 D - (progn
( O" J& A1 y1 N4 Z, G% H- T8 D" d - (if (or (equal width "")
9 x3 t3 i0 T t n8 `) f - (not flag)
% f1 [. z: v* {! X" | - );or
0 Z% L1 Y! ~: a- m/ \ - (setq width width_a)
6 e3 ~) L6 R1 u+ @/ l$ J - (progn
! _7 o4 e8 d5 j, W' P0 K! a& N - (if (not (equal width width_a))9 K1 e ~" X. q9 ^
- (setq width "")) k0 @' F5 ?; S4 h4 _
- );if
) B7 F& t) Z$ r: F# u& R4 } - );progn
0 v9 ]3 ]8 [4 p8 H6 `( p0 K4 q+ c: | - );if
& s' z) I: j. r k) v - );progn6 R4 m) C, I j- Y. t2 n
- );if7 g, B! R+ j5 f4 U" E& U9 t$ a8 J% \
- + F' Y- X0 }2 u8 G/ ~8 J
7 [! A% x S* \3 a: g1 A& v- ;now for the special handling for old polylines: J0 o% G1 ^# T* ]0 r c* y5 w U
- (if (and width % q: W6 a4 Y3 \( {4 g( G; A# }
- (equal width 0.0)) Z/ I' [4 F8 m6 O# ~
- flag2+ \+ P3 S' V' s1 M: k
- );and
/ Z8 N9 ^' L& ~% c/ v - (progn7 K/ Q, k0 d2 A1 b0 x- P
- 9 R2 \5 r8 i. X' S( W
- (setq n 0);setq
/ p& H& ?2 ?5 Z3 Y- Y; q6 I - (while (and (equal width 0.0)
+ V. x0 |6 L+ k2 p, G - (< n (sslength ss3))0 [# S- d6 ?6 Q( l2 e
- );and: {# ?5 O9 g: Q8 Y# M8 f2 X5 |5 O( w
- (setq flag nil# x/ s/ z8 y; `) R: d0 H
- na (ssname ss3 n)7 ?% p, o- c* y/ l$ Q. Z
- na (entnext na)
' n* ^0 G! l. e$ ? - e1 (entget na)
4 a$ y; [" M3 d* t# j+ R) D! E - );setq
4 @; J" l2 K0 A" q/ E - (while (not flag)
: K0 g: D6 L& k- J, F - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
$ ^+ R* h9 Q, Q1 M - (not (equal (cdr (assoc 40 e1)) 0.0)); g, ?! }* J0 {/ V o
- (not (equal (cdr (assoc 41 e1)) 0.0))
# L' ]" T6 `2 T' n* M9 n - );or& @% m4 x( N+ s+ [0 K
- (progn. y2 k- t3 o# ~
- (setq flag T);, P% k, ]; |! u' k: I! t8 ~
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))! ~8 J& {5 p! n+ o8 G4 k
- (setq width nil) * F: A" l/ g- m
- );if: T6 o# q0 z e1 `' ]7 w% r, G
- );progn then jump out of the loop& Z @0 `! d: B8 v7 G p
- (setq na (entnext na)8 N( g' Z+ t. |+ |
- e1 (entget na)
' w! E9 d |* Q. @ I* B* x3 y - );setq
* H! x$ K- L( b! |" N1 N/ K! Z - );if 0 |3 w+ Z! Q5 J: w5 \
- );while
- n9 A1 I/ r* l2 N2 O2 r - (setq n (+ n 1));setq
; t* W9 P. M% O - );while 4 h/ `. ]; R: r% G9 ^" f- g
- 5 I* s4 I0 e5 i, Q! c7 G. G
- );progn then it's a legacy
' x L+ g8 `4 b( j* { - );if ;legacy polylines that may have varying widths
* G% T" U; O* J* |+ Q+ \9 ^
- E' a1 f7 I$ `5 }9 K- (if (not width)
# t4 f& G) x; V' `$ D; V- ? - (setq width "");setq
) w: B* g% k9 Z$ { - );if
; ]2 S/ E+ G$ \0 g - (if (not (equal 'STR (type width)))
/ \5 f: a( J. r7 O6 {" J/ _ - (setq width (ai_rtos width));setq 8 h% q* |# C# N" K
- );if
+ t4 |1 Z) G( n1 |# R3 `* K. z1 i - " Q9 @" f% d! ]8 I9 M( f% L/ ]
- width
5 g1 A3 |& ]0 T5 A7 c - );defun pl_width_getter; h1 l* x/ y0 ~
; H p5 C* d( p) b! A: j- $ R/ H+ F4 O1 M5 Y: E
- (defun match-col (/ ncolor)1 @, k! e1 O+ }" }+ z0 A( b: j
- (setq ncolor (cdr (assoc 62 elist)))
6 `( D! P+ |( o+ n - (if (not ncolor) (setq ncolor 256))# W' w7 l! b& i f
- (if (/= color ncolor)
' T6 o' m4 [! L1 s0 h0 B7 `/ h - (progn
2 T$ j2 n' _, R$ F$ b3 ^: Q. M - (setq chk-col nil)+ N: x/ M7 \; T7 x2 l' F1 |" S
- (setq color nil) @$ K* q+ m+ e9 y1 C
- )& Q" ?# s) L/ O: T$ k
- )
1 {/ Y+ k) d6 m( m! s - )( O% w( d' q' `& O6 d: i
- ; H6 s" x. f# d- R- `
- (defun match-lt (/ nltype)
, \2 A4 ^8 n' ^4 h - (setq nltype (cdr (assoc 6 elist)))" x( f$ r& O7 E, e! P" h" j# Y" I
- (if (not nltype) (setq nltype "BYLAYER"))" W) s; i4 @, E. q4 I) |
- (if (/= ltype nltype)
[8 h- a8 l' ^: R - (progn5 s& d* e" j- ^' w( n! |
- (setq chk-lt nil)
' K+ }6 G; w( _( @2 ~, N! Y - (setq ltype ;|MSG0|;"Varies")# i* r+ Y7 I$ ^
- )
5 i1 u. N+ h4 w" U; I - )
# Z( Z; u! ]% w1 }8 v6 F! {8 ~ g0 V - )
5 ^1 {: H/ c5 K3 I( _
. j3 j# \8 \1 D- (defun match-lay (/ nlayer)
+ o1 U/ C" [ `; S; Y - (setq nlayer (cdr (assoc 8 elist)))" n$ Z2 b0 ~0 x" B1 Y4 }
- (if (/= layer nlayer)5 Q- F$ I# K$ c+ ~9 P
- (progn
6 o4 d* E; c: a# R) u( e3 m8 o - (setq chk-lay nil)
5 O7 X( j6 A2 f# D. w4 g - (setq layer ;|MSG0|;"Varies")! I/ S( }8 z5 c) k
- )
8 @# p; ]3 t9 P& k( R5 T - )
$ x: W; P U0 {' Q X+ [ - )
) l f, J# r2 }* u) k - 2 w- e" J9 c6 v; i0 S$ C9 ~. k
- (defun match-th (/ nthickness)
& s+ ~2 G' j4 C0 n5 c - (setq nthickness (cdr (assoc 39 elist)))! q7 ~ H& u+ O6 p7 @ L
- (if (not nthickness) (setq nthickness 0))
( d5 ~5 x h o) K1 v - (if (/= thickness nthickness)
8 U* a) @( \- P5 G5 d6 ? - (progn
" J. Y+ y9 w5 F3 L) R: C( m9 r - (setq chk-th nil)
4 ]" m3 P% B! R* [+ ~# E - (setq thickness ;|MSG0|;"Varies")
( T/ s, b) p, H: m# O# _: Y - )1 J" h. ~1 {5 W! p8 }
- )
' l, o! h# R3 S7 \ - )
7 `& w: n7 e$ j& v: P% W6 ] - . U2 J. z8 L, l
- (defun match-lts (/ nltscale)
6 g/ T' l& J/ ~; [+ y; z9 Z - (setq nltscale (cdr (assoc 48 elist)))
g5 t. x0 B+ d - (if (not nltscale) (setq nltscale 1))$ a& w/ N. i; W) _+ w' D8 f! g
- (if (/= ltscale nltscale)& y4 I, w' O v) l6 V5 K( G/ e
- (progn
$ @4 W, T9 c$ Q/ e W - (setq chk-lts nil)* K% w8 f) `& H' D& x5 v) J& C
- (setq ltscale ;|MSG0|;"Varies")* w8 p. I" b0 D4 V
- )
' H) x% J# F* g" s+ s( o( Q - )1 r$ @, C( ]4 b
- )
9 W! M: Q% m4 G; a3 y
2 n" S/ S4 i: h5 h" W8 m- ;;1 p9 I1 p+ l1 [2 S
- ;; If an item is a member of the list, then return its index number, else
) G2 \. l+ {* ~: q* D1 D - ;; return nil. n) w3 D/ W5 d! d$ _. ~. O/ Y
- ;;
3 p4 J5 k0 q" f. ^9 V& V+ f9 x - (defun getindex (item itemlist / m n)/ S) p4 M$ |/ p5 y B$ | X$ X$ I
- (setq n (length itemlist))
0 t7 x& c2 n! `- |8 M" v6 R. |! s - (if (> (setq m (length (member item itemlist))) 0)
. l* `$ ^6 f# z, n: p3 r- X0 h8 I* ? - (- n m)
& O6 t( I+ O7 B% ~$ | [/ h4 r - nil
4 d9 k& N( |1 D& B; z8 d - )
/ w+ d$ L* D3 c5 f* G/ C - )+ D+ _ s. q( X
- ;;: E- i" l8 N9 f/ J$ S+ A4 ^
- ;; This function is called if the linetype is set "BYLAYER". It finds the
7 X) q) O1 @0 G1 u- f# g - ;; ltype of the layer so it can be displayed beside the linetype button.
) z, \% K( s; n8 J$ X0 d - ;;
" v6 T7 j, H: c0 g - (defun bylayer_lt (/ layname layinfo ltype)
) Q+ ^- B* F$ _3 ?# I2 c% A - (if lay-idx
+ L6 J7 C4 H: l$ M+ V' n( t: E2 E - (progn
- u) L ?7 U/ Q/ w - (setq layname (nth lay-idx laynmlst))( G7 A0 ^% y9 o- J0 {
- (setq layinfo (tblsearch "layer" layname))
4 o3 e, W4 t8 P% v. t - (setq ltype (cdr (assoc 6 layinfo))), g/ Q! ^$ ^/ t! D- C$ ~( s1 O
- (strcat "BYLAYER" " (" ltype ")")
- O6 I. h' K" k- v0 g0 C - )
2 |$ L0 T. o8 L/ R2 V# K+ r" c - "BYLAYER"0 C" \: S/ Z9 r+ h& A
- )
+ Y; ^! Z7 Z* H; N" F; j - )
) L4 C/ r+ t' B; g - ;;: R, [, W7 }! E
- ;; This function is called if the color is set "BYLAYER". It finds the
/ i Q0 u/ J9 V4 n0 q3 m, O - ;; color of the layer so it can be displayed beside the color button.' |, U8 o" ]2 O$ u; g" J
- ;; y. f$ |) _' K8 @4 E
- (defun bylayer_col (/ layname layinfo color)
' B6 Q1 \; A: a, r - (if lay-idx
1 k- ]4 n; c' p' u4 h& J4 T Q - (progn
( v' q/ H) A) j& h* P, y; ` - (setq layname (nth lay-idx laynmlst))' D* J4 O7 W! e
- (setq layinfo (tblsearch "layer" layname))& b! p8 q' j/ n& E
- (setq color (abs (cdr (assoc 62 layinfo))))+ O9 E/ C, \4 ?0 O
- (setq cn color)" _! W/ E- d' I" W- G/ O4 b
- (strcat "BYLAYER" " (" (colorname color) ")")
0 m, J# S* M( G; w2 _ - )
4 k4 p6 d3 z5 n - (progn
5 P% F6 ^6 l' k! r5 ? q - (setq layname elayer)2 D* g- B% D% O
- (if (and (/= elayer "")
2 J( V5 [- l4 s) s2 V. f - (/= elayer "Varies")
1 D3 V6 I( Y) Y( d0 ` - );and& B3 Y3 P/ a# B9 v4 D! v
- (progn" g: c6 Q- i8 X, t1 z
- (setq layinfo (tblsearch "layer" elayer))
z7 Q* z# d2 g8 x" u' q - (setq color (abs (cdr (assoc 62 layinfo))))3 B/ N' z6 b! D6 a. j
- (setq cn color)' N0 {! ~/ _% p0 j4 g$ Y2 p
- (strcat "BYLAYER" " (" (colorname color) ")")
- Y }$ k7 U2 R. E( r/ C - )" _; X7 J' ?$ A# Y8 @/ ~
- (progn9 r: j! |+ z. z1 t0 P C. I
- (setq cn 0)% ~. A$ t% u# b
- "BYLAYER"* x8 Y3 Q% @2 }) z9 Z
- )- A4 a" l, m6 h/ M
- );if
3 A, t2 r# ]+ g' t( [0 p5 X' r* x, k! Q - );progn
9 H7 i- u3 D# L5 m4 c- n; E - );if9 s* L9 O8 P1 y( l! x
- )4 J( @7 r# w4 J, T
- ;;# v8 W3 A+ f( s
- ;; If there is no error message, then close the dialogue, `. q2 r+ L" O/ l L- g
- ;;
( N0 g5 i; F" | a/ e$ @9 z, g - ;; If there is an error message, then set focus to the tile3 X* Q$ p6 Q7 I2 H7 h
- ;; that's associated with the error message.
$ q% A6 y8 y. ?0 }0 ^8 P - ;;( T; q4 h$ A- |% f5 X
- (defun test-ok ( / errtile)
0 C( k `8 L2 {, x - (setq errtile (get_tile "error"))
& f3 r* V9 F$ R- J- c# K/ Z - (cond
! T8 l9 }8 @5 a" A! ^ - ( (= errtile "")
- _8 N1 |3 h$ P0 E$ A8 p+ d4 b - (done_dialog 1))
. t! H* F$ @6 x - ( (= errtile "Invalid thickness.")/ {1 n! x) v( N8 [) N, r% x
- (mode_tile "eb_thickness" 2))
2 }4 z, a1 t: c' P' O - )
! @0 i" D' Q. O- T0 `$ V - ). ?+ O6 h& `5 Y7 A+ }" ^! q
- ;;- y) @5 \9 x# `8 G
- ;; OK in main dialogue.4 T* D+ I9 B7 [4 M
- ;;
t3 i, V1 r2 d% n - (defun test-main-ok ( / flag)0 g1 ]# x$ M% }. e7 x, }0 I7 e
- (setq flag T)
1 r" i7 g- t g/ Y2 a* w6 Z( y - (if (not (or (distof (get_tile "eb_thickness"))& J! C) [- b% ]! }# @ c
- (= "" (get_tile "eb_thickness"))( w& d0 X3 V' I2 N( g* S* X/ m
- );or
7 ]& T( s2 M! H/ N7 V - );not
/ G! ^5 r6 x' P% n - (progn
4 ?. V3 i) H" A; [8 T - (set_tile "error" "Invalid thickness.")/ x" Z2 s5 h# F, W
- (mode_tile "eb_thickness" 2)
! t- f- H! ]" l+ u0 H% [) k - (setq flag nil);setq
8 C) c/ G# Q% |2 y - );progn
7 ~) _1 u6 h$ B& c' \, L - );if
6 H- ^ t# S/ P: F. l - (if (and flag
: X, \9 h2 E, x* j - (not (or (< 0 (distof (get_tile "eb_ltscale")))7 m* U& H' ?5 J* J0 n! o+ _
- (= "" (get_tile "eb_ltscale"))
7 H( X$ g1 I' @/ ?$ m5 V' j - );or % O5 ]. g+ G6 w" j6 A* d
- );not" {- A7 F, C/ C, O3 J
- );and ; d9 f2 w$ x! w- k k
- (progn' b8 k( Q$ _1 M. Y" z+ m5 }
- (set_tile "error" "Invalid ltscale.")7 |& j M0 _: n$ M
- (mode_tile "eb_ltscale" 2)! a1 Z4 Z6 t* Q# ?$ e
- (setq flag nil); ! u7 l% B. w, B; p9 f3 h
- );progn then
. j2 w& i$ T" g! Q* s - );if0 `8 ?8 {" a1 T' _3 S
- (if (and flag
) H5 R$ i/ w/ [# A' I6 \. d - ; Don't test the tile's value unless it's enabled., b+ i" |# i0 V, g
- ; We're not set up for the display-only value$ @ E D A) F
- ; of "" here in the error handler.* A9 S. t$ P0 J, u6 B8 f- D
- (= 2 (logand 2 eflag))% i7 M, K% Z$ |) y
- (not (or (< 0 (distof (get_tile "text_hgt")))" K( S/ L, c. j f8 L
- (= "" (get_tile "text_hgt")) I9 {4 U% H, K' H7 Y, Q7 ?) V) d
- );or
! ~4 G' \& U8 {" P, D: e% y - );not
2 F. \' d; Y, `. T$ \ - );and
7 h% w2 A4 `) z Q - (progn1 j* M7 ^/ f y8 p/ \
- (set_tile "error" "Invalid height.")5 ]: D; r1 e! g0 Y# c( L$ S
- (mode_tile "text_hgt" 2)
/ F% d8 B/ g" ]- v0 z& R- | - (setq flag nil);
1 [2 ~0 h5 l+ @- i0 H - );progn then
* [& m' ~! G) j& K5 x' m - );if
8 D: }5 g5 C |4 b: p3 E' W - (if (and flag
8 h; ?9 z8 d, q0 A v - (= 1 (logand 1 eflag))3 s7 o$ [6 Y0 q$ R$ l
- (not (or (<= 0 (distof (get_tile "poly_wid")))
" H, L) q: B+ r3 _: `# A - (= "" (get_tile "poly_wid"))
6 a% b/ H& d* D - );or
; U4 Y1 u$ a. m! { - );not% F t: p7 ? O6 p7 S1 X
- );and5 d( H* u* ` |5 ?
- (progn7 ^8 h5 f# }6 y9 s( X ^
- (set_tile "error" "Invalid width.")# ?" v: \: i% r- ~- |
- (mode_tile "poly_wid" 2)
3 y1 \" T# U. u. p# ` - (setq flag nil)3 m8 m. [: ?) H/ ~ B
- );progn then6 o" f& z& S) j" f ]
- );if $ b$ Y) o/ T$ `" K% }: T
- (if (and flag r0 ]* H# I4 h% F0 l! q" b
- (= 1 (logand 1 eflag))
3 u" e" i0 B+ e. `$ W - (not (or (distof (get_tile "poly_elev"))
$ o7 Q+ ]: J8 [( U0 f& Z - (= "" (get_tile "poly_elev"))
2 N( [) e9 M5 u4 J' o9 Q4 C - );or- L' R8 u6 M P+ ?- v: b
- );not
4 t9 ?+ c+ R" d - );and
0 m1 |: {" `& ^, I. w - (progn. r! A2 D# E' }8 n: q
- (set_tile "error" "Invalid elevation.")
+ i G `' V: u, \2 H& s0 d - (mode_tile "poly_elev" 2)
1 @8 k: H: Z D, U- A6 J0 ]# R z - (setq flag nil)$ _. p& L' F* s0 \; ?( {4 M- c# {! g
- );progn then! G; g: Q/ }$ Y5 e( T* D
- );if % o0 v! w7 V" U5 a/ l7 n3 S
- (if flag ; T% H3 ^' w+ o4 S
- (done_dialog 1)7 Y L# V8 \9 Z) ?; M" U
- );if
& w2 q2 O, U* Q, i - );defun test-main-ok
% ~/ [% Y3 X7 D1 ?/ o, j2 f3 q+ s - ' r' u) P0 J! r+ J7 `# v
- ;;
3 @5 E- e7 h4 m# o# ]9 A; u+ z - ;; A color function used by getlayer.0 h4 Z3 M2 w0 N9 t
- ;;
( a7 ?2 Z" j0 a( N+ e8 L - (defun colorname (colnum), p) W: |' [5 L( R: L K3 L
- (setq cn (abs colnum))
& ^) |, ?" M' v$ Y. J& E F- x/ | - (cond ((= cn 1) "red")* m; f3 {/ k+ C$ c, [# |
- ((= cn 2) "yellow")
2 ^1 E+ G" c9 k( _, g1 p8 ^8 I - ((= cn 3) "green")
3 Q* M) |3 w, ^7 i5 R, U - ((= cn 4) "cyan"). a5 N$ T2 [4 h1 }& O/ Q
- ((= cn 5) "blue")7 C0 [7 }6 M( Q8 r
- ((= cn 6) "magenta")0 Y' t; h; N: t2 Y! r
- ((= cn 7) "white"); u: G) M3 i6 V- v
- (T (itoa cn)). A+ @2 O. s3 N% x$ L7 }2 ^3 n
- )
# ^2 f- J" f% `) ~ F: f - );defun% D {4 j ?) l
- * Q4 R! `2 z" q
- ;;; Construct layer and ltype lists and initialize all3 q1 T7 Z2 L2 x( T3 G
- ;;; program variables:% B% F9 ^8 Y! j M$ V9 {4 ?' i
9 W6 e9 _( ^3 `- ; (makelaylists) ; layer list - laynmlst) U) P# k2 n8 a8 Q; W
, e; O: T; Y7 F' v- 2 B! b, M! W& c* `9 Q, J: O$ ?! ?% M
- (makeltlists) ; linetype lists - ltnmlst, mdashlist: B6 H, V+ [4 r0 S' j9 ?9 ~
; T' |: ]% L+ i1 W- ;; Find the property values of the selection set.
: a `. C1 Z( u/ S3 c - ;; (getprops ss) returns a list of properties from6 D7 p8 W+ u- e
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
2 I6 q; U. M( i3 {; { - 7 a8 \+ y* d& x' c: [4 P2 B
- (setq proplist (getprops ss));@rk interesting things happen here$ ^; l! O# w) A; {5 P1 `3 u5 p
- 9 |7 |% y) n* G7 D2 G4 m% t2 _( j
- (setq
7 d- G: I, l6 r L, a) P - ecolor (car proplist), v7 Q8 u% f/ l" [
- eltype (nth 1 proplist)
; O; F0 _; H) Y) N9 o - elayer (nth 2 proplist)
2 F( S4 L: C& a. T2 [6 K - ethickness (nth 3 proplist)
7 p& x( g. y5 E8 L# E - eltscale (nth 4 proplist)
7 g7 ~9 E3 O# i9 j - ewidth (nth 5 proplist)
1 s0 t0 A* O- S9 _" B1 P1 ?. K7 h3 L5 c - eelevation (nth 6 proplist)8 C5 c4 @9 e2 h H$ T. W
- eheight (nth 7 proplist)4 g9 G: J9 D+ Q7 z, H
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
, w- C7 R, |/ b - eflag (nth 8 proplist)
! M0 ?8 h4 {7 e, ^4 q- W - estyle (nth 9 proplist)3 \* t( W( \8 C3 [& S
- poly_ss (nth 10 proplist)
6 F/ r Y" A4 @; h9 q - txt_ss (nth 11 proplist)
K; Z/ [6 Y4 g- m7 G6 F/ r" i/ P - );setq
/ n/ N+ v6 I6 z% E
. f& H4 ^8 b; f- ;; Find index of linetype, and layer lists
0 y0 K- t' M, ^' M" Z0 q. G - (cond
7 t X( c- H; @4 x/ V: f" r* ^! h - ((= eltype "Varies") (setq lt-idx nil))
6 @) x2 D; Y" k9 ^# g - ((= eltype "BYLAYER")1 K$ T$ ^: p9 [! H. A
- (setq lt-idx (getindex "BYLAYER" ltnmlst))); O9 i- W7 ^1 N5 V7 C4 G
- ((= eltype "BYBLOCK")
+ ?2 J% Y! r/ a7 ]( k - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
* W n/ |( N8 g" }1 H! t - (T (setq lt-idx (getindex eltype ltnmlst)))# ^4 v7 A- Y& N) e& U& m/ l
- ) C1 N/ l# A/ ^0 u5 r! q9 q" @
- (if (= elayer "Varies")& g/ q- s+ n$ r8 h( s
- (setq lay-idx nil)
9 v6 p, f7 N/ j1 ] - (setq lay-idx (getindex elayer laynmlst))
) e* ^ Y' z9 x1 S& c - );if8 L9 f* E3 L$ @% t/ G
- (if (= ethickness "")8 X. M+ Z3 s% s
- (setq ethickness nil)! Y, d* C5 l4 L; X) v) i! `- {
- );if
" N! Y: U3 ]- x; q% I" u9 I6 G - (if (= eltscale "")
, ?! E/ d4 r2 | - (setq eltscale nil)9 M: Q8 r# e: h
- );if- [* I; d+ l2 s+ z3 x
/ H# p% k! c5 S( A- );defun ddchprop2_init ; end (ddchprop2_init)
8 b& a9 K9 G' j N2 ], ^1 \# ~
# V: X) c. Z) f- ;;; (ddchprop2_select)
. W! q4 o. h8 H2 q# p7 v5 t# t - ;;;
4 s6 B" G7 C) u; h0 b/ o - ;;; Aquires selection set for DDCHPROP2, in one of three ways:: u" i: E! e3 b8 w4 K0 X" h
- ;;;
. a& g# Q- T5 S/ J - ;;; 1 - Autoselected.
8 l$ N5 ?2 I* ^: p( a( [1 S+ A$ B - ;;; 2 - Prompted for.
! z3 n2 C- o+ i; I - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
% [% o$ t+ l/ x0 O' G. h - ;;;( |8 [+ f) f% p3 U
- ;;; The (ddchprop2_select) function also sets the value of the
) i# t# _" {" z4 q% O6 b/ G# y: |+ Q - ;;; global symbol AI_SELTYPE to one of the above three values to$ H7 l# A/ T0 r. o6 V
- ;;; indicate the method thru which the entity was aquired., s+ H& C* v9 v* ^2 E
- $ Z7 i# [$ d6 i$ s2 V1 `& n3 R
1 k9 r" `7 R, s- (defun ddchprop2_select ( / ); G' A+ P/ [- h( S
- ~" Y7 p- g8 ?7 f* y4 J- & r. c) |7 f; s, A+ K& N8 M& ^
- ;returns only entities in ss that are in the current space.
3 T, _% F7 V5 X/ ?' e! T- U5 H' \ - (defun ss_in_current_space ( ss / a cur_space ss2)
1 X, i+ `5 u0 F) y' l/ U' [$ `( N D
$ b0 u1 ?( a7 L- @- (if ss
& e; ?& \5 \0 N/ H" v- ?! O Q5 j - (progn
9 l" d) s" `3 j' a+ Z/ u# o - (if (and (equal (getvar "tilemode") 0)9 o; m n6 q! x
- (equal (getvar "cvport") 1)
$ N8 k a7 _* D0 T, D. ~ - );and / B% i) _! X$ [5 ^2 T( u
- (setq cur_space 1);then paper space is where we are.) I# Y* {( B+ X+ S. S$ { Z
- (setq cur_space 0);else model space.
5 \6 k* G1 W" A' @8 j b$ A! D: I - );if1 _* X. y2 r1 {9 x
- (command "_.select" ss "")# x; P7 P) Z9 \6 `' v/ e5 g; w
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq' m$ {% d, F5 T7 D# u0 i
- (cond ;;;;;tell the user what's going on.
5 V1 @7 d& [- Q* u3 D' } - ((not ss2) (princ "\nNo objects found in current space."))# _$ H: P3 {. N
- ((not (equal (sslength ss) (sslength ss2)))2 p3 L# a2 j1 Y$ K# C
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
$ T6 Y$ q/ p$ \; f: ~; E: J0 X6 Y7 B - " object(s) were not in current space."
3 O+ X/ {+ ~ ^8 j. O - ), D+ g1 ~% M$ T
- )$ Y; K4 C% F5 E+ @1 R/ r
- )
$ H" J& ^: b _5 Z. {7 r! @ - );cond
1 t& \, ~, s( U( e* z$ r0 y) h - );progn then
& V: B) p. A) I - );if
6 V; L8 Z7 w& I" t. o! M - ss2
: S2 Z8 s( b, j# L8 l' Z! h - );defun ss_in_current_space5 S. k/ |% x2 y3 \
- - f3 Q; ]! b1 n5 ?3 i6 `8 K
) t: a) ^2 i+ Z; B$ s; i' w- ;;;begin the work of ddchprop2_select
; }1 \' m1 V9 H7 _ -
! r |7 a: p. L) y2 c2 Y+ {6 E - ;; temporarily restore original highlight setting.2 t8 |8 \/ e9 {' `
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))6 \+ A- l( d r* u6 i# H9 g
- (cond
8 p, ^& K) D% ^: ~ - ((and ss % Z$ d# }" W( M$ |; s+ @4 b
- (eq (type ss) 'pickset)# g4 K4 [: @* C6 m! A' h: q0 _0 n
- ) ; selection set passed to0 Q7 k. A, k9 ~ [8 v
- (cond ; (ddchprop2) as argument- C: x, G+ X2 Q
- ((not (zerop (sslength ss))) ; If not empty, then `3 C- \" N: E1 N0 Y2 w2 D
- (setq ai_seltype 3) ; then return pickset.
4 b& M* |3 H1 P+ W* _ - (ai_return ss)$ z4 Z$ D8 c) H i* g6 G+ R
- )4 i( H4 H7 y+ |/ ~
- );cond close
) n0 J8 |# p( R& O3 E7 _- y- a - );cond #11 t2 S7 s# e+ ?& w, W4 m# M
- ((setq ss (ai_aselect))) ; Use current selection" k3 q) g3 J$ X- S u
- ; set or prompt for objects0 v7 E4 ~+ X4 {4 w" \
- (T (princ "\nNothing selected.")- p8 ]& X( a: r; ?& U
- (ai_return nil)6 j, E. ` P1 A F. s; K
- )
5 H. i/ B Y0 V3 x - );cond close
7 \: H. P* }( S ?/ @! J - (b_restore_sysvars)
% B& O5 t' E3 D$ a
' _: n* S- R4 Q9 `, x" Y$ \- ;(if ss# c: \( i( ~. Q5 K' E+ ?# Z9 n0 l
- ; (setq ss (ss_remove_locked ss))
/ U) ]; o9 R0 M4 b! U* z+ E- g - ;);if9 H( f! g: x0 J+ c( k! F
- (if ss
o, G( J+ `3 @6 G, T4 V6 |- H - (setq ss (ss_in_current_space ss))
8 \% I8 i j0 o4 z) N3 e M+ F - );if4 U: j9 o) \% |1 b; q
9 _* K6 Q% L: G* C- ss. e4 y7 f& L3 y6 q
- );defun ddchprop2_select
$ l0 R! M3 f7 ~& Z& N6 h9 i - % Q% o1 e3 j: u/ O3 x0 s
" p& K8 K2 J- h! z- ;;; Define command function.8 P. i8 ^( @5 p
- (defun C:CCH ()& ?6 n% K( v; C) z0 ^
- (ddchprop2 nil)# ?% a; B& k0 v) c+ G1 e
- (princ)" m! z- D9 b# p7 [: u
- );defun, c5 c2 S& S; u/ O& J
- ! ]4 z' Q( c3 H( r
9 r u9 H8 `8 E; e- ;;; Main program function - callable as a subroutine.4 w+ V4 d' p5 u* k$ U7 s3 e+ |$ i
- ;;;8 X1 _" d5 i! f h5 w( r6 ^
- ;;; (ddchprop2 <pickset> )
% u6 q+ y: a' p" E& w - ;;;
. h a% G4 e. x2 w3 [9 N2 S+ F6 F - ;;; <pickset> is the selection set of objects to be changed.4 U$ j+ k, }2 E8 B
- ;;;
# Q! Y6 T( E+ }) o - ;;; If <pickset> is nil, then the current selection set is$ e* `6 T( Y$ r ]+ W4 z/ F6 x
- ;;; aquired, if one exists. Otherwise, the user is prompted# ~+ e, u6 G2 Q- ]7 h- o
- ;;; to select the objects to be changed.3 x9 P/ Z, P' U9 R0 B2 E7 |
- ;;;
. P( } u0 F/ [7 W - ;;; Before (ddchprop2) can be called as a subroutine, it must2 U& [9 Q+ _' s
- ;;; be loaded first. It is up to the calling application to1 U$ x8 c8 }. [4 b6 u. K
- ;;; first determine this, and load it if necessary.) L7 \: R$ U3 {4 L( H" {) @
) v' [5 N5 E# s$ W- (defun ddchprop2 (ss /
7 P M2 o+ z0 w, L6 u
9 n( ]) H* `* Z8 N# a" ]3 E& \; P- a
, _3 w0 K& e2 w8 V) w - add-mdash3 T3 G/ D* b' `; n6 W$ @/ z( ]! Z
- assoclist
' v2 K7 }3 R6 S' G/ T- P$ e2 ~ - bit-70
8 C; \3 v3 h# |% o8 C4 n2 m - boxlength
. L5 I5 l1 s. m/ y, ~# r - bylayer-lt
3 ~1 K) X4 @8 e* y: k% t( _' @ - bylayer_col2 y. ^$ f9 s H+ ]
- bylayer_lt
( [) A) T$ f/ j1 A2 m3 U - call_chp2
) S: N2 N* V) d' u - chk-col
! }2 ]) M% b4 g" E0 B - ;chk-etype ;var removed by rk ( m& P$ W& I% ~- e# q, x
- chk-lay * O9 q* e5 ^9 \ _, m
- chk-lt
- ~2 W0 e- B z% }8 r - chk-lts ;var added by rk
* _ J0 m) Z& N! \% H9 W- w - chk-th0 z& F/ j. K R4 C) c' P
- cmd) y1 A4 k) m- |6 j
- cmdecho6 r: t8 g( D0 E: A
- cn# U; f$ y" T7 C+ O& f" `
- cnum
( g9 k/ ?; R4 o8 A - col-idx
8 K( O$ U# V3 f8 t! R- s0 } - col_def
' I, q: K6 y: s; J H% A! j - col_tile
' l F9 S% t! n1 T# o - colname+ c7 k+ E2 c- ?! m' E
- colnum
1 Z1 E q4 G2 L - color% Q% a5 L! E; s* c0 C# Z
- colorname) r7 A- H9 p" V6 N# E5 I2 p
- cvpname% k2 [* }2 f h% t. T
- dash+ I1 M( Q* ~) l3 D7 b6 _/ [
- dashdata" f; o( a d$ B( ^. G
- dashlist
; r/ k2 @ T! Y1 I - dashsize. w2 P# z: H3 `/ t u4 T
- dcl_id
& l7 V4 w2 I' L9 o) V9 B( ^( H - ddchprop-err9 D3 D, h2 z& w0 k6 @
- drawpattern
: A4 ?* n3 ^2 l( r - ecolor9 T- h% u; b: T( B9 W2 B
- eelevation# L2 i/ o% S& O) d. b0 R
- eflag
3 y- G2 c& p( r7 S: e$ { B - eheight
! n2 z8 x& C1 Z/ a2 g - elayer
' k+ m( `: b, J$ \5 t7 _7 R - elevation5 V# s- Q7 v1 p* g& l5 G
- elist
1 a' Q- N7 i9 A - eltscale, w6 S" \- `( C: I- S
- eltype9 C% v3 [$ Y# i, A
- en, k5 y- }1 N( V, | R; `8 B" Z
- ename
" F/ i- S w4 O) b, o m - ESTYLE ;var added by rk
; u+ u7 W# o& e) | - ethickness
i6 w: D* \' t2 Z) o2 v: I - ;etype ;var removed by rk- ], J* a; z5 v1 Y
- ewidth4 O! Q0 s- m1 C' }1 Z% y% z- f
- fchk
( X/ P2 \2 W) [9 Z, Z - frozth4 g \7 Z C0 A( i9 M9 b
- fx
& {) k: F, F# g6 W% B4 i/ G* w3 y - getcolor* z7 x) o B- j$ B* |
- GETELEVATION ;function added by rk
+ g7 Q, R4 O9 |& W - GETHEIGHT ;function added by rk/ d! a* y* V# ]3 S/ C4 Y
- getindex9 N6 S* s* K& E- c C
- getlayer
& f, J4 S' [) v - ;get_locked_layers ;function added and then removed by rk 5 a: ?6 g; _$ ]% G: f" T
- getltype A0 [6 e" _1 C$ G4 k. r
- getprops
9 X% E7 R; w$ X9 `& t - getscale ;function added by rk+ [9 X% ^" D$ R8 g1 E! `3 D
- GETSTYLE ;function added by rk1 q/ s/ ^" i& Z8 k
- getthickness
4 u. ?+ z4 U. H. A! L S# m1 O# y - GETWIDTH ;function added by rk
; t: z6 Z7 j2 e3 ^ - globals- x, _6 z5 \+ O" f1 g' k- i" A9 G
- HAIR_STYLE_LIST ;var added by rk
+ A6 z- I3 A# O/ j! ~/ K$ H% c - height
, Z1 D0 n) u7 j4 a1 q - index) p8 M! N9 Y) {8 h" K4 h/ b
- item" P( q) N& W0 o2 [ b% ~
- item1
2 R. T7 `; ~( K8 `1 q - item22 W7 o5 T2 t- K, ~- S) a' y% w
- itemlist
: z, C! I P" R d: v: E - lay-idx& ~- [! V! i# V7 O
- layedit_act# U" p& I/ N! E9 D
- layer
0 r' `& ~! H9 q - layinfo
* I. M! M, A/ U! U# r. d - laylist
3 M/ H) `# i# X: |( } - laylist_act
. o; p% X. M1 ?" a. ]# ? - layname: y: h! M/ X y( f
- laynmlst
* G5 I, T) ^; o6 s$ Y- d - layvalue
; H: y, z! o1 ~. l8 D0 O' K: x; z - linetype2 c; N/ H7 ]' j! [
- list1
6 x5 }. w7 A t8 V - longlist
; \# N( _9 f# d3 J) M - lt-idx5 h+ I9 A2 [0 ^
- ltabstr
$ f0 g3 n7 v+ ^1 H/ @- P/ x! t* O& \* c - ltedit_act
6 ^% t( G( I: _+ E - ltidx
4 K! K! n( E9 k, T; y w" j - ltlist3 ^. X+ i1 M' _! j5 ?8 D
- ltlist1* s: Z$ _ m) P9 P+ O9 D
- ltlist_act1 ?+ ^/ C8 F+ g3 J: X
- ltname$ s2 S5 \5 {/ ?. V7 E* w
- ltnmlst
+ E' B6 q& ~8 x3 j/ q5 @- D+ K - ltvalue
% x9 @1 w& K! v/ M. n. I& W7 x - ltype3 {: T! Y1 [. O
- m' l X& A1 k! T2 M* h
- makelaylists' b U+ ^& U" K! V+ M
- makeltlists
2 m; @4 J7 L3 _2 c! J+ r - match-col0 \. q a# i! J, O5 R8 Q' o8 h/ ], R
- ;match-etype ;function removed by rk
- W. V, a8 {7 i1 \( I- ` - match-in
) o( L; v& P/ p. `$ `4 q, } - match-lay
3 k1 u, B0 n/ c' u - match-lt& }& {0 O. H9 l v& W+ N
- match-lts
2 I8 V9 k+ I3 ^% l. ] - match-th
8 I6 N& B0 Y) ?6 D4 { - match_col5 q' K( f# F. K: T. s
- mdashlist6 ^2 L* m; A4 V; v
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk; O' x) ]" i' j/ C, @/ l
- n
. N2 F/ Y5 o5 `, d3 j - name7 M! t8 ]! C$ B5 c
- ncolor0 x3 e+ e; g7 T
- nlayer% n& V7 T" a$ K/ V( p
- nltype0 h6 E5 w6 W1 d) w
- nthickness! U9 z! ~7 `3 H- ^1 w
- off
" ]; X9 X" g; Y! _' L7 c$ S8 K - old-idx. E& X3 [8 W7 Z* I6 v. f% d- a
- olderr
5 {. U9 ?& m6 P w! P |" i - on& k3 j6 F) s+ j7 _) }2 j& Q# B
- onoff+ m& J) C, q9 i0 H: W# V
- patlist
4 D( q' x- w6 f* m; a - pattern
! g' G% D8 g9 b6 c- p4 n3 ` - PL_WIDTH_GETTER ;function added by rk
! R) r E& a4 L - POLY_SS ;var added by rk
# u# j3 w7 [& Z2 Z S$ Z' p5 ] - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
) y8 S5 g6 _" c - proplist8 ^+ m- c3 m; _- ^
- reset-lay% J9 V4 ^* o) h# d$ G* ^5 G
- reset-lt
4 R. P, ?* Y3 P# [, n - s
5 A/ t" E i" Y - selset
1 J' W1 I+ v6 g# r: P. f1 R - set_col_tile
3 a0 }, q& D+ P% h9 l - sortlist
# @$ C7 g/ r( c m/ L! H4 n" x/ G - ss" s; K5 [. L9 c: m/ L: n e
- ss_in_current_space ;function add by rk.
5 e# v' o- N5 M; W: C, o3 m- b - ss-index
: s1 x5 |) @" N! |1 G/ P% D - ss-length7 F$ I9 C2 h" a( ~5 K1 b% S
- ;ss_remove_locked ;function added and then removed by rk.
( ]6 t! l# S1 Q+ a8 { - sslen
1 F: u5 j7 K0 b3 e5 E/ h2 |$ N - temp_color
- b- S0 R* } n, J ] - templist5 N D* @ @- `) O
- test-main-ok8 G a0 ` ?5 [& t- E Q
- test-ok
8 W5 B. |" j, K; a - testidx) r+ H5 J. n6 Y0 {3 b: f
- testlay
" k! Z3 {; W4 Q! U' U - th-value7 y" A6 z7 U- `1 v) P
- thickness& ]5 q5 }- m- C9 J3 `& q8 @
- tile% l8 y% N( ]' o# h+ k( z
- tile_rect% J! k7 e. S) [' m) N! _, l: x
- tilemode' {/ y% a) P& }* S
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk( J0 J. q% O( ^. M2 f
- TXT_SS ;var added by rk
4 K$ u0 e. z% W% ~8 Z0 R& K - ;undo_init ;removed by rk.# K8 w$ a N. Q6 U' r
- vi
8 p* f# a6 P) g: u7 }; M1 o% c( C - vpf" g" E) W9 B; F7 R9 J
- vpldata' C: f! P/ w2 J8 |
- vpn
/ ^; Y( l/ ?. z# L, n - which_tiles3 r4 U; ^/ V, `3 Q
- width
. P% \: X* }! I& B$ R0 n' { - x6 C8 ^/ Q9 d- T8 S5 {6 C
- x1& p3 V5 S. H- j# q3 y# O2 o& j/ f
- x2
6 j; Y4 G' j# b& Q" Y2 b. y - xdlist; \$ S2 A$ V K7 V, x- w1 @
- y
# c9 D2 r1 _* r! o0 {& P- O - y13 D. S; @5 _0 q. R& ?
- y2: B4 K2 ^) x7 ^ p2 f( `
- )/ f% E0 o& z$ X7 b& Y
$ R1 q( \* K" X6 b7 f5 p- (if (and (not init_bonus_error)
' j3 X* ~* |1 F' h - (equal -1 (load "ac_bonus.lsp" -1))
( z6 b5 ~* F4 \+ F - );and6 R, v7 c7 w4 R' u
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))" _- U- w$ M: \5 V
- );if) c% |. a4 k2 J8 v2 e7 B
- (init_bonus_error (list5 ] V0 U3 u& q7 d
- (list "cmdecho" 0
* Y% M7 ?( k0 R - "highlight" 0) G2 |& q9 u, |( S
- "regenmode" 1# D' }: t; Q: T1 [# E* _# D
- "ucsicon" 0
5 z7 `6 @7 y- [) P% J - )
, T+ `+ A5 T& `" R$ D - T ;flag. True means use undo for error clean up. 9 X6 ^4 f- Q* t- d0 v2 r
- );list 9 K! n6 }& B/ M, C5 B
- );init_bonus_error
4 H& S. g3 ^8 b - , D2 o- V9 {0 V& G+ k5 O4 M
- (cond
2 K5 e3 |& t7 l# |5 b9 Y- M! R1 t - ( (not (ai_notrans))) ; Not transparent?
3 u- ^8 o9 S7 ~6 U - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?! }( M N: V9 s
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded? o. f6 M; A9 C2 g, M
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
2 L- x! p- t# Q1 f3 i5 s+ \% e - (t ; y1 o/ u: T$ P( B! W( x2 v+ v! R2 G! U
- ;(ai_undo_push)
7 T7 M: f6 O ^# C! B - (ddchprop2_init) ; Everything's cool,
3 ?! Q1 h1 n$ U# s" E; C* r! N, \ - (call_chp2) ; so proceed!
) |- I" L8 P \! V - ;(ai_undo_pop)
5 c# M- i3 C1 n( ]; n0 J - )
1 w" a; r* c& }4 a, d$ |" {( W - );cond close& }# W; f3 t3 c: K, K5 B" I
1 K, }( c4 C l2 B0 k) j- (restore_old_error)5 L5 S2 K; l1 r4 a
6 k3 {1 g. s: x, w- (princ)$ e7 R/ `8 c/ U, K+ C/ v! |
- );defun ddchprop2
: u3 v1 h4 g9 K' y- ~& F - ' E1 N3 Y9 @( p- I
- ;;;----------------------------------------------------------------------------
. X8 w$ ]9 C/ l: [( X+ d' T - * C6 l7 @/ [. z/ N. o
- (princ " EXCHPROP loaded.")' Q( b: e8 m* J+ n2 R
- (princ)
( E6 q4 V) y" H- z" x* I- a - ) o! N% S; m5 f( K) k- t
- ;;;----------------------------------------------------------------------------- _- \' d; z( D
- ;;;---------------------------------DDCOLOR_LSP--------------------------------% }+ `6 v% e* G5 V% F
- ;;;----------------------------------------------------------------------------9 d1 d |& N Y* d7 g% d6 {
0 Q0 `$ S! L( v- ; Next available MSG number is 24
' Y! o; t& O; X# I - ; MODULE_ID DDCOLOR_LSP_ [) X( N% t+ x& y& F. B. g1 n
- ;;;; J# F; e( P5 @ d! r* m4 u
- ;;; ddcolor.lsp# u9 m: [4 Y( M: {1 h5 ^
- ;;;
; A8 q5 S3 M2 B& ? - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
0 T; l) K1 ^. V5 R - ;;;
2 c/ C( o/ g+ W% t% Y b% Q, ?: D - ;;; Permission to use, copy, modify, and distribute this software# P* D" N- }, t0 O8 @% U
- ;;; for any purpose and without fee is hereby granted, provided5 J0 t+ ~: o% Z% P0 Q
- ;;; that the above copyright notice appears in all copies and
5 |( g" O* C& w - ;;; that both that copyright notice and the limited warranty and. t' X* ?# r, E/ } I
- ;;; restricted rights notice below appear in all supporting
, d* T. n6 k& U3 g$ |0 i - ;;; documentation.$ Q0 O5 J8 f2 r. q
- ;;;! n, k8 i( } W/ J0 e# Y; P/ R
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.( o7 L% M3 u: s$ E: J1 _
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF) v4 L* q& Q1 w
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
* f0 ]$ w$ `; k* T - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
! V# t/ F/ I Q h7 ^ - ;;; UNINTERRUPTED OR ERROR FREE.3 |3 N9 J( R+ ~9 f. R9 F6 C
- ;;;
( y1 J; v. S8 I. \! ]! x$ h - ;;; Use, duplication, or disclosure by the U.S. Government is subject to# o$ Y; B& G- i/ i( W0 J- U
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer- F- Y/ f0 B0 ? _' t! d& W) c5 y
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 6 D' b4 A; g5 a$ H- V4 D9 F
- ;;; (Rights in Technical Data and Computer Software), as applicable.. S. t# \5 V+ s) A+ R* K
- ;;;, d2 o& ~9 g0 h1 ^' [$ i! I, j
- ;;;.
8 T; i7 x+ J9 e2 K5 J, u - ;;;6 _1 A- G+ E1 }; r
- ;;;----------------------------------------------------------------------------6 ?% N( H* w9 ]" n. X, l2 ^1 [: u1 z+ U
- ;;; DESCRIPTION( ^2 `. T- P3 J; E- c+ q5 I
- ;;;
3 Y+ X6 L: Q+ }- K5 Z - ;;; Chromatic Pallete style color selection dialog.2 I/ [. v. Z2 ~# `
- ;;;
4 O4 x l( E/ L9 [8 C' \ - ;;; Globals:
& W+ o( `; P- C5 r- Q - ;;; 3 @) X, i5 L" `2 G+ \- p1 H/ Z
- ;;; chroma_color - Integer color index. The last value selected
. B+ m7 L! p" b% v - ;;; by the user in chroma dialog. It is not cleared or reset' @. O7 ~( w* D) q! b) L. n
- ;;; by a cancel. Only used for communication between callback
4 w0 n! {3 `5 X* m" O - ;;; functions and the (chroma) funciton.2 ^: i; g! `. V! n% D: P
- ;;;
9 M( o1 C# L6 y# Y; Y" w - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
0 ` F$ A4 f2 C7 H @ - ;;;
2 V3 q" Q+ L" P* H& f/ L" U - ;;;+ A8 }% i2 r; m( s- e+ o: A; x
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma 6 W2 V- d2 R$ T6 x% \3 u% n" p
- ;;; pallete style color selector.$ S" H( s. x W8 _+ b$ E2 c
- ;;;
# L4 n! V/ X- T4 f; A - ;;; ===========================================================================' H: K+ |: I8 m1 f& j2 ^5 S0 k2 T
- ;;; ===================== load-time error checking ============================
3 n& J7 E8 f" F$ z - ;;;: V! L# i* D; w& V
: @% k/ V- B2 Z( i1 w4 V- (defun ai_abort (app msg)7 b8 R- n# f4 O B7 c! S
- (defun *error* (s)
4 {5 a3 ?* S$ v+ _: q6 q- q% F - (if old_error (setq *error* old_error))
- R3 f/ x! Y. m7 {6 o1 e8 X$ A - (princ), i% C7 a* M* B F; g: Z
- )8 {* ~/ L5 I' v7 W e8 W% f3 s9 \
- (if msg
. K& m" h; I6 s& u A* F7 X7 e - (alert (strcat " Application error: "
2 E* s+ A5 m* X3 `5 l( q! v3 s - app
# ~ I) x9 w" d+ ]& l1 l" }6 b - " \n\n "+ [: I* _' U' h4 a9 M
- msg0 \. x7 h! b% E9 d
- " \n"2 L* t: J" i1 [7 l
- )
8 j3 c6 n8 P- v( D7 F1 _ - )
# R+ ]1 Z9 h# {" m/ P! h# g7 L - )
7 P0 r! |* }, Y, a8 d/ } - (exit)
0 W) T! K! K' l+ V- j, O( c9 e+ ^ - )/ { ^" t% i) a: W) W; T
0 ?3 r0 c8 u1 J1 D2 a/ L& i- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,$ {& G) \6 Y! Y: |) k' y8 |
- ;;; and then try to load it.
0 k* y, ?! `' T0 t. \9 c3 P - ;;;
( C) z3 X2 G6 k( k& Z' Q, ^" K: q! X - ;;; If it can't be found or it can't be loaded, then abort the3 u, B1 ~ K1 i
- ;;; loading of this file immediately, preserving the (autoload)
+ R1 X! M- [5 G/ Z. x3 }& q - ;;; stub function.
3 J# R7 v% Q7 d0 n$ T8 c: `, [ - - c; u$ ]9 p& o$ F/ |4 W4 | z# H
- (cond& E3 G; w5 e( [+ w
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded. b3 t# O5 R- Q6 o* c" L# c- y
( j# k# |5 T. `; H5 E4 M! o- ( (not (findfile "ai_utils.lsp")) ; find it
: W4 u# @* y0 f$ U - (ai_abort "DDCOLOR"6 h3 H5 o5 s) }, M J+ _! J. e! K; l
- (strcat "Can't locate file AI_UTILS.LSP."
9 P1 R* ]6 I. k - "\n Check support directory.")))
% @) {& y* M/ [; n5 R - 1 ~% P- b$ U% H* g N( T
- ( (eq "failed" (load "ai_utils" "failed")) ; load it3 e$ r( F( V! j5 s$ ?
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
( k3 i M: A" ?/ d. g( A- T - )
\1 h2 X% N/ \3 e6 ?7 j - ' d8 m" u. u9 S3 ~& x
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP+ o" a7 a3 \1 P4 n
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses* h# o- |& V& U0 Q' Y% c- D- k
- ) ; ai_abort's alert box dialog.
) q/ L4 J( u- V# p2 ^ - * Y; E" O. \' G# h8 d2 n( k
- ;;; ==================== end load-time operations ===========================& R9 O8 E2 t. P2 x+ U
. y. V5 J" c! z$ z' G6 W9 \3 ^( I- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)4 R$ ?) m' j+ S
- 7 s J! @8 Q5 a0 x, U) U0 A3 ?
- ;; Main Color function, called by setup code.
# |2 W8 @: L' {$ D4 d8 Y - (defun ddcolor_main()% y5 b* u- k6 G* r) i( a, z
- $ e- i3 e9 k5 K' ]$ W n1 X
- (graphscr)
! V1 Q* U s3 O$ g( | x) } -
, q# e/ P' ?8 t+ E - ;; Get the color of the current layer, for possible BYLAYER color swatch.
. h, x% S, x2 b" b0 j6 m0 w - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))3 Z, \6 i/ f+ f( W0 z
- & A1 J5 E+ K. ?# N, J
- ;; Call the dialog here...
: G* T0 k* K; S; u. {0 g" ~ - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))& K' Z3 @- {1 r% e+ o# h
- ! ^# x) f( u. e
- (if clr
; |$ c% ]3 P& b. o2 C' w! T - (setvar "CECOLOR" (citocs clr)))
; f: x0 A6 `/ I1 F- c - )% {+ o B' b0 I
' }9 M1 L, \: i5 o [- ;;;4 g- E% H# o( s7 m# Y
- ;;; CSTOCI -- Color string to color index4 F+ u Y2 o- F/ d0 M8 T9 L
- ;;; Convert an arbitrary case string into a color index. _% l' Q& H9 L& R
- ;;; Returns nil if string is not a valid color.& o8 }5 ?9 P6 h t
- ;;;
8 l/ y9 v+ z7 q8 ~ - (defun cstoci (str)% \0 ]# e. v# ^1 Y9 s
- (setq str (strcase str))
. k$ t' I' [+ g) O. i - (cond( j; Z6 q3 H4 u2 q) D- p
- ((= str "RED") 1): X. c \- v8 B( x* O5 C7 q' b% y" H
- ((= str "YELLOW") 2)
* G1 a. x/ V; A. Y4 @ - ((= str "GREEN") 3)
3 S+ \* v# B$ n - ((= str "CYAN") 4)
7 H8 Q* V- |: O+ R3 Y' S - ((= str "BLUE") 5)
$ a( ?5 h: h$ o' i$ l; U - ((= str "MAGENTA") 6), C, [8 V/ D4 Q4 f4 s- _
- ((= str "WHITE") 7)
+ I1 L3 k& k: P! r! r - ((= str "BYLAYER") 256)
& h6 k8 d! x9 I4 E5 K - ((= str "BYBLOCK") 0): \1 W- W6 w0 W2 A, C. x
- ((= str "BY LAYER") 256)
% O1 p9 a/ u- I- \+ D' Z - ((= str "BY BLOCK") 0)
& T( J2 X0 \3 Y$ C. V o" M - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
/ F& E$ \0 W% a& }: ~# f& W4 a - (nil))( Y. x" v9 f5 c, h
- )
: U0 t# a5 J. v' w( y4 K - 0 T1 |- s2 s7 j
X: k y) W/ N: n* y- ;;;
8 H/ U& ~9 K' L) G1 c - ;;; CITOCS -- Convert color index into standard color name." w- Y/ D* j8 o& {' s9 d* M
- ;;; Will return the standard and logical color names as text
5 V) p1 o" G2 z - ;;; strings. Returns nil for out-of-range color indicies.- c$ ]9 k8 s: r
- ;;;
! Y/ I; b- f$ Q5 X# r - (defun citocs(i)
' J3 S* x6 s6 m& p2 ~7 ? - (cond+ K) P" {1 D0 w0 ^- O, |. f7 r C
- ((= i 0) "BYBLOCK")
( ]2 |( _* S2 t - ((= i 1) "red")
) }, o" S8 R! Q0 \/ U - ((= i 2) "yellow")
7 G& p; u# R' a, w9 y) H9 A$ p - ((= i 3) "green") w4 v6 }% p. O: t6 F
- ((= i 4) "cyan")6 {, t) d( i" g" t
- ((= i 5) "blue")0 C$ c9 F: w7 i3 U
- ((= i 6) "magenta")
, P" n' W, n' j - ((= i 7) "white")
, ?/ x+ ^* ?1 W- A2 D - ((= i 256) "BYLAYER")
8 c$ a) a( w" ?% g - ((and (< 0 i) (> 256 i)) (itoa i))
/ J9 w. u0 y( w1 q$ F) V- b - (nil))
5 |6 e3 y7 J, n, K- N - )
' p+ |/ F/ ^! E2 @$ R - # P6 ~' |; e0 W% `% N9 b7 _* I6 J
- ;; Start of ddcolor
, r( `$ @1 h$ F, d' T; p, j - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
8 V# e+ [" |3 h' a. O/ u - old_error *error* ; save current error function( b6 Y8 Y% Y# H$ f
- *error* ai_error ; new error function7 f2 Q2 i0 J3 L$ ?
- )9 s& [) k5 L% W1 `- X1 }& V
- T% a& A4 A9 j1 F; t! h( Q
- (setvar "cmdecho" 0)
& D! l; ~( e$ t& ?# @3 b g
1 M. J. ~4 L. Z3 Y- (cond
0 b9 [ b7 o8 X - ( (not (ai_trans))) ; transparent OK
1 [5 Y! ]5 o" K1 s$ ~# R q - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
8 ^4 e7 i: J- p
: [: f5 ?3 m+ m9 l* ^- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))/ E; B9 i/ }4 a- t# w
- (/= 8 (logand 8 (getvar "cmdactive"))). u( y# \+ Q$ x6 p! Q
- )0 i, C0 S$ j6 I* n+ I: ]/ {- M
- (ai_undo_push)' n9 p8 N3 o4 u$ g/ K. L" b
- )
2 s! @8 e- y: ?% r6 Z) q- l( p
" ?; O; ?$ G) F" C- (ddcolor_main) ; proceed!
+ n% d! g$ ^. F2 N/ P - 4 s% _, @ B3 F
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))9 q1 m R, H+ y Y7 ~5 e6 K6 L
- (/= 8 (logand 8 (getvar "cmdactive")))/ W: B* C5 o" ?# i) Y! g- ]5 M
- )% [0 r, c# p0 Q0 \
- (ai_undo_pop)+ n5 I/ {0 j3 D! K% X q
- )
# U8 U; i0 ^( ?1 h - )
/ _1 f+ m* M7 u T, H# i: f - )- }" i% w! B1 d4 b
- . g: F7 ]7 ~, a
- (setq *error* old_error) # I; G" q9 n+ P- |( i- F
- (setvar "cmdecho" old_cmd)
; V' P1 f6 T3 u8 H0 P - (princ)2 R/ r* ~8 \3 K4 p; ^
( M2 o6 \& B: v9 h' ^4 h8 U( F- )
: U k8 U4 J& {2 t7 K0 i
2 ^, q! N2 d; H% ]. K! I" Q$ U- ;;;----------------------------------------------------------------------------$ b d/ N2 S( J/ q2 ~, J
1 `1 m) z' T g, m- @2 g$ b5 F. y- (princ " DDCOLOR loaded. ")$ _) J- l5 b% m5 F+ @" P# Q# A
- (princ)
0 e% J* Y, _+ [1 ^2 p
8 u" k5 t+ I% }6 a- ;;;--------------------------------------------------------------------------;
0 q3 `* h% z) ?! ? - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;$ L- |3 `& v* q
- ;;;--------------------------------------------------------------------------;( z0 b1 R r; q$ q+ ]
- ;;; ssx.lsp7 I7 ]2 K! m" C# h) U
- ;;; Copyright (C) 1990 by Autodesk, Inc.+ g6 p3 A4 W3 p+ d, X" }
- ;;; Copyright (C) 1991 by Control Systems, Inc.
) `" D# M T, ` - ;;;
) N' c [7 A3 a/ J - ;;; Permission to use, copy, modify, and distribute this software and its
4 s# Y6 h: K. O+ Q g) Q5 D4 ? - ;;; documentation for any purpose and without fee is hereby granted.
; I! F" H% o5 o5 e+ @9 T2 l - ;;;/ a* s) d8 o* r1 t" g
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.$ j9 a. h: T1 n$ W7 W5 S
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF! ^: l" S! o7 B+ Q3 b9 q
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
$ l5 [, T. s5 I" _- b# w3 q& g - ;;;
- r9 H: J; e+ x+ _( |& i - ;;; Larry Knott Version 2.0 7/18/88$ Y6 S' t$ _+ ~ G! N& j+ R
- ;;; Carl Bethea & Jan S. Yoder Version 3.0
4 E9 P" w" P8 j# [ - ;;; Enhancements to (ssx).
6 m, r. M0 [$ s" b+ K4 G! S' z5 S* I - ;;; 15 March 1990
" h' n! ]% m6 E& o4 R - ;;;' O, A+ z) n/ u( h+ Z% `6 B
- ;;; ARTIST Software, Inc Version 4.0 December 1991( Z0 f" c7 v" C, C9 ?6 c" b
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,1 a G) E0 I+ n& ~
- ;;; use Flexicon menus( R* \+ W- L3 `" ~% Z; E0 w
- ;;;9 r' Y7 S% O" h$ H: f' H
- ;;;--------------------------------------------------------------------------;
7 b/ G2 _! u6 \0 Q- t- e - ;;; DESCRIPTION E. w, p, W. ^# V4 P9 e: L
- ;;; SSX.LSP
$ _$ R+ r: b/ `" G6 g - ;;; ' ^( g$ i8 v; y: p1 n8 l9 Q; |& N
- ;;; "(SSX)" - Easy SSGET filter routine. 3 {) T8 _7 U0 q; c/ {2 e: P6 C, ]
- ;;; ' d$ m5 d, b" A% f6 {
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
) _/ ], R+ l# C6 g - ;;; to create a "previous" selection set or type "(SSX)" in response to ' ]5 Y' f2 u: K: V( I- Q1 K' {
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
9 M7 D1 [# ~& J4 w& Z1 Q1 H' J - ;;; entities and "(R)" to remove entities from a selection set during
5 L4 K. H+ k" u$ j2 V5 C# L+ k - ;;; object selection. More than one filter criteria can be used at a 8 s: N! V% Q( m! L* n- I6 s& T: p
- ;;; time. 3 \, _0 a" O: v/ m4 W# k5 P
- ;;;
: w# U6 h$ Q0 |) q: a - ;;; SSX returns a selection set either exactly like a selected
/ H4 L3 G; k/ w2 f - ;;; entity or, by adjusting the filter list, similar to it.
0 n; V2 s% x0 C, x- B - ;;;
; r1 k7 P3 L/ J# g5 I. E, J1 G - ;;; The initial prompt is this:
% r3 j) u0 {4 F - ;;; " [6 s- G3 e2 ^3 w3 O
- ;;; Command: ssx8 O* M+ F6 l0 u: a0 z
- ;;; Select object/<None>: (RETURN)7 t7 b+ M. ]4 D7 A: g2 h; u8 N
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
6 B! K) F' C4 t; U% b9 i! u - ;;; / Z" r5 [2 w/ U0 E7 g
- ;;; Pressing RETURN at the initial prompt gives you a null selection
2 O* `5 C8 H$ r! a) v } - ;;; mechanism just as (ssx) did in Release 10, but you may select an 9 }. _3 g3 @9 M: b% k6 Q( v
- ;;; entity if you desire. If you do so, then the list of valid types
, b) ~, Y# H5 E, }/ q - ;;; allowed by (ssget "x") are presented on the command line.
. C, B$ j& x' b6 A" O - ;;; , j- ~, L3 k: q* y
- ;;; Select object/<None>: (a LINE selected)( D3 t# Y4 H1 \0 l0 O3 h- Q
- ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) - R/ o4 y$ W' x( }. }; p4 ?5 D8 v3 M
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
* H5 X0 W U* y' n- W2 ] - ;;;
# }8 Q$ o; i5 e - ;;; At this point any of these filters may be removed by selecting the
3 T! N; _* t1 v- Q - ;;; option keyword, then pressing RETURN.
* ^! `1 ]3 P' Z* M7 Y - ;;;
) J, U# b7 d# R, T& g - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)2 F h; l1 S ]5 P" U& z, }; T
- ;;; 5 @$ |$ C6 g) `8 q% l
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))2 t/ T0 y# W# [. m1 A
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: - d' }! T* C6 d
- ;;; 9 L" l" E" m' l7 S* I
- ;;; If an item exists in the filter list and you elect to add a new item, 7 g4 ^" E% A7 f- Q4 B
- ;;; the old value is overwritten by the new value, as you can have only 7 [/ {0 ]* g S6 I* n" b7 k
- ;;; one of each type in a single (ssget "x") call.
( x+ w# a9 }! x# q1 A - ;;;1 b0 Z: \- m" U, s* @; r4 U& p
- ;;;--------------------------------------------------------------------------;+ @# ~- L4 v) k& q& a+ E' u- u
- ;;;
4 n1 [2 k- J3 J; n- f - ;;; Find the dotted pairs that are valid filters for ssget
. C" q7 z( s' A0 g3 p: F" ?# f8 Y - ;;; in entity named "ent".' W O6 s3 s" Z. E
- ;;;- z) z6 v6 W! J8 F; ~! j6 M' p" q
- ;;; ssx_fe == SSX_Find_Entity
/ E& ~' w) \# b; [3 q) w - ;;;5 U$ p3 ?% v. z' t. P4 X1 R, S
- (defun ssx_fe (/ x data fltr ent)6 c- ~' g: N# }
- (if (and (= flexvar 1)(/= t2 "Pick"))
* e, P" J( ] V, @7 D - (setq ent nil)# F8 U# ~1 T+ o; g, E7 T' c
- (setq ent (car (entsel "\nSelect object/<None>: ")))1 Q5 D) _+ k& p6 I& K/ k2 ~" G
- )' ]7 n% `( j5 Y1 X# P" b5 Q4 T
- (if ent8 k/ b4 Y7 c: R( ]: b" a5 V
- (progn+ E: V4 [( @$ q6 o
- (setq data (entget ent)); g: X* o6 r8 A/ W
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38# E# q3 q( \+ N0 }
- (if (assoc x data)/ ^/ R( w) @# B
- (setq fltr 4 G/ W! w/ {) b0 Q9 p$ A
- (cons (assoc x data) fltr)
b# x3 J7 }; d - )9 p% h0 y) r" D$ d
- )4 u: J5 w% \' K6 Z$ u' k/ f
- )
& _, T) x2 Z9 S. m7 {4 o - (reverse fltr)% j+ f# z7 w0 L4 I! C
- )8 O" Z; \( c& P' h1 E6 A: `
- ) # P i0 F! W5 K: l1 P
- )
) y3 T+ n5 ?* K( N. C - ;;;' K$ }6 }" q i8 l! @$ ~; Y6 a8 R
- ;;; Remove "element" from "alist".
% l" a7 ~) q7 Z4 X. Z - ;;;
9 Z) o4 J# }. C9 {# O1 g/ ~ - ;;; ssx_re == SSX_Remove_Element8 f- \4 ^$ f! l, a1 @- N
- ;;;6 w/ E8 k' @; Y0 c" h; Y
- (defun ssx_re (element alist)
7 S4 R# e6 r/ A2 {) H - (append
^! p0 V6 e% U% [/ B, J; v - (reverse (cdr (member element (reverse alist))))
8 u q& `4 r' e2 \, [9 L - (cdr (member element alist)) 5 U0 V; Y9 h/ {# z. [0 _& K! A8 Q9 l
- )
/ \9 t7 t- \( d3 F3 A) e - )1 u$ a; Y9 R Z0 V7 i
- ;;;
9 i8 ^. C9 p* y2 c. Q+ @$ W! j - ;;; INTERNAL ERROR HANDLER 4 F7 u2 V8 p& E- N
- ;;;
9 @' e+ U1 W1 h# Y, p1 Y# Y - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs& N5 _( s0 U! {! ]1 P8 `5 _, n
- ; while this command is active...4 T# K* n( B8 o& P1 J8 y, o6 b
- (if (/= s "Function cancelled")$ R. Z! V6 {4 H
- (princ (strcat "\nError: " s))
/ Z1 }) L6 y' j3 C - ), r" X4 l6 @) q7 M) E; L' |! e* e+ s
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
2 L5 h" E7 O% w( c8 y% Q - (setq flexvar 0)
( K- P0 G% S- f4 V; S2 } - (princ)
3 S: }4 L( V" ~+ V: `/ a - )
! ~, R6 @6 P1 k - ;;;3 a, _+ f8 D7 w' ~, A* |
- ;;; Flexicon call routine
8 d1 y6 w+ M% V' l5 z+ R$ h6 M; A - ;;;
2 V0 c8 R V! k' b$ [4 W3 M - (defun flexmnu (a)
! h* d! z4 }; H, Q" w" F; G6 F \) o - (if (= flexvar 1)
( b7 P8 d+ Z' y' ~ - (command "FLEXICON" (strcat "FLEX" a))5 a: a, K* g I- ^7 {* [; N
- )
0 V# V3 V: K9 W! [$ G# G - )0 z$ c2 z; Y; j; O) t
- , n7 _# T/ Z- i% v* P0 D! s
- ;;;
" Q: x. z' ^- d3 e6 z4 u - ;;; Get the filtered sel-set.
6 P" {0 i/ o" D" b5 A - ;;;
( l/ E9 A5 n( n" n - ;;;
; F$ n2 f) s7 M& B n7 J* I - (defun ssx (/ olderr)1 c" ^ \) w! `/ L! _3 t6 o
- (gc) ; close any sel-sets
' l' s- B5 U1 t/ V) x - (setq olderr *error* & E4 @6 `' C, N3 e c2 q. v# O6 T
- *error* ssx_er
' @5 n. A5 ?. b& t* z- } - )
2 r% m' h% G. j( c5 N( O, H! `& Q - (setq fltr (ssx_fe)) 8 k. X7 F& ~% k x5 Z# E* c
- (ssx_gf fltr)
' G. K" M3 O- h$ E2 j& D( W" j" p - (if (= flexvar 1)9 f: F* _# M/ r
- (progn# j3 _; V5 x5 C0 N3 f! V+ S
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
" v1 w" F* Z1 }5 z - (flexmnu "EDIT")
3 ^5 q* p' |! Q - )6 _# C) S2 ]3 i) T% O& P
- (command "p")
0 B M, {) R1 h8 c4 }9 r - )
3 E+ x5 v% \9 x; J; W; D - (princ)
& Q8 Z) g, h1 D, X - )
/ A% r) \+ @( F2 a - ;;;1 T5 H2 y4 w+ v* j
- ;;; Build the filter list up by picking, selecting an item to add,7 `. ?4 p- Q* @& F8 t5 j6 r6 D2 J) j
- ;;; or remove an item from the list by selecting it and pressing RETURN.
0 k) i1 }1 m4 p# F - ;;;" f7 W: t' G1 @; S. Z0 k( r6 G- |
- ;;; ssx_gf == SSX_Get_Filters+ m% Y$ c1 a0 L6 ~4 Y# e
- ;;;! l8 M# a) a ]% C" a" l, @$ y2 U5 `
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)& G( ~. E) o. M4 K5 n& x4 a
- (while ) x" G, I: a$ s$ p( |" P
- (progn
8 j8 ]0 C7 i. T. y( {! U! ? - (flexmnu "SSX")- z4 K1 R* z7 Y: q* G( @& q
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
1 ?8 S0 c$ A' G- C0 W n8 D. z - (initget
k" k) O# L: n - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")8 \# r9 R( z9 K8 \
- (setq t1 (getkword (strcat
+ O" z; K; n1 R/ N - "\n>>Block name/Color/Entity/Flag/"/ l' x- S) V6 Y* z
- "LAyer/LType/Pick/Style/Thickness/Vector: "))) + ?- ~3 V, a( }6 d/ p3 V7 F
- )3 B2 _0 d. D7 x$ d% F2 ^4 H4 h$ ?
- (setq t2
8 c; {& i+ x. C, b - (cond
; t4 o9 I* L% F - ((eq t1 "Block") 2) ((eq t1 "Color") 62); z: Q/ x7 v8 [% r$ W
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
N( }) {- g) }3 J/ `' u% S - ((eq t1 "LType") 6) ((eq t1 "Style") 7)
6 A* Y2 X% z' N: F3 l/ j4 ~2 \ - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
- }$ a6 P5 f" E - ((eq t1 "Vector") 210)- ~+ e2 e) ?. m9 U1 P
- (T t1)# T v! a2 o; ~3 o# k: E' J
- )& N, b! p) J% `& e- H' K& R" o, t
- )" H6 `2 V- x* E5 z6 d) f& x4 d
- (setq t34 Y# x4 m) v' v, C8 P u- Q
- (cond
$ ~; a1 F$ L& j* J" q, }# ^ - ((= t2 2)
' V0 N4 U+ p3 w3 e1 P - (if (= flexvar gtads 1)
9 \+ ]5 [" G& [ - (progn
, u/ X* M/ r9 T1 y2 v/ O - (prompt "\n>>Block name to add/<RETURN to remove>: ")
- N& r6 Z1 W( }. `' u0 |3 b - (gttable "BLOCK")
( Q/ C H4 W3 ^" N2 [( E! f" I - )
4 g% `6 x8 E: m1 `1 J - (getstring "\n>>Block name to add/<RETURN to remove>: ")
9 x3 I9 F6 I9 j+ r4 A - )1 K# J6 ?8 M* Y$ Y
- ). V$ n! t% S( O+ |1 `
- ((= t2 62) (initget 4 "?"); O6 q W; S& ]. m5 m2 |# l6 P
- (cond
s: E1 }0 Y5 T3 X - ((or (eq (setq t3 (getint
v/ ^9 Y$ v" q7 n4 P - "\n>>Color number to add/?/<RETURN to remove>: ")) "?") & Q9 W% G5 e" s
- (> t3 256))1 A3 C ]5 @+ r6 c$ q1 }, a' |
- (ssx_pc) ; Print color values.
0 w6 I0 O* [7 B/ ^. P C$ ^! ] - nil
. k2 r' l3 ?( a n - )
. L4 _' I8 R' q& h4 D - (T3 F8 F: s- w9 [. h1 U
- t3 ; Return t3.
" k+ c% d% |. x# o, E' C - )
# F8 a) |- A- ^/ M4 h( T - )# `# x# c' \7 O
- )
, b7 q- D4 D0 R6 H E. x; `$ T - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
& Q9 S2 X1 f U7 O' J0 t - ((= t2 8)0 F3 ]; p/ l8 O' I3 X
- (if (= flexvar gtads 1)
7 h5 o. n, s$ X- k. U6 S1 ` - (progn
$ P2 T1 L' @* t. k4 ?7 s! G& S - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
+ k* P+ a- h5 ^0 @7 C d* @; t - (gttable "LAYER")* Z' o7 f9 |% d$ e" D0 n
- )
8 v" g# Z6 j9 R1 g/ s0 G) X7 | - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
1 q/ z0 _# g* `; C - )
/ n# ^, t- W+ I - )
9 i/ r) ~/ x+ n - ((= t2 6) / Z% c2 W; B) l
- (if (= flexvar gtads 1)0 H9 f* L# T r9 ^
- (progn
; [) E5 O, J# S# n3 J8 n. o; ~) p - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")8 L s; g/ p4 N! g) i
- (gttable "LTYPE")
3 {* y7 L: z3 i) f% V) g - )
6 B' ?8 o) I1 |- h, X, V - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")6 y3 t2 w; S2 t6 G, G" |$ O
- )# \9 V+ y M: l p
- )
& c) M; l1 q9 R4 i9 t - ((= t2 7)
5 T+ d0 M$ T& C" F! b - (if (= flexvar gtads 1)
( }! p. o6 c5 N8 o' p4 _: v9 L1 M - (progn2 W# V. E u9 z# _
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
) C2 ~9 h6 B+ g: r1 A - (gttable "STYLE")
9 V+ n; ~ m; _" [9 j - )
4 r9 ?% p) Y" @% Z- b - (getstring "\n>>Text style name to add/<RETURN to remove>: ")1 O7 k( t* e% \: L; I
- )
) u1 g. e3 u P$ |. D. V* O - )
* @( D/ _8 {6 d* i% D9 J$ d4 i - ((= t2 39)
2 I3 E: X- W; x - (prompt "\n>>Thickness to add/<RETURN to remove>: ")
7 [+ w2 K/ [0 r6 Q5 R! V7 e5 N0 t - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
) C$ _" g4 v+ R& O+ i3 h - ); r% G5 ]' h( v# _. X" P
- ((= t2 66) (if (assoc 66 f1) nil 1))3 t' u5 L- z$ I6 w' C
- ((= t2 210) 5 c b( z- Y; q" K3 d2 @
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")$ \" p- T9 E5 {. q r
- )
% U; _( |/ u9 i o7 f. d+ `; r% ? - (T nil)5 w" I/ T, k" V# i
- ), |" N j$ ?* e! v M6 H, D
- )
- d7 r$ ]! \: F; J( C4 v J' F - (cond
# E/ m6 v1 F, s7 ~1 w - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
0 r. n; w9 }0 e) J" `" m0 q' J - ((and f1 (assoc t2 f1)) ; already in the list. ~/ h: x4 `) G* R& r+ ?( ]/ `
- (if (and t3 (/= t3 ""))
9 I* B+ c) H3 K* N0 l7 J - ;; Replace with a new value...
5 Z1 p* h* `+ d - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
N q5 ?. C- O1 B2 T' s2 h, ] - ;; Remove it from filter list...$ X; | o+ W( e, l: J
- (setq f1 (ssx_re (assoc t2 f1) f1))
9 y! y" b: ]) k9 M - ) ( @! a$ R& {. G' f9 p. y
- )( [0 F9 }5 e( V# G9 H6 l6 i
- ((and t3 (/= t3 ""))
& t( b( l; _' e! V - (setq f1 (cons (cons t2 t3) f1))
: {# @5 o8 \8 W% D - )& M5 K! D1 Q3 K# Q4 Q
- (T nil)
7 G4 x4 v7 l8 Z$ Q7 h - )2 L3 f# i( x! f$ X' K5 V1 F: |# H! H
- )
# B P" H* ]4 b4 U7 l0 | - (if f1 (setq f2 (ssget "x" f1)))$ K- Q- M2 j+ _3 O: U8 a+ b
- (setq *error* olderr)
) J4 J% @" k' c6 b - (if (and f1 f2) $ c8 C8 b' F, R
- (progn
: X9 @4 W' O% x) x* v - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
, `% G% `1 ?7 S" [7 b - f2
! N. B4 Y/ c% T - )
1 k7 T1 `, `- V7 Y: } - (progn (princ "\n0 found.") (prin1)); c" C8 C# z/ t* W) h. P8 o; \! D
- )4 B9 z. C e' Q0 N0 B/ Y' O
- )5 ? Z' ~3 P2 c! D) c6 @
- ;;;: f2 m6 s N, N" {
- ;;; Print the standard color assignments.
! K) @2 c& a9 y' L& ?2 p - ;;;( p3 e2 g( F2 }2 U
- ;;;' ^. h7 {6 a j0 W0 `+ R0 Q
- (defun ssx_pc ()3 a9 x. Y7 u, b9 @5 T. ~8 f
- (if textpage (textpage) (textscr))
' \/ A# r* `6 F# } - (princ "\n ")
( C6 a) _2 r9 u4 v/ M" |1 P4 f - (princ "\n Color number | Standard meaning ")
' X4 w0 E* P. e% K3 ^ - (princ "\n ________________|____________________")+ J! Q& R7 {8 H5 m0 m O
- (princ "\n | ")1 v9 m3 o0 f7 I- T8 k
- (princ "\n 0 | <BYBLOCK> ")
7 G/ `% w u& _, p$ o" Y - (princ "\n 1 | Red ")! s! J) U% _& F% [1 v9 i
- (princ "\n 2 | Yellow "); B) G9 c# k6 g n
- (princ "\n 3 | Green ")# m+ [. { R! ?5 W- T# }0 _
- (princ "\n 4 | Cyan ")* T: j$ c: ~6 q1 R# x
- (princ "\n 5 | Blue ")
2 q n( W8 C+ F5 v$ S+ }# H - (princ "\n 6 | Magenta ")
- D& h& i4 r9 V$ h3 c3 T3 w4 b/ p - (princ "\n 7 | White ")- x5 s2 y3 s" A- B* e
- (princ "\n 8...255 | -Varies- ")# P& i; c1 k2 `5 U/ ~
- (princ "\n 256 | <BYLAYER> ")
. e& `8 z c. }9 H - (princ "\n \n\n\n")$ `9 s# w' b6 S
- )
+ p$ ?' |! d H& Z- u5 A2 ?. z5 H - ;;;
7 o! Z& Z- u9 x" q" z. |/ d N$ f2 S) y - ;;; C: function definition.5 e" R D5 _9 j
- ;;;- u) \ R/ R! t: ~9 {
- (defun c:ssx () (ssx)(princ)) ^3 D( W; J u% E- t4 w' S2 F/ R8 l" A
- (princ "\n\tType \"ssx\" at a Command: prompt or ")* k2 l4 V0 Z# ]1 C5 `& w7 g' j4 _
- (princ "\n\t(ssx) at any object selection prompt. ")
9 n; o5 e( t6 W, Z K, o - (princ)- ~9 ~+ s9 g$ a
7 y5 f! C3 H* H% C, ^4 {- ;;;--------------------------------------------------------------------------;+ Y$ j& d4 M3 W: Q& {9 }
- ;;;--------------------------------------------------------------------------;7 e# V# X) R+ I) ]& |
- ;;;--------------------------------------------------------------------------;' X0 Q* E, v) b/ A! e# p3 w( G$ m
- (defun S::STARTUP ()' V6 c7 A2 t2 q% i; t9 l1 }: y
- (setvar "cmdecho" 0)' ^. p( U- K5 D; y
- (setvar "cmdecho" 1)
- ?, i1 ^) I! X3 L% g, ^ - (setvar "LTSCALE" 10)6 g7 T" T* ]4 ?9 _4 o' K8 K
# l& k2 O& k2 C! ?4 ?9 c% h* B- ;(command "_load" "chenKH.fas")
% i" B0 H4 k% \0 H - ;(command "_load" "ctcot.fas")
# M# K9 I& M _5 r6 @5 |- T - ;(command "_load" "damdoc.fas")3 ?# }1 t3 U2 y' v- j* d
- ;(command "_load" "ghichu.fas")
J; u$ _" B3 s - ;(command "_load" "hamtutao.lsp")4 Y) B$ ^- x1 g' u
- ;(command "_load" "KHOITAO.fas")
+ z4 H7 A) T' @% m: W/ G - ;(command "_load" "KHthep.fas")5 [6 b2 S! a1 f
- ;(command "_load" "mbmong.dcl")* k8 x5 I3 W8 [- a
- ;(command "_load" "mbmong.fas")
$ o: A+ S0 x2 e - ;(command "_load" "mccot.fas")
3 h' Y1 p4 Z4 j' A; L& R' `5 X - ;(command "_load" "mcdam.fas"), K( k& T- y( ]: ]6 R
- ;(command "_load" "mcmong1.dcl")
, A' y `* { u- Q# x; W - ;(command "_load" "mcmong1.fas")
4 }# M3 k6 Z' _' L: F - ;(command "_load" "mcmong2.dcl")5 V5 W" I5 T- b' H( D
- ;(command "_load" "mcmong2.fas")
# ]$ M# b% O0 z- G - ;(command "_load" "mcmong3.dcl"); E' o3 g* |; B7 k6 E
- ;(command "_load" "mcmong3.fas"). m5 @$ ~! R- {9 J/ J+ X! K
- ;(command "_load" "mcsan.fas")
3 q6 D# X( r( _4 H% X) R4 ^ - ;(command "_load" "thepdai.fas")
" |9 H/ v* \$ g) A: l8 Z7 ]) D - ;(command "_load" "thepdoc.fas")
/ M" |0 l0 r0 D; F - ;(command "_load" "thepmb.fas")
. ~2 B2 C/ x# r8 z) ] - ;(command "_load" "thepphbo.fas")
- Y$ F5 ?7 \ C! t7 c1 i - (command "_script" "thongso.scr")" T7 ?6 P& H! u: O. U6 B
- ;(command "_load" "thongso1.dcl")
4 ?- t) y. h5 } - ;(command "_load" "thongso1.fas"), _; j9 L) @1 j% [. ]
- ;(command "_load" "thongso2.dcl")
. q9 i4 R9 E: @) X, k# C8 u - ;(command "_load" "thongso2.fas")7 E; P1 a- V/ u1 a% `9 l/ ^
- ;(command "_load" "tietdien.fas")/ k" o7 X1 M8 s
- ;(command "_load" "vehan.fas")! I: |' W3 ^/ e- B5 U; L0 `2 O
- (command "_load" "phamDuy782006_TKT.lsp")! S+ v) f% w Z" x5 ?( S* q" T
- (command "_load" "phamduy782006ganhtd.lsp")
$ t3 \) @6 {3 E: S - (command "_load" "phamduy782006ganhtds.lsp")
+ G+ n/ J% V& U, _3 A9 J - (command "_load" "phamduy782006htd.dcl")* Z* z5 h& t7 S, H) c
- (princ)
. h: o# q: M& x - )$ Y; ~6 w5 a4 N3 h* X+ `
9 a2 R2 y ^% m0 b& k- ;; Silent load. b3 C) L- Y* h+ o6 n$ l# v
- (princ)
& `" ?. C4 j9 _2 i% G- V" l
2 I; d- x& H# J1 l/ q
* }7 j# l, c* S a) g: V- ;; Silent load for the Express Tools.
) n m! j L' i" ` - ;; Altering this line will affect Express Tools functionality
7 z% f+ W* s6 Q7 v- {" z - (load "acettest.fas" (princ))
* w3 a7 V# k2 `6 |4 z7 C- B - �32
Sao chép mã
7 O4 a7 ~+ M: z" [5 v: Q00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ4 f0 Q$ Z/ B3 E. K5 N& F
|
|