|
|
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 |
- ********************************************************************************- q! `: t3 ^& e$ }: Y3 T$ R
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
& v. `# {* u! Q& Z - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
a/ v) i! t8 @4 [2 u; z - * Suu tam & Soan *
. A+ U0 e0 {: ^- b j, _$ t# u4 I - ********************************************************************************
. p( L% W7 W: ^
$ S. f+ T9 B3 d" h; z( r- ; Next available MSG number is 1044 J1 \0 p5 R0 r) Y5 A' K1 @
- ; MODULE_ID ACAD2000doc_LSP_. m6 q( D; l- `, }/ A8 w
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000" K S% ^$ {( C1 x
- ;;;
/ m( A4 f" p* O( O; }) b - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
7 [% U( G- t. B& y - ;;;
: U( C: T. a% _9 V+ F - ;;; Permission to use, copy, modify, and distribute this software" J# W0 A, t( S3 J4 @
- ;;; for any purpose and without fee is hereby granted, provided
. m1 T7 Y! g# C" F; t" }4 k - ;;; that the above copyright notice appears in all copies and
3 s" R' A7 y$ N9 J: T/ { - ;;; that both that copyright notice and the limited warranty and
' c* w: v- B% W& f4 _) @( c8 V# { - ;;; restricted rights notice below appear in all supporting
; H: v' {) r8 q$ G- r - ;;; documentation.
k# D7 j1 }5 E# _5 q1 K/ q# v - ;;;, O' N, H5 I& M
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.4 Y% B# Q' y7 c& J$ ?
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
$ F; K# `; W0 s0 Y- J - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.2 X9 R7 ]5 o$ n& d/ p! A2 Y( a
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE% U; B8 ~5 H! D3 s$ D
- ;;; UNINTERRUPTED OR ERROR FREE.
8 s& z/ c; w: A) q6 r9 M - ;;;
/ O2 n, b. E: M - ;;; Use, duplication, or disclosure by the U.S. Government is subject to; Z% g; t9 d* B8 x2 B2 E
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
" |$ q& j t$ N - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 7 L. [+ S. v Y L# V) Q9 y
- ;;; (Rights in Technical Data and Computer Software), as applicable.
, n8 k7 E9 M+ q# V- \9 B* } - ;;;
# g f' E' c. r3 @1 _& _ - ;;;.; p( B& @" ~$ C0 W7 A
- ;;;
. b+ x) F5 x- v) j/ b - ;;; Note:( p# m; y7 ~* G1 @5 s2 Y( ]- M
- ;;; This file is loaded automatically by AutoCAD every time
0 n' J4 r, O- o4 h" M2 u0 j - ;;; a drawing is opened. It establishes an autoloader and: o/ F( N- E& Z' ^1 M' m
- ;;; other utility functions.
( j8 s" } u$ S+ J, \6 g: a - ;;;
% g3 ^6 `) n, W1 f* Q! [ - ;;; Globalization Note: 2 h6 d5 f/ g9 l) H2 P' c) l
- ;;; We do not support autoloading applications by the native . c% q* m8 W! O! V, z I
- ;;; language command call (e.g. with the leading underscore
, O- U5 D+ L& o5 q! N, O - ;;; mechanism.)
' y4 g3 R% ~4 j$ Y
8 H" O4 [1 {4 F; c1 R# k9 ^3 J" f- : c& J; {0 E, v7 O g9 F
- ;;;===== Raster Image Support for Clipboard Paste Special =====% [' q/ w2 d: {* o. B. Z/ Z6 r
- ;;
( F# m) i2 d/ m9 I M; X, B - ;; IMAGEFILE
& |6 z7 m( N5 ~: w - ;;+ O: S) X+ N" E7 [* Z5 e n
- ;; Allow the IMAGE command to accept an image file name without `! _, B2 n2 Q8 p
- ;; presenting the file dialog, even if filedia is on.
1 r5 N4 |. P/ V2 W! Y/ \/ a - ;; Example: (imagefile "c:/images/house.bmp")" V* p! x5 b9 c6 }6 M
- ;;
/ |7 J$ U1 K% H: o - (defun imagefile (filename / filedia-save cmdecho-save)
( l& z9 V; C5 [) R1 I! N - (setq filedia-save (getvar "FILEDIA"))
! b% R' K% F$ F/ |; R S% u - (setq cmdecho-save (getvar "CMDECHO"))- ]# i! }! I$ ~5 S
- (setvar "FILEDIA" 0)
5 z: a3 H; w4 \. a( _ - (setvar "CMDECHO" 0)# K6 V2 l* q7 j% b
- (command "_.-image" "_attach" filename)
; g, H, E* e0 B- n- n4 q2 E/ J6 t5 y - (setvar "FILEDIA" filedia-save)
+ H5 _) k2 ^4 Q7 ?' T9 @ w a% B - (setvar "CMDECHO" cmdecho-save): ]- A* \4 W1 P8 O! s9 {+ l" g
- (princ)( H- G/ A! z7 g+ s$ \3 ?+ ]- n) d( M
- )
+ U# a8 g- O* D8 I' p& s! L - / k3 c) l% E! ^8 C' I2 g7 q& n3 k U; _
- (defun c:zx () (command "zoom" ".5x"))9 H3 r- N. V4 \% _
- (defun c:zz () (command "zoom" "p"))
; j7 R& E0 M2 I0 t) O - (defun c:za () (command "zoom" "a"))
w1 }1 u0 X- W( ~7 s - (defun c:zd () (command "zoom" "d"))
( I8 a0 Q2 ]7 }, ]/ _; Q) h - (defun c:ze () (command "zoom" "e"))& h' P8 S) m# ~& b
- (defun c:zr () (command "zoom" "" ""))
M7 c* T5 p; Z2 L* D( Z - (defun c:vv () (command "ucs" "v"))
! H- T7 l9 o* s1 { - (defun c:co () (ssget) (command "copy" "p" "" "m"))
7 G) @6 y" d$ R0 N0 K+ u - (defun c:c () (command "circle"))7 N; i5 q. p( g
- (defun c:rt () (command "rotate")); P5 U% k* F+ F$ l
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
, w, y3 T; F3 L2 @ - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30")). T6 b; G1 @, M) A( b
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
' P6 u$ I+ ?1 y1 B% R - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))) z) E6 N5 u4 O2 i
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5")); ~0 c' i5 F6 d
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))5 [8 Y* l/ x9 _. q+ L
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))) a" y$ x# g$ a1 _) l
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
* \$ e4 g" H m - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))! g" O" {4 o2 W+ D k% U
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
; h1 C7 r( z/ ]4 }5 _. }. W0 K( i - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
' {5 D4 ^2 j: O7 ]& \ - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))' ?9 |3 F" [0 i4 y2 \/ P+ D& f
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
% q3 D* R6 ]+ Z2 p4 \; t! Q$ y" z
; t& @$ h+ x3 @1 J7 W- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)- u8 i0 O+ F1 g" d2 d
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)# I: A2 Z- x) O
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)9 L% o& Y1 z" \# V9 R# I6 {3 g+ z
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ) t% {- U4 N& G
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))2 {6 o: F8 e d" L( F
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))* J$ H4 h6 c" A1 d
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
9 {0 s( X2 y' H9 x
5 I2 |% l" [0 M& x3 ~6 e5 O- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))7 K. Y/ S1 K9 k
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))$ f# q/ d9 ~9 ^8 `! p) ?
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))& P4 a) J/ w7 A8 j1 E' }
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))2 ?& e" [4 k" W
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))( f6 O7 v. H+ t6 `
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
5 ~8 ?: M; R3 ?+ r' S
3 P) h+ X6 a ]$ g0 m' b! `- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
9 j+ q% |! K2 Y
! f" X8 y. f, q3 e0 j8 [8 ~6 _! K- ;free lisp by cadviet,cd2k44
% B) U. s% \4 J. c1 b! ] - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
4 H8 ~% \- H: k$ R* i% E, S+ _! F/ T - (defun c:FTEXT (/ ent tstyle )
: [* A+ s6 j& @& i' E& K/ n, G6 G5 Y - (command "undo" "be")
/ m+ Y9 x6 y' A3 a' Q - (setq ent (entsel "\n Pick text :"))
, A: W) ^0 `: M" J3 \" X4 f( X& o - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))" H* J% o& A* _: r
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")& e# E, R1 o2 F( Y0 Y1 T
- (setvar "TEXTSTYLE" Tstyle)5 Z( {- W* k% T, @5 S
- (command "undo" "end"): g3 {) }3 q7 o. U
- )& G) W: m, O1 [8 \' ^, {! M- Z
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)3 Y K. K H* ~3 K" ^
1 _. b7 k. a7 F, I. ?- ;free lisp by cadviet,cd2k442 q; p6 x2 [+ v) Q3 ?. O
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
$ G, U1 t" \; c- N: ~0 p+ Q - (defun c:Fvnh (/ ent tstyle )
; x+ n: H/ l( m: h5 Y - (command "undo" "be")# I5 h/ L7 P% u% ^
- (setq ent (entsel "\n Pick text :"))- L# Z6 u4 E' C- R! ^7 w* f/ C& O3 U
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
! e0 O1 `4 g9 Z3 d - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
+ M" a/ B/ o2 A8 F+ W - (setvar "TEXTSTYLE" Tstyle)
5 B. j% h/ r/ P, h& x% ^# A - (command "undo" "end")/ j: P! J7 Q$ X. H
- )8 K8 V2 ~! K. A/ T0 Q
- 7 J+ H2 I0 ^6 y$ v1 g5 q; Z
- ;free lisp by cadviet,cd2k44
. G4 p5 Y1 i( W- G6 |0 D - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538304 ?* X9 S( C3 D$ G4 g
- (defun c:Chbg (/ ent tstyle )5 r2 Z2 F, @# C4 B/ N
- (command "undo" "be")
, U9 Q8 T+ @: E0 p - (setq ent (entsel "\n Pick text :"))
$ n4 M& |2 _) k4 \. k! t% s - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
9 X+ P% i/ g' N! H- _5 I) E$ J: e - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")# ^' F* j. C# \$ |$ |
- (setvar "TEXTSTYLE" Tstyle)
4 x; ^9 V2 C' q: x& m5 N - (command "undo" "end")
4 m% V7 b9 G! M2 C - )$ v- w2 d3 p: Z9 e7 Z
! I9 x9 S @6 C8 l3 y- ;free lisp by cadviet,cd2k44
8 O1 @% q5 Q! x6 W# d6 `' d - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
3 Y( W- ]" M3 O3 O - (defun c:Chsm (/ ent tstyle )/ N' d$ ]- _/ y8 X8 m# O# S
- (command "undo" "be")
) o( \) H: v* u# X - (setq ent (entsel "\n Pick text :"))/ K! D9 y# ]9 w5 C; l& s) C1 n u
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
2 h: k/ Z- k g! O - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")1 C/ x& p. l2 ~ f
- (setvar "TEXTSTYLE" Tstyle)
b" ~% A; Y7 X - (command "undo" "end")
1 C) F& c8 f1 @# U - )4 V0 W5 h _) E! u' Y, J
0 P4 w% v; T+ L9 I- ;free lisp by cadviet,cd2k441 }6 L( z1 m: A5 X* D! [! J
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830! r0 q P4 E: ~0 o- P
- (defun c:Fttf (/ ent tstyle )
; u. u0 f' Q: y# B0 ~! p0 o3 v3 H - (command "undo" "be")
$ Y. s1 W) [ Q8 V4 q. V7 K - (setq ent (entsel "\n Pick text :"))
# H( V" I2 w& |3 N$ H! W4 W% } - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))6 P9 {" h$ b/ A6 g% i
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")- L. b. R+ {2 i, s& G1 |, E3 N
- (setvar "TEXTSTYLE" Tstyle)' V$ c4 f2 c5 x
- (command "undo" "end")
9 ]: u/ q/ v$ i. p- Y - )
! O9 J7 C' @# c3 @3 h9 t' V3 Q
# h& d% _ ~' t- ;;; ============================================* M! i _, m' U
- ;;;
* P- g) Y! O; t! J - ;;; LISP Creater Tao Duong Dan AUTOCAD2000! C! W8 C' v% s( [6 X
- ;;;
* D+ M9 T" S# I e% P: Y# U" k - ;;; ============================================6 P1 t/ W) F' B9 C/ @+ E3 a
f f! ]9 f5 L* o# l3 C- ;;; ============================================
6 w& {3 h6 H. j' Q8 j+ E - ;;;
' B8 T' Z; X. Y. { - ;;; CREATING FROM AUTOCAD2000
8 q& ?# w4 `) N5 j0 {# w7 ^ - ;;;
$ A) n2 j* |% b9 p5 w - ;;; ============================================
5 J$ \, f: o/ q; r
: ]& o R @8 b' S- (setvar "INSUNITS"4)
& p4 ]5 a2 `' }) U" T' M$ y# g - (setvar "ANGBASE"0)
5 j; a y- M7 c T! ^2 `1 @( X6 ~+ X - (setvar "ANGDIR"0)/ d2 p0 I6 j2 R, Y
- (setvar "AUNITS"0)
) m# D. M+ {- p( I2 S/ \1 [ - (setvar "AUPREC"8)
; k6 ~/ z+ c( b) m' \+ } - (setvar "LUNITS"2) g! R/ @4 D! H& g$ X: D
- (setvar "LUPREC"8)% S K5 `( q9 N {
- (setvar "ACADLSPASDOC"1)
5 ^: l4 {+ y6 F - (setvar "pickbox"5)9 ?. `" X( a( C) o( A/ m
- (setvar "blipmode"0)
. j: ]: q! Q0 n8 [ - (setvar "mirrtext"0) j8 u% v1 g) o6 u* J4 Q. \$ `
- (setvar "cursorsize"100)8 I8 {6 E o0 a
- (setvar "ZOOMFACTOR"75)
/ y- c* r' e% Y( q7 `, r6 d6 c2 s* Q - (setvar "LTSCALE" 10), d) s7 J- Z7 c" ^9 a& Y. O% F
- (setvar "lwunits"1)
' a- q) F+ z5 u: F% W' u - (setvar "DIMBLK" "Closed")
3 f- Q" B" [/ | - (setvar "DIMGAP"0.0693)
+ i# @- @4 g- S! F3 X; x - (setvar "DIMASZ"0.20)
) ?& U! m# z) i* e - (setvar "DIMCEN"0.2)4 l! k" e z, S) ~, p9 m
- (setvar "DIMDLI"0.1)
2 j2 l4 @( ^! L1 | - (setvar "DIMEXE"0.0693)% h B* c$ O0 U1 W. s
- (setvar "DIMEXO"0.25)
$ o2 Q" r% T, S m, m7 r - (setvar "DIMDEC"0)( z/ {" P7 \* Y c( s
- (setvar "DIMTIX" 1)
8 k- ~' i0 t9 c) A; |: A8 V4 u2 a - (setvar "DIMTXT" 0.099)
9 ^6 J. q1 c7 o! H( \- d* t/ J0 L - (setvar "DIMCLRT" 7)
: f3 h2 ?9 j }5 N( |& Y2 R - (setvar "DIMTVP" 1); z& }1 ~4 F, x
- (setvar "DIMJUST" 0)
. P+ i) D/ L( z. p m6 Z+ P - (setvar "DIMTIH" 0)
7 c4 m, E/ }) _& B% Q9 f5 p! f - (setvar "DIMTOFL" 1)
+ a3 }7 e( h8 |1 I; U0 Y' d2 M - (setvar "DIMSCALE" 1111.1111)2 d$ u3 u$ j5 ]8 M! n; h- {- {
3 a# J2 x \8 o6 s \+ b- & `* ^. z9 [' G1 a) J
- : e9 Y9 E! Y+ v
- (defun c:zp () (command "'.zoom" "p"))
t8 K- @% v9 o( t/ X - (defun c:zz () (command "'.zoom" "p"))6 z" _1 a. m0 z! k. n% Z- [; R4 ?
- (defun c:ze () (command "'.zoom" "e")); |3 H/ l7 E( k* p* i! s7 r1 P p
- (defun c:za () (command "'.zoom" "a"))7 C1 e, \- I. z8 k" |
- (defun c:zd () (command "'.zoom" "d"))# A& \; i" S' Q9 d+ C! `
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))6 ~: _$ ~/ ~; X' P5 I4 d
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))+ I! e) l9 o, V' [1 T
- (defun c:de () (command "ddedit")(princ))4 ^- F# ~3 v7 d- @# \) S- }
- (defun c:dda () (command "Dimaligned"))
+ k. E5 _0 f( I) \% ]0 l2 O - (defun c:ddb () (command "Dimabaseline")); R' K; L. _2 m6 O: W
- (defun c:ddc () (command "Dimcontinue"))
% d/ f+ F4 E0 Q+ @# h& a - (defun c:dde () (command "Dimtedit"))9 e; P0 j2 q; G# x
- (defun c:ddf () (command "Ddattdef"))7 P: k- s x# t0 v0 B7 ~9 l6 o
- (defun c:ddi () (command "Dimdiameter")), `4 |# t6 Q( t' Z
- (defun c:ddl () (command "Dimlinear")). j/ V6 }( c0 ^9 C& {9 V* x
- (defun c:ddn () (command "Dimangular"))
; z; X6 v1 K* ]) R; R4 l) ^ - (defun c:ddo () (command "Dimordinate"))5 _5 Y3 a; Q; X1 N$ O Z
- (defun c:ddr () (command "Dimradius"))# `" |9 i# }- W' i3 G% x
- (defun c:dds () (command "Dimstyle"))! x0 T4 k! R8 o; r3 \$ e0 s C3 n
! |' a( `8 Q8 Y- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
k( ]& S. Z/ |1 C - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
4 l h9 C4 ?, _) L - (defun c:UU () (command "dim1""update""all"))% M3 e6 i$ s$ \; q( @' \9 n
- (defun c:ded() (command "dim1""tedit"))3 U2 W$ W8 i6 Y/ F% D5 P* S! {
- (defun c:da () (command "dim1""ali"))# s+ I4 t7 g3 f' M s
- (defun c:dll() (command "dim1""l"))" c) {4 J( u5 R+ M
- (defun c:dan() (command "dim1""an"))
3 \$ B: }0 X* P: X/ [) i2 _ - (defun c:d1 () (command "dim1""ra"))
. b! }! {" Q* p - (defun c:n () (command "dim1""new"))# D! p z, x' R1 R% O/ L* b
- } Q, c! J$ _- (DEFUN C:PE () (COMMAND "PEDIT"))
; `% P2 g1 q5 s - (DEFUN C:PL () (COMMAND "PLINE"))
# ]! _# I; e1 x - (defun c:dd () (command "dist")(princ))
, a9 W3 l6 D; d$ ] - (defun c:w () (command "pedit" pause "w" "au")(princ))
" ]/ { P( y# F; O" P - (defun c:pg () (command "polygon" "polygon"))7 @. I6 j3 ]5 ~/ A! ^
- (defun c:el () (command "ellipse"))
4 s& y4 {" i0 q) ^9 K) U" q6 ? - (defun c:xe () (command "explode"))
/ P8 b( r: z V& Q9 C - (defun c:eex () (command "extrude"))
, j) ^$ ^. B( G: w6 p$ w1 Z) E - (defun c:xg () (command "xline""a"))
+ Q% o4 B$ q5 \- V - (defun c:xh () (command "xline""h"))
& @& T. E1 k1 L - (defun c:xv () (command "xline""v"))
3 B# }' @4 F& r; Z( J. O - 3 M6 H2 ]* C! m) O1 F
- (defun c:oc () (command "osnap""cen"))( ]- X! x( A! K3 [7 |- w. Z
- (defun c:od () (command "osnap""nod"))
, c2 a$ R6 [& P - (defun c:oe () (command "osnap""end"))* D: r2 g+ p+ h+ q0 \" c
- (defun c:oi () (command "osnap""int"))
0 y9 j+ ^: A8 [3 M - (defun c:or () (command "osnap""per"))+ P) a) c: J) ~) U+ h' y
- (defun c:on () (command "osnap""none"))8 [' ~& u( B" @/ Z
- (defun c:oq () (command "osnap""qua"))3 u. Z5 w0 T- ~& V- i1 t
- (defun c:om () (command "osnap""mid"))
$ ~6 M( P3 Q3 m& ?# U. f - (defun c:ot () (command "osnap""tan"))) v6 d6 W: N- Q& ^+ W
- (defun c:oin () (command "osnap""ins")): x: R; e6 o7 j
- (defun c:oa () (command "osnap""nea"))
$ B# F# f7 S/ w5 @) J - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))) i7 ~9 U; h9 C" Z0 g
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
8 w# A5 ? z0 { O' Q9 p1 C - ;(defun c:nn () (command "new" "y" ))- R/ q n% T4 i0 \5 m
; i- b% x) i9 Z7 Z2 b- (defun c:/ () (command "limits"))$ Z% |, ]: E. o
- (defun c:`1 () (command "region")), @( E! p2 j' g& L9 b8 A
- (defun c:`2 () (command "subtract"))1 N% K6 D) A+ W; ?! R8 U: d$ i
- (defun c:`3 () (command "union"))
! Y" F5 R/ A6 w) ] - (defun c:`4 () (command "intersect"))5 t& d& V! P8 _" Z% ?7 i+ Y! Q
- (defun c:`c () (command "cal"))
$ }. C3 j. k& F+ d4 J; j - (defun c:`g () (command "Polygon"))
1 Y) g" p% b$ `5 W
! z/ j X9 F* P: _. p- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))- c: F3 p0 g) K( H4 m/ i2 ~
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
2 F i& E" ^; L - (defun c:ip () (ssget) (command "print,_plot" ))(princ)( G/ O' r# M' {. H5 R y
- 1 y+ p2 j4 o: [0 k8 c
- (defun c:ddm () (command "ddlmodes" pause))
; `+ f5 A( T3 }* |" g
, w0 c4 P- G- u1 s' R E6 n% z# }5 ]- (defun c:sha () (command "shade" pause))
5 N: q4 R$ k% Z- \; n - 1 q! T% ]4 M/ p' P6 W$ A" d' g, O
- (defun c:sr1 () (command "surftab1" "p" "" pause))
I/ R% V7 r, s# D+ \# o ] - (defun c:sr2 () (command "surftab2" "p" "" pause))
" ~ b) _* f. |( }0 \' A6 }+ ^! i - 9 k* o: u$ t% I& V5 E
- (defun c:ad () (command "audit""y"))
+ f. K% v; s+ y# z( g& q - (defun c:q () (command "quit"))
) [6 [: t9 O& r: w- [4 B( w5 p - 6 j+ p) Q6 H, G8 Q; ~/ \
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
' }* R" O3 l6 c6 G# t/ ~ - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))) b6 T, H2 H+ k3 _& u5 C) O) `
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
9 w1 N8 |7 B3 J/ H$ l - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
) p9 {- |7 d8 Q6 N - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))( z( H. B1 [2 ^
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
# X o( t8 R ]& Z; r - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))2 [7 J4 z" e$ q: W) ^
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90")) h% w# T4 }- D7 M9 g& G
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))# [ V7 H( e* O- D# c
1 {6 U9 ]- x$ y- (defun c:u3 () (command "ucs""3"))
5 M: C6 S+ I* T2 f - (defun c:ue () (command "ucs""o""end"))
9 B: x/ A' o9 l - (defun c:ui () (command "ucs""o""int"))* w0 \$ `- i9 `- [2 A1 l
- (defun c:um () (command "ucs""o""mid")) K# u. K2 L: B" Y
- (defun c:uc () (command "ucs""o""cen"))
, k# l1 M! [5 y ]6 ]" Z0 e+ M - (defun c:uq () (command "ucs""o""qua"))* V$ @1 A- K; i* F' J
- (defun c:3s () (command "ucs""3"))
, T1 x" U9 B" ^" B - (defun c:sx () (command "ucs""s"))
6 Q+ V# {) B0 i/ u5 S/ n( S* X - (defun c:sf () (command "ucs""o"))
' ]1 M2 `8 `* f" u - (defun c:sz () (command "ucs""p"))) C) A0 G" m% C1 f9 m; ^/ }
- (defun c:sr () (command "ucs""r"))
- _5 c+ K0 ?: b3 y- I$ @. D, N; I - (defun c:sw () (command "ucs""w")), h4 c) }: x( w' b
- (defun c:fv () (command "ucs""v"))0 }6 P* k( h3 ^. {' D% c
- (defun c:ux () (command "ucs""x"))0 P, y D/ |2 K" d! ?, A" S& R. R
- (defun c:uux () (command "ucs""x""90"))
* \& G, t* x- y0 D - (defun c:xxu () (command "ucs""x""-90"))- d) E9 P% Q) Y
- (defun c:uy () (command "ucs""y"))( X2 P7 K, j! ]/ h
- (defun c:uuy () (command "ucs""y""90"))
' f$ O1 p; @; p( {! O% ^1 Y5 p/ N - (defun c:yyu () (command "ucs""y""-90"))1 `9 @9 b a `. R1 H
- (defun c:uz () (command "ucs""z"))* |8 ^7 d0 }# T& T0 O8 j6 J
- (defun c:uuz () (command "ucs""z""90"))
e$ U Y% O, v4 h - (defun c:zzu () (command "ucs""z""-90"))
) P% M0 j0 w3 Y7 _ - (defun c:uci () (command "ucsicon" "Properties" ))(princ)
2 w! p, Z( R+ C4 x - (defun c:ucm () (command "ucsman" ))(princ)
* w: F& I: g2 O8 Q) K - # `! R% ]: R/ G& E
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))* x+ }& a/ L: Z% ] M. F
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
+ \7 P$ G% }# l2 ? - (defun c:se () (command "vpoint""_non""1,1,1"))+ D3 G& t/ s/ c. B) \* o
- (defun c:sq () (command "vpoint""_non""-1,1,1"))% _( w( f1 j1 C+ j' B& {) `+ \
- (defun c:vc () (command "plan"""))
* A7 ?, ?% ^/ ~6 x; ?! y6 } - (defun c:vd () (command "dview""all"))
% _9 {. y8 r, n l I1 s
7 t$ ~9 F x* {6 g- (defun c:TT0 () (command "tilemode""0"))" e Q2 \9 o( Q- @5 D, U
- (defun c:TT1 () (command "tilemode""1")) J/ P' W; U' `! E
* {$ x* q& s- _% x3 ?! a, J/ E- (defun c:vt () (command "vpoint""_non""0,0,1"))
1 B7 H! D/ j b - (defun c:vb () (command "vpoint""_non""0,0,-1"))
+ l& d9 M# U, L! ]# z( y; F - (defun c:vl () (command "vpoint""_non""-1,0,0")): {+ B5 Q2 E, m
- (defun c:vr () (command "vpoint""_non""1,0,0"))
/ X/ W5 i9 J9 J; x) T; D, u - (defun c:vf () (command "vpoint""_non""0,-1,0"))
& N7 ]( _& z. d5 P - (defun c:vk () (command "vpoint""_non""0,1,0"))
9 _. z1 {4 l0 v - 9 Z+ D3 g$ O, t" G
- (DEFUN C:MM () (COMMAND "MIRROR"))8 R l' ~' v! i2 ^* B- t
- (DEFUN C:MP () (COMMAND "MOVE" "P"))" A, ?+ u+ P$ _/ Z( E6 x+ V% N2 o
[$ D6 i m3 h/ x0 c- (defun c:mee (/ a): k) m# Y& B+ N
- (setq a (ssget))(command "move"a"""end"pause"end"))
# r" G7 m# F2 b; [ - (defun c:mc (/ a)
& `: v- r! P( A' t - (setq a (ssget))(command "move"a"""cen"pause"cen"))! _- O5 I( k7 P- P) I2 e
- (defun c:cc (/ a). {6 l7 U, ^! J
- (setq a (ssget))(command "copy"a"""m"))
) j O5 | ^1 R - (defun c:ce (/ a)
7 H; _7 ]( Q+ k& ]8 S5 s - (setq a (ssget))(command "copy"a"""m""end"pause"end"))+ _; ]4 J7 n u- g' r! O
- (defun c:cn (/ a)+ E* y: x- i1 Z" |1 A. Y: ]
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
0 R0 Z3 z8 \- O1 ~& } - (defun c:tl ()(command "trim""l"""))3 x- f8 w$ E6 R* Z5 z- s
- (defun c:tf (/ a). b4 v9 c+ Z0 X% w0 ^2 B2 F$ R
- (setq a (ssget))(command "trim"a"""f"))
5 S! K8 b& r6 X: e9 X, g - (defun c:el ()(command "extend""l""")). z9 d7 \) v' R6 ], {6 w8 W" z
- (defun c:ef (/ a)& C" w# z9 }! b7 T2 } k, E
- (setq a (ssget))(command "extend"a"""f"))
) f6 z/ f" N+ {- c M) W2 g
+ S- b) D6 N+ R- f* i/ Y# U
H" `2 E2 T* G- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
9 e2 ~$ H5 t v0 V - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
- c C% I3 P9 O6 m - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
# e. L- D$ w6 ^: P g: q - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))( Z+ s/ i1 L9 K2 o
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
! c+ T1 B7 z9 Q$ F+ F0 H - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))4 O/ y; `% Z! W( u+ R
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
! a/ P0 h7 ^) K7 l - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
# @4 k! v# V: B1 @2 E) K - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
9 r( [; z8 h7 \9 v4 A+ |' S# o - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
0 O' n# o. I1 B( T$ G: W; B - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))8 l& M1 w1 I" C
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800")). {( p0 U0 [. A' E
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
9 Z% [) j7 j. j' I. K! O; }7 K( n - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
5 o1 A% k! V3 L6 {: l8 e5 z$ a - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
. q! V' ~4 I N: @! [' {& f - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200")): L' @$ L) K/ R# R9 J
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
" S" f5 \. d3 ~* u5 `
8 d+ ~+ _) j3 Y6 i- (defun c:mla () (command "-mledit""av"))1 I0 ^) F: P) u( @' ^( n
- (defun c:mlc () (command "-mledit""mc"))
7 I) ?5 J3 _, I# k# M& ` - (defun c:mld () (command "-mledit""dv"))* n0 _( _$ u& O6 w7 L0 a$ S ~
- (defun c:mle () (command "mline""end"pause"end"))! [$ o. _9 [( i' o
- (defun c:mli () (command "-mledit""ca""int"pause"int"))
/ I4 {6 V! ]; f - (defun c:mlj () (command "-mledit""cj"))
, B. `6 |- ^' ^- P0 u( { - (defun c:mlt () (command "-mledit""mt"))
: N1 {# Y4 r: p9 N) p9 E5 B& I - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
' u$ _8 \" r/ j% y( X" K J# m - (defun c:mlw () (command "-mledit""wa"))) Q" e0 r k3 @# P8 F$ q
- 1 X' M% Q' `1 F3 }) S1 _/ D& _
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
& r' Y2 V! z/ u' N% L/ g - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA")), a) \* V0 f$ h
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))1 y+ y/ `. U" V' }; I4 B
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D")), R3 Y0 r! K7 {9 m
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))1 _ f# \# Q! A7 `: l
- - v9 H5 g7 ^* o5 o- D, J# B
- (defun c:p0 () (command "pline""""w""0""0")). o4 [5 m4 w4 g2 f
- (defun c:ot () (command "offset""t"))* a) E' O, y4 ^7 U) y# \1 O
- (defun c:t () (command "mtext"pause"j""bl""h"pause))
3 X2 B2 a0 y* O/ B7 S& y# [ - (defun c:uo () (command "ucs""ob"pause))# [8 H- ]; z U1 }
- (defun c:f0 () (command "fillet""r""0"))2 O3 Y/ ^$ g: D/ V% A# C3 O" z
- (defun c:fr () (command "fillet""r"))
2 L2 p$ k0 ~: }4 G
3 `: K0 ]; o0 y5 m- ;CHAMFER
3 G5 S4 C- t0 x- t - (defun c:cf () (command "chamfer"))0 L$ r+ z+ i5 _! K" L; X
- (defun c:cfd () (command "chamfer" "d"))
O* y q6 H7 w+ d4 Q/ Z( I- s" Q - (defun c:cf0 () (command "chamfer" "d" "0" ""))( [! I+ L6 E5 O. ~9 N: J
* P( ?( d8 V* {6 q9 Q6 I- ;FILLET
) l: }7 h0 D% U - (defun c:f () (command "fillet"))
" ]% k8 T% _* Z& A' | }' W! J* y1 ~ - (defun c:fr () (command "fillet" "r"))0 }4 e$ e* H6 f# n+ j: b
- (defun c:f0 () (command "fillet" "r" "0")); j7 Y/ K) H2 O2 T3 N8 g' ^3 e
- $ y, Y& z, @; G: F. t
- (defun c:OO () (command "oops"))
8 i/ Q0 w$ w) W. c) d: o8 o - (defun c:dln () (command "dimlinear"))
: j, P! i2 d6 g: e - (defun c:dan () (command "dimaligned"))
9 l c8 I: s) U9 N, ?0 i! u" B% B- Q - (defun c:ddc () (command "dimcontinue"))% G3 W4 y1 V. i9 Z8 Z/ Y* f% P2 S8 I
- 5 S; z; z: B4 u" e" f8 H
- (defun c:sc () (command "scale" "auto"))9 w: D, J6 M' t
- (DEFUN C:XO () (COMMAND "snapang"))
' [- T/ E% R8 c - (defun c:cc (/ a)
1 p5 |1 D0 Q$ G, w& F' [9 X - (setq a (ssget))(command "copy"a"""m"))
% _* ^* B! ^7 ^- L: k% F
. R8 C! \" o2 U' _- (defun c:PJ (/ a)
# t1 U: Z+ A. J% k - (setq a (ssget))(command "pedit"a"""j""all""y"))
- F4 c- _( v) t' k; b3 {" z- h - (defun c:JJ (/ a)4 Q6 G! i$ }" b& f- M; V8 M
- (setq a (ssget))(command "pedit"a"""j""y"))% x4 ^- E9 W; f% }: |) D
- (defun c:TN (/ a)
8 U; J) s) _' H! r/ a* ` - (setq a (ssget))(command "change"a"""p""T"))3 D; @6 g% G; F; S
- $ h9 h; i( B, z1 S( w# j
- + @4 g2 g7 n6 u
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD========================= T) A& \9 b4 V' g9 ?
- 1 g! g7 c& }) A
- (defun C:IB ()(setvar"cmdecho"1)! {' y3 W& j# I% N5 h* z$ {/ ?
- (setq pt(cadr(entsel"\nSelect Block:")))+ k! u2 m5 ~/ h
- (setq e1(ssget pt)) ; W$ g+ I8 s! ^7 X# S8 o
- (setq e2 (entget (ssname e1 0)))/ s- R& J- ]8 P% M% {/ t1 E* f
- (setq blname (cdr(assoc 2 e2)))
9 h2 y' O+ ^& |6 @ - (setq oer *error* *error* err2)(command ".insert" blname))+ I; |# Q- u# ]3 O7 E {5 T
8 ^2 v7 j% h B. ~2 h- (defun c:II ()
5 V/ j, g5 ^) s; n1 a9 j - (setvar "cmdecho" 0)
$ E" P: D( X* C+ p - (setq olderr *error* *error* myerror)
# [& M; O* B, s- C0 H L - (prompt "\nSelect objects: ")7 N! I3 {7 g5 \7 b$ t0 X+ g
- (command "select" "au" pause)
+ \4 L0 ?- J2 `$ v( ?8 }8 K - (setq sstxt (ssget "p")
4 G: R2 I8 X l) p3 ] - sslen (sslength sstxt)1 T; U V- | R. f' S) a0 E
- ctr 0* \9 Z+ ]+ {; x" {
- )$ r8 |7 v7 u2 n& {) e! @$ d! L
- (command ".undo" "mark")' U3 b* D( L2 L0 S, F
- (while (< ctr sslen)
, i) I* G- S9 f" u - (setq listxt (entget (ssname sstxt ctr)), g: ]' l$ Y3 y) M* U9 l# W) e9 j& m
- txttxt (cdr (assoc 1 listxt)); C0 e0 B! X9 ?
- enttxt (cdr (assoc 0 listxt))
& X1 h' ~8 o& k! G8 X8 a6 p+ E - )
$ k; L' o6 U- b, g1 ?9 I, E9 k$ N - (if (= enttxt "TEXT")
! c" u( I- Q% K/ i+ f. J; l! p. @! r9 Z - (progn0 L- r/ H% a+ w/ ]
- (setq testxt (substr txttxt 1 3))
1 C7 F$ n5 `9 R4 g3 ~# k4 J( `' e - (if (or (= testxt "%%C") (= testxt "%%C"))% v* `" G/ d; j( t
- (setq newtxt (substr txttxt 4))
6 Y- Q! y: |- {0 P3 K6 ^ - (setq newtxt (strcat "%%C" txttxt))6 m5 V+ A3 w9 l
- )
1 i( r- l, b. P) d$ M4 V! C - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)): w" e0 p/ a0 w: n1 y4 w
- (entmod listxt)$ u: W. n) K6 ?; }$ T0 g
- )! l" z; M) W! @: D* v S( Z
- ): K( `+ b6 s+ D1 F6 ?! k: T" T
- (setq ctr (1+ ctr))
, G- ~+ g+ M" U* ? - )
4 L1 D: T- f+ Y1 ~/ H - (setq *error* olderr)
3 u6 h" ?; ?& R - (setvar "cmdecho" 1)
3 Y) S" S2 {9 T, w - (princ)
3 P5 K2 e# X, | - ); d+ z8 b) m6 l: \- u+ u- B+ L
- ' g5 n: Z( G; M: n
- (defun c:DG ()( [8 o, K- d% P8 ]9 V8 n; Q1 f
- (setvar "cmdecho" 0)3 R' f, ]$ _. m! |- A
- (setq olderr *error* *error* myerror)
' R- Q/ K+ Q r; s3 \ - (prompt "\nSelect objects: ")
) R M: H2 e) _5 {' i1 h* S; f: U; S - (command "select" "au" pause)$ }: i4 c" ?( N+ t6 s" }3 @
- (setq sstxt (ssget "p")
5 x s+ }# \" @1 u - sslen (sslength sstxt)
2 ?! L {" m! E7 c& E( ]$ Y7 O- ~ - ctr 0* \& I0 b @8 {: d
- )
: v# w, N8 W; O! w7 G5 { - (command ".undo" "mark")) n2 B9 C/ Y: A6 \5 |
- (while (< ctr sslen)
" x& `5 n& c6 _+ V. {- l9 ?% x) A& f - (setq listxt (entget (ssname sstxt ctr))
! w" u" Z, R! R; k ` - txttxt (cdr (assoc 1 listxt))
* W# P7 |% A; p4 { - enttxt (cdr (assoc 0 listxt))7 p. E P0 ^) e; n! F- o0 B9 n+ T
- )
4 Y# @' l4 `$ h5 U" k1 J - (if (= enttxt "TEXT")9 w! E, w$ \& o1 n& I" ?
- (progn
; C: z1 T, G: \' z - (setq testxt (substr txttxt 1 3))
* F& ]- z0 f* T' ~1 M - (if (or (= testxt "%%d") (= testxt "%%d"))
: b6 p) L+ u1 q w# } - (setq newtxt (substr txttxt 4))( i+ t$ B) i* G
- (setq newtxt (strcat txttxt "%%dC" ))5 C- i% U5 [1 S" P/ O3 b
- )
+ y8 k, c, _& w8 f, l( v - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
9 X' a- V. Z( e! F* K* V - (entmod listxt)& E* V/ O8 |+ L; w
- )) r8 m$ U/ A: I) Y' ^
- )0 J. X1 J* s7 S0 T- J0 P& k8 h
- (setq ctr (1+ ctr))/ S: _8 E# b' G, A3 i$ s [; v$ `
- ), w/ i2 U" e' E: T5 B9 Z, I
- (setq *error* olderr)
J x( R5 P* u% V/ L( Q$ W) s6 [ - (setvar "cmdecho" 1)4 S' }& ~: Z' w; Z1 [7 w: |0 |
- (princ)
: k' [9 n) b' S( x+ H - ): ]9 R! \5 \9 B8 o
3 S$ H' n7 Z! e' R- (defun c:PI ()! `/ v, u4 t6 h8 d- ^3 g3 B) K
- (setvar "cmdecho" 0)
/ T9 b$ _; K6 r4 |. Y2 p - (setq olderr *error* *error* myerror)
" K O! L/ k2 u$ @# J8 u- x - (prompt "\nSelect objects: ")
2 k" Y. s( N( ^5 N I l0 F - (command "select" "au" pause)
+ S' F* E1 c: k8 \6 A - (setq sstxt (ssget "p")
& j$ ^" I% V! ~; g x - sslen (sslength sstxt)
6 ]1 B5 q7 R9 C: n# ?/ u - ctr 09 s( v7 d% b( _7 \- H: Q' T
- )
& M. F7 t) t/ N; v - (command ".undo" "mark")+ Y/ u5 J7 l4 M( J" Z \
- (while (< ctr sslen)
- B u# A; Q/ z8 H( b - (setq listxt (entget (ssname sstxt ctr))5 {1 k' D3 R/ N& a/ }5 R5 ~
- txttxt (cdr (assoc 1 listxt))
- Y) S% {8 [6 ~2 h - enttxt (cdr (assoc 0 listxt))
6 R9 U' [: h* `9 R: t6 W - )
0 a9 w6 M) f# }! G - (if (= enttxt "TEXT")8 u, h; F% N* t) t" p& b- V, Z$ L2 F* u1 `
- (progn
: e6 z, R3 n" X8 k t m+ ^ - (setq testxt (substr txttxt 1 3))5 X& N1 d) h: }0 [, _! Q
- (if (or (= testxt "%%p") (= testxt "%%p"))2 W0 ^! Y9 o% Z" v+ g9 E" N
- (setq newtxt (substr txttxt 4))$ m0 ~& U8 c/ }
- (setq newtxt (strcat "%%p" txttxt))* @" s! B' ^7 z
- )) _" X. @: B# i' w' U/ K/ e" M
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))' @2 X, f: g5 C
- (entmod listxt)
% S8 H! [& ~; T: g, J - )
& b, b& Y5 i, v- u - )5 Z% } Q5 Z3 G u
- (setq ctr (1+ ctr))
& G3 R( f9 |4 D. ]/ L1 H" N1 ^, w# |+ L - )/ j2 N+ E! ?8 k4 O9 e! J3 l
- (setq *error* olderr)
$ \+ o$ W5 [4 n# a, Z I - (setvar "cmdecho" 1)
6 N q0 x( k) g X& m& l - (princ)
( x% P T. z n4 @; N n - )
2 t* D; {- [. N: {% ]' Y - % x) t, @7 r: a8 b- Z( }
- (Defun c:CB (/ a)
/ b( z9 I% l% ]: I; @ - (setq olderr *error* *error* myerror)
2 t. n" @- c; H# m u# d - (setq ocmd (getvar "cmdecho"))( R+ }: Z! ^) ~
- (setq oblp (getvar "blipmode"))
. z) b9 t4 {( N& W3 u' ] - (setvar "cmdecho" 0)
$ l$ T$ l @% e: y/ `) B2 U - (setq a (ssget))
9 e* P4 I! ?1 g, R& V! q- W- G% F- D - (command "CHPROP" a "" "C" "bylayer" "")
% Z. q$ O) s' l# `8 o - (setvar "cmdecho" ocmd)- j8 X# \( M. q) j; t7 X: `- A8 s$ i
- (setvar "blipmode" oblp)
2 B) H0 d' M8 `! | - (setq *error* olderr)8 T% E/ Q/ Q) e( u9 e+ m" q" e1 f
- (princ)
5 G: }5 T: K/ }* b2 G, K# J - ), O2 o' O0 a9 f
- / y, u3 F9 K4 U5 ?) t5 z
- (defun c:LCC (/ co43 obj23 la23)
" r; x* G; I. J1 s; E: I2 y3 \ - (setvar "cmdecho" 0)
+ m2 h' `+ |+ ? - (setq co43 (getstring "\nNew color : "))
, ~% _. e7 _' c2 T/ l - (setq obj23 (car (entsel "\nPick object on desired layer: "))), _1 ~! u; y6 V! V
- (if obj23 (progn) G+ E/ X6 ^: M5 Q; b1 C
- (setq obj23 (entget obj23))
8 l2 S" l1 B0 Q5 ` - (setq la23 (cdr (assoc 8 obj23)))& n: y2 e" Z7 m) i* d; y
- (command "layer" "c" co43 la23 "")
2 n+ { g5 J+ y' \" { - )
% k0 E4 J. d# n- ^' V8 w3 ?$ ~, l - )0 t2 L. j3 b8 z
- (prompt (strcat "\nLayer has changed..." la23))8 Q8 E( c3 k5 u6 P9 {8 f# w
- (setvar "cmdecho" 1)
z0 a( ?7 P4 J- j# B - (princ)$ z( Y) r. P2 o6 u
- )
7 V9 z: z! I- a2 J - 2 y p6 J8 \7 o2 Z+ D
- (Defun c:RP (/ a)
; P: Z8 l1 |" H! r: T% e0 c - (setq olderr *error* *error* myerror)
- u5 [' P* [7 S& F9 ^7 i - (setq ocmd (getvar "cmdecho"))
% @' z. q7 ?; V: W4 h4 X - (setq oblp (getvar "blipmode"))
$ U# h" x5 a2 s6 S. V - (setvar "cmdecho" 0)* ?1 w' [$ E4 R
- (prompt (strcat "\nUSE: Delete object(s) belonging to"
. ]! t7 [) B( @. R/ W' X. k - " the layer of the entity picked...!"))
9 h/ c, n( s8 c' E* B; I7 ] - (setq a (entsel "\nPick the entity with the desired layer to delete: ")) i3 _9 W+ b* R ?
- (if (/= a nil)3 c9 }0 T* a/ ^( i) I$ G
- (progn (setq a (cdr (assoc 8 (entget (car a )))))
- x7 H* }* F6 p% s4 C - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
5 t& D2 E/ R: H; m, `, T F - (prompt "\nNo entity selected!"))" Q- M! C$ O1 I2 r
- (setvar "cmdecho" ocmd)3 y, m: z8 ^% w( P9 o: n
- (setvar "blipmode" oblp)7 e# \& G1 \1 |7 Q' ?3 r
- (setq *error* olderr), f$ F+ I4 @; M: c
- (princ)
" k* @3 A0 }2 o. Q - )
- B! [: b5 _9 [+ v- T8 L2 y! k R
4 X( U9 k/ B N" V( [' i- (DEFUN C:WL(/ SSET NET SSL M)
! G7 o( q/ L$ }5 l8 F3 a k - (PRINC "\nSelect lines :")2 r1 u! r% q% v. O0 z4 D' G
- (SETQ SSET (SSGET))- p5 h+ P$ E5 ~; k1 d q
- (IF (/= NIL SSET) (PROGN
0 ~& R, Z* @1 N2 |" J - (SETQ SSL (SSLENGTH SSET))
. c$ I; t4 c- b, o" ]. Z# g - (INITGET 4)
$ f3 K( Y9 `6 D Y0 S7 ~# ? - (SETQ NET (GETREAL "New width : "))! M3 B, o+ C( R* ?- a5 o' a" \, s2 u" Z
- (IF (/= NIL NET)3 @! _* S# ^; s$ E( ]- k7 U2 M
- (WHILE (> SSL 0)
6 D' K7 \. n; y0 t4 n0 q2 ^# N - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) )); F. }" G1 ^5 T: v: u1 ?
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
5 U$ a# R( x6 u - (COMMAND "PEDIT" M "Y" "W" NET "")
% i+ c, V% u& @' r1 ]: e+ X - )
9 E" ?1 j! l- z7 j, s - ) $ E& x8 g: j e
- )))
! d! b' J: R; w& z - (PRINC)
% C6 u+ X3 x3 a# }& r! P3 t - )
! K8 g0 y- x& R1 J5 k0 ?
: Z: o) |6 s7 D2 @+ o8 w$ a& [- (defun C:MML ()0 |7 g3 ?7 G8 u) k5 W/ e |1 L1 d
- (princ "\nSelect objects to move to another Layer.")
$ c# e( P; a5 A. | - (setq ss (ssget)), V3 ]: V, e/ ` _ M% S# Y0 H
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))/ w2 ?" i2 \2 C# Q
- (setq counter 0)
1 U5 F d( S4 e" t T8 C+ m/ O5 G$ L% p - (prompt "Moving to layer.....")(princ ul1)$ X# F% ]$ b% ~( E G0 y
- (setq e (ssname ss counter)). Y) O3 S5 O+ I# n6 H
- (setq l (cdr (assoc 8 (entget e))))$ ?8 O8 v0 o& E% P& s8 X) S, Y
- (setq S (ssget "X" (list (cons 8 l)))). a% b8 O7 v/ ~9 V7 m* t1 t) d
- (command "CHANGE" ss "" "P" "LA" UL1 "")
* i& k* a( ^/ }# q% z - (setq counter (+ counter 1))
* y( \& s6 T( t/ J" D - (princ)5 K1 ?- D+ H) h. O
- ) / n; Z% { c; ^) x
- O5 n; y+ E4 b) L! a @* S, }$ A0 ?- ;;; ================================ GHI CHU ============================8 {1 P6 [+ X4 R
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========5 b( w4 N# J+ i4 O" n. p
- ;;; =======================Thuong Dung Font Romant.vnh===================- C% I0 B% Y( V, | B+ ~ M/ r
- ; j; Z* W. Y: o' t; f/ K6 [
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
+ D2 w( C; e( |3 ]: s- x% ?9 X - (setq oer *error* *error* err2)
8 Z0 r M+ j' s! `- i) @+ s - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")6 X6 Z" X6 e8 J6 Z3 |2 X
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM).")): u9 |; S! ]3 Q0 F, H1 N
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))$ n" I. C9 v+ d) E
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
4 ?! I) b# [8 y. i6 b* @ B( \ - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p")): G8 p6 [1 P& |# K4 w
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))3 P z$ D2 d* V3 o
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
5 [( I2 A6 X F- S - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))4 u9 v6 D# |' l. @
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
8 x4 l* V7 j. ]$ j" E - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
( ~- p; q, `* f7 X3 X' Q
5 H% ~; F- ^% ^3 n2 ^2 E' x- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
5 ?! N ~4 S7 u8 x5 p ] - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
. p# y# z i/ i( C - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
* K% _3 s0 U+ P3 C: A# z, A; A - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))- T2 d4 O# P( I% r- E' n" x
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))7 s% k" O/ P& ?2 D+ @: z
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))9 L0 [! Q6 ?# U' s
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))8 v ^, C6 }0 Q4 y3 P- o
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
6 ^7 U' p* ?- r; v -
1 \- N$ p$ t* m6 E - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))5 `" g( F# d9 Q/ I q
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))3 K, L$ j3 N/ }4 f
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
+ r9 {3 C: Z# u - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
6 p- f$ n" i+ H, O - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))& n0 j% I# n- x
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))4 i4 K: g1 c! y% x) X5 t9 @: k) f
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
/ b! N3 o0 z2 ?2 ` - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
( }' }' [* P+ |" S( ` - (setq pta (getpoint
9 p; e9 _3 m$ d7 B l# w - "\nPick first corner. : "))& T; r: ]7 j, E& D
- (setq ptb (getcorner pta7 e( R2 Q/ q z; {7 W Y
- "\nPick second corner. : "))
( y8 x! U: |! _$ P: I - (setq ptc (list (car ptb)(cadr pta)))5 @; [$ s2 ?, [/ F9 b" z
- (setq ptd (list (car pta)(cadr ptb)))- A* g8 J6 l2 P |
- (setq ang (angle pta ptb))
7 y5 G N" c, c - (setq d1 (/(distance pta ptb) 2)): W# Y5 o6 ]4 u8 ? O
- (setq cp (polar pta (- ang (dtr 0)) d1))
$ s; F$ j1 P7 I - (setq X (distance pta ptc))
+ Z. B4 K$ M T, O# X - (setq Y (distance pta ptd))2 M% `5 G/ R l. I' |
- (setq X1 (rtos x 2 1)). q7 u, o7 O7 c/ ]+ X$ K7 {
- (setq Y1 (rtos y 2 1))
! ?$ i; T6 b4 ]8 Y! S - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
' v6 [. X2 l; \7 M - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz)); C0 ]- s5 ]* J/ h) s( K( S7 l
- (defun dtr (angg)3 `( U5 ?& x. F& J; O. c
- (* pi (/ angg 180.0)))
* U% |( x7 M& v8 M# U - 4 {% n+ U/ Z3 l. c" U0 R G9 b" l
- (defun c:WS (/ pta ptb rmsz pl1): u8 L0 B; m1 j0 W; B0 |
- (setq oer *error* *error* err2)
6 q* r# O9 s9 }% Q5 n$ e - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
/ f: ]+ W; U. Z7 F2 v1 z - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
, J6 I: d5 z2 O( j$ @
6 J9 ^# N/ X% a" e I/ u$ `- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))* ~6 U) g) c1 O* `
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))# N# T `" I$ D+ @
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
8 C+ B+ T: i# i& ^ - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
) N& g. l. |1 U; E# j2 ~ - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
1 |- h8 M. \9 A# C - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
* O& {! \, ?- o - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))% {9 o0 i3 E. n7 b
- 8 l+ @/ C/ X3 Z3 s
- (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" C+ V+ C% |, H
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))+ C; S5 j) J; } U
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
2 C& F1 l' O8 D; e5 N - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
5 l; z( C9 I* x# l4 T' e - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))- u% d7 r0 o# ?# R2 K
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100"))
, o0 Q" y0 Y. \4 T - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
7 s% h5 e* Q) [- d: P0 }7 b( Q& {' {8 l - (setq pta (getpoint. | ?9 V8 P5 ~6 H$ H. w9 w
- "\nPick first corner. : "))
: a" S" |8 X- S - (setq ptb (getcorner pta
( K6 i5 L& n6 d: U5 C* j+ {: W - "\nPick second corner. : "))
! E Z* v5 L2 j - (setq ptc (list (car ptb)(cadr pta)))
# [7 Q/ G3 O7 A4 x - (setq ptd (list (car pta)(cadr ptb)))4 p4 Y! M; W* h1 {+ s
- (setq ang (angle pta ptb))% g$ [ u" T% R- H/ h% I" J( a) \2 K
- (setq d1 (/(distance pta ptb) 2))4 R5 W: @" _) C( K% f+ B
- (setq cp (polar pta (- ang (dtr 0)) d1))- V1 ?7 D' V" K5 j% a/ A, f( p, g
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))* J. D- o# E; q
- (defun dtr (angg)
$ I0 f' w7 H' b% C+ v, X# ?5 r2 X - (* pi (/ angg 180.0)))$ _) c; E- }; S* B
- , J! l2 a) h" O6 W; S' y& j( H' n
- ;;; ================================ GHI CHU ============================
, E9 }) [1 m/ x% m E G - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========2 y, z& K# j1 z/ Z/ Y" \/ [
- ;;; =======================Thuong Dung Font Romant.vnh===================8 |! M; D* V* ?$ M- R/ _2 ~
5 f+ K7 `. e7 W5 P) Y8 n- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)( t2 Z- \) `6 @4 G
- (setq oer *error* *error* err2)
) ^5 N! c; s6 u* S - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
7 U, {6 B7 ^- g9 d/ F2 z - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))1 H! H% { j5 _3 r
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
" \8 H2 O/ S; S9 R - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
% l- Y* h* g1 p/ V0 l- P - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))3 `1 X X0 C9 {
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))$ Z. z* t+ P. ?( }
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
: @+ G' T4 U9 } k3 N- [7 k } - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))' ]- U" _( h" p) A4 I% H6 O, Z
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))7 c" Q/ c0 U$ C8 y& J* o Z7 @9 U6 q
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
) r. B8 f9 J7 q. T! G - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
. ~' w" x, }$ H) k - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))" U- K+ k$ ?6 Y" }0 `
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
/ ]0 O4 B* v# P4 P1 _2 h - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
) N2 z* _6 D1 p5 x! }( ?# @ - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
! b2 a0 ], U( T - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
4 F9 Y& s/ y2 h) V" K: a - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
# U" p5 j0 [! N5 G, Z - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
5 v, H+ v( V7 x5 ^- f - (setq pta (getpoint
6 d1 F: g4 q5 j/ P6 y - "\nPick first corner. : "))& z3 X: H3 m0 F6 a' T* Z' @% `
- (setq ptb (getcorner pta- W; U2 z! Y3 ?; L& m) Q
- "\nPick second corner. : "))
1 C: f U$ S* n% H K0 @ - (setq ptc (list (car ptb)(cadr pta))); m& ?4 X' z; c
- (setq ptd (list (car pta)(cadr ptb)))
2 @" x* M6 Z% a3 H - (setq ang (angle pta ptb))$ i6 m% i( l' B+ Y; U. e
- (setq d1 (/(distance pta ptb) 2))3 z7 q3 O7 l, J/ N, ^* V/ c% I2 D
- (setq cp (polar pta (- ang (dtr 0)) d1))
5 w/ B# x( d' {/ Q - (setq X (distance pta ptc))
! s9 [3 J7 Q g; S - (setq Y (distance pta ptd))' j( r8 @( \0 L3 E3 x: g5 x
- (setq X1 (rtos x 2 1))
) o) a2 l" Z8 |, T - (setq Y1 (rtos y 2 1))
( X' e4 ^8 X, d* K7 H - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
6 q$ c+ q, I/ c @: q9 E6 r ?2 C - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
* V, f$ P' ^1 J0 Z$ }; k; ^ - (defun dtr (angg)( M$ y5 x: R U
- (* pi (/ angg 180.0)))" x9 a0 [4 H2 x" S) `& Q+ @
- & D: L% u2 p, R! u' F7 a( l' x8 K
- ;;; ================================ GHI CHU ============================
" u$ F5 d" r& @& ^+ f - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
3 E- N0 \6 l1 l: @8 H+ c1 w - ;;; =======================Thuong Dung Font Romant.vnh===================) A8 M# G# D3 R6 w! M. M
- ( V4 @' d5 L/ c4 ^' |6 N$ @9 V6 T; ]) g
- (defun c:GS (/ a b c d)
, Y; m& P' G& S+ _& v! p - (graphscr)
6 i( f- N# d9 H" `$ w a6 u - (prompt "\nSelect text to set style....")* d8 i) n- J6 }& h
- (setq a (entsel))
$ l/ b3 I9 E0 ^ L7 v - (setq b (entget (car a)))" ]% a5 i! i1 G5 |
- (setq c (cdr (assoc 7 b)))
7 r, W4 X8 _" o7 S1 w - (setq d (cdr (assoc 40 b)))1 Y) Y; M* j) v- z5 N# @" X6 q
- (command "style" c "" d "" "" "" "")), m: m+ i7 W, q5 ^
- (princ "\nType GS to set text style.")
3 | i1 x0 B( {7 \' |9 @ - , w6 T/ w1 I6 z
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w): l! S' k9 E/ X# `& ~
- (setq olderr *error* *error* myerror), U. r" i2 G8 K# W& u7 \
- (setq ocmd (getvar "cmdecho"))
# s% d' R; h) p# G" h+ p/ U( _ - (setq oblp (getvar "blipmode"))3 y) J* { q( P8 z+ g
- (setvar "cmdecho" 0)! @3 Y O+ i* ^% \
- (initget 1) ;3D point can't be null
+ t7 Q" r! ^1 ^$ p2 S9 W/ ^! m - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
- B" v) A, `1 ~/ w- V; L - (setvar "ORTHOMODE" 1)
" {* ^; H0 { k+ E# k+ @ - (initget 7) ;Length can't be 0, neg, or null7 k2 i5 q/ n+ M4 Q
- (Setq l (getdist pt1 "\nLength: "))( ~% T1 K+ K. v
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1))): _$ D7 f6 j+ X9 g1 ~
- (grdraw pt1 pt2 2)
) ?3 h, a" |- f W+ J4 f7 y - (initget 7 "Square") ;Width can't be 0, neg, or null( K0 R* @, s1 i
- (setq w (getdist pt1 "\nSquare/<Width>: "))$ p2 y+ A0 _9 { W% R: b& Z" B; r
- (if (= w "Square") 5 y$ D5 }/ {& {# p: O9 c
- (setq w l)
* w; \+ T( |0 o- g - )
6 M5 U0 c6 ?1 t5 W& n8 J - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))- A& p, q4 U* c
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
; u$ _: c5 c1 o2 F, t- S - (grdraw pt2 pt3 2)
4 l# }7 b' B3 N- ] - (grdraw pt3 pt4 2)
, E, i" d: n& @3 n1 T - (grdraw pt4 pt1 2)
2 r0 g4 B% W) [, }. h% X - (setvar "ORTHOMODE" 0)6 b& Q0 Z" A+ V$ t
- (command "pline" pt1 pt2 pt3 pt4 "close")7 h1 C0 C: ?' Q" A% |
- (setvar "cmdecho" ocmd)0 Y# V+ I$ z; L8 T$ H H! ]
- (setvar "blipmode" oblp)
7 f" q) N% ]% p* M( A1 Y - (setq *error* olderr) ; Restore old *error* handler4 u! P' G3 y) m, q
- (princ)
7 ~* v$ x+ a: V) @$ P. j - )/ f. e" x* v5 x+ ~6 r
& k* w3 |) C2 G8 ^1 l) A- (defun c:SG (/ ent pt1 pt2 ang)
: i: z- U% S G+ |2 j+ X) L - (setq cmd (getvar "cmdecho"))
* x% [2 @( z: p( Y6 u* a: } - (setvar "cmdecho" 1)( S( g! m7 A7 I1 ^1 {' V
- (prompt (strcat"\nSnap angle will be set to angle of line"))
# i/ |& f7 l8 y8 M4 A - (setq ent (entget (car (entsel))))+ ^; H! ?- ]9 \" K4 G3 z6 q
- (setq pt1 (cdr (assoc 10 ent)))
1 d# m. j4 N: ^* x4 t9 O - (setq pt2 (cdr (assoc 11 ent)))6 ]" Y, y# p; m$ F2 d( x, P
- (setq ang (angle pt1 pt2))# D& R7 h, q# h# \0 d# R; {) w
- (setq ang (/ (* ang 180.0) pi))- r: u$ T, F& Y, x/ |$ `$ v
- (setvar "cmdecho" 0)( Z; k0 @6 E. R/ C' G; N
- (command "setvar" "snapang" ang), T% u$ v7 @; t0 v$ ~+ H+ K" g3 N X
- (setvar "cmdecho" cmd)
$ X! C/ n. \0 A" Z! S; e6 r - )& b; |+ M/ j- w- c5 N
2 o+ N7 z8 M4 q0 t `- (defun C:TG ()' v( {6 r X6 {# U& k
- (initget "Increase New")
$ _& p. N: s0 u" c) B9 ~ - (setq ans (getkword "Increase/<New>: ")), R) u$ s3 G- N5 C6 e
- (modang)
5 a- [: a7 V2 R: {1 L - )0 i0 z! T! i1 l: [+ R! a
- (defun modang (/ ang ss ca e na ssl)8 E0 a: d- T, A5 d4 S$ v" F& S
- (if (= ans "Increase")* A8 V' K3 ]0 s! r
- (princ "\nIncrease angle for text by: ")
$ N: l- w% }' H; b& t( q - (princ "\nNew angle for text: ")2 A9 `9 Z3 }! f: h5 H& m) I: d R
- )
/ c6 Y' ~/ `0 N) u. ]4 Z - (setq ang (getreal))- Y5 A. I+ y, l# G
- (setq ang (* (/ ang 180) pi))& V% X# c, h" E! O6 {
- (setq ss (ssget))
; W/ X, Z% ^# E) X6 z - (setq ca 0 ssl (sslength ss))
. y: [ |3 A" }: M - (while (< ca ssl)
" r: F3 v+ S% K, K - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
/ C) _& d# c8 S* _+ {5 P - (progn
/ y; Q6 d8 ^' k2 }4 K - (if (= ans "Increase")
! U' S M, x9 H5 Q* J- X; v - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
' y% k# B% d/ B$ F3 N+ g' A - (setq na (cons 50 ang))
+ y# e$ I/ I, X! N - )9 V; ]; A6 R1 z, ~/ P; H2 D; ?# x
- (setq e (subst na (assoc 50 e) e))& y5 H) f7 V6 N0 c
- (entmod e)4 Z U9 d! @. f3 B4 z, I
- (setq ca (1+ ca))
7 d; ~* _; C) N( n1 M - )
) v9 b9 B4 w, G: ^! V3 p, N: G. R - )
0 _3 j2 p$ ~5 ]; q5 s+ c - )
% V' O1 R3 n& c - (terpri). l" U3 X% S% m" z' p$ n" a
- )% G2 e! \7 z+ x' N# q4 V# I+ b
# B! l" c' h: r3 K9 J
' o, l' X$ q4 s: c1 S- (defun c:WL ()
s" |! ^8 y2 B9 A+ H8 ~! ` - (setvar "cmdecho" 0)
$ d3 F- g: s5 \4 l - (setq a 1)
3 E) C/ v6 ^; h$ R' Z - (prompt "\nSelect Polylines to change: ")1 M! s+ J/ [$ Z, X
- (while (/= a nil)
) f3 k6 N9 X0 Z& `8 y. ] - (progn# H4 S) m: ~: ^3 }/ Q, f( Q' @
- (setq a (entsel))8 a" j: J9 I- y5 P8 b2 e
- (if (/= a nil)
0 G" e5 C i( Q' J' M% \6 {% E2 l - (progn
8 m; N5 Q" v- P" H4 E - (setq b (entget (car a)))
$ D9 T }+ N9 G* p - (setq c (cdr (assoc 40 b)))* L! N, e& ~8 u2 d
- (princ c)7 A' x( _4 e3 q
- (command "pedit"a"w""lw""")
6 {1 E3 l# n; q/ T- u - )))) : C% j9 m9 w, E# t! ?3 B
- (princ)
]) a& @- K- h2 {+ B - )
, p$ o# `- k$ u0 G/ g* }
% `& l+ g: l/ Z2 c+ i- ;;; ================================ TEXT FIT ============================
/ L) C0 ?4 K! }5 c3 x" h! W' H+ h( H
4 j4 C' D8 H' ^* B3 I* [% r+ T- (Defun c:FT ( )
5 [0 a2 }& B; a - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )6 k2 z$ M; a5 u7 l' g3 a! \: ~+ u
- (Defun LL-xyz (arg) (CAR (TextBox arg)) ): h r- X1 q- U8 j7 X0 X" y5 _
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
5 U+ E9 d& X& q% U6 l! Z1 X4 g - (Defun LL-y (arg) (CADAR (TextBox arg)) )3 t! }9 Z1 a# T
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
& Z C4 X6 Q" H, }( s' K: D5 I - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )5 A6 ?4 T1 j# W, q/ }& T
- Textent (If ename (EntGet ename)) )
# F( s, N/ ]$ ~$ {9 @+ I - (If (= (CDR (Assoc 0 textent)) "TEXT")+ j" Y( @& H% f& s- b, g$ ~- x
- (Progn (initget 0 "Start")
% z3 x5 V3 H+ E# k, k# x- C( n7 h - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )5 a$ g) M% Z& t/ e, ~9 N
- (setsnapang Textent) ;set snap along text entity& i4 d& L/ Y2 k
- (setvar "ORTHOMODE" 1) ;drag along the text+ k+ O' e2 t- I+ {' ~" O( T& C
- (setq
2 e& ~' L9 `3 @- c! l) |! K% a) v - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
/ A! O3 V3 z1 V" R - (setvar "snapang" 0) \* ^7 `* l ]' P/ \
- (cond
* P/ i$ W* G& [4 {' [2 g - ((= (type TMP) 'STR) ;;new starting point to be selected
+ j- T1 F- x/ ^1 `: \$ s - (setq Start (getpoint "\nPick new starting point: "))1 Z Q5 X# R Q$ v: J2 N
- (if Start (progn
* p, N4 N' M# a; r, v$ g - (command "_UCS" "_E" (cdr (assoc -1 textent))), n9 f$ K3 X" I6 f8 t- ?7 t& F
- (setvar "ORTHOMODE" 1)
- F* b+ O/ I7 n - (setq NewPt% l# \' X7 G. j4 }8 P
- (if Start2 O: f) ]2 ?7 y3 A' _+ z0 f2 ^
- (getpoint (trans Start 0 1) " ending point: ") nil ) ); Z N6 j( Q. i; b8 r
- (if NewPt (setq NewPt (trans NewPt 1 0)))6 l. T. c$ r( ]
- (setvar "ORTHOMODE" 0)0 C" N& y( j" N: k1 ~
- (command "_UCS" "_W") ) ) )
/ j* O7 n( L; o5 X - ((not (null TMP)) ;;new ending point selected
. E0 ^2 t4 q) A" ^& k; r3 B - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )7 h" L! G H1 i6 X; J
- (t (setq Start nil NewPt nil) ) )0 U7 F$ o4 g1 t" K, Z2 f6 @- R
- (if (and Start NewPt) (progn
3 E- m5 e* t9 F2 p - (setq Val (Assoc 41 Textent) ;;current width factor
. s! d b: r+ K6 _4 ` - Val (if Val (cdr Val) 1.0) LTC_% : b& k& ?4 H& ]. }, v( [, l
- (* (/ (Distance Start NewPt) NewEnd ) Val )& N, p$ G7 l% M% q
- textent (Subst (cons 41 LTC_%)" z; V; w( s' y" |) F. X* ?* d ]2 d
- (assoc 41 textent) textent)
) L5 |. X4 v& g2 Q - textent (subst (cons 10 Start) (assoc 10 textent) textent)) E( a3 m v$ b8 a4 y
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) ), x$ g5 p5 ^: V4 L! c5 R, i* ?
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))& o, c; E( C1 @, X6 A# ?# |9 V
0 {1 Z" b& g3 v9 y. \! v' D6 P2 g- ;=====================================================================
0 G& W# P" r ~& @) }9 d" E - ;=========================COPY + ROTATE ==============================8 O' A8 n$ N. f# |, T, W# \& W
- ;=====================================================================
. n M) o( t; \7 h/ h
3 L. }4 N" h) n, A1 H5 Q' f/ B- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2): W- j6 V4 q! L0 `9 m
- (setq olderr *error*
8 I( o2 ~( I" _; D9 Z9 _2 p - *error* croerr). i/ J: w1 q, W
- (setq cm (getvar "cmdecho"))
7 s2 c# |( l) d9 k - (setvar "cmdecho" 0); K7 [2 I p2 U1 C$ |# H: e
- (setq loop t)
* [1 {5 a* U9 p8 G- V0 ~ - (while (not (setq ss1 (ssget))))* G5 w5 i3 h: Z! n0 X; q8 a
- (initget 1 "Multiple")0 k- R. ~# e* ?
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
4 i% L4 v( X$ f0 t - (if (= bp "Multiple")! Z! |: ?7 p4 z, g6 Z3 x
- (progn( ]& M" P8 O- p3 o* w3 P
- (setq bp (getpoint "\nBase point: "))
7 j( r, J5 `5 z# } - (setq mult t)
/ W8 U. Y$ @4 T* }1 l, t& w' ` - )
7 e" ^8 \- V- h- L5 X g - )
) I W" V7 m; P H - (while loop
& h, t( ^( S- b( H% I, } - (setq loop mult)* X$ ]. g6 {( o) V' J6 v
- (setq lent (lastent))2 t3 R: X6 P) f1 N* }, [
- (command ".copy" ss1 "" bp bp)
$ `; P, B! u- o$ o6 q. p; P( m# C! b - (setq ss2 (lss lent))+ f6 z( r4 u `4 }& u# i: K0 \
- (setq lp1 (getvar "lastpoint"))
+ q1 M' V$ l2 K% W - (prompt "\nSecond point of displacement: ")" Z; n3 G( e) C. s" ~
- (command ".move" ss2 "" bp pause)! g- C7 f/ P# `* k
- (setq lp2 (getvar "lastpoint"))7 ^0 n1 m* z+ o% Z+ u( s
- (redss ss1)% J& P/ O. }0 i# O, r
- (if (and (not mult), E; q! }. a2 }3 L9 N, [
- (= (distance lp1 lp2) 0)$ i; S- e9 g# |. j# E
- )
* Q! b: K+ j3 Y3 l - (setq lp2 (getpoint "\nRotation Point: "))
) R$ P" s4 {; Z6 G, O* ] - )) b) E! w- ]9 P9 F& D
- (if mult
4 v" l: g* b" a# i/ k3 ] - (prompt "\nRotation angle ")
3 D0 d' E5 E% ^: S& T V4 D+ @1 Y3 N - (prompt "\nReference/<Rotation angle>: ")
+ l. \# R0 A8 G0 }$ m - )
, |. _7 `* C( {0 } - (command ".rotate" ss2 "" lp2 pause)
* S5 x5 H2 A* ?5 h( {3 B3 b) ? - ). j" F7 @* b" C8 J! U U
- (setvar "CMDECHO" cm)( O+ N" ]( v/ U
- (setq *error* olderr)
8 z, x B5 |/ C7 O: O0 U/ b5 S - (princ). g1 p8 {4 M$ i+ K; P$ g$ V
- )$ w, C8 y5 ^: H0 O3 `9 Q) j
- (princ)
8 f; {' n: ?* P! e, ^5 r - (defun croerr (s)
' C$ _! n# n' I, a/ Q4 W& N: u - (if (/= s "Function cancelled") 5 b3 {: ]; x0 N& g2 N
- (princ (strcat "\nError: " s))9 ]" g8 h- M9 }8 |9 C6 ~/ t
- )
4 ]6 A9 n9 b8 d - (setq S nil)4 ~8 R# ~, g$ z9 W& b& ]4 C% n2 s
- (setvar "CMDECHO" cm)
+ u" u U% Y2 |( m# J8 \ - (setq *error* olderr)
- i* g, [5 o4 \+ { - (princ). c/ t8 l4 l9 H+ s$ I
- )
& l; c$ Q* N& W - (defun lastent (/ a b)
+ x0 E$ I- o4 u; x' ?$ u8 d$ k9 f - (if (setq a (entlast))7 w8 |7 N3 k- c( j7 @
- (while (setq b (entnext a))
[1 d2 I4 D6 e/ [ - (setq a b)
) v/ p/ R8 w/ F% ~2 j6 \ - ); b) m& U, f; r1 O" X
- )" q: h ]; a( |# V- H) @, Q c
- a; @" t6 i6 H7 L( V1 Q" |! L$ W
- )
8 K R, n. d' Q' n - (defun redss (ss / en i)
, z1 I; K( P y; s - (setq i 0)
+ C& G; |( R" d3 |7 q - (while (setq en (ssname ss i))) N& @" Z: X7 x3 k: B! z
- (redraw en 1)5 B( s3 J$ s2 \" a$ ^/ H
- (setq i (1+ i))
- H4 p! I2 X: k N - )
" o( R4 M4 ~, u* v; [5 R0 q5 f - )2 a% h" u! u+ F, K) t
- (defun lss (en / sels ed)+ b5 a; g' g+ |7 B# Y1 x4 `
- (setq sels (ssadd))( i7 H1 T7 l3 }/ b. J- p3 D
- (while (/= en nil)- P8 L/ P) _+ ]8 @" }
- (if (setq en (entnext en)) (setq ed (entget en)))2 c* [* U* Q. d7 M1 X& W- r% W
- (if (/= en nil) (setq sels (ssadd en sels)))) M! t' w |9 `- }6 r
- (if (or (= (cdr (assoc 0 ed)) "Polyline")% h3 |/ y7 @8 @1 H; _6 c
- (= (cdr (assoc 0 ed)) "Insert")( m$ j! ~9 o# }4 c3 V6 c# @
- )8 q! {% h1 A% z, k6 t( N' s
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
# x0 d- C5 ?0 E: v* B - )6 d, p' n) C6 {/ b
- )
2 B% R2 @; m- B; U. V, a8 { - sels
. j" \ z% f3 H2 }1 g - )8 H/ f' H; n# \: Q& D
- , [: ^4 s( O0 G( Z
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
0 g+ h* }# c! i' I7 U - ! p: q) r2 y! r: y7 i
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))2 ]* {% G$ V, M, S
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))6 M9 a) o* N: P2 [- t7 m
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
9 Q; X z# C, d4 ~6 e - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
$ { X9 x( b; y9 }: F( t - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))4 {* k* T- \- W1 k
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" "")): V# q5 f( j" W6 `; | W2 U; @
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))$ x! X1 H! N# R% F' H8 p/ q' G
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))2 l6 v+ J L: Z3 ` X" M
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))# w% l2 [: K* n9 M
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
7 t* {2 ^5 J2 v+ n$ E( w - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
9 {/ O) g1 ?2 l A) a& e - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))( f7 T$ k8 a8 O& \$ R; \: |$ y
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))8 i1 w8 R% c& Z4 F8 \" d$ O
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))$ n& _: e' |# q
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
% k3 O6 M% |0 Z) m3 F b - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
/ J0 S. H# x. o" M) e8 P- T8 k - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" "")), k1 R; b2 C- [! u( n
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
- {. o6 j) O+ P/ L! @ X5 w - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
; L7 f: d, t, t, C' ~) Y4 _+ T6 t
" W* h& }- Z: r- S8 ^- _: q- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============: `$ q: _3 |4 n+ w' b
- ! T7 ~9 a1 b& K
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============0 o8 I8 e9 w# n4 D) B. ?
- * D5 q' {( _, i. o5 g8 M( J5 l0 t$ G% @
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
" \. m3 T. d# z8 v - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
0 p j0 ~, K0 e$ l' j6 r - ) f" T3 B5 Y: ]
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
+ d. G. i7 B. [/ \. r - ) u; \* K* N( h
- ;(DEFUN C:netxuatanh (); h, V/ X; M: w
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""% h5 i2 ^! I. g( Q u( R8 e
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""/ `& Z; P5 d$ r+ _" y2 p
- "M" "MANH" "C" "9" "" "Lw" "0.5" "" D% V: j' `9 \, M
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""; S8 O7 M7 s5 c& a
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""
2 ]7 q+ s2 U( h! F3 Y/ ]- O - "M" "THAY" "C" "7" "" "Lw" "0.7" """ b, u, h6 U# D
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
E& W. u/ j6 x* s. y( }$ x& B) K* f - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
; F: V( m4 g% B5 b - "M" "COT" "C" "2" "" "Lw" "2" ""
- K5 ~, ^( u1 u2 x* ?1 y; t' K - "M" "Defpoints" "C" "7" "" b/ G' s% h, ]& Q/ [
- "M" "0" "C" "3" "" "Lw" "0.5" ""/ H& B) B# Q0 J& u9 u' Z
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""
" \4 k3 H# o7 a. D/ H8 F9 D$ J - ; "M" "2" "C" "31" "" "Lw" "0.5" ""
% V* N6 i# u/ d3 D5 Q - ; "M" "3" "C" "8" "" "Lw" "0.35" ""1 b/ z6 X {' A3 h0 n5 u& K
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""5 i* ~( y) p6 W& }7 ^0 E: C
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""
$ C! E0 ?4 |$ t- K3 a4 l4 L1 x - ; "M" "7" "C" "7" "" "Lw" "0.4" ""; Z+ U+ q: g; {# a4 Z; r6 C
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
# K+ U6 r* ~* a! f! T6 W - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""% k. V; V1 L" N! M8 S
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
2 {2 H8 b d H - "M" "KE" "C" "8" "" "Lw" "0.3" ""! ~1 N! e! r& w; V9 E9 l: M
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
- L- |" v; s) C; W$ F - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
, P; B1 ]6 Q1 J - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
, ?! D. J; A- N( |) L+ L - "M" "TBD" "C" "2" "" "Lw" "0.8" ""' a H# f* U7 m
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""( T" e5 e. X+ K/ V9 Y* I
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""( u3 u- N6 J4 X. Y. y! \
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""# Z& l+ A" n1 W+ @. T7 y
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
' z4 S$ f) U! ]: V D - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
1 p, [" z" ]/ i) {; i( Z( Q - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
2 [7 m# Z$ h% N& o. [4 x; D - # q1 H. y) @ g$ X- L, m P
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
, H' y/ B$ V' \0 x. p - + H V, C; d5 d1 X+ S
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""4 n, U! f! `" z. S- J; k. y
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""- T# c* H) T- q; z$ z$ W& n9 s4 ]1 G
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
+ Q* o e4 c; D' V f - ; "M" "250" "C" "250" "" "Lw" "0.35" ""* R; P, R, f+ [; V
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
1 @/ b3 L! e6 c* U5 k - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )( C; z: P1 Q- f
- ( H& [0 ^. g- E( Q/ M- J
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======: n ~0 w n f" ~" q7 J
- ;===================================30|04|2024==============================0 K% P/ Q7 ~) m$ D) f* r9 }
- p: @7 M$ J' T" r9 y
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
7 J$ t" I/ m h* w7 T3 V3 V - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
c5 T7 i( M' O, R - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )- m# B3 E: c5 a, @# b, |
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
* N+ n( y; C* ~ - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )3 F1 T' Z! ], N2 e# ~
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )8 t$ B& R4 T! ^: v- g( {
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )3 `4 Q- ~ a3 F: A. z9 e: b
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )6 {3 W& i- U. |9 k/ `& C
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )7 V% H' [& ?8 S2 O
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
: c6 o" _: J3 f: u1 x0 J
% g; K* b# N6 F9 c; Z( p- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=3 ]6 j8 G2 y* k
- ;===================================17|10|2024===================================
4 y& o# a) _: }7 Y# a+ p: s - , x& q d& v$ p) k) R
- (Command "DIMTXSTY" "ROMANT-DIM" )' g% Z9 S1 @' n
- (Command "DIMBLK" "" "Closed" )
6 b) ^# b z. \. c0 W
6 t, s. z: \% r# a; Z: l- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=1 E. s- A" ~% p1 u2 _# _. E: w
- ;===================================17|10|2024===================================& v6 m+ y0 B' D5 n- `
. d K- S4 ^. F( \5 O- ;(Command "-units" "2" "8" "1" "8" "" "N")
6 K$ y- x% k+ u+ q; [5 h - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)6 x R6 Q' b/ H- j) E4 P/ h Y. u
# X9 { q& ?& G& s4 j8 }- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=% e" Q3 h6 W7 k. K A
- ;===================================17|10|2024===================================
" x- N. }+ b+ b8 s
; S: P& [+ ~. z7 C/ S9 s- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====5 S) f# T% O: Z% P
- 6 A# Q$ }# ^/ d
- ;======================== DAT NET IN & TI LE BAN VE =============================
) K1 n! k& ^% @4 \! s - 4 s& X5 a) w* i. C% I
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================# b. }3 W7 C9 I( i2 o
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================% h: u+ j3 Z' H
- ;=============================11|07|2025==============================
7 n4 O1 V( d5 T$ c - ;Ti Le Ban Ve - 1 : 1003 Y8 N$ p, e1 r0 _/ H- S- [/ F3 D
- (Defun c:kta4 ()6 t. j ~% r6 K
- (setq mv_sc 100);Ti le ban ve z3 T7 ]% Y; B
- (setq x4 297)
% C( b8 g2 P0 T, x7 L% x - (setq y4 210)+ m1 K! ?) M, \ D: I) v1 a
- (setq x4 (* mv_sc x4) 0 L p$ \7 w/ n, T( O
- y4 (* mv_sc y4) )
7 h' V- n! P8 t# [' S$ M - (command 0 H/ R) H' ?7 C" E1 @' `: y0 V
- "LIMITS" "0,0" (list x4 y4)5 v+ W9 A; I! Q) n! K. `4 g
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C", _1 e z3 J& h$ v1 c
- ;Khung CHU NHAT Chinh
( m" ^6 @6 o2 d. W. T - "RECTANG" "500,500" "@28700,20000"
4 F. J) ~4 E+ N2 Q* @# o9 i - "RECTANG" "700,700" "@28300,19600"
5 h* i0 M8 F% f& c - ;Khung Ten Chung: U* g4 b S; \4 k! F
- "RECTANG" "700,700" "@8000,1250"
, i4 [5 U; H6 S - "RECTANG" "700,700" "@17300,2500"
9 k- s' M) Y- `. n* o6 W9 X: u Z - ;Ten Ban Ve! h7 ?, Y8 f" o, p
- "RECTANG" "18000,700" "@11000,1250", E" }5 f8 B& J+ r3 g+ R" n
- "RECTANG" "18000,700" "@11000,2500"9 u* }7 d: o, }8 f! f' Q" ~/ Q
- ;Khung Ti Le + Ngay Thang Nam
6 a) c! J3 C! _2 f: M7 n2 {( d - "RECTANG" "22500,700" "@2000,2500"
$ ?# w* x% z3 S$ }& D: G - ;Khung CHU TRI
6 d# k( j7 d7 O# ? - "RECTANG" "8700,700" "@3800,2500"* G9 S; J" s) o
- "ZOOM" "_a" ))( t9 N2 }; E& N
- ;=====================================================================. O" R8 w c9 }5 n
- ;Ti Le Ban Ve - 1 : 100
0 }1 P6 L# x0 q, u {6 z: F - (Defun c:kt4a ()
+ W9 K2 q$ m; L$ g3 Y+ {1 ^/ k+ X" h - (setq mv_sc 100);Ti le ban ve
. \, Z1 } H; n5 } - (setq x4 297)* p8 Z, ?) Z3 V2 f" k
- (setq y4 210)! A$ E" n% f4 }) |1 K- x* V
- (setq x4 (* mv_sc x4)
) y% i% |* [ ?* n - y4 (* mv_sc y4) )
3 n' F% Z9 s9 Z1 O" s - (command / s2 v+ o' ]. `$ f
- "LIMITS" "0,0" (list x4 y4)
! i; w$ U3 }, w1 U( `! J! ~ - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"* F- i( C1 S/ r3 L% t2 C. M1 ~
- ;Khung CHU NHAT Chinh ( @1 F% J9 J6 u' D+ ]( J
- "RECTANG" "2000,500" "@27200,20000"9 L' c) R8 \: V/ Q
- "RECTANG" "2200,700" "@26800,19600"
, R, L) Q3 j. M5 ~$ p' ~: Y - ;Khung Ten Chung
% O% [0 Y! n! z3 D - "RECTANG" "2200,700" "@6500,1250"; k; C. W8 ^0 v& q9 P
- "RECTANG" "2200,700" "@15800,2500"
8 H" [. Z5 H* U7 I# r* l, b) L+ b - ;Ten Ban Ve
5 ?( d5 `# d' n, L, q$ r - "RECTANG" "18000,700" "@11000,1250"
8 Y$ B$ W* D5 K+ X! y - "RECTANG" "18000,700" "@11000,2500"7 P* k( R$ ~5 S% K5 s5 _% [7 y
- ;Khung Ti Le + Ngay Thang Nam
: B7 B$ O8 B. @# z - "RECTANG" "22500,700" "@2000,2500") R7 ]* |1 z0 u" u6 V, C
- ;Khung CHU TRI4 [7 Q9 [* R, j- f& Q
- "RECTANG" "8700,700" "@3800,2500"5 s8 _# `: k( [' c. I3 ^0 O2 Y! L
- "ZOOM" "_a" ))( x9 M0 I6 Z0 y6 ]: H; P
& `: m5 {6 Y4 f- ;;; ============================GHI CHU Khung Ten========================
. ]6 P; h( ]* C, B. n6 ~, N3 f - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
8 Z4 Y' z9 X6 b% \+ o - ;;; =======================Thuong Dung Font Romant.vnh===================
3 \2 ]% @0 m$ B5 O% i) U$ s - & Q: Z' u8 M a0 ^5 u
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
2 U; t" [) T3 ^; }7 s6 \ - (setq oer *error* *error* err2)
3 g5 C; \: o ]2 z- C6 D, ^ - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
5 \/ i" K; |6 j- l) _ - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). ")): A' n* j& g V$ Q; [5 u+ f8 w6 \- I
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))! _5 @+ Y6 I, ~ \0 S
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))+ ~4 z2 j# i3 [; ?0 V; Q
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))1 d: R! t' ^9 ~3 \" n
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))8 o0 w5 v% T7 ^
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))# c Y1 b6 i4 r5 Q( T
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))& F# `% y+ I; p1 Z N2 O
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
7 j- C l$ Y* s! [ ~ - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))" Y N% p% N7 D" F$ ]8 {7 \
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
" n, f+ S3 B! N) ?" q4 j" t - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))& P; C% s! F- |+ w' y+ j9 }: g7 j
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
4 V- K- I$ l7 k' y. ] - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))! R" N* R# S% G4 n/ {6 Q* {/ x
- (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))# V7 {1 q; L" W9 h
- (setq pta (getpoint
3 C: q S# }4 V, b" N4 C - "\nPick first corner. : "))
' k# E r' v0 \2 n, J7 g - (setq ptb (getcorner pta
' \ t# C+ w4 q8 N9 [ Q - "\nPick second corner. : "))8 u5 p* a |+ K8 w
- (setq ptc (list (car ptb)(cadr pta))). [5 A& V$ _9 s! K0 L
- (setq ptd (list (car pta)(cadr ptb)))/ E& q& a7 W( J0 J: x
- (setq ang (angle pta ptb))7 P+ I1 `$ a ~2 M0 M) ?+ q" S
- (setq d1 (/(distance pta ptb) 2))) ^, ?+ |9 Z" ~+ M, [0 U2 Q
- (setq cp (polar pta (- ang (dtr 0)) d1))
& T) M" m) s7 O9 g, |+ M - (setq X (distance pta ptc))1 z$ n2 f0 e, I. {# b1 ?" a
- (setq Y (distance pta ptd))6 R( I4 ]) g3 V( ~/ O& R3 ?+ M v
- (setq X1 (rtos x 2 1))
( |0 y7 h. _. j" N, f - (setq Y1 (rtos y 2 1))
! u4 o5 Z+ R* L - (setq rmsz (strcat "(" X1 " x " Y1 ")"))' i1 r |7 x5 ~" Z" ^1 u
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
8 I/ H% Z) H( B$ b - (defun dtr (angg)
; h7 l; ?# }4 Z" N& D, W! c1 q% I - (* pi (/ angg 180.0)))
2 U7 M! K) f" F. k, F7 F - 2 W1 m3 H: W3 [$ b
- ;=====================================================================7 p5 B1 L( b3 C! f
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
5 L: f8 Y6 N8 | - ;=====================================================================: y2 G/ f3 a; J# C1 }
6 R4 {6 p1 S# H. E0 W7 W- (Defun c:a6 ()$ N1 ~/ D$ W" r; e; N6 J; U4 s
- (setq mv_sc 100);Ti le ban ve' s4 B7 C. c2 H2 m; l; F8 ~
- (setq x4 74.25)
/ }: u. e) d# l; R1 ^- Q - (setq y4 52.5)
; V$ m n4 \; w2 D& k - (setq x4 (* mv_sc x4)
/ s1 r. a# M# j( g6 O6 U8 R- J4 E - y4 (* mv_sc y4) )
8 M. [* D1 i B8 u9 V) j* A - (command
6 I1 N T& W9 h1 r - "LIMITS" "0,0" (list x4 y4)
- ^/ ~) |) ~+ k3 [; w - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C" X9 T F$ o4 b3 @, L1 ~9 j
- "RECTANG" "125,125" "@7175,5000"
) t! s6 v8 ^8 q& T) p" f - "RECTANG" "175,175" "@7075,4900"
1 y$ N2 z- [8 }; c - "ZOOM" "_a" ))+ \# b; f9 A( b: Y1 A
- ;=====================================================================
. H! s8 b0 h+ D ?+ Z6 J# _; Y& W5 P - (Defun c:a5 ()
/ Z8 {2 o7 g8 l3 y7 t/ F - (setq mv_sc 100);Ti le ban ve
1 t+ E( t- q. l0 O% N$ b - (setq x4 147.5)
D; G9 l. P: Z) q* t) i1 e" u - (setq y4 104)! O! h4 O% J6 H" A! |$ u- h
- (setq x4 (* mv_sc x4) . i4 e5 _3 o( b
- y4 (* mv_sc y4) )! G) D; L7 l% l
- (command d' o% h# |+ I3 b! C
- "LIMITS" "0,0" (list x4 y4)
9 Q# X& @4 ]: H7 ~6 U9 p* U Y - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C") E K+ ~& U6 @2 n8 T( F' S
- "RECTANG" "250,250" "@14350,10000"
l& F: d e; K+ W2 i4 n - "RECTANG" "350,350" "@14150,9800"2 T0 j" E. p% P! e7 e& x
- "ZOOM" "_a" ))3 j) Y4 ?7 V# i+ f
- ;=====================================================================5 g' Q! }5 ^* m! |: G
- (Defun c:a4 (): o' \: S( }; L2 H
- (setq mv_sc 100);Ti le ban ve
7 \" R2 C6 z" a7 J0 i - (setq x4 297)% V$ X. }% K' ]" g: R4 l: I3 l9 R
- (setq y4 210)4 g: E Z# ~9 C, E
- (setq x4 (* mv_sc x4)
# a- j7 R% L, b" f - y4 (* mv_sc y4) )% u, i" r) m3 V% F3 ~3 N
- (command & m! O& N3 b. E9 D* ?1 F$ G# r
- "LIMITS" "0,0" (list x4 y4)
6 K( b" }% Y! l+ g2 T, j - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"4 T$ c- h/ d" I3 F" F# i- |8 u- |( T
- "RECTANG" "500,500" "@28700,20000"
' D2 U N5 s0 C+ u6 B. O9 |' B - "RECTANG" "700,700" "@28300,19600"
' j$ T5 y3 M1 R9 z9 a% A: G - "ZOOM" "_a" ))
* v8 a! K4 O3 J - ;===================================================================== m4 x8 V# D: J/ g
- (Defun c:a3 ()! d4 f/ p ], _9 o1 t0 J
- (setq mv_sc 100)
3 {& T8 G. S3 r" n - (setq x3 420)
$ O; G0 a) o; Z7 c7 B) T - (setq y3 297)) O! l/ r, P( Z# C' r. ~- ]6 F
- (setq x3 (* mv_sc x3) + A' \( T. O2 A# b6 A4 d4 a
- y3 (* mv_sc y3) )) u l" X8 ?. e1 p( q. g
- (command
2 A1 o( \/ z. G) o. U/ g U' [# n" ^: \ - "LIMITS" "0,0" (list x3 y3)
9 N/ ]" g* G- C) R, [" s7 g# m% W+ g - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
1 N' m, c* w" [( A i: P C0 l, E. U - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
9 k- O0 E5 m5 _: p6 D - "RECTANG" "990,990" "@40024.28571429,27720"* o. |# |/ V! `# O
- "ZOOM" "_a" ))
, L3 o+ i. g& \; E - ;=====================================================================$ ^$ M1 S2 T* [9 h; t* N$ ^
- (Defun c:a2 ()' }" q# [: s' T( Y6 N% G- C
- (setq mv_sc 100)
) M' D+ a% \% a - (setq x2 594)+ f; P, H! E9 n7 p
- (setq y2 420)! S1 j# L3 ^1 z2 ~5 Y
- (setq x2 (* mv_sc x2) / n+ N# b5 N: l8 x. }7 Y9 O- S
- y2 (* mv_sc y2) )
2 f" B; d3 R$ ?3 l: s - (command
- W5 C; L2 s1 H - "LIMITS" "0,0" (list x2 y2)$ ]: n! n& ~# b0 h: a% \! E
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
5 z1 F; a( L' l I - "RECTANG" "1000,1000" "@57400,40000"9 e7 f# W5 h9 O) |4 t9 d/ \
- "RECTANG" "1400,1400" "@56600,39200"
i0 |8 b* T5 g% z" M1 c1 D3 e - "ZOOM" "_a" ))
! j* f( l6 D3 X2 ^, h& M, S - ;=====================================================================- X2 i1 z3 |2 X3 J, h; E, k5 C4 }- X
- (Defun c:a1 () Z0 y5 a" S, S; u
- (setq mv_sc 100) R6 Q7 V [6 G) V5 T
- (setq x1 840)2 G) ^' B ?( }& \; g
- (setq y1 594)
! G6 l8 D0 r5 x2 i - (setq x1 (* mv_sc x1) / ]1 o2 Z% D- d, H1 k |
- y1 (* mv_sc y1) )
; s. o$ d0 d( M' D" r. ? - (command " t. c' s( t$ f% Q6 t& Q5 _
- "LIMITS" "0,0" (list x1 y1)
1 W2 F4 @. Q0 V0 T" C, }# D { - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
9 b0 `. G$ k) V/ @3 u2 }( P: ? - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"* a! @3 q% `& |2 W7 w$ i9 q
- "RECTANG" "1980,1980" "@80048.57142857,55440"+ ^7 ?6 b/ Z8 P6 d7 K* U
- "ZOOM" "_a" ))7 `9 F% Y# e! i$ ~
- ;=====================================================================8 l2 J+ A6 `4 ^4 h" D
- (Defun c:a0 ()
4 x- j* r! ~2 L/ ]* K& V# p - (setq mv_sc 100)
4 ]2 i/ E" G0 c& M9 w - (setq x0 1188)! }" k" M' z. Y; N" h+ I% M
- (setq y0 840)( ?0 E( \3 O' L% A/ q
- (setq x0 (* mv_sc x0) - @) E, y0 Y- [
- y0 (* mv_sc y0) )
9 K7 ]3 I7 j I' g. s - (command ' H" l5 @9 O- U l2 y1 l. Q4 S
- "LIMITS" "0,0" (list x0 y0)/ `; J6 W1 t- g4 U1 M! b; ~3 l% y
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
) x2 h: {8 W/ g9 H - "RECTANG" "2000,2000" "@114800,80000"& D, Z$ M( o. d& S$ j5 N; C
- "RECTANG" "2800,2800" "@113200,78400"$ E; Z3 z- |& ?8 Y/ R- ]/ k
- "ZOOM" "_a" ))1 N4 c: q+ Z$ t' u0 i
- 1 N0 s2 T/ {, N" S0 ? U0 q
- ;=====================================================================: |9 l4 G R, f7 G
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
5 \- v6 X1 @1 X5 S - ;=====================================================================
" `' [ p( U& i$ d - 0 c9 T2 N* o& S
- (Defun c:6a ()+ S6 e9 E, w) J: H: w% F# J
- (setq mv_sc 100);Ti le ban ve ^. R2 g3 j! N% g5 C( R* M
- (setq x4 74.25). B7 B3 I( r/ ` g- F# y8 M
- (setq y4 52.5)+ F' ]2 p# l4 |# L/ j9 {6 Y' }" `& v
- (setq x4 (* mv_sc x4) ; X4 u% `+ u- e& S
- y4 (* mv_sc y4) )
5 h9 I0 J w+ r6 S. y8 [' { - (command ) I. y0 F0 i3 ]2 b. _
- "LIMITS" "0,0" (list x4 y4)" R' w) b# S& [5 H/ H4 H. c
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"* g9 e: _. F' |7 t! D/ N
- "RECTANG" "505,125" "@6800,5000"
6 [/ v# d% h" u3 [ B, [9 h7 C - "RECTANG" "555,175" "@6700,4900"
" t1 S! n. n) `% A% Y" ` - "ZOOM" "_a" ))
$ N: R2 l% u' s' I6 W9 _ - ;=====================================================================1 L* r1 I- E2 p* s$ U' T
- (Defun c:5a ()1 j& T3 w1 ~0 O1 T0 d
- (setq mv_sc 100);Ti le ban ve, Q9 y% z5 I6 k% l
- (setq x4 148.5); Z0 g B, b/ Z' k* i
- (setq y4 105)
3 O3 {/ v2 A$ x% @ f2 J$ b( z, H - (setq x4 (* mv_sc x4)
/ I! _( A" w, y$ ?" W$ Z - y4 (* mv_sc y4) ) Q; y; N* K4 P
- (command $ h" s! Q" c0 K9 O
- "LIMITS" "0,0" (list x4 y4)/ t. j. Y0 P' F% ?, o" d
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
) {2 [' }# N& O/ {- v4 X2 A, o* l - "RECTANG" "1000,250" "@13600,10000"6 v9 j ]( b# m+ _
- "RECTANG" "1100,350" "@13400,9800"
8 }* m3 r- P$ E5 j3 | U - "ZOOM" "_a" )). Y/ l$ J5 y+ H- D! {7 _+ y. e" Q
- ;===================================================================== G: y8 t4 k) F7 P- M0 n
- (Defun c:4a ()+ j H+ G3 {+ f- |
- (setq mv_sc 100);Ti le ban ve4 i5 @6 d% {1 e7 k6 S
- (setq x4 297)
! N6 A3 i0 @ x3 ~5 _$ d8 \ E - (setq y4 210)
E9 b0 u* e1 s - (setq x4 (* mv_sc x4)
9 W l# S" d7 W) r" w* Q - y4 (* mv_sc y4) )
7 y f) H- b5 t: D: i0 w - (command
6 q/ F/ _$ Q- \5 h - "LIMITS" "0,0" (list x4 y4)
! o6 s/ x. L: g& u - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"3 u. `, v4 y, D8 v/ f2 o
- "RECTANG" "2000,500" "@27200,20000"
4 f# K% K- f7 M5 T+ R - "RECTANG" "2200,700" "@26800,19600"' ~5 ?3 L1 i. ~. a. ^2 W7 D* |
- "ZOOM" "_a" ))2 n' c4 y( L6 H7 @
- ;=====================================================================) m) I3 _$ V7 ^5 N/ i% u9 D
- (Defun c:3a (): `: M' a7 N3 w0 j" x& J' ~3 `
- (setq mv_sc 100)
8 I/ I& ?7 Z/ m - (setq x3 420.0428571429)+ _7 D {& i0 r5 f
- (setq y3 297)
% M$ }% s3 x- Z, _* ] - (setq x3 (* mv_sc x3)
; W6 v. x3 c' p7 Z - y3 (* mv_sc y3) )7 r7 o- T1 V# \7 K7 A, [( {7 p
- (command
( v9 p/ a P+ R1 d1 z - "LIMITS" "0,0" (list x3 y3)
) s4 \# G: [5 b" Y# R - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
; O: j* O) \! g" e6 K - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
! {1 U4 X* Y9 C3 }- `9 W9 M2 l - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
, K% ^- U5 ?/ L2 r, i5 Z! Z) T - "ZOOM" "_a" ))
! i' P. {( I; y' A - ;=====================================================================
O, B- ^4 |7 U# p - (Defun c:2a ()% S, q& `2 ]9 P# ]& Q4 |- }
- (setq mv_sc 100)
[7 m+ C( G a) i( k* Z" B5 j - (setq x2 594)
( _6 x; y& a3 C) z: a' P3 i - (setq y2 420)
( h6 {% }5 [( `! L. W& J - (setq x2 (* mv_sc x2)
0 e6 ^5 F3 m! y+ J - y2 (* mv_sc y2) )
Y {) G8 i* c- ^6 @- B! |1 i - (command * J! h, E- j9 d' H5 ^, Y' w
- "LIMITS" "0,0" (list x2 y2)9 m2 h7 t7 B5 f/ T w a
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"9 ]+ `5 n" ?9 K) f
- "RECTANG" "4000,1000" "@54400,40000"1 m1 V, G& q9 m% {
- "RECTANG" "4400,1400" "@53600,39200"
5 C# |8 S0 E4 B! x# F- \ - "ZOOM" "_a" ))
* r: v+ B) _3 o" n& X# a/ | - ;=====================================================================/ n/ f" V! g8 Z" E3 h2 }: z' j
- (Defun c:1a ()
0 d+ c, y, n7 F* m - (setq mv_sc 100), z9 k8 d! {1 J0 E. P- H
- (setq x1 840.0857142857)
: D; u# e' q* N6 m! G- e0 V - (setq y1 594)1 `1 U f# T, Z8 a
- (setq x1 (* mv_sc x1)
" }, h0 A6 A9 u: r6 \0 K4 d - y1 (* mv_sc y1) )
" s, U. W/ @: E, {1 o - (command
- ~/ ^$ s& T" t9 r' b" |6 P# @ - "LIMITS" "0,0" (list x1 y1)
# f2 A# y5 [! L - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
D) \4 f& P, z9 m5 I9 v- x/ [9 z( I - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436", C0 { ]) d; ?" G6 h+ U7 N+ o
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"6 a% @( M, C8 H0 T" e2 }
- "ZOOM" "_a" ))
: M/ K3 S; T' n# n7 I - ;=====================================================================. d: h* B/ }% ~0 K! d) f
- (Defun c:0a ()
. ^7 B% {+ q7 a0 f4 Z1 s - (setq mv_sc 100)
1 |2 Z0 ]1 n9 S2 }) c! V* a0 t - (setq x0 1188)
' U6 r0 W" d$ w8 ]" U5 l! ?0 l( N! m$ J8 s - (setq y0 840)
: F$ v u1 I$ Q' q - (setq x0 (* mv_sc x0)
( ~; h% l9 E' F) o+ X! Y/ x/ C - y0 (* mv_sc y0) ) d% d* @3 Q: ?
- (command + Y' O/ T+ i5 h
- "LIMITS" "0,0" (list x0 y0)
1 H# P7 j- v: K ~4 S - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"* b J0 S* T% ^9 w" F$ H
- "RECTANG" "8000,2000" "@108800,80000"1 t/ l! u! I% e' d
- "RECTANG" "8800,2800" "@107200,78400": ^1 Z1 o5 ^) m# K( [( R! K$ r* x' q
- "ZOOM" "_a" ))
" H! O4 Z# B' c3 o! r& _; X; V: Q
) K/ B6 s# _% k; Z- ;=====================================================================
4 ?9 R5 w7 I O- Q# d( @4 P - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================. d+ d- i$ l0 c% V' U# \
- ;=====================================================================5 y: B; I3 ]- ^* G' K
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)9 f2 Z1 f7 R3 U# } r
- (command "undo" "be")
/ g# U2 L% E# Y - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
; I! k8 w% h3 ] - (setvar "CMDECHO" 0)
2 j# E/ i/ O8 ~; g1 a q - (setq a (getpoint "\n chon diem chen :"))
+ z& ~" l& ]' \, z& b - (if (not TL) (setq TL 1.00))
7 J0 `( A S! r6 O - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))8 _. `( N& Y. V$ K
- (if TL1 (setq TL TL1)): W2 E5 V2 }9 j9 c7 h8 `
- (setvar "osmode" 0)
. D" }( s# `# W; f D* n9 ~- E, S - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
2 U# ]0 `' \3 o4 e: e - (initget "0 1 2 3 4")" m2 e x9 q9 G3 t# N2 \
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))6 }0 J% Z( p9 X. }
- (if (= kho "0")
/ y+ D6 F% t1 q) f - (progn% }% ]# y3 @4 s$ y
- (setq b (polar a 0 (* TL 1189)))1 `; A R% y* G/ `3 b& H. m
- (setq c (polar b (/ pi 2) (* TL 841)))6 |" c! J& B( [' P Q) f
- (setq d (polar a (/ pi 2) (* TL 841)))& L/ l0 v! W2 E+ H0 n8 z( f. ~. b
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))2 s6 K, E% W3 a" P% W
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
2 v# F, c0 g7 B% S0 q - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
3 b4 d, d0 d8 |% R+ u: Y - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))' [! ?( ?0 R: S# T
- (command "Pline" e f g h "c")
( y$ t3 J( r3 ^5 \ - (command "change" "last" "" "properties" "layer" "0" "")
8 e o+ O3 J/ Q# i& [ - (setvar "cecolor" "4")
6 `+ N# q9 b$ c - (command "Pline" a b c d "c")
/ H5 Z$ R8 G' y' q. w! v - (command "change" "last" "" "properties" "layer" "defpoints" "")))
, o9 v& l/ f# L) d: ^ - (if (= kho "1"), L5 T4 _! G/ b5 W, g$ {
- (progn
* K% i% U `" z - (setq b (polar a 0 (* TL 841))); q/ R, R; j% S2 u! G$ \1 S2 E
- (setq c (polar b (/ pi 2) (* TL 594)))
* G, D9 N I6 U - (setq d (polar a (/ pi 2) (* TL 594)))
$ C1 f" C/ n( a$ e1 ~2 w5 i4 m! e! a - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
! X2 F& U! ]$ T0 | - (setq f (polar e 0 (- (* TL 841) (* TL 24))))
+ l2 ?6 I$ I0 n7 Y* Q" n - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
) Q' d# m5 u# T: ] - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))$ @2 p8 S" K% B( J* K* N4 d, S
- (command "Pline" e f g h "c") & g: N& R9 b4 p, O% B3 ]% ]) r
- (command "change" "last" "" "properties" "layer" "0" "")
! g( @0 u/ g5 h. x n0 s5 ]' A - (setvar "cecolor" "4")
, o8 ^0 Y/ r- I9 a( [ - (command "Pline" a b c d "c")
! o+ V# Z0 `. V* U* A - (command "change" "last" "" "properties" "layer" "defpoints" "")))
" v, m* E4 r/ Y+ C( G. l - (if (= kho "2")
1 ^% M; h1 f$ V$ R! i - (progn/ a/ @. `. y% I, y `! l% ?% X
- (setq b (polar a 0 (* TL 594)))
" `- X3 c" t: i) h6 F* | - (setq c (polar b (/ pi 2) (* TL 420)))! s' t8 ~" J' y; M! w5 @2 I
- (setq d (polar a (/ pi 2) (* TL 420)))
2 l: ^# ?; R1 w' S. { - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
5 A2 p9 k/ h% J. V1 z - (setq f (polar e 0 (- (* TL 594) (* TL 20))))" R5 C& |3 i! ]3 ]: K8 b
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))- w, o. |* @+ [- z
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))* J' W& a8 D. f7 c
- (command "Pline" e f g h "c") # Y+ c7 l' m! P2 @- e7 ^$ B
- (command "change" "last" "" "properties" "layer" "0" "")$ |5 i7 k7 v9 c* a6 U
- (setvar "cecolor" "4")/ ~! P1 b3 d6 v2 }- S' L9 V& r0 Y4 R
- (command "Pline" a b c d "c")
9 j5 ?4 a* J; p. V5 b - (command "change" "last" "" "properties" "layer" "defpoints" "")))9 a4 K, ?1 Q* m1 s9 J: U' @! w+ q3 a( `
- (if (= kho "3")
% J6 k/ H7 ], N+ X/ a/ R - (progn
* g' w5 {' O) x" n/ @ - (setq b (polar a 0 (* tl 420)))7 `; l; [4 } |6 h( _, I
- (setq c (polar b (/ pi 2) (* TL 297)))/ l0 m! [* A% R1 P# j
- (setq d (polar a (/ pi 2) (* TL 297)))7 r- q9 G6 S2 F3 l' t
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
3 P! B9 b1 `# N1 c/ \ - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
3 k' {8 P8 N5 F9 L d- U* s6 ] - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
* e6 @7 z" \' J+ q7 v% S - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))* w( _. z& c, X2 y: r# o
- (command "Pline" e f g h "c")) ^ E! Y, P. ]% M$ b3 a4 D7 \
- (command "change" "last" "" "properties" "layer" "0" "")
+ \7 T: t3 b4 F* q" D1 E# R* a6 R - (setvar "cecolor" "4")$ V; h& ~- m* k+ ^: S4 ]4 ?
- (command "Pline" a b c d "c")
4 A; V# Z+ L! ^* F. x- ^ - (command "change" "last" "" "properties" "layer" "defpoints" "")))3 L* E- v/ m8 r. Z% P. A5 X) T' \
- (if (= kho "4")" V9 p6 g# |) O: \2 r1 m
- (progn
- o3 n8 H+ e: v2 z - (setq b (polar a 0 (* TL 297)))8 p6 @" R5 r C1 E5 m
- (setq c (polar b (/ pi 2) (* TL 210)))
9 d6 F+ c0 F( t - (setq d (polar a (/ pi 2) (* TL 210)))% r2 V( M+ o) \1 g5 p" X+ ^
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
* }4 z: x6 p( h8 t - (setq f (polar e 0 (- (* TL 297) (* TL 18))))* j7 l$ B5 K7 y* r5 y8 ~: K8 _" o
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
9 H& p3 w& x/ p8 P n r - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
% j4 N v3 u" c% T7 ^$ z+ L - (command "Pline" e f g h "c")
+ ]' M9 j0 q$ E1 t: } - (command "change" "last" "" "properties" "layer" "0" "")3 E1 J% _/ ^ \ E+ M
- (setvar "cecolor" "4")( C4 z4 B* _3 ~; J0 K2 i
- (command "Pline" a b c d "c")
5 H: t" a, |9 d, Q& t/ E, q - (command "change" "last" "" "properties" "layer" "defpoints" "")))& @2 c$ I& x7 ?0 p- H7 i/ N
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
/ F% D1 y- s3 t - (command "undo" "e"), [: N6 {7 B: T
- (princ))8 Q, o, I n7 A( c- d, c& @
- ;=====================================================================
! O& r% c6 h3 M9 x - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
1 ?+ P3 M1 j3 @" V7 C5 I - ;=====================================================================
8 [% B" R) K4 d
/ C0 t6 h5 ], O& ]% v- ;=====================================================================
1 Y% J k' A3 A5 \ - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================' J6 ^- }, q6 \
- ;=====================================================================6 G$ t+ m2 v8 c
- : I2 Z4 @, H2 X; Y* o; P7 S
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""' Q1 B9 n$ w% }3 Q
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""8 t& |4 r: }3 B( `1 Z( [' z- H
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""1 ] Z% F0 m# |: S1 t
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
, W" m% F/ M7 c; R( p1 O2 B - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
9 `6 C% r3 E: O2 @ `. H) ] - "M" "THAY" "C" "7" "" "Lw" "0.2" ""5 V5 D1 V" |% |
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
0 K9 Y) x/ q# J0 s O - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
0 A% j$ L6 l6 v. W" | - "M" "COT" "C" "1" "" "Lw" "0.3" ""4 u( i: p" q+ E3 C
- "M" "Defpoints" "C" "7" ""
# [: ?# l- |6 M4 M: K/ C- u - "M" "0" "C" "3" "" "Lw" "0.12" ""
, H1 u4 ]6 I3 n$ M( { - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
# @, F! m5 D E - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
" a; Y3 g" B5 J4 j5 y5 N - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
1 R3 H3 s& f' h - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" "": T; A" b8 R$ i, \
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
! ^: ]3 @2 P5 Q6 a) Q1 a3 j. ]2 ~ - "M" "MANH" "C" "9" "" "Lw" "0.12" ""
2 V2 c. x. s: E* s' d- l - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
. H* Z, p* d |: I1 A. q: Y- _2 n - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
/ M4 A" A7 r6 M" [ - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
, T0 c+ M( m6 H3 e: ~ - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""2 `, G& P/ S- U' s. n4 l7 O/ G# e' K
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""+ ?# w5 H5 e3 l
- "M" "COT" "C" "1" "" "Lw" "0.4" "") ?3 U9 Q8 w9 W1 I: g U& |
- "M" "Defpoints" "C" "7" "") ^" ^: A$ F4 W i& A
- "M" "0" "C" "3" "" "Lw" "0.2" ""
7 `% t. D# q8 C1 a: q - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
B4 c6 Z7 k/ T' ^" h, Y1 A - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
0 r+ x3 p0 f4 q8 M$ s3 I/ F) v - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))' `2 q3 Y& K- l0 C( o5 D
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" "": {5 M! J* i! O. p# Q
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" "") T3 O3 @8 }/ ~ {
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""
2 i1 ^9 G2 c7 y" O+ t - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
8 Q" I0 n6 ^0 m9 \8 f - "M" "DIM" "C" "1" "" "Lw" "0.25" ""/ J: g8 h! X$ K1 \
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
/ ^. R, K7 g$ `" x5 S - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
) P& ]; F2 `2 @, o# B1 e M i6 a - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
. U2 V) i2 S& y - "M" "COT" "C" "1" "" "Lw" "0.6" ""8 r* e9 H! _7 g8 E$ |& i3 k5 \( g
- "M" "Defpoints" "C" "7" ""
9 u. Z1 P% p8 K/ Y. | - "M" "0" "C" "3" "" "Lw" "0.25" ""3 D( |2 H( |8 w1 Y& M
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
* e# g$ z4 E1 O4 w/ f$ z* D - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""- G+ L$ c! }+ T I, G
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "")). C. Z( q8 y! z! {4 J0 T
- 6 X: _* G; A1 ~2 `+ A
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
R$ Q$ \+ X5 I y3 l - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
8 W# J8 I$ ^ f9 o9 g" ^ - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
2 r% k# }( X5 J# ?/ p - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
8 \; @- v* l- c, R" g - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
0 V8 L6 O8 d7 i4 T. t9 F - "M" "THAY" "C" "7" "" "Lw" "0.4" "": E5 q" V" o1 U5 ]
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""1 O2 a2 V" [0 M9 _8 [# V D# I1 g: e
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
) I! w; x2 e, P" e* P - "M" "COT" "C" "1" "" "Lw" "0.7" ""
" n! q5 n7 p9 D6 z Y y - "M" "Defpoints" "C" "7" ""+ }3 {% m. i/ d% I8 i$ b
- "M" "0" "C" "3" "" "Lw" "0.25" ""
/ [6 {( d) `' G% h' U( X6 u - "M" "CUA" "C" "6" "" "Lw" "0.35" ""% n$ P; X3 a$ y( s' L, n7 y
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""! A+ V d; n, ]8 s& N
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
Z. m- R) C5 x$ L! ~
6 c- g9 P% ?: Q- N( O7 ?0 m6 g- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" "". k, V) z, e; s0 c0 V2 L$ P* v
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""- _- O$ v* r, X! w) A! d
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
& s$ A. \9 o3 v" |! l - "M" "TEXT" "C" "7" "" "Lw" "0.25" "", {. I% i2 B2 j& _; Y' {8 U
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""2 a* b, |7 s0 [0 Y
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""% M8 `; I7 |: V6 ?6 k: l
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
& V+ \- z: {2 F, N - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""9 R6 v% j5 u- ~* l3 h! d
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
, m3 {5 B7 Q' l2 @: f4 N6 A' [ - "M" "Defpoints" "C" "7" ""7 } X) Z- L- K
- "M" "0" "C" "3" "" "Lw" "0.35" ""
( U0 Y+ k% i* m/ \7 O8 R - "M" "CUA" "C" "6" "" "Lw" "0.35" ""5 X4 o, j) J; k. t! Z% t
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""- E8 ~" V9 X2 F7 C
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))5 V. E: E9 B$ s. J% P: O7 _+ U
, v9 |: t% o' t/ W8 v% r6 ~- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""0 ^% `4 \; H4 }% z0 o: A
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" """ ]7 C0 u" J& k, |
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""1 `& _# z8 J6 c
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""' b% c+ y) W( [5 }( Y! s0 N4 R
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""7 W* Z; R1 M" ^* J5 c7 K
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
6 G: R) U% ^/ D7 U* E& j - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""! w+ u, E; m A" I( i
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
4 J- Y) y) Q+ z/ j# ` - "M" "COT" "C" "1" "" "Lw" "0.85" ""
: r5 I( q' X# {. r! ~8 ^. w7 D% n - "M" "Defpoints" "C" "7" "": b/ Y! ` {/ k3 `( o
- "M" "0" "C" "3" "" "Lw" "0.35" ""$ R" Q# X) E5 A$ o" g
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
4 Z! d& ?( k n3 ^/ O0 h. z( T- i - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
, p: x! G5 j7 D h7 j( U& @ - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))1 r5 w( A9 O2 ^% D
-
8 `6 S5 C" _ q: J, f - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
8 w/ h) c7 G5 }7 p( n2 E - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""; E& Q1 q I' W( q+ a" U
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
" w0 t$ k6 z3 S/ C9 w; [" L - "M" "TEXT" "C" "7" "" "Lw" "0.5" "", u4 X/ M% B3 Y0 A
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""! T( Y* F. ?! |4 G
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""7 B, d; l* F3 l/ C* a! V
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
+ ^ V9 t& x4 P3 i8 n5 e% G! S. a. g6 o0 I - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""6 Z0 p& V1 F ]. H4 _
- "M" "COT" "C" "1" "" "Lw" "0.1" ""
# v3 |7 Z% ?( T2 Z5 }/ ^; M - "M" "Defpoints" "C" "7" "", S/ s& {. Y1 I; |3 I) m
- "M" "0" "C" "3" "" "Lw" "0.5" ""
% o! p' i+ W. Q - "M" "CUA" "C" "6" "" "Lw" "0.5" ""* m- u0 n& |* u- d! ]$ Y/ |
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""# o) U/ W F$ c$ t7 c/ M, @
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
' G. Q* N( X8 Z/ F3 ? - (DEFUN C:O () (COMMAND "OFFSET"))
- w4 ]" T4 w: h' N" | - (defun c:s1 () (command "surftab1"))
& S9 | L) ?6 D* u. h8 Z - (defun c:s2 () (command "surftab2"))0 W% H+ L3 [3 P4 u$ m
- (defun c:ep () (command "explode"))
5 V3 j6 W$ L8 Z - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
* d& b1 L6 v Z! r1 m8 S - (DEFUN C:QV () (COMMAND "QSAVE"))* j3 c# e/ p) R% K
- (DEFUN C:S () (COMMAND "STRETCH" "C"))5 ?" d0 X7 }# ~( S
- 8 n) ]: U+ v+ D9 G! f9 y
- ;************************** CAT DIM **************************' q D4 U1 K3 o# }- r' P0 Y& `
7 _7 k# C. M9 v% g6 d1 H/ S- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I4 q- L) p7 t4 _" z" E) w' Y
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
' v6 a: [4 C/ o+ a" v: I - (SETQ CMD (GETVAR "CMDECHO"))& h8 |; R1 o& y* O' j
- (SETQ OSM (GETVAR "OSMODE"))
7 D8 \. m2 c* h4 Y% D. S5 f - (SETQ OLDERR *error*! B5 Q" x/ p( e
- *error* myerror)
5 H1 \5 O. g- v# X k& _ - (PRINC "Please select dimension object!")
& k6 l5 T2 B. B4 I+ ?( W - (SETQ SS (SSGET))
, s4 J- N/ ]* Y( ^: R7 I - (SETVAR "CMDECHO" 0); R* ~4 q0 c# X/ A
- (SETQ PT (GETPOINT "Point to trim or extend:"))
, m& t4 @! J1 o6 M8 C/ i& q( } - (SETQ PT (TRANS PT 1 0))
/ o. B0 z" @' Y0 B/ K1 k - (COMMAND "UCS" "W")
' a4 J5 U* N* D+ ] - (SETQ LTH (SSLENGTH SS))
& {8 X) d( l0 E5 F2 X8 c - (SETQ DEM 0)
! f& {7 X U% B( s: C9 o - (WHILE (< DEM LTH)8 `' v4 H! a7 b% P+ [
- (PROGN$ |, w8 Z) ]$ B) a' z
- (SETQ DS (ENTGET (SSNAME SS DEM)))2 ~. ~3 w3 n* F; Y) G( }6 J
- (SETQ KDL (CDR (ASSOC 0 DS)))
5 O* e) ~; u5 W" o# m2 _' H; P) o" c - (IF (= "DIMENSION" KDL)
1 Y5 s4 s* S# C) I @9 b/ ] ` - (PROGN
1 P2 @' N. h1 \, A* D - (SETQ PT10 (CDR (ASSOC 10 DS)))
3 J, C( N, [ a ~/ E+ f( R( I: o - (SETQ PT11 (CDR (ASSOC 11 DS)))
; J- {& U' }1 z4 M - (SETQ PT13 (CDR (ASSOC 13 DS)))
% D! z( U0 ]5 |% K% b- m; Q - (SETQ PT14 (CDR (ASSOC 14 DS)))% W1 w. G. y$ C. b
- (SETQ N70 (CDR (ASSOC 70 DS)))
* ^5 Q4 [, t5 Q" N2 H1 B - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
- U/ a) H" ^& X9 t3 S - (PROGN6 z& F% V; s) z
- (SETQ GOCY (ANGLE PT10 PT14))5 l2 _+ h$ |! W* c5 j
- (SETQ GOCX (+ GOCY (/ PI 2)))7 r6 I! h& Z8 X) w, U% [
- ). x$ t! n6 E# C7 b. r; T( }# [
- )! y& A" P' ]7 w8 Q z
- (SETVAR "OSMODE" 0)
& |9 A* ^0 J; ~3 }) `6 K: D9 M: ~' g [ - (SETQ PTI (POLAR PT GOCX 2)). M; P$ A( p. U4 b- u+ l2 @
- (SETQ PT13I (POLAR PT13 GOCY 2))3 G. `* t4 |# Q% ~
- (SETQ PT14I (POLAR PT14 GOCY 2))
: j; n1 ]6 d p5 W. E - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
! i8 s4 Q' g6 W# S - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
' W% @3 g$ h9 B1 C3 @ - (SETQ O13 (ASSOC 13 DS))
3 W c9 r1 W# y2 ^ - (SETQ O14 (ASSOC 14 DS))
, i. `9 p& K: t0 j - (SETQ N13 (CONS 13 PT13N))* p; ^/ I% |4 \. |: P$ T! e( h
- (SETQ N14 (CONS 14 PT14N)). g& K4 w$ P) G/ n" S
- (SETQ DS (SUBST N13 O13 DS))5 o( G) v0 _) N' e5 \3 @
- (SETQ DS (SUBST N14 O14 DS))
- O. ?5 G$ c2 g7 y: u6 ~! ~ - (ENTMOD DS)/ W5 E6 r' j, l% ?
- )
6 D2 G; w/ E D3 ^( S4 x0 ]! H - )
2 n1 ]! G5 K' |- K+ S9 o - (SETQ DEM (+ DEM 1))
4 T$ R6 U l/ V& y - )
1 i% a! r8 H/ v# d - )$ ~6 h* R+ }+ B& ], `3 e) J
- (COMMAND "UCS" "P")1 F5 m8 Z" D9 m3 o" w7 ?1 Z! U
- (SETVAR "CMDECHO" CMD)# V* X1 B1 a& k
- (SETVAR "OSMODE" OSM)! n t% _" |8 E. x i4 F9 }
- (setq *error* OLDERR) ; Restore old *error* handler
+ i$ W7 `, E, e# z+ j2 E - (PRINC)9 }# c, S$ N+ d4 G
- )
# c$ O: S# N2 R1 H9 C; G - 7 N4 s, h7 Y7 x& s s! O- Y, m% ?* B
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI8 t4 g) _' } s: {8 h/ }9 ?
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)" {+ a. P% Q; N7 k. {
- (SETQ CMD (GETVAR "CMDECHO"))
/ R2 |, U+ U( U) I - (SETQ OSM (GETVAR "OSMODE"))
, L& q: C3 ^( [9 s6 p2 l+ g9 ] - (SETQ OLDERR *error*7 d) q0 J+ _9 ?' r5 K4 N
- *error* myerror)9 O# \& N* U) e8 ]! R! W& C, Y
- (PRINC "Please select dimension object!")8 j" M. d( R8 W
- (SETQ SS (SSGET))
4 k3 A8 R6 ?4 S+ q - (SETVAR "CMDECHO" 0)
: ^$ x& M! N' W4 G - (SETQ PT (GETPOINT "Point to trim or extend:")) L: x+ E+ l. t4 _, R5 x% {
- (SETQ PT (TRANS PT 1 0)); b. J/ p- }0 a2 i3 u
- (COMMAND "UCS" "W") P$ Q; e' E& G6 |
- (SETQ LTH (SSLENGTH SS))
4 h( ^' B+ }6 Z L" z - (SETQ DEM 0)
5 D8 ~6 S8 ^/ h - (WHILE (< DEM LTH)
7 l8 L$ o8 a/ H* ^! |1 [' h u - (PROGN$ g# @0 a4 W1 Z
- (SETQ DS (ENTGET (SSNAME SS DEM)))
+ Y% T2 t& d2 V) S. N - (SETQ KDL (CDR (ASSOC 0 DS)))& ?# n1 c- K" h4 N; n/ g6 H
- (IF (= "DIMENSION" KDL)" ?' w% ]7 i8 d' l( Q
- (PROGN3 F* ~% ?0 G8 C c( @' E B
- (SETQ PT13 (CDR (ASSOC 13 DS)))
n: X+ P# P& k* }; j - (SETQ PT14 (CDR (ASSOC 14 DS)))
) s: t/ c( |* ~4 q( U7 [- S, Q - (SETQ PT10 (CDR (ASSOC 10 DS))), h3 X- Z$ [3 @) i
- (SETQ PT11 (CDR (ASSOC 11 DS)))
3 C' n: U1 H5 K: W0 M# T- g# v - (SETQ N70 (CDR (ASSOC 70 DS)))
2 w6 h4 ~; b9 z6 p( G8 {3 e; I" Y* i2 o* [+ b - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
7 C$ @0 X% z+ [; K - (PROGN# l1 C, b- e' v" A) h
- (SETQ GOCY (ANGLE PT10 PT14))* @6 m! x$ O F+ t1 A) k5 Y& t
- (SETQ GOCX (+ GOCY (/ PI 2)))* X2 k- i) J+ g8 y
- )
5 y* [3 l* Y6 g0 z7 m% F- P - )
( `5 x; t+ ~$ B. H* M, I - (SETVAR "OSMODE" 0)+ y; f2 [4 B/ m' {" p( H. Z6 l
- (SETQ PTI (POLAR PT GOCX 2))' b5 e- k9 B. X% ]3 e
- (SETQ PT10I (POLAR PT10 GOCY 2))% \7 n1 A+ M- ]3 f
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL)). U- U( O; J; K B2 h$ |# D$ j
- (SETQ KC (DISTANCE PT10 PT10N))4 Z) H* \3 r/ y) z1 f2 j" `
- (SETQ O10 (ASSOC 10 DS))4 w0 M1 o6 o* I
- (SETQ N10 (CONS 10 PT10N))
8 Q9 }0 E2 l6 B! h - (SETQ DS (SUBST N10 O10 DS))4 K3 M% ~/ `" W1 y& T* n" F
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
! [. T4 r5 d! {. `/ W! Q0 ? - (SETQ O11 (ASSOC 11 DS))
0 ~; h- [$ r" w/ | - (SETQ N11 (CONS 11 PT11N))6 {4 i( D5 X% \! ?
- (SETQ DS (SUBST N11 O11 DS))3 X% w4 E) X& e! X9 e
- (ENTMOD DS)5 L5 A* A; ?# H. ^ `$ Z6 U9 _
- )
+ C1 L3 ^* C) ^& i8 z# t - )
K. Z% J9 n" }' S0 O6 ` - (SETQ DEM (+ DEM 1)): j7 c5 ]2 { ?! v! @/ p; z2 I1 a3 e3 W
- )! b9 u+ n5 P5 [/ |
- )* {9 K7 g: H8 G$ G
- (COMMAND "UCS" "P")
2 b- M. p6 }9 j/ B - (SETVAR "CMDECHO" CMD)% D. q1 I- A1 ]
- (SETVAR "OSMODE" OSM)' o6 S! e8 X- V
- (setq *error* OLDERR)
- ~2 J& V8 {" m- A+ ^ - (PRINC)
) H7 D; C/ `6 }* f2 n - )& `8 a9 e5 S) n) {" W7 m" Q
& j% g/ p4 g" L: F/ c/ d0 {- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================: A9 f [4 F, e# }
+ }% ~+ L4 ]; b! X( x' x- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")$ A4 r, |6 z1 {0 ]% O: p
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
3 @$ S4 b9 Q2 k/ d( _8 t% G2 U - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt6 ~, Z! e4 ~3 i9 b
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))) l! Z+ g9 ~* R+ X" w/ T
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")6 Y* l; }/ N, W2 u. o
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
% I d: W, Y0 T - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))7 }% m! m5 u+ @! K4 R$ W$ [
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)), _) z: P, Q6 V/ n- F' Y0 Y
+ W8 U/ v8 W7 Z$ Q% ^- ;;; ================ CHEN COT (TUU) =================
+ B; w9 o* _# o" } - ! G1 b Y1 `; \! K
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
1 V2 f2 g) `3 ~) b$ v - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
) c5 p, \, Y5 \) G0 p; k5 l5 o) P. h - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
6 d8 p3 \0 G" A8 x - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
2 K L) w* C, s% X- r, q. W - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")& t' @+ E6 B; G( ^& E9 t, w
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))6 p7 J6 ^+ E S0 {
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))3 k' z1 K1 d% B2 a0 G: Q, o. E$ g' r
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))8 d* C$ A& O/ b- P+ e+ @4 T
0 P0 r, z3 p, A! W. k% B9 V5 R: I- ;;; ================ CHEN KY HIEU THEP (TP) =================1 \4 P' ~1 c; P G1 b9 H& h
- + J- u; c9 h/ @) x
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
9 @4 [; c/ d1 N2 `8 y( b7 Q - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
9 x$ p/ A3 O B5 p9 u- X+ N - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt- B0 y; O( H* _% A. L
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))& G/ ~0 ^3 o5 T1 g
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")2 Z0 F0 I% Z( W8 ]" n8 n; J. G; E
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
* F6 e+ x8 l( f# T - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))9 V/ O, H. c3 v% g& r- i2 V
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)): y2 u+ \. T' ]: N
0 O S6 |) l/ B- o: ^2 I- ;=========================== TAM TUONG (TAM) =================================
* A3 n: b4 U* h8 H4 v1 N& R' f5 ] - , ?! n& B* S3 B6 ?0 J# x) n
- (defun c:tam(/ data_m)/ r$ J% H5 E$ {- h- F
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))" e, _: i' N: Y% U$ U
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
- _1 e( P, J$ U - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
+ j! G0 k5 [7 z$ [" D m$ p& w - (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
. b" r c' P: p+ ]& M' R: l - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
- U: E& t( J, C1 {" ^7 @" A0 E: Y - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
' [, G6 m9 |; p; A) k - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
: ~& n7 T" _9 w N& G6 J7 h - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)7 m2 m. f) e {" Z+ V
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)3 a) G) \1 f4 y. m+ Y% t
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
3 `+ t, R3 h; q0 a1 s - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
5 x$ E1 Q' V% F- E& v - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1). e7 A% t7 b' u8 p
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))/ J6 G" a4 j* M# U7 ?, S4 t5 T$ c
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4* Z, Y( ]9 Z5 h
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
. d* y0 K' p& C( z% o7 F3 \ - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
2 W0 A4 B( Q+ `3 }! B6 T - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))0 k% U- g! B) |0 @: t0 c% ]
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))% |( z; I0 }4 a5 S9 p- d: D, i
- % ]* L6 D% C b4 s9 Q
- ;============ GHI CHU PHI (T1) ================3 P# v2 N3 X# ]9 a' S3 o" [
# H9 l6 b; E9 [ k, m; X- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
1 I( A2 m* S# S$ f. i - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D30 D) I$ _7 x9 X3 D7 v
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
$ j" {1 z) w, G- E& ~ - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
# I1 I" R; ^ b2 l2 r! O1 G - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
* H" b6 J1 A( p! W9 b% c" q - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
( S: C) L' [" m' Z- E) U, M4 K - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)+ m7 q# W6 [! Z; C
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )7 t. z1 O. F: C0 h
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")2 C4 m3 L, B- q- u. U: d
- (command "ddedit" pause)); |. P% }( d6 m5 x; B9 x2 d
- 3 N# j$ h& P3 j$ S6 z% X+ F
- ;;; ========================== Join (J) =================
8 C; l) F: p3 I# ]- { G, c& t: a. L# G - - j, z9 o, I' x: b P5 X1 n
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
0 Q8 o3 R# b1 z% |3 R% a - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))1 J8 E; h+ Y. \* C* o
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)! Z6 |! D/ V: V" c+ u7 h& |
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
6 t- `) O1 }; w2 z - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))" ?4 u/ a/ L( W$ ^
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
& [2 X' A1 J4 k2 q7 C* @ - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) & `* r: P: w( ^* K" d9 J
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))! U$ j! h3 ^' T' i4 m; @
- (setq *error* m:err m:err nil)(princ))
$ L3 O! b# e0 c
. k/ s8 @0 D( H8 U/ C' K' _- ;=====================================================================5 U/ P$ p) }) e5 n! B
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.: r* s: \: a. u( @. _7 x7 o
- ;=====================================================================- ?! Z9 X6 h" n% F
, q/ G3 s. u, S- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)& {! y: M) _5 y) r/ ?/ c
- (setq old (getvar "OSMODE"))
9 y& S3 _0 u7 `7 G, I: Q - : G7 N; O6 r& \* U; X" R
- (setq p1 (getpoint "\nStart point:"))
" @, C% q' m; Y2 W: q - (setq p2 (getpoint p1 "\nEnd point:"))
3 I, Q! k( r# Q& S$ _" k9 c# o0 | - (setq side (getpoint p2 "\nOpen side"))
/ Q- R, x7 P1 i! v - + @8 z, G1 R0 t6 ^, J6 r
- (setq dis (distance p1 p2))0 J; c) b8 J: _2 s8 a: N
- (setq ang (angle p1 p2))4 u# [- U g2 |: o/ [
- (if (< ang (angle p1 side))
! |7 T4 @$ ~" E7 a& f; n# K5 h8 V - (setq angside (/ pi 2) )! g; C, v& h& V6 S& O+ O, _2 u+ u
- (setq angside (- (/ pi 2))): Z/ l( [1 C0 K
- )
, ]; k* m9 a* A. I2 ~* N - (if (>= (- (angle p1 side) ang) pi)
d# q+ L+ N4 K8 ~5 _% N b1 W - (setq angside (- (/ pi 2))); U d- Z/ J1 k/ I2 b1 ]
- )
+ N5 R- o" Q4 e5 ^$ I" ^+ V - (if (>= (- ANG (angle p1 side) ) pi), ]% L4 Q% F5 z9 u# N
- (setq angside (/ pi 2))3 V" P! e" w& z @. L
- )2 e& {. B2 n* Q. G j: t; _
/ B( r' O" `2 M2 ~' b& u- (setq p3 (polar p2 (+ ang angside) dis) )0 `) ~' k/ {2 e# |# _8 [8 O7 t. o
- (setq p4 (polar p1 (+ ang angside) dis) )3 P) M, V& v4 C+ i6 x4 t. o
- (setq wid (/ dis 15))
3 S+ u$ H9 I* o
) z" @$ s1 r/ s, [- (setvar "OSMODE" 0)' h ? N* U8 E- I( l
- 0 M/ C: r3 O6 g" {! S- l0 b. t
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ' K$ P0 t$ E! v# Q" K
- (polar p2 (+ ang pi) wid)
6 m8 y" L) H+ P: b8 G7 S, Y - (polar p3 (+ ang pi) wid)
: g) Z1 v. v9 w+ k [2 s w( N8 J - "")7 F: Y. w& O3 r* ]* d" c7 W3 `, K
- ) m" I N6 A" u4 i4 s+ S
- (setvar "OSMODE" old)7 g! n; p/ y" X" a/ [9 |9 V3 H" p
- (princ)' ~* I: e1 N1 `) W! R; L# v
- )* j, q1 C6 W; ~% L: ?; v. P
- . ]- V( [& i! E+ Z* [
- ;=====================================================================
4 s7 f' d$ Z0 h" R
# F# }: t0 `; C3 m; P2 T- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old), P/ ~& D9 C6 b% i& g
- (defun cua1 (pt1 pt2)$ d* r8 w. f2 Y
- (setq p1 pt1
" G- U/ p6 N" R - p2 pt2)5 v# n4 ^: e4 P2 C0 p0 Y
- 6 |5 H4 B( ~: z
- (setq ang (angle p1 p2))" U$ y, i. _+ d9 `
- (if (< ang (angle p1 side))
5 r" F# o2 w+ _3 j$ v4 F0 K - (setq angside (/ pi 2) ), w/ o2 S" V" s6 }) i
- (setq angside (- (/ pi 2)))
6 T. _2 E( _2 p& v X) e( f - )
# K! \. u0 A8 q$ a* ~8 N" D+ ]& ^( X - (if (>= (- (angle p1 side) ang) pi)0 ~' P3 Z* T! _
- (setq angside (- (/ pi 2)))
. ]# a3 V5 ~$ e6 u2 ` - )! d. }/ O- f- M2 P; }, S; ]" U
- (if (>= (- ANG (angle p1 side) ) pi)
* U5 {: \4 } ~0 X8 X+ v! l - (setq angside (/ pi 2))% y1 A) u! d# M% v
- )
3 Y" S; L0 t0 a9 U1 x - 9 b6 D; M `4 C% w: E
- (setq p3 (polar p2 (+ ang angside) dis) )
: q8 p* h( E! `8 N) u4 |8 E - (setq p4 (polar p1 (+ ang angside) dis) )
! p: O( X' n- Z* m" S8 w. B. U* k - (setq wid (/ dis 15))
& p C4 [$ E/ b9 I, ?' m$ T0 n9 q
( r9 J' d: ~: A$ V- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 & j3 k) X7 ~" O. U. u4 Z0 j1 m! Y
- (polar p2 (+ ang pi) wid)
3 u5 t& N9 i+ |3 G3 i b. {/ | - (polar p3 (+ ang pi) wid)
6 T; M0 e2 l# q - "")" H& N8 G- k% T9 a4 T
- )! K+ n) E* ?- W
- ;=====================================================================
4 o5 `9 U5 r# Y - (setq old (getvar "OSMODE"))
3 [2 Y, y/ S! ~% x9 L( N( H - 3 u8 g4 c8 N. F
- (setq p1 (getpoint "\nStart point:"))
% E8 e! M. o3 q8 }& } - (setq p2 (getpoint p1 "\nEnd point:"))
/ g g8 H, V7 u - (setq side (getpoint p2 "\nOpen side"))
3 u! i6 J7 R% ]0 \( a
0 m' c4 I( Y/ |3 L/ H" _- (setq dis (distance p1 p2))
' @/ T5 U9 H1 J - (setq dis (/ dis 2))6 n, j( J, p! |" I" Q" s& S
2 V8 Q I: f3 f5 I$ ] _4 L* {- (setvar "OSMODE" 0)5 A; b: D" F1 W6 I$ a" w
- : Q) @: y( k5 y. E" U5 y, |. ]
- (setq p1 (polar p1 (angle p1 p2) dis))
6 w+ m& M k1 a% B4 \7 ] - (cua1 p1 p2)
5 Y9 I' p8 O& F: f* r0 V. R
2 [" a0 M9 v8 q0 V, a, ]- (setq ang (+ ang pi))* {" F* z" D( v
- (setq p2 (polar p1 ang dis))8 D3 Z* ?- C7 w: A9 g
- ; (setq side (polar p1 () dis)), M4 q$ T3 u, }
- (cua1 p1 p2) ' f6 l7 J4 S- q- n# v& k, b
- / V3 _, [, |9 n5 B9 g$ X; \
- (setvar "OSMODE" old)1 U3 E! E/ N+ _+ U# U, m
- (princ)
! j( W. }6 P5 W; ]; o( D - )
, U) w' Y9 R' j, b. x, ?: X0 J. ?
4 p. ?5 u1 T/ Y) g" S7 p1 t- ;=====================================================================8 }, J" l0 P6 g7 s
- ;"Glue" text strings. All adopt first's properties. `6 a0 M3 |8 ^# J; Q
- ; Author:
8 W: y5 n, t: C5 o! I# |0 M - ; Henry C. Francis
0 }# ?: t: @3 k$ u9 E, E0 k: j - ; 425 N. Ashe St.
, e& z6 {; K/ U# {; c - ; Southern Pines, NC 283876 E; z( C! N" z R
- ; http://www.pinehurst.net/~pfrancis
' Z( k: w! A. s0 }2 n" Z - ; e-mail hfrancis@pinehurst.net
5 b8 c+ [) B3 W: ^ - ; All rights reserved.: b$ u$ D2 N! Y2 \' e% {6 _
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)9 p j1 b9 \- }" R7 s
- (while( a0 N- \5 H# V$ s- N, J
- (not
- v L' F6 x% G - (and
3 Z$ K* B/ }/ m - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
6 y5 R( S) {( @4 ^. r - (setq ent1 (entget ename1))
* b) u9 M" ^0 M2 S9 ~* l - (eq(cdr(assoc 0 ent1))"TEXT")& A- c$ b+ @$ z S
- );and
$ |. x1 k* t2 G - );not
y9 P1 X0 H4 T* \/ n+ s5 W/ V) |% [ - );while4 {- x1 ?) \: `" |* d2 K% H! m
- (setq old1 (cdr(assoc 1 ent1)))
+ P5 z9 V5 R. K - (while6 y! Y$ f" Z `& @, V3 q# |
- (not4 @+ T) Z4 x+ P$ Z' q& F9 q; E/ `9 X9 R
- (and
# P& J5 [4 w: p! D - (setq ename2 (car(entsel "\nSelect second text string to join: ")))" q4 x- F) Y" }' x
- (setq ent2 (entget ename2))
$ f( M' M- j2 t8 D - (eq(cdr(assoc 0 ent2))"TEXT")7 j3 J% }* c1 ~- r7 o
- (not(eq ename1 ename2))
5 k' J% j# C; \ n$ v" r - );and# F; p% X+ w: d6 Y
- );not) o6 G) a% D% h# s3 ~' I
- );while: B5 k: z9 _. C* M8 ~- \1 m
- (setq old2 (cdr(assoc 1 ent2)))
4 u5 ?- o/ B* h' d5 R - (setq new1 (strcat old1 " " old2): j0 h1 N2 X2 E0 ]0 c' B& T. u o
- ent12 X! X9 a" e6 _% Q. }9 N# ]
- (subst (cons 1 new1)
" [. J) f, `) U; }3 E! Q - (assoc 1 ent1)8 x9 H1 c, y+ J1 U
- ent1)
1 V5 x4 Z# F# b$ c - );setq
* \5 G( n F1 {; Z' M: } - (entmod ent1)
: [$ B/ [8 i9 a% R - (entdel ename2)" d% C! S1 G! _- _
- (princ)
8 I; t. x5 W; f; r7 _ - );defun
2 h- O6 t& F! @9 U - : k; h, @4 b9 ]
- ;=====================================================================% A% f: q9 N9 y
% M/ _* J5 L; C |9 U: y- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
* E7 q3 C, } s$ y$ Z6 ~
/ Y7 K, ~5 }- x K- (defun nterr (s)
7 x! E: _( p& j - (command "_.UCS" "" "_.UNDO" "E")0 T1 E$ @, t+ J q3 o
- (setvar "cmdecho" 1)6 r8 P/ b2 i5 ^3 V8 ^& `* }, _
- (setvar "blipmode" 0)+ E1 W. [' y t
- (setq *error* olderr)% O- D7 ^7 {/ I, y' T* `
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil $ F' d5 B. J! S9 b) \/ I" v
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
" G9 A% Q" ~7 ?$ J6 c - (princ): ^, b4 R( S0 ]$ t4 g6 ~$ k' r
- ) P4 l) c8 Q6 R6 _' s
- 7 @9 |) w4 p9 x' Y) m5 K
- (defun tim_in (dt / p01 p02 ktra)
. w: L8 z& V6 z. t1 X+ Z - (setq p01 (cdr (assoc 10 (entget dt))))
+ @# F. u) T+ r, o% y2 w9 x - (setq p02 (cdr (assoc 11 (entget dt))))
0 l w$ s5 j) C( H5 w2 |5 F1 P# a - (setq ktra T)* d! b. V O& W6 t9 p3 B
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) & h+ V' ~: h( N1 O; ^9 Y u/ s0 W
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))4 v8 @* h- j R' Z' {
- (setq ktra nil)
; O! U" m/ |/ }$ f. L - )" g+ O" r/ q0 G" s& O! E" a
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
; W l) g( U% M. x8 E - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
/ g& l7 I5 G* `! l5 l: ? - (setq ktra nil)' Q7 S F0 g- B8 c' r2 {9 l
- )
) ]6 T7 p: M( e. u. B4 \0 T - ktra
0 e" {8 k4 L, q* X( K - )
- O. L( V9 ^0 B) _- N! z
: Q9 ?& O y4 y. s+ E/ y- (defun timdt (dt1 dt2 / p01 p02)
/ u% o' i/ R( b4 C" U' P8 e - (setq p01 (cdr (assoc 10 (entget dt2))))
. B, g) |- }* U& L- T) ~ - (setq p02 (cdr (assoc 11 (entget dt2))))
4 J$ ]% J$ ~' x& M2 @ u7 D+ [5 r2 N3 p - (setvar "ucsicon" 0)0 _- L, w8 @/ Z- u* Q, s, B' W) @
- (command "_.UCS" "E" dt1)
# Z- m# ~" v9 O8 |1 ^ - (setq p01 (trans p01 0 1)): L, I& S8 }1 T$ G
- (setq p02 (trans p02 0 1))* \! z- }+ ^1 h3 I( E5 W
- (command "_.UCS" "")
1 A H# P- D) X! J - (setvar "ucsicon" 1)7 R* ~" c- G3 _) Q& B
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
9 ^4 s8 @4 P+ b: C# | - T; H+ s/ _0 G3 ?3 | j1 y) x
- nil- g) W: c. ]; F3 m
- )
9 g$ C D8 i' d+ R% |: t - )
4 f# V2 W B0 Q1 {9 Q) n9 |* d - . | x8 N/ ~5 ?& {* z
- (defun tim_out (dt / p01 p02 kt)
2 J: g( A4 g2 ?$ s% R6 L0 u4 O1 h - (setq p01 (cdr (assoc 10 (entget dt))))+ K. [8 h" N/ s
- (setq p02 (cdr (assoc 11 (entget dt))))
- X+ T# a. J9 l6 n0 z - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
" Y! G @ P& C% i2 M - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))9 `* r4 e3 V6 S2 \7 u
- (setq kt p02)8 q) T: Z- A; d7 N
- )
) o g, N5 {" g; p4 y; W - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) : }2 n9 W$ { s: Z% N
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
; n* x- L3 O' N, C/ M - (setq kt p01)
. S! T$ ? x0 t, m. ?9 s - )# B$ H) l4 |$ p
- kt " O8 g5 {' b* s8 u
- )
- H1 Z! P% N1 {0 e5 O6 }5 } - 1 W2 b9 v$ @$ I" e4 Q1 s
- (setvar "cmdecho" 0)) T+ f# [$ k! L
- (setq olderr *error* *error* nterr)
. V: ?! z+ E- @* a; V5 p! V2 ^ - (command "_.UNDO" "G" "_.UCS" "")
" f4 I; O1 ~) M7 I; m - (while (null ss1)
) l( r3 H" _$ l* Y - (princ "\nChon tuong muon noi...")
: o( Z! J7 u7 w! a' C( {, W - (initget 1)5 J4 u; Q$ X, l# x( i& P- P H3 X
- (setq g1 (getpoint "\n>Goc thu nhat:"))
1 Q1 W2 J z' X2 l2 \4 Z - (initget (+ 1 32))
' H* w. r9 N: x; U3 p - (setq g2 (getcorner g1 "\n>Goc thu hai:"))- \% ?" b; a& P/ p J$ k7 Q- k
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
3 F( U4 Y* }, c; |+ {( _ - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
4 _; s9 f" l( ~1 b- D; M - )3 a/ r1 \* Q. X1 \- N9 K- |$ Q
-
2 B: X9 ?5 B3 K2 Z/ _/ E( u - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
. z% F" N7 a3 J7 f4 q# `- D, t - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))) y& R) T( q. P
- g1 temp)
- K* O# y7 e- N' H7 T; } - (setq ss1 (ssget "w" g1 g2))
; g: v4 }7 T7 U2 D - (if ss1 (command "_.ERASE" ss1 ""))( r+ B4 V8 L9 ~8 P6 ]1 D6 ^
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
- E- P( Y! f9 m* C: x$ [ -
* |! p+ e: D; q8 m4 T - (setvar "blipmode" 0). Z; T5 F& B U* Z: g3 K
- (setq i 0 l (sslength ss1))# V Q7 k& E- c' S
- (while (< i l)% U# o/ }# k, D/ ?# h7 I
- (if (tim_in (ssname ss1 i))
% \0 S5 q. Z7 M; z( i) o5 Y - (progn
6 i3 ?4 _- K: b - (ssdel (ssname ss1 i) ss1)! E4 t! i8 {" z/ r0 m
- (setq i 0 l (1- l))
/ X4 n7 W% c6 u# T v* b, Y - )
2 y% J+ }9 Y0 F9 Z& e( Z - (setq i (1+ i))4 ~" G$ c5 p* L8 z& m3 r
- )
# ]* c- E( T+ q& _+ x& } - ), u# H& R4 M/ b; B0 W
- (setq l (sslength ss1))3 R8 r: D' ~' L+ E' k0 U
- (while (>= l 2)
' y0 w$ r$ [/ D2 F! U9 G* n& D - (setq e1 (ssname ss1 0))9 J. [5 Z( E, w2 o. g) f q$ q
- (ssdel e1 ss1)
# b3 ~3 G& B# e* W - (setq e2 nil i 0 l (sslength ss1))8 h& ^) c0 R) F6 h# M. l
- (while (< i l)
. d( V2 U- }- B - (if (timdt e1 (ssname ss1 i))5 \/ J/ }( y3 R+ |7 g d
- (progn$ f* _4 X- a, t) W
- (setq e2 (ssname ss1 i))
9 {: J* @6 Z# l' `( \ - (setq dd (tim_out e1))( m B# D' i3 R7 Q8 L5 n
- (setq dc (tim_out e2))
3 V' V3 c% t) E! j% ?: A& ? - )
6 v! x' K; R' s4 b6 w' z$ z+ \ - )+ Q# b, m: u" F7 _
- (setq i (1+ i))" h% j1 Y2 }+ ?) v9 e! z. b4 \
- ); H" N3 j4 {4 L0 {; @. q }
- (if e2 (progn
) B8 F" N% x6 l& P4 f8 n! Y - (ssdel e2 ss1)
3 Z! x+ k, e1 S1 b( n7 j/ e# A - (command "_.ERASE" e2 "") m% z# S- r8 p
- (setq temp (entget e1))3 G8 P3 M5 ~9 I- h& r' S, i
- (setq old (assoc 10 temp))* R9 `6 W; R7 i4 K) a+ q
- (setq new (cons 10 dd))7 A2 Z7 M8 {/ M3 M
- (setq temp (subst new old temp))9 y4 t% b: Q! G; P6 j2 v5 t0 |, c
- (entmod temp)
/ k8 `7 O3 _: O% h$ q* P' K - (setq temp (entget e1))# w8 @$ D$ Q/ Y0 u# [
- (setq old (assoc 11 temp))
5 \6 r1 k8 {# K- m - (setq new (cons 11 dc))3 c# A( A# s3 p1 \$ q% W" u" I, D
- (setq temp (subst new old temp))% A+ C: a; A2 W3 g8 Z
- (entmod temp)
- ] ~) T( H2 c+ T2 |% _- V2 ^ - (redraw e1); ^& U) c( v+ W6 H- s1 K I
- (setq l (sslength ss1))
' F) f P" u+ e0 h" a; G3 T' O5 a - )
; j# U o" F8 Q - )7 R0 b! O" u. O5 M' s4 g4 R- S9 g
- )& A# i+ E" z$ b$ ?
) T6 Q& _/ T$ \- (command "_.UCS" "" "_.UNDO" "E")
( q& ~3 N# D9 b( E0 X' {( c" P - (setvar "cmdecho" 1)3 l& e9 ~! q A4 q1 q( J0 o
- (setvar "blipmode" 0)
/ y3 |6 W. ^; |" K - (setq *error* olderr)
5 v2 @& T- G! O% d; Z3 U5 m - (princ)
- S3 F4 y" I6 q0 I - )0 E' [4 V+ n9 d; X8 W; T) m) |
- ;*********************************************************************
* F; u8 D- k. ]8 i0 f3 p1 y - (defun ketthuc ()8 a8 U% V/ p& e" M
- (setvar "cmdecho" luuecho)
+ t4 f% t. G4 O - (setq *error* luu
! j" d( T8 }/ w7 f" E# ?. u - luu nil
/ Q1 O. T- l) H; K5 A - luuecho nil8 ^' C% E, F0 h; @6 i4 L2 B
- );setq8 y S' F+ g$ W
- (princ)
6 G7 T, t' V. N9 }4 o) x8 U. Z k - ) 2 ]" r$ p4 @9 O
- ;*********************************************************************
6 W9 H* V; _/ `5 M6 h - (defun modau ()& {1 Q" @5 k7 _4 _7 s, ~0 w$ l3 [
- (setq luu *error
6 O5 }: i8 Z: D& x - luuecho (getvar "cmdecho")2 A2 t; _+ [8 B$ J6 ~
- *error (ketthuc)
+ I: x/ C: \. M9 C - )" V- u$ j( P8 D) E
- )' h* [" ]: j; f
- ;*********************************************************************
* ~$ N/ T. W8 u - (defun xulytext (text / kytu ma sokt luusokt lui )% D; m# a+ J5 _ D. F9 O
- (setq kytu (substr text (strlen text))
2 e) c7 G1 z; N" | X. a \ - ma (ascii kytu)
1 J g% S) k8 t/ a - sokt (read kytu) 1 x; j1 S0 q# v0 {8 I& \
- lui 1
9 h3 w4 q( J- Y6 u - )
6 {+ k6 F4 h- @$ q - (if (numberp sokt)
' y8 X0 F% ?3 ^# o - (progn
' v4 M" l9 v- J7 l# n1 i - (setq luusokt (1+ sokt))
! H2 E% j D3 {# h1 h - (if (and (numberp sokt) ' J4 |3 S: C% x' _! F- d0 v5 `
- (> (strlen text) 1)
' c& {* x' N- { - )
% n+ g% Y; h3 Z! Q - (progn# f2 J! t. q$ U" [) ^4 D0 E
- (setq kytu (substr text (1- (strlen text)))
+ M d" K" Z( d! _2 x - sokt (read kytu)
" I' U8 J: ~; }- C5 ~& A - )7 z8 _8 K$ I! t* ?8 d, G
- (if (numberp sokt) 1 L% V5 Q: i3 i+ `% l# Q
- (setq luusokt (1+ sokt)
8 `; ^9 \7 p3 s# M' N& d; [ - lui 2
. } I; `9 M0 h7 B6 g
, g/ U. _, I9 f$ A' A! [# C j- )& A: G) X6 N2 i5 y) ?/ I
- )
# N) T3 K' q. R H - );progn - E( w- [; q2 H4 n. A& X- I# Y
- )1 x- l' S$ u2 T6 y8 R. K1 W/ ?9 u+ }
- (if (= luusokt 100) (setq luusokt 0))
1 l) b5 Z8 M5 y5 `2 }% f' Z4 V( J - (setq kytu (rtos luusokt 2 0)
4 W( q0 @5 @! Q$ r+ A -
! L( Z2 s. }' X0 a, B9 n - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
7 ?- ~0 S- d; U7 v - )9 x0 f8 C' C; I1 F
- );progn
& {$ a! |3 c$ { - (if (or (= kytu "z")# P4 v6 |* E3 b9 j
- (= kytu "Z")6 p; |0 ]9 F3 |7 i' A
- )* X* X/ p0 }- X0 m+ X
- (setq text (strcat text "0")
% i& \; ~6 p4 A - textxl "0"
6 i& p7 E [6 t3 ^% {% S - )
9 @- D9 V s( I( A# q& U - (setq ma (1+ ma)
3 I6 G0 F; p. w, T/ n8 U- q - text (strcat (substr text 1 (1- (strlen text))) (chr ma)). k: r+ Y e* z! a8 {: [$ t
- )
' H9 N6 x: Y* q4 C - );if
8 |$ n0 L! `: \; l6 [0 u& |6 I6 J - );if+ Q3 {. e ^* }: m" S0 c
- )4 n3 G) [- t0 O, m" \! c! ~
- ;*********************************************************************
( h/ w5 i5 ~0 L. c* l - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
' G! E7 c" \8 `9 \ l - ;Neu doi tuong la text thi tiep tuc
9 \6 R/ c6 a1 f" k. l0 j6 j. A - (setq doituong (entget tendoituong)
# `5 r( g, k" {4 ~ - kieu (cdr (assoc 0 doituong))
; W0 ?: F+ \1 e+ [ - canle (cdr (assoc 72 doituong))
1 s; d9 G) n X; p$ C) a - ) 1 \# v, p3 x; l/ p3 u7 E
- (if (or (= kieu "TEXT")
& L( Z( Q. \& o - (= kieu "MTEXT") & t/ A: M5 h" n
- )
: p- m Q( t# s _" m# u5 } - (progn b+ a% Z4 Y: X; k0 S! v: t
- (setq textxl (xulytext textxl)
v; R+ _1 _+ z - text (cons 1 textxl)- t: W: C" y- T2 Z$ y
- vitri10 (cdr (assoc 10 doituong))
% i5 a& r" X- ]* B2 z) c" p/ G - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))! T" |* `, Q$ _3 L% g: Z
- vitri10 (cons 10 vitri10)
( a2 Q( v2 z# e9 ` - vitri11 (cdr (assoc 11 doituong))
9 K6 `; A; p e7 I* T - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech))); p% z$ e1 b _5 A/ p4 M/ B
- vitri11 (cons 11 vitri11)
' i" e4 [ n" R9 ^: } - dem 0! O( v& g- \7 A: C
- dsach nil& h8 x" d1 F; v, P7 M- k
- )/ J: B2 S9 j* R- e
- (foreach tam doituong7 `, V; W8 \" C1 C7 X6 v; `4 F
- (cond
3 O+ M% O3 e3 \9 n( ^ k Q - ((= (car tam) 1) (setq dsach (append dsach (list text))))" z( \3 y& \. T% O
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
9 `' Q2 {" t# \ R7 G1 l - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
1 C1 s5 A. Z- [! B6 O' f - ((setq dsach (append dsach (list tam))))3 @- ?6 M$ v1 _# h- x2 K/ `
- )
1 g- a, P0 F2 t8 U' K' a9 R - )" P$ c7 v7 G& ?* ?: ^2 ^4 H
- (entmake dsach); b7 A3 x$ |' J' y6 y: k6 U
- );progn
( I) p1 b% R7 ?! {! P6 c1 B - );if
# E9 W. M. i: t - );
& m1 s: P! s1 y6 f$ K p8 W3 Z - ;*********************************************************************3 G1 e& s9 h4 T' I
- ;sao doi tuong cu sang vi tri moi3 ~1 N/ G1 l* y
- 3 j7 g9 k) r7 b
- (defun copy_dt (tendoituong ). Y8 o! S/ S. o4 Y% m& ]8 C9 {
- (command "copy" tendoituong "" goc toi )% {/ c" p/ \* w& u+ _$ `2 C6 e" Y( j
- );defun5 U: d/ V- N6 N" I# }
+ z: Z& i* j6 l6 W- ;*********************************************************************" H- L/ G1 H) G. m- m) X
- , W2 Z$ | }) I P( X$ z
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)3 \$ e$ A# d# ]: W( g
- ; Khoi dau cua chuong trinh
0 Z2 i8 `* `6 ?5 @ - (princ "\nCopy Inteligent...\n"); Z) w e/ Y/ V, }' z: \0 K
- (setq luuecho (getvar "cmdecho")) ^2 u R: Q+ Y% Z4 T
- luu *error*+ u' J! `; W* b2 q
- *error* ketthuc
* j L, ?. f3 y! Q% @ - cumdt (ssget)
1 ?: Y F+ A+ Q - dodai (sslength cumdt)( I9 S8 a: N+ \
- goc (getpoint "\nSelect base point:")# p( `5 R. T7 W4 l
- thoat nil
# C, z& j8 J2 d& n; d ` - dem 0
s9 \' @: ]& Z+ h - textxl nil1 P7 X& y* L6 G. s) I. V ]( ?5 F
- );
% [8 ~3 o9 v: J8 `% h9 d/ h - (setvar "cmdecho" 0)1 P& [) C6 i" w. A. P
- ; Loc ra duoc ong text de xu ly
' f9 k; n2 l' `* d7 F) h - (while (and (= thoat nil)
+ }: ^7 n: H# L- H, F i, m - (< dem dodai)
) P8 }8 t7 w3 E. Q# X5 k2 T - )" o3 x3 ?/ S" \/ {
- (setq ten (ssname cumdt dem)
1 S, |8 j+ `% b+ ^# \/ f - dem (1+ dem)# u! Y3 V z! C! f
- doituong (entget ten)
5 x5 v1 a4 Z7 T3 s/ z4 w1 |" ~7 B! ~+ e - kieu (cdr (assoc 0 doituong)) : x! @+ r! \9 V1 m3 P& w& i
- ). H+ @, M6 H, Y, P" L8 s2 P) F$ g
-
* x: l4 G! {7 i/ N8 K - (if (or (= kieu "TEXT")
/ Z4 i/ H+ f1 P5 |3 c, ^, p - (= kieu "MTEXT") % r3 e$ S; y8 H$ ~0 {1 e# w# |
- )
1 |' W. W2 R3 u" Q* J - (setq thoat T
) G0 u$ o: r, }6 \8 N - textxl (cdr (assoc 1 doituong)) 4 ~% v2 H7 ?1 ~: e
- ): J7 s6 e% L2 [
- )+ A+ p, K3 K& S8 ~, R: q
- );
" x1 ^6 F& N4 f- V$ q Y - (while T
( v8 b4 W* `/ v& r - (setq toi (getpoint "\nSelect next point: " goc)
& m( H y; X: e - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))); A- C" i0 e# } h; Z
- dem 0& g# I# U* x& K# L, S5 V- |7 E' |) X
- )2 h+ `- k1 r/ e/ j
- (while (< dem dodai)
* m$ p g N7 Y! X) | - (setq ten (ssname cumdt dem)( D' s2 k7 t) j) [5 S. g
- dem (1+ dem)( M6 E1 f! ]1 e7 z- }+ _2 j
- doituong (entget ten)- `& L9 Q. I% o8 J
- kieu (cdr (assoc 0 doituong))
3 p+ C- C) j+ @) a( j S - )
0 X0 z) P* W- o( r9 f4 x4 C
; V7 p* T2 l+ u" _ X* o2 Q- (if (or (= kieu "TEXT")
" i4 ` T1 u3 p4 M4 H, U8 w - (= kieu "MTEXT")
( f4 {1 u7 s" F$ V - )4 f; l4 K2 o+ l, i* H$ A$ r$ j
- (doitext ten)" L% X" e% k0 I' B, k2 G
- (copy_dt ten)
' n+ m0 J7 I) k. K% c! H& X
$ D* \0 z" Y# D* q: @& V8 s( e* y- );if
- Z6 \9 ?0 J7 P- m" l" p - )
% N+ ~: [/ A; U* ~ - );while9 o/ |, [! M( t: b" i
- (ketthuc)2 J- n0 o) S8 \2 _. Z
- );defun
3 K8 q* `. @- x, u: _: M2 Q - (princ "Type \"DG\" to start")! P" z2 t: A8 S/ g2 g
- ;Note: bien toan cuc: textxl vitrilech
$ q, n. v/ r( [7 c* X" |4 j* j
" n; c5 v% h4 p$ b8 V- ;=====================================================================- Z- p) c& ?$ k/ O, _; Z
- ;;; PLJOINFUZZ.LSP7 Q+ ]% ^: E f+ o M6 Z& U
- ;;; Joins lines, arcs and polylines using a fuzz distance, U- t! {5 m+ ]/ M0 w& L( J
- ;;; If only one object is selected it tries to join to all objects that are possible
( Y5 D# @" `# @" O - ;;; By Jimmy Bergmark, F5 V* S' H: ]/ X% u2 q
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved6 ] O$ ?8 ]5 Z! Y' `& { c1 V
- ;;; Website: www.jtbworld.com' o; V6 N( ~0 g* X' J; D' I+ N
- ;;; E-mail: info@jtbworld.com
- v* f; k# B- R. h* l0 B# L5 P% X - ;;; Tested on AutoCAD 2002,2004 and 20056 t5 l# H" M( f; Q" T
- ;;; Latest revision made 2004-11-11
9 \7 K2 _! N3 E5 s - ;;; Minor code cosmetic change made 2004-11-13
) A5 H4 j; O, Y* e; b5 ~ - ;;; Bug corrected 2004-12-23
: B7 J/ h/ s0 Z& R" H" Y) Z/ m6 C - . j3 s( t& i7 ]1 `% S
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf8 @7 F( p% X) I5 u1 o6 h
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)# U: m2 l X j
- (setq oldcmdecho (getvar "cmdecho"))
; y6 t9 o; ^" h; S* [# y+ Z - (setq oldpeditaccept (getvar "PEDITACCEPT"))) e0 [3 ^- b# C' v: d. l
- (setvar "cmdecho" 0)
: D' L+ N0 C$ i6 l) F - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))6 b( R8 O8 L5 R; \' N- B' q
- (if A2k4 (setvar "PEDITACCEPT" 0))
6 V, ^& j; j" F7 f - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))8 B' j6 c6 ^9 {$ S' E6 T
- (princ "\nSelect object to join: ")
3 w, J) I5 \% z) Z' F+ b7 B4 N - (setq ss1 (ssget okObjects))# @5 Z( [% u8 H, u* v
- (setq fuzz (getdist "\nFuzz distance <0>: ")). S+ H( F6 [: y) m2 l* F% u/ k
- (if (= fuzz nil) (setq fuzz 0))
6 B! c6 z( U% k; z - (if (/= ss1 nil)
3 ~5 J8 Y4 N! z - (progn- ]- U" H8 j* o
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0)))))), ^! L3 J; r0 M8 a' Q
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
% K2 {, h+ r5 A/ s" Y - (if (member objType '("LINE" "ARC"))8 U. W$ I6 U& q( h( B+ G
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
# V' X/ [) [6 p/ f1 D. l# I7 o% z - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
$ l# \3 R3 ~2 _* F# V& ]0 U, w - )# v3 z7 j1 d0 W2 [' f
- ): }$ [" K3 o, t; W
- )3 K9 C1 l4 `( `: X
- (setvar "cmdecho" oldcmdecho)
" L8 @; \# H G( M - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))% T- j- u8 y4 o, W$ v% @* ~
- (princ)
5 k8 V4 ]! G$ h/ r - )
2 N2 C; B- }9 b" u& V( X - / e7 [9 A C% y" i d
- ;===========================VE CAO TRINH===========================
0 |' i n7 B) U! ~& a- D9 k
: y7 v# t% @$ E5 X1 r- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL& n; [9 l x* r8 `6 g/ O
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)5 v3 S( Q: J" a$ C+ a
- (SETQ OLDERR *error*
1 r: ?: D/ g7 a0 C0 z& r, G" [ - *error* loisb)
. I3 a+ p3 K8 Y - (command "layer" "m" "dim" "c" "" """")
9 O: [1 F& x+ h$ x3 F- C& j. P5 ~9 E$ i2 t - (SETQ CMD (GETVAR "CMDECHO"))
+ m; t, t. n( o/ @: v6 O- o: e - (SETQ NBC (GETVAR "CLAYER"))
) ]* M8 T$ A# `8 P, N" v* k3 o - (SETQ OSM (GETVAR "OSMODE"))
+ w+ F' K. m" L+ X+ v, n5 y- R - (SETVAR "CMDECHO" 0)- J1 V9 r2 D) u. ?+ F: w& h
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
! y: T0 W5 p) e& _7 ]9 i - (SETQ TX (GETSTRING "\nCao trinh:"))
1 N- E! V! i% t0 F. q+ w - (SETQ FCH (SUBSTR TX 1 1))6 D5 o) j9 w( Y6 @+ n! }: B
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))6 n! a p( W" _& Z" t. b9 L
- (SETQ CRST (GETVAR "TEXTSTYLE"))
3 g3 z1 p$ D: E1 V9 p2 ~3 a - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
8 ?2 E* A6 N. ^1 \) E4 Y1 M - (SETQ TSIZE (GETVAR "TEXTSIZE"))
* M" q2 Y* u3 l* c* G9 l - (SETQ STR (RTOS TSIZE 2))
+ O! g" |4 q6 n$ T3 S - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
! Z! j9 c4 k, I0 L3 N* t. D$ k - (IF (= RSIZE 0)) U) j" s# I1 d. o a7 [
- (PROGN
# c8 l$ D! J" ]. D - (INITGET 4)9 t7 f2 m1 D! V% C
- (SETQ TSIZE (GETREAL PRMT))# \, f8 z6 q% |/ i) o \7 I
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))" ^2 F; i1 @- r
- (SETVAR "TEXTSIZE" TSIZE))' P; f) b( f$ w
- )
) D4 p$ O+ C ?8 [: n" j - )
5 U( M. S0 w; i9 m1 M - (PRINC)7 l0 `& z- T/ M! z% _" |8 A
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
; m1 n- |% P9 C6 H4 l9 u" J - (SETVAR "OSMODE" 0)
1 Q' K8 A4 R/ ], ?7 c& e - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
" s* F0 S6 h7 _8 D4 Y8 p0 \6 @; v7 r - (SETQ NPI (/ PI 2))9 e$ z0 g& P6 @- y) o& h2 H
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))& j& D9 A9 x: F' L4 U& a
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
0 r7 \4 k0 q B9 n9 X - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))" f% g0 V7 n4 E. f( v
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
1 F' }; f) j& w1 z2 v, q - (SETQ PT6 (POLAR PT2 NPI TL))
; l, r! Y- P$ c$ h) X; { - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
. D1 f- ^( d" s+ h0 N - (SETQ PT8 (POLAR PT6 NPI (* 1 TL))). i0 e8 P( K- U% X
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))$ a# p6 @; ^; e: A' b1 I9 z
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
1 \* `3 P# f- j - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
# Q8 ]' L- b: S - (COMMAND "COLOR" "7" "")( `6 K5 |) i" T
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")$ [: j' H" l' e' U7 ^. \' b" P
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX)). ?7 @* l' W% e0 y3 n! ^" y; Q
- (COMMAND "COLOR" "BYLAYER" "")! w: l5 q N5 O. m
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "") C! W. K0 @/ l- L" C/ k0 I) N( O
- (COMMAND "COLOR" "BYLAYER" "")& F! u( q1 n6 R3 Q
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
9 V9 R" z! c8 w2 @2 N - (SETVAR "CLAYER" "0")
+ [2 O4 W' Y% _ - (command "ddedit" pause)5 G% F; J6 R) {7 L k
- (COMMAND "COLOR" "BYLAYER" ""); j ]* ]/ u. V, l4 X
- (SETVAR "CMDECHO" CMD)
3 Y4 F: t* _5 @% u" P: o - (SETVAR "CLAYER" NBC); R, _% n' c. D; ]# S7 g
- (SETVAR "OSMODE" OSM)
: a! x% I1 w; x; J: s$ M - (PRINC): s: u" y. r+ F
- )) ]) S* _2 R! \+ ]9 T1 [0 @
- # `2 D7 F% i; c& {! C% @/ U
- ;;; =========================== VE NET CAT CHEO (GC) =============================' w# v1 T: y2 v# \( [
-
. [' U% x$ Q0 c - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)* b/ Q2 |. I/ _! \( J& p" n& H
- (setq x (getvar "osmode"))
/ Z; V6 a$ D) o! V- o' n - (setq p1 (getpoint "First point : ")$ E4 y9 j0 Z, f w8 _" w
- p2 (getpoint p1 "Second point : "))
+ E2 l/ |. D& F) j+ L+ B2 q$ C - (setq l (distance p1 p2))
P1 |" d; T9 w, _, c - (setq p11 (polar p1 (angle p2 p1) (/ l 5))4 {. o: @' j5 y% P( M/ D
- p12 (polar p2 (angle p1 p2) (/ l 5)))
+ R+ j" a5 a/ k' [, | - (setq ang (angle p1 p2))% Z2 Q; n5 D, D% }# b
- (setq p3 (polar p1 ang (/ l 2.5))* V# [1 y7 \ x# `
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))/ h3 b3 w+ i' J9 j e
- p5 (polar p3 ang (/ l 5))
" y+ V8 ~2 Y* u. C" w e8 z1 p - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))# s, M0 h l: g. B0 e: ?
- (setvar "osmode" 0)6 H0 _) U' b: H% ]2 d4 ~% i- x
- (command "pline" p11 p3 p4 p6 p5 p12 "")$ a t" P. M1 b ?# k v3 ]
- (setvar "osmode" x)
. d. g$ T& s, N' b, j2 L - )/ ?, n/ d( R4 f+ ]6 s; X- m7 y
- ;----------------------------------------------------------------------------------
: @- i0 [, S1 E) S+ P9 U$ D5 h. h - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6& a+ |8 f8 }; B- C8 j& p0 G/ q
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))* N. H# f' H) O9 w6 a+ O! K w
- (setq ps1 (getpoint "\Chon diem thu nhat: ")), t& L9 R* B; L. D6 m' P% s
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
: e# p& { L% C - (setq sb 50.0 sh 200.0 se 20.0)
0 Q9 y* h4 n- G8 C - (setq ang (angle ps1 ps2))
8 g$ H0 D* C8 j - (setq pf1 (polar ps1 ang (- 0.0 se)))( l- B6 |7 I) J- K. U
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))! C% K* W* I% y0 w, `4 \
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
1 E6 z- l8 \/ W; A0 t' M - (setq pf5 (polar pf2 ang sb))7 d' u; V( M! M7 v- t
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
' u. k) U( D. y" k+ e1 J - (setq pf6 (polar ps2 ang se))
/ g1 s* ]2 b1 K3 b - (setvar "OSMODE" 0)* Y; }3 u8 }2 E2 @) T3 V
- (setvar "BLIPMODE" 0)" H3 b0 p7 _" U" h& f; c
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
: B5 F8 e, {! E - (setvar "OSMODE" 703)
7 T+ }4 i5 Y2 c5 m3 K - (princ) )' ^* e: [# P% P3 @5 g4 F
- ;----------------------------------------------------------------------------------
! b8 p% G( h5 c- V' i; V6 K( @$ G - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
5 M& p6 G' Y$ H - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))! J, v# t# x- v, z* K! ^6 D7 h
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
) f* J2 U4 d- g7 x - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))) ?# C b5 B. @2 M1 ^: @
- (setq sb 100.0 sh 150.0 se 20.0)3 \3 ~" L! z$ A& l) }2 i7 g% [5 U
- (setq ang (angle ps1 ps2))- r* W) Y) K# x Z
- (setq pf1 (polar ps1 ang (- 0.0 se)))8 i3 [: ?/ B) V. A
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))/ n& w- F6 B0 x
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))). A1 s" z1 d: \ e# c& ^5 b; K
- (setq pf5 (polar pf2 ang sb))
. a4 C" S3 U: w4 j3 a: j( A0 g$ S. Y - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))& `( k/ }! B' M0 A. U- @) ?: Z& e
- (setq pf6 (polar ps2 ang se))2 \( Y. t3 _, C+ i% d% o, i
- (setvar "OSMODE" 0)
4 ^; e8 X* b8 ]& [3 {+ [' o4 a - (setvar "BLIPMODE" 0)
3 M7 @& R$ w3 D& G: h( N; y - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
7 U7 d1 M; U. A# \( G+ k - (setvar "OSMODE" 703)
8 f3 z( ^8 I8 B - (princ) )
' I- _8 P" t3 u( S7 R0 M - ;----------------------------------------------------------------------------------
/ ?5 M v' m4 n: a5 H* p) F% i - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf63 E+ t' {1 l, h! ?1 h
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))0 ?) V& a1 p) Y% J% t
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
. g4 a- k; m$ Y - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
$ m' G9 L6 ^; b) a# Y- F - (setq sb 100.0 sh 250.0 se 20.0)
" U% {1 L5 z& ?5 h z - (setq ang (angle ps1 ps2))
& a. t6 }. l% k - (setq pf1 (polar ps1 ang (- 0.0 se)))# ^$ }' y9 U# _+ P
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
. |( d" @, w8 s' n0 f2 z - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
" ~2 t% L0 O* [& y1 d7 e1 L - (setq pf5 (polar pf2 ang sb))6 w( \0 ?! [% T7 @: ^
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
1 {# j6 a6 g% `% y, B2 W- ^0 R - (setq pf6 (polar ps2 ang se))
4 q7 p: T" p3 U. X5 Z - (setvar "OSMODE" 0)2 s3 M! a2 j% e% [
- (setvar "BLIPMODE" 0)4 x* O. ]# j' i+ U
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")6 ~) C/ l) W9 ^" |; @9 m
- (setvar "OSMODE" 703)
7 Y0 X6 r1 j7 m# a - (princ) ). Z! I- l& P$ ^3 ~6 a3 x2 Y/ ^
- $ Z, O. x6 O1 [# ~ \: u
- ;==================================================================================
, c6 a# X7 c6 w' [1 S - (defun c:ang (/ ent pt1 pt2 ang)
2 O- l9 K ~: T/ n6 L - (setq cmd (getvar "cmdecho"))
3 Z* N! o% `( h. y3 a* F% h - (setvar "cmdecho" 1)2 f( a6 I9 w: c* B
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))* }+ _3 i8 z, b
- (setq ent (entsel "\nChon duong thang:"))7 |, P5 f- T5 t0 m) u# ?, L
- (if ent
. O- q- r: J4 N - (progn) q9 i: I2 @& p3 I
- (setq ent (entget (car ent)))
5 J4 Z: j- u R; N - (setq pt1 (cdr (assoc 10 ent))); \: n$ o5 z& I
- (setq pt2 (cdr (assoc 11 ent)))
% X% S1 x6 i; N% A: G7 p - (setq ang (angle pt1 pt2))* t' f8 V6 T( p, ? u, y4 V
- (setq ang (/ (* ang 180.0) pi))7 z T9 J1 K- `7 r
- (setvar "cmdecho" 0)
$ F- e* [: E4 _) v# {/ Z - (command "setvar" "snapang" ang)( ]* l9 j* t0 X# p# A! s
- (princ "\nGoc cua truc toa do moi : ")
- E/ h& J: q8 [" f# \1 l3 Q) z - (princ ang)
8 t# T5 T+ P0 d% { - )
$ v# c" L! D0 A8 \& E4 Z - )2 Z: W6 F4 N0 N) s# _% T1 w
- (setvar "cmdecho" cmd)
# L$ x* T, |" Y+ f, |. A - (princ)
: Q; u( j+ L% @ - )! }5 S% J% p, u, i
- ;==================================================================================2 m, L- q% r' D( _1 _( g
- ;============================== KY HIEU DOI XUNG ==============================
+ s; J; O7 h8 u/ P - ;================================================================================== i2 F+ V; D0 A
1 {! D. f: U8 l2 n5 R0 w6 k- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
+ k! H- x/ _( Y! j - SZ G45 G135 G90 G180 SS loi)* y! r' _) R3 T$ x& L9 f
- (defun loi (s)1 k6 p8 w0 t0 a! M+ e/ L
- (if (= s "Function cancelled")
& Q0 C9 H' `. z, { - (princ)
) i0 s( w7 ?8 G - (princ (strcat "Error:" s))
4 Z5 f( _! o4 Q( p - )
3 y* U2 p+ c) i4 j. I! J3 H- y0 f - (SETVAR "CMDECHO" CMD)
, ~# r! H6 p" G% R - (SETVAR "OSMODE" OSM)
) w- k) a# Z! b9 B) V! _ - (SETQ *error* OLDERR)
( _( M+ w6 n8 p$ R% n- s* u3 M - (PRINC)
" l2 v9 Q5 n* q! S# c( N( @ - )
$ v' ]8 d$ f. [1 v - (SETQ CMD (GETVAR "CMDECHO"))
! `+ o6 w2 E, t6 C; n H - (SETQ OSM (GETVAR "OSMODE"))
3 c c1 J1 r; a1 U" f2 v: O - (SETVAR "CMDECHO" 0)
$ z1 ^% T& d+ R) z7 F5 }+ X - (SETQ OLDERR *error*
$ x2 N8 H( e% f o$ M, e - *error* loi)9 ~. ^8 b) x6 Q& F; O; `1 c
- (SETQ SZ (GETREAL "Size <1>:"))' _9 j- K7 O- I0 R7 U
- (IF (= SZ nil) (SETQ SZ 100)). W. n) ?- L7 _; i* Z, q& A4 O
- (SETQ G45 (/ PI 4))0 r; y/ j% c. X9 V: @: C' K0 j
- (SETQ G135 (* 3 (/ PI 4)))4 F: y6 J" M( o% R9 m( |" C
- (SETQ G90 (- G45 (/ PI 2)))
d$ z6 q6 s) v - (SETQ G180 (+ G135 (/ PI 2)))
' O5 H4 }) d3 j* } - (SETQ PT1 (GETPOINT "\nDiem doi xung:")) W, e/ q3 D- ?% h3 l( I
- (SETVAR "OSMODE" 0)
, k% d& f7 Q" z5 b" R - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))$ ^& @3 _4 g) P! |& X
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ))). r2 C& d7 [: j9 A& P
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))1 r5 S8 O8 O- j7 s5 O$ F1 ^" o2 g
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
' b v3 f% }3 s& [ - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
% i: H- {0 I5 v - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))0 F# n+ E p! B/ H/ ?6 ~
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
5 R- `! o6 R6 |2 E3 ~! n - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
5 R* O& V# y4 S7 K/ J - (PRINC "\nGoc quay:") D* ] V1 r1 z. \: V
- (SETQ SS (SSADD))* j0 E: y$ j3 W4 _9 B5 I. T" A7 P
- (command "layer" "m" "Dim" "c" "" """")
) I. W* T2 q2 p( z* g - (COMMAND "COLOR" "1" "")8 f& o8 r4 u6 ]. A' ~, `% B
- (COMMAND "LINE" PT8 PT2 ""), V! q! W+ p) Z2 W1 v5 Q8 l
- (SETQ SS (SSADD (ENTLAST) SS))
. C& ]. t/ U- r6 M6 c - (COMMAND "LINE" PT9 PT5 "")
. s, ^, ^6 L( O$ i9 A - (SETQ SS (SSADD (ENTLAST) SS))
; n# J6 f$ X! g5 D. q4 Y& I' @ - (COMMAND "COLOR" "1" "")$ Q* n, \8 p5 N
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
" z1 e$ Z7 t+ H - (SETQ SS (SSADD (ENTLAST) SS))
; E* x/ A& G4 E: l4 m$ C - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
5 s, P A) n! s3 d - (SETQ SS (SSADD (ENTLAST) SS)); r6 ~9 B* X" c
- (COMMAND "ROTATE" SS "" PT1 PAUSE)
* T# [2 M) f8 I6 z - (COMMAND "COLOR" "BYLAYER" "")
3 {' z" V f; @" w3 ~$ W - (SETVAR "CMDECHO" CMD)7 }+ B; X2 h, S% H! K% ^+ N
- (SETVAR "OSMODE" OSM)
% J2 ]2 q- v$ e3 v5 p0 N. P" N - (SETQ *error* OLDERR)
9 M$ z7 y; n4 M( V, q1 y6 t' O - (PRINC)
2 z! c3 V2 \ W$ Y/ U1 N - )
% K( W$ o! j' n9 I; K, }+ Z) a1 X! X
9 Z6 P9 k3 C. q; }- ;==================================================================================
3 e' x, o( r- m6 |9 C - ;================================= KY HIEU TRUC ===============================
. V9 c9 W9 r! x/ A: O - ;==================================================================================3 l' J2 Y: R' e
3 ]% }2 x. r) {2 c' C% T# {- (defun C:vetruc ()# K. \0 |2 Z/ y! x4 K! d t
- (setq bk (getvar "USERR3"))/ x O: R5 s5 f8 c3 ?/ N$ H% x
- (if (= bk 0)- o1 c. D' t0 l6 d3 M8 X, T7 Q H
- (progn
1 N2 `6 }" r6 P! t2 \ - (setq cont "1")
& s7 h& z8 x( e* B7 V. y7 M- u - (setvar "USERR3" 1) }/ C) a* G; C* N6 r1 t
- )1 Q4 I# w/ t% p
- (setq cont (rtos bk))
& }$ F- R, _8 C - )
. @' `0 z+ V _ - (setq pt1 (getpoint "\n Nhap diem dat:"))0 k3 K. @! t( p7 x1 x
- (command "layer" "m" "Dim" "c" "" """")
- V& f' \+ e0 [' Z* @1 q9 n1 G3 } - (command "osnap" "")9 W3 p/ ~, J$ @9 d
- (COMMAND "COLOR" "7" "")$ J! z# [# @* H
- (command "circle" pt1 150 "")
- h# N! ?7 ?) t* E - (setq pt2 (polar pt1 0 150))0 @" J' H: a: p, N
- (setq pt3 (polar pt1 (/ pi 1) 150))* L) b% ^6 J. N: L8 u: |
- (setq pt4 (polar pt1 0 300))6 n" T3 e, S& D7 G$ W) k
- (setq pt5 (polar pt1 (/ pi 1) 300))
* w: H2 a. e- K$ J4 M - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
* ^: b' |3 g+ m% |4 A- l - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
& X" c% r6 q4 H8 d8 F2 s' | - (setq pt8 (polar pt1 (/ pi 2) 150))# [" v4 n9 H, d z' V
- (setq pt9 (polar pt1 (/ pi 2) 300))
8 x5 C6 L4 k# n7 Z - (setq pt10 (polar pt1 0 150))- B$ R' P3 `$ A- K' z8 N
- (setq pt11 (polar pt1 (/ pi 4) 150))
5 w! Z l6 W# C' s - (COMMAND "COLOR" "BYLAYER" "")
3 U; [& m c9 S) A - (command "line" pt2 pt4 "")
0 H) I* D% I7 i2 u. ?* x) o" a - (command "line" pt6 pt7 ""); A+ G$ j: J6 G, z$ G) p( O
- (command "line" pt3 pt5 "")
- K) t* d) i5 M9 ^5 w - (command "line" pt8 pt9 "")
- p8 E, F$ f9 ]0 h) H9 b( f - (setq dk (strcat "\n Size:<"cont">"))$ w8 F6 J7 p) ~' ? f# i4 K! c8 j
- (setq bk (getreal dk))
- \4 ^6 E: J! c4 _* P - (if (= bk nil)7 d9 E" ~. E2 c
- (progn
* T) ?/ L7 s9 a1 ] - (setq bk (getvar "USERR3")); i( n# l; @2 Y) l
- )1 U: p$ \8 e3 r8 Q% N+ m
- (setvar "USERR3" bk)
7 Z; j/ b2 K4 Y6 U8 v* n - )% C: s/ O, w, K
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")) c9 W8 {# l) W2 }( @
- (COMMAND "COLOR" "7" "")) `# t" p1 }+ L, ?$ F ]
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")9 o# X# G9 K" V% p9 h$ c, F; J, y
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
4 C* e$ n) y8 B$ }, ^ - (COMMAND "COLOR" "BYLAYER" "")
1 p2 j3 u" O% a1 O" z2 y) e% ^ - )! {& K0 P' f4 W( H( G
- 5 ?: e$ C5 w0 n4 e: L; S% c
- ;=====================================================================1 W+ w& G- r& e, d9 [* ?7 z
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
# g( n# ~ f- [ m1 A8 W. x- D v - ;1 O( t! \0 ?) h! i
- ;Jeffery P Sanders
4 X. C& o. H; h" D. { - ;* S0 g6 }% P& Q/ G
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)
0 S* {+ [3 g* j5 o) G - (setvar "cmdecho" 0)% Z2 s( f" o# l3 X- G# e
- (if(setq en(entsel)). A: h- x8 y; S: N6 T6 p
- (progn
$ r) |0 ~9 a% O# j- G - (setq enlist(entget(car en)))& z' \+ d/ ]& h& x$ z! Y4 O6 Q
- (if(= "TEXT"(cdr(assoc 0 enlist)))
: ]$ o4 ~+ a; P* Z2 E. {! b - (progn' P X# |# ?# X, L' ]
- (setq tx(cdr(assoc 1 enlist)); z) T. D( X3 `; O
- newtx "" cnt(strlen tx)
4 l6 K/ h0 {# L6 ]3 q- | - note "\n...CASE Reversed. \n "
& @ F, C: t' V( _' c6 k; e - )
+ o+ R: i( \. y8 ` - (while (> cnt 0)
. o0 ]2 T* P9 @* d( ?1 o1 Z# O+ t - (setq tp(substr tx cnt 1))
8 A: H+ g1 z, \; A X - (setq asc(ascii tp))
+ u2 l* D) X* s3 z - (if (> asc 96)
* E C F8 o- y7 V' g4 {- }: h! } - (setq tp(strcase tp))
A2 t- p8 J5 m v* Y, k - (setq tp(strcase tp T))
- K+ x: A! k+ a- m2 O/ g7 t - )0 C$ w9 I/ l! _, k u1 k3 A' p
- (setq newtx(strcat tp newtx)): n3 `( T. i* c, U
- (setq cnt(- cnt 1)) t- M) f6 u0 ^/ I
- )8 P1 B+ P3 N8 o
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))! {. ]. `; s/ q9 ~* U# j' a# h
- (entmod enlist)$ L; W# R8 Z0 a" ?3 s) e
- )
' w5 Z" A, x9 O i - (setq note "\n....Text Only Please. \n ")7 q0 t# ^0 w# O6 M! r: J
- )1 K& c' J# W- @+ L1 \# Z3 g
- )" o, `8 _6 j& P" e; z
- (setq note "\n....Nothing Selected. \n ")
. A. J8 Q/ P R$ u& ] - )$ ?/ B$ k/ n- P! P
- (setvar "cmdecho" 1)
; B: m% E1 _' n6 K8 g7 X - (princ note)
% b1 y+ p4 U4 o! v - (princ)5 J t0 `4 W5 @, i: h) Q
- )6 u6 u- Q E8 t: o* l2 K
4 ?: a' h, g& Q, R5 d4 i- ;=====================================================================( k t& k- D3 Q+ q4 ~9 G$ ^/ ~# J
- ;==================== NEW TEXT STYLE UPDATE ==========================
4 x9 `- Q, [- X" G5 M - ;=====================================================================
6 l: _# G! }1 A. W - ( T$ d/ Y' _& i
- (defun c:nS (/ tdt ssdt sodt index)
" f, t- x1 @1 L* P" z' n - (defun ObjName (ssdt /)% e6 h) c# G5 z# i+ F2 S
- (cdr (assoc '0 (entget ssdt)))3 ^$ c5 d# K" d# z
- )
7 R, c4 F: X$ \4 s4 t* o4 }8 o8 z - (defun MoPL (ssdt /)% {, o# I8 V' x, [
- (= (cdr (assoc '70 (entget ssdt))) 0)9 `# }0 c& ^4 P W0 B* | V& x; b
- )
" T6 {- n" \: }2 I2 c* k - (defun NoiPL (ssdt /) q8 ^4 |0 U a$ P' R
- (if (MoPL ssdt)
) f9 q& t# I$ j1 C - (command ".PEDIT" ssdt "J" "All" "" "X")
3 y0 w9 H) B( V" R% _$ { - )' o" \1 l: \+ {) o9 n. u$ S
- )
0 c. {* L6 x0 F5 [, A - (defun NoiLC (ssdt /)' M# v4 R- C* f& H; j% t
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")) G: t) o0 z/ t. g2 e+ C: Y
- )$ A3 T' C8 Y1 [3 D- H9 ~
- (setq
4 ^ O4 ]# `6 C- S# ]6 r - tdt (ssget) s: P {. B; {7 N: D
- sodt (sslength tdt)2 T. J' [5 {# j. |: C
- index 0
# ^5 N0 W& T! B" Y5 \. _ - )4 h! {: @ h' {3 F" q( M; X8 p3 `
- (repeat sodt
! E/ h2 d! ~3 m# A* z - (setq4 J2 j3 T$ c/ q! o; I1 ]
- ssdt (ssname tdt index)
) j& a, j2 _0 D: `1 B - index (1+ index)
) d" C3 G+ V1 I' P2 v! p - )
" @ A. h/ W9 C& P - (if (or (= (Objname ssdt) "LWPOLYLINE")
8 E" a9 I( o N9 O - (= (Objname ssdt) "POLYLINE")9 U' k" X2 I' L1 n# v( |
- )
9 Q6 |5 g: b0 P! T - (NoiPL ssdt)( n4 ^& V! }: v# w0 G L
- )
+ }# V/ x. M8 a( J1 Q7 _6 K( I/ H+ J8 \ - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))1 W. H* D) ~) m! G0 q" V' E3 m2 w
- (NoiLC ssdt)
. Q* K v6 }! O& ^* x3 s2 h - ), I1 ~$ ~ v. ]8 s, Z# `% l
- )
]. {- i7 `' j) y - (princ)
" C% ^1 S! l/ @1 `) L( ]6 [! A - )% P: q3 c* r3 G8 D
3 y# G d; Q6 \ Z# z- ;=====================================================================" C4 C* s# L8 l
- ;;; AREAM.LSP5 R( B6 F2 I" y3 a& T
- ;;; Function: Calculates the total area of selected objects
) U- D1 k) |' _- p; D* X( U - ;;; By Jimmy Bergmark- x6 I/ P/ @+ D* T
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved+ l& P8 R- b/ ~$ U: z- \" q
- ;;; Tested on AutoCAD 2000$ U! X; W- n3 J0 A5 B
- & x/ S- O: q7 V8 K) e' H
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area); X9 r$ y. c0 ^# P& Z
- (defun errexit (s)5 \6 X9 _0 |9 n# w4 r6 I
- (restore)# P8 b/ [- A5 N, l
- )9 f# s. H& |% d$ C3 G; H6 w* A/ E
2 a: [, S& `8 c- (defun undox ()
6 h) [1 U2 C& H, n/ F - (command "._undo" "_E"). o% d u7 }. y: [; K
- (setvar "cmdecho" oldcmdecho)
# z, S; W7 x- l W0 a7 X. ~+ t - (setq *error* olderr)
8 F5 N; }* c% x* q; M0 n0 P - (princ)
- l& `1 r' ?+ X$ f7 [ - )* q4 v- b9 q/ l, I/ ~8 b
' W5 A4 c3 f. u! b- (setq olderr *error*
8 W/ \( ~1 Z$ j - restore undox
. y9 e2 m8 Q# @5 P' d2 ` - *error* errexit+ v' w2 D1 q' B# F
- )
9 @! [4 Y, R7 K8 T: G - (setq oldcmdecho (getvar "cmdecho"))6 k5 F8 ~* p. B9 U/ j
- (setvar "cmdecho" 0)
) o3 i2 L' c# X* D- P1 Y - (command "._UNDO" "_BE"). F! f0 x: j$ \ q
- (if (setq ss1 (ssget '((-4 . "<OR")
4 r, p, l; @6 ~+ r- f5 r) u - (0 . "POLYLINE")
) U* X, |* t) U% o+ Y9 c" H - (0 . "LWPOLYLINE")
# c* A5 }& O1 {% ]; J - (0 . "CIRCLE")- [0 I1 O! \) k( C! x
- (0 . "ELLIPSE")
! n, u8 l7 s2 k, q - (0 . "SPLINE")7 ~6 X3 S5 U; B
- (0 . "REGION")% ?% r" x$ N; v
- (-4 . "OR>")4 i9 J2 V1 `$ j3 s: s4 M* E
- )
* z/ U+ b7 f1 N! r - )$ K% |2 x) {! X5 K' Z3 ^* }
- )
' o5 ~0 x6 G( e9 H5 c8 { - (progn
$ A ~" }3 q k- h" S6 e' A - (setq nr 0)
. n% @3 m: H, a L4 N- c% D H, ~ - (setq tot_area 0.0)
7 E+ o$ U4 W# i: w% a - (setq en (ssname ss1 nr))
$ q, D4 S; d3 w, s2 L. a- b& r - (while en
3 c* w. d" @5 s - (command "._area" "_O" en)
* _9 E( l7 A. T% R - (setq tot_area (+ tot_area (getvar "area")))3 W& l) s% R2 }) ~, w
- (setq nr (1+ nr))
3 u, ]' q: W! N; f - (setq en (ssname ss1 nr))* q6 q+ z! [# c/ J6 g+ D* @
- )9 I- N w5 [4 }: ^2 P
- (princ "\nTotal Area = ")/ x" x' h t, U* |4 h# S
- (princ tot_area)& T$ a) ?8 f# B
- )
( F J6 \5 t; k - ); s( _, J# q2 M
- (restore); O* G7 i. R, X' m
- )6 a2 h: c, D5 q1 I' E0 m, s
- j: J+ q; [2 J9 }% Z
- ;=====================================================================
) I! B0 c3 }% x9 A8 B - ;;; By Jimmy Bergmark
! }; H2 k' l" e& d7 s - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
& n8 H' v4 V- a5 ]9 \2 y4 s, \ - ;;;
- h2 F+ S9 X+ |8 s/ [4 ~ - ;;; Created: 2008-03-315 }% f( z) o- }
- ;;;$ k# w( I; F) u" B. y, T5 Q
- ;;; Convert Attribute definitions to mtext
+ m: S" K' B# `* M8 u. m - ;;;
/ z# d! w% p% r2 E9 h5 u& H
) ?- W/ I- d; {- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
# p U5 s4 a) ^9 O& F - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
, R" T" X( \8 E4 _4 q! H) |$ v' x - blkcnt 0" A& u/ W. E9 I. o& j2 \
- )
, v7 _4 } ~ h
5 f8 J5 J. ^. ?5 g7 A: m. a ~- (if eset1
5 k. u+ M+ S' k3 O- T - (while (<= blkcnt (- (sslength eset1) 1))- k- \# S' T5 T- I
- (setq en (ssname eset1 blkcnt)& S# j6 h9 g( |" {0 d4 s* ]0 z7 C
- enlist (entget en)
" b) S1 L3 t- X$ |0 F - ht (cdr (assoc 40 enlist))
& d U: A* n9 T' T5 p' e, {7 m - pnt (assoc 10 enlist)' |5 }' w- s+ v6 J! S, B8 I
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
) ^& v( f) T- @: h - space (cdr (assoc 67 enlist)) G# Q, h1 W9 \3 }& D8 y- d# s
- )
1 G, P( e" S: t+ P% v+ K+ l" [ - (setq vl (list% c2 W! c& |" B" J( F: K: @
- (cons 0 "MTEXT")4 M7 L' R# l5 b! R
- (cons 100 "AcDbEntity")
5 ]2 B T( H: z# t - (cons 100 "AcDbMText")) o0 k$ y5 t! T, t
- (assoc 7 enlist)
7 D' o" B! c6 \: X& E6 g+ ? - (assoc 8 enlist)0 e; ?" ] [: h# m0 D
- pnt) ~4 k6 |; m+ E# R: Y( D
- (assoc 40 enlist)+ _8 @% @0 o: G, K0 }
- (cond ((assoc 62 enlist))
( \/ X i7 {' ? - ((cons 62 256)); \: T0 L; H- J a' c9 b
- )
' q* b, d# V/ _ O9 e- N9 \ - (cons 1 (cdr (assoc 2 enlist)))
* D. F! _2 r; x, P% _ - (if (= space nil)6 E% i- o- b2 ]8 d( e
- (cons 67 0)
! u" G# U9 t4 L6 x# k4 X1 W* o - (cons 67 space)
8 G) y+ h0 }$ `* g1 c s5 ~ - )
5 H. W; P. T Z9 l - )
0 C' T. x/ G8 c: V6 P! K- R - )
, `' _# }9 k9 n3 [, q) [! |1 d. P& b - (entdel en)
, Z5 {/ N' f8 u- b7 z$ y - (entmake vl)/ K+ \5 ~3 u) C% R# q# w
- (setq blkcnt (1+ blkcnt)). @; U6 Y r! p2 R6 F1 e
- )$ X4 v4 V! ?+ K8 Y. G" U7 i
- )- x) b9 l% b. L6 j- p8 @3 h* Y
- )$ u/ c% ]0 g# Z, z# `
( X! b/ H3 K0 X2 @- ;=====================================================================0 p% ~# O7 m5 X# v( F! Y. f- m
- |' w: m M! U6 L" |! a# s
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
3 a% k6 b) Y4 r0 T6 V# B - ; Khoi dau cua chuong trinh
7 j& y5 j# G, u - (princ "\nCopy Inteligent...\n")8 F4 Q& }! U6 j1 a" ~3 ?
- (setq luuecho (getvar "cmdecho")
" P+ D. Q: {* L( l Y7 } ` - luu *error*8 f5 a y* z1 [, r+ ?/ j
- *error* ketthuc
0 `+ t6 C* [# [- F1 B+ B - cumdt (ssget)
% g& a0 i/ P& r - dodai (sslength cumdt)
+ u* W( G9 W7 L# O: y - goc (getpoint "\nSelect base point:")) m6 `: j9 c) }- h% M& n
- thoat nil6 S7 M; G' H" l5 F& r' b
- dem 0
9 N& c* H' k. K7 B( z. \5 b2 H - textxl nil
" A" B3 X/ x* O* h - );
: V# K. g/ ^6 b - (setvar "cmdecho" 0)* r$ m: O1 ?3 j( e: X* G6 e& V
- ; Loc ra duoc ong text de xu ly5 g N8 z U& q* W8 U0 I; |
- (while (and (= thoat nil)
\/ T R$ F2 W* W7 c3 J; p+ r5 N& O - (< dem dodai)5 L' |3 y! |! ^
- )
' c' ` P9 k# L% ? - (setq ten (ssname cumdt dem)2 D* a) L: X0 p" c9 f
- dem (1+ dem)
5 h$ O) ]1 n x - doituong (entget ten)+ \: ]$ X/ S, ?+ X2 Y( o
- kieu (cdr (assoc 0 doituong)) ; [, Q7 ]5 K$ }/ v
- )
* u( ~% \& h V9 }8 X - % u1 v& `/ U r( E8 f# v0 H$ F
- (if (or (= kieu "TEXT")
: g' H# J% R# E1 M9 V8 V" ] - (= kieu "MTEXT") ) j- n5 I: ~2 J; }8 L, T5 G
- )* h& g" b( n% ]" r$ m
- (setq thoat T
( B! I3 |) H3 R( E7 b/ g - textxl (cdr (assoc 1 doituong)) . a( A% {9 l; `& }. f
- )6 `8 c; `( f& o4 p- K9 [
- )1 F d! Z- b* v- V
- );9 C% j6 t) q% M% u* w
- (while T / j3 e9 V) F! U8 v
- (setq toi (getpoint "\nSelect next point: " goc)' b/ h, k: z2 X' X5 `
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
) ^! N1 t8 _$ l - dem 0
' a- z5 F) A [& Q7 B' X - )5 T. e- A: {! h$ X
- (while (< dem dodai)5 R. k( J# V B! U$ B7 `: y
- (setq ten (ssname cumdt dem)$ ?/ R7 @$ j& A- |. {
- dem (1+ dem)
" _% c" T2 F. d/ k3 i - doituong (entget ten)2 G6 i$ @9 q% N2 L
- kieu (cdr (assoc 0 doituong)) % ~" w! U5 s/ I& o, Z* n
- )
) l; y) `0 Z- s" R6 B
% }) G. O2 O+ `7 A) ~3 }2 F- (if (or (= kieu "TEXT")7 K9 o- u; _/ K2 Q' J4 }, Z
- (= kieu "MTEXT") ( u. ?& w5 ?. Z. C
- )
7 N/ r" Y8 q+ i2 W. M3 a - (doitext ten)) j0 N0 E: C0 F, g Q! d" l
- (copy_dt ten)3 b& d& w1 o! t z# B+ a. U' z: F
}" G0 `2 j( z8 V- );if S/ B7 `, v% S# c+ I
- )1 E( J' B6 H& w2 x% h
- );while% [ L% d' U0 o- c4 [, i
- (ketthuc)
. u) k7 h, q" M9 E1 ^ - );defun) g' {+ s' ^9 `& k: o4 M) b+ s
- (princ)$ v0 m$ t+ W+ c. s
9 t* G; |3 f. o, I/ A/ O- ;=====================================================================) H8 ]3 I( [9 Z/ L. O' L
- ;;; By Jimmy Bergmark
% N; m m# L' V$ `3 B - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
+ r1 I/ x7 z# F, ~" D - ;;;6 Y, j/ r2 u0 ]' P" E0 }
- ;;; Created: 2008-03-31- y# P4 k w* F; t& G% i" i
- ;;;; P0 V/ G; m* T& U9 ^4 g
- ;;; Convert Attribute definitions to text9 f6 \2 y$ P9 j0 t, t. _' q
- ;;;
2 t- W. k. e6 W2 ~& a2 Z% l - * b$ E- J- U' N
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)! V3 }" B- N/ ~
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
6 n' D% G0 e _8 o - blkcnt 0
2 b% I: D) }/ d - )( [3 Z2 d: J; f/ ~& U8 ?5 r, o: F
- . [3 M' e4 l% q J& o- {& a( A
- (if eset1
# c9 }* v! f; Y( [+ ~3 o - (while (<= blkcnt (- (sslength eset1) 1))" T- K4 ~5 D" |4 M* ]
- (setq en (ssname eset1 blkcnt)3 Z% @5 \, U, K2 r/ f
- enlist (entget en), s5 ?* e4 ]; D
- space (cdr (assoc 67 enlist))' B0 d$ s" i( w1 {
- )
: q' \& m# B" o - (setq vl (list
^ `+ \: D7 Y J U. f# o - (cons 0 "TEXT"): Z9 S9 Z. ]: k+ t; q4 o
- (cons 100 "AcDbEntity")2 e) [2 y3 k& ^3 Y
- (cons 100 "AcDbText")1 B; e) P9 q9 J( ?3 d* l* ^ ^& F
- (assoc 7 enlist) p" i' s. P4 R+ [3 G# ^
- (assoc 8 enlist)9 m S, H/ A g# k/ F
- (assoc 10 enlist)3 S$ Y; ~3 \6 y8 _" ?
- (assoc 40 enlist)2 K3 a# A. i) s1 K5 F% f$ V
- (cond ((assoc 62 enlist))
( F# V3 z2 \! O) {) y- C* i- {8 m& M# b. i - ((cons 62 256))5 Q( j! l& }4 t2 E
- )
y: O' F0 @# L& m" M/ g - (cons 1 (cdr (assoc 2 enlist)))
, ~6 [+ a) E1 a7 u - (if (= space nil)
: t5 O, b3 X3 c+ r: c ]! i7 i - (cons 67 0)
/ c0 G) s; s! B. w5 u - (cons 67 space)
6 }/ {$ p) p2 Q* N3 H* S: I9 q - )" ~+ ?9 T6 k6 y- Z
- ); M8 a6 X! P [1 l/ p; i
- )
! D% j5 Q' q5 F4 _& v* M: J, l, v, j - (entdel en)
2 y6 e. |7 F! j1 P; Q. H& H0 o - (entmake vl)
2 N0 n2 m3 D3 A: f& j7 f+ c - (setq blkcnt (1+ blkcnt))
1 B' b1 j) ^7 z; U, c; s, W4 t - )! X4 i; K, v& C# O
- )
% V! g, A: i/ c( _) w - )) E6 A+ {+ V, p
- ;=====================================================================
" L! z5 }% Z4 S+ x) h - ;============================ Doi Truc ===============================# t g% T" p9 I
- ;=====================================================================! [6 E A% Q9 |$ O/ c
- - p9 _( ]% a6 m( A h: j; e o v
- ;=====================================================================( @" s9 b5 p0 ?" q
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============, h, t) x) H" n! u8 {1 R" O
- ;=====================================================================% s& K0 p) X' J0 p# n
- (defun c:ga1 ()
7 {4 N1 ^% n4 R6 p5 C - (setq a (getpoint "\nChon diem: "))
7 m+ @+ z1 B) u+ H% ^& F/ Y3 `% s - (setq b (getpoint a"\nChon diem: "))/ z: g6 Q8 |" X& H) s c+ b! M
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" W3 ^7 W' t# G1 f2 S* O: {/ Q5 g- S
- (command ".circle" c a)# ]+ K$ D2 R% Y$ P! `3 d. _; {
- (command ".line" a c "")# s3 o' o. B0 b/ X
- (command ".array" "last" "" "p" c "1" "" "")3 g0 l% r. W" ]" i; K! S
- (princ))* U4 _! d7 u, P6 |
, U7 D2 h$ F$ t, ?- (defun c:ga3 ()5 m* H( e- B; R( c& N0 @) N
- (setq a (getpoint "\nChon diem: "))* p8 v" }6 T; w" c# z
- (setq b (getpoint a"\nChon diem: ")): b/ |& r- b" b5 @% ~7 b
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). g2 k2 b9 }. r( F8 r- s* m/ h- `
- (command ".circle" c a)
# Q' o9 _: S8 a3 a3 o - (command ".line" a c "")
* z- z0 Z$ X) C% X" x - (command ".array" "last" "" "p" c "3" "" "")
- ` U& w- L- {3 T" K4 }# h - (princ))- T7 m7 s: J4 k" |% U" E' w
- ' U! H2 t( L9 V# [5 I8 c, m
- (defun c:ga5 ()) a Q2 G3 K8 [5 v* t* R
- (setq a (getpoint "\nChon diem: "))/ B4 q9 o: k3 X) `
- (setq b (getpoint a"\nChon diem: "))7 z# c, o+ X4 w/ J
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, i4 I& `, Q+ b& [+ | - (command ".circle" c a)
9 i' `' ]% ?4 k' d( P0 I5 I. K6 e4 P - (command ".line" a c "")+ X4 c$ P# v4 y2 N9 d# M# m. b+ j
- (command ".array" "last" "" "p" c "5" "" "")
6 _7 ?6 B" D3 V! h) b - (princ))
6 n4 }' r0 x- c& U' d. K' Y" S
/ Q3 |) v$ {# s1 z! Z- (defun c:ga7 ()- m+ x3 B( K' K3 P$ y
- (setq a (getpoint "\nChon diem: ")); j4 h' C2 T+ W4 l" Y. E1 D8 }
- (setq b (getpoint a"\nChon diem: "))
9 t/ U" c" D) n0 N - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ a* T3 S8 g& ]7 s- \4 C# s
- (command ".circle" c a)' z U: c! p0 K% h Y
- (command ".line" a c "")
/ @0 S) c" P& F! ^) }) v1 | - (command ".array" "last" "" "p" c "7" "" "")
1 c* u+ I. g# s/ |- _ - (princ))/ [) e/ A9 A4 M |3 K. f' z% H
+ D' u5 \1 c/ ]8 p" ^- r9 \- (defun c:ga9 (); n% q* c3 }1 x* ^+ S* L; G
- (setq a (getpoint "\nChon diem: "))
+ u5 x" g6 a5 J. `) R. r, N* ] - (setq b (getpoint a"\nChon diem: "))" ^# p6 c3 J. s
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% g R. f$ U4 u [" U8 y, E f - (command ".circle" c a)5 r5 S" y8 y) H6 ?! }
- (command ".line" a c "")( S* J R( D! l7 b% O5 n* Z" x, U
- (command ".array" "last" "" "p" c "9" "" "") {' ^$ i! h J/ N8 G9 q' C% ]
- (princ))
$ U3 m; s& G( i4 I - . B5 r/ I4 t4 e3 M2 k
- (defun c:ga11 ()) f, j. ~6 [7 g
- (setq a (getpoint "\nChon diem: "))
/ }* q" B `! {5 W# Z - (setq b (getpoint a"\nChon diem: "))$ J. O1 U" c2 U) ^; B3 {& r* |6 ]
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 |+ a/ k" O% Y: Y2 m9 ~. i
- (command ".circle" c a)) `7 E) E! Y: i- W" L
- (command ".line" a c "")
R- c9 K( J4 q" q* P - (command ".array" "last" "" "p" c "11" "" "")1 s" x* w/ F3 I0 x' f; S" ~& G
- (princ))
; M! t1 O" a" K% e# I1 ^: G, ~
" o8 }7 u( Z; z# b- (defun c:ga13 (), J; Z& p( ]; k8 a9 M
- (setq a (getpoint "\nChon diem: "))
6 [2 ], F# W) [1 L2 _8 \1 ^ - (setq b (getpoint a"\nChon diem: "))
6 G- [$ k6 j/ k& y7 S0 f - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 T- [8 \) N4 r F
- (command ".circle" c a)
. d. o& g& r+ V `% \ a - (command ".line" a c "")' x2 `) P( x) i7 i
- (command ".array" "last" "" "p" c "13" "" "")
" \6 V3 X& W7 Q' a$ c - (princ))( Z) }# h( t M1 R) q( r6 e
. j$ x) F. |9 ]- (defun c:ga15 ()+ W9 `% M3 d( f2 v7 d
- (setq a (getpoint "\nChon diem: "))
8 }# d, p% c5 j2 f( u% P+ ? - (setq b (getpoint a"\nChon diem: "))
- h& e6 v4 L' T7 \ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& o& K( F- I$ |. y! x8 [" b - (command ".circle" c a)
! p$ s( D2 f: l3 v. ? - (command ".line" a c "")& @$ b% N G+ O9 _0 F5 ?
- (command ".array" "last" "" "p" c "15" "" "")0 x+ g8 A+ d4 X8 L& g6 h" k
- (princ))
7 H5 o+ `. e# D4 T ?/ t: z+ B) F3 F - & c2 e1 P( f8 U1 R: B
- (defun c:ga17 ()
5 q- C9 Z W1 u2 ^ - (setq a (getpoint "\nChon diem: "))
+ |" E! e3 U, d" a# l - (setq b (getpoint a"\nChon diem: "))1 `0 s' W. F: H B3 ^
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" R+ t; t* j9 i' j
- (command ".circle" c a)
# V% V( C" r* o - (command ".line" a c "")4 U9 K* |; J0 \+ v: y
- (command ".array" "last" "" "p" c "17" "" "")
. X d0 |' V) ?' s: V6 U( J1 j2 d2 [ - (princ)); K* c) x: w7 U
- ; j Z3 k2 Z7 B$ Q' f- X; f
- (defun c:ga19 ()# A% v8 A2 C5 n0 l: ?. E; y
- (setq a (getpoint "\nChon diem: "))
r1 g9 P, T7 ^+ \ - (setq b (getpoint a"\nChon diem: "))
V0 P) x# k( a# {0 q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( n3 N$ L) l& C( `( ?+ i. X0 c
- (command ".circle" c a)
1 S3 r2 _# I5 N+ c+ V, S - (command ".line" a c "")
$ h: a! t1 s" h1 s+ S - (command ".array" "last" "" "p" c "19" "" ""): T: P1 R8 L ]+ U* U
- (princ))
, w A/ M0 r$ i4 p% W _% E - % U. { X( I* S! |: o
- ;=====================================================================
9 d3 M% E5 ]4 l - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============, V: q. ^# |) c* Y* C: {/ F
- ;=====================================================================2 b3 R# P3 |) G8 e9 y9 ?, a
- (defun c:ga2 ()% L8 n: b8 G# H* f% | v
- (setq a (getpoint "\nChon diem: "))" i) {# V! ? ]6 t' D3 T/ m
- (setq b (getpoint a"\nChon diem: "))7 ?* J& l. y( z. X$ \4 J
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ f+ |* D$ _1 _, L$ z" x - (command ".line" a c "")
! L; D# p4 H$ J: D0 ]) E: }1 \ - (command ".array" "last" "" "p" c "2" "" "")1 j* Y9 U7 O1 Z+ ]. v' [# F: o1 {
- (command ".circle" c a)% E2 \' s2 q' K8 x7 v
- (princ))3 h) Q {7 \* u: ]
* `: o% U* s" G- (defun c:ga4 ()
" Z/ h% C% U7 H+ [! q. \; z - (setq a (getpoint "\nChon diem: "))* y \+ {+ P/ P; {
- (setq b (getpoint a"\nChon diem: "))
, F4 a3 K) U: F. J/ t& Z) |2 } - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" V& X! [* e5 t% K/ I; ?4 d
- (command ".line" a c "")
$ o R0 c7 X4 G ]% [3 z - (command ".array" "last" "" "p" c "4" "" "")* k; g9 _8 |8 W
- (command ".circle" c a)+ _8 ` g& t8 K# s: h( C
- (princ))7 f+ h0 n5 A, k5 ^
/ T! K+ `+ O4 e7 b* M) o- (defun c:ga6 (), \) m$ `* C9 K7 O' X4 W
- (setq a (getpoint "\nChon diem: "))
8 f, d- y5 ~% J8 i - (setq b (getpoint a"\nChon diem: "))2 M2 ?5 Q/ L; S. r& V
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 K; W" \, {3 u! V2 u* o" n5 ~2 { - (command ".line" a c "")' G5 V; p0 v* R2 a7 i
- (command ".array" "last" "" "p" c "6" "" "")/ X% \" K* N9 C+ i) l: I9 t
- (command ".circle" c a)
8 o( Q& _6 D2 b; }# u9 A `9 p2 w1 A - (princ))
- V. ~8 I, A$ e, r8 N, T; Q
& V- P+ z% ]3 s0 O( p: T- (defun c:ga8 ()
1 w6 L' p) `- c: g' k - (setq a (getpoint "\nChon diem: "))2 [4 @. n3 ?- O% }% _# N6 ^ x m
- (setq b (getpoint a"\nChon diem: "))+ b' R2 }8 E# \8 ]! P- l, _
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 H6 }! x' ~7 a$ ~/ }1 a4 t
- (command ".line" a c "")
) S* l5 P& W ~: \8 L# C - (command ".array" "last" "" "p" c "8" "" "")9 M- \3 l: P, n( b
- (command ".circle" c a)
4 r% G' v7 ?" G - (princ))8 ~# t2 k1 n% g" P% d: f" @
- 3 U0 t6 w {9 j3 g" q# \
- (defun c:ga10 ()2 f- Z V' o9 |! T2 ]
- (setq a (getpoint "\nChon diem: "))
4 _9 Y l1 u2 l8 N5 B! S - (setq b (getpoint a"\nChon diem: "))
6 @. P( n' s* M9 `/ q6 P; T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ @. f% ]. Y/ Q - (command ".line" a c "")+ l( `( x7 E! ?
- (command ".array" "last" "" "p" c "10" "" ""): Y8 X3 @4 ]: e7 }* {# C+ n
- (command ".circle" c a)# t; I2 l4 V1 Y3 ]- t7 N- n
- (princ)). q, J! O: r1 q4 O h! ^8 l" b
7 _$ u, o1 V- U3 D( \; h! B) D+ r- (defun c:ga12 ()
9 h. d8 |: }4 G1 g: p, q; z1 W - (setq a (getpoint "\nChon diem: "))
5 I- l, Y) L! Z: o! F v* j - (setq b (getpoint a"\nChon diem: "))
4 M, B( p5 G" p; _4 x) r' _, a - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 T1 v7 i4 n+ {4 u/ v - (command ".line" a c "")
& t) m; i0 I7 A: G0 ?6 ` - (command ".array" "last" "" "p" c "12" "" "")9 f2 E5 j ~3 i9 p# e$ q
- (command ".circle" c a)$ T. i" c8 u3 w$ F# Y+ s* O
- (princ))
4 `5 f7 S' y3 R/ d7 N3 J
) b b' G( u* A3 W0 w$ c/ Y% c- (defun c:ga14 ()# l5 g& i6 C+ y& W' @7 g: j
- (setq a (getpoint "\nChon diem: "))
. Y- w" B# e9 P5 U7 g8 | - (setq b (getpoint a"\nChon diem: ")); V4 V) Y ~% e% u. u$ [$ h" h' s L! ~
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" z+ |- L( J) b+ ~6 P - (command ".line" a c "")
% Q3 L- {7 g( e- v - (command ".array" "last" "" "p" c "14" "" "")$ u0 C6 P) \+ Y
- (command ".circle" c a)
; w; m1 ?- b+ k2 R - (princ))' f. p5 P* W7 L5 z
3 A' R9 ^+ J; H) ]1 N- (defun c:ga16 ()8 Y; t3 J5 W& ^5 g" m
- (setq a (getpoint "\nChon diem: "))# C1 H' n% G: {. r
- (setq b (getpoint a"\nChon diem: "))! ?5 i+ ^, j9 v& H7 B( ^7 I
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* G1 ]9 I. A- V3 V0 b4 d - (command ".line" a c ""): _2 {& A( T, g7 `
- (command ".array" "last" "" "p" c "16" "" "")
0 j+ m9 ^2 L; P* p7 ?* W4 [ - (command ".circle" c a)( X6 O- q6 y ?$ x+ x/ d& O
- (princ))/ D9 n2 l7 w a' m& y- t8 C) W
) Q& m% N# j0 u- (defun c:ga18 ()
% _' J7 v5 T- U* Y( q! a+ o - (setq a (getpoint "\nChon diem: "))
3 r: H W( z8 S3 s; r - (setq b (getpoint a"\nChon diem: "))2 A5 r {) y* u: e9 z, H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% `' ^8 i9 s5 |* Y. _ - (command ".line" a c "")3 V/ H: G! c' J5 P* U. L
- (command ".array" "last" "" "p" c "18" "" "")7 ?7 e |! y, ~ o
- (command ".circle" c a)1 B( g4 L. Q5 K2 w
- (princ))" F. s' z6 K* k/ ~+ S" q% D
- , U( f, T- O/ t
- (defun c:ga20 ()* k6 c) c9 ?+ m5 x! r: ?0 w- m1 M
- (setq a (getpoint "\nChon diem: "))
" A0 z4 W# y0 h! }- U2 ^$ a) D - (setq b (getpoint a"\nChon diem: "))
6 P6 W. U" F8 x - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ Z/ H, ]* @6 r5 P: ?* j- u - (command ".line" a c "")
, V) _4 n/ H& C* t. V - (command ".array" "last" "" "p" c "20" "" "")
" ~6 o% F5 P# M# o3 u - (command ".circle" c a)
) {7 b0 n5 Y( s - (princ))
. ^* W* A5 A9 f7 r
9 O# `/ f* c" u) }: E% H- ;=====================================================================
; q, h: z) m8 H" z0 x: I - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
8 ?1 a" V8 J* Z. E( n8 i - ;========================== 06-11-2016 ~ 18h00 =======================
7 D9 R' x# L2 J - ;=====================================================================, {7 v3 R1 J7 m. y
- (defun c:ga ()# E2 {: l0 H7 O$ H7 `
- (setq a (getpoint "\nChon diem: "))
! m. V( `0 z! F8 i+ y/ M4 I, y - (setq b (getpoint a"\nChon diem: "))' Z% J" R9 [* C: ?
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 Z1 Z1 {0 j% l$ } - (command ".circle" c a)
0 Q$ z# p- I g8 q: P - (command ".line" a c "")
; K% ^+ Y8 a' K1 Z& E3 [! e, p7 k1 x - (command ".array" "last" "" "p" c "NUM" "" "")
( h0 F# R. T& K+ q3 t - (princ))
: ^' X0 u; b# O% V7 Z% u5 p* o: M
- j% B y+ B6 o; N$ V- ;=====================================================================2 v: n% d ~: ^0 x+ r
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============7 o4 _7 M) }5 N! [: }, W2 M0 }7 E8 ?# V
- ;========================== 06-11-2016 ~ 18h40 =======================
q4 G/ A6 y* x4 L - ;=====================================================================
2 q4 Z& b$ \* o ^
$ K3 M1 [% s% z9 p1 Y7 l6 w1 a- b- (defun c:hoathi (), ?! N) l! \, |* _
- (setq a (getpoint "\nChon diem: "))
9 Z! d0 u- e4 X - (setq b (getpoint a"\nChon diem: "))# h+ \" b2 i/ ?2 L8 g0 C
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 u9 G# T! y" q# d& O
- (command ".line" a c "")( o$ ?! l! x9 Z) |
- (command ".array" "last" "" "p" c "NUM" "" "")
, ?8 i0 ~/ C7 K) G! s; A* P - (princ))
9 E) m9 V& d4 m6 l. r - : ?: r* X% p- l) y4 b- U
- ;=====================================================================
0 f9 [- X7 L, I: G7 T - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============; F6 M g% {" ^8 ~2 ~: l
- ;========================== 03-11-2024 ~ 19h33 =======================- }, Q5 s, R) c( E+ t* `
- ;=====================================================================
! Y8 R5 Q/ y6 ?8 k; x) a/ ?6 ^9 t- B
5 O9 J2 r Z& f( c0 W2 `: N- (defun c:cung ()
( ?+ g& F* G' t - (setq a (getpoint "\nChon diem: ")); p g' j( l1 v8 C9 O1 e
- (setq b (getpoint a"\nChon diem: "))
/ t8 M* |" @- B ]) } - (setq c (getpoint a"\nChon diem: "))
, [7 n. I7 ~/ W5 H! _1 ]6 S - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 j) T7 k, n/ h3 ?5 r - (command ".arc" a b c "")
1 x: I, S1 a. A$ W - (command ".array" "last" "" "p" c "NUM" "" "")
( ] c5 b; m$ S' n/ {% Q% ^ - (princ))
6 A8 |6 y8 \( ~. @8 F. H+ A# K6 }
1 k4 |& i1 M: p! J/ K- ;=====================================================================/ C1 |& h% a0 p9 ?. p
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============9 T K" Q6 ?, i8 J0 j' X* e
- ;========================== 03-11-2024 ~ 20h02 =======================0 f5 m' o. z% [2 l( L6 v0 W
- ;=====================================================================
; ]# o. b; D8 H4 }8 S3 V+ H - ' S% M8 @" T; q* n1 I# l
- (defun c:hecloic ()9 B6 B6 r( ~+ _& |7 [# I
- (setq a (getpoint "\nChon diem: "))
' F" S6 ]( Q0 \" x+ W, q - (setq b (getpoint a"\nChon diem: multi "))- R2 a' _, u4 O* N# J9 N. G* R0 H* ^
- (setq c (getpoint a"\nChon diem: "))(princ)4 r& O8 B2 d f
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 M: b6 S2 |* F9 G; e$ }- j
- (command ".arc" a b c "")" ^0 ~) T5 ~# i, [
- (command ".array" "last" "" "p" c "NUM" "" "")
0 @0 G1 s, R7 G* `9 @ - (princ))
+ E3 o3 D6 M8 g! h5 Z- G
5 ]) j8 A+ U% ?" h6 u) z" J- ;=====================================================================
* q8 C! I' E( _6 ] - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============$ S; s- F+ K& `- |
- ;========================== 03-11-2024 ~ 19h38 =======================4 `! }3 L" }1 L
- ;=====================================================================
' l5 ]: w. E* {: Q! g0 i& ] - - S6 |, u7 T$ p: z
- (defun c:gay ()
0 G+ k, E* R4 n) t - (setq a (getpoint "\nChon diem: "))
, M2 ^6 ?% V% h8 o& e - (setq b (getpoint a"\nChon diem: "))
- h2 o# D2 o e4 Z3 C - (setq c (getpoint a"\nChon diem: "))(princ)
- [1 q+ l$ q' t5 g - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! I$ ?: _4 t, Z# u
- (command ".pline" a b c "")+ @" w$ v9 J9 }2 a
- (command ".array" "last" "" "p" c "NUM" "" "")! r4 n5 d% _! k
- (princ))- w/ ^9 [, V2 n
1 }9 Z" W2 k$ r6 @% l* k+ }- ;=====================================================================& X3 F. n/ g8 ~* W& `; e0 I
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============! [, l4 w- n9 ?* {
- ;========================== 03-11-2024 ~ 20h02 =======================
* ^9 T+ ?" D* P - ;=====================================================================
( w% C0 p6 x& _, g
% h# A4 E: X' |9 n' P* b' Z- (defun c:hecloit () M- p& R' M' C+ D) m+ w% ?; y7 e
- (setq a (getpoint "\nChon diem: "))
' Y- ~3 C& |" e - (setq b (getpoint a"\nChon diem: multi "))9 o) r5 M7 w! m: Y
- (setq c (getpoint a"\nChon diem: "))(princ)$ a4 D6 `! S$ d- m0 n
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 A7 Y, n" z; b3 I5 V
- (command ".pline" a b c "")+ u- n" @5 n/ O9 I% O
- (command ".array" "last" "" "p" c "NUM" "" "")
1 C: h; \, D8 D; X - (princ))% Y+ t1 n8 \: i( p& c
- 1 D4 q9 h6 h, e1 E/ \. e) c
- 9 J% i7 a: y, N: w- V3 A# w
- ;;; ============================ Merge Hatch =============================
0 E4 d9 Z; f4 A8 \4 K! O9 A
8 O3 {9 d# v6 a7 f/ L+ l- (defun c:mh (/ ss entht sl i dt dtht)
n: @" w) ^/ U8 r) Q" ~
- M! F% S- M5 n8 e$ R3 a& n- (princ "\nMerge Hatch - free lisp from CADViet.com")
3 {* M1 U" f# n
. a1 U. o- b: ], s7 K- (setq
% K. G% q3 R1 ^7 Z - ss (ssget '((0 . "HATCH")))
+ {( B/ m' P- f, b2 t% Y+ N q {* D - sl (if ss
0 G0 T2 p7 u2 t( ]' @" B - (sslength ss)# T8 T, S: t9 s4 J P% B! Y
- 0
" I0 {8 a! L8 a - )
2 I# d; C$ C: U+ W - i 0+ @+ o' ^& n& z7 e
- l 0
& i: K) ~* U: o - )
1 g% p+ l: V1 y6 g
# ]; g) H/ k! |/ Q4 s- (repeat sl
5 l4 M& `; [$ [# E, p6 }9 f - (setq
. R: ]3 X( D* I& N& S - entht (ssname ss i)
" {1 q; q2 E3 k6 D0 ?" R& g - dtht (getbdata entht)
5 O" t/ a6 y& |3 ^. l0 S; f& [ - dt (append dt dtht)9 j+ u& h- A7 {% _+ d' I) W" W
- l (+ l (cdr (assoc 91 (entget entht))))3 T8 S7 x! e0 I" m- K
- i (1+ i)+ P! |9 {3 M6 k5 k
- )
- C9 F5 t Q3 u, G) U( o - )
3 h( m% C* |1 ^$ |& U2 V0 ?
' ~) ]3 O0 l; K$ F% ]# R& B3 U- (setq ent (ssname ss 0)
3 |: ~2 r0 A0 g* }6 ?; q: w - ss (ssdel ent ss): P, I/ w, h/ c4 l- H, i
- tt (entget ent)
* u: k3 p! L2 l$ b9 ~* Z5 \ - duoi (member (assoc 75 tt) tt)( B- k4 a* O5 j
- dau (reverse (member (assoc 91 tt) (reverse tt)))
' B% L: Y+ d7 Z7 X( x+ M: c% ` - tt (append dau dt duoi)
9 _( }1 Z* p9 w* h - tt (subst (cons 91 l) (assoc 91 tt) tt)
+ L+ _: p2 D3 { - )
; o/ m2 }, c( E& v0 @+ @ - (entmod tt)
) M, _8 E& d" Q. P9 Z
5 y; ?5 r2 Q- m6 B3 | s- (command ".erase" ss "")
) Z! G! j ^( [. \5 w - (princ)
$ m1 m" D4 h8 m5 `4 e - )
/ {1 x* P' S5 e/ u) N7 ^0 ` N
2 F7 K9 u( \0 n' b7 l7 w- (defun getbdata (ent)
1 S7 \: s* y- V6 A6 h" y - (setq tt (entget ent)
$ m0 U6 p* K# F - tt (cdr (member (assoc 75 tt) (reverse tt)))
( ^+ G& P% _9 U - tt (cdr (member (assoc 91 tt) (reverse tt)))+ P9 @ l5 x9 S) e& Z
- ); X7 ]/ V) M2 j0 T2 k
- ): N0 V- u0 ^$ e7 W- t8 S
- * H4 `# Q% G9 X" j6 b
- 4 V$ v( n: g! A
- (princ)8 ]' M' s- H+ \) s
- . n4 e& j& Q/ \. A! X! Q; V
- ;;; =========================== CAC LENH LAYER ==============================
0 x7 o7 j b: t3 H2 S - ;;; =========================== Layer hien hanh =============================+ i, {3 _ y2 q" B
- 0 B1 s& {& Y1 t6 \
- (defun layset (/ LAY) (setvar "cmdecho" 0)
9 y. _# a. z2 k& b# ~ - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
1 I" v5 V. m* T# `) T' o4 d - (if LAY (progn
+ b4 c- X. `9 F7 R( d4 F - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
! b( B0 L" j8 P9 Z/ U+ F& Z. L - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
: y @* U) d, R a0 W - (progn
& t z6 E7 G; T9 ~0 H# l$ c - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 3 l$ X: |6 x" X; U- N$ U( T
- (progn
5 |" N f4 Z, e; M - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )6 Q; Y/ O1 A7 ^! [$ {: k' e( U# p
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))
2 A! z: O# v' I5 u+ z8 D
1 f3 G) f$ i/ N# X2 w' t; k- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================5 {) T' a. d; M U$ D8 u7 P3 S
- 2 o8 ^" ^9 K% x0 ^- D+ I
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
- z3 W) M' Q( {1 J0 U7 @ - (if (not (setq SS (ssget "i")))# v& x( Q1 D& ^2 [* H4 H' k
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
' Z1 G" @2 j. ^3 { \. l) ~ - (setq SS (ssget)) ) )* k; V9 _& t8 {" z
- (if SS (progn
# |9 w1 d' Q+ [$ Y& L - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") 7 f" F5 I4 c+ ~5 s) j1 B
- (if (> (getvar "cmdactive") 0)
! e+ y6 d0 l k+ p9 h - (progn- f" N; d1 d9 z5 c2 g3 Y! C1 j
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
+ n) D1 W$ X6 a- N - (setq SS nil) ) (if (> CNT 0)
, O. _, a$ j3 N - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
3 f8 t. T& p" t( V( d8 [ - (if SS (progn% ]+ S" Q) |0 ^: {8 |8 J
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
3 v# M: {7 G) f9 N - (if (= (sslength SS) 1)
" x6 C. G( Y; P, q7 {: L - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
1 d6 `! D" [! L0 ^* n- M9 b( ] - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
* p4 t, @2 X3 C- u3 A; S2 A - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
% n3 J- ]5 u) v/ _4 l; c8 K& u" p1 P - ! |3 r, R) ]; l0 L% I/ d
- ;;; =========================== Layer Iso ===================================
. `. |$ c$ l) w- t5 s, X4 q
( n2 A) q! [8 f& Q- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)& V% T, z) y! t0 \
- (if (not (setq SS (ssget "i"))) (progn/ s1 T0 t- B5 A( B4 ]* f# z- _
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: "). ^4 J* S" H8 s ]" ^% E
- (setq SS (ssget)) ) )4 u$ b% W$ J; f6 ^/ s8 s* u
- (if SS (progn (setq CNT 0)& ^1 n/ ]$ N9 |5 x
- (while (setq LAY (ssname SS CNT))2 J0 q4 B( U7 f) E1 r6 F6 N
- (setq LAY (cdr (assoc 8 (entget LAY))))
: ^/ N% l8 u, l - (if (not (member LAY LAYLST)) K& e; r0 G) k9 G P
- (setq LAYLST (cons LAY LAYLST)) )
2 Z9 d2 M8 {0 P* D, B* E - (setq CNT (1+ CNT)) )9 s0 d H' ? f
- (if (member (getvar "CLAYER") LAYLST)
% D5 f" x* [ ~1 U6 ?. [ - (setq LAY (getvar "CLAYER"))
2 r+ I( `% q( q/ G! K - (setvar "CLAYER" (setq LAY (last LAYLST))) )
# `" Q* R+ k" f F! d - (command "_.LAYER" "_OFF" "*" "_Y")" \' Q& n, C! g- N+ k: Z
- (foreach VAL LAYLST (command "_ON" VAL))
- i: u. g) K! R/ m$ e% `6 L - (command "") (if (= (length LAYLST) 1)& T- Y* Y- Q- v9 v- E- }! ~
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
( Z) c9 o2 {: h* J. \) L9 D/ n - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "% t- Z8 }% m: r: K% C5 Y6 O6 V
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
5 w8 Q0 L% Z4 \) _' H, ^. a - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))$ n; q- k6 v, f& r H
$ E o9 f( _: B* o% V0 O& b- ;;; ========================= Layer Match ==================================
. K; j: Q- ~' D) b' P; ^ - : e- h& G" J+ m. C; {9 _# ^
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
6 Y5 J: ^; w' ]+ K3 V - (setvar "cmdecho" 0)
8 i( j/ u8 A7 P" | - (if (not (setq SS (ssget "i"))) (progn* _" W. W3 \* ^* j4 F0 R* \0 _2 s* Z
- (prompt "\nChon doi tuong muon thay doi Layer : "), \) l1 W: S) s, p2 d
- (setq SS (ssget)) ) )
! ?6 k4 c4 d, N; B6 Q- q9 l - (if SS (progn
0 f( p. y, X+ Y/ K# Q& w- [0 n - (setq CNT (sslength SS))
! F4 s: F& G0 K- l/ {. b2 m - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") : ?" i4 H8 y' ^$ q& e9 { A
- (if (> (getvar "cmdactive") 0) (progn( k$ \3 F9 T# W8 U% V1 G$ s
- (command "0,0" "0,0") (setq SS (ssget "p")% c" L5 s* U _( C
- CNT (- CNT (sslength SS)) ) )! h5 E4 D3 m* H
- (setq SS nil) ) (if (> CNT 0) 1 K$ {9 a% E! T- [) M3 Z
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )9 t9 B% `9 V7 i2 M. f
- (if SS (progn# e9 f: _5 t' c" t
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )- |% Y0 i# i" q0 {7 ]6 G8 f
- (while LOOP (cond
* l6 h2 D; f+ C - ((not LAY)
) J( h( }9 M4 A7 B; E$ `+ `! } - (prompt "\nKhong chon doi tuong.")- k2 T0 T9 d) n. U# n/ O& ^# ^
- (prompt "\nSu dung layer hien hanh? <Y> ")
* P' T. r" w! K' E5 M - (setq ANS (strcase (getstring)))
3 d4 U# b! e$ [; K) a0 x% o! W - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))7 r7 S+ _( S p6 H" ]# c
- (setq LAY (getvar "clayer") LOOP nil ) ) )4 V1 ], Q% L8 T
- ((listp LAY) (setq LOOP nil) )$ S) m8 z/ J, }
- ((= LAY "Ten")
, B8 u. \! e9 H" d# f8 `- s! ^ - (setq LAY (getstring "\n>Nhap ten layer: "))
$ h) ~2 A- z7 R7 Q5 g5 N - (cond
- }# }+ p9 M# J& r v - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
( s4 J0 D# k$ R - ((/= LAY "")/ a& h) W& C- X
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
, k* u$ p/ `9 w5 D$ K. i; H# T - (setq ANS (strcase (getstring)))2 {: Y0 \& F* m Q# z4 ~
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
9 V9 L/ `- i, F% h7 j0 M - (progn0 B6 _4 W* E0 ?. M) a+ h \2 E: I, O
- (command "_.LAYER" "NEW" LAY "")6 ]1 H0 B, o2 o. L- B' Z
- (setq LOOP nil) )& S! o8 S6 M" |% e
- (prompt "\nLoi ten layer.") ) ) ) ) )
& W4 ]. m+ A& q" `) f+ j( m# P - (if LOOP (progn (initget "Ten")9 N) Q7 u& @$ o, H& }
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP0 ~1 { a+ S+ I/ M
- (if (listp LAY)8 G7 }% K5 M& J k
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )$ N- Y% A4 E" L1 {, w' n: `
- (command "_.chprop" SS "" "_la" LAY "")+ C4 v3 d( s/ B$ A
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )$ ?7 @6 W" k0 v* s t. a( J
- (if (= LAY (getvar "clayer"))" l) V1 _0 {, V, Q7 w. g
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )4 R2 S/ t# Z% m6 T. ^
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
9 X$ s% \# g8 a8 H2 n) F
2 I: ~7 b# @$ C6 q- ;;; ============================ Layer OFF =================================) Q/ E0 n: C- _+ r
- 0 n: {" T- I8 i1 S
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
1 i8 B9 Q, a g8 D( c - (SETQ SSET (SSGET)), v! z2 @% u2 p) H( ~
- (IF (/= NIL SSET) ( x4 \+ F. l% L# ~! ?0 U
- (PROGN
7 t7 y; \* e2 B& f9 Y4 k _ - (SETQ SSL (SSLENGTH SSET))
* o8 _) F; i7 s9 r - (SETQ LAY "") c o- V9 }7 m( j: f
- (SETQ I 0)
4 h: Y) u) q. q - (SETQ MODE 0) ) t6 n: c$ c- u) r7 `
- (WHILE (< I SSL)# s1 r1 Y* F' [
- (SETQ ENT (ENTGET (SSNAME SSET I)))! q2 z# k- Q$ O" P
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )3 I7 v" L5 B) E, V% K' {, J7 K
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))" ?$ q* ]% u J3 o$ B
- (SETQ I (+ I 1))
5 T' @& h5 X" S - )
5 l ]& w/ c+ `* _$ A0 W' ~ - (COMMAND "LAYER" "OFF" LAY ""); Y3 ^) X( E* x% }3 Q
- (IF (= MODE 1) (COMMAND "") )8 h$ C2 U. a( M! a8 w
- )
( n- W3 D; C0 v) u" ?( l9 \7 ^ - )9 y+ M* _2 \$ o0 w" M$ X3 Y- g: O9 R
- (PRINC)
# x0 L7 P- E. G- [8 B2 ? - )
$ I: z5 X. w+ _% W1 z
6 I9 b7 {% g+ y* z9 k# t8 p- ;;; ================================ Layer ON ==============================
% W% b$ b/ k" N% F - / _+ ~& `3 S3 C7 c4 k+ N% O
- (Defun LAYON () (setvar "cmdecho" 0)$ \5 \* d8 [( d8 s6 L, n
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")6 N( M6 E9 E! I( C0 ]5 t
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ)) `( T7 ?( m6 S" f8 F
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))8 E9 |& ~% [! _; Z
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))6 n N- g/ q0 j1 p% N4 P& e
A' K8 l3 G/ m& \) @/ o @- ;;; ============================== Layer Freeze ===========================
7 f* x0 u+ q* v* h- D4 ~
" G. E) U9 v5 Z- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) r3 g5 D, g# k$ N5 b. {2 {
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET)). p+ X% B, S6 H3 Y& L% d8 l+ F9 L% g
- (IF (/= NIL SSET) (PROGN
0 r$ i& T1 A: V+ Q - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
7 y, V$ X" h+ i7 _ - (WHILE (< I SSL)
+ L+ h( D, H+ d9 |: B - (SETQ ENT (ENTGET (SSNAME SSET I)))& B {: T, v3 q2 g6 K/ B
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )0 F* f6 @5 I4 g" t& a
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))8 T" n" o! Y$ a1 n0 k
- (COMMAND "LAYER" "FREEZE" LAY "")+ b/ P2 j) b0 s* S7 M
- (IF (= MODE 1) (COMMAND "")))), j" U6 \/ _$ k. |" C& ]( ^
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
- ]; t- [! [' C8 E" d - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
; x8 l' h a, g* A, H - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
, t! ~- k) s. r8 |& y' _ - 3 p% _+ P2 C& A
- ;;; ============================== Layer Thaw ===============================
- K; z( W# I2 v) U) S - 4 C& n7 E6 z! ?! E+ V; ?- p) U
- (Defun LAYTHW ()
0 Z. p" {' E/ ^+ y - (setvar "cmdecho" 0)
# k( W2 O/ t2 o5 M/ e - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")8 @1 ~4 n' q; n! a Z
- (Command "_.LAYER" "_THAW" LAY "")
# f& z. `, ~7 {! C R3 J/ B2 h - (princ (strcat "\n Layer : " LAY " da THAW."))- U$ C( I p8 ^3 O4 R |
- (princ) )
% Z8 w/ B8 \4 Q' b4 f) m4 k6 ~' V - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
7 H- S. V) O/ C. N, O: C
8 A' S/ P* f u0 D3 j, ]* s- ;;; ============================== Layer Lock ==============================
( o7 y8 ^; f/ N6 P) b
* N ]0 c/ o) F* ~6 I- (Defun LAYLCK (/ LAY)
4 m: H* ~ k6 v, Y# U6 M - (setvar "cmdecho" 0)! k+ I: M9 t b8 A
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
2 m* i$ Y ?# h, P6 d - (if LAY$ a6 p$ @0 L3 B* K X/ K
- (progn( i' G9 x/ e: F( A f* R
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
$ X! L: ?4 ]7 |( i) M) w5 W - (Command "_.LAYER" "_LOCK" LAY "")& `2 g2 K; M' Z
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )) p$ A0 t$ ~4 J1 }- t- B2 P7 H
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
8 s Q( q& d4 N6 ?5 Z/ Z$ Q - ( W1 F4 ^" w+ [. s, v$ l
- ;;; ============================== Layer UnLock ==============================* I, _1 k) R# s1 |
( `. H1 Y7 c/ l9 V1 W* u5 r2 U- (Defun LAYULK (/ LAY)
) N( q, _& ^; o2 P9 d, [ - (setvar "cmdecho" 0)
& X/ a8 s5 K' q - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
( `8 x1 L: `( W" a' U X - (if LAY
) {- c( b# H% A+ w - (progn! B+ ]0 {4 W& I$ _ ?
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))( H. ?/ v0 l4 ]; u8 Y4 Q
- (Command "_.LAYER" "_UNLOCK" LAY "")& D! I+ u7 h) W7 ^
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )) i0 ^ {% _: I
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))( E, Z7 o3 a+ p; O3 x
; R' R% g+ H: A. Y" G" U2 C- ;;;===================== Delete all objects of Layer ========================
* p5 w% F; z0 R0 H8 _
8 Q5 ?: Z% e+ D' h4 l" h" H o- (defun DELAYER (/ ocmd L S) # Y, [+ r: s1 p% O$ k
- (setq ocmd (getvar "CMDECHO"))3 x9 C: v# U+ K# M; {
- (setvar "CMDECHO" 0)! u6 d$ C" b$ y# R0 J7 @* |- O
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))
# A8 C% u4 k/ R4 A; u. R, \ - (setq S (ssget "X" (list (cons 8 L))))
, o2 y! `7 l$ S, N' o0 x& ?5 V - (if S
2 S5 d4 G: ?6 w6 F4 j: x. b - (command "ERASE" S "")
; V2 E2 o4 B" W% t& T! I: `' x - (princ "Layer empty or not a valid layer name.") ) 3 F8 e' R8 z/ Z! t
- (setq S nil) : w. G+ W4 i, y% i& J. l( N' Q
- (setvar "CMDECHO" ocmd)
3 R. \! c' L& l6 y - (princ) )
" k# I% @ ~, N+ ~ - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))7 y2 D9 A. P3 w. B/ S* {
- , M- F2 K, D8 P
- ;;; ========================= HET CAC LENH LAYER ===========================
N0 w: v; G8 v6 u6 W& R, W - 5 ?3 D6 e( u8 W# z& Y( `4 V
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================. G) J% X3 Q# F! _- [7 O
- 1 U! b$ ]( ?, Q( R4 w
- (Defun C:EET ()* j+ h r5 t8 ~) V. J U) \5 g
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
2 s0 z3 Z5 T1 I$ _ - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))) k K/ t, S, G, |/ J b
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))1 k4 O+ H% m% m) \
- (Setq I -1)* Q# \# Y3 P: {' f9 \
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
8 Z7 Q6 d' J2 S - (Repeat LEN
# u- ^4 k% |9 g. ?+ s" |( L1 | - (Setq I (1+ I))
) u. s0 f9 l* K - (Command (List(SSname SS I) SIDE)) ) (Command "")0 F8 f$ Q8 P2 [
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
' k$ c, T% d( A - * ~3 o! B5 J% f3 b
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============7 b6 D3 j& c: ?2 c$ G4 S) _% H5 i
- z, }1 `" M9 p- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)( J0 D& K" k6 F* }% S
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))# r! {7 K" }% g p+ Y% ?% c
- (setvar "osmode" os)
: n! j* O" ^2 n9 T. N5 k - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
! n9 H f, p- J - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
* p! v( P7 R4 y& A4 G, h& J& _ - $ T: z6 u4 k* v5 U/ a. Q
- ;; ================ Change width of polylines =========================" H1 l$ {! l D
$ L, U$ P, d6 v4 G& z+ i6 o- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
& Q9 _1 v+ I* S2 S3 v4 {5 E - (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
; }9 d1 `; w0 ~" H - (setq b (ssget))
& U8 J/ `# v, R' H - (setq sophantu (sslength b))
% O9 c6 [% l( b6 f0 L2 S7 v+ S3 V) y - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
) t, S. w+ A! x4 b, t - (princ "\nDo rong polyline <")7 U. p; n: R8 V( b1 ]$ h2 d
- (princ ha:wid)# G; X+ N2 }' T
- (princ ">: ")
, V" n) b8 {4 q1 }& r% X - (initget 4)
" P, I( {- o0 |! K4 K - (setq ha:wid (getdist))& x3 [8 F* N2 s) X
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
! d1 m. T8 ?) M8 [ - (setvar "tracewid" ha:wid)& J6 U( `* ]( [& W' k! u2 L
- (setvar "cmdecho" 0)
8 i9 N# w. [: `$ O: L - (setq sodem 0) ' r: v4 A- K( Z5 u, K y% o( k- g
- (repeat sophantu2 H0 F% M4 j. _: ^: h" S
- (setq a (ssname b sodem))
" G& y" P6 m1 T - (setq list1 (assoc 0 (entget a)))3 L" b7 Q: f M/ Q
- (cond
7 U' x2 ~( M6 s - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
: b( j7 M1 g5 h - (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
% r- D3 k0 g* l - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
. M4 l- E6 B! q) J$ L( R+ b - (defun c:wp () (wp)) (defun c:pw () (wp))
6 |( R; \- L M: V- H( K
% h1 E2 ]; u* o/ x- ;; ================ Change radius of circles ==========================" Y+ E- z7 L. T0 m! l& [8 y
- - [$ L; g6 r J! M1 h
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
6 s$ J7 {5 b2 P( I2 y - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
$ }% o0 ^; p( z$ ~9 s; R M1 X - (IF (/= RD NIL) (PROGN (SETQ I 0)
; W0 ~/ Q% x: k. ?3 m& k- P - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )" m4 e1 a/ }) [! ~
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
6 Q' Y8 z. x6 M5 Z1 `# L - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
3 J& P1 v7 U' M2 u w( s4 Z2 B - n4 ?1 d$ A7 D
- ;;; ============================== TEXT Hight ===============================
- x# R, ?3 x3 p% a4 A1 C, g - ' _/ {& q, T1 r2 U
- (defun texthght (/ ent hght)
1 w+ ^5 @, m0 ^5 y - (setvar "cmdecho" 1)& @( d9 `4 B. A6 d2 J. H- V
- (prompt (strcat"\nSelect text entity with required text height"))
7 h3 d9 z. J; l* e - (prompt (strcat"\n."))
2 m0 C; \2 G% R% V# [# J - (setq ent (entget (car (entsel))))# W$ a) y, R8 X% b" p- _
- (setq hght (cdr (assoc 40 ent)))
7 h( c8 P3 Y: o9 m' W7 A! ]( o/ d - (prompt (strcat"\nText height now set at "))(prin1 hght). k/ |3 Y$ Q: `
- (prompt (strcat"\n.")) ( R: p9 ]8 B2 F
- (setvar "cmdecho" 1)
8 Y4 J0 |# M& k$ Z$ S5 G - (command "DTEXT" PAUSE hght "") ); c" `; o; y6 b( z
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
. ?) R+ h9 ?5 Z, e! H* w
) N ]6 B! `3 t& n& f5 ~: Y% y- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
* J* E! d" E8 u) F - 6 D- `% Q W! a2 M& Q
- (defun c:tuu () (setvar "cmdecho" 0)
C/ L0 ^% h# N! j! I - (prompt "\nHay chon dong TEXT can gach chan ")
c7 p* h1 j( O: P) m- I3 o - (prompt "\nSelect objects: ")9 ^5 g( n1 x# o* o$ S7 b
- (command "select" "au" pause)6 m9 F& u$ T. T/ Q6 t; A3 J' y7 r
- (setq sstxt (ssget "p")
2 m: w! c3 l* S0 f - sslen (sslength sstxt)
/ g6 Q6 B; N; d6 I' g - ctr 0 )
d! V O6 D" n( a! M+ ?: N7 w - (command ".undo" "mark")
/ [4 O) i' R4 i - (while (< ctr sslen)/ \6 f8 q( N. E! p& B$ P! ]9 l
- (setq listxt (entget (ssname sstxt ctr))/ P" Z6 P5 R/ i1 _
- txttxt (cdr (assoc 1 listxt))
2 p+ C: U( y+ A6 c1 N0 A - enttxt (cdr (assoc 0 listxt)) )4 i& A! Y3 |$ Q) |
- (if (= enttxt "TEXT")
# y- h2 D5 A e( |! Q& e; g) L - (progn
9 |& n8 J- q, o0 j, z) |' N1 a* m: K - (setq testxt (substr txttxt 1 3))$ @' C4 O1 f" g
- (if (or (= testxt "%%u") (= testxt "%%U"))
; c+ \# t4 z. q - (setq newtxt (substr txttxt 4))1 o$ s O& }+ M, I0 \6 j
- (setq newtxt (strcat "%%u" txttxt)) )
* `0 Q# j( P$ {8 n6 H - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))% J2 J1 Y6 ^/ A- [- A
- (entmod listxt) ) )- J6 p- j* @) }
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))9 M% K# w2 M$ X8 W/ N4 ^& l- V# Z
! ?- ~. J0 u/ D' ]- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================0 x, p4 A; D8 i6 k+ H& C; ?) A& h2 |
: k* |0 a' x3 H+ m7 U- (defun c:tob () (setvar "cmdecho" 0)$ w1 E. l4 b# W- L. `! N: @
- (prompt "\nHay chon dong TEXT can gach tren dau ")
. i2 Z, S7 M8 p: l" G: x - (prompt "\nSelect objects: ")# ?- P# b8 b3 I1 u/ U! n
- (command "select" "au" pause)7 x" B( w& s: z I! S& c
- (setq sstxt (ssget "p")
# V. J0 [0 `& X# M4 {8 r - sslen (sslength sstxt)
! Y) C% d7 x# M5 _/ H* d - ctr 0 )- a/ Z6 m. W# I, [2 e& E. A: c
- (command ".undo" "mark")8 n2 X7 `6 L, y
- (while (< ctr sslen)
7 c4 r( P" T) f; L- b1 P) N# J. k - (setq listxt (entget (ssname sstxt ctr))
/ g; S: z6 H' A( z: e- } - txttxt (cdr (assoc 1 listxt))$ ?. _+ W5 c6 e! R# A5 z
- enttxt (cdr (assoc 0 listxt)) )
! \7 v& B, J. ^ - (if (= enttxt "TEXT")( i8 [$ o4 u: Z4 o- C- m
- (progn
$ Z% Q" d7 R n Z& A1 K7 w - (setq testxt (substr txttxt 1 3))
: A! v9 k9 W1 e. Y* o - (if (or (= testxt "%%o") (= testxt "%%o"))
9 J: v' d: C( s7 w6 p h/ `" z - (setq newtxt (substr txttxt 4)) P7 R' H& H" l9 D* h7 a# B$ {5 @
- (setq newtxt (strcat "%%o" txttxt)) )
# h: C" l! p% f - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))0 V7 k2 r, n9 D8 ?. h& m, t
- (entmod listxt) ) )# j3 P: f/ A+ s( p( v% b8 ]5 ^( W1 E
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
( S* i5 X3 `$ E* G
) B' n7 A I+ E# ^. E- ;;; ========================== Tim & thay the TEXT ==========================
( \* \0 y9 k" z1 O/ y+ J, K - 8 K2 E8 ^1 Y! M) A3 E& o) R1 [
- (defun frstring (str search replace / str1 str2 index find)% s; s1 N3 l' Y5 m9 j* k. Y' v( b
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))# Z2 S- P6 _4 k* B0 O! d- T
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
1 r5 g4 Q" W3 N" ^% h0 ]+ m5 ~ - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))' r( J7 H4 l1 {
- (defun hai (/ dial)
1 q. J4 h" V8 u' {, f$ m - (setq dial (load_dialog "hai.dcl")) ;;goi dialog$ `& f6 l2 j" L9 q! A: M
- (if (not (new_dialog "find" Dial)) (exit)) ;;
2 Y/ V$ e8 V P, M - (mode_tile "find" 2); Tao dau nhac tai hop thoai1 ~: l) F; a4 o- i
- (action_tile "find" "(hai1)")6 ^2 B6 U1 N4 P9 M0 K
- (action_tile "replace" "(hai2)")
! r; S+ M. z1 U* ]5 @7 ~ - (action_tile "cancel" "(done_dialog) (exit)")
$ D4 N6 z' T9 ?9 O( |& ~4 q1 ` - (start_dialog)
8 a6 m# ]5 s7 s( J - (unload_dialog dial))( u5 A% j) g/ a% T
- (defun hai1 () (SETQ str1 (get_tile "find")))
, k6 i1 H7 }! P' C8 K - (defun hai2 () (SETQ str2 (get_tile "replace")))
, {; w' N/ v$ Y' k4 b+ x - % ~% t0 ?$ j- z
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
2 a7 K8 t/ [4 }# ^% @ - (hai)
! `1 W" J: b3 `+ W. i - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
) }3 P9 F: w. [$ k A: s - (progn
3 m4 W# A& R$ u$ {+ T( \ - (setq taphop (ssget '((0 . "TEXT"))))& Q) C/ |" H& O/ S+ @ t
- (setq sodem 0)
4 S+ u7 \8 Y$ m6 b d" s - (if taphop; a# \. U- u5 w3 }& X
- (progn- \( p4 n! h \" [* T# ?6 L9 ]
- (Repeat (sslength taphop)
3 b: E% A' r v' S - (setq a (entget (ssname taphop sodem)))5 {. l; J9 c1 g1 g: u
- (setq str (cdr (assoc 1 a)))* v. j6 b7 }' Z) q, ]: f' F
- (setq newstr (frstring str str1 str2)): V! w* w/ K) j4 b
- (setq a (subst (cons 1 newstr) (assoc 1 a) a)), p8 j6 F0 e& k/ B. V
- (entmod a)' ]+ ^# x& {0 d0 R6 Z" x
- (setq sodem (1+ sodem)) ) ): q* s+ r) r0 e5 w& h
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
. b" D8 b9 g, n- t9 K q1 V7 ^- a - 7 W* H3 F7 M' w7 u: i: w
- ;;;============================= CHTEXSTY.LSP =============================; p! \- B E. j; d8 S0 z
- ' g" A1 e' U: C' K
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
+ a5 r' ?7 c& K# {) v0 f2 V$ F& ] - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))/ j9 s# u& @0 i! V
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
6 |3 ]9 ^# y( R; t8 y - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))( V, d5 _ p1 {% P
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
- D; P0 a% x, F" u9 V2 N. W8 r/ o - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
+ p, o; A- E& d0 H - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
( o Z* `) E. \* I% g - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
~4 P2 v( f0 k! h( P - (Initget 1) (Setq A (Strcase (Getstring- X$ M8 v' a- O8 d$ j
- "\nEnter text style to change: "))) (Initget 1)
5 j, f/ c( D/ X# N( D - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))7 G/ X" [6 k, `" X5 j4 M( E3 k
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
/ J/ b, m8 z" S- I$ Q - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))! n3 M) _. G* ], G" v
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))8 o5 O, Q+ t+ R7 t ^1 r H
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
! v: m9 {2 S# j1 I1 z! X - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))7 R( l3 C' l1 X3 K: J; \* ]7 ~; M& W
- W4 }5 z) Y) o4 w
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))* U2 R( ~$ f9 X: A# k
- (Setq J (Cdr (Assoc 50 A))))( Z/ Q1 s9 k# k& a
- 0 d, ]" z# g$ c9 [
- ;;; ============================ DRAW CLOUD =============================
8 y& d k; V$ W4 e - : W( M" s% a4 n- u J
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
6 z* Z3 s) x7 r7 x$ w - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")$ w* W; S3 V8 m) |% _& {
- (setq la (getvar "clayer"))1 }0 T$ t5 b0 y+ W) ^/ W% J
- (command "layer" "m" "cloud" "c" "5" "" "")
# p% h( V$ e, [# D1 T2 \ - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
/ L7 V' C- a, f: M, r - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction...")); o; [6 M+ h- w1 Z4 Z- `
- (setq cnt 1 ss (ssadd))( D+ Q2 r, P3 I( w
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))# {% A3 ?3 |1 W6 v6 V
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))" T3 O7 h' P- | J9 x, D! l+ ~
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
6 b. ?. T3 o+ m; @5 h - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
" F2 r3 \# ~, B. k: N3 C ]7 {& c' f - (command "pedit" arc1 "y" "j" ss "" "x")1 c- v) P6 ~! M4 ^
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)8 y9 E9 V) v* z% [% ~& U' a
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) " Q( v1 {8 Z; t( ]6 `* D- h
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))6 T) R/ Z. ? [" D
4 k' j6 S8 |# a/ ^6 W; t* v* b! V- ;;; ================================ Funtion-Dulieu ========================) |+ w R1 B# m+ T5 z0 J
- ;;; ================================ Funtion-Dulieu ========================
+ S* @0 o; a4 H - ;;; ================================ Funtion-Dulieu ========================, }- c3 s9 j6 E" l$ F) c
# z) i0 u* n) ~+ N# T/ B- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )4 h6 R+ S( J5 U
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))% w4 G7 o/ M3 w) k1 g5 V
- (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))
, n1 ~0 z8 X9 d( U5 V9 U$ [ - (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) )- G/ A& n2 \1 L/ _. \
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
8 S8 j+ s: L* j' e - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
- P6 I" H# z* O! }3 m3 p8 p( q - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
, J/ v! G' \( c5 Z4 Z" w1 s- K - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))+ c' R/ P, t6 w# K4 A
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
& H3 f! {3 [! b; h8 |5 Y - (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)))
2 Y0 U1 y: R' m3 V( {% M1 V - (defun dtr (dtr) (* pi (/ dtr 180.0)))" }" h0 l7 M; l- K4 m+ O2 K. I; \
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))% `: L1 _* ]: v+ D1 n8 g: \8 g0 G
1 ?8 x% P1 ~- n. P9 V+ W( H0 T0 i- ;;;==============================PROGRAME===============================
2 e/ B1 K6 d4 Y% ^% g3 } - ;;;=====================EditDiM Hien Hop Thoai Dep======================+ ^7 x3 k @6 F# D, ?, H
- ;;;==============================PROGRAME===============================
; q& _, t" l6 o0 d6 v
O9 A- R! V4 s- X' f! o) A, d- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
7 W* I1 L& p& \% P% L Q - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl" M |% q4 ~8 d# u4 C
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc): V5 `7 q" Y n% v
- (Setq Oldlis (Entget (Car Chon))1 Z+ [ q9 A! P/ r% g9 _! m, s
- Pt10 (Cdr (Assoc 10 Oldlis))2 z% @8 A: t0 F: g; N0 C
- Pt13 (Cdr (Assoc 13 Oldlis))5 T# e4 T- E( z1 `
- Pt14 (Cdr (Assoc 14 Oldlis))
& T- e' d8 Z: @' v5 R! e - St (Cdr (Assoc 70 Oldlis))7 S' T* y. `8 c9 N4 [' f* O
- Dimdefault (Cdr (Assoc 1 Oldlis))
! J2 b9 v: v) P: p5 T8 H1 Q" U# t - )) g, n+ C i; t, N! {
- (Cond
9 }8 P8 R1 i0 s# |5 y. ]; ? - ((Or (= 32 St)(= 0 St)(= 160 St))1 Q# K% Y3 n& i9 f' T) ]' o) U
- (Progn
: H7 \ X+ d1 K; k5 U) L( r( B - (Setq Ang (Cdr (Assoc 50 Oldlis))
, j! s6 \1 |8 [* e5 \# _- m - Pt (Polar Pt13 Ang 500)
/ Y- D5 P# u& P - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)7 H7 L" G( r0 p, ^' J) Z/ w
- Dis (Rtos (Distance Pt13 Hc))
/ r0 q+ K. f; y9 q - )
+ { c \: q; U5 A; }; F+ Q - )
1 G" `3 N2 V8 \$ S( g- D# g - )
8 W. f+ s L" W - ((Or (= 33 St)(= 1 St))
! g/ P0 `: j0 `6 y, |, w5 v - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
' M) \% ]* C: _6 s' n - );;End Cond
: y' I$ _% @+ G2 [ - (If (= Dimdefault "") (Setq Dimdefault "<>"))
! W. U2 C& W. x, `" b - (Setq Dial (Load_Dialog "Hai.Dcl"))
6 x0 p( t9 @' I. x- {2 T& p c2 ` - (If (Not (New_Dialog "eddim" Dial)) (Exit)) ^5 F1 a' F2 r& a/ f, |
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
6 ]( H1 D6 ]: m' @: W - (Set_Tile "text" Dis))! d' m. E2 d( |8 B6 ~% Y
- (Set_Tile "ha:edim" Dimdefault)3 Q2 q" I6 l7 l! R: R5 b; {
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai% u% _! ^9 \4 k% \2 Y
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
' y) }; L4 O# j; h) X) {, m( z - (Setq State (Start_Dialog))(Unload_Dialog Dial)+ ^1 q8 A/ t6 ~3 K, w
- (If (And Str (= 3 State))$ r$ V/ R6 Z a& N. j8 a
- (Progn4 E$ G2 p3 M1 y$ h3 L
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))8 r" _6 @& Y8 I7 I
- )
1 J- ?6 i4 s1 i5 \ - (Defun C:EH (/ Chon Name )
' m) I! }/ s* ^1 h; [' g4 ^6 b. p - (Defun *Error* (Msg)9 c3 k/ O! t# Y L" z2 |# a
- (Princ "\nerror: ")(Princ Msg)(Princ " ")$ D4 X' v! Q, r6 T: W2 A
- (Start_Dialog)(Unload_Dialog Dial)- [7 `% Y% H) {
- (Setq *Error* Olderr)(Princ)2 ?6 m: X4 G- x
- )0 q- c2 X: N+ F/ X) G+ O
- (Setq Olderr *Error*)1 r; @% T1 e+ }# k# d I% o
- (Setq Chon T)/ i1 G- F) p7 }$ T% k- X, o
- (While Chon
+ i0 a. K4 t% [% V' G' e8 b, u - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
9 K* q2 ^+ P' `6 n9 s - (If Chon6 J" q- f2 Y- P; K9 d$ M
- (Progn6 v+ [4 X4 y! J
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
! b- c% e- H* q2 V! [2 C8 m! Q - (Cond! V/ ^$ |. I! O7 E: Q% F `
- ((= Name "INSERT")(Command "Ddatte" Chon))
: u! b d. Y) h5 D - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))$ F$ n- |3 f" K3 L6 _1 `: c
- ((= Name "DIMENSION") (Hai_Edim Chon))( |- `7 w3 `! D6 B! b
- )
) U: N+ y4 S ^" X* F - );End Cond
# g7 \" `# }7 Q4 i% t3 N+ \. } - );End Progn5 o( o$ N& U& `+ L+ |8 k
- );End While1 X7 w% x. O m$ r3 d1 i# V9 G
- (Setq Olderr *Error*)(Princ)
$ J; z2 K5 d( a$ m7 g8 O2 D - );End Program
, y: ]9 c! `$ g5 z
/ ]1 S0 I, d- e u9 L8 \. f- ;;;====================DDeditDim=====================' J+ `1 t% Q; F* x0 `6 s
- ;;;=====================Hai.DCL======================
3 n, w1 ?( ?8 t1 t - ;;;====================DDeditDim=====================0 E4 m4 v0 u( F/ F
y( K9 {7 @3 S$ N" q* X# w- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)7 I* J/ W4 u. \, ?) `
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
" ]4 Q0 q' Y7 J, h+ Q4 P - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)5 C3 P, Q8 M/ c5 I% p! t
- (Setq Oldlis (Entget (Car Chon))
6 A; p0 D6 J/ p+ l' F# T) F - Pt10 (Cdr (Assoc 10 Oldlis))1 g! D( T: F$ N
- Pt13 (Cdr (Assoc 13 Oldlis))
/ l* i+ ]3 T0 M3 G# t - Pt14 (Cdr (Assoc 14 Oldlis))3 K" e( |9 S% K" S, q0 x
- St (Cdr (Assoc 70 Oldlis))
" ]+ B; [1 G1 E# \/ i - Dimdefault (Cdr (Assoc 1 Oldlis))+ k! W( y2 f1 Y' i& a
- )
@" Y- F0 I3 n8 L) V+ N - (Cond2 O% c6 K! I' z9 ^2 m
- ((Or (= 32 St)(= 0 St)(= 160 St))" y% A" Z- R/ J8 R+ U( K/ ?
- (Progn
0 E3 U- M* x) `, R - (Setq Ang (Cdr (Assoc 50 Oldlis))
* [% {; [% ^" G8 ]7 e6 s$ x& j - Pt (Polar Pt13 Ang 500)
0 S |: c! u7 s8 L - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)! c' y9 t/ I" K H2 e. K/ S
- Dis (Rtos (Distance Pt13 Hc))
( L6 T( Z: z8 s1 C6 | - )
# Y, P A m- F/ I - )) D3 q/ a' C9 B9 c
- )
/ j0 r$ x6 ^! |* h - ((Or (= 33 St)(= 1 St))
$ R. t# R( f/ } - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
3 H( k% G0 k9 [- B) ^( n - );;End Cond
; k. l4 [4 C3 P Z6 ] - (If (= Dimdefault "") (Setq Dimdefault "<>"))9 \1 H J" U4 V7 [' ^( v7 X% [2 }
- (Setq Dial (Load_Dialog "Hai.Dcl"))/ g( i: j$ T. u' A; ^/ d# p
- (If (Not (New_Dialog "eddim" Dial)) (Exit))/ A4 ?6 S4 f/ O$ o; J% g
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
0 g8 n4 j) N) }9 M - (Set_Tile "text" Dis))2 q! _: C) X0 `$ W% r
- (Set_Tile "ha:edim" Dimdefault)$ ^6 t0 O7 R) ]
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
0 I4 c O" g7 Y$ \, c - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
6 a( H" c6 c" f, Z) n* ]# E' I' ` - (Setq State (Start_Dialog))(Unload_Dialog Dial)
% s% a' I4 l4 e) d8 f; F& ~ - (If (And Str (= 3 State)): \/ d0 s6 U% B k4 z4 R' i* K
- (Progn
) L3 \: h' ]5 f# s - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))# F+ e( W. p# f; N
- )
% m3 B2 R$ a3 A8 L; G; f; V - (Defun C:EH (/ Chon Name )
% [/ y! ~; [7 g0 Y3 Z" b
4 W( K& j- z, p0 c- ;;;********************Du Lieu********************
7 e5 L, L+ l: N% u0 {
% P8 s! @3 P( w4 B( T1 M" h- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
3 R/ f, n8 d$ o6 q; S' }3 k$ @ - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
; l0 o! V2 u/ V - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil)): @3 Y- @1 m, J% m" w& H) u' C
- (Progn
# Y4 o( T- S" B - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))8 u* D: r' @2 i% a3 L
- (Setq Chon (Ssget Hacat3))
' k i5 \$ ]/ {" S( W - (Command "Break" Chon Hacat1 Hacat2)$ {: c6 S4 ?9 B5 x9 A2 u
- )1 U6 N* [, P$ A/ X/ b: [; _1 B
- )
( j: _/ ?8 `+ s - (Princ)
( \6 J7 j9 ^: Q' M# N - ), G' n: v3 }( ~% m/ y2 \7 n/ v
- ;;+ l9 r. f/ v: A1 N
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
2 E% R! o) J& L! E" t+ ^ - ;;9 J9 \1 \, e- q+ z- ^/ \
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
# P- P. |# K4 H6 t2 x, ]+ } - ;;
1 t# @9 V& C) v1 R - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
* v; w4 t/ o, j - ;;% h b) b" p- G" a! s! ^
- (Defun Reinit ()(Setvar "Cmdecho" 1))
9 Q, l& E8 O. U" ] - ;;/ g8 l( @5 I% F( l( u% Q- W
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
4 B9 m6 b' W& v" ~3 y7 Z - ;;
! N6 M C" F. Y' K& P/ S - ;;Cho 2 Diem Tinh Ra Vec To Phap
" M" x8 m% ^6 J - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))7 H! l' h( r6 g3 E: \
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
; Q6 n- s# o6 t; w: \; i - ;;Da Biet 2 Diem Thuoc Duong Thang
9 }) q, A- w/ c* O - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)2 \8 _5 a7 n6 @
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
4 d) b$ U8 V" H8 d- C6 V - Hc (Inters P1 P2 Dc1 Dc2 Nil)))9 ^- e7 h0 l& b7 i+ z
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang W0 K' E1 t1 V# A; M
- ;;Da Biet 2 Diem Thuoc Duong Thang
* j9 H/ v) P% T- ^5 c/ f I% K - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
& h. ~6 U. F6 y - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)$ J# `3 ?5 ` R& @
- Hc (Inters P1 P2 Dc1 Dc2 Nil))
+ n9 j+ @7 u# T4 U' e9 C% X7 @ - (Distance Dc1 Hc)3 D0 [ E4 c" T
- )" G# M! B% h! U
- (load "nhapcua.lsp")2 M3 C" D; g. z7 y( Y
- (Defun *Error* (Msg)# K4 m. q" b+ G# k5 C
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
2 r1 U+ e2 p. t5 ]+ {( t - (Start_Dialog)(Unload_Dialog Dial)
y. O5 n) U0 \ - (Setq *Error* Olderr)(Princ)
% b% i; |2 A! Z1 @ - )
' d, w! D5 [, T J - (Setq Olderr *Error*)
/ q) G# m: g2 \3 x& [ - (Setq Chon T); q% r4 ^/ d6 q/ o
- (While Chon
2 Y& i# G- d/ Q3 D - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
; W& H+ \% p2 l: W/ |( l; z% e - (If Chon* c1 ^* m2 M) A- \* i( U
- (Progn
: V2 {; h6 x2 B9 _( D2 O - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))% S) N6 _* j" b8 j
- (Cond* _$ L/ n6 ~& D9 Y5 X. ]
- ((= Name "INSERT")(Command "Ddatte" Chon))
. n6 n w) E0 J7 k3 n - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
( t" H a' W% S - ((= Name "DIMENSION") (Hai_Edim Chon))7 Z+ \) m# \5 x" Q% U; K- u0 E: e
- )
. b% s4 h% d- f. _& H0 T3 R - );End Cond
7 {( V7 q P+ m. l - );End Progn
6 M9 u" ]7 J9 M8 W0 r0 I' g$ Y - );End While( V+ T! o. ~6 ]& G. ^/ f9 C
- (Setq Olderr *Error*)(Princ)3 ]! |) Q$ |: d8 \1 ]
- );End Program
% p9 {6 ?: e1 W, w- y - ( r& X m& E/ q$ S0 d0 I
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
+ I* E- S( _, U4 y0 t: F* v - ;====================================Nhapcua.LSP====================================3 ?# `: w) ]* D
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================, R2 k2 k0 p5 z- [
. ~) d+ }( O( h) Q+ I" M% d$ l
6 ?. ?' v5 ^# ]1 y4 x- 1 Z1 `0 J3 {% `- [! Z
- ;*******************;*******************;*******************;*******************
- p, K" S$ {- z. l4 T. p4 d - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****! v1 k6 w/ Q! _* _% l- A# \( a
- ;*******************;*******************;*******************;*******************
0 R- N3 ?- `6 ]3 M4 b ]$ j - 8 L1 j9 a8 Q) f$ R$ L
- ;VE HINH BINH HANH+ c- Q) y" k% V$ `* u m2 v; U/ i' j6 x4 o
- }9 C9 A% E9 _6 T4 I9 s- (defun c:binhhanh (/ p1 p2 p3)
H2 Z& E! s; j" u - (setq p1 (getpoint "\n Nhap diem thu nhat:"))) R2 w2 f. }7 s+ ~, t8 V/ g: [/ N
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
. S6 L* O! F( |6 _4 i7 m+ t* \/ } - (setq om (getvar "osmode"))
8 I$ Z7 Z' i' m5 @! D1 h - (setvar "osmode" 0)2 t/ U6 z# }6 B ?& `# [
- (command "line" p1 p2 ""). {* h% ~$ B e! {+ ?$ K# P3 ~$ J
- (setvar "osmode" om)# }, s) I/ T7 [+ L" i
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:")); d& C$ s1 s# H
- (setq a (angle p2 p1))$ G* `$ L+ i _) u" J9 l0 s3 {) e
- (setq d (distance p1 p2))7 @0 m; m5 }) r
- (setq p4 (polar p3 a d))2 |3 J6 I: {4 B! W3 `$ o7 S
- (command "OSNAP" "none")( [! F7 \0 o/ C$ h. ?0 Z( L
- (command "erase" "l" "")% k3 s% J# T& \4 B! k
- (command "pline" p1 p2 p3 p4 p1 "")
$ n7 z' ^8 C2 T' M! g3 I# ?5 h8 L - (setvar "osmode" om)2 e$ w; O( W7 Y( Q$ c7 G. ~
- )7 z! v* k7 ]6 e, W8 ^+ u& z, x3 Y
- 8 d" V- D& |2 W! v% E6 M% ]0 X. a& E& b
- ;VE LUOI COT
, q5 O% H3 a7 p
6 _0 R: Q$ |9 x7 F- (defun c:LuoiCot ()( f0 Y# t* m: ?
- (setq om (getvar "osmode")). ^+ E7 f/ N+ o8 H! l% r3 E% c- q
- (setvar "osmode" 0)
. `1 X# l4 O7 }1 L - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
& g9 Z' u' j [( C" o - (setq p0 (getpoint "\n Chon Basic Point:")); X, c1 c- k7 o, c& i# q3 H
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
- ~0 ~7 D- B' C, R* [ - (setq dc (getreal "\n Nhap chieu doc cua cot : "))/ B4 h2 w& b3 [) E- @
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )% f9 }7 i2 N, |( k- v
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
- I7 r8 [" G' }- u3 r+ V- D8 G: | - (command "rectang" p1 p2)
3 N, E0 l( s7 g. @' H3 @# K% w - (command "hatch" "solid" "l" "")
9 U8 Q" a, S z' g$ J - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
2 K" s H7 k7 ?. ? - (setq nn (getint "\n So buoc cot phuong ngang : "))% g ]% h' e: @+ p. J
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )! [* Y' q$ N+ h6 u
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
/ A( o0 H. {5 h2 y+ J8 } - (command "select" "w" w1 w2 "")
: I! p1 R5 ^; C3 J j- p' o$ M0 _ - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
( U8 N* \. s5 r. Y5 N, S, u - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
+ E1 `4 U( o, `- u- V) ]- ?0 z5 K - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
: T3 M D- i) }2 {, G+ w# z - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
1 [- c4 [4 A: C6 O - (command "zoom" "w" w1 w2)
0 }2 Y; A' I+ P - (command "select" "w" w1 w2 "")/ ]( j* d# g. m
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))1 X* q6 ~" ?+ s* O# R1 l
- (setq nd (getint "\n So buoc cot phuong doc : ")): Q( C- y/ t) x$ E2 D
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
1 y: H, e$ y6 F, p- C! |% V - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
/ T7 W+ z5 }7 X7 C. f- d; [ - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
& z9 _+ d6 w7 s' P1 c; q/ v - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) 4 j, L5 C$ G5 ^, j3 ]& ~ d
- (command "zoom" "w" w1 w2)3 b1 }& D( _0 i0 K
- (setvar "osmode" om)
: w( E7 U$ v3 s3 ^& q& R# K+ }& p - )
K0 _8 F# f% A e
, v3 O! r7 A, n3 L h, I6 `! p- ;VE CUA DI
$ v4 H! Q, u( Q, c2 P& f8 I
E' A( n( a+ u; L- p, ~# X- (defun c:cuadi ()$ i+ ?) D2 E* h! n, c
- (setq om (getvar "osmode"))5 r$ y! p+ h* D! V8 K/ U% A
- (setvar "osmode" 0)4 k6 F( _& \$ v9 j% \( y
- + n/ s# M" m5 R8 ]. E, z% D
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
* h& x8 f( ~$ ` - (setq b (getreal "\n Nhap be rong cua : "))6 U p$ }% \+ f9 }& H
- (setvar "osmode" om)
2 u# l: i- A9 n( ]+ R; Q - (while (< 0 1)
- b( c3 b4 E9 K- O1 T3 i - (progn0 k6 `6 _+ `3 w- G! t* p
- (setq p0 (getpoint "\n Chon Basic Point:"))# x; ]0 }1 z$ ?" |1 n9 X) \
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
" Q1 c9 ? L# u5 ? - (command "osnap" "none")
" H `" N# ?+ Q7 x: F - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
8 q8 z9 z( M2 K( n! w6 j - (setq a1 (angle p0 p1)). A3 l, t6 e! T2 E
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
9 {: }* c, G, i8 h - (setq a2 (angle p0 p2))0 W% G6 |# \5 y3 p7 Z
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )4 Z3 N0 r! c/ Z* M b$ q: F: ?
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
' w! e5 `+ ]+ E. T0 L0 V' i7 T' K - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))# `7 m. A% y" Q
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
, j! C0 N. R Y8 O* Z/ U - (setvar "osmode" om)
) S$ c" M. o' I, ?* j1 w - ))$ p2 x( R! r# E* l) M
- )/ n- B9 l3 g/ W6 O5 {4 R: O) q
- & i" U4 E( }- d" ]6 V2 e
- ;VE CUA SO8 c$ I3 C* C0 O* R
- / O8 I5 B$ \& ~
- (defun c:cuaso ()
m! }2 ~$ r6 H* H, L* Q - (setq om (getvar "osmode"))2 [, i& S4 \- n1 W
- (setvar "osmode" 0)9 o' u1 A* h4 N; q. C* a( a
- ! {+ F7 ~$ C o9 ?
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
) O' b! i! {: H7 r! h; Y/ w! O - (setvar "osmode" om)
) t7 b) H/ w9 y7 X$ g" T - (while (< 0 1)! n8 p4 L, r, @& F2 F
- (progn
; D' S7 ~% g; } - (setq p0 (getpoint "\n Chon Basic Point:"))$ d# C. t: a5 O( s
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))( [5 x+ D; F2 w5 R5 w
- (command "osnap" "none")
9 ?' T9 o( C+ d K7 D# e - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))8 A$ R4 d2 M2 K& ^
- (setq b (distance p0 p1))+ K+ w% c% ~1 q/ m" q# F
- (if (< b (/ (* hstl 600) tile)) (setq du 50))
( c) Q" u- K! J, [! Z - (if (> b (/ (* hstl 600) tile)) (setq du 150))! ]- r6 v4 A1 R! S1 u" ]4 @
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))
6 y7 h0 O/ R5 R' w# g3 `+ ] - (setq a1 (angle p0 p1)): X; u& R& H* l6 K! R. b1 z
- (setq a2 (angle p0 p2))
5 {& e; X. t: i; K. j3 z - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
# D( W" E$ `; O- |) u - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
' c$ G( e8 l7 f: T - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
3 a9 {; n2 t; j0 D7 r, ]0 I - (command "pline" p0 "w" "0" "0" p1 "")4 G$ O; z. {' F6 }2 S1 `, q; J
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
. Q/ C$ m, O. E/ s% M, P - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")# I; S) N x, J C- X" D! R
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) " P6 g+ @" O* D6 ^6 u
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")! d6 X# g6 j( A
- (setvar "osmode" om)7 S' P5 z, ?. _0 J# r! G+ Y7 G
- ))4 O7 u- Q" v: }' }) j2 ^
- )
2 G% e1 p9 W! ^; S+ w1 g/ T
) _4 p4 E! U9 ]5 {4 C& p3 T* q- ;;;=== General Utility Functions ===
" r) M+ S8 _+ w& R/ D
- b& D" t! g/ |# D- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
. o6 _+ j/ ?) s& r+ V2 M) D - ; ADS function. Now it's a simple AutoLISP function that calls the
$ ^& ]8 ^) c2 x( J! Q0 L# x - ; built-in function (help). It's only purpose is R12 compatibility.
+ z! O7 p8 }: `& V! U2 [( v" @( B - ; If you are calling it for anything else, you should almost certainly
& e8 @3 @6 c+ z1 c: c - ; be calling (help) instead.
" a3 K7 S6 L, ] -
) `: l* s' H, b4 V( r6 w - (defun acad_helpdlg (helpfile topic)
/ S8 w; i/ V) Y+ ` - (help helpfile topic)
( T" V, _+ a7 ]0 n9 R& l - )
5 ^ m/ Q6 ]5 H* l8 j
! p+ Y; x4 l4 u* d- 1 W/ K& Y1 U3 ?
- (defun *merr* (msg)6 j4 M* V F4 q' C
- (setq *error* m:err m:err nil)2 h4 r3 O, ~ d2 L5 t
- (princ)+ q) w7 ], G5 x2 y: A
- )
) `" e; g6 U+ \! ?
/ e0 Z- Z) a9 P0 y- B- O- (defun *merrmsg* (msg)4 v4 T* `/ ]0 Y* n+ ^2 G! {
- (princ msg)/ _5 u7 n( ^/ j2 P8 e; o- w
- (setq *error* m:err m:err nil)
2 t5 l9 R$ [5 g" x' D' ?; o: l( B - (princ)' m/ p0 ^. Z: k R# _2 e* T
- )5 ~9 @7 l2 u5 Q9 Q
- ) T) K i- o# C/ O% U; Z! H
- ;; Loads the indicated ARX app if it isn't already loaded0 C' M! {# h3 n E% _0 s# _+ P
- ;; returns nil if no load was necessary, else returns the. @7 r5 A# s% d3 g9 J
- ;; app name if a load occurred.! J3 t$ C4 [9 @, A" @0 N
- (defun verify_arxapp_loaded (app)
3 B3 O s8 F( J* t/ q: | - (if (not (loadedp app (arx))) r9 K- z9 S: }' m w- F& y4 O6 _* W
- (arxload app f)) a9 f& o& D- i$ U
- )
9 V" I/ g8 Y# [$ \ - )
8 m& a* g) [; y/ [' t( C& ^ - & ]0 ~$ P/ G- ?5 C2 s9 L0 G
- ;; determines if a given application is loaded...
" L2 R4 ]( r# T4 U' Z - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
6 R0 K) U+ [4 K |5 K - ;;/ O9 m; ]& ]7 b, X
- ;; app is the filename of the application to check (extension is required)
0 c$ t' \2 g- G* C& {0 B9 U+ | - ;; appset is a list of applications, (such as (arx) or (ads) A7 s3 Y, a, v1 v
- ;;
/ }/ A% q3 V( H - ;; returns T or nil, depending on whether app is present in the appset
1 z+ G/ M* C% Y - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"# L4 S: Z, D6 y; G. [( u) l% K% t
- ;; Also, if appset contains members that contain paths, app will right-match
; T. e8 j3 ~. ~ - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that; \5 o; L: |7 ?
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx.", N6 s2 a T) f7 Y" E$ ^# H& Y
- (defun loadedp (app appset)
) g5 B( j$ u- W% C! a% I3 v - (cond (appset (or / l7 E/ t; z+ j; F6 [ J( M. X% s
- ;; exactly equal? (ignoring case)
/ s1 n9 ]5 e( u4 \" [$ Z( |+ E - (= (strcase (car appset))
- y2 ~" J+ W) M: C - (strcase app))0 d. F3 d& Y3 M, X3 D; T
- ;; right-matching? (ignoring case, but assuming that
) M) t& v. d$ J [# s - ;; it's a complete filename (with a backslash before it) n: S/ U$ |( l1 o! K# F5 p
- (and
3 O D/ \; Y8 y' d: E' A - (> (strlen (car appset)) (strlen app))
& Z: w) P5 p4 y2 x4 `9 w" B - (= (strcase (substr (car appset)
9 E' K! k3 Q; ]' {" k! P - (- (strlen (car appset))
8 A2 k9 R, f1 X$ |4 v - (strlen app) : T; k5 o4 X9 W3 P: Z- A/ g! ~
- )
) D& s, l5 Y9 D8 Z - )3 V6 s+ O$ Y K) [( @4 ?
- ) 1 x: w8 e" _2 \: x0 B$ ?% `! c
- (strcase (strcat "\\" app))4 g' @! B" N U& Z2 w7 ]
- )
" G, |9 s$ R* O - )
, B0 `2 S, V9 `/ m - ;; no match for this entry in appset, try next one...." \: ~3 B7 U) A# O* J1 Z3 S
- (loadedp app (cdr appset)) )))$ o8 I# l. C# C1 W9 |! a ?
- )7 N! y3 z% p+ ^
- / [2 z$ O) k. I& U. y
& p3 D& E6 m6 K: ?) S3 x8 q- ;;; ===== Single-line MText editor =====2 ?. k$ q* w- @" J' F' I% ~8 Z- J1 q
- (defun LispEd (contents / fname dcl state)
. a, B9 H' Z" z Z \: C - (if (not (setq fname (getvar "program")))6 k) \2 Z; t" G& z
- (setq fname "acad")
: u1 a5 o6 Q) G0 d, q# Z" `* Z - )
; U, i& t5 |, ]& i3 P { M# g X* V* k/ [ - (strcat fname ".dcl")
1 U/ t) u+ N, `2 e3 ]7 s, t - (setq dcl (load_dialog fname))% j. y+ m! N6 W, j5 I0 x
- (if (not (new_dialog "LispEd" dcl)) (exit))8 w/ m1 r1 m* f- ?' l. g" t* \' b
- (set_tile "contents" contents)
6 `( S! `! C k& {0 S, {7 P - (mode_tile "contents" 2); n- ]& S" y7 L$ L' t
- (action_tile "contents" "(setq contents $value)")3 @3 F1 M7 E; j) Y( n1 F0 P
- (action_tile "accept" "(done_dialog 1)")
% u2 [! @ A# g# D9 ? - (action_tile "mtexted" "(done_dialog 2)" )6 |1 T f1 L9 O) w$ r' e
- (setq state (start_dialog))
/ l; D. S$ V& N4 H2 S4 Q+ f# M, | - (unload_dialog dcl)! r) t! ?5 k0 K) i5 v S
- (cond/ w$ \. i9 [: Y" X3 H: Q0 k$ T
- ((= state 1) contents)
* v. D2 l9 X! U/ Y i9 ` - ((= state 2) -1)
; K/ O, l' X, L& P, j/ I - (t 0)3 V4 L R% e# F
- )! Z7 [' e8 b5 T- @( Z# @
- )# v+ G3 Z2 j- F6 U5 S
- 9 q7 q2 n& |( p
- ;;; ===== Discontinued commands =====
" A5 {. V# c/ a* Z5 Z/ B - (defun c:ddselect(/ cmdecho-save)
; q6 q$ r+ `0 z - (setq cmdecho-save (getvar "CMDECHO"))
7 F5 p! r. F. c( }2 V; K8 f - (setvar "CMDECHO" 0)4 R8 l- w6 L% j. o$ T
- (command "._+options" 7)
" X' ]3 P$ M4 Z0 W# |: ? - (setvar "CMDECHO" cmdecho-save)
- ~7 ^2 L' ]4 W- i1 d - (princ)
6 x7 E2 X+ P! ]; ^+ p - )
; ]5 B0 i1 M5 ?8 E5 W; s - 7 p9 m3 K& ]) b3 r9 }
- (defun c:ddgrips(/ cmdecho-save)
- y# W( t/ C2 a+ V - (setq cmdecho-save (getvar "CMDECHO"))' K6 J8 _* j/ }2 H# E
- (setvar "CMDECHO" 0)* |, c3 S# h# h6 |1 z
- (command "._+options" 7)
% X8 U7 c% D+ { b - (setvar "CMDECHO" cmdecho-save)
# |; a8 X4 ]8 {+ n) m Q6 } - (princ)' A' ]# l$ p, X. q
- )
# |( m' p* \: W1 @* w F; ~
- ~3 r1 s4 F7 G( N6 ~ s+ e+ w. b4 m8 H- (defun c:gifin ()
$ h: n" X+ u5 X) e! @( Q& W( g - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n"), `, o0 k* {- q. T1 L& i; ?
- (princ)& p; G( x& K' q3 M6 `
- )' c' Z4 _+ G( D6 f, J6 v
8 e2 f' ^1 X, N* b# I- (defun c:pcxin ()
7 q! M" }6 H! y - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n") Z3 r' ]0 A/ l# ]; r5 G% K1 C( ]
- (princ)
/ }9 d) D! F9 E - )
7 ?$ g# x5 T& B/ w* y! f) A
+ P. [* z7 d3 M- W- (defun c:tiffin ()3 y* N5 Q+ `. V2 }0 w
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")- h; ]: y/ q- B/ `% x
- (princ)2 ^/ u; Y4 w4 N5 K$ @9 N$ Z% r0 g! {
- )
) {" e2 I2 G( F1 Y2 W* S5 y U
# b, D7 k. n4 x' Z# G- (defun c:ddemodes()5 P" k2 y2 r& L/ B
- (alert "The Object Properties toolbar incorporates DDEMODES functionality. \nDDEMODES has been discontinued. \n\nFor more information, select \"Object Properties toolbar\" from the AutoCAD Help Index tab.")
: b+ H z: W0 h% ?2 O) D - (princ); T5 M+ P% a" U& s: v
- )
- P2 i9 C m- s4 X - 4 K% O. s: H/ c$ E2 s7 y
- (defun c:ddrmodes(/ cmdecho-save): m6 j, Q. y5 }3 d) R
- (setq cmdecho-save (getvar "CMDECHO"))
P9 o0 ]% Q3 n H3 T4 x7 n' i2 e - (setvar "CMDECHO" 0)
8 E9 N/ ?; W! X$ a5 l5 r - (command "._+dsettings" 0)9 x) [$ }' P0 h/ \) e; B
- (setvar "CMDECHO" cmdecho-save)
, x \. n5 Z& c) _/ u4 Y - (princ)4 [4 K5 f; R* Q5 ? k& j% j
- )
H& x4 x: I i1 ?) K0 o - ! j/ U( b6 I1 r. c8 D
- ;; HPCONFIG7 \; z# Z& l* F1 j( `: c2 h- N+ a
- (defun c:hpconfig (/ hlppath)1 o$ K3 z( q0 D- a8 P0 O
- (if (not (setq hlppath (findfile "acad.hlp")))
" y. g% @& x2 \* }1 W - (setq hlppath ""))4 T( I& r! z* ~$ b$ L
- (help hlppath "hpconfig")* n& q/ s7 t0 ?, ^ U1 ~
- (princ)
6 `, I1 e; N$ y - ). G, D8 W; b9 \0 }1 U: v
# @$ c' f) I) I8 J) k8 f) q- ;; OCECONFIG. g$ k- T! y2 h" {0 A
- (defun c:oceconfig (/ hlppath)
$ C4 M7 a8 J( ?% a+ G - (if (not (setq hlppath (findfile "acad.hlp")))5 a# g* T' r* j Z& Y
- (setq hlppath ""))# i) q6 j. H; K; r% ]
- (help hlppath "oceconfig")
% ?; n8 W( a2 _" _$ a+ y( z2 Z" r8 n+ W$ S - (princ)
8 T7 c2 ^( u$ ~8 Y( i - )6 d! ~ T6 g( m
. N! J' s" C. E- ;; CCONFIG
8 X: ?; Y# E- V# p4 {% u* n: [ - (defun c:cconfig (/ hlppath)
1 [7 w" @' i( u - (if (not (setq hlppath (findfile "acad.hlp")))" r7 w, w, } ~! V! d
- (setq hlppath ""))! ^1 j, t% r1 L' x: s
- (help hlppath "cconfig")7 W- k, x- \3 K; I/ @3 {, Q
- (princ)1 q n" R. O5 ?' V5 t
- )
$ U# W, W; t) K1 d* v+ p3 B
; N7 ? x& N; _- ;;; ===== AutoLoad =====& g N8 s+ u- h+ {4 u+ {
- ' Z; S0 J- ? m' n
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
/ Q1 D% N) U) U& g6 w$ J - ;;; for the name of a certain appplication <appname>.
) [ l2 \6 |2 n ^5 b F/ z6 | - ;;; Returns T if <appname> is loaded., W! r5 z# a7 J( H, ]* i
2 v( N% ]8 p/ k5 U3 b2 _- (defun ai_AppLoaded (appname apptype)
/ c x6 p, X( H- m% `, P4 b - (apply 'or
5 S% q% z* l$ Z' W$ U - (mapcar
" n0 { n, j( m# A' ]3 { - '(lambda (j); c+ ]2 E6 I/ V2 f! }
- (wcmatch) U1 T( B2 A0 p) t- Y; s" x
- (strcase j T)
1 m) W; d" O" \- C+ ^ - (strcase (strcat "*" appname "*") T)
2 {) [- j/ }9 p# D - ) , w1 m0 t0 ]! i5 B
- )8 |2 [$ Z9 w9 |9 H
- (eval (list (read apptype)))
: ], i3 N! I: U9 h* G - )
6 E+ p' }/ V; S T- r+ B- [; d - )
! U4 V! }1 Y3 A# e - )
" B, g2 ~3 M! o9 X - ; H2 Q! Y$ x1 ?
- ;; ' F: {% q7 P* V/ i3 h# _) U
- ;; Native Rx commands cannot be called with the "C:" syntax. They must
2 h" I8 Z3 q8 P6 n# S- }! C! r/ ^* e - ;; be called via (command). Therefore they require their own autoload ' F- ]8 D! v, e& p. a0 a
- ;; command.
1 a9 G% n. Z& S1 R- Z9 e! K& y' ] - 1 j5 J# s1 a5 ]% p( P
- (defun autonativeload (app cmdliste / qapp)
8 j8 _+ z: w# N2 z+ v+ \ - (setq qapp (strcat "\"" app "\""))
; c7 w, Z4 ~0 a/ H( n - (setq initstring "\nInitializing...")
- y% p4 U" ]- H+ e - (mapcar
2 Z! Q5 A0 J% [6 n1 S4 w7 F - '(lambda (cmd / nom_cmd native_cmd), B% ]; V0 {6 J* m# `+ }/ s/ R) M
- (progn
9 b' I; A" x" X5 I) j; d - (setq nom_cmd (strcat "C:" cmd))
) X$ Q+ u ?( u# k) @ - (setq native_cmd (strcat "\"_" cmd "\""))
6 s2 s! `( O9 T7 h; `) e - (if (not (eval (read nom_cmd)))- c" w* M- a' M7 _6 ?2 K' n5 a- B
- (eval
3 C! O1 t- a( J5 X4 c - (read (strcat. A+ e6 M" g" x+ C+ R c
- "(defun " nom_cmd "()"& A/ n# p$ Y- M2 U: j8 }; s, @
- "(setq m:err *error* *error* *merrmsg*)"' k: C8 ^2 G" E. v
- "(if (ai_ffile " qapp ")"
! Z/ R* A& [8 |/ ] - "(progn (princ initstring)"
1 \, G3 u& n/ ?- e - "(_autoarxload " qapp ") (command " native_cmd "))"
8 v. V# ~9 E. `2 h - "(ai_nofile " qapp "))"
! x5 C* x L/ p. |. T6 k - "(setq *error* m:err m:err nil))"
0 e' v# {" Y6 U% p& }/ J; a; M - ))))))
& F1 i2 o# d) u2 r; b - cmdliste)
& ^. y9 K( V/ _, K$ x: l7 ^ - nil
9 ]4 q4 W! a) d- j - )
0 P# e$ K- i8 e* X B) A# d - & {$ }3 W6 b7 f1 r0 @+ r
- (defun _autoqload (quoi app cmdliste / qapp symnam)
4 k% x% |& O* {% s - (setq qapp (strcat "\"" app "\""))
% [3 x; X! W% p8 Z - (setq initstring "\nInitializing...")
: [# {/ }* C* ~# ^. O( g& f - (mapcar
% i/ }/ k- G/ S8 Y9 R - '(lambda (cmd / nom_cmd)5 S% [2 {5 q2 V6 I3 p3 X9 ?
- (progn4 f( J0 n7 e) m; W" \
- (setq nom_cmd (strcat "C:" cmd))! \0 m% |# ?. s( H4 y5 W
- (if (not (eval (read nom_cmd)))' x& _" v+ A, {0 a, T
- (eval
& b4 S; [. o* u - (read (strcat
4 i" L( e# }7 ^3 a - "(defun " nom_cmd "( / rtn)"
9 ]7 \0 u, k' P* R - "(setq m:err *error* *error* *merrmsg*)"0 k7 |' v$ x' H5 i1 z% ?& K
- "(if (ai_ffile " qapp ")"
6 t7 h# p5 s6 w A* k0 _" \ - "(progn (princ initstring)"
: f, V" L# s3 M" N7 m - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
6 q/ B; F3 }1 V& Z8 G) b3 J3 d4 @ - "(ai_nofile " qapp "))"4 R3 R* |3 n! }/ I1 M# ^9 \+ @
- "(setq *error* m:err m:err nil)"0 @: j' j5 O2 } Q N
- "rtn)"
0 v) \- G" T0 ^( J! {( O+ [1 Q* C - ))))))
1 Y: U4 \4 `4 A5 S+ @. n" p, i* V - cmdliste)) r1 B0 }1 j- R" ~! S6 C& M
- nil; j i( s# m; z1 b6 l' j
- )9 ^# X5 Y b* X, a% M i R
/ [- S* \% a' G& Q* j- (defun autoload (app cmdliste)
$ A& U* {$ u7 ? v - (_autoqload "" app cmdliste)8 R0 [8 { H8 n
- )
$ D1 [7 v# z+ A* X
$ E0 O- f; P/ j* A- (defun autoarxload (app cmdliste)
7 A; P, R" {6 h$ H; E! `. d - (_autoqload "arx" app cmdliste) g( D3 A- `5 h4 c5 R& u; w
- )
, i. K$ | z& Y7 `) B3 K2 I
+ Z2 c) A) }! Y- k8 V9 g- (defun autoarxacedload (app cmdliste / qapp symnam)
. C6 K0 |: E" k& N% ]8 y - (setq qapp (strcat "\"" app "\""))
$ ?; s; ]8 R1 s% ~% \0 r4 y1 X7 X8 W2 n - (setq initstring "\nInitializing...")
" P( S9 g( w) B% J6 l- i - (mapcar! Y" [: `% U: `" {
- '(lambda (cmd / nom_cmd)
" y$ P! A8 X. p- d - (progn2 M& u$ H3 v) y6 K/ B* l8 r
- (setq nom_cmd (strcat "C:" cmd))& X; E8 c' Z6 w f
- (if (not (eval (read nom_cmd)))
, U; h6 S, I' p1 U* H: V/ x2 p) J - (eval
7 Z9 A# C8 r+ U" K4 U- [ - (read (strcat
- `2 R- g; p' v - "(defun " nom_cmd "( / oldcmdecho)"6 x- S1 _' M. T5 i; X; Q0 ?
- "(setq m:err *error* *error* *merrmsg*)"& O9 F' }$ ^3 i$ a
- "(if (ai_ffile " qapp ")". m4 \4 i3 Z% i& X* H/ B
- "(progn (princ initstring)"5 I! v; I5 I7 m( |1 e
- "(_autoarxload " qapp ")"( a4 N) ^8 t$ i+ s& A/ d
- "(setq oldcmdecho (getvar \"CMDECHO\"))"9 N- w/ o( l6 c. q# R+ V$ r* p( c
- "(setvar \"CMDECHO\" 0)"7 k; R7 _) L- g% ^: P' v
- "(command " "\"_" cmd "\"" ")"
; Q& w1 N3 z& c7 m5 v9 O - "(setvar \"CMDECHO\" oldcmdecho))"
1 P0 K( D" g, l7 k9 [ - "(ai_nofile " qapp "))"
" u' c. {# R: _$ A. t' a d - "(setq *error* m:err m:err nil)"
7 P4 w* J7 K. A4 P/ V- P - "(princ))"
( w2 R, E4 X* Y. d0 L3 W - ))))))
) J- i- l( }8 C& g - cmdliste)
. H) N# x1 n! t2 u2 E j( C) M) O3 w - nil9 L) j$ M" v2 h3 x u( U
- )
2 V$ h/ _6 ?% x7 M8 H+ k% a - - Z4 c. l. K. v' `, n
- (defun _autoload (app)
4 [$ X% d' M8 f; Z - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)8 j' @- J& e5 \' i% W
- (load app), X. R" B/ _7 d$ W% h, A4 y
- )
% m; D+ a6 K8 ?$ Z8 O' l( S0 W2 \ - 8 ?" W8 i/ K$ V* s( V0 u% d6 U
- (defun _autoarxload (app)
0 O @4 ~+ O" [ - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri); d4 h. e8 s2 ]$ x6 z. @0 S
- (arxload app)- c% g+ o4 G: v B
- )/ u1 e# j: n! c9 b2 U# r7 t4 x) g: {
- 6 E% J* u; |! L* V/ H6 R G u0 X
- (defun ai_ffile (app), S+ M. K5 ^; ]" g
- (or (findfile (strcat app ".lsp")), L: _' R2 L$ D; x
- (findfile (strcat app ".exp"))
H. Q1 W3 S. A4 Y2 ` - (findfile (strcat app ".exe"))8 J s$ w3 i2 e$ m+ [0 ]* h
- (findfile (strcat app ".arx")), v, X- [+ u8 ?9 q! O
- (findfile app)- g3 k/ @( \9 f1 J$ t
- )$ z# o* @' y" c" C* W d3 C
- )
( O+ R( G# s5 U4 u' K, `
' I; Y# b. ~" {7 k8 A- (defun ai_nofile (filename)$ `: I# o3 [2 l# B+ C
- (princ: p. S& U+ n2 T' E
- (strcat "\nThe file "0 ~5 X% a9 |6 E8 a9 J8 r5 l9 X! J0 S
- filename
+ e2 F5 F6 T1 ]7 e9 D, x; k - "(.lsp/.exe/.arx) was not found in your search path folders."
+ h. E7 r8 W5 I6 ~% q* |. }; L - )
; ^: J8 i3 q7 c- y, o% F4 k/ q - )) A* [0 k k7 Q3 R/ Q a/ x
- (princ "\nCheck the installation of the support files and try again.")
' V7 S" U4 k1 X* |( H6 P - (princ)
B: U: c( O) d H* [) u+ x) n# a - )
- ^, Q- C7 }! K2 l7 O0 O' v - ; T4 `8 |1 y- N, c' S
' W' @3 y' h$ _, G, q3 C' d- ;;;===== AutoLoad LISP Applications =====
: K% x0 J' f! C9 F3 m0 { - ; Set help for those apps with a command line interface; U3 M- D. y7 O
- % i; ]. |* F" T% J1 u) j
- (autoload "edge" '("edge")) @$ F* U" \' A+ b7 X- u
- (setfunhelp "C:edge" "" "edge")
3 t% L8 k4 n& m/ F
# ^ ?+ T: P% t! K- (autoload "filter" '("filter " "filter"))
' K" P# n9 M* r" o1 [$ e- O; D - ( r6 f% u% Q" i
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"" h9 \, A9 w+ j' n, Q9 j1 \$ h
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
_" @% \) b" p7 a9 e+ a( b5 X - )
]6 z) b+ f. y3 n* { - (setfunhelp "C:3d" "" "3d")+ @' a. u A0 V4 p
- (setfunhelp "C:ai_box" "" "3d_box")
& `8 J0 T. ~- j - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
5 g# \$ p) ^. v3 m4 U - (setfunhelp "C:ai__wedge" "" "3d_wedge")5 h, y( E. u4 A% K0 G
- (setfunhelp "C:ai_dome" "" "3d_dome")
8 b2 ?9 ~$ I/ F' w( c$ y - (setfunhelp "C:ai_mesh" "" "3d_mesh")2 S& ?: [9 h5 Y" z! m9 T* W
- (setfunhelp "C:ai_sphere" "" "3d_sphere")
7 b' t& h$ G. N$ j - (setfunhelp "C:ai_cone" "" "3d_cone")
0 C# H3 G4 f3 G+ E$ `( J - (setfunhelp "C:ai_torus" "" "3d_torus")
6 J7 \0 w3 r2 S" Z F! @ - (setfunhelp "C:ai_dish" "" "3d_dish")
! W4 n. o) ?% D, K- ]+ N0 o - + e8 V" M% z1 i% s ^/ e
- (autoload "3darray" '("3darray"))' \- a& L# X1 e: @4 @" S0 z
- (setfunhelp "C:3darray" "" "3darray")8 ?5 }/ D# O i( Z% j4 L- M4 ~
0 r0 K7 O0 y \2 V! n- (autoload "ddvpoint" '("ddvpoint"))
3 d- }0 C, C6 ?: m - & h. l; j6 U* F4 l8 [) L) e
- (autoload "mvsetup" '("mvsetup"))7 H9 O }$ H6 f7 k0 x) y0 J# ?7 h7 ?
- (setfunhelp "C:mvsetup" "" "mvsetup")- ^; I5 v4 `5 |8 B# ^/ |- G
- & J E# u: H4 Z7 L2 \% c. G0 P
- (autoload "ddptype" '("ddptype"))
% s; p/ |. M8 _' X - + c6 m6 L# r0 n* b& \& l
- (autoload "attredef" '("attredef"))8 t0 Y8 m: R7 w4 k
- (setfunhelp "C:attredef" "" "attredef")
5 t3 A6 d' N3 \+ E- F5 v6 ?, N c
( c* _( y, s; E- O- (autoload "xplode" '("xp" "xplode"))
; o$ }$ c0 b. v# P2 D c - (setfunhelp "C:xplode" "" "xplode")
; m; H5 L% Z0 \- M6 P, v1 F
9 M3 Y2 K0 p5 W- (autoload "tutorial" '("tutdemo" "tutclear". ` b8 y' Q. q' T, [' j$ g
- "tutdemo"
' p* E, C. {( i) c4 k - "tutclear"))
) t7 u- z+ O$ V6 F! l
2 c. z" Q' D. C7 N, ]- ;;;===== AutoArxLoad Arx Applications =====! O5 L( K. p. R% x7 ^
0 E% y( n9 W* G3 |, |- (autoarxload "geomcal" '("cal" "cal"))* m! i7 N: x: i& ~5 Z" E
, s* h& \2 q5 L1 N6 {- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"2 f& ]" f3 j( {0 B' U8 G
- "mirror3d" "rotate3d" - |/ _$ G' C9 U1 G/ _- g+ ]9 h
- "align"))
3 B( Z+ q$ X5 \0 j: y1 ] - Y$ }; F J3 p* }7 Y& e
- $ B( h) j9 e* m6 i4 {
- ;;; ===== Double byte character handling functions =====
" y ~% P3 h4 q7 {* x$ d4 }
: ^2 ^: Y3 M4 w1 Q- (defun is_lead_byte(code)
$ m. D) I7 H2 n. X% B4 f - (setq asia_cd (getvar "dwgcodepage"))
V) Z8 G7 B# d* t - (cond$ v" _2 `1 {5 B+ D7 ]: P
- ( (or (= asia_cd "dos932")/ l0 u. w. W9 m1 I
- (= asia_cd "ANSI_932")! D% d3 T8 D: G; _) F0 {
- ) Y8 u$ b- I0 r' D
- (or (and (<= 129 code) (<= code 159))6 ?: m. i1 ?7 x( n {6 e. I* _, w
- (and (<= 224 code) (<= code 252))
# H5 N0 P: A% m - )
* x! i. V9 {8 n# s( F( U" j0 q - )2 T: J4 Z1 u1 ]- s
- ( (or (= asia_cd "big5")8 K( T: Y$ X/ K- c
- (= asia_cd "ANSI_950"): n. e Z: Y9 r+ |' M
- )' _( `& K5 e1 [6 `
- (and (<= 129 code) (<= code 254))
$ [% G9 D: u4 H1 c8 ] U7 o- y - )
& o. G/ Y, g8 T' T% y( w9 ] - ( (or (= asia_cd "gb2312")
* a( z, F( w) r1 H - (= asia_cd "ANSI_936")4 T; Y8 X0 F9 E1 Y0 V# ^- X; f
- )+ \/ F% |" J1 L5 ~9 n7 M( F
- (and (<= 161 code) (<= code 254))
0 f. ?# [# v) _$ ^8 S - )3 C& Q1 N8 D0 a+ H# u' o: P
- ( (or (= asia_cd "johab")9 E% }7 W& Y* }9 G; q3 E
- (= asia_cd "ANSI_1361")
! E; x! I( y3 v! P. D# K# |# J - )7 u5 Q9 B2 e, L* ^4 A( F
- (and (<= 132 code) (<= code 211))7 n4 h: {" r6 X# }' E1 H7 _
- )# m) }# y9 l, |8 p5 c( ]
- ( (or (= asia_cd "ksc5601")
0 x& f2 e, S; Y5 `$ b3 Y) I8 F - (= asia_cd "ANSI_949")& [+ M# k4 h0 `% z- O" y
- )
& h$ C: \' g& A1 A( C3 B - (and (<= 129 code) (<= code 254))
, v& B! p% w/ _! _6 A$ K: b0 V - ) E! Q: ]8 y" {0 Y$ z4 |
- )
" E0 Z* ?6 u8 v - )! q3 j- O3 c, {! d
9 @) d# U6 G1 W/ j1 R- K r3 h- ;;; ====================================================
9 D" F& b- J ~% m
7 g0 G' x+ [& W/ m) N& x% }- ' m" K* l* G/ t3 M/ V3 }
- ;;;! p( v3 h! f# b- ^* H5 b
- ;;; FITSTR2LEN2 L) \; M7 F" |1 R7 E7 ]
- ;;;0 u: a$ D. m- B- z# T5 e
- ;;; Truncates the given string to the given length.
! o( ~ Q2 T; ], Y" X$ \7 G - ;;; This function should be used to fit symbol table names, that
. o9 K& x) o; | - ;;; may turn into \U+ sequences into a given size to be displayed u7 _% D! f: k9 C4 ^5 g- v
- ;;; inside a dialog box.
' n7 e i" P2 I/ r! T6 ?/ W - ;;;
+ R- W/ `- o8 k+ ^" j8 M - ;;; Ex: the following string: ! ~9 \% [1 F F% Z) \
- ;;;
* I, q s( n( e9 @" t1 b! e" f% w - ;;; "This is a long string that will not fit into a 32 character static text box.": k4 H5 ^! J' m/ U7 ]4 C
- ;;;; s/ O& a5 W7 g
- ;;; would display as a 32 character long string as follows:
# `* S# @( e8 i - ;;;
8 y* R( Z( }5 p - ;;; "This is a long...tatic text box."
7 L1 k' l/ I& p - ;;;9 B, P+ c6 r6 u; F: Q: x/ @8 K
( h9 V" J$ ~3 e$ B- (defun fitstr2len (str1 maxlen)$ F- L9 O) B- N4 i( g# f; w
- - N! Y, ^ g7 Q3 E) I( X) I# H# t
- ;;; initialize internals
" k) L% j7 f6 Q- ~4 R; ~ C U9 m8 ]8 i - (setq tmpstr str1)3 f K& |! A7 s7 ^% B
- (setq len (strlen tmpstr))
2 ?! T* }" o7 M4 s; h0 a4 E
9 D! U- O: F: x" j2 x- (if (> len maxlen)
2 d/ o N8 U! `2 h - (progn! l1 y- `- S* u* Y9 B
- (setq maxlen2 (/ maxlen 2))# m6 N; p1 K' @8 V3 [$ R# T
- (if (> maxlen (* maxlen2 2))
3 C# U& `4 j u& D0 m# i - (setq maxlen2 (- maxlen2 1))1 T p3 O I0 [+ @
- )' v! [- X3 G! L% ~$ O1 U7 J
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
3 `8 H A- f+ Q - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
! J$ p6 n: W$ A2 L - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
$ L' A" w% ]) j - )5 _' ~7 v5 @( `% _; A3 E
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
& w i2 ^. H$ T$ A - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))- L/ p+ ~3 i% p
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))4 D/ q, a( S2 b+ ^7 c* v: r
- ); [' _* x5 m7 v5 q- a0 y" B6 l
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
/ `+ F# F+ X+ g6 u, [2 H" H! V - ) ;;; progn5 L: V: w& c1 |* n( W3 b$ }9 F
- (setq str2 (strcat tmpstr))- t& P$ l3 @- c# i
- ) ;;; if- p1 }* Z8 O }+ T' p9 Q& t! h& s# N
- ) ;;; defun
( m" @, Z% S6 M - & l! U0 x s; z8 o U" b% o5 ^
- / S: m: z; J# i: F% V& k
- ;;;/ K+ ]: l9 M3 G2 m% @& E2 B
- ;;; If the first object in a selection set has an attached URL
- a- r: [" l9 i" H1 v0 u6 y& u3 S - ;;; Then launch browser and point to the URL.0 H6 O8 M+ E* h) H R" k
- ;;; Called by the Grips Cursor Menu* \1 m1 @7 W3 t, ^& \; L
- ;;;- o$ K4 z, a: [* `4 i
- + [8 M7 Q6 N7 y+ }9 j: S- d5 z
- (defun C:gotourl ( / ssurl url i)
% _5 z8 r; R$ N2 b6 t( d! R: x - (setq m:err *error* *error* *merrmsg* i 0)4 u& ^. Y0 `2 Y( I3 ~* [1 N
- , ^9 | D$ |) g
- ; if some objects are not already pickfirst selected, $ Z' h# G/ ]1 Y- ^+ M! W% I
- ; then allow objects to be selected5 W- U$ n0 [ B' [
0 F' r5 s, ~, b! ~- (if (not (setq ssurl (ssget "_I"))). R' N; k7 A2 n& @* U9 w* R& D
- (setq ssurl (ssget))
7 l: x8 C+ R( F: T3 ^ - )
! v2 N7 {' l7 G7 g+ k0 S4 } - * X5 D0 @7 z1 i/ S. ^' k
- ; if geturl LISP command not found then load arx application
& p/ p' W _" w3 y& S
* |& u Z. }7 l1 K2 S) z0 Z5 I* P- (if (/= (type geturl) 'EXRXSUBR)+ J: a& w1 i' c6 S
- (arxload "dwfout")
8 x( j% e$ A0 L% [, Z8 W+ U2 Q0 h - )
, O3 Y/ k7 C( m' s9 `; T - 8 N# A: _! k3 _0 `2 V- t
- ; Search list for first object with an URL
0 f3 i$ t( e: T - (while (and (= url nil) (< i (sslength ssurl)))) l- B. r5 V: d$ q/ Q
- (setq url (geturl (ssname ssurl i)) \5 u6 I, f7 i# d
- i (1+ i))
9 }/ o. g. B0 ^, R3 H' e, A - )
/ U/ c$ a! ^1 z! J/ v+ R6 F( m
5 Q; p- p8 Z+ | S: M* h1 e- ; If an URL has be found, open browser and point to URL% I$ \- m2 b- L; N6 u
- (if (= url nil)' H& R% T/ W) U7 F3 ]) Q, [& K1 X
- (alert "No Universal Resource Locator associated with the object.")
5 K& a9 N- E! c! U/ v* {4 H - (command "_.browser" url). U# S4 t$ I# [. v& S5 b: _
- )& C9 Z) B1 E: O
, ~! A) e6 |8 y. `, v8 ?3 S) D2 M- (setq *error* m:err m:err nil)
4 M: h) u: A, t7 O1 r6 j - (princ)
0 g6 T6 ]8 v2 z( s5 o - & ~8 Q6 w/ O6 M" m; y
- )9 e5 E2 B% x: V3 b* \. I. i
2 [' A6 r, `" }& v/ c+ u6 ^- ;; Used by the import dialog to silently load a 3ds file* q4 _/ x. h' F# k% u1 g% o( m
- (defun import3ds (filename / filedia_old render)$ Q ]6 g4 r9 y9 {! r% d
- ;; Load Render if not loaded
2 M' K5 I) F5 c - (setq render (findfile "acRender.arx"))8 y9 C* Y" n/ u9 O8 o0 l; }
- (if render
! V' s$ V; f; u- K, i) k - (verify_arxapp_loaded render) 5 }; `) E- }7 h% \& o( @7 V
- (quit). V9 C3 u3 r' \
- ); J( J2 F S* V* V8 I9 I
, p; i7 F: S% G4 J+ T- ;; Save current filedia & cmdecho setting.5 X- p5 F0 W N
- (setq filedia-save (getvar "FILEDIA"))
! L0 \' }8 P/ S3 B3 k5 \8 _ - (setq cmdecho-save (getvar "CMDECHO"))
, d+ ?% V. d p0 P0 `/ [% I# v - (setvar "FILEDIA" 0)
3 L' O( q0 J6 H o3 E- \0 t$ [ - (setvar "CMDECHO" 0)
7 d3 m* n" X. h0 Z - ( E& w6 }6 H; \- O7 V" E
- ;; Call 3DSIN and pass in filename.
! {% H, n/ c. b8 d6 R - (c:3dsin 1 filename)
1 T: J8 R' f( o9 f& n) O - : \: h3 n6 C& j& d: q
- ;; Reset filedia & cmdecho
, K0 u. @1 { ^! e; z- J - (setvar "FILEDIA" filedia-save)0 x$ Z; u! |: b* @
- (setvar "CMDECHO" cmdecho-save)$ Z% v5 T" K k+ d8 b
- (princ)
' ?4 }% |! I3 Z% F: \3 V) K4 }4 u - )/ z R# V3 Q' K! v
- 2 I) \: f0 x" w E# w! V* \
. m/ t- Y+ i3 F( F' {$ \- ;;;=== Menu Functions ======================================
( \& F- M! y C - 7 q0 f! K# G, D) S
- (defun ai_rootmenus ()
& e" x0 A$ d0 X A4 j - (setq T_MENU 0)
0 w( K3 N8 c( Z" i1 V - (menucmd "S=S")6 y, \; J( N: b6 `
- (menucmd "S=ACAD.S")
* l e+ Q$ F/ c4 S: Z - (princ)
; ^5 F7 {, [8 x, _. v - )* v, R" Z/ D! {
- . b, P( e# L% R4 r, a
- (defun c:ai_fms ( / fmsa fmsb)
8 N! t, k; K& s0 L: Q5 y2 t - (setq m:err *error* *error* *merr*)3 H! L" x5 \) e
- (ai_undo_push)
3 P d8 O* Q) u# F0 i! }2 Z - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))( z+ B, J( F. T: w1 e# @1 h
- (setq fmsa (vports) fmsb (nth 0 fmsa)); x2 x) S2 \2 }) W$ L
- (if (member 1 fmsb)
7 w; ]8 d% w3 d - (if (> (length fmsa) 1)
- M% ^5 N: A, U - (command "_.mspace")7 a% ?+ X; Q# P. a5 n
- (progn9 [' B5 p$ o5 H1 e$ S
- (ai_sysvar '("cmdecho" . 1))
; K* X6 x8 H9 m2 n3 _& ^ - (command "_.mview")
$ ~" N6 b+ ]. c - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))4 L# y0 x7 t) @- g" x2 U
- (command pause)7 A0 |* d7 I+ M. x
- )
+ F" r7 A: c G# w - (ai_sysvar NIL)
) m4 e: H, D/ } Z6 x - (command "_.mspace")& l2 B( m' _ H" Q$ y1 ?
- )
& c- u! f. C0 v( v( l& W6 E - )7 Z( l/ C& J# u2 M6 |# ?% G
- )0 x3 D+ ]+ v( w- k8 W5 ^9 J
- (ai_undo_pop)
) J: C3 q: \* `; ^3 L - (setq *error* m:err m:err nil)
+ ~4 X+ B4 w( v F1 |3 d0 ~1 X: J - (princ)
; T+ T8 S, m8 h/ j' n3 r - )% `( y& a' o1 ~) Q
- 8 s' D, w M; p1 B1 p
- (defun ai_onoff (var)
$ U* N; e: t- B5 f! o6 @ - (setvar var (abs (1- (getvar var))))+ |% h# `: n8 \7 Y, ^
- (princ)
6 I: x" L, ?9 R# C4 [- `& _& l - )
1 Y% ^! w E1 |9 f - & m# j$ p9 }' _0 G1 K" Y
- ;;; go to paper space
9 K+ Q! R5 L% w& K8 K: ?+ { b! I - (defun c:ai_pspace (), _7 {3 J2 R& ]( {* [
- (ai_undo_push)
% L9 b+ I+ d3 b0 u, ^+ E& T7 D - (if (/= 0 (getvar "tilemode"))+ W; V4 l3 B5 f" }2 \, X3 \
- (command "_.tilemode" 0)
7 @+ @' m% M4 H. x2 z" g - ) `4 t- y3 z, ^- w0 X
- (if (/= 1 (getvar "cvport"))2 y, T7 I# d" Q. T
- (command "_.pspace")2 L# j. ?- x% p
- )
# q; V" E$ Z3 u( x - (ai_undo_pop)% `9 G% D/ J7 T3 g- U
- (princ)! L3 L3 e- z# ~- Q7 }
- )8 O4 }" {" o9 a* ~; t# d; ]
3 g4 B) I7 ?# {& \- ;;; go to tilemode 19 f# y( g5 y6 j: {2 `9 H: B
- (defun c:ai_tilemode1 ()1 y" n1 Z! S) ]+ G
- (ai_undo_push)
) i6 S4 @6 {8 I6 g - (if (/= 1 (getvar "tilemode"))
1 g) i+ J+ s+ q# f7 G+ h - (command "_.tilemode" 1): l, Z# O, }; c# [$ `: n! H
- )
) [: z* \7 t" k! |% m: |; o: J: p - (ai_undo_pop)
+ Q9 B- M- d% C( N - (princ)
3 M4 a8 h, T( @$ E( T - ). v* K+ J) a- O k3 L1 N5 Z
5 W. j2 f& t+ W. B6 P- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
, q$ H4 }1 r, Q! I2 x+ F2 G - ;;; Toolbar Dimensions/ Align Text/ Centered
) v3 Y0 X; g; M3 f- X% d - 2 k$ S. s9 }. A6 L( E$ V3 W
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
( f6 d' b9 k! c! Z; i7 R - (setq ai_sysvar (getvar "cmdecho"))( F! Z7 C0 ]8 I# v, |+ e
- (setvar "cmdecho" 0)
3 I" }0 m/ I( ?& B; }6 ~ - (cond! A+ |# S7 \$ z G
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
- I, ?) f V# \' L4 z4 N9 a - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" # P7 l9 Z7 N& }
- "_.dimtedit" ai_dim_ss "_h"). [& f' |' l2 N( y
- )
: l- d, l6 @5 r) @9 ~6 q5 A - (T nil)4 D- D5 t$ p- C9 R6 }
- )$ T: c( n6 w4 O( F H7 I% B
- (setvar "cmdecho" ai_sysvar)
5 x h1 a Z5 J' H6 G9 m - (princ)( p# S0 z, _, c! ^3 N
- )
1 p( d5 i& T O/ ^ - 7 Z, }( t0 Y% k) n' A1 I6 U
- ;;; Shortcut menu for Dimension Text Above
5 l% c6 P1 i3 C/ ~ - 8 U6 N" b/ p6 A
- (defun c:ai_dim_textabove (/ ss)
% o$ B1 y$ i. D1 b! q - (ai_sysvar '("cmdecho" . 0))
4 V) g# x# E5 ~+ L - (if (setq ss (ssget "_I"))5 ?3 h$ o3 m4 M4 W
- (command "_.dimoverride" "_dimtad" 3 "" ss "")" ~; ^$ I6 r; J: y4 |/ h' e! w
- (if (setq ss (ssget))2 o& W3 |% \) U3 j
- (command "_.dimoverride" "_dimtad" 3 "" ss "") - I/ @; \! O; l) m' o" o
- )/ s% ?; A1 I! G( o/ j: E3 p; }
- )4 e. M; c, L6 W$ E: K* Q. p/ Q1 h: `
- (ai_sysvar NIL)
8 V/ X' k- T& d' w - (princ)
^( c' W+ T1 F, F* B - )
+ D- N1 P" {0 V/ D5 C
3 t$ ~9 T8 Q- b: U# x- ;;; Shortcut menu for Dimension Text Center
" F6 R4 ?4 P' p) q) D! ~ - ; U/ r3 e9 R- i) ~# H) G$ K* b
- (defun c:ai_dim_textcenter (/ ss)
2 m6 C) E0 K6 f3 A! E) ]9 k2 B - (ai_sysvar '("cmdecho" . 0))
& s1 v0 G2 X/ | - (if (setq ss (ssget "_I"))7 N) P- j4 W% p0 f( J
- (command "_.dimoverride" "_dimtad" 0 "" ss "")" [2 b2 k N: i* p+ y
- (if (setq ss (ssget))
0 I3 v, B$ s* S- W- W - (command "_.dimoverride" "_dimtad" 0 "" ss "") ; ^! M+ [ e* U3 v$ g: t6 {$ x' j
- )
2 |- I5 A! q0 m3 S - )* T0 r" m' u7 V# g
- (ai_sysvar NIL)
2 k9 D; E1 e/ s! }" S - (princ)% B) a3 z: B P' w; \
- )
. E3 ~' [2 Z! ]* n
. m7 _4 u2 ?# M, S8 u5 Y7 L- ;;; Shortcut menu for Dimension Text Home
: B/ {* K; W/ h2 o3 I/ j6 M - . Z9 y4 A S( Y: t4 U- F
- (defun c:ai_dim_texthome (/ ss)
2 R$ C. _0 d2 U' U5 x! M - (ai_sysvar '("cmdecho" . 0))5 O9 V. d6 s2 ~- t. y% L- K8 W
- (if (setq ss (ssget "_I"))
8 c$ F/ o. ]$ ~; D7 \1 m0 h! s$ s - (command "_.dimedit" "_h")
( H$ P0 _* \5 H A3 | - (if (setq ss (ssget))
! w5 z' S. X) f* o1 a# {7 Y - (command "_.dimedit" "_h" ss)
3 c3 W' R6 G m! C1 C - )/ L, n* Z6 @. |% A2 X n M
- )# `3 q; S+ ~. j1 Y* ~" B
- (ai_sysvar NIL)& T/ O( z/ z0 I5 I
- (princ)
4 H* g" Y; e2 A* x' ~; e( m5 t - )
0 o5 P! w6 L9 |3 H+ c
( U+ J8 k# X2 U+ x- 1 F( Q+ v+ E8 V+ \: c
- ;;; Screen menu item for CIRCLE TaTaTan option.
: E' e; y8 f0 U# d, R. e - ;;; first, get points on entities
; T5 n% \$ ^; k# _) x" U4 R/ G - (defun ai_circtanstart()
& ?$ g% ]9 d0 | - (setq m:err *error* *error* *merr*)5 L( c* o7 k* n! a
- (ai_sysvar ( S, d2 w/ O2 `* `, }6 J
- (list '("cmdecho" . 0)) K. p% e) h+ z: @/ J9 G) d: B
- ;; make sure _tan pick for CIRCLE gets same entity
* L9 r6 _4 Y; f1 V- u7 A - (cons "aperture" (getvar "pickbox"))
# V6 A. k7 B1 p5 P8 L3 }8 D - ); U1 h9 m# _0 u$ O3 u: T8 T& C
- )+ N" K) N$ X- B2 ?
- ;; prompts are the same as CIRCLE/TTR command option! d" E$ {( N0 L4 R2 s
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
9 T7 t' k9 b( W% [ - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))+ F C' X3 E( S! p# q
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))$ B- v8 ?2 Q3 Y4 g+ a# w
- )! o) G2 t+ o8 f" p5 ~
- ;;; Command-line version6 i5 ~ S) f" ~- P+ r: J7 t/ i
- (defun c:ai_circtan (/ pt1 pt2 pt3)
+ x) S: S# M, y2 L$ L, ~2 c - (ai_circtanstart)9 P6 [' G, z* Q& a# \- X
! s( C' Q# m/ b( ~' U6 E- (ai_sysvar '("osmode" . 256))/ Z' Z# V6 @% M3 X7 f$ I! _
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)9 Q6 [7 y4 W0 h0 h
-
+ G" u, A0 O( }, k0 v - (ai_sysvar nil), E* Z2 A: L" U' Q- x+ Z
- (setq *error* m:err m:err nil)
2 @2 N: v% G( Z2 W9 M3 p. c8 h - (princ)( \( w; M6 X/ w, D7 {
- )+ m9 v7 P+ \9 M( E: L o' m) M5 Y
- ;;; Use this if CMDNAMES == CIRCLE( C- K# R' P" J' g+ \/ k+ I
- (defun ai_circtan (/ pt1 pt2 pt3)
) z/ R- @) y t) }2 W7 O$ v - (ai_circtanstart)
" i8 N- b2 D( U8 P1 [
9 ?2 | @4 R$ [2 [: ?- (ai_sysvar '("osmode" . 256))8 K/ Y5 T7 j- f9 V, E3 m7 I
- (command "_3p" pt1 pt2 pt3)6 Z' m. J( n4 x; g- ~6 G& y
- ' Y0 \% N7 d$ V; `( j1 K& u
- (ai_sysvar nil)9 ^7 O* q- n) |: U9 L, ^
- (setq *error* m:err m:err nil)
. Y+ U7 @$ W$ s. D& s% N - (princ)
* a% a8 }4 G$ C1 J - )4 E( @4 p; j4 G3 V, k8 I
& b# d; F9 j' y" Y6 q9 @9 O7 l# U- 4 y) c; a, h5 r
# n3 A6 W8 w- _% h$ ?& H+ L- ;;; Shortcut menu Deselect All item.
& U# Y7 ]; _8 {9 m* {$ j% |+ {
" L! h; O% x- m6 ]/ d( t& C2 C- (defun ai_deselect ()9 T5 I' F2 f2 ?7 l
- (if (= (getvar "cmdecho") 0) ;start if
) ]+ |2 Q+ K8 b; d* l - (command "_.select" "_r" "_all" "")
4 X- h8 g, a) K( E - (progn ;start progn for cmdecho 1' z0 _3 x6 j" w" {/ G
- (setvar "cmdecho" 0)1 L8 p+ v7 q: @2 i: q) }( M5 o
- (command "_.select" "_r" "_all" "")0 O- U. J+ m) k" }5 @( a% o' S
- (setvar "cmdecho" 1)
8 k$ {# [; y! R2 O! v - ) ;end progn for cmdecho 14 E4 w: Y/ O% K0 _6 J. Q. J
- ) ;end if
% K! a( x* a* R7 ^' E - (terpri) ~, [- q/ v& D* D* }: D
- (prompt "Everything has been deselected")% W0 p! D" f, j- K
- (princ)
: h7 l; H g$ {% H6 C* A3 a( A - )3 X5 Y1 A* h' C0 c
- 3 \8 K' x0 ]9 G6 U4 p2 D- F0 B
- ;;; Command version of ai_deselect to be called from the CUI% X0 ` W% Q5 A
- ;;; so it gets properly recorded by the Action Recorder
$ Q8 e0 w4 N& M9 P" t% S - ;;;. x* ?" o3 L- \7 {
- (defun c:ai_deselect ()9 y* Y; O$ M6 D2 q- `3 v* k
- (ai_deselect)
) I0 u" m; J1 }% R - (princ); A: p9 m3 H3 b: b6 i4 |6 M1 J
- )2 |7 T) w' @/ A( y
- 2 V1 o* V/ \3 e' I1 [0 G! S
- ;;;
, _7 }3 d4 ]1 V - ;;; Enable Draworder to be called from a menu
9 r( o r. \ F# J: q - ;;; Checks for Pickfirst selected objects) O- g0 ~% m6 k
- ;;;% T5 ~+ Y: D. V C/ L
1 Z1 h/ G. O' O/ [) G- K- (defun ai_draworder (option / ss ) a* @2 J7 ?! [. r4 }% g
- . [; t* q& C5 E! t. p
- (setq m:err *error* *error* *merr*)
: k! b+ U1 I4 j - (ai_sysvar '("cmdecho" . 0))
0 @) L2 o" T+ E8 A1 Y
* @+ U1 F3 {& d- (if (setq ss (ssget "_I"))5 R! b @2 g6 F9 A+ f! G4 N: q
- (command "_.draworder" option)
+ K; @0 }( C0 I) c( Q - (if (setq ss (ssget)) o5 ?+ M q: E5 x' A9 o
- (command "_.draworder" ss "" option)1 c. I. w, c" ^3 t7 j- J
- )
# V% R9 [: f. ^ - )4 f3 {4 s `& A7 J5 a
- (ai_sysvar NIL)
$ S* G# ^* R- W2 W6 P" K q - (setq *error* m:err m:err nil)
# L; \$ ?/ k6 `) i& ~ - 8 {) n; t; Y. R* p- n8 [7 e& \
- (princ)$ `0 c0 d ]7 F. q1 x
- )4 ^, L/ o4 w) _
- + Y% z0 E q3 J0 Q9 d/ W
- ;;; Command version of ai_draworder to be called from the CUI
, d1 f+ ?! m/ s - ;;; so it gets properly recorded by the Action Recorder
& I6 i( I! Y" P - ;;;) S) V u p+ e
- (defun c:ai_draworder ()
9 L5 T% r/ u$ C( P - (initget "Above Under Front Back")) |( X7 u. o3 N) I! P9 o% W' _! g, h: f
- (ai_draworder (strcat "_" (getkword)))
4 I( y# }) }; D5 L( I: S8 l - (princ)# ~, z8 A- p% Y, z
- )
' k( z- P7 C3 {8 e, ^/ h4 W4 w. M# p+ I - + e5 P8 G- T: s5 ~
- (defun c:vlisp ()
; C; l, k. x( N; ^: @ - (if (/= nil c:vlide) (c:vlide))5 ~; ? I0 w1 a" D
- )
( i8 }) |" J1 e2 l! i |; s( T& v7 V8 a - - o- Z+ `7 f9 n! F0 q
- (princ "loaded.")
1 X6 T5 W- A' Q- q- J) K - 5 F2 t* ?- G6 }& o0 w9 P% V
- ;; Silent load.& r/ L5 ^8 P5 h* s& P0 _6 G% y
- (princ)/ _4 m7 s# B. |5 V `/ B
$ K- l% T9 o! y& h! E7 d- ;;;----------------------------------------------------------------------------2 F( ]/ m, u8 o- }; O& u
- ;;;
. Y. i( v4 q9 t5 B; z - ;;; DDCHPROP.LSP Version 0.5* S/ O2 m$ h* E* W9 p
- ;;;
: ?8 }7 t# k; _+ F. D2 @# O0 L! l - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
3 y, `0 I, L i- X+ ]2 ?3 P/ w( V - ;;;
- a7 Z9 m% {0 F# t8 N - ;;; Permission to use, copy, modify, and distribute this software
1 R$ O$ z; T- o, S - ;;; for any purpose and without fee is hereby granted, provided
. K0 ~' Q; q9 f% O8 V5 K8 L/ ]2 q - ;;; that the above copyright notice appears in all copies and that
; ?2 i1 U3 {3 L7 A6 n - ;;; both that copyright notice and this permission notice appear in
8 s; z7 [/ a* ]; D - ;;; all supporting documentation.9 [9 _4 z; o) N% O) T- B
- ;;;
$ j5 [ C& i# S6 \+ { - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
) M: `' N; U* K( y9 @/ X( K - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR' X- m; M; A- A4 E
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.3 N7 A5 E, j8 i& X, c7 F4 R+ {
- ;;;
2 G1 I9 `2 Q0 I+ Y6 m3 T( T' `/ M - ;;; 2 February 1992
: Y. k/ M% ~: p+ e - ;;; . V @3 k: f' J( Z
- ;;;----------------------------------------------------------------------------
2 `1 Z% s, p8 c% @% r' Q y - ;;; DESCRIPTION
& N1 W! f4 s' M' j1 ^7 F - ;;;----------------------------------------------------------------------------
( n1 [6 [2 O, q# f v' }- y" F2 X - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
$ y) b) B5 @) ^& F; ~/ W( I1 t6 d - ;;;
) }& Q. W& R; z# _ - ;;; The command looks similar to DDEMODES. The main dialogue has an image ' M ]2 t1 a- ~, L! b) K: [
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). / ]$ z! ^. v+ g
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
: h' H3 K0 m2 x$ |% w - ;;; The dialogues are all defined in the DDCHPROP.DCL file., r& O+ R$ z# _/ O* Y# \, F
- ;;;
9 z5 a9 @, \: M/ l: @. v - ;;;8 q3 v9 h: m$ w
- ;;;----------------------------------------------------------------------------
1 X, w- e: O* N2 M, w8 b) { - ;;;----------------------------------------------------------------------------1 h# x6 }4 q6 a2 z/ b; h, b I
- ;;; Prefixes in command and keyword strings: ( f [2 _- ?. _* D
- ;;; "." specifies the built-in AutoCAD command in case it has been
- _# p4 W$ B1 ] S/ ^ - ;;; redefined.( a. Z4 s* G6 Q
- ;;; "_" denotes an AutoCAD command or keyword in the native language2 b6 q* \: f+ v4 v7 C) R3 W
- ;;; version, English.
+ u3 m n/ s" Z3 i% \# B# d* M - ;;;----------------------------------------------------------------------------
V5 k' |( v& G2 Z - ;;;, G+ q2 h7 D+ G
- ;;;; \* }% d$ ]% L- m$ P
- ;;; ===========================================================================
9 ? z" G' x: M- |- v i( T - ;;; ===================== load-time error checking ============================; {6 {$ K- {$ k* K
- ;;;/ r0 Y. O/ V5 c) z
- 7 d Q" Z% _/ w* a- G. f9 K
- (defun ai_abort (app msg)
" Q) `& ~# Z4 V# O: P - (defun *error* (s)
6 r4 K6 J3 I# ?- K) N. E* [/ j I/ L* l8 ~ - (if old_error (setq *error* old_error))
4 F: M+ _& T5 @; M - (princ)+ R/ o5 Z2 m6 L. F
- )6 z- \; k% g6 D$ t {) Y+ s
- (if msg
5 r- d% }) ?2 x+ n$ p! r - (alert (strcat " Application error: "% q+ x! j m% `& H' }: ~
- app# \# q3 i' `- r9 w5 @
- " \n\n "2 D1 g4 L; s' q4 s3 s6 ?
- msg$ Z' d X& \& }* Y6 N! ?4 v* Z8 f1 y
- " \n"
- Z+ F- T) u$ J; ] - )
9 B4 ?: V8 ~% L k! q4 t - )+ D- Z, Q% M/ M! g
- )
% v/ }* U# m' U! v( a' { - (exit)
1 C% i4 r" r- K7 s+ {& ~ - )) l4 T7 k: T; U- }
7 W- L/ _; \# X! {5 F6 n9 K. G- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
- G8 N2 W# p2 g: A - ;;; and then try to load it.+ ]- Y' x4 m8 ?2 W3 V9 X( K
- ;;;
5 u/ U+ }: E/ ?! B5 O8 E4 \4 @; y - ;;; If it can't be found or it can't be loaded, then abort the
% n+ A1 a1 o) j4 N8 x& o! h - ;;; loading of this file immediately, preserving the (autoload)2 z* s* T7 x$ T: X& z$ m9 \2 U
- ;;; stub function.7 J+ @& @1 T* E) r, F' k2 S8 v
- 3 \, | H' c& S; L
- (cond3 C/ `& F* w( E8 s( ?4 P% A
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
& X, i' A% z" C4 _: _# Y5 V! b" w - ' E% i7 l" ` W) y" Y. V* k7 L
- ( (not (findfile "ai_utils.lsp")) ; find it
" P* g: V" f7 {) f - (ai_abort "DDCHPROP"
$ ~( e) N! a/ w0 d7 x. K - (strcat "Can't locate file AI_UTILS.LSP."' E' T" y' |2 I2 c
- "\n Check support directory.")))
* ^' A% }9 y/ r4 }! S* a: K0 V - 2 ^) ~0 T7 t# A
- ( (eq "failed" (load "ai_utils" "failed")) ; load it2 ~# H8 Z3 ^+ u. r& t4 l7 m) V
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
" P3 ?! m1 ]) e( N$ \& D ^ - )
! P2 j7 P' I- h$ \2 V9 I* _& \
5 T3 q7 A0 x, Q- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP; A" p0 z# Y1 K2 q
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses0 j7 q, Q* X# w( d% C
- ) ; ai_abort's alert box dialog.
! L& M4 R/ w* \# u
1 ^! m( Z5 q6 K$ w1 V. ]3 n- ;;; ==================== end load-time operations ===========================" k: \" f- x8 D1 F+ |% ^, i8 e
- 2 c1 {# {1 U1 j9 |3 R; N* |
- ;;; Initialize program subroutines and variables.
2 K ^" M. X& t9 M3 E% g2 I - 8 b, V `0 B/ A4 f. X9 ~+ X
- (defun ddchprop_init ()
3 i+ U, V8 R% L
9 k- T" g8 i1 U- u {- ;;3 \. o/ \+ d: p! P# [) { w' Q
- ;; Define buttons and set values in CHPROP dialogue box
; U: C3 ?" H* _& @9 } - ;;1 y. @$ K+ d0 i4 V9 ^% @
- (defun call_chp ()7 Y) B H+ @/ K8 S# [5 H8 w: _1 S, C
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))
& N, s- o& A5 P! D - (set_tile "error" "")
' d6 S% x1 ~' n; c - ;; Set initial dialogue tile values7 v9 i/ x& U1 v9 ?0 k' y% S) r$ m& r6 ~
- (set_col_tile)
0 Y, G1 F9 |$ b) z2 F - (if (= lay-idx nil)/ @3 o: z Q/ h; o; X! @
- (set_tile "t_layer" "Varies")
/ |: V- p& v3 P4 A( Z* G: Z3 u - (set_tile "t_layer" (nth lay-idx laynmlst))7 U+ b3 E; Z+ a7 d! u
- )
8 j4 H+ u- W1 _( V+ l6 C* E - (cond $ j4 [3 N5 r5 |7 V6 n, D- M
- ((= lt-idx nil)$ m( ^0 W$ ]' V6 p
- (set_tile "t_ltype" "Varies"): x' `, a% T |$ z9 Q: S
- )6 k, u; t6 i. S- [* N* g
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
# ^1 i2 g8 Q. H: c" M) S9 c - (set_tile "t_ltype" (bylayer_lt))
- n4 n3 _* G$ n4 a9 F) v/ ? - )4 |5 f6 I1 w' d+ d( n: `4 |+ ?9 l
- (T
- ]' q' N! u! L1 N2 P. E. j - (set_tile "t_ltype" (nth lt-idx ltnmlst)); d% p3 A) N7 |. ]! l6 p
- )
8 a0 }8 l7 y: Y( n0 e; t - )2 D$ f9 o9 G* O3 v. k
- (if (or (= ethickness nil) (= ethickness "Varies"))( T- N1 U1 J3 v' L' A% a- L
- (set_tile "eb_thickness" "Varies")0 ^- p2 u( g3 y7 u
- (set_tile "eb_thickness" (rtos ethickness))
/ [* U9 C& [" G; l& Q* ~ - )0 {3 P3 R. d8 P; [( |# v
- ;; Define action for tiles
2 [8 O' S5 |1 `- o0 R - (action_tile "b_color" "(setq ecolor (getcolor))")
9 ]* n3 E3 ?6 G' V; u( V/ W - (action_tile "show_image" "(setq ecolor (getcolor))")" {! R; {% c1 k F
- (action_tile "b_name" "(setq elayer (getlayer))")1 m1 ~0 a8 F( G& S
- (action_tile "b_line" "(setq eltype (getltype))")
% P1 W* f4 I5 X3 D1 F! c6 Q - (action_tile "eb_thickness" "(getthickness $value)")
4 [8 ?( K/ x1 G1 [ - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
, f8 k& L. n6 s$ l3 ~. y - (action_tile "accept" "(test-ok)")
$ E# D- K. d1 N: H+ p - (if (= (start_dialog) 1)
2 ]2 }7 ]4 }; j - (progn* o) _. {/ f ^& Z4 ^4 ~) h
- (command "_.chprop" ss "")' m; E3 v7 l" H [/ F( j" g7 \$ r
- (if ecolor* g# @/ s4 c8 D1 C) X8 Y
- (progn
5 l& b# }* g- X7 q- O* G: G - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))! p+ X+ d2 ?1 H! g
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))' z5 i; {) Q1 a7 ^' l% m
- (command "_c" ecolor)
, k6 u7 l8 T. U - )% { A: k% K: T( L4 l3 V
- )
" ?. T g: u6 R; J* U5 Y' Q" l - (if (and (/= eltype "Varies") lt-idx)8 h7 ?: @- N; L' J
- (command "_lt" eltype)
- M0 r8 \0 {( m! F - )2 W9 D9 v& a# {
- (if (and (/= elayer "Varies") lay-idx)
& G$ V4 l$ k4 J0 |: c - (command "_la" elayer)4 a9 I/ v" _5 p. M; O$ R/ f
- ), \+ C* h P6 y6 \' [; t
- (if (and (/= ethickness "Varies") ethickness)
6 v" \ U& b- S* D: c0 p - (command "_t" ethickness) \6 c- g9 S% b% h( m4 N4 o1 ]
- )
# i& f R: M6 i - (command "")
+ H$ L# z" x, \7 \( w7 P1 @5 x - )4 e+ \8 M% g: B( Y4 {
- (princ "\nProperties unchanged")( r1 @* i! N& ]6 V: ~$ U
- ) r# e: w$ `# u; `) S2 v* f
- (princ)
) {" Y9 S$ ?" q0 ?! { - ) {9 h9 R$ V; u) P& g& C: O
- ;;5 _3 d5 c5 q) H- P
- ;; Function to set the Color text tile and swab to the current color value.
: Y( S) b/ B/ r8 e4 a1 W/ @ - ;;+ k" _: J1 @5 u5 T* |9 |- m
- (defun set_col_tile()$ R. K3 i9 N9 m' ]; W, q& H
- (cond
+ \' L4 `8 Y0 a4 O7 ? - ((= ecolor nil)9 E" j! B0 Y- m
- (set_tile "t_color" "Varies")
& M; k' Q, D7 j9 x - (col_tile "show_image" 0 nil)
" c( P0 ]4 i* H# c9 Z/ g" T2 v - )
' I! j: r0 t. ]9 ? D* Q3 G% a; T - ((= ecolor 0)
, M+ E3 t" e* z; B/ c, w$ ?7 N$ g& o - (set_tile "t_color" "BYBLOCK")
+ |- G# X/ b" w - (col_tile "show_image" 0 nil); C1 `- {* v- {& z: Z
- )
3 {. P0 h3 T& V" ? - ((= ecolor 1)
! @( J3 q% \; A5 C: Y+ H3 \ - (set_tile "t_color" "1 red")9 [3 R# z* u! l3 f
- (col_tile "show_image" 1 nil)5 a6 \+ J" C( |% Z3 T. [
- )
! p) p& Y# I- l& R# R5 B, Y( F4 [ - ((= ecolor 2)8 ~2 g0 @. u; x3 J* G- c
- (set_tile "t_color" "2 yellow")
: ~4 K1 d2 ^7 I - (col_tile "show_image" 2 nil)3 g$ K6 y) |4 _2 Y
- )
; g" L" m7 d0 E+ @* c5 }, y - ((= ecolor 3)- b$ y* @$ u- ^7 F4 l$ n3 F0 g
- (set_tile "t_color" "3 green")0 p% l" ~6 U# O$ S9 R o
- (col_tile "show_image" 3 nil)
( `+ n: o; L% w) z. H% {& b - )
$ H5 } D" W+ y3 \1 c' H" G. m - ((= ecolor 4)3 a3 ]. q( o$ o# z2 \9 G$ }/ ]
- (set_tile "t_color" "4 cyan")7 ^4 l7 ^3 d' S0 c5 Y0 b
- (col_tile "show_image" 4 nil)
# k$ `$ l: b, b$ ] - )
7 S9 f! P& O, Z# M9 n5 f; f - ((= ecolor 5); A# p8 q4 m# x" a5 c/ T
- (set_tile "t_color" "5 blue")7 i5 I7 L. \% H( g& d
- (col_tile "show_image" 5 nil)3 k" M5 ~8 q( V. E
- )
/ B* |; ?5 z. c7 X* e - ((= ecolor 6)
5 Y$ R9 P, O# j4 \" U - (set_tile "t_color" "6 magenta")5 n, w; \! t9 K
- (col_tile "show_image" 6 nil)2 s, K9 y2 \7 j" e1 R0 g! f
- )
1 U V3 q. w/ r' f8 Y" _ - ((= ecolor 7)0 {( X9 Q8 Z& |% a
- (set_tile "t_color" "7 white")6 H/ q/ m, b) z
- (col_tile "show_image" 7 nil)
; c! N" M Z6 F- `8 b - )
4 |2 _7 ?& J( I8 i1 J4 V: C1 I& | - ;; If the color is "BYLAYER", then set the tile to5 t ?" G( H% [# ~- c/ D5 G
- ;; show it's set By layer, but also indicate the
* v) t7 [: B% o: Q1 N1 \ - ;; color of the layer - i.e. By layer (red)
* r7 F) b# u0 P2 g( f - ((= ecolor 256) `/ I& D+ }' x4 S$ a
- (set_tile "t_color" (bylayer_col))
! o, d7 Y# T8 B( h" X% O - (col_tile "show_image" cn nil)" i2 Q% K" r9 F$ n6 @7 u
- )* D& U0 a. c. E8 w
- (T
# ~3 c* K" l( ?' q7 Z U - (set_tile "t_color" (itoa ecolor))
5 @ z3 I( h( E$ J& r - (col_tile "show_image" ecolor nil)* T% a: R* E9 f* X
- ). f+ m& F( r/ B8 Q- r+ a5 _
- )5 N! {% e0 j$ V
- )
" `$ r- X: _0 A* j5 ]! _/ t4 J0 m - ;;5 E* v3 j. g9 Z
- ;; Function to put up the standard color dialogue.' ]; c% X2 Q/ ?8 B. ?8 B( W5 [
- ;;
* N, r# }7 g% p - (defun getcolor(/ col_def lay_clr temp_color)
8 g- |6 Q9 K' ]6 t d - ;; col_def is the default color used when rq_color is called. If ecolor + u0 K1 v r/ V2 h- ?7 Y
- ;; is nil (varies) then set it to 1, else use the value of ecolor.' [7 p) X) n/ v* `: @
- (if ecolor
' g; V+ B8 _- I& V2 ? - (setq col_def ecolor)
" x7 H9 p0 { d - (setq col_def 1)
0 e R' |* P) W# M- A2 D( x G - )# _4 ~. F* W; Q0 V
-
% p/ F* N4 J+ x9 T$ e! { - ;; If we're working with a single layer, get its color- d' z( n* m) e
- ;; for use in the color swatch if the user selects color BYLAYER.
( y0 n, O* m F5 a - (if (/= elayer "Varies"), A/ D/ n2 u1 E% i
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
5 p* g/ C$ n, @$ m6 q - (setq lay_clr 0)! H) R6 F/ h9 [, W
- )1 _4 Q, ]* k, g, p* I/ U3 S c. t
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))8 y5 ~. Z+ ]( L/ [- k C
- (progn
1 ?, U/ F5 S" r: U; \* L - (setq ecolor temp_color)' J2 u4 y3 i* O
- (set_col_tile). U5 W9 w8 U) l( O2 q7 o' ^: ^
- ecolor
. s8 i0 T3 |3 u: p' R - )5 Z, q8 i9 }6 }* ^7 r
- ecolor
$ }& ~ P9 A+ [& _6 U6 V9 N, s - ) + a$ V. @/ M2 W, F' }, }' c
- )
$ O+ _7 ~) {9 ~ ]( V* j1 w# u - ;;6 Z0 i1 n7 W0 ?6 o% _6 x: A
- ;; This function pops a dialogue box consisting of a list box, image tile,
7 s# @& l- u( ^" r - ;; and edit box to allow the user to select or type a linetype. It returns , i8 R0 T: m& a" U
- ;; the linetype selected.7 L* Z8 |5 `! r# Z
- ;;5 E+ g4 ]2 ]9 M, n
- (defun getltype (/ old-idx ltname)" _1 q' m# {$ Y& m/ ]2 n
- ;; Initialize a dialogue from dialogue file
% u# _! Z3 L; N. ? - (if (not (new_dialog "setltype" dcl_id)) (exit))
# r t9 Q% C$ s1 t; e* F( [ - (start_list "list_lt")
) y" ?7 X8 a/ P) G: S, A$ l, w - (mapcar 'add_list ltnmlst) ; initialize list box
8 ~' M( `+ x9 t7 d - (end_list)
; e# t- m' B" j - (setq old-idx lt-idx)6 T p/ g7 Q6 p' {- ?! O
- ;; Show initial ltype in image tile, list box, and edit box5 u) q. q5 T1 K' a9 K% Y, R
- (if (/= lt-idx nil)
: p' d1 m( t# {4 U2 W$ T" n0 l - (ltlist_act (itoa lt-idx))
" L, C& }$ P f) J" C5 m - (progn
. D* I. ^2 P0 t - (set_tile "edit_lt" "Varies")
& |6 c- ]$ H% Q - (col_tile "show_image" 0 nil)) O, ~" h; m8 F, S# [; a& a: s% z
- )8 y5 E% o" F0 q; F0 Q. i
- )* u. C4 M9 j8 O& a8 V& N: \
- (action_tile "list_lt" "(ltlist_act $value)")3 g% ~4 y! \$ s( h& V# g
- (action_tile "edit_lt" "(ltedit_act $value)") V- P& M4 }6 N1 v
- (action_tile "accept" "(test-ok)"): z- K" B9 u; q1 \7 Z& f
- (action_tile "cancel" "(reset-lt)")1 M7 q: I8 ~, @, K4 `- l; l
- (if (= (start_dialog) 1) ; User pressed OK; q8 ^& `; h. e$ {+ k5 c% v
- (cond 7 u! {0 J$ q: H9 l- v: M% W
- ((= lt-idx nil)
( c/ J$ B5 A8 X$ o* O - (set_tile "t_ltype" "Varies")8 ]) z/ p+ w$ Q. V1 ^+ i; m
- "Varies"* H' p) R3 d9 Q7 K) C/ R7 L
- )
5 a: o/ b; e1 ` - ((= lt-idx 0)" O" }$ H e O! E+ E( R
- (set_tile "t_ltype" (bylayer_lt))9 h: O6 l( i$ j" N* ]
- "BYLAYER"/ A+ M$ ]/ ^( H2 l- u9 q5 @
- ): Y# ~- w* P J% j) g
- ((= lt-idx 1)
6 H, a% H; c5 I! f5 e: v - (set_tile "t_ltype" "BYBLOCK")
8 j q& T. M: ^& X2 l - "BYBLOCK"% s6 y6 ]/ X6 z; q* l
- )1 i* p! M4 p/ s& f
- (T % f' l8 w7 _9 B, b! p4 S
- (set_tile "t_ltype" ltname) 1 k8 t' P f$ V( L j/ S/ q
- ltname
& ^; `4 I9 @# K$ R5 _* Q% q$ b - )
: Q9 |, Q% m7 q1 n+ y9 A! t' `1 S - )
; M- I( i) u- l1 f' D- B - eltype+ i9 ^1 z! F- @
- )( P" K) [- o1 b+ E8 i# [
- )- p: }6 C( }1 a6 y& x5 Y5 t
- ;;3 U: g2 _8 H. [1 n8 E7 M( D W
- ;; Edit box entries end up here
y! Z2 R2 v6 y) o; r/ f - ;;
3 B: N7 t' x2 L4 j/ {$ | - (defun ltedit_act (ltvalue)% z6 Y/ M$ j1 _! {
- ;; If linetype name,is valid, then clear error string,
# B6 ^% _. E6 H! g8 V2 g, p: ` t: [ - ;; call ltlist_act function, and change focus to list box.8 t5 h* c7 U; d: ?! @! }7 s2 v6 {& ]( p
- ;; Else print error message.8 k: s$ I4 Q3 m* h+ H) e: p1 q% Q1 H
- (setq ltvalue (strcase ltvalue)): K, M+ f8 i$ R6 P; u3 y' n
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))- T% L6 N* K9 G l5 a. c2 q$ o
- (setq ltvalue "BYLAYER")7 m8 O$ ]9 d1 T$ U$ x* R- n# i( G
- )% [2 n2 Z' f) L3 I( a0 E& Q
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))* c( z" n% m# H0 b7 Y9 J y. G
- (setq ltvalue "BYBLOCK")8 A3 G7 M8 r" t8 q5 W, Y u
- )6 X* @3 |' T4 r; N$ f5 T$ t
- (if (setq lt-idx (getindex ltvalue ltnmlst))$ m1 Y7 c) Z) {5 S. `
- (progn) F' P& c' k* e$ I1 ^# }- P
- (set_tile "error" "")
) I0 \: ?: M. q1 g' u - (ltlist_act (itoa lt-idx))
2 L3 r" F( j' W# e - (mode_tile "list_lt" 2)& g$ c* K- N! r: K @% Z
- )
7 B* a" N- Q P" i - (progn( i4 l5 l" V- O
- (if (/= ltvalue "VARIES")- ?8 h5 }- X W- `: Q. e: ]
- (set_tile "error" "Invalid linetype.")6 ]" E6 \* o3 d2 l- h0 v1 z& H
- )
. R; T+ [/ @4 d, O, O( q! y - (setq lt-idx old-idx)
3 k- m' o/ P! H9 X - ) , d- N2 K. e, S$ o7 Y
- )
* X. O! A3 D* d - )
4 Q9 p# y8 i9 w7 c& s - ;;/ l9 T% \" X. W7 l6 h
- ;; List selections end up here
; U, u( q5 ^2 y1 M7 z - ;;
E7 I4 S' ^* B" B2 R n - (defun ltlist_act (index / dashdata)# H8 |1 E% D3 u% G& ]
- ;; Update the list box, edit box, and color tile9 N: [! o! f" e- f
- (set_tile "error" "")* e5 ~4 k0 ?9 o" E' r8 ^* I
- (setq lt-idx (atoi index))
) [7 z6 d; O" M% d* y6 X2 ?1 Q w - (setq ltname (nth lt-idx ltnmlst))
2 i* S: N+ a6 ? V- B1 R7 Q/ a - (setq dashdata (nth lt-idx mdashlist))3 c5 J; }2 B2 `
- (col_tile "show_image" 0 dashdata) z4 ?; P9 c( K9 b3 c) \5 v
- (set_tile "list_lt" (itoa lt-idx))
# u$ H: E7 u/ `* j' X/ I! l) t - (set_tile "edit_lt" ltname)* G- a2 Z( |$ e2 ?" ^7 X" B3 U
- )5 {1 a- \+ j5 H7 [
- ;;% n) s! x. q4 O* e
- ;; Reset to original linetype when cancel it selected0 n2 `5 q% i9 d
- ;;/ I& i4 m, h* N+ ?8 I
- (defun reset-lt ()/ m: O4 {. |2 {/ m' r
- (setq lt-idx old-idx)
9 `, \( s2 ~2 q3 ^; d- \; C, ] - (done_dialog 0)& X" [6 W! @& ?1 o! N B
- )
; Q: g% G( E5 @* E' b) m- W - ;;
+ {" o& J9 r8 e- v( x - ;; This function pops a dialogue box consisting of a list box and edit box to $ S) T2 y0 I) u
- ;; allow the user to select or type a layer name. It returns the layer name
; p y* e0 |/ U( w* M5 x. L - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the ! ~ M3 T- |6 S
- ;; drawing.# ]: Y& B( `" b- X3 q" A3 O9 f
- ;;+ i, e/ ^ I& A8 l. i5 B( G1 N
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
2 |7 c5 r S# T( x! r L% h3 G - ;; Load a dialogue from dialogue file! H- T* K7 l% z. ^$ |
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
5 ~# o8 j, t/ K+ }( N! ^ - (start_list "list_lay")
6 m @0 V% [8 e# _; { - (mapcar 'add_list longlist) ; initialize list box+ S0 b. d( X' F S1 E; K" z
- (end_list)
- i" w9 {7 j2 ~6 t) v5 r- Z6 J% O - ;; Display current layer, show initial layer name in edit
& n$ e6 q* \- } - ;; box, and highlight list box.$ V* |; W$ q; L) s. L/ W4 ]
- (setq old-idx lay-idx)+ U' \( J3 o( |# \) \
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))6 i1 U% i8 h/ m) R8 i: `8 ^
- (set_tile "cur_layer" (getvar "clayer"))$ |: \3 @* q, C2 T/ _% E- k/ ] e
- (action_tile "list_lay" "(laylist_act $value)")
1 F) D8 E6 g% A* N- q2 Q - (action_tile "edit_lay" "(layedit_act $value)")( ~2 u) z- h# o: l- x( Z
- (action_tile "accept" "(test-ok)")
: i' u! C- ^% p3 S- w I+ J2 V - (action_tile "cancel" "(reset-lay)")
! F8 S2 ^" Y+ e8 [ - (if (= (start_dialog) 1) ; User pressed OK
" G( ]- f$ A1 @3 O# b! \- g6 s - (progn
, G+ p8 w- M' F* o/ U" ~! [ - (if (= lay-idx nil) (setq layname "Varies"))0 ~6 i" g; A5 s/ v
- (set_tile "t_layer" layname)$ z6 S" [3 D( S2 y7 L+ G
- ; If layer or ltype equals bylayer reset their tiles5 Z3 p. x+ S8 m c
- (if (= lt-idx 0)
/ U) H+ q& i: } N. M" t - (set_tile "t_ltype" (bylayer_lt))
n( B, f' \. { - )
$ M7 [3 S; u2 a* ^ - (if (= ecolor 256)
+ g; y' d' X- j9 Y - (progn: j8 y/ z6 f5 @0 l1 T; L, O
- (set_tile "t_color" (bylayer_col))
8 M; k7 Z* ~" T3 @; V+ S - (col_tile "show_image" cn nil)& s H; b; \: t9 F% z
- )' W' x& O6 L1 L
- )) S4 c% W N5 h' w/ o
- layname* R! g' v+ L4 l
- )0 t5 B% ]& Q: v: ]9 n
- elayer/ D; L5 E) D6 T. }6 R8 {" P6 X& K
- )
, l- l3 k: c/ d0 {3 ~* s' N `- H* ^ - )
7 j1 C, ]9 t4 {; G. i. [0 z5 _- I - ;;
4 d r+ h+ I/ E - ;; Edit box selections end up here
4 W; C" K) W5 h/ m6 ^' L* w - ;;; q0 r. V$ ?6 Q5 v9 l+ k
- (defun layedit_act (layvalue)
1 O/ n6 U, @: x( N0 d8 F - ;; Convert layer entry to upper case. If layer name is# y8 ?) I& D( L% V7 R
- ;; valid, clear error string, call (laylist_act) function,
0 k; U% P& l% g9 f3 R' s - ;; and change focus to list box. Else print error message.
/ \+ ~ R6 Z' j - (setq layvalue (strcase layvalue))
. p: C" ~/ {' c: a2 e7 V - (if (setq lay-idx (getindex layvalue laynmlst))
' Y% b# q* ~" t/ N9 E' a& B D! m - (progn; F7 K% p9 S, `+ J' X
- (set_tile "error" "") h( I( M+ D8 B" z0 N6 [2 H8 N
- (laylist_act (itoa lay-idx))8 Y) p) n2 z' K. G1 G
- )/ v6 j, u/ R; H; p; l' w0 B: V
- (progn" S: V* D$ ?2 l
- (set_tile "error" "Invalid layer name.")4 i+ U5 O2 s- D N- A
- (setq lay-idx old-idx)
1 T9 f8 ~, N t, ^ - ) }1 A K7 q9 D3 j- p
- )
9 ]+ X" ~3 r1 S# ?5 M7 i# \4 G - )9 _ |1 h7 q8 I) ~- \
- ;;
; B7 d: Z; k. P, ~ - ;; List entry selections end up here0 d7 @2 i$ s Q8 t
- ;;
! M4 L. k$ W( \: d$ c" s3 G - (defun laylist_act (index / layinfo color dashdata)) n0 }# [ ?0 ~3 ^
- ;; Update the list box, edit box, and color tile
S* F: V) c) ^6 h - (set_tile "error" "")- p" \, V4 w8 _& s
- (setq lay-idx (atoi index)): W% r1 D/ T# h# z% o: O
- (setq layname (nth lay-idx laynmlst))
! j1 z. ?* r2 j4 n - (setq layinfo (tblsearch "layer" layname))( I7 B. O7 o* V8 g' r0 ] R
- (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)' t; I9 g$ F! Q; }! W+ O, o
- (set_tile "error" "Cannot change entity to locked layer.")% f) r' V! B2 ^
- (progn
/ @0 E4 n. ?1 `& ]# w G - (setq color (cdr (assoc 62 layinfo)))! U- m% q4 V2 o" ^6 h. Q% {* @
- (setq color (abs color)); q h0 @9 U% o* D
- (setq colname (colorname color))
/ Y% D I3 t: W, t - (set_tile "list_lay" (itoa lay-idx))
; J5 a. k6 ^& z8 I5 \ - (set_tile "edit_lay" layname)
4 T% _1 T/ F6 ~ - (mode_tile "list_lay" 2): L" S2 }, G* K0 y; ]1 f
- )
% b# R# n2 x! v - ): L" t: r+ a& Q; l! K: e
- )
# I2 U! W( Z0 f( b& M; p- Z @- l& ? - ;;
( k4 `9 P9 G n) N) [% o - ;; Reset to original layer when cancel is selected1 |$ u7 C9 k% V- ]( v
- ;;' T, a1 z+ }: x' r
- (defun reset-lay ()$ ~# k% {6 A5 d: s5 A; A
- (setq lay-idx old-idx)6 ?! I& f$ Y9 ?. t/ e- d
- (done_dialog 0)4 A# |# W9 V; i4 o4 W2 O2 ?
- )
6 y r- ^+ G% z, E& A7 n" M2 y3 `' b - ;;
" u# X( I, ] H - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
$ s! J( `" D$ G - ;; string can't be converted to a real, this routine checks if the first
0 V6 ^0 M# k- Y/ ~0 B - ;; character is "0". It also checks to see if the value equals "Varies".
1 L. z( K4 z+ B1 t L - ;;0 F- Y; R& f% K6 R8 i, g! Q/ H: [/ u
- (defun getthickness (value)6 i: p4 ^9 B9 w" @' n
- (setq value (strcase value))3 f7 z# c x' a6 v( U K j
- (if (or (= value "VARIES") V5 n( A4 {( z6 C5 m
- (distof value)
, h( \" A- [1 T4 H) |' f5 ] Q - )2 y* r9 r' A& g5 C& p
- (progn' e$ z: _( T& X8 q- W" f
- (set_tile "error" "")
@* P' ~# T7 z - (if (= value "VARIES")
5 o% [" F" P9 w! k: G - (progn
' O" u2 p4 ?$ S9 R' A9 p - (set_tile "eb_thickness" "Varies")
) N0 ~& V0 G9 L- C - (setq ethickness nil)* ^( J c1 r1 a2 k* N0 l* q
- )
! f7 o3 s1 S0 z. G - (progn
" X+ W# z/ U( w$ \5 d3 m - (setq ethickness (distof value))
5 T; Y! H8 _- [" F! D$ T - (set_tile "eb_thickness" (rtos ethickness))# ]8 w- F5 u o5 B! s, ~9 V8 r& S
- ethickness% p! t, |4 ]7 U" M
- )
' y; ?7 `, I Y8 H$ D - )
x9 |8 X1 ]% ~ - )
" y G E4 R1 ] - (progn
8 Y( \" Z: z& {' o) g - (set_tile "error" "Invalid thickness.") ^2 h. r7 o% J
- nil( T3 B9 L& I- ^4 d8 d
- )
. H+ G5 S( S8 m - )) e# E d- h( J6 m4 i$ l
- )# m4 W+ x( ~0 F
- ;;7 z/ v0 ?7 J0 R
- ;; This function make a list called laynmlst which consists of all the layer , R3 L0 w# [) M. {: _
- ;; names in the drawing. It also creates a list called longlist which 7 ]! O5 {% L! d7 Q
- ;; consists of strings which contain the layer name, color, linetype, etc. % W& L& h. @( V3 G8 T3 d! q
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
3 {. u5 C* [+ P) g5 h. E - ;; same.
4 S1 W/ R# Q+ z7 G' ]# a# J - ;;
U' H4 m* b5 n; I: O. ` - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname 7 X0 E3 m7 |/ [( A f! C
- xdlist vpldata sortlist name templist bit-70; m. u: s1 `/ E! v( ~
- ), U; @& `, y9 @7 x' z0 \* U
- (if (= (setq tilemode (getvar "tilemode")) 0) Q6 F3 J B- M: ^5 G! T
- (progn1 E5 d/ }3 }6 C6 N/ n8 [
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT") j4 n7 e8 @- o# _
- (cons 69 (getvar "CVPORT"))
6 s" e d+ K# l& b, \/ J, J - )
4 s, ]% s* W3 d3 t4 E6 | - )" u1 O: o+ [& K; [8 w
- ) 4 F/ y' b0 D. Y' _: x0 c! @$ w
- (setq cvpname (ssname ss 0))( v1 B6 K+ s3 A4 j) ^, u
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))& I% f2 L/ S1 V: I. y
- (setq vpldata (cdadr xdlist))
. w$ \7 o# h8 T) A7 \. k - )
3 K# s$ a9 P8 V6 n - )6 I1 a9 L# [# `& J9 ?
- (setq sortlist nil)+ k5 W# j- A: l7 r0 |
- (setq templist (tblnext "LAYER" T))3 K* _2 C) I' w9 Z' _+ L* a& ?' Y9 v
- (while templist/ e7 v3 R8 @8 K2 W* \
- (setq name (cdr (assoc 2 templist)))
( \- s! P/ V: l o: z3 B - (setq sortlist (cons name sortlist))8 K3 T$ _. J8 P
- (setq templist (tblnext "LAYER"))
6 Z- K( s( \! S7 n- J; T$ ] - )
/ Y t$ F& B; U6 D6 T9 c+ ^ - (if (>= (getvar "maxsort") (length sortlist)), K- s3 r& H! g' P' F7 z
- (setq sortlist (acad_strlsort sortlist))8 m8 V; k- H( @! a
- (setq sortlist (reverse sortlist))
% E) H8 t( ^6 Q( q( | I - )
8 p% ~' }% p9 ]( |; |% w. b - (setq laynmlst sortlist)) c- F( _1 R8 r: E9 P- T+ S
- (setq longlist nil)5 U1 j" y" \; ~- B* V7 D
- (setq layname (car sortlist))
8 A' y1 z. Z! T' C - (while layname" D- n3 S9 s( H1 k) O! d6 d
- (setq laylist (tblsearch "LAYER" layname))
( d9 q- K$ @1 j: T! Q - (setq color (cdr (assoc 62 laylist)))
+ d3 u' [# K! V - (if (minusp color)+ j5 ^8 K" Z( C1 M5 K" `6 N2 L7 R5 w
- (setq onoff ".")1 L) a/ a3 ~4 R+ n; o
- (setq onoff "On")
1 d/ V5 m+ T+ R! c9 L0 t, ]; e - )) _* @, L- W7 D6 T* `6 _
- (setq color (abs color))( F7 f" u9 [) i& N
- (setq colname (colorname color))9 }0 c* h7 C0 n% F" m
- (setq bit-70 (cdr (assoc 70 laylist)))
- u$ |, i( c: s - (if (= (logand bit-70 1) 1)
7 k9 j1 }! k8 X3 @ - (setq frozth "F" fchk laylist)# Q% C& Q% c5 m7 v
- (setq frozth ".")& a$ e- a, _3 \* a5 f4 o+ n& W
- )
3 I% H$ c; o0 w& D' G+ x - (if (= (logand bit-70 2) 2)1 l% M+ F( C8 K- @) q8 T
- (setq vpn "N")
3 ~# J& t3 K9 R$ J, f h6 p0 S - (setq vpn ".")3 t, k/ K+ {6 ~8 |, _
- )
9 S: G5 n0 _+ O, i3 U! F# ~ - (if (= (logand bit-70 4) 4)) ]& ?$ J. {; n+ r: ~' j2 a5 d0 A
- (setq lock "L")
* B5 f( J# `0 ^- |& _( N, c - (setq lock ".")7 n- F( X" @6 |6 E, f z& X/ Q( I
- )
7 Q$ Y# G/ z; F9 N( A7 K' g) z - (setq linetype (cdr (assoc 6 laylist)))) f$ o' k; g/ L) _; q! R
- (setq layname (substr layname 1 31))
# J7 a3 p' g1 R) l9 N) o - (if (= tilemode 0)% j1 {0 W- ]! F7 ]5 I0 @
- (progn* T# H7 H7 f; v* t! W u
- (if (member (cons 1003 layname) vpldata)
$ M0 g: }4 ~1 r' d+ Q - (setq vpf "C")! Q) ?( h9 `5 p
- (setq vpf ".")
9 c; p6 D0 [( v, P8 W. Z7 _ - )6 B9 K; G; I- D) b' i
- )6 g/ ^8 |! Q$ ]) W5 I! N
- (setq vpf "."); ]+ K/ _0 z. k7 X6 Y5 b
- )
, R0 X7 o( r0 N - (setq ltabstr (strcat layname "\t"* S& x" @* O. S+ j
- onoff "\t"! h' s. Z" y& ~# Q& s2 @/ ~
- frozth "\t"
! F" z; P# A; Y6 {4 @0 l - lock "\t"
4 U- S0 x2 F3 X1 s - vpf "\t"5 x* d) w4 c8 e5 o# A7 c* ~# p( K
- vpn "\t"
0 U4 ~4 [, ]" i - colname "\t" F1 w( a, A& ~
- linetype
S# Z0 q+ g$ d8 l- t - ); A7 H* C. Z/ k/ H1 ]# e1 k; I
- )7 L0 `7 S0 y6 C
- (setq longlist (append longlist (list ltabstr)))
) X7 C8 X6 U3 ~5 l3 j - (setq sortlist (cdr sortlist))8 m9 A3 ^! g5 U- B' g4 L) @1 Z
- (setq layname (car sortlist))7 M0 q! B" w9 Q* y
- )
2 N/ J$ }. l: t3 [ - )9 i) L; h+ o8 t: i9 z& k/ h; Z& s
- ;;0 P1 b4 ]$ X5 ` k" c" M- H C
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of ) F# |/ |) M- H; K) {- n4 \- j- e
- ;; linetype names read from the symbol table. Mdashlist is list consisting + N4 q4 {; c/ v$ C. s1 W
- ;; of lists which define the linetype pattern - numbers that indicate dots,
2 z+ C z7 e/ K2 } - ;; dashes, and spaces taken from group code 49. The list corresponds to the
: l% K. `; \" v- C% c5 i% Z - ;; order of names in ltnmlst.% {3 o$ v# N+ Q0 \# V, ]# H3 s
- ;;9 F. E% M k: Z
- (defun makeltlists (/ ltlist ltname)
2 R' B) g& {5 { [ - (setq mdashlist nil). F+ f ~. f/ p6 r
- (setq ltlist (tblnext "LTYPE" T))
2 p4 W; M" \3 _, j2 b - (setq ltname (cdr (assoc 2 ltlist))), I% J& s* [2 {% G) Z7 u
- (setq ltnmlst (list ltname))
, H8 O0 v! v5 b
6 M8 g0 `4 z& Y- (if (= ltname "CONTINUOUS")
3 ?% P. G$ {' M1 B* a0 K - (setq mdashlist (list "CONT"))
7 N2 G4 n. u% z$ \ - (setq mdashlist w. \& c @. X5 h' H8 ~5 j
- (append mdashlist (list (add-mdash ltlist)))
3 e9 @7 }6 p$ v: n: { - )
9 T1 M' A8 K ]" C - )
: }$ V+ D, ]3 K. C! L - (while (setq ltlist (tblnext "LTYPE"))
; q8 E& d! F0 i4 Z. t7 h4 Q0 a - (setq ltname (cdr (assoc 2 ltlist)))
A) O- p8 z& i0 S/ b - (setq ltnmlst (append ltnmlst (list ltname)))* {$ Y: u4 l& A
- (setq mdashlist + U2 @; B o6 k+ m9 Z% ^% B2 l
- (append mdashlist (list (add-mdash ltlist)))
$ J8 U+ [: y* d. _- Q6 u9 W - )
3 l1 `) l+ |' [. n - )
, f! a7 @6 E% v0 ? - (setq ltnmlst (cons "BYBLOCK" ltnmlst))1 n/ d$ o3 S' U, N" ]7 c, x- S7 s
- (setq mdashlist (cons nil mdashlist))
) F9 I' {3 L/ R& w/ n& V/ O - (setq ltnmlst (cons "BYLAYER" ltnmlst))
$ s4 s: \, G+ h" M8 X2 m- p- M - (setq mdashlist (cons nil mdashlist))2 o9 \" m: j M6 _
- )3 |1 a2 k4 [( j! F) ?/ ]3 y5 e
- ;;
) q) J q `4 H' ] - ;; Get all the group code 49 values for a linetype and put them in a list * q1 _) X( f2 E' J: i: _. J% j( S0 }
- ;; (pen-up, pen-down info)
k T6 G& @5 l- E( S! T& F - ;;
" F& r8 ]& k7 @ - (defun add-mdash (ltlist1 / dashlist assoclist dashsize), M2 |" m8 I L/ L
- (setq dashlist nil)" c( I/ u" [6 |4 m. n1 u) n/ w" y
- (while (setq assoclist (car ltlist1)): @, g. n* `% s4 f
- (if (= (car assoclist) 49)$ \0 k. W1 [2 f3 Q& l1 d8 S3 P
- (progn
* h* R/ z" s1 e - (setq dashsize (cdr assoclist))
0 G6 Y0 K: V: [2 ]1 X* b- m, L - (setq dashlist (cons dashsize dashlist))
8 [, ]/ _; m1 ]2 z# q) g" j- K - )3 J5 \" Y0 @# I: `0 U9 P- _
- )
( F5 v4 A+ N$ Z0 l7 \ - (setq ltlist1 (cdr ltlist1))
. r( J8 c( K/ @6 C - )/ I% x: ]1 m: s- L. h& `# o: U
- (setq dashlist (reverse dashlist)) u' S, C3 W1 l. T: R: |' H
- )) e7 J( c: O6 J4 K6 y* l" K% Z7 J
- ;;
+ P$ q1 _/ ?. W& A; A2 W% M3 | - ;; Color a tile, draw linetype, and draw a border around it
3 n7 ~- i$ N% h2 \0 u - ;;2 A! H3 f2 b- @5 \! O3 C$ p W
- (defun col_tile (tile color patlist / x y)
' b: x# T' J$ S/ i4 X - (setq x (dimx_tile tile))
8 h; d& s1 O" W - (setq y (dimy_tile tile))
- O( W" t2 l$ N; }6 z$ a+ r - (start_image tile)* k6 y( C- A7 |2 j$ A/ a
- (fill_image 0 0 x y color)$ R G: a/ r8 w& O3 I B
- (if (= color 7)6 i7 E% v3 N( x0 L+ Z8 R
- (progn8 z# w0 x6 {" F; S0 e5 H
- (if patlist (drawpattern x (/ y 2) patlist 0))
1 J! |% h6 D3 M - (tile_rect 0 0 x y 0)
. M2 d9 L7 v0 g - )/ b. E! p4 t/ j6 v( x) _! k
- (progn0 T z$ s: _4 M# u
- (if patlist (drawpattern x (/ y 2) patlist 7))
+ A2 ]! |! H- J" g) v/ n! r - (tile_rect 0 0 x y 7)! d! W* d& z9 \4 ^' P
- )1 ^( e, T$ n0 R+ t
- )- b2 M# }+ Z& O! R* x
- (end_image)# ?- t) e1 S% E" K; C) D
- )
1 `& B- u2 D5 @/ L; ?# l9 V - ;;4 M/ x( M! x0 ]! b% Y
- ;; Draw a border around a tile
* N$ q4 S6 g, {8 b9 \* Y B - ;;; M, [. O# A9 b& |
- (defun tile_rect (x1 y1 x2 y2 color)
$ Q) w) D5 Y2 x8 U* k: R - (setq x2 (- x2 1))
9 Z- n F' W) d - (setq y2 (- y2 1))
o8 d+ K" ?- { - (vector_image x1 y1 x2 y1 color), w2 G0 t2 n4 t$ R2 T: m
- (vector_image x2 y1 x2 y2 color)
" g' d- Y |7 @+ A5 X3 X - (vector_image x2 y2 x1 y2 color)/ r* m7 ?/ a) l/ O" f+ y, I# a
- (vector_image x1 y2 x1 y1 color)1 P6 {% x" p0 U6 [$ g* _
- )) w' N1 L* o ^+ ^6 P( J
- ;;$ w! N8 j; B; @" X
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
3 k z2 J6 m5 T: a - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
$ b: x3 f7 U. `3 a' S4 r) [/ I9 O0 M7 ] - ;; list of numbers that define the linetype, and color is the color of the
) T2 L% J, Q2 C: z3 Y6 O - ;; tile.
- f! P9 Q5 `( t - ;;' q5 E Z5 J( H0 e$ u$ x' s% u
- (defun drawpattern (boxlength y2 pattern color / x1 x2
4 v4 _) A3 t7 p. w- ?, q _* E - patlist dash)
# p' F. X2 J$ w0 \& F - (setq x1 0 x2 0)9 ?- m9 i6 f6 ]9 h! q) }6 j: U
- (setq patlist pattern). C, Q: s8 l& [% b! x
- (if (= patlist "CONT")
8 r+ F7 U& h( S - (progn
, X' x4 @/ a! \6 e a: s! e! n7 R - (setq dash boxlength). r5 ^9 {/ g' W0 ]1 N
- (vi)* `, y. H/ B2 \) p$ S# j3 X+ d
- (setq x1 boxlength)
, w) J- `/ y0 x - )
0 E* J: |7 E, M* Y - )
; ]4 s; C3 R4 }+ d* o/ z - (while (< x1 boxlength)( v* P3 W& v! K% Z; z7 }6 x
- (if (setq dash (car patlist))
3 T; L- Y* s8 R+ i - (progn
9 K; T$ d, v+ {6 k - (setq dash (fix (* 30 dash)))
/ o8 j6 e9 E y( |6 K7 d7 R/ g - (cond # w' @# U5 g: Y' A# O `+ C, }
- ((= dash 0)
( E1 O, G4 Q+ S - (setq dash 1) 3 U# q- H! N5 c+ m+ [1 k: D# ~$ M
- (vi)+ g: v3 z& a- k g/ r1 W) r3 \0 }
- )
, ]5 t8 E" Z3 Y% c - ((> dash 0)
" K; V( E0 d$ a5 f0 {9 J3 K, r - (vi)0 V; t& Z8 C1 H" O+ t* R3 S! x9 A6 t
- )% Q% m5 M$ j+ F+ c: e
- (T
/ P" S0 n* V6 G9 W - (if (< (abs dash) 2) (setq dash 2))
9 N8 h& v- S& t9 J' Y, }2 P - (setq x2 (+ x2 (abs dash))) g5 s3 A" D( T
- )1 S4 V6 K" H" v6 Y! C5 _0 h' t% B
- )
7 M/ H8 U# w$ k, R2 C5 R - (setq patlist (cdr patlist))
% j. @: b& ^4 U; c* e! L" G8 P - (setq x1 x2)0 Z2 z; |& `, g& f1 u" c
- ): i3 {; ^+ q9 v) s0 c
- (setq patlist pattern)
7 v/ V; m- y }- t3 \6 @ - )( |. K' e7 y4 t5 M7 G4 s1 v3 u
- )
) }. G2 y2 b o* y9 q1 }( J - )
3 f' Y- K4 G* D! \7 x4 v$ C. t - ;;
3 ?# X Z4 R/ [, H - ;; Draw a dash or dot in image tile
! G0 r# I. t1 _4 k4 k0 z - ;;& n: \! h7 F, U
- (defun vi ()
& ~4 ?0 q; m$ _ - (setq x2 (+ x2 dash))" P% U1 k3 i5 \ Z) \
- (vector_image x1 y2 x2 y2 color)
/ \9 O1 F" q: ^1 g - )* D$ F* f: X7 ^' K1 n, Y: s0 h5 t, K& T
- ;; L( U- ]% `- J$ e! P7 S% n
- ;; This function takes a selection and returns a list of the color, linetype,
3 R3 @3 }8 [% v# s; w5 Q* ?+ Z - ;; layer, and thickness properties that are common to every entities in the6 L$ z& |5 w: I {; F
- ;; selection set - (color linetype layer thickness). If all entities do not
; K, i h4 ?7 G - ;; share the same property value it returns "Varies" in place of the 0 w4 d8 x0 b9 [! x
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0), E* e9 z% S: p4 c. u- q8 }# b
- ;;
; V, L2 A. B/ T - (defun getprops (selset / sslen elist color ltype layer7 K4 R$ O0 N h4 T8 u+ R4 t' d
- thickness go chk-col chk-lt chk-lay chk-th ctr)
4 n; C1 W6 V. {5 W. u( e& G - (setq sslen (sslength selset))
1 j g- Y1 l! U - (setq elist (entget (ssname selset 0)))$ N, u, \ C! U }; O4 _
- (setq color (cdr (assoc 62 elist)))
+ w T6 {4 B/ h5 ~5 m - (if (not color) (setq color 256))
: R' E S/ n8 A- M7 _# V2 D; E - (setq ltype (cdr (assoc 6 elist)))3 ^; @6 E3 t' b8 n3 a
- (if (not ltype) (setq ltype "BYLAYER"))( l& A: ]' D% t# U- v! M
- (setq layer (cdr (assoc 8 elist)))( C0 X- s+ v4 Z! Z
- (setq thickness (cdr (assoc 39 elist)))1 h0 V, f+ ^. B0 r; f+ a. J
- (if (not thickness) (setq thickness 0))( r/ k8 G" e! e8 h3 {. Z
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
% y. P+ X5 q) `/ b% C0 e7 W; H
/ X" Q7 H1 q! k0 i" O3 r- ;; Page through the selection set. When a property
4 y" U: e G k4 z - ;; does not match, stop checking for that property.5 R' w4 j% U0 b" ]& s) }7 ?
- ;; If all properties vary, stop paging.1 G9 P/ L2 {9 A) }
1 [% h' c- s7 D1 O: e0 [; v& u2 x) A- (while (and (> sslen ctr) go)
* z7 j4 ^# r, \$ D& V - (setq elist (entget (setq en (ssname selset ctr))))
, s! f7 o+ T/ w' N! o s, I - (if chk-col (match-col))& K C4 i5 a! z% I3 z# N+ y
- (if chk-lt (match-lt))# J+ O. @' K T) l1 @, }
- (if chk-lay (match-lay))* y2 x$ n+ } f/ O2 w) J; P
- (if chk-th (match-th))$ ]7 L' N- X% U, g
- (setq ctr (1+ ctr)), Q% X" Z( ^6 x g7 }, h" [
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
" S, m$ E3 |2 [: z+ y( b% n0 | - (setq go nil)
0 \* ]7 x: V; m0 w4 O/ F2 H - )
: j9 r( l/ K; C; z. n2 ^; s - ): i! q& P8 P f( h1 |4 a& d v' P3 J
- (list color ltype layer thickness). y) q. u" x9 w/ ^* h8 W+ F/ P0 N
- )
1 G+ c; x/ i0 {0 e) d3 b - , m" P D q/ ~
- (defun match-col (/ ncolor)$ @7 J( k& I8 a' o% b- @ O' b9 f
- (setq ncolor (cdr (assoc 62 elist)))
/ l! J6 Q/ v6 m( P' Y" ]) L - (if (not ncolor) (setq ncolor 256))
/ O0 M( D( C" k* [3 N - (if (/= color ncolor)
' C. I+ X( ]% r L) ` - (progn/ S! n3 h, \- A G+ o
- (setq chk-col nil)4 }/ @6 d1 n1 U3 }( a" M7 R
- (setq color nil)
5 C! Q5 U4 L/ w! z5 y - )/ U% R0 ~" J3 W7 ]# A& ~
- )
: `! P H# f( H - )& D4 F8 O3 ~) K* S* H
- ) j8 V* i9 J& l) \' J8 K3 e- g% W
- (defun match-lt (/ nltype)" p8 y, h0 h# @- R ~) N
- (setq nltype (cdr (assoc 6 elist)))0 q. s. ~; z* d) e. P& P+ b- Q
- (if (not nltype) (setq nltype "BYLAYER"))
& _" P. J" o6 i* o- i: x: k, H - (if (/= ltype nltype)
0 {. x3 H0 b' r: x0 ?" s; _ - (progn; j& X* C, A% g5 W8 g' b7 q, e
- (setq chk-lt nil)# M( _3 H* F* R$ t: ?( F- o
- (setq ltype "Varies")
" Q8 S+ O6 n! i1 L - )' m# `$ |$ j- H% k8 R9 v. }0 I
- )8 F2 p( A ^3 E% F
- )" [7 o. R. \/ C" }2 i# A- o8 y
- ; ?' G* e$ l E6 u6 R
- (defun match-lay (/ nlayer)
' r1 s% E+ y; ?! q' P - (setq nlayer (cdr (assoc 8 elist)))& w' v* }4 y9 c! S( @. u
- (if (/= layer nlayer)
4 L& C( o A/ y: Z/ a - (progn
; l' ~2 ?; g0 O* Q: ]0 u1 N+ u9 E3 U6 Z - (setq chk-lay nil)
( i8 J4 y( D% T2 f+ e - (setq layer "Varies")' n' }3 g$ N' V2 u; ~: `
- )
! ]# I, |+ X/ n - )" V. X+ F/ n7 P, E& T
- )) `) g) N1 W$ a% {
3 ]3 R1 i1 X, r! f. V) b' _+ C! A- (defun match-th (/ nthickness)
! F& _, M0 k2 ~ - (setq nthickness (cdr (assoc 39 elist)))! ?; }! v( L$ {8 f6 O$ `
- (if (not nthickness) (setq nthickness 0))
, S6 F* {1 q5 R) {# X9 o - (if (/= thickness nthickness)7 d- H3 l' m2 n' q3 H4 F
- (progn; L& C" c( j; ^
- (setq chk-th nil)
6 Y6 T4 c$ t7 z/ u6 C8 B& c- ^. i - (setq thickness "Varies"); o+ L, y r+ T& ^! O. f# d o
- )
; h, q7 a* E3 ~2 x - )4 M. W* C$ |1 W# h
- ) e8 K+ G! `: U9 a) v& j/ ]
- # U* R( G) E, d
- ;;! R8 W5 U1 C# G5 n0 g: q1 L
- ;; If an item is a member of the list, then return its index number, else
+ p& U- m6 q3 c; f0 P6 ~* | - ;; return nil.- `0 y! c. V& a
- ;;+ K( S' H5 q8 H s
- (defun getindex (item itemlist / m n)) P4 i1 G0 p8 i4 b
- (setq n (length itemlist)), S! U5 ]8 s( I P! z" j
- (if (> (setq m (length (member item itemlist))) 0)$ V/ e+ m8 M, X6 f- y
- (- n m)
2 n4 K. S, |+ z- \9 }2 Q - nil
# ]2 y2 o4 W1 @8 ~& Y) F! N - )& J6 M9 t: @- T1 o, e( E2 k1 Y* n
- )
Z& d/ O. ~1 P& q2 d3 | R2 ?& w! E - ;;
+ \) v; u0 D$ W% s' | - ;; This function is called if the linetype is set "BYLAYER". It finds the
4 p2 C# t, }/ d8 x, d - ;; ltype of the layer so it can be displayed beside the linetype button.8 K+ W7 F( J! _0 c1 A- C' |, J! v S
- ;;1 N& }+ s3 N, U% v; e( a1 @* G
- (defun bylayer_lt (/ layname layinfo ltype)! v- I3 Y9 V% l6 T( `% [
- (if lay-idx
% R) j* t0 D% k o f- N0 u c; k - (progn9 M4 n3 q3 ]$ r* t% M
- (setq layname (nth lay-idx laynmlst))
# m8 s# |+ Z/ m/ H; g8 a! X - (setq layinfo (tblsearch "layer" layname))
0 R0 m6 Z! k$ b5 V7 w - (setq ltype (cdr (assoc 6 layinfo)))
& ?. a8 M- Z+ B - (strcat "BYLAYER (" ltype ")")# M/ c, y, U" P2 O& K) U
- )" \% V) _0 L& Y5 @+ v
- "BYLAYER") h# O5 |; ?# s: t
- )
K" ?* |+ L+ ^, V: }. P - )
8 Q: ]6 W/ S7 Z4 i - ;;( |: E( g' U( n/ z: }+ H. `
- ;; This function is called if the color is set "BYLAYER". It finds the
& E) W3 Y, T: C/ v8 l; H( G - ;; color of the layer so it can be displayed beside the color button.. [' _1 {' a; q8 Y" }* \) u# P' T
- ;;
$ \& \0 t! f- K' K - (defun bylayer_col (/ layname layinfo color)1 q: `2 a' J8 W! V7 S% s
- (if lay-idx' Y* j) Q- X2 `( j9 N5 j- g
- (progn# t5 h+ l3 X& h: j% Q' E
- (setq layname (nth lay-idx laynmlst))8 j. ~) w; B) A! T) A9 M$ N! H" p
- (setq layinfo (tblsearch "layer" layname))
# i r6 A' A: h2 o) Z - (setq color (abs (cdr (assoc 62 layinfo))))
3 H3 j( R v3 s7 _' C+ ?! m& m; [ - (setq cn color)
, U5 z1 S9 l6 d( K3 r! ~- U - (strcat "BYLAYER (" (colorname color) ")")( s# H7 z8 |% H' j3 s0 f
- )
( U! C9 _+ K$ u/ l - (progn
; b6 i+ {* w$ r% e - (setq cn 0)/ y2 E' @0 c3 F& u/ m" G: C* @ e
- "BYLAYER"+ `9 G7 `' {1 f5 C* w
- )* g/ _9 L4 r; o2 `& |
- )( u5 C: D& P3 e8 B; M6 j
- )
. F( r$ u# t/ E9 r - ;;
?" M% u, J7 O6 N. E$ f1 U - ;; If there is no error message, then close the dialogue
E6 ~3 |1 M/ |0 o4 f% m& q1 M - ;;
K3 ~: w8 U' r3 [- v - ;; If there is an error message, then set focus to the tile" u7 w9 ~& b. {8 {4 \
- ;; that's associated with the error message." x" W" i U2 t& N9 E
- ;;
! C# U2 W9 G. W3 ~! q - (defun test-ok ( / errtile)9 n" r4 v/ _/ r; @; F2 N
- (setq errtile (get_tile "error"))" R+ e/ p: w! _
- (cond" k8 |2 t: J* |& {7 ~
- ( (= errtile "")% z9 _3 @/ h7 a. e: [2 Z6 R1 M# X4 V9 e A
- (done_dialog 1))
. z V B# K" R2 h I( ` - ( (= errtile "Invalid thickness.")
3 C6 Y" z6 V8 |# `9 `4 i# Q8 s - (mode_tile "eb_thickness" 2))5 |4 g' a ^$ Z) U2 h
- )
, s! X& W; M# o3 A& N7 S - )0 G! C, b7 n& X/ f0 ?/ I
- ;;
- ]' X0 G$ K4 g# R1 t, L" r% t - ;; A color function used by getlayer.
( e2 J9 Y. d0 f - ;;( Q; M) ?8 J. e) x
- (defun colorname (colnum)
8 C1 f! c& f' k - (setq cn (abs colnum))
# M3 E! I# k. U; u - (cond ((= cn 1) "red")
% ]5 ^7 ]& |7 S( b& i: } - ((= cn 2) "yellow")
) R! f7 w" D& B0 c( q - ((= cn 3) "green")5 {, s, M7 e6 @3 U) I3 i0 I
- ((= cn 4) "cyan")9 b x2 H6 g2 B: y" V, P% A0 J
- ((= cn 5) "blue")
' j2 N- a) M4 @' a - ((= cn 6) "magenta")
% U: V! u& Q' k& n# L: w - ((= cn 7) "white")
: b/ @& `* g" j" e - (T (itoa cn))0 g! O2 H2 z, x. L7 R* h
- )$ C s( D: T0 p. B
- )! e! _& X0 [1 `3 M
8 k$ a0 _- y4 J# }- ;;; Construct layer and ltype lists and initialize all5 `; ]9 {$ G) i
- ;;; program variables:, N% a3 {: s* c) n
- / P. M N0 p8 q; I: G: y2 {
- (makelaylists) ; layer list - laynmlst; E& G: k( ^* a& y) Z* b
- (makeltlists) ; linetype lists - ltnmlst, mdashlist6 {( R. ^! F" n& H( b* I
- ;; Find the property values of the selection set.
o+ Z, E8 o' U5 E9 l5 x$ X - ;; (getprops ss) returns a list of properties from* S$ { Y$ a) @6 J/ T) t
- ;; a selection set - (color ltype layer thickness).
8 I/ b2 h4 x- F" n) s+ d. w - (setq proplist (getprops ss))6 }" c; C9 I; E* D+ l& A1 Y4 T7 }
- (setq ecolor (car proplist))
$ {/ V, k |: ~9 V$ i* f+ F( L' y - (setq eltype (cadr proplist)), v% c2 P0 ?* q6 Z2 E3 E% M7 [
- (setq elayer (caddr proplist))
/ C7 [* k3 J# w/ h' ?9 `$ h - (setq ethickness (cadddr proplist))# o# P" h5 K4 A0 Y: K( ^
- ;; Find index of linetype, and layer lists- S8 a9 j7 b! z9 f- M- ~$ L
- (cond
" C( o C3 w3 t' q3 N: s - ((= eltype "Varies") (setq lt-idx nil))
) B& A( p1 P$ w: F - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))- }4 E9 e: P' ^2 W/ ?* R
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
- m7 X8 M5 A9 X: W& y$ ^3 K - (T (setq lt-idx (getindex eltype ltnmlst)))
4 A3 H B2 ^( c - )
o7 j# n' O% B9 b0 v5 s9 L - (if (= elayer "Varies")5 _+ `4 N# s7 O/ B$ v
- (setq lay-idx nil), E. Q8 m* P, s' `+ k8 n
- (setq lay-idx (getindex elayer laynmlst))4 f, t% `4 F+ l8 y3 t! P* t
- )
+ H6 `* W) V u1 f - (if (= ethickness "Varies") e7 p) a, F5 T/ x8 z( s1 K% ?
- (setq ethickness nil)" h9 P5 U. f0 }1 b# A1 d, ]2 K
- )
0 N" T% ]# o# @) v( f4 z - ; w# i! i0 |6 f6 [$ G! l
- ) ; end (ddchprop_init)3 X7 a0 E/ e+ `* a. m
9 |, c$ r% L, ~, V/ a+ ^- ;;; (ddchprop_select)/ O2 M8 W/ g1 d( W) Z
- ;;;; H- n4 _5 p! W/ }7 l
- ;;; Aquires selection set for DDCHPROP, in one of three ways:3 J3 Q# N% \9 {0 i
- ;;;
, c, @0 m3 ^$ R8 `* P9 m - ;;; 1 - Autoselected.
- [6 u/ M2 n' q2 e8 O - ;;; 2 - Prompted for.6 Y$ \" n1 G+ l. [% Y5 n
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )/ K) o9 g! |$ T7 C; w2 [6 U
- ;;; K+ r5 p5 P$ N
- ;;; The (ddchprop_select) function also sets the value of the
" f9 d3 e$ A' l; L% }5 w - ;;; global symbol AI_SELTYPE to one of the above three values to
) Q" n1 W3 T, l+ f4 g - ;;; indicate the method thru which the entity was aquired.9 n& p0 L ?% z
# o$ k l% ?1 U; h! `
4 Y" X Z5 ?% l( L. t: \- (defun ddchprop_select ()* V$ F. L4 F7 t8 e+ {5 |& N
- (cond
2 L' @2 B+ h* P; w5 b. Z1 d - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to9 U7 Y8 T, ?3 ^
- (cond ; (ddchprop) as argument6 x; r! H. i+ c5 O
- ( (not (zerop (sslength ss))) ; If not empty, then7 c' I, h% z- O* y8 v
- (setq ai_seltype 3) ; then return pickset.
6 m U- G0 f5 [) y5 n, ? _ - (ai_return ss))))7 {) n z& ]. Z
8 z' b6 a: I, T# s- z4 b- ( (ai_aselect)) ; Use current selection
# ]/ I, ~3 D8 z. m - ; set or prompt for objects
* \1 E4 c: l: L, ~: `# k0 L% C - & Z. r( Z% S D
- (t (princ "\nNothing selected.")
) |+ Y5 s! u% L* } [+ ~9 t4 I3 W - (ai_return nil))7 O- v' `* Q$ {+ ~, B; h @8 O
- )& g% d8 k5 B, ]' r/ |; `
- )
" c: Y* F1 Z+ d5 C; d0 |2 d
" z- o$ C! c1 e" M$ i- ;;; Define command function.
; _4 @6 s% L, J6 c7 k3 M& Y- E: d - 9 s/ Y! w7 E7 y4 }+ _, Z
- (defun C:CH ()' s4 Z n+ {9 i( C# U
- (ddchprop nil)
/ {* P( Q, N! U& u* k O" e - (princ)! [0 y: T$ l# O" X
- )
, P" {# P) _+ ^1 ^6 m% F - ; E! {" o4 \" K) ?
- * F/ ]* T$ ?5 U# Y
- ;;; Main program function - callable as a subroutine.+ v# g/ u! w) f8 d, n
- ;;;
. w- b5 l* R" ~ - ;;; (ddchprop <pickset> )
; n v' f; M1 r8 \. Q ~( P4 _5 f - ;;;- F% h4 U, I' W; u/ n) D0 x
- ;;; <pickset> is the selection set of objects to be changed.* N- V y3 q( i) p
- ;;;
% G2 R1 f& e# P! t7 D# m8 z - ;;; If <pickset> is nil, then the current selection set is
: t1 ^4 @8 r) h: S& A$ c - ;;; aquired, if one exists. Otherwise, the user is prompted7 C: R0 U3 t8 `
- ;;; to select the objects to be changed.
; B7 h W& X) u6 \6 Q - ;;;6 E j7 e, ]6 p# ]4 x4 h" w
- ;;; Before (ddchprop) can be called as a subroutine, it must
7 P0 C, W/ d2 \% Y- R5 F - ;;; be loaded first. It is up to the calling application to
/ z/ ]5 X0 }' ?7 C# Z2 o - ;;; first determine this, and load it if necessary.
/ V9 K. b2 s* X1 l# ]7 v
* q8 B$ a, B! b( s7 u# D- (defun ddchprop (ss /
b) U u* z7 d F
9 l+ l6 o; A) M6 x6 K2 a- add-mdash ecolor ltedit_act s X* S& q& e! g7 n
- assoclist elayer ltidx selset( A- B% o+ H( c" p
- bit-70 elist ltlist set_col_tile3 k% E- M, J# h% @: } L
- boxlength eltype ltlist1
+ ~4 i1 H' Y, }8 _/ G0 Q% J8 u - bylayer-lt en ltlist_act sortlist
" b2 V9 C# M9 h9 _! {. ]1 G - bylayer_col ethickness ltname
0 \- B5 }# L; ?9 }" `2 ] - bylayer_lt fchk ltnmlst sslen
% w$ R5 Q4 q2 h+ `. e# v - call_chp frozth ltvalue templist
$ [ [5 s! V- Q; r - chk-col getcolor ltype temp_color
$ }6 g' L2 w$ \$ y! d+ [ - chk-lay getindex m test-ok
* u7 y# c. ?0 _6 G, t+ @ - chk-lt getlayer makelaylists testidx1 I( f) q- b9 M/ Q, [
- chk-th getltype makeltlists testlay
6 ^' V( k- | a1 u5 C - cmd getprops match-col th-value
- M6 e4 T7 d( r1 v) d& g - cmdecho getthickness match-in thickness# e4 ~2 j9 O0 s9 |
- cn globals match-lay tile
7 T f6 A7 ?6 {* r2 g - cnum go match-lt tilemode3 y# e; @4 W- g% R# y0 ^; R4 M
- col-idx index match-th tile_rect; ?$ G% T: N$ N# j Z9 F
- colname item match_col vi- a/ s7 E$ v5 }8 s: p `" P: P4 F
- colnum item1 mdashlist vpf
6 W3 x. n a D6 `* Z - color item2 n vpldata
/ o* ^& s, m0 b6 y6 c @ - colorname itemlist name vpn' m% w6 K7 Z E: I
- col_def lay-idx ncolor x
- `' \% {( u: z. u) B0 n5 X& `6 W - col_tile layedit_act nlayer x1
- z6 L' v7 [+ q4 L9 ~ - ctr layer nltype x2
% z; P( n' P) [ - cvpname layinfo nthickness xdlist
8 I9 i3 w; e# W- z - dash laylist off y
7 u. `8 Q- f* {9 m+ m1 a" C - dashdata laylist_act old-idx y14 V( ` |( g$ O" I2 I
- dashlist layname olderr y2. u" z; w, y6 Z1 V2 y
- dashsize laynmlst on undo_init/ Z ]7 n; {* A2 k
- dcl_id layvalue onoff) d" u5 p0 m2 N4 _* X
- linetype patlist( t6 k. f1 f0 q- k6 R' @
- ddchprop-err list1 pattern$ n: G/ Q v Y/ L1 v4 x7 f6 R
- longlist proplist
, r! v( Z2 G9 N6 c& B- S1 A - lt-idx reset-lay
) [" \% Y( `( t+ E g3 o - drawpattern ltabstr reset-lt! l4 e0 o0 [: ^ k, w6 @" T( d
- )
s7 G% J+ d( e7 ]) c6 Z9 f- s H
: M+ x1 v7 @. M- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
- s9 a6 ~: x+ D/ ^( A" E - old_error *error* ; save current error function
# M# l( s) v w2 i' v% s - *error* ai_error ; new error function
( T/ J) b4 I: @% h# ~1 U+ P - )
3 \; P7 D3 a, i' }5 j
3 z' \/ s! i9 ?- z- h6 _/ n- (setvar "cmdecho" 0)' c7 J# b& o/ M% K$ Q) o: d
+ x8 H( ~5 A5 q- (cond
n+ |, J2 h8 ]- I1 s* q - ( (not (ai_notrans))) ; Not transparent?
3 I8 c6 b0 ]% ~9 @, m - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?' x6 p) ^5 A' r9 q+ a* }
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?2 y: K1 F- e# h% F
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?3 ]0 o$ @( H7 w2 ]- f6 R
- 4 \/ s: E B0 F. d, Y
- (t (ai_undo_push)
3 ?& q& b* N' f% H# g/ d# }! N! ` - (ddchprop_init) ; Everything's cool,
( }$ ]- E0 `4 @+ F/ ] - (call_chp) ; so proceed!
8 a8 i* @2 r. p# H4 C - (ai_undo_pop)
3 ]( [0 x5 W6 W( C - )
! n% S9 W1 p3 O - )6 C: f: ]9 w& y: B, l" g
- T/ ~9 `- R/ Y# P6 r
- (setq *error* old_error) * U4 J) ]2 `, x: U2 ]& Q) O7 B$ H% e
- (setvar "cmdecho" old_cmd)- N0 w' n( ~% G( ?+ b( C% ?
- (princ)9 U% y5 q. b8 [5 ?8 m. M$ }6 `
- )
# w3 [+ V6 R3 N0 J7 V- O
' C, U# G$ W" w+ X( t. Z- ;;;---------------------------------------------------------------------------- x, [5 V) j0 l/ @9 |
0 f+ ~; L7 D1 b& p- f+ X/ D- (princ " DDCHPROP loaded.")1 O4 r6 t: G! S) d$ T7 f" T
- (princ)
4 _5 G) I2 T: P9 V- J3 x3 ^- Q - - T& A( F1 b7 w( w4 @3 k
- ;;;----------------------------------------------------------------------------
3 g' p. N+ a* m( N) L# N - + ^' D1 c: u0 t$ H: u. Q
- ;--------------------------------ddmodify.lsp----------------------------------2 [+ _9 V; |; r4 k4 A( T
- ; Next available MSG number is 111
& \% M7 W0 J Z: ^6 O$ D - ; MODULE_ID DDMODIFY_LSP_
& W" a5 B+ x" P - ;;;----------------------------------------------------------------------------
7 }4 w$ W9 G2 ]7 a' ~$ _ |0 R - ;;; DDMODIFY.LSP* |3 ^- S$ v, ]' S
- ;;;
: O3 E9 H3 N1 W n - ;;; Copyright 1997 by Autodesk, Inc.+ l6 P \" i& F2 g1 M
- ;;;
% J0 I5 ~5 W3 Q R0 h: G - ;;; Permission to use, copy, modify, and distribute this software+ Y; D/ u5 W% w8 x9 \# S( P! M
- ;;; for any purpose and without fee is hereby granted, provided- C+ u; e: f; r# d
- ;;; that the above copyright notice appears in all copies and
/ i0 m. P j! q0 g - ;;; that both that copyright notice and the limited warranty and
3 Y# l+ N& Y R* i) L& Y - ;;; restricted rights notice below appear in all supporting
+ b8 q* \# z: N. Q - ;;; documentation.
; h! m% B4 o- R3 q - ;;;
" ?" Q! Z# [) p9 n X$ i - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.- V0 A# v7 h I7 f) O& ]' X
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
v8 A4 D. d) n' i* m# [- f$ }* Z2 W - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
0 Q$ e. U* k8 B! P - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
$ L% d4 {1 H a - ;;; UNINTERRUPTED OR ERROR FREE.% k& E* g6 F3 z2 n( v
- ;;;! p( q. _- w! v8 \3 r
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
, \2 C! ^- t, W% _* N9 R - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
5 D+ ^ s8 o$ m3 y7 c& q8 f* v. z - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
, _/ u9 p& _' ^, i% c% o - ;;; (Rights in Technical Data and Computer Software), as applicable.
5 t* Q& d& M* U/ S: J9 s - ;;;! X+ d- o+ d. K/ m6 ?% g- B
- ;;;.
! F5 j; Y, i) N3 x9 f" { - ;;;" X' o# V! b! I$ h# |2 Z
- ;;;----------------------------------------------------------------------------" w2 K9 w9 q e! k T
- ;;; DESCRIPTION, F' b* |1 r; y; I7 ^
- ;;;
4 s; E$ X3 S. z" i6 W1 Z- @ - ;;; This function allows the user to get a listing comparable to the LIST
. d7 X: H7 P! f0 o4 ?( i - ;;; command for most objects. In addition, most object fields in the& I+ D$ d% ^ m; t, y q
- ;;; dialogue box are editable. Points can be specified dynamically by
1 ?8 C# w4 t% S) G' k$ b - ;;; temporarily dismissing the dialogue box. Each object has a unique
2 d a' s% K0 V - ;;; dialogue.
5 Y+ e+ W) Y$ E5 J; Z* {; { - ;;;' B1 g7 J! B- i# M& L
- ;;; Naming conventions9 z; h$ n. K' i+ Z9 L$ {
- ;;; Long function and widget names may use an underscore "_"% S4 Z" \' @. {, J& d
- ;;; in their names to make them easier to read, long variable$ b' b6 W# t, s2 x* j( y
- ;;; names use a dash "-"., ^, e/ i) }/ o1 Q- p& W
- ;;;----------------------------------------------------------------------------
6 x$ `( g4 t8 O4 u - ;;;----------------------------------------------------------------------------6 l2 A) G* b3 I! n. ~- a/ Z$ S
- ;;; Prefixes in command and keyword strings:% T; ~( E4 @" A x
- ;;; "." specifies the built-in AutoCAD command in case it has been
1 a# S, C5 ~( b6 v9 U5 @ - ;;; redefined.6 c o7 Q! Y" k
- ;;; "_" denotes an AutoCAD command or keyword in the native language3 m5 q4 u0 h% K$ E
- ;;; version, English.3 e& q1 L1 ?' T# V3 i$ o. ]4 F* X( _6 E
- ;;;----------------------------------------------------------------------------5 u" o( G) \% e5 o7 K
- ;;;& {& n7 A) p; ~4 G) Z
- ;;; Avoid (gc)s on load to improve load time.$ Z& J) @( `. q# |
- ;;;
) b+ }2 `9 Y( o; {: c9 R - (defun do_alloc (/ old_allod new_alloc)1 f l* l; K! E2 u5 d& l. d7 W
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000)) ?- v$ n S7 J. ^" j. g
- (expand (1+ (/ 17000 new_alloc)))1 h: x9 Z$ g$ W% f) U. g. A g
- (alloc old_alloc)% `5 E, @# N {, a* Z
- )
8 D# ^: f2 e- ]. L" G0 r - (do_alloc)
' m$ {; C; S9 H' t& o - (setq do_alloc nil)% J' H5 R; p% \$ R
- 2 {4 ?- D2 P) a5 m
- ;;;( G0 r c7 z4 a
- ;;;' y9 x; J/ v2 \9 C, L+ Y
- ;;; ===========================================================================2 M9 q. ~& J1 x; Y& T
- ;;; ===================== load-time error checking ============================$ \9 ?& Y, {( R* i% b" O
2 O# a! T; ]7 M% ]- (defun ai_abort (app msg)
* S0 @: i) D& l, I - (defun *error* (s)
3 k: t+ g* i2 c' W, r, u8 ^! h - (if old_error (setq *error* old_error)) R4 V4 o1 R2 L) R
- (princ)
& n0 p$ p1 b* o& x. t6 u - )
9 w& t, u q! z( o1 Y( T8 D - (if msg4 h! ^4 ~; r) ?4 d7 ^$ [. `, s
- (alert (strcat " Application error: "
8 ~' e. `$ X7 O1 d6 H - app9 h5 j) E# @6 Y
- " \n\n "
: U$ T& y. _! a- b - msg
. i5 x4 K9 ]: a; W - " \n"
. [+ ]# ?% p+ ? - ); u' j4 r* t3 M3 n, k0 l& r$ \
- )( j1 V# H, J/ ?5 T6 R
- )
( G1 j: S& e U( v0 L" L, r - (exit)
2 M' X3 W4 V% c( ~# T5 l - )4 |2 d2 w$ X; ~
( H( Q6 ?0 C# F; `5 r4 ?) L- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,! Q9 g) U, k7 k+ F* `
- ;;; and then try to load it. If it can't be found or can't be2 e S4 H( N M% u
- ;;; loaded, then abort the loading of this file immediately.4 v2 ?) h9 P0 @& O- b: R
! U! S) \% J/ w6 l$ i, S- (cond
, A" V N: b- g* Q6 P6 r - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.4 [0 F; N* Y/ F$ y }( Q7 h8 [
- 1 m" q$ t6 \; D( L1 n( h p
- ( (not (findfile "ai_utils.lsp")) ; find it& `5 q* j' _3 W' F3 B
- (ai_abort "DDMODIFY"2 E G7 [! j/ E0 N5 H. m" p2 k5 j
- (strcat "Can't locate file AI_UTILS.LSP."
' O" F- u2 v4 ]$ c6 p; n* ~3 u4 |. d/ t - "\n Check support directory.")))
! o* ^" ^5 Z7 T0 l; K( O3 ]
$ r3 j; ^+ [- x8 H5 ^- Q# F- ( (eq "failed" (load "ai_utils" "failed")) ; load it) c" _5 ?% \' G, o) s
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
' M: R+ D5 `2 U! a/ a - )
( H) K8 @7 ?0 F9 \. L4 `0 O- `* q - 7 M/ _9 P5 F* W" p1 B* a; }
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can( V8 S: W9 e0 |# X2 N& O
- ;;; be assumed that all functions defined therein are available.+ F6 P0 G- N- I
- 4 I* U" F0 E" P7 U, ^
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
3 Z6 B% p' Y' ~3 P - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP, Z4 u0 G* x; [
- ;;; does not abort the running application itself (so that it can
a- f2 T1 ]4 p) b( u F - ;;; also be called from within the command without also stopping+ f9 q5 I5 K; U1 b8 l' R
- ;;; an AutoCAD command currently in progress).
2 f- d- c! ^ I) A0 M - 1 E$ q; ?9 r z/ o+ p' Q; c
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP3 Q, g( k6 i" i
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
5 T- v2 e" L% u# a! e; t - ) ; ai_abort's alert box dialog.
- d: S2 x" i4 ~
9 ~% z0 v6 b/ j& L+ [- ;;; ==================== end load-time operations ===========================& n2 j8 d1 q- S* |( y2 v) |/ _, K
- 4 V4 O, ^7 B2 w1 N4 M
- ;;; global variables
- L1 I3 u4 P& T" \4 K, | - , x- M( Q" z% P; l6 j* o
- (setq hatch-elist nil)& L* Z6 |2 e9 w6 K4 @
7 E: Q0 y" _, ?: r) b- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
$ D7 k! O# ~" Y& _ - ;;; assumed to be available.8 F7 `6 S1 z# n& w
* J! |5 M( o8 F" M# h- ;;; Define and encapsulate all subroutines that are declared
4 O. O; w( n% s0 R- Z" x8 V3 U - ;;; locals of the (ddmodify) function.
' A6 t" V$ j* K6 \
8 Z. l% @" e; J) W- (defun ddmodify_init ()
3 q' Q( u% i7 t# P0 Z6 D/ t - ;;
! H) q5 u- r* v8 J+ |: W6 b - ;; These three functions modify the enitity list for common properties. Since4 j; E. T; L& z; Q# @
- ;; color, ltype, and thickness are absent from the object list when they are
0 L/ f9 ^8 p6 C# V8 Z# w! P& J8 x9 k - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
) U2 Q1 b' b: _# ~" ~) P) Z - ;; SUBST is not possible.
) F! D! R4 n' ~* o* e/ k2 _$ U - ;;) M/ g1 A$ \5 g. I
- (defun modify_properties ()% n' ]# \/ j6 l, \5 [! s$ }' S n
- (emod ecolor 62)
) S, ]- Y. l% b# C/ I9 r/ C - (emod eltype 6)
' R. M+ V. j1 d! c/ _! V" s - (emod ethickness 39)( i5 U2 O6 f8 o& g# w! r
- (emod eltscale 48)
) J4 H+ F5 Y$ g& Z( L, l' S D - (tempmod elayer 8 nil)
5 u& }. h9 Z! i$ N& M6 M1 Z, J - )
i0 i* i7 E7 T9 o7 P - ;;! e1 @% Q& M% i6 J
- ;; This function is used for modifying common properties of the ACIS9 n# x7 _4 H$ h$ X7 s9 y1 u' w* r7 J. E6 N
- ;; based geometry objects. Thickness is not valid for these objects
* o( W/ H I' w - ;; so it is left out.
" ~0 x- }- g: u4 I1 x, i+ X" t2 \ - ;;
* x3 X% ]6 z7 S% e* ^3 |; B - (defun modify_prop_geom ()
1 i( W: F% O$ a/ _& N2 M, \0 l - (emod ecolor 62)
/ D' b: M8 S0 ^0 f/ i2 u& _+ d - (emod eltype 6)
4 `" ]& N, c1 j/ u7 l - (emod eltscale 48)! @% T; s. y0 I$ C; J
- (tempmod elayer 8 nil)/ k9 A0 X; ?6 k |
- )
; E8 s; N6 w( r$ P9 s& N& h
$ _5 _5 F" A: |" f$ z- `; _- (defun emod (value bit)
8 S& {5 p+ c5 X/ R - (if (= bit 62)
* F: X6 Z5 N( l8 `5 ?. K5 G - (progn& m! Z* h9 a& B* d" Q
- (if (or (= value "BYLAYER")
( } [0 }9 q6 g: ?& C; ~ - (= value "BYLAYER")) (setq value 256))7 S1 E0 O: _, W6 X
- (if (or (= value "BYBLOCK")) K' A# _0 U* O9 f; `0 O
- (= value "BYBLOCK")) (setq value 0))
; m) _: B8 R3 c% \3 X+ m - )
1 T, l$ i3 i+ y1 @5 e - )8 Q3 m0 y) }$ S
- (if (setq oldlist (cdr (assoc bit elist)))
( u) S i9 O( b' T) v - (tempmod value bit nil)0 ^! L/ ^: l' C3 p! O4 d) d3 i
- (setq elist (append elist (list (cons bit value))))
' h, p" q6 o2 F4 c1 A1 R, V - )
6 g! m: n3 {( c o - )
: x" i. J% a1 ]5 T4 h6 f* P- a; r6 m - ;;: ^/ O$ O- e4 ]& g9 T( [
- ;; Resets object list to original values. Called when the dialogue or" b! {* o1 E2 K( _2 }
- ;; function is cancelled.: w8 B/ a7 k6 y; z$ ~. J( j
- ;;5 X. N& g: \+ y8 Y% r
- (defun reset ()( O$ M0 }- W. y. N v; P
- (setq elist old-elist
Q) Z x3 ]2 \3 v o7 T4 I! p - ecolor (cdr (assoc 62 old-elist))
7 m8 M7 \! _8 z7 B - ethickness (cdr (assoc 39 old-elist))" j( s7 r. r! }( u
- eltype (cdr (assoc 6 old-elist)): h& C. H+ _9 J+ U
- elayer (cdr (assoc 8 old-elist))6 D% N5 j; u" P9 U7 M. e8 N
- eltscale (cdr (assoc 48 old-elist))
! N" x0 v, ^; |" V$ U5 y - )
+ Z2 M% f- C& P% n! Y5 P/ K( y - (if (not ecolor) (setq ecolor "BYLAYER"))# v8 H7 k/ g' ~; y9 l4 W
- (if (not eltype) (setq eltype "BYLAYER"))
- N* S8 W9 o2 z) z4 c% g' g% Q9 B - (if (not ethickness) (setq ethickness 0))
9 _5 u: b& ]9 I v: I& t - (if (not eltscale) (setq eltscale 1))3 e5 d6 x" q# l3 D3 J7 B
- (modify_properties)
- m) x7 j! r/ `8 t! v2 A - (setq reset_flag t)
3 D1 s8 ?. [' d6 P - (entmod elist)
" `) k& S; X" `7 o0 `1 J/ J - )
8 ?* Q$ A$ u4 m9 A - ;;9 o0 ?" ]' B0 j* V4 `9 d! X3 A1 Z
- ;; Modify object when dialogue is temporarily dismissed to reflect latest
( T+ z; S- v# o7 h$ a4 E- y' i2 \ - ;; settings of dialogue. It converts the point from current UCS coordinates to/ c% ?) W" u# [- V; U6 F
- ;; the proper object coordinates (world or object).9 a+ j( P" b# b% B* }
- ;;
1 E" m( H3 h; J+ I O9 i z - ;; Arguments: value - in current UCS coordinates6 ^/ {3 b) w* f m2 Y! v v e
- ;; bit - object code (i.e. 10 for start point)' b- t( m+ F! W0 X: _; n# m& H0 O
- ;; ptype - point type 0=world 1=planar
8 x) Y& `# Z6 Y, r5 _' j - ;;
- A# a8 Z3 ?4 e$ h6 m - (defun tempmod (value bit ptype / newpoint)' R" i. N1 L' s3 c8 D
- (cond1 y3 N! m" d& Y3 Z2 m; P
- ((= ptype 1) (setq value (trans value 1 ename)))
1 R, h. b1 U) o1 H" k- X - ((= ptype 0) (setq value (trans value 1 0)))' V/ d* N& q9 I2 c$ F
- )
8 D7 F$ q6 }1 K7 t, ` - (setq elist (subst (cons bit value)
, d T5 E3 r6 V) @4 p - (assoc bit elist)# f* }2 g5 ~5 B* i, d& G, i
- elist) R$ Z* ~/ b2 f) S( r
- )
) B6 J! b2 M& t) n- v5 j$ G - )+ _ @" _5 W9 a; _9 m" Q# w1 J$ R
- )
: w) I' s% k% x" ` - ;;3 t' X) S" a0 {) e
- ;; The following functions are called after a dialogue has been temporarily
$ O& f$ w% @1 w& k - ;; dismissed and the user is selecting a point. If a point is selected the* q7 x6 j+ U0 j2 q+ \
- ;; object list is modified and new X,Y,Z values set. If no point is selected
5 E; w1 g1 ~: [6 [7 l5 T4 R$ c - ;; (null response), then the point is reset back to its previous values.3 P# {" l2 ?" J" J9 C
- ;;
4 Y4 s8 m; q+ P8 q$ j - (defun ver_pt1 (ptype)& |2 H$ r+ n; r u6 [4 h/ u
- (if pt1
( X* x- ?% |) ?+ X; k7 |1 s - (progn
9 b P. L2 L; ~+ N# C0 s9 Z3 I$ n' ?3 F - (tempmod pt1 10 ptype)+ L" u1 c# B) D) Z# L" p
- (entmod elist)) ]3 F( _8 p2 o& d: k
- )
4 T+ K, c0 ?0 A: }$ f5 W' @ - (setq pt1 (list x1 y1 z1)), a' F( @; C8 M2 p( S
- )
0 {6 L T! L& C2 `2 c( ]2 W - )
* z7 D" y8 g+ A1 I1 Y
% |! H. R9 i( ~8 Y- ; (move_pt1 <ptype> )
6 s2 ^- ^0 P+ E/ I- N: J - ;- ~, S) z' f- T6 w
- ; Called in liew of (ver_pt1) to translate block insertions which
: `1 ~* J. F2 Z - ; might have variable attributes attached to them. If the distance
* f& g8 I3 g$ _7 ?" K - ; the block is to be moved is < 1e-6, the move is deferred.* C2 I& \4 ]6 g7 ^& V7 }1 m! J
- 9 g6 g/ T0 }( [+ s# z
- (defun move_pt1 (ptype / basept hi), I. d; S+ x: c- a6 I
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
6 t ^& c) Q) c2 t$ h9 L - (cond
; [8 B# e7 [' ?# |3 F0 C- B - ( (not pt1)* _4 K* C: D* V9 }; P
- (setq pt1 (list x1 y1 z1)))3 {" \5 O; x* L& A
- * C0 C' k+ [& }3 v+ b+ ^
- ( (> 1e-6 (distance pt1 basept)))
/ \/ J" a0 J6 v - & S' H( X; T* E
- (t (tempmod pt1 10 ptype)" H% N' L* K8 E6 Q0 j
- (setq hi (getvar "highlight"))
) ?& u, p, J. h! s& j8 C - (setvar "highlight" 0)
; P4 `2 s1 F* o9 S4 c" L - (command "._move" ename "" basept pt1)/ E# E* u* c% z7 j' [
- (setvar "highlight" hi))
1 ?2 Z. I; F$ R1 Z# A p- O% Q - )
+ r- n1 E$ ~1 F0 ~4 h! w' j" y - )$ U( I S( P% B/ o* y0 S
" v- }. P/ |& E, T& b6 L- (defun ver_pt2 (ptype)
* A5 t1 O& \# \3 p ?/ y - (if pt2' v* X2 ]0 e, h! ]; F9 o4 ?' K
- (progn( p ]' ^6 i% C) g
- (tempmod pt2 11 ptype)
0 g8 |% m# q* w& o6 g# Z5 g0 i x - (entmod elist)4 ? v- n+ k8 R( L+ ~1 J6 a( Y
- )( `% v x& q1 G0 C
- (setq pt2 (list x2 y2 z2))
1 B# Y, O& P, {: ^ - )9 c) g% S0 L2 ]# Z2 L" h
- )
5 O3 U; C2 Y4 t5 n, ~! d# D: m - p0 Y, i& {) X& T6 W" a3 S
- (defun ver_pt3 (ptype)/ d! d: @7 j6 f9 i0 U
- (if pt3
5 t) J" S4 G2 E0 t. `# a' R - (progn2 r, P) V2 ^5 @( d0 E- w% A8 b+ o
- (tempmod pt3 12 ptype). E ]" T3 C( Y k) W$ a
- (entmod elist)
/ q( ^9 V2 X# E! k p0 `. w1 d2 C - )
2 z$ |0 l) B, w% W% r: o: T7 |8 Z1 O - (setq pt3 (list x3 y3 z3)), g' f- W+ }9 T5 S
- )
4 ]: L% f4 Q- a: | - )4 f+ f! X. i4 U" @4 l9 s, ?
- % E1 C: c. J ~' a) C5 f, v
- (defun ver_pt4 (ptype)
7 ^0 k/ N3 X* e2 U* Z9 E' K - (if pt41 F. c$ o5 S; q
- (progn, {: [. V& l: A. K' Q6 v
- (tempmod pt4 13 ptype)& ?9 a( M9 O2 r8 s: h$ \6 {
- (entmod elist)7 r7 }" @: X. I" y% Z2 ^1 ?/ C
- )
$ p, v* p O4 m& Y2 I! e* r - (setq pt4 (list x4 y4 z4))( O+ W3 D2 S, A7 W9 T/ O
- )5 S+ f& V$ a! N7 x& n% w, G! ~
- )
7 ] A8 ^" f: N9 c9 X - ;; Xline/Ray
; t/ G' A# I! g - (defun ver_xline_pt1()
* q1 g; G2 [* K' [$ |5 H - (if xline_pt1. k- a: r" [8 I( O* j5 K
- (progn
. \9 }7 {, g) k5 S - ;; convert to WCS., J3 h; m% D1 @& t$ U" o. _6 G/ T
- (setq value (trans xline_pt1 1 0))" _) y: T2 ^3 Y# a/ P
- (setq elist (subst (cons 10 value) E1 r0 u( _! t* Q
- (assoc 10 elist)
. y7 ? W$ ^& K P - elist
3 r, p( Y7 S$ k I& F) }' @* M) M - )% X: c2 r% C9 F% ^
- )
2 ~4 k7 f: T W6 Z% r* t( k - )4 X' ]- [2 p% S4 _/ r
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
; [( W$ Z0 q' I - )2 i. c4 T( q% {8 j2 J% L
- )
- j4 q% y, r+ @7 {& W; Z
! `4 i8 v3 h5 Y4 e, L- (defun ver_xline_pt2()* c# { P3 w# g7 j0 s/ \
- (if xline_pt2
! J j8 X) E: w; s; o: c& Z - (progn
' D/ q( u+ S- |' E. z$ X, { - ;;
' x* o4 V8 `) |0 z @' C& `5 y - ;; Calculate new Direction Vector WCS
# ?9 E" m. E h; n+ v - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) )): k5 D. g$ K; I" G! f
- (setq temp_dir (trans xline_pt2 1 0))
2 N( ^* ]- Q. [$ H9 l - (setq temp_dir_x (car temp_dir))5 A+ W, t. l. I# g: ?8 H/ M
- (setq temp_dir_y (cadr temp_dir))4 ]% a9 B1 y7 [( |4 p8 S- |4 w
- (setq temp_dir_z (caddr temp_dir))
1 x+ [% |4 {' J! T ~: Z9 q9 _+ M - , i: p W% K5 @! f& l$ X, J
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
& C7 N0 g* r- W - (setq temp_xline_x1 (car temp_xline_pt1))2 J6 X& I9 ?+ @$ H W
- (setq temp_xline_y1 (cadr temp_xline_pt1))
3 b& r! O( U! x3 [; o8 \5 q - (setq temp_xline_z1 (caddr temp_xline_pt1))
- f7 d- s: \" }/ q \) l - : q+ o- a: @3 X& n* R' Z( k
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
9 L8 `4 y2 N" ?& _" ]1 m y1 T - (expt (- temp_dir_y temp_xline_y1) 2)4 _& d3 _; T0 k( Z8 H
- (expt (- temp_dir_z temp_xline_z1) 2)" ?( e0 y* \. ~) }% F4 D
- )))3 {8 _) x" ~7 t6 w4 c% J
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
2 _. w6 ^7 V3 m( r. W - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))! \4 X+ A: v6 c7 }+ q
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
; D* k; s- Z$ ^& `- M - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
8 z( T2 @& ~ G. ? - (assoc 11 elist): Z5 O7 V/ ?+ S: V* x3 X, `; ~
- elist
' v+ c. X p! x8 g' z. @ - ) }. [9 r3 g! [& v T
- )
; c, k4 l" M. { {$ H - (entmod elist)" p' i% j: M: w
- (setq xline_x2 (car xline_pt2))
& @ O4 R9 E+ y4 y - (setq xline_y2 (cadr xline_pt2))
* C: O- x" M# ]- f( p- n8 n5 C/ h0 r, y - (setq xline_z2 (caddr xline_pt2))
3 V* z: G0 T& q+ h
' }3 }5 d$ N3 W& z' w/ o
! [4 d" z$ C ^) Q6 m3 K: m# |- )
& ~' O) r: ~% y& j. f - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))/ J) a( H# k9 W0 `7 F+ Z% B4 i
- )9 [# J+ h5 Z5 {+ G9 ]* E
- )
+ U+ Y7 |$ ~2 ]- g. g; @; [
' g8 {6 Z X8 V# C; ]4 H; ^- ;;
- h5 ? a! C: S1 [; y' L4 P1 l! N - ;; Common properties for all objects$ B9 K% ^+ z0 T0 |
- ;;; q. F& e5 m. ~9 G. r% U# [: m
- (defun set_tile_props ()
: k: n, P8 u+ C! v7 q" T - (set_tile "error" "")" u( Z' s/ Z J0 O% M- e& @0 t
- (setcolor)
7 {+ [ N& w/ ~! i3 F: b5 r2 Q3 v# A, f - (cond
2 [; Q; |5 i9 Q. m0 ^ - ((= eltype "BYLAYER")
( G9 Z. [ I! @; J$ i - (set_tile "t_ltype" (bylayer_lt)))4 \" r8 R1 s9 C1 f
- ((= eltype "BYBLOCK")
) W* _& {4 ]; k) E: ]! u/ R - (set_tile "t_ltype" "BYBLOCK"))# x$ E$ z9 \$ U/ a9 g
- (T (set_tile "t_ltype" eltype))
* v' x& N/ m; l9 Q0 Z* ? - )# z' c- ^. C1 O, p# _1 C4 z
- (set_tile "t_layer" elayer)( F8 \+ e- t' i9 u9 b7 N
- (set_tile "eb_thickness" (ai_rtos ethickness))
0 h( q' S8 H6 M1 X% A! ^9 ] - (set_tile "eb_ltscale" (ai_rtos eltscale))
) Q5 R& b- d# } O- X1 `* f7 I8 G/ o ] - (setq which_tiles (ai_common_state etype))
6 @6 c$ z9 \+ A3 Z - ;; Disable tiles if need be...5 ?- {$ T' D- T/ Z
/ O' k! S$ t ^8 Y/ L7 B# L- ;; Layer Button and Text Field5 T, p- f+ C( a) M, k) i v! |
- (if (/= 1 (logand 1 which_tiles))
6 O4 `6 j' F1 V& l - (progn
1 o, ?: m* B3 Z - (mode_tile "t_layer" 1)8 k4 c, O7 J1 p8 k8 W# r* `
- (mode_tile "b_name" 1)
% A- O$ \$ t" F% {: r8 u - )& T6 s7 f1 T/ Q
- )& {9 N$ x- F$ {" z9 w/ ~4 Y }# s) y
- ;; Color Button and Text Field
t) c' w7 i, ~8 g2 t - (if (/= 2 (logand 2 which_tiles))8 d* ?( t% ~' A% Z) ]1 t
- (progn
6 f: @0 r6 I1 Z6 u - (mode_tile "t_color" 1)+ H4 V8 O6 E4 l Q+ B
- (mode_tile "b_color" 1)
7 I5 w4 L/ \) i \! v. A. y - (mode_tile "show_image" 1), T; D1 _8 b8 k1 ^$ s
- )4 E5 A C8 D. S2 D4 j+ P
- )/ A- Q/ [$ V7 ~& T) p) E& ^, P7 c- j
- ;; Linetype Button and Text Field |; N5 l* E l2 g
- (if (/= 4 (logand 4 which_tiles)); m& v8 P5 G( G D
- (progn! H' J6 I4 @2 Z1 f C( n5 ?( N
- (mode_tile "t_ltype" 1)5 b& J% n- ~* r! m$ i5 a/ Q6 H
- (mode_tile "b_line" 1)% {# A% ?5 Q- B/ K3 K2 X) i
- )
" \+ g: u+ a9 z/ e" l/ R5 F! ? - )! x7 m. }6 g0 [( i9 o: }* h: w
- ;; Linetype Scale Edit Field
# a, _) R: i# K% Z* J( }. U - (if (/= 8 (logand 8 which_tiles))3 `' c4 n( i* l$ p
- (progn
. T* s$ f1 {! x4 h6 i7 V - (mode_tile "eb_ltscale" 1)9 N) C$ N6 j+ G( m3 i3 B0 ?3 d: x
- )
T5 t9 p3 X0 s4 B( t u# t! G - )! k9 O X7 L f1 H
- ;; Thickness Edit Field.
* G g/ Y0 G1 ?: E( g& J: P( m - (if (/= 16 (logand 16 which_tiles))
+ h; W6 ~/ ^2 Z( y* C9 g0 u - (progn
3 u0 G& F; I" z# T1 a - (mode_tile "eb_thickness" 1)
4 b+ a" [" h' B) q4 i! B. T# ~; y - )' `9 d& h# O6 W. v# \+ _7 J
- )
" C0 y6 d( Z1 `$ m - )
- ^. y: {' y$ G, h - ;;. N7 L" v6 k z& L- l& M; p/ \
- ;; XYZ Point values for all enitites
6 c4 Z+ q" b& H# T! S# h - ;;+ A3 F. w! M( Z: Z- V/ C N2 ?
- (defun set_tile_pt1 (ptype)
2 e! _6 H0 y$ s# O - (if (= ptype 0)/ l9 i7 `' i5 m x3 z( J" K* @
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))9 G: U6 ]+ |1 N9 Q& z
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
5 Z W3 ]' I N8 @0 W0 I - )( \. n! m' n, P, X+ V
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
' I' [( a% @/ y1 h1 b& v2 m7 U - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))9 }& O: m9 c8 e: I1 Z% {- x
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1)))). J4 D W: V* n: y3 q/ z$ e, K
- )
) z* A+ `* k6 ?( d8 u* F3 F7 Z - (defun set_tile_pt2 (ptype). {. R+ X. d! w* z
- (if (= ptype 0)( j/ z" S& Y( x1 G; J, I1 N
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
f5 t9 I* J' P- A$ O - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
1 w0 S; N0 y+ M, ] U# e; U - )4 z7 w& h6 N3 [7 F
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
}0 d+ J6 `: ^# u - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2)))), e! g9 m j! Y3 R
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
3 U' J8 L1 l3 H - )0 b* M: z/ I4 v# {/ }
- (defun set_tile_pt3 (ptype)
2 X% g& z. c+ }; e2 `5 i8 o - (if (= ptype 0)
3 U9 p0 c" e: n, l - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
" O' h: x$ n, l3 G1 I8 ]6 Y% c - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
4 G r5 }- b8 V' f9 S - ); m4 U4 h8 {' j u# M
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
: B* ]4 d1 S, h3 [( p - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
. d G3 r/ C/ Y, v% g - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
z& l0 P. p, x' b5 ^/ ~: n - )9 ~, ]- X* j+ ?0 l
- (defun set_tile_pt4 (ptype)
$ k B ~4 A- D# o' y: u - (if (= ptype 0)$ V) b3 v9 j7 z& K
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))% ~ c* P/ D) j+ ]( \7 s
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))1 U5 p+ q- K' S: @
- )
; K, J" i# U/ j# n$ v0 \ - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4)))). ]3 R/ r. }) x" b
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))' Y6 g: t% n2 e( y" q6 U
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
3 _' d/ U& K7 q - )
: ?" r* a C1 w& K3 Y - ;;
: d8 \! e; K# z# m+ k0 U$ ? - ;; Xline/Ray7 q" _2 s+ U0 [
- ;;
) }% V) A5 o) n2 ^. Z. b - (defun set_tile_xline_pt1 ()# c X p+ e0 t. v2 b* ~" x
- , h. l& i& }8 M
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
3 W9 ?; h2 n& o A. S8 x - % \5 j% e/ S0 d4 R8 J; c
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))4 r' G7 p5 U2 {+ s6 E7 A
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
1 r' N4 |7 ?( I- R5 \ - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
! t# o8 T' I, H* a g. T0 ]+ M4 Z - )
+ i: _7 A. ?% _9 V! f - (defun set_tile_dirv (): u9 o7 c6 K2 u6 f+ \5 R
- ;; Convert 11 group to local UCS (displacement)
% Q+ K* h( X# @+ g( Q/ w - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))$ i% s$ y8 w' Y/ a+ P$ ~# s
- , n( _ ]- j" J) u5 h/ F
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
; I9 Q; v/ U B7 Y: r7 } - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
B' \# Q7 N$ ?2 ?& |$ S" m& `( B' S - (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt)))). G$ t. v3 k% |8 [- t
- )
N) H7 L7 V" r s+ z) Y - (defun set_tile_xline_pt2 ()4 J( |1 a% s" H
- (if (not xline_pt2)
3 {: [; `2 B4 b0 Q( v - ;; Initial second point is Root Point + Direction Vector3 Q4 g+ f$ V' }+ p6 j
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
1 }9 R% m+ p) k4 g! N1 f( ^- ^$ b - )
: L! v8 j5 Z$ D0 u3 a - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))1 b# z$ G9 j) S: N
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2)))): m/ l; f j2 i9 U& V- l
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
4 m, e" b6 C* S( [: g6 U - )
: R! Z$ J; w& z0 _7 r - 5 a& o6 e. x8 N
- ;;, B& U! |9 O, C8 j5 C
- ;; Handle for all objects
6 m/ ?- ^! w: Q0 U- [: q, J3 k - ;;9 n2 c/ c. a" \! @
- (defun set_tile_handle ()
& Q# X; h+ j2 _! ^; O2 V - (if (setq hand (cdr (assoc 5 elist)))/ V/ z' c4 ? J) M& |" r O2 U
- (set_tile "Handle" hand)
! a' |4 @1 ^; s2 j1 I - (set_tile "Handle" "None")/ V3 y, Q5 L, s' q( P, J
- )
, q; H- p1 u: Q - )' \2 s0 X* o' H( x" `- ~
- ;;8 @5 k7 N+ f% }# U# _
- ;; Radius for ARC and CIRCLE( ]9 {7 [0 L/ a; y
- ;;! m6 [5 T2 B- t- J% }
- (defun set_tile_rad ()( h K" B) M2 c2 v5 g
- (setq radius (cdr (assoc 40 elist)))4 |, H, C% a( U+ ^3 F# m. D! [
- (set_tile "radius" (ai_rtos radius))! [0 c7 I/ d0 B2 i5 C7 G
- )
: b7 P$ D1 b: Y* ] - ;; h; W# p. H' P, t" F! u' d
- ;; Start angle for ARC) s7 G% p0 N7 y1 u$ X
- ;;
L; \! {3 q& B7 ]) E - (defun set_tile_stang ()* g! ]7 v- x, [7 @ X# L8 w3 }
- (setq st_ang (cdr (assoc 50 elist))), J/ n) P' z) y3 z. W# X0 n' C6 c
- (set_tile "st_ang" (ai_angtos st_ang))3 `0 Q' q/ P, n+ h/ `
- ): w- V/ }% R7 Q5 ]# T! H; ]8 ^$ ?
- ;;$ E; R9 @* x1 L7 u c: V
- ;; End angle for ARC4 L" ~. c+ s/ c+ G/ R
- ;;5 C( n7 ^9 x7 G. G$ K
- (defun set_tile_endang ()- X5 p X3 s: m5 x1 }' a
- (setq end_ang (cdr (assoc 51 elist)))% M W' e6 j& _
- (set_tile "end_ang" (ai_angtos end_ang)); G& H3 G2 G8 @
- )
~- S9 D3 G. p$ Q9 I - ;;
: Z& G' }" q" x2 U" w( I) s. q - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
) Z" C! d b% {( b3 l+ @4 M1 r - ;;. T/ J. H/ J7 ~, ?5 A% n1 b
- (defun set_tile_rot ()
+ [2 ~% b: f1 ?0 F - (setq rot (cdr (assoc 50 elist)))
5 ^0 V, ?; Y2 N3 ^) b* U - (set_tile "rot" (ai_angtos rot))
n, m/ o' o; p+ U5 N5 { - )
2 b# e/ v9 l4 Z1 S - ;;
( |( X( }) N2 z& a0 ~ - ;; Height - Text, Attributes and Shapes: @5 Q. J6 h' e* X' s% S' K
- ;;- Q4 u" u# ~ k+ L1 H2 k3 O
- (defun set_tile_hght ()
1 F$ k: F2 [7 `$ f" Y% b! ~! N - (setq hght (cdr (assoc 40 elist))) c; h; J! q! z& G% U0 t+ D
- (set_tile "hght" (ai_rtos hght))
3 M; Z& {7 \ n' s( l% c - )
" G4 k4 M) a8 P - ;;4 t) W1 i0 X7 [5 p/ Q$ |9 R
- ;; Width Factor - Text, Attributes and Shapes' Q; ^/ A( Y; a, B+ _0 i# ]/ o
- ;;
& v0 w' o/ n: @; f( H7 ?, G+ q - (defun set_tile_wid ()$ q/ p7 { ^# a
- (setq wid (cdr (assoc 41 elist)))
$ @- l, w6 S9 p - (set_tile "wid" (ai_rtos wid))
) ^/ w4 c$ X0 ?4 ^: e4 h - )6 \" ^ `3 ? M# d0 P5 m P2 K
- ;;) y7 h( _+ E+ E( D' a) l
- ;; Obliquing Angle - Text, Attributes and Shapes: N' h8 G$ M0 m; s9 B/ z
- ;;2 c% I8 e6 O) {$ _
- (defun set_tile_obl ()
- M2 d3 ` q, D$ Q2 x. A5 z/ c - (setq obl (cdr (assoc 51 elist)))
! N" b t9 c" ^: t7 J8 i" e2 [3 w - (set_tile "obl" (ai_angtos obl))
% z/ U- e. N& H4 _* W8 D - )( G* b7 J' _7 o9 W; e
- ;;" Z! ?6 o1 O" `4 p2 O# r
- ;; Text string; ^* L+ ]8 K+ N
- ;;9 J4 d) b6 W$ l" y8 \+ T
- (defun set_tile_text ()6 Y7 `8 q3 Z' [
- (setq text (cdr (assoc 1 elist)))
2 W l# \+ y0 \ - (set_tile "t_string" text)
' ^6 p& r4 p* Y" Z6 x& H - )$ w# d' p/ a4 i. O
- ;;
' [" g6 f# u" ^ - ;; Attribute Tag
0 U& x! s5 Z3 Z) [; {$ K - ;;. ^' }) A; p* L& C
- (defun set_tile_tag ()1 Y( ?2 r3 [( K! @4 ]. f& I
- (if (= etype "ATTDEF"). k, b" D( c* J: C1 x
- (progn' n) a- v& J( k# B- @0 C
- (setq attag (cdr (assoc 2 elist)))
* a6 m0 ?& {& G - (set_tile "tag" attag)6 u, w1 _0 X, M$ X
- )
8 q# B I* l. ^5 e, t% i - )
9 Y4 T! @: q4 L1 ?) j1 d8 i - )
o$ o# ]# ?, ] - ;;
' P* j: B }4 i) x6 j( B - ;; Attribute Definition
) r1 @6 A" `; L0 w2 f, T( q2 F, r1 f - ;;
% D6 R) L4 K# C P6 X- J! _ - (defun set_tile_prompt ()& G- v/ \ R3 U! P) w+ U; l0 W9 _
- (if (= etype "ATTDEF")
5 j2 C* m! b8 [8 D - (progn l* }( B4 H s- C
- (setq atprompt (cdr (assoc 3 elist)))- I, g1 W/ w# g8 g+ i' A7 b1 |, s
- (set_tile "prompt" atprompt)
$ u2 ~! ^/ t7 q! n) \ - )1 T: b0 Q, s& P' i9 Y4 h. y3 s' q
- )
0 Y& p$ f, R$ f - )
3 D; }" y. {: e0 P* h' t - ;;: @+ x* r0 ?, \! x3 b9 q5 [$ e! g
- ;; Justification setting for Attributes and Text. Initializes
' d$ f& g5 T8 c4 ?' x9 @ - ;; popup list box
. P1 S2 I; W* n, @ - ;;
7 O- i0 N) w- q& e% m - (defun set_tile_just ()% @! q8 k5 Y& N9 _, p
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment7 i, }) S* K4 ~
- (setq va (cdr (assoc 73 elist))) ; vertical alignment) C; [, Q- }- @) o$ Z
- (setq ha-prev ha)
) E( |- W) Q1 B! v! G% ] - (if (= etype "ATTDEF")
9 E( y/ D1 e: _9 s$ A - (setq va (cdr (assoc 74 elist))) ; vertical alignment* f g# f& }! d$ C! _5 B0 E
- )
* z8 S$ H- a4 k1 S4 i6 V. q7 i+ G - (setq jlist2 A( h& y. h1 t2 K
- (list "Left" "Center" "Right"7 U. `2 s: \; a
- "Aligned" "Middle" "Fit"
1 [7 D C5 U) \' q; U) d2 @; H3 { - "Top left" "Top center" "Top right"
+ C i$ e. c+ q% Y5 X* |* a. X) G - "Middle left" "Middle center" "Middle right"$ s% J5 e$ ]6 h0 B
- "Bottom left" "Bottom center" "Bottom right"
: a, c5 \. F& A* b) b, _- n1 ?- @ - )1 `9 J& E4 n2 v) `6 Q) n
- )& T/ P9 t/ H, u$ A
- (start_list "popup_just")
# H. N/ S0 Q& y2 @5 o - (mapcar 'add_list jlist)
" y3 L4 p+ }% \ H% P- |, r - (end_list)4 J" B! t5 X E# L* K
- (set_just_idx)
( P. @! S6 a _3 j9 q4 R0 b - (set_tile "popup_just" (jlist_act just-idx))# q8 S' s2 |7 E. Y: P5 E
- )
7 B% u+ L5 y2 o( s5 ]1 c6 L3 ` - ;;+ f: y8 h" ~. w& v
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
G6 ^. w9 P9 L6 h& n y. j - ;; box.& r$ H: l- q4 Z% ? l% z+ ^0 ?
- ;;
* g+ t2 h% z4 A - (defun set_tile_style (/ sname style-idx tlist)
' a1 M% H' B! f5 K4 l) @( z/ `1 G - (setq tlist (tblnext "STYLE" T)
2 j" D {5 R7 l1 g - slist nil)& I1 f5 G, h- T- O* ^$ R
- (while tlist
/ L% H% [# s. c - (setq sname (cdr (assoc 2 tlist)))2 _% b0 [+ r4 g; n5 F7 j
- (if (and (/= sname "")" N+ F: J8 o9 c3 k! G% I& D
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))
( G5 G* w5 Z* g$ f, N u; s - (setq slist (cons sname slist)))0 N; @$ a8 G9 D5 j
- (setq tlist (tblnext "STYLE")))
1 W2 \0 [% n& S( Q) D - (if (>= (getvar "maxsort") (length slist))0 w _( W8 f0 W4 d) k. y, W! @2 l. L2 E9 A
- (setq slist (acad_strlsort slist)) ; alphabetize style list
; j8 Y! _* R: A% k6 v) R% O - (setq slist (reverse slist))) ; or reverse it to put it in DB order* V5 F5 m6 ~; ~/ @: T. o
- / i; W1 I' W. x; b
- (start_list "style")) r+ Z, p v( R% @0 l+ G: Q
- (mapcar 'add_list slist)
% i' V5 H' _) I, V; f' t5 ` - (end_list)! ]$ g- Z6 U- m6 s9 C6 u
- (setq tstyle (cdr (assoc 7 elist)))" B% T2 k4 s, E; ?! _
- (setq style-idx (getindex tstyle slist))
7 e2 j8 g6 c7 d) J6 | - (set_tile "style" (itoa style-idx))
8 b2 s7 K3 S+ K' B! @ - )' \/ ?* Z, ]2 J
- ;;
; d. F# j" k" `" I) S - ;; Text and Attribute setting - upside-down, backwards* e7 e8 k {# O" |
- ;;! R' L, m7 {9 Q: d2 `% J
- (defun set_tile_bk-up ()
7 v% ` {1 ^1 Q - (setq bk-up (cdr (assoc 71 elist)))
1 ^$ J! Y4 a6 Y, L+ \. D - (if (= (logand bk-up 2) 2)
" e- M3 Q- V: x" W8 w - (set_tile "bkwd" (itoa (setq bkwd 1)))
" Z8 i2 ?, y. q4 N% ?$ X0 W0 r- [+ D - (set_tile "bkwd" (itoa (setq bkwd 0)))1 p- W6 g, C) L
- )7 j: c2 a( ?; ^
- (if (= (logand bk-up 4) 4)) U. C; @' v6 X& c* N. o
- (set_tile "upsd" (itoa (setq upsd 1)))4 e) g5 h* r6 K4 m$ m/ B/ X
- (set_tile "upsd" (itoa (setq upsd 0)))
0 F) c7 ~6 [9 o x: ` - )
) Z6 M& ]4 P3 j1 ?$ n - ). O# A. v( o; n0 y& V( D2 i
- ;;
: }( r. o7 z9 ] - ;; Attribute setting - invisible, constant, verify, preset; e% D- R) X; w0 \; r" r
- ;;( c. L, @% R- l- y; X) n" h7 i
- (defun set_tile_icvp ()7 N1 o7 M3 ]" e' j. G% |
- (if (not (setq icvp (cdr (assoc 70 elist))))
2 l2 E7 {, C5 ^( s; j - (setq icvp 0)
) t: L: r4 d4 S9 }! i; K - ), o, e# N" E5 B& Q# K
- (if (= (logand icvp 1) 1)
( R. ]+ g* D } - (set_tile "inv" (itoa (setq inv 1)))/ N$ Y9 J% h; R$ [5 Y# @5 R, W- c9 i
- (set_tile "inv" (itoa (setq inv 0)))) ?6 V# @5 q9 g6 _0 B
- )
; P. C' \& @ t- n& M; G - (if (= (logand icvp 2) 2)
5 ?4 f. [/ L; s/ k- w - (set_tile "con" (itoa (setq con 1)))" k% f& w+ p$ u
- (set_tile "con" (itoa (setq con 0))); {" ]9 }4 ?: H9 p5 o% I+ F- w
- ) G. K H) O8 Q, ]
- (if (= (logand icvp 4) 4)
6 C. c: N1 B* ]6 Y7 Y - (set_tile "ver" (itoa (setq vfy 1)))
0 j" i. T _1 ]" |0 K - (set_tile "ver" (itoa (setq vfy 0))) \0 X/ h6 p% t$ ?! j
- )$ k/ i+ v; l" G C# k; ~! X. X5 M
- (if (= (logand icvp 8) 8)3 [0 y0 j5 a$ m& i
- (set_tile "pre" (itoa (setq pre 1)))
- \$ u2 \3 a7 _0 I7 |* F) H% X" g; {: d, } - (set_tile "pre" (itoa (setq pre 0))): \& c7 G3 }, b5 l2 V0 O* m) o
- )! ]3 P0 R6 ~" l( g8 j5 ?
- ), C3 A0 s, A; l+ }5 @4 K7 `
- ;;
G' y) h! _, V - ;; Scale factors for block insertions3 R) e+ x3 h, R( A
- ;;
6 Z/ ^' n% O( e$ ]: P& e - (defun set_tile_scale (/ temp)
4 x6 j! D5 h) l6 j - (setq temp (getvar "LUNITS"))
, L5 }) P" X7 s- _+ s- v - (setvar "LUNITS" 2)- L6 z9 Y: z- v& r
- (setq xscale (cdr (assoc 41 elist))), ?7 p) E& x" r4 A0 j
- (set_tile "xscale" (ai_rtos xscale))
! P+ r8 T) l/ W' r1 G8 [. q - (setq yscale (cdr (assoc 42 elist)))8 z s' c3 H; L1 ~; N) G) }/ y
- (set_tile "yscale" (ai_rtos yscale))/ `( M& I* |/ l: R
- (setq zscale (cdr (assoc 43 elist))), f" q& Y4 F1 n( C8 g( C
- (set_tile "zscale" (ai_rtos zscale))
! B8 J( r0 ^, u3 H: S* V - (setvar "LUNITS" temp)
0 l+ x# k; _( a; ?2 o$ u0 s! J5 H - )
" Z: Y4 O6 U" c - ;;' u) V1 r% p# F8 N" ~) ]$ Z: x" L) X, W
- ;; Rows and columns for block insertions
1 U- ]6 q Y" l+ w5 D, N7 t - ;;8 X& |. _7 I( y# Z! ]7 U. z
- (defun set_tile_rc ()
# X* _$ c m: d% ` - (setq columns (cdr (assoc 70 elist)))
q# V, N' } v! ~& h! j9 `, s - (set_tile "columns" (itoa columns )): @" v8 s+ k( x7 e) h6 z1 z, m, B
- (setq rows (cdr (assoc 71 elist)))
0 h* q0 I8 z( o8 r9 Y - (set_tile "rows" (itoa rows))8 a$ S# M6 N) c/ P
- (setq col-sp (cdr (assoc 44 elist)))* `$ b2 P. z! x0 O3 m' Q& t
- (set_tile "col_sp" (ai_rtos col-sp))/ [" |6 C8 r0 n W1 ~- K* @! T
- (setq row-sp (cdr (assoc 45 elist)))" p0 J/ e2 y, _
- (set_tile "row_sp" (ai_rtos row-sp))
8 Q. @& u7 `( O - (if (/= hasclip T)
5 V4 x" [, v% f# l2 j - (mode_tile "xcliponoff" 1)
6 O* p4 p d* w. } b. ]# R0 {* X4 N - (set_tile "xcliponoff" (itoa xcliponoff))
; f7 d. w& U y4 Q* u6 o) R! i) x - )
3 q# o. G! ? _4 I% j" e - )
3 v9 m( A9 e. ~8 b9 N8 C - ;;
4 y: U! ~ N, m. j, [% P* z5 b+ P - ;; Invisible edges for 3DFACE2 Y! Q/ X# c& J8 W$ c0 Y
- ;;; }0 P7 O$ H2 u( @7 L+ i
- (defun set_tile_edges ()
3 U* Q4 x# a6 O5 \0 O9 O' j1 O) t - (setq f-vis (cdr (assoc 70 elist)))
; ^ K$ ^7 F/ z - (if (= (logand f-vis 1) 1)5 P, Z2 U$ U8 V- l3 b; h$ l8 p
- (set_tile "edge_1" (setq edge1 "0"))# {* [2 ]0 L, t) a! B
- (set_tile "edge_1" (setq edge1 "1")), z) X& V$ m% w& x
- )
: e+ x8 r3 s0 k [ - (if (= (logand f-vis 2) 2)
9 J# j6 e: m- H; F2 s W$ q - (set_tile "edge_2" (setq edge2 "0"))
, J( f1 ]% @ w5 _, `% q - (set_tile "edge_2" (setq edge2 "1"))# d0 u6 m; E$ `% S
- )$ b! I+ u- J% j0 R- w- |
- (if (= (logand f-vis 4) 4); |, N( b: \8 [ w
- (set_tile "edge_3" (setq edge3 "0"))
) C8 y u& x( X& K- o* g4 N - (set_tile "edge_3" (setq edge3 "1"))4 m% U/ i ?7 C M
- )+ r1 @+ Y/ l5 ]$ j, j4 A
- (if (= (logand f-vis 8) 8)
9 {% M: F' u( a) O: B, v - (set_tile "edge_4" (setq edge4 "0"))/ {7 y, w$ T% p2 `5 y0 d" g
- (set_tile "edge_4" (setq edge4 "1"))
1 W! J# q0 X; c1 w& V3 m/ m0 } - )3 J. @! x- | \ H; j: h
- )
- s, s* H0 p$ j; M" D4 }! C - ;;' v% y' K7 a. D+ Z
- ;; XYZ Point values for polyline vertex: ?- G2 k- U: S$ C
- ;;$ i8 x) g# G" L1 ]! f3 n
- (defun set_tile_vpt (ptype)$ T; ^, F! w9 b i: J
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")5 J" z w' _0 G) b) B# R! R' x4 c
- (progn
' c2 `0 ?( n! D - ;; ctr is 1 based, vertices are zero based.
" ~5 D- o7 l y# F. W& f - (setq vpt (cdr (getLwVert (- ctr 1))))
# y8 ~9 \$ r+ ?' ` r6 a: L# M - (set_tile "xtext" (rtos (setq x1 (car vpt))))
- l+ K y& m8 C' l - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))" y; ~( k" E1 _) B; G/ l, k
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))# T P* A- F% p& {5 J& b; M
- )) M; u" l4 f+ z4 G: @ Y
- (progn# [8 \# B5 p; b! x% h, e4 b
- (if (= ptype 0)/ R1 |7 E+ Z9 c
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))& J' C. K. S5 F3 n+ a4 o
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))3 A+ K0 R. o8 Q2 K
- ); U0 f( V& u" u( P
% X+ q7 S; ]' w/ P- ~$ ^& }' h3 D- (set_tile "xtext" (rtos (setq x1 (car vpt))))
P* ~1 a" G/ K" @ i - (set_tile "ytext" (rtos (setq y1 (cadr vpt)))), N, D2 s$ Z' p& u8 T( S
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))1 k- W0 o0 C: F
- )0 l! a$ M' z5 K @
- )
9 Q- R8 k2 q. ?- g - ) F2 h( } u6 Z1 M) X- b, h# R
- )
- W6 _" X: P$ w. _- z9 w - ;; This is the equivalent to doing an entnext on the heavy weight
% |" U7 C8 `$ S# T% r - ;; polylines. The hard coded '4' below allow stepping over the5 l3 }* ?3 u3 H4 _, G; g
- ;; 40 41 and 42 group code information. The while loop finds the
) v% a: T \: F - ;; first vertex which will be used as the starting assoc in the+ D; V) I9 K$ ~% j* B* R2 h/ r7 w
- ;; call to nth.
9 l! t, |3 j& P5 E2 ^! R. l - ;;
+ ^' Q0 {4 i! n8 h" m, H - (defun getLwVert (tmpctr / count tmp)$ ~' f) d \7 d( P: |8 D3 i
- (setq count 0)
- p+ o; s- l) w( m - (while (/= (car (nth count vlist)) 10)
; v5 n, A' |) S( P4 ^ - (setq count (+ count 1))+ L2 `/ B& i& q' Z- }( c/ Q- a
- )! Q" L4 z9 E2 z' Y# s. e8 O
- ;; If the counter reaches the number of vertices,0 c" V$ J) {3 N, o
- ;; reset ctr and tmpctr to zero again.
! \, D3 {! S1 `5 e: L7 q - (if (= tmpctr (cdr (assoc 90 vlist)))* ]" f S: E/ i8 y2 H4 A
- (progn+ p- w7 z% |$ i: V9 z
- (setq ctr 0)
, d* e/ ]) P0 m, [1 f - (setq tmpctr 0); ?0 d1 [+ O7 ~6 m! F
- )0 _- N& v8 n4 h% S! v) n0 x# v
- ): a3 m# O, G/ K8 g& c3 S
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))
7 i$ W9 a" R; ^ - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))# `- [6 Q2 W; D$ |; t
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
5 ?% V$ C P8 K! g - (setq tmp (cons 10 pt1))
- H2 ?) q' a2 P9 ]6 u" {2 g - (setq tmp tmp)# l* S. X7 A Q( I2 _
- )
/ ]4 F D: ^/ S7 q% \9 D - ;;% ?/ j8 g8 M; g* D) U
- ;; Set tiles for Spline properties. If the spline is rational then we
+ ~" w. O1 \. h- }/ ] - ;; need to display the weight values of the control points, so set9 K8 y3 i6 `: `. D% i
- ;; flag to 1.7 P& t& k! v0 w5 I6 @9 \
- ;; 1 = rational spline
8 j/ ~: b j# \% E% r ^ - ;; 0 = non-rational spline/ D% b1 C; M( S1 r, h, k* m
- ;;
! x9 e0 ^! @- x' Q - (defun set_tile_spline_props ()1 `& o) ]4 `. a9 y: b$ p
- (setq rational_spl_flag 0) ;; initialize rational spline flag
7 Z9 b! q' o, N, G+ r% ~3 X - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
( O+ m) ^( \. O a" p/ q - (setq bit70 (cdr (assoc 70 elist)))
$ m3 b" [) K! K Q5 f! o- J - (if (= (logand bit70 1) 1)
# i X: C) O& M% O/ B' b* G - (set_tile "SpProp4" "Closed")
) |6 j% C8 l1 |% x9 g0 K" z" l. i4 { - (set_tile "SpProp4" " ")
2 j; A5 d0 N; T7 z - )
9 J' h9 i4 d& z7 ] - (if (= (logand bit70 2) 2)1 A+ B6 U0 a8 l- r
- (set_tile "SpProp3" "Periodic")
5 S9 T1 g9 `, z! ^ - (set_tile "SpProp3" "Non-Periodic")
$ ?( Y1 R- a% q# X8 s# s# u) V - ). ]( ?* y- R$ U6 z/ |- B# {
- (if (= (logand bit70 4) 4)
1 G: @. t2 Q) K& q& a S4 g- t - (progn
, @' l& o$ r) A+ `2 Q# K" D - (set_tile "SpProp2" "Rational"). v0 Z2 x9 g2 ?5 e3 ^ Z$ d0 k# j
- (setq rational_spl_flag 1) ;; this is a rational spline" R- }7 ^9 y$ y/ i
- )7 p d$ V; p; z: V' `
- (set_tile "SpProp2" "Non-Rational")
; M) _; L: S8 C4 F* q, `7 _ - )! L$ m) d; h! M7 ]
- (if (= (logand bit70 8) 8)
. e2 N, F. x: [8 j+ t - (set_tile "SpProp1" "Planar")
; N3 H5 D: }& X - (set_tile "SpProp1" "Non-Planar")
: X. k( @0 e- ?! u9 R& c - )# M% ]' Q8 @6 Q$ l! H' w! ^- r
- (if (= (logand bit70 16) 16)
4 K4 p) g! u, n, K - (set_tile "SpProp5" "Linear")1 H: g' B8 M5 Y: z' ?* i
- (set_tile "SpProp5" " ")
6 p- u6 _6 K4 U8 S) Q" Y5 W - )
5 l, h, d0 T6 o& B- g5 ] - )
$ E# z* [* F3 }3 y - ;;
* A. ?8 h9 \- W/ f' B; a - ;; XYZ Point values for spline points4 K0 S: x! g2 ~
- ;; Need to account for WCS/UCS
* a; B6 j$ P# X( C - ;;. L) @, I2 D8 K# q) ]
- (defun set_tile_cntl_pt ()# y0 E) ^* x1 B* Z7 E1 y! `/ G5 }) }
- (setq cntl-pt (cdr (assoc 10 elist)))
( f+ @/ n8 m$ b( E) n( T - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))- R( D3 p" g* g- D5 [
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
/ S4 w2 c0 h0 z. j l/ T' O0 j% | - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))( k1 C, m# `6 w* T% H8 U# H/ |
- (if (= rational_spl_flag 1) ;; if rational spline" _' ? I( U1 a# ]
- (progn ;; show weight
! u7 v N" ~, P' ?. S - (setq weight (cdr (assoc 41 elist)))
9 p9 V) X4 h/ R - (set_tile "weight" (rtos weight))
( b: N+ \- C T4 _% M/ i% j! a( q - ) ;; else
+ q* Z& v) n4 w - (mode_tile "weight_text" 1) ;; disable weight field
5 i5 E6 O8 |& m% R" e$ J9 Y - )
, G3 |! W1 S- I- F7 A8 B - )
+ \: p. O6 g$ i' f+ G6 `$ E$ v - ;;! T7 M* \- _# o( p
- ;; XYZ Point values for spline points
3 x9 `' z% L1 ~% ` - ;; Need to account for WCS/UCS3 F# E8 x {& V
- ;;
8 Q" M# }7 O& `3 a4 o7 J5 P - (defun set_tile_data_pt ()" ^0 R1 {; b% n* ]* {; q4 z
- (if (not (assoc 11 elist))
$ L% @8 W2 M: R: Q/ F - (mode_tile "data_pts" 1)
# }' j9 }' c; f+ Y& l# G - (progn. ]$ `7 S2 r) Q p8 W/ G8 [
- (setq data-pt (cdr (assoc 11 elist)))+ a- c! X! s( ]) O0 s
- ;; display points with current precision.
1 n! R9 \) { _+ ^7 [$ o- _3 f# h - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))8 q+ ] [: l' E1 @: H8 w
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
, {) K K' N/ a7 }. y" A - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))0 f( a& C0 T2 H4 f7 v7 ^& [( E
- )
% i) c9 N6 J- W4 M9 } - )/ _9 w9 Z- ^* q3 N/ `- s, R: l
- )6 [7 L+ g: v7 s- i W, Q
- ;;0 O* J8 m$ ~8 k5 y3 S1 b, H2 }
- ;; Fit curve, fit spline, or smooth spline surface setting. c/ D, B4 @$ g- M, h6 n0 v0 D5 {
- ;;* [# u* s4 v1 r! o# J% k
- (defun set_tile_fitsmooth ()" L/ l x" G% c
- (cond7 _$ |# E$ A5 V3 z
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE"); }' ]! @8 F+ @* T$ t4 u
- (set_tile "none" "1")
) s5 q$ Q! Y; z - )
$ M, v; X( |7 _5 I8 R @ - ((= (logand bit70 4) 4)' m$ \! I6 w$ B
- (cond
- y) x" s& W; M) \& a: y) w- l3 H - ((= bit75 0), ?3 M* m! o6 J" d3 L
- (set_tile "none" "1"), s! }% H. I$ H5 M7 ?* ~' v# f
- (setq spltype 0)% c- H& `/ o5 U1 L8 \3 D
- )
4 X b) ^9 y; y! m, k, \ - ((= bit75 5)/ i$ Y' o2 J+ J
- (set_tile "quad" "1")
" e) l ]7 T( K6 A' f" p - (setq spltype 5) c# r/ y4 b8 O
- )
7 l+ [7 q9 Q0 V: l8 \! f1 {' j1 z! C - ((= bit75 6)# @3 R1 ^' m: m- o+ q( p
- (set_tile "cubic" "1")
4 R8 z0 G* Y! P4 m8 B: X2 d, Z - (setq spltype 6) L4 b' o' ?( c# z+ Q2 H
- )% b+ E7 w; O4 |! T0 b3 N' S& T
- ((= bit75 8)
7 R4 ^1 W F( d - (set_tile "bezier" "1")
7 {* ]. |/ T+ Q! g - (setq spltype 8)
3 `" B3 [' X% l5 J7 A6 J - )
' u8 B3 y M% J6 q7 I3 } - )
" y( \. u3 D: j0 L+ F - )
& }) \) `6 G! J: Y- c - ((= (logand bit70 2) 2)6 R6 V5 O' D8 F
- (set_tile "fit" "1"); X9 z+ E( {6 t3 l: B: U
- (setq spltype 1)5 s) O2 u/ ]0 t p8 M W, X' p o
- )
9 T7 \0 @. k( V" }! d% H. F - (T (set_tile "none" "1"))
& J: B8 d( O7 }/ c5 _' S - )
2 O" O0 e2 Y/ M' c0 Z - )5 s& ]' Q) z$ R
- ;;
5 {! \- X, n, i& m - ;; Closed or Open mesh and polyline setting
* u# E0 d1 }! b Y - ;;5 A) U% T. p5 `/ ^8 u8 r
- (defun set_tile_closed (), x9 h5 O2 A; `* e: `; o
- (if (= pltype "3D mesh")
3 X; }" E! h! T+ q- e: U% m3 j - (progn/ \* d+ [0 x8 t/ J. F# m
- (if (= (logand bit70 32) 32)% I8 _ L U/ s$ A
- (set_tile "closedn" (setq closedn "1"))
5 i% G2 }; i, F' Y - (set_tile "closedn" (setq closedn "0"))1 `. D% P( w6 ]; f! s
- )
- j7 \" C8 | D0 N, A - (if (= (logand bit70 1) 1)* E9 m" T6 f D/ m9 R; E; t) H
- (set_tile "closedm" (setq closed "1"))0 b- C! A \4 l2 i8 m4 h8 B, e6 ^9 D
- (set_tile "closedm" (setq closed "0"))6 }1 H3 i9 Y9 m% Z3 t) E( F
- )! z; c/ h6 J. ]* A; J- p
- (setq old-closedm closedm old-closedn closedn)
( C r4 z0 |- c# _9 p. G) i - )
, c# F$ A; k1 o% C) C - )2 j/ ?1 p7 u5 Q* _6 x2 ^5 ]
- (if (or (= pltype "2D polyline")( ^8 r2 u Y, N8 T q" |2 _
- (= pltype "3D polyline")
7 U% p& @6 N" g) D - )
" E4 [9 [4 o" }3 @( K+ x: }: } - (progn
- J- a5 a5 o( k; E. g! V" c - (if (= (logand bit70 1) 1)
& Q* z& G* H4 E2 F2 V - (set_tile "closed" (setq closed "1"))
! V8 P7 T* ?' o/ ^ - (set_tile "closed" (setq closed "0"))
- K$ R U9 e+ u: S/ V - )7 Y7 T9 e" |5 Z+ O# T( f
- (setq old-closed closed)
1 Q- G$ ~ q) Z1 J" g# X - )
, T, I* M V& z3 y% n6 H - )7 f1 V2 N" {5 }. W
- )
9 \5 a' L" U# `* Z3 S2 L - ;; Set common action tiles" F9 M4 _. N3 P
- ;;8 j6 u. \# f, k, n) G$ P3 ^
- ;; Defines action to be taken when pressing various widgets. It is called
6 f ]% X0 s2 G - ;; for every object dialogue. Not all widgets exist for each object dialogue,
& F/ {! j8 \+ g3 W+ z - ;; but defining an action for a non-existent widget does no harm.% A$ d# d* \% S( n) w* |% T9 F' F
- (defun set_action_tiles (): T- L5 L2 i- ?9 f0 W1 F4 k
- (action_tile "cancel" "(dismiss_dialog 0)")
; Q$ V& X; k2 I5 ?( N0 i/ { - (action_tile "accept" "(dismiss_dialog 1)")" }7 T6 p3 D" J9 _5 A% C! L' }
- (action_tile "help" "(help \"\" help_entry)")
- n- u( h. S5 a8 } - (action_tile "b_color" "(getcolor)"), H3 x% v% Q- L5 k& q; t
- (action_tile "show_image" "(getcolor)")( i5 a% s+ m2 e" B3 t |' v% T7 M
- (action_tile "b_name" "(setq elayer (getlayer))")/ u& Z( J1 y6 N8 c0 @
- (action_tile "b_line" "(setq eltype (getltype))")
. N+ N2 {' X& R% j - (action_tile "eb_thickness" "(getthickness $value)"): b2 E" P: d# h. Q: _! \4 I. N
- (action_tile "eb_ltscale" "(getltscale $value)")! m! f6 x [" C2 n5 O
1 c5 c6 l# G$ u1 l$ D& S- (action_tile "pick_1" "(dismiss_dialog 3)")
% r# p/ t9 R" e1 d+ {; t) O - (action_tile "pick_2" "(dismiss_dialog 4)")! d, u) n3 s- z6 u9 Y
- (action_tile "pick_3" "(dismiss_dialog 5)")4 j+ {0 I3 t) p3 [
- (action_tile "pick_4" "(dismiss_dialog 6)")
V i# B$ Z4 Q1 \# L- o - (action_tile "x1_pt" "(ver_x1 $value)")7 B4 |+ c, a# X
- (action_tile "y1_pt" "(ver_y1 $value)")
* k! w% m" v) ` - (action_tile "z1_pt" "(ver_z1 $value)")% L9 _/ E. }* w1 z2 F5 ^2 G
- (action_tile "x2_pt" "(ver_x2 $value)")
' L4 B/ e+ g7 s4 K, U) z# S: ~ }" r - (action_tile "y2_pt" "(ver_y2 $value)")
- ^/ S6 W6 b, N! T$ d& Z+ [ - (action_tile "z2_pt" "(ver_z2 $value)")
: T# F7 r+ m- {6 w5 m' N! n - (action_tile "x3_pt" "(ver_x3 $value)")0 c; H; H8 {: t* T
- (action_tile "y3_pt" "(ver_y3 $value)")% x' b4 ^- ^' h: _) z
- (action_tile "z3_pt" "(ver_z3 $value)")
0 a5 l" i" U; J* I3 K% Q - (action_tile "x4_pt" "(ver_x4 $value)")
/ g( A9 F* ^) v' s+ D6 M1 G6 A - (action_tile "y4_pt" "(ver_y4 $value)")
( v5 a: Q$ M( l( | - (action_tile "z4_pt" "(ver_4 $value)"), K4 w: q J7 e P/ o
- - J- f! w' y4 @1 x
- ;; Action tiles for Xline & Ray
~ f$ d) ]6 S5 y6 M - (action_tile "xline_x1" "(ver_xline_x1 $value)")) B0 W" _2 q, B' Y- T, W$ p. @( H
- (action_tile "xline_y1" "(ver_xline_y1 $value)")3 i `) X2 f( E% W+ S3 K
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
$ k% X4 G N4 ]+ A6 y+ X9 E - (action_tile "xline_x2" "(ver_xline_x2 $value)")+ t+ y* {" K$ T- o
- (action_tile "xline_y2" "(ver_xline_y2 $value)")
3 R4 |+ Z+ R9 C3 w% o3 S - (action_tile "xline_z2" "(ver_xline_z2 $value)")
: T* E1 I5 o1 x( k! Q! N: g! R - 7 @ [4 t+ m. ^* K
- (action_tile "edge_1" "(setq edge1 $value)")
! t* w$ I: g# |/ l - (action_tile "edge_2" "(setq edge2 $value)"): L5 D4 Q( g8 i
- (action_tile "edge_3" "(setq edge3 $value)"). Q8 K/ u1 J" ^4 h" C
- (action_tile "edge_4" "(setq edge4 $value)")1 G4 h3 i6 Q* u8 X. N8 c
/ F" Z2 m2 l! ]- y/ K* L- (action_tile "radius" "(ver_rad $value)")
: M$ _7 X, m; Q/ P - (action_tile "st_ang" "(ver_ang1 $value)")" M, r+ q" i4 T, N2 ?
- (action_tile "end_ang" "(ver_ang2 $value)")
3 o* T& C+ Y, V1 Q* [$ n* r - (action_tile "end_eang" "(ver_eang $value)")! J/ x$ a- A! j% E) m* P
- (action_tile "minrad" "(ver_minrad $value)")
$ U! y& I2 \7 M - (action_tile "majrad" "(ver_majrad $value)")- M( V/ v5 ^; F
7 r) A7 ^" ?5 \ c. [3 h& `- (action_tile "xscale" "(ver_xscl $value)")
/ c! R3 z+ u- W. R8 c - (action_tile "yscale" "(ver_yscl $value)")+ o8 r+ J& l$ |
- (action_tile "zscale" "(ver_zscl $value)")
* X7 x9 l7 G; `7 v o - (action_tile "rot" "(ver_rot $value)")
) ~% p1 A/ J8 a$ q* f# S, `& R2 A4 U - (action_tile "columns" "(ver_col $value)")/ L' n. c9 }2 j- N% e
- (action_tile "rows" "(ver_row $value)")! y0 Z. S" D; I" W& u# O
- (action_tile "col_sp" "(ver_colsp $value)")) G2 E' `- E) \! |4 h0 `% o
- (action_tile "row_sp" "(ver_rowsp $value)")
7 V. V K9 l0 G/ w
2 m. e. [$ D; _* n- J- (action_tile "hght" "(ver_hght $value)")
) K' l; L2 D; u' y* Z - (action_tile "wid" "(ver_wid $value)")* F2 ?/ G- {' H9 D
- (action_tile "obl" "(ver_obl $value)")+ M) n, p4 C% |
- (action_tile "style" "(style_act $value)")! A4 B3 s# @$ c0 @+ f! ?' G
3 B0 n# c" B) Y+ ]1 M- (action_tile "t_string" "(ddgettext)")* p3 y- [+ k5 I3 H& ~& w
- (action_tile "tag" "(ver_tag)")4 h" f# n! t x! e' r+ R2 i
- (action_tile "prompt" "(ddgetprompt)"), q, m7 W! v5 K# z7 k
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
5 v; Q$ ~, V$ m5 \ - (action_tile "upsd" "(setq upsd (atoi $value))")
. z% e' \. d& P, L3 Z - (action_tile "inv" "(setq inv (atoi $value))"): B D! t" f) B
- (action_tile "con" "(setq con (atoi $value))")
- Z- ^( Y" a1 R. ^. s) v% E - (action_tile "ver" "(setq vfy (atoi $value))")3 h4 x: d) j5 B8 L
- (action_tile "pre" "(setq pre (atoi $value))")
+ |* r2 {% h/ c' m - (action_tile "popup_just" "(jlist_act $value)"), n+ M& x" h$ z: a1 F$ A
- f9 t2 y5 f1 z& g6 N, {" P+ ~& K
- (action_tile "closed" "(setq closed $value)")/ \! @, c1 l5 s: d
- (action_tile "ltgen" "(setq ltgen $value)")3 e! I x' p4 k: E: B" ?' b
- (action_tile "closedm" "(setq closedm $value)")
1 j0 v7 T" P% p# S' k& s+ { - (action_tile "closedn" "(setq closedn $value)")1 ?2 t% e R# D4 U
- (action_tile "next_v" "(next_vertex)")
3 ^! _/ y0 ]% o9 w" n+ } - (action_tile "xcliponoff" "(setq xcliponoff $value)")
' V2 ]. l7 P& q7 z7 m( W( o" Q8 c - ; e1 G* K" Y, _# ]& v
- (action_tile "next_cntlpt" "(next_cntl_pt)")2 @: Y3 C/ Z9 O/ ?& s
- (action_tile "next_datapt" "(next_data_pt)")
% m% J9 c+ [' E7 K! a$ f
& j! Z, a9 k: u8 W5 ]- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
- e8 K9 G# K8 Q - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
+ k% t; \8 |2 s1 R7 Y - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")( t- L4 i/ g' _ l5 p
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
6 l$ t. ^, w% F4 e - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))"), o( B0 E7 W+ e# M; n$ b' @3 s9 g
U6 K0 S4 F7 Q. b2 b- (action_tile "u" "(ver_u $value)")' t0 H/ |5 O' u# ]) P+ r% z" }
- (action_tile "v" "(ver_v $value)")
7 e4 r5 q* ~4 n0 h& G3 t - )0 q N8 O5 W) h8 R$ q
- $ n( t3 T+ o0 H5 D( I2 E
- (defun ddgettext()" @/ J7 w: I$ S0 t7 Z2 C
- (setq text (get_tile "t_string"))
0 j& m X( ]% ? - )
6 k3 [8 o4 v- n
8 a5 m# N" m( [0 d. b) n; C [- (defun ddgetprompt()
`$ X$ g" c. w8 a6 B, E7 v3 R - (setq atprompt (get_tile "prompt"))
. j# Z. q/ g$ G( x - )
0 h! K. i; ?. ]: b# _ - * {) M6 J i4 X0 N q( L
- ;; As OW doesn't support disabling of individual radio buttons within/ j" c# ^" c8 }, [0 W
- ;; clusters, a check must be performed as to the legitimacy of the
5 b* Z* j$ N/ `; {& p; d) ] F+ h - ;; button pushed and reset if necessary.
) Y( Z8 n# }, t/ E! y6 ?) z0 G/ @) E - (defun radio_gaga (pushed)
% P3 `. A, D3 [5 { - (cond
7 e3 j3 C- _ i7 `; C/ b - ((and (= pltype "3D polyline")
& d* G. \2 |1 y9 ~0 I. G - (or (= pushed "fit")
; [2 X) h5 \: ^* z2 U8 K5 Z - (= pushed "bezier")
Z* R$ V& A" _& D9 I" a - )0 x8 x3 Q a J: v' Y
- )
* T2 h. {7 Q& K8 M - (set_tile "none" "1")1 M# V: I& J$ m: n9 O5 M4 b2 a
- nil
# I3 C: q- Q" A) \ - )* k' H! L8 x+ A6 t6 A
- ((and (= pltype "3D mesh")1 X0 U9 I6 x4 h5 c h
- (= "fit" pushed)
$ @# e, B- Y5 j+ z0 x6 l9 B0 G - )
9 z8 @# g, z8 ~# ^) r - (set_tile "none" "1")9 j9 g; [/ S% L) B8 B) y5 N4 z/ p
- nil
! e) ~3 X1 v! N/ X0 K/ `2 x - )
7 t1 B& T$ j. ^ - ((= pltype "Polyface mesh")
7 R: \& x% \# R# t! k g; J* _ - (set_tile "none" "1")1 W* `( A) j5 H
- nil
) ~, U# e+ a, B8 ^9 y3 f1 [, k - )
! T% z) q" F, n - ((and (= pltype "2D polyline")* A% v4 [) w" T n1 a
- (= "bezier" pushed)
% A% N1 g& R4 P, P* b$ { - )
8 ^' E+ b- \1 t/ L% B - (set_tile "none" "1")& |" e/ W0 ]' \1 Y3 }2 M D& `
- nil
^ L: X7 Z/ C: t! M a - )
3 r3 u; D- }2 V - (T)" ], N! H: C+ H' ]: k+ j# Z
- )
3 ?- X- B8 U6 g& Z+ l4 L6 t - )7 A# [% t; e& R: \
- ;;7 ^7 w. P- M0 u/ W
- (defun set_uv (type_n) q7 t2 w/ v; _. t' L' L5 Z ~
- (setq spltype type_n)
7 \9 o' i* N/ n3 s7 |4 K, R$ C - (if (= pltype "3D mesh")
+ \3 N3 B* M, P - (if (= spltype 0)
$ \, L# @( @, d( [% X! U$ c5 o1 r - (progn& I: E" {& a, W* r
- (set_tile "u" (itoa (setq u 0))): Z8 A! m( b, M" Z) A6 r; C
- (set_tile "v" (itoa (setq v 0)))
( d, j' {( U( \ - )
0 g9 q# K8 ]/ `* v( s: h- O - (progn4 W7 d+ M* `, E% {( b1 B
- (if (= u 0)
4 N, |. J$ e! J8 s! ~ - (set_tile "u" (itoa (setq u (getvar "surfu"))))
' S% S* Y" Q* I4 S# Z* b! Z8 r - )
' B0 i9 C4 F/ A1 r% t: [) P, B - (if (= v 0)
" e2 G, f9 l: M) T: d - (set_tile "v" (itoa (setq v (getvar "surfv"))))
5 G4 t; J- r& a f' G - )7 a8 \/ o& d# z, w
- )
4 h d" K; |0 l( I7 _1 c; l2 L - )) W6 F. p9 N- d {
- )# f$ e4 t) d! i( W
- )4 h0 S+ h5 _: @( ^- r4 x
- 7 V- @( s* V" u% Q, C5 Q5 @; S- T
- . L3 i3 ^, }3 }; L
- ;;; P# y8 L( I( J9 ^, N% c
- ;; Verification functions- B7 W8 B7 U9 z; r! U
- ;;9 S3 K ?; W! W2 c" Z+ Y
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or
* u: A6 D9 f- ~3 U' o, S - ;; distance value, the tile name, and the previous value as arguments." h: y" p# ^( s* @
- ;; If the distance is valid, it returns the distance and resets the tile.
8 P$ b7 v+ `2 D - ;; Otherwise, it returns the previous value, sets the error tile and keeps
& J1 a7 r( [ n. q) t7 G - ;; focus on the tile. Shifting focus to the tile with invalid value can
9 W d6 N A- F& S7 x, y - ;; trigger a callback from another tile whose value is valid. In order
5 ?+ `# o9 ^) U: O% Z& ? w+ W - ;; to keep the error message from being cleared by this secondary callback,
$ {' ?, g; a: m9 U6 E! L - ;; the variable errchk is set and checked. The last-tile variable is set) _# I( y: G: {
- ;; and checked to ensure the error message is properly cleared when the6 l1 G+ R8 m) S5 d
- ;; user corrects the value and hits return.* @0 F( z2 N+ Y! N
- ;;
* G: G# R9 q8 M" @2 `) s3 P - (defun verify_d (tile value old-value / coord valid errmsg)
- I. B6 c' r" H/ h* y - (setq valid nil errmsg "Invalid input value.")
% c4 M% S/ v" Y) r - (if (setq coord (distof value))2 @- j _- o% \* ^4 J4 G
- (progn
) u& G C6 i0 v/ _ - (cond9 b6 S' X# k* o
- ((or (= tile "radius")
: n0 V2 ~. o0 B8 ] - (= tile "hght")$ t* y2 S9 _: _' R
- (= tile "wid")# [1 p# e5 `) m; w+ |0 Q# `
- (= tile "majrad")
( a! c9 J+ i5 J7 O1 A - (= tile "minrad")
0 K* X) }# o: Y5 O! c8 r& i - (= tile "eb_ltscale")% M9 A% J6 l: a8 b/ j
- )3 f; I1 O! ]" }5 N+ a6 D. l
- (if (> coord 0)
/ G/ g: D, f. J& e) u4 W - (setq valid T)4 ~& x; d# v& w* O2 f0 F
- (setq errmsg "Value must be positive and nonzero.")
. ~2 Y, a, j/ P# e3 H - )" r* z$ A3 @8 w0 b9 u( K
- )" L& E5 |2 m( R6 E0 J( }6 F
- ((or (= tile "xscale")
5 b0 V& Q$ ?) q7 D - (= tile "yscale")2 R. Z2 B* |3 ^
- (= tile "zscale")
/ h3 ^/ C1 d, N+ v q - )
% P5 S8 k) W7 R4 U& J$ L6 l* d( g - (if (/= coord 0)! A' e% W% V7 F8 ?
- (setq valid T)
: t% s# {5 d+ y; H: Z0 J - (setq errmsg "Value must be nonzero.")5 J5 H- v( d6 D/ x2 w9 o
- )* @$ q* n+ q2 u0 ~0 }; x8 B+ _
- )8 a6 _+ S8 s" C3 P# I% m( K3 P
- (T (setq valid T))
& l1 N6 U# }9 T Y - )
/ b: |4 \* i. U' K" B4 N$ g5 c& c+ h - )
2 u) h+ Q$ Y1 X! p# m - (setq valid nil)9 d! z8 e" V/ m9 N3 B
- )
- I+ g) w+ Y, F7 H+ R- J - (if valid$ R3 R5 [( C. _
- (progn
2 ~+ `9 {8 A8 q - (if (or (= errchk 0) (= tile last-tile))
- F. t, H* s ~# M' v - (set_tile "error" "")
7 T ?- B4 b* T& K8 v8 @9 ^- i1 ^6 B - )
/ m) G3 h" |+ G# p - (set_tile tile (ai_rtos coord)). W; T( O- y6 y# @
- (setq errchk 0)% d2 k, N& ?% n2 S
- (setq last-tile tile) _7 n% G0 Y( u6 u7 F
- coord
/ D1 j& u' \* h: V s0 l1 d - )
+ j0 {5 H6 A& r3 C( y - (progn
) ~- @( X0 M2 J; S( @1 `: [+ G - (mode_tile tile 2) ; Move focus to offending field( Z# C+ A6 s* X0 A/ J& D% d, o: X, b
- (mode_tile tile 3) ; Select offending text
9 L: ~. c; c9 u/ V6 F9 n* F. E - (set_tile "error" errmsg)! J" v/ j- g: C. a, l7 I& a. s
- (setq errchk 1)/ u/ i" d$ Q. u# |
- (setq last-tile tile)
$ i( J8 M) W$ A - old-value
4 A! B1 J3 D W- p7 G - )- ]* A; [ s+ N9 I& ]
- )" v/ t- R1 S# R0 f# t2 G6 q
- )
" x0 K `( g& u - ;; Function for Xline coord edit box checking.
) n8 N( T9 H$ w% R) v: F8 x" B - (defun verify_xline (tile value old-value / coord valid errmsg)
/ a' Z/ P* m, k5 g5 k2 D0 a - (setq valid nil errmsg "Invalid input value.")4 {/ C' \4 u: _- t& y( S. j3 H/ u
- (if (setq coord (distof value))
: i: y% |/ z- T5 b4 N6 H% S3 g" p1 { - (setq valid T)
6 J7 |/ [# D0 i! h7 b" ]7 B - (setq valid nil)! R! K9 \! Y% o( E" n6 t# ^
- )
# l$ E$ [6 q# D - (if (and coord, n& e& ~6 r8 Z0 w
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
8 Z9 ?* N+ J/ p4 P r: G - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
- x& U) [$ ]+ q0 y; z" N4 t - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ) d+ `: l ~' N( T' d6 ]
- )! {0 e3 m: [' {! P0 D
- )
; \5 j3 H; G$ n0 S. B; m - (progn' H0 ?2 g: }6 T" a
- (setq errmsg( s. S% e) n$ r% [5 v$ p
- "The Root point and the Second point cannot be equal.")4 v. C) U4 R+ |5 Q4 H! y
- (setq valid nil)2 Q- C* D* \2 H4 g. Q
- )
- O1 ~+ J3 r+ r- ]; l - ) P- L: S2 r/ D; ?
- (if valid5 g- W4 g8 x" B+ W. \3 q& E
- (progn
$ k2 E0 X; C" f. V - (if (or (= errchk 0) (= tile last-tile))
7 D0 |9 z4 N3 { - (set_tile "error" "")
8 v7 x. u4 I: [; I$ J - )+ Y0 ]! J$ h7 x( U( l* N$ Z
- (set_tile tile (ai_rtos coord))
$ `0 ^1 i: h7 K2 U$ j - (setq errchk 0)
' R) [+ |% Y. D4 l6 c& G. K - (setq last-tile tile)/ W5 t2 A0 Z4 T
- coord3 V0 ~8 }$ ?- ]% B) k
- )" f+ s: ]# F8 U2 q: b
- (progn7 ?! Y; b: B$ e6 m
- (mode_tile tile 2) ; Move focus to offending field- ?0 j5 t$ H0 ?$ i
- (mode_tile tile 3) ; Select offending text% H! S3 K. f9 c
- (set_tile "error" errmsg)
5 R" w, p. h. }- p& y% s - (setq errchk 1)
. A" ]. W- L) e0 | - (setq last-tile tile)6 u7 v4 h& \. r5 E$ k: E! _/ I! }
- old-value! m6 T- A+ h% [! y N
- )
9 j- |4 \7 Q- W+ l/ r - ): g5 f z# O" A( {9 \8 T" M( S
- )9 m/ m; ]# P5 Q5 t! N+ S
- 1 n! n! }! i7 E4 _
- ;;
) Z* p9 N1 {( T, ?. @ - ;; Verify angle function. This takes an angle and a tile name as arguments.. M8 r3 {7 q0 I
- ;; If the angle is valid, it returns the angle and resets the tile.
$ v7 R! a5 [0 e6 D+ A1 E - ;; Otherwise, it sets the error tile and keeps focus on the tile.# _$ E* Y: R$ c) G/ h
- ;;
) E4 o0 \2 e! s1 L! B5 j: H9 A3 x - (defun verify_a (tile value old-value / ang valid errmsg oblqmax); I6 x7 T( O7 @4 {6 i
- (setq valid nil F2 b1 j6 |# t8 l0 n) ~
- errmsg "Illegal input value."
+ a' I7 k, e( }$ x0 B, u L - )
- {4 h; _* X$ C/ o% Q6 q+ t - (if (setq ang (angtof value))+ s7 z1 Z1 V N6 n: P s
- (cond
) a J# n" S# `. p# L - ((= tile "obl") ; Restrict obliquing angle9 U2 C0 d. |1 X
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))% `* B9 r+ a9 q3 x/ Z
- (if (or (<= ang oblqmax)3 {7 T4 e3 {- [( H, F' o; K
- (>= ang (- (* 2.0 PI) oblqmax))
e9 k0 w4 C6 r: L7 |$ b2 x" D - )* k2 r: d; }7 ?$ p
- (setq valid T)
7 M* g J0 v1 x' s' Q, V$ M6 q - (setq errmsg
# w$ `0 l4 E" b - "Value must be between -85 and +85 degrees.")! u1 I6 C& l1 n9 |* w: h% W
- )
/ P1 d/ f+ `5 {" p8 }/ c# ? - )# `1 I2 m8 Z0 a- k4 x
- (T (setq valid T)) ; Other angles not restricted+ c% I& D- Q5 C8 j
- )
) {9 A* {' r: D, V0 R( w5 X" \ - (setq valid nil) ; Invalid angle input
& w$ d/ h: W- D4 N! A$ n: ] - )* G' b/ {6 |8 W
- (if valid; m* L! }9 e; l0 F% ~* H
- (progn3 c$ v. D- l( [
- (if (or (= errchk 0) (= tile last-tile))$ a) k" e5 O) j1 f! b
- (set_tile "error" "")
! y( p' d; |/ `* F3 P - ), N% s( O( n- s9 g% K2 I
- (set_tile tile (ai_angtos ang))5 z$ }1 L x; ~8 G2 \& F
- (setq errchk 0)/ y8 C7 a+ _, E1 I6 O6 f$ G- g
- (setq last-tile tile)
, j5 I" F0 s3 b- m6 O - ang T: b' ]" K* T# B3 O/ L9 Y* M J$ b
- )7 T# a3 a1 _3 ], _
- (progn
$ y7 X p( T% f- j9 j - (mode_tile tile 2) ; Move focus to offending field: w+ s: e4 P+ L# c2 L5 J
- (mode_tile tile 3) ; Select offending text( j. l& o) r. e4 \7 H& q v0 S1 L
- (setq last-tile tile)2 R( A- E5 J' O e1 T( R/ W" Z
- (setq errchk 1)
# F7 W4 W7 g# \, n& p7 Y: [" E0 O! F - (set_tile "error" errmsg)* o1 p* B Y7 m- V; q: K
- old-value& V3 T# G5 \( `" c9 s
- )* P. F% V/ N$ L4 |. I: n8 R
- )
5 h4 s8 b* f$ C A) c$ x - )4 b3 W: ?; e) T5 |4 O# E9 Z) O
- ;;
8 K, i# e ]1 A' |4 i. r+ m# I - ;; Verify angle function. This takes an angle and a tile name as arguments.
- i% b2 q5 C' \/ M! U' w - ;; If the angle is valid, it returns the angle and resets the tile.
% O5 V9 Y5 y' h! W - ;; Otherwise, it sets the error tile and keeps focus on the tile.
6 s B! ?5 c A( j - ;; This function is specifically for the end angle of the ellipse object. If
* z% J& Z& |2 H _3 P: Z) ^ - ;; the end angle resolves to zero then we want to display it as 360.6 f* ^5 s, }$ U- e
- ;;5 M+ ^& Q( v' o5 h6 [3 @
- (defun verify_ae (tile value old-value / ang tempend)
' n0 U9 A2 w1 J8 f7 @ n. Y5 X - (if (setq ang (angtof value))
l/ S8 ? R, E( _8 F% ?. ]0 O, m - (progn% f7 `; A0 @2 |; K" t0 ~
- (if (or (= errchk 0) (= tile last-tile))
$ `6 x5 e$ q( @, E( p! d - (set_tile "error" "")
# Y2 N5 i& {9 m3 z - )
- J! S9 Z7 {6 I( z" E5 R0 `, W9 P - (setq tempend (ai_angtos ang))2 p* t% i+ f- g5 x/ A ]0 F' s6 K$ N% i; L
- (if (= tempend "0")
5 r9 D7 f- @' d9 H6 N5 P% H6 r - (set_tile tile "360")+ t3 X% ~7 x" n" B* ?
- (set_tile tile tempend)
6 W3 P: X9 v5 @: ?$ O - )
! i+ B/ p( z# C8 H$ }7 l( S. Q, y - (setq errchk 0)
( ^; O Z' A; ?9 x/ T! r ^ - (setq last-tile tile)
R/ R6 w' f7 s- ? - ang
9 h# ?9 p, p" Y* L6 O - )1 v, J6 L, k9 `" B. r: F
- (progn% X5 Y1 G' G2 b0 P' @! u
- (mode_tile tile 2) ; Move focus to offending field
' k& P2 |1 R( a- ], W# z - (mode_tile tile 3) ; Select offending text
) h2 r/ J8 D2 h4 F. k; O, q - (setq last-tile tile), V) U, G1 q4 m. B
- (setq errchk 1)
% r% u6 {2 @3 |) i3 K2 h3 B. p - (set_tile "error" "Illegal input value.")
3 u, Z7 P) z/ ^# G6 {/ Y) N3 F4 p - old-value) ^. _4 j8 x1 q3 X
- )
5 c. m" o6 b" K+ L6 O, N - )
7 o' }0 P8 z) I" O - ). q( C& a: _! f! D1 N7 i
- ;;
$ C, O8 T; a( Y2 l) x - ;; Verify integer function. This takes an integer and a tile name as% P% c, a. i0 G* g G: t4 X
- ;; arguments. If the integer is valid, it returns the integer and resets the
3 @: a$ r% e: J! J- Q' t - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
' N `* W1 k$ g( w- R8 {* B - ;;* [/ c1 {$ F6 E5 h# C. N; V
- (defun verify_i (tile value old-value / int valid errmsg)0 L' w2 P+ B) r* f1 l; m8 A
- (setq valid nil)
# o( R8 `0 b Z5 e* d" M3 Y - (setq errmsg "Value must be an integer.")' a4 M! Q) ~' l. U$ V2 V1 C
- (setq int (atoi value))
( l2 x3 B$ f f8 r; a& C j - (if (setq intchk (distof value))1 G% u6 ?+ d+ Z* G
- (cond# U% x0 X$ l3 ^" Z/ L6 z- |6 d
- ((or (= tile "columns") (= tile "rows"))
3 D. f. u8 N8 |' P' f! j - (if (and (= int intchk)
! t- p; ]8 E3 s4 M - (>= int 0)
/ `8 w( D- Z% v; O+ X" q8 ` - (<= int 32767)
* C( e& q, u1 a/ a& Y$ u5 |! N0 ~ - )
Z# a& m ~0 [5 L% ^* y - (setq valid T)1 [8 \9 g2 X* k3 z
- (setq errmsg "Value must be an integer between 0 and 32767.")4 b4 f& O% h) Q# T2 K- N
- )6 @5 @$ i" O; B1 y& O- r7 \
- )' b% V; L( K: e& O7 p" G
- ((and (or (= tile "u") (= tile "v")))
5 s& r) w3 B, v/ i - (if (and (= int intchk)* C6 r; F8 ~2 |9 ^: N
- (>= int 0)/ U$ G, r0 c9 ]4 K( H, \) C& V: j$ X
- (< int 201)
k- Q, z( F) s - )
2 \; y3 j* d% s8 N- k2 x - (setq valid T)) |- f8 ] o. h
- (setq errmsg "Value must be an integer between 0 and 200.")
$ _6 R# _( n* |0 M/ R - )5 @2 @9 f, Y3 E& m1 t8 N; k: G, a
- )
- D$ ]5 u9 f, {' L* s5 n - )& {# A+ b! q8 o6 p7 y# A) e
- ): d& j# q" l) [, M- p8 C4 F
- (if valid: ^5 c5 z4 b0 s) c& ~
- (progn, X; }& J! u' S/ [7 p( U% R+ Z6 E1 W% ^
- (if (or (= errchk 0) (= tile last-tile))
6 e; f+ X* ^/ p - (set_tile "error" "")
+ g: f3 F0 F5 O* R9 y - )7 p# U4 } C. o+ a% e
- (set_tile tile (itoa int))
$ O: U. O0 a+ b- A% ~2 u; y# H - (setq errchk 0)
* a4 Q4 B$ u3 p" w) O - (setq last-tile tile)- T& @: Q0 A/ n& [; Y6 v2 W. M
- int
: B/ M* \- C. T4 k! b/ o3 {8 q - )3 z3 l0 \# D# [% s: f
- (progn
. L R: o( N9 K! v" y9 ~9 F4 T - (mode_tile tile 2) ; Move focus to offending field
, n ~5 P% C: a( b g W - (mode_tile tile 3) ; Select offending text
* z. q5 {0 ?. h" _ - (set_tile "error" errmsg)6 ~# V$ a# n7 f; n1 g! N. h; {5 S( f
- (setq errchk 1)
. z6 d, ^0 ?, v! w d - (setq last-tile tile)( u! @( Y3 k3 {3 c H i" D4 v! z
- old-value
+ _3 ]" ]5 Y0 o - ). k. l; \0 |/ N. \, J) H6 U
- ); s5 G/ R* _ U' f
- ): n0 s. r. O( z. a# T# \6 H
- ;;' M6 e- W5 X' i' w* I1 g% i
- ;; Functions that verify tile values for integers
9 r7 h8 y3 z# s5 U2 [ - ;;; G p; X* B( U6 B* }3 z# V
- (defun ver_col (value)% u: I4 l4 |3 ~
- (setq columns (verify_i "columns" value columns))5 ~' ]$ A8 y4 K' G
- )
7 Z& j5 F) [! i& }, ]3 [ - (defun ver_row (value)$ }2 i# O1 V6 S& N1 Z- z! m4 B
- (setq rows (verify_i "rows" value rows))% |: U- f6 u' T( W2 Y6 k
- ); `& [& h1 i! q& x/ W, v4 N
- (defun ver_u (value)
! ]* {5 b. u2 m. P7 K( }7 s - (setq u (verify_i "u" value u))/ s" v+ U q4 D1 e; W- z+ Q' N9 q
- )
5 j& l4 h+ x. a2 i+ t4 l! p - (defun ver_v (value)# `4 Q; d! z% G$ L9 h/ M
- (setq v (verify_i "v" value v)) t4 R7 F' L' S9 Q
- ). m1 I1 S6 @4 M( y
- ;;
, x1 r; G, ?9 c7 ] - ;; Functions that verify tile values for reals
4 _; o# @" D7 T8 N! y - ;;
. [) F$ V! i) Z; ? - (defun ver_x1 (value)# l+ r) ?% Z6 g
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc)) I- l* p* I. k, t' s' E
- )+ e" H" m8 J0 G
- (defun ver_y1 (value)
0 ]1 n% Q' H) ?. D: a - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
. _1 d) ?" B' t$ F( L5 G& z - )
6 j: P- }, h( D' W) a5 y - (defun ver_z1 (value)
$ n8 N9 h- @% R% g0 r2 l - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
6 m8 x1 o& @+ d* ?$ | - )
6 m, y+ z( q& f" Y. m m& w' U2 D - (defun ver_x2 (value), O+ P( [$ y$ x. v
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
! {2 T$ h# f5 H4 v - )! w% W+ l2 P: d/ N# n/ v. y
- (defun ver_y2 (value)
: e. d7 m& y) }6 c+ \4 W: ^- s4 l - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
2 W# D4 @. R6 G2 Y B - ): k) w$ d- r. C1 U
- (defun ver_z2 (value)
7 O+ d8 I; Z, ^$ d0 p0 t$ M/ { - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
; a* w/ W, B6 l' f+ g' t9 r - )( E( I; g. a3 V2 |
- (defun ver_x3 (value)
W) w+ c8 ?% D2 f9 R - (setq x3 (verify_d "x3_pt" value x3))6 J4 }: L8 s! z! p
- )
. s# F+ }; v, o- C1 Y - (defun ver_y3 (value); h) A |/ ?8 b# x1 ?
- (setq y3 (verify_d "y3_pt" value y3))
$ D: R- Y0 E# d9 V% N) \: [0 h - ). u& \- ^, ?- n, B' H7 R0 A8 K
- (defun ver_z3 (value)
. {/ z! @* t, G( K: k! t - (setq z3 (verify_d "z3_pt" value z3))
% w: \7 u' H8 N. b - )
% U8 N1 t; p% A3 X - (defun ver_x4 (value)
1 S \" e& R+ U( E( J3 ] - (setq x4 (verify_d "x4_pt" value x4)), V' x0 P6 B0 C8 x+ W
- )
3 A. o6 r3 E* H3 x& x - (defun ver_y4 (value)8 y4 T; y+ @% J4 W
- (setq y4 (verify_d "y4_pt" value y4))
3 ~" }& o; w+ P2 E2 h r - )/ C1 }2 p9 j" Q; S
- (defun ver_4 (value)" f& H& m9 p' G! a
- (setq z4 (verify_d "z4_pt" value z4))
( |1 B# ^) S* d+ ^ - )0 J/ ^. t& L2 u0 R& |2 v, M
- (defun ver_xscl (value)
/ S( l, ^, t. v/ h/ M. j4 V - (setq xscale (verify_d "xscale" value xscale))$ h( E+ d6 q6 Q
- ). ~8 E4 \3 }8 B/ a' _
- (defun ver_yscl (value)
$ i# F8 D8 o5 p - (setq yscale (verify_d "yscale" value yscale))
& Y0 l! g s1 g! ?$ L6 U; c - )
8 j9 E& z- G) L2 S - (defun ver_zscl (value)
0 W# e/ y6 c5 ^* f5 E0 W - (setq zscale (verify_d "zscale" value zscale))
5 D6 i* g) J' | - )
6 J+ ~( H) s7 L. b9 d; j; Y# o1 p - (defun ver_colsp (value)
4 I4 L6 y' B# O - (setq col-sp (verify_d "col_sp" value col-sp))
. Y! u* a; k3 a# y9 g - )
3 n0 b" k( K4 K2 t- Y9 H - (defun ver_rowsp (value)
" u. _" Z( D. j5 t# ~! d5 @' e* { - (setq row-sp (verify_d "row_sp" value row-sp))/ Y7 j7 c5 r; j
- )
2 J. s- F! b! g! R1 Q/ U) a8 o - (defun xclip ()
2 H0 e8 |5 m8 \9 p) Y0 m: d - (setq xclipmode t)
) J. d6 z% U, v) n. P- E3 n. i. U - (if (= xcliponoff "1")
) E( [9 P0 N$ ?0 A7 x; M0 A# i - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")6 b: A+ N( h1 l$ |, E
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
( ^& |* n: H; t% q - )3 o+ l' I* u) C* M, {( G3 h* i
- )% b# X2 z% s9 |+ h& c' v4 ?: W
- (defun ver_rad (value)
7 q" [# b( @7 ?. ~" `- E: d - (if (setq radius (verify_d "radius" value radius)) L, z% K1 b$ {
- (calc)
! E$ I3 z( T" u+ i; i0 f9 q - )0 k5 x0 O2 M* }# Y& n+ x
- )$ y% b1 A' _& K. m9 I0 R7 w S; v
- (defun ver_majrad (value)
# t8 m+ N2 L( f: I4 P - (if (setq majrad (verify_d "majrad" value majrad))
: h( e& P# Y+ B" j - (ell_calc_newval "majrad")* y# L0 x5 _: a5 y$ n) E. C2 p% K
- )! e, V$ _" @4 @2 y7 E( }1 U
- ), V4 V4 e. r, `+ w: w2 D1 P
- (defun ver_minrad (value)/ v- K1 Z& O# X' S3 {
- (if (setq minrad (verify_d "minrad" value minrad))5 Z" d: U: m r$ \6 I9 ]) B3 W
- (ell_calc_newval "minrad")
- i# I! X: k- d( O$ Y - )8 Q2 Q- d# {3 u# b
- )9 ^/ e! P& l/ g3 b
- (defun ver_hght (value)! v' O& |* w9 n7 e9 R. d
- (setq hght (verify_d "hght" value hght))% |4 c; N9 j5 }- k4 | t; O
- )
8 ]- e3 I5 s8 l- u p7 E - (defun ver_wid (value) e) Q7 S- }+ F D [- H1 D
- (setq wid (verify_d "wid" value wid))9 M: J' r |% d9 ]
- ) J9 h0 c( U( T3 Q
- (defun ver_xline_x1 (value / temp)7 r# w3 M8 f! O8 s2 `+ q
- (setq temp xline_x1)% n ]' _9 d: I K8 h
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
- ^$ I1 A! |( V" b8 U7 _ - (if (/= temp xline_x1). p* N- s* i! H6 o/ C( ]$ w
- (progn (modify_xline 0) (set_tile_dirv) )
3 Y& f8 {+ ?' S - )
6 E4 ^! i6 E- {# D) F. g - )
H3 Y2 |# o# Q# D" Z% o$ `$ I( W - (defun ver_xline_y1 (value / temp)9 {3 y1 c' `) s
- (setq temp xline_y1)0 P! q! F- x& `
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))3 W8 a. Y, G9 g6 z7 {3 l; F4 u
- (if (/= temp xline_y1)
0 u7 T9 z( _0 x8 W) I, K+ D( ?. F - (progn (modify_xline 0) (set_tile_dirv) )
' ?# o0 `; |. [$ w4 E: `! @ ? - )
, u. G/ Q q* h' E2 Q4 V. I) A7 u - )! B* ^, R6 Z f+ n% q& D
- (defun ver_xline_z1 (value / temp)( f. @7 y& {0 i' Z' z
- (setq temp xline_z1); F" x- Y) D b: M
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))2 H& n1 ~7 T6 {5 W. R
- (if (/= temp xline_z1)7 b( }$ B: Y* l7 w, e
- (progn (modify_xline 0) (set_tile_dirv) ), ]- M' G2 t: E$ b4 G- }
- )
! w2 t7 ]! J6 M - )9 l. z# m- s: A' ?
- (defun ver_xline_x2 (value / temp)
' [3 d" z5 K! D - (setq temp xline_x2)
6 r# f5 } |" u+ s) Y) k/ Q8 K - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))) `/ ]1 P* ]9 G# J2 Z
- (if (/= temp xline_x2)$ h S( }; {$ A6 y
- (progn (modify_xline 0) (set_tile_dirv))2 b& g6 x# o' `, I& p- s
- )8 J# u- }" a; p8 ~" l2 V( ~4 v. q
- )# F. n- { N( J: k
- (defun ver_xline_y2 (value / temp)
4 t! `* U# a) e% [% t - (setq temp xline_y2)
" Q; Z; p6 |, U) Y2 ^1 P; T. U - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))3 [, m7 y/ V- l/ I
- (if (/= temp xline_y2)5 |( C# d! n# E* r% w# T3 E# o0 B
- (progn (modify_xline 0) (set_tile_dirv) )
1 m# _5 m" ]$ F: \ - )# {6 H! J! i6 \) ?4 P. [
- )2 D; F+ n1 \) x' x9 i0 z
- (defun ver_xline_z2 (value / temp)5 ]& j2 h- h3 f0 }" z! p2 @
- (setq temp xline_z2)
- f g; z: v. k( `: o8 V9 V - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
, L/ R$ z! [ p& ?7 W+ O) W7 [% | - (if (/= temp xline_z2)
' \" Z" L1 E; e, w' O/ R# a. \ - (progn (modify_xline 0) (set_tile_dirv) )
9 q2 H9 W" p& @) e1 y+ g3 e - )7 ]$ d0 V6 K( b0 L9 W4 g
- ); w O4 w& p0 W2 I
- ;;
2 M3 k+ R( A4 m# o# f+ _# }( N8 w - ;; Functions that verify tile values for angles& L5 |4 Y& U K( y5 a( N) k
- ;;6 r: |4 K5 j( c
- (defun ver_ang1 (value)$ \& B" X$ G- x; Q. I% p3 t
- (if (setq st_ang (verify_a "st_ang" value st_ang))
' t( @6 g" u4 u - (calc)
' y! x& A+ W& P - )8 u$ @/ F3 q5 X
- )
J$ U5 s3 R) T7 L- Z* j - (defun ver_ang2 (value)5 R& z6 o4 r; q( O/ Y
- (if (setq end_ang (verify_a "end_ang" value end_ang))+ A! ?6 Y ~) Z2 e/ q
- (calc)
/ t4 W+ @3 W* k2 X& o4 {- [# n - )' ?7 l+ {' q+ k- V0 f
- )0 n* g6 y8 g6 j, p) ~7 ?; X* A
- ;;0 a* S$ N. i( t5 H) y
- ;; Verify tile value for ellipse end angle. Handled slightly
' W3 f' p9 A: j) [0 U* r/ E; M - ;; differently than the other angles.
8 L7 J+ d$ I) s7 p7 `3 Y - ;;9 B5 N8 a7 j! b
- (defun ver_eang (value)* `& a1 X. ~# u3 \
- (setq end_eang (verify_ae "end_eang" value end_eang)); m ]9 N! N8 N! v
- )1 a( J3 o5 c: I9 s& w8 h
- (defun ver_rot (value)
7 [3 c7 u! z" W1 y7 W - (setq rot (verify_a "rot" value rot))
/ g/ E) Q6 c; C/ { - )/ w7 b4 @ a3 D4 L. F
- (defun ver_obl (value)
9 w! U7 U) C( N - (setq obl (verify_a "obl" value obl))
) i" m: E( b5 ^' T7 x - )* ~# f9 [7 T0 U4 B6 d
- ;;
9 D! c& J+ h. g$ |7 r+ r, P+ | - ;; Function that verifies attribute tag field for null string,' K8 P. @& }, s) I
- ;; or a string that contains one or more spaces. Tile value
, P$ y: d4 K/ m7 w* K4 d - ;; is also converted to upper-case as well.
9 G5 X0 k- v& p1 e$ ^4 Z - ;;
5 h1 G! \( d, M* F$ N) ~6 y0 z5 ~. ]4 e+ q4 m - ;;
0 \3 V+ v# t% r' w9 _& {: B7 i: h - (defun ver_tag ( / tval)
l! [* L4 ~. p2 i( H - (setq tagval (get_tile "tag"))
+ \. e0 {5 U$ l: ^ - (set_tile "error" "")
* e. C* ^0 b6 y0 W' t - (cond& l( Z# e5 a' J4 K: l& ]# r
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
+ F/ p9 n) |2 m* M - (wcmatch tval "* *"))4 J1 [ E8 y7 |
- (set_tile "error" "Invalid attribute tag.")/ _5 i3 U, }0 p( `! z F5 r
- (mode_tile "tag" 2)( @* _! f- {8 d6 x$ N( m1 i
- (mode_tile "tag" 3))
% B/ V2 A5 O9 B/ B( x9 A - (t (set_tile "error" "")
# m( Q1 | _& n - (set_tile "tag" tval)
+ A4 |6 {) I, E - (setq attag tval)))
. Z; I- |( M& Q$ h' _9 c# o- U& J* F - )
. x4 w& u7 r; l8 w- U - ;;
7 z) {) _1 Y L) k7 s - ;; Calculation functions2 V# [0 p3 N: X, R) }! G% p& f
- ;;
" V- U. g4 M& ?2 g6 m& | - (defun calc ()
. h$ k4 `$ w; W/ e' G6 Q - (if (= etype "LINE") (line_calc))" i" N2 ]) a8 G; V; A
- (if (= etype "ARC") (arc_calc))+ ~# {9 T, h, N$ u+ ^1 `! u
- (if (= etype "CIRCLE") (cir_calc))7 e! K( q, I) R0 A" M, g" S' Z
- )6 m k9 [! i# |5 {
- ;;
7 P% w9 ], o" D1 H! }! ^4 v' ?9 X - ;; Calculation functions for lines, arcs, and circles8 A# N3 C2 C" L- G( t4 ]- B2 i7 x
- ;;
3 H9 R" {( K- h4 L8 c" _ - (defun line_calc ()) F! m. v1 ?$ f) X1 g
- (setq stpt (list x1 y1 z1))
; s% Y" l( V4 x1 u, ?5 B - (setq endpt (list x2 y2 z2))
& A5 I7 c* _2 u( a) J; g' V - (set_tile "delta_x" (rtos (- x2 x1)))! l% Z+ S- |& [# ]: s0 {
- (set_tile "delta_y" (rtos (- y2 y1)))
3 F$ _3 w" t& Z- ] - (set_tile "delta_z" (rtos (- z2 z1)))+ M) u p4 ^( J. V2 q: _$ F# ?
- (set_tile "l_length" (rtos (distance stpt endpt)))4 H, S; v3 L1 s' e2 t3 }
- (set_tile "l_angle" (angtos (angle stpt endpt)))5 w/ A6 z5 P% F# j. m$ ]; D8 O
- )$ Z7 { L3 V* y4 ~$ E; l
- # H" [. z: D6 \0 m
- (defun cir_calc ( / area units)
+ ]* ]; a. W' I% [ - (setq radtest radius)" X+ o- {; u. k' ?
- (set_tile "Dia" (rtos (* 2 radius)))* e$ h7 F6 W7 L/ T5 F5 }1 _9 l h
- (set_tile "Circum" (rtos (* 2 pi radius)))
8 H5 p2 H! I$ M% C - (setq area (* pi (* radius radius)))
! O/ B' T8 ^" b- d' B) H - (setq units (getvar "LUNITS"))0 G/ n& g) f- N
- (if (or (= units 3) (= units 4))
2 t6 b0 Y: y( W2 K- c; u - (progn
% ^" k* _: B4 k( \( Z! H - (setq area (/ area 144.0))2 H% ]9 L6 e! s! W2 N
- (set_tile "Area" (strcat (rtos area 2) " square ft"))4 ]: k7 L# y& b, M) ~8 m j+ D0 X
- )
0 } v: F- g+ x" [' r# g. u - (set_tile "Area" (rtos area))4 R3 L6 ~; t+ f) C, [3 l
- )7 B. _% R Y7 K9 V4 j5 p
- )1 {& u2 d8 }7 F8 [5 L
- 3 V2 a7 ~0 H2 _
- (defun arc_calc ()
f, g2 a- U% V" h( [ - (setq totang (- end_ang st_ang))% Z/ h8 J/ M! Z" w6 p8 C0 W
- (while (< totang 0)
, i3 Z5 h" S' R) Q+ \* e - (setq totang (+ totang (* 2 pi)))$ V# V/ l7 R% g( ~
- )
& G% {% [' j3 y8 H% ~7 f - (while (> totang (* 2 pi)). Z; K, k) r$ A( r" T+ m [, a
- (setq totang (- totang (* 2 pi)))
' U$ M, E( C7 Y6 W/ E - )
+ \5 w% I! E8 t7 t - (set_tile "tot_angle" (angtos totang))
; n& L" s& [$ H% H+ A - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))! q; q4 ^# P$ d, j( f; z
- (set_tile "arclen" (rtos arclen))
: [7 b+ P; e+ h$ @ - ), j# `7 o& C/ g) i0 a- ]9 h" q: l
- ;;
9 g, g% k9 L. e& e - ;; Calculate the major radius, minor radius, major axis direction.4 d9 I8 E a3 S2 {% _4 W
- ;; Get radius ratio. Convert Start, end parameters to start and end
( R8 r' m4 Z' z4 V. {& l - ;; angles. Save Major Radius value in "old_majrad" in case the user* a7 y+ B- j" p& f6 E4 h
- ;; chooses to input a new Major Radius value later. It's needed to
, n! d. C3 Z/ q - ;; calculate a new Major Axis Vector value.
' V- e3 y- s0 o, f - ;;
/ \: v& Q, s) E) [: v+ w - (defun ell_calc ()
5 h& B& M) l8 Y3 t: L! d - ;; Get major radius from the major axis vector." N* w2 B9 C/ L: i N
- (setq majaxis (cdr (assoc 11 elist)))% {+ [! d* Q, n; o' @6 ?+ c7 q
- (setq xx (car majaxis))
g, t: C7 K8 t. Z3 C, B* m - (setq yy (cadr majaxis))6 h/ k/ `- R$ X+ o3 j
- (setq zz (caddr majaxis))
& P; J; o; N: L+ e. C - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))+ q, y; F% j( t8 X" P& b% }$ _
- (set_tile "majrad" (ai_rtos majrad))1 g ~! B! d; g
- (setq old_majrad majrad)& h! g8 l8 p2 t, N2 \/ n# [" o
- ;; Get radius ratio
- ^# w6 r6 B% F" \) z( Z - (setq rrat (cdr (assoc 40 elist)))0 D* ^# I. _0 y( A: X" J
- (set_tile "rratio" (rtos rrat))0 {9 |1 |& r0 @5 P6 y6 {' ~3 _) R
- ;; Calculate minor radius. s4 A; G; W0 w' @
- (setq minrad (* majrad rrat))6 g* ^- v/ p- `& Z. h* _$ O
- (set_tile "minrad" (ai_rtos minrad))
6 o& I' K% q9 a3 D" Q) p. i - ;; display major axis vector) u5 j) ~4 @% M$ U2 f
- (set_tile "Majraddirx" (rtos xx))$ C9 A% f- |% f9 Y0 \. W. k
- (set_tile "Majraddiry" (rtos yy))
- y# e/ f$ X5 f8 c, p9 k. r; t" c8 a - (set_tile "Majraddirz" (rtos zz))
2 G1 x# Q8 z" L
( F. ?, z+ p( }' W0 Q+ L- c" `. X& H- ;; Convert start parm to start angle
8 d8 o+ m6 Y7 c) |& D$ i; }) j7 f - (setq stparm (cdr (assoc 41 elist)))
% U# l! M6 {* v* G - (setq vecx (cos stparm))& @4 ~, i' Y: S+ v7 E, y+ v* G
- (setq vecy (sin stparm)), v9 G4 L! c; |4 S1 e B! j; F) E$ a7 j
- (setq st_ang (atan (* rrat vecy) vecx))
/ I1 H) q! m( Y/ A* E1 \4 x8 M - (setq tempst_ang (ai_angtos st_ang))
* Y& F9 l4 J p - (set_tile "st_ang" tempst_ang)
6 \1 E" F: \2 X& b' M- L - ;; Convert end parm to end angle. If end angle evaluates to 0
- b* j0 B8 z' R; q - ;; degrees then display it as 360 degrees.7 j) r( z% A) S4 N
- (setq endparm (cdr (assoc 42 elist)))' Y9 t# X6 \ n. G
- (setq evecx (cos endparm))
M7 h& N( M' K1 X1 h0 j! D - (setq evecy (sin endparm))9 j9 @: k- y* k9 ]
- (setq end_eang (atan (* rrat evecy) evecx))5 b4 W" e8 j- G5 L" b2 M
- (setq tempend_eang (ai_angtos end_eang))2 A' z4 Z) Q. [2 J: o
- (if (= tempend_eang "0"). B+ P7 f# y3 M- N/ A
- (set_tile "end_eang" "360")/ f' _+ a u1 v% A& p
- (set_tile "end_eang" tempend_eang)1 ~. U; Z. b6 L% R% c
- )
- L6 v, g3 v2 }- X& i( B - ;; Get area of the ellipse. q2 c+ U1 h( E: z8 B* S" O3 t
- (ell_calc_area), s6 m$ _- ^: n5 ?- u2 g, E
- )! i# R# V8 F6 `, W% X. Z7 g
- ;; Calculate area of ellipse. If it is an arc then+ r& v' f6 p7 V o- z/ i
- ;; grey out area display.
! R- i9 E3 `/ T, b/ m - ;;7 ~8 }) j6 ~4 r! e7 b/ r% |
- (defun ell_calc_area ( / area units)
) ]- a+ [. h' D7 {& t) G - (if (and (= tempst_ang "0") (= tempend_eang "0"))
0 ^4 {- D6 i+ p% m+ v - (progn
) @' n: A1 w O" N - (setq area (* pi majrad minrad))
0 x+ Q* O: c4 f - (setq units (getvar "LUNITS"))! h3 p+ j/ b" `7 T7 w
- (if (or (= units 3) (= units 4))0 i* d, D2 E& x
- (progn* x8 S: D ?! H2 \% m
- (setq area (/ area 144.0))
! ?: v: w" r& w; M' c! L/ v1 D - (set_tile "Area" (strcat (rtos area 2)" square ft"))( H$ o( C+ C- ]% c; ~
- )
4 q: u% v5 H, u8 Q6 ^! x. s - (set_tile "Area" (rtos area))# u( t$ k" i% J( Z6 T6 i
- )
. S1 f) U1 k f/ ^ - )+ r0 U% k5 W: c; {
- (mode_tile "Area_text" 1)* f ?; y3 {' j) B! g
- )+ w. h9 b/ P f9 n1 h
- )
, w6 c+ v0 `, O4 \+ d - ;;
" w" O2 P1 _& t4 a8 ? [+ o) R2 y( L - ;; Calculate new values for ELLIPSE: }5 d6 E9 N$ @0 _, u3 {
- ;; Minor Radius, Area
% O2 q T' g E6 m* d( V - ;;9 X; E& o k& ~1 X: G! U
- (defun ell_calc_newval (ell_tile)
# b: m8 W5 d7 j+ g - (if (= ell_tile "majrad")6 L3 K- f. ~6 C* H A9 N" B
- (progn
2 E. A+ c% a: J - (setq rrat (/ minrad majrad))
8 X& F: r7 S. | S' h& l. i# _+ k; X - (set_tile "rratio" (rtos rrat))( e* \" u! b5 F4 {
- (ell_calc_area)" s; A* m8 \, D1 o
- )
: ^) A& n5 s, m9 W: H- m# R; s - )
@$ E4 e# ~( B* _ - (if (= ell_tile "minrad")1 u% V7 B/ Z6 u( i" C
- (progn
: j5 ]9 @- w1 O) X" B8 K - (setq rrat (/ minrad majrad))
4 o; J- }7 G: h - (set_tile "rratio" (rtos rrat))
0 E( `+ k- Z" K1 B( Z1 m/ K7 a - (ell_calc_area)
5 F, z! X" j/ D9 X6 e9 c& N) z" ` - )
4 y# m% ~) h* Y7 U. b- V r - )
2 m- I5 D) Z8 b3 K. k- F - )8 u( ~1 x2 e1 \+ c9 R! m+ m: F: C% I
3 b" [2 }: n, }6 l- (defun set_dimen_props (/ loop a stl txstyname)$ h$ ]8 ~! Q5 o+ r. H1 {
- y2 l& c- J. { p
- (setq stname (cdr (assoc 3 elist)) ; get style name
5 Z/ x* l5 @$ ?. V; P ? - stl (tblnext "DIMSTYLE" T)
; W* F6 u D8 `# k3 u, j) w3 y# R' C - stlist nil)
8 n3 _8 {2 q4 B% W - ;; Get all style names and list them in alphabetical order2 v; R5 W" ]- d2 k6 P+ R) p3 ^
- (while stl
- m6 R! S, S1 }: E* ? - (setq sname (cdr (assoc 2 stl)))( t# \9 N& A% j5 {" Y
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)2 x' [/ [5 e7 @+ B: b- _3 X( z
- (setq stlist (cons sname stlist)))" k0 O4 q; z5 i3 F
- (setq stl (tblnext "DIMSTYLE")))
- Q9 r% O. h2 P9 c; g2 ?$ @
* u4 o2 D# \9 ]/ I* b2 _1 E2 B- (setq len (length stlist)
8 C# q6 [ @1 |) J - loop 0" o& l- J# e$ I" Z/ n
- dimsty stname1 i- F5 |: T( A% @( V8 s8 [
- )& {) l5 s; g, L! [ y
- % F9 l+ f6 ]- t+ r! V+ S$ B
- ;; alphabetize style list, depending on maxsort1 t B/ T6 h: z
- (if (>= (getvar "maxsort") len)
0 O; l' d% h$ {- `' A - (setq stlist (acad_strlsort stlist)): B( N+ j4 Z- h& E* s& u
- (setq stlist (reverse stlist)))
. u; k+ y9 ^6 o* b8 }* ^+ W
+ |; i( F: ?; G. \$ Q# m+ l' w- ; *UNNAMED style (dimsty = nil at this point) is replaced with6 x8 H; I/ }. l+ x) s
- ; the current style. After R13, we require dimensiosn to have a9 |0 ?5 h+ D, G' o9 |: Y" x
- ; dimstyle, so we plug any holes where we find them.
3 c3 d0 n/ M$ |' O! X& S- X. l - (if (null dimsty)
* [& u" z% Z; V$ y, y1 H* Y - (setq dimsty (getvar "dimstyle"))9 M3 V% V% ~, V0 f( S9 o
- )
4 d" @9 G- _& A+ P1 d* w; f. ^: E - ; Show the styles in combo box
U$ e! u6 C& P6 u+ w; Y' q/ T% o - (start_list "mod_style" 2)9 [8 ]' g% g6 B- E; O
- (while (< loop len)9 W4 O6 W% I! ]# i5 E- j$ M+ U
- (add_list (nth loop stlist)), X C9 X& u! P: J
- (setq loop (1+ loop))
/ P' O" G6 H3 o( | - )5 w2 D, {: s+ G* e0 }
- : F3 Y: a) T: N* n6 K
- (end_list)
! u+ ~) i4 D i- J1 V, V - 8 x/ i6 L0 a' D( T
- ; Hilight the style name of the selected entity
. a2 D5 j5 i3 ~5 C8 F! a - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
) ~$ Z/ H: T) X( p5 B' t - (setq loop (1- loop))8 G3 r$ g3 n x; x( c# I# c9 b
- )
) H/ |: X) \9 g: z; X' g5 B6 O* | - (set_tile "mod_style" (itoa loop))
, Y( Z2 x; d# B3 N7 M
+ X5 V* N. e6 A5 b1 `" X/ n- ; The following is the list dimvars. It must be sorted in the same
5 g3 u; F- N% a. o' M% ^8 j - ; order as the resfub returned from DDIM (ADS module).
* f* z9 K7 u) F
; z9 l' K( H6 c, O. Z: G- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
: F3 C' f" d8 ^. a- @+ z) O x& b - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
9 C8 C- R3 z+ o2 y6 q - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"- ]# r0 e% T, J0 |1 J4 d) a
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
& V, P: B7 R- J3 s( B; w9 g - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
3 L7 m; {# L, F, f. E - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"5 l* J5 J8 x/ ]9 v
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"5 A! S$ b& [3 T7 Z( f
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
9 D3 z' H- f' k; N$ I3 B# m% l+ | - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"- w$ q( k _" F. g
- "dimdec" "dimtdec" "dimaltu" "dimalttd"9 W/ j3 O4 q/ U( [* h9 v( W
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"! L! A& P1 X: F1 |. u
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"5 I9 A7 D- [5 V( {$ z
- "dimtxsty"8 E4 u0 X6 e& M! K% `( T0 y& R
- ))- C( L0 W, Y' t0 U; q! H2 D/ ^
- (progn
+ h0 J- M+ y v1 t+ a - (setq sv_dvlist (ddimen_getostate dimsty)
9 B( r% G1 j& }/ Q) ]" _4 O - txstyname (assoc 340 sv_dvlist)% _7 i8 K$ u2 p$ o
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
9 }6 K' b8 |' [ n6 N - txstyname sv_dvlist)% U& q& l2 [% c w9 |; ~2 l
- dimlist sv_dvlist
- {- y7 Z1 T3 V1 ]: k9 G, A8 ~ - )
- p3 @2 A( m% C; \' }0 w) m( f [ - )
: B0 _- F& o& i* P& Z" J% Q/ r8 h - (if (= dimtype "DDLEADER")( q: o; A6 {# o4 M
- (mode_tile "mod_format" 1)
0 @% p4 K" n( w. w$ T - )
' X* Z& t) p0 F* F8 x - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
: T F- K7 X% p! `1 N - (action_tile "mod_text" "(done_dialog 4)")0 q( P4 P7 D6 d$ u" S7 _5 Q3 B
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
4 P3 t( ^% T: B2 I" x* k - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
8 }5 A* a6 a$ t( J* @ - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")$ Z/ Y/ N+ [, e9 D& j
- (action_tile "accept" "(done_dialog 1)"): T0 A: j1 g% ]3 m; V5 ]
- )
8 Y( j" y" l8 H) {' `) R' z1 W - ;;
$ G. F9 _4 w7 C5 V' Y: j - ;; Get dimvars that have been restored.% F+ ~) l( x5 Y0 ?+ K
- ;;. Z$ X; H) P! B. O" M2 `) ~
- (defun ddimen_getvars (/ elm dvlist dv i)7 G7 d, W, Z+ w5 ^. z0 x' N0 o
- (setq i 30 F% k( [- Q0 m9 [2 `# ~
- dvlist (list (cons 0 "DIMSTYLE")7 T# p4 F7 w) {
- (cons 2 (getvar "dimstyle")) (cons 70 0))) t% I: Q2 e: I8 U
- )2 L( K6 ~; W' D* ^ r/ U
- (while (setq dv (nth i dimtbl))
# _: l5 d3 h) [( U+ d! M - (setq elm (getvar dv)
2 N" Y$ ]! f, ^* _5 Y$ R8 ?3 c - dvlist (append dvlist (list (cons dv elm)))
- j5 v0 ?0 x3 b9 F7 s' u& L% x - i (1+ i)
2 s9 W* F- \' W" b - )$ i3 T+ y8 k$ r. ]" m: n
- )- i; m G: s( T; p, I
- dvlist
! K8 y9 v! T& W7 x C) R8 l - )
5 c7 z8 s, R9 I8 ?% {& \' W# k( x. C - 9 @. p/ L3 Q2 `( Z' S( p& ?
- ;;3 S9 d/ \6 ~' o" w% B5 z% f
- ;; Get the original states of dimvars. This is for DIMENSION entities.
! _ z# N1 A7 \8 B& y# U - ;;. @" r3 S5 a9 S7 K: D8 B1 a( X
- (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
_5 Z& x) g a ]1 h0 v - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list z: L9 R# D! f; n5 h* E4 ^8 e
- dvvars (ddimen_getvars) ; Get dimvars for that entity
9 P' k' R7 y$ n - i 1$ ^% \* M, P, x1 H5 `3 f' }9 V Z
- )
& g7 q& D! ?. @# u `$ P1 V
9 U4 r7 ?3 d" m2 [5 N9 e- ; Create a list that contains values of the selected entity.) E S- U" k2 W) _, P8 @
- 4 a' _5 S+ w' I- Y3 \/ I v/ w
- (while (setq elm (nth i dvlist))# ?3 J% a( f P* \: X9 b
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
! Q# U8 Q3 h$ R% H3 c0 u6 s - i (1+ i)
' \0 \% X4 Z, I5 i6 R5 M0 H - )% V: i+ h6 M. D7 J' _ p5 k
- )* z% k/ _5 E- y* v( B9 P X
- dvlist
3 I" L( `- D# r& R: v - )
8 m1 T* b0 `2 r8 S& o+ c% h6 O
: p6 U% B0 c0 ?! R/ F- ;;3 s# e6 M0 L' d9 z9 B( \$ {
- ;; Restores dimvars of the selected enity.$ K: K0 S- S; ?4 c9 L) `4 P2 k
- ;;3 |* W6 c% i( r' d. u8 }
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
0 k% a/ N" j1 v$ G8 r* d - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
$ b( v1 j! S2 k6 q& u" T - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"8 `/ D T9 _) F& I" H' N
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"9 a6 x1 {2 H& A) e
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
8 x- @2 ^' Z' J+ }9 |9 n - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"; B% l h' Z2 O! Y# n
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"+ p# p# x8 w) K. ~& a0 u$ z$ @
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"- x# @6 P) c6 ~6 ?! y' T4 |+ E
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"! r+ Y% `4 F; V% y! a
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
9 t- w E$ U5 j# U- y - "dimdec" "dimtdec" "dimaltu" "dimalttd"! u# T7 R! z, T7 @/ e
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
3 b5 c# x# z0 n" S( t) b8 I - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"% c& a- Y% t7 x6 g2 V* T9 P/ E
- "dimtxsty"
' }5 w+ j3 s3 Q9 [, c5 o3 ^& ` - ))) q; {# @8 x2 K
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings& K- E3 T' S0 @( v
- (progn# U, o, p$ K. P4 E! k! N
- (setq en (cdr (assoc -1 elist)))
4 e& q, {8 H1 ^ - (command "_.dimstyle" "" "" en)
" S& v* D! P8 }* A. [ - )/ @0 p7 z1 k9 L* r
- dimsvcurset
4 O( ~) ~; q8 X - )' \% C1 V/ W$ P* b3 l& i# e
- ;;# s5 o( r6 T# F R
- ;; Modify Leader
0 y6 e3 d2 D% o - ;; g8 q8 }* |* _1 |+ J
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
) F; X8 e" ?+ l0 a% `4 D/ ~9 r - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
3 u7 k+ ^7 E9 x+ e/ b0 I S - dimtype dimsvcurset)2 k9 u6 j& [4 t+ M6 {4 K
- (setq dimtype "DDLEADER"& S; i7 J5 W( f/ {7 v; t
- dimsvcurset (ddimen_dimsty_restore)6 F. a. B! x4 P t; B/ t
- )1 S- B; P+ w# N J' m4 y& ~/ h& s, M5 F
- (if (not (new_dialog "ddleader" dcl_id)) (exit))) Q) _6 {$ Y9 x
- ;; Set initial tile values5 M( b$ _7 ~ Z' G Z
- (set_tile_props)' n4 l* T0 Q% v7 p. g
- (set_dimen_props)
2 }2 |- v* @& P& G - (set_tile_handle)1 H% T4 ]% ? t3 h) {$ t4 [
- ;; Define action for tiles" P% h, L1 N9 Z0 Y
- (set_action_tiles)
0 H4 P& U1 e- E" Q" }9 | - (mode_tile "mod_text" 1)
6 {% i& V- j% h8 X7 G9 _2 ~
$ F4 w% l+ b* H1 W. h2 |- (action_tile "mod_style" "(setq dimsty (ddimen_style))")4 H. H3 h) d0 c5 f& i: M& v: x
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
3 K: q. F2 T' ?$ C - ;; Get ARROW and TYPE.
- I# c: A. w( y6 G z - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
7 x) H/ g$ y6 n" g8 m3 l - (if (= 1 (logand (cdr (assoc '72 elist))))
$ Q- q4 E. _4 g) W" C3 {- T. t - (set_tile "s-s" "spline")
% K5 F; A1 j& b- S; x. q- V1 M - (set_tile "s-s" "straight"). G0 M# L: K0 ^
- )
* C% z6 p! G; y0 w" }: ]! i - ;; Start the dialogue.8 |' O# M8 J' I/ k
- (setq dialog-state (start_dialog))! R& N8 O" Q3 l# Z
- (if (= dialog-state 1)
# Y1 s' Y& l# ?/ K - (progn0 f% [$ `" D( ?8 R
- ;; update the style$ }4 t# t1 r+ l6 n1 [
- (if (/= dimsty stname)
' ^" E- V+ f" B/ h - (progn
1 K) z, j7 _( U - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case6 \! l( L3 Z8 d2 C$ d# }2 O
- ; doesn't have it.% d! U3 K9 ?5 N2 F( V/ H
- (if (null (assoc 3 elist))
' @" }6 e) Q' W% D" p - (setq elist (append elist (list (cons 3 dimsty))))
6 t, R# q& }& B# w0 S9 W- ~8 Q - ; else just replace it.
/ w! p0 e6 g$ F - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)): q. e" Y. l/ i) d2 ~7 A! n
- )2 _$ m) c$ N2 W, t1 B
- ; refresh sv_dvlist with new dimstyle.' ]6 w6 g: ]! @: y0 W9 J
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
7 p# K* ~( s4 z a* }3 m. G$ a - )% K% d5 l% P5 B& ]0 b
- )
8 k+ K% l2 P3 Y* y - (if (not (null dimlist)) ; attempted to change dimvars
& M. [* V+ t. E& |& |, b - (ddimen_complist sv_dvlist dimlist dimtbl)
0 O* U5 b1 V8 B8 R( p2 q5 J: E* K - )
5 Q: u" m9 b" Q+ k - ;; update for ARROW.
* z# ]) Y& ]# r S% [ - (if (= "1" arrow). k4 W# {5 n0 c# a0 p
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
8 h- Z1 ^2 h) y8 L" A - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))3 N; ^; X0 Q" r8 ]8 _# h5 w1 O
- )
3 Y& [. I) F3 U8 [. d - ;; update the TYPE./ |5 d! ]5 V& X
- (if (= "spline" leadtype)
, \/ m0 v4 F5 y7 o( L - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
& U* ~4 O, G$ o: v s% g: W - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
& s, q! v0 {, h( u0 _% v0 t - )
( B1 e. p% k! ? u8 D - (modify_prop_geom)9 y, B! ~% X7 u, I
- ;; update the Color9 P) T1 ?- m- } X
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
5 M4 ^& V: {& i; \9 t0 l7 G, x - (entmod elist)
5 b( H6 S" m8 A+ y/ W; n c - )
1 g, y6 C Q% p% `5 B, z - )* R2 N# o9 F6 L9 r$ h0 F, d
- (ddimen_setvars dimsvcurset) ; Prepare to exit
+ D- D& K3 v/ }8 S - )5 g' o- L. o# V
4 t8 M4 ~1 B( M" ~1 b( h& {0 `- ;;
! c& k1 ~" m. t8 M - ;; Get dimvars of a dimstyle with overrides.
# B$ }1 }1 J) a& |0 o! r" N+ F, m O - ;;; y C8 A( k |$ H( E
0 F6 c# M, h: H1 n" {- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)) M+ p0 D9 Y& C# x% o [9 Z- Y
- * d6 h) f5 ^8 a6 J6 S
- ;; Get override information for the specified entity.6 j6 u# d' k- r, H
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
5 Z# l, Z4 L) M, L - ;; must obtain override information through this tedious operation.
" p& R4 R8 Z; G6 n - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*"))))). g2 ^/ I! B4 `
- dvlist (tblsearch "dimstyle" dimsty)* P" L( u; Y( Y. f
- i 2: s! h9 y0 o5 U% Q7 Z m: N& ^0 ~
- )
' {5 o* `- s2 f6 c0 C
8 q7 w+ m1 i4 M% R- ; Update the list with overrides if overrides exist. T2 n& v% s0 p7 Y. @7 W: e
- 0 b H8 c/ o) Y) M9 A- t& x; r
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
9 x# i: O Q( |3 N* q - (progn
4 k3 Z& {* ?1 ]' m - (while (setq elm (cdr (nth i dimovr)))( u9 O0 ~ m I7 c; O& D5 ~
- (progn4 _; ]& l7 O/ s6 v, ~! K- G
- (if (or (= elm "{") (= elm "}"))( E, {: q' c- R/ F2 p" b4 M
- (setq i (1+ i))
1 [; Z5 z6 ]; f+ d - (progn
6 {% g: f& K+ V- ^! i9 ]9 ?4 ~ - (if (or (and (< 180 elm)5 @+ U0 \9 `, v6 n6 f4 D, K; D
- (< elm 190)
! {; Z9 P8 y6 E- l, A+ n - )
8 Z9 V* {7 ]9 I - (and (< 80 elm)
0 y4 G3 e6 y& C$ s) W - (< elm 90)
+ m- S1 ~/ r& N - )
3 }( L/ v/ _& E! P' ? - )
( C6 f: i9 B4 R8 X* V& I9 ] - (setq elm (- elm 10))5 l1 y7 H; E0 R, B+ q
- )
6 e+ K, C) K; r% c2 Z - (setq i (1+ i)* X- P# h9 G3 A: d5 c+ B2 n# R
- elm (cons elm (cdr (nth i dimovr)))- a1 ~' z. H, A/ w7 ~
- dvlist (subst elm (assoc (car elm) dvlist) dvlist)
0 N& Q! I" n# X& A& E - i (1+ i)$ R/ T' P+ z4 H
- )
* `& f( M) N# q$ a+ C - )
; d( x7 [8 {$ C% _+ R9 f - )
6 C4 I7 I) K4 P- P4 X7 N5 [5 l - )
: s/ [' f( q1 b* P) @" n% k; g - )
1 }% x+ x; m, k% S3 }) a7 A) X - )
* L6 V0 t v h - )
9 b8 d# w* `+ L# k - dvlist
) y5 ]6 R8 v# T& q, Y/ ?1 ^* r - )
, O6 s! x2 Z! U1 `4 C7 s
# T, C; a. p( i; K4 s! S0 y- ;;
/ W/ Q8 X4 E3 ^/ B - ;; Modify POINT
) a, e& g& K, O2 X G - ;;, |6 v- V9 Q' F, t+ S
- (defun modify_point ()
' r. ~8 L& B: H1 s - (modify_properties)& A0 V( P5 `$ t6 Y8 Z
- (setq pt1 (list x1 y1 z1)); K0 r. o$ M$ \* A. J
- (tempmod pt1 10 0)
5 d- M) m; f& V - (entmod elist)
/ R, O1 \$ ^. j! S - )+ w/ ?, t8 [1 E3 a' S
. b1 M& V( V! p* [- (defun ddpoint ()4 a6 J' E& R6 A$ s6 Z1 ?
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
6 D3 P( S/ \5 H3 H - ;; Set initial tile values
6 D: Z, c" C( P! I+ Y% v7 t - (set_tile_props)9 L* [; J W) d* R2 G. i5 ^/ H/ F% e
- (set_tile_handle)% F7 D5 b% r: J
- (set_tile_pt1 0)0 s% }; a/ d o, c8 b8 T k
- ;; Define action for tiles- W' z& n+ E7 i; z8 _3 Q W
- (set_action_tiles)/ ~: j" S& `8 Q! r$ q7 H& u1 U
- (setq dialog-state (start_dialog))
5 W1 p2 G" R5 O6 \, m6 ]. a - (if (= dialog-state 0)
! C& V r" L9 m2 ~8 r) W. G - (reset)
7 i7 }$ j, R R/ T; r4 H9 X - )
7 U$ O; {, W7 j: e( \: s - (if (= dialog-state 3)* _# d6 B# v) }; Z1 ~
- (progn
o* r( i% Y7 E9 B - (modify_point)' E- w6 E( B: U$ y# N
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
' K8 i& s( n$ h" t - (ver_pt1 0)
+ Q2 m% ~3 {9 B6 A x* w - (ddpoint)
! c8 H9 R8 `! u# G* ~$ _) L - )
, y. k# P7 i* j e5 O - )
! T* w$ g, W) ]) { - (if (= dialog-state 1)" @: Z2 t1 s5 k8 L, y
- (modify_point)
+ o- y, U: p9 N0 W - )
- ~" [& V" {4 ? - )
9 c" O& I8 ?: L! u/ ]4 {* D - ;;3 l& E( Y) I! V
- ;; Modify LINE( Q3 q( n2 K- g' ^* e/ O% E
- ;;, p+ F' s0 H0 I- Y( N
- (defun modify_line ()
: Z2 C+ W- |; A* s - (modify_properties)
6 g2 ]% z- b; Y, W# r6 [$ x& ]- q - (setq pt1 (list x1 y1 z1))6 c1 P0 U) |9 k% Q& |7 _* D
- (setq pt2 (list x2 y2 z2))8 M) N Z6 m- q4 }# }
- (tempmod pt1 10 0)
9 W+ l5 I y7 U' K- ^: F7 f - (tempmod pt2 11 0)8 m. x; [" Z& o9 K- `0 z
- (entmod elist)
3 f8 g& m; e2 m; \/ k - )5 D8 C5 l6 r E) P1 t' r
- (defun ddline ()/ s. M; t; b' f4 u0 @) k! |' d
- (if (not (new_dialog "ddline" dcl_id)) (exit))
/ ?" I2 O2 ?4 ?0 n3 L' o- n) V - ;; Set initial tile values9 q' a$ L) a+ y8 s" y" _/ `
- (set_tile_props)
6 q4 p+ H" V$ A1 V - (set_tile_handle)
5 B8 w0 ?; ^ x' T6 B0 [& T - (set_tile_pt1 0)% C4 F8 G) F ^( C' L& y) A/ Z' C
- (set_tile_pt2 0)& {% f {" g2 q8 R: ` V6 H
- (line_calc); q1 u6 v6 l$ p. l3 [
- ;; Define action for tiles0 n& e# h/ x$ m& u: B4 u3 V; \2 t
- (set_action_tiles)0 b! ^- ?/ W6 J3 ~- ~
- (setq dialog-state (start_dialog))" D( A) Y0 [) ^: O# \6 u! l
- (if (= dialog-state 0)
e; G1 u, n; T, u' S - (reset)
) ?/ ]+ \3 y, B5 h1 V. o! f1 a, M$ v7 j - )
, V) G0 P- X7 ~ - (if (= dialog-state 3)3 o: N' s1 n$ h8 @0 V1 z. n3 U
- (progn
" J1 z$ o' P, L - (modify_line). c9 \# P6 g b2 c/ A1 ~- U4 X
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))1 c! H' w. Y n6 e$ W
- (ver_pt1 0)9 S4 t2 p# c4 B
- (ddline)
% Z m4 |" c! t- E' o - )' R7 }+ d5 U! i/ g2 p' g; H
- )
9 E% H" T5 X, d% |: n5 P3 t3 G - (if (= dialog-state 4)/ J; w+ i' b$ M8 g1 T, n0 w1 D6 a
- (progn
i; y6 s' s# o - (modify_line)- b b) R( d* j1 |2 l; l! [% M0 N
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))# X& ]1 i# g2 Y
- (ver_pt2 0)
# n- M: @" N4 p9 D S - (ddline)
% M' z4 Z4 \3 {% z1 V! h# O - )
) c6 h) X4 Z! M; D) |" \8 L - )
; p$ m% a7 n" S/ x2 ?! A - (if (= dialog-state 1)
/ r" j, w; J m, Y& R - (modify_line), m' q/ p3 w5 m* S, J
- )
1 M; u# K) _9 `* L - )* i& }' L+ s7 H* }6 }! _
- ;;
& J1 K* U q& y* B9 W& u8 Q - ;; Modify MLine% F0 U$ i) d* f+ D3 d
- ;;# L) |, `' E0 B3 t q, a, [' y9 a
- (defun modify_mline ()
" Z; t1 c3 E P; x z( ?2 k - (modify_properties)# i" O) u. W$ S- v2 k' J* A
- (entmod elist)5 F! |1 A- u4 E
- )
: Q7 H* E- ?$ y1 P$ G# z: W' ]* B - (defun ddmline ()
3 V6 y& f1 c- v) p2 ?: j- n - (if (not (new_dialog "ddmline" dcl_id)) (exit))$ Z7 n' \0 o3 [2 F8 O
- ;; Set initial tile values
4 I( e, }/ N9 a - (set_tile_props)
9 m$ W+ @; D% r' D% } - (set_tile_handle)
, H1 ~7 Q' j' n1 s9 F+ R - ;; Set mline style text field.
0 }6 ^* {7 g: h - (set_tile "ml_style" (cdr (assoc '2 elist)))
; m3 u7 \- ~5 `: k/ n/ b! a& z - " C2 m6 l8 u/ `/ U/ L: E
- ;; Define action for tiles
( _0 B- [. k+ Z3 ] - (set_action_tiles)+ A, Q* |% G- g, |( B. _
- (action_tile "ml_edit" "(done_dialog 3)")7 A- o9 w- X/ H7 R+ w; H
- (setq dialog-state (start_dialog))
) y8 q P5 F6 ]+ ~; H5 |% N" S - ;; Dialog cancelled, reset to original values.- J1 I" P% S* F6 |0 I
- (if (= dialog-state 0)
5 E2 B& o" L2 }8 r3 H& W2 d - (reset)
4 a% w6 \( ?: v - )) q3 P8 H2 z& R, n
- ;; Dialog OKed, update the mline.
# v, E% ?5 w% w* L4 A - (if (= dialog-state 1)
6 G! {3 u6 E2 _1 O0 R - (modify_mline)
. Y" S0 d3 U8 w7 s+ {! j, r8 w - )& Y0 d/ C) I9 y& w' g
- ;; Edit Mline, call MLEDIT." J# |" N0 R% E( Q
- (if (= dialog-state 3)' G8 k2 \0 l# K ]
- (progn- ~, ~+ `/ v. g+ a1 }
- (modify_mline)
+ P9 q" c5 | W, c4 ` - (command "_mledit")
2 }+ p4 N0 z8 y+ P& q - (ddmline)
( S- n* z7 E7 I - )
1 i4 H" \8 R: M2 _& g! ~9 I - )* Z% M( Y) y5 ^
- )
4 y; N% C ^3 c- T - ;;* ?+ m l% b6 z8 a5 F. n7 g
- ;; Modify Xline
3 l' X `0 k& K7 b4 c3 W ]2 r - ;;
& q7 N7 @/ C3 A; J J, ~ - (defun modify_xline (flag)
# ?: D x7 _" Y; h' \8 D. R# `# P( C. v& B - (modify_prop_geom)
: E2 I0 K3 b; E1 `3 s0 I" U$ T - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
& i; \$ H1 d, Z9 g" x$ R3 L5 a( T - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))% Z- h7 D2 ?- c5 l
- ;; Update the Root point.3 @) P1 E: M5 Z" y0 k; l
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))
1 E9 n& g( H8 O - (assoc 10 elist)
8 q! I2 j" X$ q9 c8 h& a: V - elist
6 l1 a4 E$ X- X# _ - )
0 b, u) N5 N8 i1 ?* E - )% H- `( G7 ~5 U& k
- ;;3 q$ X* z+ J) N& z
- ;; Calculate new Direction Vector WCS$ A7 D0 X/ g* o4 K
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) )); u$ |9 d6 ~. A) i: m' Z
- - s0 R7 O) Z- @5 I. A/ t7 @
- (setq temp_dir (trans xline_pt2 1 0))- A- {. M& J( V D* g- t) ~
- (setq temp_dir_x (car temp_dir))4 D; ~" A+ h/ q3 _+ c" `9 f
- (setq temp_dir_y (cadr temp_dir))
0 b! n9 |" v; ?- a% @ - (setq temp_dir_z (caddr temp_dir))
; Q; Q1 U) `: [: g
3 L) w9 ]2 R- I- (setq temp_xline_pt1 (trans xline_pt1 1 0))
* h. R9 z A) s8 f' d, h# c# A' q" T - (setq temp_xline_x1 (car temp_xline_pt1))
' W, l3 B+ P9 s* T6 H( I - (setq temp_xline_y1 (cadr temp_xline_pt1))/ z) Z0 X' {+ X$ ~0 ^7 o; B1 p5 n
- (setq temp_xline_z1 (caddr temp_xline_pt1))
7 |+ t3 l4 p+ ?) ~) L+ h8 D
/ r- K; N5 @$ b& F' t- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)" d0 f. o! a# @& q7 P7 Y- j: }
- (expt (- temp_dir_y temp_xline_y1) 2)
3 a; u8 ]& `7 A; Y! H5 U- G! r - (expt (- temp_dir_z temp_xline_z1) 2)- U8 y8 i. r* Q, W
- )))
6 Y3 F2 `* |5 C1 D- N - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
a r e m7 K8 P0 p - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))( @' _( Z0 Y. _! f
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))- o9 x) G. Z+ O, m R" l
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)), z, e! Y# S+ Y7 o+ B3 ^
- (assoc 11 elist)
! C0 \! T" E' L; R5 b - elist7 |( {" [& }% J2 }1 W6 ~" L8 r
- )' W0 Z# P7 N: t' [1 d" {( z
- )! w4 m, |% ?* B8 d2 S
- (if (= 1 flag)
0 V+ O) Q* w& F1 j7 y - (entmod elist)
& j b, ~2 M" R7 W! F# n - )+ ^4 u, |* v) s$ L1 I3 J
- )) M1 W% I* h' X. n, A& x
- % V1 i; _. }3 q. U- M ^1 x
- (defun ddxline ()
4 r. ]" |* P; d: h - (if (= etype "XLINE")) w2 q M2 ^# X# Y; Z. k& ^0 p ~
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
+ H7 r$ Y8 K) K9 t - (if (not (new_dialog "ddray" dcl_id)) (exit))
5 z9 d m9 M ] - ); k8 A# n8 ?5 B2 U
- ;; Set initial tile values
# J* n, S, q4 t$ w9 I; Y1 m - (set_tile_props)! A1 Y3 H* |/ @( w# l7 W
- (set_tile_handle)
6 k5 ^: H: ? P - (set_tile_xline_pt1)9 [5 {( j5 \- }$ H9 p& ?: V# e4 s
- ;; Convert to UCS and post Direction vector./ y' \1 K0 W/ Q
- (set_tile_dirv)
* F3 w8 X: P5 u2 E - ;; Calculate second point by adding Root Point + Direction Vector.) U5 \" Z2 j! F$ l, m1 U! W* w. b
- (set_tile_xline_pt2)
) h' F1 B. N- F) ~. }( ~8 ~7 t, N - ;; Define action for tiles' I" [/ e3 U. u7 [& W
- (set_action_tiles)) j+ m% i& I1 J; ]6 _! ~
- (setq dialog-state (start_dialog))
3 G0 K) U4 f$ r& S4 d/ C8 a, ~ - (if (= dialog-state 0)
7 ~+ O( N. t. |; [6 \% D1 S - (reset)
: N# n& p1 V! O: @8 Z! N - ): D$ V5 \+ B$ G4 J3 l( e
- (if (= dialog-state 3)
" f* a( F# @, ~' q* O. B - (progn
; `4 t/ m P4 x/ D0 e" N; \ - (modify_xline 1)
% z$ b; {, S( M8 b l7 ?7 C - (while (equal xline_pt2
" \2 C* W6 R; Z" r' N - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)4 d5 I# k) ]- z* ]
- (princ "The Root point cannot equal the Second point.")
% ^: r5 [% ^ V - )
" U* W% r5 W( C3 t - (ver_xline_pt1)
; _" C# l t# z( r2 ?7 G; C - (ver_xline_pt2)
, Y0 B1 h' X# Y! f. i7 B# e4 {; v - (princ)5 C3 p1 z. c. s* g) t( e. x, m0 {
- (ddxline)
3 j2 R& ~% A, z b - )5 Z5 X& _5 ~$ o6 W; U
- )' p' f5 {( L" g* T- A/ @
- (if (= dialog-state 4)1 D. h# w, P1 p: A
- (progn
5 ^$ X# u' {4 z - (modify_xline 1)
# R5 S2 }5 D* o- i m5 r - (while (equal xline_pt1& T/ \; I) d6 ~& K
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
& c" ?! y6 S6 Q2 ?" X. T - (princ "The Second point cannot equal the Root point."); P3 w- B! Y, t# f+ X
- )
% S: [1 T$ T+ x; [- _ - (ver_xline_pt2)" K% I+ C5 w3 g3 Z1 r& m& q) w
- (princ)# h' K( ~$ D! [9 h+ V
- (ddxline)
/ k9 R& k1 O& R& Y/ \1 N - )
, o- S0 N& \* o: ?; j) g - )4 f9 r* P+ n9 Z3 K+ Z
- (if (= dialog-state 1) ~' x* s% ^0 C, I+ d7 H* I: c
- (modify_xline 1)
/ Y+ C3 x% l) U' F - )8 O1 t, L s) F0 s! L, f7 A
- )+ C: _6 X' i4 h7 w; p0 E! u
- ;;& a! u/ F' k) U+ ?. {3 P4 K
- ;; Modify ELLIPSE& m+ x" D6 M7 X, G- L0 o1 L
- ;;
; l' @4 W) `$ b, l - (defun modify_ellipse ()% m7 o) [% P: p, D
- (modify_prop_geom)+ O: M u3 U; p0 ?4 ^, L
- ;; Update Ellipse Center Point value.
* r1 }8 i# v8 _; ` - (setq pt1 (list x1 y1 z1))8 R5 E) b$ P1 G) W
- (tempmod pt1 10 1)
, W8 F# H( \9 C0 [; u - ;; Update Start Parameter value.
' Q; q3 s! r" I2 d1 Q - (setq y_val (sin st_ang))$ w1 k6 i3 y6 I5 U. r. G
- (setq x_val (* rrat (cos st_ang)))7 ]5 s. h4 c( L' ?; }" C5 l
- (setq stparm (atan y_val x_val))
$ M" Z! l+ l/ h( s - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))( q7 h9 m: R8 A0 s f% C; w
- ;; Update End Parameter value. Normalize it, if it's less than8 W/ R9 g0 G* R8 O' z4 x# P
- ;; the start parameter.0 T8 P) }! V0 F) @6 \# T& C5 h
- (setq y_eval (sin end_eang))- r1 o9 b& F7 ~) K/ A ^
- (setq x_eval (* rrat (cos end_eang)))
/ |# e( A$ V& ]2 a - (setq endparm (atan y_eval x_eval))2 ?/ P) @3 @* e, ?
- (setq diffparm (- endparm stparm))
/ ], O5 w( j& u7 V- R - ;; Epsilon of 1.0e-6 radians for checking a zero length arc., J. J6 n# ]5 c+ v% e2 U
- ;; Since zero length arcs are not allowed - construct the full
3 M# u$ w) J. X, f - ;; ellipse in this case.: X$ G, m0 R6 z2 P
- (if (<= (* diffparm diffparm) 1.0e-12)- L" R9 D5 q1 u) k
- (setq endparm (+ stparm (* 2 pi)))( g* I4 T& N7 G& D. u
- )
5 [' v. U4 f; `$ ^8 {4 \! ~- I - (if (<= endparm stparm)' }1 |/ ?' @% ]* A6 V9 H
- (setq endparm (+ endparm (* 2 pi)))* ^/ d) F6 n( L
- )
' B* u1 ~) ^- C1 b3 p - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
- h, A7 {7 `* r - ;; Calculate the Major Axis Vector by first calculating
" D( {9 T! I }) H5 }7 x3 n; l - ;; a unit vector using the old Major Radius value. Then/ W8 n& P" F$ h+ U( R$ e
- ;; Multiplying that by the (possibly) new Major Radius2 E0 I5 s8 ^3 w0 M
- ;; value to get the new Major Axis Vector value./ u& f% }1 N* c: i! ?" _
- (setq unitxx (/ xx old_majrad))
$ y* i8 G: b: t - (setq unityy (/ yy old_majrad))% ~& ?9 e' M# v8 R% p
- (setq unitzz (/ zz old_majrad))
3 z( |8 U2 z \+ s6 f$ g - (setq newvecxx (* unitxx majrad))
4 M" ?5 Z3 f$ m5 |( m - (setq newvecyy (* unityy majrad))
4 d2 v, ]# w9 }- e3 I - (setq newveczz (* unitzz majrad))0 O* _. T! k6 h, [6 a6 A6 z
- (setq newmajaxis (list newvecxx newvecyy newveczz)) S: S9 [; P: h8 F+ J6 y( L
- ;; Update Major Axis Vector value
0 D7 D' M1 v( y7 K9 h- c- |+ F - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
. X- L' f! N8 m8 H2 } - ;; Update Radius Ratio value8 |4 b5 b# H/ r) a3 q
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))+ F9 Z. [+ O1 g- e
- (entmod elist)! {& Z. u' q; p; _# t% {
- )
4 X* r& P9 b: Y' a6 A5 I - ; g: i( F+ g+ n! X3 B* h
- (defun ddellipse (); P, X7 Q. ?- c6 ~' N9 n. W1 B) n$ B
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))- b) j7 ^! f. y9 ~: t; S1 J* y
- ;; Set initial tile values
/ a ]4 {9 e+ v$ `. g Q - (set_tile_props)
8 G7 ~' T! K+ E, U/ D! k - (set_tile_handle)
# v# }" Q; r0 i! k: p7 y. X+ J5 r5 [ - (set_tile_pt1 1)
) H, ~3 [/ C1 I: W - (ell_calc)
, `3 e: k5 r" U% U - ;; Define action for tiles& @& d6 d$ _1 G# k/ T$ `( f
- (set_action_tiles)
/ n2 R/ N( r$ ^( e! y' r/ C - (setq dialog-state (start_dialog))1 |6 a5 M/ S2 I( ?+ T
- (if (= dialog-state 0)) B$ Q2 ^2 |$ T W5 x. N$ M5 f
- (reset)# U& d3 j' p! @& c7 s9 B* u$ b" P
- )7 ]5 H4 D2 ?# P U& B/ `( L
- (if (= dialog-state 1), D X. ~. W' u
- (modify_ellipse)7 q+ m, u) v, b: D' F$ _
- )
0 h5 I% m% ?: m* E3 K - (if (= dialog-state 3)
, m* p# ?8 f( |7 n1 w1 } - (progn( ]8 N% N: ]; W" l# M+ c6 m
- (modify_ellipse)
7 @8 W9 j" o5 z* W( W( _4 o - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
* f- ?# `8 [) q$ S9 z4 y - (ver_pt1 1)* W/ u) s2 y, j
- (ddellipse)
7 x, z+ I2 C3 V! k' H! g }6 C - )
3 R4 G! d/ W9 m" Y1 R& q/ S - )% s4 O `9 v' a* P
- )
. H/ r* e: O* S; ^( n m - ;;6 D8 z- N0 \ R2 M, p
- ;; Modify REGION
. t. D' o- c: L) i - ;;
* i, w' e: j( R" C e - (defun modify_region ()- A3 b" C, z1 x0 ?
- (modify_prop_geom)5 R* q, R& S ~4 ~* K
- (entmod elist)- p+ ?1 m9 ~$ r" s, O+ |9 c8 `
- )
7 X' g. S- _ w) D) H- x) g - 9 N3 w) b& V( q( @8 |- }: _- P g5 Y4 N
- (defun ddregion ()
% i2 ^( @# P$ n q7 r - (if (not (new_dialog "ddregion" dcl_id)) (exit))& w0 y1 m0 v% z6 A" ^2 |7 e V
- ;; Set initial tile values
3 l5 Q* [5 G: ^- F, l: | - (set_tile_props)
" l" q, l7 Y1 s0 G+ C G$ R - (set_tile_handle)4 ?& I( u/ ]/ }- Q
- ;; Define action for tiles/ W7 n2 s9 ~7 ~' i
- (set_action_tiles)
# P( O$ c: c& e - (setq dialog-state (start_dialog))3 P! s: u4 A3 {" x" f9 c3 P! g( A
- (if (= dialog-state 0)5 Z) B: g' y! N. Q! G! J. o
- (reset)
+ [; Y6 u& R; b8 R) j - )9 w8 ]/ T3 f9 B! m
- (if (= dialog-state 1)
. |4 i9 c% p( y3 [+ Y& f: G9 n* ] - (modify_region)
: Z8 k3 z; ^8 M1 W3 ^: S - )/ r- ~3 m3 D' y5 ~( q
- )- a& e: V% m$ N
- ;;3 @2 R0 K, z: I2 P* A: Y- K, D
- ;; Modify 3DSOLID
5 A, U& G$ o4 ^ - ;;/ |" ?0 b+ \/ x* H, G* W1 U. j* w
- (defun modify_3dsolid ()- X% D1 f$ D; Q* {, V$ I+ F
- (modify_prop_geom)
) K! B! p3 i) R) M5 O' m - (entmod elist)
* F* W* ]/ h1 j1 f5 q5 W+ L, }( W - )" f l; Q1 L( P
- : `& g$ V; ?, B- Y. V: C- g1 p$ E u- V
- (defun dd3dsolid ()
3 j9 l- R) @- D4 _ - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
; ]2 ]$ |0 M4 h! h/ \ - ;; Set initial tile values
( r `, ]) }0 q$ n3 C: G+ X' r( q3 u - (set_tile_props)
7 A6 G' v. Y4 x' v& B4 G - (set_tile_handle)
2 a* v0 Y2 \# G5 z$ F - ;; Define action for tiles3 y: e6 T' ^" E+ I& E
- (set_action_tiles)
# D8 g+ T ~0 w8 E3 v - (setq dialog-state (start_dialog)); W5 v: A b4 w
- (if (= dialog-state 0)
: z. f" n+ z, E J3 E+ N - (reset)
' a$ `7 \$ e% F) _ - )
$ B' {% G, b, A B- ] - (if (= dialog-state 1)
$ X9 ~# r1 G# }- q - (modify_3dsolid)
8 i. {* _4 c; ?& I8 Q - )- L# W( k3 X! A( Q e9 p
- )
) f/ s& D4 U6 s7 C0 J - ;;
6 j+ K( r) R$ `* h6 F* M - ;; Modify AcDbHatch
- h. F* V2 X$ o9 d! @3 { - ;;
( O5 I) ^; _0 `7 ^3 W, M) z# e - (defun modify_hatch ()% Z6 R8 {9 f# B3 f: t5 q, J& q& m
- (modify_prop_geom)
, P i) T' q e6 N2 H6 w% c - (entmod elist)1 o# r! |4 v) d3 b1 v& [2 ~$ l
- )
- n' n4 D" q* X, _0 X. { - 0 u+ O" Y+ {( W$ D: R5 m- n
- (defun ddnewhatch (): M( I% o1 |1 Z1 h6 `! e; i" L
- (if (equal hatch-elist nil)
. ?8 _$ }8 e& E# J& y/ W( l - (setq hatch-elist old-elist)
/ G% Z0 U6 Z& L' H! a - )
. `4 o" }9 {; g# Q/ d/ s: D0 h
4 k0 j: T0 ^7 u) |3 j- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
8 I7 f7 j$ q! { J/ d( B - - R1 f7 q$ Q2 I9 o3 z
- ;; disable the thickness tile
6 V% P7 D8 \: F" X* g- H& f' M - (mode_tile "eb_thickness" 1)
* G; A ]! d* P, v6 H8 F - (mode_tile "e_thickness" 1)9 N5 q6 {% D8 u7 h+ Y% H9 u, [
, s. A0 w3 c# t+ T7 E* l) C- (setq help_entry "modify_associative_hatch_dialog")
) D8 ^6 m. P9 X" u5 U7 V - (set_tile_props)* M; a' g) v k: E) j. z
- (set_tile_handle)
$ W4 C4 V& m4 L5 P% F$ \' q
9 |8 P; r: z; r% h- ;; Define action for tiles
" k- S/ N+ h P4 g# c1 I - (set_action_tiles)
: a+ }7 x* G: z2 e* ]; [$ s! H1 l9 W9 k - (action_tile "b_hatch" "(done_dialog 2)")+ r# B/ F0 o @
- (setq dialog-state (start_dialog))
7 Y1 {6 L* q: ]- K: _ - (cond% b, s( g6 T/ e2 h; j, f7 a
- ( (eq dialog-state 0)
" [1 u2 w! b9 [4 U - (setq old-elist hatch-elist)9 R: T, p- b% L2 T1 L* Q' K t0 t
- (setq hatch-elist nil)2 H( [: K/ s9 I3 U
- (if (= (checkforlockedlayer ename) nil)/ b9 z9 r* I' j+ l7 j
- (reset)
( ]. j: y8 g8 {2 P, M: H' t9 z - (progn ;;; special handling for locked layer reset, [" X+ f+ {8 q5 H; H) V
- ;; unlock the layer! r2 g H2 b. e! W9 X+ ?) G& ~
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))" b$ ]% q" {0 H% ^" p1 g/ L. @+ w
- (command "_.-LAYER" "_Unlock" layername "")
' C+ G' D( u9 K& ~" S - ;; reset modifiction
! ]# W: F, F6 A - (reset)! z f5 |+ w4 e# \0 a" F9 Y
- ;; lock the layer again
* U3 m+ y( O1 f, U - (command "_.-LAYER" "_Lock" layername "")4 @1 Y% i6 Y+ S5 d) s; L( C
- )6 c- ]1 i+ o- G2 @. W, D7 f! O
- )- H! ~' l8 x3 v
- nil ;;; makes (ddnewhatch) return nil for Cancel
& l; i; j4 {* t7 ~# J6 b. i7 F2 V - )- |# @, u' H$ m' b3 A
- ( (eq dialog-state 1)3 O( e' u+ s5 J' O. {
- (setq hatch-elist nil)
. A" |9 ~8 p0 W - (modify_hatch)
$ r% M# D2 y" J - T ;;; makes (ddnewhatch) return T for Ok+ P4 J! k, D- o( p" A
- )$ t/ C. ^2 a. P5 t8 g
- ( (eq dialog-state 2)
8 r* o- M4 f' p. ~7 P8 I* ?8 t' a - : ^) ]; C* C1 R0 c7 U6 T
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
! c4 D0 z- {; @. N - 4
: v0 B. L5 b4 B. K - )
! q; G) M8 p: \9 H7 z - ;;; new selected layer is on a locked layer
7 ?- V, \% a& b+ R) x" H' ^" z - ;;; we can simply modify the hatch properties& O6 \4 n+ a; g9 j* l2 w% _" c
- (modify_hatch)/ H/ s' E: z4 q, W
- (progn; x; ]6 p; x. U
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))/ |4 q$ Y7 j/ ^: |( B3 u5 b: j# {; w
- 4
7 I8 H' r- X- S2 G2 F7 q+ g - ) ; j# [$ J1 o( ~! G1 L% a
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
* }: T# @9 C5 j1 f5 g - ;;; We have to unlock the layer forethat we can update the hatch properties.* }. u9 c: g% j7 R6 d0 `+ j# a
- ;;; If we don't do that (entmod) fails to update to the new layer.1 ^+ F4 t1 L) @7 d4 S4 x
- (progn
. O) \5 R/ |4 ]& y4 Y; U0 p6 E - (setq layername (cdr (assoc 8 (cdr elist))))$ F9 R1 `+ Z7 u- \) H$ d; T" b# O
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
; |7 C) Y2 r) V: Q, K7 P3 x3 h! H. ?' u - (modify_hatch) ;;; update the properties8 `+ Q; ^% Z8 m
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
% @5 d. u& L. Y9 G% Z - )- e1 V3 O% J( r; `( O: `5 w
- ;;; All other cases we simply update the properties
8 [0 e6 x& }0 u4 x" `8 j - (modify_hatch): |) P" u/ r( g
- )
' x6 G% Q* N( `5 Y - )2 M- H' l! K* S* w; a4 |' t
- ) " c/ C/ b! F5 Q
- (if (= (checkforlockedlayer ename) nil)
) x: n. U( ?. I3 t - (command "_hatchedit" ename)$ I3 {0 p1 \: s1 N! O& e( I: j! k
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
0 @3 l$ Z- |4 P Z$ Y9 s9 O; p - ): S2 p9 l. o1 K* P \
- (ddmodify ename)( [( V) _" E' {; K! e
- )
6 o4 j- ]. |, F9 Y - )
2 C" s2 b; o5 L+ b- a0 |4 b0 m7 e. ` - )9 W' I8 o! [+ B7 @' O \% A
- ;;( I& W' L4 p3 Z% P1 t+ X# P
- ;; Modify BODY
8 ]6 Q3 n+ @$ g) _ - ;;
0 G/ {0 M5 \6 l4 L8 e' U0 y, [1 @: I - (defun modify_body ()4 X3 e# c0 @# O
- (modify_prop_geom); ?! v$ N2 P) b2 A
- (entmod elist)
: n/ l' n; |, G6 P/ H3 d) f - )
; N/ G9 V& Q& L9 }1 ]3 k$ ~! @1 {6 m3 J+ W
; Q9 M% x6 x- J: y% A- D- (defun ddbody ()
! U2 [8 j# B* n" Z - (if (not (new_dialog "ddbody" dcl_id)) (exit))
8 i/ f5 b' e+ }3 s8 n C, ? - ;; Set initial tile values0 s3 S( E6 ~# C% b) }$ x
- (set_tile_props). y) s: M9 y+ p+ K; K
- (set_tile_handle) j ~" S( e" L1 m* l4 R
- ;; Define action for tiles9 k* @6 {$ S, q. @
- (set_action_tiles)6 Z" u- g( v/ F: X8 t
- (setq dialog-state (start_dialog))8 }" J! T+ l+ ?8 Q( i7 U
- (if (= dialog-state 0)
! D5 N* k: J& t9 [! y/ g - (reset)2 [: Y9 C" T7 F, S7 x4 Q3 v) K
- )
: O) [1 A2 X7 W - (if (= dialog-state 1)* n) r' W3 P, @4 h2 _
- (modify_body)
( b' g5 m& ~' W1 H - )
: W( r0 c/ H U+ ]- `# \# |0 q - )
+ c P- u8 g0 K# D& d - ;;
4 `6 y; Z8 r% l& G% y7 f6 I - ;; Modify CIRCLE2 U9 Q& P8 g1 o7 x' F' Y
- ;;, j4 k" l- I0 x9 y2 t
- (defun modify_circle (); _: L& F& Z- Y+ w2 X. L" @7 s
- (modify_properties)4 r ]. e+ D# O8 i9 g5 D
- (setq pt1 (list x1 y1 z1))
/ X7 P$ m' |( Y: ?) D% c* N) v - (tempmod pt1 10 1)2 B1 z6 h# \% s" o6 p; v
- (tempmod radius 40 nil)
$ Y8 b4 Z! S% ^, z, t" J+ G - (entmod elist)
5 Q5 V y- }% U9 M - )
* T* x7 q8 w5 r9 d2 o. V - ( g; f( J# ]% A% x
- (defun ddcircle ()0 @. S( e) A' }9 i5 Q( d& s
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))$ W9 Q F% C' [) a) R
- ;; Set initial tile values/ j8 L7 y' E H3 {6 i/ A1 a& a
- (set_tile_props)- r0 j" b2 K' ~ B/ B4 b' w- n
- (set_tile_handle)% |7 x5 s1 f/ r6 w
- (set_tile_pt1 1)
4 G7 |/ k. w# X8 t7 L1 ` - (set_tile_rad)- \1 d) P, I* e2 I
- (cir_calc)
+ y- m7 Y; N6 [0 k - ;; Define action for tiles
+ a" E6 W6 Q8 ?: F: x - (set_action_tiles)
0 I6 ~ ~4 c% B# D' u8 a: z - (set_tile_pt1 1)' k7 u/ b7 |; f- u1 y" x4 N5 P d6 s0 y
- (setq dialog-state (start_dialog))
/ f: F5 J$ ]; ?7 D" K( i0 Y - (if (= dialog-state 0)8 e. S6 q! J! c+ ]9 t4 ?
- (reset)
: _4 \# |% [. Y# O& t$ a, _8 h - )
6 \# _0 P/ |$ w' _# D0 h) r - (if (= dialog-state 1)3 |- a; x! u. ^ ^8 D' @
- (modify_circle)
$ C' y; O+ F0 n: v% @' T - ). T% C5 d3 d. }
- (if (= dialog-state 3)
8 \# l7 |3 H. S+ | - (progn1 p& T5 S+ c; h$ v( ^4 e7 a
- (modify_circle)0 {8 ?$ j1 r! K
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
8 G8 m/ H {0 M' l - (ver_pt1 1)3 ]# J. U8 B7 B3 d# o
- (ddcircle)& p- P1 X& [! j1 b0 N' n% E
- )+ R( h j. P3 N, A+ T j
- )
+ | ^* c; h* V" {- F- \ - )* p/ {/ n' p8 t
- ;;
# K' i* `1 ?- I - ;; Modify ARC5 _) E# z Z: R, O- z* Q
- ;;3 X# X0 Y; y5 h" q
- (defun modify_arc ()8 g( z) U3 X" d- |: g( ]. H
- (modify_properties)
2 }6 I% a! k& S# {( A8 c - (setq pt1 (list x1 y1 z1))( s4 e# ~5 n- W8 `: Q
- (tempmod pt1 10 1): q! R7 H( R: o' L, {
- (tempmod radius 40 nil)/ L' j3 z, A, Z, f U8 Z8 z
- (tempmod st_ang 50 nil)# X3 m; A( h9 l- G" R R
- (tempmod end_ang 51 nil)% _" U a/ ~; F. {
- (entmod elist), f- ?; `3 N& E5 n
- )
/ j/ a d) ^; z* u( q7 G - (defun ddarc ()
# B4 ^5 ~: t: U0 s6 k# D- Q8 G* t* N - (if (not (new_dialog "ddarc" dcl_id)) (exit))
1 d9 _1 k2 Z8 @2 p9 F" _ - ;; Set initial tile values
1 G# L3 [% G. Q& M& u9 d& y - (set_tile_props)" o: B5 j4 q" W4 S
- (set_tile_handle)
w. |8 X: [( O& T - (set_tile_pt1 1)
8 ?" R. O1 w# J$ ~ - (set_tile_rad)- B0 ]: e2 R* Y5 Z
- (set_tile_stang)3 @! `9 O6 J4 Q
- (set_tile_endang)
3 i( k& f( [/ W7 b: y - (arc_calc)
8 }6 x2 H* |2 E4 P5 ~: q2 Q - ;; Define action for tiles- Y; u- o% I. D. d
- (set_action_tiles); k- I& ~8 V) r- @' ]4 \: A1 ~; r
- (setq dialog-state (start_dialog))3 ~" ^- E1 L/ j4 }! s1 a' J
- (if (= dialog-state 0), T2 K- |4 @* v& K
- (reset)
z" s l" l( {" ?( r: [# y8 N* L0 _ - ): c; j' T# O. }7 p+ p' D
- (if (= dialog-state 1)
$ O& P+ K1 _0 Z" h - (modify_arc)
' j! r7 A! y' _1 \" g3 Z) k8 {" X - )
' B0 M- v# o5 Y. r/ k/ A0 s4 d - (if (= dialog-state 3)
# l! R8 s# R! g. u# {+ L' T5 F! r- w - (progn
! l0 w5 o2 D4 ~. | - (modify_arc)
$ @# a) f! [& V9 r6 F% S - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
' [% N' `. B6 r( v - (ver_pt1 1)
0 ^4 p8 l. L! E1 a# p - (ddarc)
9 A) _; S9 v* ^ - )) i* e, u3 N5 h4 M, ^+ w
- ). m1 {# m8 i" V# z, W- x
- )5 n' B; I, N1 \" T- O0 W: B
- ;;4 K3 }. O! ^5 @$ y# @! d0 D2 A; I* U8 R
- ;; Modify SOLID or TRACE
, _( `- @, ?( b# e& h - ;; Note the Z value of the object is determined by the Z value of the fourth
3 B; r* |( h' C' E$ A - ;; point - code 13. Changing the point values of a solid or trace from a UCS3 ^! @) h; l# G( x6 _3 B& p. O
- ;; that is nonplanar to the UCS the object was created may confuse the user.
6 @8 p* x. m$ Q; t6 E - (defun modify_solid ()
, _# v. _2 J# j/ X" y7 ] - (modify_properties)
" r1 |7 P, d% l( o3 R3 g+ I - (setq pt1 (list x1 y1 z4))
: {9 {+ v7 n4 q0 b6 t& q! c: b h - (setq pt2 (list x2 y2 z4))
" |- f9 ] G1 [& Y( k( b - (setq pt3 (list x3 y3 z4))
4 p2 R q1 D7 F* k$ r1 \) F - (setq pt4 (list x4 y4 z4))$ `/ ?, Q! Y O& |' i! Y6 o- o
- (tempmod pt1 10 1)0 F# n' {% S# {( ^/ ~# U
- (tempmod pt2 11 1)
0 z0 F( Z: z i* E" n% V$ j( C - (tempmod pt3 12 1)6 |6 f- I6 }! r) g# n* [. ?3 k
- (tempmod pt4 13 1)
* b/ I3 W9 U, s - (entmod elist)! ?0 Z+ u; }2 S
- )
% L& d [+ Q9 w - 0 Z' i1 V% i1 \+ |7 S8 H+ A
- (defun ddsolid ()
' v3 B; {- @ ]* W - (if (= etype "SOLID")
& D# f& a0 N* h* U* Q - (if (not (new_dialog "ddsolid" dcl_id)) (exit))
5 _$ b6 v: c: }# U1 Z/ ` - (if (not (new_dialog "ddtrace" dcl_id)) (exit))8 G! y% |4 N7 k3 B2 X0 O9 k1 S
- )
6 q4 a3 Q, g3 e8 O, Z - ;; Set initial tile values# r2 \& e5 i u3 Z& W( C1 ]6 T
- (set_tile_props)
4 E6 U* V' X% @) u5 H, o& o5 { - (set_tile_handle)
8 n# k1 i0 @/ P' d - (set_tile_pt1 1)9 g5 Y& f" m9 F; E& ?( Z8 l
- (set_tile_pt2 1)' G3 Z6 o% ~; g
- (set_tile_pt3 1)
! {( v" F( q$ m4 X6 a/ e - (set_tile_pt4 1)1 K- b6 J4 P# y* M6 Q5 W
- ;; Define action for tiles! q2 r9 a& |8 f9 u3 C8 `5 H
- (set_action_tiles)
2 H. n. D! v3 h5 t, {( U - (setq dialog-state (start_dialog))
; z& ?3 R" k; Q - (if (= dialog-state 0)9 E( \' C7 o* Z8 b' A% a0 \
- (reset). q2 a) J* S7 u( A; K0 R0 e
- )
1 O# C$ l. n0 H+ J7 D. Q3 j2 [+ { - (if (= dialog-state 1)
) R) h3 J1 o& }9 P8 K - (modify_solid)/ n0 o5 z1 u0 e. U1 C
- )
h+ C3 U& `$ r4 M- @- d: q - (if (= dialog-state 3)7 [7 e7 C% C, r v$ B' w
- (progn
: @7 H% r0 J. }# n6 D4 \, Z$ L - (modify_solid)9 ^& i* ?# ]1 J r9 ]
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: ")); R! ]- K G4 m$ Z# E( Q
- (ver_pt1 1)
" ]& h* m( @& H& E - (ddsolid)
$ g1 x* W$ }+ t' m9 ^$ F' S O" d4 x - )* g8 ^# l! a5 |2 l* L9 A
- )( n4 t- h; X1 M& h( z. E
- (if (= dialog-state 4)
/ r% k1 O* V+ a' [* B" E - (progn
9 B# l" }3 D |4 H9 d$ y8 z* Y" A - (modify_solid)
7 s9 A' ?2 l9 @" M2 ]' P( U% N$ f - (entmod elist)6 [4 {1 W5 m) [8 z
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
7 b: u% z& H2 B1 V9 c ~1 i - (ver_pt2 1)% `4 L( l6 ]; w& s, U
- (ddsolid)( p# i! j) t( e. ~! S- |, P% d/ m/ C* I* C
- )
4 G& W: q. F B - )" x% y5 \/ Z- `6 y) V
- (if (= dialog-state 5)# i% u0 j; J3 p; e, |0 l
- (progn3 h- e, H4 }* e7 Q( C4 P h
- (modify_solid)1 w6 a: o% E, r" ]. v+ d2 m- d
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))6 `# p$ s& S: A) G3 D5 Y
- (ver_pt3 1)6 w& ~. C) @) `7 P7 p% y4 t/ B
- (ddsolid)! V$ I6 n9 a+ C4 W, J G
- )
! S' B+ P" [. E4 g; ] - )" j* Q+ q. X. J5 }) A5 k. l
- (if (= dialog-state 6)4 W. ?" S9 ?- \% K. ~" }* w" F
- (progn
! w/ X. r- V* }# t: K- o4 ^0 q - (modify_solid)1 t. q( \5 D* p8 c3 o4 p
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
% ^" b! ?) a$ |6 }0 g. r0 H; j - (ver_pt4 1)
. {* G& G( u* \' T9 Q/ K8 A - (ddsolid)4 U ~ ^0 X) }. { I2 I
- )
6 L# M7 X/ v p* S2 U - )6 |* Z6 B3 l# t- X' d4 ]2 N' o
- )
6 o; C' E( i6 l/ T - ;;5 F, Y& b8 E( }5 V
- ;; Modify 3DFACE/ d9 T/ g' V" `+ }1 ]
- ;;
4 B3 Z ?* v: |$ ]4 `* F - ;; Check visibility of edges
0 l9 a9 ?4 U& h - ;;, v4 F! ^/ u |0 z; i% J
- (defun edgetest (/ bit1 bit2 bit3 bit4)
. C5 R2 T7 a, ^6 A( p: V - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
( a# L' L: L1 h6 z2 f7 l - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
8 P' y7 S* Z& w/ c, P - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
) h" M6 @5 W+ i6 C - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))3 J/ J( o- D8 W7 f& |( U5 W
- (+ bit1 bit2 bit3 bit4)! l5 W5 z0 W) q. |4 |
- )2 r# _" A/ M! F' z
- ! A1 k( s2 K8 c9 d: X
- (defun modify_3dface ()
; q7 N# Q+ |7 A* h5 W) R: @ - (modify_properties)
, e, x" q2 w$ i, \0 f6 W* s - (setq pt1 (list x1 y1 z1))/ ?9 w+ C% c4 Y; h n
- (setq pt2 (list x2 y2 z2))
& c+ i1 I0 g% X4 @) K0 {7 ^ - (setq pt3 (list x3 y3 z3))
3 ?) z J, U9 J4 j - (setq pt4 (list x4 y4 z4)): P" A0 c2 s5 q6 j9 v/ J, v
- (tempmod pt1 10 0)
' _1 N* f( S! G* j) M9 X/ n3 N5 f2 h" f - (tempmod pt2 11 0)' N# I4 @% I: Z) A& \
- (tempmod pt3 12 0)) ]! x, c6 z y; r
- (tempmod pt4 13 0)( Y0 J- n* c. a: u2 Q4 m
- (tempmod (edgetest) 70 nil)9 I9 l. }$ ]5 D
- (entmod elist)" { F' X9 W! Q0 k2 K
- )* h- D$ z- Z, j+ I/ I6 Y
: F) v3 T" ~ e- (defun dd3dface ()
0 p# g- G2 O) o - (if (not (new_dialog "dd3dface" dcl_id)) (exit))& h! |+ q+ _+ Y2 p) V' T3 j7 L" t
- (set_tile_props); _8 P9 C" R8 n8 x
- (set_tile_handle)
5 ?4 C& m* I: G' E8 f - (set_tile_pt1 0)" i: L/ v* ^% T& Y4 _
- (set_tile_pt2 0)9 z3 V& d0 n; @/ ?; h
- (set_tile_pt3 0). v$ E3 G& R" m! o/ ^) U- q% v9 m
- (set_tile_pt4 0)6 s: w: m! @) h: i+ g
- (set_tile_edges)6 c& G+ F% a, F- ]" k
- ;; Define action for tiles- |7 }8 c3 ?0 v$ b( r
- (set_action_tiles)
. h$ V% S) Q" H3 O: Y) R! I - (setq dialog-state (start_dialog))) S0 j& R, }, w8 X
- (if (= dialog-state 0)4 }/ o+ r' W9 V
- (reset)) N+ B( S/ @) b/ m# T& G/ K( H
- )
+ ~+ U* N7 p* b) K6 A0 v - (if (= dialog-state 1), a& @2 n% G4 H
- (modify_3dface)
2 D1 ^& I& P' |, w) V3 k - )8 m) `- W3 B$ v& M/ ?
- (if (= dialog-state 3)( S2 |6 c+ d s( G ` c
- (progn
" h- [" m7 Y) @0 v; W* v2 F( b - (modify_3dface)( ]+ U: f- e" V
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))1 r i& s) ^( b, n& P
- (ver_pt1 0)
9 r& l5 @& I" w$ G) c - (dd3dface)0 e! q7 C3 z7 C& J% |( c
- )
' v1 V4 z: f! G9 k9 J - ), \" j. M5 I- C, Q
- (if (= dialog-state 4)! K& l/ ~$ L3 \9 u% S( c) R
- (progn
0 {& m# h X! W1 m: C - (modify_3dface)1 c% e& U% Q4 q: z" z. z4 [
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
- H4 {: q8 B K - (ver_pt2 0)
$ T# `- s6 Z* f6 b# u* n# g H/ u - (dd3dface)
, V9 ^7 o- K* |3 l/ \ - )" g6 N4 x# b" [( f; f+ w8 F5 R1 o
- ) S$ s( m5 a0 }' h5 ]- ?
- (if (= dialog-state 5)8 N" L2 W2 ? |# l9 [2 N
- (progn
& i- U! F' z/ N# Q1 e4 t6 E; r - (modify_3dface)
, ?$ ^+ }2 s, z6 Z1 ` - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))! ~- H! d/ |7 c5 V* U/ W+ O: _
- (ver_pt3 0)
6 H, Z2 K' s+ Y" A' r - (dd3dface)
& p6 H5 j6 \4 n- L1 `- M* T& A - ). u2 |5 f, Z: [! i' _% m- r3 Q2 `
- )7 w2 x3 Z, `1 c; d
- (if (= dialog-state 6)
1 H @- m# @9 v - (progn
" V. J' x' k5 X" ?- s - (modify_3dface)
; D7 U% n) _3 J# S# [ - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
3 D: k7 n# B2 e9 {9 r - (ver_pt4 0)
! c0 M( n+ k; y3 `1 b1 b3 z) M - (dd3dface)0 l; H1 B3 ~' ]: g8 E0 P
- )/ ]: D0 X9 v+ H7 d
- ); _4 b3 u1 S, s: Q0 `, p" e E
- )& x4 k- K+ E( @8 M
- ! M* Y3 q2 g1 x2 g) A
- ;;" Z: _% V5 ~% x! R1 y) G
- ;; Image functions
2 T( C) M6 ~ I; f - ;;
4 M7 D1 U- Q! R6 H! F - (defun image_scale (/ upixel en n userscale temp); N- V0 ~, Q6 W# y
- ;; Calculate the size of an image pixel in AutoCAD units* y7 e! h7 b6 \0 k+ K
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))0 h& N7 _$ `+ @0 \3 u
- , ^* ^5 @' |: q$ p
- ;; Retrieve the user scale6 z- M: e8 M: p y' {4 g+ i' o' s; W" X
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))# T) X. {/ u( W r2 ^$ T9 j9 {
4 B) \% H! M! d# i) N" U' _: J- ;; Next, extract the image units and pixel resolution7 S$ y7 u7 `8 l5 x1 b
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
& `# J9 @3 t: I. i' u% j9 l7 _ - (setq image:scale (* (cadr (assoc 13 elist)) upixel))
5 c! U, N! i4 y: J - (progn H+ C% ]' G2 t; _8 Y
- ;; Convert the user scale to the proper word S z! g* x w/ k/ c7 i
- (setq n (cdr (assoc 72 en)))
2 |, q# ~" u' w/ R - (setq temp (getvar "LUNITS"))
4 x4 Q- A: A+ ?+ q: i) ? - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
1 g; C* L* D% B) D0 q - (if (= n 1) (setq userscale "Millimeter"))# B' A$ ~9 P7 d3 W+ s1 A! ~) ]3 b
- (if (= n 2) (setq userscale "Centimeter"))% n5 [6 L b' C& m/ V3 }5 d, G0 y" d
- (if (= n 3) (setq userscale "Meter"))- z6 {7 n" |# l! |
- (if (= n 4) (setq userscale "Kilometer"))
4 @/ i' _4 X6 G - (if (= n 5) (setq userscale "Inch"))
# I6 ?7 T1 J) [ - (if (= n 6) (setq userscale "Foot"))
% f9 G6 A+ K9 T" ]& L - (if (= n 7) (setq userscale "Yard"))% f5 R0 a d9 I) Q1 N+ Z: V$ G2 w3 D8 C
- (if (= n 8) (setq userscale "Mile"))
* v* h! s) A& ~+ r3 | - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
3 I- E# w1 r) S r: }% z9 M2 ] - )
/ C K9 `& ?- \7 R/ _ - )" @) |! g+ F7 }% H# K6 l
- )
* a5 r0 z4 [7 z7 p$ d
2 C3 \- V* U6 ^0 {9 a- ;;/ I! A& p# F6 Z7 v3 j
- ;; Scale factors for block insertions) @% @$ X! _# h; ~
- ;;6 ?& I6 M& \8 K
- (defun image_set_tile_scale (/ temp)' i! J! {* @. f2 _
- (setq temp (getvar "LUNITS"))" U0 I. r5 R8 P$ ]6 P3 B
- (setvar "LUNITS" 2)( Y: m/ P" u3 ]0 _
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))1 p$ i" L3 X* T
- (set_tile "wid" (ai_rtos (* image:width image:mult)))
0 K0 d6 i- x6 C% ]5 E - (set_tile "hght" (ai_rtos (* image:height image:mult)))
9 ]; E1 j' m0 q - (setvar "LUNITS" temp)1 f8 w6 I. p9 D* G5 G8 Q6 s
- )
3 F1 p% {: `% K' f/ S# c - 2 w( N* w+ L* o
- ;; n2 g2 R/ S- J8 v0 D3 `
- ;; Set the scale, width and height values appropriately.% ^. n* K& m9 T" w
- ;;
$ \* e X, X {1 _ - (defun image_update (field value / orig_value new_value mult)
; g3 }: K( K" T4 @7 f0 q - (if (= field "xscale")
! I' @" Y9 ^8 i8 ] - (setq orig_value image:scale)
8 @- _( t4 j' k$ ^+ K4 k - )
& c" I' K0 K) `8 ~3 C( B - (if (= field "wid")
/ p: o) I% ]" t( p - (setq orig_value image:width)* l4 u* r* c" l
- ) T* }; M1 T! a, t, W8 @: l; y
- (if (= field "hght")0 S6 @! M5 Y; h+ ?( s
- (setq orig_value image:height)
6 l$ u/ ^: v2 W$ h - )
) P0 [; l# I. f7 }9 g. O - (setq new_value (verify_d field value (* image:mult orig_value)))
( w& s: A0 L, g0 U# d: N - (if (/= new_value old_value)
; s( a0 G" X7 R- n% j6 d& q - ;; Make sure the user has entered a sufficiently large value) f0 c2 `7 ~8 K# e
- (if new_value
; y6 G& p( J) N - (progn
/ s6 C+ t: t; K+ I - (if (< new_value 1e-8). j) n' ? w7 m& t& l5 Y
- (setq mult image:mult)
5 q' |5 F$ f% t. K8 o) e+ j) d$ j/ J - (setq mult (/ new_value orig_value))5 L; Q/ I3 `# [7 y; a2 V
- )
- v2 V& y8 Q& j4 X8 K0 Q2 m - (setq image:mult mult)9 x( }. F+ ?3 b/ P. v$ x' S
- (image_set_tile_scale)
/ {6 G4 r; B8 y. ? - ): F2 F b l# l8 f6 s ~
- ), s. N, C6 p' _. ^
- )- T( ]5 E# n7 y! J; ?
- )4 C6 n: }1 R" o# y% |- p. V( z9 L9 V
0 z, L* l! U$ o. ~7 @+ }$ i- (defun image_disp_opt (bit)0 z* p; o" R; G5 s* A7 D, N" o
- (setq image:options (Boole 6 image:options bit))# C7 Q7 U+ \4 ]; {
- )
8 A, ?$ k- n; d9 X! p; ~ - ( c6 i2 o. Q. i' A
- (defun image_modify ()3 {3 `/ j7 w# X! n8 N; P) N
- (modify_properties)- \: J* I) D+ j, V; V+ L9 Q! i
- (setq pt1 (list x1 y1 z1))
6 i; F$ E8 w3 o# e: p! ]5 x0 q* g: M - (tempmod pt1 10 0)/ G' l. g% D3 D4 H* l" G) e/ x
- (entmod elist)
. f7 E1 V' B/ S/ V2 z: P- E) s - )+ H7 I* Z, s2 J& R6 w
0 O+ z' j: i# {) U* i$ m- (defun image_clean_variables ()
& x5 x7 `- s1 g, t; z - ;; Clean up global variables used here" W% \" o0 I: h' r C
- (setq image:scale nil)) P! r/ q& D9 j6 H1 j
- (setq image:angle nil)
; t- |: N- `. j A4 Q - (setq image:width nil)% X+ I' d6 G- \% i7 n- y8 _1 ?
- (setq image:height nil)
" X0 d& Q" C0 E. M - (setq image:options nil)" I9 b: ]5 X Y9 N# x
- (setq image:oname nil), p2 }/ ^$ j- \' c7 {
- (setq image:olist nil); z; T# d1 c L! x e
- (setq image:mult nil)
% v1 _ z* c6 f. G" ^ - (setq st_ang nil)
+ I- f6 }, i- c* ?6 } - )
- I6 q* u6 L. s - 0 G1 T/ P6 U+ [% n
- (defun image_scale_vector (v1 value)
4 `# h# ~( d1 S% K5 O/ c+ c - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
' _& x9 L( L1 i: b# W- B - )( o+ K6 J2 @, S0 w
6 M6 x' M8 p, z* I) M% e- (defun image_cross_product (v1 v2 / vx vy vz)# x' g2 L/ g. r8 o+ B
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
4 o( o A/ Z+ K* Y - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
; \6 j3 a7 P# D, z* @1 _ - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
6 d/ {3 u$ I, w8 Z; w% A+ ?+ S7 m - (list vx vy vz)+ _! S2 M( \, W& o0 w
- )
0 P; |: m' M( F$ G9 \ - # [2 I3 ?3 h, w
- (defun image_dot_product (v1 v2)
1 O; E5 y' C Y: Q) j - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2))). g. d. V0 o, `9 D q8 ?
- )
& t. z7 z3 u3 o# k
' m0 j* T: B- \% t5 `6 g- (defun image_add_vector (v1 v2)
* Q8 r# Y3 `; x& g - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
. h0 u! ~; o3 [7 G - )- L# a* d) R4 n/ g4 l
2 e0 u m$ z+ X) B9 {+ u6 S- (defun image_subtract_vector (v1 v2)
) P- ?* V8 u& C - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2))) K7 m7 y4 e& V5 j* U
- )
0 m' g% V( J- ^" e' q$ | - % @$ d# {3 l8 w$ o, ]' ~& R* K
- (defun image_normalize_vector (v1): O. H# d9 I" l9 e
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
! l- ^! [0 n1 Y - )6 T9 [7 q: G, |& t
- j* \9 R$ I6 A" @+ x2 H
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
z4 c3 Y) z, }- S5 `6 z$ a) ^, @ - ;; Normalize the axis9 E- `& `5 h; {* c5 v
- (setq axis (image_normalize_vector axis))6 k# u' m5 \, J# T) C( g
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))8 v6 r0 a7 R! }: y: |: w
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))1 B( u" Z3 u2 t3 L. N; z, F+ g( d
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane)). V/ C, G* n s, j% C! w+ K
- (setq in_rot_plane/ U6 J! l4 V# W* Y% S
- (image_add_vector% H7 [$ Q, j& d @
- (image_scale_vector axis_x_in_rot_plane (cos angle))' l( @( [: C3 j$ o. ^0 x
- (image_scale_vector axis_y_in_rot_plane (sin angle))
3 z r$ \0 G4 t: I- A+ }* J - )% a- D) p. d W) {
- )
) Y# P: r0 A5 v' B* t$ L& Z - (image_add_vector along_axis in_rot_plane)
7 `& \, V0 s# s; J; k( W, X; L0 m5 j U - )
2 _! u% }0 X3 M* _/ G" W0 J! k - ) Z8 c1 z1 ~6 @* L! `8 g
- ;;
! G' T* @9 t$ ?) ^8 F' r - ;; Calculate current rotation angle if appropriate.
! ]! h! ]$ L+ |" H! k - ;; If not, grey out the rotation field.
% a3 B; P* {1 Y - ;;+ u9 p% A: \3 x: }
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
3 ~! S& u7 `3 D* `8 C5 |2 s( k$ n - ;; Determine if image normal is codirectional with1 F% a" }/ G( |! w1 _; H
- ;; the current UCS Z-vector.
8 _( O+ ~" F( c- k! W - ;;- Q( j, ?. J4 Q' w8 d: _" J
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
( w$ i" {6 R, @" ~ - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
8 {% b) D$ l$ N' F% @! q - (setq zlength (* (last normal) (last normal))); B1 o) f9 D N
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
$ a2 D# g6 c# t5 W! { j$ I - ;;3 d3 _9 O' y" h; o* r
- ;; cos(.0001)^2
$ j* f* ]% H3 b. R1 m - ;; Tolerance = --------------& }) |" }$ y- G; `$ Y6 g
- ;; sin(.0001)^2
6 R9 o% X* Q* }0 x" } - ;;& u5 R5 g$ D& h1 h
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
+ w5 {: l& T+ \; J" d - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))( q |" S5 O% F% Z
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
' N# _3 _& }" f - (progn; l1 y; W7 f- t6 n4 N# ]! W
- (mode_tile "st_ang" 1)
4 L5 Z4 t5 e. A) n - (setq image:angle 0)
/ ?& D+ c% i; M - )! ` U1 C2 s" M* F% y: k+ i
- )* s7 R; L8 L7 x F% }. v! ~
- )
- g/ G% {9 I) A - . Y, R) [+ N6 M& p: A
- ;;
1 f* |% f2 D, y7 X; k% P: Z! J - ;; Modify Image3 p8 Y7 c: W6 y, e
- ;;$ w/ c% i, M8 M3 e5 r. A5 i% o
- (defun modify_image (/ u_vector v_vector z_vector)- B" [( r: n6 i! x2 ~
- (modify_properties)
' `. p; Q0 q0 y1 q - (setq pt1 (list x1 y1 z1)): P. @5 Q5 x. w8 x4 \
- (tempmod pt1 10 0)
! F6 B% O' o* i& [( P - ;; Make display option changes to image) c* J, u! N5 l( L }: c
- (emod image:options 70)0 V! k* M$ @7 N6 f7 P0 L
- ;; Get the u and v vectors
- y# h6 o5 Q1 f! \ - (setq u_vector (cdr (assoc 11 elist)))
- A7 b/ A# P/ @' [- q9 ~ - (setq v_vector (cdr (assoc 12 elist)))7 f& Y# e3 I* p6 m5 k W/ v
- 0 S: Y c+ w# ~
- ;; Make scale changes to the vectors2 Y: {0 L, g6 O6 y+ x& l/ D
- (if (/= image:mult 1)' q: d8 ^+ ]2 q* K
- (progn
- Y3 W2 ]1 L$ v# N+ @! Z' Q4 `1 y0 o - (setq u_vector (image_scale_vector u_vector image:mult))
8 w+ }: b" V4 h - (setq v_vector (image_scale_vector v_vector image:mult))
0 C7 V+ d% t1 K5 j - )
; L( b( g; D! h7 g7 y# l- } - )2 m1 s5 B0 K" n% Q# m& M7 n- m
- ;; Rotate the vectors) ~3 }3 J4 f H0 n
- (setq st_ang (- st_ang image:angle))
$ ?& Z2 \6 W4 T8 j0 U7 R1 D6 u - (if (/= st_ang 0)0 r- i7 g0 V8 Y) c) S
- (progn! }1 j* S! {6 K* `; q
- (setq z_vector) x( e( J$ g+ K; u, F
- (image_cross_product
) E9 _; Y3 ~; o' q( G - (image_normalize_vector u_vector)
* i% }, m Y6 z8 P: b8 o4 U - (image_normalize_vector v_vector)
1 v( L5 {) A4 I9 ~5 c3 o! N' t - )8 x b1 Y8 V" ~+ p% W' @: Z+ `
- )
; H& t2 q% a+ M8 O' x - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
3 z: g5 S4 ?. l - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))# V- K2 q) o# P; g+ U8 X4 ~
- )- N) u) @# q% d+ W, P& t' [) E
- )
" [2 a" t5 ^9 s' U) T( N/ z& I3 {; Q - (emod u_vector 11)/ G0 K/ h: S2 l# ?5 I. }
- (emod v_vector 12)
6 E/ @7 n+ ~+ o" s - (entmod elist)7 w$ u3 Q5 v1 X) i# f' R' K
- )3 {9 i! M3 X& @2 X
- 0 W ?1 ?$ G' O
- ;;8 Z* W9 D8 A0 c
- ;; Run imageadjust on given entity, working around possible3 e0 _. K8 k2 m
- ;; re-entrancy problems2 `7 z: C% r3 M* Q6 Q& k' F! J
- ;;6 S4 [1 G3 w; G( I
- (defun image_adjust (ename)
, p3 q; ^$ U4 n8 H* [ v - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
0 G5 A0 ]% ~/ P; r - (imageadjust ename)0 G7 B- ?: B! ?- b
- )
1 U) P" c- @: X" h0 y: V; |0 v - 0 J1 V0 C; g% {" E4 h9 N; K5 }
- (defun ddimage ()
& D V) m0 a3 _9 T3 Q6 Y5 k - (if (not (new_dialog "ddimage" dcl_id)) (exit))" T8 A6 G& F6 U
+ f1 L6 x1 g4 L- f- z- ;; Grey out the thickness field.
9 m& Q* b) W; Y+ e" e: m X. a: F - (mode_tile "b_thickness" 1)/ y) S) G& ?7 |
- (mode_tile "eb_thickness" 1)
k% D' z1 ]' a! S# X5 @0 I
6 V4 J; W, J) |) g/ ^- ;; Get the associated def object.* R. ~+ y4 G( N3 v7 b2 _2 a/ I% r
- (setq image:oname (cdr (assoc 340 elist))); y2 f8 d2 {8 O; k& M/ O* [2 M
- (setq image:olist (entget image:oname))
. E, X# \7 [2 f4 ]& Q+ i1 P
6 z# X; V1 l1 j/ I8 Q- ;; Set initial tile values8 K1 a# k/ F$ s
- (set_tile_props)/ X$ L( s* v0 J' v5 b6 D- G( s
- (set_tile_handle)
! `$ y6 A. ~$ \. V- Y3 M7 e, V - (set_tile_pt1 0); {! @3 n k; b& c& x
- (setq image:scale (image_scale))0 L+ x7 f& i0 ?4 t+ E$ s, J
- (setq st_ang (image_rotation))5 z$ M& ]$ U- M$ }* n
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))9 y/ C9 G* t1 m* e4 A* Y A G6 S T+ Q
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
+ w: ]3 m7 }$ O1 F+ @( J3 J - (setq image:options (cdr (assoc 70 elist)))
" g: u: j: A( Z, _% W [ - " n# D/ q4 A/ Y/ `
- ;; Record the last multiplier for use in image_update function! r3 }% `2 L3 d- h7 I
- (setq image:mult 1)
% Y# b @6 j/ ?2 [+ N0 z8 e$ a- X7 f
2 v/ G! A" E! m f _9 f& ^: p- ;; Retrieve the image name' Z2 n1 a# x! I
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT"))): W2 C! A9 @- I( T X) ]. j0 I
- (setq flag 0)# R, w e* f* a3 O
- (foreach n fn
Y, a0 y2 z0 y; Z* | - (if (= flag 1)
& s' b1 Q( t0 V0 d% G/ } - (progn! N" o- v4 y5 g/ j) d
- ;; Display the image name/ h9 l# P2 x: }9 S* Q7 t& s
- (set_tile "image_name" (cdr n))9 I+ u. t- g5 G9 Z X5 n1 B# z: e2 ]( H
- (setq flag 2)
4 x" ~( s7 m/ u2 Q G+ ]% ?- d - )
0 d( z) O1 E1 [1 F/ O - ); n4 q! d) I, o( A! [, d
- (if (= flag 0): M3 r' B, Y' Q U2 ]0 v
- (if (equal (cdr n) image:oname) (setq flag 1))
( s# f- a% U) T* O3 C - )5 U. m' }; [4 i4 L
- ) D- V. ~+ S) k& V
6 B2 T) t$ t( E3 y( n- (set_tile "image_path" (cdr (assoc 1 image:olist)))' E' I; G3 P8 W5 v
- (set_tile "st_ang" (ai_angtos image:angle))$ g. J' S7 e/ x6 M" D' E, N: W, E
- (image_set_tile_scale). ~5 a- P5 W* s7 ?! A( g# I
6 k! U! C+ Z6 a. F$ W" }! v- ;; Check the appropriate boxes
* i/ J; _+ Y! M; |5 l - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))# d, l: p2 q5 G% v2 x9 p
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1")); g- e* M. G. ]$ O8 b
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))( ~, C# \9 O9 ?1 W" v
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
$ v/ K, p+ R7 `9 M
+ S. |& w& ]9 _7 c# b- ;; Define action for tiles5 ^* X" S! l$ ~5 E- K5 ]
- (set_action_tiles)# T7 ~9 r. T2 Z& ~6 z8 X, X, v
- (action_tile "xscale" "(image_update \"xscale\" $value)")
1 V0 C$ s8 }* \! v$ g - (action_tile "st_ang" "(ver_ang1 $value)")
6 B; A! x- b. l$ l5 N2 ?& S - (action_tile "wid" "(image_update \"wid\" $value)")
\3 ]' H" i \" Z2 n - (action_tile "hght" "(image_update \"hght\" $value)")0 H. n" f" L7 n7 J5 S. m
- (action_tile "image_show" "(image_disp_opt 1)")8 N( p2 J0 s7 l2 q9 N, H( C
- (action_tile "image_non_ortho" "(image_disp_opt 2)")5 h7 ]6 W# {/ D5 Y
- (action_tile "image_clipped" "(image_disp_opt 4)")7 E+ [5 Y/ W# K; l) x) Q5 H
- (action_tile "image_transparency" "(image_disp_opt 8)")
6 \9 J) n& ^0 t9 w2 h4 T - (action_tile "image_adjust" "(done_dialog 4)")# V8 W% L5 b: j- _4 A7 \2 `2 z
- : g0 J3 C" B5 H* i! Q$ l1 C
- (setq dialog-state (start_dialog))
/ k& `8 _. e/ Q - (if (= dialog-state 0)
1 n } Y2 V0 s8 |! @" t. d! i! x - (progn
# C! Q& V: T8 w1 z% U - (reset)* W% b% _4 R% |- s$ c; ~; T
- (image_clean_variables)
) V; {' L; I9 L: {7 _ - )
- ~" x0 ?6 i! `5 r! \1 ^7 m! j - )2 i, x0 g6 J/ o4 Y
- (if (= dialog-state 1)
4 J, @/ J6 h' [( q - (progn
3 w U. s5 k8 q5 I. b$ t4 X% d' f5 U - (modify_image): k* b; ~+ K" X; {0 D
- (image_clean_variables)
" {) O# D6 D, J0 U$ Q - )) u5 i5 H! T! H
- )
$ G2 c; @8 E- q* l0 u k5 z - (if (= dialog-state 3)
J. ?, Y: D2 b! h: s - (progn
1 } |5 L3 a+ n8 k0 f - (modify_image)
1 h) Q* ^/ T& S7 ]$ f- q5 q - (image_clean_variables)! b5 j3 Y' ^; G
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
" J6 Y$ z: o$ h |2 x$ ` - (ver_pt1 0)3 S* {4 Q( \: t) n
- (ddimage)
) K" \2 |2 A$ |& j$ l; p2 A, i9 e' ? - )
4 y- |6 X( a( @. ~7 r% ?; K- v - )- |+ n& a$ D. ]4 Z2 w3 w9 K U
- (if (= dialog-state 4)& \6 u( i+ A, H% q& A7 w8 a
- (progn+ ^9 k7 D) j/ ]8 G
- (modify_image)9 z- L/ L3 e3 r3 Y
- (image_adjust ename)1 y1 m& {: w) U- e# c4 N) ?
- (setq elist (entget ename))
9 ?5 h& N( q) o - (ddimage)
! V4 B( l$ k( A; Y! B* f: B - )! E* x M* d* N( H
- )
3 ]+ ~! P! T \3 u9 D - )
4 I: I* {& ^" ^* |( |3 R6 u
+ k7 K* c; }& \( p% M7 x* y- i- ;;
+ b: i/ k: V& p# [/ L& z - ;; Modify BLOCK (and its Attributes, if any)% w9 z( C' |1 _, v% F, M
- ;;9 M$ L+ i: ]7 X9 P# W& O0 d2 r
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
, V) X* K9 k. n- L" ~" f - new_wid old_wid old_rot scaling old_scale& y$ I3 z a' G
- xdelta ydelta zdelta xbase ybase zbase ipos)% s/ Y. E3 O. p8 x \
- (modify_properties)7 h8 f0 @, Z& ]; }
& n$ r$ P' Z$ N8 \8 [: `. T- ;; First, translate and scale the Attributes, if there are any.! {. G& [0 |, g
- (setq old_rot (cdr (assoc 50 elist))
+ i# `8 r$ O" T1 I( \ - old_scale (list (cdr (assoc 41 elist))
) g! T6 d1 V" t% _ - (cdr (assoc 42 elist))% |( F# \1 L; a5 Y
- (cdr (assoc 43 elist))$ K4 y$ } o2 T
- )
4 k: c& ~1 q5 _; P; u - scaling (or (/= xscale (car old_scale))* S. W3 s+ W8 c5 H3 m7 S& i4 T7 e
- (/= yscale (cadr old_scale))
: F0 f0 W( N) P2 w5 \# w: b - (/= zscale (caddr old_scale))
% q6 P7 M8 y1 e4 H3 u$ F - )
: R* R) M; L; t7 s - attr nil ; No Attributes modified yet% I# f& [) b: D% A4 ~) s9 A( I# @
- ). D1 V3 V; G% {6 q/ [! D: Q0 r: m+ \" k
- (if scaling. |1 h/ u1 ] U9 |( U3 E
- (progn: Z4 ]% |3 C8 ?7 y6 H* N
- (setq xdelta (/ xscale (car old_scale))
0 x' v; {4 A1 U: w - ydelta (/ yscale (cadr old_scale))
7 R; N$ W( s5 J6 v! } - zdelta (/ zscale (caddr old_scale)). N/ J4 C4 f# K# u! p
- ipos (cdr (assoc 10 elist))
7 a4 w! y' ^, r5 k3 l) K/ a) T - xbase (car ipos)
K1 S5 @0 B4 y8 }% E - ybase (cadr ipos)1 T2 [! h# B4 B
- zbase (caddr ipos)
0 ^7 I' V, v6 `1 H+ }$ D - en2 (entnext ename) ; First Attribute9 E* o* `/ c- z: l2 `! @
- )
" O$ q, t' e+ o9 A- _* P; v
+ j" \$ c; a; w/ A3 s, }0 ~- ; If the Block is rotated, temporarily un-rotate it, along: G' [7 i8 B z! m/ r/ X
- ; with all its Attributes, so the scaling/translation of the
1 }+ y% I3 D% F& u# t: S1 W - ; Attributes won't have to take the Block rotation into account.
# ~. _) d: K" N' Z' P n% r8 X- d - (if (/= old_rot 0.0), j' u. i6 C( q9 @# K' f; Y0 \ [
- (progn
/ K# p% S8 [( d' e - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
; [( N! m2 }# h - (setq old_rot 0.0
7 Z& Z C3 E2 ?/ o - elist (subst (cons 50 0.0) (assoc 50 elist) elist)9 }* u" I( @% E, X# x. y
- )
8 Z- F3 J5 e& D( w% \$ d - )
/ ~; w# ]( ]8 p0 q% F - )# R1 _2 I% |' c" ]5 c2 B; X i
- , M3 H% I: d: F- `5 A5 {
- (while en2
9 ?' E# L. ~' b" } - (setq el (entget en2))
4 X, e2 l6 {8 D9 m, H/ j - (if (= (cdr (assoc 0 el)) "ATTRIB")
1 {% }- _6 v+ M+ D! g* j - (progn* n" x# h2 l* \* ~1 C$ g0 _
- (setq old_hgt (cdr (assoc 40 el)) ; Height0 M" h, R8 X& w/ r9 k, W
- old_wid (cdr (assoc 41 el)) ; Width-factor y) x/ h3 |9 D8 V
- oldp1 (cdr (assoc 10 el)) ; Generation start point) s# C3 M8 j' F2 K
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
2 B3 r% B: O; x+ p: o2 W& Z - ha (cdr (assoc 72 el)) ; Horizontal alignment
9 S" [- j8 o0 r! L3 S - va (cdr (assoc 74 el)) ; Vertical alignment
" |. I8 X* B# K5 L# m# M
; {0 B) `6 H, V9 `+ H8 z% ~- ; Translate gen. start point
% a! L* u# Q1 U9 H - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))) l0 C5 N% `* @' n+ p
- (+ ybase (* ydelta (- (cadr oldp1) ybase))) Y" V4 j2 [; u# O
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))
! e' ^" K E) C - )' n: Q2 ], o# ~- R) w
- el (subst (cons 10 p1) (assoc 10 el) el)+ |: v, o2 ?# C7 p. \" b
- )' B! n" r2 ?0 O- v Z9 ^
- % i# L; p+ @# V" j( ?: M
- ; Translate alignment pt similarly, if present and applicable/ J- q/ V: H6 S4 s( o4 F$ F5 }5 ^8 s5 P
- (if (and oldp2 (or (/= ha 0)
' M+ w3 ^6 |4 k4 g; T) K4 w - (/= va 0)& @& N) p" G% c) j: ]/ t. O- {0 v
- )! P/ g1 L2 v6 ^% ~3 k$ r5 O
- )
' C) n) ^1 X; X5 J - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))( K% z- p+ j- L- w
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))6 y% w# t" F, z( [, Z
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))
1 y) Q& ]3 U1 }5 K$ H2 I - )
& \* P4 e* r1 z5 Y9 @- D - el (subst (cons 11 p2) (assoc 11 el) el). K' J/ n- Q+ M y% J
- )+ ^" N3 o* K `/ `7 ?* v$ |) d
- )/ c' p7 d6 x; o" w( n) b9 D% ]2 c' m
- u6 A8 y! }2 o3 O0 r- ; Each Attribute's height and width-factor were computed3 }( b9 h, O2 B, w9 f
- ; based on the Block's scale factors. Adjust them now,
7 b- T0 S2 E: u9 V9 U: s4 q - ; by first reducing to values for 1x1 scale...
6 z! @! \0 t5 ^$ \ - (setq new_hgt (/ old_hgt (cadr old_scale)) @" D1 W: `9 j) n# d% t
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))2 e+ S' _+ k5 |( [8 o, F
- )5 r# i: Y; X9 A3 p5 S* s
- ; ...and then rescaling.
j/ v# I5 f, w- ^+ i0 Y( ?* I2 l - (setq new_hgt (* new_hgt yscale)
5 z3 m/ a3 h J/ X; }9 D - new_wid (* new_wid (/ xscale yscale))
' b4 q0 K% e- b# ~* _ - )
* {# N9 k2 |+ G - (if (/= new_hgt old_hgt), H& W/ k( n! D0 y) p
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
: P3 y; S: t( ]6 G' x) R# n - )
: {0 z+ v( j/ B" @ - (if (/= new_wid old_wid)
4 g( ]% m0 f7 \0 Q# D - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
9 _ h, l% v9 M9 r" v6 I - ). t: j8 l- {' [: w8 e/ E F5 S
- (entmod el); }: r* N' h" l8 n6 L5 I
- (setq attr T ; At least one Attribute modified6 i& g& e& V" z7 ]% b0 I
- en2 (entnext en2) ; Next Attribute
! ?2 b' l1 P( n, ?4 G' H - )
% X5 A: ? P9 h) a: M1 F - )
# C& P) r" g) c' e( h3 i i - (setq en2 nil) ; No more attributes) t8 P0 v6 B1 \7 T4 [1 x* ~
- )
" |! P7 q4 N" N3 i/ [ - )% o9 y' v) b6 c( w
- ). M$ o: D( q) }- k7 j7 M& c
- )+ r: v* s: H" V
- 6 c7 E1 G" X% m- N% I( L
- (setq pt1 (list x1 y1 z1))
8 y$ {3 M& ], L+ ~1 P1 |$ V3 ]% t - (tempmod xscale 41 nil)
; b& _2 |" e2 } - (tempmod yscale 42 nil)
- u* z' x! u' y' d7 I. u - (tempmod zscale 43 nil)' b! ~4 T7 k1 R" H6 D
- (tempmod col-sp 44 nil)2 i. H' ^' y& R! b" K* v
- (tempmod row-sp 45 nil)
; j! g) F" A; y2 S( Z. Y - (tempmod columns 70 nil)
, Q1 K6 ]# F8 e4 n - (tempmod rows 71 nil)0 h! V$ y7 h h( s( K! z% A
- (if (= xclipmode nil)# `' o, B8 D: N4 g( s% |
- (entmod elist)
# F9 ?0 }$ ^* |2 t# p: N - (setq xclipmode nil)4 W9 X* p/ [) y* Z1 e/ o4 C% G
- )
1 k3 V0 T$ c3 j. ?/ {" v, K1 ^2 a - (move_pt1 1)* @" [1 M0 N3 z, P, ?
: P8 L3 T" L4 V% g3 N- ;; Now do the rotation with the ROTATE command.( _) I3 h& o7 V% p
- (if (/= old_rot rot)+ r7 \5 H G. o9 U6 ?3 f# @9 {
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
0 ^# @. y% k4 v - (if attr ; Else, if attributes were modified,
0 F- j4 z+ f. Y# V: B. Y - (entupd ename) ; just regen to force attrib display R5 a! N ]& k7 a) ~6 s
- )
: B4 O6 A1 `' c; B8 Q, A. c% C - )
& j! ?( L; ~. b0 Q% o$ K3 D" B - (setq elist (entget ename))# ^+ \/ Y' S3 t3 o. [6 X
- )6 @4 L( W1 [8 x/ p5 @; Y
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
$ b* ^& n5 A K+ E6 I - (setq newhatch 0)
1 l* l, H7 p7 u3 n3 q2 H - (setq blkname (cdr (assoc 2 elist)))0 p* Z; Z0 n2 e4 x
- (setq blklist (tblsearch "block" blkname))
6 y. b2 S* o+ _! ` - (setq blktype (cdr (assoc 70 blklist)))6 f( D: z: g7 S! n2 G# v
- (setq xcliponoff 0)9 ^; z, r& a2 u; o5 U
- (if (or (= blktype 0)(= blktype 36))- W) J3 {$ C+ o' ^# {8 \) L. a- s
- (progn% a5 V* e2 Q( M; L: u
- (setq xcliponoff (xclipon elist)); D0 N7 R& L& W" m1 ^; f1 E7 A& R( C/ j
- (setq temp_xclip xcliponoff)) i% C; I2 T" `6 \( \; C# R- T
- )
# c1 \5 ^5 s$ J - )
+ N1 w* V3 w, R1 C - (if (= (logand blktype 4) 4)
0 v% y! y! u& b2 w" {9 {. V& Q9 w - (progn
- a) ^* F" s: p0 |0 C3 W! A - (setq xrefpath (cdr (assoc 1 blklist)))
3 L4 E N, R% t0 G6 h4 z - (setq help_entry "modify_External_Reference_dialog")
+ }4 G& q. G1 L& {4 V - (if (not (new_dialog "ddxref" dcl_id)) (exit))
$ J1 y% E! W. \) S- x9 {4 _ - (set_tile "Bl_name" blkname)( d& w& S/ c. p6 L
- (set_tile "path" xrefpath): f& {* k7 {8 R; p- N7 z1 I1 O- p2 A* P
- )! |' i4 M% Q4 ?4 a6 ? Q* H- {+ N
- (progn" Z v* Y- n5 c1 P0 d) t4 C
- ;; Get program name for use as Xdata app name3 `4 m. X- E3 ]( h% A: E3 a
- (if (not (setq program (getvar "program"))); C4 U6 u1 ^3 F% T- A a6 E6 Y. Q1 X
- (setq program "acad")8 H: q0 q3 L" ^1 h1 K: Q
- ) ?7 {7 b \4 K: X% x! h
- (if (and (setq temp (assoc -3 (entget ename (list program)))) e( e; J; s7 }0 \* ?5 |
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")5 I: U9 f8 P* k# r) @- Y
- (assoc 1005 (cdadr temp))
7 r( g9 D: F# d. y! [4 g5 O - )
$ c1 V( h0 h$ f1 } - (progn
4 L' t3 d/ c7 P) M' W! D% O - (setq newhatch 1)
( }% [ k& ?7 X3 t; N - (setq help_entry "modify_Hatch_dialog")( ~/ o# [5 n$ y# e6 I; G
- ;;; convert the object into a new hatch
5 z4 u' A- ~% K2 L- w. p- r - (ai_undo_on) ;; enable undo& j1 \ Y0 V; C; X) ~: H) b
- (COMMAND "_.UNDO" "_Mark")
6 V. V# Y4 U/ S5 ^. e - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) ""). c& j( t8 p& W7 p6 ]3 T6 K* r
- ;;; suppress nasty message from convert command
( L& z- c* E2 d5 b: e6 C/ H - (princ "\r \r"); Y1 m: ~, }$ x1 H+ D+ @
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))% P" ]& h; @2 B2 q& ~2 Y' C
- (setq old-elist elist)
9 }7 s m" H0 L4 Y2 e - ;;; If we have cancelled ddmodify
: F+ m8 h/ i* e% s! {. y2 m - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
6 A" T% s. `4 \7 \! u1 b% ? - (command "_.UNDO" "_Back")6 F- q" m; }& q$ F9 ~; S
- )
3 R2 I# r/ T* ^ - (ai_undo_off) ;; restore undo state
3 P/ Z. D. E* A8 U* |3 _ - )
% B" O/ n2 x S p, b! M' r - (progn/ L& N: D0 e) i
- (if (not (new_dialog "ddblock" dcl_id)) (exit))
/ |$ t; i" h j/ L/ m; `% g/ f: s; C* z - (if ( = "*" (substr blkname 1 1))
5 u; L% V* h) M, d# O- c5 i1 P - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))( c. T$ g# @; V0 G' n* z6 p# i
- (set_tile "Bl_name" blkname)
2 j* n4 O' r) K2 i+ W - )
3 C2 a6 x" J& F( Y) |6 l8 {2 y - (setq help_entry "modify_Block_Insertion_dialog"): P# E$ ~ |% Z& W f: ~
- )
& m& _ ?0 ^7 H* [+ b6 e. d4 s - )* a- T$ z0 |- C$ W6 `% @
- )3 c& l! g# D+ f" P: P+ N
- )
/ `- _0 A ~ \5 Y* @9 ?" c$ V# p - (if (= newhatch 0)& }, l# ], M3 T J9 n* \. Q
- (progn7 G9 }" k2 O* y5 e) F3 T; H
- (set_tile_props)
4 P/ w) H; J' v9 L% J* K - (set_tile_handle)' E) `' k6 u) F$ f+ z
- (set_tile_pt1 1)0 i ~, w0 k8 v9 E8 Q b
- (set_tile_rot)
! }$ y, P" `/ p9 P4 k - (set_tile_scale)- V3 R; x+ z* I0 J8 x- r& c
- (set_tile_rc) `+ Q. [ z+ Y2 T
- (if (= (logand blktype 1) 1)5 N+ [, o& b) V+ v
- (progn" D5 `3 N. G6 U/ ]3 p0 G1 H b# e' `
- (mode_tile "xscale" 1)/ H( d# F. C* m- R$ r& {. T7 O
- (mode_tile "yscale" 1)
) c) |+ A: o+ f( `, }3 G' F* T - (mode_tile "zscale" 1)# H; a6 ^1 O1 f# M9 r$ w- `
- (mode_tile "rot" 1)
8 ?' T+ }1 y9 Z - (mode_tile "columns" 1)$ a i: D7 m$ j) I0 S
- (mode_tile "rows" 1)
, T$ ~- u# d- S0 Y - (mode_tile "col_sp" 1): e5 V. l# g( {+ H2 g2 f3 J
- (mode_tile "row_sp" 1)
9 N3 d' c. b: R7 z' k+ D$ U - )5 N# ^2 T, C) J* I/ F$ Q
- )
% y/ e% K* [7 f8 J" h+ M6 W$ b2 Y) q - ;; Define action for tiles: n. J! V2 O1 U* b; g
- (set_action_tiles)
% M4 q9 `/ f3 w# F8 m; @, s ^% t9 K - (setq dialog-state (start_dialog))
; b, O, O0 H# b. o - (cond
4 y& z. D- M( v, n6 @( l - ( (eq dialog-state 0)$ p" b5 ], n; G
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
5 {+ `7 @4 d7 D5 |2 q3 J8 c! T - (move_pt1 1)" [* P& d$ n; Z* V/ G6 J+ I: M
- (reset))( @* I0 }0 Y4 V2 h+ Q. `3 [
- ( (eq dialog-state 1)
. X7 q! ?) q$ V+ b. u1 ? - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
$ ` F4 X0 G5 P. D - (xclip)- h# E) b o' s x/ W
- )2 [2 V2 m: {0 E6 K9 P) D1 v$ u# I
- (modify_block))
, z, X' @/ q. y+ ^4 X - ( (eq dialog-state 3)0 }3 m7 ^, k% p; t9 ^/ A1 I' B
- (modify_block)6 u1 J, m2 T3 ~
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
: C/ h: E( e* F1 b0 o, i - (move_pt1 1)
# j7 _. A% H) A0 V; a7 ? I - (ddblock))
* C4 w/ K; Z) b: d; d/ l - ( (eq dialog-state 4)& s+ _$ n3 @( e2 B# |7 k- t& q
- (modify_block)
5 |+ |: A- R0 s$ l) f - ;; Get current handle.; Z4 N ]' s0 j6 `
- (setq hand (cdr (assoc 5 elist)))
" u9 A7 N9 ?% J/ `. `$ f: [1 z( L5 K6 y - (command "_hatchedit" ename)% s0 L& m% A! B$ n9 c9 c5 k8 `
- ;; If OK in hatchedit, a *new* entity is created and the old one6 s. {9 E! D* N+ M. P
- ;; is deleted. So if the old one exists, it must have been a
7 ~$ `3 u8 h9 e. v; \- Y& N - ;; so rest the entity./ j2 W3 u. I3 [/ p3 u& ^
- (if (entget (handent hand)) (reset))! ?4 r+ o/ Y3 e5 N+ g, p
- )
6 e3 T4 ]. |0 o: S8 O* S - )$ E( _8 s5 L' j: F& s
- ). w, w; Z# u) J9 ?4 a5 ?5 k
- )6 p- Z* s9 U& Q; T
- )( N" Z9 f( c8 x
- ;;( L' K$ K" o2 w/ M. n; J
- ;; Modify SHAPE
4 S' r2 e* ]& T1 O - ;;9 G# K- s2 k9 z% Z8 w/ C! S
- (defun modify_shape ()
* J% r2 g8 T& g! _! e - (modify_properties)
- C! x1 e* T0 ]' z$ t9 F3 U- `7 W7 ^ - (setq pt1 (list x1 y1 z1)), U2 ]( S% ?5 d+ h' s4 y8 n
- (tempmod pt1 10 1)
1 B; a- c/ x+ C b x4 Z2 b - (tempmod hght 40 nil)
3 g* ~$ m- `$ n' K' g - (tempmod wid 41 nil)
" w" f9 D. x) C( j+ R - (tempmod rot 50 nil)
$ m- @ t6 C$ `9 M- \ - (tempmod obl 51 nil)
1 `% Z% ]* I3 M& i; Z) Y9 J - (entmod elist)
) d1 ]4 y5 z$ f7 `! y) _& G - )
2 Q8 }( e* `/ V2 b2 v/ g
2 j+ {9 C0 O0 [& e) |4 Q- (defun ddshape (): X( i/ ?5 C4 a n+ n. c
- (if (not (new_dialog "ddshape" dcl_id)) (exit))1 r4 }1 c7 W ?; X5 `2 s3 J5 x
- (set_tile_props)
" g" N6 W* {0 {1 X; b, K$ V - (set_tile_handle)9 C/ L) [$ l# t& C [, `' P) B' x
- (set_tile_pt1 1)
$ D3 Z: S9 P: U - (set_tile_rot)4 |5 n( O- w5 ^; T% `
- (set_tile_hght)+ M1 m7 G/ [3 p: U3 U
- (set_tile_wid)4 C9 r9 S$ d. v" v
- (set_tile_obl)! D0 b, k F Y! u. p! k) b
- (set_tile "sh_name" (cdr (assoc 2 elist)))
" A+ C- W6 z3 n: O D. [: M% v4 p; g - ;; Define action for tiles6 U- V2 p4 @6 G3 O. B3 F
- (set_action_tiles)
/ j9 t! ~; }- P8 w h5 b - (setq dialog-state (start_dialog))
5 A% m1 ?/ u" r& E2 o1 O ] - (if (= dialog-state 0)1 k( I' a% X) q) e' k
- (reset)
2 a& r0 q. j. ^, @5 {, x - )
8 Y7 G# |3 f, z - (if (= dialog-state 1)
* ]6 A' b) R6 c4 ]% I5 `- w - (modify_shape)
, |6 L5 z/ K \5 a+ n - )8 z6 @# b8 K. ~
- (if (= dialog-state 3)
5 p+ u* P0 ~3 o, K. [" t0 j - (progn4 y) v; h. r6 t1 ~$ [3 n
- (modify_shape)
- C. W. _! E; Q% N# m8 b - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))) G/ I0 t7 P' X
- (ver_pt1 1)9 f B" R, F2 a5 p. D# {
- (ddshape)& {* e0 C" w' J8 c9 ]' f( F
- )
: o$ U; w& I, ]4 M - )
6 U% Q7 B4 W g J - )/ P: Z2 F6 J# k$ Z, B( s1 o
- ;;
/ m0 a1 V+ t2 k - ;; Modify TEXT or ATTDEF
2 O% [- d3 t; Q$ B: U3 T - ;;
. f5 e$ ?$ v _# r8 j: z* \ |. g - ;; Set bit code for upside-down and backwards setting' g0 {8 _- h* Q' ?0 H
- ;;
8 M. z5 G" L' s; u9 f$ q$ _/ q - (defun code_71 ()+ W3 e! A' r3 g' j7 `) R
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
& ]6 G" X9 u3 G& ^$ {7 ]- K - ((and (= bkwd "1") (= upsd "0")) 2)
* _5 X2 g8 K9 q# I6 R- @( A* X% P - ((and (= bkwd "0") (= upsd "1")) 4)+ Y6 V/ ~/ I; M/ t# {, K% O! N p
- ((and (= bkwd "1") (= upsd "1")) 6)
4 @. V9 Y' z! g( T) C9 w3 X g - )
3 B2 Y+ j( T- o O" j! C" ~# a - )
! e: G: @, U" ]+ }7 f } - ;;! k9 |" M& H3 Q2 _9 G& Z9 X
- ;; Style action. Reset widget values to style defaults* E( ?7 A+ ~- {# U* n
- ;;
7 p. J, L7 |/ U, b - (defun style_act (index / style-list)
$ B" j; [( N5 X - (setq style-idx (atoi index))
2 P' C! w% Q! u' s T+ ]0 ^1 G' u - (setq tstyle (nth style-idx slist))- m9 W v2 n1 H# D( Z- j7 V
- (setq style-idx (itoa style-idx))4 F8 x3 Q! e# y6 b6 Y* _" [5 g% k6 T
- (set_tile "style" style-idx)
7 [; H" j7 f) U - (setq style-list (tblsearch "style" tstyle))$ g; o& b3 d9 C! _7 b& |
- (setq shght (cdr (assoc 40 style-list))). u: u6 L o9 n% D! ]
- (if (/= shght 0)+ |% z. G. E, [" Q, J5 f
- (progn$ D ^# e+ S' C- E
- (setq hght shght)
9 Y* E: P% Q0 h - (set_tile "hght" (ai_rtos hght))
6 z- I) u5 Z2 C- x' x - )/ K+ I' @* _% [' W4 u, _5 V. p% S
- )* o) `/ ^; Q7 E8 u3 b2 ?* M
- (setq wid (cdr (assoc 41 style-list)))% g1 Q/ p# h7 u3 I( j0 @& ]# I) ]0 C
- (set_tile "wid" (ai_rtos wid))
* V+ d: s+ T1 n% k$ V - (setq obl (cdr (assoc 50 style-list)))$ T. G$ j; F) l9 M' S+ Y
- (set_tile "obl" (ai_angtos obl))
4 T6 o, [$ b! c$ U - (setq bk-up (cdr (assoc 71 style-list)))
3 ]' J) Y- v5 ?# k - (if (= (logand bk-up 2) 2)
9 s" @1 }2 _. x; |: ?+ `( ~1 Y - (set_tile "bkwd" (itoa (setq bkwd 1)))
# H3 _6 s' V* ^+ r" M7 ~ - (set_tile "bkwd" (itoa (setq bkwd 0)))
* W! V! @3 v( B1 S8 c - )
5 \# z) r" s5 `" S - (if (= (logand bk-up 4) 4)
( [3 B& D3 i: p" s, M% z - (set_tile "upsd" (itoa (setq upsd 1)))
. ?' u6 i1 h! G: {' ? - (set_tile "upsd" (itoa (setq upsd 0))); n4 J# n. I! l" t6 Y# Q" ~) K5 e
- )0 {/ N A6 n4 O/ N, m
- )
* u7 }" I9 {. B: s8 o - ;;- G# y7 V+ U l. f3 d
- ;; Justification action. Set vertical and horizontal alignment variables,
# f% [2 [0 r* `/ \5 C3 v - ;; grey out rotation and height if alignment = "aligned", grey out rotation" j5 s- O; H% D# b
- ;; if alignment = "fit".. P9 u" u5 {. x6 @
- ;;$ h/ W5 }$ `1 p! w( }
- (defun jlist_act (index / templist)
6 ?- g3 M) c* P: _3 _9 ] - (setq just-idx (atoi index))
; H4 @) b+ B8 K, l+ [ - (cond+ f7 d' P* I C8 F1 o1 }
- ((= just-idx 0) (setq va 0 ha 0))
$ A- f1 B, `# M! m4 d: @/ Q - ((= just-idx 1) (setq va 0 ha 1))! a; w J( E0 p- k
- ((= just-idx 2) (setq va 0 ha 2))7 W1 p& _; s, v: G2 R
- ((= just-idx 3) (setq va 0 ha 3))8 D/ O5 k$ P& D
- ((= just-idx 4) (setq va 0 ha 4))
6 E; G5 ?2 m- R ` - ((= just-idx 5) (setq va 0 ha 5))8 E3 {! z: E# B7 t8 p* ~
- ((= just-idx 6) (setq va 3 ha 0))
, A: v, F' o+ W. W/ @" N - ((= just-idx 7) (setq va 3 ha 1))
% P1 G( M& f8 P- I7 E* P - ((= just-idx 8) (setq va 3 ha 2))
8 ]7 E1 H( k" I+ y6 n - ((= just-idx 9) (setq va 2 ha 0))
% H+ [. Q$ ^% w# ]/ }. F - ((= just-idx 10) (setq va 2 ha 1)): }- }, w) F2 s; X1 W3 V5 r4 F7 p# s
- ((= just-idx 11) (setq va 2 ha 2))
6 b7 M s2 _3 a( S& W, ]0 b - ((= just-idx 12) (setq va 1 ha 0))- _0 G+ v1 V6 c! {+ ^+ u
- ((= just-idx 13) (setq va 1 ha 1))
2 E v1 E* k9 Q: m& U% \% D - ((= just-idx 14) (setq va 1 ha 2))
) B9 e# ^7 l; o' \3 K$ M4 ~2 ^ - )# _2 b. a' a9 O7 b) `1 ?9 R q/ `
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
/ R+ v( J: E2 h8 b. J2 U8 W - (mode_tile "rot" 1)1 k+ ~% h5 r* O, o
- (mode_tile "rot" 0)
) y1 y0 [! R: d( R, p" A - ). q! P( w* z7 b8 ~6 K# e9 {- U+ l
- (if (= ha 3) ; If Aligned text
3 W* k0 T7 n3 W7 N7 `- e! k4 v% V. x - (mode_tile "hght" 1)
, w3 {0 i' x# N4 C6 R4 ? - (mode_tile "hght" 0)4 T, _4 f9 e3 |
- )
g% g# M& D) k - (if (= ha 5) ; If Fit text5 ]/ z. s. R$ M6 u, K! {
- (mode_tile "wid" 1)2 B2 j3 v' R0 Y8 h
- (mode_tile "wid" 0)
$ k: D% S/ \4 [ ?) b - ): e% x8 Q6 e+ P, W, U/ x1 W
- ;; Reset rotation and height if changing from aligned.
( D; Q; m- C. Z9 z% N) d - (if (and (= ha-prev 3) (/= ha 3)); p% j1 Q: |; e; ~, E- J7 X
- (progn
4 S$ S. X6 v4 q4 ]1 _ T9 r+ O - (set_tile "rot" (ai_angtos (setq rot 0.0)))1 A! h1 Y7 @) w0 b6 E
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
" H- l6 i" J4 \ M) L0 r% e - )4 j4 ^& R- I+ {1 t, g* Y" K* J
- ) b0 A; M) \% @0 D
: {5 n+ r% T6 u1 }( V' \3 U! U- ;; Reset rotation and width if changing from fit.
) F1 {# K- t6 W - (if (and (= ha-prev 5) (/= ha 5))* O/ Q: O8 A% E2 ?
- (progn1 ~& p$ G9 |: H ]/ K( P* q
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
4 D; a1 a. \% [! b3 u - (set_tile "wid" (ai_rtos (setq wid 1.0)))
( z1 I6 F: U- L P' S! Y - )
1 M/ X3 T+ x9 r" g" w7 C3 n. r - )8 k: C8 s4 Q* r5 ]
1 a9 |" e* e$ |- (setq ha-prev ha) ; update ha-prev for next time8 ^) g% `' g; _9 c5 _+ _9 X
- (setq just-idx (itoa just-idx))* C( g6 a7 J9 t5 X4 \# U! h
- )
& C0 y2 H9 |) i - ;;
+ K0 X* p1 T8 N4 L) }0 W6 Q - ;; Set intitial alignment setting based on vertical and horizontal alignment: i% w" ] ?( A
- ;; bit codes.# ~7 A! J* v2 D+ s
- ;;% z; U9 p' p5 \% k5 l
- (defun set_just_idx ()" S4 O5 [& P' H; q
- (cond
. d. E- I' q, |1 {% ~ - ((= ha 0) ; Horiz alignment = Left
0 z" |" N% x. M& T8 O - (cond
2 K- O' I) N! k. Q7 e5 l - ((= va 0) (setq just-idx "0"))
& E3 N4 T9 I. Y% ?; U { - ((= va 1) (setq just-idx "12"))2 D- C4 j7 x W- n6 ^
- ((= va 2) (setq just-idx "9"))% ]/ n0 E7 K+ b j0 z2 Y0 R
- ((= va 3) (setq just-idx "6")), ^) ?* @) s: Z" z
- ), d/ ~+ Z6 M4 {+ B
- )% W/ Q& E( e2 _& b
- ((= ha 1) ; Horiz alignment = Center0 Z, F, k5 Q$ n3 t6 ~' M1 G( i# `
- (cond" R4 V; Z( h: s. I( |
- ((= va 0) (setq just-idx "1"))
4 s4 V" r/ I8 B; G$ p* }0 i - ((= va 1) (setq just-idx "13"))( J5 o* \5 w) v( O3 N: P3 p
- ((= va 2) (setq just-idx "10"))
: [% R' z/ x# Z- M! ?4 J0 t - ((= va 3) (setq just-idx "7"))9 G5 @- p9 l, ^% @* X5 v
- )
& C/ `0 s8 q3 |& v3 J% P3 C+ L, r - ). P y+ h% p) d5 P9 \
- ((= ha 2) ; Horiz alignment = Right
' q/ }' A8 M6 ? - (cond* v3 w- t# ?5 l" [2 o2 r7 \0 o
- ((= va 0) (setq just-idx "2")); A9 Y9 I2 f" Q$ B/ p
- ((= va 1) (setq just-idx "14"))
! ~) }. f& _" W& }, R - ((= va 2) (setq just-idx "11"))# ]4 K, h8 s( I' N- _+ D
- ((= va 3) (setq just-idx "8"))$ I7 @2 I4 d7 m# z7 [
- )
4 s @. t0 u' C A9 ^. T0 g" x - )
( ~( k/ L& @1 } - ((= ha 3) (setq just-idx "3")) ; Aligned
1 B. ~0 L& n2 d! C% A8 H, y& r - ((= ha 4) (setq just-idx "4")) ; Middle: B! G% v! b* q* u) n3 M& L
- ((= ha 5) (setq just-idx "5")) ; Fit
; V) E5 S0 x* ~; X- R - (T (setq just-idx "0"))" M" O' X% F% b9 N; y4 x& s
- ). i- k/ c. E1 }: q0 s* i, T) F
- just-idx# c5 O$ r$ \- e; @2 y* j" }* R
- )
4 U) H/ i" H# g$ _" X
8 m) L+ E: k( a) |9 P4 `2 s- (defun modify_text (), e7 w+ F$ l, B- _+ Z2 F
- ;; insertion point
: y! k) ^ L! A2 Y - (setq showpt (list x1 y1 z1))
$ o8 E' |1 s- [8 g" X f7 r5 Q - (setq bit-10 (trans showpt 1 ename))
7 w( C/ G7 b/ Y( C' t) H - ;; alignment point. [0 n: w7 `( d5 l6 e
- ;; for 'Aligned' or 'Fit', alignment point must be different1 c. k1 [, `, `. i! H
- ;; for all others, use insertion point
8 }9 a: q8 y1 }6 W" Y, ]4 g4 Z! e - ;; (ACAD will recompute insertion point)
- _3 d$ G7 ?5 d. \# D$ } - (if (or (= ha 3) (= ha 5))4 J9 b9 W: m* m$ |" {: |) ~
- (progn
2 a: e. C7 M# @' M8 q& d+ V - ;; if no alignment point, fabricate one- X+ w9 ^/ g1 g9 a5 C
- (if (not alipt)
* d9 E) E! d1 V) T4 s9 z! e" o% ~7 y - ;; add text width to insertion point- W$ X+ b6 S; j$ t8 u% N
- (setq alipt1 o6 T/ r/ {" p' Y/ L2 N) f
- (list (+ (car showpt) (car (cadr (textbox elist)))): d ^) S' `) [1 U) t
- (cadr showpt)- s; a" J J6 |
- (caddr showpt)
3 h$ ^3 D* J1 f K& E9 B' a6 O4 @+ L - )- N& @4 R- O# F. ~$ \! v3 R
- )
/ k z5 l; t9 q& J0 a* G - )
% I8 M. u! R7 h0 a" {2 d! D - (setq bit-11 (trans alipt 1 ename))9 h/ B6 [* I' W
- )
5 M8 a7 J; ?; G% h$ d8 }: x0 A( \8 h - (setq bit-11 bit-10)" r1 ?9 h$ E: r% x/ T4 j
- )
+ a. O; R& {) ?; R/ G' ~ - (modify_properties)# @$ I) t" m# N$ n0 i" [, l
- (tempmod tstyle 7 nil)
; h/ u: i7 A6 ~. g# n - (tempmod bit-10 10 nil)
. V5 \) y8 K; z - (tempmod bit-11 11 nil)
& c. C7 G. ?6 x7 {$ c1 L% w - (tempmod text 1 nil)+ m" P2 f" R4 e/ k/ L% w* U
- (tempmod hght 40 nil)' v' e! h% b( N7 }7 ]; H
- (tempmod wid 41 nil)
3 V; f3 e6 @6 T+ a - (tempmod rot 50 nil)
0 j, W. H" i# ?3 d - (tempmod obl 51 nil)
) X" }6 {2 ]% S- A3 ?* Z/ v - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
" H0 K/ T7 O, X4 W3 q. O - (tempmod bk-up 71 nil)
/ b# H: F0 q1 J9 u3 | - (tempmod ha 72 nil)# x, t' F, X2 s% d
- ;; Attdefs use 74, text 73
( O% x: b5 s2 L. B0 t - (if (= etype "ATTDEF")
+ O( h' j' E& q, K9 B, J - (progn3 c/ S. ?: V2 Y8 m" b4 H
- (tempmod attag 2 nil)* w2 `3 d2 M5 n. A6 o
- (tempmod atprompt 3 nil)
* [ O+ r) E" I& I - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre))): l9 l" g# y7 J9 @- F) e' U
- (tempmod icvp 70 nil)! t+ q6 D" Y) C( G
- (tempmod va 74 nil)
- `7 l8 g! [, r0 `$ k1 a3 C - ), m0 Q5 U# q* d1 v. |& S. G/ q
- (tempmod va 73 nil)
* U( Z, J( G) j/ K7 \ - )) J3 F& Z9 X6 B, U3 W
- (entmod elist)1 C$ }$ K+ |9 _ M% Y# ]2 `
- )
D" I+ h% D4 c" L7 N5 Y - v: r0 b5 d q$ X# a! ~4 F( I& L
- (defun ddtext (/ 2ndpt slist i)& E. p& ^/ \ }7 e; N; X/ e
- (if (= etype "TEXT")2 L; K$ w7 |! k$ _8 }! I
- (if (not (new_dialog "ddtext" dcl_id)) (exit))/ e& Q6 v) L3 L' I# ~
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))
9 }4 M. ]% N$ R1 v: K3 i - ), x3 \9 n; z0 e3 W+ f C3 w; _% t
- (set_tile_props)7 S0 b9 d) }/ D9 N
- (set_tile_handle)+ i3 k' x3 @ U7 T
- (set_tile_text)
' S. {; o+ _, S3 x/ B/ Y8 |, p1 y0 S - (set_tile_tag)
) R7 g# u* G- Q1 w: q% { - (set_tile_prompt)6 W8 ^% D5 U4 M5 y4 N' K0 U$ T
- (set_tile_hght)
1 J2 f. |, e8 {4 g E# R- E" ` - (set_tile_wid)% N" Y6 O- J# H
- (set_tile_rot)
# N4 W+ v$ p! @" H* S$ a3 _ E - (set_tile_obl)% \0 d& W- g& ~) ^5 F1 P
- (set_tile_bk-up)
4 j" f; m/ N* G9 @ - (set_tile_icvp)
1 t% k: S3 i$ f' P. k# P. u1 ]4 u& L2 O - (set_tile_style)1 A' ]' W/ J$ y7 {' s. J7 P
- (set_tile_just)
6 q/ ^) ` ?! P1 U; V- V4 T6 J - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
5 q- {0 U+ E/ ^ O M0 ` - (if (not (assoc 11 elist))
4 [2 X* O) h* x& g- R! M4 b - (progn (setq pt2 pt1)0 w, y; x: w# ?! y- |3 E
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))9 T/ U3 J4 c) ]2 c) M$ W2 U
- )
9 H0 F5 A _! ?) ^, y - ;;(trans '(0.0 0.0 0.0) ename 1))4 G6 s, U: t! J( k F
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))) k2 m: x1 ?0 O2 T
- ): g1 W/ Z3 j/ ?9 p6 b0 g
- (if (or (and (= ha 0) (= va 0))
. f& q# y, |5 B3 `* z. |7 P0 a - (= ha 3)5 X: N' } G! q; \" V* ]
- (= ha 5)6 J Y" q/ u. ^9 E" V" w
- )
: O2 {$ U8 [ ~* x - (setq showpt pt1)
3 k4 i% x Y) I/ ~ x; o" b* z - (setq showpt pt2)
" t# P" H& ~! h' [ - )7 l8 V( T. ^. N% x" C9 A
- (if (or (= ha 3) (= ha 5))
8 C' P, r% x, i+ s' G - (setq alipt pt2)
% L! F# d4 b: y( c8 H. S' F j - (setq alipt nil)( P$ ?/ y H) @
- )
# r8 H6 r+ \) w' e
6 k2 A/ w" G3 _1 G* T0 W6 P- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))2 d2 H7 a5 U5 J
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
V6 f8 ?% w7 o. l - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))* l r* y3 F; P
- , @, H9 x Q( P* o& d* D5 L" W
- ;; Define action for tiles1 Q( x' m0 |" R7 O3 `3 ~
- (set_action_tiles)
3 r$ I) x X) ?) |# n( @. I - ;; Set focus initially to the text edit box.
9 \9 F! {# S6 c! u, `% j - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))( a+ b3 s: w: H2 e8 B
- (setq dialog-state (start_dialog))9 z L4 m2 W$ E
- (if (= dialog-state 0)
6 _+ Y3 C [# l4 j( I$ B& z2 G - (reset)
" s$ o/ B4 N! n - )
* x5 X: k4 S7 V7 [ - (if (= dialog-state 1)
( K; J& \; j Q- r5 [3 z; {8 C - (modify_text)
- s6 ]2 o* p1 Q2 f - )! h+ }0 S1 _! s. t3 Y
- (if (= dialog-state 3)* h7 m+ l* [5 _' T x5 s- D* R
- (progn# V4 _$ F3 T7 c" \% \
- (modify_text)
* G) d& \: e& O! Q- F5 Y - (if (or (= ha 3) (= ha 5))% B' z5 c% _. O+ K, ^+ ^, g
- (progn
. g8 i' Z' w6 O' u8 d - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))# c7 z: q" J) I% m
- (if (not showpt)
6 F5 c6 ~" b1 O9 d - (setq showpt (list x1 y1 z1)). }( f$ K3 _) f! O) X7 v# g ?
- )
9 e: K4 s$ @' T0 T% l/ s) o2 U - (setq 2ndpt (getpoint showpt "\nSecond point: ")) _6 q8 j; E f- i3 \9 k
- (if 2ndpt
% `/ ]0 J5 j/ l9 M4 f( Y9 n) n0 Z - (progn
& B, L3 w9 r0 Y" Y2 y - (setq alipt 2ndpt)& _0 M2 j2 Q1 S; e4 Z
- (tempmod showpt 10 1)' f& l2 d8 x3 e# f6 n# ^2 G" @
- (tempmod alipt 11 1)1 i7 u6 }: J( m; `2 }0 W
- (entmod elist)8 T b9 ^2 }: }; n- l3 L- a
- ), A! ?/ x; l! I$ |# u
- )
' R/ j5 l% c1 f6 q4 w6 F2 {+ ` - (setq elist (entget ename))/ d+ I* F6 q0 @, J( A) J- U7 F
- )- s5 N+ r7 m2 y+ K! ?
- (progn! {4 B. y1 O+ i% K4 w
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
' H- V, b2 L$ }- L' b - (if showpt+ q) T( {1 R$ l% {/ I1 I
- (progn
) a8 K' s! `0 i- x, { - (if (and (= ha 0) (= va 0)): W( q2 @$ r4 p7 F1 n
- (tempmod showpt 10 1)
+ _+ v9 [' ?8 B: G; F - (tempmod showpt 11 1): p$ F0 N9 l1 v
- )
* C2 q6 { ~4 E, v - (entmod elist)
9 f( B- L+ h4 W; F0 d/ o - )
" t& {; L8 |* b. G* ^ - (setq showpt (list x1 y1 z1))6 A2 J! s' @9 Y/ R
- )
" A) N7 [8 c. r9 x - )3 C1 f1 V. m- P& M) \3 y5 ]
- )
$ U4 q! ]3 l. q, R& O. u - (ddtext)
* R/ s( m- J0 c - )* q+ J: [4 l; M
- )/ U$ R* }) w# N' o4 H
- )3 G( }9 r9 Q4 B, c/ X
7 P8 t3 \( A% A- ;;
0 G% o# R# }* Z4 k' O - ;; Modify MTEXT
) @! @) g) v0 R" _! L, a0 x; w6 T - ;;3 @, n& r* }$ a% U' u. |: B `
- (defun modify_mtext ()0 e9 A: F, _" @4 E( u
- (modify_properties)* E, M2 G- R) _( p: V1 w
- (setq pt1 (list x1 y1 z1))
5 u! R, f4 a( Z* {3 _" X2 {7 Y - (tempmod pt1 10 0)
" o$ C; K( m% z+ J2 v% k0 G& t - (tempmod text 1 nil)
% k- W( g( b1 B4 G+ I; s* ~! G& M - (tempmod tstyle 7 nil)# o7 g5 f0 C1 h5 Y6 q- b
- (tempmod just-idx 71 nil); Y$ }$ W, D7 k* g5 W
- (cond6 l( I3 T T* B5 L
- ((= dir-idx 0) (setq dir-idx 1))
) E4 u6 a) q7 |, k4 i9 ? - ((= dir-idx 1) (setq dir-idx 3))
/ _9 A5 F6 E4 q, j0 S4 y% n. D% P - ((= dir-idx 2) (setq dir-idx 5))
+ |9 o5 m& Q5 i8 s+ i - (T (setq dir-idx 1))" P8 Q4 H7 m; J0 I
- )
$ V8 j/ O' O: i - (tempmod dir-idx 72 nil)
9 M5 N5 v0 _9 X - (tempmod hght 40 nil)
9 p) V8 y! `7 ^7 R* E4 D2 M! w% M - (tempmod wid 41 nil)
5 p5 L& a( D& t# Z2 _, L - (tempmod rot 50 nil)' T5 O( f: q$ g0 S) M# g
- (entmod elist)# n. s! b4 Z: O: e, V$ N2 x
- )' Y% V9 F6 L6 }& s" K q
- ( p5 |9 S2 E: e* ?
- ;; Set MText text style! ~; c# V' G+ C
- (defun MText_style (index / style-list)
* @8 @7 @1 p0 _# u2 h - (setq style-idx (atoi index))9 K: D- X% b2 Q. d* A
- (setq tstyle (nth style-idx slist))
. n9 W. o) r- x9 N( E - (setq style-idx (itoa style-idx))
+ \' S8 g; t: ^5 w& T2 [5 _% H - (set_tile "style" style-idx)
+ E! f% o& g' ^2 G6 ]+ |+ T" h - (setq style-list (tblsearch "style" tstyle))
. q8 \" L6 A$ e* |$ X* D7 K - (setq shght (cdr (assoc 40 style-list)))
8 o9 K2 z& n5 ~& {1 U7 ?# j - (if (/= shght 0); H, d! Z* i5 X! T' V6 ?
- (progn
7 M3 p. @7 R. ?: P$ x - (setq hght shght)/ R' T9 j+ w( V' t0 u8 J# C
- (set_tile "hght" (ai_rtos hght)). [" M1 x# [0 O8 ]) t+ v) Z6 b
- )
9 X& w0 E# M% b - )% X+ R- A g: P- M% Q {
- )
( S/ T, U) h7 v' X, |1 R - 0 A8 ?7 j( B: E% P9 `
- ;; Run DDEDIT on given entity, working around possible re-entrancy( ], F. Y7 l) J+ d: N j
- ;; problems with MTEXTED
* {4 G% Y4 ?# y9 q# p ~ - (defun safe_ddedit (ename / orgMTextEd work)
8 j9 ^4 T) E4 k- c2 I V3 O9 O - (setq orgMTextEd (getvar "MTEXTED")): @5 e0 L& \; x4 w+ R& Q/ d+ T
- (setq work orgMTextEd) X. M2 X" }( d9 ?2 }0 j
- (if (= ":" (substr work 1 1))
7 h7 ~6 n/ q9 ^1 [4 P9 A* H! F - (progn
1 W* u2 T8 U' X* R4 r d' P - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))1 i! G8 a% e& t3 l7 |
- (setq work (substr work 2))+ K+ Q& C& @0 ~
- )7 P! f+ c7 E% b3 B- T. e( K5 ]$ H1 i
- (if (= "#" (substr work 1 1))8 y. c3 [# o! M5 B
- (setq work (substr work 2))7 K: Z0 X, P( ^. R3 P3 c
- )
4 W& K6 V. f! R. W4 J1 o - (setvar "MTEXTED" work)5 A, B! `: ?1 @& N3 i$ d( ]) H8 j
- )
+ B0 J5 J+ b% a; l7 |* @2 K) P - ): I: a6 X, g8 i- v y0 {
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...5 y/ [+ K2 ]- \7 {" T
- (command "_DDEDIT" ename "")
% t) V/ \$ f$ }- D% h) \, v - (setvar "MTEXTED" orgMTextEd): P) X5 U- F, z j
- )
1 f. x# q. Z7 Y: B" @& D' x
\2 I& r; z N: k- ;; Verify MText object width
$ z9 j6 c9 I3 R% a! t4 k- N - (defun ver_MtextWidth (value)3 t: x* Q6 t$ l; M2 C# i N
- (setq value (distof value))
8 s: ] j, U9 h- w6 B/ u4 t! U - (set_tile "MTextWidth" (ai_rtos value))
! u J; r4 Y' a7 Z - (set_tile "error" "")' y+ i9 v: T* |4 v2 d
- (if (< value 0.0)
) f- }: j/ X# _ m$ ~/ w6 ~ - (set_tile "error" "Value must be zero or positive.")
" ?0 i7 V5 s& q. _. f! X - (setq wid value)
3 b' L. E3 n) Q# w. X# r' r" X' j - ), U/ f# v- O1 t h, {! r
- )* j, K4 R9 s( k: F# e3 _
- $ x$ b) K# l8 l. a9 N' \$ [
- (defun ddmtext ( / gc3)
2 t2 f! T. g' A& N/ `% N% t - ;; Get dialog" y- c9 a3 e6 X3 i/ W2 ^
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
) @& G- O5 S, \5 v. l1 N - ( J: x* G3 V+ \1 o6 |
- ;; Load list boxes
( E6 }* f" }' v8 K* n. N" k* ]9 s& t - (start_list "MTextJustify")3 b6 z6 C% ^1 W* {6 A& M7 c
- (mapcar 'add_list '(' {6 T: Q+ T O7 A. Q1 N9 [: B! h
- "Top Left"3 _8 L- W3 Y' h* y% J/ Y0 C; t
- "Top Center" |7 |; n4 _! v9 y `( `
- "Top Right"
8 S0 X5 S l2 a+ M; \7 _ - "Middle Left"! X" a1 W- I% o
- "Middle Center"" i: W3 v3 {$ m0 x- s" f9 t& v
- "Middle Right"
+ D* m8 H6 U& D9 T5 i* T# e% R - "Bottom Left"& [5 I, Z: j( m# R& Y- _
- "Bottom Center"
4 q- p. w9 `# e0 U0 W - "Bottom Right"
. Q+ ^9 V% _ U1 n; ]) g6 o! _ - )
4 E' z! H8 `) Q! G% r - )+ l; P" n' D& K% [$ s$ {; V% |
- (end_list)
; u. G5 }7 G9 i2 W, X* T6 H* w - 0 n9 l/ u& ^& B8 D$ l( S
- (start_list "MTextDirection")
5 z) z/ h) M: x Y - (mapcar 'add_list '(
: }" T' Z. U! @1 x+ ~ - "Horizontal"8 s4 a% _+ E8 I3 V" b' l
- "Vertical"
7 @7 R6 M4 p2 W* c; G8 A+ t# Q* j - "By Style"7 e: H. |- Q# J4 A
- )
* Z8 P7 x/ J2 d) y - )# I0 s; l: z, e3 I
- (end_list)
% b% n7 B2 ~3 j) W6 T1 |
% j0 m* T/ A5 ]: ? q- ;; Set initial tile values
0 m. D& p" R& n) D( b - (set_tile_props)
{: `: \2 L. R7 K3 A$ C1 T - (set_tile_handle)
5 i/ A% E" o$ x" w" T& P - (set_tile_pt1 0)
; v+ r3 u# [3 q/ S1 v - (set_tile_style)9 S6 s* r& H% T# h2 o8 \$ `/ X
- (setq just-idx (cdr (assoc 71 elist)))
8 l0 U4 p' |* |- j! q: E0 @5 v* l - (set_tile "MTextJustify" (itoa (1- just-idx)))
9 _' l* D7 d4 E" h: L6 z - (setq dir-idx (cdr (assoc 72 elist)))
* x3 S% h) A# C3 \& O3 T" o( v' G$ W - (cond
1 ^2 J* x q1 s - ((= dir-idx 1) (setq dir-idx 0))" W6 q4 [ K8 G2 k
- ((= dir-idx 2) (setq dir-idx 0))- J# Q9 u; ?+ J% t6 x/ Z
- ((= dir-idx 3) (setq dir-idx 1))
5 l+ A% V- ?6 H/ Q+ r - ((= dir-idx 4) (setq dir-idx 1)), x7 R6 V" v4 `
- ((= dir-idx 5) (setq dir-idx 2)) \: \6 L% r4 {: e" m# q
- (T (setq dir-idx 0))- a* U' |" H5 O- ?% @- z
- )
9 V6 {0 Y) B, o( N# d( B1 }" Y$ z - (set_tile "MTextDirection" (itoa dir-idx))/ q5 s# f! x. h! F
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))$ e6 I9 o! B2 J# {4 R" ~% h- A2 b
- (set_tile_hght): r- V- a- c1 I
- (set_tile_rot). J: P3 y% t6 m) C! d @6 Z, d
( ^* _. `8 ~( U x: {, C4 d7 z: _- ;; Set edit box, disable if too long/ \; }. r6 Y4 R% o% X
- (setq gc3 (cdr (assoc 3 elist)). b! n, H0 }% o. _
- text (cdr (assoc 1 elist)))* e% _' F: u4 R7 C9 `. M* ]' Y
- (if gc3; K) ] `6 f/ w0 [5 \# _# ]2 L, [% Q. [
- (progn ;; Text is over 250 chars, disable edit tile2 t: l8 W" T* ^+ v
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
6 M/ t1 N: E, a8 K1 m - (mode_tile "t_string" 1)- }9 G- n, t5 C! X d) r
- )4 H6 q- _* R2 o. r! O) i: S+ h
- (if (> (strlen text) 80)* F! e* `; x- A8 g8 L# U" C
- (progn ;; Still too big' d- y8 E. X4 s$ A$ g
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
% x% G% b0 G- N% q3 N |; \ - (mode_tile "t_string" 1)2 {5 z' F O! c/ x B3 D
- )
2 O5 X- V& n: }4 W6 b - (set_tile "t_string" text)% {8 s i" z- g0 \( }
- )/ t7 D4 _$ e5 `! e3 B9 a* K) M
- )
5 t* B) j4 w- V; ?: [! C& L
0 y" G* d& z7 F- ;; Define action for tiles; Q$ R& j" Z i0 ]& i" a$ q1 P6 n+ m
- (set_action_tiles)
0 T( W; ]% l# e' f$ ~# {0 E0 t& N - (action_tile "style" "(MText_style $value)")
- _ f8 Q: \9 ] - (action_tile "MTextWidth" "(ver_MtextWidth $value)")+ {* ?0 E; i3 f6 U' M! z
- (action_tile "MTextEdit" "(done_dialog 4)")
g$ i" ^2 `8 L1 R: n! {% v - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")2 M3 X! i+ V& x
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")2 }! S; h* }) i# J8 o x
$ Z# N# l" J5 W: M- ;; Set initial focus to text edit box.- |1 _1 Y& Q7 \! x3 |/ c$ F
- (mode_tile "t_string" 2)
& S. ?6 v- Z9 P# U- M6 {
8 w$ @- g4 [9 i- A0 [- ;; Run the dialog
7 P( c8 I6 K$ s1 N2 ?7 T - (setq dialog-state (start_dialog))% X+ r! @7 `$ a( W/ G& T
- (cond) y n# y* x) h
- ;; Cancelled - restore saved data. @7 ~8 N$ K/ N6 m+ ?( G
- ((= dialog-state 0) (reset))
7 Z7 J5 S* [1 M+ n& T7 H - ;; OK - save new data
2 T' q- i+ d( r' W: j$ Z - ((= dialog-state 1) (modify_mtext)); [+ y5 M9 r' j1 A' ]
- ;; Pick new insertion point
! k, E, D. ^; G! |6 \ - ((= dialog-state 3)
- ] W2 g' b# t% D. S& U; y - (modify_mtext)8 k. Z' P, G$ S$ T1 j6 [7 |3 z
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
, Y) p/ q! R2 ? - (ver_pt1 0)
) w. y& B f) Y5 Y, q: v) U5 q$ v - (ddmtext)0 ~2 l; m% f1 ]0 f/ ~
- )+ Q% `" z9 ^* U; }
- ;; Run full editor+ {0 t% r# u N0 R) {
- ((= dialog-state 4)3 ?1 }% _' A* w& q. b
- (modify_mtext)
& ?0 o# I8 n+ o - (safe_ddedit ename)1 _7 _4 \( t. M! K9 G% F
- (setq elist (entget ename))
# a$ \- b- l6 H( L4 J - (ddmtext)
) z) k, q/ R! r/ x. T - )$ ^, s2 E' T- @2 U! j
- (T nil) @4 G% U% K2 ?* o n4 h; M
- )
% e5 C. a/ W+ h - )
0 q! k- B" q j
; |0 E, Z, D- Z: L- ;;) {7 e6 T/ z" R2 t! b
- ;; Modify VIEWPORT
' R H5 U/ g: R( Q - ;;$ e: v: k8 s5 R7 j6 U& `3 V
- * K# D& J& S0 {/ c
- (defun ddvport ()
3 S f: {$ a3 c9 G M' o - (if (not (new_dialog "ddvport" dcl_id)) (exit))
+ Z1 Q! `& e' ]( ? - (set_tile_props)
, }1 C' R: q) _0 @9 |4 D - (set_tile_handle)% W" [6 K+ b. i, @" D$ y6 b
- (setq vpt (cdr (assoc 10 elist)))
, Z2 I+ w! j1 ^8 l- R4 d) @ - (set_tile "xtext" (rtos (setq x1 (car vpt))))) B" e$ Z1 @( G$ v9 M& G
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
\( G. V, ^6 m# I U' k, u - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))$ h: h f* A" [/ y. l: a
- (setq wid (cdr (assoc 40 elist)))
: D2 w/ x. I* Y; g5 P$ Q - (set_tile "wid" (rtos wid))* m% u4 t( T/ K" g
- (setq hght (cdr (assoc 41 elist)))
' E) I3 F u# [3 h( i6 R' r - (set_tile "hght" (rtos hght))
4 C; N# i/ N; Z, |2 \5 |: k - (setq vpid (cdr (assoc 69 elist)))
]+ E3 \- k9 r - (set_tile "vpid" (itoa vpid))
( m) n& S2 Z& Z - (setq on-off (cdr (assoc 68 elist)))
* T- E$ O1 y% k' `) B" M r - (cond" N, k" g" z1 l7 u ~1 G3 S: [
- ((= on-off 0) (set_tile "on-off" "OFF"))
0 k0 f! B6 p4 |: V - ((> on-off 0) (set_tile "on-off" "ON and Active"))
& e. j& k J" s' J& S- H& v2 G2 n - (T (set_tile "on-off" "ON and Inactive"))5 \# u! m) P+ W7 J+ } n
- ). f- r8 I* [$ e, h; j" d
: R0 l0 R! \6 X0 x2 u- ;; Define action for tiles
! [. {) K/ n# r1 n1 J- ?4 O - (set_action_tiles)' J- \% O3 l; x2 i1 H. v- y
8 L( n" s8 N& r8 o9 M! Z- (setq dialog-state (start_dialog))
$ H0 \- P& y# e - (if (= dialog-state 0)
7 k% D+ U: J) ^5 L4 B: b* n+ A - (reset)2 ?; q1 | @* @* K, V
- )
9 l5 P4 O6 D g- x - (if (= dialog-state 1)
/ z: N* P, J; L% h - (progn
7 O0 ~6 R$ W G! s" C9 c - (if (= ecolor 0) (setq ecolor "BYBLOCK"))! n- k7 L' O- G: b4 F" I
- (if (= ecolor 256) (setq ecolor "BYLAYER"))4 Y: H7 Q6 R- H& n
- (command "_.chprop" ename ""
( e* }4 {& Y( n* a - "_la" elayer
6 k2 q/ R" A/ H3 W - "_c" ecolor ""1 S& R) S+ |! q* j. x( C1 `
- )
, \" @( b8 r1 z1 q0 x$ S - )
( A9 u6 N% s* F/ o! j - ). a/ X5 z+ o" H# ^9 v: {3 d
- )6 ^) [; L! m* s$ W$ v) x4 v# F
- ;;; I5 Z( F- o3 B6 a r* p
- ;; Modify POLYLINE
, A, R( }, X3 g0 r - ;;9 ]0 f' S$ X" j Z2 G, V* D
- (defun modify_polyline ()* h9 w) ~% b5 D, z! }0 Z+ H0 Y
- (modify_properties)0 H# E) T' z" N
- (if (= ltgen "1")
7 Q+ S3 F) W8 a" x - (if (/= (logand bit70 128) 128)
6 G: l# t2 t5 B2 E. F - (setq bit70 (+ bit70 128))
6 e+ |: @: ] J" g4 x6 O6 @8 }8 l - )$ n0 P& ^( ^$ s- _
- )
* {* o. Z4 G' |# I& D$ a2 t - (if (= ltgen "0")
. c: K! F4 K( y: n - (if (= (logand bit70 128) 128)
; W% U' J0 P1 w - (setq bit70 (- bit70 128))5 }, v. O! d. S
- )) t5 U) y' j7 j- f' }" B! {
- )2 e% e! W5 b9 y9 P; p6 c2 y, P8 K
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
7 x/ x t, J% E/ ~+ W7 u. j - (entmod elist)
8 h2 t. i; i7 h# g8 s" M$ H/ J - ;; Added to take care of updating Vertex information for color
N5 t" Z7 R, J1 H - ;; and linetype.6 N+ }/ M7 R9 \2 w
- (setq save-ename ename save-elist elist)
2 Q. H& ~6 g7 H' |: ?; j - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")' Y" d6 a4 d& e; L/ }
- (progn
# v' f! p# F8 g2 B' \4 C - (emod ecolor 62)
4 }7 H" a- r( \6 H/ Z& h8 ] - (emod eltype 6)
, h/ }1 X& K5 X% z1 H0 r% b - (emod eltscale 48)! [" G! G+ @% U7 C
- (entmod elist)3 X8 e$ u& [- ? [2 F( X
- )/ d1 p, ^9 j8 F$ t C$ h/ m
- (progn4 m/ `6 x+ Y! u% U _3 r2 K$ H
- (setq ename (entnext save-ename))
7 a3 I# f$ c! w4 d( H2 ? - (setq elist (entget ename))
! O0 _( E9 C+ E3 w" d" [# W - " F0 d4 C) T$ l ]) R
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))' Q. o8 i1 _3 a) ?: f
- (emod ecolor 62)* y9 d% M; p7 Q0 O. c9 V, e
- (emod eltype 6)
* N. ?; G. T7 Y9 [/ [5 G1 \! _ - (emod eltscale 48)+ T1 X8 S N4 Q! F% F
- (entmod elist)
3 d8 P: p- Q, G, x" R* G - (setq ename (entnext ename))
& ^" u# A; A8 h8 G; K5 z - (setq elist (entget ename)): ^! M6 ?' B" { T! {
- )
+ J" P7 ]8 Q, C% S7 i - )
3 |1 S6 ?( J/ ~4 l - )
" Y1 z7 Y3 u' @( ~8 w; \, R - ;; Update the SEQEND5 S. K6 s; H( U+ S" P* y* [8 z+ t
- (if (= (cdr (assoc 0 elist)) "SEQEND")
1 D4 ]7 \' h' N+ H" X& [ - (progn
3 O: G2 Z8 d! _$ |$ T - (emod ecolor 62)
6 L$ H8 {% W' a$ \4 ^" Y( \ - (emod eltype 6)' |+ W0 _0 U8 Z; c: n
- (emod eltscale 48)9 b7 U& K% _7 B$ V& M$ ]
- (entmod elist)9 `6 _- o- N5 w
- ). {2 `* ^. u& j0 e! x
- )4 A% [9 V7 l2 S+ p8 r6 {' `
- ;; Go back to header.
% n. L: p0 B* l$ } - (setq ename save-ename elist save-elist)- W. ^: ~; x n& W2 o
- : q G) ?) P; r4 \9 t
- (entupd ename)! J1 a' f# y7 U. }! _
- )* \+ Q, p$ v; F6 A: t2 {
- ; S7 }+ ?* Y$ P8 o3 B3 r, Q
- ;; Increment vertex. Set tile values to next vertex: D8 z! R* f: ~8 \9 X! \
- ;;
9 r% t& }+ i4 G5 J4 q& G& r! Z - (defun next_vertex ()
! V0 O/ G; B2 _# v, m! R+ k6 p - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
! Z& |; U8 t# l! F/ d& h7 P& L9 a) y - (progn! ^! H8 j4 {- ]: m. C# ?
- ;; If the counter reaches the number of vertices,* J# t0 t) r7 W: @" L1 `) ^9 K
- ;; roll it over to zero again. w7 F& n" P; F
- (if (= ctr (cdr (assoc 90 vlist)))
3 g' _" y4 ?% P& \/ B* z - (setq ctr 0)8 X1 u2 F, [$ i4 h7 n' s* {
- ): B, G M6 I8 O. M
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))5 F" B; W/ w+ L; s
- (set_tile_vpt pointype)3 B% W; f) y6 C9 f8 B$ Y
- )
: N8 }) D. @: Q4 E# J6 f - (progn- a$ D! ?9 k$ ?/ N7 i
- (setq vname (entnext vname))
u; d0 v" C! V! D: j - (setq vlist (entget vname))) ^& y! z% c r5 y: ]: d: {
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
. ]1 O/ s! k, b6 X8 ^/ z - (progn
% j, y8 N5 f4 }1 G6 j - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))" U3 @. G8 R6 ]. L7 g
- (set_tile_vpt pointype)
/ ~5 x9 l+ Z; G3 q3 C. ^ - )- ~; S- O! M8 p @
- (progn
% ?5 g" ]: v) ~+ f! S4 m - (setq vname (entnext ename))
8 `. J6 F+ n' a s% ?) F0 u - (setq vlist (entget vname))' c7 w5 \% O' V. H7 ~
- (set_tile_vpt pointype)1 d' E1 N- d" z' n
- (set_tile "ctr" (itoa (setq ctr 1)))0 H- t" {0 W7 e8 ~, P. i3 s
- )% s9 T4 k+ F7 S' c1 X k! m7 j' _/ p3 r
- )( H( U( ^( v R7 G# y4 {% i/ h
- )/ i/ W, ?, K0 G
- )
* v' s0 P: z* v H, r6 p7 R - )& r% T3 I) @* B9 |9 |
- q; j+ A5 ? o7 I' M, t E
- (defun ddpline (/ oldecho)
& ^2 @# T5 r) ^" V - (if (not (new_dialog "ddpline" dcl_id)) (exit))
" s; B' k$ j p2 Y) w& A7 u - (set_tile_props)+ v7 D" @/ k! K: |* c$ b% L1 J" i
- (set_tile_handle)6 I% ~0 M1 k% ]3 y
- (setq bit70 (cdr (assoc 70 elist)))
; d0 O- E) B4 A# l7 \* A - (setq bit75 (cdr (assoc 75 elist)))7 g* f0 [, T9 j" X/ y
- (cond
, h" c8 V! h4 K5 M' j6 d - ((= (logand bit70 8) 8) ; 3DPOLY
% L# a4 y# w5 d$ f2 w' ?& R" e - (set_tile "ptype" (setq pltype "3D polyline"))1 Y) l8 X$ o$ r2 n& ^! m
- (setq pointype 0) ; WCS or ECS point values: g) ~0 v3 U0 e1 K5 z
- (mode_tile "fit" 1)
2 O2 [/ d$ @+ J6 _ - (mode_tile "mesh" 1)7 v' C$ x% ?; o* f# I3 h/ Z! l
- (mode_tile "bezier" 1)
. e3 Q. A6 A: W! V3 y3 v - (mode_tile "ltgen" 1)( F+ ]- C1 t. t) A8 z5 }$ D
- (set_tile "none" "1")# b; D4 h9 Q. _" Z2 b. c
- (set_tile_closed)
6 t8 t1 u. X; u# E# T - (set_tile_fitsmooth)
. @* {* u5 H7 L5 f1 U! ~5 f' X - )! n4 O" v) S" N' c A3 v
- ((= (logand bit70 16) 16) ; 3DMESH v5 [( V$ Q6 I& U& R
- (set_tile "ptype" (setq pltype "3D mesh"))
8 q1 g5 Z; N+ U- U L' u - (setq pointype 0)
N- g4 e$ u8 c8 w8 I* D; F- O+ S - (mode_tile "pline" 1)0 c: w% s5 z" p! D
- (mode_tile "fit" 1)5 Y' f7 z: b2 d4 a! ^+ R7 A
- (mode_tile "ltgen" 1)+ d, z7 r# d0 t4 Z7 _) r
- (setq m (1- (cdr (assoc 71 elist)))): ]* t: @- ]4 B
- (setq n (1-(cdr (assoc 72 elist))))9 }3 o, _7 D0 R" _, ~
- (setq u (1- (cdr (assoc 73 elist))))
O- X; L* `% k - (if (< u 0) (setq u 0))
1 f8 A' |" T8 w! v1 g. p6 N - (setq v (1- (cdr (assoc 74 elist))))
$ N+ J( o$ H% V# E1 o5 {' F+ x - (if (< v 0) (setq v 0))7 f- @' x* @9 z$ a3 G4 M
- (set_tile "m" (itoa m))
1 _& X. G7 R# ] - (set_tile "n" (itoa n))
- i9 x# b& A: K6 L8 e# l. D; H: c8 j - (set_tile "u" (itoa u))
; v1 Y1 a; @+ Z7 X8 N; U5 Z( b0 |, R - (set_tile "v" (itoa v)) d' J7 C3 w4 K( P$ q" @
- (set_tile_closed)* [8 G- l$ G; P9 z b
- (set_tile_fitsmooth)- t9 E# U9 J" s% G
- )
! y. @; x8 f: J, d4 I3 u0 |2 J - ((= (logand bit70 64) 64) ; POLYFACE MESH7 @2 K% i! D% T& t* u
- (set_tile "ptype" (setq pltype "Polyface mesh"))
0 h, `$ l k% [7 \% F - (setq pointype 0)" w F& L( D# U; i' {
- (mode_tile "f-s" 1)
% F- m8 R) b8 m7 O2 T A! ~+ N - (mode_tile "mesh" 1)
' E4 S9 G7 x% ~. j; e' ~* V - (mode_tile "pline" 1)+ E& E; k e* S+ W' ^* C. r
- ) @7 x4 {4 [5 C
- (T ; 2D POLYLINE
2 a0 {' K8 b9 E - (set_tile "ptype" (setq pltype "2D polyline"))$ E# k, L/ E5 B, i
- (setq pointype 1)
5 ~& I* ~( ?' w1 P0 I1 w - (mode_tile "bezier" 1)
2 h2 V. m0 N l7 {% r" `" g4 R - (mode_tile "mesh" 1)$ p. Z8 f3 Q8 J$ d u
- (if (= (logand bit70 128) 128)
% Y; d9 z" i8 a! S# ] - (set_tile "ltgen" (setq ltgen "1"))8 B( X6 G$ L- K" I; T* N6 Y
- )
2 U+ Z8 R* H9 }' E4 e; K - (set_tile_closed)9 M9 R( y5 [; ]
- (set_tile_fitsmooth)" { O ~# a0 `# S
- )3 Q" r, o1 ?9 R# P
- )2 M) t0 w3 N: x5 z |/ l. e; N
- , T* @4 e& e2 y( |) B
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
# c+ j" y: K8 |; b+ r7 V9 S - (progn
/ Y3 w+ g0 c7 f6 N% Z" a* w( Q1 h - (if (not next) (setq vname ename))
: w2 P( ]! g, X - (setq next T)
$ J& R2 E4 E: K. H- O - (set_tile "ctr" (itoa (setq ctr 1)))( [, z& B/ Z, T& L7 J6 K
- (setq vlist (entget ename))2 ~; h2 _6 _! }' \" G
- )+ i b" m' c% E, v
- (progn
' F6 [$ N% R# ~# T# f - (if (not next) (setq vname (entnext ename)))
: M" B+ C8 {5 i. w& _+ Y( b/ X5 \ - (setq next T), p ?( I* g2 p0 S( P, H7 y- ^
- (set_tile "ctr" (itoa (setq ctr 1)))
# u6 I0 m/ N3 l8 d - (setq vlist (entget vname))
. K1 X' l5 @4 F* t/ L - )
8 H8 j( ^1 T& y6 c' V! g - )! M* `1 B' y0 I |) Y* y
- (set_tile_vpt pointype)
/ R; P2 S0 O5 e0 e! A7 j - ;; Define action for tiles: C* e( {) r) Q9 Y( g
- (set_action_tiles)
5 o/ ~ U1 D! W( t0 K - (setq dialog-state (start_dialog))
# w& W. D( J E, I - 9 b9 g4 c6 {2 Z* T# D/ X
- (if (= dialog-state 0)9 ~7 r/ y, M! P1 \
- (reset)' v- ~. M% q7 M- u: X
- )/ G/ O2 `8 _+ W. `
- (if (= dialog-state 1)
- J4 V5 H) s( f4 Z2 z2 j9 M - (progn
7 Q1 Y$ U6 e }& b, p: v - (modify_polyline)
9 T& `. H7 T" X" c& d - (if (or (= pltype "2D polyline")
3 H: y" k3 A& z - (= pltype "3D polyline")8 y5 M4 N. T: p8 \
- )' [) h- ?: U, S+ f! S
- (progn
5 D0 l* m" W0 Z/ E" H' F9 f( F - (command "_.pedit" ename)1 _; s- }) m: \. m) r
- (if (= spltype 0) (command "_d"))! P l5 `2 ^2 S7 w
- (if (= spltype 1) (command "_f"))
7 {2 Y7 m/ n, V* a - (if (or (= spltype 5)
4 K" u7 y, Q' a: O- b8 \3 ~ - (= spltype 6)
& r7 b! _% X q+ I( s" P% F: ? G - )3 ^% |- t" U, ]0 x7 Q$ U5 i
- (progn2 h2 U& Q7 A* L3 f! F/ y" w$ P
- (setvar "splinetype" spltype)7 D- J% U; o: M" [9 A6 O
- (command "_s")
4 i7 }# O, ?) K+ e7 J( @ - )
8 _+ |( [# }" z, ^3 ` - )
b# w9 E2 W' m - (if (= closed "0")$ Y2 |: F0 _* u% P( r
- (command "_o")& R0 R$ Y7 B, r, T$ L V
- (command "_c")% b+ I: U" ^: S9 Q; j
- )" U4 G' I9 C: q6 V; Y# i) F
- (command "")4 L1 H( z& W. P" @
- Y: {9 y" N6 u u* j0 _+ m- (if (= spltype 0)8 {( E8 N+ E% w5 ~, v l% \
- (progn
( h+ W1 E% p$ S - (setq oldecho (getvar "cmdecho"))& L1 `9 W# c$ G' j6 N& L% W
- (command "_cmdecho" 0)* c( N8 S4 ?0 H: m" n5 Z
- (command "_convertpoly" "_light" ename "")# d# S2 X6 n+ n( \! j, y2 j
- (command "_cmdecho" oldecho)' v- z* ~8 ]5 K7 o/ Z2 L
- )
# ]+ Z1 o4 T" n' T, n! E - )
: o2 {( l5 k& Z. h - )
7 w7 {8 }% C- [* M - )- Q! T) M; A/ k1 l
- (if (= pltype "3D mesh")
* Z5 S! _4 d% M5 | - (progn6 y: o+ l7 `, n0 a2 B: h( I
- (command "_.pedit" ename)
* w0 B* a; l5 t' V1 i - (if (= spltype 0) (command "_d"))$ v) [3 z& H8 ?8 U
- (if (or (= spltype 5)
. Q- ?/ Z L/ s2 o8 ^3 A2 D/ R1 n$ V) _ - (= spltype 6), x Z1 u) |8 ~: X0 ?5 t" e; r$ P3 L
- (= spltype 8)
1 H, D* T$ ~$ h* P - )& K; W2 m" M0 |! p
- (progn
- d/ K @, w1 O8 W o - (setvar "surftype" spltype)6 C2 z4 ~$ y) U
- (setvar "surfu" u)
# ]- \9 D$ K8 O" A5 u) L - (setvar "surfv" v)
4 `0 U w9 ?2 @& L) b9 p/ K - (command "_s")
{' k/ y; V7 W* Q! i& C - )
- i4 ]* s* h8 v - )& Z: K8 T( I( \! H8 E/ A
- (if (/= closedm old-closedm)1 g& ?- W- u z0 Q) y" B
- (command "_m")
& l v Z2 u9 e% o, j/ V - )# v( |+ _# ` E1 _8 h
- (if (/= closedn old-closedn)
" O& O2 u! \4 X* v0 c1 N8 p - (command "_n"); E# F9 X% \2 e
- )9 }! T, x0 G$ X
- (command "")
. |2 s) u0 q9 ]: k5 G. g3 d. T- d - )# v; L& B" ]6 M H5 ~
- )
. n5 w6 Z$ u7 a0 q/ o - )
# Z: L9 w) c0 o# i% `9 V5 @ - )
0 D: Q) E1 R1 G' G6 Y - )5 M, T7 m7 F* k) i! L8 a8 Z1 j6 l
- ;;, l: @% F s( v3 F7 A9 v; L) S" v" j
- ;; All the spline data is contained in a single elist. We must do some1 O4 x* P0 A, S* a& a
- ;; tricky list processing to loop through the elist in order to display
& T7 p4 N% [5 y& T0 d9 G8 w; p - ;; all of the control points.: s- w% s: G9 W
- ;;" K8 g- K% t/ S, b( ~ C# K
- ;; The structure of the elist is different for rational and non-rational- ?. D: o' O- r4 H7 t' f
- ;; splines. Therefore, we check the rational spline flag.0 Z# E2 Q9 L5 F+ h* R3 [
- ;;
: Z+ A4 k7 R M& m/ Z4 y - (defun next_cntl_pt ()
B& a4 P; [& y' T0 n; G - (setq elem-no 0) ;; elem-no = element counter
4 W2 L7 G6 j6 j6 ?$ N - (if (= first-10-time 1) ;; If first time, find location of first
4 Z7 M$ O. @' s! b - (foreach list_item elist ;; cntl point element in elist
' |" l/ f8 O4 q4 @5 \7 }1 X - (progn7 R0 M1 d3 R1 n& P* Z S6 z7 c9 Z' {
- (setq elem-no (+ 1 elem-no))
! Q5 ? c& U2 G* m+ V% H - (if (= (car list_item) 10)' _" W% u: m8 J
- (progn
( J0 f1 Y7 Y! S [' K - (if (= first-10-time 1)7 ]+ f% H& ?# C6 |8 O4 R
- (progn, D8 O) {: o1 `" w% m
- (setq first-10-rec (- elem-no 1))
+ \ e! ~+ \7 P) F5 { P - (setq first-10-time 0)
6 H* a- ~, \' @4 r) Z - (if (= rational_spl_flag 1) ;; if rational
' v! l. ^5 a# [ - (setq cur-10-rec (+ elem-no 1))- ]# \) a* ^ A9 ]2 `6 e
- (setq cur-10-rec elem-no)
) a" Z8 i; D) P, w% ~! v6 x - )
5 N* P+ o; t5 C6 ?* j2 w& w6 Z - )9 G/ d8 Q ^- Q; r5 H& D1 {& a6 o
- )
7 @ X9 b; M9 V: c( k) D) i! ~ - )
" b B U- E+ H3 ?# n+ S: I - )
0 k+ h; [4 b1 ?. Z4 M - )
! d+ V. `) d, c7 \. }7 c2 g1 D) u6 N - )
+ F+ l+ L: Z u! Z0 U - )
3 h6 g' T9 Z9 u4 O' ^ - ;; Now we know the location of the first "10" record; it's stored
( y/ D$ z" z7 G n9 I K% ~1 j - ;; in first-10-rec. The first 10 record was already displayed when1 S0 E+ I7 i& `( I3 d
- ;; the dialog first came up so let's display the second one when
6 h" h3 b6 N0 k1 I( | - ;; the user presses the "next" button (the first time through).3 c; u$ t" l7 u
- ;;
6 g1 K" e! j1 O2 T& h( A - (setq temprec (nth cur-10-rec elist))
9 C' B, l. b8 U ~/ X( F; o - ;;/ M( A, Z5 l* O4 p& f0 t
- (if (= (car temprec) 10) ;; if 10 record: K6 k! T6 s0 X( Z
- (progn, Q4 R% O( ]6 F5 C) \# U4 x. ^0 g
- (if (= rational_spl_flag 1) ;; if rational spline% i- g9 S, ^+ y3 b) d1 ~
- (progn
% Q9 a/ o+ q5 S( b) Q1 ^1 m: @ - (setq tempweight (nth (+ cur-10-rec 1) elist))
1 X V$ m/ D# b: e/ L0 P - (setq cur-10-rec (+ 2 cur-10-rec)); N6 _- F1 o7 d, W5 b
- )& L* _: [) J0 {8 {9 I8 g q
- (progn ;; else( f3 n$ x+ U& Q; _
- (setq cur-10-rec (+ 1 cur-10-rec))
" e F1 ?0 F7 X1 v - )
* T* }) _3 Z- B3 e+ R. @: c - )0 o+ W3 n- a4 {& T3 P% ? K7 I
- ) ;; end if rational spline
4 M/ W6 k- K8 K; s - (progn ;; else reset counters
% A" k# c/ z0 \4 w- i! f& T5 n7 D4 V, {$ ? - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
& y2 z2 \: b/ U' t3 j+ d - (setq tempweight (nth (+ first-10-rec 1) elist))6 f6 I' b0 _0 A! V# w5 y$ I3 ?
- (setq cntl-pt-indicator 0)
: ^9 M7 o# ^) h* o# } - (if (= rational_spl_flag 1) ;; if rational
4 v' r! Y, \' n2 e3 r5 K - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
3 t' z; ?- ^' l" U4 W- p: i3 } - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
9 o1 H- k, e3 l9 }& A8 m - )
* J, d2 \/ z2 W7 s" K' Z - )
$ f* B+ E3 X% u - ) ;; end if 10 record
& W9 l0 _* ]& z
# l5 M5 n& M# B/ a& b- ;; Display cntl point, weight and ctr. Increment ctr.3 f* b) R) K, _7 q
- (setq cntl-pt (cdr temprec))
" v6 F0 Y4 @# O* H9 w) j - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))- H+ q9 ^0 M- Y2 s* x% }( K
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))3 E9 p* \) R, ^# h# @9 O3 `7 _
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))# y2 \4 y5 }& t* D
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator)); c8 T/ L* L! C
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
* |8 R$ V" x2 t/ ^2 ] - (if (= rational_spl_flag 1) ;; if rational
2 G- ^' ~2 V% g* X% j+ C) P - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
9 v% l4 I5 H" M - (mode_tile "weight_text" 1) ;; disable wght2 R" j6 ?, ?. |, T% w
- )
2 [# A, L) O2 g4 R, o5 L* W% n5 q - )
9 ^* s/ k+ w% g9 D! Q" x - ;;/ n; [, k- n9 J
- ;; All the spline info is contained in a single elist. We must do some1 Z0 b0 F1 `2 R, i, R- z
- ;; tricky list processing to loop through the elist in order to display
% Y5 K* c3 i7 ]' n+ E* L6 S/ c - ;; all of the user data points.
' d7 b) d6 N! N - ;;
1 h- d. j5 A$ p' L @7 r - (defun next_data_pt ()
7 ~" X6 y8 x" R g; f - (setq elem-no 0) ;; elem-no = element counter V% h3 u: S' X& ? V/ `& Z
- (if (= first-11-time 1) ;; If first time, find location of first0 U3 k& |# I1 h. Q% p$ y
- (foreach list_item elist ;; data point element in elist
4 X5 v# D& s4 q4 R0 x4 y' x. s) j/ r - (progn
! l8 e! Y# K, @% s6 v0 h - (setq elem-no (+ 1 elem-no))
E6 M: X4 ~6 x$ M - (if (= (car list_item) 11)
% B( w1 E0 W! ^! I$ j5 i4 k) ~ - (progn
" `% U) T* G. I" o- b% }' K - (if (= first-11-time 1)% K, ^; \' R2 {# A6 b1 s; T" P
- (progn
4 Y0 _$ B/ r" i5 @ - (setq first-11-rec (- elem-no 1))& `2 x4 u/ U8 y7 F' O* C
- (setq cur-11-rec elem-no)4 @/ v K( B0 K- U @$ p
- (setq first-11-time 0)
6 k% U1 [1 A# O# s& ? R - )
4 d% z: p O* D4 |* J! C& F - )
8 ]: R" G2 l, O3 U& @/ e& i6 ^ - )
- f) k, x( T2 K# [ - )
/ }6 c. n/ E/ `& E- [* E0 ^" i - )
' I1 T0 u# W } W; n$ K - ); Z& }/ j1 n, X% F: O7 w
- )5 r' r P1 {% _
- (setq temprec (nth cur-11-rec elist))
* {2 M( c k0 T, L: B! j- p( [6 g - ;; If it's not a DXF "11" element then we've gone past the last6 N' v8 H4 l- e+ I9 |5 ?6 i
- ;; "11" element. Go back to first "11" element. Reset counters.
4 @. N/ n9 @8 w. y - (if (= (car temprec) 11)
/ V9 M. O3 I3 _' k - (setq data-pt (cdr temprec))
& s& ^" Q( o9 y# w/ R1 t - (progn ;; else3 G4 I; ^% r1 S4 z
- (setq data-pt (cdr (nth first-11-rec elist)))# ]+ ?8 x' ^) Z& p# ] R/ [
- (setq cur-11-rec first-11-rec)
& j, G& H" N6 ]' o _; ] - (setq data-pt-indicator 0)) R! [, p( H+ z+ ^* A: }
- )
6 `& [% D5 h1 @9 G9 i/ H - )
" F2 ]' R3 D/ o3 h7 e1 `; I - ;; Display data point and ctr. Increment counters.: C2 H. x2 O# Z* X
- (set_tile "dxtext" (rtos (setq x1 (car data-pt)))) @! r! t2 t$ J6 o' Y8 D. w1 t
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
. p& k9 h, H& \9 a( _+ i$ O - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))6 X: U; M( w, U: U* @4 o5 O3 z1 I" y( a4 \
- (setq data-pt-indicator (+ 1 data-pt-indicator))7 m) l2 |& I/ M; R3 d& R' B! n
- (set_tile "data_ctr" (itoa data-pt-indicator))' @7 B0 n9 `2 ]' r8 n) J+ j6 V9 H8 I2 A
- (setq cur-11-rec (+ 1 cur-11-rec))
8 ~4 D1 R4 E& G+ E - )/ ~" ^+ O. w( {, X1 r7 M
- ;;
% a, @+ o# z/ \ - ;; Modify SPLINE6 n& t! s, T1 W$ j
- ;;- u$ U& c G/ Y: x, Q
- (defun modify_spline ()3 U% n( V; T! u
- (modify_prop_geom). y8 m3 l& p8 n4 i P
- (entmod elist)
( U# \/ c* b0 z - )
: N% O2 u, B' @0 j5 Z$ L1 P - ! s# P2 G3 \1 e1 D2 q( L
- (defun ddspline ()
s+ P# H& r6 K% ^9 R5 h0 v+ G$ [ - (if (not (new_dialog "ddspline" dcl_id)) (exit))7 T# u9 `* I, }! {! O- Z+ k
- (set_tile_props)
9 {9 {- v8 E# O( c0 i6 t& Y6 @' \ - (set_tile_handle)- r" W, y: S6 Y) X: w/ K
- (set_tile_spline_props)2 f1 h, X3 A" s4 h6 v
- ;; Display first control point& i z% h) r1 x- C9 W9 S
- (set_tile_cntl_pt)& C! X' O2 v6 ?9 B
- ;; Display first data point
9 O+ b# U. ~* y) \" I) ?" L2 Z& O d - (set_tile_data_pt)+ t& Q' ^5 L& l6 p Z3 Z5 g# I7 s1 @6 R
N, V. W2 x8 o. r3 }+ T( U- ;; Initialize flags to indicate first time through the dialog.
" c3 N" ~( g! v) o' x - ;; For control points and user data points the "next" buttons
- E. z7 w" z) H, C6 V, ` - ;; in the dialog call the appropriate functions.$ G8 Y; A% y0 |
- (setq first-10-time 1)
7 T4 p0 _+ z; a4 l6 D6 c% g6 F% m - (setq first-11-time 1)' T+ \; b2 v# w6 ~- F7 D! K
- ;; initialize control point number counter
: b0 K) H- |3 n, B" C$ S - (setq cntl-pt-indicator 1)
7 u$ J6 R( G) o3 ^ - (setq data-pt-indicator 1)
4 ~3 P: ]& P% o$ ?7 D# g/ R - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))6 _3 N7 t# z6 O5 Y, p
- (set_tile "data_ctr" (itoa data-pt-indicator))8 k; h- k! f$ c6 Y6 m
- (set_action_tiles)
9 ~3 M2 b- G7 W6 L+ [' h$ Z - (setq dialog-state (start_dialog))
' B7 q3 P5 L% o7 I, }) G4 j
& g$ z* S# N' u: M$ B/ `5 o- m* i- (if (= dialog-state 0)3 Y0 Y- j0 R1 G
- (reset)& D# g' w. f. B3 e0 G' p. I" a- ]
- )
/ ]+ C' j/ r2 t% q - (if (= dialog-state 1)
+ T6 e, A6 Y' w6 q! i - (modify_spline)
2 e( L: k4 y8 p. x - )
5 L; f# Y! @' [ - )
1 A# f' f; |, D/ L
! A$ _% ` a. e9 D8 `6 K- ;;
3 S& @3 }0 ~8 n9 ?% |7 ? - ;; Modify DIMENSION1 Y/ M* E, K0 c
- ;;
& R: M1 y2 O3 p7 s' F - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
# A- p! D- I+ _( J) O - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
2 L4 d3 e4 V) B) T - dimtype dimsvcurset)
6 r1 C* A# a5 P' v) T - (setq dimtype "DDIMEN"
$ @8 B' E8 ?9 ]0 O - dimsvcurset (ddimen_dimsty_restore)
0 ~) y& [6 L$ y9 ^4 J) |+ z - )' _5 i+ D+ `7 M3 H7 {
- (if (not (new_dialog "ddimen" dcl_id)) (exit))
: ]7 Q) P3 O7 K, ^, \7 ~ - (set_tile_props)
7 T( Y# K C6 M2 X - (set_dimen_props)! r; X! d- _( `( u5 W$ p8 @
- (setq dimtext (cdr (assoc 1 elist)))
# M; ~$ a3 u1 ^) G. e' C - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))9 D# r6 g" B9 T- ]+ [
- (set_tile_handle)3 J- ?9 C# N& L( l" C( R; {
- ;; Define action for tiles
; \4 z8 R0 }1 j8 z2 E" T ?; b% q" |0 V - (set_action_tiles)
) g6 q9 _4 l. O) X
2 y8 S% o, G* a* K9 m! b' h' ~- ;; Set initial focus to text edit box.
0 S, H) u; ^$ n - (mode_tile "t_string" 2)4 R. B c! `( A9 T7 R# l7 Z1 C
! q0 z1 p# P% d* d, p k# Q- (setq dialog-state (start_dialog))3 W0 K9 o8 Y; n3 K+ l% c
- (if (= dialog-state 0)
5 W8 a3 ~1 N: U! w7 D, l1 m - (if (= ddimmt 1)
) @. l6 x! m2 h+ h - (reset)
2 W& l* ]+ c, u& E C+ p9 i - )
; ~( w# E Y k- } - )
% i3 Q; ~7 l, B. Z - (if (= dialog-state 1)6 m! R2 Z4 f) Q! [3 O, D) D* f9 y
- (progn
2 d0 c) d& l* C5 _ - (if (/= dimsty stname)# A3 g- y$ W p) t7 M
- (progn5 M6 J% a8 |2 [
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case5 V( P0 K- c1 F( j! |& W
- ; doesn't have it.% e1 G- {! H7 G' E. k, l0 |0 Q
- (if (null (assoc 3 elist))
% p2 q' C: {! z" J, d - (setq elist (append elist (list (cons 3 dimsty))))) ^2 K- V* `" y; q
- ; else just replace it., d! f6 {( k) s) c
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))9 @9 }1 \8 p6 d! ^& `3 ?8 U" S
- )6 u$ n4 H; |: T* D
- ; refresh sv_dvlist with new dimstyle.: l* S" D/ p. ?' a$ B" V
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
6 W/ h7 O! L# N9 q, L, ?# v - )$ a8 e% {& H! t
- )
8 C. b( X: A* {- e - (if (not (null dimlist)) ; attempted to change dimvars: q1 Y9 h% E! e5 @% T! Q
- (ddimen_complist sv_dvlist dimlist dimtbl)
' I- U" D. q$ `0 W, |* y; {: j8 J - )* [2 M# O8 y( a' ~3 ^: t8 n
- ; Modify dimension text
" i. ]) T& R' b6 Z! V1 d9 O( G: c Y - (if (/= dimtext text)
9 H Y8 w/ _! c9 [% ~ - (progn
; @7 {+ J! K, I2 D3 P. P' Y# c6 L7 \ - (setq dimtext (if (= text "<>") "" text)), \% D" ?- \. R
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))3 Y* X7 K% A0 R
- )1 n. x5 @4 [2 `) O* r
- ); q' W8 c; b0 i0 r( W$ m. w1 u
- (modify_properties)
, S. E8 `" l! f0 M9 W - (entmod elist)1 m: C; y8 a# \- `3 _- o2 ]
- )# L* f, d" Z; c
- )0 b0 q, l- d. W7 m B3 I& B
- (if (= dialog-state 4)
3 h! k% R' Q: l1 u$ R - (progn% Z4 R0 q. s* g/ q* p- v
- (setq ddimmt 1)& n2 y V3 r0 j7 r$ @# ^. O
- (if (/= dimsty stname)
. e5 Q# N9 d! B' ? - (progn- e3 N5 R5 j* m" K
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
! D0 Y2 h% O. h" e - ; doesn't have it.
- j9 p8 @$ x: q6 ^: K( y# L$ R- y - (if (null (assoc 3 elist))
" d# Y; L7 n9 b" C - (setq elist (append elist (list (cons 3 dimsty))))' w. h# i+ m; P3 R! c
- ; else just replace it.
8 v- L$ o# V, _: k3 y% Q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
& b# S3 X0 O- N- g7 j5 E3 M& i" K - )
6 q5 A# K; I# Q& E+ K# b3 H3 z L - ; refresh sv_dvlist with new dimstyle.
# O4 { b0 Z. b2 A9 o - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
: W" f0 P6 x' r. ~ - )
. p) u8 e1 B, P- K" j/ n& i6 J - ), B& q' v- ^' K6 {
- (if (not (null dimlist)) ; attempted to change dimvars9 c4 w Z# Z6 `) g% u
- (ddimen_complist sv_dvlist dimlist dimtbl)# m6 a- p8 [) s2 M" ~1 ]
- )2 H- n' t( \: D0 e# ^! C
- ; Modify dimension text
' R/ f( ~7 M! t5 o1 k9 i9 ^# K - (if (/= dimtext text)8 D- n. |0 l9 _( n# H/ R
- (progn9 L- b" R* n" Y
- (setq dimtext (if (= text "<>") "" text))+ n: ?, Y2 J7 b) V+ M C
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
( F: q, q' t1 C - )
U5 d2 y# m2 R7 l - )2 D2 @6 V% T/ h9 Q
- (modify_properties)
) Y8 t- s# W! H8 C1 ?8 p2 d* ?3 x - (entmod elist)5 W) M3 z" _! E2 }8 ]1 X
- (safe_ddedit ename)$ U# v( B0 l1 T v% S2 ]
- (setq elist (entget ename))8 ~$ V! m2 c: x; M4 [
- (ddimen)
9 w4 x: ~. [8 A4 W, f% ?8 Y - )
8 Y( i$ K' ]+ p# N# l. e1 ? - )
1 N. u9 u7 j& I9 `7 g6 [2 E$ l) F - (ddimen_setvars dimsvcurset) ; Prepare to exit( h0 v& ] Q" P! ]4 @
- )
7 b' [) L4 M7 \, o' T) \
% b6 T0 _. F7 W3 G- ;;# U- A8 \ ?/ X* T' f; @
- ;; Modify TOLERANCE8 A* c% t- ?* M$ O9 U7 P0 o
- ;;
0 e& r; P- N. ~7 y1 N8 x# Z - (defun ddtolerance (/ a stname n dimtbl$ K- \* V7 z% y* p% d+ d* D8 e
- dimsty dimlist dimovr sv_dvlist stlist dimtype
% j/ F" E8 D) q, Z7 T, X - dimsvcurset)
* g4 G4 x; I" J - (setq dimtype "DDTOLERANCE") W* w7 K9 z1 i2 }1 Z$ A; ~6 [
- dimsvcurset (ddimen_dimsty_restore)
l0 a% ?- A6 h - )' j1 u9 `6 u( k1 {
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
3 t, O( e8 c" v. N0 |3 z - (set_tile_props)+ B0 @0 x" x5 G9 p2 \
- (set_dimen_props)6 I# C5 E+ X1 ~) \7 F4 D$ w5 w' @. A4 V
- (set_tile_handle)9 h, F( E+ e+ M: v
- (set_action_tiles)
/ j t( q$ a8 D/ C1 Y. v& V - (setq dialog-state (start_dialog))9 f# ]1 P1 t- M- B E7 \" I
- (if (= dialog-state 0)9 O i- |* j; t8 v
- (if (= ddimmt 1)- n9 ^7 F# q/ G" n \
- (reset)$ h# ]( w0 _- P- j) b
- )* w2 g; B: }& F0 x% N& p
- )
. F3 Z- l3 r( I6 O4 `) ], y - (if (= dialog-state 1)) `/ q3 G* V+ J# W$ K! e
- (progn" s6 s1 |9 T" h+ B, B, N8 ~( k. ^5 p! N
- (if (/= dimsty stname)2 J+ h1 _1 h2 `9 W/ w) f
- (progn
! P: l+ h: a |! N5 t& ? - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
' |, g8 _: b6 _% d - ; doesn't have it.5 ?3 H2 ^9 @- V% o
- (if (null (assoc 3 elist))) h( F d! ^2 c7 ?
- (setq elist (append elist (list (cons 3 dimsty))))
. W/ S6 s& u6 h- D - ; else just replace it.
* S Q: d' w8 Q# p6 d# | - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))6 R' A0 X$ r' G# m
- )
0 ?4 H2 I9 h8 L! f' R8 i - ; refresh sv_dvlist with new dimstyle.
# _( y5 c2 x8 y5 a8 [1 c' d - (setq sv_dvlist (tblsearch "dimstyle" dimsty))2 n; z3 u- f6 k% C" C
- )8 h1 U8 c/ ~ Z# b' q$ [! p. E
- )
7 G* `# T' x( ]- R" ^ - (if (not (null dimlist)) ; attempted to change dimvars
& y! I& e6 U1 v3 k# K2 ]7 a. l - (ddimen_complist sv_dvlist dimlist dimtbl)
0 N1 S' g6 r- E8 j - )$ M! B# Q2 V3 @5 B, X
- (modify_prop_geom)" C! [" f5 o: U" V5 r- Y0 j
- (entmod elist). M- M5 s0 @8 ?6 ^% ?' I6 { Y
- )
0 R: a* p" D( f9 M6 e - )
0 k. u+ A+ H4 e - (if (= dialog-state 4)# I8 F7 w- U% I1 ?: V8 j
- (progn
1 N8 i( y- B5 ]& O4 p8 v - (setq ddimmt 1)
# H) |8 l$ D9 ?( S5 M - (if (/= dimsty stname)
/ Z5 u+ I1 O& g8 O Z3 J - (progn z) P7 W; J" X" k5 ^# w
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case1 G i3 `1 N$ Q" Q: u9 o" c
- ; doesn't have it.
" z8 v- ~2 O. X1 m - (if (null (assoc 3 elist))
7 j: j: B% Q$ B/ O8 u - (setq elist (append elist (list (cons 3 dimsty))))
+ Z7 x- o3 _* l3 j' A6 p1 X, B - ; else just replace it.
/ E8 t. P3 J1 B: n5 K - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)), C/ M5 r A+ X3 I" z. B3 x7 N
- ), R1 v2 P( {% H" M2 f8 q* T* I
- ; refresh sv_dvlist with new dimstyle.
7 J8 w9 o6 l( F# b - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
# C7 H; ~$ w9 P) [& k9 x - )
4 D) O# ^; @2 j9 I( K. G& w2 j - )0 \" d! \2 ?4 u
- (if (not (null dimlist)) ; attempted to change dimvars1 S2 u6 b: v) j3 e; t3 }
- (ddimen_complist sv_dvlist dimlist dimtbl)* R! {. `# A/ q; x4 G( I! W" `
- )
% |: e5 z0 O3 |* j - (modify_properties)
" U f$ N) Z$ R! h% B& I% g - (entmod elist)
' Z" s- s4 L! C - (safe_ddedit ename)
7 M$ |. W. X; b4 V$ g: d/ r. n) a( A - (setq elist (entget ename))
' M$ [7 N& D$ D1 P+ k - (ddtolerance)' }) P, t/ n9 {) S, ]; B% r
- )
2 w2 l: r9 c: R M# g - )& d8 H, }3 T" G" T; k+ ]( W1 I0 g
- (ddimen_setvars dimsvcurset) ; Prepare to exit+ e3 Q3 H; v: O B4 @
- )" n5 N! W; ?. j) L% [/ v: z. l3 b
x0 M3 c$ e" d" J- ;;$ S- L7 J; v% Q% _1 A. h4 R
- ;; ddimen_dlg - jump to ADS ddim module# Z& Y- i9 W! s( N+ S
- ;;
8 O+ a( A( T# F# a - {6 z1 @4 q% W6 u, s. @# i9 C
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)+ t" R. v8 p! X n3 F' d' g: f3 A9 q
) z3 Z8 S# _' h" g- ; Jump to DDIM with overrides if any.
2 X! T9 D8 x7 P! g - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry B' ^4 b/ w% F
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
* K( K0 ]& C2 d' N4 s5 ]6 C {2 N - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
0 }! n; [1 _5 o% R' J - )% W* j# f4 T8 v
- )
3 P# f( r, q1 R8 Q/ l* @* ?5 b
" M) }& N; y, P5 k# L7 g; v0 ]! C( ^- ;;! d! c! M' v+ d1 T8 r* k
- ;; Dimension variables updated are stored as overrides.% S1 i# b- b4 b4 Y9 e; @1 C2 m
- ;;
# _3 {% B! Z# D- j/ w: z - ! \$ k1 @7 V3 h; m
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar1 i- L- @* R4 F; Y1 k V6 E
- dv dime commandIssued)
( y+ K& S# F* B$ M" b - " ], d: f# h: q3 a. w3 l
- ; Here we skip the following first three items:' a- p& w9 J x
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
" x* I1 u7 _' x - ;
! X, }& A0 M8 Z5 u1 l" P5 p - ; The list comparison immediately begins with dimvar.
6 K* W$ |5 [: q7 k, h - ;; O" h+ B) j: {
- ; dimolist - original states of dimvars
8 ^! A7 b. J! @# ~* W - ; dimnlist - new dimvar list which is of the resbuf's/ s# G( b& s' b# |5 X
- ; dime - entity name for the dimension
8 G# z- B& r: I2 ^1 w - ; odvar - value of dimvar for the dimolist
G: b( D3 d- w' x& ^ - ; ndvar - value of dimvar for the dimnlist" ?9 ^ Z. C) O
- * h$ [. s# q) {) B* \2 l* u
- (setq i 3: |! t- Y! a- U9 t
- dime (cdr (assoc -1 elist))
: J) Y1 T7 e9 }; P+ Y4 d" \ - )3 x2 W8 e9 J6 A: h
- (while (setq odvar (cdr (nth i dimolist)))
* \2 j( r, A7 ^5 C7 q: P) g+ X" v! k# e - (progn7 \+ p, \% T) \! w
- (setq ndvar (cdr (nth i dimnlist)))0 z8 D( p9 U+ A& `! Q( z
- (setq dv (nth i dimtbl))
2 r1 b0 u3 W5 d z6 p+ _ - (if (eq dv "dimtxsty")
0 m r2 a0 N$ I5 v- j1 ?5 @ - (setq odvar (cdr (assoc 2 (entget odvar))), F) R+ z& U, H; X b
- ndvar (cdr (assoc 2 (entget ndvar)))2 t/ o! b! Y( i' |1 h, y6 H
- )# z8 C8 r8 P7 p, s
- )
2 c! [7 t0 k( l# U+ P/ O
3 C$ W; Q# ^1 U9 w- ;
: V. m' J1 m% T. K( |: I# o6 ]2 H - ; In order for DIMOVERRRIDE to operate correctly with string1 |/ @( ]* O3 \* K" H
- ; based dimvars, we must pass "." versus NULL strings.
8 Y$ P( m2 j# Z x: `- }8 G, U# D - ; In this case ndvar is the new dimvar value the user wishes; @% z9 K4 Z; C+ D. R
- ; to update on selected dimensions./ N7 ?6 A: M9 X3 L0 e: a
- ;' O# ]3 @# x+ t# [4 b8 W
- (if (/= ndvar odvar)
! Z4 d" H. v/ ^- [9 ?$ S) n - (if (= 'STR (type ndvar))
: q9 D1 v& m# \: a4 ? - (if (= ndvar ""). w; S1 d8 c1 |- w) u
- (setq ndvar "."))))# q# q4 s3 x K: X- L
- 2 Y3 }1 g! A- N
- (if (/= ndvar odvar)3 s3 i1 M# ?& O; }
- (progn0 Q1 F, [& D$ [& j. f; s6 Q
- (setq dv (strcat "_" dv))
7 a0 P/ u( h' H) P! ~$ R - ;
1 Z, T* l. B& F6 G - ; Start the dimoverride command& e# H6 j8 G. |/ s( i
- ;
- N: n$ U5 H+ p0 s+ G5 J% p& l - (if (not commandIssued)6 I. W8 N9 ~' q, Q7 J
- (progn& a+ q0 ~2 i, f% o+ n$ R
- (command "_.dimoverride")+ p7 c: J3 W4 u! F! Z
- (setq commandIssued "T")
. L; n- h" k2 B8 t - ). B, N2 l" z5 Q# K1 B
- )
5 y: b; g8 `5 g - ;% e9 V* g1 I/ h3 \. I
- ; Issue dim overrides
; S) O8 b: l; R s - ;
, W+ }) u8 F, q$ ]: ^8 E+ ]/ r; E - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))5 h: D3 Z$ Q/ ` H( T: G
- (or (= ndvar 0) (= ndvar 256))
' H! S8 L& w& j! y4 P - )
5 P1 t& a) y V" ^6 Y. I' n - (progn
; c5 @, n' G* d0 D1 q, \* U - (if (= 0 ndvar) (command dv "BYBLOCK"))
3 a" Y" Y. D' r0 b3 B1 B+ w - (if (= 256 ndvar) (command dv "BYLAYER"))' M D1 O( h7 j, o# K
- )
5 |1 D8 {( n8 x+ w+ o0 D7 ?9 X( \/ j, R; L, @ - (command dv ndvar)
; ]9 m" g6 f) [. [& {- p - )
5 ?3 T# `1 `- Q3 C' P - )) N' f1 e( k0 U+ Q1 O
- )
/ q I, s" b9 I+ c7 q - (setq i (1+ i))
$ m* ~+ U2 N# k% ` - )9 f% p0 x' ^8 B, N4 @
- ), t7 X5 e3 v2 ?1 a
- ;
. L6 Y+ n1 b, X a0 a* _' l - ; Select Entity and terminate command& n: O$ ]) Z0 S' `
- ;
' Q1 d3 Z8 x5 B0 e* B7 T! M - (if commandIssued
?# f) g1 V, r# U* e - (command "" dime "")
' x6 Z. b4 y, w4 L5 @7 T - )
8 `$ D; ~3 _ t. W! E - )
, X' M7 T d3 ~. |% Q6 P) O - ' A2 o* r/ }8 B; I7 K
- ;;
( @6 U+ u5 M! k+ Y) x) X/ m - ;; Get style name currently selected style name.' e! ^: s3 p" ~3 h' i% N
- ;;2 }1 |4 s* P+ h! g$ J
% ^0 o$ k$ ~' o# o7 B1 D' h- (defun ddimen_style (/ dimsty)5 a' n- m" a* \
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)# M8 {5 g: g7 d
- dimlist (ddimen_getdimvars dimsty)
8 R/ S4 } L7 I. G y - )
: c3 N: c1 M y% f" s8 c - dimsty7 S0 z) u2 }7 L' o
- )3 q: i! n: a j2 B( w
1 c& i, g" [ r- ;;; `, D7 Y/ A; e1 x& g
- ;; Set dimvars
+ ^$ J& G7 i0 J - ;;# _6 p( _+ P3 ]* \1 D3 R
- (defun ddimen_setvars (dimsvcurset / dv i)# _) E! ]& j* Q* c! C3 |
- (setq dv (cdr (nth 1 dimsvcurset)))$ w$ `& B: V! O1 P2 K9 E5 `4 o, h
- (command "_.dimstyle" "" dv)! g' ?! |6 v% I4 \" b8 ?
- (setq i 3)
j) P8 F# B) m3 G1 V - (while (setq dv (nth i dimsvcurset))$ y" y% v3 {( J2 @* t
- (progn
! D# v0 J5 \/ l& ?- E. u - (setvar (car dv) (cdr dv))
, C5 |& X/ i, V( {( j* z - (setq i (1+ i))
$ R3 w2 e8 ]$ U( |) V- e - )
; f3 v( _$ N' P/ N. |. ~ - )
3 S* Y3 b) @1 @ - )
) k9 `0 v7 `: X. g* Z - ;;) H' E- k0 Y( ]; o+ E+ ?" X; m/ w
- ;; End-of-dimension6 ]1 j9 U3 `7 J+ t' H6 F2 h5 U
- ;; ==================1 e! q1 y6 }4 V7 u
3 `) i2 x! R5 N3 h- ;;$ L3 L3 S z( a5 S
- ;; Sub-dialogues for properties. Common to all object dialogues
4 W# x; V. o& n5 n p - ;;
( s. t4 g+ H- u! G- u - ;; This function pops a dialogue box consisting of a list box,image tile, and
% ~7 W/ c5 o/ L5 @3 Z - ;; edit box to allow the user to select or type a color number. It returns5 t$ H/ Z1 K# ?9 t% G9 @
- ;; the color number selected.) l" k6 j% {0 K5 { c
- (defun getcolor (/ old-idx colorno cname lay_clr)
3 V) K. F. A3 \ - (if (= (get_tile "error") "")" q: Z6 A8 [. C' |9 i0 z
- (progn' A' \1 L9 l. c' R+ W+ p9 x! u
- ;; Get the color associated with this object's layer, for use E7 s+ ?/ m, |
- ;; in the color swatch if the user selects color BYLAYER.
9 F- b/ _% d4 _0 t, T1 n r - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
+ w, R* a$ R. b" @ - (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
- E# |0 F9 d4 ~ - (progn
! j* G' S* Z" L8 v - (setq ecolor temp_color). b' L8 K. ~; n4 ~$ m
- (setcolor)
y- f3 x# e( x+ N6 R* l, { - )
( F i1 D0 A3 }' k - (setq testcolor temp_color)9 k* }5 k/ I" I7 y2 G6 d
- )
1 d8 K$ I( c0 r5 H5 S - )6 B5 B5 y8 q, L( X' N. i
- )
2 W* d: u* }' {/ @5 j4 t - ecolor3 T, t# ?2 [; Q5 I& f& Q
- )3 x5 B t7 G! i8 M
- ;;
1 ^) ?7 p) J/ F6 u- S) U - ;; Function to set the color tiles.
9 H8 Q, u2 r5 O+ P/ |- {$ D& \ - (defun setcolor()& ~/ G% Z8 `+ b2 b3 t
- (cond; d0 u( t$ ~' q% C Q7 G; _3 p
- ((= 0 ecolor)
5 s1 r3 P V1 y! M; d" h - (set_tile "t_color" "BYBLOCK")# a$ |8 R9 h; C( K- K' G* ?
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white# g: X! Z% w$ N3 W7 X& ^7 N+ w# R
- )
R1 v& f6 e: L- T. t j7 Q( ]6 B( F - ((= 1 ecolor)( e) O% j# g: R7 g' X$ ?
- (set_tile "t_color" "1 red")' O& Y5 R8 V" n* _
- (col_tile "show_image" 1 nil)
: x4 L$ Y6 U; d6 B. v - )2 ?; T) l( L* C) L4 Z. I
- ((= 2 ecolor)
6 Y& X, g. I q: A' B. B% o6 W' r - (set_tile "t_color" "2 yellow")
: E8 O9 k5 C5 _ - (col_tile "show_image" 2 nil)- T# F' I; J% L
- )+ {- c$ G# r1 A. e
- ((= 3 ecolor)
% q9 t5 n' k7 `: L' u - (set_tile "t_color" "3 green")
0 X: o- g# s8 Z - (col_tile "show_image" 3 nil)* y* W+ _! F! G8 M/ [- P
- )
4 b7 U9 ?' }4 q. B( p+ W - ((= 4 ecolor)
+ V. m( p7 H$ m - (set_tile "t_color" "4 cyan")
& B5 R/ B# [# b7 v - (col_tile "show_image" 4 nil)( \7 C7 H+ m+ i& Q
- )6 W: _& B$ m, w: c
- ((= 5 ecolor)
: v( a8 h, H, g- b; Q - (set_tile "t_color" "5 blue")9 v1 T% w' w/ |- [4 M! N& M; F
- (col_tile "show_image" 5 nil)
- J/ R4 z. x( I* _9 Q - ): J6 s) t/ Z) ?
- ((= 6 ecolor)/ j& X" o1 l1 }8 P, k
- (set_tile "t_color" "6 magenta")
7 b9 f5 k g( `5 ]1 ]% Q; g1 x: d - (col_tile "show_image" 6 nil), v: z7 b' z5 Y/ L1 Q
- )
6 H5 T) b5 I: Y/ e6 M+ _+ Q9 ^ - ((= 7 ecolor)
: G9 |% {% D! K, U - (set_tile "t_color" "7 white")
3 |1 ^. j6 M# P$ r7 U9 U4 v! i5 F9 E - (col_tile "show_image" 7 nil)( K9 b, d7 s4 s( P5 x* H1 g
- ) F; I5 l8 f4 R: \6 z
- ((= 256 ecolor)! r+ q1 }% \& I3 {
- (set_tile "t_color" "BYLAYER")% C& f/ S( q8 M* m/ ]( P
- (col_tile "show_image" (bylayer_col) nil)% r( [) B% n& y9 B( i5 t
- )6 [7 E! X2 v4 K9 w; S) l4 S3 d- J
- (T( y9 r: B# Z5 e K
- (set_tile "t_color" (itoa ecolor))$ P8 O1 ]5 A, ]( j2 I
- (col_tile "show_image" ecolor nil)
' ~. @* v- V3 ^* z - )
# L- y$ {6 D2 T8 \& s - )8 n7 D+ e% A, k9 w& Q9 g+ s- _ y: b
- )
5 y2 }) B. d# B( K3 p - ;;; @4 l, V; j8 W
- ;; This function pops a dialogue box consisting of a list box, image tile, and' O2 i* A" B/ b Z5 M
- ;; edit box to allow the user to select or type a linetype. It returns the
9 \1 c. t+ i) O' Z' z) i" S - ;; linetype selected.
4 e; G8 e& E0 N7 }5 V - ;;
2 M3 [/ q. ?; x: Y2 T - (defun getltype (/ old-idx ltname)( J& I' j# B0 J
- (if (not lt-idx)
" y( [, A ?4 l6 y* [. J$ D& C - (progn
' {$ H2 }% x# j$ a - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist/ r7 g! ?/ p' e
- (cond( H( _* R8 w3 f5 u! O5 M5 o
- ((= eltype "BYLAYER")
- \; `" k( e# I/ Y: }* A' A) E - (setq lt-idx (getindex "BYLAYER" ltnmlst))), `: w8 t1 v- f/ q' `3 f
- ((= eltype "BYBLOCK")
; s7 ]7 v* c2 h - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))8 g: R1 k( y. L3 p" @' u, N2 R
- (T (setq lt-idx (getindex eltype ltnmlst)))
4 G6 N# i7 F+ _; \& ?4 _8 e: [ - )
, {5 w1 l' V+ o5 S - )
6 Q% k! S; o& j* i. v' j6 N0 s' H - ). L V4 F7 ~ l2 x
- 7 i! Y, H5 D4 H! k0 c2 N4 z
- (if (= (get_tile "error") "")
' e# F. z* S/ T+ x - (progn4 u& B$ {1 u2 ]$ C. i, O
- (if (not (new_dialog "setltype" dcl_id)) (exit))9 m8 ?; u( |% r, E/ N [
- (start_list "list_lt")
- `% ~( ^& ?( K5 ` - (mapcar 'add_list ltnmlst) ; initialize list box7 Q* n7 V0 x- A1 O7 c" h
- (end_list)
* g1 ~5 f3 M. ~9 J9 F4 r, ]6 M - (setq old-idx lt-idx)
+ W4 u/ f' \7 D4 E+ f - (ltlist_act (itoa lt-idx))% e8 D2 V! D9 g' E+ Q- w
- 7 {# F8 }! Y$ A" h; R; X
- (action_tile "list_lt" "(ltlist_act $value)"): Y$ O. V: A! W8 E4 t5 @+ c; K
- (action_tile "edit_lt" "(ltedit_act $value)"); b3 g* s( c I% V
- (action_tile "accept" "(test_ok)")
( v" C1 z7 d: Y7 q. t" l7 I9 c - (action_tile "cancel" "(reset_lt)")* b: g7 A+ B8 @1 C. b8 e
; H1 a% d8 V9 }- (if (= (start_dialog) 1) ; User pressed OK
- C! I7 k# M: g1 U - (cond1 L$ e8 x5 Z8 K/ I# U# L3 w
- ((= lt-idx 0)0 R3 P6 W# _$ F5 ^4 h
- (set_tile "t_ltype" (bylayer_lt))
' Y) @ \: E$ a& G z2 m - "BYLAYER"& w6 F9 U0 i6 F! h$ j
- )! X. M( P! a. w/ N: _2 Z4 S8 o+ g
- ((= lt-idx 1); x( |; X0 f8 f; _8 g% E
- (set_tile "t_ltype" "BYBLOCK")
; O; j" s/ K% s C& s" s - "BYBLOCK"0 u, n: }" }" f+ m# }! q) F
- )+ u J' j% i% l, k
- (T (set_tile "t_ltype" ltname) ltname); S6 }& o( v6 n1 L6 v
- )' G+ O, B6 y0 G4 e, I
- eltype
9 M: Q7 X0 q$ y - )5 i% {+ C' `) a
- )" ~# c( t, m- m2 j5 @/ j6 g
- eltype$ B: {! X) z0 }/ F( n
- )# j9 _+ G, S2 q- e9 r
- )* h% t2 _" I& e! P5 Y
- ;;6 E- r% q/ k! b* K) p, E
- ;; Edit box entries end up here
6 |2 F- g* {- D2 x& W1 M" x - (defun ltedit_act (ltvalue)) k/ j. [+ [$ [( Z' g! D @: }9 n
- (setq ltvalue (xstrcase ltvalue))8 O: E% ^, g/ p( v: {
- (if (or (= ltvalue "BYLAYER")
* j$ r% t4 M/ f+ `+ [1 q9 T. P, g - (= ltvalue "BY LAYER"))* ? W" O7 {; F0 X( U7 |+ Y
- (setq ltvalue "BYLAYER")
7 o" x# G& M' W/ _) J+ R - )% t5 e3 b6 K1 c1 u$ ~
- (if (or (= ltvalue "BYBLOCK")
1 ]6 x5 W1 o) u# i: H. K - (= ltvalue "BY BLOCK"))
) {- p" u+ V& D& u: f/ K% m1 O - (setq ltvalue "BYBLOCK")6 o3 }2 n4 f: M
- )
4 R0 p2 O( U: ^; L - (if (setq lt-idx (getindex ltvalue ltnmlst))
A+ @; J* x0 g' m6 A - (progn
+ ]' m# b& v( M- f6 N - (set_tile "error" "")9 @) g/ H, X8 r1 E
- (ltlist_act (itoa lt-idx))/ [" \* i5 N% `, P4 L6 A# r0 w
- )" d) v! C U, @
- (progn
6 w* x7 S3 ?- H7 y( R. L- ] H - (set_tile "error" "Invalid linetype.") r7 O1 `- e: P+ m! ^) B
- (setq lt-idx old-idx)! l& B0 J- D) t; a+ J" d
- ;; (mode_tile "edit_lt" 2)/ P; L9 @$ T ^0 Q& I6 U+ z
- ;; (mode_tile "edit_lt" 3)& [9 B$ v% p2 ~- V! A
- )$ V, M- N/ { w7 y! L0 [8 R3 n
- )9 `# |1 l, Z6 p# Q3 H4 |0 W
- )
j4 Z! t: Y" q' o - ;;
: W3 T/ q9 V8 T z7 Q6 I3 H' J0 P - ;; List selections end up here. Update the list box, edit box, and color
; B6 O& d; I7 |# ]1 H! q4 R% f+ } - ;; tile.
0 H+ m7 l9 d1 F. ]7 i9 J& s) k - ;;0 a1 i1 J3 ]- s& T
- (defun ltlist_act (index / dashdata)6 D) @% W* F% A' B) N6 m
- (set_tile "error" "")
+ w' U- q. e- a9 U ` F - (setq lt-idx (atoi index))1 c" z8 I3 |. [; i) Q( W
- (setq ltname (nth lt-idx ltnmlst))
: A' M, s- m7 z, k- C - (setq dashdata (nth lt-idx mdashlist))2 @4 j) A( m' _9 |! v
- (col_tile "show_image" 0 dashdata)$ `. \3 D) O J w7 Q: d R
- (set_tile "list_lt" (itoa lt-idx))
- B: [0 n4 ?0 J2 a5 F; a9 I - (set_tile "edit_lt" ltname)! `. m8 @! o; [) O' J
- ). P: K$ w9 d, {
- ;;3 b, |$ t& s$ j8 U4 G) j
- ;; Reset to original linetype when cancel it selected
2 ~ ~+ U1 \' P" \ - ;;1 c+ p k# e8 u
- (defun reset_lt ()
/ r8 W1 U4 ]$ |" m- s9 M( x4 ] - (setq lt-idx old-idx)
# g6 }: _$ K" M. |& d - (done_dialog 0)& u* l( a: a a- v
- )
( _0 s% \% B) v# T# v- W- ~9 u# T; d - ;;& ]- D* c) \9 r* h
- ;; This function pops a dialogue box consisting of a list box,image tile, and, K6 U* c" }" W [2 E( t7 S& H) R3 c
- ;; edit box to allow the user to select or type a layer name. It returns the9 s0 V7 b; E# R5 i) y7 E9 c1 b
- ;; layer name selected. It also has a button to find the status (On, Off,
* V# Q/ q4 W/ j - ;; Frozen, etc.) of any layer selected.0 T o8 F1 ]4 z+ G8 X
- ;;
& J. m* _4 O, j" p K - (defun getlayer (/ old-idx layname on off frozth linetype)
% `* V5 ]* N7 i& ~: s - ;; Create layer list the first time the layer
: C( b9 d6 m9 ~" q- Y - ;; dialogue is called.' y. {% ]5 D! b
- (if (not lay-idx): i @% n- t! K! C$ b6 q
- (progn
/ {" X7 }& Z H0 K1 S& p - (make_lay_lists)9 C8 H& z& n1 q5 Q. g" i" S {
- (setq lay-idx (getindex elayer laynmlst))1 _* ]$ H+ s0 N+ Z; w. O- b0 J+ |
- )
: K! D. K( t2 y1 o9 [3 t3 D! ^ - )
" u- I; h2 _4 n) c8 M% \" e - 8 m2 H P( u5 }& E
- (if (= (get_tile "error") "")) B+ y" D; G8 ]% w9 H2 t( |
- (progn
$ d' c! c0 q j, C - (if (not (new_dialog "setlayer" dcl_id)) (exit))! \" k ^1 c& B e
- (set_tile "cur_layer" (getvar "clayer"))
4 H! |+ B9 x, f1 O* Y }; c - (start_list "list_lay")
8 T$ f5 \* _: L& s# G - (mapcar 'add_list laynmlst) ; initialize list box! Q2 S( r: a( [ `$ ~% I2 H
- (end_list)
! }% W. F5 {: u+ p - (setq old-idx lay-idx) u6 P2 O5 i, w8 j
- (laylist_act (itoa lay-idx))
3 @8 G3 t/ t$ I8 c! o - (action_tile "list_lay" "(laylist_act $value)")
9 w$ I+ t: `0 ~* r g - (action_tile "edit_lay" "(layedit_act $value)")' H4 b" N @7 o* }. j% {3 ]1 O
- (action_tile "accept" "(test_ok)")
* H( [0 B% o) O: } - (action_tile "cancel" "(reset_lay)"), b7 S" x8 ~1 T& e! Z5 _% x! x
- (if (= (start_dialog) 1) ; User pressed OK, z$ I3 Z3 L7 N' a4 K, q) S
- (progn
! ], }4 H" b* A* Y+ P, M% u @1 A - (set_tile "t_layer" layname)
" L' c8 f, \3 \3 ^, f9 e6 P - (setq elayer layname)
, e4 W7 V7 Z. N% | I - ;; If layer equals bylayer reset color tile
5 l: S2 ^ q( E- ? - (if (= ecolor 256)8 {3 b2 L* N5 L
- (col_tile "show_image" (bylayer_col) nil)
0 a$ g2 z- H$ m6 f4 t3 L - )2 G' c" f/ d6 E
- layname
( K* V) N7 J: c, h* S0 V - ); }( X1 Q: z% j+ _ [
- elayer# R) e2 o O: O! z
- )
; }% Z4 m7 e% C9 @7 m: j - )
' f" h: q" z' _0 w1 [% k8 W - elayer [( m' i3 C* U4 _9 P/ K
- )3 I% }. F- ~1 `1 B9 F
- )
8 V: b/ v2 B* m5 R - ;;
% A* L. m4 o {' T" O - ;; Edit box selections end up here. Convert layer entry to upper case. If
! }$ s( [! P9 Y2 p - ;; layer name is valid, clear error string, call (laylist_act) function., o6 s! [9 k& `- o
- ;; Else print error message.; h2 j3 o. Y6 R% U9 N, Y
- ;;! P& J' H1 q% |6 f- J, a# q t! E
- (defun layedit_act (layvalue)& |2 j! O! j6 h. ] D# s: z5 Y, F
- (setq layvalue (xstrcase layvalue))7 S/ t( E8 z6 O( y
- (if (setq lay-idx (getindex layvalue laynmlst))) f7 e. Q: V$ ^4 R3 W2 a1 S' D% X
- (progn, p, K0 c) @, p; N b2 `9 ?
- (set_tile "error" "")( a% ]6 |; @6 }" i: O' E
- (laylist_act (itoa lay-idx))
- _0 D* R* U5 o Q; o' Z; D - )
/ V; O6 D, H5 d: c1 K) | - (progn
7 z; V/ W% ]4 L3 s - (set_tile "error" "Invalid layer name.")6 w4 L6 H( a9 i. O, ?/ M
- ;; (mode_tile "edit_lay" 2)
8 A" [. c, ^8 _* j' H - ;; (mode_tile "edit_lay" 3)4 W6 v9 W4 |* B3 t8 r
- (setq lay-idx old-idx)
& P! C: j( v# n) z* r1 {, p: Z - )
( d" |( g6 Y7 |# j7 s! Z7 ] - )6 ^- X# M& Y9 s8 T0 G2 F* M
- )7 Y; @* \5 t4 j( v. M e
- ;;
6 m; l3 y1 {* f- K: f1 y - ;; List entry selections end up here.* O3 Q$ f2 _5 l# M, x' m, @( t
- ;;- t! w" L4 t# F2 ~8 k
- (defun laylist_act (index / layinfo color dashdata)
* R/ w: F' s1 ` - ;; Update the list box, edit box, and color tile.* m `/ m- L; \7 f% D6 Q
- (set_tile "error" "")
1 k; ], g ^, K+ g- e - (setq lay-idx (atoi index)) ^8 c0 s% _& L8 {( Q8 S+ F Z
- (setq layname (nth lay-idx laynmlst)); M8 K0 z( y4 W" A' Y
- (setq layinfo (tblsearch "layer" layname))
+ [; N7 X2 j( N; e: h+ @7 f6 ~2 v8 X - (setq color (cdr (assoc 62 layinfo))), V9 e6 u) S/ A; ]; [
- (setq color (abs color))" p- l& M( M* W* I) |
- (setq colname (colorname color))/ W- t }7 f% f0 W( h" B
- (set_tile "list_lay" (itoa lay-idx))3 z9 T& A8 x7 P* e8 O* t$ s
- (set_tile "edit_lay" layname)
5 d5 s4 f. Z4 i; m - )
1 N: e0 ]7 @& \* h - ;;
4 x8 H; L, l, Z8 _ - ;; Reset to original layer when cancel is selected.4 O d3 M, _3 A; h) L
- ;;
% g. r& a3 m" F, o; N1 a5 E - (defun reset_lay ()
A6 z' a) I7 I$ O. y, N - (setq lay-idx old-idx)
6 L# ]5 [' }. [ - (done_dialog 0)
. c' i5 f6 z& O! H7 X8 T, @- h - )9 F6 `. M' r9 R9 f' {( V C. m
- ;;
- T: e8 P: U) a* e, A) Y - ;; Checks validity of thickness from edit box.
" @# r3 `4 I+ c4 M' C - (defun getthickness (value)
8 t: `0 z- D! j- x8 I3 O# c* w7 F - (setq ethickness (verify_d "eb_thickness" value ethickness))
[+ D; w' f. m5 u R1 Z7 T' R5 P - )9 W! d4 x0 ?. O) c8 @! T
- ;;
2 `; O" d" ^7 y- l4 X- I( _ - ;; Copy of (getthickness) for ltscale. If more, make this function* ^2 V* T" O' V$ x! u/ V
- ;; generic.6 o! U4 `2 ]1 E
- (defun getltscale (value)+ a$ |/ u e+ _! F0 d
- (setq eltscale (verify_d "eb_ltscale" value eltscale))
/ @% V( q4 x+ W( `& g - )
% _# e5 Q; y1 q E* L$ v' Y* | - ;;
3 e5 y! T, m! D2 X - ;; This function makes a list called laynmlst which consists of all the layer) w `; z D/ ?9 Y
- ;; names in the drawing. It also creates a list called longlist which R$ ~$ c+ K, c2 E# G. |
- ;; consists of strings which contain the layer name, color, linetype, etc.
" C- r/ j! P& n - ;; Longlist is later mapped into the layer listbox. Both are ordered the- }2 Q% {' t% ] L' s
- ;; same.7 C& b: ~/ Q. e, n
- ;;
! W/ x5 ?# |, ~( a - (defun make_lay_lists (/ layname sortlist name templist layer_number)0 T* p p) `8 ? P. Z' G6 ?
- (setq sortlist nil)8 T. f# p X$ P! @$ c: {* a0 x6 B
- (setq templist (tblnext "LAYER" T))" i$ L' Z& s) @* D
- (setq layer_number 1)
( C0 R g( Y0 j% s - (while templist2 w2 m" Y; B0 ?, W' M1 p
- ;; No xref dependent layers, please.
0 a+ q1 ]- w' C' S0 A6 g! A - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
6 \) l/ Q" [9 {1 s& |( E7 y! F- @0 b! K - (progn
+ Z( d4 ]# w9 u( F7 j - (setq name (cdr (assoc 2 templist)))
! v9 Y" \! t& W. @: x$ R$ M; w - (setq sortlist (cons name sortlist))
; m* `, R Z9 ^# ]9 ^1 E0 {' J! _/ [ - ) {- X, `# ]; P: P; S5 z
- )" }* z1 N" m$ p. _$ S( d8 H6 l
- ; Get the next layer.
0 s7 }! S4 J3 K# }+ @/ f0 H w - (setq templist (tblnext "LAYER"))2 T6 F: K `2 H: |
- ;; Not dead message...; m* u8 [$ U& ^5 a
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
; F) ?: G* e' F - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
9 M1 W5 U1 z+ @% W" R! K' ?3 D - )3 r7 f5 E- E8 h
- (setq layer_number (1+ layer_number))
# R' G+ d' g5 @4 o - )
$ n$ t% D5 p2 R# \: i. { - (set_tile "error" "")% E9 A8 ]8 Y) a- y- @1 B
- (if (>= (getvar "maxsort") (length sortlist))% F) t% V8 `1 O! E8 w! I1 i
- (progn; W: Q+ H' G+ [0 j( E) ]" o0 ]5 h
- (if (> layer_number 50)
0 n ?: h& B q# h - (set_tile "error" "Sorting...")
, p- Y& }3 i+ k8 S - )
! j7 ?4 H6 I+ v - (setq sortlist (acad_strlsort sortlist))0 p8 F& O$ X' t
- ) d7 j# h" \! A2 ]/ S: T$ a
- (setq sortlist (reverse sortlist))
: i/ [* ]" R! Q$ l, ]7 _3 r% @ - )9 J1 L6 M- O* g9 e
- (set_tile "error" "")
, e; N' f Y: l' O1 H m3 Q - (setq laynmlst sortlist)
! G6 o8 A7 r( e5 ]) L3 @ - )
; F7 L9 b3 U% G; G, ]: `0 Y - ;;6 k4 y4 c1 ~9 @; @& q$ E% p g
- ;; This function makes 2 list - ltnmlst & mdashlist.% u9 G3 C0 f+ _, O& z. u
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
0 S6 E5 h* [, Z' @ - ;; is list consisting of lists which define the linetype pattern - numbers4 Y, x. }# V J: E6 n* N% p1 c3 N
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list
+ ^/ K$ _3 S. f0 L* J0 p- ^ - ;; corresponds to the order of names in ltnmlst.
8 B% ]2 G9 O1 f7 J4 ?) g; I. S - ;;+ F) Y8 o. y3 s! r
- (defun make_lt_lists (/ ltlist ltname)
' `5 y; F1 u$ [* \4 J# g: `; V - (setq mdashlist nil)
/ S2 ~% l7 I/ z0 S! u' y+ o/ D - (setq sortlist nil)9 f" J$ z+ s6 h% [( l" Z9 |& t/ X
- (setq ltype_number 1)
, v& J. T4 c' e/ T$ [( V/ \ - (setq ltlist (tblnext "LTYPE" T))
0 B" j [ D1 l6 h/ d - ;;(setq ltname (cdr (assoc 2 ltlist)))
+ W3 ~6 A, Q5 Z7 ] - ;;(setq ltnmlst (list ltname))
( v v" T: O2 {, M+ C3 j8 o - (while ltlist1 }1 f, r; ]9 B% P
- ;; No xref dependent linetypes, please., \( P2 v6 m& Y9 c" U, I' ?
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
+ R- x0 v0 |* `& r5 {9 ] d7 b7 g n - (progn
% S2 G( b' b; v7 @ - (setq ltname (cdr (assoc 2 ltlist)))
. l+ e, z; T9 h: t5 P5 ?# ?, k4 U' i - (setq sortlist (cons ltname sortlist))
" Q* u. V3 l ?# ~ b4 ? - )+ c$ F7 c" Q' U$ f
- )
' o7 N# V2 v) N5 m - ;; Get the next linetype.; n9 {: ^1 V8 g* ^8 v
- (setq ltlist (tblnext "LTYPE"))7 w7 V; F) j) E
8 Z$ x) e3 W5 v! P" M- ;; Not dead message...
+ O- L6 A& j9 a: s( z" | - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
- j: V3 U5 s7 ~, A, e) j7 g% P - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
4 Z# V" p \& I' u2 ^$ q1 x) | - )/ F/ ?$ H0 @* }3 s/ d/ f& X, t* m
- (setq ltype_number (1+ ltype_number))
" A$ E, e: o! l e
1 z( z2 Y8 l7 N9 I2 K9 m) U- )* U. W( m6 W! r, h
- 5 |% u7 ?" @+ v1 F
- ;; Remove Collecting message.4 r) d7 W5 Z0 H- @4 k! [
- (set_tile "error" "")
5 h* _% I+ z6 o6 r7 i# G; X! m - 9 W+ g" n& Q6 T9 B
- ;; Sort based on maxsort.5 u" X: y% ?3 C) w8 K" g0 R
- (if (>= (getvar "maxsort") (length sortlist))
/ Z! k, {1 N, y: N. @ - (progn! R# C0 \! g( S2 |1 @& O
- (if (> ltype_number 50)
2 k6 ?2 g g1 B+ x4 _- l - (set_tile "error" "Sorting..."), x$ y' K4 H) T" O5 u
- )
s# Z4 q+ t+ ~" [+ V- B: ? - (setq sortlist (acad_strlsort sortlist))( S9 Z1 k3 k x$ ]: M6 f
- )2 T/ e0 L- C c' [) A( I, [
- (setq sortlist (reverse sortlist))* ], v+ v! s4 d4 o3 n0 L
- )
0 ~1 W5 o6 i9 U - (set_tile "error" "")
* l/ n3 a+ `* ^; ]" C - (setq ltnmlst sortlist)/ Q- T. j8 `% C' t9 u t
- 6 Y& |+ b# D/ D6 B
- (foreach ltname ltnmlst
1 J, _2 x" @. _1 n6 N4 ^ - (setq ltlist (tblsearch "LTYPE" ltname))
6 s# G/ v; K- D% {) d5 W& ] U - (if (= ltname "CONTINUOUS")
% `# q5 H+ G- D5 q3 I - (setq mdashlist (append mdashlist (list "CONT")))% w9 A7 _& H- l0 h. h8 {
- (setq mdashlist/ Q% e" Q# r, ]
- (append mdashlist (list (add_mdash ltlist)))
. R5 T* o6 @% Z - )
( W4 S1 B: _, D: I' h! L. f - )
* A# O. K$ R" C- Q* _. k! p- `1 s - )
- F3 _* ]2 W8 t, ] - (setq ltnmlst (cons "BYBLOCK" ltnmlst))5 r4 J; W7 \! Z0 w
- (setq mdashlist (cons nil mdashlist))
0 A0 J/ X: j0 g: b% K. ] - (setq ltnmlst (cons "BYLAYER" ltnmlst))8 {1 N6 ]5 n0 z! _* q5 f, \% U2 h2 e
- (setq mdashlist (cons nil mdashlist))
, L/ W- U) a* x+ O! z1 x8 N; K - )4 P- D9 l0 a% D( T3 E0 `
- ;;
: I, a) C( L9 e$ N. m' Y5 J - ;; Get all the group code 49 values for a linetype and put them in a list. y+ X! @0 W4 Z! r3 }
- ;; (pen-up, pen-down info).6 {2 i4 `1 r* \! W5 U( d" \7 A
- ;;
& n# J8 S, D8 \6 i0 Q - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
! Y" n- ?6 n+ P' [# e+ ^" y - (setq dashlist nil)2 Z! j+ e- l: k; s4 F6 z; M& e
- (while (setq assoclist (car ltlist1))
6 l) z" ~; J9 {5 g# Z - (if (= (car assoclist) 49), z2 }& T- s: ^% P# z8 O
- (progn
2 R z2 ~$ T z' Q - (setq dashsize (cdr assoclist))
4 o" j" K/ ]. s% _' A - (setq dashlist (cons dashsize dashlist))
1 E' n& M- g1 r0 d ` H - )
7 s' X4 S2 z- t4 B, s - )
3 g/ B4 ~. |" M3 C Y6 Q - (setq ltlist1 (cdr ltlist1))
* A6 }4 Q; W1 h: s& }; c - )+ l" i0 o8 l( [$ [5 }' x) q
- (setq dashlist (reverse dashlist)); L$ O, s: v% A3 i
- )& s, M5 h5 A, A3 O
- ;;
& }$ A1 j. ^, i! B9 Z& E# P& u - ;; Color a tile, draw linetype, and draw a border around it
0 B! t) ~& T8 \0 v' ] - ;;: u& S+ W S& u& z
- (defun col_tile (tile color patlist / x y)
2 U& `* c! D: g7 J - (setq x (dimx_tile tile))% Q x# t+ t2 Y! v
- (setq y (dimy_tile tile))+ }$ d+ o) _3 u) _- Q( M4 E Y: q2 p- k
- (start_image tile)
3 R" `8 F E: n( ^( [, R. E4 |# a/ \ - (fill_image 0 0 x y color)
- P$ ^4 w0 l# e9 Z; u; Q' } - (if (= color 7)$ U; o6 M8 }7 ]: E* M
- (progn
q% A6 ^& t) L& D) x+ [, \( l - (if patlist (drawpattern x (/ y 2) patlist 0))3 p0 g8 C* H2 F/ X) d8 H/ ^' z
- (tile_rect 0 0 x y 0)
6 ~$ n6 x6 F7 k - )
! R. L$ Z, C' ^! d; J - (progn
1 @: _( @( L f* U - (if patlist (drawpattern x (/ y 2) patlist 7))/ |- ~8 X) b3 s6 e- Y% P7 Q6 X9 X
- (tile_rect 0 0 x y 7)
7 F2 L# Y3 ?; b' P! E - )+ I/ j0 r' G% H3 I3 N+ Q
- )
8 d/ O, Q/ x7 ~7 D5 R3 \& m - (end_image); u) l, ?/ ~+ P0 o2 }* B6 S
- )% R2 Z% u7 g/ Y( g4 k
- ;;1 Y% W8 r8 g8 Z* S# \1 D
- ;; Draw a border around a tile3 L& k( i6 o/ A6 o; B1 @8 `( b2 W
- ;;$ `0 m; u, L0 _! J+ ?! ], }! C
- (defun tile_rect (x1 y1 x2 y2 color)6 T& @$ O/ t+ k
- (setq x2 (- x2 1))
# k6 M" _6 P3 J* Y! f! l" D - (setq y2 (- y2 1))
& C: e' n9 k& n) k) e2 Y) O) l! n - (vector_image x1 y1 x2 y1 color)% | P. Z+ `) h7 {( d, p2 ^+ x& j0 v
- (vector_image x2 y1 x2 y2 color)" q6 v/ j: s4 l( k
- (vector_image x2 y2 x1 y2 color)* i8 C5 G" {* V/ E" l6 b
- (vector_image x1 y2 x1 y1 color): C9 F3 Q* o- ~, M% d
- )
, j% S, t$ ~! H! E - ;;
7 V+ U/ i- e( v ^* E - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image0 s* t5 P6 H# M
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
) i0 X2 Q4 K7 J$ x, [' c - ;; list of numbers that define the linetype, and color is the color of the# z7 b3 s! H L9 e2 n' e) r
- ;; tile.
6 D. o" \& k: f - ;;* C; ~# ~" F1 q, [
- (defun drawpattern (boxlength y2 pattern color / x1 x2
; r7 f. r1 J, J6 L% Z' F. d/ Q( B' @ - patlist dash)) t1 m. W$ D9 H9 m! n
- (setq x1 0 x2 0)
* t: G/ w; c( j - (setq patlist pattern)& p$ p9 {/ q8 l, E9 J# a
- (setq fx 30)9 g/ d) `' Q" U2 F; T0 j. N
- (if (= patlist "CONT")+ y% y: K! m& _* z( }9 j" p7 c
- (progn (setq dash boxlength)
' M9 i/ d8 S, k2 h - (vi)
& s$ D' ^% s( [! U! k* j - (setq x1 boxlength)
2 l6 h7 n, Y0 ~9 y' P* d - ) |4 k; H5 R$ Z C! S
- (foreach dash patlist6 o t# ^' [- E& i
- (if (> (abs dash) 2.5)
. l7 B8 J9 U& w; o - (setq fx 2): n" P: @# `8 N9 a" V# ~# v% ~
- )
! [3 t; a K3 t* j; t. u - )1 u( U& r1 _5 _ g `7 g
- )
J7 j- V* w" N, `! ] - (while (< x1 boxlength)2 {3 Y8 N4 j3 |6 E
- (if (setq dash (car patlist))
{4 H* H) t- ]9 o0 s* |- s5 W8 A2 S - (progn
( n/ i2 e/ M1 z3 g0 } - (setq dash (fix (* fx dash)))
8 I$ m3 z ], ^; z# z! y, o - (cond
, M. Q M5 W" s- q: K - ((= dash 0) (setq dash 1) (vi))2 o5 f4 A1 C1 o
- ((> dash 0) (vi))! W3 B' N& E; ?7 h1 ~" ?% ~# g
- (T% G/ z6 [' R) J. a- p0 m0 O
- (if (< (abs dash) 2)9 b% Y( T. S& `: l% a$ J3 X8 f, `
- (setq dash 2)+ r8 u) b2 a, A( m, v
- )8 A o# v' A' s+ F9 |) t& ^: A; j
- (setq x2 (+ x2 (abs dash)))
' S2 D- w! ?& ^ - )- {' P1 d9 F: z; l- _3 g) w
- )+ ~: K& J. A( P" N" t
- (setq patlist (cdr patlist))
/ L; d; F& g6 M7 H - (setq x1 x2)
& i7 r! ~1 h8 N, S* m5 u9 H - )4 R! e9 S5 |' S: T% r
- (setq patlist pattern)% z- _) z8 ?9 I- q
- )- ?' U8 T6 r7 c% R$ Z+ `6 x, M
- )1 \; O2 g' U% t4 N6 S, w, y
- )
- c# w& b( v2 Z" f, j. ~2 f - ;;* |1 i8 o& @( u4 ^
- ;; Determain state of xclip2 U! T) q m4 e- j" l5 A
- ;; Returns the group 71 value of the spacial filter dictionary.3 D% B. s7 \% O
- ;; If the entity doesn't have a spacial filter dictionary, this; D7 }. ~8 V9 b
- ;; returns 0. If it does it will return 0 or 1 depending on the% c$ R3 N3 T8 H' U6 [$ c' F
- ;; current setting of the state of the clipping visibility.
5 o- N$ m u! D$ M: ^8 o C - ;;
& \' u5 }0 j3 a - (defun xclipon(elist)4 n' O% ~) i. D, E- I1 D
- (setq hasclip T) ]4 d0 A3 a# h; H, _
- (if (/= (assoc 360 elist) nil)
* P5 N6 \0 R l9 l2 S - (progn
: x$ k/ _, ~; n! J4 ^ - (setq tmp (entget(cdr(assoc 360 elist))))
9 f: r( b1 o @% g/ `( C - (if (/= nil (assoc 360 tmp))1 A, T1 M$ V& V% \
- (progn9 l+ M; l j3 v; R
- (setq tmp (entget(cdr(assoc 360 tmp))))0 \, N* n: |) f# n' d! P* S
- (if (/= nil (assoc 360 tmp))
1 r- D; ?5 `6 U - (progn
) ?# `+ o) a; Y7 B1 ? - (setq tmp (entget(cdr(assoc 360 tmp))))
/ ~$ |8 I; q, V6 q$ C7 w - (if (/= nil (assoc 71 tmp))
( H* Y: G/ p+ O, o D" `3 s9 e - (cdr(assoc 71 tmp))
4 g' T9 q: b% q! ^" A - (progn
+ j3 i) I! ~& F6 ]& T - (setq hasclip nil) o1 x% W v" M4 |% Z9 f
- (eval 0)
9 O8 K% \$ G. K( v1 h* X* s" d - )
, {1 t. e7 ~0 c - ), ?7 \: m# z) W7 o9 K( G
- ); _3 I$ _- \3 c5 L
- (progn 4 R7 ^- L* y8 E( n4 Y4 Q
- (setq hasclip nil)( c# P( E, Q9 g) `: q
- (eval 0)) E# J/ y1 {2 |+ r4 [9 ~
- )
0 ~9 t" I+ L" Q4 o1 w: K - )
: Q0 k0 X, p; G' E- n. h - )
0 z/ A7 q+ ~, \2 ^3 g - (progn
/ M) ]9 C! c* [( h2 l6 x! s - (setq hasclip nil)0 X% X2 s5 D# f7 E# W
- (eval 0)
`/ `$ z$ o! A0 d8 Q+ y - )
; [" s. H8 P: q4 m9 q - )
( ]4 ~( G, g l# X/ ] - ); @( n& p' A0 l7 U/ Z
- (progn ' l2 G) u- q% A: J. g
- (setq hasclip nil)
1 C0 c7 o; Z* V4 I - (eval 0)& W+ U. ~: _5 i
- )
$ Q# @# ^& I% K- y# N' b - )8 G- m% X7 F0 i3 i: X3 c7 j9 G/ M( }! v
- )
& f5 d% @4 ?# X4 W @ - ;;
9 D1 D3 Y! s/ W* K+ L - ;; Draw a dash or dot in image tile
& o* J$ X4 ]( I" Y. k8 z - ;;3 G. M$ P, s& n: @/ C& e9 O
- (defun vi ()
9 f; P$ u, j: v5 u% Z d2 {3 X1 `7 E - (setq x2 (+ x2 dash))6 R& k0 b0 O L1 n, R' n
- (vector_image x1 y2 x2 y2 color)
8 d1 ]* x ]& F" c1 [ - )$ B8 S4 @8 y# p. [9 v' w+ p: w$ X
- ;;- c+ A% l7 C: b& Q4 c
- ;; If an item is a member of the list, then return its index number, else
, U" e' u5 @9 I7 u - ;; return nil.
- d* ?9 S# w; u, O - ;;
8 p: D/ T: T5 Q$ b - (defun getindex (item itemlist / m n)
4 V+ H i% p( s0 V4 ~9 U - (setq n (length itemlist))$ ~8 f5 s2 p) t( K: I |
- (if (> (setq m (length (member item itemlist))) 0)
! z" V. s; t7 V2 b7 Q - (- n m)
2 c/ Y. Z- |) N: ~$ X - nil3 Q- m2 J* ^ q1 o( X. v
- )
7 S: ]3 W* @& ` E9 f, {) Z - )1 d5 B- J9 v$ I
- ;;
+ g" Z# `7 R( ?4 z+ p8 k! Y. e - ;; This function is called if the linetype is set "BYLAYER". It finds the
; p" T( }! |4 f5 N: t9 {1 C - ;; ltype of the layer so it can be displayed beside the linetype button., `* q* C9 u5 K A4 c
- ;;7 I. ^# [5 J+ p5 p6 m J" z
- (defun bylayer_lt (/ layname layinfo ltype)* w& R# N" z' K" m* ^% ?2 m
- (if lay-idx
+ J! E X; s# V - (progn
8 j5 V" I0 J: ^, b+ {# D. N - (setq layname (nth lay-idx laynmlst))
8 E- J% @( w* ]6 W - (setq layinfo (tblsearch "layer" layname))8 T& D# }1 @# ], _9 N3 B, S
- (setq ltype (cdr (assoc 6 layinfo)))) X: B& y7 ~6 A
- "BYLAYER") b7 i" D G5 \) v5 z+ M
- )3 N0 v8 A$ g) `( j+ j8 @; h
- "BYLAYER"7 i7 `" j! X' X5 a5 B! t
- )5 x$ T* Q8 Y7 l2 P/ P# N
- ); b& S1 G8 Y7 v
- ;;1 { A" P+ I I* ~" v* S$ @% J
- ;; This function is called if the color is set "BYLAYER". It finds the color- a( s; D h7 T8 m0 k
- ;; of the layer so it can be displayed beside the color button.
3 B0 ~. b/ I* ?& |) ^3 K - ;;0 I8 T6 B* e3 O
- (defun bylayer_col (/ layname layinfo color)
" y# E8 a0 h" a: t4 @0 H9 z - (setq layinfo (tblsearch "layer" elayer)), Q! Z( ]) o: X) C$ g3 M
- (setq color (abs (cdr (assoc 62 layinfo))))% h% F( [% t4 G' }! O# M& ^
- )
" R+ V1 S- z F6 [5 m/ {; `' U - ;;+ X$ ~ D; i" o( \, ]3 o
- ;; Used to set the color name in layer subdialogue.$ X% N' l2 I. m9 D
- ;;, o& Z( E9 s2 c: @! s0 g
- (defun colorname (colnum / cn) T( ]0 d+ ?' r
- (setq cn (abs colnum))
1 J9 p6 ?( M1 x. v: p9 r ] - (cond ((= cn 1) "red")
( {; g, t* {( h" R - ((= cn 2) "yellow")" I* c8 t! }1 h* Z
- ((= cn 3) "green")
4 V2 g- _. H: a - ((= cn 4) "cyan")
* {; m4 `' t+ c+ ~& K - ((= cn 5) "blue")
. e' K3 N" h/ n* I2 {& Z& T, M8 y - ((= cn 6) "magenta")
9 v' }- T' V; F9 U+ K3 _/ m; }2 c - ((= cn 7) "white")6 h/ V0 ^4 z+ s" y- y5 y
- (T (itoa cn))
; P0 H; Y. F H - )! j3 _( E' k( u1 K* \2 M# s7 [
- )
" Y: _2 N6 b* v7 p4 m - ;;& R6 D: X r1 ?2 h5 y h
- ;; If their is no error message, then close the dialogue.
& W4 N) {: ~5 Z$ V - ;;
% a9 L9 C) o2 C2 W6 ^' V2 W2 L$ L - (defun dismiss_dialog (action)
- L2 k1 D; D* `3 l/ @3 W; {6 l0 } - (if (= action 0)
: `2 v9 ?1 Y# Z+ B - (done_dialog 0)! k! `8 \0 X2 K0 T
- (if (= (get_tile "error") "")
/ e. G: N4 D0 u7 f' i - (done_dialog action)
# D. L5 F' D* O - )
- a% ?3 |' ~- [9 s! O' z) \ - )
" Y4 t. l# u) B7 d0 l - ); n& V: o" J2 q' [* a" S, W
7 p {0 U" j6 [6 G6 n6 U6 @- (defun test_ok ()
- ?5 o- U ~$ C9 C# d# C6 G - (if (= (get_tile "error") "")
# j8 T% D2 j1 A8 V: K - (done_dialog 1)# u1 [- g7 L4 u
- ) ? l% k. U% s$ K; p
- )5 y/ z( m; n: R! a/ W* X
5 x7 h" r* @' O" a- c& e7 K- (defun cancel ()6 T# V5 J% v' t/ O* f' _4 V& h: J
- (done_dialog 0)
& Q' G0 y2 u, [, w% g. ] - )
& G( ?: e3 R+ ?3 C
( n* O. d- @- x; }6 T- ;;; =======================================================================, m: Q2 T: @& F) G
- ;;; SETUP layer and linetype lists for application, and initialize all
2 v9 ?# b9 o0 r - ;;; program variables.
( U+ e2 o- G+ U' H) P2 x
7 ?/ b+ V! y" p3 O% e1 x- (setq elist (entget ename)6 X: [! D5 Y% E: d
- old-elist elist
* Q6 S2 A; M% V6 F' ~6 G" G - modlist elist# ~1 N( b% `' [5 G1 w: m, J
- etype (strcase (cdr (assoc 0 elist)))
5 U$ h2 ]$ i0 ] - ecolor (cdr (assoc 62 elist))3 b: W' @$ g e, j1 [
- elayer (cdr (assoc 8 elist))
" a- r, w; X8 {8 U8 _ - eltscale (cdr (assoc 48 elist))
8 X8 M* L5 A' Z# s - ethickness (cdr (assoc 39 elist))
# d- w- i' ^+ s/ F* R s1 F - eltype (cdr (assoc 6 elist))" m4 C7 W" b `: d8 z' z
- )
" w0 @6 i* ~$ J2 {! _! ^ - (if (= (assoc 210 elist) nil)
) ]7 W7 l) t2 w+ C- C3 ^3 B3 b* y8 } - (setq extru (list 0.0 0.0 1.0))
H. Z) e/ V/ h. _( A - (setq extru (cdr (assoc 210 elist)))
4 g& G/ O/ _/ L$ N - ): h& \1 s1 Z( N! ^
- 7 J, n9 K1 b6 X
- (if (not ecolor) (setq ecolor 256)) Q c1 l1 B# j/ }0 v7 r
- (if (not eltype) (setq eltype "BYLAYER"))
0 A$ V1 p; ~7 _& ~- B5 o - (if (not ethickness) (setq ethickness 0))* v' ]2 A3 i) _+ B- b
- (if (not eltscale) (setq eltscale 1))1 J6 \6 }1 ~* H: s8 x2 @+ O. L7 n
- ) ; end ddmodify_init% _. y; E( u$ C. {: Z7 z
- , E6 V$ u$ U/ U
- ;;; --------------------------------------------------------------------------% @3 I/ b# T1 o1 E1 Q
- ;;; Function: DDMODIFY_SELECT# f1 Y6 p# i. U: {7 S/ {
- ;;;
7 {# o/ ]$ I! i( L - ;;; Object aquisition function.
1 m2 D5 A" @5 x+ b8 ], |7 J - ;;;
5 r$ L# b( U/ V6 E: r- C$ o - ;;; (ddmodify_select)$ q4 w+ L% Q5 V7 ]) Z$ X
- ;;;
2 c) L, _3 }# U - ;;; Obtains object to be modified, in one of three ways:4 G) p. F3 {0 |. v9 A* q
- ;;;% P* ]) P# q' |' K- y
- ;;; 1 - Autoselected.
3 b8 O+ K. S* E/ x, j - ;;; 2 - Prompted for.- L K a" M; x
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )( F8 j# i2 [4 G5 d" i
- ;;;& N. ?% E, L) B4 B1 q
- ;;; The (ddmodify_select) function also sets the value of the+ }1 k4 y4 ~, y9 [/ b: ?+ a
- ;;; global symbol AI_SELTYPE to one of the above three values to# r" u1 V9 P7 Q2 k+ t6 |. t% R
- ;;; indicate the method thru which the object was aquired.! ~; X5 t! {0 i6 D5 C+ E
- ;;;
. B# W$ d9 U; J( V - ;;; This value can be useful to applications that want to RESTORE [: Z$ B, ^* a" c
- ;;; an object that was autoselected to its previous selected state: s7 b+ i4 M. J, C; B/ Y1 `
- ;;; when they terminate, although there doesn't appear to be any
; A+ f) f8 x8 P1 B$ t - ;;; way to do this right now.
; l; V& ~9 [3 o8 _# Z7 d: z
) u/ I J( q9 G: x4 M# D+ ]! L- r, V) ^- (defun ddmodify_select ()4 L" }3 @# n) c; u' u! _5 |9 w3 e
- (cond& T2 F' B/ G0 S9 j# E8 K
- ( ename ; (ddmodify) was called
8 H& a) D* _ `! f0 k/ @: s - (cond ; with an <ename> argument! f5 ~* o4 x s
- ( (entget ename) ; If object is non-deleted
* O. w }+ R5 x2 _7 T" a - (setq ai_seltype 3) ; then return its ename.
/ e3 {( w; }9 X6 u - (ai_return ename))))
Z' { \9 K4 H1 }" U: `, v
; N8 U0 E9 ^0 L0 ]# k# X- ;; return auto-selected , see ai_utils.lsp4 N# Q- ^% j5 c- D1 }+ f) B; ]4 ^
- ( (ai_autossget1 "\nSelect one object to modify: "))
5 ~- s+ ?9 {" H. w - : ~3 G/ c: n+ E& [( x
- (t (princ "\nNothing selected.")3 ^5 S- B. v0 ^2 E4 s4 Y4 p# C
- (ai_return nil))' q* l0 w$ k7 `/ x5 X& H
- )/ X6 ?7 ?# n9 O, R. c' O
- )
" f# G9 V5 c- K: F! R$ w0 B2 ^1 q+ U* W
) D! l/ ~/ }$ ~# C- ;;; ============= Command line interface function =======================" i1 s1 \( M y* ~( C
- : J7 K. S7 z) C/ I8 n, P
- (defun C:MMO ()
7 e3 ^. y& p8 [& f - (ddmodify nil)+ `. L; Z$ W9 x7 O+ Q7 t& a& U
- (princ)
% ]3 v% O1 k) _ - )
! _: ~( ~" t, j+ D6 `5 O
! G1 N: f; ? B0 X/ Q; ^- ;;; ================== (ddmodify) - Main program ========================
, u" D, \; B" }: k - ;;;
' ?: u0 B4 d# G' t0 P' t E - ;;; (ddmodify <ename> )
x4 i( h+ J! F R. W( v: D - ;;;
5 a- I# a2 | q8 p# P( U8 _5 n7 f - ;;; Main program function, callable as a subroutine.
- s: g( c( O- r! W' t. l - ;;;
& k: i2 M4 [! b( t - ;;; <ename> = object name of the object to modify.
7 N7 V! ~% z! L B& R - ;;;
6 Q% Z& Z# {; ^: [) P - ;;; If <ename> is nil, then user is prompted to select+ M% _* h6 \$ R- b/ p
- ;;; the object interactively.
" ~2 Y$ ^/ \; A; `# u - ;;;
5 |( w- P9 m3 q0 @3 V6 | - ;;; Before (ddmodify) can be called as a subroutine, it must8 a! G( b/ R0 L
- ;;; be loaded first. It is up to the calling application to! O7 F+ e1 W+ H+ d% k
- ;;; first determine this, and load it if necessary.6 C d1 W0 n+ a" z9 W
# ?( i! ?8 V1 Q8 z! d5 Y
% C7 i% ~7 U0 |8 H4 W7 `- (defun ddmodify (ename /4 p! P# C- f: V& P* ^( ^
- 2ndpt ell_calc_area move_pt1 templist7 G+ V" \0 L' q+ M- N/ ?
- add_mdash ell_tile n tempmod
; o. ~' b, P; J S: c9 k - alipt eltscale name tempst_ang2 ^( c1 }/ I0 b# I r
- ang eltype newpoint test_ok
5 y' l1 i! X. @5 n* a - arc_calc emod next text
/ m* d. }5 `: F5 F0 q - arclen end_ang next_vertex th-value
5 O5 c1 E X% M8 h- A4 u - assoclist endpt obl tile& V$ q D, i" R+ A6 |: g% b+ j
- atprompt errchk off tile_rect. ?3 w, K/ r$ A6 r1 O+ D
- attag ethickness old_majrad tilemode
. `2 V G# m' a! f: H0 w - attprompt etype old-closed totang
8 U8 K. i& u, X - bit extru old-closedm tstyle
# A) o; N8 D$ X# U+ ?1 c" | - bit1 fchk old-closedn u
+ r! r4 A# S: c% H. ?: U. _ - bit-10 first-10-rec old-elist undo_init' a! ?# K( g( A! r4 m# |
- bit-11 first-10-time olderr upsd
9 |$ F e1 g- F: R& X" @/ ]2 ] - bit2 first-11-rec old-fit v+ Y- x8 I! {7 o3 A8 g* E& ]
- bit3 first-11-time old-idx va
( t5 S% W9 H; X0 H - bit4 fit oldlist value
' k2 }3 K8 U& q" Z+ Q$ A# q2 G1 g8 I - bit70 frozth old-spltype ver_40 Q5 d8 ]; R9 \9 J0 R
- bit-70 f-vis old-u ver_ang1, ~# @- ?. v1 b1 K
- bit75 fx old-v ver_ang2( T$ r* B7 b' l. g; s: ^6 Q9 R
- bk-up get_color on ver_col$ Q5 E- A* M+ Z) s5 }
- bkwd getcolor onoff ver_colsp
& S/ P& }7 f! X, W& ]3 d' l" D7 B* I - boxlength getindex on-off ver_eangle, V y) S7 C" I, T6 n# p
- bylayer_col getlayer patlist ver_hght
3 v! E( ]/ B. p; e4 E j1 Q - bylayer_lt getltype pattern ver_majrad
1 {" Y* c5 ~" Z' Q) P1 ~8 t0 Y$ w - calc getthickness pltype ver_obl1 p( F; r. ~7 t" b/ f, \
- cancel globals polytype ver_pt1
- p% ?' y7 g: X5 ]6 z - cir_calc ha pre ver_pt2
1 X) w8 n |" x! H1 Z0 l" m - closed ha-prev proplist ver_pt3+ a; {# Y1 R9 I
- closedm help_entry pt ver_pt4
9 F$ `( A& m: s- q - closedn hght pt1 ver_rad
9 @( {) w! u& \ - cmd icvp pt1_eq_pt2 ver_rot9 _( t- l$ T/ ]; B
- cn image_add_vector pt2 ver_row9 H! R" t0 m+ d3 F$ X8 C( ~
- cname image_clean_variables pt3 ver_rowsp
8 n" C' o( W/ [0 G- ? - cntl-pt-indicator image_cross_product pt4 ver_tag5 q9 i4 n: e: h- B( K8 B6 P8 [
- code_71 image_disp_opt ptype ver_u4 P8 n, a% B' r9 b
- col_tile image_dot_product radius ver_v; \4 O, u, M" c C" w1 b" o3 s/ g
- col-idx image_normalize_vector rational_spl_flag ver_wid; b- t; ?, a% w
- colname image_rotate_vector reset ver_x1
- H7 e/ K. d5 y% ^# h. t# y. e - colnmlst image_scale reset_flag ver_x2' ]8 m5 O1 i3 k
- colnolst image_scale_vector reset_lay ver_x3
* e/ I+ `$ I# y, j, @ - colnum image_update reset_lt ver_x4' W/ P* @; p: l
- color index reset_uv ver_xline_pt19 j w- \4 S3 y9 U5 f7 ?$ ?8 v
- colorname inv rot ver_xline_pt2% ~& x4 m* F% E3 D! E0 m! e
- colorno item rows ver_xline_x1
8 s& r" v E* u) { - col-sp item1 row-sp ver_xline_x2
) b! K5 a, ~% d# T$ g# Q# ` - columns item2 rrat ver_xline_y1
- e3 U! T) y3 m- p [ - con itemlist s ver_xline_y27 l) ~& O) F6 R7 r1 g
- coord jlist set_action_tiles ver_xline_z1& w0 ^4 F0 K' n: c( l, C
- ctr jlist_act set_just_idx ver_xline_z21 {+ P* j/ u( ~7 r& W
- cur-10-rec just-idx set_tile_bk-up ver_xscl
% o, g* l' Z, @# h7 D4 ~7 b6 \ - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
4 J0 T# ] H" t* i7 o - cvpname lay-idx set_tile_data_pt ver_y2
* c) W, J4 K3 U+ U) f8 o( w - dash layinfo set_tile_dirv ver_y34 f8 G1 o& X$ C" N! P( `
- dashdata laylist set_tile_edges ver_y43 N' F- s/ l c" _
- dashlist laylist_act set_tile_endang ver_yscl
8 E+ L& q5 g9 l B q3 P - dashsize layname set_tile_hght ver_z1
) [3 p( @4 \. O$ @' W& }* z9 ^ - data-pt-indicator laynmlst set_tile_icvp ver_z25 g, a. ]! B: c# a2 J- l6 v: Q1 I
- dcl_id layvalue set_tile_just ver_z3" j( W/ R. E7 D& n5 }( {: ?9 M* \
- dd3dface line_calc set_tile_obl ver_zscl( J" c3 X& _, T1 k' K
- dd3dsolid linetype set_tile_prompt verify_a: a0 v6 L; V) s# K, v8 G9 s9 ~
- ddarc list1 set_tile_props verify_d
; Z/ J" r5 Q. M& B# _ - ddblock longlist set_tile_pt1 verify_i
+ B/ V) F8 o# G" Q @* `0 R/ B6 x( y - ddbody ltabstr set_tile_pt2 verify_xline
0 X# q; B4 y5 V" I5 M* I f - ddcircle ltedit_act set_tile_pt3 vfy
I: d6 U/ }( J+ q' R1 Z8 R - ddellipse ltidx set_tile_pt4 vi
( g, |& Q; b* n M8 ]5 p% y1 z - ddgetprompt lt-idx set_tile_rad vlist( A) c; B% C2 A2 v
- ddgettext ltlist set_tile_rc vname
, E0 Q7 D( H6 ?* b - ddimage ltlist_act set_tile_rot vpf
$ P; l7 N* A: b( Y - ddimen ltlist1 set_tile_scale vpid8 N3 p' @" } N# |* B: R8 n* M
- ddleader ltname set_tile_spline_props vpldata
0 ~: R1 Q) Q2 A - ddline ltnmlst set_tile_stang vpn6 e3 P% K4 s; X! f7 o
- ddlist ltvalue set_tile_style vpt/ L$ J/ i: h$ R7 B3 g
- ddmline ltype set_tile_tag which_tiles' s2 o% B1 r# x! e9 ?" |' q
- ddmodify_err m set_tile_text wid0 Z' l9 ~2 y% C4 z" k2 O- u/ `
- ddmtext majrad set_tile_vpt x" ~7 `8 |) W3 ^" L3 ^
- ddpline make_lay_lists set_tile_wid x1
, u0 `2 M4 B& I5 G" O - ddpoint make_lt_lists set_tile_xline_pt1 x2
. w- z, R3 V+ A/ I2 p( X" J3 ]7 k - ddray mdashlist set_tile_xline_pt2 x3
* g$ ~, p$ ]( u$ x - ddregion minrad setcolor x4
* x* X( ?& y' [8 O l - ddshape modify_3dface shght xdlist
& k7 }$ R+ J' ]. U8 `' L, `3 ^ - ddsolid modify_3dsolid showpt xline_pt1* G2 L5 U0 u* D; b# ?) m9 r
- ddspline modify_arc size xline_pt2
" `$ |- c W2 `7 I) V! u - ddtext modify_block slist xline_x1( H0 K; c3 h z, t; J
- ddvport modify_body sname xline_x2
' t9 `6 q8 b9 X' z/ G - ddxline modify_circle sortlist xline_y1
5 Q$ X2 k7 p1 O; p - denom modify_ellipse spltype xline_y2
, d, M2 F8 C1 ]$ D1 @+ Y: C - dialog-state modify_image ss xline_z12 V+ P8 g+ s# f& f2 S3 v, L6 A1 P
- dir_pt modify_line st_ang xline_z2" b) K, e7 X* W/ b3 J4 x- ^. t
- dir_ptx modify_mline stpt xscale5 v# m6 F' R' b. i$ l9 r; I
- dir_pty modify_mtext style_act xx
( @# a- z8 D9 a# X - dir_ptz modify_point style-idx y
+ V! Y1 p8 M, d2 p( }' X$ X2 ^ - dismiss_dialog modify_polyline style-list y1, [* z. M5 t, [) V* {! B
- drawpattern modify_prop_geom tagval y25 {( [% _* L& h7 H- L
- echo modify_properties temp y3
" T5 P, R% q4 ^+ L, b" z$ u - ecolor modify_ray temp_color y4
2 c" B4 m+ F/ J+ n4 f' Y3 O - edge1 modify_region temp_dir_x yscale
# k9 ~: ~! e% g4 A9 I2 O" H - edge2 modify_shape temp_dir_y yy9 o$ e; D7 j3 s4 w
- edge3 modify_solid temp_dir_z z1
! a) ?/ ]: E: _' }" A$ G - edge4 modify_spline temp_xline_pt1 z2
0 n) ]: F9 q$ p% m9 b3 a - edgetest modify_text temp_xline_x1 z3
$ t7 M) V5 k' G# h8 ~1 B' |0 Y8 T - elayer modify_vport temp_xline_y1 z4' s+ U6 d: M2 a
- elist modify_xline temp_xline_z1 zscale4 H4 [2 A5 m* B: O8 r
- ell_calc modlist tempend_eang zz" V3 K% w+ n# y6 p
- dir-idx safe_ddedit ver_MtextWidth xcliponoff( h' v, l: i7 `- {! a
- MText_style0 g' @7 u0 @( y$ x3 Y
- )
5 {8 }9 J: |- q3 ~
( s, W, T* }, X- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho- y. @! G5 F9 N) {% V. G
- old_error *error* ; save current error function( Z' p( b' A+ t. V+ T9 |" {
- *error* ai_error ; new error function# L4 v4 K0 t1 J2 U. [0 S0 [
- )8 h* j7 y. i T) [+ r. s
5 p' D7 V3 G# R9 `# D0 X2 T0 M- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle* G! N+ F( `3 ?& }# ]- F
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
4 U5 M$ q% V' l# F! u - (setvar "pickstyle" new_pickstyle) ; bit and set to new value2 S4 t5 H* J+ R/ t3 g" N0 G6 G
- / ?( ]8 e3 t: k" H- @+ S
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
$ h+ z3 O2 {8 v, H - (t 1)))
0 L9 r$ @' n; E1 d4 u3 q$ [ - (cond9 E/ g: b+ ~% S" P, ?# [0 X9 v; W
- ( (not (ai_notrans))) ; Not transparent?
* ]/ M9 c# s v$ f. i3 r: q - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
! e* K5 a0 e6 C+ l( U* s! m8 A - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?% K" ~' V+ Z+ l
- ( (not (setq ename (ddmodify_select)))) ; object to modify?3 g9 a J0 K a$ g, V
6 ?1 I1 K( V4 c8 t+ I, U* ^- (t (ai_undo_push)
0 H! V0 A7 _. H - (ddmodify_init) ; everything okay, proceed.: d7 k( e5 G' u9 j; \
- (cond& M' |% D9 Q* S! V- r( I
- ((= etype "LEADER")
* |! g8 n- }& @. i - (setq help_entry "modify_Leader_dialog")
& W a! g" T6 b; Y$ b8 H: q! d! V - (ddleader)3 m* E: l: o* \7 ]
- )
. [3 L2 }% I! [! V4 Y - ((= etype "ARC"); K1 Y0 i; D1 q/ B" `
- (setq help_entry "modify_Arc_dialog"); k# R6 a2 O% f5 E( V9 R
- (ddarc) T! B! b$ M0 W8 H
- )( H: X5 s) Y: M
- ((= etype "ATTDEF")
$ v4 y2 k% x: h0 s! n1 x* f - (setq help_entry "modify_Attribute_Definition_dialog")
% U6 \ V- v D% R0 X - (ddtext)
% Q/ O+ a$ I, ^0 k/ e) [ - )) f3 A7 ?+ u2 g; z1 r
- ((= etype "CIRCLE")
8 w) d4 H9 }' w - (setq help_entry "modify_Circle_dialog")
* I( @& D2 T! X. R2 X( @! s - (ddcircle)
# Z9 M8 b1 o4 w - )" Z% x9 v3 k% `2 {5 Y
- ((= etype "ELLIPSE")% I2 c& ?9 y7 ?: H2 D! [
- (setq help_entry "modify_Ellipse_dialog")
# U; x# b% k" V0 P! q: E) n - (ddellipse)
% B- i! U3 K( n3 Q# n! E - )) y& `3 E' ?/ P
- ((= etype "3DSOLID")
5 h$ a: p3 h9 Q9 e9 @ - (setq help_entry "modify_3d_Solid_dialog")2 h' w9 u1 N9 C' ^" X0 \# `
- (dd3dsolid)5 v' f% C5 `. ?" n3 }; R
- )
1 T. D8 d2 x# X* t T& L" m9 X6 K! T( M - ((= etype "BODY")
' R$ Z0 p; p9 q; G - (setq help_entry "modify_Body_dialog")
* T' \: n& p$ I5 a, R, Z5 z - (ddbody)
. I' C4 c# a1 e( F - )6 Q, q" K7 Q/ Y! j5 G: W9 J
- ((= etype "REGION")7 M" ~: d. @0 h$ T
- (setq help_entry "modify_Region_dialog")' x) h- J: ^9 Y$ w8 G" E
- (ddregion)# H0 P2 U* q3 _) q$ C
- )5 M1 [8 |% |8 M$ S: y0 Q
- ((= etype "HATCH")+ v: `. U, i M* C6 m$ J
- (setq help_entry "modify_Hatch_dialog")
) k" e( M) ]( `2 c7 f/ o - (ddnewhatch): R4 Z8 k9 A5 F# R" E. I
- )5 V* O1 E* t p2 |8 h
- ((= etype "SPLINE")4 F, W N6 u3 Y% ~/ n
- (setq help_entry "modify_Spline_dialog")2 ]' p1 p' y5 Q4 Y
- (ddspline)3 d& j1 k! r* K
- )
4 i/ \$ ]* |/ M - ((= etype "INSERT") ; see ddblock for help_entry
3 R, s3 h* T% j" ^7 P0 e( b* y8 Q - (ddblock)
" E/ d( h" O9 j" s - )2 r# q( i# e7 ^3 V6 [
- ((= etype "LINE") F+ g+ g3 M- ^. a6 w# B
- (setq help_entry "modify_Line_dialog")
3 d# ^$ k5 Y; M* X5 e/ k' v" ? - (ddline)! ?6 } @" G; X$ ?3 R N' P* M/ r5 K
- )
, Z. r! r% h* x+ k" t - ((= etype "MLINE")
% Z1 `, F+ x( |& m1 a `( x. [ - (setq help_entry "modify_multiLine_dialog")* V, I+ D4 f$ u3 Q* l1 p% b8 C( i
- (ddmline)
) ~; b* g. I) f - )
8 s. ?7 U1 g, l - ((= etype "RAY"). l0 t& t5 n8 O
- (setq help_entry "modify_Ray_dialog")/ H# B& z) U' P, ~% C n1 Z
- (ddxline)5 M; @# @* N5 d( E0 P0 _$ \
- )
o9 @" A* S- A, P6 v. O. } - ((= etype "XLINE")6 r. l l, o' O( J6 k
- (setq help_entry "modify_Xline_dialog")
* i8 |/ d$ b* o1 b1 k5 g! G - (ddxline)# M# O! z g! e: E2 q: p
- )
0 D- ~5 P+ [) x7 U: y! Y9 ~ - ((= etype "POINT")
5 e+ i3 ?. K+ M; E' Y+ W - (setq help_entry "modify_Point_dialog")
- u# O7 Z4 ~* B7 s5 I - (ddpoint)
& R# s* i$ a Y0 u - ); Z8 s$ a! m5 U+ X7 f+ E; D
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))8 M9 \$ p7 j) A1 ~9 B
- (setq help_entry "modify_Polyline_dialog")8 v" ^, F2 p7 O. z5 g
- ;; If a 2D pline, check to see if it is planar to the current
( L/ e9 g5 C$ _! h - ;; UCS, reject if not. To see if the pline is parallel," B8 F( X C h6 }' F, K
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)
. M& y: e* P H/ `$ p7 F% T+ W - ;; and then converted to the current UCS and checked to see if, j+ W5 N* @1 ]; [) ^) _
- ;; it is equal to (0,0,1).
+ v. }( G/ S) X' R+ X5 [ - $ j: C& L1 T* X0 K1 L, e
- ;; Incase the 210 is default and not in the dxf list.0 P9 |; `. e+ w7 Z* I& {
- (if (= (assoc 210 (entget ename)) nil)% K" x: s- j! p
- (ddpline)! |: M/ |2 W: w1 Y
- (progn
. y Y& _6 y% Y% e. e* x - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))8 z8 s& ^. L5 }+ m( j/ [8 B
- (not (equal '(0.0 0.0 1.0)
; d7 j# p9 F$ B8 Q: I& P* V6 o0 ^ - (trans (mapcar '+; z) Y! ^. h, l! B+ {
- (cdr (assoc 210 (entget ename)))2 d" X$ F5 ~- ? E) ?8 s
- (trans '(0.0 0.0 0.0) 1 0)7 a/ s1 I! u2 I! i; W1 k
- )
9 D; B; n6 ]1 g0 ] - 0 1& j' }! V9 Z, h! h4 Q7 }
- )' b3 z( V1 U1 A4 r* S: z9 n
- 0.0000000001 ; fuzz
# P2 I, c+ \" J, P! F1 {" a - )% p5 u! i* ]2 ^$ ]
- )! O) ^- d% C7 i, n; D
- )
. C( d0 r( S2 ^, b' @+ m - (princ "\nThe 2D Polyline is not parallel to the current UCS.")# G4 k5 W) {) J1 A# b/ I* J% A7 f
- (ddpline)' }' K, S( H2 u+ A5 a& X" O
- )$ j3 }4 A. t) d6 q8 }
- )# O' ?2 c" Y& P9 x7 @
- )
! t5 @/ T- h3 u6 M - ): T6 t* M! F, H) g" u8 v/ Q1 e
: K: a) R9 ]5 L3 c7 }. L. j- ((= etype "SHAPE")+ Y3 m k# N3 E" f% a( Z
- (setq help_entry "modify_Shape_dialog")
3 @/ `; I- L* g& c. `# U9 x - (ddshape)% k5 b/ M- }7 [ T1 n# ~& x! |
- )6 n% S3 F. |5 j: Y& L+ u
- ((= etype "SOLID")% h0 u, q# v* P9 f' L$ j
- (setq help_entry "modify_Solid_dialog")5 `' r& N6 B% i# w2 T8 l+ }
- (ddsolid). H1 Z0 S% K; r+ C
- )
: L' I% }5 R+ [/ c' V5 k - ((= etype "TEXT")
m0 C1 {5 ^' e1 |; P - (setq help_entry "modify_Text_dialog")
* F5 d* R1 r8 j5 X0 Y: H) P! F( k - (ddtext)( K8 h: }0 r' M) e- m
- )
& j7 i" N& a# {! O: g1 w, @* R1 m - ((= etype "MTEXT")
* q6 l3 v5 G( {* v. R* t# M) K - (setq help_entry "modify_MText_dialog")! z% F- Y8 q; L3 j* D- |- V
- (ddmtext)
* v' U: E0 Z U7 s* |0 Q - )
9 i% |: r1 Q( f - ((= etype "TRACE")% [4 o8 d5 [- v# l2 T3 u
- (setq help_entry "modify_Trace_dialog")
+ C. [- M; Z* z1 w$ j& g8 U0 b9 l1 x - (ddsolid)
- D4 E6 r) A& G' P - ) t% S, M) V5 X9 L
- ((= etype "VIEWPORT")
( M0 b* a8 i& i) B0 \% A - (setq help_entry "modify_Viewport_dialog")
" X; C2 P3 Z1 f$ g4 n* U; e - (ddvport)
4 z. }5 P& e N! H; z2 X4 `. s - )" H# t7 x$ E$ P# b1 f4 Z
- ((= etype "IMAGE")
7 o: J( z2 I* u - (setq help_entry "modify_Image_dialog")8 C& o2 `: R) U
- (ddimage)
9 Q: [% h `1 u. m# m - )' ]% k% T. \4 }& I# J, }$ m: ^
- ((= etype "3DFACE")) c7 g8 c+ M4 K4 O, |* c B
- (setq help_entry "modify_3D_Face_dialog") K' h4 N2 c+ r4 g& |7 X8 j
- (dd3dface)# ~8 z( d2 O9 h/ F' i
- )
- t/ [! ~. g& k* p5 g) g - ((= etype "DIMENSION"). r7 |. {3 [; B/ K* r0 h) r
- (setq help_entry "modify_Dimension_dialog"): x \6 i0 x6 Z' r6 Y+ B& s9 J- w1 f( b
- (ddimen)
+ y& `, F& L/ N( ]/ r& c7 }# ~ _ - )
8 c2 b6 ~0 Z" s: A - ((= etype "TOLERANCE")5 |! t, }, c+ Y# S" ]1 L% _
- (setq help_entry "modify_Tolerance_dialog"). F3 N( S, V/ D# R- f
- (ddtolerance)
8 V' G- u( Q% W - )
0 f |& O( D. @3 t - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
. k1 w8 Z& l- L& W" _+ u8 @9 T q - ;; This allows DDMODIFY to work on any custom object or any new object type# w. y- q! m6 n$ P$ s7 o4 O1 T
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.: m/ e9 u) N/ k+ ^9 B
- (t3 q6 Y3 q l; u0 d$ I
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
( z/ ]# Q8 Y; q# k& K2 u% K( D/ G% ] - (princ (strcat "No dialog support for object type: " etype ".")))
4 K" I9 @) U5 t: L - (progn
; |6 c# d0 s$ { Q6 v - (setq tempss (ssadd ename))
; z$ a% }# n6 w G+ [' X - (ddchprop tempss)
8 l/ v' y5 D7 F5 d8 [' S! e - (setq tempss nil)# Y7 p1 H/ P! ]0 U$ a, o- Q
- )
% ?) @) R# y" b! M2 K! R - )
+ a( O% @* @# u; U! j) ^' P) C - )1 E _( s+ a7 I5 B5 R
- ;; Previous fall-through condition. p" ]' X! l8 D( T2 c! K
- ;; (t (princ (strcat "No dialog support for object type: "4 g( |! ? q/ ?1 T+ g
- ;; etype "."6 E4 u1 ^. t9 e3 s
- ;; )* R, i* Z% o. b& M
- ;; )
: ~# J! ?1 H @ g: S! ` - ;; )+ V) l; c7 H. I4 f* ?! S" l
- ;; )" v- Z7 N3 g- n O4 p
- (ai_undo_pop)
+ F& \- R: Q3 b+ F/ ? - )# D( K# a& o# s+ ?6 q% O. y7 \
- )
! c* c! x9 i, D! \# I+ s* u
7 T5 o& u, c) ]# b- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle/ S8 P' t! D% X/ V( a5 _
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back- i7 S) O" E; x5 G a! _" a7 _
- ) ; to what we started with$ S) S+ i) C5 C" c& e/ d {6 f
2 N7 L* r( D# ?8 }1 E$ B- (setq *error* old_error)2 N$ b0 j. V- E
- (setvar "cmdecho" old_cmd)+ J# T" y& U5 @0 V
- (if (not reset_flag) ; if object was modified, then2 {7 H4 i" E1 M3 _! J
- (ai_return ename) ; return it's ename to caller
! V1 O. F* C$ v2 `" A - )# N( O. h/ i B% @$ i+ P
- )
/ o; r+ d9 h+ K: O6 x - ) a" {: F# d; }, M& D0 l4 n1 [
- (defun checkForLockedLayer (ename)8 N" n2 V# ~5 \6 B2 h; @0 e
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
8 d% |' g1 ]; A - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
( P6 c+ j e. H9 D1 T! T, L; V* M5 Z - (if (= layerflag 4)3 p. j% m+ u: e! F$ r. `; ^* A0 ?7 V* f
- T: v- g8 \" B P, ]% i/ l% W9 g3 G5 h
- nil/ e8 j+ ~6 L( y' q8 Q# h
- )
: S. r- H0 i/ I* l - )& H, p' ?1 v' C- }3 Z( I+ L% L g0 E
/ r8 D! B, l, l9 |, b/ A/ V0 q- (princ " DDMODIFY loaded. ")
% u* F' r1 }% [( Q# t" N - (princ)* t+ B8 r! `1 y9 n
- ;;;???;;;---------------------------------------------------------------------------------------. c0 l; K7 f( t( T) V' O. A
0 ^! n2 C) G; a3 ^- ; Next available MSG number is 8
: w/ U6 m! q8 B9 k0 _4 y* a2 W1 P - ; MODULE_ID DDUCSP_LSP_
; ?" M* h' u0 D! D5 k6 e( T - ;;;
$ t! A4 o( Z% Z: p! u1 T1 t - ;;; dducsp.lsp* L( R5 u+ o2 ~( g% _
- ;;;
0 r0 d" Y, k4 f1 Z. K$ {8 s3 k, r - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
+ e- o2 } b' f" m- ?' g - ;;;1 _! Y$ }8 h+ |7 d$ ~+ `! V% V( l# _
- ;;; Permission to use, copy, modify, and distribute this software/ O! X p. x) Z& k, O
- ;;; for any purpose and without fee is hereby granted, provided( T& v" K& d, b. {) M$ Q5 ?
- ;;; that the above copyright notice appears in all copies and& H: j6 Z$ b) Y+ m
- ;;; that both that copyright notice and the limited warranty and
# \% W9 y* ?( N+ ^/ D! x+ L6 l - ;;; restricted rights notice below appear in all supporting
6 X! n Z2 H" T% j5 u - ;;; documentation.
* m$ i# b( n) m6 r - ;;;
1 O d6 j% [2 L4 s' ]1 I& k2 A) g1 [) N - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.% h, ?( m2 f+ V1 s2 k0 f. v" a
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
4 e8 K) `+ h; ]4 |' I: f; G7 F" ` - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
: h! s$ d' O% T# e: ^* | - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE- J( K. _3 ?, o4 n+ s4 G+ I
- ;;; UNINTERRUPTED OR ERROR FREE.
* l0 z: B" g4 s4 \ - ;;;
+ R, H* s+ C' C( J. ^! L# [- t - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
* `1 d; X* A% t" b; s - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer- A" P. x# ?" u5 W6 ]: \
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
0 q; O: _3 c4 ~ - ;;; (Rights in Technical Data and Computer Software), as applicable., t# a8 j) [) M: T
- ;;;2 E/ m" [5 ^3 G
- ;;;./ }+ L4 ^- i0 ]4 K
- ;;; C:DDUCSP - User Coordinate System presets dialogue.
4 e# Z& ]) Y: W3 J4 }: [ - ;;; ' A, V9 p2 H/ g" A2 K& R. W
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
. y% ]$ p+ [8 Z2 u6 R9 g - ;;; slide images are in ACAD.SLB.
3 P$ }5 S# `2 O% I z+ [ - ;;;& G6 u. |1 s# h: L' F- w7 c3 g
- ;;; ===========================================================================
9 w" E" \: S5 V2 ]+ C - ;;; ===================== load-time error checking ============================
P( G2 c0 ^9 {, i; q5 d0 g - ;;;
6 R' Q3 k) m/ ?# t% G+ f$ l3 r - - I. \: k! Q2 t
- (defun ai_abort (app msg), [9 K7 d: _ A" s
- (defun *error* (s)
4 o3 a' a Z' w9 | - (if old_error (setq *error* old_error))9 c- M- @3 [/ n/ a2 S. |3 [
- (princ)1 K! R2 B. n5 `1 c4 b# O( D+ A
- )
% U- m. M7 o2 H0 @# g - (if msg8 r4 X0 X6 ~) v5 ~! ^) `
- (alert (strcat " Application error: "
" t: q$ ^7 L" Q9 B$ u - app
N" @7 s5 [$ x" D! B( S7 E; K" z - " \n\n "
) X7 P h. n; ?3 o' b6 z& a" g2 z; g# x - msg
6 \& z" M! C" l- i4 F - " \n"
/ o: T8 p2 U& O# N0 p - )! z& h8 x4 U6 P; O) A
- )8 c# A# Q: s$ ^3 Q, M) o
- )$ W& P8 ?+ K: W. V7 t
- (exit)
* q, Z: |1 F' u2 K - ), K' y8 I1 B' J8 b& r" V q
7 W6 }& R9 \4 l0 X- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
; g' h* T# |/ J - ;;; and then try to load it.2 k6 K3 |8 V+ z s) n; T H8 g2 p4 J
- ;;;
* D- c/ R2 f* J" y0 f" a/ ^ - ;;; If it can't be found or it can't be loaded, then abort the
2 q8 D. w5 R5 L - ;;; loading of this file immediately, preserving the (autoload)
6 e! d Z% A8 n4 b1 O0 q - ;;; stub function.' |- h3 M" z* R. c m1 H0 s7 k
+ f, a- b) U2 S, r& x- (cond
! y3 O: l# E5 g' \ - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded." m2 n$ a3 h8 u3 X4 ?- _2 N# H
: z+ J& a, i' l9 `- ( (not (findfile "ai_utils.lsp")) ; find it! [; k t: o% L0 X% ]2 X) M9 u* w# j
- (ai_abort "DDUCSP"
2 N& o% w2 C; V+ r - (strcat "Can't locate file AI_UTILS.LSP."5 T$ s4 X4 l) G4 I1 j. y: N3 @
- "\n Check support directory.")))
5 H# P" m$ j5 b( |# o/ h+ N! ]/ C - 0 b, I1 i# N- H, Z7 B
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
0 Q+ T( @0 t1 a4 I3 D; \7 J% I - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))# Z! r; _2 S, A+ L
- )( `4 ?8 v/ p, |6 E: {3 J5 _
1 P8 C' z# g( c1 z! X; r- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
- A7 l2 U$ K6 N - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses5 U5 r& \$ B5 }1 F$ a9 x* J9 Y) l7 r5 J) b
- ) ; ai_abort's alert box dialog.1 K3 e/ {9 r9 P3 u3 b- C0 }
+ N# c% x) _4 A; `- \/ L* |# I5 x- ;;; ==================== end load-time operations ===========================) K' ^& V3 W/ z+ Q+ e
- g0 N+ e4 g7 p8 O3 A( A( k% O# y
- (defun ai_ucsp_start ( / program)
+ |- [3 H: b8 b - ;; Get program name
; T6 L' F. [* Z! ` - (if (not (setq program (getvar "program")))
* Q+ g' N& [0 C0 X - (setq program "acad")
$ J2 A- W; n" d; v( Q9 R - )
6 N& M. ?# o% F6 f) ^, a9 c6 X D [ - (foreach v0 '("world" "left" "cview" "top" "front"
1 J) D, B R1 @1 X) J - "bottom" "back" "right" "prev")
3 V. m6 @/ O. N, D9 m - (start_image (strcat "ucsp_" v0))0 {1 O* b2 c F7 s: X6 ]( `0 V
- (slide_image5 e9 y' u9 X1 ~3 P: M( X) |
- 0 0
3 g* h: s+ S5 m - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
7 u! G& k' u$ ?' D - (strcat program "(u-" v0 ")")
2 ]# ^& M1 R/ c4 A - )" n& X2 a5 W5 k9 Q# ?2 C
- (end_image)
2 I8 w% r2 j: s, |$ t* p5 ` - )# K, |+ f# _5 \3 r0 a
- )
4 N2 }% j1 ?6 A - . E3 Q$ d, |$ b/ X. w
- (defun ai_ucsp_set () s7 X+ _0 W1 d4 N( N
- (if ai_ucsp_sv
% S4 v- ^* D: H1 \$ M: [ - (command "_.UCS" "_V")
9 z/ U/ ?- e) Q' w6 \8 L: ~ - (if ai_ucsp_prevs
7 q% E! I8 s/ O - (command "_.UCS" "_P")
& p! ?* ~8 X. v# X9 l - (if ai_ucsp_chg
" t- H& q% v2 c. X4 [ A: I4 e M: K - (progn
. a8 [; Y( o2 {3 g* D - (if (/= ai_ucsp_a "*"). O) L6 f+ a: A* w/ M5 ^' M$ K
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
" _* C8 e' q2 L6 J, S - ) N2 g$ o" \. Z) S' }' F
- (if (< ai_ucsp_pick 6). {2 Y! F. B0 x: g* @
- (setq ai_ucsp_set0 "@")
% [4 l2 M( Q4 M6 Y - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
) Y/ q) q* o3 A/ V0 U - )
4 H8 D( g& n2 }7 Q5 p' B - (cond ((= ai_ucsp_pick 0)
; C0 s6 F$ z6 k9 _ U - (setq ai_ucsp_set1 "0,-1,0"
5 _2 p) a' k0 h- w' t - ai_ucsp_set2 "0,0,1". Y% ~" D, g6 i p( H* [+ i) @
- )8 z; N1 u9 N! q& m/ B4 y3 f
- )* |6 r) Q- o: `% N7 C, L
- ((= ai_ucsp_pick 2)% ~! q9 T8 l) l4 e T
- (setq ai_ucsp_set1 "1,0,0"
$ d" Y f. B$ ^+ z- a9 S - ai_ucsp_set2 "0,0,1"5 h- L- d/ T3 K. T, A* ^
- )' [7 H5 u# ~5 A% a' X& L4 v
- )
, N% y8 a4 |) l/ U h0 k - ((= ai_ucsp_pick 3)
+ i5 q# R9 O* Q" c4 n: m. K - (setq ai_ucsp_set1 "1,0,0"
' x) m0 f" [6 x3 y j# {* W - ai_ucsp_set2 "0,-1,0"
- C* ^& S7 s0 ^" X% g - )
/ ~# i8 G0 Y4 H: R$ | - )5 Q# E. M. Q, T& x/ U! g
- ((= ai_ucsp_pick 4)0 @! g8 x8 C) Y" q8 g& b0 |- J
- (setq ai_ucsp_set1 "-1,0,0"
& H, O6 }8 q1 l+ I - ai_ucsp_set2 "0,0,1"! G* I1 ^* `" |3 Y; G& H
- )% Q' K" U2 d2 P1 M, @' ]" t: r7 Q, g
- )0 a- N1 l) ?8 ~% M1 q& x
- ((= ai_ucsp_pick 5)
1 y4 K) _$ V1 {) `3 o - (setq ai_ucsp_set1 "0,1,0"
0 N% M- M3 t5 k2 Z) [9 l0 Q - ai_ucsp_set2 "0,0,1"
' {$ \9 p% O- `4 x- v! V - )7 ?& I8 ?& w; H1 }+ Q$ C. H) L
- )
/ W& R( N# a7 h( D: A - (T
& w5 w' P/ Z6 ~8 `! x - (setq ai_ucsp_set1 "1,0,0"- X: u; {4 } ^
- ai_ucsp_set2 "0,1,0"; I1 }# ?2 j: F$ V9 z2 ?
- )) k+ S' |) ]6 N6 y2 M
- )
- E# P8 w- B- h! y - )6 d! J# H' }3 f- d
- (command "_.UCS" "_3P" ai_ucsp_set0 & R$ i& G) O' u8 ~4 n
- (strcat ai_ucsp_a ai_ucsp_set1)
3 J x' \: h* w9 S - (strcat ai_ucsp_a ai_ucsp_set2)& u$ ]! v6 _" s1 V
- ) ! \' ^4 D" j2 w6 @
- )
- w' F4 W* k9 {9 b - )% I0 W" ]9 h6 {' Q1 P: j. }
- )
! C+ z6 F4 u, j5 t - )0 Y; i. B4 C: g
- )
6 w* `: D0 t0 L# u) r - ) ]+ T3 G, N: Y' p; R8 b2 _
- (defun ai_ucsp_p (val currtile)
3 `" W# \* p9 s0 Q v - (mode_tile ai_ucsp_currtile 4)
6 t; _1 H% X! \# J1 j( g7 c - (setq ai_ucsp_pick val; _& ?) v( A0 F9 M
- ai_ucsp_sv nil& `1 a6 n3 b' J7 b& t
- ai_ucsp_currtile currtile
( E: Q* K/ h s4 k& l - )# s# x8 ]2 u! F9 Y$ X( d. C
- (if (/= val 1)
. l. y+ |9 }* X0 u8 \ - (setq ai_ucsp_chg T)4 j; F& U4 t' Q9 N+ h
- )& P4 J/ e& h1 H4 [
- (mode_tile ai_ucsp_currtile 4)
; Y7 U, R% x& K% j - )/ _2 [8 c" V; K1 s7 E( m
4 J2 L+ o# b8 N$ o8 p* k0 v l9 a% s- (defun ai_ucsp_swcs ()8 |7 l4 \* ]. n9 Y
- (mode_tile ai_ucsp_currtile 4)$ l$ o5 |$ R/ E7 h2 Q* y
- (set_tile "ucsp_a_wcs" "1")4 T4 ^7 W: k2 V% k5 v1 I
- (setq ai_ucsp_pick 6
3 Q9 J0 ^; W. @; I, ?! a% F- a' B - ai_ucsp_sv nil
0 v0 k9 u- @6 k2 N" c6 b9 h - ai_ucsp_currtile "ucsp_world" |2 S3 O2 \" V6 u8 N5 [
- )0 S+ j# j8 M X" a0 C! c- M% y
- (if (/= 1 (getvar "WORLDUCS"))2 R4 ? C0 Z K* P' W# e
- (setq ai_ucsp_chg T)
( i: V& w/ Z2 s) r$ A. r+ o& g/ L - (setq ai_ucsp_chg nil)3 b0 c# ~% m, a' |
- )- @' H5 p6 Q* K" Z% ^$ \
- (mode_tile ai_ucsp_currtile 4)
$ J; L; E$ A8 Z# L - ) \; v$ }2 O6 q1 O8 t
- b+ I9 x8 d6 B. u$ @' ~- E- (defun ai_ucsp_cview ()
% g# I% b- d w# [1 S1 {" t5 y - (mode_tile ai_ucsp_currtile 4)
% ^, ]( ~1 v0 u# Z5 u! i - (setq ai_ucsp_sv T
6 h* w+ x+ R$ ~# j' H5 p8 P - ai_ucsp_chg nil8 K/ g- v9 v$ @, o- G
- ai_ucsp_currtile "ucsp_cview"
: F9 _. R! Y7 r" c0 S6 O& l - ): D# c7 h& g4 i
- (set_tile "ucsp_a_wcs" "1")7 {$ X" K: c+ R% v; Q& }
- (mode_tile ai_ucsp_currtile 4), }. D7 B* \7 p, ]3 C; |$ E
- ): @# @) U! x8 g8 i5 P; \/ m
9 R8 x( ~3 P: S2 ] {: c6 ]- (defun ai_ucsp_rucs (typ) r/ |9 N: c$ m) ?9 g% f
- (setq ai_ucsp_a typ)) S6 i0 b7 d0 D0 G1 h
- (mode_tile ai_ucsp_currtile 2). b7 o+ d# ^2 S8 `
- ): u$ {# B( Y5 V
0 E9 [: A8 d9 K. j9 ^- (defun ai_ucsp_prev ()
9 x8 _0 r( H( V% d - (mode_tile ai_ucsp_currtile 4)- V4 ]1 N5 ^; ]( q6 W" ?8 a b; h
- (setq ai_ucsp_prevs T1 h- B1 T) w7 x5 e4 o
- ai_ucsp_currtile "ucsp_prev"
% m5 C8 {; P; L2 m8 _+ N4 w - )/ Q# Z/ ~4 T0 O! c! H; Z
- (mode_tile ai_ucsp_currtile 4)
8 |1 p n1 a+ [3 z4 r( M9 o2 W - )$ C' ]' d E j+ ^
; Z1 O! ^1 u" _( C) D4 i- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
; ?" ]0 S2 \1 v# R7 ^2 m - (if (not (new_dialog "dducsp" dcl_id))' x" f5 I, i; g
- (exit)
5 C' J' H" x/ a f ~9 }+ z - )0 U7 L/ b4 a" X% `* {* m% N* Q
6 \8 o* ]. N8 t( w! ]( X2 e$ l$ w3 N- (ai_ucsp_start)
; Q- [- c u* j% M6 ^ - (setq ai_ucsp_a "@"
. t3 m5 F8 t5 @1 T1 l& s7 ?" q - ai_ucsp_pick 24 w1 A- s4 R& H& `) i! l1 e& O
- ai_ucsp_currtile "ucsp_top"4 P. _ ?& e6 S
- )
}' z3 Z8 L5 I3 n& G9 x# F/ F - (if (= 1 (getvar "WORLDUCS"))0 Q+ n5 u7 o# b5 w T
- (progn
( t+ |9 [! V1 N( F - (set_tile "ucsp_a_wcs" "1"), P# b8 _# k. ]$ a! B
- (setq ai_ucsp_currtile "ucsp_world")
. T5 Q3 a" x5 O2 `& H( l - )5 e0 K# F' N/ H8 C/ ~$ I
- (set_tile "ucsp_r_ucs" "1")
0 p1 w6 j( z6 g8 Q. E3 w! Q - )( {% Q7 j: {- _8 A" c) i
- (mode_tile ai_ucsp_currtile 2), F4 T9 e) w$ F( `
- (mode_tile ai_ucsp_currtile 4)
% n+ d z5 ~- y - (action_tile "ucsp_world" "(ai_ucsp_swcs)")( g1 }. ~. `$ S7 o$ `1 M! M
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")7 f8 X3 \" {1 S; _4 }
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
. i; q# n. ]! o Y/ x - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
% m6 p: i3 K9 |$ G9 ~" ^; J - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")8 M: Y# h7 ^) \+ h* s
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")/ o; N) V) S; c; z: w/ y
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
0 Y7 H1 t0 K9 g6 p! a - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
" f4 W# {% |2 Q# n" R/ J6 j$ i$ g - (action_tile "ucsp_prev" "(ai_ucsp_prev)")3 A2 [2 t7 x/ y; I+ s4 s
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")) Z) H: D0 @+ a' z( S
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
9 D, c+ a7 D3 M - (action_tile "accept" "(done_dialog 1)")% _& G* A) U" G
- (action_tile "cancel" "(done_dialog 0)")5 O8 [/ h" g3 L. H* b, Z( \4 k
- (action_tile "help" "(help \"\" \"DDUCSP\")")
$ P& [7 @8 [' k6 \8 n - (if (= (start_dialog) 1)
: m( e/ H M' ^" t0 d - (ai_ucsp_set)
+ q# {9 L, y& M - )6 }, E, _" C, L& F5 W, u
- )$ U* a/ S7 F$ ^' X9 h8 e. G# f5 I
- 7 ~, X* F T, o
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
( K! S9 D3 L& u$ {$ r5 l" C2 m7 q - ai_ucsp_sw undo_init)
' ?" ~+ I; Y, `% M/ h9 \
, j9 c* f- J; c9 L9 `- ;; Set up error function.* ~! D9 N+ |* ]
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho# v$ w# @; o" {8 l% ?3 d( N7 `
- old_error *error* ; save current error function
1 X5 j/ A& Y$ B - *error* ai_error ; new error function7 t4 D& w) d2 F2 G9 [, U5 T
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
1 B; L2 M7 K0 p7 {( Y$ e7 ^ - )/ C7 a7 ?/ V, n- U
- & k- E* b" B) N
- (setvar "CMDECHO" 0)
* \1 d. a5 T, K
4 D2 d7 m$ }4 R- (cond, W `; k# k( S8 h& S
- ( (not (ai_notrans))) ; transparent not OK+ E$ m2 u, m5 o4 r+ i
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?/ ]4 U6 z: [+ } A. o7 y% J$ ~
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?0 e/ _* d8 c# V. f# D
- (T (ai_undo_push)7 M3 }- y* T- p+ z
- (setvar "OSMODE" 0), }* P3 A- g( g
- (ai_ucsp_main)) C, g1 G: H& w( O. n* Q0 z
- (setvar "OSMODE" old_osmode)) W% Q& M9 i: A, X# h# f7 j5 _
- (ai_undo_pop)
9 _# R0 y' K k$ Z Q5 e2 B8 i* | - )
$ v0 M% S3 a& {1 o - )
4 K% Q; v2 F* W+ Q( M( }
/ F8 Q! T! m' W0 `3 T8 g& x- (setq *error* old_error) * U& X# ^" {4 G* y
- (setvar "cmdecho" old_cmd) b7 k1 w4 h$ ?/ F: k' f5 M }
- 6 P8 S6 F( c0 d8 S1 l. t
- (princ)* b6 B+ ^0 d% e
- )8 K6 L4 ]3 P" R6 Z
# `/ E: _1 `4 n; \: t0 R' R; W- (princ " DDUCSP loaded. "): H2 M3 s+ N6 b/ E6 o
- (princ)
# i) P w! a! U# s i) ]
1 h! \6 j+ F5 D+ f$ s! T0 |0 \& Y- ;;;???;;;---------------------------------------------------------------------------------------
* N1 ]( S& `9 `4 }9 h7 R - ) L6 i/ L$ |( U0 F' L
- ;;;----------------------------------------------------------------------------
$ f& p& i7 B; s& O! A6 Y% z# D, o - ;;;. H: X! [3 m% j% t* ~8 u
- ;;; EXCHPROP.LSP
2 R: M. `$ t- b8 ?! s - ;;; Polyline and text modification capabilities added by - k8 F, R9 i+ b; }1 K/ o _
- ;;; Randy Kintzley
0 {1 H/ B9 c$ g& g/ X - ;;; 6 O0 D/ t$ X' t( {* U
- ;;; Copyright (C) 1997 by Autodesk, Inc.: N" o* ~$ p" E+ s
- ;;;* q9 ?/ |" h5 ]
- ;;; Permission to use, copy, modify, and distribute this software! [ ?3 X, f' i, n% @
- ;;; for any purpose and without fee is hereby granted, provided
1 L- b+ Q5 i8 c, q8 f. y3 n$ g3 P - ;;; that the above copyright notice appears in all copies and" Z* l8 P9 R4 Z1 a! t. N9 R
- ;;; that both that copyright notice and the limited warranty and, }: N* L, }1 _
- ;;; restricted rights notice below appear in all supporting' l+ ~( o; y. _8 Z% o5 X7 [/ J
- ;;; documentation.
( q) Y& C" V: j1 k7 C7 |( O* q/ x - ;;;
) ?, R( n& M) ~& j: Y - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.9 e8 o3 I) G2 d5 \, N* j( b
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
! Y- ?: B1 V. A! {7 ]1 Z, ] - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
1 M. L4 W1 ~) f: M* A% t - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE% w% K5 m- }0 c) q% v8 H7 d
- ;;; UNINTERRUPTED OR ERROR FREE., V$ E9 J" ^! v/ x! o3 {
- ;;;+ p5 d" J5 ]5 [7 [
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 d8 @8 L U) V- `6 Y+ f; K - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
! f! `& i4 ^* C, h& R* ` - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
6 U6 F+ E& L% ]9 K7 Z - ;;; (Rights in Technical Data and Computer Software), as applicable.; x! Q H. J* w' j4 a6 \9 o
- ;;;
3 M, S; }" J0 o! ^5 g) w - ;;;.
( p% \- N& O- H! _0 e2 c - ;;; 28 February 1997
9 T9 H4 V5 f; v1 r8 I1 D( D - ;;;* L( j6 n3 m z' p9 m# R) s i
- ;;;
, E6 \4 d8 ~+ g6 I5 E$ u3 n6 F( ] - ;;;----------------------------------------------------------------------------2 \: ]2 O9 M! }4 J. Z
- ;;; DESCRIPTION0 F- z( w# m. c% `! b
- ;;;----------------------------------------------------------------------------
`+ Z* ?2 Z0 r1 L) n/ | a3 t - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
4 Q6 x+ ]. _2 @1 K - ;;; command gives the user the abilitie to change several characteristics & e# {) t6 j# ^* u
- ;;; of selected polyline and text objects.
0 v' K. d* k, s5 Q6 y0 j( W - ;;; The style and height of selectected text objects can be modified
) I: {& e: q8 Y+ l% V! A, l, [ - ;;; (including text, mtext and attribute definitions) as well as, width and
9 O, Q6 I; x+ {: M4 r& A - ;;; elevation characteristics of selected polylines (includes lightweight and
7 R$ w( h- i( ]! [8 f& W - ;;; traditional polylines.)* q6 @+ }2 Z: F
- ;;;----------------------------------------------------------------------------
. P/ _% p3 q& o% c5 E, X" e6 n/ w - ;;;----------------------------------------------------------------------------
6 `' H+ R7 g! x- j5 P - ;;; Prefixes in command and keyword strings:
0 k3 ^9 R. B( r% j; C8 @ - ;;; "." specifies the built-in AutoCAD command in case it has been: R, H$ n$ C: Z/ U8 X0 O- H i
- ;;; redefined. X9 h: r/ U/ [" L2 v2 D/ a
- ;;; "_" denotes an AutoCAD command or keyword in the native language5 _' H1 u8 h! r! R
- ;;; version, English.6 C) F5 {/ q' Q4 b
- ;;;----------------------------------------------------------------------------0 c: B) c. {2 D
- ;;;
) X5 R3 b+ w9 `0 V. N+ A8 @ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
% _' N# X% e; T3 I; {4 W - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;. m" l i% C: G* j# G7 L3 \
- ;Functions created as result of loading file: exchprop.lsp
8 |5 C+ ?8 z5 ^ - ; DDCHPROP2
& i- S4 g6 s3 ?9 n0 ~" f - ; DDCHPROP2_INIT
4 N* r, f" u& m6 h5 \& O - ; DDCHPROP2_SELECT
. }; `# }5 N, o - ;- n' b8 b5 p9 M# J& \
- ;Variables created as result of loading file: exchprop.lsp
1 H/ {3 ?& n8 f r+ \9 { - ; OLD_ALLOC
0 N& W; A3 x& j4 b5 c Y6 J2 S9 { - ;
" c0 i9 k- i/ ?3 t" l - ;Functions created as a result of executing the commands in: exchprop.lsp
2 B" l! p6 n( j6 m" ~7 G - ;
5 ]0 t0 a3 p# b) n1 X% f, I - ;Variables created as a result of executing the commands in: exchprop.lsp1 K. o9 I$ x. h8 ?
- ; AI_SELTYPE: ^- ]9 ?, U& D8 c2 H9 ^, z# {
- ; BONUS_ALIVE1 B1 E, F8 ]1 Y6 ~7 M( R
- ; BONUS_OLD_ERROR
2 G0 {, r* N$ U: ]! I7 g) j/ E% g1 ^ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
% ~( ?$ x* c: v! [: F8 l$ Z - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
( `) s+ @' a- c+ o1 f" c - 9 ?8 j( F3 [0 m! r9 f+ b* o
- ;;; h, ?1 G% m5 n, @
- ;;; Avoid (gc)s on load to improve load time.2 f5 G3 S0 N8 p9 w& m1 U6 S* ?
- ;;;3 L+ W4 [5 k# i3 N l6 s
- (defun do_alloc (/ old_allod new_alloc)
. E, e( ^( T$ [( [, X - (setq old_alloc (alloc 2000) new_alloc (alloc 2000)) h$ P( }. l. a2 n6 w
- (expand (1+ (/ 4750 new_alloc)))
' G+ t' o: ]1 E. u; \# | - (alloc old_alloc), A, ^4 c! P9 }: L L5 k. w& `% c
- );defun. T& ?: N8 Q% M; O6 a' N# r
. N2 E; H( p2 H/ i1 x# ?" ?7 ]- ;runs at load time - rk0 M# V9 T$ w8 w3 a, H8 L f
- (do_alloc)
) V4 j2 L0 I2 X2 s/ h# b( f - (setq do_alloc nil)
3 }& A/ [9 v- e' | - ;;;
9 _. s& A( u s; A( J/ G - ;;; ===========================================================================& Y8 J2 B4 W9 [% W" H+ q& f
- ;;; ===================== load-time error checking ============================
3 x) l, a) k$ J) @% i* I2 a - ;;;# Q0 c6 Z4 y4 K9 C$ h7 B
/ U+ I0 `& h) {3 Y0 U- (defun ai_abort (app msg) # }; ~/ ?4 G+ q5 P
- (defun *error* (s)" c- {: w0 B/ Z; W
- (if old_error (setq *error* old_error))# V5 m6 X& t y
- (princ), E1 d/ v4 z5 P; g" u
- );defun
+ x. @5 h3 E, q8 z' q i0 K7 M. ^ - (if msg6 x* p) `4 f4 B J8 c
- (alert (strcat " Application error: "
' z( j' B/ D0 f- P3 J- b" E - app
! J: u {3 M1 q+ F& K! ]- { - " \n\n "
* T& a n5 I; U6 c8 l5 n ^ - msg
# S* B' F Q- N5 F0 U - " \n"
# @- {4 j. B: f0 N/ N' F - )
& E! }+ [+ I0 X& q, s+ R: K - );alert
. F: Y4 r( X( M9 G& @ - );if
) n# ^3 J- M) e$ r- G( m - ;(*error* msg)
/ H5 }$ \6 M9 }7 ~ - (exit)
# P6 A0 s1 E- v) c, J( _8 z - );defun ai_abort
& h& u; m6 _- ]( v1 L0 a - 1 e- g5 s8 Q! A* r) d, V3 x& {
- ;runs at load time - rk
9 J9 u" q2 d3 x( l! o% v8 [' ` - ;(if (and *error* ;added the if wrapper around this - rk.
' ~* R6 S6 n7 r. A2 U5 q; M' M7 B s - ; (not old_error) - K" ?$ P- @ y' s" d
- ; );and 6 m, t# T; y- a9 O$ H+ n4 f
- ; (setq old_error *error*);setq
3 E; r7 n3 h/ v9 ~9 Y - ;);if& }6 h2 }4 w# U
- ( B( a* V4 V8 G
- " J( C! e: u4 p+ @4 F
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
6 ~, B o( }" m - ;;; and then try to load it. ^: f/ L3 W, y, q8 X1 |5 d/ O
- ;;;
; S/ }- C% _% i c' F - ;;; If it can't be found or it can't be loaded, then abort the7 A4 @" ^& Y' Y
- ;;; loading of this file immediately, preserving the (autoload)% s; Z# r2 I* F0 ?: w9 t2 p) B
- ;;; stub function.
: C. ^; S- ~5 G* v7 o0 z
8 o+ {3 w% K( h- ;runs at load time - rk.
4 ^, U' D) l# c$ K - (cond# Q$ C3 h5 ?2 z4 r0 a
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
3 t; O# X/ \. e5 k8 e: Z - ( (not (findfile "ai_utils.lsp")) ; find it
2 G* S: T( h, m3 G4 B: |' Z2 m - (ai_abort "EXCHPROP"
. q! }( J5 l6 O. s - (strcat "Can't locate file AI_UTILS.LSP."
% x1 I& T1 ^. \4 h# {( m - "\n Check support directory.")* I; H7 ]2 f) c% D v1 C
- );ai_abort
* ]" ^# }; ?+ H6 l- N+ `, } - )$ y$ `4 Q, Y; m, _5 N
- ( (eq "failed" (load "ai_utils" "failed")) ; load it4 ^3 i$ K$ d6 C' x5 c
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
6 e9 _, ^5 w/ V, D+ ]3 Q; x - )
4 c6 d# R5 d" a/ G5 t - );cond close+ t/ S" l+ Z0 V0 G
- " l+ T5 }5 ?+ I1 b, @) C& w! ^2 Y& T
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
: v. T8 X# X( O! F - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses5 p f8 h1 \3 W# M/ O/ d
- );if ; ai_abort's alert box dialog.& I& x4 Q( p2 ]% R e7 Z
( C$ d( ]- V; ?2 X6 z' U* V- ;;; ==================== end load-time operations ===========================; z0 `( j" Q e& i0 S3 F5 D( ]( C: P* F$ @
. o) b- z3 ]" P" V6 e- ;;; Initialize program subroutines and variables.' b1 n; r8 \8 u$ j% a% K h, N- U
k, ?( L/ Q) y4 w1 ]+ A' n- (defun ddchprop2_init()" t2 S5 [) t7 X8 y2 Q
: [9 p8 A. f# \2 i& @8 r
: L# I" s0 ^& j- m2 c9 o3 ~/ s- " e9 |, G" \) g6 F" s
- ;;+ O6 [3 C$ v8 C( G& |
- ;; Define buttons and set values in CHPROP dialogue box
- j" j& K) u+ ~' f8 K6 c* D, Z; ^' _ - ;;
% B: Z6 ~; T/ c z: h" T T - (defun call_chp2 (/ cmdact p1 p2)* P+ r1 @# z$ ~$ v6 P! N9 L- c
3 v |/ E% S* @7 W4 [, R/ K/ p- (if (not (new_dialog "ch_prop" dcl_id))
9 S! M f0 m0 c* n( a n" I - (exit)
) H; V! ?) N# |) C# s0 M _. \ - )9 h3 N' P% s: n! R! ^! |# M
- # P0 h# u" W A
- (set_tile "error" ""); b& K5 x+ J: G
- ;; Set initial dialogue tile values" u8 f& `# g+ {. y0 o% t
- (set_col_tile)
1 X% N# `% u7 V& M3 W+ h6 E) ^1 p. [ - (set_tile "t_layer" elayer)
$ Y. i8 o4 l6 b$ @: h - , @* K b+ p8 c2 W- F9 Y( i) N
- (cond, @7 e9 K6 D1 x% p
- ((= lt-idx nil)
; F. s$ ~& x; B6 I& B - (set_tile "t_ltype" "Varies")4 b: e4 u/ v; K" s) K
- )& D# n! j- ^* n9 Q. l
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
1 d) t: }7 o# k - (set_tile "t_ltype" (bylayer_lt))
+ O; i9 F6 P3 a - )& z$ t2 Y- C- \5 e- Y
- (T
" t: a% B1 F8 I6 G - (set_tile "t_ltype" (nth lt-idx ltnmlst))9 X: d3 d+ m5 o! Y5 i
- )
+ G. _2 I# |" Y2 a, s2 z3 r - )
# @4 }. \5 t' v3 J& d) f. I4 e
. [3 f6 ?! I1 ~8 u2 E- (if (or (= ethickness nil)
4 e, z, t' w$ T - (= ethickness "")7 h/ [& L9 ^2 |. K! `/ l
- (= ethickness "Varies") 0 s8 p+ @: `: B
- );or, y; L" K# i: N
- (set_tile "eb_thickness" "")# }7 k) f7 a" c- y6 P8 s, m" d
- (set_tile "eb_thickness" (ai_rtos ethickness))
7 |& e5 q1 c1 h! \ - );if
% W3 Z S& \, e0 \ - (if (or (= eltscale nil)
4 M# w, `% _# Z, ]+ O: V" Y - (= eltscale "")( i3 H/ P q, M0 o9 d) t: F
- (= eltscale "Varies")- e. ]9 f: x8 d! z
-
1 W8 H; {2 w9 [. C" ]! ~& M - )
( D! x- v1 }* y, t. c p$ |* U - (set_tile "eb_ltscale" "")4 e Y5 ]+ _9 @3 P- b i
- (set_tile "eb_ltscale" (ai_rtos eltscale))2 f/ O. s. R: x* r
- )
2 E( }9 B& k2 v - (if
: I- x2 Y0 Z4 @3 e, P( N" | - (numberp ewidth)
1 A! l; L0 k7 N2 G, D$ u; D: u - (set_tile "poly_wid" (ai_rtos ewidth))
) q3 I! W3 Q; v" U - (set_tile "poly_wid" ewidth)
7 W6 D1 e' d& w7 ^% O3 ?6 G - )
. f* M. g! Y: C- A7 [! { - (if. U z$ I' v" R0 H
- (numberp eelevation)% D# S0 Z: U" t) T
- (set_tile "poly_elev" (ai_rtos eelevation)): T2 K- k2 H! j
- (set_tile "poly_elev" eelevation)
% q, i* T- |( ?$ v4 ?+ F# A: s) e - )2 Y3 w; O$ P8 C8 [, O
- (if
$ G" Z4 @2 ^2 i$ I - (numberp eheight)) M1 _, T' a. m8 u1 @2 p' P# k
- (set_tile "text_hgt" (ai_rtos eheight))
' T8 W6 J# o- q) m% Q- l - (set_tile "text_hgt" eheight)" W& t+ F6 g7 T; y
- ); ]! D1 l& a1 E; A8 s
- (if (not estyle)
7 W# N3 c* b" h: j7 u8 ^$ K: n4 V; `/ n - (setq estyle "")
! g' T( [) x% y& U( X+ \: T - );if
) @# W o7 Y( N' Q2 q - (setq hair_style_list (tnlist '("style" 16)));setq0 X0 s, z3 }# x- t; c
- (if (not (member estyle hair_style_list)). q }" Z: m9 |6 F, w
- (setq hair_style_list (append hair_style_list (list estyle)));setq) q0 f1 _+ m5 D" h; V, {$ o2 P3 r
- );if ) i7 I+ B% j c8 \( ^; D$ k' o
! ` |' g! y+ \) N E3 l- (setq hair_style_list (acad_strlsort hair_style_list));setq
, a5 F7 ]6 X* E9 t8 i; L$ w - (mpoplst "text_style" hair_style_list)
$ |& Z1 e( y; U& r w$ I# T - (set_tile "text_style" F. V' m! x8 z/ U- _9 @
- (itoa (position estyle hair_style_list))
/ a2 u# D" \% b) U6 | - );set_tile
- y8 @. y* Q! d - E* c2 E) t, g; z$ [' m
- ;; Disable tiles if need be... ;@RK
' A5 h4 k! S; f$ G& c - (setq a 0)+ E' h: I* k& p- L
- (while ( < a (sslength ss))9 @2 X$ _4 [6 f; f* a9 u$ R
- (setq which_tiles
& R% o; i1 ^2 u" W) k' o0 r - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
( C7 k' p4 I& e - , x( K$ R( z4 [) C; K
- ;; If all fields are enabled, don't bother checking anymore.5 c$ A, x7 A: F0 ?0 q( P
- (if (/= which_tiles (logior 1 2 4 8 16)); G1 |7 `# P2 ^0 K) ^3 k
- (setq a (1+ a))
7 N) ~$ O/ G1 z6 [+ i4 u' T - (setq a (sslength ss))4 r8 L% E( e4 m2 |. P$ O
- )
5 M x0 N& J) z2 G - )1 T+ n* v7 }+ ~/ i
- ;; Layer Button and Text Field) @, G! ]; n1 N; f, L
, ^/ m! S! Q G) b- (if (/= 1 (logand 1 which_tiles))% O! z' O. k. e5 g. @7 H3 W' z. @
- (progn# ^8 i% o' j6 l8 y
- (mode_tile "t_layer" 1)
5 z$ z& o, r& K/ R; I4 D5 ` - (mode_tile "b_name" 1), m1 s! J1 ^! D5 l5 p+ ` @' C
- )
3 g/ j9 b, c* I6 e+ _ - )1 d$ d Z) ]0 C# l5 j7 u$ u
- 4 H. @' B, u/ ^( K
- ;; Color Button and Text Field- f) W+ m1 C3 M# \" c: A
- (if (/= 2 (logand 2 which_tiles))% ~ w5 Q6 |' o! z" C
- (progn z' p: h% a U% v
- (mode_tile "t_color" 1)
% J) H' d; N4 o! S - (mode_tile "b_color" 1)
/ v8 R8 q$ ~1 K, d3 z. d. J - (mode_tile "show_image" 1)
. F! B! M8 b; v/ b7 {3 i - )
( J& s6 I/ C( s# \ - )
/ O+ f J% S+ q; k% W - ;; Linetype Button and Text Field- E" C7 W6 Z+ X) N6 c5 t
- (if (/= 4 (logand 4 which_tiles))
2 K4 `- R& e. Q) `: X/ z2 n - (progn# w! l$ V% S6 N4 |$ {/ R( X1 a
- (mode_tile "t_ltype" 1)
) i3 x7 I3 O5 f. j. ^. j4 I - (mode_tile "b_line" 1)
! M. D* B, G( r6 L: q: _5 ^+ Y( | - ): L2 C" g, u6 ^6 B3 y+ H
- )
$ f9 H- N3 a! i J - ;; Linetype Scale Edit Field
) U) v; z R4 v - (if (/= 8 (logand 8 which_tiles))
# m9 i5 M* v6 e1 P# S5 K4 V - (progn
/ o/ P5 B$ i, I7 [ - (mode_tile "eb_ltscale" 1)2 Z! P& a' `7 a* Q' A4 M6 {
- )) V9 D! X A3 w7 R& l3 k) |
- )
) X/ [9 P( n4 m: r( i - ;; Thickness Edit Field.
9 a, s2 q- ?/ A" w9 V2 c; h' Y: d - (if (/= 16 (logand 16 which_tiles))
% `, q/ u# c7 t - (progn
; c- G% d' j! k1 P - (mode_tile "eb_thickness" 1)' q0 ?) w' z+ f3 x8 C Y i* C( P; ?8 f
- )
) \( S) m. \8 \7 e# C - )! q9 }' |" [+ A! g
- 0 x0 ]0 w, Q" U, z2 e' x& x
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
- ^- f. J+ j( h! r6 k e5 i - (if (not (= 2 (logand 2 eflag)))% V. @2 L, z, s0 u$ Y3 e
- (progn
+ K7 W; h9 K3 M6 w, G - (mode_tile "text_hgt" 1)
I* H. E( D7 Q6 n3 o - (mode_tile "text_style" 1)$ j5 h0 X2 h2 Q. I' O5 D2 l. V9 p
- );progn
& n p2 Q; s2 O - );if
3 ~* N: F- A, f# u. u - (if (not (= 1 (logand 1 eflag)))+ q8 p' z3 ~4 |+ B* ]
- (progn + z9 V" N9 p0 q4 W; ]( X7 f) g
- (mode_tile "poly_wid" 1)
( g0 Q/ I) Q+ \- ^2 s. y& b - (mode_tile "poly_elev" 1)
4 o: l2 Z+ K. T/ t6 h% i - );progn then disable polyline fields1 [+ U3 w8 I3 [4 Y
- );if
: E ~% R' Y. o% y - : y& T' H4 I; ~. T
- ;; Define action for tiles! ?7 |. z/ N& O. _3 X
- (action_tile "b_color" "(setq ecolor (getcolor))")
( ]0 Z) }& J3 j3 A3 _" M; ?, N - (action_tile "show_image" "(setq ecolor (getcolor))")8 j/ i$ D- _: w
- (action_tile "b_name" "(setq elayer (getlayer))")! b6 H0 E' B* _8 {) _
- (action_tile "b_line" "(setq eltype (getltype))"); N% V4 L6 F) _# P
- (action_tile "eb_ltscale" "(getscale $value)")7 Y6 ]9 R' L$ t- L& b6 ^( V
- (action_tile "eb_thickness" "(getthickness $value)")
. t+ Z. K |* b6 k! ?+ @8 l - (action_tile "poly_wid" "(getwidth $value)")
f3 x7 T3 G7 n; P: t6 F - (action_tile "poly_elev" "(getelevation $value)")2 l6 h+ T4 w% J5 k
- (action_tile "text_hgt" "(getheight $value)")6 h6 K' H1 O* l+ d* F2 E$ u
- (action_tile "text_style" "(getstyle $value hair_style_list)") " L. G' I/ [) d) F7 N- R. a( i4 r
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")% ?" T6 x" v3 P* m
- (action_tile "accept" "(test-main-ok)")9 V1 ^! u" c8 w3 C! T
- ; o/ W5 M. c: x9 C5 r
- (if (= (start_dialog) 1): q/ D1 ]" c. K- R+ H
- (progn
; f0 Z8 @4 t% q V [2 K - ; Update special properties for polyline and text selection-sets.
5 a: X& z7 k+ Z# \+ [6 f$ v -
# l2 }1 e( k, v- J" M: K - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop# G; `' L/ @- |! \# z, W
- (or ewidth
& a- ? h5 p4 h* ~- f" P; Q - eelevation
$ D( q/ F. i- s' Q* ? - );or; \( U% {% D+ \: U( | G
- );and. n* m$ L' g% p- P6 e ]
- (progn
5 O8 E( o% [2 b7 k" P: v$ U - (setq ss-index 0
7 s I) c, ^* O- f+ b - ss-length (sslength poly_ss)
# M! V. A2 A4 [. U; p3 k - );setq3 b, C( T& c- |+ u, b0 \
- (while (< ss-index ss-length)& `* D0 W/ N9 {7 }, D/ {
- (setq ename (ssname poly_ss ss-index)
# B, F9 R4 ^/ I- X, Z& J1 ?$ U5 x - elist (entget ename)
1 x7 Z D) n. q, }2 j - );setq
! e6 s6 C4 ~0 h/ M$ H7 {5 L - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
/ ]" q: x. R* O( O9 c# F2 p2 z- i - (if ewidth
; Y% Y k( b$ v" h$ {5 ?) s- ]7 j - (command "_.pedit" ename "_W" ewidth "_x")/ S% m0 i2 d7 P- b. l% j( p8 n' w$ ^
- );if & J5 O, f9 r6 J) N9 d
- (if eelevation
8 a% h5 @: N) X* D! c# Q - (progn
$ L4 {4 A$ }1 w: G - (setq p2 (list 0.0 0.0 eelevation));setq- b0 g+ `: O) u/ i& G. S
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")
4 O# k2 f( a1 X4 M* L - (setq p1 (list 0.0 0.0
1 ~/ V- {* Y6 V) {/ B$ P# J8 d0 U& u - (caddr (cdr (assoc 10 elist)))
" x$ `# w8 h7 `. m - );list% T& q$ X' H$ W( F
- );setq
0 K" ~9 [6 v+ N% H& o - (progn# |5 Q& ?, J& c# G4 M: x9 Y
- (if (assoc 38 elist)
+ ]( l4 E$ Z: U' }; e - (setq p1 (list 0.0 0.0- w- Q3 u$ @) l! V3 u4 C6 X* b' i# N1 L
- (cdr (assoc 38 elist))
9 ?. F; S* H/ W2 G; G - );list4 \- S% _1 z3 ^% g& ^# Y
- );setq
0 O. H7 n- T; }3 f1 B. J b - (setq p1 '(0.0 0.0 0.0))
/ m. a" L) k& {. g5 `" [# n - );if
$ e N* z' l2 }4 M, ^ - );progn
. ^! F$ ^9 x7 O+ K% ~, Z1 O6 r k - );if
7 w" C9 |0 B6 ]- j - (command "_.move" ename "" p1 p2)
- V( w5 F6 r* ?- B+ F% I" A" w - );progn then change the elevation of the polyline
; \% u; g$ \( R9 g/ y2 I - );if- P- A6 f5 N, }: e) U0 a
- (command "_.ucs" "_p")
+ Y* L# v/ c1 N/ k2 ^ - (setq ss-index (1+ ss-index))
' w' W; D& x7 | - );while% s3 O" |9 c* I: p2 ?, i, d8 A6 v
- );progn then polylines are in the selset/ p) Q2 E1 Z7 p1 U3 o0 ]
- );if: s0 k$ ^) L0 j7 u. ]9 W
- (if (and (= 2 (logand 2 eflag)) ; text# w' X$ {$ ^( [4 q
- (or eheight
$ B' w+ B: D4 b9 s' m1 M7 G: \ - estyle0 W. C; Q2 N; S$ v) R% {
- );or! ?1 l- ~: K* F: H: q
- );and
. F- w2 ]6 S; R6 D+ e% T - (progn
& t+ e4 Q9 F ?: q. K/ c - (setq ss-index 0 ss-length (sslength txt_ss))
& q' u7 S4 }( c - (while
3 t7 k) w( v g0 t - (< ss-index ss-length)
0 i% a: q( l3 V, g3 y' n - (setq elist (entget (setq ename (ssname txt_ss ss-index)))) ^. k1 f) q6 s6 V/ ^
- (if (numberp eheight)) s9 y% j# V8 y t/ g
- (setq elist (subst (cons 40 eheight)
& |6 }0 N' S6 p% n! C$ I6 D - (assoc 40 elist)
1 E3 f3 w [9 |( ]2 u8 U$ f - elist
! B) A% U/ V+ ~% y! a6 q1 M - );subst
8 i: v- a4 W1 ] - );setq
5 p" L: p0 F/ I0 u+ R3 }7 u; Z - );if
( D) u2 Y" b9 I7 { - (if (and estyle ;(not (equal estyle ""))
; ^" K9 a R6 @# N( ?* a7 B7 O - (not (equal estyle (cdr (assoc 7 elist)))) t2 S F# A0 e$ k
- );and
3 g: ~1 s1 I- P' _0 c - (progn
. H2 r) e/ a! T, m( u- p - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt . ?/ c+ f5 W0 N
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
" f4 i# u. w5 F% H. ?! ~ - ; (setq elist (fix_mtext_fonts estyle
1 H" O) X8 @, A2 W2 e - ; elist
* b- S' g9 ~4 y" {' n6 C - ; )
7 ?* b2 I" M$ C7 o: \) q - ; );setq then# w2 i( A9 C* p" d" `7 f0 _; H5 ]# S
- (setq elist (subst (cons 7 estyle)5 X# y# y5 F3 q! v1 @
- (assoc 7 elist)
0 T. K9 T2 d7 l5 z - elist
& Y) G: _" C! }7 M: O* G% ?% X( U4 N - );subst8 p' R8 c5 X2 c
- );setq else; @$ T( g) b+ T1 {, @0 D. D
- ;);if / h F1 \, d% ~* |, g4 L* }
- );progn7 e$ _$ u p8 B, t+ ^( r; S$ A( r
- );if" M+ r+ T3 w. l. Q5 K* b" h2 Y
- (entmod elist); [; \' [( ?' E' n0 i- `
- (setq ss-index (1+ ss-index))
* k( p- `. a* v) n0 w! r- z; ~/ u) A - );while9 T( ?# }" Z8 Y1 y0 V
- );progn then
. E; j4 N/ V9 J6 A7 f% n/ i9 U - );if
7 m4 M& f/ G! {' n - 5 P( N2 ?( @6 @9 _, L* l
- (setq cmdact (getvar "cmdactive"))
. m$ _$ V2 T6 _, C r - (command "_.chprop" ss "")
5 V0 a, O& [" n% ? - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?5 l4 l' Y3 H( _( j( [( F" h
- (progn
# z4 ^4 p4 w& F. H - (if ecolor
' A' ^1 d+ E$ j& ~3 L8 Q+ X2 }3 E - (progn
* n3 J+ H* Z* @/ ]) z - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))4 d! l% H* k0 N0 H3 w4 P+ ^. K
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))' G- ~* F, Z1 S1 c
- (command "_c" ecolor)
. J+ m) x# h+ _+ K! } - );progn then( w+ ~& R, K2 I) O9 C! B
- )4 m7 K! J" x S; q4 o" Q
- (if (and lt-idx
2 Z. T' \8 r& g9 r, u+ T - (/= eltype ;|MSG0|;"Varies")/ ]9 R. k3 \1 V' r" A1 J
- )
) m5 ]: p7 U4 m; y7 S9 B" ^ - (command "_lt" eltype)1 m) F8 O& n6 m
- )
+ K' K% U# Q5 G3 d - (if (and lay-idx " v- j3 u1 M \+ V. v
- (/= elayer ;|MSG0|;"Varies") s6 U! b3 m5 A! {9 ] j3 A
- )
& X( I/ T' V7 x* G* w' @ - (command "_la" elayer)5 |- B o" }6 z3 {
- )& t5 J+ _0 S3 l' ^6 s8 v8 F1 Y- M
- (if (and ethickness % F/ B" Y& x# _4 F x3 a5 e3 d
- (/= ethickness "")
1 u$ v5 r" T9 n+ Y - (/= ethickness "Varies")
6 D4 _5 g; ~, I - )8 @, k$ g. }$ i$ T6 u/ R' a
- (command "_t" ethickness)" n$ C# b6 s) `1 f
- )
G( B* N. \" \ - (if (and eltscale (/= eltscale ""))' j$ r! n; T: o
- (command "_lts" eltscale), O8 W0 b6 l8 Y2 Q4 C3 Z
- );if
9 s7 g( w. t3 A- i$ R% v - (command ""). J2 q. D9 z N- A. s
- )
' ~& R5 O: [8 t - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
; u2 T- o4 d; `4 _" v$ o - )0 h0 l: f, N9 ]' y% r
% U1 M, j' i: f0 l5 t- );progn then OK was picked in the dialog.
. r' b9 B0 r. ?( c9 d8 F8 j3 Y - 4 W! s7 `. D. ?
- ;; Fred GERBER - 25-AUG-94& s. `& }5 ]3 {
- ;; Don't print the "Properties unchanged" message when the user cancels' i" K% }+ V% c _, X
- ;; the dialog because he knows that already (otherwise he would have
& V; C# A( K9 i) {8 C8 a/ B - ;; hit the "OK" button). Display the message only if CHPROP fails for* n" r9 { o: F' A x; J( {) x9 m
- ;; some reason, because it is not the expected behavior of the command.. c p: c ~1 U0 g* `# H
- ;;. Y6 l+ i W! u6 E8 `. D7 {
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged"), a, u: B) e4 l. ?+ C% r2 L
- );if
" G, _( w* M8 \* r- S - (princ). y2 ?3 w) p! E1 b
- );defun call_chp22 `- n1 y4 h' S
- ;;$ |& }" m7 z3 W& y* p) p6 x3 {
- ;; Function to set the Color text tile and swab to the current color value.
1 S* o6 m; P: e( T2 u - ;;
9 q6 Y& d& Q7 u* }( }' Z2 B6 u2 l - (defun set_col_tile()
3 h% r) p s/ C( ?5 V - (cond
/ H/ p2 i( [, ] [8 N0 p1 x8 i4 I/ H - ((= ecolor nil)
& f# z& F0 _. V* p2 g - (set_tile "t_color" "Varies")5 M+ l. i, o$ D. m( _8 P" I
- (col_tile "show_image" 0 nil)
! G) l) `- [ A0 l* l# ^ - )
4 \: z8 ~) `, O5 S5 b - ((= ecolor 0)
3 l* V4 @' d, y {7 N" h( ~8 O - (set_tile "t_color" "BYBLOCK")9 o! o. [4 p) B* D% ~
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white# [" w9 P, P3 r: v2 K
- )
; f2 f( _# [0 ?, Y8 |+ B - ((= ecolor 1)
; ?* K/ C6 J2 {& H - (set_tile "t_color" "1 red")- |6 a* \5 V; h2 `4 j' `
- (col_tile "show_image" 1 nil)
0 p; b0 [# M' G8 W9 u& Z5 v - )
. k7 C: V6 p& }; W w7 R - ((= ecolor 2)
G) b' g r# p - (set_tile "t_color" "2 yellow")
: D# p, c2 w/ @ ~ - (col_tile "show_image" 2 nil)/ l, A/ S+ G, B8 E7 b! m2 T0 J
- )
" c; d$ r, v3 S# h6 Q - ((= ecolor 3)
; [# i" q$ t' u- q- i - (set_tile "t_color" "3 green")
# R$ O0 P% g+ f7 ~ - (col_tile "show_image" 3 nil)
3 E" G0 L. k7 V2 l e$ q - )
- I% ]( F! G/ d8 w5 I0 b, g; _* d ~ - ((= ecolor 4)2 C/ N& ~0 B2 k4 o9 U
- (set_tile "t_color" "4 cyan")
6 {, ?1 N+ S% z& m) Y& {) C - (col_tile "show_image" 4 nil). b. ~; |" _5 L- t/ v- y
- )
- j1 r" R( l+ X: M: W J - ((= ecolor 5)
6 `/ p# ?' C. m/ D! P - (set_tile "t_color" "5 blue")
/ V, G+ v7 \1 }+ j ], t9 \: W/ M$ r - (col_tile "show_image" 5 nil)
& n/ l" ?. y4 x( b Q; c - )
7 [& e% z K, v: u( N - ((= ecolor 6)% O7 X7 }- G' J
- (set_tile "t_color" "6 magenta")
2 z: |$ n4 l1 e5 n - (col_tile "show_image" 6 nil)
0 G$ [9 z8 k! p - )0 {# c& F; m m9 B; |4 ~9 ~
- ((= ecolor 7)
4 w* I( t6 m$ e( |" D - (set_tile "t_color" "7 white")* c3 E3 [3 ?. V" _0 ]
- (col_tile "show_image" 7 nil)8 |+ x# G8 a# C
- )
- w' K3 Q. v& q5 [ - ;; If the color is "BYLAYER", then set the tile to
( R0 _5 k0 A( V: ?' U) f - ;; show it's set By layer, but also indicate the1 X9 u) b ?' A4 i& d
- ;; color of the layer - i.e. By layer (red)3 c0 {! f+ r0 j" B
- ((= ecolor 256)) l/ N" b1 [6 F2 p+ H
- (set_tile "t_color" (bylayer_col))
1 s. z1 I! h/ ?6 h v0 d8 |. B - (col_tile "show_image" cn nil)" ^- ~7 R# x5 f" o2 p( j, H; y
- )
6 p4 C: [: `0 ]! Q9 P/ K9 n - (T# v* ]2 c4 K! r- v6 M$ Q0 d. o8 ~
- (set_tile "t_color" (itoa ecolor))
; d/ s5 c3 A+ _& f: D+ X. r - (col_tile "show_image" ecolor nil)" I7 T# N" I* U9 U
- ); G5 o- }+ w6 b) m1 X4 c, {
- )
4 v9 I4 J$ ]2 \: t9 Y7 t$ B - ): r8 \8 k! z9 m' J! G+ h3 |7 S1 U7 P
- ;;
" H$ ?# j& P7 r* [; z% P - ;; Function to put up the standard color dialogue.
0 N* u* F; b' ^4 t2 P - ;;
5 u- F9 K+ e# P! S, \ - (defun getcolor(/ col_def lay_clr temp_color)3 |" d3 _) f, r% v( n( y
- ;; col_def is the default color used when rq_color is called. If ecolor7 g/ z) M4 e2 s$ e9 r4 M3 G
- ;; is nil (varies) then set it to 1, else use the value of ecolor.+ ?; o( d: ?. x( \$ a% f% k
- (if ecolor# ^" @* w4 L& \# x
- (setq col_def ecolor)
. x. A, z$ Q) Q) g" \ - (setq col_def 1)
l9 w. A* U" c' g - )
I/ u6 n; {* V7 K2 B1 ?- U; J
4 @' [0 G! x9 t3 r- ;; If we're working with a single layer, get its color6 p# s2 `5 r. Q, y% W# s- ?
- ;; for use in the color swatch if the user selects color BYLAYER.+ V. k8 X3 |- U4 K7 H
- (if (/= elayer ;|MSG0|;"Varies")8 u9 m. y# B5 s( f
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
% K3 V' j8 P3 L- p9 `/ Q - (setq lay_clr 0)! f; [4 l |1 C+ q; [' O5 B
- )4 y# Y- m6 @5 M3 j1 S( `- K
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
" Z$ Z! I% ?) y2 } - (progn* I3 ]& @9 W. R2 n
- (setq ecolor temp_color): ^+ H" h$ f8 }' M0 ^3 R
- (set_col_tile)
9 k% B7 s+ t: k0 I# I - ecolor0 f! x( }3 F) W: c3 ?0 T2 O8 Y: ~3 {, ?
- )
# j- e" p8 i( }: Y, G1 t: } - ecolor. x5 z' V; b4 q: v
- )
~6 `: ], O" Z* p+ O0 v - )
8 Q5 K% c- \# y: y - ;;( p+ h! p# b" r# c
- ;; This function pops a dialogue box consisting of a list box, image tile,
; R6 c: L7 T7 f2 \6 O" f" P - ;; and edit box to allow the user to select or type a linetype. It returns$ ~, u% q+ `5 i3 {; \9 |
- ;; the linetype selected.
* Y0 T- |, \: x& S8 d% _ - ;;
( R( ]- v% ~& K0 v8 R: m# ~ - (defun getltype (/ old-idx ltname)
M4 U8 s, B6 ]3 y. w/ F - ;; Initialize a dialogue from dialogue file
, U+ X1 C% H$ G5 b% b! L - (if (not (new_dialog "setltype" dcl_id)) (exit))8 n! Y8 b% A1 ]$ }
- (start_list "list_lt")
5 Y% p: a1 B" J4 Q) X) e - (mapcar 'add_list ltnmlst) ; initialize list box0 T: l" y. z7 l2 V8 y) ^
- (end_list)7 V2 Q9 t4 t8 s5 q5 n$ N; Y2 `
- (setq old-idx lt-idx)
7 k7 i& G$ B5 E$ i3 M - ;; Show initial ltype in image tile, list box, and edit box
i, q7 P" @) x" `8 h - (if (/= lt-idx nil)
7 N9 ?0 s N, y- R# s - (ltlist_act (itoa lt-idx)) r y7 x/ c4 g) T" J
- (progn
$ h3 b' }) U8 o1 B3 P5 |, | - (set_tile "edit_lt" ""): j5 ?5 U/ k9 g
- (col_tile "show_image" 0 nil)! V* U7 a$ G" Q9 `, a# ~/ c
- );progn else
1 W3 x0 L/ Q" v, v7 A7 h - );if' F) H, ]! |, v1 c
- (action_tile "list_lt" "(ltlist_act $value)"). S+ k' W+ u) I7 e( r/ `0 j, d
- (action_tile "edit_lt" "(ltedit_act)")
8 m% o/ W9 {) v/ n+ w' J - (action_tile "accept" "(test-ok)")4 k1 g7 u5 Z4 F/ r0 D/ K
- (action_tile "cancel" "(reset-lt)")- T! m3 `6 Z1 i2 A
- (if (= (start_dialog) 1) ; User pressed OK' O2 _/ X5 s4 m; o- \5 ~( c: d
- (cond+ |" j1 y2 Y) k( _4 @
- ((or (= lt-idx nil)3 x. {$ S0 g2 r) ^8 c
- (= lt-idx (1- (length ltnmlst)))
5 m# n/ H( m4 |# J* Y( m B$ Q - );or- D! \0 \/ Z: [
- (set_tile "t_ltype" "Varies")
5 J8 D K( D: v6 H) Q. U. K& Z - ;|MSG0|;"Varies"
$ s8 C, Q' {5 g' y3 j - )
j: x* I' @/ @) z3 J - ((= lt-idx 0)1 M/ v& c2 ]' q) B, {
- (set_tile "t_ltype" (bylayer_lt))% V0 k4 H6 ? K* c2 F6 [
- ;|MSG0|;"BYLAYER"
8 R; w( j) ?" D6 F2 I - )% d) j8 y3 e& \# R) ]
- ((= lt-idx 1)$ _( U: m# f5 h
- (set_tile "t_ltype" "BYBLOCK")
; f4 l4 l- W/ |$ y% Z - ;|MSG0|;"BYBLOCK"
6 G7 n) x, s3 S4 @5 l5 v - )- y t7 \5 X! r# o! S
- (T
& p! [+ W+ |9 J, @- H- m+ S/ b - (set_tile "t_ltype" ltname)+ ]) O& C8 P. w* a* o* ^
- ltname8 V5 M! h% n& U
- ): r. @' y- v, q
- );cond then3 O) {& j7 R5 k; N0 w; P
- eltype T' Z+ v3 z1 N2 ~6 X
- );if
9 n, g5 K/ c" F) J8 W- p - );defun7 C: C t, k, \5 `1 @& J% P
- ;;4 z ~0 A* b8 D" V( ^4 ~8 N H, v
- ;; Edit box entries end up here
6 z& Z7 M- f' G - ;;
6 _7 v6 i u, u; `5 J - (defun ltedit_act ( / flag)
5 g4 P1 p& p. @( e% m0 t1 k - ;; If linetype name,is valid, then clear error string,0 {$ [9 C% P* C# e
- ;; call ltlist_act function, and change focus to list box.
5 P* e! b: o! k( f - ;; Else print error message.
7 m- \( Z; J6 x# ?; S - ' A* v6 p2 C, X8 G0 q8 h1 l
- (setq ltvalue (xstrcase (get_tile "edit_lt")))5 J$ B8 {5 L- B. O. [" ?
- (if (or (= ltvalue ;|MSG0|;"BYLAYER"). J; L0 S7 H% G; \
- (= ltvalue "BY LAYER")
0 V3 u6 B: p p$ w - )- K3 F7 \9 W" }+ d
- (setq ltvalue "BYLAYER")
3 |, ~' J" d& Y4 z* |# u; Q - )8 Y* B2 e# m" w k, }+ R
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
. o6 o5 s/ a7 I9 g2 _ - (= ltvalue "BY BLOCK"): d# a7 _5 G! a; O6 S3 T& C
- )
& W- k4 D4 p) T4 `* |5 n% \9 \ - (setq ltvalue "BYBLOCK")
1 \% C8 v; }' d m7 ]4 P - )
( K$ O' L" ~. p5 H W# @4 T) [6 _ - (if (setq lt-idx (getindex ltvalue ltnmlst))
2 @# T4 P. g2 J) N+ B8 ^; i+ _ - (progn
1 \& P7 {0 u- Q, H: i3 K1 K7 P - (set_tile "error" "")
) ] m, |1 `. g8 P2 F: b9 V# f - (ltlist_act (itoa lt-idx))
" T4 ?" ^: [0 v) g* W5 Y% p, X1 N5 a - ;(mode_tile "list_lt" 2)
0 l2 [& y2 q# Y, L - );progn then; z3 O H- B) G$ w# Y3 t0 B
- (progn
: y7 N, } X* y* @9 r3 H - (if (/= ltvalue "")
6 o. P7 _% {+ G( X - (progn
+ i; Y! I8 P: b) E9 T& A- E! N - (set_tile "error" "Invalid linetype.")
M: R2 m( f7 T* _ \; |$ M" b, Y - (setq flag T)
9 _4 N$ k7 u. K( S - );progn
- m. m/ H- d( j8 O( \# K - )
; ?* w! L+ p; @ - (setq lt-idx old-idx)) T& d* t- M/ P5 M \
- );progn else2 j9 U9 P6 V. a0 X* }; o" W
- );if, |1 ~ ]( e" D+ e) C8 G
- (if (and (not flag) ;added so a return will take you out of the dialog.+ ?5 A* a+ X% z4 I$ w9 U
- (= $reason 1)
7 ^, {6 J5 r8 F8 s - );and4 B2 K5 N* J E/ ^
- (done_dialog 1)
% k2 K2 x( c, K6 d- |$ p; Z - );if / x+ F K R; \3 C
- );defun ltedit_act
9 E0 `% M# ]& Z, [5 K - ;;
, |; A2 y9 k! @4 D6 w. \ - ;; List selections end up here, A7 K7 [7 [" R# D4 R1 g
- ;;
1 u/ d' `* }& o - (defun ltlist_act (index / dashdata)& A6 v4 g: H+ V2 e
- ;; Update the list box, edit box, and color tile! d3 ^0 O% O4 @, O6 K, H
- (set_tile "error" "")
`" P% o# y$ r9 _ A% q O - (setq lt-idx (atoi index))
Z$ x( D+ @4 F+ G7 n/ k# D - (setq ltname (nth lt-idx ltnmlst)) ]* j- n. S, u- W2 k4 b% c; p7 j% a9 {
- (setq dashdata (nth lt-idx mdashlist))
0 i' ]5 z' `0 M$ b; v* g - (col_tile "show_image" 0 dashdata)
# O8 L6 k. n5 ?3 n- n- s- H - (set_tile "list_lt" (itoa lt-idx))
/ F. A; h3 U. S2 k) E - (set_tile "edit_lt" ltname); w7 a) c/ L6 D0 _+ p( S
- )
# ]" f5 Y9 M) V/ A: B - ;;- n/ t6 c8 z: x; S- n0 `
- ;; Reset to original linetype when cancel it selected
- ?! p# ~: b+ D5 t - ;;4 k0 a5 Q) ?& ]: R- X
- (defun reset-lt ()
" ~" ?- D; t7 h, W0 T# c0 f - (setq lt-idx old-idx)
: e* ~! l, ] t( X( w Y - (done_dialog 0)* y4 p0 K) b& P- ^+ M
- )2 u6 F! A" V# g9 b P- q% H
- ;;5 w$ X7 Z% L) `8 p" R; h3 q
- ;; This function pops a dialogue box consisting of a list box and edit box to" @# }# P) c/ C! n
- ;; allow the user to select or type a layer name. It returns the layer name5 C( p% z7 G4 Q1 G5 H3 Z8 d
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the7 S6 h1 B _ Y
- ;; drawing.! \0 L2 f# J: O: e9 }( Y9 n8 U; l: d
- ;;
) f- ?% x* Y- B3 b" }/ [2 i9 v \" S+ a, F - (defun getlayer (/ old-idx layname on off frozth linetype colname)
: r4 u2 w0 J2 B8 x - ;; Create layer list the first time the layer
0 \' g- N1 A) _: w1 \ - ;; dialogue is called.% ]5 ^* ]1 q" G- n% a
- (if (not lay-idx)
3 }9 [/ {: a/ ?6 L/ X2 e - (progn* S+ z, j, j7 U# s
- (makelaylists) ; layer list - laynmlst1 n6 ]1 i* [ B5 r
- ;rk' F3 V3 G$ R$ J
- (setq lay-idx (getindex elayer laynmlst))
' ^$ i/ l" g' U+ L9 }/ s - );progn
( E( Y% _" L' m( B. Z) c7 L; f4 g - );if8 z4 F2 h2 {; [/ H$ D$ a" @
- * Y8 i) a3 g+ n7 W' f
- ;; Load a dialogue from dialogue file h% E* M: o- |. Z' n% j
- (if (not (new_dialog "setlayer" dcl_id)) (exit))1 z2 W" |9 R; ^+ u
- (start_list "list_lay")2 w: V- t& U* N0 C
- (mapcar 'add_list longlist) ; initialize list box
8 K; `1 ?/ E% d3 ^ - (end_list)
' B! P- f L1 @2 c' E - ;; Display current layer, show initial layer name in edit
# Z4 d) d6 C! w3 W - ;; box, and highlight list box.
" V& h3 h; N0 [; T& A9 U - (setq old-idx lay-idx)0 K. s7 L5 ]6 t2 r2 a# Y$ y7 i; x
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))( J6 x2 u+ K, o/ o( Y Z
- (set_tile "cur_layer" (getvar "clayer"))
, {6 T+ x: U: H/ a8 y - (action_tile "list_lay" "(laylist_act $value)")
5 T( {3 k" ^7 ~" B: K - (action_tile "edit_lay" "(layedit_act)")( i* J1 g5 j, t; B) k
- (action_tile "accept" "(test-ok)")
6 f5 G3 V. m7 l5 C) t - (action_tile "cancel" "(reset-lay)") B' h9 V$ J/ p- }7 [# t
- (if (= (start_dialog) 1) ; User pressed OK" A. I! ~# G. W% R
- (progn$ u% k$ N w2 o" B. e+ Y/ u3 ^
- (if (or (= lay-idx nil)
Z- o1 A1 `$ I+ n: F- }+ y - (= lay-idx (1- (length laynmlst)))
9 u3 l- w9 K, u' U - );or
- E& Z6 D0 T4 b* ]- n5 q - (progn
- b. S$ t7 d. \ - (setq lay-idx nil)
9 I* m: G$ R7 ]/ R5 g9 Y - (setq layname ;|MSG0|;"VARIES")" P" Q3 ?/ r0 X! G0 N! m
- (set_tile "t_layer" "Varies")' ?7 f2 y4 \ P& t; r) f
- (setq layname "")- |* ]' O( ]/ B. h
- );progn+ R# T8 O* q% O/ C8 @8 J/ }8 f
- (set_tile "t_layer" layname)
* I- R: _3 A# z3 g - );if9 M2 x9 d2 B& J5 a. }
- ; If layer or ltype equals bylayer reset their tiles5 g3 x$ ^1 _+ ]2 z6 @) h
- (if (= lt-idx 0)) ^0 y6 ?3 i- I
- (set_tile "t_ltype" (bylayer_lt))' J: d+ o5 ?. z: X- P5 C4 S5 M
- );if
3 X" l5 ?. S: L* C - (if (= ecolor 256)3 `" i- x/ q. p+ |# z# f0 A- P
- (progn
3 l& x/ X1 D8 h$ C8 I. ~' \ - (set_tile "t_color" (bylayer_col)); Q8 L$ \0 v' j/ `5 g
- (col_tile "show_image" cn nil)
# m4 J4 A i: p9 z - )
% ?, E, @/ C& K; J. V- i+ c - );if4 L$ T. ^ L8 N' Q. E% _2 z8 h
- layname
/ J3 w9 K' \2 ~ - );progn
9 H0 f/ B8 {5 v9 r3 r - elayer
+ L& `- ^/ |4 q - );if
( A y- |% [; p; ]5 H I3 C( U. x - )
8 D- P, A- E: w6 z8 r( e* g - ;;
$ J) M+ Z' f" U& t- h - ;; Edit box selections end up here
4 r* K, J% e& T - ;;
3 _% a( D4 V+ g' }# i - (defun layedit_act()5 U% M- {3 o& R" g
- ;; Convert layer entry to upper case. If layer name is
" {! J# b3 k6 {4 b5 N$ [5 V - ;; valid, clear error string, call (laylist_act) function,2 Y) G4 _: d" R( D4 w5 H
- ;; and change focus to list box. Else print error message.& r9 s( c' ?& Q* u$ V5 M) ]6 ^ W
- (setq layvalue (xstrcase (get_tile "edit_lay")))8 z& P4 M- w( W% @5 u6 k* {& u$ H
- (if (setq lay-idx (getindex layvalue laynmlst)). l* M- r$ D6 {6 |4 S+ w
- (progn
, p3 U" `8 r3 }- D3 v& J& L2 V - (set_tile "error" "")
2 O0 L' a7 Y: `, d/ u G j - (laylist_act (itoa lay-idx)), V" U: ]- ]' o- G5 q J8 C
- )
- n2 l t( S% D# n& S# L0 H - (progn" ?6 T- q, |" x5 i( F
- (set_tile "error" "Invalid layer name.")
Z5 ?' a' W" i0 v' a - (mode_tile "edit_lay" 2)+ c' c" k8 r/ f r+ f& j) y# Y5 @6 F
- (setq lay-idx old-idx)/ r8 W H. Z/ ^7 ?8 S/ s
- )
) B- T2 J2 o$ P" q - );if
) t) X/ K$ c y - );defun
) ]" ?* M' R3 Z6 p; Q - ;;& E7 s" H6 Z8 h
- ;; List entry selections end up here4 ]. x$ g. Z: j5 D, n& ~
- ;;! M$ ?9 c$ o! S
- (defun laylist_act (index / layinfo color dashdata)
; L! B) n9 z, E/ v6 w; M+ G7 J - ;; Update the list box, edit box, and color tile
P* `0 y% N% j6 c6 h2 u0 A. g - (set_tile "error" "")
2 X( E |+ {/ g9 d6 ^) p O! q - (setq lay-idx (atoi index))
H3 c, }4 u2 F8 e: y8 l. r. _ - (if (not (equal lay-idx (1- (length laynmlst)))): H" \9 C5 ]* @/ J' w
- (progn 2 t# `" m; o4 g
- (setq layname (nth lay-idx laynmlst))3 A9 }2 `6 @4 y2 m* e) p
- (setq layinfo (tblsearch "layer" layname))
# I6 U% s, N0 J# } - (setq color (cdr (assoc 62 layinfo)))5 P# L0 G, Q0 u! J) k7 P9 |
- (setq color (abs color))8 D5 M6 E2 i3 j7 g# O0 A$ m
- (setq colname (colorname color))
0 {0 r7 C" J2 s! K8 s - (set_tile "list_lay" (itoa lay-idx))9 h9 w' u5 V: q# p
- (set_tile "edit_lay" layname) d; Y# H7 S/ _. S6 w
- ;(mode_tile "list_lay" 2)
# b% m( R+ X; m) m, G; J# S3 h - );progn then
( c' ^" z) O$ _. f - (set_tile "edit_lay" "") ! G$ u5 w1 N1 g6 V; g
- );if 8 O9 Q- N9 E$ ~( Z# W
- );defun laylist_act. l- H8 ]: G! Q2 B# ]* t1 y
- ;;
; x r5 g. Q d9 q, u - ;; Reset to original layer when cancel is selected% |6 a" X ~. R- N! J z6 e$ r
- ;;
+ u6 @( H, F% v8 j8 h - (defun reset-lay ()$ e7 c) e6 j t$ p1 z% y$ m
- (setq lay-idx old-idx)3 H% g- q3 D4 b# n, W
- (done_dialog 0)
$ x: F0 J4 Z* e; ?# f6 _2 ~3 i - )$ t O9 ^: A% {5 f6 m1 a
4 P$ e+ J1 x. R3 F! m- ;; Checks validity of linetype scale from edit box. It checks to
5 N9 i c* f! ] - ;; see if the value equals "Varies".) c8 }) M4 F- P5 T% \( @
- 6 ~! g7 x3 B$ n4 F; k
- (defun getscale (value / rval)
- A5 Z! L, b" O+ k' D1 {/ O - (setq value (strcase value)
& m5 T# A& D. e2 {7 z - rval (distof value)! U# P: X! s- e4 y* B" C
- );setq8 f8 ?8 n. [" _& e
- (if (or (= value "")
# A: X) n; X! g. o - (> rval 0.0)
/ G4 a, V3 J- Z3 ^/ n - )# Q) r( O) x7 s! x
- (progn& M, l! Y# a$ X( q! F
- (set_tile "error" "")1 c- V Z$ r2 T; `1 e% j; C, @6 z
- (if (= value "")8 s+ d4 y( E2 X1 G/ S: Q
- (progn7 F& l$ g+ P; f7 j7 c$ `5 ^' O- ?" W# |8 g
- (set_tile "eb_ltscale" "")2 v1 r* G4 o" }7 P! _. Z8 \+ M
- (setq eltscale nil)
, E: U, h. d& O& j/ S, h - );progn then
% f8 g+ S) S7 T2 z1 o/ ]3 e c - (progn
& B$ w; s' I2 q7 C5 t) I - (setq eltscale (distof value))& H0 q) U, I4 X
- (set_tile "eb_ltscale" (ai_rtos eltscale)), U' C/ L- C4 v$ f/ a- X
- eltscale
$ m$ o6 Q1 k& W9 I - );progn else2 i& h3 ?6 V7 `$ s
- );if
" b6 T' C: T9 k g - );progn
. t& W2 K, `, x1 K - (progn* U3 @+ e& p" i" B
- (set_tile "error" "Invalid ltscale.")- F8 h/ R6 I3 ?* c8 C8 [, ^
- nil5 `+ C9 d( s! n+ a$ X
- );progn else
' o( f" S! j! r( ~ - );if
3 C5 Z% E$ U B$ c9 z* H2 e: E) K - );defun
( n. J& h. g$ c: t9 H) Q - ;;
0 D0 l% p8 c- @' Y - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a4 R3 Z v8 ^) i8 j9 R& k9 }
- ;; string can't be converted to a real, this routine checks if the first
: d( B I3 n: Q2 H6 J8 N1 E - ;; character is "0". It also checks to see if the value equals "Varies".
9 p' \% @7 C5 H+ Z- s2 m( x* a. K - ;;
, E+ [4 a3 `! |: h/ t& M - (defun getthickness (value)+ A, p( c4 b5 M8 {" D, y7 J% C
- (setq value (strcase value))) ^3 |4 V |3 ?* U/ U
- (if (or (= value "")
: v% Z+ l% x' b+ u, ~3 X$ a - (distof value)* o* ~' M O* o/ G! ?- P3 l
- );or% n k' a) U$ j V' a* e
- (progn
8 P$ b0 t- r3 v - (set_tile "error" "")+ y `# J, Q& ]7 ]) v% v& k
- (if (= value "")& Z9 [$ ]& Y; {* y: C8 H: j9 Z& ]
- (progn
) ?& v' u& h$ f- [# \ - (set_tile "eb_thickness" "")
/ P% C1 r0 x5 u9 a& j+ E, F! G - (setq ethickness nil)
5 R- F5 i6 t, ~; H/ L - );progn
* k! U: e( Q" \2 c) O! k3 o* O" X5 d - (progn
' i6 G$ E* N v/ G: @ - (setq ethickness (distof value))7 {- g* v8 j/ F2 _9 j' s. C
- (set_tile "eb_thickness" (ai_rtos ethickness))
7 _9 ^, w+ y! `; O8 O) N9 j2 n/ u5 L; F* A - ethickness4 p, g; w' |* I7 |+ f6 S# W
- );progn+ ?1 v+ y/ ~/ I7 Q. \) K( o
- );if0 p4 G) J, P, p/ r# c' e
- );progn1 S1 t/ _1 B- ?, o% b* g
- (progn
! u# i3 U1 @& y. k0 | m - (set_tile "error" "Invalid thickness.")) Y/ N1 {+ e7 N. f
- nil
. y* y1 ]( m) P/ g8 p0 M# Y6 G - );progn
3 A) d9 X4 X/ {2 ? - );if5 ^; ?8 v2 K/ J. f+ H
- );defun / f9 k" y! l9 h1 l9 k Z
- ;;9 m2 ^# l, z9 R; F, R- U
- ;; Checks validity of polyline elevation from edit box.9 l' b8 D- ~3 ?6 }) @- b' |
- ;;7 \) y/ w+ a( V" f
- (defun getelevation (value)
) A* L' F4 l* |# K( s- G5 \6 A - (setq value (strcase value))8 H$ v0 J8 e. b5 y* l& D
- (if (or (= value "")
+ ^/ W7 n4 g5 N0 Z - (distof value)& d* y6 l4 c4 `
- )
# Q/ x7 ]& i. V$ O) K+ l B9 k9 N - (progn
3 O; Q* J. e3 i9 s. o; K- x - (set_tile "error" "")
5 L: N# e* R+ _7 G8 S - (if (= value "")
( \- z+ T! j4 d p3 K - (progn+ ~% z2 q. G6 N( s/ d; u
- (set_tile "poly_elev" "")
* {) k( S$ _/ b H1 q9 O - (setq eelevation nil), r" z2 f) J" ~2 d3 h1 [
- );progn
' V) Q$ _! }" E# z( V - (progn
( U: W: A+ u- Z, r, q$ L - (setq eelevation (distof value)); z( J& E/ i1 M! I
- (set_tile "poly_elev" (ai_rtos eelevation))+ S: R9 w) M' a' G* |. [! _" @
- eelevation
4 d0 A" C: V8 H/ m" f6 G- B7 r/ l - );progn
( c. m" Q0 g8 \9 x$ O% L9 a - );if7 W- O' U) K) i% K
- );progn
- | u# ` i! X& m$ w* }8 X- R - (progn4 I; D8 P- ]# |3 F9 S
- (set_tile "error" "Invalid elevation.")7 I, S! K6 p6 z8 n! B" r6 c4 v5 L
- nil- [, ?% k# Q1 W+ P, k
- );progn
' T+ y; K$ G% r# d# y, U3 t - );if6 K+ v# J. ~/ y# u$ L/ W7 f
- );defun
- s! Y' l' s# W4 k9 v. z$ _ - ;;
8 V; g. \8 @3 N; `: p; s6 o - ;; Checks validity of polyline width from edit box.
6 \' L" v }, V) { - ;;
/ x1 Q. u+ I$ I/ { - (defun getwidth (value / rval)
( L" d4 J8 }" D9 g - (setq value (strcase value)& d+ ~2 I Z8 l
- rval (distof value)
9 I; }/ Q( S- x& V - )* |5 b I: t" F( s* c2 S5 D* Q) M
- (if (or (= value "")
" I8 ^" k* `2 A& v. I - (>= rval 0.0)8 |+ ?2 d A6 s! p, c' ^
- )
( G* }, ]+ ]+ \$ @ - (progn
1 K8 {- I2 h w) N; n# e - (set_tile "error" "")2 E. }: j0 Q% \' C+ Z$ F: X4 r
- (if (= value "")6 j M1 f8 H7 R/ f( |( L. A! n
- (progn$ t; s5 U% ~7 p$ O
- (set_tile "poly_wid" "")4 O# b/ S. [7 P7 N# {; R& T, {
- (setq ewidth nil)* V8 R+ X; F3 W! ?: Y
- );progn' b/ L- a& g: C& A5 |8 ^
- (progn
& o; p0 }) y4 k2 s5 @( G8 L& Y; U - (setq ewidth (distof value))
% h+ ?) s8 S7 h2 A - (set_tile "poly_wid" (ai_rtos ewidth))% w. j4 r9 O8 ]5 @
- ;width
' }$ G8 i8 k& x( F" w, ] - );progn: ?/ ^3 A+ M. q: E, J7 m0 u1 z
- );if
) v- W) g9 E$ E& }& i& F - );progn
7 |! W/ H1 W2 C) F, ]4 R8 V - (progn/ ~0 r* v- w& ?. t5 }8 m: `
- (set_tile "error" "Invalid width.")# [' g. z f" n" b' ]: K& X4 J
- ;(setq ewidth nil)0 m. b6 i# i* c1 |# F3 U
- nil ! M) f7 f; i( F/ l
- );progn' K: o' w6 N& M7 M9 X
- );if
0 |, C* j# C% l5 z - );defun: Z6 a$ |% x0 b( u5 |* @
- ;;5 p+ X4 U9 |. _
- ;; Checks validity of text height from edit box.
+ a- }1 s* |# @; q; P! B - ;;' W* i6 V( V# {
- (defun getheight (value / rval)2 V+ Q. l1 I- o9 S
- (setq value (strcase value)
! `; |; k& Z8 v. w1 p( w5 y: q - rval (distof value)
( @2 g1 y( _. i! b; E7 A; r8 Q* U$ ] - )
8 M) l. u9 a) s& n3 u6 Q9 [ - (if (or (= value "")
9 h8 A1 l/ _* _) t7 x5 B2 d! ^ - (> rval 0.0)
; ^7 d }! F5 U% k: C$ _4 b7 k, ~% n- `# i - )
0 F8 H9 g/ \7 W" I; E1 d - (progn' }/ k: I0 B/ P& V
- (set_tile "error" "")
9 y# L# N2 Z& i2 g3 B: N- i - (if (= value "")$ j. O( g( W( t2 v6 m$ N/ d& i/ c
- (progn) q& I- E( `( Y& l9 A
- (set_tile "text_hgt" "")
( `( ~" w. Q' F/ ?/ \9 ~6 a - (setq eheight nil)
3 D; @/ m5 w1 E9 p; O0 \ - );progn
# a* H3 x2 n& F* H7 `+ { - (progn
) w" g1 K/ s! m | - (setq eheight (distof value))8 d$ g( I; U- n( d( T4 ]4 m) l1 `
- (set_tile "text_hgt" (ai_rtos eheight))4 I/ y& R$ A- T9 Y# Z& T
- eheight
# }9 i, D( j \ - );progn( o+ S2 c9 V) _# J
- );if; t4 G$ y/ X7 s3 B
- );progn* E% Y7 p1 |0 X/ X3 O
- (progn
1 C3 h3 i" ]/ Y ~ A$ Z - (set_tile "error" "Invalid height.")
) c) [4 o, e( ~$ ]$ `! Y, I - nil
3 i- u; T1 Y$ e/ o" n) H - );progn- u; O7 V$ Q" U7 H' ]
- );if2 |3 h. m7 `0 T% n. k
- );defun
/ m+ @% p# ` V! P - # I" X7 d [( J. m$ c9 D
- (defun getstyle (value lst / rval)9 G, a1 i& e: p% t) I
- ;(setq value (strcase value))
8 `! N' R( U. j2 r# Y5 b - (set_tile "error" "")9 D# ~+ L& |; Z4 [
- (setq estyle (nth (atoi value) lst))
4 Y. v9 x% Z( _+ h! h) ~9 ~7 ` - (if (equal estyle "")
/ V1 b, ]/ d9 A4 H - (setq estyle nil)
* b5 l' i, y8 m' h' M# Z" M* v - );if
- Z8 [/ a8 S6 e$ ]3 B4 Q* d -
( l8 |9 `$ V, L: b' H( `+ H" l& I - );defun getstyle
) G! {: X, U8 U - . W. I9 E& \# K. `9 S
- ;;
" s2 \6 d1 n$ v. s7 F" S - ;; This function make a list called laynmlst which consists of all the layer
) X) {5 L6 I+ l& \ - ;; names in the drawing. It also creates a list called longlist which
/ @* j" H; f9 {, R" K3 I3 O. _# s: A - ;; consists of strings which contain the layer name, color, linetype, etc.5 `3 ~5 f7 G/ V5 x' y
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
3 }( \, e) K/ f! Q - ;; same.
/ k8 \; }# x0 d% b& }- E1 w7 b - ;;, s) |& P+ r- O
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname+ n/ `5 h* o* _
- xdlist vpldata sortlist name templist bit-70 L9 D1 ]8 {4 ], I/ g9 V
- layer_number
: o$ n& b! A# r+ y a - )
( v) s) `2 K/ P5 \1 v5 p - (if (= (setq tilemode (getvar "tilemode")) 0)
+ B7 V( a: e, B& K - (progn# ~$ k2 |' l$ D9 ^2 y% D8 I+ j* h) [6 d
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
9 n. j# R; s8 o! f* G - (cons 69 (getvar "CVPORT"))3 Z J% L! {6 @" h: i
- )
* t( o# i$ T8 T. W+ s; l0 t - )) m' H( ?) G' z/ |9 G
- )! ]' S) M# J8 f1 Q6 a. c2 b/ n
- (setq cvpname (ssname ss 0))& g6 u: Y) E$ ]. _1 @, h
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))2 x3 A1 t( C6 g/ R; C% t7 a( F
- (setq vpldata (cdadr xdlist))
- M9 G) {8 b) E# T) t - )
6 M1 @, `3 \. P4 y: K, \8 c - )0 F2 |9 w3 P9 i) v" P, B6 v2 Q i+ n
- (setq sortlist nil)
1 J# {/ m4 ]% F3 o5 J# I) P0 k2 K - (setq templist (tblnext "LAYER" T))' I4 t. M* p, @' k* ]
- (setq layer_number 1)
2 f5 u1 |' s% Z9 S* |8 S" a - (while templist9 X S* G0 o( r+ E6 U2 B
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
; y4 d' l) A3 I) d6 b - (progn , {7 `+ \) |7 W6 ]/ ?1 l# B
- (setq name (cdr (assoc 2 templist)))1 h/ Q. F7 }- ?3 G
- (setq sortlist (cons name sortlist))
& [7 B; r% n0 [7 y+ k; y) \ - ;; Not dead message... v* \1 [: X9 ^! @" d
- (setq layer_number (1+ layer_number))
( L& n$ C! b7 O1 O - );progn- \7 i/ z5 N5 L
- );if
/ e! ^" o& `4 I* r; n( @ - (setq templist (tblnext "LAYER"))
: i7 d6 M7 T. j3 w - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
5 @) F& `; B* b/ [2 E, G8 n1 E0 L - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))9 s: | s% i; a) {4 q" g6 _
- );if
! R/ K, a; B9 h! F - )* \5 I# F" x* j& @, B
- (set_tile "error" "")
5 f* p6 A) k: P( F/ r* ^* @( p - (if (>= (getvar "maxsort") (length sortlist))
# u5 B/ R* N A4 g1 F - (progn+ f2 U! I% |- h7 k) z- m N( g
- (if (> layer_number 50)
& l# n8 i1 R% ~/ w7 @9 q - (set_tile "error" "Sorting...")
! S/ r% s5 ]+ q/ y/ Y7 m( X, ~% L6 G - )7 S' A' i2 Y& g0 o9 D- U' o# _7 @0 \* N: y& C
- (setq sortlist (acad_strlsort sortlist))% `+ h8 ]- ]; ~
- )
9 w" |! F( Q! K - (setq sortlist (reverse sortlist))/ O2 @7 g1 Q9 v$ o1 w
- )
5 I4 M. A4 f$ V' U - (set_tile "error" "")4 j5 Y1 ^3 a$ K1 q( `. l
- (setq laynmlst sortlist)* e: R( q. i, l, Y
- ;rk / m0 Q9 a C) V j, i
- (setq laynmlst (append laynmlst (list "")))
. j/ c* X! `! X6 }; P6 q3 s - " l, O1 {: c4 N/ K) d: x
- (setq longlist nil)) `0 d" X- g7 C0 o! U
- (setq layname (car sortlist))
- r* L( N# [9 c: I4 K1 q - (setq layer_number 1)# Q5 T* R. c& h9 I4 L0 |
- (while layname
' c7 V" z7 t- V1 S( T - (if (= (/ layer_number 50.0)
' z! i0 _ U+ V- K$ E - (fix (/ layer_number 50.0))
6 R! W6 X$ S% G7 S: W/ o' Q/ R - )
; o3 ]- A" O* {9 i$ w, `: S - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))4 q. G, w8 h" W j" |4 q
- );if
* R/ N8 q/ p4 A, G# N" ]7 W0 T - (setq layer_number (1+ layer_number))
h: L9 J! A. r - (setq laylist (tblsearch "LAYER" layname))4 f4 O: A. H- a" W
- (setq color (cdr (assoc 62 laylist)))
$ G. o/ E F0 s! a) Q - (if (minusp color)5 X+ e7 D$ {0 b% X9 ?3 ]! m0 t
- (setq onoff ".")6 S. O/ Z( t3 e) o
- (setq onoff "On")
; A6 v5 W# w! _5 S - )# `2 c! h5 X i8 ^' Z
- (setq color (abs color))9 t! g' g. j# \4 ]
- (setq colname (colorname color))
7 [8 ?: a+ O8 {- w; G - (setq bit-70 (cdr (assoc 70 laylist)))+ v9 k2 e5 I2 \6 ]* N6 U7 I
- (if (= (logand bit-70 1) 1)! i0 d, f* [: `/ E u
- (setq frozth "F" fchk laylist)7 d1 O" @- d$ s
- (setq frozth "."); W& [1 J9 c t+ {. |4 X
- )7 l! C! j" |7 o2 b+ F. {9 s+ L
- (if (= (logand bit-70 2) 2)" L& ~( i& R ^5 |. k8 [- o
- (setq vpn "N")
2 `4 W1 L$ g4 Q9 z% I - (setq vpn ".")* ~) {+ g$ b- Y" ]5 j9 g( f) T
- )" U: V2 ~- E/ x3 i1 \' U% v
- (if (= (logand bit-70 4) 4)
" M# Z1 p' |3 h# Z) [8 m - (setq lock "L")/ m/ V' f9 _2 T. `8 c4 @
- (setq lock ".")
# k- i: Y; G. A - )
8 U6 }4 O. T5 F5 l" o; A - (setq linetype (cdr (assoc 6 laylist)))6 w1 I1 f6 u9 w C. }% C6 l: h
- (setq layname (substr layname 1 31))
7 {/ n2 |3 c. C - (if (= tilemode 0)
, k" C6 \, @6 A' K" q$ c, _ - (progn
3 U2 z; H6 y- t9 {/ p# @# N - (if (member (cons 1003 layname) vpldata)) d' j6 x8 z/ _1 n/ _. Y7 }6 @
- (setq vpf "C")
+ L' ~2 k/ D3 W: z/ m/ T - (setq vpf ".")
' y% r$ Y# `5 W - )
1 b" I! Q# Z+ }! o6 B+ O* ~# L - )
+ G* W- u* v a+ h/ Q e* N( D - (setq vpf ".")
- L% ^8 T' {7 K/ U; ~& T - )4 D% w; v( s( a8 |
- (setq ltabstr (strcat layname "\t"
$ r" E2 B) ?( X* s - onoff "\t"
# V; P7 f g/ X# [5 J - frozth "\t"7 G* j8 v6 A% Y% w( A
- lock "\t", |1 f) d b1 C: s5 T# c
- vpf "\t"
; [$ r N9 {3 \/ P9 I, q - vpn "\t"
- R, S. Z7 ~7 l5 r4 c3 J6 e - colname "\t"3 ~9 e) @2 H( h: ^# L
- linetype
* ]% q2 l5 Z |' ] - )4 ?( z5 G" ?9 Z
- )5 J" \0 J0 F2 X6 t5 U
- (setq longlist (append longlist (list ltabstr)))+ g4 ^5 N3 ]$ p+ [6 R, r& \
- (setq sortlist (cdr sortlist)); I6 U" V0 ]* V4 \
- (setq layname (car sortlist))1 w) N* u( {7 o/ e
- );while" P5 U Y& i3 f
- (setq longlist (append longlist (list "")))2 \/ H+ P2 M8 Z2 ?
- (set_tile "error" "")
1 i& G" b/ A$ z" D2 `( U - )$ k, \7 y9 m! m, _- \; Y0 h
- ;;
# [5 |6 O% w0 n2 }; j d - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of) O1 t2 x3 i4 f8 ~2 |. o7 C
- ;; linetype names read from the symbol table. Mdashlist is list consisting z. u) t9 t$ H) J. p. o7 ]1 ]9 ?
- ;; of lists which define the linetype pattern - numbers that indicate dots," J% L4 N) ^% ?7 K4 ?
- ;; dashes, and spaces taken from group code 49. The list corresponds to the o1 X9 |4 U* g8 Y! n
- ;; order of names in ltnmlst.
0 K" G. q# j7 p6 p4 G; q - ;;6 i+ i2 V# b# q9 G
- (defun makeltlists (/ ltlist ltname)
: w7 L- |$ y. y' S! S, i - (setq mdashlist nil)
) t3 x; v: b: Z4 f7 B& V" \ - (setq ltlist (tblnext "LTYPE" T))4 V* I. S* ]: a; d1 h
- (setq ltname (cdr (assoc 2 ltlist)))* a5 N0 C O# f0 R% |
- (setq ltnmlst (list ltname))
; G+ }/ b7 R: d1 S, F$ H) j P - (while (setq ltlist (tblnext "LTYPE"))
; u8 x, |9 e- X; N% G8 y - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))$ O% q8 Z7 `+ Z' f |
- (progn % h! C+ _- ?* E. z
- (setq ltname (cdr (assoc 2 ltlist)))8 b( m0 @" h) u5 B
- (setq ltnmlst (append ltnmlst (list ltname)))* S, C' f$ A" C H3 N" C
- );progn3 b4 d4 D3 Y# ?( @
- );if
3 A8 A0 w. f2 j; r7 w& r4 o - );while
7 _$ k2 M( e2 }7 u L - (setq ltnmlst (acad_strlsort ltnmlst)): B9 g7 V3 u4 W* n* v; `: e
- (setq ltnmlst (append ltnmlst (list "")));add by rk
2 H! }' T/ \) Y - (foreach ltname ltnmlst
6 V' i( F0 E* ?' L2 v" j& {4 i - (setq ltlist (tblsearch "LTYPE" ltname))+ ?, c5 `5 q- G9 _. X6 t
- (if (= ltname "CONTINUOUS")2 \: t8 @6 z( I5 G
- (setq mdashlist (append mdashlist (list "CONT")))
9 h$ n) s8 Z& q- {- i9 K/ Y - (setq mdashlist$ \) h4 @* E$ e- o
- (append mdashlist (list (add-mdash ltlist)))
$ m! V, z( h$ r - )
) `4 N- V8 J+ T4 s, \5 L2 I - )
$ K2 q$ L8 Z! f l! u2 v1 [ - )
8 K# c$ d& I# ~7 N" N- F - (setq ltnmlst (cons "BYBLOCK" ltnmlst)), d% H# \) ~- z
- (setq mdashlist (cons nil mdashlist))
" I: g# x: z5 D0 R6 B- \: S - (setq ltnmlst (cons "BYLAYER" ltnmlst))9 p a9 C' Q( }; N! J
- (setq mdashlist (cons nil mdashlist))0 X: P' h# M) v2 G( k7 o
- )
- k9 p# |3 ~3 l! _9 f9 P$ T) { - ;;
5 \' L4 r4 ^5 F - ;; Get all the group code 49 values for a linetype and put them in a list
9 T* I- {+ |, e' [5 {) f - ;; (pen-up, pen-down info)
/ @; T2 v) F S0 x - ;;
6 l" C; S$ k2 W: | - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
( R' d$ {0 H: i' | - (setq dashlist nil)8 M5 i' R$ |1 I q
- (while (setq assoclist (car ltlist1))
, m" O2 i* Q6 E. Z5 h4 G% z" L3 U - (if (= (car assoclist) 49)
0 M0 @( X# X4 e0 K6 j. M - (progn
0 c+ m5 k. z* |) G9 Q. [ - (setq dashsize (cdr assoclist))" l$ Z8 O A0 r @
- (setq dashlist (cons dashsize dashlist))
9 a5 [+ X8 G5 j/ `+ x' j' ?# F. z3 z - )
- F2 A/ U! k9 M - )# k" l) }8 C, N/ M6 |* [
- (setq ltlist1 (cdr ltlist1))
' {0 r4 |9 x) T! L! X9 m; n - )
7 x3 N( Y+ o, y; Z - (setq dashlist (reverse dashlist))5 N% s3 E, D0 C6 p: ?: d9 T! ?
- )7 F" o4 E8 P* o# ~( x
- ;;9 g" j0 g E9 e3 {5 V) [; y* k
- ;; Color a tile, draw linetype, and draw a border around it' p. Q# `/ \! y; u
- ;;
$ D7 Y3 n. C6 A# z! h, w/ p - (defun col_tile (tile color patlist / x y)* i9 ]; D5 Q! k1 G2 ^: |5 J
- (setq x (dimx_tile tile))
3 R* p3 K/ K r" f% O, Y9 J - (setq y (dimy_tile tile))
% L9 t+ ^1 u a4 _7 i9 |0 `8 r - (start_image tile). a7 i4 i2 I4 S9 H
- (fill_image 0 0 x y color)
' O2 y# I7 M$ V, S7 v - (if (= color 7)9 Z+ {; ]8 `/ }
- (progn6 p% Z) T& V+ T- i% \
- (if patlist (drawpattern x (/ y 2) patlist 0))" y& c; g8 G6 n" Q: M; K4 l
- (tile_rect 0 0 x y 0)7 J. X9 | ^$ V2 `7 V4 g
- )2 r s9 s, w, k3 w/ ]* ^9 N
- (progn
+ Z6 q( b; Z/ O2 s% f - (if patlist (drawpattern x (/ y 2) patlist 7))
* i; t8 ~8 c0 N- }3 O - (tile_rect 0 0 x y 7)
& A" y! h4 H# K# R - )
; O+ m" i* v b8 B2 L - )
8 S$ ?; I! q2 _2 A8 U - (end_image)1 W. w- y9 P5 m2 U* i+ f4 a
- )* k3 x- p; {8 B% T* q3 K9 {7 z
- ;;2 p5 U8 g: x- S( F3 ?$ g# U3 ]
- ;; Draw a border around a tile9 K* ~$ B& I. @. ^2 f
- ;;
7 R4 c* a, A5 U/ Q" Y - (defun tile_rect (x1 y1 x2 y2 color)
/ q( R) C( v( R9 ^ - (setq x2 (- x2 1))
+ M3 _. a; t. g' s* M( l - (setq y2 (- y2 1))* F3 Q( ]( t: b; Z( D+ T4 {5 b
- (vector_image x1 y1 x2 y1 color)
0 @1 [2 ]# c1 l1 H - (vector_image x2 y1 x2 y2 color)
8 [! d0 M; Z! w" d" H - (vector_image x2 y2 x1 y2 color)
$ f' e, h& N* w( C+ j5 l - (vector_image x1 y2 x1 y1 color)
0 a& p7 n1 b# I% c. B4 g3 n - )! @1 ?8 B& C4 N( }5 p6 u/ {
- ;;
O- {6 E3 n4 M/ @) ?: v& F% N9 T - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
3 e, `" z3 `8 u - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
7 \ u2 E# l2 ^ - ;; list of numbers that define the linetype, and color is the color of the
9 G- f/ ]' E4 k5 | - ;; tile.( i2 Y+ u1 E9 U& t8 H' {3 G
- ;;
8 U/ q4 D {8 j, h - (defun drawpattern (boxlength y2 pattern color / x1 x2
0 |9 y& |7 d$ p, b& F% S& K5 a - patlist dash)) a E' c8 B: l% n. ^
- (setq x1 0 x2 0)* y& I. e& V% W% I* p% E0 e
- (setq patlist pattern) g" n- {: C' Z8 D
- (setq fx 30)
4 L& ]+ Z0 [3 w) d3 v& T, \ - (if (= patlist "CONT"). {4 U1 c( W- d' Z8 z. t# t. @# D
- (progn
, W, R; V! d6 \% T- s# w - (setq dash boxlength)
6 N3 {# W% y5 f* K$ w+ D+ a3 } - (vi)
6 H8 A2 e& F/ O - (setq x1 boxlength)! Z9 U& k; S3 d7 \, ^" q* K D" n
- )8 W( a& Q6 x8 l* G9 E3 p& |: Y. r5 A
- (foreach dash patlist
, ~0 N: Z4 h) d7 m! L. r' K - (if (> (abs dash) 2.5)& y5 R8 n" [# x* L! \( [
- (setq fx 2)
9 V) _2 r, Z; s o7 Z! a - )7 H+ {7 b+ J8 U6 Y3 e
- )9 `0 G! s. }, M% U6 g
- )9 N" c; J# q5 Z6 r) p- X
- (while (< x1 boxlength)+ L2 v. V" V m& n
- (if (setq dash (car patlist))% F2 G7 k8 M) G1 c9 Q
- (progn
\9 c+ r% v+ }+ d& V - (setq dash (fix (* fx dash)))% A" T! _$ b, f& v, e7 p
- (cond
' W k1 \/ o* B; T z) ~+ Y, ]0 h - ((= dash 0)( ^1 e! t( j( P* H+ f
- (setq dash 1)9 c6 Z' R: g1 V9 S- S* d
- (vi)
1 ]8 I, N D( k2 j- d0 t. Z - )( v1 o5 _) [. O7 |: j# W! H5 Y9 c
- ((> dash 0)
% j' O" N$ x, x4 @( X+ S! ~ - (vi)
2 h4 s% v n! m6 y - )3 E7 F/ {1 S9 D( A+ L% Z
- (T, l; q x& I |" a4 O" p/ n# i2 ?( c
- (if (< (abs dash) 2) (setq dash 2))
$ J# v$ M, k; {0 h - (setq x2 (+ x2 (abs dash)))
6 [! o, u+ D7 d; H - )
0 r0 s$ E- l- [ - )
& a% A5 H( @# Q# ~: d4 R. ~) p - (setq patlist (cdr patlist)); J: e9 a4 m! g
- (setq x1 x2)
- t3 [4 q" j* o. Y - )( q% Y( L9 |+ U5 v, _% c- h; N
- (setq patlist pattern)
. g1 ?3 {4 G8 N - )% J8 H7 ^( A7 e2 X# d
- )
1 g& l, {/ d* f" m# N' ? - )# _3 Q1 w! l- r
- ;;/ F9 S+ m8 y* \+ h
- ;; Draw a dash or dot in image tile3 a* R9 J8 g! J% O
- ;;
/ }( y: c- s+ k, o - (defun vi ()* y( h b5 o, J' ~" _; ~( w0 m
- (setq x2 (+ x2 dash))
7 k, s9 t1 q! U9 ]! A - (vector_image x1 y2 x2 y2 color)) @- E+ r. @: r4 r8 f+ Q: i
- )! g, k' S. d1 q/ N! z" N
; V# G. S4 ` T& N- ;; This function takes a selection and returns a list of the color,7 P$ N5 ^7 `* J$ H: i
- ;; linetype, layer, linetype scale, and thickness properties that
. R9 H3 U, {# w* ` J/ w' A6 R - ;; are common to every entities in the selection set - (color
0 X4 M$ \% G' w! c. U - ;; linetype layer thickness). If all entities do not share the same
0 J2 C+ }) Z. E( _$ Q Y - ;; property value it returns "Varies" in place of the property4 n+ @9 V. Q7 b1 q0 E
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0). z: i/ V! s5 a& c W" ]$ z
- ;; The last item in the return list is an integer flag for the- K, V5 T5 c* m0 K& x3 W/ l4 |: I
- ;; homegenity of the selection-set object types.
/ Y: n, {6 `+ P, N6 d - ;; 1 = All polylines
$ R* W4 `; c6 Q8 s* S( x1 F - ;; 2 = All text or mtext or attdef, or a combination of the three& x) T$ v$ B; w4 P: x: y8 H
- ;; -1 = Any other mix of objects2 a# g" C' b; R$ @- a: p
- , T% G6 k' V' b$ u( R
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness( w- `( D3 v" x2 A, [& L& O
- width elevation height go ctr ! [* o5 S! @! j* Y! |3 ]: q' Z
- eflag
: a l9 v& Y0 Q/ T3 P2 ~9 \; M n& D - etype temp ! J7 u. p+ s, r- E; Q1 [
- txt_ss ;;;;rk 11:24 AM 1/30/97
{8 S4 o; O" k* s/ X - tmp ; U) y! P# L2 M! k% T, V
- poly_ss
& B% N8 y& m0 ^: ~ - style- T( V; x+ k& R7 V
- )! x5 f9 M, B1 S2 c: v
+ e0 c: k; R: I
( H+ \* B$ G( g- (setq sslen (sslength selset)
+ [# ^, ]$ B6 E( v g$ e8 p - elist (entget (ssname selset 0)) q8 g A( a1 m B0 M( H; F
- etype (strcase (cdr (assoc 0 elist))) t- |8 |! B/ |$ l5 ?. u# P& f" e
- color (cdr (assoc 62 elist))5 H& X/ [* D$ R( {. K- a
- ltype (cdr (assoc 6 elist))
( O4 r) p( |# j* F0 H$ z - layer (cdr (assoc 8 elist))
5 M8 ^! Q5 u5 D* @, X5 Q* z - thickness (cdr (assoc 39 elist))
0 x" k* o4 L: N* [1 V Z6 t - ltscale (cdr (assoc 48 elist))
! |5 g" E7 T& }& _ E; p4 D - );setq
$ A6 I: j/ ~! p {) [
; m8 H0 O( u3 \0 A9 T) @- (if (not color) (setq color 256))4 B6 P8 i! p6 c1 K5 q! U
- (if (not ltype) (setq ltype "BYLAYER"))
n3 J7 g5 s/ p9 @3 \# U/ W - (if (not thickness) (setq thickness 0)) o' Q, d( G j- } c! Y6 Z
- (if (not ltscale) (setq ltscale 1)). t- R: X; m9 ~+ Y: R
- 5 A2 d' }2 C: n- u
- (if (not width) (setq width ""))1 s6 _3 l2 v6 P8 ?& M+ Z" x4 r9 d
- (if (not elevation) (setq elevation ""))
4 y4 G: s' h# Y+ L - (if (not height) (setq height ""))
* U/ L: R+ X/ r7 i1 B( M2 Z+ l7 e: a
) H* W) b5 o4 H4 [9 h- (setq go T
6 \$ ^" U3 z$ I, X - chk-col T $ r' ^3 i: q/ ^" v9 d: }
- chk-lt T
! v- D2 c$ ^/ ~0 U - chk-lay T
/ Q+ u, G4 X1 F, ]* L6 l) X - chk-lts T
) F8 ?+ k5 J! w3 Z% l/ D - chk-th T
- P' j- C3 A* X2 b3 X+ L& `: } - ctr 0$ e S$ j+ V: C$ s' J( v2 \ i
- );setq
. F5 \' J8 R, G( a" \" W
d* x' ^9 `2 c6 j8 S/ M- ;; Page through the selection set. When a property0 T: a, y2 m" w. g0 z& c; G
- ;; does not match, stop checking for that property.
0 u0 m9 o& g0 C - ;; When the selection set is not homogenous, stop checking.
8 ^0 }: F; x$ s4 W3 g, l2 P. ~ - ;; If all properties vary and the set is not a type 16 ?$ I6 v& b! Z# o" Y' j& d
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
- {2 H, b3 f H6 X) Z8 p - $ \, N% C$ v3 T/ l8 u; i
- ;Lets set the eflag so we know if the selection set includes any 7 b- r7 B! Z' t/ T# Q( Q; T
- ;combination of polylines, lwpolylines, text, mtext or attdefs.
2 K1 d5 i8 [8 Q% R. T+ W3 _
9 h2 b9 A9 m. `' D( v- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97: X! m% L% C% ?; g1 D0 [# ^
- (setq eflag 0)+ G& G B* K- E5 @1 |0 `
- (if (setq poly_ss 7 A T0 X' O# V! `9 a
- (ssget "P" (list '(0 . "*POLYLINE")
& Q6 O* O) Z% @7 o$ u* \ - '(-4 . "<AND")
0 B) H' G5 K( M) f) ?) {7 } - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
/ g# H6 `( O" @4 k7 [$ W - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")! R/ Y$ }1 w f; d2 X
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
9 ^1 w2 P; A0 {3 n( L - '(-4 . "AND>")
9 }2 {9 _# S O) V, G - );list
3 X- I; ?0 I0 b) n - );ssget get 2d polylines (legacy and lw)5 Z" G/ _; a: i2 {) U
- );setq; c8 N4 k" @6 [/ T
- (progn
3 A. t+ K7 s' Z4 S - (setq eflag (+ eflag 1))
7 c5 f! r! t0 u. { -
' A# T" w# Y$ h3 w - (setq tmp (entget (ssname poly_ss 0)));setq
. f0 d$ `, y$ w5 g3 c% V0 u - 9 I( K& \6 h, y3 C- G+ _( ]
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
) _2 {4 {- Z9 b, L! b - (setq elevation (last (cdr (assoc 10 tmp))))
. g4 e$ c1 h# O; e7 m - (setq elevation (cdr (assoc 38 tmp)))
6 {8 B' H* p5 A7 ~: G. J - );if
% F! @( A1 O2 [. |, _; {" e( L - (if (not elevation)1 L3 @4 W9 A% V8 M& }
- (setq elevation 0.0);setq
' {8 t9 {/ j8 r* g# r' B% L$ U - );if
. Z% g5 R6 O+ a8 q9 `0 x - % d. X# j3 |6 [) E3 e
- (setq tmp (ssget "P" 3 K% Z9 ~. r. R) j
- (list
0 T5 W$ p: z8 a - '(-4 . "<OR")
# S6 _2 b) J/ j/ a - '(-4 . "<AND")
- Y! r5 Z& K5 I# A/ E$ w - '(0 . "LWPOLYLINE")+ [ r0 C* M/ ^( B( ^' Z x
- (cons 38 elevation): z" @ r" }# _9 O
- '(-4 . "AND>")
F$ ]3 J6 _& I7 f# a0 o8 U - '(-4 . "<AND")7 x* s, x' t$ a0 k7 X4 ?' t# I
- '(0 . "POLYLINE"), P6 \/ r0 ~7 e) I
- '(-4 . "*,*,=")
. N1 g1 J' [" R8 ?6 I$ o$ \ - (cons 10 (list 1.0 1.0 elevation))1 k0 M- y4 L! d+ \) L
- '(-4 . "AND>")
/ D" S! N/ E. r - '(-4 . "OR>")3 f2 a4 m( d5 P4 Y
- );list M) ?) l% g8 T: W, o. Z
- );ssget
' `- m+ U: J; N - );setq3 Q5 S6 a# F6 T6 E4 g5 M) X( `6 a
! ]0 S [/ t% ?) V- J: i- (if (and tmp
/ S1 M5 R0 f7 [" y - (equal (sslength tmp) (sslength poly_ss))7 l) H3 s9 A5 c' c- E
- );and% I# L) X3 k* _+ N
- (setq elevation (ai_rtos elevation));setq6 X4 j! X- M, d
- (setq elevation "") n q& C0 e1 d$ b: [1 ~- C
- );if, x! E) g) m; a7 C& q' i& ]. a3 x
-
9 D' a2 ]) I3 V& q9 A - (setq width (pl_width_getter poly_ss));setq
: ^0 e9 W0 z" W -
' U2 \0 J G& O! A+ X - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
- I! a* R% N7 G5 q( Y - );if# b4 @3 G% y3 f- J
- (command "_.select" selset "")
% K6 Q4 V, F5 T. o: P- T9 o - ' c$ y; ?" V" J
- (if (setq txt_ss 8 d0 O0 F( \4 b- l
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
* y! G3 _7 ?4 X2 k" g) d# X# r - (0 . "ATTDEF") (-4 . "OR>"))
+ C6 F$ ?& C6 I' `( P9 { - ) 5 [8 n7 s( b" a
- );setq* i( a8 D, E5 }# E- B
- (progn: V. ^2 C! p; I% ?2 o% b
- (setq eflag (+ eflag 2))
6 i2 M) c8 `6 y0 p - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))2 G- B: w" Y1 [9 R1 d1 B
- tmp (ssget "P" (list (cons 40 height)))
0 K0 w: e; [5 |/ u. J8 d+ O- @ - );setq
5 A* D1 Q, X R4 P* [ - (if (and tmp
2 H+ {, s" g7 V7 |' G& h5 L- s& } - (equal (sslength txt_ss) (sslength tmp)) ) B+ {+ a+ m' f$ H: w
- );and
3 f g4 Z I: Z* B1 r! g# C7 R - (setq height (ai_rtos height));setq ;@rk need to translate from float 2 q: @) G# _" ^/ q2 K3 c# i3 K
- ;to string and back again easily
5 |( C8 W- W* b - (setq height "");setq else the height varies + B9 L9 {* J3 P4 V A
- );if
Q7 r7 X4 f: B! L - (command "_.select" txt_ss "")
3 E1 ]0 B% W2 _2 g0 b - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
& E' r. g. f, s( X - tmp (ssget "P" (list (cons 7 style))) 1 x3 L" B; ?; S! z7 N
- );setq
) ~& ]$ c; u8 u% c - (if (not (and tmp0 n* G- f" B1 ~1 x V
- (equal (sslength txt_ss) (sslength tmp))
0 `2 H- e1 y2 D2 {0 l5 q0 Q7 U1 C7 w - );and# m& e& Q2 s, J, p2 U4 f M+ I
- );not: Y5 J5 }+ ~3 j& H* O0 a
- (setq style "");setq then the style varies - F% I( P7 s1 Z- t9 b' y2 J Y- |
- );if
Q" x5 ], j7 O4 E1 }& f+ R - );progn the text type objects are in the selection set
/ o- H9 C5 T) p p& T& P+ O - );if
: {) _ K, H- v8 {2 D7 j - (command "_.select" selset "")6 e8 O6 B8 B- Q: s3 P
-
! U$ J7 Q5 h8 ]8 F5 o - (while (and (> sslen ctr) , e3 v! v5 N# u& t5 H/ n6 j
- go
5 I( l8 v" R' ]9 c; i - );and* }7 Z6 s# ~3 U! c, R" H) b
- (setq elist (entget (setq en (ssname selset ctr))))
/ K2 Y) ?0 `1 k+ \. L - 3 F+ t9 O! A' s4 U
- (if chk-col (match-col))9 Y9 b/ m! g* z
- (if chk-lt (match-lt)), e8 q% l# q+ \# e$ r9 P
- (if chk-lay (match-lay))- C' {8 `2 a1 _1 i
- (if chk-lts (match-lts))( O. P I: C p4 x7 b8 [- L! J
- (if chk-th (match-th))
, f4 P/ W/ m* f6 w5 [6 s1 W6 b5 k
0 p! j$ r" }/ g) J! I$ B- ;(if chk-etype (match-etype))1 T& R* Q; S; S) D
- ; O' e) q% C' l2 p9 e/ s7 W
- (setq ctr (1+ ctr))) Y4 H7 c$ H: C& i; s7 Y
- (if (and (not chk-col)
# g+ z9 L# W6 Y% q6 N - (not chk-lt)
7 e. A5 N# o5 S9 @- C - (not chk-lay)& U) ]7 f+ `, @6 d2 b
- (not chk-lts)
" y7 I+ q' l; f - (not chk-th)* D! L! Q9 [ H" u. d; o; k
- ;(not chk-etype)) z3 a( T5 i" v( F2 r
- );and
, m% |" Z4 i" R - (setq go nil)
! i- w) L# I- g/ \' Y- y - );if
% V# A1 j" F: q2 [2 v0 v - );while- M' n) d: v& z8 ?( [; W; F
-
0 e4 Z' X3 F& {" k7 R* w' f( \ - (list color ltype layer thickness ltscale3 h, w9 P; f2 |
- width elevation height eflag
$ D7 r9 x0 J& b5 D* z+ r - style poly_ss txt_ss
$ z; n& ]: U* l2 }0 ^) I0 M3 @. w - )
3 Y4 R: g3 G9 r/ g# z - );defun getprops0 b5 V, }( h9 K2 u" \3 L
/ N) S, q3 |: M0 D, T: P4 H- D- ; This is a speedy little routine to tell whether the polylines in
( y6 j1 B l/ c ^ - ;the selection set argument are of varying width or a constant value.
3 J7 r# m" g9 q - ;Looping through the vertex's has to be done for old polylines when 6 U a4 G$ Q0 x, m0 g
- ;the polyline header has width values of 0.0. Basically, in this case,
5 X3 L* A$ q9 d/ c* n7 N - ;information in the polyline entity header is abmiguous. Width values 0 k' U$ ]. z& X# Z! z$ I7 \
- ;of 0.0 in the header entity could mean the polyline has a constant
! k/ P* I& x e3 a" ~6 x$ y - ;width of 0.0 or it could mean that the polyline has vertex's of varying
- s* C# H6 m7 f& p+ q+ n+ Q - ;width.; J: K+ d# o( z' ~( S
- ;
, A7 K( ^# d+ h1 l - ; It's all in wrist. Err a.., I mean it's all in the 'if'' T3 N; `: ~* d5 F- Q$ q8 Q$ X1 V
- ;;7 Y6 u* k4 q* l0 U
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
* g" H0 y' Q: {4 E; [4 x - ' U5 h' G# ]: e" h
- (if ss ' N) I* {4 X' [5 U
- (command "_.select" ss "")$ B- X2 T8 l, j0 I: {
- );if
! N8 f1 Y& o) h5 X - (setq width ""
/ n/ k9 O+ q" E# N9 p - flag nil4 Z/ S7 N6 Y- ]% z) E1 k
- flag2 nil0 J7 G" h& z+ b) ?; \" y
- );setq
, Z* f6 h* o/ N' l D2 ]) Z - (if (not
" H* z; g- y3 X, [& q8 B4 G - (and ss7 ~' R- I2 [4 Y0 a7 y0 ~
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
- ~$ r! b0 U; o7 B7 z - (setq na (ssname ss2 0)* e7 t O; ^% i* d; w* h
- width (cdr (assoc 43 (entget na)))
% p: n# k" X% Q" y4 @6 d5 V - );setq
5 O8 Y, f1 X5 [* W: J q - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")! m/ o: C C4 X( F
- (cons 43 width)" L( t* U3 k, r, t1 {/ o
- );list% b: F3 H9 w$ A, E
- );ssget
4 d% g1 z. V+ Z2 E' A3 T' L - );setq5 ^5 `. U3 A% q, K4 @6 b
- (setq flag T) & a$ c y) V, s! b& D$ d
- (equal (sslength ss2) (sslength ss3))
+ |" ?) F U6 W - );and
" y" [8 U$ W/ B0 v - );not6 Q$ Q+ d' U* D7 _# N
- (progn
' C# \/ U3 E/ R7 t - (if flag( V1 w- u( X- i" i# i2 W
- (setq width nil) . n( ^" Y% h# }# @* [) D3 ~
- );if8 W; Z, E& {. W- u. W5 t$ \
- );progn6 X2 a1 g; D/ @9 M/ R! Z0 u- T& t5 h$ ]# l
- );if / a% V* @* t1 ~1 d! {6 V
- 2 t+ H- q6 x8 l( _; S
- (if (not
( Y5 f, ~& u4 j, e1 ~ - (and 4 h @9 R5 K( J7 |, y- l
- ss
5 b; A- i& F7 C% m - (progn (command "_.select" ss "")
3 Q/ c* o4 r3 q* p4 ]* _* z3 y, U - (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
. K6 |+ a# S$ p4 h+ l - ) ! _+ H3 w% I, K* k7 H
- (setq na (ssname ss2 0)2 x. X2 s& ?. _1 ]
- e1 (entget na)
2 L* z' F- j% w& I m - width_a (cdr (assoc 40 e1))1 \0 D8 o6 c% Z' B- f) o; i! l. B" W% T
- width_b (cdr (assoc 41 e1))1 p: H& Y7 a7 Y* g
- );setq7 z7 Z% ~0 |* B! Y7 V; C
- (equal width_a width_b)- Q* Q# @/ {3 S' N: \
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE") A* h: l: Z$ k$ b; ^
- (cons 40 width_a)
& r+ G+ L7 O% e$ n% [2 g - (cons 41 width_b); R& c7 x8 L4 k
- );list
4 s% u% x1 s- F6 P) z0 W% h: F% P - );ssget5 J; M( G. Y/ v
- );setq
/ T+ _3 `9 q" P. Y& Y* v7 Z+ h% A - (setq flag2 T)" V8 t* ^ q! L8 S$ b* @
- (equal (sslength ss2) (sslength ss3))
8 @9 s- n7 ~9 h9 G2 j0 y( H - );and # ?1 g- n! W; ?" I
- );not 1 k2 I, _, n' [0 ?) r* ?- D
- (progn
/ ^& c$ m- y$ \" w( I - (if flag2. ^5 a- q# A" E3 V
- (setq width nil);setq
8 j: b5 I' b/ y% u. D2 f - );if6 y6 V. E- r/ e, Z' @ D
- );progn then7 S0 a* m6 X: f
- (progn# R& n+ v! d( i. A! A- Z" j
- (if (or (equal width "")
7 A0 ?0 d' w. P0 v3 F% { - (not flag)5 \- p( e2 m0 j3 C0 c
- );or' u" S) [; ]. l8 {% _. [
- (setq width width_a)1 L5 y, E/ } f3 \- ?
- (progn
* E B- `( M. i3 w- S. Y- T - (if (not (equal width width_a))
# Z9 J" X5 J6 R- J - (setq width "")
0 K$ E1 W' X5 S, O, v0 R - );if T# B1 w `$ M( Q
- );progn
/ E. o @6 p% r1 W ^ - );if. N9 o0 x0 j1 S, J
- );progn( [' G/ U0 `9 h1 ]$ Q% c
- );if* H K/ H5 c/ z- N; e! p) Y
- + ^: R' O( k" I m/ U" i
- & i7 ~3 ^* P# u# g; h- x8 Z0 U' ?
- ;now for the special handling for old polylines5 B: R1 Y+ {4 X: ?2 c% _. C+ i7 m
- (if (and width n* G5 [; ^1 W+ A! Y
- (equal width 0.0)) n( L3 H" I$ _ B: s" ~+ d
- flag2
+ \$ f6 ^- H% ^1 u- `1 @. ] - );and ! g' k( H; }9 j
- (progn% y( p. Z$ ? T* Z8 z
- : t5 ^ K/ u- d% z1 r' k
- (setq n 0);setq
8 t2 J3 t! {8 c5 Y9 J3 b - (while (and (equal width 0.0)
* U4 e0 `, Z; c8 q0 T - (< n (sslength ss3))
- H4 C6 i' W/ S/ A% h - );and& T& F8 o, U& U1 X y* _
- (setq flag nil0 Y0 P0 j5 `! M1 r; B$ q. c t/ M
- na (ssname ss3 n)) k) T' ?3 o2 J) J8 K
- na (entnext na)$ |: S* Y( B8 j( U) A/ a8 @
- e1 (entget na)
0 I) P$ J) T; j' Y1 p - );setq
* c, Z0 a e. h - (while (not flag)
, Q0 M% |# ?/ B, @( U - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
6 I# |" _* }/ J4 P - (not (equal (cdr (assoc 40 e1)) 0.0))& C8 v$ q- c# r1 i2 }7 t
- (not (equal (cdr (assoc 41 e1)) 0.0))* h9 e" v2 Y" D9 @8 t3 Q# a5 Q: B: E
- );or: [! K. ^' i: P% B; j) s* ~# s$ ?
- (progn
$ I3 r8 O0 [+ J8 j. D) d/ ^: ` - (setq flag T);
# T+ A2 D5 R. c6 O. L' P - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))1 _7 N6 H+ i8 Q! x: v2 s
- (setq width nil) & h- z' u- W& L0 G7 w
- );if
5 V/ L2 F' a1 a* c! P0 X$ U - );progn then jump out of the loop- \- m) H' _ e* H' R6 M8 K0 m. A
- (setq na (entnext na) B' P1 G$ g. k# e0 h- t+ ?0 @
- e1 (entget na)
: g" b/ i, l& b' L4 _8 e - );setq 8 k3 e/ \0 z$ R8 P
- );if ! ~1 U; _' F# q, M+ z3 d- b
- );while' b ?$ g/ H( ~4 g3 @
- (setq n (+ n 1));setq
* R/ l# X8 S) k$ O1 {* V; A - );while 0 u s9 k1 q; q& f! K
-
! B+ j( k+ U3 `$ [) ?( K - );progn then it's a legacy
f; B1 J; D# \: k8 |, N# R - );if ;legacy polylines that may have varying widths
3 \- d( T$ B7 I( P
8 c, {5 z. @8 v: P. t% y- (if (not width), e4 C. g5 w; @: a0 l" h
- (setq width "");setq
% W( ?/ q4 e5 j M - );if3 L \7 }) Q9 Y2 M2 x
- (if (not (equal 'STR (type width)))) `: x1 B5 ^+ ] i% s1 G
- (setq width (ai_rtos width));setq
5 J! I- \. X5 M4 \0 G& o1 C+ l - );if
' y' z2 P( [. N - + K: O, t3 x' j# e: A
- width ( {: E; J% b4 C5 w
- );defun pl_width_getter
7 _# B; }. \; u: X, L - # ]) c' }; M. K9 ^
- / G! C! G8 L2 H
- (defun match-col (/ ncolor)
0 U7 P* L& B7 i% p1 D7 K/ }6 Q L2 O - (setq ncolor (cdr (assoc 62 elist)))
! t5 _: q. s( s9 M' \ - (if (not ncolor) (setq ncolor 256))3 u7 f0 o, V* j/ x( X
- (if (/= color ncolor)" T6 Y2 `$ p5 \& c& z
- (progn/ a1 Q0 F& l' `6 K7 \3 X
- (setq chk-col nil)
I: v2 e6 K# B* e9 b - (setq color nil); y/ z9 x2 j# x: P, D& R9 }
- )
0 f4 Y% Z9 ~8 F2 m2 G' M8 [ - )
, K* _) {- W, E' d# L - ): B9 W7 K9 h% k1 Z% ~
- 9 V7 W: n. J$ K$ a/ v* ^& C' i
- (defun match-lt (/ nltype)4 z9 S1 S0 Y( b. V
- (setq nltype (cdr (assoc 6 elist)))0 N# n1 _+ a/ x# _3 p# Z( w3 U* c
- (if (not nltype) (setq nltype "BYLAYER"))! ?2 O2 v+ ?. x' i. h2 N' \% S
- (if (/= ltype nltype)
$ f, [% _+ c. D: U8 {: D - (progn
2 W4 D- o5 g3 ^# P* B8 J5 r, L - (setq chk-lt nil)8 b& c, ?. A, J& ?4 J# x
- (setq ltype ;|MSG0|;"Varies")
1 b) k: Q) R" _ Y - )2 _2 u/ P, ` ?, j* b, [$ U7 j. F" X1 B
- ): R9 G( o& {: l1 @; `. @: ^
- )* W2 w$ e( h+ H. W. x
- - i' t h8 D# ?% D" `
- (defun match-lay (/ nlayer)" }. `# w, N8 h3 G2 G+ ]
- (setq nlayer (cdr (assoc 8 elist)))
0 H1 s! A9 A( l( [- f1 L - (if (/= layer nlayer)! |3 x" Z- v6 H1 x3 ~ j
- (progn
0 \4 \2 T" C' P! L$ R- F - (setq chk-lay nil)
7 v2 |5 \+ e3 U1 p6 D) m: | - (setq layer ;|MSG0|;"Varies")
`" V5 \7 a- P+ m% L, ~+ V) [7 | - )+ L/ J x- h W3 ]
- )
% s* n2 d' H! j1 Q3 S& s+ U6 f! t - )
! D1 }5 b3 @6 z( u6 @* [ - ! k2 {, E6 x/ _8 L3 \& O
- (defun match-th (/ nthickness)
5 |" M* o# l/ K+ N- v, O! x8 P: u, H - (setq nthickness (cdr (assoc 39 elist)))4 ^3 C! I, d# N2 |7 S9 o# p/ l. P! ^! [
- (if (not nthickness) (setq nthickness 0))
/ q7 V9 I5 a) B- K. V- ~ - (if (/= thickness nthickness)
S+ s2 D+ R9 `1 g6 a - (progn
5 A- d) U0 Q+ {9 p: w+ B - (setq chk-th nil)
0 j# F( K) c0 G8 \/ ]! E V! v - (setq thickness ;|MSG0|;"Varies"): @% F* C$ |# a% p- T2 w0 i
- )' m; R& I# Z4 Q7 n* h9 O5 j
- )3 e: a' w. }( l/ y
- )
1 ]/ K6 |9 i4 ]) q* g
+ C2 u0 n1 S* Y- (defun match-lts (/ nltscale)$ F$ K9 _# ~' Z
- (setq nltscale (cdr (assoc 48 elist)))% h& r! F9 v2 @) Z8 u9 ]* ~
- (if (not nltscale) (setq nltscale 1)); Z7 n8 c9 U7 S. X+ q; R$ H
- (if (/= ltscale nltscale)
8 i9 e7 ~9 Y/ c. N0 l% h - (progn; @# x8 m3 Q4 Q. _; n
- (setq chk-lts nil)8 [1 q. c8 P+ _- J0 g& H
- (setq ltscale ;|MSG0|;"Varies")
; r, k9 x0 W' G& k - )
, I" Z3 J% R9 Z. [ - )6 Q8 J% l7 O5 T5 { r
- )- D5 Q# D: K" I
% t" l' g2 G" K) b- ;;. B0 M6 {- l, V: L
- ;; If an item is a member of the list, then return its index number, else
- u* t# l0 ~" n, s( Q% p& \ - ;; return nil.' K0 M& U1 w: c6 B1 [% g; Q/ B
- ;;
+ G& X! J- p* F# _5 { G - (defun getindex (item itemlist / m n)
) @+ a4 \, N4 F5 m' M* _3 h7 ]! x# a - (setq n (length itemlist))
) V" Z0 _; o% Y$ q# {5 M" |* i - (if (> (setq m (length (member item itemlist))) 0)2 I( V, e- C& E4 ]0 x! ]/ M
- (- n m): H8 T9 z& w6 C$ L% m
- nil3 I6 b3 m. g! I
- )
* d& ~3 N4 H, [' [3 t, Q* k - )
0 b& v0 z- t3 s5 G - ;;
3 }) n8 n8 ~* N2 m. } - ;; This function is called if the linetype is set "BYLAYER". It finds the
0 U& h; k: C) ?& e# S* K - ;; ltype of the layer so it can be displayed beside the linetype button.- k5 w. ^" \# c6 }
- ;;
3 A" d2 V8 I! f; f - (defun bylayer_lt (/ layname layinfo ltype). D7 k- J" n+ n' J _
- (if lay-idx( {0 d. a2 w$ Y
- (progn- V9 U( R/ U, P) N0 [* ^
- (setq layname (nth lay-idx laynmlst))$ [0 ^; [6 f: K* y) s% K4 o
- (setq layinfo (tblsearch "layer" layname))
2 y4 T2 E& B% Z2 y4 p. c - (setq ltype (cdr (assoc 6 layinfo)))
+ q/ H3 c a, y- z; q - (strcat "BYLAYER" " (" ltype ")")* x# K( `$ M; T8 S+ O# S$ `+ i
- )& f8 D& x+ L1 M$ {+ E4 p& ?( u
- "BYLAYER"
: l8 R, ]3 U- E3 @ - )
& D |2 T+ X: _2 c* ^+ ` - )
# j; [; @7 M' p& i. Q, i- k - ;;$ I: V3 K% R: k+ A
- ;; This function is called if the color is set "BYLAYER". It finds the
" \7 T4 H" v- Z! o' H# M3 x - ;; color of the layer so it can be displayed beside the color button.
* W. t- m; m4 n- m/ t/ @. g1 y6 i& o - ;;6 M" l3 n/ S5 @/ Y) S2 ^: Q
- (defun bylayer_col (/ layname layinfo color)
" r G3 d) W* i4 A- l - (if lay-idx
: [: @8 ]0 ~9 |6 q - (progn( M# w, A) ~, n6 T. F( t
- (setq layname (nth lay-idx laynmlst))
( k7 ~ t8 u2 r - (setq layinfo (tblsearch "layer" layname))
/ k0 l' W7 D, ^" W& C+ A: j - (setq color (abs (cdr (assoc 62 layinfo)))), i$ I% f) E- U0 j) W
- (setq cn color)
" Y" k( C8 P) s - (strcat "BYLAYER" " (" (colorname color) ")")1 e+ ?& N c* d7 Y
- )
3 e5 t% u: V8 R2 U - (progn
- e; J6 C( h: ~$ O' H - (setq layname elayer), ?4 O8 I3 T: c5 T
- (if (and (/= elayer "")
0 h7 t! i8 X1 J3 U - (/= elayer "Varies")
5 s' @4 R" t8 ~& P8 j - );and( m7 I2 D. Z8 k7 E+ N, k8 L
- (progn
0 ]9 s# C+ F0 p/ @! B. O, J( c - (setq layinfo (tblsearch "layer" elayer))
4 a( |2 J1 ~/ B2 Y' V4 s - (setq color (abs (cdr (assoc 62 layinfo))))3 t( I7 c7 [ K
- (setq cn color)
" {1 B) a: J# \ - (strcat "BYLAYER" " (" (colorname color) ")")
M0 D! ^; P" h- h" h: ^ - )
# N" P9 F1 q& s - (progn
1 R! E+ J# x, d! U9 R. @ - (setq cn 0)/ C, d( {& @( Z( q& \
- "BYLAYER"/ g( H4 ~& e. D% O
- )- U9 m: }' L8 q5 n) m, I
- );if1 F) k$ v. z: v' J- a
- );progn
' G- |) _% W$ E7 @ - );if
9 v& f' ^8 A" D2 r( h' r. R6 F6 s - )
& ]% s$ U% H ^) r3 a& M - ;;
7 D) s6 \- p; ^- o* H - ;; If there is no error message, then close the dialogue9 g4 g+ v! T$ T: F2 }) O
- ;;+ \7 Z2 B }( |" o0 P% W
- ;; If there is an error message, then set focus to the tile
6 T% V0 `3 R3 f - ;; that's associated with the error message.
1 q" v3 G/ R7 G# ^4 D5 p) D: ? - ;;
. l( w% \! q. e' i - (defun test-ok ( / errtile)5 m. x1 U% _6 z
- (setq errtile (get_tile "error"))
. o% ]9 i- Z' _ - (cond
' {. W' h0 g( L# Q; v6 S/ G - ( (= errtile "")
5 I& |, J- _' ]/ q8 l: u4 W8 r - (done_dialog 1))! b- ?/ J S6 ?9 b8 D, N. {
- ( (= errtile "Invalid thickness.")- S# S. `' p" }2 Z2 P9 m- V
- (mode_tile "eb_thickness" 2))0 {9 p. \1 |8 ^4 y& b% _5 k
- )+ g2 g L3 n2 C6 ?+ _4 U
- )7 r8 S( F" d% j( j% ^& M- d& }
- ;;) C* S; ^4 H( P
- ;; OK in main dialogue.
4 L' T; C4 j# J- B, A - ;;
% W0 \8 @! ^+ r' A- Y6 L" a - (defun test-main-ok ( / flag)/ ?) C" D/ Y7 m7 s; K3 B
- (setq flag T) * x+ D/ g1 M" |, U) v) B
- (if (not (or (distof (get_tile "eb_thickness"))/ A. N; h1 o% ]2 J3 n/ b- D
- (= "" (get_tile "eb_thickness"))
% h1 x4 `, o! S% N- T - );or% j7 Z* g$ [ m8 R& f4 _
- );not- a7 D3 t# u3 ~1 [. U
- (progn
% v& O6 s4 |* U5 ^ - (set_tile "error" "Invalid thickness.")8 h M2 G. [3 F# C" g4 X, q
- (mode_tile "eb_thickness" 2)2 w0 L2 q0 t& \
- (setq flag nil);setq
8 A5 L+ L; `& q ? - );progn
+ f. }) u: |$ | o - );if" [! T( d9 u. s2 V8 J( M
- (if (and flag8 `2 {# K. g2 c
- (not (or (< 0 (distof (get_tile "eb_ltscale")))- i' }" Z8 n3 m; d! Q
- (= "" (get_tile "eb_ltscale"))' v' Q4 \5 v+ v1 J' W9 F B3 P
- );or
# N1 E# c) P, W0 k - );not
# {4 t" u4 t8 {7 S - );and
0 z/ f$ v2 d) E5 n - (progn
5 I- j; l4 y3 b( y" a5 H - (set_tile "error" "Invalid ltscale.")
/ p& M' U! P0 [# G - (mode_tile "eb_ltscale" 2). D, B4 h# h( y! q p
- (setq flag nil);
" h7 {. B3 x3 F - );progn then; {2 i# e% ]+ H/ M0 N5 _
- );if- n5 [$ U" Z: a$ ?8 D4 F/ C
- (if (and flag: s4 ]: Z) _5 D; y& s6 F
- ; Don't test the tile's value unless it's enabled.9 g0 E! ^0 Q" K% f+ Q' k
- ; We're not set up for the display-only value1 {" x' |, d; n; n5 {( `2 M' s
- ; of "" here in the error handler.
" T4 [9 v0 u/ D4 h - (= 2 (logand 2 eflag))6 p- m' N9 O; }5 x- S$ w
- (not (or (< 0 (distof (get_tile "text_hgt")))8 Z; A/ {8 {/ T- N e
- (= "" (get_tile "text_hgt"))
& v6 i' S6 F/ q6 T, ]! m - );or
3 ^% B# L- \" u8 d! K; L - );not5 u5 v! ]" }" R; v5 [' W
- );and
6 e2 g' `- z( i# Q& Y8 y/ i - (progn0 m+ R3 F& g4 f3 \- U& }. e& b K
- (set_tile "error" "Invalid height.")
% K) g. s, r- q; T$ }* O+ T& v! }, e - (mode_tile "text_hgt" 2)
4 ^& K; p! B9 Y# ^2 b1 i% C9 C- U - (setq flag nil);
/ T4 N! p. |2 Q; ^. e - );progn then0 b) W" i1 n# d- [
- );if
$ K% ?! T: y% A1 B! b - (if (and flag9 O0 @- q1 Q" m1 Y* @
- (= 1 (logand 1 eflag))9 H2 P3 z. _" ~( ?" ~5 p8 z- Z0 @
- (not (or (<= 0 (distof (get_tile "poly_wid")))
5 a/ ^. U. i( D/ q& }: ^. U - (= "" (get_tile "poly_wid"))
; l$ \/ C$ T2 N* e - );or
7 ^+ H- R D2 g& Q% I9 u - );not
8 T, e+ Q2 l2 x6 T+ ~7 m* F - );and
- Q+ I& @# T9 N - (progn
5 b+ y; m3 y1 j - (set_tile "error" "Invalid width.")( x& X% R" |* y# H
- (mode_tile "poly_wid" 2)
/ }& E9 _, h' n8 m' i, } - (setq flag nil)7 e s2 j7 F6 Q s. ?* V0 N
- );progn then
$ C1 V7 \6 M# y, R/ T1 y - );if
, \% d- ^1 @5 f1 [5 g4 g - (if (and flag3 H# E- Y' T3 i: J5 A
- (= 1 (logand 1 eflag))
0 ]. k5 Y, a, B) j' m6 { - (not (or (distof (get_tile "poly_elev"))( \) p4 R% s/ C( e; U
- (= "" (get_tile "poly_elev"))
: U% W" g0 S3 y' L. ] k, p w; }, z3 V - );or, k+ J# m" E. F9 ^) @
- );not C. T7 R5 g% i
- );and
$ L% C$ W5 z7 r - (progn
+ d: C/ F* H" U4 n U# C- [ - (set_tile "error" "Invalid elevation.")
. c6 D" r& `4 l7 @6 | v. K - (mode_tile "poly_elev" 2)' j" w$ N3 e: h
- (setq flag nil)
$ e0 q! Q7 q& M. N: T - );progn then
9 N" Z; j" _( |: I - );if 3 ?5 k) `; B) b+ T
- (if flag
; w( ?% b2 [; `9 p/ [6 w - (done_dialog 1)" L+ C N A2 [% G$ n! M9 P4 h
- );if* w9 C V/ I$ a+ Q' ^
- );defun test-main-ok
5 X+ c1 z4 J6 u0 K% a6 W - 1 Q0 W4 X e4 U2 l V( r( N! X5 S
- ;;
% |+ H( ~7 z; m R - ;; A color function used by getlayer.& Z, [ C ?5 j1 L" `% ]8 u
- ;;0 a' i# ^9 D0 p& M. L" t
- (defun colorname (colnum), z h, l4 G5 X! [! j% C! }3 u
- (setq cn (abs colnum))! i1 l( A2 W0 t0 ^, {: K
- (cond ((= cn 1) "red")
: i$ q5 a% i% A+ e# a - ((= cn 2) "yellow")
9 j. `/ e3 Z7 S- _& P; r3 g - ((= cn 3) "green")
$ G! g! B" P. S( O - ((= cn 4) "cyan")
( f9 w1 o; }: I0 z7 G% K* h - ((= cn 5) "blue")$ ^8 \8 S: G6 D: ?6 ?* x7 J
- ((= cn 6) "magenta")' a3 L! }: V6 c/ w8 Q6 H' r0 x
- ((= cn 7) "white")$ F5 o, \! l+ E# ^
- (T (itoa cn))5 K' U# B B4 ~4 R7 }$ f9 h
- ), b$ v$ ^' y8 j o6 G
- );defun
. Y2 x2 C; c/ C% g - 9 A6 }% a9 c, T( A+ Y9 h
- ;;; Construct layer and ltype lists and initialize all" T, P3 b. J. V
- ;;; program variables:. p4 M) r& g7 E+ ~" R* w: H
4 T& U6 p: m5 `5 `% x5 v8 Z& N- ; (makelaylists) ; layer list - laynmlst8 `3 g1 I3 t! k! r1 h; b' Z* A
- 3 q% ^* r8 ]2 S
- 0 }1 J9 G" g" e
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
/ H( w7 A4 ]6 f; F# T" A- r
" a! J. d4 q% |# C% X- ;; Find the property values of the selection set.1 F# a: K! S" w7 q6 b) [, _
- ;; (getprops ss) returns a list of properties from
8 C2 Q, j- i( f' c. B$ t - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
3 U1 B' Z7 k2 D" I4 i
, v* h( ?' [6 e% K- (setq proplist (getprops ss));@rk interesting things happen here* Q4 w, h4 N4 [) M# e
- - p+ i- @) F$ s% D3 }8 Y/ B
- (setq
" I; }) k1 q' g# k, t+ p - ecolor (car proplist)" D {2 m, J% m. R& q; p
- eltype (nth 1 proplist)" ]9 M+ W6 w4 m( {, b
- elayer (nth 2 proplist)
' M: r1 b$ ], ~+ R - ethickness (nth 3 proplist)! c* U6 j8 l3 X; E. S' ~
- eltscale (nth 4 proplist)* v$ b" V4 A. l" I9 o' F0 z% |/ x
- ewidth (nth 5 proplist)
. F* [9 L! }$ V+ x4 [: _2 i' z- r$ E - eelevation (nth 6 proplist)
# J; a1 s6 G6 [' Y. Y- Z* r9 ? - eheight (nth 7 proplist)
- q: |1 D- S1 o# j1 {3 m _+ _0 A - ;etype (nth 8 proplist);commented out and replaced with the line below. RK./ I/ O# _# Q* h! l7 V
- eflag (nth 8 proplist)
" J: ?; a$ Y. @8 G7 \7 Y S9 W! J - estyle (nth 9 proplist)% o+ r. e# K; b3 o9 g
- poly_ss (nth 10 proplist)
3 r3 g& ]) P0 ~& `8 i O - txt_ss (nth 11 proplist)! b& ~; @) a) }$ b# z. l% D
- );setq
# b4 a! `$ ~9 d8 W' l% O
P6 A" L2 y c0 Z- ;; Find index of linetype, and layer lists
$ G9 r* j* ^! J" \: O2 b% {8 v - (cond
2 ?- q/ H0 L" @) ~$ n4 ]2 D - ((= eltype "Varies") (setq lt-idx nil)), Z3 d% r. e& D/ {# p5 `7 _& o
- ((= eltype "BYLAYER")
+ C$ e# C+ h/ o* S9 {% E( p& S+ c" L - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
) E& a4 X( j. s0 y c - ((= eltype "BYBLOCK")
' N& z$ M h* Y5 o# p - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
/ R$ Y2 n$ l. n6 {* W, X1 [' r& } - (T (setq lt-idx (getindex eltype ltnmlst)))
1 [9 U" w5 Z) o8 \" f - )$ U( j( N* }- P3 J( r
- (if (= elayer "Varies")( p! v. {$ k' L3 b3 E/ O( J4 k
- (setq lay-idx nil)
( A- D& I( |5 L' A* n1 o4 ~ L; C - (setq lay-idx (getindex elayer laynmlst))
% K a$ |* J* J/ [0 q+ A - );if: Z! g7 H/ I9 N! h I/ m
- (if (= ethickness "")
9 v. I$ M6 j" S6 m- W - (setq ethickness nil)( ]$ y' {6 ^9 B; B& V+ h9 D/ A
- );if
: I! A5 M" O/ x( Y% C9 c: F# m& _. t - (if (= eltscale ""): v3 M1 z `0 O3 Z9 |* r5 A
- (setq eltscale nil)! F# I/ }' I" z; q
- );if; c% Q; Q4 {- j2 `$ L. ^8 e5 Y9 Y
- : p) h( J+ ~/ Q$ ^
- );defun ddchprop2_init ; end (ddchprop2_init)
4 ]" ~4 G/ U; B5 S# c% [ - 5 y$ d$ _4 P& g
- ;;; (ddchprop2_select)
3 f# i2 ]+ l4 p, A9 q" v- l - ;;;: _( L+ v" I5 X/ ]4 w4 o) ^+ m6 q
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:
# E F1 x5 A1 N - ;;;! p# M/ c7 C+ o/ ]4 h
- ;;; 1 - Autoselected.* N1 Z( C# l d! `# u
- ;;; 2 - Prompted for.0 ?& R6 ]# P- _0 c- D' Y* R5 ] K
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
6 y1 b0 \7 P8 ]( U8 K R! _ - ;;;9 j1 T4 d6 I3 }: V& j& O) B' |$ D
- ;;; The (ddchprop2_select) function also sets the value of the3 @ q' \; Z- Q, W' V
- ;;; global symbol AI_SELTYPE to one of the above three values to
0 Q% z" N n v7 ?7 { - ;;; indicate the method thru which the entity was aquired.# v3 y! @1 i- u# z" t* D
0 q" x# N6 H3 ^- ! G% O' p1 T( @+ U. y% h
- (defun ddchprop2_select ( / )/ o( a7 O( d7 O' M
/ K B1 z; l0 e. P-
4 j4 v' S9 d9 P- t1 n* v$ @ - ;returns only entities in ss that are in the current space.
4 U0 \0 p3 i/ e! d! q2 @' p9 u - (defun ss_in_current_space ( ss / a cur_space ss2)2 O" z" ], Y" t8 ?/ A4 ~
$ i8 {% X/ V% n3 R; O/ d- (if ss& n5 C$ @: q" y6 v- x& S
- (progn$ S6 Q' O- J: @0 P/ ^5 }
- (if (and (equal (getvar "tilemode") 0)4 j: i/ S1 \1 Q8 }) R1 F2 [) R/ t8 t
- (equal (getvar "cvport") 1)$ }. w1 t9 H( n+ l+ U: Z
- );and
5 H8 l- v4 ?* G4 j8 a - (setq cur_space 1);then paper space is where we are.# T+ C0 F% ^& u4 B3 o
- (setq cur_space 0);else model space.
3 D1 V! e* a) p" Y b; \+ _ - );if7 q( v( c9 @& |
- (command "_.select" ss "")/ j7 R# I. i4 e, b, J, h8 ^
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
t9 y& V0 V5 i4 x8 ? - (cond ;;;;;tell the user what's going on.
% }2 Y5 B! ?' R- x - ((not ss2) (princ "\nNo objects found in current space."))& f- Z) H0 l; y0 M! I2 r
- ((not (equal (sslength ss) (sslength ss2)))) r0 M$ p8 [4 ?7 n0 L5 I5 s' L
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
/ ?9 ^( s( W6 w H9 M5 @ - " object(s) were not in current space."
% t9 Q( L7 F) W* p6 a" g. x - )' L" J! t) n! k$ z( \
- )2 j! @& h8 U# G, d) b
- )
7 O. X, g' u( ]0 }7 W8 { C: r - );cond 3 X& J1 t; k' e( t( T
- );progn then
6 T6 I8 S2 u* M, @5 x& [; } - );if , V& p5 v7 ?0 g2 W; J" z
- ss2
9 f! U2 J7 ~5 q$ a$ A - );defun ss_in_current_space5 B- G2 p# e6 \& K3 b
- # e% E3 }1 B, w' i9 I
6 ?: h8 e& _8 L. M" W6 I- ;;;begin the work of ddchprop2_select4 s# E* n- D: r) O# r- d% n1 n& N
- ' d2 X' g4 a4 a, E; i" l! v
- ;; temporarily restore original highlight setting.
. i% e5 ?" J: O" f; }* j - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
. g" t+ h; y) N0 [' C. [8 D - (cond9 ^& H- n# K! d- t& o
- ((and ss , g% H5 f y- [1 ?! L
- (eq (type ss) 'pickset)' c3 Y& a* h% T2 @9 c
- ) ; selection set passed to
; r9 @2 k/ B4 ]: ?2 X( S - (cond ; (ddchprop2) as argument
5 s1 h+ c* `# X: e4 X$ x - ((not (zerop (sslength ss))) ; If not empty, then @: ^3 J" P( ~* {
- (setq ai_seltype 3) ; then return pickset.
7 o: J! i, l( n7 T' _ \ Z) ^ - (ai_return ss); a! v- S$ w" k8 v8 h( b% {1 m
- )
+ A1 }' y k* j" P - );cond close
( P* t5 H* v2 S( \# f+ U2 N - );cond #1
4 }, }! G) X3 j - ((setq ss (ai_aselect))) ; Use current selection
+ ]. i& O5 m; V; ~ - ; set or prompt for objects
. q6 O( u& @& t5 W6 q3 f - (T (princ "\nNothing selected.")
1 d9 D j! d5 c* p - (ai_return nil)
4 [: V2 a* K$ i# F0 O - )
7 T% @0 |) h: e/ M, T - );cond close
0 s9 R/ d8 s8 Z& o7 @) M; P9 | - (b_restore_sysvars). D. r, L7 ~& p4 F& R4 I1 B
- 2 S8 x& J/ v6 c4 v- O: p+ ^( o. o
- ;(if ss7 M% V5 f0 z$ S8 O9 c V2 J
- ; (setq ss (ss_remove_locked ss))
& g g) X' }# F$ l+ g. p - ;);if/ c7 [! u) E" M, O6 M; r
- (if ss$ C8 Q1 }% D4 K
- (setq ss (ss_in_current_space ss)) 3 m$ e& l9 Y S7 v; z- \
- );if' J! X' M! B3 B. C; k1 b
- 1 x& ?9 A4 Y2 F1 ]
- ss# A' Y7 o7 X1 U) g6 r! W- @; Y
- );defun ddchprop2_select7 h8 P* q4 h. t; u3 G
7 |9 k o, M# ^" N7 i3 J- / j8 B' V8 ?) g% B7 m
- ;;; Define command function.3 f" D- l0 q% L" \& ?/ b$ m, J
- (defun C:CCH ()
0 T, m5 j( \/ H0 h& h+ k; y - (ddchprop2 nil)
: x* [+ h, m' C! f1 {3 ]1 y - (princ)
# n/ F& M' t3 }+ v! f* v) V - );defun* u- @/ T" Z1 O5 [1 w4 a/ j2 e
- / v2 {9 D, p: J9 i5 u$ y! v, U2 w
1 d/ w X) @ z" R- ;;; Main program function - callable as a subroutine.! z2 t6 ?# T+ t: I+ k
- ;;;; T% N3 V w' w1 o& e
- ;;; (ddchprop2 <pickset> ). @2 A& }( {! @( I6 M/ a$ I. [
- ;;;
: |$ |7 m( a) J: \: g/ \7 e+ Y - ;;; <pickset> is the selection set of objects to be changed.& ^6 D) s i! R( R, a, K- c$ E
- ;;;
3 x0 v) E. M5 ~' s+ Y - ;;; If <pickset> is nil, then the current selection set is. u4 `) Q) X+ ]
- ;;; aquired, if one exists. Otherwise, the user is prompted5 Q. U) y* X& u
- ;;; to select the objects to be changed.0 Z9 Q5 x. `3 E" ~( q5 v& C
- ;;;" E' w. v: D* q; q) e: y$ _- u
- ;;; Before (ddchprop2) can be called as a subroutine, it must8 G8 i- _4 N2 a6 [
- ;;; be loaded first. It is up to the calling application to( w* m, b$ i- P8 \- V; @; d) C2 O
- ;;; first determine this, and load it if necessary.0 U9 s! b' q5 Q9 K/ O& x
& x( d8 \5 p+ I. X8 K% Q2 S* c$ [- (defun ddchprop2 (ss /- {& n" S5 d! P- C& f, k
' }. \& r$ r) G- a
' C5 r2 x8 S7 J& _ - add-mdash9 Z c% v0 G: G
- assoclist
. p Y7 q- @* A$ S4 R' D - bit-70
. w( Z3 o" U0 D. i1 r - boxlength! I3 _4 c" G; f! f4 j
- bylayer-lt" Q; l" ^6 J% B
- bylayer_col) ?' O$ \/ Y k" H- o* t( e/ L
- bylayer_lt
% `& Z' p; ]0 E: j! D4 P1 Q- I - call_chp2# ~# B1 n0 `& V* V- P4 N, x
- chk-col
4 v, b' W5 s( _9 @/ v1 Z - ;chk-etype ;var removed by rk ' R& ?0 V8 q' M# l
- chk-lay 9 W* d$ P+ O& d& t& ~
- chk-lt) \' s" f3 t' a
- chk-lts ;var added by rk
" w# a$ O% B0 V) F; ^ - chk-th( u4 q: C0 x: C5 P1 K
- cmd$ [! @& c! e0 p; c1 A
- cmdecho
3 q! R# l. o- W/ E' ~ - cn3 H6 N4 }& N3 I
- cnum
/ X5 E. j: S, w) J+ w9 r+ R - col-idx
5 O" E9 ?) Z, e( D) n - col_def
: A8 k' Z1 d% I, |8 Q1 G# E - col_tile# {$ W9 t6 o3 @! K; c2 p
- colname T# ?- F; _4 f+ @. j! g3 {
- colnum
6 O$ x( x' k* w7 R# e - color: o* c, t5 X3 n' N
- colorname) B* `) v8 q. ^7 D/ ]
- cvpname
& ]! N0 n0 H. W' y( J/ M1 d - dash
3 S6 {+ g8 O& t% `5 R$ w: I - dashdata, J- C4 ~; `8 a) a
- dashlist
8 ^+ Q/ X1 ?9 B0 T0 v - dashsize+ J5 d* y1 L# Y, V
- dcl_id
: n/ F9 J4 Z; c2 |( K* f9 x - ddchprop-err7 O) J# m0 X- t& r$ `
- drawpattern* y& X: u& c' Z) o7 s; ~. L" U
- ecolor
; Z6 R5 z# r; _+ u - eelevation
- g4 w. m5 n6 Y" @ - eflag h7 s% t7 Q4 i. t+ x$ I; b
- eheight6 I2 D/ a; w% r
- elayer( f; j2 O4 {$ U4 ]" i% \
- elevation
9 { q+ o( c% G$ d; V. [2 }) b- {( f3 T - elist y% e0 C) M0 U
- eltscale' K) y8 c: h4 e* w p
- eltype0 T$ S0 l) J6 B7 p$ d% _. R- E% j3 g
- en
' j1 i7 E5 y$ s, r1 M1 t( o - ename. E# Y; K1 g7 T/ P
- ESTYLE ;var added by rk8 z/ t9 a |' E% R0 j
- ethickness
i8 G9 ^4 P: @6 V' t - ;etype ;var removed by rk
/ T. D1 l& E. |/ e, P - ewidth
4 n. m' i0 S- f% Q" C7 C! N& V - fchk
" c* S4 R/ Z7 N" F4 J - frozth1 K% y+ ^, n4 w* A k
- fx* }5 `" Y& w3 R/ G7 d
- getcolor- N7 z. y4 E, y* d# ^
- GETELEVATION ;function added by rk
5 q# x% ^6 b- K% z - GETHEIGHT ;function added by rk
7 l, s+ h# H7 B$ K a6 x8 S, w+ h - getindex6 Q1 V1 a" }+ ^) |+ G
- getlayer- O! J4 B' W& n! \
- ;get_locked_layers ;function added and then removed by rk 0 r. E$ c- G& ]+ ]" {% f
- getltype# s, A1 L3 ~+ a$ n5 X
- getprops: L, X- D2 Q! ]/ _5 ^ X
- getscale ;function added by rk
; m1 P7 B/ d8 M7 r - GETSTYLE ;function added by rk- i) M9 z% l) M3 m% O0 V
- getthickness
9 m' @# Q+ r* X2 q, ] - GETWIDTH ;function added by rk
+ s; y3 r5 ]! \( R3 n9 a - globals
( {1 ]! n. ^; E- M - HAIR_STYLE_LIST ;var added by rk1 h- p4 ~! p- x/ u4 _
- height6 `( x, L. n w- i0 V
- index
0 _. e; w- I/ e) t& H - item1 K9 y! S) h8 L
- item1% q6 x( o G6 k
- item2
. x' A) `: i: |( @& b. Y2 \ - itemlist8 B) j. A9 d3 F `" G9 v) v
- lay-idx
/ q4 C& g3 S3 ~% l5 V$ H - layedit_act
- |. `! E0 s/ e$ L U0 [ - layer
/ p: _1 X7 h" c; [6 O - layinfo
) @& s7 |( Z* J - laylist
5 y+ {( H# g) Z9 B- O2 |' w - laylist_act
7 ~% m% A$ C7 C0 u; { - layname3 m7 U8 h8 x* d) ?0 z# W% Z
- laynmlst
5 ~' ?* D1 J. } f& W9 H - layvalue
: A) h/ \' ^1 d4 z! m8 C - linetype/ h) q m9 r3 Q0 w" e8 T
- list15 x5 P& \2 y8 J7 \- y
- longlist7 x7 A: q. D) q4 ^# U4 D2 {" z$ [
- lt-idx, |2 x2 ^9 S Y( h
- ltabstr" I5 o/ U: ^, D( ]1 k
- ltedit_act( \: l8 ~) q# K1 O5 s
- ltidx- ^" B; Q# ^! l( F
- ltlist
, |! ^5 o' o n" H- }! Y - ltlist1
2 F% e3 a0 R: T - ltlist_act7 A$ a1 g! H5 H& s
- ltname
* E* a+ V& K( x) o0 e' n$ e4 f - ltnmlst
, p$ g; a! ^" ?2 @3 F - ltvalue! g# p _# [1 |' \+ `# z
- ltype
4 m1 {1 j1 w0 H& G, Z% s - m
8 m' c8 `1 ?$ Q% I - makelaylists9 \3 J7 ~# F5 X& J3 W$ w
- makeltlists
B; I3 L+ j7 [% I" M9 U& \) b& O3 R - match-col% ]% G7 s+ H4 z
- ;match-etype ;function removed by rk; B4 M: t! @6 F: x6 {. ~0 f o- H
- match-in
: O$ p3 U0 {/ N* C( L) } - match-lay0 R4 B& A% K% O$ c3 N0 j8 [- P2 X5 {
- match-lt
: ]& k' N7 y) F9 J - match-lts$ k* K, s& A4 A% h+ N& W4 X
- match-th! _ U$ a3 U9 O' @
- match_col
" F$ M0 D- Q+ ?6 ^. V( Q4 I* W - mdashlist4 }/ _1 P2 H% O6 }
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
( n# R" t3 H: o8 p( G) J) ` - n
% k) y0 G/ Z+ d+ b - name2 b1 l% L) H) |: o. w
- ncolor
/ O* e( t8 Q2 v" {9 A" n) K - nlayer
! }2 r$ m; A/ T# x - nltype
0 @ p' Q$ F1 W) F. c8 K: I - nthickness, D* |+ r: }+ L* a$ x. w; p
- off& h0 p* ^. A: v5 f
- old-idx! L2 a% m' c6 A
- olderr; @/ H V9 J9 _9 S* e C/ M
- on0 y8 i# E3 v7 f) x6 ~) g3 T9 @1 ?
- onoff2 E& n: L+ z; n* y
- patlist
u" o* R) D: D; ]3 f - pattern" N/ F0 k' V" U) Z4 x2 b3 ~
- PL_WIDTH_GETTER ;function added by rk8 J+ d0 \4 Y; `5 `2 m! C
- POLY_SS ;var added by rk; X* _! n; s4 q/ f2 n; W5 g% Y
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp
K* z5 R3 {5 g' L7 c - proplist n5 Q& r; {0 T6 i: O8 n
- reset-lay
! G; j; ]3 U7 f3 m5 q2 R% x' O! z - reset-lt9 b( J+ {$ J" A8 }
- s
: w0 s9 L+ y9 u5 a* c$ n - selset) v0 [1 q. O# [8 @" ^
- set_col_tile' `* J/ Z( `& t- }4 m
- sortlist1 L( d. k4 f, b& l) n% w8 r0 M
- ss: _ l% f' M% \- k
- ss_in_current_space ;function add by rk.& x5 s; I* s+ H i: F0 ^- J/ m) V. |- m
- ss-index( Q" W% F- W; R0 P3 z9 B- y( u
- ss-length
- Q* Z, e4 O/ f h2 V9 C - ;ss_remove_locked ;function added and then removed by rk.
: D! V3 h8 O' W2 i - sslen
& M. d4 c! _7 j0 @1 V1 e - temp_color9 X' Z/ Y N1 i. ]
- templist
/ e N, U) h8 C- W - test-main-ok
$ k5 w3 h$ k% X1 c4 k b - test-ok
' P- F- A R) ~" [' v. b - testidx
$ ]+ F0 t. B' Z6 N - testlay$ G% E, g% ~; X0 u
- th-value
7 ^' ]6 g8 |' [ - thickness0 ?$ u! C4 v4 o
- tile
/ q) R* ]" ]* C8 @) ?& W( K: h - tile_rect0 p$ U4 q0 O: {- Z+ l" |
- tilemode; M% y7 u% |# _" Z. W l7 }; L- L
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
0 D" R O& ?, } - TXT_SS ;var added by rk
: V: H* N8 F6 S# {% g4 s2 N - ;undo_init ;removed by rk.
; x- i; G# D% s: h& z' w - vi& B; q$ @2 s) @8 y6 G; X6 O
- vpf
$ e1 c$ q2 n) w3 Z# } L - vpldata; G% | |) G! o8 p* I- A& u& e5 H+ l
- vpn
" C( x3 h, B3 K2 ? - which_tiles
& H* V/ H8 B7 @* ~% g0 S5 \ - width1 c; g- R! y2 D# e1 |$ @
- x
$ ?( w( G9 Q- y5 l, c8 s0 o( e - x1
' |% e" S, O/ X - x21 y" q2 d( l& t+ ?8 ^
- xdlist* x& u+ X4 A5 Y% }. B7 A% i! i" A: h
- y) G2 Y) t9 L9 H
- y11 E/ R3 M: W8 g+ c6 i6 s, \7 X
- y2# q4 h3 M5 r8 w3 v! Y: [
- ): Z* D) T0 x8 O3 P, r' L. h
- $ ]" o/ V9 Y7 f. b
- (if (and (not init_bonus_error)
( c3 L& y* B; ?6 t8 `" R9 y - (equal -1 (load "ac_bonus.lsp" -1))
8 B6 R" ^2 A% S1 k* i - );and
# A; ]) v1 b5 n |8 M4 x; q/ ] - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
8 }% J6 W# P% V1 ?; ^! Y. D# p7 m5 | - );if/ W T3 H$ C7 ]. T0 j4 r3 e
- (init_bonus_error (list
: _# k. `! c, H9 t2 C% V; F+ r - (list "cmdecho" 0 / z, e' h. t4 U; b
- "highlight" 0+ a( w1 `5 r3 @( i
- "regenmode" 1, G' I4 F5 e& Z; H5 }" Y$ }
- "ucsicon" 0
( K4 `' e) Q7 [6 e - )
0 l5 R) H, D5 P( a1 y" W - T ;flag. True means use undo for error clean up. ( Y# q% N8 B. G
- );list & ]" k+ \8 O0 \; P/ S: `
- );init_bonus_error( d9 D/ u0 D9 _$ D+ F9 L8 T
- 7 n! c4 H; F5 x) w
- (cond5 P, B4 J+ ?* s
- ( (not (ai_notrans))) ; Not transparent?
V7 h8 Z) v, i3 k$ s, ? - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?6 h( o/ O% t: P: ]" ^/ q
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
) Z" }, [" |8 `# S' x6 a - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?4 K# V% t7 U1 C- `4 E
- (t 8 O$ h1 N' s, J
- ;(ai_undo_push)
* D: N9 `& @7 ? - (ddchprop2_init) ; Everything's cool,5 I# c& O1 w' Y' x) a1 Q& O
- (call_chp2) ; so proceed!. }% q. j/ M: ^& x, v; x
- ;(ai_undo_pop)2 ^- q+ ]+ {; w7 ^/ e4 n
- )9 F7 s1 Y$ g" p% q2 d2 x `
- );cond close
, G( M, {, N2 t/ p/ W - 2 l+ u; s* X# @
- (restore_old_error)
/ N: [; p8 {& g+ r$ E$ p' I, i
7 W1 [3 B! ~& |$ W- (princ)( M8 W; P8 ?. l+ _, O( ?
- );defun ddchprop29 L6 z, g4 M4 u. _
5 G6 q$ F& V" h+ _- ;;;----------------------------------------------------------------------------
# A3 e' H( |, t! x Q
5 _+ Q+ l b/ O$ u& D/ V" r) E- (princ " EXCHPROP loaded.")
/ S: o8 {/ A! h* ] - (princ)- Y+ {! h3 P! _4 X+ A3 W
- D* J3 S- p c! {
- ;;;----------------------------------------------------------------------------
' I% i. j4 o: j: W/ V - ;;;---------------------------------DDCOLOR_LSP--------------------------------
4 B3 g- [, m5 ^( u u6 B - ;;;----------------------------------------------------------------------------! Z' V8 u2 b4 P
0 } }) K* N; i- ; Next available MSG number is 24
9 a9 B5 s8 T7 D! X O' ` - ; MODULE_ID DDCOLOR_LSP_6 P4 @9 ~+ `3 I; `$ B4 e1 h
- ;;;
# G2 \& o; |/ F: @) Z% g( r, W6 H - ;;; ddcolor.lsp
* _$ c# R& l& U - ;;; ! L& L, S! L- i- R( x& b: z2 K
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
0 S) v1 [5 W! b: x - ;;;* `, l( @8 N2 P: f
- ;;; Permission to use, copy, modify, and distribute this software
* n2 c- ]- y: R# k' e" g7 Y9 b' X - ;;; for any purpose and without fee is hereby granted, provided6 R0 l, s5 _5 j
- ;;; that the above copyright notice appears in all copies and) o8 J7 \: H0 r7 s- s- R6 }
- ;;; that both that copyright notice and the limited warranty and
# }1 e/ T" g& B; F. r; A9 E3 [' n - ;;; restricted rights notice below appear in all supporting
6 `; Y$ }2 S/ O, b$ ~2 w - ;;; documentation.
% ` w5 P: i/ N/ I: m3 S& { - ;;;
' t K; U# E2 E2 Q- u) P- T2 D - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
/ C1 q$ _' Q- ?% p - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
$ Y3 f, _# `( k# j - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
9 ]6 k: P# o; {. O) ~ - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
/ q- v: y7 k8 D; Z4 p* O% e7 H# t2 \ - ;;; UNINTERRUPTED OR ERROR FREE.% R m" m, ?9 }! Y
- ;;;2 j9 X, w; ]" y d
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
; ?% G* C% z# n/ G8 W* T - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
: A+ d7 X, j$ _, t5 J - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
4 e% b! M% O# M& ?$ \# V) X$ j - ;;; (Rights in Technical Data and Computer Software), as applicable.
: W$ M* B w$ T. E+ h% L: s7 S( p - ;;;4 g( P7 z+ h$ K# O7 E
- ;;;.' l6 ?9 B! S) y6 m
- ;;;, O5 M) |" |1 H$ @: S
- ;;;----------------------------------------------------------------------------2 h+ ?% ], m( S7 I
- ;;; DESCRIPTION
( L. D5 C/ a$ Y, j9 `+ U" [ - ;;;
' n$ M0 V, B5 d5 v0 n5 s# M7 }. w Q - ;;; Chromatic Pallete style color selection dialog.! L5 x; q# h1 V, D" W! T
- ;;;
, S3 L! ?) N9 q+ h/ k8 C& g* g2 N) e - ;;; Globals:, Q8 O% {/ g/ N* g- n( C! Y
- ;;;
* G% n* O) Q1 H( J) b6 p - ;;; chroma_color - Integer color index. The last value selected. i9 C4 N& N& e2 @: i' W- \
- ;;; by the user in chroma dialog. It is not cleared or reset
; l2 L7 h! J5 q3 e+ I - ;;; by a cancel. Only used for communication between callback: ] I' l t- C1 z4 e6 B" j2 u
- ;;; functions and the (chroma) funciton.% u1 t8 D5 j0 A9 S- w7 [
- ;;; . g% i( r, ?7 @8 u. b6 B: r, f" |: S
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.+ [: [$ z+ x8 @+ G B3 v f' I
- ;;;
" z+ ^$ _) _$ R# E% q - ;;;8 _" `% @% l! @" C* j5 j7 T1 j
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
& J. m k6 T. T/ Z, y, y - ;;; pallete style color selector.5 I' [" Y7 E. j& j. `& I
- ;;;
5 L( l8 Q# H2 s( Z+ p - ;;; ===========================================================================0 l! O7 h9 `$ n# I
- ;;; ===================== load-time error checking ============================
& h) e& v5 n6 x# M) u" f( N* i - ;;;/ K& T! O2 p! B* u$ B/ c" M4 k
, u% P! }2 K- ]- (defun ai_abort (app msg)
: H) g! @, k0 Q! A; Q - (defun *error* (s)
7 s0 f, ]5 j+ t* L# m - (if old_error (setq *error* old_error)) ]; l& R& M3 J( X7 @- I8 U
- (princ), m8 G4 c( `) W
- ); w& e5 K. s2 ~( ~% O# J
- (if msg
1 n. j f; M5 |7 d' X9 j# z6 { - (alert (strcat " Application error: "# c8 T# e( e" B; V
- app
: A7 ~* h% e1 T: a: s - " \n\n "3 {4 A) p8 w5 v6 Q4 D3 `
- msg6 d7 n/ C8 M2 X+ y1 r, y" ^
- " \n"
7 N& n! _' V% f- z; L* z: A' x7 {. { - )
7 ~0 Y3 v) D! ? v& {( F - )' [& Q _ x7 G, n: u1 q$ g# Z( V5 V
- )
. a8 @/ l' Q9 o, [: x9 P - (exit) {( X8 g% i. R* ^# W
- )
3 O) G* p" W2 g9 N0 B - 4 z. Y3 A [5 @1 d
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
4 _. T) \$ p$ y" _! g$ O% G- K' J - ;;; and then try to load it.# B& C3 C" Z8 H4 z9 h7 d( W0 D- `
- ;;;
( X3 p2 Y; A# y$ J& a3 _) H0 H, J - ;;; If it can't be found or it can't be loaded, then abort the) c! ` q* X8 d. ]* K2 N
- ;;; loading of this file immediately, preserving the (autoload)4 {9 E0 c# K4 L! q
- ;;; stub function.+ _4 x+ p* Z$ S0 @0 L% ]
0 P% }3 @# I+ s/ a2 p ]- M- (cond! ~: ?) r; E# M
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( @8 W9 `8 D& ?% ]$ m
. P" S' L/ f& H* V8 I2 n, y3 P- ( (not (findfile "ai_utils.lsp")) ; find it
. x6 g7 e: `2 ~/ M" W - (ai_abort "DDCOLOR"
. T1 F: A* y2 h2 ` - (strcat "Can't locate file AI_UTILS.LSP."
0 \2 m/ d5 U$ V - "\n Check support directory.")))3 p$ [7 s; ]4 H4 U! n1 \" |. P+ X
- ! E- p% y5 \- _7 N6 }# M3 Z( ]- H
- ( (eq "failed" (load "ai_utils" "failed")) ; load it" e) {6 x4 R% x
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
2 n: A1 D0 y" b3 C* L - )
2 r- e* {; H& t5 g" f; K+ u: P" \
3 x& F" e) t! O% |9 n- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP, {% P0 L2 C1 D5 F5 d1 o- W
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses8 t7 {+ ~8 ]! r# e0 s& s8 `
- ) ; ai_abort's alert box dialog.
7 k3 u% A5 N% f5 L+ i2 ^3 r! m& ~
q8 c' u. |# d1 ^; a- ;;; ==================== end load-time operations ===========================
: P" U9 {3 N3 r4 z* q9 f$ k - 1 l( s$ _% C9 N
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
7 C3 z) r) ]& c0 K* j - ) }. o, N8 i; \: W2 L
- ;; Main Color function, called by setup code.* L: }# Y( a4 Y5 {# E# x" P
- (defun ddcolor_main()
- ~' K I7 `* C7 C3 Z
+ M: P: y. G+ o- (graphscr)
- z8 N5 X+ j$ p/ B/ p -
& W. Q8 A& U5 R3 ?6 n. S - ;; Get the color of the current layer, for possible BYLAYER color swatch.
6 q/ [" `/ L0 r3 W& _- w. @: o* v - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))5 h- }' q" `/ Q3 @. X z
% o. ~: T# X$ {, y6 `$ R* `! I- ;; Call the dialog here...
% c" [) {# t2 ~ P$ {$ R1 C1 ` - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))4 m( E9 F) _1 `! T! k- p
, V% }4 ]$ Q) y; t; ]- (if clr
! K6 a8 I- C7 t% ~; ~ - (setvar "CECOLOR" (citocs clr)))
1 j5 N7 _1 [* l# {. T3 g: ^ - )
Q1 J; e! s4 W" D - - r2 D$ ?) H0 q* F) \9 Q$ n: e
- ;;;) t& ?6 n( \) w4 M
- ;;; CSTOCI -- Color string to color index% P7 j5 @- t) b7 w( H# Y
- ;;; Convert an arbitrary case string into a color index.& p4 O1 g6 S. n. J: ?1 l* S
- ;;; Returns nil if string is not a valid color.
1 `3 s k0 E- q% ~ N; y - ;;;
$ |& y+ @# S9 |) v7 b9 m8 g* X - (defun cstoci (str)
) Q. m8 |6 X" B! j - (setq str (strcase str)); t5 y/ M0 T7 P7 v& [
- (cond
6 c \. _0 r1 ?3 T$ @, G2 Q9 X8 _ - ((= str "RED") 1)
! r" L$ w5 J, X' }5 K: z6 p3 s; V - ((= str "YELLOW") 2)4 i2 l: W3 I* j# [
- ((= str "GREEN") 3)
$ D) ^$ d: P* i- a - ((= str "CYAN") 4)
9 S: g) B$ @" ]& p u# g5 W - ((= str "BLUE") 5)
0 I& O1 N) X$ N" C4 g7 V - ((= str "MAGENTA") 6)
$ `5 r& i% |0 p8 ` - ((= str "WHITE") 7)
d# w# A8 \9 d1 l4 q - ((= str "BYLAYER") 256)) I0 m% X$ }& Z% |5 O
- ((= str "BYBLOCK") 0)( L: o9 }, {1 J' Q
- ((= str "BY LAYER") 256)
! S% _3 m2 I$ S3 H/ m7 R/ {9 J+ _ - ((= str "BY BLOCK") 0)
( _$ _! v4 m5 V- B$ X* ? - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))# P( T* o6 I' |6 {2 a
- (nil))
" P1 g# f% @3 A2 M$ }/ @3 u& A - )
* _$ [0 K( I& ^8 V$ {1 d( R9 j
& {1 g+ t5 z8 I5 d! b; M$ C) r% p- " ?4 t# L2 p' z4 R* H; C
- ;;;
+ S: w& \" i% j% d, @" { - ;;; CITOCS -- Convert color index into standard color name.1 O/ {& h3 c1 C [2 b/ [+ ]
- ;;; Will return the standard and logical color names as text
6 c2 X! P; {: ]* F - ;;; strings. Returns nil for out-of-range color indicies.
K6 l, H- _( v& g0 {, D - ;;;
4 h, I8 f- g7 @' x3 M - (defun citocs(i)( E8 Y. \- l: c& _- g" l- V p
- (cond
" j* ^0 F* h& P: J1 ~# ~! U4 m) @ - ((= i 0) "BYBLOCK")
! D& M3 U/ Q, N - ((= i 1) "red")
& S' _8 Q2 i* l- B h4 @ - ((= i 2) "yellow"); O& W2 x N$ r! Q* m' K
- ((= i 3) "green")% I0 M2 N& K2 E
- ((= i 4) "cyan")5 m$ i! h0 F: M7 E
- ((= i 5) "blue")$ d9 D5 w- w/ G9 N) c F$ w0 f
- ((= i 6) "magenta")8 e: K6 j8 E( W
- ((= i 7) "white")
+ ^! e) y, ]% l - ((= i 256) "BYLAYER") V. c/ ] _* H8 Z5 B% F* g; z' ^
- ((and (< 0 i) (> 256 i)) (itoa i))7 [# o3 `# Q0 z
- (nil))
( d- p# O* A8 x, `7 f5 p3 `0 ~- P - )6 Q) }) l* Z, N* a8 W5 e
; M* H' i+ |. ^& E- ;; Start of ddcolor" L/ ~* G; [+ t( {+ P
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
) K$ C) C& x" w& e; Q4 ^ - old_error *error* ; save current error function- r; }% @4 v5 v
- *error* ai_error ; new error function* D8 V0 d8 e: C3 P
- )
8 ~. C9 ]* s# _; ^9 B. A; R1 K( j - 3 k' T4 S7 V% @' p- h% |3 y
- (setvar "cmdecho" 0)
. ?4 A0 |. ]0 J$ M
; o [+ v7 _. `4 C) U0 D- (cond
* Y( z* c; x! E9 {) ? - ( (not (ai_trans))) ; transparent OK
m+ ]; m; r4 N9 T7 E1 Y - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?2 S9 v9 v& y+ j- Z
& U9 H4 E; N; M% `7 ?- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))5 }2 l* Y# W' }
- (/= 8 (logand 8 (getvar "cmdactive")))8 D- j4 @8 K% z' Z9 c( B
- )
& X: k7 R# A+ \* U$ i, o) t - (ai_undo_push)
) K' l- ^8 F1 K. T: E7 E1 R - )6 \7 Q& Y% L# E3 j& @0 A
- ) e% _, p/ N# g4 p
- (ddcolor_main) ; proceed!
0 R k3 R# x; ^* _ |- @
; O- q" v/ a0 e& `& b' {- d- (if (and (/= 1 (logand 1 (getvar "cmdactive"))): {+ E3 c* B- |9 s3 z! @
- (/= 8 (logand 8 (getvar "cmdactive"))): Z: I8 U* {4 {. K1 R8 U8 y
- )
1 I3 w3 K0 z* q5 d. d - (ai_undo_pop)' h; ?. x7 G, W: v8 { }
- )
$ p) e2 k* P# Z/ v- `0 z - )/ |. t" \5 I# H5 M/ m& Z
- ), K4 B! @9 q: ?3 ?2 Z* t3 K$ R
- ]- ~2 Q6 s/ d! C- (setq *error* old_error)
# L: P1 m c. s) T% |$ c - (setvar "cmdecho" old_cmd)
" k% A) u2 s+ L7 c! l. f - (princ)' v2 Y( G: \7 B
- 4 r1 ~& n3 \, s3 ]# b: K' F
- ); Y* o% X- v2 J# u1 M
- ; z1 s& W: h( v6 {, ^% F. H
- ;;;----------------------------------------------------------------------------$ b# \) X/ S" f1 l/ K, C: A F0 M' X/ d
- 6 W5 |* q: a1 ]' K6 {9 I; O
- (princ " DDCOLOR loaded. ")& k1 W5 c, S" l2 F* s4 }
- (princ)1 |. N8 Z1 w2 C2 \( v: _
2 t8 t, X. J) ]0 h, f" M- ;;;--------------------------------------------------------------------------;
3 d2 M% j; g# ~0 r( y, A# ^ - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;4 u) O/ w% b# B5 R9 y6 }
- ;;;--------------------------------------------------------------------------;
4 u/ F+ j! [ H: r- e' P' k* M, F - ;;; ssx.lsp) y" p# b; h' |$ @
- ;;; Copyright (C) 1990 by Autodesk, Inc., q% k2 ^ A1 v% {) H" G
- ;;; Copyright (C) 1991 by Control Systems, Inc., I, C0 F$ B3 Z2 t
- ;;;% _/ s9 Y: _, `8 H' P- f
- ;;; Permission to use, copy, modify, and distribute this software and its
' S* J3 {, f3 y6 }, U0 M S: _! Z - ;;; documentation for any purpose and without fee is hereby granted.
+ z- F: | y1 e3 B - ;;;; k9 Q: C: _2 ]# C* Q0 E. y' F1 J$ x
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
. a6 b" r/ N3 W. H7 @" U: U' E8 S0 C! e - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
" \# ~7 } W+ u' y' c n7 h - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED. B, `! e C8 r0 n( A$ C
- ;;;
* @3 Q( D0 _0 Y5 c4 V - ;;; Larry Knott Version 2.0 7/18/88
6 V Q5 j% b0 x! m: z - ;;; Carl Bethea & Jan S. Yoder Version 3.0
+ [9 r: f1 r. Q8 c - ;;; Enhancements to (ssx).$ q$ {: Z* A Y4 t
- ;;; 15 March 1990
2 \/ L5 J' @; \ - ;;;, N4 g( s$ u, `: F* L, ]! c
- ;;; ARTIST Software, Inc Version 4.0 December 1991+ g; Q# G; }4 K' [
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,, t0 V; ?( P& z- Z
- ;;; use Flexicon menus& Y: q9 T+ z* b2 b- F" t/ y$ n- C
- ;;;
, t0 [9 o' L7 @; W9 h, N# J - ;;;--------------------------------------------------------------------------;: `9 Q9 H" Y1 k% U. M. A
- ;;; DESCRIPTION3 i/ d$ R* [3 l2 ^- D
- ;;; SSX.LSP
) F) P) y2 S; R+ @9 [8 k7 F - ;;; # Y$ h; K& d7 a( y
- ;;; "(SSX)" - Easy SSGET filter routine.
( E1 {5 Z( b4 y - ;;; 9 b0 U- x9 T/ h! r% i ]) t6 h
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
0 }6 p2 X. s+ U - ;;; to create a "previous" selection set or type "(SSX)" in response to
! M) Z3 g' V1 f% _# \' b# {! w - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 1 B+ t* `+ O: A8 T6 p
- ;;; entities and "(R)" to remove entities from a selection set during 5 B. q6 Q2 Q7 m
- ;;; object selection. More than one filter criteria can be used at a
% x& Y4 [. V3 G1 e7 ] - ;;; time.
* Q3 @6 I( G+ {5 t - ;;;
. X9 C% n0 X( f - ;;; SSX returns a selection set either exactly like a selected
_. g3 W8 `& r9 H8 j0 u6 t, j) O - ;;; entity or, by adjusting the filter list, similar to it.2 \% v" K2 d1 z) T. R( h# @: x
- ;;;3 f: |2 z3 ?" H3 g% K, A
- ;;; The initial prompt is this:
/ z; d. \" O4 f B/ y6 W - ;;; ! l+ _6 N& u; K3 A
- ;;; Command: ssx& P1 q+ S, O( b! N' I
- ;;; Select object/<None>: (RETURN)
I \2 s! ]* { } - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
" X% y" L( f* Z - ;;;
& D1 N8 W! w% x: U( p0 X - ;;; Pressing RETURN at the initial prompt gives you a null selection " U+ F$ |' E! g! h) s$ Y" W% T
- ;;; mechanism just as (ssx) did in Release 10, but you may select an ) P6 a, R7 B7 T
- ;;; entity if you desire. If you do so, then the list of valid types 5 V; I8 J5 d. \! {; F
- ;;; allowed by (ssget "x") are presented on the command line.
! u) {4 P4 J4 }: g - ;;;
G' ?4 o$ d7 J8 k8 b - ;;; Select object/<None>: (a LINE selected)
2 e3 e( m4 n! m8 h- t$ C9 E+ ^ - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) ' M7 n% V2 r l2 {
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
& ]5 c" `0 L O9 A! R8 F - ;;;
0 K8 g# c3 s4 |, O2 Q* P$ W0 t - ;;; At this point any of these filters may be removed by selecting the - U6 a; q9 G/ s# `+ k4 s* v
- ;;; option keyword, then pressing RETURN.
3 E) X! n' o" } ^ - ;;;
4 K! H- T/ s7 X9 X/ A. M6 N: g - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
9 c, {' \: E | T! p/ p - ;;; $ M4 j4 b# i2 e! ?: n
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
~& D# }4 ?& _ - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
+ \' J1 ~* I8 _$ q. b2 C - ;;;
7 q9 B" A. i0 T9 w6 L' o0 T' c1 g - ;;; If an item exists in the filter list and you elect to add a new item, 4 [) } n( ?- ]( \- j1 B; K
- ;;; the old value is overwritten by the new value, as you can have only 9 a7 d5 [/ t- [- s+ n
- ;;; one of each type in a single (ssget "x") call.
% z/ n& }; O P' h - ;;;9 Z7 F- W8 z! S5 ?. o- K
- ;;;--------------------------------------------------------------------------;
+ o% D, H" u: J3 J6 u: v - ;;;
4 Y- K1 D& r- e* P8 f1 { - ;;; Find the dotted pairs that are valid filters for ssget
& k( A0 y* U1 |* a8 }- J# R - ;;; in entity named "ent".
" p: \7 p# A1 H' l- w# z- R m - ;;;+ q, t, d3 R9 u3 S% R7 Z% r9 V* G, f
- ;;; ssx_fe == SSX_Find_Entity% l3 e& Q( x2 Y$ h+ y
- ;;;) F! p: P! o" L( Y1 n+ X5 S
- (defun ssx_fe (/ x data fltr ent); o& E! L k! O, M2 u. P$ ?) b
- (if (and (= flexvar 1)(/= t2 "Pick"))
A: ?8 c, \' v' v4 y+ N& t - (setq ent nil)2 J& c& w5 y$ x$ v
- (setq ent (car (entsel "\nSelect object/<None>: ")))( S9 y9 w" B5 Y" C" t! w/ _- N
- )
0 _; e/ q# B! x( S2 T: B: U - (if ent
" s L3 A) g$ `! D: J# _ - (progn
6 e& w8 W) A4 u* Z - (setq data (entget ent))% f8 e0 y2 r3 H0 l
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 388 G& T7 t. S2 _
- (if (assoc x data). ?5 S1 b# j# L- O" R6 u
- (setq fltr
0 i/ P0 h( F2 _8 M$ ~: G5 Z8 Y - (cons (assoc x data) fltr)
1 R' a" o& C# W+ B# d: _$ F - )8 M& h3 _4 h: l$ n# N: Z
- )
7 C) t. S1 r3 F8 [9 p - )
8 E4 E, e2 C; N' t1 L7 @' z - (reverse fltr): ]. t7 q9 x1 A- k9 r* J3 v
- )
# ~' \/ ^9 d3 E7 |; @; T8 P1 J1 |4 | - ) * Q: T1 I/ }. E* e; @0 J" m: e
- )
/ j2 [5 l1 p5 J; |: \! ?* F - ;;;
- k# E& S4 b& W) U6 t2 W. p - ;;; Remove "element" from "alist"." {% d V3 a* K9 z; a; g
- ;;;+ V, u3 ~- Y" R
- ;;; ssx_re == SSX_Remove_Element/ G0 d6 \# z1 q0 y, @( K5 U. ] h
- ;;;
, L8 _) q! s# q0 t1 E/ \ - (defun ssx_re (element alist)
$ j/ u |5 [/ l4 d# @ |& E, m% B' c - (append0 b* V B4 s- Q2 ?
- (reverse (cdr (member element (reverse alist))))
8 S p- V; T9 z$ L - (cdr (member element alist)) 5 l0 \9 f, p F4 o6 e
- ). G6 }0 s* I# T) |, y% ]
- )! k0 X- o. |8 J/ s! v5 @
- ;;;
& p7 s* E" X8 C& { u5 b - ;;; INTERNAL ERROR HANDLER 0 s3 F2 J" U N" J" P3 B" ?. x
- ;;;
! `5 v5 k. \! ?/ r+ J6 H - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
8 b% v# r. E. A( j. o2 n1 @ - ; while this command is active...
$ D5 L9 L) I" K; D: {/ M - (if (/= s "Function cancelled")8 l4 y4 C& a0 O! z, K0 a7 v8 a
- (princ (strcat "\nError: " s))8 n% G; [3 M" y) m. J S/ |; p
- )* n+ X1 K5 u4 o: ?' `; u, I
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
+ D9 [9 ]1 m0 t' b' T4 d( d - (setq flexvar 0)1 T( z* T+ ?7 [0 n7 [6 q1 B" \& `6 Z3 x
- (princ)/ U# T4 ]! p1 d8 c* T0 Q2 a
- )( k- _ y/ R4 d/ `8 X
- ;;;
L( [6 P/ v. @2 } - ;;; Flexicon call routine8 ^1 Z. }, G; {8 i: m
- ;;;
, g7 }$ p6 R& I0 |0 { - (defun flexmnu (a)
2 Z& n9 x- ~ @* b' r - (if (= flexvar 1)
" H; G: K4 N; y. S. Z1 O# M - (command "FLEXICON" (strcat "FLEX" a))
W5 M3 }/ \4 d( [- l+ [ - )
2 N3 d1 e7 M. `1 t8 b l1 K - )
0 |" E- q5 N ~2 {; h - 7 u/ O0 |5 N2 ~3 c6 f* o9 J& t. n
- ;;; - \+ `/ X7 t# W. _8 R) ~
- ;;; Get the filtered sel-set.
4 J! B. n% b- F" X% [ Q' v! o" I1 m - ;;;+ i. ~" f3 X0 h- R
- ;;;$ b- L+ g7 s5 T0 i5 r
- (defun ssx (/ olderr)
) w/ F/ k6 M6 H$ N8 T- w - (gc) ; close any sel-sets $ ?& x* S n: n; ]2 O8 S) Y- m
- (setq olderr *error* ! E9 O' a0 T- u* ~' K% O
- *error* ssx_er
- a4 i/ a3 y9 l2 Q' S u - )7 }7 F! O4 U$ d5 Q; v
- (setq fltr (ssx_fe))
2 }) Q: A( k5 |* c - (ssx_gf fltr)
5 A, y# M6 W/ k - (if (= flexvar 1)) \1 f$ T7 q& e+ ?
- (progn" W1 V" I# `! l6 r: r: m
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")/ q; A* L+ g- O) @5 a1 f; L
- (flexmnu "EDIT")- J3 p3 Y; s/ k- u) q; R0 n
- )
; F; O# M8 R) s1 f& j9 I. S* X( ~ - (command "p")/ P7 C" P4 q4 t( d
- )
8 Y* a; _ F* A - (princ)
0 O1 N) B$ O8 ~8 @: c* \& c - ). G$ J, p, j& O) o1 ~ n/ {
- ;;;% p; e) N1 [# \0 k
- ;;; Build the filter list up by picking, selecting an item to add,
. m( l8 o) V9 S8 Z - ;;; or remove an item from the list by selecting it and pressing RETURN.
) n$ ^% y& {4 w q9 i9 ~9 d* D- } - ;;;
" u9 \+ i2 z1 M9 D3 p; N# Z2 A - ;;; ssx_gf == SSX_Get_Filters
, ~7 H' k2 b% ^) F - ;;;* w& P6 e4 Z1 N0 [) K0 I% N
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
6 D3 u& _1 `1 e$ | - (while 1 G3 R, W$ X2 k( }0 ~! O$ W6 r9 w
- (progn
% h' h" b5 w% \! H - (flexmnu "SSX")
2 h$ P2 _; Y ^5 C. @ - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))& L4 z2 |: f5 l( z6 G) ^; e: |
- (initget
, M9 J/ e- k, t1 ~- z6 l - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
: W3 a1 m8 Y( z5 u% ?! q8 m1 g5 d - (setq t1 (getkword (strcat
8 {% x9 U( y' S0 `- _ - "\n>>Block name/Color/Entity/Flag/"; F6 I2 f" D, q" ?3 Z( v( e
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
0 \! Z5 d- L% h H* }) X* a - )% c; M, |" f( x0 y
- (setq t2! P) ?0 G1 n$ {1 m. G
- (cond
# J# w7 V; N* j4 s5 U - ((eq t1 "Block") 2) ((eq t1 "Color") 62)3 t2 }( v# ?# \( V6 F/ C
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)) M2 `# B! a1 R: E
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)
3 H* N. F% y1 D. P- Z& q4 Q, F7 ? - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)/ L; W# k# L" F: b" L- k
- ((eq t1 "Vector") 210)& z! _( `. \* t( n2 Y" U8 o( h7 L
- (T t1)+ a: k! o) B8 n( ?
- ) C' n* Z! k5 q, |8 }8 A9 M
- )1 H! m) n! w- H+ V
- (setq t33 _# \0 z4 ~% U' K7 T1 X* g- G
- (cond
~6 O/ J/ w. t n+ P' l0 t - ((= t2 2)
' Z: k* i }- L9 C! @ - (if (= flexvar gtads 1)5 Z. ^; p& C! W: [9 w# F; g
- (progn" F' S z: _3 A; R6 ?
- (prompt "\n>>Block name to add/<RETURN to remove>: "): q+ p1 P4 V0 h# z: r
- (gttable "BLOCK")
9 k' F' R* u4 q+ r - )
. b4 L$ k$ H& k' o. f - (getstring "\n>>Block name to add/<RETURN to remove>: "); x% b/ D: e7 |- Z
- )( K* {; v4 j9 J. j& M/ b
- )
) f# M1 E( p) r5 ]# s e! ~ - ((= t2 62) (initget 4 "?")0 ?2 f4 D4 f+ {+ P. F9 x. N" D" O
- (cond
! t7 X* @; F0 `3 w - ((or (eq (setq t3 (getint
! P. K. p! }% |7 ~+ U) q( [ - "\n>>Color number to add/?/<RETURN to remove>: ")) "?") 0 `8 d i6 L1 @' _
- (> t3 256))
9 W W+ Q# S7 W) ~% H3 I' Z$ v \ - (ssx_pc) ; Print color values.8 S2 s5 }4 f0 |1 V) J- S# B" P
- nil4 ], H0 c$ H/ \& N H7 W9 t
- )
9 z$ E% W' y; r# W, `! X& [ - (T
0 K; L$ ^. v" j9 q2 v* `' _; a - t3 ; Return t3.
6 B v& N% D& }# D e" n1 g - )* H$ I8 f0 L0 s1 u
- )# V" P, }0 A. p1 T
- )4 {- [' ?1 l* }8 E
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
+ @5 E: e% c$ ^1 L4 S. p7 t - ((= t2 8). ^0 m4 O2 o" a8 {7 ]+ ]4 {& r: \, G
- (if (= flexvar gtads 1)
$ g4 T# Y b( q, j( `$ f9 H - (progn2 G7 G& Q" L9 M
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")
! O e8 L2 W/ _9 L& j7 Q: s - (gttable "LAYER")
7 ^. w, w7 F `9 j# U - )
) K7 M0 [4 C, U$ k - (getstring "\n>>Layer name to add/<RETURN to remove>: ")+ n, B$ G4 g' z7 w
- )
1 j0 @* U4 m7 U5 R$ F) r2 ?; I - )0 x1 ~( s. I K( V
- ((= t2 6) 9 D; ~( y( o$ \& U9 b8 Q$ ~- H
- (if (= flexvar gtads 1)
% ^2 y; R2 H z; T' ] - (progn
7 O5 x3 }5 k' @6 B0 \( p - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
& o! O9 A; t' s U' N - (gttable "LTYPE")
( M# K- n6 w# s5 [8 H. I - )
8 `$ g9 f7 j1 l- o' ]) I - (getstring "\n>>Linetype name to add/<RETURN to remove>: "), A a, z; ~9 v# v* V1 \$ O* l
- )
n/ V; O3 l$ l0 I - )& }: s3 n1 c4 j2 c
- ((= t2 7)
; W( ~5 s# E, I - (if (= flexvar gtads 1)- ~- H7 o' D! L, l
- (progn) M: O, y- F8 c$ x* [3 x
- (prompt "\n>>Text style name to add/<RETURN to remove>: ") u# m# |+ F8 g. H z0 x4 S$ y
- (gttable "STYLE")
$ |. P8 J! f/ X$ I. w9 t* T0 f ` - )
, a2 J2 r( s% o- S, [" V - (getstring "\n>>Text style name to add/<RETURN to remove>: ")' O% p# @9 D6 o' t7 o1 ^' u
- )# K2 {# R! E( A. p4 H) w
- )" A$ b4 ^7 R7 I" [% r
- ((= t2 39)
& z6 }' r: w0 |7 p. P/ e6 U - (prompt "\n>>Thickness to add/<RETURN to remove>: ")
% F. W2 |0 J$ A' ~( F - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
" D0 i0 a- n: s* J$ d! _/ }/ L - )
# \/ P, \ h g3 f4 @1 z, h - ((= t2 66) (if (assoc 66 f1) nil 1))
0 g) p; D. I& Q# S - ((= t2 210) 4 D2 \* s3 i2 B! C
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")0 s( x8 j1 |& ? X. x2 l5 k
- )' a# ~4 e; O! ^" `% A$ q
- (T nil)1 I1 L; K( W/ P- p+ d( c
- ). C B' U7 ^- h' |5 C: k
- )
* D3 k' ~1 A" ]. z: ] - (cond, T4 Q) u( g7 z/ P
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity/ ]# O" ~9 x$ |, c4 y0 ]2 b& v# o+ p
- ((and f1 (assoc t2 f1)) ; already in the list
3 C$ |& r5 C" j9 B5 q5 A: P+ F - (if (and t3 (/= t3 ""))
( P, ^# k- Q) H, y4 W0 A" V4 @+ K- ^/ a - ;; Replace with a new value...
9 c9 X' e# I& _) F' N5 V6 h - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) ) U0 A9 N+ j, _. H, J4 x
- ;; Remove it from filter list...
* [& e. s8 ` s' V2 [8 H( @ - (setq f1 (ssx_re (assoc t2 f1) f1))
6 I3 N$ q4 C) v - )
3 Y: i7 e4 Y8 O1 ? d - )
2 }7 A/ ^9 a+ I7 H0 p# Q - ((and t3 (/= t3 ""))3 d2 k% m* t5 h% N4 S- `7 j( R! Z
- (setq f1 (cons (cons t2 t3) f1))
8 k2 R8 s$ ]# T) k% a3 _( u - )
* s' b! i: p0 @) {8 u1 e - (T nil)7 `" {8 A- W6 f- X
- )
+ [4 G2 X8 m4 M& n; P - )
. w- S5 c- x7 L! k - (if f1 (setq f2 (ssget "x" f1))). f% K& Y! H7 Y! T2 G9 k. c. |$ M
- (setq *error* olderr)% ?5 w' w f) {# a1 S9 U" W4 P
- (if (and f1 f2) ) m* a( Z: q$ s3 v0 U4 _* L
- (progn7 b7 s2 t7 a, a: u
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
5 `& w7 q/ e5 z9 J' ~" z% i, a - f2 7 F$ _1 {0 s6 u# K8 {
- )( b ^2 Q2 r5 {; F+ z; L' y
- (progn (princ "\n0 found.") (prin1))
6 K2 {) e5 |8 [0 ]* h - )
4 W z9 W6 M. E - )
: ^' ~' O) v5 c8 h7 F5 H, Q - ;;;$ b; z- K. |, i; m
- ;;; Print the standard color assignments.5 [- `4 Y6 C" w& X
- ;;;
2 Q% X! S# C4 F3 [ - ;;;% w" j4 ~( p- {3 G
- (defun ssx_pc ()
* j& s) u# Z- m$ B" {. `0 B8 t - (if textpage (textpage) (textscr))" m- p, [# W- x" Q, h! k# ?7 x
- (princ "\n ")
; u! k: _# k# |* A, `: d - (princ "\n Color number | Standard meaning ")
8 h0 N: r. i' V) O7 ^% y - (princ "\n ________________|____________________")
5 S% E* c# w9 `- I6 o4 ^& @1 Y - (princ "\n | ")
) y3 E$ u: E6 N% M9 z; b7 G - (princ "\n 0 | <BYBLOCK> ")8 y" q* J3 }. u& P2 }+ u
- (princ "\n 1 | Red ")
5 c4 M( ?+ D7 a5 D' m9 Z8 y - (princ "\n 2 | Yellow ")) _) i6 k1 w N$ [5 J+ R8 w
- (princ "\n 3 | Green ")
- o7 r& ?( P3 Y, j5 c" u - (princ "\n 4 | Cyan ")2 W5 t$ Q' f6 y0 I; Z" `
- (princ "\n 5 | Blue ")$ a4 l3 b8 x9 X* K
- (princ "\n 6 | Magenta ")4 E- B! r0 t8 s) V; L/ e
- (princ "\n 7 | White ")
$ n8 S- f8 D! s( ?' O$ @- Q E - (princ "\n 8...255 | -Varies- ")
9 v0 w1 d. D2 L! e - (princ "\n 256 | <BYLAYER> ")
" g4 g. V( E0 } - (princ "\n \n\n\n")+ a1 ?4 n9 z0 [5 r u2 r
- )
% m5 ^# N0 x$ Q; y! ]* O0 r9 K - ;;;1 d# P3 t* X' u" v3 F# a- \
- ;;; C: function definition.) y( S) q) }1 g
- ;;;+ S- F& y# }. }: p9 m
- (defun c:ssx () (ssx)(princ))( j. i* e9 C6 Y
- (princ "\n\tType \"ssx\" at a Command: prompt or ")5 E/ t# ~8 s! `$ s
- (princ "\n\t(ssx) at any object selection prompt. ")
" `2 |' f, t& {6 H" ^ - (princ)" Z0 n- q0 }; L+ {) X1 v/ }7 J" c3 J
3 s t9 o( k L( U( s1 `- ;;;--------------------------------------------------------------------------;5 d( i0 D p" y0 g4 y4 T
- ;;;--------------------------------------------------------------------------;
2 v8 j; W$ O, H2 O* K3 x - ;;;--------------------------------------------------------------------------;
8 d& }( \- ~! @' Z - (defun S::STARTUP ()
4 d C8 ] M' F* q* X# R" e - (setvar "cmdecho" 0)3 x- T0 g6 G) W9 }
- (setvar "cmdecho" 1)2 ^$ S f' f/ k' E) M( z
- (setvar "LTSCALE" 10)/ {0 v" a- \, P1 {0 w) [7 f( p
- ; G* |8 `; C) `) i
- ;(command "_load" "chenKH.fas")
7 }) O- t6 S& C8 d: e" Y - ;(command "_load" "ctcot.fas")
5 m4 P }8 D: t4 C - ;(command "_load" "damdoc.fas")
; Z/ A1 b7 ]8 p# s n8 E - ;(command "_load" "ghichu.fas")- s, y7 U! }* d5 v9 g
- ;(command "_load" "hamtutao.lsp")* T5 s5 o! e9 @
- ;(command "_load" "KHOITAO.fas")
' c& A1 ~' |5 ?9 T - ;(command "_load" "KHthep.fas")# ^# Z; u1 K7 J9 _6 U0 Y. }& u
- ;(command "_load" "mbmong.dcl")
* V' \3 f+ f% H2 e, h2 X7 R - ;(command "_load" "mbmong.fas")
2 \' B9 k, n' Y+ P3 m - ;(command "_load" "mccot.fas")
# A1 L3 T# Z2 z) G, Y - ;(command "_load" "mcdam.fas")3 r. {! }3 t$ t
- ;(command "_load" "mcmong1.dcl")$ R. O/ p9 C9 P! T6 W
- ;(command "_load" "mcmong1.fas"), n9 g" N3 L: i( c
- ;(command "_load" "mcmong2.dcl")
1 i+ w# k s) T) U i+ a - ;(command "_load" "mcmong2.fas")
4 A2 Y, o: w) s& T+ d. A% s4 h - ;(command "_load" "mcmong3.dcl")9 L, S( @4 B* H
- ;(command "_load" "mcmong3.fas")
/ o4 p: z2 Z' c: D1 \* u4 h5 s - ;(command "_load" "mcsan.fas")
5 \! s6 c3 E. `4 d2 p - ;(command "_load" "thepdai.fas")
0 g) V ]2 l5 V0 U - ;(command "_load" "thepdoc.fas"); K2 I% X2 h2 k8 c6 X' B! \$ F3 u
- ;(command "_load" "thepmb.fas")
) w: j' Z E+ B - ;(command "_load" "thepphbo.fas")
4 K' B6 E* o6 C0 B) N% |" R - (command "_script" "thongso.scr")0 n$ _; F- m4 s1 P: Z1 z
- ;(command "_load" "thongso1.dcl")+ a' P8 h$ [; B* ^
- ;(command "_load" "thongso1.fas")
8 y, F D3 s7 N' K3 r - ;(command "_load" "thongso2.dcl")
8 r6 m1 a$ f% G* @ - ;(command "_load" "thongso2.fas")
' O: r+ t! g. K - ;(command "_load" "tietdien.fas")- N9 I5 F ^" H) i# ]2 g
- ;(command "_load" "vehan.fas")2 W7 y2 o" b( s3 @3 g! p1 N6 e4 e2 t2 G1 T
- (command "_load" "phamDuy782006_TKT.lsp")3 I& k$ o$ I/ `, T4 L Z- ]
- (command "_load" "phamduy782006ganhtd.lsp")
3 a; O% u) z. V! C9 |, X8 {$ y - (command "_load" "phamduy782006ganhtds.lsp")
6 v6 R& i7 w$ [6 I* r D y9 r! _ - (command "_load" "phamduy782006htd.dcl")" d+ l @0 ]$ K' G5 r
- (princ)
4 T% K. W& m1 q4 e: |3 _ - )( p: o+ Q- u/ v7 }7 ]2 G& F5 i
- : k4 k1 N: J4 h9 d
- ;; Silent load.4 C* w( _( F0 I; b" J$ s
- (princ)
+ }6 H1 }! A0 ]7 Y
* b( Y6 m+ ^/ ]4 g8 T) \5 I# }- 5 x# W6 }3 J, R5 f/ \! `: t8 I/ G
- ;; Silent load for the Express Tools.: _# u5 ]' J1 x% w+ S/ j: Q
- ;; Altering this line will affect Express Tools functionality
M- o; t, p' L2 P8 B" U, s - (load "acettest.fas" (princ)) D& p- `9 A, l' w7 H' r; N3 u' G
- �32
Sao chép mã
2 `# Y. q# @2 r3 f1 Y00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
# X2 H1 n# ]) u |
|