|
|
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 |
- ********************************************************************************
2 \7 s* d; `$ N2 v3 ~2 V - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
$ c" Y( C# k; {, i - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
4 v& I/ k6 a ?2 y5 r1 s/ j: Z - * Suu tam & Soan *3 G) S% w7 G5 i1 T- A
- ********************************************************************************4 C7 a, e' E$ U
- ; {, d9 r6 T1 S8 ]/ R
- ; Next available MSG number is 1045 U% H3 f; L' {% K+ ^4 i- p
- ; MODULE_ID ACAD2000doc_LSP_: e( n9 _ L+ Z+ h- f
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000; u3 |, k0 b5 A' }
- ;;;
3 a$ _/ e4 j1 w) @, ]2 f t - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.. u, ~0 K: O- C" \7 o
- ;;;
; ^$ c3 f* a* E6 g- W1 U; K+ X3 a" S - ;;; Permission to use, copy, modify, and distribute this software
0 U" r+ C3 f5 L; R7 _% F - ;;; for any purpose and without fee is hereby granted, provided
K) s2 v) y3 E+ K$ U' w - ;;; that the above copyright notice appears in all copies and( e9 m' t* @/ G- S2 o
- ;;; that both that copyright notice and the limited warranty and1 Z' V' U8 m+ k4 `: k
- ;;; restricted rights notice below appear in all supporting' Q1 L0 U* `$ w0 ]7 J5 K) e! D
- ;;; documentation.
8 B# n" j# c6 n8 y1 m4 I - ;;;
. _7 i# W& w0 V. O6 \- C" M - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
$ k( b: p( j% X - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF, |3 \& E; S2 U0 B9 E
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.; I8 L% N3 u# V
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE# S2 T) m" ~8 S
- ;;; UNINTERRUPTED OR ERROR FREE.
# G( D: z- S1 E$ x - ;;;
5 `1 e* w: P% T- E. j - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
3 }, H8 }; X3 P0 ]( [$ u" Z - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer. }: T0 y# D) {2 Y2 }
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
" |1 |) B, M. f - ;;; (Rights in Technical Data and Computer Software), as applicable.
8 H( w8 u: `( v$ k/ J+ O! e - ;;;; D' m4 p8 L) j, ?, o
- ;;;.
, {. `+ M: z3 |: U4 L - ;;;
# W4 V3 h" D2 g - ;;; Note:# X2 O0 Z: }' F3 z& q S2 |- k
- ;;; This file is loaded automatically by AutoCAD every time 4 x7 t+ p( Q: S, _- [ S2 ^
- ;;; a drawing is opened. It establishes an autoloader and
* r8 z, K; J( F s* f* d# u& ]7 m - ;;; other utility functions.
/ f2 w( ^% ^* K6 H% V& o' `% X - ;;;
% [8 E8 o( S- s) h6 a' i+ j: ]1 | - ;;; Globalization Note: ; X, o2 S; g6 O2 C$ B# C
- ;;; We do not support autoloading applications by the native
( r5 ?! V- ~4 _+ V8 ^4 b - ;;; language command call (e.g. with the leading underscore; r+ a" W6 {' |" `( \& O
- ;;; mechanism.)
1 ~/ N: G+ s" R/ y
8 e. l0 [1 S2 y$ e# \% s- 1 x3 T+ G0 D0 c4 r' N/ X0 W3 Q
- ;;;===== Raster Image Support for Clipboard Paste Special =====# D: S3 N& A! L% I# \$ R
- ;;
$ x a, L- w6 M7 h. Q9 d - ;; IMAGEFILE L" t6 r: W- R# q6 z+ D
- ;;' _/ A E/ F `+ l; E7 z% @
- ;; Allow the IMAGE command to accept an image file name without
+ G+ p' Q7 x. m, P" n - ;; presenting the file dialog, even if filedia is on.
( l, p2 o, P8 E- |8 y) B! q% v0 T7 V X - ;; Example: (imagefile "c:/images/house.bmp")
* F/ l% f/ x [, w( Z - ;;' L F* P4 b# g
- (defun imagefile (filename / filedia-save cmdecho-save)
5 ]6 X8 A4 U) y - (setq filedia-save (getvar "FILEDIA"))- Y2 u& f# Q% x6 f1 m% @$ x
- (setq cmdecho-save (getvar "CMDECHO"))
* u! M/ r2 `' ] - (setvar "FILEDIA" 0)0 e8 c+ @3 k1 v* V% h
- (setvar "CMDECHO" 0)
A7 T" C2 s8 Q/ k8 M( m - (command "_.-image" "_attach" filename); p" m$ D9 A' Y/ s; k( u! F
- (setvar "FILEDIA" filedia-save)
1 Y& D7 X! X6 z. n& z& u7 M' c - (setvar "CMDECHO" cmdecho-save)" ^, }2 q! T4 Y2 e/ m
- (princ)
& w9 Z) I* g% `8 t" N - )
! p8 m2 ]- b/ u$ K0 B/ m - , d: v& ]5 k/ j O: D$ @( [
- (defun c:zx () (command "zoom" ".5x"))
5 }9 v2 j' w2 |2 I. w7 } - (defun c:zz () (command "zoom" "p"))- e d/ B2 p. Z
- (defun c:za () (command "zoom" "a"))8 g& n6 }$ J4 ^- p* G, |
- (defun c:zd () (command "zoom" "d"))
" V6 }5 s2 Y q# I" p \+ O - (defun c:ze () (command "zoom" "e"))0 {9 u% Z7 j9 F0 Y
- (defun c:zr () (command "zoom" "" ""))/ `- U; z" j; a, K+ X/ e9 t7 e
- (defun c:vv () (command "ucs" "v"))
% g& o0 g6 i# H/ P! ^9 Q - (defun c:co () (ssget) (command "copy" "p" "" "m"))
( W9 D+ G& p- s8 h% z - (defun c:c () (command "circle"))
; `( {- l5 ^$ p0 O/ F% S, Z - (defun c:rt () (command "rotate"))9 U1 W+ k7 ?8 V$ f% _
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))+ t' v& e$ G& n1 M: w
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
% d5 v/ _! r7 w$ b8 s5 d - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))- t8 K2 z: ]* ]/ b
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
% H+ c; D* O5 |! d$ p" o - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
6 l) u# C$ \$ I6 Q q. I$ e - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
. L* P! G; Y( [. r5 `/ w n+ e. E - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))# y y( r! a% l* p; I6 f
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))/ z% h" Q3 W( {+ z
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))7 ^3 n5 e- a! c5 @- P! }! H. [# Y1 J
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))% {* D" Z) p$ P7 e( ]2 P, v8 `
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
. L3 K U0 m' E* e' c W( Y' z - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y")); N% a3 P, b3 @* k8 P& s
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
5 O1 C( y, ~" K' Y3 i H" Q
, R, c1 O9 R( G8 i; F S5 _- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)8 d) D- C5 h2 N# ?- N! |- l8 C
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)/ P0 h8 T( `* ~+ @
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)- R% c J5 w0 b' @& A8 A: X: l
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
* K: G) k& R- V! M% v+ _ - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))" U0 W; d8 H* C" _ K! s$ m
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
; `2 u4 z# ?) c - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
$ T4 M3 D I$ c, f: g - + N1 S. A% [3 D6 a0 Y e- ^
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
) S/ r$ Q% @4 e) D+ e4 @1 x - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
8 }4 _$ ~" O" B/ J, Z5 ?- Y* h - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n")), `# q( S( i, b$ B6 E
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))9 n- C; Z( W2 `) g4 I7 E
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
" l+ l& o6 U! N j c" D - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
( B0 s3 z$ J' R
: x: K5 y; [" H3 h" e( I, p- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file9 [ V. M' M$ |, G* M0 f
- : |* c+ d i" j6 Q+ m
- ;free lisp by cadviet,cd2k445 k' W( l; F/ X5 ^4 j) q( H
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830( n# i, s E/ _" H
- (defun c:FTEXT (/ ent tstyle )" ~( v7 V F* _1 N+ o: v
- (command "undo" "be")
; c' t# w6 H. ?- r/ ` - (setq ent (entsel "\n Pick text :"))
7 u, \' q, Q$ ^5 y8 X - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
/ P3 y# q7 b) I& d0 l - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
: f3 }3 c, Q) q* S; g# z - (setvar "TEXTSTYLE" Tstyle)1 o/ M& ]# ^, O, M3 w4 a: I
- (command "undo" "end")7 z; M, r; m9 [. y' k b4 w4 v
- )
% r- S0 X' R1 z) | k4 m$ { - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
N0 J+ b" Z7 j* D! z - " g9 @! _# |- E3 M/ [8 P" I
- ;free lisp by cadviet,cd2k44
0 `1 d) }) ]/ T" L1 s" W - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
6 }9 @! g2 a+ U3 h - (defun c:Fvnh (/ ent tstyle )7 H9 |+ n8 w& Q1 N6 b
- (command "undo" "be")
( L4 {% G' L' h0 T% W0 P% S$ V) ~ - (setq ent (entsel "\n Pick text :"))
3 ?* Q+ l5 H3 }' T2 V - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))- {& l! P9 _, {# T, L4 N
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")* ]9 g( R& L6 I$ [1 M+ @ ]5 ^
- (setvar "TEXTSTYLE" Tstyle)
+ P6 v8 A# `2 G( F7 D - (command "undo" "end")3 t' n. u3 A* c; }
- )+ P! W7 Q% r, C! ]2 i% D
; {- D$ d- @7 o! t- ;free lisp by cadviet,cd2k44
2 k: ^4 H' r2 M; _# b - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
+ Z5 D! O+ ^" X2 N9 @ - (defun c:Chbg (/ ent tstyle )) k1 J* b) k/ s+ @* V; ?5 `: Z
- (command "undo" "be")
0 \+ j& }! z! x - (setq ent (entsel "\n Pick text :"))
& x4 F8 G" N7 V1 U( j - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
+ `! O5 Z3 E. }5 ^2 c - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")7 b. h; X- I- v3 B4 Y
- (setvar "TEXTSTYLE" Tstyle)
6 h: F7 a& {; w5 O! I - (command "undo" "end")
: C X3 q% {! d" |& \ Q- p - )9 y" k- I' r( N/ r" m6 s
$ I3 T; z, F: {- ;free lisp by cadviet,cd2k44- a$ @ u9 z" c8 c
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830: M/ ^1 H6 X7 \; F' Z# _3 C- N- f* b
- (defun c:Chsm (/ ent tstyle )# K, m- a- c# K# M/ L
- (command "undo" "be")
% V3 H6 U5 J- j0 v, ` - (setq ent (entsel "\n Pick text :"))3 y0 O8 r3 T2 l/ s8 G! P" U, \
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
* f- \4 r' e; p. T( { - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
: Y7 ]6 ]$ T6 {# b, k$ D* R - (setvar "TEXTSTYLE" Tstyle)
# Q. G4 K8 ] S, x I - (command "undo" "end")
) C5 Q( H8 W3 `" I$ l0 M+ L - )
7 k6 H2 p! \0 W& g8 ~3 l - 3 J; d* ~2 v9 `( [- }
- ;free lisp by cadviet,cd2k440 M, p% K2 V+ F# O3 Q Y
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
& M: W7 S& e, N& g# a - (defun c:Fttf (/ ent tstyle )
: {! E6 D, ~: |% R1 G8 { - (command "undo" "be")
9 q! C3 M; A* w" s {$ x - (setq ent (entsel "\n Pick text :")) ~; a. R% O6 _2 r2 n0 u
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 x& H& }$ I: K5 R6 E9 f& V# w
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n"): G4 O9 u- i- t" }; f# N# b5 W
- (setvar "TEXTSTYLE" Tstyle)% F% @3 f* T# h/ B* ^
- (command "undo" "end"), p `! Z: p4 `7 i9 N O' A
- )
( d2 X. E d; U - 2 P; ?) }; ?& h+ r8 f
- ;;; ============================================
, N3 n' a7 j2 e - ;;;% t0 E8 E# X# O8 S o* q
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
7 M B9 d1 u) d; [ - ;;;
( X5 Q; l, k( E% E0 t: W - ;;; ============================================
/ R) m: L% R$ E ` - / R! T; @% S$ X! D& y9 K" v, f
- ;;; ============================================: {0 F0 q7 b$ \/ J
- ;;;
& F& N# f: ?8 i. h& ? - ;;; CREATING FROM AUTOCAD2000
) q* m! S- V& S" d5 S7 r. X, }- k - ;;;$ I! L# u4 x4 F: \: H$ g
- ;;; ============================================
5 X+ [% G$ H+ v) n1 S - " |5 n; o5 H# m& o3 p
- (setvar "INSUNITS"4)
7 c2 g( g1 U9 G0 I2 e( r - (setvar "ANGBASE"0)
8 p1 f3 I+ j0 ^7 u# m# f C7 Y! { - (setvar "ANGDIR"0)' t p+ k! I- `8 {% }1 V
- (setvar "AUNITS"0)8 i% c) L' e/ k8 h' b1 ?
- (setvar "AUPREC"8)$ O+ w' [ K: V
- (setvar "LUNITS"2)
. r8 ^$ Z) K/ k% Y5 v+ H - (setvar "LUPREC"8)6 K) D; @& p( z- |& M5 |' d
- (setvar "ACADLSPASDOC"1)
1 b( q: e, _3 @# N1 l - (setvar "pickbox"5)
% C# B$ _6 o, C' k - (setvar "blipmode"0)4 N7 z7 ]2 V8 x7 f( _ ^& n
- (setvar "mirrtext"0)6 K5 Q- s. ?: ]3 E
- (setvar "cursorsize"100)
. x6 s5 W+ n0 R" h - (setvar "ZOOMFACTOR"75)
3 j- V) j8 x2 j3 d - (setvar "LTSCALE" 10)
! B1 M1 N$ Z4 _% {! r, \ - (setvar "lwunits"1)
3 _- D% ^; ^5 D9 K3 o5 [8 M6 z+ s - (setvar "DIMBLK" "Closed")
& w' ^$ b% ?! l1 y5 y8 S - (setvar "DIMGAP"0.0693)1 k/ x9 J# i# e9 W9 U" u
- (setvar "DIMASZ"0.20)
$ J: k" l% {! o - (setvar "DIMCEN"0.2)
0 ` E: j- j! }. H, i+ } - (setvar "DIMDLI"0.1)3 {; G4 [( w3 W! [
- (setvar "DIMEXE"0.0693)% j% Y0 U& [5 M) q- M4 b: e
- (setvar "DIMEXO"0.25)
( d5 N( e2 y3 k+ m - (setvar "DIMDEC"0)
' j( ]2 g+ T. k$ _- h - (setvar "DIMTIX" 1)
. e9 `: J: s3 I7 Z; k) x+ T - (setvar "DIMTXT" 0.099)" {$ e/ z S. T/ V/ p
- (setvar "DIMCLRT" 7)) u& i0 j% f7 Y& d
- (setvar "DIMTVP" 1)) F* Q2 n; C K. {5 e4 {
- (setvar "DIMJUST" 0)
7 O% R0 ?. H5 X! N0 k" P+ p - (setvar "DIMTIH" 0)
0 j, H) ?! W6 ~) F& z - (setvar "DIMTOFL" 1)5 T1 M/ Q7 _4 b1 K4 R; @) F
- (setvar "DIMSCALE" 1111.1111)
. i( _ P+ U# C- V% T+ I. X
! H2 F6 S& m7 S- }5 V- 4 X7 I0 T4 w7 c) P: X# p( j
+ ]& q# s. u7 d2 S1 D; J1 Z/ s- (defun c:zp () (command "'.zoom" "p"))1 m9 ]2 T; J- s( H0 q5 m
- (defun c:zz () (command "'.zoom" "p"))& j! d2 v- z8 H7 E2 R
- (defun c:ze () (command "'.zoom" "e")) V: L( R1 f0 K" j2 {2 e8 s6 `
- (defun c:za () (command "'.zoom" "a"))& |! p9 z8 o; g
- (defun c:zd () (command "'.zoom" "d"))
0 u4 U! Y7 S1 o; X6 e2 _ - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))( |% t5 N5 x1 v* }2 b4 W7 t6 _% c1 r
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))+ b' v5 A2 q. A# I% C! ~3 ?+ x
- (defun c:de () (command "ddedit")(princ)) w& o( V* [7 o
- (defun c:dda () (command "Dimaligned")) V- W7 }/ Z& T0 x$ D( s" b
- (defun c:ddb () (command "Dimabaseline"))
- |, H1 G: h$ f0 o- f - (defun c:ddc () (command "Dimcontinue"))
; b8 t* a9 B& C$ T3 [& C8 `3 ?5 c - (defun c:dde () (command "Dimtedit"))
( N! h* J' U, U( r2 v4 E) E* f - (defun c:ddf () (command "Ddattdef"))
! n: h$ L) J7 f; U' j2 Y - (defun c:ddi () (command "Dimdiameter")). p) d0 c e$ `4 }' _# X
- (defun c:ddl () (command "Dimlinear"))
3 C3 T2 X; o9 h$ J - (defun c:ddn () (command "Dimangular"))
/ t* w# N1 \. q C- B1 g" k - (defun c:ddo () (command "Dimordinate"))
0 e5 G. e( m9 H, J - (defun c:ddr () (command "Dimradius"))
) F6 k+ ~7 Z6 p7 j8 u. C0 Q) N - (defun c:dds () (command "Dimstyle"))8 J3 E. \2 o. c
- - K1 A( [* Y r8 Z$ c# b& w. C
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)7 A9 F8 Z5 w6 |/ e5 V! q9 |8 T3 m" z
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)7 e, o8 d3 I8 C1 C
- (defun c:UU () (command "dim1""update""all"))% E8 f& ?! a- n3 w8 ^- {
- (defun c:ded() (command "dim1""tedit"))
) s* z `: Y v2 H& Q' K - (defun c:da () (command "dim1""ali"))
, l0 e. z9 w7 q- T0 C- ` - (defun c:dll() (command "dim1""l"))
* d) G) X& z! v0 j - (defun c:dan() (command "dim1""an"))
, {) ^6 ]" E! s, e# P9 v b7 u, l - (defun c:d1 () (command "dim1""ra"))2 V' U7 y2 {& l6 k/ |2 R+ x5 i- @) E
- (defun c:n () (command "dim1""new"))
3 x4 q4 U O5 x) F: S N& m" N
0 @' G9 `, X& n( S i5 ?' ]+ I9 V- (DEFUN C:PE () (COMMAND "PEDIT"))
2 q' j5 c# J$ N2 X' o - (DEFUN C:PL () (COMMAND "PLINE"))+ @& L5 p* h3 ?& x/ G( ]
- (defun c:dd () (command "dist")(princ))
" T0 S7 n$ h- R9 e4 L" X - (defun c:w () (command "pedit" pause "w" "au")(princ))
2 [. F! A" `, Z. H/ S, | - (defun c:pg () (command "polygon" "polygon"))
+ {6 }9 [( ^3 [. F# T - (defun c:el () (command "ellipse")) a* l' ]7 N+ ?, l' S8 W+ Y6 q
- (defun c:xe () (command "explode"))
& Q: v' `. O" w& z% a2 g3 [6 M - (defun c:eex () (command "extrude"))4 W7 k4 M1 Y1 d K r2 n
- (defun c:xg () (command "xline""a"))/ N$ Z0 k6 i s' U3 E6 ?% n
- (defun c:xh () (command "xline""h"))
5 B2 k2 T4 f( z+ X2 k - (defun c:xv () (command "xline""v"))- z6 S8 Y# z0 E4 C
- " I t) P' z J! i9 }2 S) G
- (defun c:oc () (command "osnap""cen"))
+ _' w& ^$ x$ A% e( ]& @ - (defun c:od () (command "osnap""nod"))
+ b( T( Z& w& D; b" L } - (defun c:oe () (command "osnap""end"))& m2 M+ A# N5 E1 u4 Q8 v
- (defun c:oi () (command "osnap""int"))
$ y) K6 d: u) Q! {0 r) {; i, q9 J - (defun c:or () (command "osnap""per"))
8 R1 ?1 b/ A# E h1 C - (defun c:on () (command "osnap""none"))
+ n5 b$ _: {: k* [6 M3 e2 u* C) v$ p - (defun c:oq () (command "osnap""qua"))
; K+ k$ x! k3 R1 y0 s - (defun c:om () (command "osnap""mid"))' b9 k h6 H! J! Y; e" m
- (defun c:ot () (command "osnap""tan"))
1 e! Z; g. j p) H, V; s - (defun c:oin () (command "osnap""ins"))& \6 t: l5 B) X+ V5 h3 l
- (defun c:oa () (command "osnap""nea"))
: W7 m" f: `: v0 {5 @2 z1 F - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))4 R" ?3 R* G2 J0 d3 T! G ]# |
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))* d; Q7 `5 I7 _# E% @6 r4 M: K
- ;(defun c:nn () (command "new" "y" ))
" ?$ l5 C$ r; Q' I$ v; x - 4 H& L7 R, l. }+ x/ R
- (defun c:/ () (command "limits")): s) ^( u( P* J) b9 Y; R: H N1 W
- (defun c:`1 () (command "region"))" L0 B M7 ^0 ~
- (defun c:`2 () (command "subtract"))
- L" W: Y1 q/ d5 B- L* _% f# D! D - (defun c:`3 () (command "union"))6 y l) y; p/ N7 K5 e) t
- (defun c:`4 () (command "intersect"))
# R+ n: C! Z R) e1 P - (defun c:`c () (command "cal")); A- A, J6 {) H' i2 a3 \
- (defun c:`g () (command "Polygon"))
% F3 Y' O! E! C2 ]& }' \8 w# q
( Y: v* o- C1 k/ z+ ?2 ?8 L7 Q6 y" t- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
, }- Y' y1 D2 _- M - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ)) x# M( t. V+ a. R( b W3 v
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)
1 V. I# Q5 E+ O' D" L$ N- L+ r( t - / t2 ~ T( A! A
- (defun c:ddm () (command "ddlmodes" pause))
0 w$ J+ N! N: B; {- ^
# f0 J" U( x5 F; L' W- (defun c:sha () (command "shade" pause))6 T, j% ?2 |3 D/ \! G* r7 B8 k
( g# P3 L( g. q: ^- (defun c:sr1 () (command "surftab1" "p" "" pause))
3 q9 l3 Q% A9 K" ] - (defun c:sr2 () (command "surftab2" "p" "" pause))
9 c S0 E, ~+ H6 v - , r. w* m; _7 i6 F& ?
- (defun c:ad () (command "audit""y"))# {; O8 a6 z, J- e2 U Z
- (defun c:q () (command "quit"))
4 R) n, J' P% T1 T: j6 [
5 R% R& X+ J! W+ _# V- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
' G+ a$ e6 i' d! [% {5 ^. { - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
) P0 F7 P) X/ U! Z. g/ z" M - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
# h5 Y* k7 @; ?, O. o9 }9 z" C( m - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
6 ~; D. h% c# y# Y5 G& k+ X - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
! Q, o& i! \8 x% {% E - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
, u1 Q1 g/ g7 Q) @( ^4 o' U - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
% |; h$ x' X: Z4 I. X7 Q k4 [# B7 l - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
8 D J' W- v* B7 Q - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
3 J% s" p& j# p3 j) }& q D - - s% v5 y6 a7 n
- (defun c:u3 () (command "ucs""3"))! m: b- Z5 [' l8 r2 k' R0 c3 O
- (defun c:ue () (command "ucs""o""end"))9 s) J+ b/ l6 ]6 c/ t n. Z
- (defun c:ui () (command "ucs""o""int"))& L ^& F8 x* V6 o0 A6 P; M+ ]4 K
- (defun c:um () (command "ucs""o""mid"))5 a2 z" T' ^; G8 p% F! [
- (defun c:uc () (command "ucs""o""cen"))
; F9 Y3 J6 k: s: S( ]. P - (defun c:uq () (command "ucs""o""qua"))
! v# _5 l& j; } - (defun c:3s () (command "ucs""3"))- v% h7 J/ i( S! E* Z# u# B D
- (defun c:sx () (command "ucs""s"))
8 F: m+ ~9 v1 ? x - (defun c:sf () (command "ucs""o"))4 u) ^! Z8 i' `
- (defun c:sz () (command "ucs""p"))6 e# C I! z f% j1 Y* R8 f6 }6 k {
- (defun c:sr () (command "ucs""r"))
/ j r- ?3 `, C- Y - (defun c:sw () (command "ucs""w"))4 z" z1 E- R8 R ~
- (defun c:fv () (command "ucs""v"))' u j4 |/ j+ Q8 e
- (defun c:ux () (command "ucs""x"))5 u K. y9 ]" T) x: q- O, i
- (defun c:uux () (command "ucs""x""90"))8 E- K4 Y3 \0 {# d2 ` v8 R% d% S
- (defun c:xxu () (command "ucs""x""-90"))8 I( ~7 V6 p0 l4 J
- (defun c:uy () (command "ucs""y"))7 i7 E8 u8 D% s) {
- (defun c:uuy () (command "ucs""y""90")), L* J% ^" g, a3 u6 {; P' }, O/ `2 T8 y7 ?
- (defun c:yyu () (command "ucs""y""-90"))# Y+ ?# ^' s5 W! {" i
- (defun c:uz () (command "ucs""z")) w4 ]" E4 S4 T4 ^! V ]
- (defun c:uuz () (command "ucs""z""90"))
# D' t/ H, Z6 s2 r% o9 k - (defun c:zzu () (command "ucs""z""-90"))# L |$ C$ x! ]6 k- G/ b# t
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)
' i9 g/ [! z& m% h- u& k$ g" { - (defun c:ucm () (command "ucsman" ))(princ)) f' Q" g" D- T! a; G
- 7 ]6 O: p& w s+ {$ P. w6 q( z
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
8 c% C8 X* U" }. [; | O - (defun c:sd () (command "vpoint""_non""1,-1,1"))9 \$ M% g6 d4 H/ C5 ?
- (defun c:se () (command "vpoint""_non""1,1,1"))
( i; O" i X* I: Q - (defun c:sq () (command "vpoint""_non""-1,1,1"))
! q+ _$ D+ r$ H; w( e: s/ f0 { - (defun c:vc () (command "plan"""))( Q$ Y. A: O9 s
- (defun c:vd () (command "dview""all"))9 D2 `/ }) @- X7 e q7 w
- " }! y/ \# U5 S' N% A
- (defun c:TT0 () (command "tilemode""0")): C9 x1 o7 x4 h$ K0 H0 b# R
- (defun c:TT1 () (command "tilemode""1"))
9 H2 E7 U% B; S8 P
4 `# N6 `9 G7 c2 k- (defun c:vt () (command "vpoint""_non""0,0,1"))
2 Z' y, N6 u5 d+ S7 y2 _ - (defun c:vb () (command "vpoint""_non""0,0,-1"))
! C& q* z# q a - (defun c:vl () (command "vpoint""_non""-1,0,0"))
! a! q8 ?( {) u+ _9 m0 n - (defun c:vr () (command "vpoint""_non""1,0,0")). r& `8 D1 x; L6 W5 j j
- (defun c:vf () (command "vpoint""_non""0,-1,0"))9 }2 }( ^5 _3 T9 V% c' y
- (defun c:vk () (command "vpoint""_non""0,1,0"))
* M, r, Y! F/ ]5 R; `% x; e - ( m- j' U/ U; z2 Y1 o! A0 N4 W
- (DEFUN C:MM () (COMMAND "MIRROR"))
0 S/ Z) u9 c% v% `& k9 \. @ - (DEFUN C:MP () (COMMAND "MOVE" "P"))6 d( D% N- Z/ V2 J; B) m! B- v
- 4 P y4 f; R% f9 {1 i% d: o
- (defun c:mee (/ a)
# d6 Y8 Q' U' |; p: H - (setq a (ssget))(command "move"a"""end"pause"end"))
6 T0 U/ r! _4 z2 ^) ? - (defun c:mc (/ a)* V$ G/ v2 Z* j) W
- (setq a (ssget))(command "move"a"""cen"pause"cen"))8 v5 f O2 `/ e1 K- t5 C/ Y
- (defun c:cc (/ a)4 G: q# k+ Z' u+ h3 w! N
- (setq a (ssget))(command "copy"a"""m"))$ _$ s7 m+ D( G- q* `+ k
- (defun c:ce (/ a)4 z2 @1 u5 n9 q0 T3 _( ?% r$ _0 [. M) f
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))
$ j. g7 l0 b# J: j8 @# u - (defun c:cn (/ a)
3 n" ]: H0 I0 T" G: a! A - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
) ?6 M, P" m+ c/ k) ` - (defun c:tl ()(command "trim""l""")) W P- o! N% S2 ]) s( |5 l' ^* J
- (defun c:tf (/ a)* z; u! W+ ?5 Q, E1 H' e
- (setq a (ssget))(command "trim"a"""f"))* r2 ?- n" I: E) t6 Y
- (defun c:el ()(command "extend""l"""))
V3 T/ g/ k# ]9 G1 P - (defun c:ef (/ a)% @( {$ a0 Z( h; N1 L5 B$ E8 z
- (setq a (ssget))(command "extend"a"""f"))+ o4 J, ?6 H" Z' }
- , D1 k& y1 s' G
( F: W/ i# R& O$ a! U: T1 e- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110")) s) k! r; `7 Q( R
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
5 Y9 p' g& v' z( p& g - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330")), h0 b. v( Y) t) g
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))4 ] _" i+ Q0 T: h. d. R& K
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))6 g' M. ~* k% r+ X
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))" p! N8 ]- b: o( T
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
4 t5 D! |7 _% y9 Q - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
6 J8 `9 b- B, H5 A6 Q" G$ U7 N" x: T - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
7 X# x# u% E" L4 L - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))) H) W. z9 n7 V: p+ o. L N! O t6 V
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
# f7 y: d. z" ^5 ^3 a - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))4 a. N6 W5 k# V+ h+ A7 d
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))0 _0 |4 [% N0 O" J) P
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))* q9 ]4 a; @5 \1 x2 W7 u$ |6 f( C
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
7 Y' t! u6 W( H" j - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))# E2 U$ h4 E( Z" F2 C1 N
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))) w& u* p9 P/ @+ ]& J9 m% D" U
9 N6 P/ e9 P" V2 ?7 g- J- (defun c:mla () (command "-mledit""av"))
' s$ p% B& f+ @: ~# E2 X ]) `9 l - (defun c:mlc () (command "-mledit""mc"))
# x, Q, Y+ E" S: Q/ X - (defun c:mld () (command "-mledit""dv"))+ O7 s( `3 p0 `# j$ B% ]
- (defun c:mle () (command "mline""end"pause"end"))
5 m6 f- e8 _: P% y4 L - (defun c:mli () (command "-mledit""ca""int"pause"int"))# a6 u7 @6 g) S b8 h- o
- (defun c:mlj () (command "-mledit""cj"))
1 H% m6 y7 ^/ O - (defun c:mlt () (command "-mledit""mt"))5 c" ^# ], Z! e% @0 \" V
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))- q: D" B2 D$ x* F& C' B0 h, }
- (defun c:mlw () (command "-mledit""wa"))
4 U7 y" R& y6 f7 w
8 Y$ z( L0 t' Z* f( K- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
! v) o9 W# P8 T _1 C- D2 f# ]+ s - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
2 [$ {2 m$ y( s" F1 z1 v+ L! X - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
( t0 H' Y0 \& Z4 p& Y. ]+ \5 G - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))# d |) i% d. m! V: S9 h
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))) e) n6 k3 \' k+ g3 | a! B
, X. |' `. }! H' n5 u+ f- (defun c:p0 () (command "pline""""w""0""0"))
' M/ e$ Q4 C$ @: o) R: T0 i0 b - (defun c:ot () (command "offset""t"))
0 f& c: n" a2 j- U- L& _ - (defun c:t () (command "mtext"pause"j""bl""h"pause))
8 J& y8 x# h2 A) G, i - (defun c:uo () (command "ucs""ob"pause))
5 P6 C1 y6 n% G. }* B! G) Y - (defun c:f0 () (command "fillet""r""0"))
6 f% C& y6 N5 ~& ~1 k+ U1 | - (defun c:fr () (command "fillet""r"))
! ~! W H: D5 E" y2 b/ F( O4 l" }* E
. h+ c& D: n% X6 Q% j8 S& k- ;CHAMFER! H5 I) | ]+ v* K% c' N
- (defun c:cf () (command "chamfer"))& r" c# M6 ^5 v* |2 o
- (defun c:cfd () (command "chamfer" "d"))& J/ W& `: i" V! S' ?, |
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
$ A# F( T6 C$ c5 M4 l
+ y" F0 }; E4 ]: k$ y7 m- ;FILLET; N3 o, u, Q% v- u
- (defun c:f () (command "fillet"))! L/ A+ s, H( F/ G! C
- (defun c:fr () (command "fillet" "r"))
# f3 H- l/ z# J$ o - (defun c:f0 () (command "fillet" "r" "0"))
- m$ m5 ^5 k5 ]& z9 k5 A4 T7 E) \ - 5 e) H; g- V# L8 S5 t
- (defun c:OO () (command "oops"))
% t2 t8 R1 `3 M% } - (defun c:dln () (command "dimlinear")), ~: l7 W J: X( ]9 z. q( d
- (defun c:dan () (command "dimaligned"))
2 F1 i' F2 h5 w( x( n% Z7 G - (defun c:ddc () (command "dimcontinue"))
' P3 T/ F/ q6 p& w( P
! Y$ n6 R- W, w/ }2 i+ d* _- (defun c:sc () (command "scale" "auto"))+ F# S# v# X+ ]) \
- (DEFUN C:XO () (COMMAND "snapang"))# [2 o% N, N/ C+ f( ?
- (defun c:cc (/ a)/ d8 [' C2 j* [+ i: G* u+ m
- (setq a (ssget))(command "copy"a"""m"))
- V* P" Q% z2 V7 u - 3 t( j& U8 k$ K
- (defun c:PJ (/ a)3 c/ c& g6 `. T9 K1 u
- (setq a (ssget))(command "pedit"a"""j""all""y"))9 I* ^; o' A+ v" F' {, m; t
- (defun c:JJ (/ a)! ?# F" u" G, l7 S
- (setq a (ssget))(command "pedit"a"""j""y"))$ y. c! d+ w$ a* p: K
- (defun c:TN (/ a)
0 c1 u. s/ ~' \2 [ L - (setq a (ssget))(command "change"a"""p""T"))
: l5 b M' s' g. q; \5 `) c- W - 3 u1 H; x/ l C$ c. t `
- , g$ _& Q O/ A& O& H2 H7 G
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
8 N" _+ A. ~- \5 b9 ~- w; o
* n2 }, b2 o6 m- (defun C:IB ()(setvar"cmdecho"1)
0 g0 K$ ]. P$ n - (setq pt(cadr(entsel"\nSelect Block:")))
! G( n- H+ m( E: G, T - (setq e1(ssget pt)) - i/ F v( L& P5 k7 \9 Z
- (setq e2 (entget (ssname e1 0)))9 Z6 C6 A& ]* G+ x/ `% s
- (setq blname (cdr(assoc 2 e2)))2 y- K/ h; Q1 W3 } ^. e
- (setq oer *error* *error* err2)(command ".insert" blname))
1 T, A) M+ Q: ]5 b
/ m' J2 y* ]' o7 u. s; m: M- (defun c:II ()4 y4 ^% g' z. x1 s
- (setvar "cmdecho" 0)
' a3 E" O5 @) L) T* S5 d( P - (setq olderr *error* *error* myerror)& C" S$ T/ C3 q" j; D+ b
- (prompt "\nSelect objects: ")8 L2 X2 T0 z% T* M6 W- Y
- (command "select" "au" pause)
0 p# H3 D$ q2 \: ~, X8 V - (setq sstxt (ssget "p")
$ R- q; x- D, F3 X& \ - sslen (sslength sstxt)' {$ [( }9 e/ g7 n1 m; `4 j/ [
- ctr 0: _. I1 ]# v+ {+ R4 | H
- )2 g# r. \4 Y3 N+ r4 F8 e1 E6 x
- (command ".undo" "mark")/ ]+ i9 A6 T: _# h
- (while (< ctr sslen)9 D4 o& `' g$ A1 R
- (setq listxt (entget (ssname sstxt ctr))
" ]! j# @: P1 ]% @ - txttxt (cdr (assoc 1 listxt))3 T# b; L$ D& \1 o
- enttxt (cdr (assoc 0 listxt))3 K9 y: o1 n, r7 Y
- )
; f9 l. z6 E m8 j - (if (= enttxt "TEXT")
5 Q& U! F) d9 t, ? - (progn2 E% Z9 _- e& ?
- (setq testxt (substr txttxt 1 3))
6 J0 a" z& z8 k9 _ r, ` - (if (or (= testxt "%%C") (= testxt "%%C")), S$ i: i: r7 B6 i
- (setq newtxt (substr txttxt 4))& o) k" Y% S$ G& |7 Z+ N1 Y6 q
- (setq newtxt (strcat "%%C" txttxt))
# T4 G4 q) ]' n& e3 I0 _ - )! i& b! S2 @' l* b' B
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
* b( R* Z0 ~4 a3 m5 J7 h% E5 G - (entmod listxt) v) S& \" w7 V" e
- )
' g$ h ^, e; n# P - )7 i. ]4 J0 K" _% O( Z2 V
- (setq ctr (1+ ctr))* ~1 R$ `1 L( I+ \& p, d
- )( d* c. K. q5 x* r; ~- d D
- (setq *error* olderr)6 M S; ?$ a/ d! S
- (setvar "cmdecho" 1)
7 O0 O5 p6 g5 R7 Z3 F7 Z; B6 ]) U" r - (princ)
! m2 f; g7 l" _ - )
% h4 M! h R6 ? z: v - + n' J* o- E$ n; B( D+ l1 w# x5 L
- (defun c:DG ()
3 z! U& Q9 ` i% b - (setvar "cmdecho" 0)
* n3 D( g- @, b3 P - (setq olderr *error* *error* myerror)1 J: u! n: ]* h
- (prompt "\nSelect objects: ")( Y4 j/ v" U; ^& ~8 B
- (command "select" "au" pause)
" `7 F3 j6 T4 N. z! B2 l - (setq sstxt (ssget "p")5 k0 L6 U, A3 s3 k4 T
- sslen (sslength sstxt)
; V9 j5 `% p- F- J T" | - ctr 01 J& L" X/ X/ N: ^
- )# x# J5 D( @2 O) l4 v
- (command ".undo" "mark"), I6 H* H" G; B- F5 Z7 p
- (while (< ctr sslen)6 h+ X8 C9 G. K- p0 S3 z4 _9 U
- (setq listxt (entget (ssname sstxt ctr))
L; J+ B. c5 V- r; O2 u - txttxt (cdr (assoc 1 listxt))1 ]* ~2 |! W" d# S. _* |
- enttxt (cdr (assoc 0 listxt))
- d6 r3 _# a! G# Z( K- i8 q - )
! }' ~4 p6 ?1 F' V3 z* q - (if (= enttxt "TEXT")
# h9 W# Z, _/ T1 `- Y - (progn5 @# ]- {: q' I& _" P
- (setq testxt (substr txttxt 1 3))
& b1 E: q* C `# s - (if (or (= testxt "%%d") (= testxt "%%d"))
% Y4 i' j2 ~ x& _# l- C - (setq newtxt (substr txttxt 4))
. i1 c! K! J' e/ z - (setq newtxt (strcat txttxt "%%dC" ))
- p. e* C$ |: z, ~ - )
8 l: ~% P5 r0 |( Y( x - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 b$ P( A5 I0 i( X
- (entmod listxt)
- r% p: t# K* E$ l6 {* E' l1 m - )/ ]1 r0 }; l, ?" R
- )
9 I2 l, G+ [" T2 Q; n |8 t; h - (setq ctr (1+ ctr))4 |) a9 l$ k* r* h
- )0 W0 _1 f: P8 F# X, x0 W. {, u
- (setq *error* olderr)
& i6 p3 G+ U9 q' P - (setvar "cmdecho" 1)" W3 O; M$ O% d+ D! `* S) q
- (princ)
6 R# N$ }5 B& g, o - )" s1 Z: O- y* Z2 R4 M
+ U: R( a* G+ @; T- (defun c:PI (). y0 q3 i. |* Y, v4 G% B2 Z
- (setvar "cmdecho" 0)0 M6 R: q w& m5 u
- (setq olderr *error* *error* myerror)
$ A7 F V, E2 H8 g; a - (prompt "\nSelect objects: ")
9 z% a7 V! A2 m - (command "select" "au" pause)- M) |7 ~, ?+ W o. H
- (setq sstxt (ssget "p")3 |$ ]" A0 ^: P' |
- sslen (sslength sstxt)* p% J+ ]) E- o8 e
- ctr 0
y5 i" s, C6 Q4 K8 [& c! x. T6 s4 Q - )
0 R' n" ?4 a4 F9 N. n - (command ".undo" "mark")3 U7 J5 Z: g4 i# n0 p1 \6 S
- (while (< ctr sslen)
0 Y$ W V# S# H$ w - (setq listxt (entget (ssname sstxt ctr))
5 Y2 p. c9 ]4 k: A& e! c& s/ X - txttxt (cdr (assoc 1 listxt))
4 l; r* `: c, C" { - enttxt (cdr (assoc 0 listxt))5 x" T1 T" I( ^4 y3 N. I9 I- E
- ): ]* |4 N. e8 s* P1 }
- (if (= enttxt "TEXT")' D6 E: s$ t" |( b. ?1 t/ K) Y6 V/ G
- (progn
1 O; T m6 N$ C0 @ - (setq testxt (substr txttxt 1 3))
0 E! ~8 q( P* }6 U1 f) z5 y: u6 F/ X - (if (or (= testxt "%%p") (= testxt "%%p"))/ S: w% Y* I+ }$ |3 y2 Y
- (setq newtxt (substr txttxt 4))
3 L% R' i" [2 m: C9 y# W - (setq newtxt (strcat "%%p" txttxt))" U+ h" z$ G: l% B
- )
: b: I+ W. _4 h' f( ] - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))) N" {+ i9 b; ?4 S6 X
- (entmod listxt)7 E2 Q% F5 R7 f# M0 J
- )
9 f0 Q6 N! u; H; ] - )
# N3 `" y5 V, s1 k" \ - (setq ctr (1+ ctr))9 m4 T' L5 q, M, v) |- P8 b
- )' z. P. V' A; D) Q
- (setq *error* olderr)1 C1 c' y% a" n; o* ?
- (setvar "cmdecho" 1)) b" H! v. D; ]( W0 Z- b% G. i
- (princ)
* V% {4 w7 K# I+ O. Q% b - ), g ~0 m2 ?3 I/ m6 j
; V. z' e0 d5 W* i- (Defun c:CB (/ a)' G. x4 a9 u! M5 X
- (setq olderr *error* *error* myerror)2 J& m6 _% N) \" n" @
- (setq ocmd (getvar "cmdecho"))
/ _( E" } [; H `0 K - (setq oblp (getvar "blipmode"))* S3 l0 x. A6 y4 }( l5 l8 P
- (setvar "cmdecho" 0)
9 q! b! \, K: ^% Z! _+ e/ _ m: X - (setq a (ssget))/ ~- x) G& b: e! A
- (command "CHPROP" a "" "C" "bylayer" "")
# h }- D5 m1 H) d4 Q4 F" w& ?% \ - (setvar "cmdecho" ocmd)
$ X L( y9 I0 @2 S1 c - (setvar "blipmode" oblp). d" q4 {: ~ z6 W
- (setq *error* olderr)
$ T8 w/ f- A ]9 G& R - (princ)
& \; ~/ G4 B$ `# M) R - )
3 G: l4 P/ m* |/ h
3 T7 R' K: Y8 P9 W* s+ K- (defun c:LCC (/ co43 obj23 la23)2 O1 [. T; H/ R' p0 B/ _
- (setvar "cmdecho" 0)* U( q1 j' I$ ?' w
- (setq co43 (getstring "\nNew color : "))
# M. G3 \+ v6 [! k - (setq obj23 (car (entsel "\nPick object on desired layer: ")))) r4 W L9 w1 c# P2 }* S* O9 Y
- (if obj23 (progn7 l( @- ^9 [" t! g
- (setq obj23 (entget obj23))" k' P' b$ b" z6 p0 l
- (setq la23 (cdr (assoc 8 obj23)))/ }" a9 r7 h8 [+ `( N- U5 ` k
- (command "layer" "c" co43 la23 "")0 A2 V) ?# C" ~' l4 S% f" J
- )* @' w! {' @/ m" H; ^
- )
7 c4 T D) {$ N. u1 z9 ~ - (prompt (strcat "\nLayer has changed..." la23))% ?5 x: D# G# R# [
- (setvar "cmdecho" 1)
% q8 h+ K6 Q) J, K; k - (princ)
5 q7 l9 S$ j2 \5 [7 e8 T - )
1 L" O/ V( q! k' b2 Y
) T) L, J7 O' | l5 J+ K' I* n9 {- (Defun c:RP (/ a)
+ m4 T% t4 P) w. b& G5 J - (setq olderr *error* *error* myerror)
& H3 [: ~# f t* K2 d# i' \/ A7 b - (setq ocmd (getvar "cmdecho"))
2 g( F2 b, a( G2 ^! o9 s - (setq oblp (getvar "blipmode"))
) I" [6 N" E) @8 J0 l5 k7 z2 W; T - (setvar "cmdecho" 0)
' c/ \; l: J* T - (prompt (strcat "\nUSE: Delete object(s) belonging to"( F; V2 {/ W& `$ l) y2 e1 Z% ^8 ?" D
- " the layer of the entity picked...!")) r9 X: @- Z4 V, g; w6 i
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))
- \: s) ^' u* [: c" E& T( h - (if (/= a nil), }) Y: L/ ]1 q4 R; M
- (progn (setq a (cdr (assoc 8 (entget (car a ))))): S- G% Y+ }( E3 ]
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
% g* ^$ v% s, x6 m - (prompt "\nNo entity selected!"))
3 T0 C7 B3 d, h, r- q' q) B. r - (setvar "cmdecho" ocmd) k9 W5 b" B% P1 b# f8 Q5 I7 d
- (setvar "blipmode" oblp). ^1 {8 e' T5 I, [& r( N% S& k* ^) l
- (setq *error* olderr)
3 f2 l5 t5 F2 h4 ?& i - (princ) H/ L# A' }: q! ~% j9 ]- z
- )
! s+ N( l3 H- i - / p+ U; T( t8 C3 i* i9 s3 x6 d
- (DEFUN C:WL(/ SSET NET SSL M)
4 U+ Q6 _8 t! J( c. B" o0 p, ` - (PRINC "\nSelect lines :")* L3 D& b0 x# |) x
- (SETQ SSET (SSGET))2 Z; E; W- U% r% e, g- y( f! H
- (IF (/= NIL SSET) (PROGN: u7 f7 X6 K5 g% `; X3 y
- (SETQ SSL (SSLENGTH SSET)), v) M& d& _+ ]+ B2 ~' \8 |% e
- (INITGET 4)
+ q8 n! V8 h' v0 } w+ i - (SETQ NET (GETREAL "New width : ")) p) m8 e! q3 F/ y( V
- (IF (/= NIL NET)' |) d6 m7 S1 [' W
- (WHILE (> SSL 0)/ b0 @8 w8 f5 z# Y4 V
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
, G7 X4 c0 O4 Q7 K; }: A - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
6 k( a l3 E g* W Y - (COMMAND "PEDIT" M "Y" "W" NET "") 0 q8 s6 R* p" R! W" q9 G3 W" Y" w
- )
8 F$ M3 x. `- F - ) " p' E+ l4 V" u# ~ U5 V
- )))
1 d6 q* L+ w6 A" E - (PRINC)
7 P/ Y+ @8 k, K! q - )6 P5 z, ~# O, B
" I* A/ C# C8 L/ p0 g- U# S- (defun C:MML ()
?1 ]2 Y+ h8 \2 x8 m! L - (princ "\nSelect objects to move to another Layer."), h& ^ t" a+ m3 T8 s
- (setq ss (ssget))
* |" F! n& w& C! C7 I - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))( p, }6 V& |& |" i& s/ |. q
- (setq counter 0)- m$ R+ i/ {4 h1 A! \ i- n
- (prompt "Moving to layer.....")(princ ul1)
3 i9 O5 F1 p2 i5 O+ Z0 ` - (setq e (ssname ss counter))+ \6 L M u" K- e0 x8 ]
- (setq l (cdr (assoc 8 (entget e))))
; |% e' `' z8 V* ] e2 E - (setq S (ssget "X" (list (cons 8 l))))5 w/ x5 N8 q; z, {
- (command "CHANGE" ss "" "P" "LA" UL1 "")8 T4 Z& L7 N& l) K2 P' {% j5 l
- (setq counter (+ counter 1))- g6 B! E" n0 z7 } n5 g* a
- (princ)5 Z0 t7 z- h0 j
- ) " b; Y4 v: C. V1 Z% w& r
- x. z' Y' c5 i: E; l% K; e
- ;;; ================================ GHI CHU ============================' e/ D! f- P7 b$ G
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========& r7 K6 O% \7 t* |+ c7 D
- ;;; =======================Thuong Dung Font Romant.vnh===================
8 n/ s, M+ [! Y/ {; @, w+ [" { - * {, W6 j9 C6 D3 X" w
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
: {9 f" Y# S$ Q' d, f% F; p. X3 S - (setq oer *error* *error* err2)
7 y6 ^2 p2 e. B0 X - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")% L! R' S) l! }3 u r$ Y8 ]
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
" W. z3 G" y3 q' g - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))
* L) @9 U; R) Y9 E5 Z - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))$ E8 V8 Q: F! V8 y, X' o
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))3 _. J, }5 \! m
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
6 Y( V( @1 I% |, J - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))% W7 f! ]- ?/ Z3 m; |- ]+ S
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An")) c/ D1 \0 t, |" x
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
* l0 \* F, h! | - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
* y) X# ^: e2 H- I- x3 z - , I0 C5 r( I8 q, n# S
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))! z' T z8 x, i3 a. ^' }+ o# t
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
* Y9 `% R* W7 Z6 v* t - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))8 T) ?5 T! {& K5 y ? l* v2 Q
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
2 \3 A" L: O- J; ]2 r! R: ?: D4 B - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
. c) v) U+ }& S% q5 z2 K - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))7 ~3 ?, f) [. b5 K& L+ C
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
5 p1 g$ j9 n% d& s' x! U6 a' Q3 i - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))! [0 p1 w. r# R! J* T) a- R: l
- 7 Q: |7 ~& r& W7 B
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))3 C! M, E% p8 l! U
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM")): S- p$ ~3 I0 \' m& `' {
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
8 @3 H3 q/ E7 y) a+ a" w - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
v2 ~ W7 I4 f7 M1 a; z+ Y' ?( E3 r - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
5 m3 Z% R% O% {7 d! v( P+ f5 ]; L - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
4 T* j. J7 `- j4 c" D5 G - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))4 z5 {5 Y( J4 n) t& w
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
+ Z8 A! Z2 {, i* Z. F: x$ F - (setq pta (getpoint* e+ f3 {" _. f$ U4 A
- "\nPick first corner. : "))7 }+ z4 ~' j- D9 C3 q) g' s9 U" H
- (setq ptb (getcorner pta% g+ n G7 ]* a
- "\nPick second corner. : "))
! h& L+ `, T, q - (setq ptc (list (car ptb)(cadr pta))). y3 p0 N5 G3 H9 R+ H9 M, L+ Z6 m
- (setq ptd (list (car pta)(cadr ptb)))
& U) b9 K1 }, `" d3 F& N$ t4 b/ J - (setq ang (angle pta ptb))
* I" r$ r" w- u; _& w N1 q+ n0 z - (setq d1 (/(distance pta ptb) 2))
$ C/ e# |1 b1 z4 Z: Q, Z9 b - (setq cp (polar pta (- ang (dtr 0)) d1))
. G# y) _' F* y5 Y$ k: {7 P - (setq X (distance pta ptc)), ^) P6 G6 ~. C- G% y3 I
- (setq Y (distance pta ptd))
# c# R# P0 j+ R4 V" v - (setq X1 (rtos x 2 1)), W9 p) V H! d. [# |# Z8 \
- (setq Y1 (rtos y 2 1))
1 C: t. D9 h, q9 v7 P - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
3 w% J! O8 }3 H. ^ - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
, j! c* P+ E$ @4 O - (defun dtr (angg)
( O; ?4 [; @. v6 @6 ~1 g5 A - (* pi (/ angg 180.0)))' [( v1 Q+ a8 V6 ?
- $ t" H* I$ l9 r# y; {
- (defun c:WS (/ pta ptb rmsz pl1). b5 s' L% I/ \7 o
- (setq oer *error* *error* err2)+ {6 A9 j2 s8 z
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
5 e6 b! ]# n. ^ - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
: X" D: }2 o1 _3 [
# Q& E1 ~( s/ L( }9 { \1 l- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))3 d7 J3 O, S0 u, V) ?# K! B
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
. U8 \+ m0 n) d5 g5 e; _( U ]! ?$ ? - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
! m5 Z; R* K5 ?2 K/ | - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))5 ^8 r9 p% S! r
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
0 K4 [. O4 s: @7 Y - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100")). Y0 m: v' T7 p$ J: u& @+ b& Y
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
1 u# u. J1 `, w2 b# C
/ m+ {+ d% Q9 I2 M- (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"))# g+ \* k1 `8 o8 _
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100")); c7 k6 \# n" b$ V6 w% s
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
6 n* N2 ?3 j! v9 L) d8 x7 e - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
5 \$ U# l |0 V) J; K - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
5 c$ W! { \' e - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100")), x' t! B9 q1 t$ N3 q2 a$ U
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
; G! @1 s" N$ J) k6 b1 w - (setq pta (getpoint
3 g6 k9 \& Z' P; u/ \ - "\nPick first corner. : ")): O( O" w( k2 C1 ^* Y0 i0 N
- (setq ptb (getcorner pta
& k0 D7 a% ]+ {7 i9 h3 ^ - "\nPick second corner. : "))5 m+ _( O2 V; O5 L) X1 H; M
- (setq ptc (list (car ptb)(cadr pta)))
8 {8 T4 |8 @7 e$ s# [9 _4 o - (setq ptd (list (car pta)(cadr ptb)))
, L8 i9 [: V+ \ - (setq ang (angle pta ptb))
' s* }- P5 B7 A, m* G - (setq d1 (/(distance pta ptb) 2))8 h( g j" N) j) P4 `) G9 m
- (setq cp (polar pta (- ang (dtr 0)) d1))
" p3 t0 D% I- v8 P% n: a - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))3 F) z, H9 f( p* N9 K, P
- (defun dtr (angg)6 L {: L4 M" s) o( |* l; a* E
- (* pi (/ angg 180.0)))% ^8 d' l1 f% B7 ]8 G' Z, I% m7 Z
7 @+ {" N5 U* Z5 h- ;;; ================================ GHI CHU ============================
z9 j' I z7 j$ [# y2 D - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
. }+ k0 U5 i) q+ `0 p - ;;; =======================Thuong Dung Font Romant.vnh===================) D: A6 s' H( ~2 r' j: T9 ^
- w/ u4 l6 V, ]( _( W- J0 A( ?
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1), c) n! K) a G: a$ n( @7 a' R* g
- (setq oer *error* *error* err2)
7 N! d4 I; E5 c$ O; s" j% r - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")* [6 K2 q2 T+ x% f
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
4 a# A7 i, C& K - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
0 M. Z1 T1 W. O1 X4 y' O& w, Z2 H - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))! \5 h. ]/ I; S
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
" ]8 ?5 h# t( ]4 W - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))2 h0 A" F* R0 k7 e, y9 e- w% Z
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
' {) l3 D) A% T2 H - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))) J6 `# A0 n' _5 |, G: [6 R4 i7 u
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
; }' s( U6 k- k" u9 l$ b/ u: I - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
; u. o2 V: R8 f# w3 P) A2 k4 \ - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
* F& i- C' D+ n# _8 D - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))/ _' v2 d$ l# E# `/ z
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))/ p: W4 |0 Q. z s6 Z+ a
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc")); B$ ~% J1 x. X5 ]: G& _
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")). ?; n5 Z5 Y/ w2 W# A( m' E: I
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))" e: E0 S u3 H: j. w# h0 K4 h8 }
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))! N5 k- ?3 W7 E+ a7 c
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
3 h- E) {5 Y% u# O0 ~$ w8 N1 b - (setq pta (getpoint* R3 ?3 _$ |1 d: ^: ~0 I
- "\nPick first corner. : "))' O2 u' S3 b1 L% }2 U
- (setq ptb (getcorner pta6 J; Z- p2 h/ H- w& ~1 T2 b
- "\nPick second corner. : "))
6 Y! ?9 i4 T/ @/ f - (setq ptc (list (car ptb)(cadr pta)))
- u; u1 e" w4 M( u% ~ - (setq ptd (list (car pta)(cadr ptb)))
, I4 X8 \$ \' z$ N - (setq ang (angle pta ptb))# |( b" N: P$ O/ O% @4 r6 j
- (setq d1 (/(distance pta ptb) 2))9 L8 n5 U2 Q. Z7 J$ i' Q5 T6 ?
- (setq cp (polar pta (- ang (dtr 0)) d1))0 m y# I) G6 _
- (setq X (distance pta ptc))- e$ y2 G4 i* @4 T0 v/ T- B' n
- (setq Y (distance pta ptd))1 T- X) h. \& i$ t) o3 C7 |
- (setq X1 (rtos x 2 1))
$ _" a- |- Q3 W+ A" y - (setq Y1 (rtos y 2 1))
& _$ b/ n! h7 T3 g; E% [8 L! p# ^% n - (setq rmsz (strcat "(" X1 " x " Y1 ")")), v: ]; ?: F- J# r6 m
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))4 w" G7 P$ x3 z/ v0 U3 T6 _1 m
- (defun dtr (angg)6 ]: L5 v. G# X9 p. M0 t
- (* pi (/ angg 180.0)))
' [+ w- x: Y. ~6 e# O( O
: t3 |' e8 o0 y1 b- f8 [9 @- ;;; ================================ GHI CHU ============================& w% l( M9 Q7 m1 K; _: J1 ?* k! _; A
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
7 U+ _! g Q4 G, H4 F; K1 e0 b - ;;; =======================Thuong Dung Font Romant.vnh===================
( j1 j2 k: a- a0 p' S - + {) b t" Z, v9 X* x
- (defun c:GS (/ a b c d)8 q- M% D$ F( h0 W2 b; t" F
- (graphscr)1 ~. o# J# ?; Y; e+ T- g! K
- (prompt "\nSelect text to set style....")
3 k) k, w8 N5 H) u' ? - (setq a (entsel))! ?5 P. R* g6 T+ B! ^
- (setq b (entget (car a)))7 b3 q: D* l! B' G& j5 s1 n4 F
- (setq c (cdr (assoc 7 b))): ^! e- G/ H+ b+ p2 M& t
- (setq d (cdr (assoc 40 b)))
. ?! A i& C1 N- g2 ?( A! L - (command "style" c "" d "" "" "" ""))' _( A; [& {) A; a% c7 i" @
- (princ "\nType GS to set text style.")
1 }7 ?6 M, v5 T7 N- X( O - ! E+ D s( f5 v( I7 \- G
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
3 D! R* S1 v& v) H8 z1 O/ O' X2 w: ~ - (setq olderr *error* *error* myerror)4 u/ C+ T8 C/ B5 b+ ~5 d3 [0 v
- (setq ocmd (getvar "cmdecho")), D, Q+ d7 b0 _1 W! M
- (setq oblp (getvar "blipmode"))
" D1 [5 y$ R8 s% Q - (setvar "cmdecho" 0)$ y+ e$ D( B: p/ z* {- z0 d: s
- (initget 1) ;3D point can't be null
) C6 z' s: n9 `/ w! m - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
9 a$ e; Q# `$ B, c0 V. h _& _ - (setvar "ORTHOMODE" 1)2 X/ G& r/ ~) E1 Q, W
- (initget 7) ;Length can't be 0, neg, or null
$ K$ J) \; @( p - (Setq l (getdist pt1 "\nLength: "))/ d( q) O* r9 C+ q* J0 F( V7 I
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1))). u; o( H4 G8 w2 d+ t* `8 x/ N
- (grdraw pt1 pt2 2)8 y( J8 m1 ]+ \* r# P/ _! K" A
- (initget 7 "Square") ;Width can't be 0, neg, or null
5 }. L+ g, C+ I! N! Z3 D& t - (setq w (getdist pt1 "\nSquare/<Width>: ")), @ m* d( u2 p) D9 ]5 g. e& l6 l& c
- (if (= w "Square") : K$ N, m6 ~+ R; P: t5 u/ G
- (setq w l)
, x ]9 L: b+ h5 K0 Z' S - )
1 h! B8 \, R8 h& Q# S - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
) m6 x4 M& {/ k; k1 m* B - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))% x2 \1 E9 G+ _0 ^7 V
- (grdraw pt2 pt3 2)
+ k, M- }. `, @. E& X" ?$ y5 F - (grdraw pt3 pt4 2)5 x T) d, T$ P4 t# C
- (grdraw pt4 pt1 2)7 e0 `6 H1 g- Z$ o# }- ?7 c7 |6 b
- (setvar "ORTHOMODE" 0)' G& L( `- W& H; T, `4 M
- (command "pline" pt1 pt2 pt3 pt4 "close")/ `# b8 u4 ]$ b. x1 t
- (setvar "cmdecho" ocmd)
: z9 S: M8 B/ m6 r - (setvar "blipmode" oblp)1 c! k+ Z1 f' ?- R( p
- (setq *error* olderr) ; Restore old *error* handler
, [ r* z' z3 u" i - (princ)
! w/ u( A* H$ T# Y - )
. K$ ?" W9 n% I! A+ h$ x8 |
7 e% G' j/ X6 r+ i7 s2 \+ ~2 x- (defun c:SG (/ ent pt1 pt2 ang)
# r/ ]. U. c3 L: z; L0 B - (setq cmd (getvar "cmdecho"))
1 t9 g# h3 }) |( a. j- `+ f6 t# P - (setvar "cmdecho" 1)5 M8 g5 a5 a8 k* Y
- (prompt (strcat"\nSnap angle will be set to angle of line"))
/ T3 L. I1 v. g* y6 }5 m( C - (setq ent (entget (car (entsel))))
9 f+ J% U, j$ N- Q7 ^$ Q( y" b - (setq pt1 (cdr (assoc 10 ent)))
4 p; i# d% n! z - (setq pt2 (cdr (assoc 11 ent)))
' F: w+ [2 F; X/ F7 S - (setq ang (angle pt1 pt2))) J) U1 P0 U3 O! w' R3 b2 ]: R
- (setq ang (/ (* ang 180.0) pi)); I( p& K) ^3 O! W8 f; D
- (setvar "cmdecho" 0)
, z* ~- ?" P9 A8 w* r3 n - (command "setvar" "snapang" ang)
: d* Z) a2 y6 _ - (setvar "cmdecho" cmd)9 Z: e) ]2 ]1 @6 |# ?
- )
) k5 ^ n! ~! @" z) e4 P7 `+ V
4 E/ L! d" i' O- (defun C:TG ()7 W6 N1 h" g+ k
- (initget "Increase New")
0 j' J; u* W9 [ - (setq ans (getkword "Increase/<New>: "))
/ m8 ?6 V: u# [) b7 i: K* Y; k& f - (modang)
# @! O; J2 J! }7 g - )
& {* I4 }8 m$ O) R( e7 A$ Z' A - (defun modang (/ ang ss ca e na ssl)# m; E& }4 {% s' G" V
- (if (= ans "Increase")1 C) I. @; I. n- X6 ?8 @
- (princ "\nIncrease angle for text by: ")
- C' z: Y( U N& e* B7 T - (princ "\nNew angle for text: ")
+ f1 C- L; {0 b8 X, p" m2 I7 h - )0 d. T" K8 P1 M
- (setq ang (getreal))
; Z5 ^% U' F$ }6 Z; L v - (setq ang (* (/ ang 180) pi))
9 F3 K$ x0 x& M8 Q" _9 g - (setq ss (ssget))4 ^5 G+ H3 |! ]$ @ b* y! j9 ]
- (setq ca 0 ssl (sslength ss))
; U4 m# h# ]8 n6 b - (while (< ca ssl)
8 v" N' o4 _) e - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
8 a, K) F& g) P- [( { - (progn8 B% U) |/ v: }( J( @
- (if (= ans "Increase"), P$ y9 F7 [1 a8 I" m
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
" B/ i" A" B! t D- u - (setq na (cons 50 ang))6 b* z$ W9 r0 P
- )
3 }6 |% h' v9 r3 |1 v9 ^ R" z$ x - (setq e (subst na (assoc 50 e) e))
; h6 i, \; W) n1 E - (entmod e)
7 Q6 i- h# g2 r - (setq ca (1+ ca))( j2 I% Z# h6 l' \7 g' l
- )2 h* O% T# Q# h. s/ y
- )
* T: K8 C- c' b, l/ v" I5 X+ W - )$ G1 {' y/ R) H/ o
- (terpri)
# ^2 `; t" m0 X2 g" F" Q - )
: |* o4 f6 C5 I - |- M2 D% ^* J1 Y$ w9 W
/ t- ~: @6 K; N, {+ M+ R- (defun c:WL ()
. _ y% u: M! x) s6 k! r2 k - (setvar "cmdecho" 0)9 T! Z9 T& b; m) L3 e; Y
- (setq a 1)! D+ c8 l, E- x$ m
- (prompt "\nSelect Polylines to change: ")
% t) N, V0 X/ | - (while (/= a nil)2 p" F1 B5 F# f& O% ~9 T% i
- (progn
; L, k c1 y( L! U. e4 E - (setq a (entsel))) q1 z# c; ]8 v: x
- (if (/= a nil)6 H' r( A* m& E' G+ i; e- Q
- (progn8 B# J$ x. A# U. I- S9 J
- (setq b (entget (car a)))* ?: A- }3 N6 }' J
- (setq c (cdr (assoc 40 b)))& Y3 M* b5 a+ v5 a
- (princ c)
0 ?4 U. ~# |" n: q( a# E9 ^/ v! | - (command "pedit"a"w""lw""")0 m, ^3 {2 s7 _) j, W3 C
- ))))
% w7 r. t1 W$ t0 w - (princ)
: U% i9 \* M0 {8 G( U( b# p4 c - )% H% t V6 R) c- |
5 L ~! G# D5 g6 |- C2 H4 F- ;;; ================================ TEXT FIT ============================$ s& M& E0 c l# k& C/ ~
% j1 \/ X# |% X. R& ^5 \- (Defun c:FT ( )
# m0 s/ e k0 \4 f - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )0 M7 q0 x2 n4 ^6 B
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )
' d# @) ~' k8 k* [ - (Defun UR-x (arg) (CAADR (TextBox arg)) )
1 ~# {) {' z! s% H/ i W - (Defun LL-y (arg) (CADAR (TextBox arg)) )
3 l/ k! h, e9 l- ` - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
5 a( C; E& n/ ]% t - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
9 A( B* o2 k, ]! c - Textent (If ename (EntGet ename)) )
! P. T3 d' B; z9 ~' h( `. Z - (If (= (CDR (Assoc 0 textent)) "TEXT")7 m" @9 y, |9 R* V
- (Progn (initget 0 "Start")2 w' w1 V# D9 Q- _9 V- m
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
; N P" E1 N3 c/ P+ Z - (setsnapang Textent) ;set snap along text entity% s' j+ M, N8 B1 z$ Z
- (setvar "ORTHOMODE" 1) ;drag along the text/ w0 s& y- j) G6 M0 H! D3 g5 c7 {1 B
- (setq
( d# [0 v! u$ S5 A# S6 d J9 a3 b - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
K" H, n- N. c1 _ - (setvar "snapang" 0)& r! O9 R) A5 r- L& `9 t1 r
- (cond
# I8 z! @; f" p' V+ W" U - ((= (type TMP) 'STR) ;;new starting point to be selected
- `% S5 T' ~0 ~9 S ~) `% N* L - (setq Start (getpoint "\nPick new starting point: "))
# U* n+ X' }: W9 B4 r - (if Start (progn; y+ F5 c3 C, q$ _3 T2 Y2 ~
- (command "_UCS" "_E" (cdr (assoc -1 textent)))
7 W# u* H: e; T - (setvar "ORTHOMODE" 1)
0 I% T% A- P: j0 ~2 ^ - (setq NewPt
/ k3 }8 x5 J# c# L* Y - (if Start% T- P* r9 F- _- M3 q4 I0 L# T9 n
- (getpoint (trans Start 0 1) " ending point: ") nil ) )8 t) X& o8 h6 g. Q! g$ L5 l
- (if NewPt (setq NewPt (trans NewPt 1 0)))
" Q+ L( _5 L/ m* ^* G3 b, I - (setvar "ORTHOMODE" 0) C2 b m _& E! `# K3 i
- (command "_UCS" "_W") ) ) )) i+ |7 n B. n7 w$ g$ }2 O
- ((not (null TMP)) ;;new ending point selected7 d1 C7 m4 [! F
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
& }0 @ g3 Y% x* Q$ O) N - (t (setq Start nil NewPt nil) ) )6 d; [/ K% U) c
- (if (and Start NewPt) (progn/ j+ t9 i* _4 y4 u6 K: ~, V' F& _
- (setq Val (Assoc 41 Textent) ;;current width factor3 y: J7 R# s* I* G6 g4 l
- Val (if Val (cdr Val) 1.0) LTC_%
( T7 ~5 G/ h" t! F' u1 [$ l' K - (* (/ (Distance Start NewPt) NewEnd ) Val )7 G4 Y# x, u. {6 x( ]9 F7 q" D ~
- textent (Subst (cons 41 LTC_%). `* H8 o( f( a$ U- y* G
- (assoc 41 textent) textent); f7 L0 P0 ~. Y E
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
" w1 o: e; `1 e: i* B2 [, v$ K/ V - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )6 d& n5 B# j7 @2 b7 ?/ A3 `
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
" r Q) _1 M! X& \1 S - " F! o* J3 z* t( O/ ^* B. j
- ;=====================================================================
* f8 v1 w: S& B) q+ \ - ;=========================COPY + ROTATE ==============================: q7 m& t6 \- W/ U3 `7 f, m
- ;=====================================================================
& j7 N6 K# M: H% o - ( ?, K% r; S! U" n+ l5 d
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)$ o) w( H& x7 y4 n. T
- (setq olderr *error*
! i( x" Y2 ]! x* ?! F0 e - *error* croerr)
! C7 Q4 G( ~% P# D - (setq cm (getvar "cmdecho"))
% r. L/ F6 `- K - (setvar "cmdecho" 0); q6 i7 m* e" P/ F4 F o" f2 ]" |
- (setq loop t)% B1 U3 _- I9 H9 X
- (while (not (setq ss1 (ssget)))) [" v: A/ O& u+ C
- (initget 1 "Multiple")" T" G2 w/ Y7 @, E# I: _
- (setq bp (getpoint "\nBase point or displacement>/Multiple: ")), v( A$ A8 t* `# k& d1 ]
- (if (= bp "Multiple")
" F- n S( z, v - (progn
/ J0 ], U1 Q6 D - (setq bp (getpoint "\nBase point: "))& e! I/ V2 z. v/ u7 u8 |
- (setq mult t)
- ^* W. a, \# K3 g) R; R; t - )
f) J& r/ c) f; \" @# c" L0 l+ Y - )
! L2 r3 j0 ^7 t' {: v9 H, F - (while loop7 n/ t$ P, S! g' h1 O2 ?3 Y' E3 f* t' v
- (setq loop mult)
* E) f% G- R0 E2 q3 m! N - (setq lent (lastent))
0 \% M6 K: T8 U2 p @- a - (command ".copy" ss1 "" bp bp)
" q2 i# h, s6 T0 M% K9 V) [ - (setq ss2 (lss lent))
% |. }6 I( y- V+ L9 y - (setq lp1 (getvar "lastpoint"))
6 h( h1 q; s# ~7 j - (prompt "\nSecond point of displacement: ")
& _, I! y. L* X6 f$ } - (command ".move" ss2 "" bp pause)
* R6 V0 c U* P7 G @ - (setq lp2 (getvar "lastpoint"))
0 |7 K. w* m: l [" B - (redss ss1)% x) P( o: b) v! ]! [( @
- (if (and (not mult)
5 u& z9 h& m4 v4 [- C9 r - (= (distance lp1 lp2) 0)' |5 l: U' Y* Y: G
- )1 X& c$ Y5 }+ O
- (setq lp2 (getpoint "\nRotation Point: "))
3 l7 Z0 j O1 k1 J1 z9 t - )
4 z* A! o) S5 W& D - (if mult* N! q2 d3 p& o# W4 e( H* ~
- (prompt "\nRotation angle ")9 Z1 A7 z+ j5 i: I
- (prompt "\nReference/<Rotation angle>: ")
8 d# V6 Z( I$ e$ h - )
8 g* O* L9 U% a8 B - (command ".rotate" ss2 "" lp2 pause): F3 |2 l `- |4 W: ]7 a+ n/ l
- ). ]1 Z& d! L. z) O9 v
- (setvar "CMDECHO" cm)
4 [1 K6 f# j0 h( S+ }4 U+ T - (setq *error* olderr)% d) p+ x7 Z( g
- (princ)6 ]5 {4 I" U- {, q* K, H
- )% ?2 A# j+ I: ^4 _$ V' d0 ?& Q
- (princ)
9 A9 A5 P s( s0 Z - (defun croerr (s)
4 I4 ^! H+ B2 f5 Q/ H, M7 l1 W( ~6 ~ - (if (/= s "Function cancelled") ' K0 e) D% }3 a8 ~4 S6 T
- (princ (strcat "\nError: " s))& S. v* Y; l) f
- ) 3 f/ P+ A. Q* E3 l
- (setq S nil)1 x3 Y/ F- D$ }" `: E
- (setvar "CMDECHO" cm)
& H Y6 Y! m) B/ S, M5 a - (setq *error* olderr)7 D1 o" G/ O0 B, h
- (princ)
& I% z. R! Q1 {) S" K - )" U3 j0 g4 [% n* s
- (defun lastent (/ a b)
7 ^3 N& q% S4 F1 ]" \# e - (if (setq a (entlast))" ]1 m/ a6 [, I1 g3 g, ?- u. ?2 O
- (while (setq b (entnext a))% D0 x: V' f. F9 Q/ h
- (setq a b)* |: A" s9 Y L
- )
3 {0 W. D% p9 i- Z! g& d; r - )
9 J4 L" e* m- H! T. X - a
, P2 q8 L) i6 F7 R# R - ); s' n0 z/ {% H) v$ ^
- (defun redss (ss / en i)) U8 e0 r& b; _; X" o* z( Z
- (setq i 0)! }" z+ V! Q* B$ j; u& g" A
- (while (setq en (ssname ss i))( {3 m. i+ j4 {6 P4 D1 J1 r
- (redraw en 1)
- g2 q" R7 t8 Z& J e - (setq i (1+ i))/ L0 s# @/ I0 D$ S7 E
- )6 \# X4 D d6 n* L6 n
- )( d5 V: o5 V- X' S
- (defun lss (en / sels ed)* [% w( Q& r0 T$ ^; q$ w; \7 N
- (setq sels (ssadd))
8 O' w! D2 K. r: J. m# V% g, F7 f; @ - (while (/= en nil)# t+ V6 f) \5 z @ e
- (if (setq en (entnext en)) (setq ed (entget en)))% I% q' w: ]/ r- k4 I' T
- (if (/= en nil) (setq sels (ssadd en sels)))8 C' ^: I. W6 r$ r8 ?* g% g+ q
- (if (or (= (cdr (assoc 0 ed)) "Polyline")! J9 W% x2 N; i* u0 [
- (= (cdr (assoc 0 ed)) "Insert")
, Z. F" j( L0 e9 a5 c/ { M* F! u - )
- G; h3 @$ |) l% ~: B# q - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
, V9 k6 L4 t- q. U& o - )
3 J2 W- k# J1 }) w$ o( M. y - ). m u$ d! s! ]. i
- sels4 n8 C$ Y% ?( R. u# X H
- )
; j8 i0 l' l( C7 w( X - - n) l- |7 j5 Y
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
0 M: r$ O4 f; q
6 ~8 m: C8 y9 H: N- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
3 d0 f7 S$ s5 l- L6 n - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))1 S3 F( y; {; n/ ]
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
- h# l1 L' c3 Z6 E1 t) @* C$ q - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
2 R1 h* [9 S4 |0 I' j - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
( |( m7 w' u- J! m - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
* ?! |* [" T1 Z6 J) ^ - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))9 l( D- B8 }, h+ Q6 l7 O
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))& y* O9 N' r: i8 s, I" f/ ^/ Y
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))8 u' X x9 m: V+ L0 R& M/ [
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
" k6 b O! D8 R) ]- v - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
) c& H2 k! m, Y( c- d0 ~2 s - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
/ J& L0 z) ~$ I - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
$ A# j3 C4 U* ]- \ I7 x: R - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" "")) \4 ^& c* K K
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
6 U& ~( K( L# s. b2 B - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
m) R2 w" |2 I! c; H. _ - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
9 X7 Q& U6 O8 v, N: \3 n8 { - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
# h+ H4 D# u* H& r/ B - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
, e: S5 D; ~/ m( n
9 S0 }# }) c1 k- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============6 {/ K/ e1 y6 ^2 h7 H- p
- 1 T/ b D( W: a. j; @
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============" u6 W' `8 H$ |/ ?- _, ^5 C; Q4 H
- / U/ ?9 y, A% l: n$ n; ~$ x
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
( l9 B) p5 @6 P+ d - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
7 O. t/ I* H: d! F* D( h9 `
) Q% g8 z, \+ W; O9 W4 n- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
2 L0 @! i" f/ U! g
: p s5 @% _- H: {, |$ M- ;(DEFUN C:netxuatanh ()
! n8 O! G- W$ U( H" `$ H- h5 ]3 }! N - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""0 [0 z. t3 X. s* A) B
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
6 O7 m5 k& V) A$ p. _ - "M" "MANH" "C" "9" "" "Lw" "0.5" ""
) ~4 n( v" ?8 N! a6 P# I - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""0 K5 f6 q d4 q6 a6 r" `, s1 B
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""9 m" E$ r' o" _7 X" v
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""
. z/ b1 w9 F4 M( E - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
4 \4 B4 ~7 w8 C9 M - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""0 }* x- {$ D* }+ b7 f9 m( m
- "M" "COT" "C" "2" "" "Lw" "2" ""( B. l* M$ \# h- f; l
- "M" "Defpoints" "C" "7" ""
# ^ ^8 s7 O$ }/ L2 f& W/ `% x - "M" "0" "C" "3" "" "Lw" "0.5" "", e& h0 y4 z3 K( M x
- ; "M" "1" "C" "1" "" "Lw" "0.5" "") g; J: w$ ]( l4 M
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""- O' \, v- f( S6 V( ~
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""
. S5 s0 h# O8 Z0 U% | - ; "M" "4" "C" "4" "" "Lw" "0.8" ""( }( g2 \5 c: P0 d* W
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""9 i# w, X/ Y* Q/ @
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""+ L: I, ?7 M, ~# o
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
3 W6 ]+ Y& h9 J8 ~1 W5 F - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
7 v$ v. i2 D2 J! z$ r6 B - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
. c/ K* V' ~4 R - "M" "KE" "C" "8" "" "Lw" "0.3" ""; N" X. r: s0 B% Y- v
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
6 Q& @" w/ i4 {8 c: I, K, } - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
5 K# N1 P- c7 ^ - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
; t' d, _! O5 U - "M" "TBD" "C" "2" "" "Lw" "0.8" """ l3 S7 a4 B, V- k$ a v8 A
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""! c' v( m, E- @. Q
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
6 b& a3 q2 ]* Q! m9 E - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
- m- U' m* o1 M8 U# z - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
: ?8 |; d6 X, [; ?: e - "M" "CUA" "C" "6" "" "Lw" "0.5" ""& @. }7 x0 o8 \) }( F+ o0 D
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""5 K! N5 X! z( b# m
$ T1 d9 \4 r6 v+ o% h5 C \- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
h! p$ c" e7 u8 }4 w* g
, r3 W7 X; b8 V+ M2 Q) I# Z- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
, X. n3 D3 U- | - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
, `* M" b- ]9 i0 [$ h* x' N - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""% a1 ?4 M# N6 F. K& S f
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""' T! t0 m/ W% |" f
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
/ z" [# e- ^# [# R( A9 h5 p - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
* M h. P2 o1 F0 r
. X' k8 f4 Q i2 n4 G- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
$ T* j9 n0 l9 [; j - ;===================================30|04|2024==============================
0 O7 N1 S% ^7 `9 [ - / o+ I+ t3 ]0 h9 k/ \; d
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )4 @1 y4 I% {' ] Y) @
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
& _' K2 o( ^$ R5 } - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )+ a6 \( F- {6 \ \0 I# D6 ^4 y) f; v
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" ): o8 B+ C0 ~7 r( d* H
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" ) m% N3 Q- o: P+ s2 S0 b9 Z
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
: x+ m6 E2 q; V& z) T: l - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )7 P v* ]4 O3 v, l+ @# v
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )4 j+ ^1 c! F& V$ @1 {
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
1 Z5 |6 j5 d8 q - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
7 {9 X1 y* r; v+ y, E4 F& ] - - S. {$ C* f0 m5 Q* X+ T
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=9 Q3 q* Y4 ~' V
- ;===================================17|10|2024===================================) J5 l* |, p) ]2 }
- : P/ [" p5 V* @# h9 {
- (Command "DIMTXSTY" "ROMANT-DIM" )
' c5 T# m2 |: b2 `# S - (Command "DIMBLK" "" "Closed" )
: G0 i* J& V9 |6 Z& d+ } V4 X
, {) ^# l' |) Y$ j) P. Z- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=2 I( w, v1 _3 h- R' r2 A% \% x
- ;===================================17|10|2024===================================
# j0 F7 s: r: @9 A2 A N - 1 d: C; A$ C. h% o h6 t
- ;(Command "-units" "2" "8" "1" "8" "" "N"), w& |1 u) d' F
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)! i, E5 x2 b* G3 b! M* j
7 ]7 Q( b& i& j! R. y' }- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
8 l% g% p1 {6 e2 }# ` - ;===================================17|10|2024===================================' O+ ^- L, @" I6 s; H- Y- ^
( @' L8 I' @2 ]- h3 k+ h- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====0 [9 i$ \) g* o0 X$ M0 L
, P9 ?7 Y9 p, w- ;======================== DAT NET IN & TI LE BAN VE =============================
: S9 C' m8 L0 E Y5 K7 ~, Z1 g
8 L! x- X+ v0 B# r V: B& O; ?+ D- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================! x% b6 b+ C ~8 L' o
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
0 \$ P7 [ F# X$ |- q, ^ - ;=============================11|07|2025==============================
& b9 k! [8 r0 ]7 _ - ;Ti Le Ban Ve - 1 : 100( ~2 K+ S7 E( U8 v9 W3 p
- (Defun c:kta4 ()
9 y+ S5 a' M9 R" c - (setq mv_sc 100);Ti le ban ve+ v( q* P+ E; X' k8 } G+ n
- (setq x4 297)# k" _ y5 t4 l, ~; E$ I
- (setq y4 210)
3 C+ u3 D0 [5 Z6 r5 e( B7 H - (setq x4 (* mv_sc x4) ) \" j( s2 a+ o y. A- F
- y4 (* mv_sc y4) )
% V: i+ o" G4 A. |! J- q/ X7 S - (command
l7 s: b3 y. o: M; m- c; w& t - "LIMITS" "0,0" (list x4 y4)
( @7 K/ m* z" E - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
9 [4 ^. V; k3 A( O. S' ^ - ;Khung CHU NHAT Chinh
0 e: [6 G/ q" x7 _ - "RECTANG" "500,500" "@28700,20000"* G* q* p4 b h0 j- y3 [2 c
- "RECTANG" "700,700" "@28300,19600", R5 ^7 F7 T6 ~
- ;Khung Ten Chung
) j( i$ w; K) ?2 X- Q* r( b. u - "RECTANG" "700,700" "@8000,1250"8 ~ K. u: B+ S
- "RECTANG" "700,700" "@17300,2500"
% h$ ^1 H( {, v0 | - ;Ten Ban Ve' {; k/ M& f* \
- "RECTANG" "18000,700" "@11000,1250"
' {3 m& F; w2 M" k - "RECTANG" "18000,700" "@11000,2500", u0 A" O; W) l+ q
- ;Khung Ti Le + Ngay Thang Nam
# U) O$ ]# p- m) }* _% _ - "RECTANG" "22500,700" "@2000,2500"
1 F: _( h& e0 M! ]- N - ;Khung CHU TRI X! E) f% h: l. U" J, I' N
- "RECTANG" "8700,700" "@3800,2500"
$ |2 ?3 i- {; e- U& S/ A( T - "ZOOM" "_a" )) i' |4 [1 e: |, L& }2 u! Y
- ;=====================================================================
7 `) ?8 _. y6 j$ {8 y# C4 [6 T% n - ;Ti Le Ban Ve - 1 : 100
2 ~: p( x0 y3 e( a - (Defun c:kt4a ()
( \6 s, F8 l) J' B" [ i - (setq mv_sc 100);Ti le ban ve+ ^+ L6 M* _. _
- (setq x4 297), J) @8 `0 u) F2 s% M6 V! ~7 @( ]" g
- (setq y4 210)2 f1 `' v1 [4 O1 `* V$ H
- (setq x4 (* mv_sc x4) ) i/ ^$ x) S( k! R7 t9 f
- y4 (* mv_sc y4) )2 E# u& Q6 f" t9 j8 L6 x4 x! z
- (command 0 U! Z0 p; i2 c) D# u" Y ^8 p9 ]
- "LIMITS" "0,0" (list x4 y4)
+ v4 }1 w9 i u* y - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
1 g2 J- Y1 j( }8 Q - ;Khung CHU NHAT Chinh
) N& K5 Q, H4 y3 a. ?* u. r% [ - "RECTANG" "2000,500" "@27200,20000"% ?+ d/ _$ Y1 A" q1 H7 s
- "RECTANG" "2200,700" "@26800,19600"
V8 R8 t+ o& `9 P D2 } - ;Khung Ten Chung/ t# i6 P- M. E" W/ M
- "RECTANG" "2200,700" "@6500,1250"
! ^3 J# N5 F6 Q9 } - "RECTANG" "2200,700" "@15800,2500"
0 c+ o; T6 J" F5 f - ;Ten Ban Ve
9 ?# }9 j. s% O7 [3 h6 V* w; C - "RECTANG" "18000,700" "@11000,1250"5 Z! C8 _, _5 p I# y0 S- L3 G
- "RECTANG" "18000,700" "@11000,2500"
# [! _8 K' K. Y5 U/ \/ k - ;Khung Ti Le + Ngay Thang Nam
' n" v8 K' m" w+ V D, n% Z - "RECTANG" "22500,700" "@2000,2500": t$ y, O/ I4 t6 f% Q/ G3 Q* i
- ;Khung CHU TRI
! m6 R, ?" c) I1 S - "RECTANG" "8700,700" "@3800,2500"
4 _4 d1 Z( d0 w. l3 }; `9 b - "ZOOM" "_a" ))
, a& Z5 }# _# Y; e [- f. M% x9 o
2 c5 h3 [/ T V$ M$ |- ;;; ============================GHI CHU Khung Ten========================
0 `. s4 G3 s& v; }3 c. O - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
2 Z; p1 G- |/ z3 Q; F. I& I' l - ;;; =======================Thuong Dung Font Romant.vnh===================* l K0 z1 ~' Z* U* Q, m
- 9 b3 x- U% K2 S
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)1 c, n _% X, F) f: G3 S2 K$ ?* ?% P
- (setq oer *error* *error* err2)
! A$ w M+ G" B& G/ B - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")5 W. g& Z/ [ T, ]$ }- u
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
+ s1 |% P0 e8 k, Q3 P - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))/ L3 I5 L; Q5 [1 J
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))! Q% v1 L0 n7 g" y5 X' }
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
2 n) O; f# \8 Y+ N+ Z6 R' ?/ U/ L - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
, R" [7 F( |. i6 } G5 Y - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
9 N; j4 N! [5 T' {" x - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))$ H; |* v3 o* J" v7 s6 b
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))* [) a5 U+ h( ?$ }6 V
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
5 u: a& `$ o# ?" |" U, A - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))) s4 a9 o8 f3 m& k3 n, W
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
- x6 E! {3 B; S' [) ^ - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
' H' F0 Q7 \ W5 @. u - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
3 {! v% h/ T2 ^ - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
8 Z" G6 S& c& E, ]% T - (setq pta (getpoint- p9 j; E( n$ k9 R
- "\nPick first corner. : ")), M, G: d4 |% c) e, W
- (setq ptb (getcorner pta
- _( Q$ t1 w9 _/ j* l - "\nPick second corner. : "))/ O# d: @' J, e) X
- (setq ptc (list (car ptb)(cadr pta)))* c8 |$ h$ D6 L' L% ^' j! }
- (setq ptd (list (car pta)(cadr ptb)))
0 N$ M6 M& `5 z3 F! W - (setq ang (angle pta ptb))
+ Z4 I1 R/ {. S4 `" N" I9 s! j/ y - (setq d1 (/(distance pta ptb) 2))
7 }- \8 ~2 b- d3 [9 Z0 A - (setq cp (polar pta (- ang (dtr 0)) d1))
: F0 n0 i7 [. I2 K% L% q! k n+ P | - (setq X (distance pta ptc))
$ J0 c2 S# {, i/ _) G3 Z2 Y - (setq Y (distance pta ptd))* j* w/ D0 h) N1 M. }% q6 }/ m; ~1 ^
- (setq X1 (rtos x 2 1))
2 k, w7 B2 n1 _4 }3 ^ G8 S - (setq Y1 (rtos y 2 1))
( o+ Q3 N( T4 j1 _# M) F9 y% h - (setq rmsz (strcat "(" X1 " x " Y1 ")"))% A6 W6 u* m7 S: _
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
2 b! d( E! A, T/ y7 o% P$ f - (defun dtr (angg): F: U+ w F1 e& |* ]; {
- (* pi (/ angg 180.0)))# j9 {4 x1 L# ?* Q& h& A$ H0 \
- * H: I) K* ?) S. G. U8 j2 L9 q/ u
- ;=====================================================================+ t L# h# d$ K6 X. {) t8 o/ l
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
7 n0 p: O4 N" ?# L( n) [' r$ F - ;=====================================================================
0 j- @6 K: q, i) B
, D* x6 {- ?* L+ O$ y" ?& r& {& Z- (Defun c:a6 ()
4 a1 c6 m" @& \7 D8 [ - (setq mv_sc 100);Ti le ban ve
0 Q7 b9 P0 S- f3 ~" a - (setq x4 74.25)
. P; ^' l, o! A! E, g% n$ y' i% t - (setq y4 52.5)! c. r, d9 x, C! j
- (setq x4 (* mv_sc x4)
6 o0 ^( s" e7 O" K; g! _ - y4 (* mv_sc y4) )/ R/ X1 k8 n, T2 u/ ~! x; P
- (command
1 i, q# T' s" W& b& n - "LIMITS" "0,0" (list x4 y4)
5 S1 A- a6 F- _6 o3 b - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"( D) E1 `) b0 F/ X) h
- "RECTANG" "125,125" "@7175,5000"- Y- v" n7 Z$ J8 X# B0 H
- "RECTANG" "175,175" "@7075,4900"
) n8 w. @2 M1 G+ y - "ZOOM" "_a" ))
4 N0 P: ]8 m6 d6 J9 B6 [- M - ;=====================================================================
$ d0 g+ k* z/ W$ p - (Defun c:a5 ()
! I% k G! L8 _3 o/ l2 i$ `' b: o" s - (setq mv_sc 100);Ti le ban ve
( X+ F" Y) H$ p8 C& N" Z7 ? - (setq x4 147.5)
$ w* I; b- z3 a* | - (setq y4 104)8 L' v- H! d$ \- d( ]- b
- (setq x4 (* mv_sc x4)
' v5 G4 O% {; D: f - y4 (* mv_sc y4) )
1 v, J) |& {0 i: T+ [5 a - (command % U) J: k# @4 L8 {# ?/ A$ k' z( }
- "LIMITS" "0,0" (list x4 y4)" Q. e8 k7 X! u+ U" R) v
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
9 d2 G4 u1 ^/ @: f2 _2 w - "RECTANG" "250,250" "@14350,10000"& W+ T) h" ?- Y
- "RECTANG" "350,350" "@14150,9800"& ? M9 E; Z5 A! c; j7 O
- "ZOOM" "_a" ))
2 A$ k, ]7 b a - ;=====================================================================
, O! j7 O/ w+ N! p6 B' Q9 r - (Defun c:a4 ()2 }+ k. f' B' L
- (setq mv_sc 100);Ti le ban ve
% O) M3 a1 a/ t2 B3 Z0 U x6 i - (setq x4 297)3 E5 T* d; L3 |- {' X# d3 n
- (setq y4 210)
2 ?: Z4 D' y, h' h3 q( R7 r, W - (setq x4 (* mv_sc x4) ! B: B# H0 {4 B9 V/ E
- y4 (* mv_sc y4) )1 J3 e3 |9 ~. R% n, Y
- (command 9 l3 @2 m6 O, C) J1 T* M8 T+ s+ w3 p m8 s
- "LIMITS" "0,0" (list x4 y4)
3 P0 ]2 l' \" }# ~2 i# E - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- z9 y: e& T6 M' S3 ?6 s9 I9 t
- "RECTANG" "500,500" "@28700,20000"& z4 k {1 U4 O5 k
- "RECTANG" "700,700" "@28300,19600"
6 e' Y4 d2 r2 _* Z - "ZOOM" "_a" ))/ p0 D8 V; P: [, Z
- ;=====================================================================5 s" p$ w0 m% f
- (Defun c:a3 ()! r3 h8 g# `7 w
- (setq mv_sc 100)
/ m/ H! V" V, P0 J: r9 r - (setq x3 420)8 m9 b/ P8 `; [
- (setq y3 297)! D3 N& y; \5 d- K8 }9 j
- (setq x3 (* mv_sc x3)
9 D6 A, v' \0 L/ B0 a1 ^* I - y3 (* mv_sc y3) )
- O r. Z5 ^* G4 c' U. O5 x8 T - (command
- K8 m! }% y' x" _; O, S3 W5 ^# ^( V3 _ - "LIMITS" "0,0" (list x3 y3)
: w+ U+ N6 g* y4 x2 y) F - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"! z& _3 X# w( ]/ J
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
' }3 ~- g( }7 J3 {7 J* A0 W4 t - "RECTANG" "990,990" "@40024.28571429,27720"" ~! i7 `4 Q" M( l* r. D. R* l
- "ZOOM" "_a" ))
$ B; t3 I" c0 q( P; Z1 n - ;=====================================================================
: O. P4 d* l4 |' V' @ - (Defun c:a2 ()- p, c2 s9 @7 s" h1 b" V+ }' ]8 P
- (setq mv_sc 100)
; m% P- K$ W( L/ t - (setq x2 594)
3 K$ y0 y6 t) c+ _1 }! I - (setq y2 420)
) P; h3 @( C; @2 e - (setq x2 (* mv_sc x2)
; `* I, L# U5 |+ B- a* i3 \ - y2 (* mv_sc y2) )
/ F; e5 \+ ?; B5 u - (command ( J& R7 q0 z+ k7 h
- "LIMITS" "0,0" (list x2 y2) t" I; G) _5 `! N+ P/ N
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"" @. S0 O+ D% T0 @' Q" i$ |& d# C
- "RECTANG" "1000,1000" "@57400,40000"" ^: Q% }+ M% _+ |* s8 F
- "RECTANG" "1400,1400" "@56600,39200"7 y+ Y% @. X3 }2 Z$ j
- "ZOOM" "_a" ))
# n: D: s" k/ ]5 o. H6 I' J$ W - ;=====================================================================& X9 G% o! {1 C4 ?
- (Defun c:a1 (): [1 W( p9 }0 [3 `: K6 b
- (setq mv_sc 100)
0 r: E1 M8 f; y5 g( X - (setq x1 840)" J& k8 F$ O# t8 w
- (setq y1 594)
7 v1 B* h; }( E: i. T3 C) M - (setq x1 (* mv_sc x1)
, I* S" V f* s. D8 ?* A; W, ]- b3 K - y1 (* mv_sc y1) )6 ~2 ^" E( }0 t
- (command % V; o. E4 Y0 n {! Y1 Q
- "LIMITS" "0,0" (list x1 y1). H$ g. I* O/ W2 d3 x4 N
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
% T4 ^# Y6 W3 L! t. z! z) R - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
1 P9 j6 S+ L; x0 _* d) Y! x: S - "RECTANG" "1980,1980" "@80048.57142857,55440"
2 `1 L3 P/ A; A! B - "ZOOM" "_a" ))
' B. b; Y6 H! P9 N) o k+ b - ;=====================================================================
8 M6 l0 o+ K$ t - (Defun c:a0 ()
! b1 j& b7 @ n3 [ - (setq mv_sc 100)
# Z9 e% H/ s* O" I" u - (setq x0 1188)2 {. x/ U; v$ I/ s. y. x
- (setq y0 840)5 g. g. Z$ J& i5 X; A
- (setq x0 (* mv_sc x0)
* L* X8 m( y U. R2 b, h9 p - y0 (* mv_sc y0) )
w, y' _& @! Z: f S7 v7 D# B - (command
9 x1 u* G8 F0 w$ t - "LIMITS" "0,0" (list x0 y0)
# u4 G' F# N! a9 U4 D m - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"! p( s) B- n& O5 `( g A
- "RECTANG" "2000,2000" "@114800,80000"
5 H5 z6 ]; E. ?+ T r8 s" F' I - "RECTANG" "2800,2800" "@113200,78400"
0 z8 o% a# |! _- P - "ZOOM" "_a" ))
. A! t1 `+ k" e, d2 w; b - * u2 J2 `' N( s+ x2 _7 i
- ;=====================================================================2 h5 l" ^; }# L9 v+ ]- A
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
1 c" W; W3 v4 I - ;=====================================================================
! Z9 h* G; y Q) r - 5 g8 \' r5 S. y; \/ ^# y2 A& L$ [7 y
- (Defun c:6a ()7 a0 P# |' G4 B2 d' |
- (setq mv_sc 100);Ti le ban ve( t& g/ P' `9 y+ @7 p6 X3 x. N2 c
- (setq x4 74.25)
& W. m4 I, s B) e - (setq y4 52.5)
2 q2 M$ ~+ e, n" J5 z+ t" W% j. ^ - (setq x4 (* mv_sc x4)
* O+ G1 A! x9 l# A; L5 z - y4 (* mv_sc y4) )
( P8 t+ b8 a5 }7 T/ q8 o7 L - (command 3 }; b5 v0 b3 R& k- z) B
- "LIMITS" "0,0" (list x4 y4)4 q" d, v a+ b# ]0 c
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
W! R8 V/ b. ^- G( j! Z1 C - "RECTANG" "505,125" "@6800,5000"# J' z! M3 K% ~" A2 a* m
- "RECTANG" "555,175" "@6700,4900"3 Q2 q. W3 P t, ~
- "ZOOM" "_a" ))* f9 m0 B# ^% u! d
- ;=====================================================================* r' N' W" b; _' g3 }. F
- (Defun c:5a ()
6 K; k* ^8 f+ d+ b( y - (setq mv_sc 100);Ti le ban ve
: U1 t/ T" o6 ~& w/ P! N1 k" S/ Z - (setq x4 148.5)
4 I. a& l2 S! G5 N6 m1 p - (setq y4 105)
: D# B+ ?7 }6 t; o+ S) r& f7 |7 P - (setq x4 (* mv_sc x4)
% l0 ?: }) s; j& d: u - y4 (* mv_sc y4) )7 ?, M6 }4 Z) Z O8 Q* v% p
- (command
3 t8 m* D. [2 \1 m1 g1 n( p: l - "LIMITS" "0,0" (list x4 y4)
$ n2 d* |) C. Y5 C' y: }4 [( F - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"4 F! I* l/ e' ?' w/ F8 C$ _
- "RECTANG" "1000,250" "@13600,10000"% u( j5 S8 ?# T# t0 e- }
- "RECTANG" "1100,350" "@13400,9800"$ E( R, @( U, @* g1 x9 r
- "ZOOM" "_a" ))
- x, H/ u7 Y* p6 e - ;=====================================================================6 u" |, |8 [8 |& o
- (Defun c:4a () F' I1 g! R6 X5 O
- (setq mv_sc 100);Ti le ban ve
, n- c0 S- j- Y9 P: N; R - (setq x4 297)
4 ?1 q% K: Z/ M h! _& g( Y" P - (setq y4 210)
7 v/ p% K. a9 _ - (setq x4 (* mv_sc x4) * _% f, G. @ \
- y4 (* mv_sc y4) ); U1 Z4 U7 s* s6 H% Y) C) b
- (command
: z# f# d5 r9 e) e9 h - "LIMITS" "0,0" (list x4 y4)4 B- `; F% |1 W* t* }. S
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"! J( p7 W7 S$ x- w9 h r
- "RECTANG" "2000,500" "@27200,20000"( `8 K v) ?$ s
- "RECTANG" "2200,700" "@26800,19600"
! C/ }1 @! |7 Q. c" l7 n - "ZOOM" "_a" ))) y' a" z. o, n0 q" k1 b
- ;=====================================================================
1 X; m. P$ H1 p5 _1 `1 w" d - (Defun c:3a ()1 S9 _" G6 _2 l" j' l
- (setq mv_sc 100)3 _8 Y+ ]- C5 G
- (setq x3 420.0428571429) |7 f$ Q* A( _, m7 z4 E
- (setq y3 297)
; I! d* Y) `' C4 c: L6 r6 a - (setq x3 (* mv_sc x3)
* ^9 u/ q7 j r, l - y3 (* mv_sc y3) )0 \' r0 |+ f; b% b6 L# U+ x3 s
- (command
+ l4 ^" h. g; A5 N1 S. G( ] - "LIMITS" "0,0" (list x3 y3): K5 n3 }% w$ p0 V+ O, X
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C", d) @& ~, b) j. K
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
, n9 \; N2 Q) D+ B; B/ {" z( ` - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
- W* |( L4 c6 _7 W3 z, N: `9 ]- @ - "ZOOM" "_a" )) t# l' a: R# h8 c
- ;=====================================================================
; i+ r$ X3 [5 Y: M+ ]- } - (Defun c:2a (): P5 C9 |& B; L* s3 K
- (setq mv_sc 100)/ A3 g( t2 s7 s5 Z$ b6 z2 F
- (setq x2 594)
$ f; V0 ^; Z# @ - (setq y2 420)& F0 g1 c& l E( v
- (setq x2 (* mv_sc x2)
& C" R# I- g; q1 Y - y2 (* mv_sc y2) )3 G9 f; t' Z$ A3 \+ d7 m+ q
- (command
9 K7 q D; E$ j$ n7 a2 E3 z - "LIMITS" "0,0" (list x2 y2): M) {! z* D$ _8 \3 z
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"+ w6 D) |, ]; T: W; D( w2 d
- "RECTANG" "4000,1000" "@54400,40000"
4 I$ v, b+ @, I% j# G$ g7 C X( \& P - "RECTANG" "4400,1400" "@53600,39200"8 b# k4 F/ o, y6 Y( ?. ~# h
- "ZOOM" "_a" ))
5 q7 W# G. r p+ L+ x4 l( g - ;=====================================================================
9 F# e6 m* ]- W7 Y8 e - (Defun c:1a ()
7 }$ m( v. C2 m/ g9 I3 E, } - (setq mv_sc 100)
5 v: v0 a: b' e+ V0 {/ C7 a+ B0 v - (setq x1 840.0857142857)9 G4 s& l% O; K- _! R" Q. s4 G. \
- (setq y1 594)
4 {* p& T& q+ ^$ I. E; E- I& u - (setq x1 (* mv_sc x1)
, d) E& g& l1 O- `8 f6 Y& w/ p - y1 (* mv_sc y1) )" R# k1 l: Z' {
- (command & J2 A, |7 T+ G e: `9 }
- "LIMITS" "0,0" (list x1 y1)7 B; _4 [1 O5 O, v" Y: d
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
d8 V; c* f; O - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"+ r6 h$ w# W9 H& I4 Q8 b7 Y: t
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
7 F4 ^; R+ N+ x9 M - "ZOOM" "_a" ))3 }6 G# b; l% |) l
- ;=====================================================================' l+ X, O4 S* P9 D3 x2 c8 j8 a
- (Defun c:0a ()
3 b7 R& D' ]. h* J - (setq mv_sc 100)& q- I1 |" z2 {1 V9 F% G5 z6 A
- (setq x0 1188)
& J# j4 \! i3 L& `9 U( J- T( N) B - (setq y0 840)
* z% I2 R2 Z# L$ _& ^ - (setq x0 (* mv_sc x0) 2 \+ Y) J! y$ Z- m- l/ _6 \8 x
- y0 (* mv_sc y0) )
6 Q& q* ~, O" l; o. n+ T - (command ' L+ L G* _! K
- "LIMITS" "0,0" (list x0 y0)
$ q, N! c8 I6 q5 r% A3 L% F - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
9 k- V- Y1 C) Y - "RECTANG" "8000,2000" "@108800,80000". O+ G6 g- V# I9 Z8 ]5 B
- "RECTANG" "8800,2800" "@107200,78400": e5 i* u# D- u* O* Z7 y* a
- "ZOOM" "_a" ))# ^ R' m) V$ x
4 I2 ~* P* v8 a6 X) e; R- ;=====================================================================
! o* _$ w9 d6 Q) R - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
3 ~1 M+ B+ |" y# h! P+ W - ;=====================================================================
, M* b0 D; O' e5 A - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
/ F5 k, b5 j- k+ | - (command "undo" "be")# A4 [- ?, e* B7 I- c/ }; f
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor"))) V) Q/ s! M0 V+ U5 S/ _( G
- (setvar "CMDECHO" 0)6 a7 X6 b7 b. t% ~* f, g6 k
- (setq a (getpoint "\n chon diem chen :"))
0 k: V- h, w0 ]2 [" B; I6 @ - (if (not TL) (setq TL 1.00))
/ C+ B9 ~4 l C - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))+ [' s: D; b4 n4 U+ v' n
- (if TL1 (setq TL TL1))6 ^, ~2 w) Q) v( e' a7 q+ l
- (setvar "osmode" 0): k [! I8 I( u) H- w5 ?! d3 p
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
( R1 J$ w: M' n& J d1 ~. } - (initget "0 1 2 3 4")
3 ^) i' t6 h+ M2 h - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))' @" |) p) n' X, D+ M1 E
- (if (= kho "0")! O. _' M5 K3 b7 B7 ] o
- (progn
' C8 W2 d8 P% ~; a1 D - (setq b (polar a 0 (* TL 1189)))
/ g! i+ z: i+ y; r - (setq c (polar b (/ pi 2) (* TL 841)))2 r: n) S. F$ U8 E
- (setq d (polar a (/ pi 2) (* TL 841)))
; |8 T3 F& _3 Q" M# B) | - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))3 R# I$ n- s" b- ^( s1 w
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
$ V2 ?; ~: D2 R - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))0 f# i9 K2 J2 l* j" a
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))8 f7 g$ u$ [! X) w( y3 e \- R
- (command "Pline" e f g h "c") + R& U! x$ o, p7 f2 `
- (command "change" "last" "" "properties" "layer" "0" "")! M1 {/ H' Z) B; }/ n
- (setvar "cecolor" "4")
- a8 @2 v. P1 L( Y& J - (command "Pline" a b c d "c")
V3 K! y6 l" h! e. | - (command "change" "last" "" "properties" "layer" "defpoints" ""))) + ?5 g( {3 D ~3 J' W0 ~& Q; L
- (if (= kho "1")
4 ]8 K- r5 v( T3 } N- u, U2 ~ w - (progn
# a* v; \! x8 y8 @5 j+ a# K+ l - (setq b (polar a 0 (* TL 841)))
7 {0 m) u2 N2 c. z - (setq c (polar b (/ pi 2) (* TL 594)))
8 I! N' H( p( e - (setq d (polar a (/ pi 2) (* TL 594)))
9 e6 i9 R/ f8 {3 |4 f/ [, \) } - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
9 e2 ~4 z) \# D) ? - (setq f (polar e 0 (- (* TL 841) (* TL 24))))3 o0 h$ I; T" D; V& l* T
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))+ F8 ^: T- G1 A1 E' }/ ]
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))5 s7 h# ]4 B/ A- \. C
- (command "Pline" e f g h "c") ' y0 ?8 Z3 \/ v. h2 T! N
- (command "change" "last" "" "properties" "layer" "0" "")3 d4 [* n* [6 V1 h6 o6 {, c5 h7 y
- (setvar "cecolor" "4")/ `5 }& T1 ]1 k7 M, Q U
- (command "Pline" a b c d "c")/ U8 \& j6 g, B% f+ X
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
! G Z0 A7 z+ H$ `3 R0 }6 ` - (if (= kho "2")
8 H$ G1 F' ~! Y( F; e* ]2 ^ - (progn% h# b6 I7 u, S
- (setq b (polar a 0 (* TL 594)))6 W3 x. { U5 B
- (setq c (polar b (/ pi 2) (* TL 420)))
( E d' p6 } U4 g( n. H& g5 T - (setq d (polar a (/ pi 2) (* TL 420)))
- @5 }4 f/ n5 t. x* V - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))), P; F3 S) N3 p7 H9 F, N# q8 x# \
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))) O* Z. d& @0 J" r) T* {: u6 Q
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
& p1 \7 n0 }* G; }% l0 m - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20)))) a% f3 k/ {0 M9 f
- (command "Pline" e f g h "c")
) v W+ m) Q2 ~6 d) J. W& c1 a - (command "change" "last" "" "properties" "layer" "0" "")
, y- h( I5 X7 T/ o+ f - (setvar "cecolor" "4")
$ g/ G8 j7 ^$ S! d! T0 N+ R7 j - (command "Pline" a b c d "c")
7 _+ B" L( e: l4 W( B; B) H - (command "change" "last" "" "properties" "layer" "defpoints" "")))2 n( _$ @! X3 j. E
- (if (= kho "3")* L8 V+ E6 P5 S
- (progn* G+ C1 L$ A/ T9 C: X0 ^
- (setq b (polar a 0 (* tl 420)))4 X9 D8 \( G5 `) _4 J
- (setq c (polar b (/ pi 2) (* TL 297)))
- C8 T" ^1 i# \1 T5 G' F9 G: A - (setq d (polar a (/ pi 2) (* TL 297)))
: [$ m, }5 E& m% i5 C e* O - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))# p$ z0 a' K8 X/ K: o* S
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
* Z. f& R+ ]: \+ v+ y - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
; ^$ |5 C8 Y7 T0 p7 C - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
; h# Z$ W& {9 S2 b X) L$ X' n( _ - (command "Pline" e f g h "c")9 P9 G3 V2 K7 n- [6 f$ H% D0 @
- (command "change" "last" "" "properties" "layer" "0" "")
1 \7 w/ U6 g1 R7 T6 X, j7 ] - (setvar "cecolor" "4")
" ^7 N% ]( `, Q) f/ t - (command "Pline" a b c d "c")
& ~, J, {( S; v6 b) [9 @# c - (command "change" "last" "" "properties" "layer" "defpoints" "")))
4 ]/ Z& P" E+ Y6 m& y0 E - (if (= kho "4")3 E, ^/ c4 j; K, R, i# x1 M
- (progn% O3 {4 R' a+ u, S
- (setq b (polar a 0 (* TL 297)))0 {$ E7 x9 @' b: V; s) R
- (setq c (polar b (/ pi 2) (* TL 210)))- f- p- r, T* B- v0 _
- (setq d (polar a (/ pi 2) (* TL 210)))
# I9 v* s0 V& I! W+ i i$ p2 x - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
1 j" I/ _; P# w - (setq f (polar e 0 (- (* TL 297) (* TL 18))))) y- I$ y1 U& e) b. A: y
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
1 e6 w u9 T! t8 ~3 M( x - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))+ M0 ?& o7 r6 {) { G+ u# D
- (command "Pline" e f g h "c") # r7 @+ S1 U2 h8 l; ]
- (command "change" "last" "" "properties" "layer" "0" "")1 u; B" V# r$ I# r( O7 a8 O/ a+ |
- (setvar "cecolor" "4")
% h4 ^0 p" i c0 @& } - (command "Pline" a b c d "c")
8 q# d) f' T8 b5 K: p4 w - (command "change" "last" "" "properties" "layer" "defpoints" "")))
# e7 i% Q0 q% `5 `7 S* @7 H' m. Z - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
6 l3 p! l4 C v0 `. y+ J - (command "undo" "e")
2 r9 y4 p4 L* S! g - (princ))
7 O4 ~, d( {8 K2 u - ;=====================================================================1 u: @4 i( M8 E: U. `, I1 K) G, O* l
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================8 n$ t$ ?% P f' S$ Y" J
- ;=====================================================================- s$ c+ l$ B4 |3 Y
$ A; {: i+ A6 `7 s) `- ;=====================================================================: N7 O+ u$ z( ^3 o% |# W
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================# u, y7 C8 J1 ]9 X* W
- ;=====================================================================
$ f/ C8 d$ I! F8 A% K7 ^0 q
2 o4 s4 F, M0 ~7 A" q X& q; \1 H! ]: {- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
& c* _( d# W5 h( H# ^4 f8 ^ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""4 i+ ^, }$ Q& Z8 r7 q; r C3 \5 v" ]
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""
. |: ^- ~' i a3 k; _) C4 V6 I - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""# ?5 u4 L* f( Y, Y2 o% P6 v- F
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
' Y' Z" O* B$ Q2 U) Q3 O. c* h; j: T - "M" "THAY" "C" "7" "" "Lw" "0.2" ""9 X. |$ J; n$ s6 e6 y
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""1 }7 S9 d# V( [5 Z- E. j
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""9 E, w q8 {: N. Q' ?
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
) L6 z$ v( [* F- m - "M" "Defpoints" "C" "7" ""+ s) u- O* _ n4 J1 @' F
- "M" "0" "C" "3" "" "Lw" "0.12" "". ?1 H1 [+ t6 E. A, B
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""$ F( Y P: t+ }2 }* o# y _
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""' E6 o* z; F- y. O9 G. z. K) T8 Y
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))9 i8 m1 Z2 P- _( e* e' o
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""8 p. X/ ~+ \' ]' M: t2 b( _6 j, b
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
m2 \( J4 n% s' y - "M" "MANH" "C" "9" "" "Lw" "0.12" ""2 ~3 D) j. g: s4 [' R$ K
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
1 h( R) g5 D: @; p5 l, A - "M" "DIM" "C" "1" "" "Lw" "0.2" ""; `; O y; b4 M3 |! Z% `! k5 V
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""* a9 k6 }7 y! O7 v( |
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" "") e9 L7 G2 L& |9 G
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""$ A* b4 h2 g d" {; w
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
1 U$ M; S- n) y - "M" "Defpoints" "C" "7" ""! M v V3 K' ]) E7 g; d w
- "M" "0" "C" "3" "" "Lw" "0.2" "") k+ k7 ]" y$ i. h6 G
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
* @3 e% V! Y+ M# r" X - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""2 A' t- v7 E# j+ d# O
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
% h' v! }5 K+ _1 W1 |) { - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" "") L$ j7 n8 O$ Q- Q; h
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
* h+ d( C! ~6 j - "M" "MANH" "C" "9" "" "Lw" "0.2" ""1 Q$ V9 f! R' j
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""2 _% [8 [. W4 [1 c5 `) B
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""% @7 N& }( D3 D
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
$ o+ `- r! L9 f0 t - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""! ^! ~; a- I! N8 h$ F. n; ^- S% k$ i
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""( n& d+ N, a$ i7 l+ U5 h7 s [" B
- "M" "COT" "C" "1" "" "Lw" "0.6" ""5 s! P+ o% b/ A9 A
- "M" "Defpoints" "C" "7" ""
5 s: v' u+ C) {) D- @+ z( o) d - "M" "0" "C" "3" "" "Lw" "0.25" """ U. Q8 m" I2 Q* K6 D& X) U5 y# e
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""/ G0 H% R: t: z) T6 |
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
8 r% w& A4 H; Q. J5 T$ } - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "")). q' ?% [0 R2 R1 P* b T* B- h
- / g. {) B( |- e
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
, Y; j* W6 h/ {, i* c - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""4 H) T9 J% ~' @6 |* P! ?; \
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
! N# W F* R% J - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
% s/ s3 }, K1 P9 E0 Q - "M" "DIM" "C" "1" "" "Lw" "0.35" ""( [1 ^; {. N; a: I# W6 z
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
! ^9 O6 R8 d- Z' n R7 i( q t5 ] - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
, c4 j b3 K) g; k4 o; C - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""1 z- L' r5 ^3 w
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
% l6 M( \0 t$ x9 h+ a - "M" "Defpoints" "C" "7" ""
6 {' V( b; e1 }8 K. f9 [ f- f$ f* T - "M" "0" "C" "3" "" "Lw" "0.25" ""
1 N0 M7 l; {9 }0 i - "M" "CUA" "C" "6" "" "Lw" "0.35" ""9 U; L" I& l' C9 A
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""8 E4 F8 ~8 M5 _& u
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)2 X9 D1 F. m% @ Y. \
- & z. v$ c4 u' [9 Z- p. E+ M" B
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""* j4 S' P; z- Y- I0 n7 }
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
' n: G2 r+ }2 N) K* B; F - "M" "MANH" "C" "9" "" "Lw" "0.25" ""4 c8 K! Y6 y$ x
- "M" "TEXT" "C" "7" "" "Lw" "0.25" ""; j$ ?* o+ b9 h3 l
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
`& ^! a7 {% I3 j1 O - "M" "THAY" "C" "7" "" "Lw" "0.4" "") H7 m9 C+ p Z
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
) l. @: `8 k! b, c# f* V6 \9 I - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""+ x3 g) f8 n \; v5 i
- "M" "COT" "C" "1" "" "Lw" "0.7" ""9 o' t. z, t( N1 y
- "M" "Defpoints" "C" "7" "" }8 x+ x( @) n- a/ b
- "M" "0" "C" "3" "" "Lw" "0.35" ""$ j# Y( m: g6 G5 y2 j5 e1 x
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
, i9 s( I, Z% M: K/ E - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""8 k Q9 C: Y6 A
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
9 \/ n" A1 M: A; t+ [7 z( K, b - ) f! W$ c Q" n+ A, q$ k
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""; c+ _7 E; n! H
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""2 e; h5 J; ?( O
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
, }9 A/ J4 q/ h+ e' _ - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
5 t' m: g- S& W+ n8 j! D - "M" "DIM" "C" "1" "" "Lw" "0.35" ""/ k2 ]# B. U; ~& x, P7 d
- "M" "THAY" "C" "7" "" "Lw" "0.4" "". D5 ]+ K( K" `8 O6 s
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""+ [8 @+ O* a7 o1 x- U
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
5 Q- [/ x5 c; T# h/ w$ C% b% ] - "M" "COT" "C" "1" "" "Lw" "0.85" ""
) H) v4 t4 j" Z0 w& J' t! N - "M" "Defpoints" "C" "7" ""+ f% O* g/ X' _" t
- "M" "0" "C" "3" "" "Lw" "0.35" ""
& j* g2 ?+ m1 S, u) z: b8 d, n - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
7 Z1 O1 p' S0 J- |0 ?& L - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
0 Y5 m8 W, I0 I0 a' t - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
; |) z: x; ^% \4 z( r/ t6 X -
* P" ]9 x% F' ~+ D! u - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
+ ~" c0 X2 z) e* D' z7 O8 u - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""9 z/ R x6 R8 J6 Q
- "M" "MANH" "C" "9" "" "Lw" "0.35" "" R# H7 Y8 ~# J, a
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
! _3 i! b0 `" q, h! w - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
9 ~! c3 |$ V1 |0 t S$ z7 @' x - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
$ o/ }' ]7 d5 [# d; A, c - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""9 e4 l0 X/ k; R8 W
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""1 U1 v+ j( @0 j4 T) W% g. T
- "M" "COT" "C" "1" "" "Lw" "0.1" ""
5 k) d5 O0 [8 F' Z, i8 w# ^4 T - "M" "Defpoints" "C" "7" ""
0 X7 A7 t$ \% G# A5 p. W; D8 y. z - "M" "0" "C" "3" "" "Lw" "0.5" ""* ?! H# K8 v9 ]+ b9 o
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""9 c( t$ z/ z+ W( k, k* b
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
; M) P9 c/ n) d - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
c, q; ~2 d9 F& s4 r. B6 m, m- c4 K! B - (DEFUN C:O () (COMMAND "OFFSET"))
2 B- E2 n; z5 p5 Q2 J - (defun c:s1 () (command "surftab1"))
: G# m5 W6 q! z1 V$ e; k" k - (defun c:s2 () (command "surftab2"))1 p& O5 e3 c) a( [6 I( S( o
- (defun c:ep () (command "explode"))1 R' d, [* k: y; E3 B+ w. X, d9 n
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))& X8 H+ {6 f- \7 `5 l& j
- (DEFUN C:QV () (COMMAND "QSAVE"))
8 r, t0 q4 ]2 A2 F% g( v - (DEFUN C:S () (COMMAND "STRETCH" "C"))
( S1 C& z5 m$ d! [ ]& P
' g* y3 A" k2 k6 w% H" W- ;************************** CAT DIM **************************5 R$ w+ ]: S3 ~2 k
- - S0 X: Y, y8 n, E, b/ n+ U5 J% a0 q
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I5 D9 @: d+ ~+ E8 q, V& Z: j
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)* w: `" I! A7 [1 T0 o8 T4 X H1 s3 k1 f2 j
- (SETQ CMD (GETVAR "CMDECHO"))- [+ Y: o4 _) e& C* ^5 ^: w
- (SETQ OSM (GETVAR "OSMODE"))
2 j0 r1 T4 A s* [6 B - (SETQ OLDERR *error*
2 _1 y. L+ K+ G' A2 Y- t6 s4 ^ - *error* myerror)
+ d3 v: T6 x; U - (PRINC "Please select dimension object!")+ D8 a% L6 K3 N, N. t4 N
- (SETQ SS (SSGET))! j# v( i1 o5 M% v" G
- (SETVAR "CMDECHO" 0)
9 X. d% [' t: S1 _7 m3 z - (SETQ PT (GETPOINT "Point to trim or extend:"))2 l0 m5 J0 u0 O- `1 z0 ^3 ^! i
- (SETQ PT (TRANS PT 1 0))
8 f* R: \) i! r - (COMMAND "UCS" "W")0 ?/ f/ x7 g6 @! V% @) R- v
- (SETQ LTH (SSLENGTH SS))
) L# Y7 I$ g! ?, S! k9 v- g - (SETQ DEM 0). M! z' q8 T5 B9 |
- (WHILE (< DEM LTH)
0 y/ {8 O* k- W5 |5 O( L0 v - (PROGN
$ {" f3 o; {9 O/ `- t) K: F - (SETQ DS (ENTGET (SSNAME SS DEM)))" D6 w, R2 T0 Q
- (SETQ KDL (CDR (ASSOC 0 DS)))! N$ ^0 o0 E& {' U5 @
- (IF (= "DIMENSION" KDL)
# K4 F7 _9 K g+ c' B - (PROGN
7 D& Y' O- `- S0 @ - (SETQ PT10 (CDR (ASSOC 10 DS)))+ D1 H3 L9 ~; v5 X
- (SETQ PT11 (CDR (ASSOC 11 DS)))
, e }. {% S$ M$ e+ i - (SETQ PT13 (CDR (ASSOC 13 DS)))
7 L3 ~9 H: a2 \! j; B4 O$ t4 J - (SETQ PT14 (CDR (ASSOC 14 DS)))( l. b; X9 A r i7 s
- (SETQ N70 (CDR (ASSOC 70 DS)))/ m! C) J- q7 b2 t+ d" b
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))$ m' ]7 U. J2 G+ L. L& `
- (PROGN2 L1 e, Q: K; ^. Q. b2 u( C4 o/ {
- (SETQ GOCY (ANGLE PT10 PT14))7 q m$ D8 ?6 n, J6 {
- (SETQ GOCX (+ GOCY (/ PI 2)))' N5 A9 H; m: y1 _9 e7 I+ l, x3 Q: {
- )
2 |9 R8 Z4 W0 w$ `1 _ - )/ E/ x; Y+ T' I4 b
- (SETVAR "OSMODE" 0)1 Q5 [* `8 p r' N" i
- (SETQ PTI (POLAR PT GOCX 2)); g$ I/ _1 A( v: y3 Y B
- (SETQ PT13I (POLAR PT13 GOCY 2))
! x2 x" |# W, l q* T% g - (SETQ PT14I (POLAR PT14 GOCY 2))$ [. }; j& V0 Z& \# X
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))& k4 U" }8 k5 @2 q
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))- e6 A+ \6 w8 L- |8 k
- (SETQ O13 (ASSOC 13 DS))( }$ {3 E" w9 P6 y' e P
- (SETQ O14 (ASSOC 14 DS))
, g" y7 f: u7 b& i - (SETQ N13 (CONS 13 PT13N))
) b( |/ g# E/ n' j& E N - (SETQ N14 (CONS 14 PT14N)). _ i) ~7 U! e# ?$ o% W8 w5 q
- (SETQ DS (SUBST N13 O13 DS))
9 i+ C. V8 k; W4 ~* q4 b - (SETQ DS (SUBST N14 O14 DS))- P- C$ h( o. J' ~! y
- (ENTMOD DS)5 J9 T$ s7 ^$ b; M7 c/ T" Z
- )
7 e* H! r3 i5 J0 @: r- T6 W - )
6 {: [, w1 ]) ?+ j( B - (SETQ DEM (+ DEM 1))
) _+ ]1 @& [/ [' A - )
' c$ a# [- E9 u/ w - )
, M1 p. \! J) ^( d4 g# H - (COMMAND "UCS" "P"): n, o8 Z8 r9 A5 ?7 ?. s( L1 S# d
- (SETVAR "CMDECHO" CMD)
$ ^8 o& H1 O# w - (SETVAR "OSMODE" OSM)# G( p. ~9 G- p. p8 |3 S% g9 c
- (setq *error* OLDERR) ; Restore old *error* handler* v2 m/ H7 K& T* d7 |, t
- (PRINC)
, l: D. o: ~/ ^2 C) q" N - )
3 k( F! ]8 j; U, d
- D- O& ^2 Q6 |0 j8 h- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI7 \$ P* z, C+ N$ f3 \( B! v
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)8 }# C# J3 X7 H/ r7 x
- (SETQ CMD (GETVAR "CMDECHO"))
& q9 o$ v* e& p- s1 r - (SETQ OSM (GETVAR "OSMODE"))
8 g+ v( h) `$ o - (SETQ OLDERR *error*9 |/ ?& | K$ Y# [) G6 @$ z0 T
- *error* myerror)
5 C& E0 s* A9 `" u. g' H - (PRINC "Please select dimension object!")3 ]" Q, l* S0 J7 ~5 H8 t$ C5 B
- (SETQ SS (SSGET))
/ d4 H. D) i: p% W- f( M# E - (SETVAR "CMDECHO" 0)( k5 E/ _" S3 D& s6 F+ A
- (SETQ PT (GETPOINT "Point to trim or extend:"))* j$ W# K# L& O5 D z; x; x
- (SETQ PT (TRANS PT 1 0)): T$ y& [9 A* n G% w+ I, `
- (COMMAND "UCS" "W")
3 U- o8 c- }1 G& L - (SETQ LTH (SSLENGTH SS))* Y9 v* M/ q2 ]7 r
- (SETQ DEM 0)$ J* j5 P' @7 a. t/ Y
- (WHILE (< DEM LTH)
3 d2 c: Y4 J0 i - (PROGN
, P5 D0 i7 H9 Y! m2 y9 C( p - (SETQ DS (ENTGET (SSNAME SS DEM)))4 {4 f3 L$ W0 A/ ~) _& \0 r: Q
- (SETQ KDL (CDR (ASSOC 0 DS)))' y0 m/ |8 c8 N
- (IF (= "DIMENSION" KDL); a, z8 r6 B2 Q5 N* `: Q% v p
- (PROGN
1 V$ O' _9 X5 M6 O) o - (SETQ PT13 (CDR (ASSOC 13 DS)))/ Y! ^# }, n* @) n: R- O5 I
- (SETQ PT14 (CDR (ASSOC 14 DS)))
! x' S# C6 _. f2 ^) W - (SETQ PT10 (CDR (ASSOC 10 DS)))
; D7 b2 w3 M; ]& o - (SETQ PT11 (CDR (ASSOC 11 DS)))4 j0 G8 z6 a; B% g+ B
- (SETQ N70 (CDR (ASSOC 70 DS)))
7 M8 N' g) F8 Q- J4 b - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))9 J- W O$ N; h
- (PROGN
- g- V0 c# X. `3 R) t - (SETQ GOCY (ANGLE PT10 PT14))
" ]+ m& ~% t! `, n: f - (SETQ GOCX (+ GOCY (/ PI 2)))) `" a6 F# r$ J& S2 i8 O7 f# Z r
- )
) ~: k$ Y. _, c, }! H - )6 n0 |8 Y2 W' L1 z+ ?* b7 q9 Z& A
- (SETVAR "OSMODE" 0)
, k0 \5 x a0 U" R- w3 F- ]) i - (SETQ PTI (POLAR PT GOCX 2))
/ k3 x3 k+ s- g' B# g- V4 K6 K - (SETQ PT10I (POLAR PT10 GOCY 2))
' {+ [" i3 J% k3 M4 i/ q" a - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))( H% l# E/ ~4 `! |# x
- (SETQ KC (DISTANCE PT10 PT10N)) V1 D! D2 B# v8 i: i5 m6 r# C
- (SETQ O10 (ASSOC 10 DS))
% l0 q/ c: o4 {9 ^1 @, X, Q7 }3 T - (SETQ N10 (CONS 10 PT10N))
/ q+ O4 h5 l' y5 h2 r - (SETQ DS (SUBST N10 O10 DS))
. R- j) G1 x9 C7 e0 c - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))# P( k2 R- o9 e+ V. @( T
- (SETQ O11 (ASSOC 11 DS))
7 h& t9 H' i4 U: T* V9 ?- ?. ] - (SETQ N11 (CONS 11 PT11N))
. D4 S) P8 p \7 L - (SETQ DS (SUBST N11 O11 DS))
@7 E7 E: P: }( E9 N - (ENTMOD DS)1 w: T6 i9 O6 F# y6 Y
- )
. X& T; n% u' m% ~7 [" z' F, n5 ^ - )
/ }& E7 g9 b1 K/ w( e9 e7 O - (SETQ DEM (+ DEM 1))- c& Z( B$ r1 G' [- X
- )- g- r, F$ b! Q( l
- )5 `* N' L) m" s. B* U6 J2 ?
- (COMMAND "UCS" "P")) y2 z$ M E3 A( S% a$ U
- (SETVAR "CMDECHO" CMD)" v) y+ d+ ~7 R, ~
- (SETVAR "OSMODE" OSM)/ O& P2 u l3 m( L/ M/ I/ Z
- (setq *error* OLDERR)# y) ]6 Y& t4 D7 ^
- (PRINC)7 K( s; O! s1 ], [( z i
- )
3 t0 C8 t+ V/ G: B* s7 X+ b - + T4 Y3 L9 S. O1 W7 d9 l
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================! C' s: G3 O v5 H2 T% ^
6 C2 b# L5 k8 I! n, p- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
$ Y0 b/ \: ?( e* [) m: p - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
O7 c+ H$ n+ q9 e - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt* @# |* Q- }$ ?6 T- H
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))( l- S1 x* E; b7 P0 R( x
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
+ P( N8 ^( V( C. d# t - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
5 K! L9 ~; h8 ?4 b3 i2 t - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
, U z( u9 R1 s - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
7 y1 B2 y; w; X; P - % }% \# z V9 T, T
- ;;; ================ CHEN COT (TUU) =================
0 N0 D: o( s+ Q8 Q0 x/ L5 I. R - $ ?: V. v5 f) D K' I
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
: K# X+ x5 {. i - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")# e; v$ e: O0 k7 @$ q9 H' Y' K* z/ {
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
/ z7 F' ~0 S& B6 m: R - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
; m$ S" Q C& v" S3 H - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")3 X$ g1 U' {. t' |/ q! F4 V
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
, ^2 k+ H3 ^4 e- C n$ @ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))( E% f3 u% | V2 w% h
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
0 }5 m$ u0 ~8 s8 z# E) L - 4 b/ ^- C2 @, {4 T3 z& [
- ;;; ================ CHEN KY HIEU THEP (TP) =================
0 b! j; ~- Q! @' U
2 P2 G6 T$ X; V: I- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
: i2 D: ]) z& e6 L K - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
6 b$ v. S1 p0 J4 V - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
5 H4 _9 z, a/ \$ q" k- x1 W1 R5 v - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
! }! A3 [$ H+ v - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
& Z/ u, o8 T/ F" h* J) ~' w) F - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
0 g- n+ s2 U8 U) q& B P - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
( Y( T3 a: |- ?8 Q - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))5 y8 s" x Q0 W
, |6 Y( l) r) Q; {- ;=========================== TAM TUONG (TAM) =================================- I6 T+ w- k) k
4 l( v1 w% s' f% u1 y- (defun c:tam(/ data_m)9 }: e2 D' ?) B) o) `" ^
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0)): F$ M0 m3 H% s& s
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i)); T8 s! X8 k9 _, \0 w L
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
: _! a0 j; k; ~# `* A% ^ - (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset1 j4 T# [1 H% Z
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
2 n1 |; |2 ?- v - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
' q3 R+ V$ J. X9 l8 s+ @. F0 ] - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
3 V a- y& x/ ]3 W0 p9 Q( K, x - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)3 w9 L t8 h) S5 f
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)6 L, j% X" K8 C5 O* _$ Y
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))3 X6 n m# [! V
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
|: X {# g2 b; A/ N+ E$ f/ f1 d, J - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)6 T2 Z; |# j3 t5 j
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2))) o, o) Y7 H9 V, X/ C% f! E0 `, u
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p42 [, Y9 K$ |: }% A9 e- a
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
* | Z2 z) l) N% g - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
1 k4 ]% b+ S4 H$ @! y - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))% ^* Z$ A+ ^9 o% `, Z5 h) V& ]
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
& {( `6 X. k7 o/ f' C* T% D# K4 j - 9 q9 H. Y6 k6 ?6 Z9 B
- ;============ GHI CHU PHI (T1) ================
; z) }- J( R: E
" S% C/ k- T; e) k0 }* `; f% k' h- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))) s9 S/ G- |( F. c# T
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D33 Z* E) ^+ ]; R# W9 |
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
2 m) q0 W" k& F0 h2 l - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)9 v3 b3 W! b, x* X
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
# g( {' S0 `) B! p2 K - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
0 o! q6 I! O7 S. G/ g - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
/ {. g1 n* r8 q4 N+ x1 K5 R - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
' T1 V% t, v; o1 P - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
3 s7 P. U% W& C% k0 H/ M+ R - (command "ddedit" pause)). V; S! s9 @( x, x/ l9 `+ ?
2 Z0 X- S2 X3 h( M0 r# I' C- ;;; ========================== Join (J) =================
) x& K I! @! C+ X& c - ; B' ?. Y0 P+ l q
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))1 A' \# w( e% `! @0 |
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? ")): H& T. q8 Y; L5 Z
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)1 W( V$ [' `6 ~+ r4 Y: c
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")* h- E! r: p$ }! ^
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))( S' h5 `1 T: [( t' B. Y! o
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
: ?" x& l* j ]( ^3 F; } - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
5 z- T$ W* q+ K2 x. q# W - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))! z; x9 p2 F q0 ]& x4 W( `
- (setq *error* m:err m:err nil)(princ))
: `2 d1 K8 l! r7 V7 [/ r4 x" G7 _ - & }5 _5 g5 o; q
- ;=====================================================================
0 v" K5 w4 G: k3 a1 ]8 U/ b1 r - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.+ j$ g$ b/ U# N2 W+ D- N7 F
- ;=====================================================================
; k1 q, @0 m$ U& }
7 T5 Y6 y9 D1 l9 |7 G- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
9 w% {$ |% l6 g0 o - (setq old (getvar "OSMODE")) ( _2 O; Y& l! {8 w9 b, N" x7 \& _
/ T0 E1 g2 M) \- J- (setq p1 (getpoint "\nStart point:"))
9 p; r4 R+ A0 N0 A8 i3 k9 l - (setq p2 (getpoint p1 "\nEnd point:"))
: |5 h' R1 h) k - (setq side (getpoint p2 "\nOpen side"))
! Z1 E, _, u* v# t9 l2 t - 7 f1 O! O a7 C* {# I
- (setq dis (distance p1 p2))
! M8 f' X5 |- J! `# M- b+ l - (setq ang (angle p1 p2))
. i- W6 n6 h" A& l+ u; I g+ u - (if (< ang (angle p1 side))
% A* L- G2 N& t* R* U - (setq angside (/ pi 2) ) N- S6 L) U9 }& ]/ p# V ~+ e- n
- (setq angside (- (/ pi 2))), u& r4 B- Z+ V) G' B: q
- )+ T2 I/ ~5 @2 l9 x2 G
- (if (>= (- (angle p1 side) ang) pi)) _2 v, G8 h9 e( p* D
- (setq angside (- (/ pi 2)))+ o k; c- y2 [; v. m; c
- )
' `3 T- _/ `, r" V! q - (if (>= (- ANG (angle p1 side) ) pi)- h& m' _' ~% J A# k
- (setq angside (/ pi 2))
4 v+ d' l% p: N& E - )
# ~" g/ z* _/ W1 ?& U& ~9 G - * q( t- u" x5 S$ a/ q# {5 x. t
- (setq p3 (polar p2 (+ ang angside) dis) )) ^/ p b5 \( }
- (setq p4 (polar p1 (+ ang angside) dis) )
, ?, r' E6 P" d; G, _% a - (setq wid (/ dis 15))! o- g( @2 |( Y" Z
- ~6 Y6 K3 r, L; L2 S/ b5 Y' I9 m
- (setvar "OSMODE" 0)0 \+ v3 S; D+ j# h
- ' t# u, C3 W' T7 G6 l
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
/ L- D( }3 Y5 M( x# x. C: [ - (polar p2 (+ ang pi) wid) 5 Z* U) |. I1 [' W) |1 q
- (polar p3 (+ ang pi) wid) * ^/ J+ [9 o9 G1 q
- "")
( t& Q4 \0 b9 o: Z
$ o2 R8 c0 @1 h9 T, b' r- (setvar "OSMODE" old)# o: i+ n8 g+ A5 m, _, U
- (princ)/ Q8 n" _/ X W& M( U
- )
- y9 x2 R9 r! [. j: o+ r
8 a" T* W/ f: Q0 G- ;=====================================================================4 P( K( o9 q4 ?/ M* {
8 [9 r# P* e; S- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)( |- Z4 P9 i1 w2 [
- (defun cua1 (pt1 pt2), v7 H( y. p$ [' ?+ s1 Z2 h
- (setq p1 pt1
0 F- ?. |, A8 n! Y9 s+ f# p8 K - p2 pt2)8 P6 [* s0 G1 D/ ^8 S! ~
- n% W9 c& j7 \
- (setq ang (angle p1 p2))
6 e( d$ a: @ @/ P - (if (< ang (angle p1 side))& ]; y" {' w( p4 _
- (setq angside (/ pi 2) )
* B* _% [4 B* B - (setq angside (- (/ pi 2)))7 t/ X! u i/ Q: v
- )2 ~/ Q8 g0 [- u# ?. Y; B; \
- (if (>= (- (angle p1 side) ang) pi)
) F1 V8 E4 r0 n4 p' M, o - (setq angside (- (/ pi 2)))! q# I' Q0 C9 t
- )
, @4 i2 m/ q! c( N: d! N - (if (>= (- ANG (angle p1 side) ) pi)
* |, \9 T- y4 }- m: g - (setq angside (/ pi 2))! \+ h- ?+ G1 c4 c, [9 I0 ?
- )
4 s0 Y) T. ]& }5 ~ - 6 _) h& b1 Z* W* x
- (setq p3 (polar p2 (+ ang angside) dis) )& g/ m) ]' L& T/ ^3 B5 o
- (setq p4 (polar p1 (+ ang angside) dis) )
( @- u: _" c4 y1 M" ~$ Y9 T - (setq wid (/ dis 15))
3 W& c" O8 d# w - ! F0 }4 {0 o" T& M- f6 ]2 r2 Y
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ) {2 a5 y0 s' V# M- u
- (polar p2 (+ ang pi) wid) " F0 B0 y- n0 k s8 x/ N F
- (polar p3 (+ ang pi) wid)
7 _) r: D% P% q - "")1 }! [8 u) t- k5 H
- ). ?, d @* B1 q) |9 m, R
- ;=====================================================================
* o8 F0 r: Y& O$ {5 Y - (setq old (getvar "OSMODE")) p, h5 r/ C4 F" h1 F4 p
- , _8 J6 b6 u. G' s0 e
- (setq p1 (getpoint "\nStart point:"))9 G; Z' j, ^7 {5 B
- (setq p2 (getpoint p1 "\nEnd point:"))
4 W+ [. e- v5 N- z7 P - (setq side (getpoint p2 "\nOpen side")); a% {3 p$ S6 a- ~0 X
& ~" T; B$ A9 p5 E' Z3 Z- (setq dis (distance p1 p2))
# e6 ]9 u( o W9 d2 P- w - (setq dis (/ dis 2))- l9 {. o; x7 G+ [
) u& d! z" q) d) Y) d$ E$ M& @- (setvar "OSMODE" 0); L: S3 z2 g: D/ F# c
) v% z% A3 V. T/ f9 F9 G- (setq p1 (polar p1 (angle p1 p2) dis))7 a5 Q i5 A! r7 m4 m
- (cua1 p1 p2) 0 j. \% s1 _# X1 e1 ]
- ( k. k0 ?1 l, |' ]
- (setq ang (+ ang pi))
* s$ t; A5 `% k' ?9 _- P. c - (setq p2 (polar p1 ang dis))
4 M; b3 H6 u8 I: m+ v& Z- q - ; (setq side (polar p1 () dis))
. C2 P& J3 d" f, g) r- o9 E9 | - (cua1 p1 p2)
o1 m; \: i/ |8 _
0 m2 M% X0 }% f2 W- (setvar "OSMODE" old)
1 f- f- Y0 k) e! P6 u/ o - (princ)$ ^1 N( P- [2 U8 }* [
- )- R3 v( W2 b/ c, q
5 }' t& \. J r: `- ;=====================================================================5 o* G; C4 _$ W" Y& X. r
- ;"Glue" text strings. All adopt first's properties.
( ~% c* |; G5 g6 t) { - ; Author:
/ C8 |" N1 x# g5 F( g4 S# v - ; Henry C. Francis- e8 _# T- C% z6 O1 {" E, |/ J
- ; 425 N. Ashe St./ u: X2 @' K- ?9 x' U9 n
- ; Southern Pines, NC 28387
) O* q/ j6 L7 a* v0 {& `& M - ; http://www.pinehurst.net/~pfrancis- o( z* @0 A4 G) C/ m
- ; e-mail hfrancis@pinehurst.net
3 M1 k, f/ f. e/ ]/ a6 N - ; All rights reserved.5 H' [2 @# k2 o. \8 }
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)9 i8 ^9 h+ S( w
- (while& d! |% W. C, ~
- (not1 P; a' g# b1 m
- (and
1 a: |8 w' F, U6 D - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
7 r9 V# ~+ @9 B9 v6 u$ h* ` - (setq ent1 (entget ename1))
6 K/ }% g% C* J( |- ^' C7 } - (eq(cdr(assoc 0 ent1))"TEXT")
$ d5 `, |9 H+ Y6 D8 ^9 ? - );and- k* R; J# g$ {3 _( c* K" Y- i4 ?
- );not
$ S2 ?; P4 ^' ~* U6 O, i - );while* _$ K/ o5 D2 F- i
- (setq old1 (cdr(assoc 1 ent1)))
9 F0 ^+ ~# I' ? - (while1 K8 h7 o5 ?& O3 ^% k u& P: o
- (not7 N- q! m: I5 O5 j
- (and$ Q$ Z* `4 V f% E8 t
- (setq ename2 (car(entsel "\nSelect second text string to join: "))) D' u" A1 A; ^$ ^& |1 B7 ?9 T
- (setq ent2 (entget ename2))4 K1 Z' a( y! A+ k/ P/ e
- (eq(cdr(assoc 0 ent2))"TEXT")
Q$ |( t N/ {' f& c - (not(eq ename1 ename2))
* S0 G( C L; _ - );and
! t/ U5 M$ _+ x$ q# P& i1 m - );not
7 K5 _& F9 F6 |) t - );while2 x$ C1 @7 f, f! l9 A& F5 _: y
- (setq old2 (cdr(assoc 1 ent2)))5 p" k U# n- J) t* C1 h9 M! J
- (setq new1 (strcat old1 " " old2)& I8 b) o5 G- a2 d/ q% v+ T! w B$ x
- ent1
: R, i4 q8 j7 Z - (subst (cons 1 new1)+ _9 C1 l: w2 H1 q0 a p+ S
- (assoc 1 ent1)
1 {+ L: c( k: N/ B; B) f( i* e1 v' { - ent1)1 ?. y( Y- D& \, ?; Z
- );setq; Z' u* z1 z/ h
- (entmod ent1)
- B& s! c3 {/ U. l - (entdel ename2)
/ M7 Y! i5 }& [* R/ d; S: F - (princ)
* G% z; d% [) F) _# J* m) U: @- m) ` - );defun
; n9 Q% }& D: X2 S
+ M+ n R& A& k1 k/ q' \/ z7 m- ;=====================================================================
" F ?7 d- i% f
/ D% C5 o, [+ n1 p! Y- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc) W3 J \0 { [4 E ~ x
- 3 x: I" g% I$ t' H- w* V) p" K
- (defun nterr (s) J) F: O5 Z( n* i/ d- W
- (command "_.UCS" "" "_.UNDO" "E")
8 G2 {$ [4 Y9 i# U Y - (setvar "cmdecho" 1)
$ m& L( U0 I# c - (setvar "blipmode" 0)
' d$ ?3 A4 }: n. ? - (setq *error* olderr)4 M/ N0 `% g' Q) k/ b/ \2 G8 `1 N* \
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil . v& @5 H3 q2 y; a
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
0 l6 V5 x8 x: ?5 a5 y' u - (princ)
0 M4 i N" U: ]' ?/ F" @# J - ), e8 d d/ }2 N4 R" i. q
- 8 z) i* |& J# c7 t# X
- (defun tim_in (dt / p01 p02 ktra)
/ B+ b! `+ i* C: K& n& W. ] - (setq p01 (cdr (assoc 10 (entget dt))))" g( E( U, \, ?; j' ?- ^
- (setq p02 (cdr (assoc 11 (entget dt))))
+ o h- a! v* E: P% } - (setq ktra T)% L! v# W5 y7 W1 m$ E$ {( e8 M( L
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
; F9 c/ W( k3 U$ _8 z - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
1 G4 [4 |! g: P; v3 y- p+ q - (setq ktra nil)5 q$ C2 u6 J& O9 Z- y0 |: q9 q& [
- )
6 }$ }# L5 w- v- p' M& ^ - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
1 L8 F/ Q! T" L - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))8 |' x8 @) }8 {
- (setq ktra nil)) p+ t0 K) E# J, _4 @
- )
1 `- t) O4 P" f3 c - ktra$ K! E" ]1 Y! m5 Z, X c# c% @
- ): a7 s, B" S, x( Y. w
- 4 f3 V% j. e( \" p& r# D$ `
- (defun timdt (dt1 dt2 / p01 p02) ^* M* D& y( d( `3 T" Q. v G0 b
- (setq p01 (cdr (assoc 10 (entget dt2))))
' R: a, O5 k) P. r4 n- u3 P$ a - (setq p02 (cdr (assoc 11 (entget dt2))))5 p/ p; ?2 j/ N2 q) m5 L
- (setvar "ucsicon" 0)( O! h9 x$ d/ H+ @( s$ S
- (command "_.UCS" "E" dt1)
* I6 T8 x8 s, Z( X4 J; S0 a7 h - (setq p01 (trans p01 0 1))
! }6 N% J: p; G. M$ C0 O$ [* n - (setq p02 (trans p02 0 1))" D5 |1 K* `5 N7 |& w2 H
- (command "_.UCS" "")
3 e& Q1 h# r, _1 B2 |8 \: ]/ J3 N6 @) p - (setvar "ucsicon" 1)9 x2 s3 K8 }; \- u2 N- p c
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))( z2 E, K4 E1 H* ^# B, ?: A+ I T
- T3 e6 g' N- X8 p& ]* x4 f
- nil" x, @( K$ r# z
- )
. X( M" S t* R: s# }+ x - )
+ p) e/ _. a8 H
% t, V; N, o* T l0 ]' p3 Y- (defun tim_out (dt / p01 p02 kt)# ?9 C- x# E2 r& V: M0 R$ n1 B
- (setq p01 (cdr (assoc 10 (entget dt))))( K# ]. L$ v3 h& b+ O9 E
- (setq p02 (cdr (assoc 11 (entget dt)))). p. X& ~ j( I! S: a1 s! h7 s
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) : V1 p7 Q$ T4 i) I/ Y
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
" w$ F1 ]7 c; Z! P3 S) n3 z2 U h; T - (setq kt p02)
) L; @% T0 b, P. P' o* X* S - )' ?5 B% ~1 t, h5 J; j
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
$ Y/ c$ U) w! b7 S, c: ?" } - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
) `$ }/ U" Z( r8 M- ] - (setq kt p01)" m/ Y) ~1 D% N* g2 ^" Y' E
- )
: f. G P4 c7 T) O U; I - kt . C4 k1 l3 n; ~% y% z
- )
5 Z, m) H9 R. ]: o) H
' n9 K0 g) a/ c8 c5 u6 s- (setvar "cmdecho" 0)8 B1 s U& Y! p+ Z E- k$ U( _
- (setq olderr *error* *error* nterr); j- l$ ^; h& e1 G0 Y
- (command "_.UNDO" "G" "_.UCS" "")
: j& ]0 ^- g0 J - (while (null ss1), |$ T3 ]0 z1 F' z: M
- (princ "\nChon tuong muon noi...")8 k) b! D# e8 {
- (initget 1)
! A: V8 g8 T. W7 U - (setq g1 (getpoint "\n>Goc thu nhat:"))
, T- m; i0 z) k8 w - (initget (+ 1 32))
* o0 P5 U% f- z" B$ |, v - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
1 X2 _4 x. l" ]- z6 l - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
* T) k' B) _1 E - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
/ L( A& ^' Z/ g/ D! x% I - )! |$ |1 W0 D1 Y [
-
% z5 u' Z1 f v8 D* r) c# Y - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))& v' A# Q. X: K$ i
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
3 h G1 ~" [/ V$ J% v" d - g1 temp)0 x. u' P6 j* x- b
- (setq ss1 (ssget "w" g1 g2))* E% ]+ _. `; s6 x
- (if ss1 (command "_.ERASE" ss1 ""))8 r5 ]) d8 R, K3 w/ ]% n1 F
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))! V' Q5 m4 H. \$ O6 w# w( E. L) |& K) U
-
# M2 u1 d8 S1 c M - (setvar "blipmode" 0)) H; T6 h" ?0 }3 ]) P
- (setq i 0 l (sslength ss1))
4 I1 M' f/ r; F- J. r - (while (< i l)- I" a2 F8 j& l$ t1 D
- (if (tim_in (ssname ss1 i))8 I6 w# |7 F- V" C& c# T+ F8 N
- (progn $ O, v! P3 U6 b P4 }& R. a# V
- (ssdel (ssname ss1 i) ss1)
1 p6 q: I+ H3 v- E1 S+ K - (setq i 0 l (1- l))
/ I% ]. ~ D# Y; N3 {2 Q - ) 6 l1 k. R# O( z, F+ x d6 {
- (setq i (1+ i))
6 r) c/ w" T% X _3 r - ): B0 n; V0 T- ^, U0 ~- L1 U! J
- )
5 r. p, z* u7 Q8 d - (setq l (sslength ss1))
# b) I& L& Q7 g8 y - (while (>= l 2)
: ^& x! K3 I0 \# Q( B0 K" M - (setq e1 (ssname ss1 0))
6 Z& o; U3 E5 M - (ssdel e1 ss1)
% P' U3 K+ w5 Y) u1 U5 b- r - (setq e2 nil i 0 l (sslength ss1))) `1 g; I/ X/ `# e
- (while (< i l)
4 ?; a" v# y. q, z+ c - (if (timdt e1 (ssname ss1 i))
0 l# d3 N) O/ C% I {' G - (progn
& P# g! b1 N' Z( F4 K L0 z - (setq e2 (ssname ss1 i))* ` a4 W8 F& t- k3 u* b
- (setq dd (tim_out e1))
% d6 `3 J& x8 M1 }* ^ - (setq dc (tim_out e2))! Q! k$ E$ ~" Z; l' h5 k$ [* p
- )
~) {+ L/ l$ q3 g, |0 p - ) c( b# g; C7 R9 k5 {: h4 B
- (setq i (1+ i))) t" B4 V4 |$ M; Z& ~8 X
- )
$ ^. _$ S+ k4 {3 f - (if e2 (progn
Z/ g, C" r3 X. E' W - (ssdel e2 ss1)
& d5 x6 C) J! X* C/ a - (command "_.ERASE" e2 "")
! K: w# \ B" r0 G$ d P- ~8 ~ - (setq temp (entget e1))
4 d: Y5 x5 q7 a) k. g- S - (setq old (assoc 10 temp)), m$ v& J' }; u. h2 E+ l
- (setq new (cons 10 dd))" C: S) L. Q; o% \1 z% C9 D0 X
- (setq temp (subst new old temp))% m) H, j; Z, S+ k
- (entmod temp)* y a' N; Y' N S
- (setq temp (entget e1))
7 ^0 c1 N( U+ {# N: |; Q. g/ L7 e7 t - (setq old (assoc 11 temp))* \1 s5 q; M! B5 o. m4 @+ P' D. G( y
- (setq new (cons 11 dc))
: o6 D9 j5 R1 ^& H$ Q: y) m: x - (setq temp (subst new old temp))
8 `: \! L! e' m' a# ?6 O# t - (entmod temp)/ F, E6 k6 w$ R& a b
- (redraw e1)' r! m( U# _# c) ~/ `6 y* [
- (setq l (sslength ss1))
/ t$ c5 W- ~" X9 a0 Q3 A - )
: Y6 l, k! h' z8 N0 r) `0 k z - )- |; z! P" g7 V( c8 o* _
- )1 l: u5 t( n+ }/ d
- * `" L6 D; U. P1 U* G
- (command "_.UCS" "" "_.UNDO" "E")8 w/ Y; ^3 @; N: z! o* p5 M$ w
- (setvar "cmdecho" 1)4 X7 D* ~' R: i0 n' h
- (setvar "blipmode" 0)
' x+ b' F9 {; V. ?# { D: G' v& K - (setq *error* olderr)6 @5 p; @) L7 \) L! `. _ o
- (princ): E* ?/ `; D% X: L8 p" P4 H
- )
+ c0 b F H6 Z. I- f* v - ;*********************************************************************
$ K5 A5 F8 j; V$ {5 N9 x - (defun ketthuc ()" e" v/ j' s3 Y! B6 {6 x
- (setvar "cmdecho" luuecho)0 y, x; g( h, s6 A* V
- (setq *error* luu' Z7 X" U3 H3 Q# s9 H
- luu nil
' h! g) d! W( L, o7 G& x - luuecho nil) G+ L/ Z4 q4 r, y# p
- );setq" n- m( e# ? m* q* o) |
- (princ)( V. ?; |( j i/ i( i
- )
. A7 X2 y6 B5 ]# A- _ - ;*********************************************************************; Q, H! k! j: b9 \" [1 N) U
- (defun modau ()' L! Y5 |3 m& c+ V3 f7 r
- (setq luu *error
9 A8 R0 ^; `. n1 P6 J0 v - luuecho (getvar "cmdecho")
% l/ I! O; p1 i8 c6 O - *error (ketthuc); I/ f/ u' ` R7 ~. D& D* g
- )
" ~9 G, c' q& v, C) ]. z - )" o8 i. K% Q- d9 M+ i0 A7 G0 s! p d
- ;*********************************************************************
6 B0 C$ o6 d) U( ^$ x$ z( f - (defun xulytext (text / kytu ma sokt luusokt lui )
/ `# F) w" @) } T! q! w - (setq kytu (substr text (strlen text))( C) g1 A9 x7 s. O; j0 X
- ma (ascii kytu)
: H; L. ~ Y! Z3 H& a - sokt (read kytu)
6 Q- N% x, c5 Y5 N" B+ F- ~$ Z' X - lui 1& g& h/ G+ b$ }7 M; \
- )
) J1 ]& p1 C- I W+ H - (if (numberp sokt), y6 X/ [3 w- s+ q8 V5 v) I
- (progn
! J+ E& ]+ I% v - (setq luusokt (1+ sokt))
R5 J' E. S. i6 I0 p - (if (and (numberp sokt) ( O. Z: O; b2 r* I. u
- (> (strlen text) 1)
( m& Q$ D7 Y' c9 }, t. f - ) ( C/ A6 P2 t0 [" ^! K
- (progn/ m. _0 g% P/ K+ ^+ k+ w
- (setq kytu (substr text (1- (strlen text)))4 r6 S9 e0 m1 [' f
- sokt (read kytu) ' q# V* g `, P' a
- )
7 ]' a& P# [( l3 E4 l- o - (if (numberp sokt) & x# q: D- X# C B( f
- (setq luusokt (1+ sokt)
3 l+ E: c, _( D& l$ O - lui 2/ `$ I; Z* s; }% T" G
5 F' J( V* S3 B1 h9 p. i. {6 [- )
# V* u* c& K- e/ @- q* w - )
& p* Z' w) @: ?/ a - );progn " l; w- D# G [8 E: E; B0 }, P
- )
$ ]# J+ g( n; ~ m0 ^4 b# S' b - (if (= luusokt 100) (setq luusokt 0))
; n0 a3 v! y% q" ? - (setq kytu (rtos luusokt 2 0)/ [, s8 e' V- p( A2 ]) H0 w
-
3 b/ z( P$ k$ H - text (strcat (substr text 1 (- (strlen text) lui)) kytu)& S" J3 ~% W6 ?6 _ i6 U# k7 Z
- )$ ]4 I, M8 q6 a0 V& |, c4 ~
- );progn
* `* o& A5 d B0 K) z0 D g - (if (or (= kytu "z")( y1 C6 ?' ?! P* H# ^6 l9 B
- (= kytu "Z")
6 i7 D1 x, k- N' N( \6 x* G - )
; w- a- D2 a9 ^8 c5 u; f* |3 c - (setq text (strcat text "0")" {2 J7 A& N+ S8 `4 ?5 s
- textxl "0"
* o4 [- r i7 @1 ` - ). w9 ~) F K6 B) } Q5 d: g B
- (setq ma (1+ ma)
9 m5 ]; |- w: I* |; u - text (strcat (substr text 1 (1- (strlen text))) (chr ma))% ~: M+ p& w* z" J9 w
- )7 Q! i8 C7 d' O k/ [+ X, V. j" O
- );if
- }& v( g. A0 w - );if
1 i6 K0 ?5 Z4 R8 O) [$ O - ): o: m" a6 b/ J$ F
- ;*********************************************************************
8 J. Y$ b: m7 S0 L! r - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
- Y+ i* U( m7 |3 |4 D( m* P( w/ |/ [7 a - ;Neu doi tuong la text thi tiep tuc
5 J! W6 g' D/ E* M4 v8 y - (setq doituong (entget tendoituong)' y/ g1 P9 \1 C
- kieu (cdr (assoc 0 doituong))
9 c5 d( m3 ]) s - canle (cdr (assoc 72 doituong))3 `+ C% u+ {7 b& w* L
- ) $ b, d0 b9 @ x7 E4 [
- (if (or (= kieu "TEXT")) t0 ?8 F5 b3 H* [$ T+ P6 a
- (= kieu "MTEXT") 6 z, `8 A* l, i! V) J2 F& r
- ) & ^$ Z) `0 K9 n: L" v
- (progn
( j& h8 R! y1 \. ~ p - (setq textxl (xulytext textxl)
& P9 e' t( ~# [/ q, k2 g; {' h - text (cons 1 textxl)
0 ^# V; F; v; q. y* h1 j6 ~ - vitri10 (cdr (assoc 10 doituong))
5 K$ o8 W# A% l( q7 u& |( { - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))2 j& W$ Z( f. e1 O% G' g
- vitri10 (cons 10 vitri10)$ U1 w( y7 ^% N! D" {* {
- vitri11 (cdr (assoc 11 doituong))
1 d5 V1 ?% l/ H - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
$ R0 M% _ D% Q$ I3 N - vitri11 (cons 11 vitri11)" o: I- a0 {, \* s
- dem 06 c% q5 I! i6 z, ]6 [
- dsach nil
* u0 s; r' K, V* t% W3 ^ - )
0 x0 K: A: P1 z5 g - (foreach tam doituong
6 o: U" M+ _# Q; h3 f! v8 y - (cond
+ }6 _/ i/ d8 F9 k* o( C - ((= (car tam) 1) (setq dsach (append dsach (list text)))), G% A$ g$ W. p1 F# |. P& {6 b
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))5 c* @" y* t5 G/ a) b" O7 M
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
: @, H- r5 g+ Z8 g O2 G7 k, J - ((setq dsach (append dsach (list tam))))
1 w( K6 |& x8 l: ? - )
+ q% I# i+ h$ w |4 C; E* n d# J. U - )
/ x, F& T! o4 e$ p2 U' ]/ f: z - (entmake dsach)
; p) I0 B1 L& k- V& v6 G - );progn3 }( Y! [% K1 Z0 g& J; e
- );if
4 f+ k) u5 \! w) ?6 i - );
1 Z# V8 B2 x+ m - ;*********************************************************************5 g$ p0 R; @( S& v
- ;sao doi tuong cu sang vi tri moi
% b, Q$ q8 B$ i O1 z. S- Y - & {8 Z0 u$ F- Y8 T8 Q3 g
- (defun copy_dt (tendoituong )
; a* c: J' `9 L8 ?9 j4 M - (command "copy" tendoituong "" goc toi )
) z( a" t: O! a! X3 P: K( t2 x4 M8 B - );defun% V; ]+ N* v" c% z5 v. A- z4 K
t" m5 U" B+ Q( E1 ^- ;*********************************************************************$ a% ]9 d' L8 o- P: r/ R2 Y7 f, q# i
, J' F* D& n4 r- }. m' h' j6 R- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)4 i7 T6 w, X, e
- ; Khoi dau cua chuong trinh
( O% t, I, Y! v2 k; O+ c$ e8 Z - (princ "\nCopy Inteligent...\n")8 C" q6 B. Z( a
- (setq luuecho (getvar "cmdecho")2 T& g2 H6 u- _/ w) I! h
- luu *error*& F' k8 y: T6 y; w9 C1 o, Z l
- *error* ketthuc
' M! v; `% I! i8 H6 P - cumdt (ssget)2 q5 N" w, \) z
- dodai (sslength cumdt): i f. E! ^: ?+ B( D* Q
- goc (getpoint "\nSelect base point:")
0 @8 p! _6 ^$ ^ - thoat nil2 a0 \( D) \" G
- dem 0
' `8 \( T' ~5 Z) Z( P' l1 c - textxl nil0 w$ N5 a9 _5 d- M0 ^# Q3 s
- );) W, }5 v* P6 L9 G" B1 E" I) @2 g
- (setvar "cmdecho" 0)
1 w* C0 I* J$ P) i, N' K5 p# ?/ M - ; Loc ra duoc ong text de xu ly4 B$ D7 ~! E( `, m1 [
- (while (and (= thoat nil)0 \; M" G2 \% Z9 [- v9 _
- (< dem dodai)
$ d5 J m% W& ~, q$ u - )0 Q: w1 p" g6 S
- (setq ten (ssname cumdt dem)
3 \/ C1 b1 Y7 q" V4 ] - dem (1+ dem)
8 T. L4 N1 k- l& J: z0 L( p- i - doituong (entget ten)
7 Y2 I3 H/ F2 I! G9 U - kieu (cdr (assoc 0 doituong)) 7 Y4 M! I( N3 W6 V" v
- )
" F K2 C. U1 z! l) E$ ? y - : N: S4 }! `" r# s0 T& {
- (if (or (= kieu "TEXT")' e* b3 R( G: H6 o, h% V
- (= kieu "MTEXT") " u1 W' k! a8 ~$ y
- )1 n. @8 f& G* g
- (setq thoat T$ \+ o' P0 T4 C9 _ V. M [
- textxl (cdr (assoc 1 doituong))
1 ?% z: \& e% B0 o% Q - )
4 n% G% @/ c% n* A5 M8 }% a - )* Y4 w/ [& h3 U+ h1 A7 |
- );
" V( g# s* v3 R2 ]* _, H8 A - (while T
; a% P) X9 j4 q, X) Q1 Y - (setq toi (getpoint "\nSelect next point: " goc)
( T& y9 C4 ^: _: X+ Z% c - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))! B7 L/ }7 \1 o6 i+ p- s
- dem 0
2 a" M M% m- |" V' |' ^ - )2 b; d. m7 o: B
- (while (< dem dodai)
+ P# w( ~! E8 B! u3 i - (setq ten (ssname cumdt dem)( K6 J; I* j& T- p, {( O0 n+ B1 w
- dem (1+ dem)8 o4 G) G/ H8 P% K! O: a1 }
- doituong (entget ten)
! z1 O, g" i7 J3 K - kieu (cdr (assoc 0 doituong)) # ]6 i& `7 c' H( K0 e$ V
- )
: P/ S, n! Q5 `* |. y" Y
+ h+ l8 [" `( H/ K2 N- (if (or (= kieu "TEXT")
6 x; {7 A& I8 t" \ - (= kieu "MTEXT")
" q' Q: J2 q& _! k+ x/ y( m% a - )
. Z8 g1 N/ ^1 _2 Q. z" x$ z - (doitext ten)6 J6 n) h, p2 Y' |' y
- (copy_dt ten)3 E2 Y9 r; f9 B! e
- ' ^ k6 i% d! y. _4 T Q
- );if' R5 x! V1 K# `
- )
8 d9 p6 X |4 t8 b4 u - );while# j+ v/ W/ J1 I. E- H0 U
- (ketthuc)# i5 R! G1 d$ W( @: L0 q g; m
- );defun& L- b0 G( M; s
- (princ "Type \"DG\" to start")8 U. L; m* \. n- }" P9 F; @
- ;Note: bien toan cuc: textxl vitrilech
3 S- p5 A% [/ ?' B' z
" s7 N: R' @4 d! O% f q, u' i- ;=====================================================================8 D! R4 X. s' ^' ]- v+ _
- ;;; PLJOINFUZZ.LSP% G7 D, `" F N3 ^2 Z% }
- ;;; Joins lines, arcs and polylines using a fuzz distance' @5 T1 s2 `' a% m6 Q$ a: C! X
- ;;; If only one object is selected it tries to join to all objects that are possible" G) H$ `) Y$ i6 x1 Q6 f9 w8 l! |
- ;;; By Jimmy Bergmark/ a& D8 v+ j- M: j' Y X9 N* y
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
' B1 N6 r" c+ c - ;;; Website: www.jtbworld.com0 W' V0 k6 @! d. ?' r4 g
- ;;; E-mail: info@jtbworld.com* @2 Q0 ] d' _- a5 }/ P
- ;;; Tested on AutoCAD 2002,2004 and 20053 m% i4 ^( w2 H# p+ D# o
- ;;; Latest revision made 2004-11-11( G* z3 W6 q8 I5 }, _" U. F+ y
- ;;; Minor code cosmetic change made 2004-11-13; J T8 G0 t0 J5 a9 C/ H" B
- ;;; Bug corrected 2004-12-235 b& J) ~% J6 b; W8 n
& O* H* R; F' w7 h2 K- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf/ N" O5 l% n8 h- ^" S% Z% {
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)1 I3 G6 I4 L( H1 V" B- ~! M9 D
- (setq oldcmdecho (getvar "cmdecho"))
9 U& }9 z0 d' d9 \ O - (setq oldpeditaccept (getvar "PEDITACCEPT"))
. F7 ~5 B; J$ t( ]( _: S7 t, _$ ? - (setvar "cmdecho" 0)8 r% l. E% t. [! d. c+ \
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
6 S' k0 P/ a9 T: d# n9 s( H5 b - (if A2k4 (setvar "PEDITACCEPT" 0))
& B& s9 L9 p4 j& t7 u - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))+ o7 v( G$ g" r( ]4 ]
- (princ "\nSelect object to join: ")& l7 l9 D9 ?+ Q6 }
- (setq ss1 (ssget okObjects))+ V% |- \" c4 y8 v( U
- (setq fuzz (getdist "\nFuzz distance <0>: "))
2 F5 W0 Q* ~3 k$ j4 D8 F - (if (= fuzz nil) (setq fuzz 0))
4 Y8 `0 A2 P7 W - (if (/= ss1 nil)' [ s6 z" H& M+ [' k/ ^
- (progn
2 T! V, N$ u% u; G - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))! N' u. A# _/ W% w" R: V
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))+ V$ h4 S t Y: u* B: w5 l
- (if (member objType '("LINE" "ARC"))
6 U$ U5 }5 K# L/ t# }' T8 ^8 a; C - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
; O ~ M+ p1 j% B - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")1 I, Z* v7 n" ]5 _3 D6 e5 w
- )
% w( A* Q. V/ P& D1 R, ^$ { - )
; W* b2 \6 h6 W, @( S9 K# p9 V - )6 M! f3 Z3 M9 s8 @* i# L$ |: F$ v
- (setvar "cmdecho" oldcmdecho)3 B- G, X- j# T4 a$ |
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))/ e. X; a+ c6 D; h5 m% f! w
- (princ)
2 F9 t6 |+ {% C' b - )
5 A! y6 D W/ L* f+ ^' R7 o - 4 m0 D3 z7 l1 O( e+ a% h% ?! \
- ;===========================VE CAO TRINH===========================
; [5 ]2 z2 D* Q/ S3 N p
: k! b a. n+ O- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL( V& C# e% Y7 L/ u
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR) _$ r# L) H: F# K
- (SETQ OLDERR *error*
: _' m8 w j# Y/ s2 W! A - *error* loisb)4 p# \; S6 x, ~+ B/ _9 z
- (command "layer" "m" "dim" "c" "" """")
) D- ~# p; a0 [6 D, K* U: _9 U* S - (SETQ CMD (GETVAR "CMDECHO"))/ R$ ~6 Q$ T$ A- s
- (SETQ NBC (GETVAR "CLAYER"))
0 n0 Z6 T* ?. m7 m5 ?) x9 C7 R- y6 b - (SETQ OSM (GETVAR "OSMODE"))
) Z% \% a5 b$ a: | - (SETVAR "CMDECHO" 0)2 t- ^' I- [1 v! Q& G/ W
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))' L W3 u1 @* z8 F
- (SETQ TX (GETSTRING "\nCao trinh:"))/ f6 W/ x& L1 [
- (SETQ FCH (SUBSTR TX 1 1))9 }, o1 S7 H: E$ K$ g; Y
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
8 _/ O6 G; i7 Y' u- S5 P7 j - (SETQ CRST (GETVAR "TEXTSTYLE"))/ p) D& V' T' K
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))- f9 |' g H" Y5 U# y7 {
- (SETQ TSIZE (GETVAR "TEXTSIZE"))* Q3 Y7 y5 y& o
- (SETQ STR (RTOS TSIZE 2))5 c; h; p* `9 s$ Q! T( A; z; q
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
( |- M( Q5 W- a) [: W3 X6 Y% c% ?% K - (IF (= RSIZE 0)6 P y4 I% g5 S0 v: @# y
- (PROGN
- _2 e- E8 P; R) O - (INITGET 4)
5 I# f, r- c ]4 H2 O - (SETQ TSIZE (GETREAL PRMT))& n1 O3 L: c J7 W
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
7 i( N, s" \& M( y* g) p - (SETVAR "TEXTSIZE" TSIZE))
& D5 M" u- B$ Y - )
8 t0 g2 i) c6 U8 Y - )
# R& E* q. e& \, C0 y5 A - (PRINC)( ~3 T; {! f/ m6 n1 p; |: }
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))+ [' K) v: ~( f& f
- (SETVAR "OSMODE" 0)! D% V3 t0 x3 Q* _0 E
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
7 o. Y6 k7 `9 T3 q3 |+ S - (SETQ NPI (/ PI 2))
+ S# V: M% v! P; C- Y7 V - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))" g! s4 D/ G3 I5 n" ]9 A( F0 m
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))5 u" G V1 V* ?; y# K
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
% j0 f+ F* M) r* } - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))2 S. N$ J, q- c) s; ^, r
- (SETQ PT6 (POLAR PT2 NPI TL))
7 Z3 q( `& X3 w" ?! ^ - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
* N: f. a& l( y, o* n( s8 M - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))- q$ k: ^8 E1 T% l8 w
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))! c0 b/ r1 b( ]$ L2 R- H+ e$ `5 m
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
4 u7 U' ]" g7 Z# C* ~/ A - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
9 H+ L+ I( a' i4 {0 s - (COMMAND "COLOR" "7" "")
# ~; a u5 i0 J5 v' r - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
3 w% ]4 C8 t9 c, ? - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))7 Z6 f0 r% [/ D' R0 o
- (COMMAND "COLOR" "BYLAYER" "")
; u1 ]! M3 G1 c% s9 ~ - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")4 E3 w1 u( v0 M1 |1 Z( U
- (COMMAND "COLOR" "BYLAYER" "")
# G5 m9 c) P+ K3 P: z - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
2 u6 ?5 [6 ?( W8 ~4 q2 `, G - (SETVAR "CLAYER" "0")' H, V, V* o, X/ u: j& z, P. k
- (command "ddedit" pause)
: |- _- u/ c/ R& h, N - (COMMAND "COLOR" "BYLAYER" "")
# u5 p/ m D4 D- b% w; Q - (SETVAR "CMDECHO" CMD)$ {; x3 D( \8 t9 K4 c- h
- (SETVAR "CLAYER" NBC)! c7 W9 G4 }3 ]
- (SETVAR "OSMODE" OSM)! j* J' m, i8 O# P
- (PRINC)
9 P# |! u" r, Y, Y2 T6 B, w" l - ) a9 J _1 m0 b8 {( q) N {# u
- 4 X; |- a" c1 X
- ;;; =========================== VE NET CAT CHEO (GC) =============================
2 o' m2 B; p8 M# ^% B- \ -
9 F% k8 ?! M+ R9 L - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
' V* U9 `0 y) i4 F l. H - (setq x (getvar "osmode"))! }; J! ~% r1 }. N) h
- (setq p1 (getpoint "First point : ")
7 q' p6 ?: x5 n i+ W - p2 (getpoint p1 "Second point : "))4 S! m- [+ P$ v4 Z
- (setq l (distance p1 p2))' w( O# M b9 W1 r2 S! K1 z
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))
c. g5 Z1 Z4 N# J6 P - p12 (polar p2 (angle p1 p2) (/ l 5)))
( X' s6 k1 `/ \* W3 T0 l% t4 S2 J7 s - (setq ang (angle p1 p2))
+ }8 J$ {4 ?% U/ |2 i - (setq p3 (polar p1 ang (/ l 2.5))
5 w. o _" r3 v - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))% d2 R5 j7 X7 J; p. }- u3 e
- p5 (polar p3 ang (/ l 5))) T; I6 K' k& Y$ D( j7 c
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))3 ]' F2 Y9 g4 G7 x+ f: f
- (setvar "osmode" 0), w% P T: T! w) y& W: T z4 Y, O
- (command "pline" p11 p3 p4 p6 p5 p12 "")
" r! |; i& R7 }6 ~. S+ @ A - (setvar "osmode" x)
7 U9 |2 O' D& Z$ F* e1 G( {& L1 X - )
7 c2 _& O2 }3 l* c, J - ;----------------------------------------------------------------------------------' D9 B" q' R4 r
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6. m. I1 [! N2 l$ O Y
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
( U5 m$ Q8 ^8 t( ?4 ]6 h) I: m - (setq ps1 (getpoint "\Chon diem thu nhat: "))- i. |8 \# T' _2 b* N' `
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))1 |" i! @3 Q& J
- (setq sb 50.0 sh 200.0 se 20.0)+ T& A* v' V- h' B; i1 q2 V
- (setq ang (angle ps1 ps2))% q- z+ a- C# p9 X
- (setq pf1 (polar ps1 ang (- 0.0 se)))# i1 k! a0 A& [8 E' h- j" z7 W$ E
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
& T# o. z" q) k6 B( z% E - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))! t( ?. \( w- R- s1 z; a
- (setq pf5 (polar pf2 ang sb))8 {3 { g1 R+ h- W, N; p$ j! Q
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))+ f4 {, g! g- m7 |
- (setq pf6 (polar ps2 ang se))
& G8 Q: c1 k4 d, V5 a - (setvar "OSMODE" 0)
4 U9 ]% c. S {7 \ - (setvar "BLIPMODE" 0)
. p6 R' L5 F4 e% q% L& ~9 j+ _ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 ""); Y1 u2 `& s% Z( p
- (setvar "OSMODE" 703)' m) i6 A0 x, M: V! j+ o& Z
- (princ) )4 F* ?$ A, h+ ~4 N
- ;----------------------------------------------------------------------------------
, |: N6 w- }, ~ n* ^ - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6* H- H: }0 O* O+ E% V C
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))% {; } s- R' P
- (setq ps1 (getpoint "\Chon diem thu nhat: "))0 [ V1 V( G9 X0 _' \2 k% b' G. Q
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))" V( Z! s+ |# \1 k+ A( Y
- (setq sb 100.0 sh 150.0 se 20.0)
$ C" j/ L* v+ ^# \ - (setq ang (angle ps1 ps2)): s8 \. b4 F; s5 I. p+ ^
- (setq pf1 (polar ps1 ang (- 0.0 se)))
) Y( |( F" R2 I' y - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))/ x" ]3 U9 M" B4 t/ G5 i
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))! M+ |3 |. A$ g
- (setq pf5 (polar pf2 ang sb))2 t; ?: E& V! M# L% C% E
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
" e+ g8 u# e/ O$ z3 | - (setq pf6 (polar ps2 ang se))! a% t2 K: Y: a3 L+ Y& @* ^
- (setvar "OSMODE" 0)
5 L* a4 w6 m7 P - (setvar "BLIPMODE" 0)
( `8 Z2 r$ |! F% O8 a% f; r - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
" W# t8 s. [9 | t: Z - (setvar "OSMODE" 703)
- `$ ]: Y" N1 K, G$ o8 w - (princ) ); I7 k0 S7 n0 ]) g
- ;----------------------------------------------------------------------------------9 d E9 L6 l, p' Z
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
3 a4 C5 g6 ^2 S5 G% X ^ - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
1 V. Z; w6 V3 m) _ - (setq ps1 (getpoint "\Chon diem thu nhat: "))$ m1 K2 z3 N% O) T
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))+ V8 G! X% g1 d5 B
- (setq sb 100.0 sh 250.0 se 20.0). V' l0 ?: g4 I/ e: b# j8 q
- (setq ang (angle ps1 ps2))
# \% M* _( b e; y! q - (setq pf1 (polar ps1 ang (- 0.0 se)))
- m+ @- K. m( i$ ^( _' ~; l( ~4 C, A - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
4 o/ h' j I; [3 ?' y# T - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
/ i9 m8 l$ L9 B - (setq pf5 (polar pf2 ang sb))$ h- |# a) z8 g7 f+ y* Q% m8 F
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
' p9 C6 P, {! m: Z, j/ c7 M - (setq pf6 (polar ps2 ang se))
8 ?% u& @7 @5 v - (setvar "OSMODE" 0)" G+ a S4 ^4 m' |" D3 \: W
- (setvar "BLIPMODE" 0)
. N& N1 C8 V# x/ d. R% h! t9 Y - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
# u8 G. m$ e& J - (setvar "OSMODE" 703)+ o" D# B) b8 i5 S# K, Z
- (princ) )
& u; K3 W4 `/ C& \& S7 Q
( m+ k& m( g! G) `" G- ;==================================================================================
?2 u+ s1 B& H6 m) n$ w0 A; V8 S0 X% v - (defun c:ang (/ ent pt1 pt2 ang) s2 ]( ]1 C: ]' J* k) B( g
- (setq cmd (getvar "cmdecho"))& h, N# d# c% Q+ } A
- (setvar "cmdecho" 1): j j- }) y$ ? `
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
+ N& s! ]. \, i r' P, K3 k4 |5 z - (setq ent (entsel "\nChon duong thang:"))% @. m# O" {! f; I: E* I
- (if ent
' [( t; B0 l8 h9 V1 h - (progn
! V$ z% g2 N" b. s7 I6 ^ - (setq ent (entget (car ent)))
1 R, p: g: q0 C9 `) f' ~, U! u. c - (setq pt1 (cdr (assoc 10 ent)))
6 y. N/ x' G. ], f; p) s - (setq pt2 (cdr (assoc 11 ent)))
0 `& F4 E/ s s8 X4 S( F4 k - (setq ang (angle pt1 pt2))2 t/ x! H8 Y( W6 p+ y
- (setq ang (/ (* ang 180.0) pi))
1 m+ y. ?) R3 R$ N$ J# m& P - (setvar "cmdecho" 0)% [2 b$ Y5 c3 q: G( B4 K
- (command "setvar" "snapang" ang)0 f4 P8 b1 o6 a! O; e6 D
- (princ "\nGoc cua truc toa do moi : ")
2 e6 u, Y- I. k! p1 V - (princ ang); t P3 u. K; v% H$ G/ _! E
- )4 |0 L( [6 Q, ^4 C7 a
- )) D0 K( w4 z) b5 P& Q5 k
- (setvar "cmdecho" cmd)4 h# K g# a; x! C
- (princ)
5 X0 z" C' u @/ f - )
' t( |* g7 O+ G5 p- H% b7 u. r - ;==================================================================================$ L! n, h8 t3 l( J8 Q/ w6 [4 L) k. a
- ;============================== KY HIEU DOI XUNG ==============================
+ Q2 Z/ X7 j: u- |6 M - ;==================================================================================
' a0 i; y: X2 B) }" ], C
$ l3 o$ u+ K" x- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
) f7 O( @5 V0 Z" R( R/ ]$ r - SZ G45 G135 G90 G180 SS loi)' |. m) v' D+ }: u7 `: `3 ?
- (defun loi (s)
+ t2 O% k- z9 I" l; @ - (if (= s "Function cancelled")% D5 X Q( t! X8 X& Z
- (princ)1 B# d5 F k0 x9 d) _
- (princ (strcat "Error:" s))
6 W. z3 e$ ~$ J, o$ u - )
' I4 Z0 r: |' W2 \. _9 a/ \ - (SETVAR "CMDECHO" CMD)1 @. {' t9 ~( w
- (SETVAR "OSMODE" OSM)8 I/ p% \. \* h$ G/ q& p' x
- (SETQ *error* OLDERR)
* ^) r4 `8 x; o+ {/ ` - (PRINC)
- f1 [3 X S$ K - )# B+ Y: v) `1 B( n O
- (SETQ CMD (GETVAR "CMDECHO"))+ u0 j b: r& ~% n
- (SETQ OSM (GETVAR "OSMODE"))! u z) G; b# M
- (SETVAR "CMDECHO" 0)
" n, @/ f7 q' ]) R; D - (SETQ OLDERR *error*
6 L- O2 n, \$ D" T8 m0 b - *error* loi)' k' i4 r7 I. p _
- (SETQ SZ (GETREAL "Size <1>:"))2 M0 T M Q- s1 n% z
- (IF (= SZ nil) (SETQ SZ 100))2 I& U8 ^( F9 K% D9 n( b4 H+ S$ `
- (SETQ G45 (/ PI 4))$ S1 e0 _2 R5 k" t$ B |
- (SETQ G135 (* 3 (/ PI 4)))+ |# n- `* _( ?) O. Q/ R
- (SETQ G90 (- G45 (/ PI 2))). m6 g U( p: f$ Z
- (SETQ G180 (+ G135 (/ PI 2)))
. v, r& x e$ u+ d j - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
9 o; ?0 a7 z a9 |3 ` - (SETVAR "OSMODE" 0)! x! G* s4 N1 s( Q) `
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))! r8 }7 W- i+ c9 t3 \8 |
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
# M% G" m+ J2 X - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))6 a+ z& t8 k* \' y
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))+ v- B3 d% Y- o3 S% X& Y. t) x. z5 o
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
' q% {" P* g1 {% ~4 W! y; r - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))# W/ n, U, b; R& q6 U0 t' D- r
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))/ y: f& y7 w V5 l. H# u6 I* ?9 M9 ~
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))7 b' f, o$ A/ n/ G1 L
- (PRINC "\nGoc quay:")
5 p- N$ s }' D - (SETQ SS (SSADD))
0 ]# n$ u4 W$ g/ x1 Z - (command "layer" "m" "Dim" "c" "" """")
4 ?% z( G2 P6 }% r! R5 X" Z: y/ \& R - (COMMAND "COLOR" "1" ""), L, |8 e# c! j2 k3 R0 F1 f
- (COMMAND "LINE" PT8 PT2 "")
. ?: @! Y+ D) Q$ }2 R - (SETQ SS (SSADD (ENTLAST) SS))
( H/ K* B1 b7 T6 p8 d J7 e - (COMMAND "LINE" PT9 PT5 "")
& g# p0 A" o2 l8 g0 n ^ - (SETQ SS (SSADD (ENTLAST) SS)). s T) S0 `( i' l5 j
- (COMMAND "COLOR" "1" "")7 ]+ b9 u$ n* f. A5 I$ V6 Y% B% F
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")" B h' C0 b& n3 i
- (SETQ SS (SSADD (ENTLAST) SS))
) |# v4 L9 k( E' I - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
2 ?1 A5 O! M) z, y5 {: O - (SETQ SS (SSADD (ENTLAST) SS))% A. I4 F* V/ Z: d' C1 w* G
- (COMMAND "ROTATE" SS "" PT1 PAUSE)
/ F6 `% ~" \/ [% l) ]. M" j - (COMMAND "COLOR" "BYLAYER" "")6 H# f2 v. d. d# o# t
- (SETVAR "CMDECHO" CMD)6 w6 P. F* S* Z
- (SETVAR "OSMODE" OSM)+ d8 T0 K2 u$ u! O$ n) h+ L2 D
- (SETQ *error* OLDERR)8 L3 |' p) j$ M, Z# ?" w
- (PRINC): I5 p' W9 B1 [( @% G: _: k4 `
- )
1 p6 |3 }3 J, a* v$ R! a - + |& w. u X/ T$ [: ~
- ;================================================================================== w& j2 ~6 g1 H8 O7 N, u5 O
- ;================================= KY HIEU TRUC ===============================
7 n* U+ K. h" ^7 f1 f- { - ;==================================================================================' {+ t+ I) f- @. A. f* q
- # e$ }; e- [1 o) S4 C9 t8 F
- (defun C:vetruc ()
% q; P% y0 p0 s Z( S- X. E" ]8 } - (setq bk (getvar "USERR3"))
% ?* A; g) z8 f$ }2 D# f2 z6 j - (if (= bk 0)
" U4 _+ |' }# Z8 O - (progn
3 l) g) U. Y: i: v( u - (setq cont "1")
. v! O R) q! E - (setvar "USERR3" 1), l3 X5 `. D0 r& B; N. z- a- j
- )! `% \, p6 z3 b
- (setq cont (rtos bk))
$ A1 t9 u: A5 a - )
* U, R4 x! S5 T5 s' w5 |9 s+ { - (setq pt1 (getpoint "\n Nhap diem dat:")), I a" j# |7 g T! c( |/ }5 q
- (command "layer" "m" "Dim" "c" "" """"), F7 a1 K+ Y' q/ [0 c
- (command "osnap" "")- V" Z3 _0 u x9 ^" Y( j
- (COMMAND "COLOR" "7" "") ?6 I: e+ u4 Q8 W& Y" n, t
- (command "circle" pt1 150 "")
5 m5 D8 X x* g% N$ `* D/ g0 ^ - (setq pt2 (polar pt1 0 150)): q. [" k1 {- A- A7 a
- (setq pt3 (polar pt1 (/ pi 1) 150))4 |( g' B$ I& b
- (setq pt4 (polar pt1 0 300))
& x' \6 G0 z# \( V' p0 T& n - (setq pt5 (polar pt1 (/ pi 1) 300))
. [. W, W; b# B$ b2 F, f% A1 t3 U7 e - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))3 @7 k9 ]( c5 Y% Z9 t
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))/ j9 Z5 E8 T6 `! l+ i/ \. S. c- P
- (setq pt8 (polar pt1 (/ pi 2) 150))
7 E* X; L+ J+ k6 @8 L' B - (setq pt9 (polar pt1 (/ pi 2) 300))
& @. v. \$ U/ e5 f7 f& ~ - (setq pt10 (polar pt1 0 150))5 V* d8 U$ L, C4 U, h; w
- (setq pt11 (polar pt1 (/ pi 4) 150))
9 T. @/ L0 A0 J, u, y+ E - (COMMAND "COLOR" "BYLAYER" "")
$ d1 T* V) x1 ]9 Q0 k7 C: F - (command "line" pt2 pt4 "")4 M9 w3 M# F5 F3 o* f
- (command "line" pt6 pt7 "")* C3 o3 d) l0 w5 h: \
- (command "line" pt3 pt5 "")- }. P# x6 j* S) I" @9 J! i7 Q
- (command "line" pt8 pt9 "")
5 q& x5 `/ N8 ]1 V+ U - (setq dk (strcat "\n Size:<"cont">"))
! }, i0 |+ @, V* v; Y9 x' B' ^5 K - (setq bk (getreal dk))3 L4 y) w$ c& y
- (if (= bk nil)
) Y9 k* `: c( E: i' Z - (progn6 r/ R @: R/ z0 j
- (setq bk (getvar "USERR3"))
: s( d' h2 L+ a% b - ), q1 L/ @7 u+ h4 |
- (setvar "USERR3" bk)
9 Y! {3 @5 ?' M7 ?8 Z0 e z9 [ - )2 B% I+ j, _( v! ^
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
$ w9 ~# ]+ D# p c: O& H - (COMMAND "COLOR" "7" "")
0 Z& f7 I+ v; k% ]+ v - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
, o' Y" `6 ~, m - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
' V! g) p3 I% q - (COMMAND "COLOR" "BYLAYER" "")
5 t! O- T, ]! f9 G& A - )5 j0 y0 H1 S6 b# N: S
8 X% F, J" ^; x7 |1 P1 [- ;=====================================================================& B, z6 s, w' s' F0 r) {% t1 d
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)3 V* j/ x# _4 B& j$ ^: j( [* U
- ;+ x! q, s# x4 f- E1 \* o0 X
- ;Jeffery P Sanders* j3 I/ ]! w( P$ _8 R
- ;0 _% r: c9 @ T! E K2 m
- (defun C:CA(/ en enlist tx newtx cnt tp asc note): j6 b) X3 C4 O
- (setvar "cmdecho" 0)
3 f4 l1 H* r) ?% E" |; ?( o - (if(setq en(entsel))
+ S0 i. Z z- \" G4 n9 s& N - (progn
' j2 ~( R/ a4 M$ o - (setq enlist(entget(car en)))9 m1 ]6 ]7 a" s# b7 i
- (if(= "TEXT"(cdr(assoc 0 enlist)))# b; S4 o8 S3 }& v
- (progn
0 v9 O3 c5 [: O! u7 \- j - (setq tx(cdr(assoc 1 enlist))
3 O" M) \: c* a - newtx "" cnt(strlen tx)
j9 `0 E" v, i& @/ l% k9 G2 } - note "\n...CASE Reversed. \n "& \5 d. N) m) @* t& d4 }
- )
; T* A! `4 y* {0 Y - (while (> cnt 0)* P$ f( D) S2 m4 A- G2 J7 M, e
- (setq tp(substr tx cnt 1))# |5 c9 f2 d+ `" m& t
- (setq asc(ascii tp))) J' j* i/ H7 z- _0 j2 Y( ~1 `) e
- (if (> asc 96)+ ]7 T* H! f( x/ G5 L4 L& V0 Q) ?' s4 z
- (setq tp(strcase tp))7 `, J4 s$ D* u' d* P7 ~- k
- (setq tp(strcase tp T))
9 R: H0 A# W! Z; a - )
* Y* I+ V O9 @8 o2 d - (setq newtx(strcat tp newtx))- j O; D/ S, \* l) c% Q
- (setq cnt(- cnt 1))" V. F2 E3 ?6 Q" Y% Y+ O# u+ u
- )
% v( _' E& C6 B3 _5 ? - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
" J) i3 f9 Q* q: @; D* w4 D - (entmod enlist)) K# J) n0 _! t; h
- )- \, A, S. X8 @- T0 l1 K
- (setq note "\n....Text Only Please. \n ")% f" m+ X8 Z& o; c. `4 H4 _
- )
, H' Z. L& C/ R h7 |0 l) c - )0 ^& b3 k! p, _' K3 s3 N/ L/ U
- (setq note "\n....Nothing Selected. \n ")
2 U' u- v/ y8 F/ s$ t - )
' S# W/ m" q) a' }1 j! i* w3 x - (setvar "cmdecho" 1)" ~4 N. }8 {$ b$ {: t
- (princ note)
" B& E0 X! I3 d - (princ)
+ [, x: m- g3 u7 ?/ h - )
' m& Y3 q+ |/ M9 E( X
8 Y; E& O; s; P- ;=====================================================================
$ @* v0 E# e/ a' q. U - ;==================== NEW TEXT STYLE UPDATE ==========================- F V a1 P. q4 r9 r$ J
- ;=====================================================================1 h7 g8 j) `! s" s
- ; A- e. E$ e$ U5 d: J. E7 ~! p! K
- (defun c:nS (/ tdt ssdt sodt index)* _" V+ w! n0 R% s! F
- (defun ObjName (ssdt /)
: P: ]7 R: k/ z& G' i) _% h - (cdr (assoc '0 (entget ssdt))): r6 T. k! P& m* |* a. N
- )
; x( H0 Q0 `$ e" _ - (defun MoPL (ssdt /)
: ~* K7 \/ w; ]8 p - (= (cdr (assoc '70 (entget ssdt))) 0)% D6 N! {1 Q3 U |* b2 n& D
- )
0 Y1 m% Z, F) z( h - (defun NoiPL (ssdt /)
' O5 B4 o d) |. @3 u+ ] - (if (MoPL ssdt)
0 U/ R7 X1 v2 W6 X - (command ".PEDIT" ssdt "J" "All" "" "X")6 ~& W0 `/ E9 }# s! p
- )2 ~4 E" ~) [; f( u* n" v
- )
( U9 m' y) B6 k3 b2 q - (defun NoiLC (ssdt /)6 [2 E+ U: x% M9 P( o, h
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
5 v7 e" n o6 I6 ?& X4 G2 i, p - )
- D% ^: @ g& v; |( y9 {$ Q- u+ o - (setq
# k: `5 \: b( k - tdt (ssget)
, X) k( ?8 Q, b8 U: [( @/ I) r - sodt (sslength tdt)
2 Z1 e: ^4 Q2 J- u6 S- m1 p - index 04 R0 u4 L: G- R/ u1 n
- )
: l b7 O }! D: N& y( r( H - (repeat sodt
' R) O1 d) i) N% {& z1 M" H$ P/ |, T - (setq% c8 B: T' H5 G% _* p! l: {- k
- ssdt (ssname tdt index)! v6 G0 y# ]* @9 M1 }- D
- index (1+ index)& @; W9 Q S! P3 E$ a- p+ ~
- )
5 _4 }; t% x/ V* J) [ - (if (or (= (Objname ssdt) "LWPOLYLINE")
3 a5 ~3 {7 C1 m - (= (Objname ssdt) "POLYLINE")
; P' e4 e3 J' K3 r: l - ), L9 q! X- x: |5 C3 ^! m
- (NoiPL ssdt)
: ?& ]7 e: b8 [ j - )
; Q. x+ }5 H# C - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
% A9 l) f* @' b1 X - (NoiLC ssdt)
& f" F* A2 P3 W+ E - )
6 J% @) x' b7 D' T - ): g+ r( o7 u& n) x' \
- (princ)7 a% w) c3 N! T3 i0 h; Z
- ): j/ N2 {5 |5 U5 }
- ' C5 |1 v' D! J h$ i& L* t7 ~. J
- ;=====================================================================$ Z3 W K: N. H1 D
- ;;; AREAM.LSP
% N3 C* K3 g8 [5 l3 @ - ;;; Function: Calculates the total area of selected objects3 D6 N0 u0 d/ |/ @; l! U0 v
- ;;; By Jimmy Bergmark
u$ ~) h7 t9 `5 b- g - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
* V4 q3 N8 `2 b- L' _* } - ;;; Tested on AutoCAD 2000
! f. ]% E6 |, ?/ t$ w# s7 [
2 n) j3 s2 \3 Y( u ^: O6 B/ C- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)) @0 ], s8 P/ w2 X3 [
- (defun errexit (s)
0 B! l* ?/ O: o- j0 W/ m j+ S - (restore)
, g5 O' ]5 d1 A/ D' p' r - )2 `! ~ U2 h& U# i2 Y5 Q) D" }
- - _) N- M; X7 e( Z
- (defun undox ()' z/ q1 {9 A( K1 {4 Y2 S
- (command "._undo" "_E")8 u7 G) k& q, W x9 @* L
- (setvar "cmdecho" oldcmdecho)) J( ~4 \. s& r7 |
- (setq *error* olderr)
: T8 S* L! [- V/ A) f7 P! z - (princ)% r3 S' o! `5 F2 p- u1 z" P/ A
- )
) z# F5 G' d F3 ^* f1 q- h4 ^: I - * r5 }: U, b, H
- (setq olderr *error*
( ?$ U; E5 P) _) @7 s/ X, d - restore undox
- [6 I9 w0 X: B; V# z - *error* errexit# b; g9 R8 h0 }& s' a Q4 l& O
- )
: x! H/ i/ A6 i) ~- T" k - (setq oldcmdecho (getvar "cmdecho"))
@; _$ E& V$ s0 b - (setvar "cmdecho" 0)5 [4 [! z% k# |! ?. M& K
- (command "._UNDO" "_BE")! ^! W3 u$ Q3 h+ \9 M6 [1 {
- (if (setq ss1 (ssget '((-4 . "<OR")
6 D/ g% [2 `8 N - (0 . "POLYLINE")
+ h6 c/ s# m6 S5 n - (0 . "LWPOLYLINE")
& Q" @) Z% L" o& F' p; O/ v7 h7 | - (0 . "CIRCLE")) g- H! u4 l& j! J3 e# A$ K
- (0 . "ELLIPSE")
( X( o6 `( B1 k7 L U$ e! d3 g- H4 l% z - (0 . "SPLINE")
+ P. L3 w/ S8 d% w7 F0 e6 X - (0 . "REGION")/ r7 ]! F2 V9 }% V* U; u6 q+ f0 }
- (-4 . "OR>")
0 n- ~* A2 |: d9 S6 b - )
0 p0 ?# d* y) M - )
: @7 G& \& C2 _5 n! r - )
& ]4 Z4 k s% U+ ` - (progn& r' E) C/ V2 w, P7 k
- (setq nr 0)
7 [, t- j/ v7 P+ z6 r - (setq tot_area 0.0)
) j2 I& R' K# c- V- R6 T U - (setq en (ssname ss1 nr)), E8 R. `' I8 ?$ c0 H
- (while en
4 I' d+ Y1 I# X+ j - (command "._area" "_O" en)
" T4 X( e& e" g' `) }1 w - (setq tot_area (+ tot_area (getvar "area")))& |' M9 v# y# Q, z/ m
- (setq nr (1+ nr))+ \! j4 t: \: ^* J
- (setq en (ssname ss1 nr))" Z/ o5 o2 O+ i' U
- )
- s9 |9 g4 M/ {+ y1 c+ V - (princ "\nTotal Area = ")( v" X6 x* x6 U Q5 `
- (princ tot_area)
. j; x- C* h; l* @4 i# m' A m - )" N2 T# u& }: L5 [% f) s: y
- )$ y( a) Y8 x( [; P& h
- (restore)* b; T; K0 B! n1 v1 d2 Q2 Z# W
- )5 w: s C9 ^4 \1 R# k3 A
- ) u& q. _8 I$ n( x
- ;=====================================================================
$ Y& [& ~5 m) u, p1 H, Y - ;;; By Jimmy Bergmark
# x+ Z( a2 t7 M7 Q( \ - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
/ M' D! N3 X& s8 j; ] - ;;;
* c& O- k7 l; x7 ^. M, E - ;;; Created: 2008-03-31$ }4 L3 S# t" e- f3 ^& f8 [
- ;;; R1 E1 z1 W' O: D8 O. {5 A
- ;;; Convert Attribute definitions to mtext
! {. C% W$ Z# Z, R - ;;;
" A7 d% m6 `! N3 \! f8 d
7 h7 ?1 `) D) a+ f- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space). v4 G8 Q( S1 s8 I+ s
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))6 k1 C1 Q$ i9 [ |9 c) L: n
- blkcnt 0
/ o% L! ^/ y# m& `+ L2 F* O - )0 j& M* K# K& _
- ( I, ~5 B$ J3 k* v& U( w2 W& w' R
- (if eset1
; p( L% \ U0 W. S0 \' r - (while (<= blkcnt (- (sslength eset1) 1))* G% K" d+ N* K& Y
- (setq en (ssname eset1 blkcnt)) z7 i& s" X2 v
- enlist (entget en)
3 N- |4 R7 p% E- ~( U - ht (cdr (assoc 40 enlist))" g" K6 {' F. U1 y
- pnt (assoc 10 enlist)
! `2 A2 X# c5 H- D% b - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)2 R; z K9 C& ^
- space (cdr (assoc 67 enlist))
& j: P7 m4 z \% U. m - )
- z1 c8 P+ n! U - (setq vl (list/ t' {) R3 e8 Z( V, B1 J
- (cons 0 "MTEXT")
- g' C2 z. ]: f - (cons 100 "AcDbEntity")
6 ?% A& b' E X: N - (cons 100 "AcDbMText")
& Y9 ^. ^! g+ G - (assoc 7 enlist)* _ V% Y9 e- u3 O$ B
- (assoc 8 enlist)$ m7 X1 O6 e7 P, y9 E' `( b
- pnt
' b2 D" Q! q$ O# o( _ - (assoc 40 enlist)% t5 f# S, f7 E; f4 R
- (cond ((assoc 62 enlist))
1 x0 U( Z: m1 j% Q - ((cons 62 256))
, d0 ]# s7 t' B' O$ M, N - )
( Y* x2 r% z9 }# E - (cons 1 (cdr (assoc 2 enlist)))
- K4 Q& H# t- k$ }8 x* S$ c - (if (= space nil)1 }1 u! p! D4 U j( T0 E
- (cons 67 0)$ Q0 R; n5 E1 e- I
- (cons 67 space)
1 ]6 M. W! R n* _3 {$ i/ n6 b - )- Q" ~$ V/ d& Q& V
- )/ k, ?8 o0 S7 V7 M; z" }
- )
: [8 f8 p" x, @, d$ A* w - (entdel en)
0 W. D+ d6 M5 s) a9 l( o, e - (entmake vl)6 t4 z# z Z! b0 g w
- (setq blkcnt (1+ blkcnt))( q5 B2 c/ O( P. i1 |
- )6 E e/ Z! \$ Q* w0 O0 j, R) a
- )
" \- O4 r6 A+ z) x0 ? - )
1 a9 `! X I, L8 q6 O& A4 v - " K4 R' \) `4 F n- Y% f
- ;=====================================================================
& K- z2 c0 \; M/ l
9 ^. M+ {5 c; ^9 b3 c( b- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
3 ?( }# Y: d2 A1 b+ e - ; Khoi dau cua chuong trinh
4 `1 D$ g( Z* \) `6 N3 M& p - (princ "\nCopy Inteligent...\n")
6 a) @3 l o0 R0 T6 z - (setq luuecho (getvar "cmdecho")- C) n0 A2 K0 t) e: ?8 \" F: _( B |
- luu *error*" ?$ |- J4 A( c8 ^2 i5 O
- *error* ketthuc
& {6 a* p6 @, ~4 ~' e - cumdt (ssget)
% \ M+ R/ V5 z' P - dodai (sslength cumdt). \2 U5 A+ W3 D$ W( c
- goc (getpoint "\nSelect base point:")
! L/ b* ?9 R& a+ W O% N& q - thoat nil
2 b+ o- W, d2 x4 S - dem 01 V; o; d- ?' {, r; k. t/ {) F
- textxl nil$ M# O: m- s" M# s5 {
- );
/ C$ N; i: @+ |( Y2 B4 u - (setvar "cmdecho" 0)" S- k# S c$ g% t" l
- ; Loc ra duoc ong text de xu ly
) {% v: X3 y+ d - (while (and (= thoat nil)1 y; |* \: O! ^5 `" d
- (< dem dodai). l. \8 r t4 d1 q1 C7 w- o' l
- ); ]$ }# W- P' X
- (setq ten (ssname cumdt dem)) i& }: g# A. p% D) H* [
- dem (1+ dem) B9 V* S5 j- i3 E
- doituong (entget ten)) y% Z& s" ]1 c3 y. B% h; V
- kieu (cdr (assoc 0 doituong))
; x6 k# [& ]& @ - )5 a/ I7 v) q O8 F _
- & ^. d$ c$ [% ` K( X" K+ `# U; C2 M/ ?
- (if (or (= kieu "TEXT")
2 T3 d% Q! w6 M8 v - (= kieu "MTEXT") ; D0 ^ Y& {: c, u7 N7 k
- )9 P; r# v+ F1 E, K+ n6 Z7 A P* _2 Z
- (setq thoat T
p+ U2 D% A v0 Z' ? - textxl (cdr (assoc 1 doituong)) 2 Q8 i" m& {2 x5 s; R
- )
6 x% d- f1 G8 [% g; {, Q - )
! y# F7 L( D5 F* } - );
: t) o/ `# X! T0 W \) d - (while T
+ ^ c" A5 F! _& T. V - (setq toi (getpoint "\nSelect next point: " goc)
$ R, i6 Q) v) S# h7 V - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
4 t! y& W" Z: C0 r - dem 0+ T n' i5 S5 O" W
- )
P9 A" I6 E- F( P0 F5 G: }, p3 Q - (while (< dem dodai)
1 N$ c3 V& o1 _. x8 _ - (setq ten (ssname cumdt dem)
" c% }! q( I8 n3 ? y9 Q. r7 | - dem (1+ dem); s' c5 f# c6 @+ d9 h! N
- doituong (entget ten)* m' y D3 \9 t& X
- kieu (cdr (assoc 0 doituong)) : k6 P/ {9 ^0 U) Q* ]# H( m
- )
; W* f0 E; ?2 J* T2 D+ N* L4 y - * F) [$ l% r0 ^# y( ?/ P+ p, ^
- (if (or (= kieu "TEXT")
% Q% K o) ~3 ~+ g* M - (= kieu "MTEXT") 6 [4 K: g! X" R& v: K
- )
3 U1 p. a; U4 w. j' v6 @ - (doitext ten)1 {6 Z) R9 M3 z% \* s$ r4 T
- (copy_dt ten)
0 d8 p# d# ]) R+ _/ a E
5 x; _. d) u9 Q0 r- );if4 s1 e0 g; e8 k$ P+ m1 J9 `2 b2 @
- )0 o* f$ ^- M1 E. F
- );while$ w7 E) b, i0 J' ]
- (ketthuc)# S6 u8 U ^: l, s/ I
- );defun
5 F0 \' k1 B( j; m7 r: i% w - (princ)
+ l/ @: s- s* \- |+ u
" Y: m/ z T& B: N( Q6 y% T- ;=====================================================================
; n8 T) E$ `; |0 b, M; y' b# I& F/ c - ;;; By Jimmy Bergmark
8 J9 p) C J; u# U; { - ;;; Copyright (C) 2008 JTB World, All Rights Reserved2 o) }. m3 Y o
- ;;;5 V+ d& u! n) M* f: i7 I
- ;;; Created: 2008-03-31, ?. p9 c# D- p7 A$ T
- ;;;) P! B3 Y( ~8 C, n4 G7 Z+ }
- ;;; Convert Attribute definitions to text
- f% W9 {( w% t - ;;;; x; G& _; q" d! o
+ n: m1 q# b" F& y# T) z- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
$ L; _, Y# M' y" O% ^ - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
/ r' W" P+ K0 l | - blkcnt 00 m% l Z. Q# C/ ?
- )# r/ H+ y/ n' W0 ~# U
+ }% @3 i/ Z4 M9 f. t M! b- (if eset1; I/ J7 x+ S! K K
- (while (<= blkcnt (- (sslength eset1) 1))( A* c) I1 f) B- w w7 [" u
- (setq en (ssname eset1 blkcnt)3 U8 Y6 t( r9 \8 J; `# Y
- enlist (entget en)
$ H1 H6 B2 T/ O+ r - space (cdr (assoc 67 enlist))
O8 c4 I; N& y( I6 J* X9 [& {+ L - ): y$ A, o, ?5 Q. b% z; K
- (setq vl (list
5 h, L. M7 b$ d' I- e% X) Y' b) I9 Q; J - (cons 0 "TEXT")
- v0 R3 m: d4 U# f$ G8 Y& P3 Z - (cons 100 "AcDbEntity")
+ D$ C" e7 b# X8 @ - (cons 100 "AcDbText")+ L9 o1 z- K8 g* D
- (assoc 7 enlist)
; k* `8 p: X( }1 N9 Y - (assoc 8 enlist)& {1 P8 R J! b, D
- (assoc 10 enlist)( C. o; O8 r0 B, s8 D4 t+ W6 r
- (assoc 40 enlist) [! s9 u; U, v/ L9 I E# j
- (cond ((assoc 62 enlist))
9 s0 l2 W% x0 x( m0 k3 j - ((cons 62 256))$ C, l- x. l: F1 @( N0 @
- )4 a3 D6 y+ [0 K* V( D
- (cons 1 (cdr (assoc 2 enlist)))
9 Z5 Y7 L, H) d+ p# { - (if (= space nil)1 \1 Y! l) Q% \; O' W
- (cons 67 0)
6 X* O5 J4 v# F `7 B/ `+ }# T - (cons 67 space)
4 l. {5 d1 N! U$ L3 l' e - )
' @8 Z0 q$ g& \" B2 N* l; R - )2 @% O& C! E! \ A( Y
- )4 p' s1 ]# |9 U0 H7 a3 b
- (entdel en), D' z$ r: ?3 b) [8 i
- (entmake vl)
6 I, L2 A. s4 A - (setq blkcnt (1+ blkcnt))! A% S) n, _5 ?( U. H! n1 B2 b
- )
2 N& X) e# Q- @: W C" h4 L7 T C F( c - )3 @2 n3 M# C$ i+ \! @- R3 t# T
- )
L* H/ w _8 ]$ d - ;=====================================================================
! `" w5 |, g( x5 R - ;============================ Doi Truc ===============================& S0 d% S/ l* `4 g( e
- ;=====================================================================8 V3 S: o, @) b
- 7 w& ? K; Q0 c0 y6 ?0 q) J
- ;=====================================================================/ f/ o+ T$ b" g( J, q5 B# O. z- ~
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============) x) O: k! z7 m% T* U4 R
- ;=====================================================================( H' y1 E3 t( x: m9 S! q
- (defun c:ga1 ()
8 [' f) z4 v t. I+ j" [; K- n( v - (setq a (getpoint "\nChon diem: "))
' E7 `, V U0 j6 B7 o* u; k - (setq b (getpoint a"\nChon diem: "))
' l, l1 o8 l3 F# T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); C: f$ L1 E, N( S
- (command ".circle" c a)- {4 ?* M7 m* _% T& f- R; f
- (command ".line" a c "")) w9 x) f" M ] P
- (command ".array" "last" "" "p" c "1" "" "")6 }7 _' @( F, R" o8 a/ k2 @
- (princ))
) c9 `4 ]" w. m* [. x
' }# s4 M& l: f5 [1 {" {- (defun c:ga3 ()
5 v2 x/ l- h2 Q4 U+ y5 j - (setq a (getpoint "\nChon diem: ")), N, G! e- }) d+ @& c
- (setq b (getpoint a"\nChon diem: "))
% C9 Q, z0 \8 C" p - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" a- {* l* A: A+ |$ F - (command ".circle" c a)
1 w4 e( b8 N& V: ~ - (command ".line" a c "")- n6 u" R, d. A1 @7 G7 G
- (command ".array" "last" "" "p" c "3" "" "")9 t( |& [9 s! {4 O
- (princ)) P" M# I( X4 L+ N9 J- Y) Z
7 b. a9 E K+ `) W6 G+ w' g6 W/ B- (defun c:ga5 ()0 M7 a" j, U9 C" x% J5 k. H- V
- (setq a (getpoint "\nChon diem: "))0 Q6 d$ N& c9 [6 \1 L. L
- (setq b (getpoint a"\nChon diem: "))
2 `* e3 c4 G$ ]; A: {4 k! n5 p - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ ~ @5 p F6 V
- (command ".circle" c a)% Y4 F" i, N) V2 z3 t- |) p/ j! E
- (command ".line" a c "")
* e9 C. t0 S0 O/ i - (command ".array" "last" "" "p" c "5" "" "")& Z9 |6 A6 l1 ^3 I( Y2 j A1 z
- (princ))2 Y: c" ~# c2 t6 ` R! n. q
- $ J2 X) T3 q) [
- (defun c:ga7 ()
4 U0 o$ I# A6 t0 b- o, Q' g - (setq a (getpoint "\nChon diem: "))1 l* X: f" z7 _. K5 e. h! ^
- (setq b (getpoint a"\nChon diem: "))! Z" _! K- N% o
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- _) W- r( F! c# ~7 `/ |9 T - (command ".circle" c a)8 O& n, H+ I2 ^
- (command ".line" a c "")
+ m3 ~ a6 y3 e0 a0 A, A- Z - (command ".array" "last" "" "p" c "7" "" "")
- P( x# n9 X T0 u* X& r - (princ))
8 ?( n& Z3 P: N, V
7 S9 T8 p8 {$ f# P, E1 l- (defun c:ga9 ()
1 n0 o I2 t8 g2 Y7 R: c - (setq a (getpoint "\nChon diem: "))
' Y( N- d s& G9 L/ p - (setq b (getpoint a"\nChon diem: "))
7 j: b6 l V6 k& ^* G7 ` - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% e% Y; S' c8 p - (command ".circle" c a)
+ x: X* ~) k* Q - (command ".line" a c "")
# M* J e/ O; R/ u) d( f ]# _ - (command ".array" "last" "" "p" c "9" "" ""). i+ n1 V* j9 V6 ]: }8 A) T
- (princ))+ m( K. v0 s7 @ \) C1 x/ |! e
- . x* R. Q; d/ j8 y; u
- (defun c:ga11 ()
3 X, ~0 Y7 M; j# }+ K- s( B - (setq a (getpoint "\nChon diem: "))" @0 x1 B+ h; l4 X
- (setq b (getpoint a"\nChon diem: ")): o& o9 X' @5 Q# V, C4 a& F1 I
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ L! _9 t3 m# N% c: |
- (command ".circle" c a)2 Z/ T" f, }& l9 I$ A; B M
- (command ".line" a c "")
) h: N! z+ b1 w; t R$ Y6 @+ O - (command ".array" "last" "" "p" c "11" "" "")
1 g3 j4 d0 j; Z8 `6 N1 h1 Q4 \ - (princ))
2 R5 x4 n# }7 D( {: f - 7 v! h1 x5 g5 f8 P8 y+ t7 Y7 J
- (defun c:ga13 ()
6 \. ^- K0 T0 B/ E) f* G - (setq a (getpoint "\nChon diem: "))
1 t' i+ f6 R% l9 [, N0 l0 i - (setq b (getpoint a"\nChon diem: "))
* k8 E0 I1 k1 b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ `5 Q7 C1 F4 f. g) ~0 \3 V5 D
- (command ".circle" c a)
: s! V; d$ A! ]! k* C - (command ".line" a c "")
! E. K r' ]' g- a+ @ - (command ".array" "last" "" "p" c "13" "" "")( h6 v' K) [6 W! k# {' |* Z
- (princ))
8 S1 L0 _9 g! J
- }7 L/ _1 P! r0 i0 z7 ^/ |( y- (defun c:ga15 ()
( ]3 d& }3 ]6 @3 x* z - (setq a (getpoint "\nChon diem: "))
1 w" P. e; _1 C! @ - (setq b (getpoint a"\nChon diem: "))) H8 w+ V; w9 @/ O
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. v/ @ c4 |5 V - (command ".circle" c a)
. }$ [" B6 _$ D! f6 j3 M - (command ".line" a c "")
+ G5 n/ ^% `# J7 c1 t* G9 c5 j - (command ".array" "last" "" "p" c "15" "" "")
) x" O2 b) {$ X5 K ? - (princ))0 r& ]" F H5 G+ Q% ~1 P) N
- " p7 c0 G& C- h8 E9 h A
- (defun c:ga17 ()9 m& ^% k$ p: _! E
- (setq a (getpoint "\nChon diem: "))
3 Q* F: W+ y5 z* {: D$ X - (setq b (getpoint a"\nChon diem: "))
/ Z# v' \/ I* D8 D3 H& f - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' G V: |% j9 `& ^. E; h
- (command ".circle" c a)( m7 |! J: Z8 y# X8 u
- (command ".line" a c "")
" }5 Z- v. u. n) U/ g1 Z8 h' f1 b! a+ X - (command ".array" "last" "" "p" c "17" "" "")
. ~3 d# g* n3 W9 ` - (princ))- s, _ O) ?+ W; E4 @( b( v! y5 V
! a& a" `. @" \# C1 G& y- (defun c:ga19 ()
A) T" ?* L1 F9 R K0 j: k4 Q - (setq a (getpoint "\nChon diem: "))
2 B1 ~3 x9 y$ d( u6 m. i/ P - (setq b (getpoint a"\nChon diem: "))0 |4 [# Q5 }8 P% @ E
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) ?- K1 l+ j/ j
- (command ".circle" c a)! |4 v+ l; u) A2 _
- (command ".line" a c "")
: ^% x0 _3 J% z: z# Q - (command ".array" "last" "" "p" c "19" "" "")
* v! S# X- P. c+ `3 G: l% n6 W$ b - (princ))
' ^4 k1 d, @9 [% `. Q' f! T5 a - 1 ]4 u0 q7 r9 j5 z$ L# {; F3 P
- ;=====================================================================% Y) }2 k1 l; t3 g {. Z
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============- m* d, J9 l" Y7 J% \0 w# Q Y
- ;=====================================================================
^$ @: R* y; E - (defun c:ga2 (). l# c5 r8 J1 I# W: D8 \, [. G
- (setq a (getpoint "\nChon diem: "))7 A+ C& |% t" C+ z! u
- (setq b (getpoint a"\nChon diem: "))
' m* R7 U2 i' W8 ]* p3 n, R+ V3 M - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 Z7 |! x* G- @2 O4 p
- (command ".line" a c ""), K3 i- U v5 E: R2 B; {% ~
- (command ".array" "last" "" "p" c "2" "" "")
( s0 b2 X$ E) ]4 q, {6 k - (command ".circle" c a)
8 s* ?- I7 v$ c - (princ))
' X2 m, ~& Q" {0 o
0 c1 m# e+ _# z4 G- (defun c:ga4 ()
; k9 p1 H3 v2 h/ o# S - (setq a (getpoint "\nChon diem: "))4 c# }+ G$ A" l
- (setq b (getpoint a"\nChon diem: "))4 E, n+ V% D; |* G& }# x0 \. `' G
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& H( A0 L# C8 z; L" B
- (command ".line" a c "")) K6 O) C$ U4 e' b; P, E+ p
- (command ".array" "last" "" "p" c "4" "" "")! q$ o% G f! z4 E1 I- X4 V7 `
- (command ".circle" c a)0 n8 X% [. o! x* K+ }: k, d
- (princ))
! g' j/ N$ e N' S/ v
! N6 g: L7 P; q3 I5 m F$ ^- (defun c:ga6 ()
/ s/ N2 F) f8 b, p- ~% M. j9 m - (setq a (getpoint "\nChon diem: "))3 Q; ?8 u( R* W
- (setq b (getpoint a"\nChon diem: "))
|9 B; C' m) n. \/ S$ a9 T0 G5 U - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% |3 A) B4 Q& \7 [0 f2 U% T4 Q
- (command ".line" a c "")
7 ]. R! H, K+ r - (command ".array" "last" "" "p" c "6" "" "")- c. x4 Y. D4 p0 C* E2 Z
- (command ".circle" c a)5 |" P! J7 j5 q9 f4 B
- (princ))9 J$ E: ]1 _1 d- L) u' ?& t5 N4 T4 c
' w' r& U. _5 E* ]- p2 m- (defun c:ga8 ()% l) r' u8 L7 A% U& ^) u! Q6 |
- (setq a (getpoint "\nChon diem: ")); Q {! |2 p; Q; l9 y9 n, `; [
- (setq b (getpoint a"\nChon diem: "))
. P5 f4 {0 q) K - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). S) m2 E- d* \0 W# ~" i
- (command ".line" a c "")/ k# j8 O: a* H$ s/ C K
- (command ".array" "last" "" "p" c "8" "" "")0 z- z; `7 N C' b; C% Z8 k
- (command ".circle" c a)
: Z* f- {$ s7 u6 Z3 \! K% ?7 I* [ - (princ))
; g7 {8 @- u$ V4 a% g$ x) u - ' X. Z# o) C2 n
- (defun c:ga10 ()2 Y+ k& ^* I! C/ p _! v
- (setq a (getpoint "\nChon diem: "))
) S# i# P& z9 u! ^5 m" @8 y - (setq b (getpoint a"\nChon diem: "))
# ~4 n2 \2 r4 Z - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 V4 e) J# o) @ - (command ".line" a c "")3 j: R! {/ I. e$ v, @% q7 b) F
- (command ".array" "last" "" "p" c "10" "" "")6 u) a! I% o( \
- (command ".circle" c a)
* S) L& w7 e* |6 \% v z - (princ))
- H% V2 e& C0 r, u - 9 E0 {0 y* Q. r
- (defun c:ga12 ()
6 N8 r* r% M" e9 X - (setq a (getpoint "\nChon diem: ")): ~% b- ?9 X6 o: ^+ r3 O
- (setq b (getpoint a"\nChon diem: "))
' m1 b9 R* O/ b, A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). S4 e* j( z/ o, ^
- (command ".line" a c "")$ N9 X' a6 [ v5 d' T" k
- (command ".array" "last" "" "p" c "12" "" "")
1 ^( E, O$ X* P" C( v - (command ".circle" c a)5 L- p8 p5 I5 a7 g( J" C6 } H
- (princ))
# t3 O/ u* ~3 G0 {% ?/ X; N% I
. I; `/ v' V2 \- (defun c:ga14 ()
! n, P0 j8 V* L9 _& @ - (setq a (getpoint "\nChon diem: "))3 P% P' x( B! ~! D( b$ D
- (setq b (getpoint a"\nChon diem: "))
& }3 r7 j" S2 {; o9 |, ?7 i3 Q2 i - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& D7 y. @( J+ |( G7 o
- (command ".line" a c "")3 M9 z$ b3 M, L7 H- q# f0 k
- (command ".array" "last" "" "p" c "14" "" "")7 {# Q! s; k5 O& Z+ a
- (command ".circle" c a)' E) w5 }7 ?! @" i, F3 P6 N+ V, B
- (princ))
. y) P S0 K: x# D; x# L; M
6 R! T: v" ^4 u4 z3 q, J# }- (defun c:ga16 ()
" ^7 j; C- Z+ Y- r/ m - (setq a (getpoint "\nChon diem: "))
- u7 b8 }, ?8 o' {/ B - (setq b (getpoint a"\nChon diem: "))
0 U7 F( a3 a/ D2 C6 u" U% B - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, f5 U: n2 s, _/ F- j2 B N - (command ".line" a c "")* i- Q/ K2 ?( S" f! t
- (command ".array" "last" "" "p" c "16" "" "")
5 j. c: U, L/ {: z/ [; o - (command ".circle" c a)
" M' E Q( a/ j - (princ))8 ^. D1 |9 e! k7 d) S c, r
- V2 k- S, {% W, G& x- (defun c:ga18 ()
' K* J2 T. k$ I6 N0 G7 T - (setq a (getpoint "\nChon diem: "))$ S, r! O" c. }# |4 X
- (setq b (getpoint a"\nChon diem: "))/ t' P i% k1 I' @( E# ~( k
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% m; r7 f* |0 ^) f4 u$ f - (command ".line" a c "")
3 Y" p$ ~( D! T$ V k. @ M* y# O - (command ".array" "last" "" "p" c "18" "" "")+ i; {6 A$ N8 `% e# Q4 Y- H# q- F
- (command ".circle" c a)
' S4 e0 x! a$ ]) S - (princ))
) Z r( q' e: l9 w! J8 s. F
- f, t: V% F: j5 L8 {6 n* J1 T' Z- (defun c:ga20 ()/ h; Y9 ]6 f0 q3 k
- (setq a (getpoint "\nChon diem: "))
' Q6 K" M* ^# ^ - (setq b (getpoint a"\nChon diem: "))
9 [) m/ W a! p2 d7 q8 e; n% w - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# Z! ], `3 K7 M, }0 M - (command ".line" a c "")5 q* m+ B/ x( _& H
- (command ".array" "last" "" "p" c "20" "" "") l; ]. ^+ i& c+ ^
- (command ".circle" c a)/ W: k, b" B6 R+ V9 v z7 K
- (princ))
, c8 ~" n- R* P N - 9 d# G. [& T! U% w
- ;=====================================================================, f" w8 ]2 Y( Q8 _- ?5 Z, M
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============0 o& R; V# i) M# J7 D: H
- ;========================== 06-11-2016 ~ 18h00 =======================
/ F! o2 h2 t7 ~/ f' B - ;=====================================================================- J% U! O; @9 J5 k
- (defun c:ga ()7 J# Z" }9 ]% h
- (setq a (getpoint "\nChon diem: ")); x. \1 R+ _2 i- b/ S* w& Z
- (setq b (getpoint a"\nChon diem: "))
% Y3 t6 O/ ~/ t' y/ h - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( x5 g! {0 A! X
- (command ".circle" c a)2 |9 X) M4 Y Y! m0 t8 |
- (command ".line" a c "")
0 x M- j2 C, k9 | {' y- j0 k! e* y - (command ".array" "last" "" "p" c "NUM" "" "")
: N x! o% F# ?4 e" y! q) k - (princ))
- J7 `1 v5 b2 r% W, j: \ - 6 Q4 Z' t8 D4 Q6 |
- ;=====================================================================
$ q$ S" i! D3 y0 R% }2 [. D - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============% ]3 c! {5 D* }
- ;========================== 06-11-2016 ~ 18h40 =======================. D5 k. q' A% n& l7 T B3 y
- ;=====================================================================
2 F4 k4 [) D5 B - + F. j2 f2 L% V2 w
- (defun c:hoathi ()
7 ^0 }" B8 h( W/ F$ Q3 o - (setq a (getpoint "\nChon diem: "))* Y" f& |+ g, P8 D- J1 A, B
- (setq b (getpoint a"\nChon diem: "))
* G) G9 G6 V+ e+ `$ k' A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" _- ^/ X' X& R" \5 ^
- (command ".line" a c "")
6 C6 A# }+ a7 t( S - (command ".array" "last" "" "p" c "NUM" "" "")5 j5 c3 n8 Y: l( v: h
- (princ))
6 T5 ]$ [5 | h) C2 }) U - ; ~' e9 F1 P0 i6 I0 S" Q
- ;=====================================================================
, o& ~" J$ x' \+ \7 z - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============) ^$ |" {* q; D/ f5 ? X t# G
- ;========================== 03-11-2024 ~ 19h33 =======================
! w! E3 \7 ^ o% v: x6 g# v - ;=====================================================================
# {; \, g+ V% T4 P' w, r* |$ ]2 D
# a3 `2 `, ^/ P0 \+ M- (defun c:cung ()1 Q' t; H% C G4 Z# ?0 ]8 \
- (setq a (getpoint "\nChon diem: "))" m$ F* @; s" b
- (setq b (getpoint a"\nChon diem: "))
: I8 r% Y9 p, s - (setq c (getpoint a"\nChon diem: "))4 R% L8 R u" F
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; x# u5 _0 R' d- a - (command ".arc" a b c "")
+ x" O" n0 |& J7 x! J - (command ".array" "last" "" "p" c "NUM" "" "")% M; d% S9 \; t U: [5 T1 J
- (princ))
; K) V! @# \& l# C
$ @" @) ^: Z# o- ;=====================================================================6 ?* u- `) y# @5 {' Y2 q
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
) ?. e2 f( c; e, [) v - ;========================== 03-11-2024 ~ 20h02 =======================6 b5 m8 }/ r7 k* J
- ;=====================================================================
1 B. H$ \5 h; J$ O7 a8 d
1 A- ?. F1 f2 B( m& @6 G7 e; \- (defun c:hecloic ()
, h' S6 F# Z9 Z3 J9 S0 a1 u7 ~ - (setq a (getpoint "\nChon diem: ")); M" |# Q1 p+ M; t# g" e7 Z
- (setq b (getpoint a"\nChon diem: multi "))5 H3 {$ R4 C# ~( m/ e" p
- (setq c (getpoint a"\nChon diem: "))(princ)
, j: a, {$ ?9 m5 ~+ G4 c0 E4 H' @: e - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' M2 v3 A2 i. P0 W
- (command ".arc" a b c "")
. ~6 S$ E) h% l4 M& L z+ g - (command ".array" "last" "" "p" c "NUM" "" "")
$ f( b1 V h0 f- K' n - (princ))( c% }% v8 @% Q0 ?
. A. Q; O( j, L- ;=====================================================================
- e9 k6 G9 D0 i9 n/ ] - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
: R/ Y3 n- ~$ I/ b, Y7 |5 X - ;========================== 03-11-2024 ~ 19h38 =======================
* M( W" O& g* t) L, f - ;=====================================================================2 n! r& h: e; s% N
- ( K* N9 e# l' t$ Z
- (defun c:gay ()6 i! q% {! d' U$ M" ?* e
- (setq a (getpoint "\nChon diem: ")), Z8 O/ G0 a! i6 T+ m1 B, ?
- (setq b (getpoint a"\nChon diem: "))
a# g: Y: M# z( i7 J) n - (setq c (getpoint a"\nChon diem: "))(princ)
@5 Y& {- Q; S# X% B* p4 n - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). K5 D+ s. |; E' B f
- (command ".pline" a b c ""). L E" J0 w% P% U& c0 S
- (command ".array" "last" "" "p" c "NUM" "" "")/ J Q7 d3 P+ F
- (princ))% Z, X8 |- |: b
- / j8 \# _0 t. X! e& X* n' {
- ;=====================================================================7 V; {) C2 x& u% P
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============* X& D# x% u/ [1 b: D8 T5 d- }* e0 l
- ;========================== 03-11-2024 ~ 20h02 =======================/ S! Q! M0 E0 M8 H+ B
- ;=====================================================================. e) W3 v8 ^- }* v6 I
- + J8 W9 Z' O* H- t( |9 \# W
- (defun c:hecloit ()# w4 g; d) H; Q5 P& e. E$ k6 S
- (setq a (getpoint "\nChon diem: "))
6 P5 t/ X6 z8 I/ l+ {/ H - (setq b (getpoint a"\nChon diem: multi "))
+ O" E' q/ {9 C* @! k - (setq c (getpoint a"\nChon diem: "))(princ)
, B& q h b3 | - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ {) q3 C* ~+ w+ e( y - (command ".pline" a b c "")# F+ [) w r6 s# G+ Y* f
- (command ".array" "last" "" "p" c "NUM" "" "")
) y0 |8 X! Y2 P, X/ K7 U - (princ))
, L- V: I" K% w) e( @; M5 @ - # T' S) D3 \. p8 n! p% T
- ) |; T) G( s# ]
- ;;; ============================ Merge Hatch =============================6 h$ [' W% E, q2 h/ U4 U
; @# m; _; \& k- ~. N+ R# }- (defun c:mh (/ ss entht sl i dt dtht)0 P3 T2 ^+ o0 u6 Z
9 \4 j" z8 d: \# N& w" |6 s( y) o- (princ "\nMerge Hatch - free lisp from CADViet.com")7 |# Z6 u; c+ Q% Y
- * x& V. A! \% U# e- E
- (setq
; g( C0 D9 q1 ^; k' y* a3 G - ss (ssget '((0 . "HATCH")))( w1 P H$ d# g* Y6 [
- sl (if ss
+ x3 i7 [% e1 G3 T8 K - (sslength ss)3 B8 F% G1 ]9 N; t8 X; B# `5 I
- 0
4 ]/ @3 C7 D9 q" z - )' [6 ?2 _: V( m1 z" a7 ?4 L6 [
- i 0, N! q3 o8 U. i
- l 09 }: Z2 X* B* H! t% T' x, _
- )
( G1 y6 y |) I+ b( K4 ^+ J+ T$ E
" V; d3 u. m& X% E; d! q* W- (repeat sl
( w0 [( \: h: {8 @2 i" L - (setq
! H9 w7 L9 L0 k& K! {& P. G! e - entht (ssname ss i)- k7 l" L* U% _4 A5 |: \
- dtht (getbdata entht)
8 G# G5 h( O7 ^! A - dt (append dt dtht)
+ K! I" A* s* r - l (+ l (cdr (assoc 91 (entget entht))))
% P+ K% D1 a1 |5 |1 q - i (1+ i): X$ ?1 c( ?/ ?9 t
- )
) j6 q$ Q' M* U! `' H - )2 F' u- g) O% i1 Q
: Z+ Y5 O( D! f1 w- a f- (setq ent (ssname ss 0)
1 \) I: v& x5 G. H ] - ss (ssdel ent ss)7 }" \2 x6 k, {8 Q# t5 a3 c* {
- tt (entget ent); V9 h! Z* k% R' `% T! a3 ~
- duoi (member (assoc 75 tt) tt)
2 |/ [8 [, U8 i- `2 v - dau (reverse (member (assoc 91 tt) (reverse tt)))
' ?1 |5 W( d) ~1 X/ U - tt (append dau dt duoi)0 D0 C* r; @2 \, j( I& s) d
- tt (subst (cons 91 l) (assoc 91 tt) tt)
: A% K3 G5 q. n% N( v" t9 {" h - )( L. |. V$ K% [: J
- (entmod tt)
0 k1 ?3 Z$ ^ n8 y+ N( l2 x/ a% h
" Q9 e/ ~8 r6 w' i- (command ".erase" ss "")
4 }+ z9 \) \- q U - (princ)- }, J0 K* h2 i, k4 a. B
- )
& @# c( ?+ o7 i
7 E& S6 Y+ W6 G$ }- (defun getbdata (ent)
3 `6 [& X9 L8 X3 } - (setq tt (entget ent)/ s# f, o0 U) G7 S; c# V
- tt (cdr (member (assoc 75 tt) (reverse tt)))
# U# b2 O; i5 @9 X& F2 B8 M6 \ - tt (cdr (member (assoc 91 tt) (reverse tt)))
# h, Y+ R& M5 x6 I9 X - )% I1 g" Q- S3 `$ P
- )
. u% x9 x: J8 J% y
$ r2 l% l+ o2 z+ L- & P! o) X7 t; a2 V4 L) o
- (princ)
4 }- x+ P8 d% v- V - & H' c. s. ^/ R
- ;;; =========================== CAC LENH LAYER ==============================
1 C Y3 {1 Q2 Z2 C - ;;; =========================== Layer hien hanh =============================+ s- X! F9 H2 `5 n# W
- " I: R' D2 _, n) \
- (defun layset (/ LAY) (setvar "cmdecho" 0)6 T" x3 p! {6 N. F$ C0 b
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))% W9 B, W' F6 h, F o2 _+ Z9 c7 q
- (if LAY (progn % f- V. }/ y! G% E$ V6 p- _5 C
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))" Z% ]* q0 N5 [2 M9 f7 \
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )' s, ?' ~: e0 N! q( i7 [7 M& W# u
- (progn
$ Y0 l6 k9 U8 o - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
2 N$ G. h8 N# D Z - (progn
+ l- l! l9 ]7 q - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
/ p7 b. T4 B: a1 @, ~8 `. _. | - (defun c:LLL () (layset))(defun c:LAYSET () (layset)), _$ R# V0 N4 z& |
: T: ]+ b9 g9 R% [- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================6 B. f- A z% u
- 4 r# _, E& V+ b
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
) A2 d% T7 u! c1 d) C - (if (not (setq SS (ssget "i")))+ D" V6 O7 _; Y' l! k
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
]/ X" k$ q% `8 W4 \ - (setq SS (ssget)) ) )$ X& Y4 ~8 e* q+ D, k' `
- (if SS (progn
& M+ n2 {7 {0 K - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") 2 W! ~5 M, h* }; A" D% _
- (if (> (getvar "cmdactive") 0) ! o! P: [0 D* j; v3 V( L# A
- (progn8 r2 `4 _* r, N4 U
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
( ]+ x2 _6 h6 t - (setq SS nil) ) (if (> CNT 0) _) D" Q- `% M* x$ u8 K
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
9 O' {( z$ t0 Z0 y3 ]! x. ?& T - (if SS (progn
1 e9 S; y1 Z# ?$ r; _& C/ x - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")0 P/ n3 b6 l4 P/ e
- (if (= (sslength SS) 1)
$ L* ]' j4 z" {% i5 N - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
0 g, @1 p$ y$ o7 V% D& c$ p - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
8 D$ Y' f4 R9 i6 H2 [0 ^ - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
% w" c; y; v d. |8 z - 5 Y+ K L2 s4 y5 w( W& ]/ `. s/ h
- ;;; =========================== Layer Iso ===================================# ]* c5 U$ T/ V$ p& J
/ h$ f9 N9 ?/ w0 X) X- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0). ^' U9 ~6 ~4 V5 a8 S
- (if (not (setq SS (ssget "i"))) (progn
2 p6 a0 N& M3 A. I3 u" c - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")8 |6 N9 _/ |& l+ d& S
- (setq SS (ssget)) ) )
X! i7 Z( B3 h" u C - (if SS (progn (setq CNT 0)9 X$ u& t& t4 X* G4 k
- (while (setq LAY (ssname SS CNT))
" C* m) H0 t( S. g: C - (setq LAY (cdr (assoc 8 (entget LAY))))
! q% R" z& ?! ^ - (if (not (member LAY LAYLST))0 P0 U" Z" p, b4 R9 d2 {$ B D, C! E, u
- (setq LAYLST (cons LAY LAYLST)) )- E4 [9 A5 o# L0 Y" `
- (setq CNT (1+ CNT)) )
% a; \2 N, H' | r$ u3 Z9 P - (if (member (getvar "CLAYER") LAYLST)
/ I! d. ?# `! Y4 @( M+ K - (setq LAY (getvar "CLAYER"))' L, j9 s3 ]8 I2 n% g
- (setvar "CLAYER" (setq LAY (last LAYLST))) )8 M: H/ D" A+ O9 a! w
- (command "_.LAYER" "_OFF" "*" "_Y")8 d; |4 v" M$ E/ |
- (foreach VAL LAYLST (command "_ON" VAL))
, g2 R0 d. h3 z# d# v( p - (command "") (if (= (length LAYLST) 1): r: [ M' E% S) H `( ?+ \* w
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra.")); P& e0 \0 B" O
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "2 m+ l* s# p; J7 S x* q# S
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )/ s7 W1 w3 B$ g! B5 o! F* k
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))2 ]+ q6 ^ q' T/ W
- 3 z4 p) ^- J( u
- ;;; ========================= Layer Match ==================================
' w* l4 B* q& O4 p
) l* I& Z4 B' |; |- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)) ^& R. C. Y: @& d* ]1 }
- (setvar "cmdecho" 0)
4 N2 M5 U9 ?$ D - (if (not (setq SS (ssget "i"))) (progn
! ^5 E- ]! a% Y- w2 {' h5 k - (prompt "\nChon doi tuong muon thay doi Layer : ")% f g- {% Z! V- y1 u
- (setq SS (ssget)) ) )
5 \$ l7 }3 ~' b7 n& T7 E+ S1 Y - (if SS (progn
7 _' |0 L1 S' f4 S, _- _2 D - (setq CNT (sslength SS))
+ B8 t8 U/ I3 m g# l3 B - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") % e* L7 N/ S1 t, f$ G
- (if (> (getvar "cmdactive") 0) (progn; ~, v; q9 Y* w6 n4 D- U
- (command "0,0" "0,0") (setq SS (ssget "p")
% i. D* c" i1 V$ o D - CNT (- CNT (sslength SS)) ) )8 ^# [& C- h* C+ @
- (setq SS nil) ) (if (> CNT 0)
9 ]- g4 k* w/ e: h0 `+ T q - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) ). S) G3 l; A' S4 |6 [" p T
- (if SS (progn$ K8 S1 s! Y$ O
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
; `6 T! L4 L+ |0 P - (while LOOP (cond
4 |. K# q9 g2 f) n9 b* Q8 b - ((not LAY)7 q" U5 ?: X' j- q, x3 J
- (prompt "\nKhong chon doi tuong."): ~4 t i# _+ T- A: K3 t
- (prompt "\nSu dung layer hien hanh? <Y> ")
- o8 u7 d9 n! K9 G5 ^ - (setq ANS (strcase (getstring)))" o4 B# g$ k4 @4 v5 h
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))0 f1 O; Y9 Q" H, H( f$ M, F0 {$ o
- (setq LAY (getvar "clayer") LOOP nil ) ) )
2 ^( s i' ?( o8 S! ]" H - ((listp LAY) (setq LOOP nil) )) Y: D7 {$ a7 \( o
- ((= LAY "Ten")1 @* l7 p* y" K% F" z2 x+ \: z# ^
- (setq LAY (getstring "\n>Nhap ten layer: "))% K; j* {' b! d8 \' C* }- \
- (cond
5 j% H) p# K8 f9 Z5 a - ((tblsearch "LAYER" LAY) (setq LOOP nil) )% a. ` m+ c5 K6 j: C7 I( g6 V
- ((/= LAY "")! h: h6 o; [$ v+ E6 }# Q
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
: V, b f% p$ N9 F! [! ^* A! | - (setq ANS (strcase (getstring)))) f$ i* G+ V' V1 ?/ y3 b; C* Q
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))' i. p U: `$ o& b' V1 _
- (progn' Z$ P. H9 }) N. ?
- (command "_.LAYER" "NEW" LAY "")
6 o7 [2 `& _3 I/ s' Y0 R# x0 ^ - (setq LOOP nil) )2 g9 G$ d2 ]9 `0 l
- (prompt "\nLoi ten layer.") ) ) ) ) )
/ _$ t) g0 |, M) E s& x/ q* @) F - (if LOOP (progn (initget "Ten")4 ^: i" p, I3 L0 I- h- V# u0 P
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP; ^, r4 q4 S; ]
- (if (listp LAY)3 q0 O% I# S/ Q# @4 H/ T, ]! H ?2 d
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
) V! [, D8 B: G9 @5 m6 D - (command "_.chprop" SS "" "_la" LAY "")5 ^! k" p+ c$ g& p' B0 D
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
& ]; ]/ M5 T S% |# n, a2 Z - (if (= LAY (getvar "clayer"))
/ C9 T/ p3 k* V6 q1 Q - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )" a* z/ X% x* R
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))6 P" H {1 B3 |/ E2 L, K5 J
- & ^; X, F& F7 {; }& M
- ;;; ============================ Layer OFF =================================' s# b7 l- K) u& B8 H: `; g0 w
- , u7 i" j s/ K- |# s! c3 A
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)7 V5 i- j0 [* g& B
- (SETQ SSET (SSGET))0 [! o5 A+ l/ T6 |* ^$ R
- (IF (/= NIL SSET)
* U/ |+ k% w, @- O) j - (PROGN
7 V; P! q, G- } ]& v8 U - (SETQ SSL (SSLENGTH SSET))9 S3 B- |3 T) t* H
- (SETQ LAY "")
( ^ u+ X0 Y I( t6 ~* ^ - (SETQ I 0)1 S4 ]# i2 e) n% @. C( D4 H6 u
- (SETQ MODE 0) ; i _1 @1 I3 O% r1 }3 {1 X
- (WHILE (< I SSL)3 i- t% y6 l' B( o
- (SETQ ENT (ENTGET (SSNAME SSET I)))* v. P: [! g- P4 N) E" M1 n/ f i
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ), t) l7 G0 Z1 ]
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))" |* E9 D$ j; |; v$ B4 i
- (SETQ I (+ I 1))
0 Y0 x! \5 I, q0 F: K9 c+ o - ) B3 b( B0 h$ q1 Y/ p
- (COMMAND "LAYER" "OFF" LAY "")& A" L. d" y6 U0 }# z2 m. a! R0 l E2 z
- (IF (= MODE 1) (COMMAND "") )
: K9 O# p+ w2 X! Y# E - )
: V: E! G* \1 W- i2 F4 w- e - )
3 k( y/ G# q# L - (PRINC)0 K* s6 Q! C) t* }& ?
- ): Z# |" l# w" T ?* T# ^0 L
& }4 Q4 E B @" O. w- ;;; ================================ Layer ON ==============================2 S' ~+ S: h; v3 j; J
- : ?; B0 o g4 N( K( `- O5 E( s
- (Defun LAYON () (setvar "cmdecho" 0)
) s) }8 j _8 @8 ]& ]1 k3 M - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
) e( z& I; m' N& J; ~ - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
5 e3 T( A0 r. U- _; I - (defun c:LAYON () (layon)) (defun c:LOO () (layon))) ]9 J" m+ ?: L I2 D
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))" L4 A7 S; ~+ ^: _ B: F; p
- % k; ~: q9 x2 u: t1 b* [
- ;;; ============================== Layer Freeze ===========================& y$ p% n6 o. q. C9 ~: H2 G
- ( w$ l% F- M1 \4 ^
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
8 F0 \$ A6 m3 V; {" ]$ f - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))8 p5 x$ {9 ^* W+ P6 d3 ?# J7 S- L
- (IF (/= NIL SSET) (PROGN. ~) z6 o% I4 P* n6 y2 e
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
* R( ^) Y$ @# w - (WHILE (< I SSL)
0 Y! ?8 L8 q% S) t% J; n - (SETQ ENT (ENTGET (SSNAME SSET I)))8 F/ i, }; f) W1 I5 T3 O; r5 Y" S9 B
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )9 o" b$ [2 K$ g3 @" a2 W: C4 K
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1))): S; C, O) o0 n% L' x3 [8 }
- (COMMAND "LAYER" "FREEZE" LAY "")! D. j- Y+ p7 l. T" l
- (IF (= MODE 1) (COMMAND ""))))
. r" R& o/ E4 I, e( |) r- \; f* y - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)4 V/ r) F* R2 E' s
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )0 b( c& f+ {# i! S) ^. A
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))$ F" Y( h' O1 B, ^4 S/ k
8 [) D4 g4 n+ l! O7 i$ e$ }- ;;; ============================== Layer Thaw ===============================+ f- w; E& x% S+ ^( W0 `$ M0 H9 l
- D7 [, N5 @3 u9 i
- (Defun LAYTHW ()
& w3 W9 P2 y5 K! v - (setvar "cmdecho" 0)5 F& R7 g- w) K+ I
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")% s& E* N0 G- p2 S" G% r! g2 l) N! s
- (Command "_.LAYER" "_THAW" LAY "")5 ?- ] z( J/ V; O, U/ l/ a& |. j
- (princ (strcat "\n Layer : " LAY " da THAW."))
# e( C) A4 g0 D - (princ) )
6 x9 Z3 y- c) S: j, p - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))% t7 D Y8 u3 \, \& ~/ a& y9 x( n/ u
" c" A$ l! `4 {/ Z$ [- ;;; ============================== Layer Lock ==============================' n1 }$ e) P2 Z( k6 j1 [+ @
, H, H" W2 C# Z* X: T' b- (Defun LAYLCK (/ LAY)
S+ h* |! I8 c v: q. l( p7 `4 s - (setvar "cmdecho" 0)8 z9 g$ ?4 @9 B2 V8 [3 q
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))4 T2 c! P- W7 q0 z# S7 R) y
- (if LAY/ T* [1 M5 m; r9 g- k; C0 N
- (progn* C d! `0 {+ B; i
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
x' G: ~$ F% E - (Command "_.LAYER" "_LOCK" LAY "")
( i B" p7 @7 Z9 c( i& A- X" x - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
4 H# d1 @" Y9 b8 s" F% W - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))1 J2 H; o# b% g/ V8 p
- , I+ F. ]" [" ]) }2 |0 {5 W
- ;;; ============================== Layer UnLock ==============================
! X; [" C3 h0 H8 P6 m1 I - 0 H7 ?5 m; P# P5 ?
- (Defun LAYULK (/ LAY)
% [: w' _; m! |! N7 A6 C0 _. q - (setvar "cmdecho" 0)
' [6 v7 Z# s( g* L6 n( k4 P - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))3 @# \# s! T; E( |, G
- (if LAY( j% M* n7 ~$ k
- (progn
8 J0 g; b. e' D - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
% ~, [( _* T+ x - (Command "_.LAYER" "_UNLOCK" LAY "")
2 H2 F2 [! V! u* @8 q! `! S - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )8 o: [( M- r5 e0 k
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))2 {* W% P5 _4 S4 R g1 i
- - p7 [7 b, I* C8 N* ~
- ;;;===================== Delete all objects of Layer ========================
& U- B, @' K7 J9 X$ z, b2 E - ) p1 J3 b* J. p1 v5 I
- (defun DELAYER (/ ocmd L S) & S9 |7 }0 t* i5 V: a
- (setq ocmd (getvar "CMDECHO"))5 }( z3 |0 Y* Q4 Z0 m( K% b
- (setvar "CMDECHO" 0)
- O5 Z2 ~! t; q; N' @, M F* P - (setq L (strcase (getstring "\nLayer(s) to delete: ")))1 y9 {* G+ R5 z; p4 r/ N& p
- (setq S (ssget "X" (list (cons 8 L)))) % Z/ f8 F O8 z6 d
- (if S [. g) z* `0 b' {, W
- (command "ERASE" S "") * q% ]" W. o" a" i
- (princ "Layer empty or not a valid layer name.") ) 2 N/ f0 d7 \# Y" Z- Y0 a
- (setq S nil)
. r& Y3 Y7 D' A; V - (setvar "CMDECHO" ocmd) * `9 w0 S5 s4 ~3 @
- (princ) )
" Y' Y+ K- L& k- ^4 e; r( o - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))7 c- p* L! k3 s* J2 g8 `
# ~9 X& r3 V `4 o ^! H- ;;; ========================= HET CAC LENH LAYER ===========================
& z4 j: {& M) K7 Q8 f x - & ?6 l0 n5 L4 g* i
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
: h2 R% f. j/ K9 G - + E+ @5 b( p% z w; ?- ?# ^' K) Y# H
- (Defun C:EET ()% e9 V( M- y- v' v9 V s! d$ d
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0); V% a- v9 l$ }
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
3 Y# F; ~) P4 b( ~1 ~4 ~ - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS)) G6 `9 Z) } B
- (Setq I -1)" g) T4 [; i' s) D; W1 Z- M8 Z
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
1 U. I6 C0 B1 [0 Y, V' g' H8 ^% n - (Repeat LEN
1 a/ }5 l) ?+ z - (Setq I (1+ I))1 _/ ?$ q- h3 ^. r! U
- (Command (List(SSname SS I) SIDE)) ) (Command ""), d# l) D1 `: e0 ?& @5 j
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
7 Y; y+ ^4 o( Z, k+ V/ F& ~
3 q$ l" s% w) y- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
: L8 w& A* M4 Y
( n" x5 x% N2 K4 m" L( }% j- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)* Z8 Z# T: C% l6 [
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND ")) R( o: ^- h4 E* D( Z% j; |
- (setvar "osmode" os)
1 l2 E7 g1 j8 X# D( V - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
9 c/ B' @1 ]' u | - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))+ z$ w9 \" z, O0 X* k
- 4 f3 |6 T- Q; u1 N
- ;; ================ Change width of polylines =========================
2 I6 @+ l3 i3 m8 C2 N) k9 b3 S3 {
7 f% {. R( |% B- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
& [6 [6 d: k. n0 c - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") " K3 s/ V/ D% K
- (setq b (ssget))
( s6 L% I- V. j+ Y - (setq sophantu (sslength b))
0 c1 p3 O( j1 Y' c& k9 ~8 P - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
6 q9 A0 C2 A' ]3 y) K - (princ "\nDo rong polyline <")
* \6 C% ?- j! i7 \8 { - (princ ha:wid); g& M" g$ t7 g3 l( A' P& O
- (princ ">: ")$ I/ C O) c; X3 K( ?; v: R0 P
- (initget 4)& T4 l# j& {9 U6 R, U
- (setq ha:wid (getdist))3 d5 R/ l0 R3 Z
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
0 R) W) b4 V5 Y" w - (setvar "tracewid" ha:wid)
. Y9 V, Z% Z' M" F9 i8 m) K+ a - (setvar "cmdecho" 0)
, i5 \" m" w; m7 Z - (setq sodem 0)
! D5 k. F( s& q5 F F$ Y2 P! O - (repeat sophantu
: P$ k% R9 v" c4 z s5 `. k$ R - (setq a (ssname b sodem))$ C4 ?. b' g- e$ Z/ i/ d/ n
- (setq list1 (assoc 0 (entget a)))5 y S1 i% o; y; e$ W& G7 F C
- (cond
) A% m5 A9 B5 u5 V+ v - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid "")) r0 J S) n% R) s* [& X' U6 f) l
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
+ l/ |: m3 ~, ]8 @, X - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
4 a ]# l7 Q8 B' [* d! V0 f$ s - (defun c:wp () (wp)) (defun c:pw () (wp))
( r* p8 [8 i" Y3 u - 0 ?& x! s0 P0 S s% ]- M6 U
- ;; ================ Change radius of circles ==========================8 C2 T) S! U$ J% O/ q. p7 ]; n# C
- ( \7 j# _* J+ u4 N# w8 n6 C
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))- b8 {' P$ A8 }' y: l: p0 S% r
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))1 W% K. Y* E6 `* M- K2 y
- (IF (/= RD NIL) (PROGN (SETQ I 0)
9 h$ d+ z/ @# w0 V. O1 f - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )' j, j1 Q7 O# R4 F
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
! E4 v# u8 }+ g: n. O& V, N - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )) Y- ^4 C* L6 b% v5 |$ t" |3 H
( x- B; |8 R% n1 p1 v0 N- ;;; ============================== TEXT Hight ===============================
7 p6 ]& L* g( {1 w6 G - 0 c1 v0 g$ Y- B- J
- (defun texthght (/ ent hght)- |, n/ J' L1 n
- (setvar "cmdecho" 1)
' _+ f; l+ ~1 [2 i9 j4 f& B - (prompt (strcat"\nSelect text entity with required text height")) U% d9 X" h8 [+ \( C9 [
- (prompt (strcat"\n."))4 j) }8 J8 B0 N# m8 \
- (setq ent (entget (car (entsel))))% p" k+ u8 Y1 X
- (setq hght (cdr (assoc 40 ent)))
$ A6 w @2 |+ B - (prompt (strcat"\nText height now set at "))(prin1 hght)8 z0 d5 g2 e! u; f0 I; C, W7 d
- (prompt (strcat"\n."))
, X9 P& Z K: `* y' U5 {' P5 K2 Q - (setvar "cmdecho" 1)
* W7 N. [1 K9 s! {5 j/ I- |) c - (command "DTEXT" PAUSE hght "") ): p% ]( p, k* [
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))$ h5 K. m7 Q; u+ q$ h
: s2 |4 l' x6 k3 Z% Z; e0 K; T- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================0 Q& G$ {! {7 } N! ~
- 2 H' ]+ x5 ^0 ?5 B4 n* I
- (defun c:tuu () (setvar "cmdecho" 0)$ Z7 d" e. w" M* ~1 o3 Z
- (prompt "\nHay chon dong TEXT can gach chan "): l8 C" A' P+ Y7 D# X! e; q
- (prompt "\nSelect objects: ")! a7 x/ q5 n" O0 k+ [& `( c8 @6 I
- (command "select" "au" pause)
7 b3 f8 I$ U: r! v6 X3 N" a - (setq sstxt (ssget "p")! r( v' c6 f9 [6 v" N8 q' ~
- sslen (sslength sstxt)7 H2 @! \+ q- Z& }, q
- ctr 0 )
4 e% r" E. j8 a- [+ J* ] - (command ".undo" "mark")6 o) Q3 z9 i) b
- (while (< ctr sslen)
3 R9 w) S- L( `( E3 x! g; E - (setq listxt (entget (ssname sstxt ctr))9 O' F% C5 ?+ M& {; ^
- txttxt (cdr (assoc 1 listxt))2 R8 a _9 p- o1 m3 v. M
- enttxt (cdr (assoc 0 listxt)) )4 J+ }# m) V& F+ o3 c6 e3 u) L
- (if (= enttxt "TEXT")
4 r7 U4 d. g) g - (progn
. c0 A, T. j b- w% w - (setq testxt (substr txttxt 1 3))% }! B4 h" {# R% j% W$ [- l/ ~
- (if (or (= testxt "%%u") (= testxt "%%U"))- F7 B) s) t: L0 n9 W
- (setq newtxt (substr txttxt 4))
j) E0 y- o9 o: B( ~0 ] - (setq newtxt (strcat "%%u" txttxt)) ) C1 V1 a. F. I8 ^2 q
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))7 X8 R. h; j: K# ?. B, p
- (entmod listxt) ) )
l& w- l8 r6 W. w9 L - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))" R* N/ _3 U- f$ t" X* j$ G% [" J
; }' Z6 ~; j& b' e: N- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================* e/ z% y0 E h( G( c* p& L, y; Q8 O
- & _; Y& |4 i" B. u1 @* Q# M% }
- (defun c:tob () (setvar "cmdecho" 0)* j- u: R8 i8 C5 z& p( J4 k. R7 X
- (prompt "\nHay chon dong TEXT can gach tren dau "). Y% ~) W1 m* d' D/ w
- (prompt "\nSelect objects: ")1 k8 N4 G9 ^0 r) v: o
- (command "select" "au" pause)" t3 P0 S q, l @6 R& J% a( U5 X) _
- (setq sstxt (ssget "p"); ^$ Y4 K6 Y3 d) v
- sslen (sslength sstxt)
: L% j# ^6 H: u! L - ctr 0 )
& K% y, j, Q4 b: w - (command ".undo" "mark")# s* |: o8 D/ ^; ]
- (while (< ctr sslen)+ _6 {8 N( I4 W
- (setq listxt (entget (ssname sstxt ctr))( @* _! Y% \2 a, X) k
- txttxt (cdr (assoc 1 listxt))# L2 k- S4 z: h4 i9 m
- enttxt (cdr (assoc 0 listxt)) )6 B: H8 z8 I' q$ k3 E
- (if (= enttxt "TEXT")
$ Z/ s- E, A4 E, L3 l) f; F! S1 R1 w. H - (progn! {( F4 S6 E' h! W
- (setq testxt (substr txttxt 1 3))
# l1 E: p! I1 v$ k4 f# N - (if (or (= testxt "%%o") (= testxt "%%o"))
5 p. X3 c4 ?# ^1 m; I8 B3 a- K5 X. } - (setq newtxt (substr txttxt 4))) k4 f( d( ^8 }9 d$ J: l9 ~0 |1 {* ~/ e. y
- (setq newtxt (strcat "%%o" txttxt)) )
7 K7 }4 |2 [4 p2 F9 D- R4 ?' T+ ] - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
( N( S$ r* e4 j9 {( | - (entmod listxt) ) )1 l* ]3 D& K: n
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))$ F5 t& g2 o7 M# t7 d
% m I# ]0 S6 ?1 T- ;;; ========================== Tim & thay the TEXT ==========================
( B& a% Z4 C0 w8 j7 O& w6 z9 P
+ [$ R3 e- Q8 H- (defun frstring (str search replace / str1 str2 index find)
5 ~# |3 |4 w8 }0 N* k - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
# U* n1 R7 F1 ^; ^& N& `/ R - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))1 U6 @9 K; h1 L/ c! I
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))) t* N9 X0 a8 s9 f6 y& H7 o
- (defun hai (/ dial): s/ @! w# p" n* n
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog8 @. F. W9 P8 \: k1 t
- (if (not (new_dialog "find" Dial)) (exit)) ;;! p6 ^1 ]0 O2 c! T4 Z9 t/ I) U6 x: t
- (mode_tile "find" 2); Tao dau nhac tai hop thoai
/ T, X# o" x, J3 C( \2 |, n- b - (action_tile "find" "(hai1)")3 l* m: g Q! Z
- (action_tile "replace" "(hai2)")3 O1 @% U3 ?/ n8 x* G( m4 }5 N
- (action_tile "cancel" "(done_dialog) (exit)")
3 P( Z) c8 \8 c5 h - (start_dialog) + V' r3 y1 q9 e. T/ d
- (unload_dialog dial))
" Y& T: {6 i/ K" z7 ]: z/ w& L - (defun hai1 () (SETQ str1 (get_tile "find"))); {' s+ P z7 }- w
- (defun hai2 () (SETQ str2 (get_tile "replace")))2 w5 D9 t% o3 o5 B( j- p* }4 n
- 9 C4 i# ]' d7 {$ c$ x0 Y3 h/ ], A
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)$ ]0 u# S3 n8 d% o
- (hai); C0 S, C( ]. n L
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")# D3 F8 A+ b% ]9 z
- (progn
\8 c* g9 A# P& E0 d% w - (setq taphop (ssget '((0 . "TEXT"))))
6 o/ L3 s+ Q2 n - (setq sodem 0)" G: Y( q% D7 f+ Z) ?
- (if taphop
8 h+ U+ E; y$ C3 K - (progn5 X0 @& `6 ^" l" c
- (Repeat (sslength taphop)
/ f+ A7 j2 G: Q" p9 ^3 E% U - (setq a (entget (ssname taphop sodem)))) R6 _1 L5 l; y9 {+ q
- (setq str (cdr (assoc 1 a)))
& x4 O) t7 S* q9 J! _ - (setq newstr (frstring str str1 str2)), K5 M: y+ p4 H/ X3 V' I3 I
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))+ P5 T2 G! f: O6 q& _
- (entmod a)
/ n: ^5 W/ e4 o- ` - (setq sodem (1+ sodem)) ) )
/ Y j% s: c" A; E1 u - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))4 Q9 @- I5 f' p5 P, _. ~0 }0 F
- . s1 ^; k' E. c
- ;;;============================= CHTEXSTY.LSP =============================* N# ^0 U/ W2 y: M
/ W K( a: ^6 Q# J- ]+ i+ b2 @6 h- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
1 N* b( D! J y% K2 N' U - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
" w! z/ n& s ^7 i - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
& t' {/ G5 D. i8 v9 r7 t1 g( v - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))$ V5 H0 ?* h% i" I" X
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))) I. q* X$ _2 q2 d/ r
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))# v2 p7 X0 U6 k. c `/ F
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
o# x" j6 W) R P. f) k - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
5 x. s" N- W% S0 l* S, P* } - (Initget 1) (Setq A (Strcase (Getstring
7 u# p- n0 |, M - "\nEnter text style to change: "))) (Initget 1)! |' T# f' E) G9 K: k
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
8 C0 v3 n9 k/ X8 ^ - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If% _! {( i$ T# j- {' E2 T* F
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
h' ?3 a" {: m+ {; Y+ X5 u& \' w& {1 k - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))/ L ~% b! E8 i( h
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))' [. M/ U4 D& p. ^
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
J" X$ |7 h4 S5 D2 n' V5 r+ w, v
! `# m+ ~& i. W! z# x, D- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))2 H' z5 [/ y% s& v. R! ]1 U7 E
- (Setq J (Cdr (Assoc 50 A))))& c p: u9 S( c
- ' m |# h7 I* Z: F, {- d
- ;;; ============================ DRAW CLOUD =============================: a3 c, v5 k1 {
- 2 f4 M; A4 [+ X' X
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)7 Q: s1 U# q! a
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
7 o0 w- ~9 s9 }5 W3 ? - (setq la (getvar "clayer"))
! ?% K/ x# b1 A1 ?! G2 a8 v - (command "layer" "m" "cloud" "c" "5" "" "")0 r+ Q& C; F" Z. z$ @
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
2 ^* J$ K& h2 c$ N4 d* ^ - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))5 Q9 G0 X- t& ^! e) h) v
- (setq cnt 1 ss (ssadd))
3 B. Y9 s: g) B! E( x - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))/ I: o* u- J1 W7 |+ ]
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75)) G7 p+ |; a7 |+ x
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
# {+ S7 _# T0 I# {- n: v- P - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)- g* o7 [" R% [" S
- (command "pedit" arc1 "y" "j" ss "" "x")# @$ M- f; u; ~# L
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
3 |( j- B0 F( H+ L' X3 y1 P& C - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) , Y3 T# |! u; `2 o; S) M
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))* Y. n- O# H' o; h5 D
- ) G/ w1 F5 [- l4 C2 ~
- ;;; ================================ Funtion-Dulieu ========================
# D: x" Z; Y" j4 { - ;;; ================================ Funtion-Dulieu ========================
" S F( g$ |6 m3 d8 z - ;;; ================================ Funtion-Dulieu ========================
% F$ W8 r- s# y! [7 D
6 F- s& N, ]- [3 ~. i- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
3 q; [0 |, d- j+ N V7 z9 Y - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))& P7 J9 q; Q/ C
- (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))+ V) [) m7 \0 C4 r: D1 k
- (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) )$ O2 s3 h# r0 u
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
6 H p6 M4 i( B" W - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))- l, i2 x0 r$ m9 Z: f5 w: D+ f
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))- q5 x, h1 S) x4 U# k8 N; u
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2))); Z; I" e) `3 ~1 Y) F }
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong)))). S+ P/ g a; S. P! u. D1 t
- (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)))
' i) w& ^- U3 ^) E2 B - (defun dtr (dtr) (* pi (/ dtr 180.0)))2 B4 g' t- q0 R* [
- (defun rtd (rtd) (* 180.0 (/ rtd pi))): m3 X. }* ~! W$ o5 h5 C' e
9 X' l. b7 M( ~7 r& X- ;;;==============================PROGRAME===============================
2 l$ H0 s7 K. [ q) m { - ;;;=====================EditDiM Hien Hop Thoai Dep======================4 c; w" K5 j) ~2 B2 j5 y; h+ Z
- ;;;==============================PROGRAME===============================
V6 \) O5 E$ _5 Q8 U
2 q, s. f2 q5 E @ h/ E- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh); A, m( T5 j, a0 u1 R3 G8 i
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl/ M" T. N& [' k8 H% H7 S
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)* A2 b. b5 N& J2 p6 g0 n) R
- (Setq Oldlis (Entget (Car Chon))4 v3 ?* K; S' }3 m$ Y6 F
- Pt10 (Cdr (Assoc 10 Oldlis))0 V, m3 \9 @2 h
- Pt13 (Cdr (Assoc 13 Oldlis))/ K* o) E, q$ Z& ~) t
- Pt14 (Cdr (Assoc 14 Oldlis))2 y [" ~9 ~ u) X n% l# o
- St (Cdr (Assoc 70 Oldlis))
. Y: ]+ u$ r) d! M" c, l* R' z S - Dimdefault (Cdr (Assoc 1 Oldlis))
1 A' q$ e- @4 w7 X% y0 x - )
) _; q, x" `8 ^4 c% Z3 j# [, h - (Cond( [+ ~4 X3 P, x; Z1 k
- ((Or (= 32 St)(= 0 St)(= 160 St))1 U/ O, o+ x2 A6 h0 w* k
- (Progn
! r- L' e; [8 [$ R7 t: g* l2 O' R - (Setq Ang (Cdr (Assoc 50 Oldlis))
2 e' }( D5 I" G7 I9 W8 L: @, _ - Pt (Polar Pt13 Ang 500)
1 U ]5 W' `1 w J: R) S' `! m - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
' J/ ]! I+ n) I - Dis (Rtos (Distance Pt13 Hc))
6 F! s# b" q9 b2 a - ), }& x, {1 I' r4 _5 m, Z
- )
- X- r. z) l0 r9 \ - )
* T, A- D' W4 _* W: J% A, a4 j - ((Or (= 33 St)(= 1 St))9 }! G7 a" l6 D/ @" C
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
, ~: r9 m9 f2 R1 [8 O' I3 E( o - );;End Cond
; V0 h) k h, {4 U+ z - (If (= Dimdefault "") (Setq Dimdefault "<>"))
z6 a* A8 T/ ^( F$ Z - (Setq Dial (Load_Dialog "Hai.Dcl"))
) E: t8 K1 |7 [! ~3 D' m - (If (Not (New_Dialog "eddim" Dial)) (Exit))
! O5 W( q* K7 Y: ~ - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))6 y8 h2 Q* ~1 n1 a$ c2 L8 c
- (Set_Tile "text" Dis))
1 I2 p# j# w- | - (Set_Tile "ha:edim" Dimdefault)
; _ Y+ U2 L, U0 Y7 u t - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
) s% n- d( i3 o6 t$ W' ~3 o) H - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
' \2 K+ H7 C2 z% v - (Setq State (Start_Dialog))(Unload_Dialog Dial)
' c# j3 m' M5 H; |- d8 X% q5 r - (If (And Str (= 3 State)): Q7 Q, U% l. g5 W
- (Progn
5 p8 J( K* y" b9 Y - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))& E0 W) q5 [* D! q
- ) [; f$ s- }4 `/ p. [5 a* q6 Z
- (Defun C:EH (/ Chon Name )( O% E( i" \& j% P; p8 F' \
- (Defun *Error* (Msg)$ W! C- c* \+ j F p
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
$ T- G! v, K5 F% v7 T - (Start_Dialog)(Unload_Dialog Dial)7 y: C; B" d) i& j
- (Setq *Error* Olderr)(Princ)
$ |7 ^4 I6 g: V3 f - )
- |. R, {0 [7 @4 E- t - (Setq Olderr *Error*)% R/ }6 A( L' p8 h- S
- (Setq Chon T)
( d4 ], e3 y f- y8 M - (While Chon5 }' [6 p$ T: ]8 v
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))8 k. Z6 c+ f+ |1 k9 _, D$ ]2 _4 O0 b
- (If Chon
$ X J. t! G" j: t& X) L - (Progn* C- g3 w2 V2 D% [, ]" H
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
9 U& o j( E) s# k" {- Z* i8 K - (Cond
4 w/ x4 ~& }5 \$ { - ((= Name "INSERT")(Command "Ddatte" Chon))
8 U2 K. }$ b2 G, h) F4 L7 z- ? - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))& R. i8 B6 q( [9 A
- ((= Name "DIMENSION") (Hai_Edim Chon))# Z1 i$ y8 c9 m
- ), L! o7 n8 H. \' b
- );End Cond
# o; R% v4 j$ [% S2 m* e4 j0 l - );End Progn7 l* _. G z$ [. j A
- );End While
0 H1 X/ S `' L7 @% h - (Setq Olderr *Error*)(Princ)5 Z' s Q O8 M/ H
- );End Program
_7 o% i; V8 N" O2 z$ ` ?8 v, d8 A4 n4 |
% ]0 ]7 ]+ `3 R. N9 R' v3 ]- ;;;====================DDeditDim=====================9 e6 t) o- j) U3 |
- ;;;=====================Hai.DCL======================2 b% g1 K; w" ]' M% \: u- q
- ;;;====================DDeditDim=====================
, J5 e, N$ S: X9 t/ N$ H' o - 1 ^7 u% [4 V4 J% b1 }' Q
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)0 }6 f, `; x+ m0 ~& y' g
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
! ^" B3 s5 M& u% g/ K. P - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
% }% c ]& L. i - (Setq Oldlis (Entget (Car Chon)): ?. l" v% h! A. I* x' S
- Pt10 (Cdr (Assoc 10 Oldlis)); u {1 O$ M. X- V
- Pt13 (Cdr (Assoc 13 Oldlis)): R! M. J/ r; F6 a% ?2 }
- Pt14 (Cdr (Assoc 14 Oldlis))8 L" F# o; {2 B4 R N4 O
- St (Cdr (Assoc 70 Oldlis))
}/ H I8 B* H8 \; C4 B: b; ` - Dimdefault (Cdr (Assoc 1 Oldlis)) P- y' S6 V0 H! `, s
- )5 `$ h: y- B. F
- (Cond
7 @- {; {4 q6 F% H- T4 j& i& W - ((Or (= 32 St)(= 0 St)(= 160 St))
) V7 C2 H- m( L9 q3 T - (Progn' Y6 U! ^, h( y5 C- E- o1 |
- (Setq Ang (Cdr (Assoc 50 Oldlis))
- k+ q# {* [* ^ - Pt (Polar Pt13 Ang 500)# _; s$ k- m7 {/ L5 b- B
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
7 ]2 `5 x* z8 k; v' k* \0 q - Dis (Rtos (Distance Pt13 Hc))
1 g0 y. o" E, S7 B, z1 o - )1 a" T: q7 }7 q) h
- )3 P; D/ v- I* d1 ~
- )' W4 @% }4 t; Z8 L$ B- O
- ((Or (= 33 St)(= 1 St))" u3 [+ ?( l ^- X# C4 u2 d
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))0 \+ W# x2 A2 e" A! _' l
- );;End Cond
e2 Y8 b* _' y1 h - (If (= Dimdefault "") (Setq Dimdefault "<>"))
) U$ e9 w+ b8 h/ t - (Setq Dial (Load_Dialog "Hai.Dcl"))2 I/ s ?, `$ Y2 K2 S2 w
- (If (Not (New_Dialog "eddim" Dial)) (Exit))/ b! d" Y: U/ P; e( u* E! S
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))) F* P; u$ k5 z
- (Set_Tile "text" Dis))
a; ?% o6 H9 W- \' ~3 B- ` - (Set_Tile "ha:edim" Dimdefault)! y. y, J4 k: n5 f* [
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai% Y4 G" Z% ~# m- g
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
1 f3 c; f( y# g" a; m9 u9 h8 _ - (Setq State (Start_Dialog))(Unload_Dialog Dial), |6 Z" w: d7 W4 E; t) {0 d! H( H
- (If (And Str (= 3 State))
, ?' |, p \+ R: g! s8 O! r V - (Progn+ \/ l% H& C& m- S
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
n( d* m1 q, V; j$ D - )* a3 _ e% g# S7 ]7 L
- (Defun C:EH (/ Chon Name )" z0 D4 P9 D/ N. P
+ g, u6 Y5 q* z* E, ~4 m% T- ;;;********************Du Lieu********************
$ {% t2 c( g; X# _1 L, N - ) C- s0 G" Y$ V' F
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))9 M6 O' L' a* j. l; J* ` R J$ z
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)1 c5 R; |9 E5 A7 m# c' Z
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
( B; m$ W9 H/ G" ~ - (Progn+ ?" a0 d4 U; G, o! X4 p6 t
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))8 u6 c! a3 _& V
- (Setq Chon (Ssget Hacat3))* k/ k! n6 \3 d: r, x: b7 i3 Z6 F2 G0 X" @
- (Command "Break" Chon Hacat1 Hacat2)
8 w A& H' O" U# x - )) `; ~/ E$ V% H& H8 j/ Y; }1 g
- )2 f4 E* ?& N' P
- (Princ)
$ S6 T/ ]) n/ |" `6 c, J - )3 w5 W* g2 f- s4 v
- ;;9 s& u4 K* O# a- b
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2)): ]7 r9 Q$ r/ C% Q* |
- ;;
! {, p" w9 S# |& X0 b5 C" \% p) i - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))& M( M# m/ q6 W. Y
- ;;0 ?# R5 s+ d. ~
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
! f6 `+ G3 N: W& h; }& p - ;;
+ v2 W ?; J& V5 r - (Defun Reinit ()(Setvar "Cmdecho" 1)); \- u" ~) c, G
- ;;8 K0 J3 h5 f, r8 b) n" P1 w' }4 b
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
# a( U& `* @8 V' S1 } - ;;
' L& x" f. [" a2 \/ t - ;;Cho 2 Diem Tinh Ra Vec To Phap ] e9 n0 V# N- [9 }
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))9 ]! L- D. d1 _- M' e' }! p/ B7 X
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang# F6 G5 `; C4 i; W. A( @# ~ H4 \
- ;;Da Biet 2 Diem Thuoc Duong Thang! ?( D* F- G1 l6 K0 x+ C% f6 F
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
a& d* o1 }! V7 e+ ]9 c6 J! C - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
* f) g# |6 u0 I7 b - Hc (Inters P1 P2 Dc1 Dc2 Nil)))+ E4 y7 v7 f6 O3 P1 ?) i
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
" [, f5 M: {3 F3 \$ i( w' [0 U# z! A - ;;Da Biet 2 Diem Thuoc Duong Thang
+ @8 U! |( A; D$ ]0 W/ W - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)2 Z! y, ^; |3 m( v+ E( p* \
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)9 [+ W* t# y# P, n' {) G" q% V% \
- Hc (Inters P1 P2 Dc1 Dc2 Nil))
- t6 |; ], w# J# M - (Distance Dc1 Hc)
7 Q/ i V4 a) Q5 F S5 R - )
7 v$ J, g2 G M - (load "nhapcua.lsp")# O9 `! j" U$ F! D7 \
- (Defun *Error* (Msg)
m k, G1 a4 I - (Princ "\nerror: ")(Princ Msg)(Princ " ")( ]) f8 T5 ?) w. g* z9 Y% B
- (Start_Dialog)(Unload_Dialog Dial)% Y, @3 q% T' _! U
- (Setq *Error* Olderr)(Princ)- W* x5 Z7 M+ z, G. Y: E
- ). A( E4 L' O1 Z4 \, K3 ~
- (Setq Olderr *Error*)
. ^# G8 P" a! P' w$ Y - (Setq Chon T), W9 L/ H& M9 w% \& ^8 {9 T1 F
- (While Chon. |: V% w2 ~$ b! ^; ?5 c( {$ P
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit...")); X7 k7 W1 E( N3 _4 O7 h
- (If Chon0 ~" A, I& K( p
- (Progn& F/ i* ^) C% z4 a( _7 ]9 N
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))+ q$ }% O2 t6 ~/ n+ y9 z
- (Cond
, p2 @# L5 E/ e0 y+ }, h: ?, S - ((= Name "INSERT")(Command "Ddatte" Chon))
6 P0 R( ] l& T7 j - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))' G$ f6 s5 Z$ c3 {: l8 K; B
- ((= Name "DIMENSION") (Hai_Edim Chon))
. V# ?; g: e) m, |/ ?$ ^, v B - )& R. F1 u2 W. G6 `4 H$ a
- );End Cond6 {( W, M3 x) o$ {+ p
- );End Progn
2 e, I3 e/ @/ b - );End While$ }! n7 x2 s1 C: i% Q b
- (Setq Olderr *Error*)(Princ)9 |/ R0 j8 b: D9 q
- );End Program
: n- W! e* m& b# H - % E" c0 s6 H' w, F2 D( j5 `
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
6 ]) e' T: ~6 i - ;====================================Nhapcua.LSP====================================; Z: A- J# t1 k9 p' {% B7 W$ D0 b
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================+ |- @2 [5 W% e( A. I
- % J4 {3 z; g- a0 n W# Z
- 4 r# c' K' }" @. ]
# g+ c7 S3 d1 W- ;*******************;*******************;*******************;*******************1 m" i0 R/ ]& [! b6 _8 K% p0 Y
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****: G5 J" o. s$ H* ]9 Y
- ;*******************;*******************;*******************;*******************
& d. {% ~8 u4 x* Z - ! o+ J1 f1 g: X @, A( a
- ;VE HINH BINH HANH# }- X H0 t) h( I
+ m. @8 U* e5 d. |- (defun c:binhhanh (/ p1 p2 p3)
: T2 L4 b% S3 M: D% i8 } - (setq p1 (getpoint "\n Nhap diem thu nhat:"))
+ v8 p0 R$ I$ b5 Q - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))( Y3 z; h4 z+ y
- (setq om (getvar "osmode"))
/ ^4 c' l3 F. o$ J - (setvar "osmode" 0)
) d2 w0 @2 C2 b; ^: o( Y" g - (command "line" p1 p2 "")) O& ?: u. G4 U, B5 [
- (setvar "osmode" om)
/ R+ M, S& B/ w/ W8 y - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
$ O3 C) A8 M x4 D - (setq a (angle p2 p1))
* `+ o1 `7 ]' V5 j! i: V6 O - (setq d (distance p1 p2))
/ \8 O( v' e, w) d - (setq p4 (polar p3 a d))
2 R3 Q) a6 x# y3 w7 a - (command "OSNAP" "none")
$ S2 k8 O C W - (command "erase" "l" "")3 l1 b( _9 K5 J6 F- H* L
- (command "pline" p1 p2 p3 p4 p1 ""). q5 H$ Z+ K! ]+ r
- (setvar "osmode" om)
& Y2 X3 h+ g( [ X; N8 L - ). j9 m7 t* d) L. j9 i& m
- " i$ u# h2 D" o; |, c! N" B
- ;VE LUOI COT0 G' N" f$ q$ T" j9 K& C' [
8 o/ R1 o; Q `- (defun c:LuoiCot ()
' `! ~) g) u- Z; H# ^& h4 L: K/ e! H - (setq om (getvar "osmode"))6 N4 H4 V2 f; v* G I
- (setvar "osmode" 0)
8 U$ h6 K- D( l: j2 i2 Y. c2 V - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))& T5 U8 g! M5 \1 f+ A6 |$ y
- (setq p0 (getpoint "\n Chon Basic Point:"))9 v% \2 G: K( L8 ~* N3 M
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
% O1 j! G0 ~* W - (setq dc (getreal "\n Nhap chieu doc cua cot : "))
0 Y& J1 @! p& C5 q) @3 ?- k - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
9 O+ O% B+ U0 Q/ C: {. n - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
* U* m: J) e/ R7 c" x$ x - (command "rectang" p1 p2)
2 M( r$ S9 u$ V3 O" s$ ~+ w3 } - (command "hatch" "solid" "l" "")3 }" I; P# Y# j
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
9 I6 o( V4 l7 Y# ~& c - (setq nn (getint "\n So buoc cot phuong ngang : "))3 ~' z2 G L# O E' o7 N$ t: s
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )0 X) k8 D8 q: q0 b# Q0 x5 m& K
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )' P9 ~; W( I* _* b
- (command "select" "w" w1 w2 ""); P# q( B) E& [4 v7 |7 \3 m
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )$ @3 c! H! `# h, ^/ `
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
, Q" q3 h9 w' b* i5 J3 l0 C- f$ I- r7 d - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
( K4 F8 j4 b4 C! X4 H7 e - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
$ r4 m* ^8 ^9 w) s+ C7 v - (command "zoom" "w" w1 w2)( [% ~8 i! e, |5 @; F" A
- (command "select" "w" w1 w2 "")
9 w8 |! X5 o5 a. a - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))1 i3 C: L! T2 w! }
- (setq nd (getint "\n So buoc cot phuong doc : "))
- Y* V$ ]* T+ }* ^; p |$ Y% q - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )6 w W: s( b, P6 s
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")8 g3 \' V# X& n/ W1 [
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
: Q# m( h5 _+ v2 P" b - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) 0 R/ a# H9 F( `
- (command "zoom" "w" w1 w2)
; p1 c9 C5 T( M+ n% f5 x - (setvar "osmode" om)$ s/ z, s$ o3 Q9 Z, R$ W
- )5 y# e* ` k" c" @6 G7 u
6 V/ e k$ _/ a! V) o- ;VE CUA DI! r+ ]5 e5 E5 P6 q
* |, o$ X9 d' R- j- |7 Q ~- (defun c:cuadi () x& f* c6 b# }1 q8 I# L
- (setq om (getvar "osmode"))' F- P- Q3 C6 E @ m
- (setvar "osmode" 0)- Z# C% @0 A( R9 D9 Z
2 J9 {7 Q# w n2 N- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
5 s# L5 K! X9 J4 o2 R - (setq b (getreal "\n Nhap be rong cua : "))5 N- e7 w! `& u. g* o
- (setvar "osmode" om)5 p& d6 _" k0 [- E) r- L$ a* Z
- (while (< 0 1)& l5 G5 Q7 {/ X, l, H8 e( r
- (progn
4 f7 }/ P- E& _. v/ r7 m - (setq p0 (getpoint "\n Chon Basic Point:")): w8 ~: A& M- {: i N
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
2 Y" G4 X' H7 u# i8 K* \( \ - (command "osnap" "none"): x* N1 B, ~* p& m2 e
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))1 L+ {! n: B- b9 T
- (setq a1 (angle p0 p1))- |3 x2 x8 o6 B. ~* H2 K
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))* [ F" ?" m8 Q! e( T! g! P
- (setq a2 (angle p0 p2))
8 ^% [; F! J6 k6 u - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
* o0 [" b% Y4 t$ i) Z - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
E5 ~4 T; Z: a0 V& |5 ? - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
+ O' C/ O/ H- d. n/ J8 m - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) 5 M) g4 U6 G' D; U. P; d: r
- (setvar "osmode" om)
! [2 P" P* p& x2 A5 Y% H% \3 z/ J6 U - ))
# E% H' V9 {0 c) B2 n8 j e2 t - ) q' F$ H" ^3 p. D0 X
- & q& }! W- J8 n9 t9 m3 _
- ;VE CUA SO; ^1 q% V3 A5 G! X) [( z) G
3 ]" B l4 r/ U1 G- (defun c:cuaso ()$ R% o- U8 b" v, ~3 v) g1 @1 o
- (setq om (getvar "osmode"))
2 L3 x. B$ i* u$ s5 r/ } e - (setvar "osmode" 0)7 w* J0 J7 i; C; t+ h; m. Y8 N
- / W) \) _$ S1 W8 {
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
; l' N6 O9 B7 N/ m c$ K - (setvar "osmode" om)* c4 V% a# j& g- [: F) N/ w G' [
- (while (< 0 1)
6 I3 e1 b& ]0 f; e3 P7 b - (progn
5 M" O9 f, O7 X- j+ `& Q& f - (setq p0 (getpoint "\n Chon Basic Point:"))
8 k$ r+ g: O5 U - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))# C8 z$ U L& E2 ]$ H, i
- (command "osnap" "none")
7 s9 B" b: U7 O% s g% w - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))9 M; F i( t' n n2 o" U4 M5 O
- (setq b (distance p0 p1))
! N4 o7 l* e, E5 c8 V5 O9 k) i - (if (< b (/ (* hstl 600) tile)) (setq du 50)): X0 y) w: A" L X- L }
- (if (> b (/ (* hstl 600) tile)) (setq du 150))1 f: r, d" N3 C1 }& C2 G" F
- (if (> b (/ (* hstl 1800) tile)) (setq du 200)) j3 T: \% q& j6 u; v! M5 O/ G
- (setq a1 (angle p0 p1)). B) O8 @, m1 s) b/ `4 l a; y- o
- (setq a2 (angle p0 p2))
( W+ Q! Q' I3 J6 \# c) k9 ^6 r - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
$ V% B9 m. r6 s2 } - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )3 I" I" ]9 b/ t
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )& g- x$ X5 v4 v" B1 [4 K) [
- (command "pline" p0 "w" "0" "0" p1 "")
C# u, L# n- w: J/ x - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")7 ~" i: O5 F" z$ T
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")! [' }5 W# K2 W* D& w
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) ( F+ ~7 o- p- {+ k/ {* k" x
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
0 P/ c; q- O0 F4 j) s# v8 @3 Q - (setvar "osmode" om)- D* Q* M0 n. _- i. q
- ))
# Y& R$ C1 N8 ? Z: Q9 R - )
6 r4 o( t* m/ h& f7 H; v
! E+ n0 Y5 P+ L# Y" c" P3 O9 R- ;;;=== General Utility Functions ===. }6 v& p4 |3 v/ A# P
- # u& W, j% V' c/ c& f7 i
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined % r+ D6 E' h0 h8 t* Q) H- K
- ; ADS function. Now it's a simple AutoLISP function that calls the - P8 j! ~% q' F$ |$ B
- ; built-in function (help). It's only purpose is R12 compatibility. 0 ?- P" b- |2 @
- ; If you are calling it for anything else, you should almost certainly ! ~0 R3 C; \/ w
- ; be calling (help) instead.
' I" r1 f5 R0 E( o- d - 0 Q2 o ]$ v# q$ t& Z5 j1 B: _) Q( Q
- (defun acad_helpdlg (helpfile topic)4 H" J7 P4 J7 H: d5 `. v v
- (help helpfile topic)
/ M+ q9 I9 B' p h% M; E - )9 i$ x4 u" g9 m% g6 q7 }2 |4 ]. o
$ f0 V0 k+ ^7 X# o+ q6 A8 ?$ L2 u- - b# ?" h7 E2 T5 h$ Z6 F4 N( ~2 ~
- (defun *merr* (msg)2 I; F! j7 `. w$ F
- (setq *error* m:err m:err nil)% K3 |3 ~+ b8 W5 {2 m4 H
- (princ)! @+ m- x G4 N; \% o
- )
! n3 V1 B' v# b: q* h
+ R# b1 E1 L! t' o- (defun *merrmsg* (msg)6 J: Q1 b! X8 U
- (princ msg)
% I/ J5 H/ C7 ] - (setq *error* m:err m:err nil)- t+ c7 f; y9 S. _% y6 o/ X
- (princ)
5 D d7 G- A* g# ?8 z - )1 B5 K! ]" u Z0 b
- : P+ _0 J: _, s2 B, e! p- B Q0 x
- ;; Loads the indicated ARX app if it isn't already loaded1 Y! |7 U7 Q# \" c: C* t0 e, p) s3 A
- ;; returns nil if no load was necessary, else returns the& g0 j) y. N% u
- ;; app name if a load occurred.2 W3 c$ X: N5 S5 r) L2 k
- (defun verify_arxapp_loaded (app)
# x) c- U n% y" K8 Z/ {# S' D - (if (not (loadedp app (arx)))) _" C/ ^ S: E* E8 u
- (arxload app f)# \6 T) }6 O% }* j
- )/ d3 Y* i6 }* p( [
- )
n3 } j$ q+ `* j$ k3 f% y0 C3 @0 P/ \
% p A% n& d N. I/ T! r* |+ A; h; m- ;; determines if a given application is loaded...
1 s9 A: z4 |4 E F6 o9 r - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....; d" m; `* u/ d$ t4 S* _# T
- ;;( N6 r$ G$ Q0 x
- ;; app is the filename of the application to check (extension is required)
# {- ~8 I4 I: C! P2 Q - ;; appset is a list of applications, (such as (arx) or (ads)
; u, v6 E b: ?- A: D: Y* _ - ;; ' f0 q; B+ p* F
- ;; returns T or nil, depending on whether app is present in the appset; B* e" ?) a- W, K( x ^
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
9 O ^1 O9 Q* R5 \ - ;; Also, if appset contains members that contain paths, app will right-match
# }$ e, `; y- g- ^4 \ - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
5 ]& P0 k% W: @% X% d/ J$ d - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
5 ]; @8 f$ d- q - (defun loadedp (app appset)* x) P( r! n/ x" @, u
- (cond (appset (or
' ]% B% K- z' M# v0 O. V6 c/ U - ;; exactly equal? (ignoring case)
' g- I! F/ J O' }& N) ?: X - (= (strcase (car appset))4 h* f1 l: t7 u+ E6 x
- (strcase app)): H$ e) o; J* F, l0 L
- ;; right-matching? (ignoring case, but assuming that5 i* f5 v4 M. a) i( O
- ;; it's a complete filename (with a backslash before it)
" y2 O6 J7 }' z2 l - (and
' K0 `! c, a0 g% r/ H& ^ - (> (strlen (car appset)) (strlen app))7 q! I4 O$ t. g* Y3 C: Y2 K
- (= (strcase (substr (car appset)
7 h" A1 \* f* Y ?$ O; M9 P) ^ - (- (strlen (car appset))
+ b7 }3 ?) h0 C6 B% h - (strlen app)
& Q. V& O: ?3 M7 Q, t) v! C5 r - ) 6 _" s8 F; g6 ~( v" O+ r% ~& ^
- )4 Q) [0 z' R2 ]: L
- )
3 F1 s* p! o0 Z' B$ V8 H2 k - (strcase (strcat "\\" app))& p: j: a8 Y% H. }- _8 @" G7 g
- )
7 { w7 J' V5 ?+ i, B - ). J/ X, Z _3 z- o9 a
- ;; no match for this entry in appset, try next one...." x' x1 P2 c- w9 I' h5 w1 S0 L
- (loadedp app (cdr appset)) )))
& s7 Y' k# U' @1 b - )
2 `' {' m6 K" n/ Y8 ]" y
# u+ I. a1 I0 j- ( g& J* J3 a- k( m
- ;;; ===== Single-line MText editor =====
5 |% G9 M0 _- `/ y }6 R i- C - (defun LispEd (contents / fname dcl state)
3 R- O& ?9 {' w" k8 X# r - (if (not (setq fname (getvar "program")))
; F1 v" v$ s6 w- W - (setq fname "acad")
$ n* M, p7 x" L) x; `( l - )
1 t5 U0 S% S* B3 f3 l* E2 i - (strcat fname ".dcl")
) x! n' o2 B, C: d - (setq dcl (load_dialog fname))8 r" ^2 Y4 Z8 _ T" W
- (if (not (new_dialog "LispEd" dcl)) (exit))
+ y; y. O v" j- \/ ^% h - (set_tile "contents" contents)' q# H6 m$ _. m( p, H, F. v: I& ~
- (mode_tile "contents" 2)
3 e0 Q: a( i3 i: a - (action_tile "contents" "(setq contents $value)")& B6 {" D) L. f0 u0 _7 ^
- (action_tile "accept" "(done_dialog 1)")
z. _" J6 B# h" X7 N! W7 I - (action_tile "mtexted" "(done_dialog 2)" )
1 i* \5 @; R0 {5 Q, t1 ` - (setq state (start_dialog)). C. y \$ @, }
- (unload_dialog dcl)
! {0 ]0 q c1 Q8 N+ h0 \* H - (cond( e0 F9 `; S7 h
- ((= state 1) contents)
" v5 j7 I" g. c d5 @ - ((= state 2) -1). v' E4 S. Y1 e
- (t 0)- Y+ b7 f; [" K' v# U/ ~
- )
[1 r8 b0 |( I* h - )$ j! E) J( n: g$ v+ M" q, C% f0 o
& ?: z ~2 l$ X1 L/ D( Q( |! p1 Q- ;;; ===== Discontinued commands =====4 Y$ |5 k* @4 M( _+ M9 ]9 }/ A3 R
- (defun c:ddselect(/ cmdecho-save)( ?' Y: N; ]4 @
- (setq cmdecho-save (getvar "CMDECHO"))
7 \7 v+ e0 P. q' p8 J9 O, E - (setvar "CMDECHO" 0)
, `/ A* d, `" I' L" p - (command "._+options" 7)
# A7 b0 x6 n; a) c8 @; }; @' d - (setvar "CMDECHO" cmdecho-save)* k3 j% B0 |9 J8 }& ^" @& F
- (princ)
% j8 {0 g' J ~/ o - )# `2 }+ G+ a- h5 d6 `+ i. u# a' d1 H
7 v: {' J: J9 h- (defun c:ddgrips(/ cmdecho-save)+ h; M, W/ a+ u1 x
- (setq cmdecho-save (getvar "CMDECHO"))* }6 ~ v) s! g1 Q9 \+ }3 P
- (setvar "CMDECHO" 0); X' q$ ^1 a/ A# U) }8 b/ l
- (command "._+options" 7)
' ~" | ]! ?! A/ ~) n: N9 o6 I- C - (setvar "CMDECHO" cmdecho-save)4 P) V6 x* ?& Y3 C/ ?# s
- (princ)% v. e3 ^4 q1 s9 P
- )" r0 ~) y7 q" |) l
- ; E2 ~/ U0 y; _) ^3 d; o
- (defun c:gifin ()6 ^4 _: @- c F/ |5 t1 M
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
$ B a% k+ k. R" c - (princ): {1 |& b) {1 l
- )
( y7 i7 ~5 l+ }1 Z1 ^ - . x7 P7 z* ~6 |' g
- (defun c:pcxin ()
" D- ^+ O# L7 I& D& F$ t - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")- M! C y& t4 g+ S( j
- (princ), m2 W# g6 e/ Q t, z
- )
( h O, h" ~0 k* M1 H - - h6 z# I! R/ u) Z! M
- (defun c:tiffin ()4 n! Y; L% p3 V% b0 b3 b0 n* G b
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
% d9 l$ q5 s8 D2 Z - (princ). [5 R# `# F: p$ D
- ), g) i2 K9 ?7 u, S% H# V! b
- 5 l: T! z. Z! I$ j: z( f! a# a
- (defun c:ddemodes()
( g+ _1 F+ G; W6 o) \7 m5 u* R - (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.")
1 S5 H$ @7 |. P9 n6 H' {4 ^ R - (princ)- V7 @. j3 n" [3 t0 U
- )1 c; a6 C' i8 s+ {
' s& o9 L% D8 d9 Z# i- (defun c:ddrmodes(/ cmdecho-save)
: M, h) y( L4 i; ~1 F6 U - (setq cmdecho-save (getvar "CMDECHO"))
. W3 w% W2 V+ \, Q7 F' e - (setvar "CMDECHO" 0)$ x1 h, M# [! z9 ]: H
- (command "._+dsettings" 0)
0 p: Z' h C9 I - (setvar "CMDECHO" cmdecho-save)
9 _! D0 R3 _, V: a1 D - (princ)
' ~8 I5 U$ c, T' R' C# ?4 x - )8 K) |! |2 n, A' N9 {( R! `5 s: y
3 y# ^# T5 X$ M S7 h1 Q- ;; HPCONFIG2 M4 p2 _1 z! Y3 q6 O1 c# |- f
- (defun c:hpconfig (/ hlppath)/ B( O, V2 D# m
- (if (not (setq hlppath (findfile "acad.hlp")))/ l' @/ K) S$ ^, W2 f! r
- (setq hlppath ""))
( G% A1 [4 `; Q3 @6 { - (help hlppath "hpconfig")8 ?5 q0 S0 ^+ y% ^) P
- (princ)
8 a+ V% x Y: F" n6 ?4 K* ` - )
- m9 Q; o3 e! b0 F; C% Y. }6 ~, n y
9 c! f' P+ w* s+ J- ;; OCECONFIG
$ s5 S6 V0 S: d# R1 \ - (defun c:oceconfig (/ hlppath)
. W( |- {4 ?2 K& e1 U3 C4 G - (if (not (setq hlppath (findfile "acad.hlp")))# H# ^1 l, p' H7 z) d+ V
- (setq hlppath ""))
% y, \/ Z6 b( c j6 B - (help hlppath "oceconfig")
9 f% [! l4 |% Z* g) O7 `- c - (princ)+ f* ^+ Y, U6 K
- )
$ P7 X/ r8 Y8 d/ j
$ T# O. s T# F/ z# G- ;; CCONFIG3 @) M* W2 @5 S+ X! O- m- w, k
- (defun c:cconfig (/ hlppath)
( u( _9 h U I7 c1 _; a - (if (not (setq hlppath (findfile "acad.hlp")))( f& c; C# }0 A
- (setq hlppath ""))
4 n$ R' h- f- G* o6 } - (help hlppath "cconfig")
4 \" g5 q1 [# U! g# S( T8 v - (princ)( c1 x+ r3 v. U: y/ R
- )7 c! P( [8 s+ w
& P5 |! v' v! L! X: V' Z/ j- ;;; ===== AutoLoad =====
1 Q" P) U6 p* o; g - & N/ ~& ~/ x% a p, |
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
: l: Y+ g3 Q. }8 V$ O - ;;; for the name of a certain appplication <appname>.# z Q. l! F. W
- ;;; Returns T if <appname> is loaded.0 h; Q' y. }' ]" Q
- , e: l& e; t2 Q( a$ h# l4 i& H
- (defun ai_AppLoaded (appname apptype)- i+ h* T6 |( |
- (apply 'or P; s2 L3 m* [4 M$ ~
- (mapcar
9 z' @2 a4 O( E4 [ - '(lambda (j)
+ B |; j7 U; f* u! D+ Z - (wcmatch
9 F, Z# ]4 _% ^6 d - (strcase j T)
2 |- ?, u. u4 L+ B7 A - (strcase (strcat "*" appname "*") T)5 {: T/ P8 f0 U/ m$ C! k: j7 Z' _: }
- ) + `$ J$ S1 }8 \0 I+ x
- )
$ ?$ S# F& s3 T3 e: i0 u - (eval (list (read apptype)))# u( G1 x+ n7 q4 C
- )% l5 L/ O( f( S2 L% T% V: A
- )
, O( y- a5 Q* L8 [( p0 r( y) m3 X. b - ), ]& r9 \: G- I0 E2 z" l6 ^. `/ [) T
( b) }. J4 |( x; c3 } [- L u- ;;
0 e1 O/ K9 i3 i* b" P3 v; D# P - ;; Native Rx commands cannot be called with the "C:" syntax. They must
6 Y! d0 h: D* f7 W1 J5 f- V - ;; be called via (command). Therefore they require their own autoload
* A0 A0 P, Y$ n/ @% ?: A0 H. B' w6 r - ;; command." K, S! b& p2 C6 x
- 3 k) @# L+ R0 Z5 }; F) F5 J
- (defun autonativeload (app cmdliste / qapp)
" n& C3 o) F# J- x) g - (setq qapp (strcat "\"" app "\"")), `- R& M, t8 [
- (setq initstring "\nInitializing...")
8 W# F. U1 g* }9 c$ ~! Q1 O - (mapcar/ e1 @% c) d, h5 J! N. X
- '(lambda (cmd / nom_cmd native_cmd)7 G0 k P9 K* X, ~& U
- (progn
2 w {1 `; ]% W/ r a0 Y I - (setq nom_cmd (strcat "C:" cmd))1 L1 n4 E8 a2 j |: q
- (setq native_cmd (strcat "\"_" cmd "\"")). j* E1 `# A- Z/ T2 v- S
- (if (not (eval (read nom_cmd)))
0 j. P2 L- }. A - (eval4 L |6 t7 A6 _4 p/ `- N/ P, B
- (read (strcat: v* z3 [+ R+ {7 x, t3 p1 I( s4 {
- "(defun " nom_cmd "()"9 w1 ~% N. V1 I
- "(setq m:err *error* *error* *merrmsg*)"
8 g: s J6 y" c# T' f - "(if (ai_ffile " qapp ")"
3 O9 R) i: Y, ]: d+ ^2 o - "(progn (princ initstring)"6 v# q9 N! o( y, D9 \# N' G9 t6 {
- "(_autoarxload " qapp ") (command " native_cmd "))"$ E' U' a" W& j& ~0 _! j1 a7 U
- "(ai_nofile " qapp "))"3 u9 d. j; d" V( {$ P
- "(setq *error* m:err m:err nil))". ?1 w" M7 _9 {/ ^! q# B% d3 C
- )))))) y: `. B2 x& C6 j4 x7 J
- cmdliste)
9 E* j2 a; |$ a1 i - nil, O' _. ^3 e! ~* x3 p" _
- )* Q& y8 }0 R1 n1 d& N+ O1 L
4 d: c. p. G1 r" l$ p# o* c) Y- (defun _autoqload (quoi app cmdliste / qapp symnam)
' @; G* N2 b+ U - (setq qapp (strcat "\"" app "\""))& |6 j3 m7 Q1 C* d0 ?( Z V! W8 d
- (setq initstring "\nInitializing...")
. h' f( {# ~% }% A) @ - (mapcar& a# j5 Y2 [& Y
- '(lambda (cmd / nom_cmd)# B% z; q! B7 s0 Q/ r, K
- (progn( y+ j; M( H. p
- (setq nom_cmd (strcat "C:" cmd))9 K0 ~( \( c/ G
- (if (not (eval (read nom_cmd)))
8 n% k. t( l. e/ L0 d - (eval
, Z |3 u: m1 i: T* J0 k - (read (strcat
" D/ g E4 r( N, w0 j - "(defun " nom_cmd "( / rtn)"* B+ J: v. Y* m) Q. D
- "(setq m:err *error* *error* *merrmsg*)"
! Z2 d4 u: R/ _# Y6 I/ n - "(if (ai_ffile " qapp ")"
# X% C# l: L: O M - "(progn (princ initstring)": Q" v+ U) J# }& }3 f
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))", {1 r( `+ z. V* z/ t
- "(ai_nofile " qapp "))") o3 x4 X/ L0 @5 q
- "(setq *error* m:err m:err nil)"& r' l2 C2 V( q8 Y* q+ K* x3 l
- "rtn)"3 O2 M R3 |6 b9 \" D/ @$ `
- ))))))
8 T( s/ i$ z6 y! ]; ^3 i; L - cmdliste)% h3 L) H& r9 k( L3 F
- nil& \0 v5 b: @4 i0 b% I0 b! I& O
- )
$ e6 h. v' u4 ~2 p0 @) b5 N
/ o- _8 Q- R4 s# I, P6 ?- (defun autoload (app cmdliste)5 T6 W3 W& A& [& U/ o# t" m
- (_autoqload "" app cmdliste)
3 G; Y! Y+ |! K% o - )- Z" B& x3 D7 ~) o. J7 M
- & P7 u: L. q v4 n
- (defun autoarxload (app cmdliste)
" V0 Q1 l( X- G! X" S( R% a& f - (_autoqload "arx" app cmdliste)
- h; M; l8 I/ @ - ); `4 S9 }. u+ b9 D; B, D0 u
8 b! S% T6 b0 J" Y% k2 l d& w- (defun autoarxacedload (app cmdliste / qapp symnam): u2 C( i& h+ o0 p8 b
- (setq qapp (strcat "\"" app "\""))
- x+ L( A. ~5 f" @1 Y) q9 |( p; i - (setq initstring "\nInitializing..."): w" T% F5 Q. T7 x3 i# a, x! a. Z6 L
- (mapcar/ h& S( c9 ?8 V5 ~; s: `
- '(lambda (cmd / nom_cmd), e, K# Z t8 [1 Y5 R
- (progn
$ r* S% ^0 D! ^; A9 H: _* ` - (setq nom_cmd (strcat "C:" cmd))
! H/ |* s m( b3 @: H5 I& f - (if (not (eval (read nom_cmd)))
7 _/ Z: {+ i. Q' V2 P - (eval
; |, Q, x7 _$ ]% Y, o& { - (read (strcat
$ Z6 Z7 }& R% V1 p - "(defun " nom_cmd "( / oldcmdecho)"
; \6 b& M3 ]7 H6 t4 d @+ K& j - "(setq m:err *error* *error* *merrmsg*)"
1 }$ C% c7 T5 A3 J/ b7 `6 s - "(if (ai_ffile " qapp ")"0 X. }% c% v( X) s4 k. P) b+ a) j
- "(progn (princ initstring)") d9 c* p/ B0 j1 w& G/ m, x2 @; N; n
- "(_autoarxload " qapp ")"
# Z) A; j, X* U8 B - "(setq oldcmdecho (getvar \"CMDECHO\"))"
4 ~. h" @% u& d6 y# n" B3 e - "(setvar \"CMDECHO\" 0)"8 v/ ^ h7 ~% L, O, V4 y, a
- "(command " "\"_" cmd "\"" ")"
' L1 r% B9 t% t4 L5 j' ]5 O3 v3 C y/ a - "(setvar \"CMDECHO\" oldcmdecho))"! g* R% E3 [0 m0 V) g& v
- "(ai_nofile " qapp "))"
) n6 f) M& y- d. k, @! t$ h2 m - "(setq *error* m:err m:err nil)"* c/ ~, v" y2 J6 }
- "(princ))"
- n. n7 k3 |5 Z$ c4 { - ))))))
" O- v& s) ?2 U" U5 j8 V& A5 I - cmdliste)
9 r4 ]/ @; B* v - nil
0 v" U$ c# ] u: _! C. C - )
7 q0 S- \" J2 e' Q0 c - / O/ ?# Z$ W4 k2 a& I- K2 z
- (defun _autoload (app)& t- v2 A! L/ `1 k. \6 U* `+ O
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)7 {- o8 ?+ [; R- C! i: g
- (load app)( l- K( r F B, p$ m q1 E
- )
' t& s/ H/ J& z4 |# e) B - 4 _- @" \+ J& X+ W) Z5 [
- (defun _autoarxload (app)5 T) S. N, j( y0 D% Y
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
' [/ ~ w2 s& C& y0 X5 _3 ` - (arxload app): z" U+ a# E; X, |" M) |
- )& R l; B* U* m8 s0 a
- , S1 y, b- V; Z; }% d+ e2 E
- (defun ai_ffile (app)3 _, T; d: I" `5 A7 e5 o' u
- (or (findfile (strcat app ".lsp"))
3 Z# ~: l2 C" V - (findfile (strcat app ".exp"))7 U; r z, E$ E/ @) K' @3 k
- (findfile (strcat app ".exe"))
& w/ G4 R0 ^* z# Z6 b6 w( S - (findfile (strcat app ".arx"))
) j* @8 h; q' ]; M - (findfile app)
`) J6 O/ f- a9 T) H; s* ?) N - )& B' w* @# [8 V9 U7 ]: i8 M! @
- )
7 K( t( f6 P' i7 V5 q' a/ }! _0 H+ I
0 {4 G7 T9 f: s/ X4 f- (defun ai_nofile (filename): G& R3 e2 E' n; \! n) J
- (princ: c4 f9 S" w! ^
- (strcat "\nThe file "
. B- A" m* N; G+ X - filename
' ~7 s+ ?" S" E$ @) [* Q - "(.lsp/.exe/.arx) was not found in your search path folders.": ~5 ^+ f4 x8 B4 T$ o! i- D' i3 w
- )# C) G. W% I, x$ [0 T. W+ G
- )
. ]4 |! E) _: z. X - (princ "\nCheck the installation of the support files and try again.")
# S. v A/ {6 T2 ^$ O- q - (princ)
~" S- k0 w: Z! a/ M6 G - )) O* [' b4 p9 Q1 Y* Y# C$ g( I. p: M
- 9 `6 j3 p+ `' T0 n" ^& [/ A
- # r, M6 |4 h& `& ?0 |; H: O
- ;;;===== AutoLoad LISP Applications =====
4 b% S+ _6 b d' y - ; Set help for those apps with a command line interface
+ z! U0 \ P* k; @5 P8 F9 @ - & F; W3 R9 Z' d* I
- (autoload "edge" '("edge"))
6 b6 v' b- p& N# w) E- c - (setfunhelp "C:edge" "" "edge"), c: k" s+ @. O7 p* y& @
9 B# ?: e2 y- t B6 v# [6 Q a- (autoload "filter" '("filter " "filter"))% O* P4 {7 _+ ?3 L: f& C. T
?1 `- S, H4 R6 J, A9 C5 G' o3 m( J- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
5 v7 g! c7 `# ^: Q6 B - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
0 U- b) C. ~6 v; V, E - )( E& R$ h3 X/ g/ w
- (setfunhelp "C:3d" "" "3d")! v+ z4 m' f' v v' u$ P
- (setfunhelp "C:ai_box" "" "3d_box")
7 U T L; z" r3 ] - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
/ r1 l4 u# R" K8 S - (setfunhelp "C:ai__wedge" "" "3d_wedge")9 e; j4 v6 g Q5 \2 S2 Z
- (setfunhelp "C:ai_dome" "" "3d_dome")
3 A$ B4 n4 f4 r+ A3 {+ O3 w - (setfunhelp "C:ai_mesh" "" "3d_mesh")7 g$ b' R; n8 X" |4 S
- (setfunhelp "C:ai_sphere" "" "3d_sphere")
8 k" V* d2 L. H- W( i* G - (setfunhelp "C:ai_cone" "" "3d_cone")2 w! m; N1 x% X1 X
- (setfunhelp "C:ai_torus" "" "3d_torus")* p, v2 i4 F+ B" Z1 L
- (setfunhelp "C:ai_dish" "" "3d_dish")- h( P0 k% ^+ s
* Q' h3 H1 l" y- k+ G- (autoload "3darray" '("3darray"))
- N& l: w; z% v$ F - (setfunhelp "C:3darray" "" "3darray"). y* O4 R% ?# ?: d
8 g2 d |9 u `- (autoload "ddvpoint" '("ddvpoint"))
$ s. ~8 [; R! ?! X - ( [* t# p2 F+ X. x8 Z4 L
- (autoload "mvsetup" '("mvsetup"))3 k X, [; S, q4 }, K; U7 f
- (setfunhelp "C:mvsetup" "" "mvsetup")6 Z4 o$ Z o# f" I9 @
- + I1 _ R. R6 C: S
- (autoload "ddptype" '("ddptype"))! G6 ?& g# _2 b: v' Y" R+ H
* T2 S. M% f: b5 h; [ i( z, @6 F6 B* Y6 G- (autoload "attredef" '("attredef"))
; k7 ]9 |7 P) |$ K+ l& i - (setfunhelp "C:attredef" "" "attredef")8 A% }+ X$ b. |( }/ J# u
1 ^8 A! x" A" j& Q- (autoload "xplode" '("xp" "xplode"))
; g9 E: x* T; _3 i - (setfunhelp "C:xplode" "" "xplode")0 \4 x; l2 a# C1 Q% _
( K1 Y1 v( L) m! C2 F' P. X. ?* T* p- (autoload "tutorial" '("tutdemo" "tutclear"3 z) k8 _, d" A' N
- "tutdemo"
& j, D# t1 Z8 s8 \7 G# j - "tutclear"))
: J$ R q8 Y$ }1 I* G - 8 T- A) l; A$ t, F" t
- ;;;===== AutoArxLoad Arx Applications =====
9 }! G% Z7 e4 L5 T/ R - - O1 W2 L, b' n: W9 G
- (autoarxload "geomcal" '("cal" "cal")), x3 x& j7 W$ A' K# y
- 2 D3 }1 M- \ O$ C x: a
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"4 N/ m" y1 f m$ U; P
- "mirror3d" "rotate3d"
9 x* v9 M" r3 K9 x - "align"))2 F9 Z2 l* }# E5 p
- c* u0 H" ^$ [. Z% }- ! H$ ~: J# \- J# _
- ;;; ===== Double byte character handling functions =====
1 s9 }8 B+ r' j/ }- U4 R% @
# |; x. L& m+ `2 Y. L- (defun is_lead_byte(code)( }0 e1 U; H$ @9 g4 I K" g, ]" ]
- (setq asia_cd (getvar "dwgcodepage"))7 M5 W7 p! G5 W
- (cond
0 W& l8 p& b9 c( b5 |- z8 s+ Y - ( (or (= asia_cd "dos932")
! K b) K; r0 t& \' S - (= asia_cd "ANSI_932")
4 ?. V5 T6 c" Z. O! ^% ~ - ); Y- I9 [3 n$ z! s* a
- (or (and (<= 129 code) (<= code 159))% _- R! i* _* r& s
- (and (<= 224 code) (<= code 252))
+ x$ b7 Y* Q5 m# c2 w/ s) E - )
) I$ L1 z6 Z% }7 W - )
B$ M: r& } f9 M3 k - ( (or (= asia_cd "big5")
( n: `+ ?$ _: e) k& a4 u9 E* P2 N - (= asia_cd "ANSI_950")
, V' i/ w9 [& J H - )+ ~- \9 Z6 E- |2 u+ ~1 Z5 C
- (and (<= 129 code) (<= code 254))+ L+ h$ Z! @2 r2 d
- )0 `" L4 I" s% B8 r' Y& B
- ( (or (= asia_cd "gb2312")) r- Q# H. Q5 b! a6 C6 ?; R: k
- (= asia_cd "ANSI_936")8 T, u& \. D4 D
- ), x$ L# ], o) z# e. o1 u" @; E
- (and (<= 161 code) (<= code 254))! E4 q3 S8 d u) T5 N. T
- )' A, p% u& J5 d
- ( (or (= asia_cd "johab")6 l1 f7 z) o9 Y) J- K
- (= asia_cd "ANSI_1361") U- [, i5 A* L) Z* y0 ~
- ) g! n6 a3 B2 d f2 o* E8 E
- (and (<= 132 code) (<= code 211))( b, ~5 T0 y+ G+ C6 ` m* j' h/ V+ O6 ?+ w
- )
. F( n9 @7 b# W! n - ( (or (= asia_cd "ksc5601")
" v% e" t6 y7 B! \$ [! o9 h+ ? - (= asia_cd "ANSI_949")7 ~, r+ Q# q' J% I: n
- )$ Y2 ?6 ^& P( |! Z! f |5 |7 `" G
- (and (<= 129 code) (<= code 254))6 y$ f0 {4 ~/ R* _8 }4 ]6 r
- )
" B6 u) N7 W+ E1 F" \5 M3 U! H, m - ): i7 X2 k8 w- C% o
- )6 b. C7 J$ H P7 S. J
- 7 n: {9 d% ?5 h r u' s1 o' k
- ;;; ====================================================
7 J# d% i; u1 a, _4 R - 1 x$ w9 R+ R, Y- j& S* ?
3 z' u5 v: f1 t5 y- ;;;
& S6 n, s' p, |/ N4 R# K4 X/ u - ;;; FITSTR2LEN
4 ]+ F9 U9 H: e# E# v - ;;;
7 g c- U/ Y+ t* Q; z2 E- ?" d - ;;; Truncates the given string to the given length.
5 Z' u+ J4 f4 _ - ;;; This function should be used to fit symbol table names, that2 ~) P9 R: N+ G$ s7 ]+ i: N. e* ~
- ;;; may turn into \U+ sequences into a given size to be displayed" s' Q1 N9 D" O+ T
- ;;; inside a dialog box.
% Z# \7 z* [" L& B' s" e - ;;;. _/ k4 T5 g& a( C" M* @, Z
- ;;; Ex: the following string:
+ J4 X9 A; r6 E& p0 `& g x! U - ;;;) u2 ?6 E- f% ^/ G7 _- _
- ;;; "This is a long string that will not fit into a 32 character static text box."2 J2 c6 o) b# X. E0 V$ A* e- t* s
- ;;;: u) Z; N9 g4 q3 h# g e
- ;;; would display as a 32 character long string as follows:
& K4 {& P/ g9 t! \( I - ;;;
- V1 X: d8 P+ a. b/ R2 X - ;;; "This is a long...tatic text box."
6 Q# B9 n/ Z: I0 Q, ~ - ;;;, F3 F# V% p; N: a
- 1 R5 z( m2 C2 D I, G0 |/ Y
- (defun fitstr2len (str1 maxlen)
! Q' \( Z1 p, R. Q1 N" y - 1 z7 ]( R0 z, c# z- m
- ;;; initialize internals
$ J1 ~9 ]/ _6 G - (setq tmpstr str1)
# ~* s$ {4 Q o7 S - (setq len (strlen tmpstr)) Y0 z5 N. P1 b" Q
- : V0 G9 g: G" [7 R. w
- (if (> len maxlen) - Y: c! |9 n3 E! e3 J* H
- (progn: J0 b9 w0 t" W& L- j8 H
- (setq maxlen2 (/ maxlen 2))
: j- M$ S$ C# m" `4 m5 f, F - (if (> maxlen (* maxlen2 2))
. Z) }% }; a% N! ^ - (setq maxlen2 (- maxlen2 1))
: g$ y, g' T3 K! H - )5 f8 ?0 q. D" s) [+ G& ]7 B/ H
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
4 ~% u/ U" Q' i9 u& w, s- ~: [ - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))- j0 m6 i8 a+ X$ C0 B
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2))). [$ C+ S4 B ~+ Y$ L- f
- )6 Y2 |( S9 b0 x3 M4 R$ i
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))+ G5 H; ^' M! u% N+ O5 f
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))" q/ A. O& d7 O
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
' x: a, Z8 b5 E% H& H9 k - )5 F9 A# {: ~, ~3 f# D% N$ m
- (setq str2 (strcat tmpstr1 "..." tmpstr2))* B0 ^4 [9 b$ P
- ) ;;; progn
0 Y" ~+ m7 _ D6 F: X( `; Z( p3 T - (setq str2 (strcat tmpstr))
9 W- L( z1 c1 ? S$ D - ) ;;; if3 B2 w$ M4 R) _
- ) ;;; defun' L& S2 ]; R# Q. d! \; F
- 1 T$ ?' Y6 n) {
- 7 R6 f9 Q) B. r% g5 V8 O& J" p
- ;;;
. R& M! ]( l$ q' N! N - ;;; If the first object in a selection set has an attached URL/ }; C u; w( ?) f( ]
- ;;; Then launch browser and point to the URL.
( z" r: ~" |' [. A& c' x M - ;;; Called by the Grips Cursor Menu
" |, F7 Y# P% A4 Z - ;;;
7 W" b! X2 q% x; i! ?/ V+ u - 7 w& E. o2 Y5 s) m1 F/ N
- (defun C:gotourl ( / ssurl url i), D7 q$ g2 }3 f9 _# P1 e
- (setq m:err *error* *error* *merrmsg* i 0)3 B4 Z) ~, A, o H# b
- & _" W7 V( H9 Y8 U4 o, V* K! O
- ; if some objects are not already pickfirst selected,
7 V5 T% A8 v9 ^4 } - ; then allow objects to be selected
: P% U9 A* O& j: }2 @1 N# b% V/ A - - ^- B# Q& F2 w; f+ }8 N0 e6 h$ `* B
- (if (not (setq ssurl (ssget "_I")))
: f: u# h/ z) v - (setq ssurl (ssget))
4 n- i4 G2 r h4 ]+ { - )
l: Y* V9 N0 R, l2 F; B% L
; U' ], l A- k; k v- ; if geturl LISP command not found then load arx application
% I! O1 Z% f0 m
+ g" o9 r& ?( T, {- (if (/= (type geturl) 'EXRXSUBR)
2 \' M0 q; u& k" F4 v& A# O# t - (arxload "dwfout")3 p3 m: O9 l$ a [
- )/ u& j' q: E) _6 \5 M9 A
-
& @6 C s& ~7 ^- } - ; Search list for first object with an URL9 B0 m" N: i- ]$ h4 I0 D
- (while (and (= url nil) (< i (sslength ssurl)))
/ a9 b$ ]9 S, n( a# f: U6 _ - (setq url (geturl (ssname ssurl i))
/ f' t6 G% U6 a/ ^$ J# J* U7 x - i (1+ i))
. l3 t0 u2 w6 r/ H7 p. C- A - )! S3 F$ Z- E' s. \
8 Q. ~" t. g" p4 J- ; If an URL has be found, open browser and point to URL
. ]$ Y- a8 U) P# l A" s - (if (= url nil)
2 {/ o% j C `: L. j - (alert "No Universal Resource Locator associated with the object.")$ A: G: n. Q1 T* U x0 Z) U
- (command "_.browser" url)
" I, v0 a5 \( i# I - )
: N7 K- z* s6 |, B9 u/ C$ F - 4 x1 J' }4 ~ Z. ?2 z
- (setq *error* m:err m:err nil)
( \ P" e5 p' y: w. A - (princ)
3 C( b! N* n2 r d1 }, l$ L
$ W' D! @8 Q, Z# @: [' W: R- )
; y* ^! F6 N' R+ S2 C0 K
" f( f# i% f% C4 V. S- ;; Used by the import dialog to silently load a 3ds file9 a/ n2 Q8 j! {; {
- (defun import3ds (filename / filedia_old render)2 @0 J$ y! {' O! r6 c4 T: M1 w
- ;; Load Render if not loaded( n) Z8 H/ L' o7 I" \
- (setq render (findfile "acRender.arx"))
3 S8 r1 C) f) M% F% i+ A( S - (if render
2 \' v: S7 J$ m' e' G; X - (verify_arxapp_loaded render) 7 w4 z4 o! B0 v7 t
- (quit)
4 \: O9 I8 {0 a' B3 P - ); N8 M5 g1 a$ r2 \; b8 T% G
" I/ L9 y& }6 J, ^8 R( m$ {9 x' Q- ;; Save current filedia & cmdecho setting.' t5 B* H# m1 |6 i! K: e
- (setq filedia-save (getvar "FILEDIA"))6 @. X k+ b: V/ k& c2 J% ~$ B
- (setq cmdecho-save (getvar "CMDECHO"))
, O6 G8 w' z2 g, y - (setvar "FILEDIA" 0)6 O- x u9 D E+ _* z. P
- (setvar "CMDECHO" 0)$ p% \' _- t4 ]4 h
- 1 R5 v s: K5 i3 H4 k C0 i% f0 t
- ;; Call 3DSIN and pass in filename.
9 Z; S7 k: W$ A# ? - (c:3dsin 1 filename)
' K" N6 b+ _, D2 ~! B1 n - - E. [2 w) C+ D. G! _$ H0 a
- ;; Reset filedia & cmdecho& s: w4 g9 n( T% \2 }
- (setvar "FILEDIA" filedia-save)
& _% Y, X- G( Z9 x; | - (setvar "CMDECHO" cmdecho-save)' n4 _, {6 \; w) f& z1 |
- (princ)
( K' X u# f. y) u( I - )
3 |9 @8 g0 k0 p/ x/ h" u' H - 4 |! @6 I# t3 i- p. W, Y
- 7 x r. P0 C7 `) z1 j
- ;;;=== Menu Functions ======================================
( u) }, L& j r, F9 x( ^ E - 0 ?! g+ o4 x9 c+ q: v
- (defun ai_rootmenus ()2 U( e9 ]0 t2 c: V) O2 H8 Y* T. O
- (setq T_MENU 0)
; ]% w7 f. M8 v2 `, [& e0 k- n% G - (menucmd "S=S")
9 \7 t$ T- {* y2 t, X' ^: c" n1 s - (menucmd "S=ACAD.S")
. C9 S+ S) a) O! ^7 Q& Q - (princ)* u R) W3 |: H0 A6 }3 b8 J
- )
0 A, S, t& Q: x& P3 e/ R8 R' O" O - Q5 Q) }& ]3 X+ E) h8 E, h7 L
- (defun c:ai_fms ( / fmsa fmsb)7 `5 F; ]- p+ N" C
- (setq m:err *error* *error* *merr*)
0 h0 `% T; y) s( M- t" f* T - (ai_undo_push)
. x$ C* b: b& |" w ?1 U - (if (getvar "TILEMODE") (setvar "TILEMODE" 0)). F5 z& w' |/ h# E6 e, f5 f! t% c
- (setq fmsa (vports) fmsb (nth 0 fmsa))& t9 M2 p9 S% @* T
- (if (member 1 fmsb)5 F6 I$ ?$ P& E& [& p! B
- (if (> (length fmsa) 1)
3 {" L9 ]% k0 v( j1 s$ p) e, C - (command "_.mspace")4 ~" I/ S6 Q2 o0 u* H) n _, A
- (progn
3 D9 K6 M5 y) N+ P, Z - (ai_sysvar '("cmdecho" . 1))
/ p. S+ A% P+ t/ G# O7 N - (command "_.mview")
" k/ W5 L2 L% o) R- H - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))" e n$ J; ~5 X* k/ \( k% E
- (command pause)
6 A( i# s( t0 b6 o; t$ y2 Z6 @ - )9 g% y+ F6 i0 `. R8 t
- (ai_sysvar NIL)
7 k t1 H0 g+ L1 V- e. v- R - (command "_.mspace")
3 Z9 v1 I# \' Y; z. { o# e0 q* c - )9 N" L, t& O, P' T
- )0 q- f, D$ ^+ A& j. K
- )
( }5 [1 N* I X0 K - (ai_undo_pop)
; y% s' ]; U3 {/ x: Z9 X, O - (setq *error* m:err m:err nil)+ c( _ e* |, r3 Y
- (princ)! y: K. M; U3 B. a& ], Z9 s
- )- Y9 i! [) x0 N$ ]7 @: U+ s+ {
- 9 G2 m( _- L8 l
- (defun ai_onoff (var)
3 a0 Z8 }1 U& l1 d+ \! h" @8 O - (setvar var (abs (1- (getvar var))))
3 C% ?' L* M* x) H$ w - (princ)+ |9 M& Z" Q5 v
- )
8 ^; x0 Q" g1 A3 _ - ' q! X5 {- D' `+ H6 S* o. g: ?2 V
- ;;; go to paper space* I2 H& h* \- N# F
- (defun c:ai_pspace ()8 i& ?5 T9 J/ e% n2 u
- (ai_undo_push)9 K4 m# @3 x _; j/ D% \2 \
- (if (/= 0 (getvar "tilemode"))9 \% X+ Y% d) X) B* k
- (command "_.tilemode" 0)
, e3 c" Q& F5 K6 n7 b# f! Z - )2 m3 s6 J3 K1 X/ l. |
- (if (/= 1 (getvar "cvport"))2 B' o$ @9 w; g
- (command "_.pspace")
, K% m/ D0 ]& f; l - )
5 m! c3 I" J; X, e - (ai_undo_pop); m6 D1 L& A' x8 x! Q
- (princ)
/ h3 N3 X- q' t3 j9 R. N - )
8 q3 j) m9 F1 q/ U) u. ^9 T1 U: \% s - 7 \7 }) M1 K* s6 p( V
- ;;; go to tilemode 1. G5 F6 ~# z9 a5 p: [% [! L4 Q
- (defun c:ai_tilemode1 (). p0 u1 m; ]1 ]2 M* G
- (ai_undo_push)
8 w5 j' t7 C/ T# s7 j2 O - (if (/= 1 (getvar "tilemode"))
2 t5 a4 W( H. S& E" l - (command "_.tilemode" 1)
- f$ P# m" r+ g$ |3 \ - )2 R. N. k- O( {2 Q
- (ai_undo_pop)
2 Y& ?1 g: y* T) @6 O. S - (princ)# X2 _7 q. f) B: x6 q$ C. t
- )
% N& w/ ^, |# F3 m. K5 \7 P
6 T8 S# E* O% ]1 Z, V! J: P1 c# l- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
# e J0 f5 D% S. t, n" u) L& v - ;;; Toolbar Dimensions/ Align Text/ Centered
& S L5 ~% {. n) X# D
* H& C2 c8 Z5 F T- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
! K4 _0 i B1 T' i' V - (setq ai_sysvar (getvar "cmdecho"))
! {$ c- i( j* t& `( K* ] - (setvar "cmdecho" 0)/ g- }4 O8 k0 e7 H
- (cond3 E- G+ p2 x) O" m5 Z
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION")))); e. T2 l2 e2 o- t0 V1 G) r
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" 0 j6 ~6 k# R/ v
- "_.dimtedit" ai_dim_ss "_h")
; b& Y* k9 F0 h% u, S; ?& K! V7 _6 ? - )
9 G! s7 @! Q: }$ v9 i2 u - (T nil)
$ S, k& L" v/ f. \& }- s - )) `$ [7 a9 r7 |2 H$ @
- (setvar "cmdecho" ai_sysvar)
1 m' C" R% {( _ - (princ)# m/ `) j/ S7 z5 z
- )
; ^ q! i7 K: s+ X+ f3 ~0 F
( X7 K9 ]( }" ?- J- ;;; Shortcut menu for Dimension Text Above
) I8 \3 J/ U) A- a, K8 A9 } - . K, @$ ~- k6 _) r$ u
- (defun c:ai_dim_textabove (/ ss), j. b! c. x: a) j3 C
- (ai_sysvar '("cmdecho" . 0))
! y, l' k' {, A( G* e! O q) q% X+ Q - (if (setq ss (ssget "_I"))
9 j6 M! P# t/ _ - (command "_.dimoverride" "_dimtad" 3 "" ss "")% z- ^# M+ K4 T1 Z# H, Q
- (if (setq ss (ssget))
- P, w$ s& V' p$ P1 x8 p2 m5 N3 _ - (command "_.dimoverride" "_dimtad" 3 "" ss "") 3 \5 W4 x0 y+ a
- )
1 {9 @0 ? l7 E! c% |! v6 l6 X - )- D- Y, O) z: v* z" a
- (ai_sysvar NIL)
. ^, Y( h% l4 T7 A3 c. q; k - (princ)" o& J8 g" _% [: P- n* A
- )
& ]$ h3 f' A3 @. I+ q% X, B
/ Y, e7 o2 u+ a( A* A+ |0 V* \+ r- G- ;;; Shortcut menu for Dimension Text Center
. }, ~3 y/ ^0 m" }# m
' G7 j; N% ~; C d- @/ z- (defun c:ai_dim_textcenter (/ ss); ~+ P, E9 W6 D3 H. f9 @0 Z2 P
- (ai_sysvar '("cmdecho" . 0))
6 |9 o( ~: e1 X: ~, g5 `9 X - (if (setq ss (ssget "_I"))! L) o, R% i6 W% N9 y7 K7 D1 u
- (command "_.dimoverride" "_dimtad" 0 "" ss ""), y+ i" O4 C/ `
- (if (setq ss (ssget))! n# ~+ j z! |( z
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
3 _. U/ J- l# h& c& R$ i5 } - )
* ]/ z9 J9 w3 s8 q) R1 f1 v - )0 ]" z8 g6 D+ B+ [6 s# K0 q9 P* \. R
- (ai_sysvar NIL)
9 t! ~- Y1 J) `9 Z2 z8 G$ X! a - (princ)
8 H5 H6 A* {4 M4 B - )' N4 M M: v3 K" O2 S. l
; U$ \# y* t$ x! o- ;;; Shortcut menu for Dimension Text Home / s5 M! I2 k+ w" w
- + Y8 e% ]% [' d2 ^$ H. [
- (defun c:ai_dim_texthome (/ ss)
, l' {6 J9 H4 [: h2 O - (ai_sysvar '("cmdecho" . 0))0 K8 M- r# N. A5 h8 H3 P
- (if (setq ss (ssget "_I")); W7 ~/ g5 i0 a1 v2 U! d
- (command "_.dimedit" "_h")
) F$ E$ H4 q$ [; P Q) D - (if (setq ss (ssget))
) k% d# n. O1 A/ ^. L - (command "_.dimedit" "_h" ss): G6 t2 O) r1 t6 _, e. a: c+ e
- )
. f' q; Y$ S) a - )" L; f/ s5 x& s( l+ C' u4 q
- (ai_sysvar NIL)" W# d1 H' @( A
- (princ)
# X& l) q+ E# p - )
* F; z! ?- q, V# H/ U( |. m
4 }. {& q q4 Y% y
# H* `. d% N/ o' O( m- ;;; Screen menu item for CIRCLE TaTaTan option.
, L0 h8 A. V0 e7 S2 r: { - ;;; first, get points on entities
3 T8 G/ x& B# {9 y3 T; p, h - (defun ai_circtanstart()
1 c4 M5 C: J: F2 G/ N - (setq m:err *error* *error* *merr*). H c9 c+ f+ F6 S- L- b
- (ai_sysvar Y1 d$ N* K+ i1 I% o
- (list '("cmdecho" . 0)/ T$ m0 Z6 g; W% j; j
- ;; make sure _tan pick for CIRCLE gets same entity. _6 c4 B) Q, _8 r, l! K' e0 Q8 ^
- (cons "aperture" (getvar "pickbox"))
& t3 _, u* }+ S- O6 \% G# ~5 j - )
6 J7 M% x& e( L+ @& x3 e e, Q - )+ ~- X( i) b6 A0 I1 ^) z" i
- ;; prompts are the same as CIRCLE/TTR command option4 s. L+ @1 ]! ~+ m2 K
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
_2 W3 ?9 j$ \7 ?. [/ p; l - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
/ o2 Z' `5 O: W; E- q0 o( q) c - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
: `; L+ \1 @ u, d* E - )* k; q( T7 \5 |8 d$ Y" t
- ;;; Command-line version" I& x: ~; ?4 H1 e
- (defun c:ai_circtan (/ pt1 pt2 pt3). j. _% P/ r3 D7 u9 X2 K) j* _
- (ai_circtanstart)
+ L0 f5 w: {0 @& i' O - 2 }2 O- K7 Q7 C! N$ O
- (ai_sysvar '("osmode" . 256))9 b; o- \7 H* u* @
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)6 D7 @/ A: S6 _6 Z. C- ]$ ~$ P- n) A1 A
-
% M& D, t7 {# [7 c$ h$ O. W9 e - (ai_sysvar nil)
O0 S) T$ v& s0 h9 S5 t - (setq *error* m:err m:err nil)( ^$ y' X1 e# O, _1 _8 s: U
- (princ)" q3 D5 ?$ ~9 F9 j( R) E6 o
- )( m' Y) r9 l8 _5 n
- ;;; Use this if CMDNAMES == CIRCLE
; \; j/ y/ F& ~, z% A! D. g: I, Q# [3 ~ - (defun ai_circtan (/ pt1 pt2 pt3)
* q8 ~* A6 W9 L - (ai_circtanstart)4 k0 W" f, w: \% X6 _- R8 L
- - D+ O7 d% V$ T) D' y4 s5 a
- (ai_sysvar '("osmode" . 256))
, `) a# O6 }2 R$ Z/ z# U' c - (command "_3p" pt1 pt2 pt3)
* e: K8 d- x7 {' P, n k) K - ; `' f- W# k$ B4 A3 y
- (ai_sysvar nil)- r7 R0 x2 W" [5 @" z* Q! ?$ O7 e
- (setq *error* m:err m:err nil)
6 ?0 o) t# N7 t+ m; [2 B( \/ i - (princ): |# H; A, `% i3 u4 Z( h0 A
- ). I, G: O% P; t% u% l0 q0 o
& d0 T1 d: x5 f* _; l1 c$ X- ! N3 X/ r2 Z0 g/ t' f `! U
D' G: G5 a4 z9 d1 U4 @2 l K# T- ;;; Shortcut menu Deselect All item.
/ t! f; M3 Q: a2 y% m
& Q$ X. O# }8 q9 K/ G" u- (defun ai_deselect ()
$ Q) f; B& {' I) v# E$ E x9 c - (if (= (getvar "cmdecho") 0) ;start if8 D, N/ }7 W: m- y) A3 o a
- (command "_.select" "_r" "_all" "")4 ?2 B- d- L3 `, b0 v
- (progn ;start progn for cmdecho 12 s1 o, r: `2 D+ `
- (setvar "cmdecho" 0)1 H7 E* R6 C; j M9 Q6 ]
- (command "_.select" "_r" "_all" "")% d4 M$ |$ X+ F, D5 \
- (setvar "cmdecho" 1)
+ c$ `% d+ T5 V. |" n0 l. l+ D; C - ) ;end progn for cmdecho 1
1 T) i+ q4 `0 I( P - ) ;end if
1 c; H7 }/ |2 w/ P - (terpri), @1 ^( Y! @) d7 L; f( l7 e/ |
- (prompt "Everything has been deselected")# p @9 u/ G" }% v$ }8 _1 \+ q" S F4 l
- (princ)
! F! t' |" J& K6 [ - )
: r0 r1 p" M! E1 D. `
, m3 g# {/ }0 o+ w! i3 c8 `- ;;; Command version of ai_deselect to be called from the CUI$ K, j$ B1 Y1 R& j* G8 k" E3 U
- ;;; so it gets properly recorded by the Action Recorder4 }# q9 _( a: g5 e2 T
- ;;;+ u J( N R" a
- (defun c:ai_deselect ()
2 E9 o& C5 u* ~& X8 g - (ai_deselect)) j0 v k% Q6 O% p6 O' M6 n
- (princ)
) ~: h6 E- [. \% [$ f - )8 A* _% b; t5 x4 {3 Y( n
- # B. L* o7 c3 k7 g. g
- ;;;' |# Z( K |5 L- { S
- ;;; Enable Draworder to be called from a menu; f! _+ D1 j$ M
- ;;; Checks for Pickfirst selected objects
5 ?* m8 u) k& {- @# x) z3 d) s( R$ ] - ;;;
% S0 m k0 I4 }7 ? - # s V9 g. s* s; q1 D% l7 _
- (defun ai_draworder (option / ss ) N4 W# ^( W+ t4 ^8 t- \+ F' w
- & C5 ^+ u- L1 [% M8 f
- (setq m:err *error* *error* *merr*)
% s! J$ `8 P6 J' ^ - (ai_sysvar '("cmdecho" . 0))9 I3 p! U Z: @& |) V, L6 v8 G7 f
) k9 f* v; C r5 K: {/ d9 p& i9 U- (if (setq ss (ssget "_I"))4 Q' {" D' a+ W3 @
- (command "_.draworder" option)* M0 _) Y! s, O& G3 q& u1 i
- (if (setq ss (ssget))
" O2 ~5 P3 q) e. Y" W S - (command "_.draworder" ss "" option)7 g0 e" ]$ u# @+ \, B
- )( i2 h8 M: b c- C# a8 ?
- )7 k8 G( q' O* f' ~' {" \
- (ai_sysvar NIL)
5 `2 z+ T* g; L: t, G: ], u - (setq *error* m:err m:err nil)+ z4 d! x5 F2 w3 F# ^2 y7 @
- / [! W2 S" [& f0 P
- (princ)
9 H1 h4 v8 A4 p$ } - )7 [& k+ m- P' P+ D! M
- ( M8 i2 z, B( \) R9 K( T
- ;;; Command version of ai_draworder to be called from the CUI/ }- Z" W8 x/ y8 }" g" w
- ;;; so it gets properly recorded by the Action Recorder
" b! o4 }1 ^6 @ ~' |( N3 x - ;;;
: r( r: n/ Q0 v* i - (defun c:ai_draworder (), f( m, R) P, W8 E5 G/ M5 ?
- (initget "Above Under Front Back")$ T# v5 a$ l9 b8 g9 V; M% j
- (ai_draworder (strcat "_" (getkword)))/ b W d l) v' T
- (princ)
8 S, h) f+ d8 A/ u% i& o - )
& J( V& O& B: f/ D9 Q, ^ - 2 \* \# Q, e- W& Z5 c
- (defun c:vlisp ()
5 t( f V5 i) B - (if (/= nil c:vlide) (c:vlide))9 }. f5 D# Y V
- )
; `7 W; G% a$ e - 7 u5 X" Z) n4 ^
- (princ "loaded.")
* j9 D6 q. @# r6 ?* y5 ]# L, z' m$ z) {8 I
5 u8 S: M7 Q. g% q% p, G4 N+ S- ;; Silent load.9 S2 U/ P- k1 ^6 o+ c
- (princ)
3 h. f5 K m/ F8 a
5 M! y Z' I j7 @. Z+ e4 N. }. h- ;;;----------------------------------------------------------------------------
" C! l4 j# A3 @( m; P - ;;;
; {. i. p3 g6 L# W9 G3 X# u - ;;; DDCHPROP.LSP Version 0.5. y7 p3 F, G1 h! B1 ]% d
- ;;;
! N+ y9 ^1 ^5 u1 r4 C - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.5 f0 }% ?& r/ y* o" C- H) P a5 o. [
- ;;;
7 E' ]/ I7 V( H9 G% x - ;;; Permission to use, copy, modify, and distribute this software
! A- C" k" f W" Z - ;;; for any purpose and without fee is hereby granted, provided* ` t3 ]0 H {; t
- ;;; that the above copyright notice appears in all copies and that2 A1 Z1 I, q/ J. S \. W
- ;;; both that copyright notice and this permission notice appear in( w' H; j2 b7 s8 f- G' v Z
- ;;; all supporting documentation.* F u0 Y: n8 {; P! i( |. i
- ;;;+ s& a. A- u! P4 H. Y
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
' {/ m$ o3 O: A9 \ - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
% L5 A2 _6 u; [4 X+ L - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.% J1 ?) K k# S7 S; }! t
- ;;;
3 ?" ]7 o* v/ [* `# Y8 y8 F5 c6 z - ;;; 2 February 1992
* D# l! O/ q& p0 m: }; S - ;;;
6 C: r5 B. q/ o$ Z: C" k5 F - ;;;----------------------------------------------------------------------------' }+ o7 B+ I' @# c1 O
- ;;; DESCRIPTION) ~" L Z! Y9 U# U/ W r) m
- ;;;----------------------------------------------------------------------------
9 Z4 S e1 r F0 a" G4 f! h - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.7 |$ d( `, i; k9 _
- ;;;% E# ~; h* N U/ V3 o1 l3 h( \
- ;;; The command looks similar to DDEMODES. The main dialogue has an image X) e' h4 k+ m" I0 P) c1 N" p: ^
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
- T E2 i: M. m, G+ B - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. 9 G! b2 [0 j( f7 @8 }9 l
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.0 Y; T- K, o4 q2 v2 A" J! M+ W
- ;;;
7 p5 {% t( ^5 q$ \4 w2 E, B0 U - ;;;
# _5 O6 q0 v. d% X- @ - ;;;----------------------------------------------------------------------------
0 \/ b% C+ z8 {' P) l* s7 }7 n5 r - ;;;----------------------------------------------------------------------------( M/ y9 q5 q) i8 V9 U7 u$ Q
- ;;; Prefixes in command and keyword strings:
6 P" J' ]2 A2 \. C+ y2 J; E6 j - ;;; "." specifies the built-in AutoCAD command in case it has been ; F- \* N$ |9 [+ Q) k5 g. M& T
- ;;; redefined.
8 g$ N+ s$ L3 _0 { - ;;; "_" denotes an AutoCAD command or keyword in the native language' ~! Y& E' ~: _, m2 v6 \* ]
- ;;; version, English.+ }$ |! d, Y: i2 I# F# c+ P
- ;;;----------------------------------------------------------------------------7 W2 O, Z8 w6 j+ M, D
- ;;;% Z& ?0 m4 x; O9 Z5 d
- ;;;7 {' i; }5 C4 ]/ _ ]# m. d
- ;;; ===========================================================================8 X2 p: f; \- c
- ;;; ===================== load-time error checking ============================9 N; S" ~0 _* A5 `
- ;;;
9 u5 L; Z% a- | - / K5 T2 Z. T3 i3 D% U! I
- (defun ai_abort (app msg)
5 m! I! N! @& z# E. t7 u, g4 { - (defun *error* (s), _. m. X2 w* h6 x9 Y
- (if old_error (setq *error* old_error))- C7 T; Z u F7 Y7 Z
- (princ)0 X* M: {1 m$ @3 F! \
- )* v* ~ q: ^ h7 K( T* {
- (if msg
0 i3 M. ~- k8 h8 m' |9 x - (alert (strcat " Application error: "
) V$ @! j" f+ S - app! f: l) j2 E2 ^& L4 w: T
- " \n\n "
2 N% i* E% D8 m* `- w. q! R- X - msg
( V6 m8 v% g6 i! F( [3 U - " \n"' t! S7 u3 }1 J1 ^$ E8 x9 H" W
- )
8 A; o3 ]2 F% ]+ d0 i% F - )* L3 C7 C* ]2 _3 U
- )) i4 M- Q* j0 k2 A1 P
- (exit)& P' ?& w' P" d
- )
' D2 M3 I# Z) j% d( d4 T. V) H6 K. }1 { - h0 F a p5 ~, U$ O
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,/ N; d; m: ?3 Q0 o) \1 k- c
- ;;; and then try to load it.) ^0 X; k; A0 V/ }+ I9 M! T% e; M
- ;;;5 V" |; S9 ~* p8 d( Y4 ?: O$ d1 D
- ;;; If it can't be found or it can't be loaded, then abort the9 d7 S' w ^' J$ P
- ;;; loading of this file immediately, preserving the (autoload)* S+ R5 O5 t' A$ P
- ;;; stub function.
6 C3 L* S: h$ T2 I% H5 m& N - 0 `- b( `- q* y5 F9 m
- (cond- F0 i9 b! k5 ]- q: g/ i! n2 j
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
5 w* z( A1 w, h3 F) A - 9 Q0 d$ f1 u K! `$ z7 k- S, Z
- ( (not (findfile "ai_utils.lsp")) ; find it/ J' @! K, ~! V- ~
- (ai_abort "DDCHPROP"
. x" M6 m' Z" y, w. Z* m - (strcat "Can't locate file AI_UTILS.LSP."# K+ i9 C) u# o" y' @% r# e4 I
- "\n Check support directory.")))
$ i2 Z; |$ h! |
6 d1 T# F: e6 v( `! S- ( (eq "failed" (load "ai_utils" "failed")) ; load it
# W- s' [1 ]+ K* z5 ^ @7 ?! T - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))* X: O7 J, q. K* W
- )9 S3 _1 x6 I4 A! r
- 5 ], x6 S" B9 r4 x: h& U' j
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP; W9 ?# K: c, B7 E* t, @# M/ w
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
7 v+ t4 M( ^! _5 ]( A - ) ; ai_abort's alert box dialog.
4 {0 ~1 k. ?$ r, q) K1 g% ` - 8 {2 R. N$ A: W; _ J8 a4 `' d# v
- ;;; ==================== end load-time operations ===========================
" q0 _, f& ?: C$ \" Q' t9 ]
+ s# Y+ R! U' k7 u- ;;; Initialize program subroutines and variables.
! i1 S" H9 o7 X( o2 H
% w) [/ V4 Z2 d# b- (defun ddchprop_init (). V N- r% u0 I' ?& N, \
2 L- X0 o9 s9 Z" l* P! n" c- ;;& F1 J# [- c5 C& Z/ }
- ;; Define buttons and set values in CHPROP dialogue box 5 D8 Z( N+ {1 l% Z: Q
- ;;; u) d5 a3 Y x
- (defun call_chp ()# P8 p$ J `' i# y
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))
* Y1 I9 |" z' r" P. g# y - (set_tile "error" "")
( c: x# o9 m4 n - ;; Set initial dialogue tile values
5 s. a0 O* @& p/ u( |! g - (set_col_tile)
) e$ ^ q; F/ l! {3 o+ c - (if (= lay-idx nil)
: I: R2 z: W A2 J2 m6 `; t$ X: o - (set_tile "t_layer" "Varies")0 w* _+ f1 }" r) J
- (set_tile "t_layer" (nth lay-idx laynmlst))
- V% p) }: R* W - )
7 [3 D/ l& ^, v - (cond / ?: x/ O% A3 F2 K
- ((= lt-idx nil)
* s" p- Z. d/ R* x; w% t; L - (set_tile "t_ltype" "Varies")
; ] C2 b6 B8 y- C$ t8 G: N - )
; C, k; h5 q |9 e - ((= lt-idx 0) ; set tile "By layer & layer linetype"' N; k& I) V" P5 j1 Q p
- (set_tile "t_ltype" (bylayer_lt))3 W% H" j# i& b, \3 S
- )
! A R" o& U$ U2 I+ t9 C) d1 t# \ - (T & ?8 ~2 J# K3 v. c
- (set_tile "t_ltype" (nth lt-idx ltnmlst))& w2 h1 A# q! _0 Y
- )
) m9 w& |% T8 E: u+ i m - ); |# ~5 j, W! ~ C: b
- (if (or (= ethickness nil) (= ethickness "Varies"))7 |% U. u: E5 V7 s
- (set_tile "eb_thickness" "Varies")
: W# ]4 d5 A' [; v, S - (set_tile "eb_thickness" (rtos ethickness))2 v+ A. r3 t+ u; S/ k
- )
1 q9 C' D9 H; ], P! \$ u3 O - ;; Define action for tiles8 c& Y; e# r, Z1 S- _
- (action_tile "b_color" "(setq ecolor (getcolor))")
5 G4 [7 V+ U' B) e, ^* k+ @* X - (action_tile "show_image" "(setq ecolor (getcolor))")
" l! `+ K: G( @) ?5 I# u+ J. G - (action_tile "b_name" "(setq elayer (getlayer))")/ o4 A/ l1 }! e; O. s" V* F
- (action_tile "b_line" "(setq eltype (getltype))")
% Y, {% B, O5 X0 |# t/ m - (action_tile "eb_thickness" "(getthickness $value)")
. Y! U" o+ I N9 b. ]/ | - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
) o$ r- m+ |- p1 e9 }) @3 x - (action_tile "accept" "(test-ok)")3 s' l& Z1 k7 t6 Y& v
- (if (= (start_dialog) 1)2 b: Q# Y d: W
- (progn) k8 B/ q6 @( ~! |
- (command "_.chprop" ss "")
# a F( h% ~, U, t O2 a/ a+ H* @ - (if ecolor
0 e+ X* \' d! G! x/ m1 I - (progn
# [3 d6 M1 |' @+ P2 M - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
, B0 d4 h7 p* V8 P, y' F; e8 ? - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
8 M, N# Y. W4 P7 d5 i; V) F5 R6 p - (command "_c" ecolor): S2 x3 u/ L0 T$ c9 R
- )8 r- m$ n+ Y* X1 C1 m
- )
* z. s4 ]$ T) p$ V) V# S7 s - (if (and (/= eltype "Varies") lt-idx)2 s% m6 |/ W; Z9 ?0 S- L7 \
- (command "_lt" eltype)9 l& `- e5 T. H- H- J) Y
- )5 \" D# V0 u! r9 V
- (if (and (/= elayer "Varies") lay-idx)- O# S* h$ l) b. v
- (command "_la" elayer)
+ W0 y- s5 W8 x" b - )( |* m P) g5 h) h0 {6 K9 H4 Z( ?
- (if (and (/= ethickness "Varies") ethickness)0 }: ?2 y! e& j3 y1 v8 q
- (command "_t" ethickness)2 ]" ? p9 U6 u" t3 v3 V' v
- )
% w* l0 [/ b+ T, O. q3 D% m# x - (command "")- }4 c0 J+ P8 z! V7 c
- )! A) ?/ v3 N/ }: D
- (princ "\nProperties unchanged")0 z' E7 Z0 D' m5 C! r
- )4 h4 H& a% W) L
- (princ)
0 b% R. @( T% p3 C1 m% y% I - )
- r7 T1 f1 {) U) ^; J; \: Z: z) {, D - ;;. O. L# Z0 d& P0 F
- ;; Function to set the Color text tile and swab to the current color value.
7 _5 r& @9 Z4 ^; w - ;;& r* R1 ^& g7 V7 h6 Z
- (defun set_col_tile()
; Q9 v2 p+ t w - (cond
1 Q$ ]# {. B+ D - ((= ecolor nil)9 c Y+ t* a Y* o/ s3 a
- (set_tile "t_color" "Varies")& `6 }4 v9 k$ h5 O; i. v1 z; W
- (col_tile "show_image" 0 nil)
. l+ r7 k7 _! d1 I' \ g - )
/ D0 h* x0 |& L& V" l) w - ((= ecolor 0)5 R# |5 \- Q ~% c
- (set_tile "t_color" "BYBLOCK")& t0 s6 Z: W- I2 V( c' y
- (col_tile "show_image" 0 nil)
0 D( c( O0 q# j1 W0 g! T: N - )
4 ]! e; c7 d0 s/ t% O; ? - ((= ecolor 1)
% _# M) v) m- F4 X - (set_tile "t_color" "1 red"), ]3 `- X2 l0 z( D2 R& K/ N
- (col_tile "show_image" 1 nil)* F0 B7 P( A4 x+ n
- )
' I* F- N. D0 K s5 ?" Q - ((= ecolor 2)
; k4 F9 W* b/ A) W2 f# D! v - (set_tile "t_color" "2 yellow")5 \, X! b E5 i* t, s
- (col_tile "show_image" 2 nil), i! c' G2 K; T/ j0 @* d5 \$ N
- )
5 w0 {7 c6 f# M: G9 O - ((= ecolor 3)/ L: y# x7 X |! {: m- Q
- (set_tile "t_color" "3 green")/ q: |% H% k3 K) Z8 i
- (col_tile "show_image" 3 nil)
( h! \9 y5 C R% f1 s& o' {- z - )1 B% r/ ]: W" k6 Q# ]$ B8 n5 q
- ((= ecolor 4)
0 y9 y( Y: \$ Z' y - (set_tile "t_color" "4 cyan")
z N2 Y% z6 {$ P9 r2 _ - (col_tile "show_image" 4 nil)1 T6 U) A1 j: b# a C4 q5 Y
- )" k* @/ s* N4 T" j9 l
- ((= ecolor 5)) ?# [, b+ |( X4 j4 W" m }2 m) z: f
- (set_tile "t_color" "5 blue")+ j" a- E3 ~4 G j9 R) P# [2 \: }
- (col_tile "show_image" 5 nil): q/ V7 K0 d3 x( ^, W
- )
7 |6 s: j; g, r - ((= ecolor 6)
/ b3 ~6 ~" w( |" X% o- b3 ` - (set_tile "t_color" "6 magenta")
8 P8 H) y& L2 O; T3 c" |7 }1 J - (col_tile "show_image" 6 nil)) X) I& w' R4 F! L. A; C
- )3 b: V, Y, L' W$ f
- ((= ecolor 7)' H* y1 N, k0 \& ]0 P- J9 T
- (set_tile "t_color" "7 white")
% S1 _) I. G, g, D- E - (col_tile "show_image" 7 nil)3 N# T$ K$ q, c
- )9 e s; ~6 }2 ?; U* Y' w
- ;; If the color is "BYLAYER", then set the tile to
7 _, R, B. g1 w- _ - ;; show it's set By layer, but also indicate the
+ k" f/ C( n( t% R - ;; color of the layer - i.e. By layer (red)
- a# c% [9 h* [& f- E - ((= ecolor 256)* h# i h, r9 ]! |7 |1 K
- (set_tile "t_color" (bylayer_col))
4 g* @5 d" _' F- _9 _0 ?6 \! {/ Y - (col_tile "show_image" cn nil)
' F% S$ w* d( J8 s$ J9 S/ M3 W: G - )
: P1 S6 V: Q/ g' {. D$ ^4 U6 [ [ - (T ; k/ u) b4 k" H: H. h, M9 z
- (set_tile "t_color" (itoa ecolor))
% V3 T# F- _2 P5 i* [1 w5 u - (col_tile "show_image" ecolor nil)
6 P/ C2 M$ N9 F4 u I( |" E - )
6 D4 v& q S0 v# p5 P - )
9 ~; }% F5 J; n - )
; u8 L& k% m# _" P: ~ - ;;
: m+ T3 ]: x" s$ m+ {! I- l+ d - ;; Function to put up the standard color dialogue.
8 G* q4 ^9 e( Z0 H - ;;
- u5 l. ]2 _% e9 L2 u; @( g$ L) z - (defun getcolor(/ col_def lay_clr temp_color)
3 s+ c5 a4 V. O% ^ - ;; col_def is the default color used when rq_color is called. If ecolor
2 S* q6 L6 s" O/ _' L - ;; is nil (varies) then set it to 1, else use the value of ecolor.
- `1 s( t; p5 l( V# c - (if ecolor
2 K, M' m" D6 T% s2 y - (setq col_def ecolor)
) j# E( I, ?) _5 Q7 R - (setq col_def 1)# s4 M0 y" @( O* d( W% j0 }0 i5 r
- )
0 U0 S# D% b+ U -
) R) D" s+ @0 a3 T1 I - ;; If we're working with a single layer, get its color6 U9 \8 u( t7 w- |+ h$ R
- ;; for use in the color swatch if the user selects color BYLAYER.; |1 ]; `! _' z) G8 a; K
- (if (/= elayer "Varies")+ d U4 v$ L, B/ h U
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
. e. \5 {3 z2 Q2 P - (setq lay_clr 0)
' ^3 G Y! ~% y, M2 o G/ f1 c - )# `+ e+ K- c; s \
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
! t+ B: t H. l1 ]! t* u - (progn4 F" _+ |! ?8 p5 K8 V* Q4 i
- (setq ecolor temp_color)
2 C3 u, N2 ?5 r, j5 i - (set_col_tile)8 ], Y$ l8 J' P" m$ D- t w: l
- ecolor
& \1 r1 Q% ^9 j K+ G0 ^* q - )0 B& t, p( |: M2 F5 A+ Q! G. a
- ecolor
- s0 E( t. h' N* B5 f) | _ - ) 3 s) ]' \/ c% r1 Y
- )
: ]: P. d. g, s - ;;
6 H$ w# o9 H0 u+ v* A/ U - ;; This function pops a dialogue box consisting of a list box, image tile, & m; F. O! r/ Q( s. q5 [
- ;; and edit box to allow the user to select or type a linetype. It returns
2 T g: ?- ?& i$ q; t! f+ W+ v* ]5 l - ;; the linetype selected." b& ^& d; ]; | v c' C
- ;;
/ L7 M! g! r& f8 T6 y! E4 b* [4 o! _/ ]" x - (defun getltype (/ old-idx ltname)0 W( Z. n' L3 B7 k5 I m1 [% Q- Z" ]( L
- ;; Initialize a dialogue from dialogue file% ]' {0 E7 D5 i6 }
- (if (not (new_dialog "setltype" dcl_id)) (exit))
# M: a/ M: t+ @) w, w5 M - (start_list "list_lt")
7 g" ^/ y) p, W' z U3 w+ H - (mapcar 'add_list ltnmlst) ; initialize list box
+ K8 Y3 O0 U$ g9 \4 A0 @1 B. h8 f - (end_list) I6 [, m6 j0 b6 p* R' k2 l" L2 Q
- (setq old-idx lt-idx)
4 ~# y8 b9 ?& u' ]/ @ - ;; Show initial ltype in image tile, list box, and edit box5 |/ }( ~# h* l7 n, X
- (if (/= lt-idx nil)
0 K0 D H0 z9 b4 ?. Z* H - (ltlist_act (itoa lt-idx))) _- H6 _" m' N/ }0 {
- (progn
7 b; v1 f# S- h8 M - (set_tile "edit_lt" "Varies")9 a3 p: R+ M* q6 q: _6 E- M! D
- (col_tile "show_image" 0 nil)
/ w$ S Y! |2 l& ^ - ); Y0 b. ]3 |- v/ B
- )! c" [7 t1 y- S4 U& T4 Q" p, ?
- (action_tile "list_lt" "(ltlist_act $value)")
2 I3 R! t [$ R% z* C: g9 Q( Z - (action_tile "edit_lt" "(ltedit_act $value)")
& b1 p' y' l& ^0 V5 J - (action_tile "accept" "(test-ok)")/ M- V2 P2 r% J' _. ]4 h
- (action_tile "cancel" "(reset-lt)")+ j q6 V7 d4 j- B
- (if (= (start_dialog) 1) ; User pressed OK
) h1 m6 b3 P4 k& j5 c, H - (cond
: T/ [1 R+ f4 U9 G+ j7 Y, H% ^0 y - ((= lt-idx nil)
9 m7 A# h" B c: Z4 O - (set_tile "t_ltype" "Varies")' P4 u7 a4 i$ t3 w3 X* |/ a) Y
- "Varies"% r7 F9 n: |( U
- )
5 v* m, g2 R+ S/ } - ((= lt-idx 0)
4 v3 t; E- I ~9 Q: g( _4 B - (set_tile "t_ltype" (bylayer_lt))
9 s* I! i8 X- G4 U' r c& ^0 ~) D6 O I - "BYLAYER") i! U* Q! Y$ I. F: y) I5 U
- )& I* t$ S% z* C
- ((= lt-idx 1). D! [& v8 L4 K: z: ^
- (set_tile "t_ltype" "BYBLOCK")0 L, _% r/ l4 V7 T9 k
- "BYBLOCK"8 I7 B! q& V3 F" B! p' y0 e. ^
- )
1 I4 E4 X" y% B- b2 u+ g - (T - q5 X$ Y4 s8 @9 |
- (set_tile "t_ltype" ltname)
6 b* W( s$ K5 y1 g3 C - ltname
/ l+ [) c! ]# w6 q6 ?8 ` - )
( x% k9 q: I) J! V/ J5 l' z - ). `" z0 u8 a' m4 V1 I" b. r* @
- eltype
' }5 f: Y- j5 A. i7 h - )! {' l! A f; O1 F) N
- )* m k! I6 d6 ?. t2 q2 k& g
- ;;' ]9 F k9 E" t) I, y. N$ d8 z7 P
- ;; Edit box entries end up here
" w8 E: G- @* }! J# x - ;;5 o* K1 B. W( _% p. e5 G1 ~8 `
- (defun ltedit_act (ltvalue)3 t8 H0 {( D/ ] v6 O" l: x1 e
- ;; If linetype name,is valid, then clear error string,
/ I1 H" j2 q/ A7 R: p - ;; call ltlist_act function, and change focus to list box.( }" a6 c1 n9 Z' v2 X' A: F4 K
- ;; Else print error message.
; Z, g `" V' O- V- b# X6 G1 T - (setq ltvalue (strcase ltvalue))3 I% v% E) Y0 _) R' z
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))# Z" ?' a$ Y* L: B+ L; g O
- (setq ltvalue "BYLAYER")
, l$ D" a. F: d" e - )& J1 S! c, T& r& i B* ~' \
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
& {2 p" p/ \2 s; r0 u" X- V' M - (setq ltvalue "BYBLOCK")
. c, B* V* T( Z1 u9 @0 `0 X - )5 G2 c0 l1 q# O( [
- (if (setq lt-idx (getindex ltvalue ltnmlst))
% G2 F! f9 f% o% G; B+ ` - (progn
! z7 {" V& e; R" T7 ^ - (set_tile "error" "")$ E/ U( } L9 ~, Z
- (ltlist_act (itoa lt-idx))
* {+ B# C2 ^" S - (mode_tile "list_lt" 2)
5 A- g, {. e% b* B1 p& y - )
' @+ R1 [- o, s, V. y0 E9 ~) f - (progn/ O* Q# N( v( _" c; R* X
- (if (/= ltvalue "VARIES")
! L4 O) F( K q - (set_tile "error" "Invalid linetype.")( k! M' q2 n# D! d" U$ N
- ); d0 x: _8 I+ n$ F" {& {
- (setq lt-idx old-idx)7 U! r' u, g* t6 X3 \2 E
- )
7 q* Y1 T( G g6 \& d - )1 e: c4 T2 ^* p+ T! A3 O
- )- T- z! ^" I4 X4 f7 C4 Q4 |
- ;;$ @6 G0 y; j) ^
- ;; List selections end up here
9 L8 P$ m1 {9 [9 u, o5 L7 o Y - ;;
2 R5 B f! S$ y/ Y- A - (defun ltlist_act (index / dashdata)
( }0 C% a6 T& \" l ^$ G - ;; Update the list box, edit box, and color tile8 j; o8 d! S" V
- (set_tile "error" "")5 ~% y. o0 s8 U I; n8 k" y
- (setq lt-idx (atoi index)): l1 L' c2 j9 Z; ?
- (setq ltname (nth lt-idx ltnmlst))
) d8 A, N W( e' N - (setq dashdata (nth lt-idx mdashlist))& t; C8 Q* D g0 j6 e
- (col_tile "show_image" 0 dashdata)
, ?; _" c6 c/ }2 A- {- d+ ?+ y - (set_tile "list_lt" (itoa lt-idx))
& t" f& y; U( ]% d, c" ] - (set_tile "edit_lt" ltname)
! W0 K, v* Q9 F+ a - ), C, s, U) u3 C3 s) |
- ;;9 j$ H& k$ w2 z `
- ;; Reset to original linetype when cancel it selected
7 V! N X, s4 b0 C - ;;! [& h4 e4 y, ]/ L" b% u
- (defun reset-lt ()9 y7 g+ d9 D( R! C% d
- (setq lt-idx old-idx)
% I/ e- j+ D4 Y d! U! z1 ~ m - (done_dialog 0)! v- W' l! b2 r: _! c Y7 V" ?
- )
; D' J- w: b+ x, L- {# | - ;;
5 m4 ?" b4 [" v# u7 M4 A0 X - ;; This function pops a dialogue box consisting of a list box and edit box to $ R6 ], l: N# k m3 }
- ;; allow the user to select or type a layer name. It returns the layer name
7 ]& k) F- H% j. \ - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
1 F9 U; j* V+ y& S% F- R - ;; drawing.& i* m( P+ Z+ g; y" }1 A$ i0 d
- ;;% N+ { ]4 s6 H2 Z3 ~
- (defun getlayer (/ old-idx layname on off frozth linetype colname)3 Y/ z$ A9 v: g/ W6 B$ g7 c
- ;; Load a dialogue from dialogue file& o1 B, ~1 P+ A: x' q
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
4 |: k, f# C6 j9 I' l# `+ ? - (start_list "list_lay")
4 B/ j# b7 z, r2 G: o Z - (mapcar 'add_list longlist) ; initialize list box
' {+ W$ f& [+ q9 ]6 T& f; N# E3 J - (end_list)6 _% h( J# E' ^" ~7 W
- ;; Display current layer, show initial layer name in edit 4 Q$ w, c" k9 }5 F5 g# h
- ;; box, and highlight list box.
8 P- H8 O+ G3 k" w3 d - (setq old-idx lay-idx)
& |1 s+ |$ _! [! ]. Y - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))' F- x( h2 C* d0 u6 ? K
- (set_tile "cur_layer" (getvar "clayer"))
# v& Z# T9 W( F% r - (action_tile "list_lay" "(laylist_act $value)")
6 C r s" D9 M: f - (action_tile "edit_lay" "(layedit_act $value)")$ s+ I- g9 Z3 z$ s3 M( ]+ h
- (action_tile "accept" "(test-ok)")
9 Z2 y! k; G4 U - (action_tile "cancel" "(reset-lay)")
4 J- p% E' s( ~! ^1 H% `& ^2 N3 S% C - (if (= (start_dialog) 1) ; User pressed OK
3 y1 Z" d+ c8 o ]0 H - (progn" M: u" {5 f/ Y
- (if (= lay-idx nil) (setq layname "Varies"))3 _; \7 x" j. U" S8 I2 y
- (set_tile "t_layer" layname)
0 _# C- E1 u7 C% R - ; If layer or ltype equals bylayer reset their tiles/ r0 g6 @' a/ `( n* e7 W1 d' i; {
- (if (= lt-idx 0)
3 [1 M# Z( i9 \0 O% H - (set_tile "t_ltype" (bylayer_lt))* h" \$ r" t; K" c
- )- K" V3 E" q( k; R! p, e' B
- (if (= ecolor 256)7 h, ^( O( m" n# Y9 h( Z4 d
- (progn9 S+ ?" g2 \) k0 i" F
- (set_tile "t_color" (bylayer_col))6 F; H0 b' W8 {% g
- (col_tile "show_image" cn nil)! V( g- |5 o9 p0 t- n# ^
- )' \( m+ }2 ?) O" D7 T" y. v( b: p
- )
: `) W* n/ p" ^% l( J3 V - layname
I7 b" ?! @/ }1 _9 M9 s9 _, N - )( Q4 a( i/ p, Z3 I+ Y# E
- elayer7 Y9 y( _6 ?& G. o
- )$ F* i6 @4 A$ k- V) X2 H! F) `
- )
7 h6 K5 M2 p1 F7 Z6 T2 c5 w8 D# J - ;;0 E' K C k/ H! H; H; Z
- ;; Edit box selections end up here
' ?( ^ e5 S3 B - ;;
f& ^; ^4 O' X2 r2 F4 V* } - (defun layedit_act (layvalue)
- n0 Y. v) n3 H8 t# z - ;; Convert layer entry to upper case. If layer name is
# j6 Y; a5 {$ O8 }2 G- S - ;; valid, clear error string, call (laylist_act) function,2 p* z: ]/ L! ~1 H; X; }1 I, e# x$ Q) k
- ;; and change focus to list box. Else print error message., h {" v) |! _$ F* v& z, a
- (setq layvalue (strcase layvalue)); U$ M0 B' A" ]0 c
- (if (setq lay-idx (getindex layvalue laynmlst))
0 z1 j9 g0 o4 B* ?0 ]+ E9 _) Z - (progn2 T9 J$ r& T/ A; S
- (set_tile "error" "")
- R6 P! t) Y- x" G' N - (laylist_act (itoa lay-idx))/ q/ y6 b0 o6 |, ]( E/ _
- )
9 a! m# h3 N% z% h) h" S - (progn
D( J, \7 [5 a - (set_tile "error" "Invalid layer name.")1 ?. c' k9 s0 y) v( ]
- (setq lay-idx old-idx). q9 V/ Z Q9 [7 [ ]
- ). W7 {5 U' y1 i! S+ S
- )- V7 K# v* M" w
- )
3 ? P( o2 k5 B( k0 w, ?* I' L - ;;
- L+ A& T. |# I# _: M1 n - ;; List entry selections end up here
* J5 h1 K! ^% Y& |3 d, j+ ] - ;;& I4 T6 p" l5 S) v2 `) V
- (defun laylist_act (index / layinfo color dashdata)
; j. @6 T! d9 ` - ;; Update the list box, edit box, and color tile
* p t) |* r6 o1 p - (set_tile "error" "")
% [1 \; S$ l) `8 A$ J. l# V) r - (setq lay-idx (atoi index))
4 o) y& j6 g! L* R# p& k8 { - (setq layname (nth lay-idx laynmlst)). j) r& h) K4 E
- (setq layinfo (tblsearch "layer" layname))
* h1 J9 ^0 p7 ^5 Z$ F2 J5 d* O - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
4 B1 B& i) s9 }; x& u/ D6 J - (set_tile "error" "Cannot change entity to locked layer.")
9 a6 Z7 a2 M. T1 C - (progn
+ Y1 y5 j5 Y3 Y! `) _, N+ H1 g% J7 ~0 k - (setq color (cdr (assoc 62 layinfo))). D& ?3 z% w/ }+ V# `* p7 U1 H
- (setq color (abs color))
2 I% f$ q& T" ^" D# ~3 {- { - (setq colname (colorname color))
" _8 l* x4 N. _* {$ l) G. Z1 } - (set_tile "list_lay" (itoa lay-idx))
" m5 ^% `; r0 P/ Y: x - (set_tile "edit_lay" layname)
3 t# i0 T |! }* @ - (mode_tile "list_lay" 2)7 ~! \1 M8 E7 ?8 | F2 W# Q+ P1 p
- )4 \3 D4 q/ Z2 A7 a5 [
- ) x0 y* o; a# o6 E
- )/ |( ~& f6 M) y8 e& G) J% c) v
- ;;
( R0 b; s9 E5 W. }. o6 T - ;; Reset to original layer when cancel is selected
/ O6 s4 p' y7 w0 p" K0 O - ;;
5 l6 r" `% T1 Z8 g - (defun reset-lay ()+ ]/ z& i- F$ _& r2 F: e
- (setq lay-idx old-idx) k0 ~9 ~( E6 m. L9 J% d9 R, A2 `
- (done_dialog 0)4 K6 `! g+ V3 E9 Y$ a4 W# h/ ]
- )( q' f) D$ ?( P7 {2 j6 c' Z6 ^, r
- ;;) C) `3 V7 @, x: C1 L- M
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
& K) W, R- \9 W5 }& q! D1 s' G( ] - ;; string can't be converted to a real, this routine checks if the first 1 H5 [' j/ j# Q+ k' g6 E5 D m! }# S6 O
- ;; character is "0". It also checks to see if the value equals "Varies".5 D) \! ~ C1 c5 M
- ;;
% J8 Q7 G5 H; F: P$ ]& S' N" A5 e8 [ - (defun getthickness (value)
0 U: [' U" T4 @- G5 Y5 N: J: q4 t - (setq value (strcase value))# E0 z3 v* y3 d% I! z- j% h; q
- (if (or (= value "VARIES")
0 N; b/ C$ Z# K- @4 a - (distof value)) V G0 R6 G% C% I
- )
0 i5 P1 g) ?0 A8 Y! o2 k$ K - (progn
, s6 P/ W( p+ j# E/ A, [ - (set_tile "error" "")
" H; Q0 Z. s+ p. { - (if (= value "VARIES")" i% c0 f1 k4 n4 o/ ~0 `* n% X
- (progn
/ l/ w1 \ J" c2 Z - (set_tile "eb_thickness" "Varies")9 \4 @. t |' p' |. e0 ]5 y! ~" y
- (setq ethickness nil)# y( Q \" Q' Z5 i- r1 q8 j
- )1 E. x7 [- ], h6 Q# W" Z1 r! [9 K
- (progn
6 W0 U3 s: ?. `& Q: q# t" m# Z - (setq ethickness (distof value)); z# g! V6 O+ e7 P4 U& u V
- (set_tile "eb_thickness" (rtos ethickness))0 z: M* r) t1 p
- ethickness
( @, ~5 {* H( m0 {' M3 ^# S+ u - )- b# S$ c0 @& {& Z- S: `8 y
- )
& F+ A$ k$ U" \; x1 {( ~ - )) M) n& D. ~8 Z+ A
- (progn1 e2 Z+ y5 T/ P# S
- (set_tile "error" "Invalid thickness.")
( h, |) w" y; p+ L! y - nil2 c4 R- D2 g. c3 ]/ Y' Q8 c
- )
! z1 G- |1 D' \5 k2 Y+ W - )$ ?- j% Q7 A- ~' [4 i0 O- G
- ), e' Y7 w5 Q9 ?" ?' S! x! P5 p+ q
- ;;
- p; K+ E) |& Q D1 V - ;; This function make a list called laynmlst which consists of all the layer " \3 { K' ~+ \, S& q
- ;; names in the drawing. It also creates a list called longlist which
! ~" a, D, G2 O, u" f" K - ;; consists of strings which contain the layer name, color, linetype, etc. * c, t* F2 T/ h- L3 M, c
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
& C3 d1 Z' W' A/ }# ~ - ;; same.2 Y& D( H4 k% e/ \! B
- ;;
" K3 N2 Z2 H+ P8 K* b$ | - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname 0 d) m# O* V M& P5 G% Z2 |2 D
- xdlist vpldata sortlist name templist bit-70
/ [9 |- w7 y# _ - )
, ~: B5 \: k* {$ e D0 t - (if (= (setq tilemode (getvar "tilemode")) 0)
7 c, N* e* D# z - (progn
! j0 [- b4 t* k: W - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
V! w, O% T4 h- p5 T& U. e; m8 J - (cons 69 (getvar "CVPORT"))3 T% B+ P0 h/ R6 N+ Q' K2 r
- )" {: w; T- w+ I: y _
- )
7 c5 Y* d7 |. n% m* w8 | - ) 3 q9 N6 G: n$ w
- (setq cvpname (ssname ss 0))
! h' Q/ L7 }; V( N; b - (setq xdlist (assoc -3 (entget cvpname '("acad"))))8 g* O% w$ @ N$ B9 o' W. y7 g" N+ c
- (setq vpldata (cdadr xdlist))
+ h2 }$ t5 o1 k8 ~% j$ S' m9 X - )/ c' k; d5 o0 R3 ~& F
- )
, [' r$ e$ g% X3 t- R - (setq sortlist nil)' d# B7 I* f# D- J4 \# |/ z
- (setq templist (tblnext "LAYER" T))
5 z. f1 L( {4 c' n - (while templist, L; t. w+ l0 o7 g
- (setq name (cdr (assoc 2 templist)))
) T+ u4 l7 N7 ? - (setq sortlist (cons name sortlist)). u) _) S0 s* |* ` K
- (setq templist (tblnext "LAYER"))
; Z& w. ]9 r* _2 ~/ Z - )
7 l# F% Z3 R& k+ ~, { - (if (>= (getvar "maxsort") (length sortlist))
) o/ W2 c8 S- M g+ {. v+ J - (setq sortlist (acad_strlsort sortlist))% Q6 }8 F: d5 ] B2 W( W& m/ G
- (setq sortlist (reverse sortlist))5 B0 O3 O; G+ W9 E% u
- )7 I9 g$ g5 _. T; S3 {* P* N) C
- (setq laynmlst sortlist)
' {, a; z# [' J. r4 C - (setq longlist nil)
. d- ?/ B5 T7 f* H7 W6 b - (setq layname (car sortlist))
, p. J+ j0 q* h5 T - (while layname' Y! g/ d7 |4 G( P
- (setq laylist (tblsearch "LAYER" layname))
4 E! m/ ~" f( R3 s5 E. H* { - (setq color (cdr (assoc 62 laylist)))( ~+ S& y2 `& X+ v& ?: D( C
- (if (minusp color)
" t/ \6 x" D' q& ^, V - (setq onoff ".")
$ B9 E8 B( c4 P) I0 |3 R$ [ - (setq onoff "On")! {4 q6 [* B i8 O
- )
. _% B+ ]1 y( w; v - (setq color (abs color))
6 K) G% k; j4 } - (setq colname (colorname color))
3 {4 R( h9 R' I$ s - (setq bit-70 (cdr (assoc 70 laylist)))% p+ Q0 q/ i1 O- l
- (if (= (logand bit-70 1) 1) s7 z$ W. G m( { e, q
- (setq frozth "F" fchk laylist)) @, r9 q5 X8 R! \( n( H' v4 f
- (setq frozth ".")
" @! M% k4 b6 g% s! h - )! l$ R0 ?/ M& |$ [
- (if (= (logand bit-70 2) 2)0 {; ]$ d/ s. h# S0 A
- (setq vpn "N")
1 M( m1 K. D5 c1 e - (setq vpn ".")
8 H* l3 C" c& \ - )
- R, K4 F: x2 ~9 B - (if (= (logand bit-70 4) 4)
3 F& @% H- f- V, G9 g0 \ - (setq lock "L")
9 B# X. ?1 Q" l: w; s/ s/ o7 y - (setq lock ".")
, \) ^: o- n( |# p - )# ]% w' k+ `; Z2 f
- (setq linetype (cdr (assoc 6 laylist)))9 L! ^% o0 [' T }) v, {
- (setq layname (substr layname 1 31))
7 l3 V! n6 p4 z; a+ ?: i- {% c% G* K - (if (= tilemode 0); X1 d, g) b9 E6 p+ S7 ]* l
- (progn4 I1 h; k# s7 c3 u% c9 C) z1 C
- (if (member (cons 1003 layname) vpldata)
( v- {' f& ~! d& }. ~ - (setq vpf "C")$ O/ c" O6 q u- v0 H4 U; `# @
- (setq vpf ".") ^) V, x, Y) G( G8 l* Q, l7 X
- )2 D& N' E- _' v% r' _) ^
- )1 I; q9 r9 m( t1 A8 [, L7 o2 F
- (setq vpf ".")
7 |; H0 X" T! {2 } - )
1 x) D- M5 q1 @ A/ ]/ a& ` - (setq ltabstr (strcat layname "\t", b# j* R6 m8 ]* e+ ]; w" [ K% s
- onoff "\t"' r5 N3 c$ O4 I; A3 {- N
- frozth "\t"$ v' C* a# s% G/ ^& k' a& D
- lock "\t"
) I, k8 L3 u6 l# w& }. k - vpf "\t"
) w2 h1 T' i4 H - vpn "\t"
# u* U! y' l- E. T" k( N; n- m0 @ - colname "\t"2 r* T, q9 u8 {4 c
- linetype
- m" [( w# s6 \ N - )
1 a, z; w% j z! A; ?, t& [( D; ~ - )
7 S$ w$ \, y; D+ p - (setq longlist (append longlist (list ltabstr)))
0 y" R3 N) U+ E; w0 i$ } - (setq sortlist (cdr sortlist))* \+ U7 g! e0 r6 U1 ?: l
- (setq layname (car sortlist))* @, N& B6 n" {
- ) \- Y9 v8 [& ]+ A" W9 q* C/ x
- ): ~! \+ `4 m- S0 L
- ;;6 d) J! O/ c1 C q1 U; a: ~) l4 x0 k9 o
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
. h8 f: R8 T6 V5 R1 f6 k - ;; linetype names read from the symbol table. Mdashlist is list consisting / ^0 X$ d. _8 G$ q5 m& j# B/ o
- ;; of lists which define the linetype pattern - numbers that indicate dots, , i" I% a* ~5 V: e9 b; v+ W) [
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
! r1 P+ Q- t7 e - ;; order of names in ltnmlst.+ [" b0 e, Z0 k/ y
- ;; I# w6 L- ]- I7 c7 m5 @ ~5 R+ A0 A
- (defun makeltlists (/ ltlist ltname); b H+ n; H% _* W& f" b7 {! \
- (setq mdashlist nil)8 v% C' a/ T$ y2 e0 @! k
- (setq ltlist (tblnext "LTYPE" T))( v P; I! A8 ^
- (setq ltname (cdr (assoc 2 ltlist))), |$ l/ ~5 U6 D/ D4 N" }
- (setq ltnmlst (list ltname))3 C P4 k' W5 f" g# b e( U, q+ i
- 4 X/ D: |4 k1 u% Z' L N, |
- (if (= ltname "CONTINUOUS")
+ G% G) [2 @7 {7 Q5 _ ~ - (setq mdashlist (list "CONT"))/ M9 w5 q$ O( R$ _# | {' t( R. D
- (setq mdashlist " d3 H/ h- x7 _. z0 o
- (append mdashlist (list (add-mdash ltlist)))
; ?2 }: y: P2 h - ) j( d7 a/ h" F& C; d' g
- ), \. K- D* ~6 V& D4 {$ U
- (while (setq ltlist (tblnext "LTYPE"))
# o5 z0 w; _. U- T5 B+ q/ U( |- Z5 o( ~ - (setq ltname (cdr (assoc 2 ltlist)))+ e; I/ {( S2 X9 P; h& ~
- (setq ltnmlst (append ltnmlst (list ltname)))
6 l* n' r1 p- O - (setq mdashlist
: P" L+ m( ^0 r/ s: T% K. f - (append mdashlist (list (add-mdash ltlist)))
: W# {; L4 `/ h- F( j) Y I - )
1 a+ U, \( u% H1 o+ x# K - )6 Z2 C; T6 n N7 q
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))9 R- Z: g$ a1 e* s( J5 X
- (setq mdashlist (cons nil mdashlist))
+ j/ X& G* |' B - (setq ltnmlst (cons "BYLAYER" ltnmlst))
7 A7 z" S' g% s. i) V2 |, _ - (setq mdashlist (cons nil mdashlist))
; B3 K4 Q6 u" E% V9 m - )
7 w+ A! Y; `& M: U - ;;$ X( e5 y' K+ d8 m
- ;; Get all the group code 49 values for a linetype and put them in a list # K. }, ?% }/ R( h% _2 o4 Q5 R
- ;; (pen-up, pen-down info)+ k0 U/ c, a7 Z
- ;;! A7 Z' \1 D& }) y2 Z. X: [
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)+ Z& E, h- H" X, x
- (setq dashlist nil)
" S* m1 E5 S4 `; f& j - (while (setq assoclist (car ltlist1))8 S M, l6 B& A2 t* ^ v
- (if (= (car assoclist) 49)0 q" q4 E6 s6 w& U/ g4 h0 H" _" E
- (progn
+ x/ o) Y Z# U5 U$ ? - (setq dashsize (cdr assoclist))6 f+ O7 u7 D; [) W
- (setq dashlist (cons dashsize dashlist))
7 E! ?- z' ^" f* D7 y( K - )
1 l. m/ h% k0 h0 z, |; r) e/ V# g+ y - )
( `- s* n0 `% O+ w - (setq ltlist1 (cdr ltlist1))
; v& v5 U X1 t, `: O. a! W - )' o/ l1 H3 {: Q) Q
- (setq dashlist (reverse dashlist))
$ {; M8 G; j# a$ z$ l - )7 E {6 {0 [3 b( U; M
- ;;
" D& ?0 g) C- e( i& d4 j, \ - ;; Color a tile, draw linetype, and draw a border around it7 b5 y4 g2 ~3 \1 O0 `
- ;;' ^+ H6 A5 Y2 `4 j: r
- (defun col_tile (tile color patlist / x y): f Y2 [" k& s1 |& Q
- (setq x (dimx_tile tile))
: u4 Y2 p& q* D$ a - (setq y (dimy_tile tile))& N6 ^5 ^: o" v0 \" F! j! ~ ^- v
- (start_image tile)
" }' C' X0 W9 J2 f2 H+ \& @9 N - (fill_image 0 0 x y color)
5 z4 ]. ]5 I* M - (if (= color 7)% N: f8 h1 x c2 n
- (progn
. [- V4 z" U6 \: K2 l: V - (if patlist (drawpattern x (/ y 2) patlist 0))
8 }- s2 @0 z# b( `/ ` - (tile_rect 0 0 x y 0)8 A* W7 [& T( B/ v/ [
- )
4 h0 L; v- d, H$ w, W7 u# a - (progn
; u0 G2 g! A# Q+ K0 V - (if patlist (drawpattern x (/ y 2) patlist 7))+ ~- [2 P% L% I+ Q) ?6 @+ s/ ?
- (tile_rect 0 0 x y 7)
: R1 O3 `9 H: I. T - )9 w' X) o- H3 q i# p
- )1 V% Q" m: s" [0 W, O
- (end_image)% H0 M1 l3 Q% W5 [, c
- )
! V4 e; T9 h+ ]" X- J1 P/ G - ;;
, q) p. }% `" E, m+ m t - ;; Draw a border around a tile! p M4 L J" b4 b' y$ B) I
- ;;' E( T" A$ ?6 H2 \
- (defun tile_rect (x1 y1 x2 y2 color)/ s6 h: }9 m+ d3 s8 P
- (setq x2 (- x2 1))
8 u) ?6 S3 P# ^ ^6 [4 A( X' p - (setq y2 (- y2 1))2 h+ S `, G9 H
- (vector_image x1 y1 x2 y1 color)2 p- g7 [, l- y) Z
- (vector_image x2 y1 x2 y2 color)' Y! `! c; j9 u0 _6 E9 h* V5 K; c
- (vector_image x2 y2 x1 y2 color)
& p/ k" g* k8 x9 B8 Q - (vector_image x1 y2 x1 y1 color)
2 Q; q% u5 ~) U0 z) \ - )
' U- {" n( @9 J6 A+ O. `$ o% p - ;;
& |" v8 z2 I+ I1 U' O( @/ e - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
% d( `, x: u( ]0 k5 a- Z - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
$ i) F% r) W4 [) R7 r& E, ]3 E - ;; list of numbers that define the linetype, and color is the color of the 0 ^* o- m6 \1 v. {3 B
- ;; tile.) g, p0 {0 U4 D4 u9 q
- ;;: s# ]# w' H- A" ]5 y
- (defun drawpattern (boxlength y2 pattern color / x1 x26 @8 e/ b2 U9 @) G( q+ a2 U
- patlist dash)
8 B( s- ^# B" d: o7 z C - (setq x1 0 x2 0)/ J6 ~' p0 V' u7 q% T+ H% N
- (setq patlist pattern). d6 l$ ?4 P! t3 j7 b
- (if (= patlist "CONT")5 G) I% T' v& Z& P, m! {
- (progn
# I3 d% c/ d1 l8 i - (setq dash boxlength)
% l, H7 V) `& s6 c9 x - (vi)
$ b: L: S6 f& L' o6 n) D! q3 f) ]- b6 i - (setq x1 boxlength)
( e) t( M/ F; \# G+ r - )* u* W5 P# E" j0 V* @3 x7 J: L
- )' w: j( k5 W. r) m
- (while (< x1 boxlength)
# r$ L0 G+ w; ~ - (if (setq dash (car patlist))
- b0 R+ x# j3 K* d" [9 B0 `6 {( Z - (progn
; I r3 z. B- J0 q6 V - (setq dash (fix (* 30 dash)))
4 J7 V' I) u. j) z8 L. T6 h8 x7 _ - (cond 9 p3 q# C# U0 C k! E
- ((= dash 0)
" u. ^; D6 I; a. y* }& w1 ~$ ~! j - (setq dash 1) , B7 N3 Q7 j8 x; }7 N+ v
- (vi)
! L$ Z, h& t4 Z# a2 \% f - )4 }* O* @0 {: O9 |- T
- ((> dash 0)
4 y" b% L! I% C5 ]$ o- E4 Q - (vi)
: G v" ?! `% p' S5 O% S9 d - ), x2 Z) v9 a/ K$ Z4 C5 M" B7 u
- (T ) g0 ]7 x( j3 Z. L# X
- (if (< (abs dash) 2) (setq dash 2))5 v' l" W8 i- S
- (setq x2 (+ x2 (abs dash)))& s+ f2 O2 l1 i; A! B
- )
; E. j6 f* k, C7 l& | - )
' @ N7 l8 x5 h. i - (setq patlist (cdr patlist))* X0 }/ T1 Z' m
- (setq x1 x2)6 I, l. Y/ e0 u& m! D) p6 h' Y
- )
* e. z k: L' j. r: X - (setq patlist pattern)" U$ ], E. @9 y9 U7 b
- )0 x8 t$ h6 w6 }& n8 u
- )% t0 h$ ]$ L& {# p9 x
- )
3 f3 K7 f( I7 r; t" g4 y - ;;% x$ I$ | H. _0 @9 c! p" T
- ;; Draw a dash or dot in image tile/ f3 o r% P, k
- ;; _# E, b r' c. e
- (defun vi ()
! f3 s8 g' Y, G& C2 w5 E - (setq x2 (+ x2 dash))3 Q& t. D" l+ ~
- (vector_image x1 y2 x2 y2 color)
% V+ f# H2 c/ W3 g; h# d; {# M - )& `( C% ]) y/ }; ~
- ;;
# }. H& C, I8 n( l4 X- D - ;; This function takes a selection and returns a list of the color, linetype, : Y* u% ?, \3 R. Y/ g
- ;; layer, and thickness properties that are common to every entities in the |: x% \6 g& o6 p7 o
- ;; selection set - (color linetype layer thickness). If all entities do not ! V* x1 [3 u5 m* R( b5 l
- ;; share the same property value it returns "Varies" in place of the
# Z. z [5 ]. ?( R - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)6 D: {: P$ K1 }% g
- ;;
" Q9 C1 z" q8 J& }/ C4 b G - (defun getprops (selset / sslen elist color ltype layer# B6 U8 ]. i* H$ ]9 x
- thickness go chk-col chk-lt chk-lay chk-th ctr)
6 W& [$ L( P* H6 E$ N - (setq sslen (sslength selset))
; z9 i5 @) e$ w6 M& }, {+ H! j - (setq elist (entget (ssname selset 0)))$ X, k3 I8 H/ x; d$ w
- (setq color (cdr (assoc 62 elist)))4 O6 e" U+ l0 h% ^
- (if (not color) (setq color 256)): C! q2 v- S, p$ V
- (setq ltype (cdr (assoc 6 elist)))7 x6 Y! z8 o$ i9 T" K; q
- (if (not ltype) (setq ltype "BYLAYER"))
0 Q+ Y& `) V3 f+ f - (setq layer (cdr (assoc 8 elist)))
6 [- v( d' \6 n. x, } - (setq thickness (cdr (assoc 39 elist)))
' J2 R& }6 W- p. m$ V4 G) W3 P - (if (not thickness) (setq thickness 0))
) h% c% Z- ]" t5 C! N V. t - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)2 l+ `3 f2 @/ v* J0 _6 @; y5 w' t: J
6 |5 P7 |( C& c- _) [+ d# q- ;; Page through the selection set. When a property
4 t) M, ]* q8 P& a) N0 W1 { - ;; does not match, stop checking for that property.6 x8 S8 ]% z/ Z5 P( {& m6 v6 o
- ;; If all properties vary, stop paging.
% R& F2 c' d' {9 [2 w/ z+ _+ C - : L9 t# T6 E' m8 @1 P" q- [
- (while (and (> sslen ctr) go)
( T3 G+ m7 M6 p! H& m0 r8 H - (setq elist (entget (setq en (ssname selset ctr))))
6 r: N+ p7 W4 g! e/ M) k2 J6 F5 t - (if chk-col (match-col))
0 M0 F" W! i3 y9 T- _5 i" ~, Q - (if chk-lt (match-lt))
5 B) j' d# A! t/ f* k - (if chk-lay (match-lay)); X6 E8 L- A1 u4 b
- (if chk-th (match-th))
7 g2 c2 J6 s. i, G) M3 Q! y - (setq ctr (1+ ctr)). d# T# _4 t* {/ p
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th)). L1 t5 g: m A; p
- (setq go nil)
9 @; e4 Y2 W; c6 p! U - )
, y+ L% J y! z6 ^. Y2 [" O# l - )
" W+ A& J& h. H& ~; o h: r - (list color ltype layer thickness)
; l: d. A$ h/ p5 [7 z - )
1 H: J# L) i5 |# w7 O
+ ^8 _( w5 U/ s# @9 E- (defun match-col (/ ncolor)
4 @7 h% v& ^' E( |/ Y. o H8 } - (setq ncolor (cdr (assoc 62 elist)))) m8 c4 D6 M% o; u( ]( f$ @9 O6 D
- (if (not ncolor) (setq ncolor 256)); R" q4 J' y0 ?% f, S8 M! i( A
- (if (/= color ncolor)
4 I1 y: n; D5 ?, y: f( s - (progn9 X C$ I& g: G# S2 q( {. i
- (setq chk-col nil)4 e. Z# X* ?& y$ m) x' I
- (setq color nil). d/ V' u% b! E) i5 e" F
- )
# e$ p4 c3 h* u2 l( o% ~" E - )
( b/ Z8 W! _: v* L3 D - )
8 E( I3 a9 j6 A$ b! I) S* t9 Z: i
0 X1 |4 e) k0 L, c1 ]* j! W; ?. E- (defun match-lt (/ nltype)
3 L* X. w; m& G/ P - (setq nltype (cdr (assoc 6 elist)))
, r; r) z5 X, D8 X3 i, { - (if (not nltype) (setq nltype "BYLAYER"))' E6 ?" E8 w9 H( t" N
- (if (/= ltype nltype)
4 z* D: c; D6 @" d1 d) T - (progn, _5 ]6 \) f, F( M, l9 E- `
- (setq chk-lt nil)5 K# j2 v0 T/ R/ D# w1 @! I
- (setq ltype "Varies")
2 N# a$ W* C. ]& q8 E0 R' S3 i - )7 j, c$ C% z1 H; c
- )
( m) d. q$ B, ]" \! S. N5 a - )
8 }5 Y. V% k* ^$ C) r
) ^# q/ n8 G$ A' L8 ~9 }; A- (defun match-lay (/ nlayer)
+ Q% n) h% ^) v. p - (setq nlayer (cdr (assoc 8 elist)))
6 h/ d1 E% B' R( ] - (if (/= layer nlayer)
" V6 n" b) y0 a. c: { - (progn
% a9 z0 _: i! s9 Q - (setq chk-lay nil)
! ~$ c2 d& I {% L - (setq layer "Varies")7 q% l2 F; K1 ^- m0 v; H
- )
' i( E7 x' W9 p- A - )
# g% c( o% J9 r; D6 P - )
/ J# H; R# r4 s9 I; B- A% N - , E: l( X) J' `2 a F* x
- (defun match-th (/ nthickness)
& S4 A3 M a6 r* P - (setq nthickness (cdr (assoc 39 elist)))
' o, c! ], g% D5 _. L - (if (not nthickness) (setq nthickness 0)). E/ b& x! o3 i6 ~2 y \. {
- (if (/= thickness nthickness)& O1 G+ O1 \# |' E
- (progn$ I( c7 |# T; F5 B. q( l8 X3 P
- (setq chk-th nil) c2 t' K" c/ z1 h1 n
- (setq thickness "Varies")
* `& P; k5 B' i/ t4 D - ) U7 j+ `, D0 i0 M
- )
5 ]0 b7 c; P% P8 r! T1 l& h- K - )
) s% _" n ~0 z4 L2 [ - - a6 v3 y; Z3 [5 r+ k8 j5 U. ~& G
- ;;* F+ r" J' D8 ^5 P# E! U% m, T
- ;; If an item is a member of the list, then return its index number, else
2 |' Q9 q6 e G2 w/ a( }2 O - ;; return nil.9 ^% V6 m+ M9 S9 ^. b1 }
- ;;# K* Q1 E! [5 @& K8 M
- (defun getindex (item itemlist / m n): J" g0 j. \3 K. C
- (setq n (length itemlist))
$ |, O Z4 G; |" X( X* H - (if (> (setq m (length (member item itemlist))) 0)
! j2 Q5 D; U* k - (- n m)
! w7 j7 Z3 Z7 l& A3 ^" K - nil
8 ?0 T7 G4 n0 H$ y, r1 S+ `5 x - )
5 t' n3 r0 i* P `* N6 U. \ - )( k% H9 U: l, x! j
- ;;
% C% c1 P" s$ `: G - ;; This function is called if the linetype is set "BYLAYER". It finds the # V- y: k; s& o; r. S
- ;; ltype of the layer so it can be displayed beside the linetype button.
4 `! T7 }6 P4 S: [8 m9 C - ;;/ ^. C5 t _7 L1 n
- (defun bylayer_lt (/ layname layinfo ltype)
- t; M: l$ d+ w6 n2 @ - (if lay-idx' u* b% g- D2 i+ V3 {
- (progn
; N7 ^2 l Y8 ?7 J - (setq layname (nth lay-idx laynmlst))
3 b5 P- ^, w2 D2 R/ S& w }3 ~ - (setq layinfo (tblsearch "layer" layname))' q! ~3 T9 }9 R4 S4 J- U) E
- (setq ltype (cdr (assoc 6 layinfo)))& V# Y( P, ?; H
- (strcat "BYLAYER (" ltype ")")/ k t' `' N& H8 {, Y& R8 e: `
- )+ y( ?6 S6 `7 w6 z
- "BYLAYER"
0 H5 O6 s1 S$ W8 D2 l9 @ N4 ^ - )) a/ Y0 V# g& T2 w5 j, b' K
- )
1 [; z3 Z& S. U2 M* \0 Z - ;;
x: {3 O& {# L2 ^$ ~& k7 | - ;; This function is called if the color is set "BYLAYER". It finds the . G+ P; q" }" T, e7 {
- ;; color of the layer so it can be displayed beside the color button.' K! }$ l3 s# N$ g
- ;;& K+ G1 E6 v; ]- V$ [
- (defun bylayer_col (/ layname layinfo color)
: m B+ |$ k6 F# ? - (if lay-idx: S. c" u4 D. n
- (progn+ ]: G8 X, ~8 A- T( p# u, ~
- (setq layname (nth lay-idx laynmlst))
, G3 [7 S8 O2 n4 |2 O: [* I - (setq layinfo (tblsearch "layer" layname))
; b! g" A4 [" _' Q6 t/ l+ u - (setq color (abs (cdr (assoc 62 layinfo))))! M7 i+ @4 B/ [/ S, R
- (setq cn color)* n- \, O S6 {
- (strcat "BYLAYER (" (colorname color) ")")4 Y9 F: U+ ~, B# W
- )
# U+ t& i6 u) D$ ?0 F - (progn
6 G4 | r$ j- ^! f/ Y - (setq cn 0)" `! y& K- M7 ]4 J4 Q7 V; I
- "BYLAYER"
8 ?7 P5 x8 m' _& b - )" a% `; A# I M! P3 K( Y
- )+ }, L, k- C5 R
- )
- f2 G1 c" Z* {$ j8 d# s- ] - ;;
/ O, y0 b8 \6 q1 f! |; U; N - ;; If there is no error message, then close the dialogue
- V, a6 _9 z0 p5 I/ K6 U - ;;
4 m/ g) o+ P- P o - ;; If there is an error message, then set focus to the tile
0 f' b( i1 c' `3 i$ l& f - ;; that's associated with the error message.
" Y* s: A R2 x* u - ;;
2 t; L7 _7 |' @3 ]/ c& w - (defun test-ok ( / errtile)+ y+ L( O; Z) e9 ?) N
- (setq errtile (get_tile "error"))+ z. d; n6 M# l: M
- (cond. Z& d* P& V8 h9 s
- ( (= errtile ""), q1 J$ ^) T- ?
- (done_dialog 1))+ M+ Z; q$ T7 Q
- ( (= errtile "Invalid thickness.")
: k9 G: D% \" _3 R; V - (mode_tile "eb_thickness" 2))
: O' ]* E/ W" Z* s1 h8 T/ r - )
( q% a2 z/ U# m% {; P: o, ?3 t5 f/ d - )
" s$ `1 x8 m) K" v+ Q, l - ;;
& c k7 x% D4 O+ t2 n9 T0 ^4 M - ;; A color function used by getlayer.
' i9 S) L: i# @* p# Y - ;;
8 a3 j' W! _& j. h9 |3 Y - (defun colorname (colnum)
" b* y0 g+ w" l3 c) k Q - (setq cn (abs colnum))
' }2 m5 s5 V: b! L - (cond ((= cn 1) "red")# `* d5 `6 u6 c) B7 ?* K7 @' U
- ((= cn 2) "yellow")7 ~2 ^1 M7 |* [# O: x, N6 y T8 H
- ((= cn 3) "green")5 l( d4 B" h( e+ C' V
- ((= cn 4) "cyan")
! T. Q7 v& M# @, k. m, y - ((= cn 5) "blue")/ Y; p: n# Y- N
- ((= cn 6) "magenta")4 d1 _& x% B6 y3 r8 l
- ((= cn 7) "white")
9 f8 |4 C& l% q L; N: ~- g - (T (itoa cn)): |. M& @$ Z3 |9 k. S4 H5 j
- ); _7 ^& R: H- ^: T
- )
3 \" ?0 T/ ]& \' ]
- `# ~0 ^% a2 [/ x' N- ;;; Construct layer and ltype lists and initialize all
' z9 e# A( ] E. X. X- Q" z - ;;; program variables:5 _& k0 [) u- m2 N M5 x Q7 c
- ; C1 U. n1 A: t, \. R
- (makelaylists) ; layer list - laynmlst
& T- f* o( W- f5 G" h1 B! f - (makeltlists) ; linetype lists - ltnmlst, mdashlist
. s4 t' F8 u5 |9 q/ @ - ;; Find the property values of the selection set.
; {( p5 l' y% F+ m; b2 o - ;; (getprops ss) returns a list of properties from
{1 d) w5 d- \7 O - ;; a selection set - (color ltype layer thickness).! G- C. ~8 s% s" ^ V1 b
- (setq proplist (getprops ss))
9 s9 q' ]( N8 w3 t4 F - (setq ecolor (car proplist))' z+ O( v& U- |4 _ U
- (setq eltype (cadr proplist))/ v. W9 b# W" } t* U
- (setq elayer (caddr proplist))
( J1 F P& O7 z - (setq ethickness (cadddr proplist))
- F3 ^- [5 K% T7 @ - ;; Find index of linetype, and layer lists
; ?! D+ I: X, o - (cond5 s5 B2 E, r& j8 d
- ((= eltype "Varies") (setq lt-idx nil))
: ?- ]1 F5 e1 u/ t3 ?. V* ?) U - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
2 t1 K j. |6 U$ ` Y$ e, B" H - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
# ?* [+ e' V1 F6 G$ c4 l - (T (setq lt-idx (getindex eltype ltnmlst)))
. H: Y. z5 G# _& A$ o5 V: ?- Z - )
$ c9 ]% }* @6 k - (if (= elayer "Varies")
7 s! a6 Q$ T, t ~' E' @ - (setq lay-idx nil)4 p0 L5 e4 G F
- (setq lay-idx (getindex elayer laynmlst))# A8 ^, Z& t! ]
- )
% K) ]8 O$ p8 W, H! c8 e - (if (= ethickness "Varies")$ I1 {# a5 ]" E/ x( p8 m
- (setq ethickness nil)/ K; p5 m5 g" Y. ~! `: _- U
- )
' q" ^4 Q4 O9 S
0 ]1 B5 Q: h6 X# N0 X- ) ; end (ddchprop_init)( j# Q* h- w1 q: t; e
9 D$ L. X5 J+ X/ O- r- Z5 o- ;;; (ddchprop_select); _# [; F: R# F5 g3 |3 h1 K9 _
- ;;;
) C/ N- J3 f+ x* k# i8 W1 q8 Z - ;;; Aquires selection set for DDCHPROP, in one of three ways:
5 E6 U5 r/ t: c - ;;;
/ B6 E8 z1 _/ V2 \+ [' ?2 s - ;;; 1 - Autoselected.3 X1 i# u1 Y- T( @* q* M
- ;;; 2 - Prompted for.
3 s# v( W& R8 b, V - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
. [8 Y4 O& U; Y) C - ;;;
$ o+ Z, M9 @: @0 K. G/ B( ^5 b - ;;; The (ddchprop_select) function also sets the value of the( b9 {0 \# ~; h
- ;;; global symbol AI_SELTYPE to one of the above three values to J, y2 [! b- D6 D6 W+ o
- ;;; indicate the method thru which the entity was aquired.
: ~" t# w3 ^- L0 n, Y - 9 w$ x/ L7 ^& N+ [9 C# f( A
7 Y% @4 \ }1 l$ b$ g- (defun ddchprop_select ()
5 Y0 S" @$ J1 ?6 p5 A - (cond
: T6 Y6 E( J1 n - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to3 f# F+ N- o. O% S* q& G
- (cond ; (ddchprop) as argument+ W5 t: v9 L, c% o
- ( (not (zerop (sslength ss))) ; If not empty, then
) Q% D. v7 P# a' K2 ^ - (setq ai_seltype 3) ; then return pickset.
0 i" o& T8 E6 _5 |- z p& f - (ai_return ss))))( y& V& t/ ?/ o, [# W& z
- q/ h. s5 j9 t9 \% |, k
- ( (ai_aselect)) ; Use current selection
, h o. m0 k% m" P) Q+ K/ c - ; set or prompt for objects
: G _' U* n# N# R9 h% ^ - 5 s5 X% _4 S+ \- }3 `" c( z: [0 D
- (t (princ "\nNothing selected.")
1 ~+ b+ M1 _ {+ g& Y - (ai_return nil))
; ^, ^! R1 T7 X - )- e5 t( u: h/ i5 i, n2 v
- )9 T- `. K+ X+ `9 S4 ~5 n9 B
- : S, D( c8 \4 F7 m! z
- ;;; Define command function.- C- t0 u; x- n7 i, o
- 8 V5 g) M/ ^5 j! `1 ?% y9 ^0 O6 Z
- (defun C:CH ()
. o5 v s; q/ j0 S4 [% y' @3 l - (ddchprop nil). n ^! M1 G+ _
- (princ)7 U/ U3 H- c' \% F; [8 h1 O; g
- )
0 x( o% x4 \# ? - 9 V' U+ ~/ o4 M8 f9 S
- `% Z' h7 i" l0 A" u- ;;; Main program function - callable as a subroutine.
4 f" l+ `6 K; Y0 O - ;;;
8 P- L8 S; E* ?& p9 z4 A+ E X - ;;; (ddchprop <pickset> )& c2 t+ d- ]# |9 K% z
- ;;;
' t- l4 I+ h! O, C2 H8 G) R. F - ;;; <pickset> is the selection set of objects to be changed.3 O8 @$ t% z9 X7 v) y0 `; \6 f
- ;;;$ E( w# c: }3 P$ l! U/ d
- ;;; If <pickset> is nil, then the current selection set is
& D8 j8 B3 |" s' y' ^2 \- @% U+ g - ;;; aquired, if one exists. Otherwise, the user is prompted A5 }$ S" }* ~: Y, d
- ;;; to select the objects to be changed.
# z$ D# z8 b" C% x; I - ;;;
- X" m( p4 b3 q/ W) N# S$ q - ;;; Before (ddchprop) can be called as a subroutine, it must) M5 ]4 V9 [+ r
- ;;; be loaded first. It is up to the calling application to
1 p0 g# O3 x7 A6 G. W( z- c - ;;; first determine this, and load it if necessary.0 E( o: W$ {' P) v; m2 a, w) N
: y. ], h; j5 f- (defun ddchprop (ss /
4 ]; D( \! c. ?$ }. ?; I
7 S* K' V1 T8 R& t4 G- add-mdash ecolor ltedit_act s& o' G$ [% M1 q# m
- assoclist elayer ltidx selset6 N: B- N- ~8 a- W |
- bit-70 elist ltlist set_col_tile
5 z: G! d0 T; ]5 y - boxlength eltype ltlist1( U4 D% i, `; G# H" J
- bylayer-lt en ltlist_act sortlist
G/ |/ q# b: ~3 O - bylayer_col ethickness ltname* J' z8 X% }- v* n E4 Z' w/ y
- bylayer_lt fchk ltnmlst sslen! G; k' U" c* u0 y8 `
- call_chp frozth ltvalue templist( Q0 m1 ~: b* k) f9 l
- chk-col getcolor ltype temp_color% R" q) f1 A" Q8 B
- chk-lay getindex m test-ok% `4 h% E: \& ?6 d* u0 J7 ^
- chk-lt getlayer makelaylists testidx% @+ k5 e2 N0 \2 H
- chk-th getltype makeltlists testlay
4 H1 [$ l" S# d - cmd getprops match-col th-value. d# K+ v: T; U+ D' {6 A2 j
- cmdecho getthickness match-in thickness
! `+ @: [6 H' T4 j/ I8 l - cn globals match-lay tile
/ s5 u& ` G Q* N2 n& a q - cnum go match-lt tilemode$ u% X" i* r, ^. w
- col-idx index match-th tile_rect' f. D( P! r; K9 i, v1 U
- colname item match_col vi
- z6 n% n. \2 v8 r. X - colnum item1 mdashlist vpf
2 c5 F: w6 p4 v$ t' ` - color item2 n vpldata6 N+ R) z/ I' l6 C0 Q
- colorname itemlist name vpn
- p3 d6 `4 E7 [% p3 k8 } - col_def lay-idx ncolor x
# V- G% D0 M3 Z; v - col_tile layedit_act nlayer x1
/ ^) n0 `2 q* G* ]5 Q9 A3 C: l - ctr layer nltype x2
/ Q9 D w( D0 E - cvpname layinfo nthickness xdlist8 \, @4 h' q: X1 Q2 f& M. l w
- dash laylist off y: X+ c6 C) y# V
- dashdata laylist_act old-idx y1! H% d+ E+ ^& C' B: m1 y0 A/ Z ^
- dashlist layname olderr y2
( {# K9 M! H% I4 z } - dashsize laynmlst on undo_init
9 n$ o( E1 M) f8 m& w4 Q" b* a0 R - dcl_id layvalue onoff" ?) S, y8 G# a
- linetype patlist
- I: _8 m1 a7 d3 s# @ - ddchprop-err list1 pattern% U2 x: z% p# x% e# K, g/ i v! J
- longlist proplist
3 u1 N% u: q$ a3 ?$ c3 ? - lt-idx reset-lay
. W8 t+ M( j* c! Z, B1 u% o - drawpattern ltabstr reset-lt
% M- Z) v% E: }, K1 s8 k' d+ R - )
, |5 ]. g5 L) I8 O, J
3 l: g9 t, T3 e0 B! J2 m4 ]- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
! n( i5 G, b8 x( V! L3 z, p: U+ w - old_error *error* ; save current error function7 Q/ [+ o5 h5 Q- g3 F
- *error* ai_error ; new error function
0 ~8 A' P! u+ y$ Z - )
( ^, J- v! h, I" v4 W
, U! Q0 R& T |. C9 ~! ^- (setvar "cmdecho" 0)- c! Z7 a5 J, c, z9 l
6 q! L' W8 T& C7 L7 N" D- (cond1 L1 b+ p- M. K' Y4 B, h4 [8 ~6 x
- ( (not (ai_notrans))) ; Not transparent?
# E) V: I2 e: o+ w - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?* Q9 u, ?( R$ B& t
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
, z [" B% o0 a6 W' Q+ | - ( (not (setq ss (ddchprop_select)))) ; objects to modify?
; F3 L6 ~& t2 e
) s: R2 d b) s. \- (t (ai_undo_push)
( s# X/ T9 e @( _) ^9 a$ m& o - (ddchprop_init) ; Everything's cool,; w O3 J" Y8 j. F6 W7 C) j+ g7 |
- (call_chp) ; so proceed!, B% d6 g6 v% {( T
- (ai_undo_pop)
- j# s4 J: o5 V6 c+ q$ ~ - )8 c, x: I4 n$ X: R6 l4 I% J
- )
) r Y& i$ ?& G- b" Q: q - ( ]+ }) i4 P0 q h. Z
- (setq *error* old_error) * } C: B* n6 b2 ~$ r) R! x8 U g
- (setvar "cmdecho" old_cmd)4 f8 {6 b% {# k3 f- T
- (princ)
2 y1 a: G! [, h* W1 M - )& u+ E+ }+ ~" D4 x
, v3 I* r) S7 v: \, q0 w- ;;;----------------------------------------------------------------------------
7 I5 g- t3 \4 V! B5 e" i+ W
: f+ f7 B, t; l$ X) J% Y/ ~; @- (princ " DDCHPROP loaded.")
9 u" b2 _- s1 l, U - (princ)
. t& g$ d4 W4 u a - # q' n; [; }+ p* F& d! T7 ^
- ;;;----------------------------------------------------------------------------3 ], F; L/ s5 [) N9 p: Y5 ^- l
% `+ ?8 S, ~# }0 r1 K3 \- ;--------------------------------ddmodify.lsp----------------------------------
" S% }8 D' q/ A* q1 l! G2 k - ; Next available MSG number is 111
) w. b! d" K& a2 C( r; @% T - ; MODULE_ID DDMODIFY_LSP_
: _! H0 X% J' o - ;;;----------------------------------------------------------------------------( n3 d. N% X- y+ m6 Y( `4 t7 A
- ;;; DDMODIFY.LSP
0 o5 y! E( p# `- F3 ?" L - ;;;
" F5 P9 f! b* I8 u% ?) `. j - ;;; Copyright 1997 by Autodesk, Inc.
1 a2 Z3 t, f1 j2 g7 W% [3 I) ~( E - ;;;! X- x0 h! @) M( W+ o+ `# [
- ;;; Permission to use, copy, modify, and distribute this software: p& \) K: y. M# n# ]) X
- ;;; for any purpose and without fee is hereby granted, provided
$ r6 ~) O, |' r- l- S3 m - ;;; that the above copyright notice appears in all copies and
: |, u% t+ F: C# H5 D - ;;; that both that copyright notice and the limited warranty and0 L/ `* t' _+ `7 e+ P( Y
- ;;; restricted rights notice below appear in all supporting
" u+ f) G1 a/ b- \! R - ;;; documentation.: b/ r8 d0 h! B" X: d! X* i
- ;;;
8 f/ W. d% R7 \& ]* t% s - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
6 F$ t" b$ x* M r - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF0 R5 A5 V7 s& F" d* o
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
, A" r2 U2 d7 g6 G/ d" U2 N - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
5 B; |/ Z. F \8 m+ E - ;;; UNINTERRUPTED OR ERROR FREE.
0 N5 l1 \$ o- {" T3 W" B - ;;;
6 ?. E. T) e8 [ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to/ m: S u; U$ r: c
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer; Z& F# u( R& z
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)6 t7 f( j4 j7 Y7 U6 W
- ;;; (Rights in Technical Data and Computer Software), as applicable.% D$ a+ U, Q1 d0 p" b3 i9 |1 c
- ;;;& X0 A4 r7 H( k: n7 M
- ;;;.
9 x7 \* D$ S3 w* U8 l! ~! l) Z - ;;;2 e1 k8 l0 U4 o _: A+ d" I* U- g
- ;;;----------------------------------------------------------------------------
' f: H- N! k T1 j% } K - ;;; DESCRIPTION
; g/ ?7 E! p. ^ - ;;;
' X' r, h& {; \/ x2 B+ u - ;;; This function allows the user to get a listing comparable to the LIST
6 D; E1 T) s! y8 e+ r ~2 W8 i0 r; Z - ;;; command for most objects. In addition, most object fields in the
1 G: x3 V# z4 s& A6 B+ @; e - ;;; dialogue box are editable. Points can be specified dynamically by
! @6 z1 Y( R5 m* M# `' ~! w0 y - ;;; temporarily dismissing the dialogue box. Each object has a unique
3 @6 }' |4 \* M; | - ;;; dialogue.
5 M. _ M; ?% i% f, m - ;;;
; d9 o; n6 k( [' R - ;;; Naming conventions
) i( u2 l- O1 p) |& B( ^" C: x7 b7 Y - ;;; Long function and widget names may use an underscore "_"
! C- d! c9 m( { ^0 z) T0 ^ - ;;; in their names to make them easier to read, long variable
4 u, }2 Y* X: q0 k1 v9 U4 ]& T+ e1 j5 f - ;;; names use a dash "-".
0 u, W r0 h( {6 v7 v( {' m+ [ - ;;;----------------------------------------------------------------------------; t' [$ l4 Z$ I% Q) h
- ;;;----------------------------------------------------------------------------
" y- ^( s: o+ u2 m - ;;; Prefixes in command and keyword strings:1 w" j, c0 _7 f, N* j5 ]( \
- ;;; "." specifies the built-in AutoCAD command in case it has been
" L& W2 ~! [# Y1 X+ F - ;;; redefined.8 u; K1 _7 }' j$ C# D6 U- |3 J5 X
- ;;; "_" denotes an AutoCAD command or keyword in the native language
9 }: x* {1 V# x' [ - ;;; version, English.
4 f; x3 J& x' L2 J - ;;;----------------------------------------------------------------------------
% K \+ u6 H8 Z @5 `+ ? - ;;;3 a' f4 l% n8 l3 G- b/ S' P
- ;;; Avoid (gc)s on load to improve load time.2 P; Y1 [$ z# I$ F4 \$ h4 I
- ;;;! F' z9 X1 x& a1 h7 w
- (defun do_alloc (/ old_allod new_alloc)- e& ]4 p4 ?4 ]
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
6 B/ L. _: L9 q7 S# Y - (expand (1+ (/ 17000 new_alloc)))6 k# R; b+ h* c' L6 x8 |
- (alloc old_alloc)
7 s& z! _& W2 D6 T9 B* a3 P - )
9 f9 o1 P& z) p( x5 V - (do_alloc); _# g! f3 O& _% K) m9 s0 H" E2 @1 ~5 U
- (setq do_alloc nil)5 Y$ t3 b3 x* ?4 f, {( o* V
- 5 \0 \: ]" D; Q# d- C3 R
- ;;;$ c; f& O' K& h' D# U' H
- ;;;
3 H3 S @% L& @9 z B( i# A - ;;; ===========================================================================( ^- s O% j1 x% {, F
- ;;; ===================== load-time error checking ============================, Q' B1 |+ r: @# m @. G9 N1 u# @! T
- 1 _) \8 g$ E: @ k& |
- (defun ai_abort (app msg)5 q3 ~# h, N6 {! ` J& f
- (defun *error* (s) y4 m" H' k0 `1 a# h
- (if old_error (setq *error* old_error))! A. @, `2 p* o. ?# b3 n# ~+ L
- (princ)0 A7 D6 G3 Z* }7 N0 @2 w
- )
1 A6 @) ~+ z1 ^/ t1 j" F, ` - (if msg3 Q4 i W7 a( s: C" F# s/ T' v
- (alert (strcat " Application error: "
B; S; C; F( Q; R: l h - app
' |8 {9 t( D8 y6 x" `* n5 ` - " \n\n "
- p1 d9 P% U! ]/ y# e( `% | - msg% |6 `- X0 o1 [( M: N8 ]
- " \n"
/ o9 V/ Q* L# n - )
# N g, u* [1 j) G5 Q2 }, o - )# {7 ]4 a$ c' a9 N4 I" N# [/ p
- )
7 A4 t1 Z, P1 {( l2 G3 O& J - (exit)% F' Y; r( [; E& G
- )
{6 {# N6 z: Y
8 A; p& t E3 X8 o5 \- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
# C: R7 f# _' J6 ~; P, G - ;;; and then try to load it. If it can't be found or can't be3 {, B e d, R3 ^! d
- ;;; loaded, then abort the loading of this file immediately.
8 _( J. s1 s( v0 T S - 5 F; U# z! ^3 [" |9 f. O9 n* Z
- (cond
8 r8 a* Y- {$ w& p1 _ - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
5 J; G+ T( j0 _3 s+ M
3 v* G1 [- D+ W- ( (not (findfile "ai_utils.lsp")) ; find it
: X/ {# x5 T3 l5 c7 k8 c& @ - (ai_abort "DDMODIFY"
+ @5 L \' }* S' y$ j - (strcat "Can't locate file AI_UTILS.LSP."$ y9 n0 J# `- Z) u v- p# |
- "\n Check support directory.")))) ?' |6 U M: _. C- A7 R
7 C6 t- b: J s* g& G: T% @/ d- ( (eq "failed" (load "ai_utils" "failed")) ; load it1 \3 d. ~+ S% O; j3 i* Y) g! ^7 ^
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP")), J- H" J; Z. X: V
- ) y2 |/ X$ E1 r
$ r( M3 H( }5 _# {- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
+ b/ B' d* _% e9 q% o: p - ;;; be assumed that all functions defined therein are available.
' J9 K5 e$ Y, h% Q C
4 W$ l; k6 K% B& c6 W- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort7 v* f" E6 Z, Y: C6 G) ]* o
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
4 S& k% r2 B* u) r- i - ;;; does not abort the running application itself (so that it can$ h5 @0 U) Y/ U5 z* t4 J
- ;;; also be called from within the command without also stopping, {! g$ ]: ?! m9 H( q3 R( h1 s
- ;;; an AutoCAD command currently in progress).
5 Q3 o% m' P8 V }7 t( p - 7 X% z& v2 u* w/ s8 `/ Y
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
7 }: ~- G' I3 c2 D) v - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
4 m5 X& ]8 a. _" u9 Q) F4 ` - ) ; ai_abort's alert box dialog.: @# G$ ]2 q7 F+ i: t0 C
- 7 q$ \; ~+ D! w+ W5 v; R6 P
- ;;; ==================== end load-time operations ===========================
$ z- N' Y0 y# L" r - ; Z$ ~( f1 _, i3 V' N
- ;;; global variables9 ^- S! n l1 L9 l8 c/ S2 G! g, b
- 0 H0 O w6 L- N$ ?, O
- (setq hatch-elist nil)
8 o3 U& U) Z9 `# @) G. \2 `7 Y4 o5 ` - $ b# L, B4 E" q3 b3 G: x% y' l
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are; N( O2 P& S3 Z) n0 {$ k; y8 D
- ;;; assumed to be available.% t, ^7 A" q s; x& k/ R( l9 U
2 f; P& K7 \1 A, R. E+ c( A- ;;; Define and encapsulate all subroutines that are declared
" H& p$ T' w, F$ k$ p4 S - ;;; locals of the (ddmodify) function.
! L& s2 z0 E( J# q
+ Z( [/ J5 z- M4 `9 U. j! r" V- (defun ddmodify_init ()
4 I2 N f/ @3 h2 g5 m" r( |) ` - ;;3 A( o/ \. M$ Z5 R( U* n8 P
- ;; These three functions modify the enitity list for common properties. Since0 I& M! }7 A2 C2 F9 {6 ?
- ;; color, ltype, and thickness are absent from the object list when they are
0 k' b" k. l+ o: Y( M: q - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
E1 m! G4 j. J0 Z - ;; SUBST is not possible.) v$ H4 j! K( B- N
- ;;. J, `9 d% R8 o$ |0 G; E3 W
- (defun modify_properties ()# @# G2 ]" O2 R& s" D- ]8 D k+ \+ J
- (emod ecolor 62)
( s- w" Z, d7 ^4 d - (emod eltype 6); L P$ D4 ?% _3 \, @+ [
- (emod ethickness 39)4 v0 q/ L9 f: D6 P' Z
- (emod eltscale 48)) i2 f( j( B3 Z3 _3 H; v
- (tempmod elayer 8 nil)
% K2 H# H7 E3 a! W8 w$ Q: b - )
/ V+ [/ p. t0 C5 a/ C - ;;
6 j2 i8 ^8 V I; Z% u5 b - ;; This function is used for modifying common properties of the ACIS
$ g" W! ], W* `- H; ?, f - ;; based geometry objects. Thickness is not valid for these objects6 f8 t% c; J6 a1 P& @/ U2 @/ L9 _
- ;; so it is left out., U: F8 v: ?% \$ E* |
- ;;
! R4 Q' W* R/ w1 X7 \6 F8 Q8 G" N; H - (defun modify_prop_geom ()
- |9 @) p, h1 G" h& G: d- F# C - (emod ecolor 62)
5 p- L) V( { ?# w1 N- e - (emod eltype 6)2 l' p, _) O {( B q
- (emod eltscale 48)$ k9 X6 l; ~" n% V1 h! R
- (tempmod elayer 8 nil)0 X: I& l- s9 \: t* W
- )
9 k2 A. @0 Z. I' W - 7 q$ E7 B1 u* O' _6 W
- (defun emod (value bit)
3 c$ F1 W6 B. e; @4 e6 Q' r - (if (= bit 62), h2 W" x! o2 `' G0 {2 J9 e9 X
- (progn" j% i7 g' A0 I
- (if (or (= value "BYLAYER")" a' J( l+ y& A7 x6 b- M2 {4 a7 B7 Z
- (= value "BYLAYER")) (setq value 256))
( i' b4 @' k8 V9 _. c" c - (if (or (= value "BYBLOCK")
( W7 l$ Q7 d& f$ p+ {4 ~( u - (= value "BYBLOCK")) (setq value 0))
Z, z; T& X' j5 r$ u" D6 L I - )
" R6 t$ v5 m) k: I' c1 u - )
" A# {1 U( R% U& [ S/ Y - (if (setq oldlist (cdr (assoc bit elist))): B" j* x S0 V9 [4 @, {# N4 Z
- (tempmod value bit nil)9 A# t' O; f& p+ z$ q
- (setq elist (append elist (list (cons bit value))))$ H2 i: `3 l- J. v0 C6 F! I
- )
% _5 x# L3 L, S; [8 @ - ): K) h- m: P& L
- ;;7 g, c8 B x& b' x; m4 I, F$ x. O2 A
- ;; Resets object list to original values. Called when the dialogue or& h2 n: n7 C4 \, q* x
- ;; function is cancelled.4 b! [ y7 M; d0 J$ B2 S; a( x
- ;;
( U# F3 t s. m1 N; a - (defun reset ()$ E e( \$ n. V0 d
- (setq elist old-elist% d1 b. [5 S, z( l. Y) ^
- ecolor (cdr (assoc 62 old-elist))" Y3 s' k& |4 A% h( g, [
- ethickness (cdr (assoc 39 old-elist))
. g; I- l, q1 X! _+ E8 p8 Y3 `- F - eltype (cdr (assoc 6 old-elist))
2 k. |$ w4 Q2 h5 h - elayer (cdr (assoc 8 old-elist)): J2 N# a0 N$ I
- eltscale (cdr (assoc 48 old-elist))
! @8 E6 q0 F1 q. ^5 _2 Z. C - ) q) D7 T2 q' `9 B
- (if (not ecolor) (setq ecolor "BYLAYER"))4 d9 B" {( I+ \8 _/ g$ Q4 ^& X5 w
- (if (not eltype) (setq eltype "BYLAYER"))2 E4 J8 o4 @- h, j# @) @
- (if (not ethickness) (setq ethickness 0))
) }) j1 R1 U6 {6 |3 T) J' G - (if (not eltscale) (setq eltscale 1))& C* @; p: c% c/ F; x- `
- (modify_properties)% u0 J5 P* {3 Y" {
- (setq reset_flag t)
$ d( R3 f$ w9 m6 T( K7 t- b - (entmod elist)& C [' |- ^- o% ~; n4 y
- )
. U. N8 n& F: Z& F/ g6 { - ;;% |) k5 q5 \: t. ?3 ^
- ;; Modify object when dialogue is temporarily dismissed to reflect latest# Y' t/ q8 {$ ? ^# E( e
- ;; settings of dialogue. It converts the point from current UCS coordinates to
+ }( q) \( i; W! c - ;; the proper object coordinates (world or object)., U5 L3 {+ B1 \) x5 `0 x5 J
- ;;2 B) o& d9 Z5 U! u7 l" |
- ;; Arguments: value - in current UCS coordinates5 d Q; X1 [# y- B. m
- ;; bit - object code (i.e. 10 for start point)
/ `: a( ]3 ^2 S3 }6 r3 U - ;; ptype - point type 0=world 1=planar
) w7 ?" x# k% G6 V4 S - ;;
$ f8 L" l1 j0 u; J - (defun tempmod (value bit ptype / newpoint)
6 M% S' L# J) ^ - (cond
* a7 i. {6 [" j* ?( r - ((= ptype 1) (setq value (trans value 1 ename)))
5 s( w- @8 C& ?5 } W - ((= ptype 0) (setq value (trans value 1 0)))
7 D x6 r( {1 t S5 r9 ^& u - )9 U- V$ L) t+ A
- (setq elist (subst (cons bit value)
9 i3 ~, a8 \/ p4 z% s - (assoc bit elist)3 n/ g: u4 D! q
- elist/ c& }$ O( h7 k# z. s! s6 [8 o" F; j1 [' L4 F
- )( ?! m: ^- O# h
- )2 \7 b! o t# R4 u0 X
- )
3 y, K! p- ~; a4 c5 M6 B9 t - ;;
& u/ _) n+ l: [4 i7 F2 ` - ;; The following functions are called after a dialogue has been temporarily1 O) C/ |9 O% C$ n
- ;; dismissed and the user is selecting a point. If a point is selected the
+ r/ v) c" n/ _2 W9 @ - ;; object list is modified and new X,Y,Z values set. If no point is selected2 D3 T: N4 V- ^- ]) N
- ;; (null response), then the point is reset back to its previous values. q% x# o8 G# {$ ?/ v* N
- ;;% ~$ ]! e% Q0 [% u) P
- (defun ver_pt1 (ptype)
3 D( t+ n: V) ~; ^- q- p - (if pt1: f2 ~# H3 c5 [* I; ]
- (progn8 J _- j( r/ |7 K, k0 r" H
- (tempmod pt1 10 ptype)! E# C' ]! [5 m. k( y
- (entmod elist)
' @, x9 w2 q6 x - )
6 O: i& ~. Q9 c- ` S% P - (setq pt1 (list x1 y1 z1))
1 K P5 z" P! X$ s( S# K5 v3 K- X0 E# f3 ` - )1 Y: b, ?- I- [9 L, e. V: {2 w7 A
- )
( c7 @* y' ~) n$ e1 Y% \ - : u$ d, u' Y! F" s! a: i5 U' X( ~ T1 e
- ; (move_pt1 <ptype> )
9 K5 G: o& j& l. p- A - ;
: {" i1 c7 J# j3 O! ]0 r; Z' J - ; Called in liew of (ver_pt1) to translate block insertions which
9 s" o& d1 {* s9 n0 O4 s0 v - ; might have variable attributes attached to them. If the distance6 u# y! @4 U, O F6 c1 y
- ; the block is to be moved is < 1e-6, the move is deferred.
% H0 R3 n M: n2 T/ m: d" U - 8 }9 f! v0 b1 X) S
- (defun move_pt1 (ptype / basept hi)+ `9 Y& x* r8 g8 P/ M
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))+ W. C# D4 \: w: V9 m; Q' |3 n* K
- (cond& }8 R6 V+ t" m5 X
- ( (not pt1)1 B( e& I# D3 Z! Z) h( a
- (setq pt1 (list x1 y1 z1)))
, r, k$ }; i3 X - . V& a4 _5 e. P: Q3 d' _- U4 @) X
- ( (> 1e-6 (distance pt1 basept)))
- v, N) J) w& ]) c' u - , Q- f. c S P* _; z; K. s
- (t (tempmod pt1 10 ptype)( I: h8 Q0 ^) K1 d' C
- (setq hi (getvar "highlight")), A% h4 s0 W. B' B) \4 I
- (setvar "highlight" 0)
l' z1 Y. Y% n - (command "._move" ename "" basept pt1)% a! _0 [% B! x6 g* B3 q3 @5 u& n
- (setvar "highlight" hi))- i& N0 K# F( K1 \ Z
- )- D9 X7 b s2 ^- z. `
- )
/ f0 C! b; G, z4 A) G* F
& w9 `/ R$ t7 H- (defun ver_pt2 (ptype)3 I6 D3 P& d4 {# V9 F
- (if pt2
! X! }! o1 h3 p% _# o+ L) u$ ]( j - (progn
/ q, p: ?" K% T* T. K" H - (tempmod pt2 11 ptype)
# Y0 u4 w0 R* o$ I% `* C" q - (entmod elist). [, u4 M% T; H: M4 V
- )0 T8 u: E! h0 \+ i8 ?2 {* G
- (setq pt2 (list x2 y2 z2)). s" L2 C1 y1 G. {+ X: w
- )
; v5 @9 {/ C/ q0 s' m8 Z - ), q% L1 u8 M1 p3 n8 U
- Y7 B. h( F: |3 c. Y" r- (defun ver_pt3 (ptype)3 E# C; H9 H7 _2 t0 j1 U' o
- (if pt32 E3 w7 `% B; L4 I
- (progn# C7 Y+ }! d& N& F! d' `
- (tempmod pt3 12 ptype)7 L8 E5 R2 ?8 @. v a
- (entmod elist)$ O3 U0 H( Y9 [1 C3 m3 r
- )9 k- i ]4 O7 \) U! o" ]. e, e* ]6 ^
- (setq pt3 (list x3 y3 z3))$ |) u5 e9 V9 U0 u
- )
" p5 s3 r9 |/ |5 Y" Z' ~/ I+ R - )6 m$ O9 O5 f- O3 _, [" t) j
- 2 u) z: A0 i: ]3 K5 s
- (defun ver_pt4 (ptype)$ x5 @* l( x/ S9 O; j) q( c
- (if pt4
1 d2 A8 s& N- a9 A - (progn9 e1 i8 z) C3 q+ o" J; i d
- (tempmod pt4 13 ptype), _* z3 x6 k, H+ n; z
- (entmod elist)
/ F# M: L) f* @ - )
7 {; \: H8 i v7 s3 [% H. z - (setq pt4 (list x4 y4 z4)): \5 H& G u9 |
- )
' u! r( {8 N0 f6 y - )& i% T$ K$ g. }
- ;; Xline/Ray1 b# [) K; U3 w
- (defun ver_xline_pt1()
' e# X6 h2 R* O" p - (if xline_pt1
7 h. E4 @- y/ N, V; J - (progn
* \1 M2 u0 `5 e: t! ?. C - ;; convert to WCS.
, ?& y$ L( L% Q7 i, \8 C - (setq value (trans xline_pt1 1 0))# b9 N) C! K7 n0 G; b3 O0 K% O
- (setq elist (subst (cons 10 value)
" {0 _( ~( U6 r1 m; k ` - (assoc 10 elist)
) W" \" W) e% {& A - elist
, F4 ~, B( E4 y! t1 f - ): d2 D3 U) x& M+ N. {6 E
- )
% l T- \3 I3 j5 {0 z - )- C; C! y. \0 y4 t: F
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))6 O6 O$ \0 ~( T* U0 O; i& |
- )
- G, `; h; d4 U - )
/ N# A. H% z5 O! g$ B - 6 i) _! W, {; i7 E0 y
- (defun ver_xline_pt2()
, E) B; ^; Q2 l7 a0 N2 n' I - (if xline_pt2
' Z% @" C+ L3 y3 ] ` - (progn) x; L# z5 _: W" a/ K
- ;;' n# x7 Z( A* F3 L
- ;; Calculate new Direction Vector WCS% u% @0 y% }! } p3 I: t
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))# k5 F* a" P8 T7 Y W1 {
- (setq temp_dir (trans xline_pt2 1 0))) {% i+ b/ g6 {! l
- (setq temp_dir_x (car temp_dir))
2 J% j' h* Z9 n5 m/ c& K - (setq temp_dir_y (cadr temp_dir))2 N. _3 d5 W i7 Q5 e1 Y0 h) o
- (setq temp_dir_z (caddr temp_dir))8 ~$ p: G) o/ T. C( ]
- N" W7 o/ R, e$ Y- (setq temp_xline_pt1 (trans xline_pt1 1 0))
0 z& C+ I9 O, w1 B. o2 N - (setq temp_xline_x1 (car temp_xline_pt1))
" F; o1 s6 l+ w3 n: V( H - (setq temp_xline_y1 (cadr temp_xline_pt1))# {/ ?8 D% V+ v: e: W
- (setq temp_xline_z1 (caddr temp_xline_pt1))6 F" X- u+ G' w5 C( ` H |; F2 d* l$ Z
- 1 S, @7 P% \( {
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)/ D( S5 e! F* ~" j& a' W
- (expt (- temp_dir_y temp_xline_y1) 2)
3 T) F) u+ T7 u( f! V - (expt (- temp_dir_z temp_xline_z1) 2)- D& f8 R& m" b I9 t. t
- )))8 I, M* t7 L! |; N9 N4 k9 U+ j
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
; s. s' ?$ e4 @/ Y# }4 E' P - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
. B! b/ L( C! ~' n0 b' h- s+ P v - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
0 j# e9 n/ B5 X! B' i3 i" G3 B - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))) _# G2 P! o5 Q1 E
- (assoc 11 elist)
8 `- ^: u, R) B9 a6 E - elist+ T3 ^9 X( F. u
- )) q3 u% W4 q5 D6 ]4 W3 h7 e7 e
- )
. A3 Q* j/ @5 v0 x% k/ V( Q - (entmod elist)6 A0 s# H4 h; f: @+ F' T% Y
- (setq xline_x2 (car xline_pt2))
R q& A5 d: j- C6 ?$ F - (setq xline_y2 (cadr xline_pt2))
' A. Y3 t! |3 }/ U( l2 k& W: S - (setq xline_z2 (caddr xline_pt2)): y1 Z8 O1 ?/ J5 c) t+ a
3 d p# K9 _/ i# f) {/ x9 g) A4 Q- + r h4 T9 |$ W( b5 h) i
- )
0 F+ \' M: p8 O v' ]7 T. g c - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
f5 t( g$ X6 a: p4 |$ F! R - )
" j* V7 P/ n: a: c6 G- o/ L - )
3 l: Y, @4 k; m& x& m - % m% n8 x; R+ ]2 W. m
- ;;2 x" Y7 v+ Q) R, D. g( \0 G
- ;; Common properties for all objects
. ?$ a! ?% L* X; q6 V; t: f - ;;6 Q1 ]8 W( X7 N- V7 n+ j8 \
- (defun set_tile_props ()/ ?6 B4 ? a+ S1 `
- (set_tile "error" "")
$ u6 J1 ?) }" J1 v: Y! E6 J7 N, c - (setcolor)% L' M: [! N8 e, E* L/ R" h
- (cond# s/ z& w$ f! I0 U1 Q7 p
- ((= eltype "BYLAYER") b, \ L( z8 ]" I
- (set_tile "t_ltype" (bylayer_lt)))
/ l! i' X$ r ]% Z' y) S9 w - ((= eltype "BYBLOCK")' @ J) ~ `5 ?% n' Z
- (set_tile "t_ltype" "BYBLOCK"))* Y; G5 ^; |# v1 ]2 Y
- (T (set_tile "t_ltype" eltype))
$ n; T) z1 f+ T' {. m, P2 h - )1 o" `, t$ u: n( C& O {
- (set_tile "t_layer" elayer)
) O& A$ O4 R# J% }3 N2 y! K - (set_tile "eb_thickness" (ai_rtos ethickness))2 `: Q5 o& g9 e. i! G f
- (set_tile "eb_ltscale" (ai_rtos eltscale))- D# ]* g0 ]7 ^7 m! s* s! Q
- (setq which_tiles (ai_common_state etype))
2 E' Q$ m) |) n3 y6 b9 k b - ;; Disable tiles if need be...
+ q, f7 o8 ] e! r& o0 K
4 s+ [- o! G( j' E- ;; Layer Button and Text Field
4 j: N2 ]1 W7 x0 ^& s9 z+ } - (if (/= 1 (logand 1 which_tiles))) i5 j# S( q1 M+ @+ e
- (progn' _- _, Z; E& E3 O# |
- (mode_tile "t_layer" 1)
3 \/ ?2 F3 o4 Z# O+ [ - (mode_tile "b_name" 1)
4 n8 A) R/ S# A2 n" L0 W2 w3 ~5 K - )
8 y3 e' Y* A) f9 ] - )
& K- l' f o" Z8 u) V - ;; Color Button and Text Field
" M8 I3 u1 u' j4 T7 h9 C. J4 ~# W8 V - (if (/= 2 (logand 2 which_tiles))
* q6 U6 `: D: w" a7 j - (progn$ H. v6 w9 p" d) C0 c% O0 x
- (mode_tile "t_color" 1)
0 d, n1 I. S: }$ Z* W, } - (mode_tile "b_color" 1)
8 A2 W1 O2 u( B- @- V - (mode_tile "show_image" 1)
/ F ]7 D n9 y% I! L - )' e3 b& q; n( ~0 N
- )" a R0 p$ l: v0 M4 p9 o; D
- ;; Linetype Button and Text Field
- g. s* P$ K3 T' W4 ^7 Y/ v - (if (/= 4 (logand 4 which_tiles))% q0 f4 V9 y7 n2 m; X A
- (progn
& f- p, ^2 w" |. U( V& o& d- e - (mode_tile "t_ltype" 1)" D: h6 e2 ^$ z& X' x
- (mode_tile "b_line" 1)
% c* C$ A. J1 I6 r* J |) L) K3 h - )
# s5 C" X- d, i* H$ i) j - )
! Q4 A2 {2 m8 n' V5 R" S! | - ;; Linetype Scale Edit Field
i7 X! O& d" `- _& O - (if (/= 8 (logand 8 which_tiles))
' T9 ]# z( i7 w4 D% }: p _( I8 K - (progn
% M# U' z) J+ P9 r. t) J0 y8 w - (mode_tile "eb_ltscale" 1)
! `( H$ W, Z, ^- i- ^ - )
9 _9 e4 c7 w3 d& j) F+ K1 U; K - )
1 b( H, F) P+ E1 @ - ;; Thickness Edit Field." N) C H" R9 s" C& V! A
- (if (/= 16 (logand 16 which_tiles))
1 Q e& x. o% q1 H - (progn" t) K5 K+ F3 z- n$ H2 A: M2 l' M; l
- (mode_tile "eb_thickness" 1)' p# H9 S1 R+ {4 w8 `+ m( R- S0 V
- )
0 }" R( S/ G: |# H' ]1 Z. v$ V- _ - )
% B8 f0 O5 f6 W6 o7 n - )& ^; ~: q# ?4 b/ N( _) i+ j
- ;;! k' j+ v$ \2 I2 W
- ;; XYZ Point values for all enitites; u8 E6 N$ g7 N+ d6 ~# y
- ;;
5 Y3 k. L2 S) R4 T7 Q% J# f - (defun set_tile_pt1 (ptype)+ a6 m/ [( P2 e/ M' ~" G' V, U& H) V
- (if (= ptype 0)
& m" X- p' L( a! K9 F6 R) K - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1)). {5 @; U! v' E% B" K
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))$ o0 I0 ~" d0 m3 N# S0 S
- )- F! P0 `6 U& n
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))4 \! ^1 Y6 } p: h8 U+ z/ U+ q
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1)))), y4 [! s# P* T0 D$ w
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
; @+ L6 U9 k" T- ?. J+ h, q - )
7 W8 t2 D0 X N - (defun set_tile_pt2 (ptype)
7 y9 C5 r4 B9 c# n8 o( A# ?: } - (if (= ptype 0), Z$ L% Y- e* n. U
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))/ G3 D/ {* r, a3 G. R$ i
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
/ j# ~9 a6 q( t: D. v U3 W - )
2 n2 v; G: c# F, u- v/ O& r - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2)))); a5 K5 [6 {. R7 P% ^( U/ V
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
) M, a' N |8 v - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))# g! }2 f. j- @9 Y' y0 F( z
- )/ X" |0 _, f! o& A% D7 x
- (defun set_tile_pt3 (ptype)
7 Q5 }$ p2 T. s. x2 \0 } - (if (= ptype 0)
" J% M- q- \/ k$ p& L. [6 ?$ Y - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))) m' a3 g. s3 S* h- E
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
' C6 @" M( }- m* l - )8 R3 ]* a4 Y k& \4 I" @, z0 C
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))0 ?$ |( d8 G# T9 m
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
$ ~/ M! g% O- k2 ]; ~5 } - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))' J+ i! c4 v/ c9 w. W6 L
- )% w+ h7 P V: U: H+ @0 _3 k6 H, P" U. W
- (defun set_tile_pt4 (ptype)
% F0 w9 V6 F. i/ O; i - (if (= ptype 0)
. a8 @9 ]! J, ^5 g7 Y. w1 F' [' L - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
! T5 }7 E# Q$ \ - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
$ _/ D2 J1 p l, Y. N - )1 W) z" X$ |4 L/ Q+ m+ v6 z$ [
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
) X* n7 J$ D1 x) ]4 z" | - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))) s% m1 m' E' B9 }! t
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
( S7 L/ A9 m) p' S1 [& \ - )2 |4 p; ? A% E1 ` o& A
- ;;
) G/ }$ q; l1 t6 i - ;; Xline/Ray
) F2 ]) F; |! ]: k R - ;;9 }* j9 z9 }7 J8 w( x: ]" Y/ |
- (defun set_tile_xline_pt1 ()
% W6 G' ]4 |6 ]# I
/ g' b7 S3 ~7 q, I0 J5 }- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))' a8 M" `/ m3 ^3 W
2 K6 O3 L* E0 O5 K- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))( S. Z$ g' {9 u) T; m
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))( }3 g1 t) b$ m* X% x! u* p7 c/ _
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))+ U; F$ q- b1 b: ~$ F. D
- )
! d, n* m/ R$ |& B' O- ~. Y - (defun set_tile_dirv ()1 p! `% ~5 m+ ]: h" w1 L5 D
- ;; Convert 11 group to local UCS (displacement) M! V+ D, m; T, r9 o
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))# b. E' d; T6 R' X2 ?) ~
- ( s. X2 M& o: A0 s0 }0 }
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))) F6 n0 u& G% J0 }$ \
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))' r. H. _+ o! A4 B, K8 J
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
+ w# F' h/ v$ |) O: I& S - )
& J7 B4 G; ~/ L - (defun set_tile_xline_pt2 ()" I: b& h4 N2 L/ ?, M: f2 f5 }6 j
- (if (not xline_pt2)
$ s6 Y% [: i( {" p, C/ k - ;; Initial second point is Root Point + Direction Vector
" c6 c$ ?% D2 s - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
' w! g" j/ V1 t* a4 y" t0 I - )
# p5 M. \) P2 ? - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))7 N ~! P% y2 Q) p8 d; n5 m
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))9 E& ~+ R$ R$ B
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2)))). U4 n2 D; c* r' @6 l
- )
# [* q2 C+ p0 X( {% ]+ K% t: j
7 L" W; A, C4 f0 [- ;;
/ \. U3 o9 j6 x/ j9 } - ;; Handle for all objects
: l* j1 c; e/ m8 g2 o - ;;9 q5 M# C+ @$ I7 B
- (defun set_tile_handle ()* l7 w8 w( R1 j- Y) f9 a
- (if (setq hand (cdr (assoc 5 elist)))
# s5 s0 _" e. x, C7 w: J- r# b - (set_tile "Handle" hand)9 x" F" A' d1 K$ K
- (set_tile "Handle" "None")
% k$ n0 E6 _3 i6 C2 U - )' _2 S1 K" b& R9 O% j8 W
- )
* H( c. X* P" V- ]5 `/ o - ;;9 J7 R4 p* k- ]2 B
- ;; Radius for ARC and CIRCLE
+ ~7 c1 B: A( ?1 w: t! I - ;;
0 y& e% v0 d+ c8 O8 D& X - (defun set_tile_rad ()
' D( O% }/ F8 Z5 m- s1 I* z - (setq radius (cdr (assoc 40 elist)))8 U4 D* k' e; r9 K4 A4 U' i
- (set_tile "radius" (ai_rtos radius))
5 A3 c1 ?& D% W) g+ q( j - )8 }& j2 f' O3 {+ o q& k# E3 H6 [! T
- ;;; P" i+ }3 q. |+ r& p3 ]
- ;; Start angle for ARC
7 A; m7 c b5 h- n- K2 k3 L0 w) r - ;;
/ e4 H; d: y+ p C' ? - (defun set_tile_stang ()
* R7 y9 |: h9 G: r9 k - (setq st_ang (cdr (assoc 50 elist)))
8 D2 b# |6 A/ t* U0 K' O - (set_tile "st_ang" (ai_angtos st_ang))" d: K0 x5 R% k
- )5 \ y1 e, P+ {+ j9 I7 F' M1 H% H$ d# F
- ;;
) I5 a2 i, ]' R; Q, B! e4 ? - ;; End angle for ARC
% `3 a( G' s5 v6 j - ;;
! l0 n/ m; K: [. ^% D - (defun set_tile_endang ()1 Z* o+ j4 z V. n1 N
- (setq end_ang (cdr (assoc 51 elist)))
% ?2 y8 @$ ]9 z% v0 P; Z J& ]3 J - (set_tile "end_ang" (ai_angtos end_ang))2 w" F9 K, S0 ?' {- C: _8 Y; x
- )
1 v/ o; a2 p% w2 S! J - ;;- {( J) }5 M2 Y, v8 d- S' |
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
+ t( d- B2 K" A9 ^2 \3 R - ;;7 q ~0 G$ \# V/ w
- (defun set_tile_rot () L' X3 W0 e" ~8 S$ u
- (setq rot (cdr (assoc 50 elist))): V( q! ? P) W& _9 @4 p% W
- (set_tile "rot" (ai_angtos rot))
* M6 I- W/ n; Y8 f - )
% |* P6 |$ ]* v - ;;. h0 Y; s8 @1 i
- ;; Height - Text, Attributes and Shapes) C, `0 r4 h4 ]1 m+ W4 ]
- ;;) \0 x; }1 h* ^4 I( S8 @, [
- (defun set_tile_hght ()4 p+ q" c6 ?4 P, o
- (setq hght (cdr (assoc 40 elist)))
& E6 L1 h3 C& ]/ ~5 T - (set_tile "hght" (ai_rtos hght))* i* D. \$ y1 }
- )6 O# s j% m W3 Z) T2 ~
- ;;. C: D) p n Z0 m
- ;; Width Factor - Text, Attributes and Shapes
& @0 b0 T$ e' e& M3 T& E - ;;) T$ ~/ Z1 C+ x" u- |5 x: h
- (defun set_tile_wid ()
3 V* w0 A2 [" w y+ y# D$ v' H - (setq wid (cdr (assoc 41 elist)))
1 z& e0 R2 S# S: y - (set_tile "wid" (ai_rtos wid))
* o3 H% m3 f D7 h- p - )4 `* h, ~% ?2 d" s( q
- ;;. R* n& Q4 r8 O2 z/ v
- ;; Obliquing Angle - Text, Attributes and Shapes
! R% J$ y- Z2 W - ;;
6 J C7 A: x* T& L - (defun set_tile_obl ()6 a6 u `, f8 Y0 ]8 Q; U* }
- (setq obl (cdr (assoc 51 elist)))
* w4 i1 p3 ~: h. }" a, } K - (set_tile "obl" (ai_angtos obl))0 Z* U6 g! m9 y% e5 R- N9 Z" d: ?6 X
- )2 v/ a- F( {7 _, d' T
- ;;
8 A- R j) M" `7 B - ;; Text string
, e( p" Q% E/ s - ;;
% s8 x& m; c) @& M' c9 e/ B - (defun set_tile_text () _0 v t# m! D7 g2 L1 n" F- N
- (setq text (cdr (assoc 1 elist)))8 y3 Z, d) O2 S
- (set_tile "t_string" text)
@6 K# R$ R" ]( K) p - )
5 ~5 r! ?* d z& K - ;;
/ ^' k- w* S5 n8 ^9 v - ;; Attribute Tag
" F- w D( m5 o) C2 B8 R - ;;
2 U* X0 o) D) |4 ]" ]' V - (defun set_tile_tag ()# D* `3 | Q1 l- Z* U$ K: m3 c
- (if (= etype "ATTDEF")
. w# l( `/ E* p6 T: L2 S( @ - (progn% ]* ], m0 W8 q
- (setq attag (cdr (assoc 2 elist)))
; b1 h! c! P# O, q; B* B9 } - (set_tile "tag" attag)
$ j& t4 C4 c5 X E; S - )
" x' a3 o1 w6 G5 K8 }! ^2 s! m( V! E - )6 j) ^% l6 ~7 R, b& C' l* e
- )! o. Y6 X3 Z0 K& `+ Z
- ;;
7 A, y( U% y3 @* q$ U. Q' v1 s- @ - ;; Attribute Definition. }1 V, W0 e t/ }" \' D
- ;;6 _% G+ n, V$ B- d# q
- (defun set_tile_prompt ()
! t0 y' ], e4 R+ n7 u - (if (= etype "ATTDEF")
9 K( n0 z% Z0 A0 z - (progn: E! T2 {7 Y5 p
- (setq atprompt (cdr (assoc 3 elist)))8 [2 J& h3 k, Y. D* @. ~
- (set_tile "prompt" atprompt)9 ` M0 C& f; O3 S( G
- )+ c# W( ]" j' u+ ]
- ) j, b# f2 _! c0 P1 u
- )
6 P0 C5 A# i# Y - ;;
0 D# M, K& D. v4 i - ;; Justification setting for Attributes and Text. Initializes' W8 C9 {$ s; |, ` ?% M
- ;; popup list box% E: c$ T, a! w$ u' {
- ;;( F. N3 R$ {$ M4 w! e
- (defun set_tile_just ()* H7 }! c5 q6 b2 {: H
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
4 L6 {" K( ^* x/ ?# V - (setq va (cdr (assoc 73 elist))) ; vertical alignment
) E# S! I+ Q* \6 j9 T# a - (setq ha-prev ha), G7 p% G: d2 z; W5 y; E
- (if (= etype "ATTDEF")0 T, L: a8 q1 X
- (setq va (cdr (assoc 74 elist))) ; vertical alignment: g( R K' u b- N
- )3 v+ F8 k7 P7 N0 J
- (setq jlist2 y( m1 U- o+ B2 s1 [- ^
- (list "Left" "Center" "Right"' F& [* G. i$ ^; ~
- "Aligned" "Middle" "Fit"; w. m* O& s# R6 D$ @
- "Top left" "Top center" "Top right"
2 w% \) a: j; e; A& T4 G- H% l - "Middle left" "Middle center" "Middle right"
; m+ d/ }( o( k* I; E - "Bottom left" "Bottom center" "Bottom right"
/ E' S. x0 U3 [0 e4 S! s - )! y, [: F! O% s* U7 M2 w6 I$ J
- )4 c: a& o2 I2 S$ H( b* |* v$ r& z
- (start_list "popup_just")* Y* R8 r' ]* l$ {5 r
- (mapcar 'add_list jlist)
- a, A; Z' n S* d% g - (end_list)( y2 S7 D; G+ r1 F; c2 r
- (set_just_idx)6 m" r' `: m) T7 N; _- {+ k
- (set_tile "popup_just" (jlist_act just-idx))
6 j$ v5 e( }% M0 u) ` - )
% N/ e3 c7 S+ K: ` - ;;) J A4 x+ q% j7 i: S* w
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
; K% d3 d- N: H* g( B7 n# G. Z! } - ;; box.+ l$ K* O6 i' [9 e
- ;;, r( [, w( L; [+ `) e
- (defun set_tile_style (/ sname style-idx tlist)
( N3 v3 ~8 J6 n - (setq tlist (tblnext "STYLE" T)% }0 l: e( Z' } i/ { x
- slist nil)1 w# B3 m5 j. `8 \6 R$ q7 t# ]
- (while tlist2 G; t1 c% c5 m/ p5 S5 G1 r# f
- (setq sname (cdr (assoc 2 tlist))), f \3 o" h7 g
- (if (and (/= sname "")& ]1 X! t$ r2 i3 e! Y
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))0 F H' O0 L) s# V
- (setq slist (cons sname slist)))
( @- Q/ h1 y, _) [- N, T - (setq tlist (tblnext "STYLE")))2 H2 g- t% A6 @, A" c
- (if (>= (getvar "maxsort") (length slist))& J! X4 M* v; X/ l0 u5 F
- (setq slist (acad_strlsort slist)) ; alphabetize style list8 q$ J9 V; y% u' B. A
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
+ M {0 E& ^7 Q! l
2 q- M/ U5 v. A5 d- (start_list "style")
' n5 ~0 b* t* A$ x/ z5 K - (mapcar 'add_list slist), H7 P2 ]0 D7 G g; w
- (end_list)9 B' {( z" _* ]2 `7 {
- (setq tstyle (cdr (assoc 7 elist)))1 P+ f$ \$ Y, U
- (setq style-idx (getindex tstyle slist))( [( Z8 q7 S8 T
- (set_tile "style" (itoa style-idx))6 V) S4 M, a r: {3 F9 [$ N
- )
6 _$ ^9 h' c5 p& l* `3 v# c - ;;( ?" j, o/ `0 |& m# N, J. ~, V
- ;; Text and Attribute setting - upside-down, backwards, M) p' r2 k% J7 F9 ~' `7 P
- ;;9 Y e/ G* o+ x' G
- (defun set_tile_bk-up ()
( @; `6 l9 z9 R& y; F - (setq bk-up (cdr (assoc 71 elist)))
, v+ a% f2 ^8 m. [- X# p - (if (= (logand bk-up 2) 2)8 c: c) [8 S4 r. w2 w8 J
- (set_tile "bkwd" (itoa (setq bkwd 1)))' L9 [3 J( p7 V& |' a* F* ]
- (set_tile "bkwd" (itoa (setq bkwd 0)))
# {/ ]+ B3 T" h# g ? m& r6 d - )1 y0 \7 c" C- Q- w7 j; c4 W; D
- (if (= (logand bk-up 4) 4)
$ }# \3 U$ g3 ^% [1 G - (set_tile "upsd" (itoa (setq upsd 1)))2 X% X) x; V) Q; s( Q# B, j
- (set_tile "upsd" (itoa (setq upsd 0)))
4 n8 h! C; y: L6 e8 M - )) D. i$ h0 a4 [# ]
- )
3 L0 Y* n+ z& X# |$ h: ` - ;;
% w0 [; X) Q; X9 N& L" Q' H - ;; Attribute setting - invisible, constant, verify, preset7 S1 v" i4 i1 \2 K; `
- ;;
+ f& k2 u4 y! [% \. l - (defun set_tile_icvp ()
8 Q% J2 G& l1 U0 V - (if (not (setq icvp (cdr (assoc 70 elist))))) F* K Y4 t/ ^ i$ A7 _
- (setq icvp 0)
4 p& L' j" Y' n- R! ?) G1 y& i e. ? - )
* a9 e& d7 r9 y& k - (if (= (logand icvp 1) 1)
" ]! k+ ?1 m8 i4 _: u1 Y - (set_tile "inv" (itoa (setq inv 1)))
8 B9 S; A+ \- A0 G - (set_tile "inv" (itoa (setq inv 0)))
' s' A! m6 N% P' v$ A - )
8 C; k+ f* {3 o% Z3 V$ f7 U - (if (= (logand icvp 2) 2)0 A* [9 ^2 j! j
- (set_tile "con" (itoa (setq con 1)))
5 d9 ]# N% B, P1 t, q% p- |' f - (set_tile "con" (itoa (setq con 0)))
% n& J( r2 U; w5 j! X' e% F - )
' \1 @4 H* l' v* v& i# Y - (if (= (logand icvp 4) 4)4 A3 W& X( S% y* r U. W1 M/ [; M
- (set_tile "ver" (itoa (setq vfy 1)))
/ F4 W; O f$ x/ j- d - (set_tile "ver" (itoa (setq vfy 0)))
% O( M4 q" w$ w) r) X( |( p - )0 J+ z. X- X5 x+ Q8 c
- (if (= (logand icvp 8) 8)( T/ |2 b1 W: G4 R; N- [. l" Y
- (set_tile "pre" (itoa (setq pre 1)))
0 ^7 d4 ~9 T* K: Y9 ~7 V4 k: W0 x - (set_tile "pre" (itoa (setq pre 0)))# q0 O6 d2 N+ Z% u' v# ?0 w
- )3 C1 D5 Y p! Y+ F
- )
7 r0 A: D# @" n - ;; M, i/ f7 e' x. E+ Z, l) T) Q5 m
- ;; Scale factors for block insertions) y7 `6 n9 q8 c9 Q) v
- ;;
% o: E6 P' j2 j X8 W- e - (defun set_tile_scale (/ temp)6 L+ B5 j9 k q; m' d3 K2 A e2 _
- (setq temp (getvar "LUNITS"))
4 u7 v: e7 H8 P3 t8 ~( K - (setvar "LUNITS" 2)
; m. u* R+ F; t6 A$ v# b - (setq xscale (cdr (assoc 41 elist)))
* ~8 K' q2 ?- q0 l* [) q4 B, h - (set_tile "xscale" (ai_rtos xscale))) x M* }* C: D% w+ T
- (setq yscale (cdr (assoc 42 elist)))1 N2 w. N. u, N& P2 U6 x" T1 g
- (set_tile "yscale" (ai_rtos yscale))
3 ?1 _6 [( \+ C K1 i$ { - (setq zscale (cdr (assoc 43 elist)))) W2 \+ N" Z6 Z+ d3 v4 ]
- (set_tile "zscale" (ai_rtos zscale))
" U' @. [ V8 ?/ |+ e - (setvar "LUNITS" temp)
1 N3 X9 N& }% M" l6 l1 _; t" o - )
! b6 x. e* o9 [# D7 ]- a* L( ~ - ;;
/ _/ t& J1 { S6 Y7 Q# W - ;; Rows and columns for block insertions- v" W2 n4 m; U; y- k5 m6 n" t
- ;;% I( t% t9 i: K0 j
- (defun set_tile_rc ()- z% V. Z% ?& N8 `* M
- (setq columns (cdr (assoc 70 elist)))
4 \" g! _- |, X$ ~! @ - (set_tile "columns" (itoa columns ))
1 v% C- y8 n1 L( ]. o6 H - (setq rows (cdr (assoc 71 elist)))
9 f4 D }8 R# @+ @# q/ m1 { - (set_tile "rows" (itoa rows))0 y7 m- T F& Y8 ^) B! }/ k( E( E
- (setq col-sp (cdr (assoc 44 elist)))
2 d& t9 J5 E! J - (set_tile "col_sp" (ai_rtos col-sp))& y+ N0 E6 |! H( l- Q- M
- (setq row-sp (cdr (assoc 45 elist)))- H" @% ~0 w* G
- (set_tile "row_sp" (ai_rtos row-sp))
5 K* F8 X0 u7 ^ - (if (/= hasclip T); P- @ R: S8 |# R0 B6 h* s6 ?
- (mode_tile "xcliponoff" 1)
* Y0 B! K( {, Q; f4 x/ i& M - (set_tile "xcliponoff" (itoa xcliponoff))% ~2 ^/ E+ N! I9 }- A/ z
- )
5 y$ s& L6 J% \4 c1 k8 y! G9 ~ - )
0 k; D. E9 S7 e+ ^ G - ;;' E x' ^; b( k4 ~8 j# _
- ;; Invisible edges for 3DFACE/ U6 N% p! G4 X. P
- ;;* ?1 W) N1 u5 N- W0 Z
- (defun set_tile_edges ()
% |" g2 a* L4 u6 g; V - (setq f-vis (cdr (assoc 70 elist)))
# \! S2 x" ? F' E) P; F: } - (if (= (logand f-vis 1) 1)3 z- C$ p% T' _- m0 w
- (set_tile "edge_1" (setq edge1 "0"))$ Y, `; {9 \1 @0 s7 _& h
- (set_tile "edge_1" (setq edge1 "1"))! ~$ Y' X! K. G& r. N7 {5 @& {
- )4 q) V8 q$ o1 j5 N: s, e/ I: @6 C, H
- (if (= (logand f-vis 2) 2)
3 N* {* S R" `: h* | - (set_tile "edge_2" (setq edge2 "0"))
7 k. F ?4 S% l. Y l4 {; M - (set_tile "edge_2" (setq edge2 "1"))% H* U7 c, k% @6 l" I* q: o# j
- )
4 X P3 Q2 V& Y7 c, j; D - (if (= (logand f-vis 4) 4)0 H9 ]. w, l/ j q
- (set_tile "edge_3" (setq edge3 "0"))
# H4 u$ |7 w: e - (set_tile "edge_3" (setq edge3 "1"))
) i: c! Z: V1 |; { - )
# |0 J9 A. W6 [ U- Z2 b - (if (= (logand f-vis 8) 8)
& [- J6 z8 C: H \ x - (set_tile "edge_4" (setq edge4 "0"))
4 H* z( u8 f8 s4 \ - (set_tile "edge_4" (setq edge4 "1"))
- Q: N2 U$ n; X# L& s+ m% t- l - )
0 b* m7 r# _4 K8 H - )
+ N5 G7 {& @" P; `2 {+ [& D( m. p& @3 A - ;;
0 E6 a2 ^( {" [# i/ m; U - ;; XYZ Point values for polyline vertex/ a) k! g1 B- T3 j* r
- ;;% H/ n' q! H. B: G/ p
- (defun set_tile_vpt (ptype)
3 {$ W; q$ u: r6 z C2 O# u" {: N - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")4 d) l U' F8 x6 R
- (progn
7 G- s* a" Q8 z x0 ]7 [0 L - ;; ctr is 1 based, vertices are zero based." C' a$ _7 x" q
- (setq vpt (cdr (getLwVert (- ctr 1))))
5 n* R* L! _' D/ P: F1 g; g% w - (set_tile "xtext" (rtos (setq x1 (car vpt))))
8 T9 t( ~/ i: M- N4 G# w$ ? - (set_tile "ytext" (rtos (setq y1 (cadr vpt)))), g9 F8 U* C o0 S! |6 Q
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
7 q' I! ]; V, n% v! p - )
1 f! b# n* g& |5 r4 B0 Q# I" Z - (progn. D2 U; W5 A. g. p) H
- (if (= ptype 0)
6 V9 p4 B- Q7 r! j& Z. t5 x - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))! J+ d. b3 e* Y
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))* k& L& v, }( n* w
- )( k3 z2 x4 b& v: t$ p
- 9 k, I3 Q& n; b# b }
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
- o5 y& G7 m( q+ c, M - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
! `; s6 v s; O% ]* @5 [ - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
2 N3 o8 n& L; D - )
' M2 j% B2 ?; T2 C4 b" N. i( h - )& v/ e3 n" f f) U( f& n( W
4 t9 z$ U7 V. M- V! O7 P- )0 R1 n3 |9 S' e: ^+ M9 q
- ;; This is the equivalent to doing an entnext on the heavy weight; c6 f: w0 e8 E5 m; r6 f# t# ?$ |9 l
- ;; polylines. The hard coded '4' below allow stepping over the* F" M/ t" g2 ]* A2 H
- ;; 40 41 and 42 group code information. The while loop finds the
) Q! _' Y* e! V' q$ @! |0 _ - ;; first vertex which will be used as the starting assoc in the5 w, i8 L5 j+ _! K5 G+ X
- ;; call to nth.9 n4 I1 x; g8 q( }4 C/ [
- ;;$ R, ^, b: ]$ ]! d& T( e/ j- @2 B
- (defun getLwVert (tmpctr / count tmp); M% p9 T/ K4 o7 `- v4 | l
- (setq count 0)
( V. M: d7 e: ~5 ~7 w& u( z - (while (/= (car (nth count vlist)) 10)1 T/ {5 V, \! N* Z9 X# L- d1 L
- (setq count (+ count 1))3 q7 \' l1 Q5 I" v; [/ o0 `
- )
4 y" }& b- m6 i1 _ - ;; If the counter reaches the number of vertices,
% X- v3 F5 A" U3 G8 K - ;; reset ctr and tmpctr to zero again.
0 D t. `! n/ b7 |5 g+ w - (if (= tmpctr (cdr (assoc 90 vlist)))
4 m% U* z5 o& c4 x - (progn
) Q. \0 k6 ^* C' H- R% v7 w - (setq ctr 0)
+ r' V4 H _/ r - (setq tmpctr 0)
+ C$ d" T( p d5 c - )
7 L6 x1 g) H5 N; F* u2 c8 u& y - )
3 b" R* d5 h2 o" J9 u- J& N" G) y9 K - (setq tmp (nth (+ count (* tmpctr 4)) vlist))# ]0 s* m% P% D7 y; ]7 D# U2 G
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))6 B. h4 w2 R8 y: S
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
7 G+ N* B+ F- J* T - (setq tmp (cons 10 pt1))
& D7 e8 f/ I2 n - (setq tmp tmp)/ b T) F" W5 H& v& j; ~
- )9 j+ U9 }- @* ?" J
- ;;$ s1 B1 C! ^) x: I* {9 I2 H
- ;; Set tiles for Spline properties. If the spline is rational then we
( o( X3 ^. R3 M+ W" D2 L( M9 u) |1 P - ;; need to display the weight values of the control points, so set' D% \! `* y/ w" i2 p
- ;; flag to 1.2 H! [8 c6 K5 U) k
- ;; 1 = rational spline
! _( G$ J" w4 `, U4 T1 U - ;; 0 = non-rational spline
7 @3 [; f: J% n o9 V - ;;+ q$ D% ?" s5 R4 d/ ]* s4 m
- (defun set_tile_spline_props ()) v& }/ U6 f1 |8 V5 T/ b4 A4 Z* G
- (setq rational_spl_flag 0) ;; initialize rational spline flag" {1 C8 v9 l2 H! N$ w% i3 z8 b
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))0 W& }5 p2 {9 _4 e% Z
- (setq bit70 (cdr (assoc 70 elist)))
/ j/ o' s2 R$ `/ x - (if (= (logand bit70 1) 1)
6 C: ^! b, {/ d7 A - (set_tile "SpProp4" "Closed")
% v5 j U, Z9 Y/ Z, z - (set_tile "SpProp4" " ")' G* c* A- l% Y; {
- )! [+ N& B8 e$ [ m3 U
- (if (= (logand bit70 2) 2)9 Z2 p3 Y3 m9 N/ |
- (set_tile "SpProp3" "Periodic")6 @3 m r( G/ T3 C
- (set_tile "SpProp3" "Non-Periodic")$ T( [) A) a% T/ {" R( Z9 T
- )# q/ n. C v* M* H _2 P1 \
- (if (= (logand bit70 4) 4)9 @- Q# s8 F+ O o+ a$ O
- (progn: `& T l) ~5 Z; a
- (set_tile "SpProp2" "Rational")
2 V0 A/ r0 k; A; h1 M; J" d0 v - (setq rational_spl_flag 1) ;; this is a rational spline
* u( X: N: G, y - )7 I# N, P/ P5 w0 @1 c" }( C, ^
- (set_tile "SpProp2" "Non-Rational")# H& N D( w# b7 y- |; V
- )
; Z5 ? V' q8 w - (if (= (logand bit70 8) 8)# \; J$ c9 P- t! |4 G
- (set_tile "SpProp1" "Planar")
( p" O! q* m) H& ^% j - (set_tile "SpProp1" "Non-Planar")
2 _" W( r* A% F# {/ ^ O0 G% \! Z5 B - ), i$ D0 H8 j" Z$ c& m( X
- (if (= (logand bit70 16) 16)
6 i% P3 r- s2 \ Q+ c- \ - (set_tile "SpProp5" "Linear")7 U/ F# T/ }$ u& R
- (set_tile "SpProp5" " ")
/ p( ~ g# N& o8 z3 q& I4 s - )
/ Z) J: m3 w, ?3 j, z1 ^' C+ s# d' J - )* a1 |1 j, J$ X2 P/ t
- ;;2 I% } s; M# o B7 |: @$ E# ?# t
- ;; XYZ Point values for spline points" v- r7 f5 {7 N9 F. M! D
- ;; Need to account for WCS/UCS ^9 W7 J! |9 v! a* [3 Q4 f0 X; ~
- ;;0 s' T' m6 l" j: Q" F; s
- (defun set_tile_cntl_pt ()
/ P# K/ H: \& i* f! F) x - (setq cntl-pt (cdr (assoc 10 elist)))
r& v* C( B' s% g5 J - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))& U# t: q, c) C
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))- F5 C% w+ N2 l7 Y
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
1 X( ?3 H0 Q4 N: b( f2 g - (if (= rational_spl_flag 1) ;; if rational spline0 }$ b e2 e ]( R _( z
- (progn ;; show weight
7 m/ C* @+ [; R' X0 ^: c+ d) Z - (setq weight (cdr (assoc 41 elist)))
$ r. J4 x0 y4 w5 x- r c - (set_tile "weight" (rtos weight))
( }* u8 A6 q7 v( @; H4 _ - ) ;; else. F0 H$ i7 q% H* T: p9 s
- (mode_tile "weight_text" 1) ;; disable weight field4 l$ l/ \# Y) z5 W' h0 T# M0 ~
- )% {' I. A' R# d/ b0 a/ r8 v
- )
) ~9 h% p# D5 x - ;;
4 W, B' z( R3 R/ d7 Q - ;; XYZ Point values for spline points; d. ` W% S0 C' i, o' P' x( u; c
- ;; Need to account for WCS/UCS( _" s: `# S( J0 }8 @% w! u, M
- ;;
: {) m( a% |% k! \2 n - (defun set_tile_data_pt ()( Y, F" T) u3 Q
- (if (not (assoc 11 elist))
' V- Y0 ^& d$ H- h1 g3 e* O - (mode_tile "data_pts" 1)% {% E+ @; y" g* K0 x
- (progn
9 ~; u! b- W, D4 Q+ d8 E - (setq data-pt (cdr (assoc 11 elist)))1 O0 n6 y: ~' f5 a4 R$ g
- ;; display points with current precision.6 j7 j0 B) L) Q l
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))6 X1 h, E e5 \) Q O- s6 v
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))1 p( t1 U; c7 ~1 O3 x$ y
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
1 {5 |6 S) X; n/ E - ) [7 n7 t5 O7 V2 F
- )3 M0 V, j: P7 J1 b( X
- )9 x [" Y* t: V7 v) u' e) z
- ;;
. y' d+ ]; X+ u* f1 ?" Q - ;; Fit curve, fit spline, or smooth spline surface setting
% f/ O% T) |3 z1 o; M8 U - ;;9 P: G0 R. _' q% I6 i, c
- (defun set_tile_fitsmooth ()
" O' k- l Q3 Y - (cond* ~7 d0 a6 z* Y( H
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")8 ?# |( g: k0 }7 K
- (set_tile "none" "1")
7 }0 s( I1 {5 S+ X - )
. G9 {$ m/ M4 Y) Y/ U; F5 {3 Y - ((= (logand bit70 4) 4)
8 o1 ^" U$ |3 q, P5 p - (cond- d! x) z# D) G, ^/ U
- ((= bit75 0)* h* \' [- b6 K2 g
- (set_tile "none" "1")8 n4 H6 \& V5 J: y% S6 N
- (setq spltype 0)0 q7 _* v _6 Z! c: K# ?: F2 ~
- )
8 W( J$ e( U$ p0 O% P - ((= bit75 5)
7 I7 i( |; H1 {$ H$ a - (set_tile "quad" "1")1 H6 {9 @8 y" s) S$ e4 Z* v
- (setq spltype 5)8 K* H+ ~5 X6 g; q
- )
8 z! v/ r# x( b9 w0 b - ((= bit75 6)
4 ]6 U* X* f9 I T0 F - (set_tile "cubic" "1"); O- l. X9 A$ R
- (setq spltype 6)
5 O, z5 M# t) ~8 I' `1 S - )! X+ @( R$ n, K1 r( @
- ((= bit75 8)+ {' t( [$ y5 m
- (set_tile "bezier" "1")6 D) g. J3 U! _, x
- (setq spltype 8)0 t4 N' r( P" O# b& ^8 O
- )
3 |* c; }! p5 q3 Q" ] - )+ ~. f3 U1 E Q4 G' o
- )
6 o8 r( [% k, B; `( n - ((= (logand bit70 2) 2)
5 A9 g4 Z& p/ b$ u, X5 K! t8 u' c! T - (set_tile "fit" "1")$ c+ L7 c, Q( s) u
- (setq spltype 1)0 H* f$ u3 V! \3 a; |; a7 p1 B1 T: ^2 N
- )
7 c9 B; L0 t+ L# U4 d: c - (T (set_tile "none" "1")), b. [. r% _8 g0 g' {8 ]
- )
$ W3 [! _# w1 r7 [( `+ ^7 y1 ~! z0 F - )
# Z: F4 d. J/ F" Y$ ^! V - ;;
5 |9 l! Y7 U: N# j0 ` - ;; Closed or Open mesh and polyline setting- ?# l) ]% X9 L1 b
- ;;
0 n6 I3 \% J! u! j8 T - (defun set_tile_closed (): `! z% @9 w, S3 ?! n8 ~- |6 U
- (if (= pltype "3D mesh")
$ @1 u4 Z7 p: c6 b5 L, b - (progn, p) E/ G6 j1 o8 T* q R
- (if (= (logand bit70 32) 32)' |" q% S( L' |! }: d0 i- w
- (set_tile "closedn" (setq closedn "1"))
0 Z- g/ Z) X- A; s - (set_tile "closedn" (setq closedn "0"))
( Q3 t' h5 X0 h - ) S; h4 |9 t( C4 s. w( i
- (if (= (logand bit70 1) 1)
! d: M% r' _& n. a7 M( y - (set_tile "closedm" (setq closed "1"))4 ?* I& H6 I$ v4 X6 Y
- (set_tile "closedm" (setq closed "0"))2 O# @8 F0 u- \2 y
- )
0 ]5 _* \. G3 D - (setq old-closedm closedm old-closedn closedn)
" `( A6 {2 {% S9 k - )
$ }9 t4 T5 u7 s! U/ h1 q$ u, [ - )+ |' s' N3 r9 C: W
- (if (or (= pltype "2D polyline")9 g$ S; Y' [& A4 g& _
- (= pltype "3D polyline")
3 O# D0 f" D* N; ^4 a& m6 O* Z - )
# v& `) u; o; l. }2 X+ M - (progn# j- F# ^0 V E6 U: w. ]
- (if (= (logand bit70 1) 1)
7 e- `7 V! R, ~. t; x3 z - (set_tile "closed" (setq closed "1"))- ?* _8 g- V; u6 u2 j
- (set_tile "closed" (setq closed "0"))
3 `+ P! ~* ^; } - )
+ _9 J. C/ f; ?! B - (setq old-closed closed)' s9 c4 E$ n& I& ~2 K* e& b
- )
# J' ]6 H3 |+ ]/ |$ [: Q. T - )2 w8 t. B$ u7 q# y; G, p: s4 Z4 Y
- )- J! B1 U. T3 e. r6 g
- ;; Set common action tiles9 Q. m9 [1 e! V O8 X6 N( h% Q5 \7 Q6 Q
- ;;; Y% j) n+ C7 F4 a1 R" [1 k7 @
- ;; Defines action to be taken when pressing various widgets. It is called: }' r; q5 `) M1 L8 G# |, w8 X4 c
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
2 T4 F+ k0 f+ J/ d- Q- G @/ t( Y - ;; but defining an action for a non-existent widget does no harm.
9 m7 p+ d& @6 x# B/ ~! ] - (defun set_action_tiles ()
) i3 O* [0 U1 K4 N/ q* t - (action_tile "cancel" "(dismiss_dialog 0)")4 ^" Y( L! f4 E! M6 W# _" c$ z" N5 D
- (action_tile "accept" "(dismiss_dialog 1)")3 E& H) k$ q# M1 H) e5 d
- (action_tile "help" "(help \"\" help_entry)")5 a& T0 I2 j, B+ G8 [8 l
- (action_tile "b_color" "(getcolor)"). d% ?4 ?* `- X1 I' C
- (action_tile "show_image" "(getcolor)")
& r* J8 x' t7 v3 ~% e( O5 l - (action_tile "b_name" "(setq elayer (getlayer))")' Y9 D4 }8 h! x
- (action_tile "b_line" "(setq eltype (getltype))")+ m, |5 U6 ~: y8 d$ Y5 G
- (action_tile "eb_thickness" "(getthickness $value)")
/ Q2 l. U( K' C+ ~. W - (action_tile "eb_ltscale" "(getltscale $value)")1 ?/ Z) V k9 u4 N
- & T. J4 d" N/ p2 r. D3 i, _- w
- (action_tile "pick_1" "(dismiss_dialog 3)")& [( ]0 j1 _: h. h
- (action_tile "pick_2" "(dismiss_dialog 4)"). |* h% B* X- s
- (action_tile "pick_3" "(dismiss_dialog 5)")
4 b& |: D# J0 @0 } - (action_tile "pick_4" "(dismiss_dialog 6)")
* O# @" [6 y8 M, a1 m, f - (action_tile "x1_pt" "(ver_x1 $value)")
5 S% J) B' A3 R) E( C: }' c0 [6 j - (action_tile "y1_pt" "(ver_y1 $value)")
1 v0 Q0 {1 r0 R5 S- c - (action_tile "z1_pt" "(ver_z1 $value)")
/ _/ \9 U6 @$ ]3 m& c, e( E - (action_tile "x2_pt" "(ver_x2 $value)")/ l( w; E7 B5 ]. T3 H
- (action_tile "y2_pt" "(ver_y2 $value)")
( z! J h* g' F; B6 j - (action_tile "z2_pt" "(ver_z2 $value)")3 A }0 l, ~ Z. l/ n, r. i) i
- (action_tile "x3_pt" "(ver_x3 $value)")7 Q& q- B) j6 T& z) F0 ^2 `* K1 j% n8 B
- (action_tile "y3_pt" "(ver_y3 $value)")
+ ^3 S( ~9 c9 H. J% P: x) { - (action_tile "z3_pt" "(ver_z3 $value)")8 ~7 Z7 ?3 d& j1 s( t3 n" Q
- (action_tile "x4_pt" "(ver_x4 $value)")" Q6 g( f1 `4 ? y" q
- (action_tile "y4_pt" "(ver_y4 $value)")4 ~# T) S1 _: e7 S* R9 I
- (action_tile "z4_pt" "(ver_4 $value)")
$ v" Q. G o1 E" \' b2 | - , ]8 T$ r3 B3 W$ ~( O
- ;; Action tiles for Xline & Ray. }5 E* n* _: J, C- K
- (action_tile "xline_x1" "(ver_xline_x1 $value)")
n! s3 Z7 O( k& S) R* S - (action_tile "xline_y1" "(ver_xline_y1 $value)")2 [2 ]; q' U% q+ e: U2 H; q
- (action_tile "xline_z1" "(ver_xline_z1 $value)") L) B8 c, `3 b& ~
- (action_tile "xline_x2" "(ver_xline_x2 $value)")8 }. S# w" E4 a/ f6 ]% L
- (action_tile "xline_y2" "(ver_xline_y2 $value)")3 Z0 f1 G) H1 f) L6 T( ^( O
- (action_tile "xline_z2" "(ver_xline_z2 $value)") L; l4 M& g3 l' V; L7 ^1 ?+ z- R1 W
- 4 k: F9 `$ S* p/ i
- (action_tile "edge_1" "(setq edge1 $value)")
5 t- ?/ v/ {( J# `/ M5 b - (action_tile "edge_2" "(setq edge2 $value)")0 r7 `3 u- J0 V5 O
- (action_tile "edge_3" "(setq edge3 $value)")
1 F6 O$ {) L6 T. D+ _ - (action_tile "edge_4" "(setq edge4 $value)")
- y6 r) z9 B7 T1 J, X - U# D9 {8 ^* ~% v' L; V @1 |; W$ ]
- (action_tile "radius" "(ver_rad $value)")
* X% i! g& C6 f - (action_tile "st_ang" "(ver_ang1 $value)") }& k9 C# m! H6 F
- (action_tile "end_ang" "(ver_ang2 $value)")
( K) h+ C& M4 x# a- k) q - (action_tile "end_eang" "(ver_eang $value)")
- |& T! w, M# v* w+ w7 k - (action_tile "minrad" "(ver_minrad $value)")/ H+ b( b1 P) d% M# z, P* o. i1 B
- (action_tile "majrad" "(ver_majrad $value)")
5 Y7 J. J! Z9 b! D5 |4 {& H; A- A - 7 Y1 q8 O$ l9 {0 I8 P
- (action_tile "xscale" "(ver_xscl $value)")
, A6 `5 P9 ~/ l' Z0 U( I - (action_tile "yscale" "(ver_yscl $value)")6 ?9 t; W) f+ _% h$ D# k; B [' o
- (action_tile "zscale" "(ver_zscl $value)")% Q8 ?* O0 ?: \, d Z5 m; I3 p* v
- (action_tile "rot" "(ver_rot $value)")
6 `/ B& d6 }5 c- q - (action_tile "columns" "(ver_col $value)")+ V* Z5 E, x1 X7 O
- (action_tile "rows" "(ver_row $value)"), S$ F3 o& |# I( O' _. o, a/ Q
- (action_tile "col_sp" "(ver_colsp $value)")1 |8 E4 p7 c$ k" V
- (action_tile "row_sp" "(ver_rowsp $value)")1 j: X; P3 R! ^* a$ e3 Q
0 _2 K' `* H/ A/ x$ L4 d- (action_tile "hght" "(ver_hght $value)")
' s+ M4 A) F0 r- v2 | - (action_tile "wid" "(ver_wid $value)")
$ o' ^) _3 l4 V. n4 U4 a - (action_tile "obl" "(ver_obl $value)")3 y, F' [" J* t. z; i e
- (action_tile "style" "(style_act $value)")2 G) v- r7 f q
- 9 ]6 u6 F2 S! P7 v1 G4 u6 l1 ]
- (action_tile "t_string" "(ddgettext)")
$ m" n" {( Q5 G, D g - (action_tile "tag" "(ver_tag)")5 l, Y0 ^& M& P0 G/ ?1 r
- (action_tile "prompt" "(ddgetprompt)")
4 u/ I% L1 v$ H) z4 [ - (action_tile "bkwd" "(setq bkwd (atoi $value))")
! r1 @. N( S! t8 N+ B% y - (action_tile "upsd" "(setq upsd (atoi $value))")
! P% X& S/ `0 x' I: p; ] - (action_tile "inv" "(setq inv (atoi $value))")
9 o* \' i& u# w) z- d7 h; [( l - (action_tile "con" "(setq con (atoi $value))"); u/ V: G2 ~0 l1 ~( l( e
- (action_tile "ver" "(setq vfy (atoi $value))")
8 S$ H h5 u" i - (action_tile "pre" "(setq pre (atoi $value))")
1 I- L/ S6 `) A& `5 X - (action_tile "popup_just" "(jlist_act $value)")3 c- J L1 u" {9 P
2 x! i: O3 B9 N- (action_tile "closed" "(setq closed $value)")6 \! Q u( l/ W; |
- (action_tile "ltgen" "(setq ltgen $value)")
# B* x7 A5 ~( }. D/ X, k - (action_tile "closedm" "(setq closedm $value)")9 i0 u2 Z; k( b$ l9 A5 d
- (action_tile "closedn" "(setq closedn $value)")# d% H- m' u2 _9 {7 t" {5 X
- (action_tile "next_v" "(next_vertex)")
, c5 q2 A! |8 r - (action_tile "xcliponoff" "(setq xcliponoff $value)")
+ D8 D. T( x6 n5 ?( ^) u0 y( f( \# t
% y6 {7 X' d2 Q* O% a- (action_tile "next_cntlpt" "(next_cntl_pt)")
: y+ i: L/ u: n5 D2 H9 ^ - (action_tile "next_datapt" "(next_data_pt)") d# p. ~+ H7 o' Z3 k
- % x( j: N# T9 w: {
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
8 b9 T5 V/ V. u7 X! @/ o2 E9 \) Q - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
# x! V3 T* D6 h - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")- {) T% I# W. p7 b% W# P& l
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")# K' W- @2 K2 p1 @, Y
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")2 F- F% W0 i; E3 j
- 1 F, ]. O# l( t! f# r7 [
- (action_tile "u" "(ver_u $value)")) e' E5 e7 l7 F. ]& b
- (action_tile "v" "(ver_v $value)")" N4 a) \- ~# s. n0 b0 B6 {5 V
- )
7 t8 @& k7 l& |+ l - 7 O+ f; G X! h% t6 A7 d# h/ _" K5 P: I
- (defun ddgettext(). d/ @( B1 x" V' u
- (setq text (get_tile "t_string"))
3 v" c7 e; W6 t9 g. H. h - )$ s/ z4 ? g+ Z2 p. \) E" g
* F0 ]# K+ I. U. ?" Z, j @) e- (defun ddgetprompt() j, o5 I; B; N6 y7 n9 X1 t* k+ m
- (setq atprompt (get_tile "prompt"))3 E' q& Q; ]8 K( z# W
- )
; D. y5 w; M" S) d3 P [. M0 u
8 S/ M M6 S) g9 `5 ^8 U- ;; As OW doesn't support disabling of individual radio buttons within+ M, L8 }' H/ u+ i
- ;; clusters, a check must be performed as to the legitimacy of the" L0 ^7 v! C6 \
- ;; button pushed and reset if necessary.
/ M4 e$ Q8 I, F4 @ ]1 Y2 v - (defun radio_gaga (pushed)) A# D( A0 {" G& s$ `9 Y# k2 c* H
- (cond
& j! g- c6 N+ D' B* o - ((and (= pltype "3D polyline")
d6 L4 H0 t, J) F& p" a5 U - (or (= pushed "fit")
5 U+ l2 z) _/ I& s+ C0 J - (= pushed "bezier")
+ U9 |$ d2 B5 X- W p2 f$ I; x - )
& H1 h7 W- X: T$ O* C - )
9 a# m Z. v) s! d - (set_tile "none" "1")' r+ }% x7 ]. ]# S9 E8 }& M
- nil
# [% s2 X; |4 y' t, a - )
4 [- X/ H; x3 J ?3 U$ {: m - ((and (= pltype "3D mesh")
; Z% e ^& y# q0 N1 ?% q - (= "fit" pushed)' R/ j% [( L- y# A. N8 J$ S
- )4 f+ O) e$ k% r. A4 r
- (set_tile "none" "1")
3 Y* W% f5 T% T! V0 N - nil
4 E4 u' s4 p, L0 D( N - )
8 f$ s% ~7 h, V0 a- W4 n% W0 \ - ((= pltype "Polyface mesh")
% }4 F* c1 M+ v( U; |4 Q1 w - (set_tile "none" "1")7 W( k$ Q* ]' J: M/ m! I! `
- nil
, W9 X6 x( E. D4 v: S - ) }7 E/ O) B) h2 k
- ((and (= pltype "2D polyline")$ o1 R/ D( i" u- C( A2 z% V
- (= "bezier" pushed)# t+ w; f# E" e5 ?4 G9 R6 ?1 L# o
- ) o- w: q3 G, B! u1 [
- (set_tile "none" "1"). N8 p* @6 b# U- Z& O( L6 N$ E, l m3 Z
- nil
) K4 S# D2 R* f7 {+ C1 k l- u - )
* S% \' l8 }( c; ~+ S- B - (T)
3 Z# O3 q9 h5 k: [* O* v% e' N - )
( E0 O! y( F! c& i ?: |* E - )
# @6 Z# p7 U, b/ ?# x - ;;
5 V1 f% o s j! U" e- y3 ] - (defun set_uv (type_n)) l) A$ o. I: o& V0 _
- (setq spltype type_n)8 o3 G- E; I; E7 u2 s
- (if (= pltype "3D mesh")
6 M$ z; Y# m; t3 G8 m0 ^- ` - (if (= spltype 0)
0 G+ I+ ]. [5 e6 J' Y - (progn5 N W9 `- L' J5 y
- (set_tile "u" (itoa (setq u 0)))
8 A5 Z5 H P3 F& b# E: ?1 y6 A* j" Z# K - (set_tile "v" (itoa (setq v 0)))
% F9 Q; |8 `8 O/ q - )$ A2 D k& A' x, Y) n, [( C; O
- (progn
& k" r: X) ^0 Z9 F5 h! H" c1 V$ K - (if (= u 0)
0 Z$ L6 \1 D7 o9 A& Y, @ - (set_tile "u" (itoa (setq u (getvar "surfu"))))
: \/ [) g6 Y9 w W - )
9 i2 Q' w7 f) n' A6 |% V - (if (= v 0)* s+ x- [* G+ Z: {, ?$ P2 _4 n
- (set_tile "v" (itoa (setq v (getvar "surfv"))))
; p* b+ f9 w/ c2 r+ l: C - )( m7 ^. |/ z' F" s7 x2 ~2 O
- ). R H; P% ?7 J5 C8 N- X7 [1 i4 ~$ W* q1 k
- )$ c# a: { v& d2 G: t- g& Z9 D
- )
+ O3 m& z& g- i( {& d8 \3 N - )$ a& ?9 F, ]: y* X- X
2 _ T% V5 a7 q7 Y9 _+ X! I
5 ` _: F) L) z; u7 h6 _/ ]; [- ;;# ^! B% U8 [+ Y7 j* X
- ;; Verification functions8 c/ e6 G* f/ H: T
- ;;- y4 C' Q4 X8 f: `& J6 ] F
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or
0 w. A7 {6 F; z. D- E7 r; p8 ~% F - ;; distance value, the tile name, and the previous value as arguments.
5 j* @% E" k E" p5 y - ;; If the distance is valid, it returns the distance and resets the tile." M8 a5 z2 ?% N' j8 O' K- O
- ;; Otherwise, it returns the previous value, sets the error tile and keeps
/ k% G+ V7 d/ |( A4 w1 ]) z - ;; focus on the tile. Shifting focus to the tile with invalid value can0 Z7 v( p( L7 {3 k* }" Y4 k
- ;; trigger a callback from another tile whose value is valid. In order
! l0 P, D3 x" A3 S) v - ;; to keep the error message from being cleared by this secondary callback,+ U" i" h% Z1 V. @
- ;; the variable errchk is set and checked. The last-tile variable is set
1 T( w1 |* M$ y9 N1 V5 j - ;; and checked to ensure the error message is properly cleared when the5 y/ D4 m5 p( r+ a+ Q0 z3 X+ _
- ;; user corrects the value and hits return.3 P1 `+ ?: b8 _$ \9 @, Q* j
- ;;, [1 h9 j& G* _9 h: b
- (defun verify_d (tile value old-value / coord valid errmsg)
( B B9 m/ Y5 k2 s8 B - (setq valid nil errmsg "Invalid input value.")
7 Z0 r# B% _& ^" q - (if (setq coord (distof value))' X+ T) ~6 t. B* [+ n- w
- (progn
/ e( x4 @) C8 M - (cond
7 V# p' R9 k n! U2 E - ((or (= tile "radius")4 f9 ?& u7 u3 p" a
- (= tile "hght")
7 ^3 z( @4 h! p$ o - (= tile "wid")" t ^* L/ [4 H
- (= tile "majrad")
, F, e D) @0 u- Q- R - (= tile "minrad"); z* f7 s: W: r1 I- Y0 p
- (= tile "eb_ltscale")6 s6 I; m, ^3 q1 K% j0 n+ I% _
- )
) h+ d' b$ f" e# T9 M% l J - (if (> coord 0)' s1 Q% c& n( L9 e6 C ^: r
- (setq valid T)5 J8 y, D q1 X; E# U+ P
- (setq errmsg "Value must be positive and nonzero.")
" y5 q. e2 I+ j6 |7 B P3 Z - )6 ^% A1 V w- e" u( u
- )# \7 Y1 p. l4 o. n8 f- `
- ((or (= tile "xscale")
9 c0 W/ R+ d. H - (= tile "yscale")1 g2 x4 X3 w. E( n9 Q; s$ U4 Y
- (= tile "zscale")* a+ K7 n; m# K1 e& L- X
- )* L' y9 P6 Y3 \' M$ f4 s
- (if (/= coord 0)
0 R0 |& \0 S( [- ~1 S - (setq valid T)
* m2 a' b+ J X - (setq errmsg "Value must be nonzero.")9 |0 U- H9 V3 j7 J* F- @
- ): ^- @7 S9 [4 e% P5 k5 ?/ h
- )
3 P9 v$ M0 |8 D& x - (T (setq valid T))$ p& v- ^4 T* _8 ]6 {; d% k
- )
: ^, G$ |! a l - )$ k0 f9 t/ N% b% `! X
- (setq valid nil)
* ` Q( \1 c" W2 y* l o - ). h7 [5 ^3 Z- r2 c5 ~1 U- o; X
- (if valid( G6 j0 q7 F# Y9 S( `( u
- (progn
9 u+ l1 T, t' p7 a - (if (or (= errchk 0) (= tile last-tile))
& M5 ?& v9 `* ]3 l/ w2 D2 i - (set_tile "error" "")' J- C1 h& x( a: A0 I/ ~+ f
- ): M3 Z' ]$ n- O/ k. j7 ~
- (set_tile tile (ai_rtos coord))
" h1 s0 L* [# |" X - (setq errchk 0)% r9 e: s* x3 F5 R8 b9 w- f# Q e
- (setq last-tile tile)5 ]2 ]4 @, u, o# x# O7 N
- coord
# o" B$ `8 u0 \ ?& y& q! X: D - )
' p. Q' N `2 W6 V$ g - (progn
0 L' u2 {- l n! a4 X; h7 i - (mode_tile tile 2) ; Move focus to offending field7 r: E3 G% \( N1 d) B" M& n/ n
- (mode_tile tile 3) ; Select offending text/ q& D5 Q1 l1 `" ~3 Y
- (set_tile "error" errmsg)
* O& Y6 k6 j/ U ^' N; } - (setq errchk 1). f; ?3 k% e9 K& l6 O; v' j
- (setq last-tile tile)4 S# w& s" z6 m3 U" C; S
- old-value
( p/ q* l0 b( J - )
+ f3 T5 u& a9 j - )$ o- W& @# B# Z, g5 J. G: `
- )7 W* X* n& E2 k5 g# G
- ;; Function for Xline coord edit box checking.
6 ?! q* r" f s3 C7 t3 L! Y - (defun verify_xline (tile value old-value / coord valid errmsg)
3 p$ ]9 j U; Y4 Y - (setq valid nil errmsg "Invalid input value.")
0 j, X' x0 [( R" D6 i2 o4 l! N - (if (setq coord (distof value))
3 H2 c0 j* k+ B! t' } - (setq valid T)
! S6 P. \$ V2 q/ Q$ F! C5 E2 b - (setq valid nil)
4 a# q; N, p4 D( j: ~( ~/ e$ A - )
1 U p4 L2 n1 | - (if (and coord( ~$ Q5 x _+ Q% P$ U3 _7 n3 z& P" S& N
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )6 H' S& I& \- T" k. i( d) _+ W$ S
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
" H/ c" M; z$ Q - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ), T8 f$ Q% N4 x2 _
- ): H; c/ G4 W# i7 _
- )- F+ M- X7 k Z& `# A, g
- (progn- g' ]8 K- l' ]4 R& w
- (setq errmsg K1 p8 Q& w% n
- "The Root point and the Second point cannot be equal.")
$ f5 I- I v' t; z5 c - (setq valid nil)
3 `8 j, \% ` E* Z& C4 W - )
3 S5 i8 g, Y: x0 c/ q* M6 Y - )
; ~% u& S% ?3 N - (if valid' G. }6 u8 S! W* w1 N3 r4 z v4 |
- (progn
: S! I3 }( Z5 m - (if (or (= errchk 0) (= tile last-tile)): U( ]/ o" Z2 K+ R/ n+ s7 c
- (set_tile "error" ""): Z V4 n( V- s1 J! r; I5 \
- )
/ ]# _/ c2 g/ G, g3 \ - (set_tile tile (ai_rtos coord))+ I" T" t9 U. G I$ u1 l
- (setq errchk 0)
t+ X3 @. |3 ]+ F D. S5 q - (setq last-tile tile)1 N& u; R$ Q6 b H. d: {
- coord
3 f6 F$ d4 h3 _9 p$ f8 L - )
: q: t* v- E: H( @+ C. T - (progn4 s5 M+ {$ O$ p* a, p' W3 X' u
- (mode_tile tile 2) ; Move focus to offending field
2 h8 r1 Z7 @, o1 I - (mode_tile tile 3) ; Select offending text' |' \, R, Y/ g3 O* T8 g3 n
- (set_tile "error" errmsg)5 Y) k! |; O9 `" E0 z+ L
- (setq errchk 1), `* n" i; Q) T5 @- Q
- (setq last-tile tile)5 l- g9 i9 a+ J+ G4 u; B
- old-value+ G3 t& Y& V, m. x4 j1 V
- ) I8 F+ K. B' T
- )) |6 N/ [ t" h& q, h! F* P( l
- ): A" f$ G5 r/ L3 \
: y ~4 ^; h) F$ `' v" k- ;;: @5 L9 B; h+ Q9 ?% J' W
- ;; Verify angle function. This takes an angle and a tile name as arguments.
% d# R' [% Z5 m: e5 `1 ~/ W - ;; If the angle is valid, it returns the angle and resets the tile.1 p% f# m! j% m1 k
- ;; Otherwise, it sets the error tile and keeps focus on the tile.% H( M7 B* ^5 u9 D S' T" {/ D4 K
- ;;
) s5 Q0 c+ a. L - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
& p+ B# ]9 v$ _" {6 @; t - (setq valid nil
0 a, E F. Y& D) B1 ?" G - errmsg "Illegal input value."8 Z J" \5 }9 g4 [, Z; h
- )% Q$ g- [. D [
- (if (setq ang (angtof value))' j9 F8 U1 R {+ P/ C
- (cond0 ^3 i% z3 W( t5 U
- ((= tile "obl") ; Restrict obliquing angle
8 v/ c3 x- z; q/ a8 j - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
/ o$ n4 @; c8 r/ R) j4 s$ Z6 _ - (if (or (<= ang oblqmax)
& h5 F4 r$ C5 y7 J# v1 |+ b - (>= ang (- (* 2.0 PI) oblqmax))' }, _- t# ?; o! k) p
- )5 \8 o! C* \# E, i
- (setq valid T)
- R0 v- P. j- a' ^ - (setq errmsg
H4 k5 ~2 _6 v4 [, F - "Value must be between -85 and +85 degrees.")
2 u% l4 u1 U8 w# j7 ^- t - )
$ `0 T% Y7 N* d. D+ | - )
( S' o3 \: R- v1 x* r t, S- r - (T (setq valid T)) ; Other angles not restricted
# Y# N- W+ k5 F5 k6 r8 T& {' P! ^ - )
; r% n! f- L( k% ~) X) k7 P - (setq valid nil) ; Invalid angle input! {% u" j% E3 b, v1 C
- )
: H" o1 j+ X5 O - (if valid
7 |( m+ W% m; y$ H a& |& S - (progn
4 i/ N& m& M6 B3 k' G - (if (or (= errchk 0) (= tile last-tile))4 g6 u3 g e, {2 i
- (set_tile "error" "")4 W4 o1 r3 [$ ]3 D0 h- e
- )( @+ v3 ]; s; i E: E
- (set_tile tile (ai_angtos ang))
! v/ K6 a% E* ~( q- A - (setq errchk 0)
" ?) {) u5 j5 g - (setq last-tile tile)( ]3 Y8 z+ f( Q2 g8 ?" Z
- ang6 K: Z3 V$ X5 M+ k o1 }4 W g6 M; L
- )7 h) k$ N$ K5 s- \' G
- (progn ?' R7 M9 g' S+ G' a; Y
- (mode_tile tile 2) ; Move focus to offending field3 K I" A, z! ^5 ^ D
- (mode_tile tile 3) ; Select offending text5 d# o$ x* Z4 m/ I& L; H
- (setq last-tile tile)6 y$ M% ~- [) Q& k- F
- (setq errchk 1)
5 A5 P7 k# _# a4 v7 P! W - (set_tile "error" errmsg)
, k: b9 J& C9 C- y& C - old-value0 P. L; V |' ~$ x2 n
- )
& [# O) S7 n9 N5 f - )
4 |+ m: v1 H* c - )
4 }0 E/ x$ \; O. Q: r, b# g" M - ;;. D) T) a7 u) Q0 K! ? }
- ;; Verify angle function. This takes an angle and a tile name as arguments.
9 g' H9 F& M+ ~) F# a* W - ;; If the angle is valid, it returns the angle and resets the tile.$ V* G7 E: Y7 ?# S) V: D7 G
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
6 ^6 K/ o _1 N - ;; This function is specifically for the end angle of the ellipse object. If, @; H& o. m; p% `& R0 U: F
- ;; the end angle resolves to zero then we want to display it as 360.) u$ ?& M, S' w% t9 n) Y
- ;;
3 E3 l1 a/ J8 V - (defun verify_ae (tile value old-value / ang tempend)
, N: k7 f4 i: i$ h; K - (if (setq ang (angtof value))
) D& @* E$ A3 \$ a; `1 Q - (progn
! ]9 [' I6 y0 }" x$ W9 T! \3 p - (if (or (= errchk 0) (= tile last-tile)) C; Q6 O j* M' ~$ i" l2 b
- (set_tile "error" "")
: Z1 f/ [, t' w, a @; ]- B5 k. Y - )' e% \6 W" U! ~' f v
- (setq tempend (ai_angtos ang))4 x V' d$ E% z7 }; d
- (if (= tempend "0")& M6 g+ B* m6 u" h. i7 ?' e9 k
- (set_tile tile "360")
* r2 j& h( r6 e1 n2 M7 T) ^3 Z - (set_tile tile tempend)
2 a M6 P* f( g - )
$ X$ w# z7 ?- Q7 Q# |7 e - (setq errchk 0)! c/ t8 ]/ V9 y' p
- (setq last-tile tile)
, k# V0 `6 G: N) ` - ang
% K* F( F9 n# A( ]7 g - )
9 T% p3 a; K# p9 v - (progn7 `; D+ O! k' y
- (mode_tile tile 2) ; Move focus to offending field
7 {0 Q, e8 M& m) w" P" w9 y - (mode_tile tile 3) ; Select offending text" W& G, k$ e+ l" j
- (setq last-tile tile)6 t! L% T! |" A4 ?7 x
- (setq errchk 1): g/ x7 F+ F0 s% ?8 P# b
- (set_tile "error" "Illegal input value.")1 W- B5 L) `) e3 k3 l: |( m
- old-value- E$ }8 l2 U4 o* \( I4 X9 {; L K
- )
& L+ j$ z* n1 A - )' G8 b* D+ Z$ `8 t. [* J$ v
- )
) E! N3 v6 V6 [& d) d3 W - ;;2 ^/ a2 [6 o" e$ a
- ;; Verify integer function. This takes an integer and a tile name as# ~+ W4 Q. P9 O' w7 b' G7 n
- ;; arguments. If the integer is valid, it returns the integer and resets the( B( b: o: Q" b7 K* e3 D6 j- x
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.: N+ P5 c1 B! C5 z
- ;;4 o6 o' z3 S: N/ o! K
- (defun verify_i (tile value old-value / int valid errmsg)3 E1 R4 @ @: c' d" c, O8 g
- (setq valid nil)+ ?1 T# y; }* H
- (setq errmsg "Value must be an integer.")
# W9 C4 j) N# h9 A+ r0 M3 G1 `7 ?. s - (setq int (atoi value))
2 r- M1 T* g4 ~% `# {7 v - (if (setq intchk (distof value))8 \& b9 L# f) q* L
- (cond
. A* X# S. q' {% S9 B5 k: |5 f5 T - ((or (= tile "columns") (= tile "rows")). `/ _( d3 x6 x3 ^
- (if (and (= int intchk)
6 J/ j8 ~* u" G. D - (>= int 0)' x- K2 x6 C( B) M( F
- (<= int 32767)' J9 ~9 a+ d! ?0 s( u# [3 X) Y* [) n6 d
- )
: N, h$ c( ?) y7 b3 C5 w9 L - (setq valid T)
+ j' T3 {" l0 \6 N/ R1 i$ l) e - (setq errmsg "Value must be an integer between 0 and 32767.")
+ B3 w& @1 Q8 E3 g# [6 o2 B - )* J; R5 c2 i9 G; U: t F: ]6 T
- )
/ g! ~5 K; Q+ Z. b - ((and (or (= tile "u") (= tile "v")))/ \3 M- O+ n3 _! Y, S+ |( p/ }
- (if (and (= int intchk)
0 ]4 s. ]7 D G3 w. t; `9 Y - (>= int 0)9 ]) f2 N! u! J$ ]! A1 i' h4 u
- (< int 201)
: W1 ]5 |, w" ~3 D+ L, s M - )
8 C) _8 C$ ]( e" V( p - (setq valid T)# P* s1 t+ ?0 X4 l& S& z
- (setq errmsg "Value must be an integer between 0 and 200.")
$ e4 P: H: \1 I' P" J - )
6 P) n3 C8 B6 L+ W/ U - )3 o/ O8 \, U8 `7 z
- )8 H% Z6 P b4 y% b
- )& E) E3 Y/ [( C: i1 J. A
- (if valid+ v5 f# V6 L: |
- (progn
* c& v: S) Z1 W* v) f0 Y d3 S) w0 ^ - (if (or (= errchk 0) (= tile last-tile)) t( B6 J+ N' c' ^
- (set_tile "error" "")
) L- E/ {2 s+ X% m+ h) |' Y# q - )
2 B1 t I9 J" q+ q - (set_tile tile (itoa int)) G) ~( }1 r- m R/ V, l9 Y! n
- (setq errchk 0)* X7 F3 o6 X9 g/ ?- i/ h% k N1 I
- (setq last-tile tile): L+ G& H# Q8 ]' N' f" W
- int% c" C/ b) I# D5 @, y5 c2 g; i* h' B
- )
9 R( h) m6 x- g- v - (progn
* I7 w( \; J" ]! R: y) ~* h - (mode_tile tile 2) ; Move focus to offending field
9 _' S ] _* z" \8 a - (mode_tile tile 3) ; Select offending text
: I5 V* L, M2 o# _ - (set_tile "error" errmsg)
/ D: j& b; T' F7 ~% T - (setq errchk 1)
" Q/ e( w5 V; Z. N: F& ] - (setq last-tile tile)
* e8 p* y8 B9 I) ~+ C - old-value
M# ^* _$ u1 |& r# S, w4 v - ) l4 ?4 Z" H) V4 ~
- )
/ o- y# ]0 ?; |# m, a" c2 O0 j7 F - )' M4 _3 P$ U; F
- ;;3 `9 o. F% q7 j' J# V: K8 |
- ;; Functions that verify tile values for integers7 e2 L0 C+ r" z ~8 M g
- ;;
" j* G, S7 K/ k/ v( c8 g& K5 N - (defun ver_col (value)7 O$ f1 D+ b, C( Y1 A
- (setq columns (verify_i "columns" value columns))% D5 \% t3 w- k0 e: y
- )
, o; S& A1 f i, A/ j6 |& [/ c - (defun ver_row (value)
' Z/ K) O6 y. F7 P - (setq rows (verify_i "rows" value rows))9 c# c- y) T$ s, ~: O9 Z4 ^; T$ S7 M; ?
- )
- F% o$ l. w& ~, X5 t1 N' } - (defun ver_u (value)
2 H, D2 a4 f! f& `) @6 i - (setq u (verify_i "u" value u))- s( h7 s, Y; K _6 M4 ^+ Y1 _% W
- ): l8 A" w. b" P6 Z! d: q# ]
- (defun ver_v (value)
" J; r% f! N5 C& E$ r - (setq v (verify_i "v" value v))
& ^4 [+ f6 f* W `5 V - )9 M/ u, o7 q- m6 Z1 ?0 x" k
- ;;! ]9 P3 o/ y: q5 \7 A# b! K
- ;; Functions that verify tile values for reals" w! p% D J' X+ l6 u* T9 n
- ;;4 N! n* T+ X F; p3 O
- (defun ver_x1 (value)6 F' j6 x' N0 z" i
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
: B+ l% `6 k) f# ~, o, R3 u - )
* v. @( ^8 z7 ]' C - (defun ver_y1 (value). }& _0 [, ?' ^7 ?1 X' u; i7 y
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))1 _) q9 w* e0 {2 ~ k& y" b. ^. m
- )
1 k/ x! y% f( Y: n+ {* g+ m - (defun ver_z1 (value)
8 a8 d2 D% B k" y - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))$ @6 N% N# a- R4 L7 q0 f/ C
- )6 I% [/ Z9 W* ^. o3 L& w
- (defun ver_x2 (value)2 z5 {# g# J4 j& ]1 ^" ^
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
; A' m+ ^" O) V' l; H6 g - )
( r0 [0 i7 | J ^5 } - (defun ver_y2 (value)" I. T, G- j+ ~
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))4 C8 T5 E; c: W8 ]
- )
& o d# l6 _4 Q4 q2 m, a. X0 d - (defun ver_z2 (value)( { g: { p3 T. m' k' P* x
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
6 ^8 Y# S9 x, X7 L: R0 i0 V. _# s: f" m - )
# P2 h) I8 q1 M% Z s( J - (defun ver_x3 (value)/ Q" y" C' [6 ]' j0 h! m( s
- (setq x3 (verify_d "x3_pt" value x3))/ ^% J8 c+ f2 |, ^3 r+ V! |3 y
- )# z8 i( P, ~) u) \9 u4 }
- (defun ver_y3 (value)
# I( l1 A/ I) }' U: ^) V - (setq y3 (verify_d "y3_pt" value y3)); |$ d1 ^; _, T
- )+ ]! Y0 D# i+ @" ]
- (defun ver_z3 (value)
3 R( c7 {# }6 f/ u - (setq z3 (verify_d "z3_pt" value z3))
5 y B1 \& i1 C: o; G/ a& m- H3 l' Y - )& f z% S& ?# x( l; |, G
- (defun ver_x4 (value)
! ?/ n& q5 P: O( d2 C - (setq x4 (verify_d "x4_pt" value x4))3 E: I* A1 ^! }
- )
+ U1 w: z, J9 {* w4 P - (defun ver_y4 (value)
' X. G) V9 T9 z5 X5 m - (setq y4 (verify_d "y4_pt" value y4))' C# E; a) X9 o3 o
- )3 ]5 U/ {8 ^, H1 ^2 g! R
- (defun ver_4 (value)7 U p. @# h* G, N* f
- (setq z4 (verify_d "z4_pt" value z4))
& ?' f1 ? e' K, L - )
1 n: |( B+ \$ p8 e. O7 U& I - (defun ver_xscl (value)
4 ~8 o" S+ k( k# J- C. u - (setq xscale (verify_d "xscale" value xscale))
0 h0 G1 ?! r' b* }1 M6 X- ~ - )
% q+ W; c3 ~' h9 \4 C. H+ Q( f g p - (defun ver_yscl (value)
, W7 {+ F0 q* u+ D9 T0 a' @8 j - (setq yscale (verify_d "yscale" value yscale))! f1 ?2 k8 M& j; G! C
- )
4 O- [5 H: R. A; {. Z, F - (defun ver_zscl (value)& ], k) q' A2 _) Z7 x l+ L/ _
- (setq zscale (verify_d "zscale" value zscale))! i m2 u( k6 K
- )
1 {+ _/ z3 g+ I& X# O - (defun ver_colsp (value)# K! |9 p* ?5 O3 l ]. X, H7 [! v
- (setq col-sp (verify_d "col_sp" value col-sp))' K7 V( a, |. f/ O5 X
- )8 Z; N4 ]$ A% X/ `* D" O% K
- (defun ver_rowsp (value)
! s5 n2 v- u4 `" e( u& \ - (setq row-sp (verify_d "row_sp" value row-sp))
' P" T" a0 z# k# l7 T - )
# o- Q. Q- ?# Q* G; v' r# V - (defun xclip ()4 N* Y# ^- k2 f9 E7 n
- (setq xclipmode t)! A9 {2 Z) @8 d$ K
- (if (= xcliponoff "1")) L+ U9 |( k# p* R `
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")- `1 e1 a) e; k- o6 v
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")7 q9 F% `; [% `9 }- B
- )
3 I0 f1 q f4 V3 }/ o8 l- z - )
( g& q# v2 ?5 Q1 N7 J& e" x! S - (defun ver_rad (value)
( T- q) c4 o, o) g; l' W1 C- b- c - (if (setq radius (verify_d "radius" value radius))
0 F$ c9 J8 x( V - (calc)
* u5 c+ j% _9 P: c - )
! i$ F$ {. v( Y - )/ u7 K( P1 J6 U5 ]' L( A. i
- (defun ver_majrad (value)
# C0 y5 b1 F* o8 C4 E - (if (setq majrad (verify_d "majrad" value majrad))
2 C; Q. I* N$ K9 N+ i7 X - (ell_calc_newval "majrad")
2 h9 U& R% E0 U9 ^' V& R) I - ): [# k+ K! e9 D* V( t3 }
- )
9 o8 r0 ^5 ~' {# }6 A# m' | - (defun ver_minrad (value)
; V/ K0 N" f* ]9 l |/ B, J - (if (setq minrad (verify_d "minrad" value minrad))
! A' Z. _0 Q- Z - (ell_calc_newval "minrad")+ u! Y0 C" Z8 j% m, j
- )5 W- ]+ X9 \! p9 x
- )
" Y, i8 F! G9 f) {, ^" W& g0 R - (defun ver_hght (value)
, z& ~7 [+ j. `8 {* `; M6 B l) Z - (setq hght (verify_d "hght" value hght))# ^9 g: ?5 V' P* O
- )
% M: X/ k" V" @1 M - (defun ver_wid (value)
1 A( n1 w) _1 ]% F. U3 j7 t - (setq wid (verify_d "wid" value wid))
8 z6 q' ?1 x1 s# }/ w$ ?, ~ - )$ ^; ?" d. ?- ` |$ v* [
- (defun ver_xline_x1 (value / temp)
/ _) B. L: G- p2 O7 C- `+ L - (setq temp xline_x1)$ x, l9 K B) ^5 I; G$ C
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))) Q# k& h, a& {/ N3 X
- (if (/= temp xline_x1)
( h. F- j P3 ]6 [ - (progn (modify_xline 0) (set_tile_dirv) )
! ^- |( z# s# L/ [/ t+ m* X - )
/ O1 ^8 e8 V: A - )
3 E& W s# c8 o% x1 J - (defun ver_xline_y1 (value / temp)( g& j, D3 D6 M; j
- (setq temp xline_y1)
- N) X5 B) q0 w$ e2 ~& i. f" v b - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
+ D+ G( K$ w# S i* N - (if (/= temp xline_y1)( [$ ?- S5 o, g9 r0 r* S5 ~
- (progn (modify_xline 0) (set_tile_dirv) )
* I$ [6 v3 ]6 C* A' [ M$ O, }* V - )! `1 R+ s( i9 b: M" R) ?- g! Y
- )
, ]9 L! ]3 ?8 ?* l' ?' V - (defun ver_xline_z1 (value / temp)7 n+ j: p4 k3 ~9 V7 i- ]# \
- (setq temp xline_z1)2 j3 F2 t# ~ |
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))" S# b& P, P* g1 Y; p( v
- (if (/= temp xline_z1)
" r* X3 H1 _9 k; l8 v7 }/ T) l/ X0 P - (progn (modify_xline 0) (set_tile_dirv) )4 V0 D+ y& L( r5 y4 n% C9 L
- )2 s6 W' r: V, T4 k8 s x' r
- ). _2 g9 q9 l; x) U9 d
- (defun ver_xline_x2 (value / temp)& F+ v U9 r: w' q
- (setq temp xline_x2)
5 B4 Z; n0 g9 |/ E' O3 `( w - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))& ~* r& C/ L9 ?0 a% m+ D5 i, u: H2 Q7 |
- (if (/= temp xline_x2)
3 }8 T0 f5 ?: Z1 K! T, P - (progn (modify_xline 0) (set_tile_dirv)), G+ y. [: o5 A, D! }5 \3 H
- )
8 S/ C7 x; j3 I( L/ z K: m- O6 G - )
9 @+ p3 ^+ h& a j! ] - (defun ver_xline_y2 (value / temp)7 r7 z- R( ~" o& e
- (setq temp xline_y2)
! D4 E* A2 C. P+ J% R+ w; _ - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
. s5 Y" s+ E T! j: R" Y- o - (if (/= temp xline_y2)5 o: Y' ]# d1 F/ s5 s$ i$ z, i
- (progn (modify_xline 0) (set_tile_dirv) )
& C4 ]- q3 _+ r; O2 ?9 m% M - )
1 T/ s/ N. ]* e( X - ) e7 Y3 T: ^$ w+ J( ]5 X$ Z
- (defun ver_xline_z2 (value / temp)
* s2 B3 j% d: }, A( }1 Q5 R; V - (setq temp xline_z2)% u/ D, }& N- I8 a
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))5 U- {4 A+ G3 M( z( e- h
- (if (/= temp xline_z2)
' T- _, |: a3 d- O8 t3 A - (progn (modify_xline 0) (set_tile_dirv) )9 S F( y$ c, {- K
- )
0 r7 Y, W2 z' k5 I* L3 R - )
3 V; O8 s) H1 k3 B) ?) I4 I2 t - ;;
3 n7 ?9 M* @4 s! U0 L - ;; Functions that verify tile values for angles" b" l) p! p) P
- ;;7 S. y4 ?& J! ]
- (defun ver_ang1 (value)
% A+ A& a! w2 [& R( F9 J - (if (setq st_ang (verify_a "st_ang" value st_ang))+ n, V0 I6 `, Z# Q4 y q
- (calc)1 x% z5 Z/ P' i h; P' G
- )) {- N6 Q a( i7 S& T$ G [$ B
- )
0 J" }9 G' M7 }6 O6 d( g - (defun ver_ang2 (value)
$ j' Q) n. f- R4 z& @ - (if (setq end_ang (verify_a "end_ang" value end_ang)). d" b0 D2 T p7 b1 p6 t0 `$ ^
- (calc)
5 T4 Q( [4 r+ }( j0 J" `' S - )5 I+ `2 u! ~8 U/ m7 q
- )
% F; e+ w6 [: E; K$ o/ { - ;;) a5 c9 i5 Q8 s( z: |9 H+ H
- ;; Verify tile value for ellipse end angle. Handled slightly/ e6 q* Q! t( D) w: m4 X# W
- ;; differently than the other angles.2 d2 P. z8 G" `. k, l
- ;;) V) {/ A7 k6 q# g0 D: Q8 I
- (defun ver_eang (value)
" e ^9 s# t# w - (setq end_eang (verify_ae "end_eang" value end_eang))2 K R( s# A8 `, x0 W. ^& ~$ M4 x- R
- )
u( U7 V7 W9 R$ ^* T - (defun ver_rot (value)
& c9 R% s% D5 |+ r- o - (setq rot (verify_a "rot" value rot))
& l/ D+ h$ z, E - )3 S! D+ B, O% A
- (defun ver_obl (value)
: V7 E5 {- Z0 Y+ l0 L: I- L! [ - (setq obl (verify_a "obl" value obl))8 U8 u6 p( D" W( r
- )) h; O6 P* z5 r) t" e p9 t/ w
- ;;1 {. F" g- W# a6 _+ i9 d
- ;; Function that verifies attribute tag field for null string,
, A1 s: f2 Z0 Q4 F6 G - ;; or a string that contains one or more spaces. Tile value8 g0 i6 K a1 X7 _; f) `
- ;; is also converted to upper-case as well./ u1 P" S9 d* K; b
- ;;" ~8 g# W# ]3 _
- ;;9 P: a( ^/ v$ }# U
- (defun ver_tag ( / tval)% [: d3 u: T( J1 T
- (setq tagval (get_tile "tag"))9 I& f8 L4 E B; K! G% b
- (set_tile "error" "")% }) Y2 d" O. l
- (cond
% z7 t% F Z8 w1 h0 x - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
0 h/ g4 |: n# U) n7 N; e - (wcmatch tval "* *"))2 }( G1 g' W! @" {9 y) N; t
- (set_tile "error" "Invalid attribute tag.")
* j# m9 v1 a# }2 j3 X, T G2 [3 D - (mode_tile "tag" 2)1 H, }6 b$ o6 d# N7 t
- (mode_tile "tag" 3))$ R7 |8 C" H: G* M9 t3 G# G
- (t (set_tile "error" "")
6 c. H, J% R+ H1 ~: i3 b2 z, L - (set_tile "tag" tval)
: O) O- M, h6 W7 n4 G% p1 v! w* s, C - (setq attag tval)))- e2 [1 C: l5 U+ T8 G* a/ S
- )
# ^" k! y& r* C - ;;/ r" X& ~! ~/ w, O" R9 e7 [, S
- ;; Calculation functions
2 t T% C3 Z! y- L - ;;, I" _. I4 s) S" k6 q) Q- f
- (defun calc ()
% B* |) @% G& ^ - (if (= etype "LINE") (line_calc))/ c' m: W4 |+ y/ \' Z# m
- (if (= etype "ARC") (arc_calc))
9 {5 K2 ^" u: c+ ` b! a - (if (= etype "CIRCLE") (cir_calc))1 Y- P! A7 U Q$ `
- )* d* R- a$ @ w7 N5 _, {1 r4 _0 ~; Y
- ;;
# p9 @- Q) i) w4 y - ;; Calculation functions for lines, arcs, and circles$ R, e4 [ t! r4 N" Y' i* n. z6 h
- ;;
, f! T" X: k8 a n( ^ } - (defun line_calc ()
! Y+ s2 T i3 G7 g+ ~2 L& t8 M - (setq stpt (list x1 y1 z1))
& } r* S$ x# ]# v/ l* U% G' E - (setq endpt (list x2 y2 z2)). @4 a- M8 Y: L9 X4 \! r
- (set_tile "delta_x" (rtos (- x2 x1)))2 f1 d! p( a& i& X% l, f
- (set_tile "delta_y" (rtos (- y2 y1)))
3 a3 T- z1 J% f - (set_tile "delta_z" (rtos (- z2 z1)))
+ \/ a* o5 y I4 D+ M" _ - (set_tile "l_length" (rtos (distance stpt endpt)))/ i2 Z% V9 D6 ?8 `1 R
- (set_tile "l_angle" (angtos (angle stpt endpt)))9 V: S+ `5 H% k1 @, |
- )1 s5 g+ _. t8 }* y7 `! K+ N, E
- : O6 g6 ?3 p6 j' ~3 I8 P
- (defun cir_calc ( / area units)
0 H- m, N: K/ x; L - (setq radtest radius)
( d: i# r) Z _/ z. Z& a - (set_tile "Dia" (rtos (* 2 radius)))
. j# V5 C% T# u* E5 u( f$ ^9 n - (set_tile "Circum" (rtos (* 2 pi radius)))8 T4 H( w. Y1 l8 r6 t
- (setq area (* pi (* radius radius)))
, |/ ]$ ^1 B' U2 \ - (setq units (getvar "LUNITS"))4 ^; M: G2 ?- v ~6 {
- (if (or (= units 3) (= units 4))
) y" i) o3 O+ |3 i* o0 ^ }- M - (progn8 S# n% U1 [' I P1 I. H" J
- (setq area (/ area 144.0))
1 h. j& ~. u. K0 Q! R) R - (set_tile "Area" (strcat (rtos area 2) " square ft"))9 U$ a4 E1 Q/ y) I& {
- )
( \( y5 ~0 C. |9 F' g* h+ h- f: s - (set_tile "Area" (rtos area))- e; G8 x6 f8 L
- )( ~' M# _) S, P7 e* X7 ^
- )
+ ]8 u5 t4 s2 b# I3 F" D% w# c$ V - : }4 S8 e3 E9 t$ L+ Y
- (defun arc_calc ()
; E. ^9 N: l4 F5 ]; J) _: y - (setq totang (- end_ang st_ang))' B6 \5 A6 ]( ^/ F9 f' V) ]( Y% R
- (while (< totang 0)
+ u# Q) R6 M; c4 ~9 n" Y - (setq totang (+ totang (* 2 pi))): a" s+ {1 ]. w) R% U
- )/ o; v$ k9 f* l5 L2 U# \4 `5 |' v/ `
- (while (> totang (* 2 pi))/ p& }( K" [! B% \: U) k
- (setq totang (- totang (* 2 pi)))9 u' @- S P5 H5 H$ X
- )
9 S; L+ ] i% B2 Y$ q - (set_tile "tot_angle" (angtos totang))! K! y% z% Q9 k. Q1 K
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))' R" I3 i' b& ]
- (set_tile "arclen" (rtos arclen))) _, K, t8 k3 ^. [% E3 D, A2 b
- ). D0 A7 X. a/ n+ v( }/ P* x# V
- ;;
# x0 H5 [8 [, h6 j; m$ o - ;; Calculate the major radius, minor radius, major axis direction.
! M5 M% o6 K8 ^! s$ u9 p+ I6 p - ;; Get radius ratio. Convert Start, end parameters to start and end T, _2 a2 r: {7 W- w& `" B
- ;; angles. Save Major Radius value in "old_majrad" in case the user) _9 j8 |0 _0 q2 W7 A( v0 R4 _
- ;; chooses to input a new Major Radius value later. It's needed to
3 `3 `% N8 ~6 B4 [ - ;; calculate a new Major Axis Vector value.
, Z! g- n5 _2 U0 G, S4 C/ B - ;;
& Y! Q9 X8 \. r! }/ e, l - (defun ell_calc ()
7 v( g# g% b! T E - ;; Get major radius from the major axis vector.
% I! y" |: b+ l+ W- H - (setq majaxis (cdr (assoc 11 elist))); |& K9 j- v4 C; G
- (setq xx (car majaxis)). F) P/ i# m5 b* G0 ~( L# Q
- (setq yy (cadr majaxis))
" B6 n( O, B2 _; j# X) g - (setq zz (caddr majaxis))
: w, r7 _/ B( g! R2 b - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) ))): G7 @* }& S/ Z% F5 J2 i6 n4 s& F
- (set_tile "majrad" (ai_rtos majrad))' f$ T5 o4 G! @+ ]6 q( |1 a
- (setq old_majrad majrad)
7 t) [1 c7 B0 O! F - ;; Get radius ratio3 Q# a |% h( c! ?% G& q4 [
- (setq rrat (cdr (assoc 40 elist)))7 N" x+ t1 F/ ~5 ?
- (set_tile "rratio" (rtos rrat))) i) d+ R, G2 K% N4 {, t$ l3 w
- ;; Calculate minor radius
. [1 q. z; L; F" d3 I - (setq minrad (* majrad rrat))8 D5 v4 p! O" a, E# b2 {. ^9 r
- (set_tile "minrad" (ai_rtos minrad))
! s+ A8 ]1 ?# Z. O4 I% B - ;; display major axis vector R- O1 \# N3 L: H- [+ @' G
- (set_tile "Majraddirx" (rtos xx))0 w, C/ N: X/ w q
- (set_tile "Majraddiry" (rtos yy))* D. Z( w# }% j( O
- (set_tile "Majraddirz" (rtos zz)): d/ e6 ]6 S- E$ i# s& E. c
2 l. Y2 v. w( S- ;; Convert start parm to start angle
. I8 r: h& T9 J+ G) B- ?) b4 X' A" Q8 M2 d - (setq stparm (cdr (assoc 41 elist)))
% G. m6 k! A0 v' F - (setq vecx (cos stparm))
( d( ~' {; z5 ?# o# @ } - (setq vecy (sin stparm)), y: B. F, }* M$ C6 }4 G1 V
- (setq st_ang (atan (* rrat vecy) vecx))
) F9 ?/ X7 V' `4 ^/ Z) B - (setq tempst_ang (ai_angtos st_ang))7 u9 U* X7 N p4 d9 R
- (set_tile "st_ang" tempst_ang)4 L5 Z, X1 P4 i# ^5 x1 E2 Q* O: `4 ~
- ;; Convert end parm to end angle. If end angle evaluates to 0
: J k8 T9 ~' A. r! ]4 P - ;; degrees then display it as 360 degrees.+ Y6 b0 ~+ i, |8 B4 I' x- z% K9 y
- (setq endparm (cdr (assoc 42 elist)))
7 J7 Z1 a" W7 ~ - (setq evecx (cos endparm))
4 j* J2 u1 E: ~( F: m2 b& M - (setq evecy (sin endparm))/ E& T4 W! | V+ Q, p+ D" o
- (setq end_eang (atan (* rrat evecy) evecx))$ _/ p8 M3 _4 W, M6 d2 I$ y
- (setq tempend_eang (ai_angtos end_eang))
4 I6 k$ }% L9 i! J. _7 C( u5 _5 b% S - (if (= tempend_eang "0")/ y# E) ~/ W2 f. p
- (set_tile "end_eang" "360")
$ o% b; ], A9 |( q3 f$ _ - (set_tile "end_eang" tempend_eang)9 f% S7 a) f' x& j) ^+ a$ L
- )0 k, I# F* J c x' \3 a
- ;; Get area of the ellipse., j' H/ B& f5 x8 R8 B1 B
- (ell_calc_area)
1 f, I+ U; l/ |% c9 e+ O3 o - )! c' W$ Q- i: E7 Y+ A* F$ m
- ;; Calculate area of ellipse. If it is an arc then
3 p# \/ u! l" ?6 h6 u. R; S - ;; grey out area display.
3 q+ f @7 @7 o5 r+ p - ;;+ g% x; ]. j: J$ l1 [0 t1 Q. x5 ~! I
- (defun ell_calc_area ( / area units); Q: ~5 e( {: F, g' Q
- (if (and (= tempst_ang "0") (= tempend_eang "0"))
: T' D( F1 l7 ~. y8 G - (progn
- S/ b, n- ~* `. [8 U7 D8 ^% F: A$ j$ Q7 \ - (setq area (* pi majrad minrad)): ?4 t( p# s: c1 J8 o
- (setq units (getvar "LUNITS"))
$ c: @# \9 Y; H4 J* _+ e, e' H$ m: ` - (if (or (= units 3) (= units 4))* p# V- w4 }6 O6 ]
- (progn+ i, c+ H7 P2 t
- (setq area (/ area 144.0))+ Y! D3 b4 s! [1 ]
- (set_tile "Area" (strcat (rtos area 2)" square ft"))& j# f: S% q% P2 Z
- )) s/ a- O4 G! X! G
- (set_tile "Area" (rtos area))
# X; l2 f4 v3 u( h+ g; y3 a - )
/ _" [. u2 X) B* i* z - ). ?; ]; L' C0 V# e3 O9 r
- (mode_tile "Area_text" 1)
" U3 ]7 U; u% m - )
7 E$ q. w' X- j6 x - ). j% Z/ b! V7 y) n2 l+ u- ?. b
- ;;
6 g8 [! E% h& b! k O! C- ]/ k - ;; Calculate new values for ELLIPSE
4 o; j! ^ f2 r- z/ H - ;; Minor Radius, Area
* |" L' O# }% p' w - ;;
+ c: q0 G- l6 ~5 ?6 }/ d' O$ | - (defun ell_calc_newval (ell_tile)
% }, R. P& O* O0 V- }* P5 C4 v - (if (= ell_tile "majrad")" {7 n1 d% @, C
- (progn$ `0 F+ U: J. b, o& v
- (setq rrat (/ minrad majrad))
9 v+ P) j, F7 ~, S - (set_tile "rratio" (rtos rrat))
2 A! {4 T; w* _% n - (ell_calc_area)7 |( |) `) S9 T) N4 M+ L
- )6 a8 H: K* y/ u: D3 |1 H
- )$ x) D5 ~ \! S0 s
- (if (= ell_tile "minrad")+ @: S& D( H3 U" |4 _. Y
- (progn
$ N( ^: X! b; r; o4 s. H - (setq rrat (/ minrad majrad)); T" X- i$ L; | e5 `: E
- (set_tile "rratio" (rtos rrat))
2 ]% y, A; Q$ ]8 k' \9 f - (ell_calc_area)
' [( ^6 t" [9 C - )2 g' I. x! Q0 q5 i- N$ ?# T
- )
: b3 Z/ X% z3 _4 c k - )
& e. Z5 X y" p+ w/ J! E3 I
. m2 l2 f4 H+ K- (defun set_dimen_props (/ loop a stl txstyname)0 l7 F4 {7 j/ s& x0 U
- " B/ x! B6 Z, G% E
- (setq stname (cdr (assoc 3 elist)) ; get style name
' J! `+ z7 q+ n6 F3 L( s+ M1 R - stl (tblnext "DIMSTYLE" T)
' O: X0 C+ E6 H - stlist nil)/ Q- w# A9 x; z+ ^* V
- ;; Get all style names and list them in alphabetical order R' r$ A/ x/ o2 T9 b8 N7 r" M
- (while stl7 W( c* @+ B- ]! R
- (setq sname (cdr (assoc 2 stl)))% O7 H- M8 @# G2 o
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)6 p% a7 E) y, ]# x V2 W
- (setq stlist (cons sname stlist)))0 R) \$ i" r' C+ i2 q; Y' ]
- (setq stl (tblnext "DIMSTYLE")))
$ m9 h1 n7 Z/ E0 z" f" z
$ A# S/ J7 q( [# j- (setq len (length stlist)) M# w) l3 h7 q) W/ g
- loop 0. V# k, a3 o" q; f
- dimsty stname
[! ]$ x$ p6 E) m2 k, C$ _ - )
* a3 z+ K' s, S: p2 N' D0 C3 P
* b7 R- f3 k! [# X/ b- ;; alphabetize style list, depending on maxsort
$ j2 E( Z6 P4 m - (if (>= (getvar "maxsort") len); Y" U' Q* l6 t$ q
- (setq stlist (acad_strlsort stlist))
' \# K+ v `# y - (setq stlist (reverse stlist)))
. F: B/ d) Q+ r. k - 1 i2 s* O2 o6 v0 E4 R. a2 |
- ; *UNNAMED style (dimsty = nil at this point) is replaced with
! t1 t" X6 {8 m7 L$ G1 J# \ - ; the current style. After R13, we require dimensiosn to have a- b) k3 i$ p/ z/ n, h
- ; dimstyle, so we plug any holes where we find them.
% C- X5 E! w& I3 n1 v - (if (null dimsty), T0 O3 ]( K* G9 W; C
- (setq dimsty (getvar "dimstyle")): N' |# R& @' x; K3 Q9 W
- )
6 o; A/ u) s$ P* V - ; Show the styles in combo box
4 ]* K3 l# {5 g& i; f X, s - (start_list "mod_style" 2)3 C7 J( }, d3 Q8 l; o9 A
- (while (< loop len)* i% q c% o B7 F% G( n
- (add_list (nth loop stlist))& i- m" M5 M1 X
- (setq loop (1+ loop))
! b$ k% p# `& L - )
4 Q8 d9 N, f9 g* W& r
( N% J& ~7 }, P; s3 X) q7 _- (end_list)
# d1 z/ ]8 e/ |6 w: z1 X
, Z! |* ], B3 J6 {$ l t- ; Hilight the style name of the selected entity
2 r! D4 o( \! Q0 k# g& C - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
1 z8 o) o* o* U$ p - (setq loop (1- loop))
& A/ p+ N* d: \/ E7 | - )
9 s4 a- P; u* K8 B& C - (set_tile "mod_style" (itoa loop))
& T" m# L' t% u* W! J! c
+ _9 _! Z* N" I4 d% E* P4 @- ; The following is the list dimvars. It must be sorted in the same# C- g0 j# f7 r/ C
- ; order as the resfub returned from DDIM (ADS module).* Q( b- g: d7 L0 {7 X
- 3 l8 S: k0 {2 G/ v) `& l( ^+ l
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"8 k, s2 F7 W. H9 v, O% U* Y2 @) J+ V
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
. C# O* n5 Z2 D; n# U - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
4 ^! e: H+ i/ t' p; a: a% ` - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"+ @ p+ P* X9 p2 c
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp" K V7 h. s3 C# ?/ V
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
% {' |! \% N! z+ c: f - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
Q: {: N- f6 c( G - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
& D4 {; @% F' D" Z7 K' }+ U; K# p - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"8 f! {: w) B% e z/ d
- "dimdec" "dimtdec" "dimaltu" "dimalttd" l0 B( u8 w3 |) m* H
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"# p9 [! D* H; B) w- _" F
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
' U0 t* d7 V& u: W7 H, ~ - "dimtxsty"
7 P2 m$ Z# O' O3 F3 k - ))
+ n! S* ^9 L; f; S( _9 L2 T# Z - (progn% a+ z( u9 W$ g b5 G7 n3 f
- (setq sv_dvlist (ddimen_getostate dimsty)) D3 C4 Y& Z! n5 c
- txstyname (assoc 340 sv_dvlist)
9 X7 y f# {- F* w: c/ j+ B - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))2 j! v( D& V) s) K$ n( Q$ v. W
- txstyname sv_dvlist)
# H! o3 t2 O' ?) U - dimlist sv_dvlist E& p# u) D# r z/ a: @. q+ E
- )0 {8 G( v- T! I* q3 _: x
- )3 G) E+ ^% i$ @
- (if (= dimtype "DDLEADER")
: o$ t/ g# W' H! {( N) {* c - (mode_tile "mod_format" 1)( K T) H0 C0 c1 E
- )
) ?% B) a3 n( T4 s: a - (action_tile "mod_style" "(setq dimsty (ddimen_style))")# \5 W. S" _& _0 W* M. \' u- v
- (action_tile "mod_text" "(done_dialog 4)")
8 w7 r- d- T, ~$ U9 V* k - (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
- I! M. q+ Z5 q! u - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
0 |! F* j, O' }, k. I3 Y - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
# Q4 k! G0 Y V4 y1 O - (action_tile "accept" "(done_dialog 1)")
" h, }2 X5 `! Z) n, C) c* |! \0 a - )( {" k5 ]$ I! [: Q
- ;;5 Z2 V# ] e* x( i9 v! `
- ;; Get dimvars that have been restored.: r V' f% [ F. r# P
- ;;% s. B1 H! {- v# U" S N
- (defun ddimen_getvars (/ elm dvlist dv i)
% ~+ b! S7 l9 h# w( i8 _ - (setq i 38 }& L. `/ b- n* U* K0 R2 G, n2 g
- dvlist (list (cons 0 "DIMSTYLE")8 t# k' h4 t& B+ w! j
- (cons 2 (getvar "dimstyle")) (cons 70 0))4 ]+ i; ^/ l# m
- )) j1 M( T# Z) T( _2 j; C/ m. G
- (while (setq dv (nth i dimtbl))5 `8 P+ d, n- P( Y, U; Q; f
- (setq elm (getvar dv)
; ^! F# j8 f2 u5 [) b9 k1 P - dvlist (append dvlist (list (cons dv elm)))4 |1 w% Y1 y0 i3 ?1 z' ~
- i (1+ i)
% }4 H6 J5 c6 e3 A% X" ` - )! Z9 E! g% \9 U$ n
- )5 N( t& G) w O* {/ P0 V
- dvlist( a! E$ m/ D# S' Y" t2 g+ A
- )" r- K+ F0 Y# z3 G! l
; j# c9 |( a, g8 F. X& t9 l- ;;
( N% Q4 C* o* k, Y$ H: C - ;; Get the original states of dimvars. This is for DIMENSION entities.. }4 V( A9 e( I" F4 t! [
- ;;+ x$ y1 C+ K9 _, V
- (defun ddimen_getostate (dimsty / dvlist elm i dvvars) j* l6 [' N x1 m( w2 @/ z
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list2 I4 y0 L) \ M4 ^# x" e
- dvvars (ddimen_getvars) ; Get dimvars for that entity. V8 W* p0 j( j
- i 1
% [- y8 u; t3 o4 u) S - )) |7 H/ k; D+ O8 x' s7 W
) r/ d0 l! x+ ~% x+ {- ; Create a list that contains values of the selected entity.
- \; y: m/ {! T* n; s# m% [ - K9 f* q B5 f5 F: E' |" O
- (while (setq elm (nth i dvlist))/ N6 |( [$ ]: n5 x( ^8 Q
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)7 V+ i1 ^1 k; E( Z4 I$ Q7 r
- i (1+ i)
2 }5 z! g, o0 p: \+ q! Q - )
. ?4 k5 R! ^- T' D4 P" p - )2 w& l- a' Q9 S6 U5 o
- dvlist, z* G5 O1 R( |0 w6 g. \
- ). ~2 |5 Z2 k; V9 l5 }
- $ j+ y3 b9 \& I$ w
- ;;0 K: T0 L4 E5 D% H" r* L8 ~. p
- ;; Restores dimvars of the selected enity.2 m* \8 \6 g* N6 V6 M. ~
- ;;6 W, F0 h% N- E* V2 V8 {
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
8 f' p; p8 ], z9 K) Y - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"( t7 K. r6 k( {% R' U% d: _
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"! F4 t+ {+ T5 k! M4 _& b3 D
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"6 s, {5 S1 C' |/ L7 {
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
% n# M4 j0 k: A6 M. h6 q - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"- p5 j( |, C9 J+ G0 M! T0 N. m
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"- X5 w! X% C1 v( B% \$ n- N* c+ K5 y
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
; P6 z" i }& M0 D5 ~ - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"$ j0 Z3 R$ K0 q) U3 G+ t3 t. L
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
/ F2 O: p! ^% { - "dimdec" "dimtdec" "dimaltu" "dimalttd"
7 g" ]1 U' P* `) ] u/ l) j - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"# ]& |; {: J! y$ d
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"3 ?, y, B; |* `. w& P, O; F
- "dimtxsty"4 W6 U8 H* m0 N! x7 K
- ))
, l/ }# h6 r7 E/ n' B' a( p5 k6 d - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
. p- e! H/ C9 V2 c5 S% B6 f% L. F3 A& q - (progn3 V0 C8 k9 T% a2 @! s+ d$ y3 Y5 S$ R
- (setq en (cdr (assoc -1 elist)))
% i$ a5 {' R5 h/ D - (command "_.dimstyle" "" "" en)! g6 u. e' G- m/ R$ ^
- )( c% N' Z: X4 R- ?% A" `+ z+ i7 `0 a
- dimsvcurset
6 b0 o5 z: l1 ^; |: j - )/ K6 [- Q6 G' ^1 X- d
- ;;
2 d P5 W/ e) [* ~% y, Y - ;; Modify Leader
, r' h9 a0 B& b1 l& C& C2 S# g5 \# N - ;;
2 o1 v# y ]1 D - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl* P5 ]$ m/ Q+ x9 c
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
' F3 \$ w$ n6 L8 I5 p$ F8 ?+ g( S - dimtype dimsvcurset)
6 S" D, v; F7 t# t. v+ C7 R - (setq dimtype "DDLEADER"
' g+ F e2 h. v1 q, o - dimsvcurset (ddimen_dimsty_restore)
% q* D7 \1 N: ]# Y9 t# Z1 E; O; W - )
! w, @- M8 E5 K& v- T& i5 c/ ~ - (if (not (new_dialog "ddleader" dcl_id)) (exit))
$ b5 t9 f: N& j. D% |1 r2 I( X - ;; Set initial tile values) |9 u4 w0 k1 Q
- (set_tile_props)
0 O* a6 D5 `3 q5 p4 m L- d - (set_dimen_props)
% t0 X# N( i4 H: S( N - (set_tile_handle)' b8 D+ `$ B5 ^) G# y! v' d
- ;; Define action for tiles
1 ]4 o; `& b0 {! F% N - (set_action_tiles)( V! Q$ L, V9 G* h
- (mode_tile "mod_text" 1)
- k- u) c+ }2 l8 I( Z& \! {
5 x$ E! p& L4 V+ U' N3 t+ g- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
8 `4 W0 g9 r1 y, g& O& r9 X# X - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
" W! ~+ K6 w' Q1 P, t. | - ;; Get ARROW and TYPE.
3 N6 B. `5 L" V3 |' r' S0 x - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1")). `- `& f1 K% k+ u- L4 o
- (if (= 1 (logand (cdr (assoc '72 elist))))+ X- f, H$ d# p& @( R; o, s
- (set_tile "s-s" "spline")' i$ \- B5 ^7 P7 [/ G; o) s
- (set_tile "s-s" "straight")3 V1 O, B- |% B/ Y2 A2 C. F4 J5 }
- )
- W. D+ i! ]& i1 R X+ [- e - ;; Start the dialogue.
: L" X. f' a8 ~/ B" W8 k0 Q - (setq dialog-state (start_dialog))
2 ~, O0 l7 z6 S g9 ? - (if (= dialog-state 1)
9 }$ y+ i6 ], G7 b% g# e7 b - (progn
) D3 T$ d6 G+ M) P. d0 [$ L - ;; update the style
( b- S: C. s' m! M - (if (/= dimsty stname)
: ]9 Z, r& R; y6 F: T3 ? - (progn4 R# R2 H$ H2 K$ |) b
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
6 B$ z. _- q# z8 [! L - ; doesn't have it.2 o* D' ], o @# Z; S
- (if (null (assoc 3 elist)): O7 ^" x. Q3 |
- (setq elist (append elist (list (cons 3 dimsty))))4 n/ U4 }& |; g9 G0 Y
- ; else just replace it.1 a2 \3 e) S' r7 ]5 N
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))* Q( Y- ]. q1 I2 Z8 B& J6 s
- )
+ V7 t1 f5 D e5 u" n# f, _2 e - ; refresh sv_dvlist with new dimstyle.6 T0 A4 i- J! X9 D# Q
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 g5 V4 J( y x: t6 t
- )" {' |0 w) i" T6 \! _3 P
- )
, G) \- `2 D: {+ l. `- @. C - (if (not (null dimlist)) ; attempted to change dimvars, ~* p2 a7 k3 h/ M* s1 o* X
- (ddimen_complist sv_dvlist dimlist dimtbl)9 u* M& A! ~: Q) ?! D
- )
. K X8 P, n" x$ }* t* S0 y _ - ;; update for ARROW.
& X) s' E( [0 b7 i8 R9 e$ Y - (if (= "1" arrow)
" n- Q- N3 k' l7 X7 Z( m! m# u - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))6 z" x3 G! m/ r7 T# S
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
; c5 h6 Q) v, f% r- N- U - ); k& Z$ |# m- M3 H2 x
- ;; update the TYPE.
5 h5 z6 f; |# \ - (if (= "spline" leadtype); l) h% O( P: Q9 M' K* o2 a
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))) e/ W9 B" Y9 H1 D
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))- S1 a! ~2 Y+ d, q3 Q X# s
- )( I% F8 R$ w1 l; K! o8 G1 @
- (modify_prop_geom)
( F- g) s6 x+ x' t - ;; update the Color- k; P6 D C" }4 T {$ ~
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
) r6 K- i' R. f3 o% n - (entmod elist)
/ @0 h5 g0 I$ [9 s - )
- |& h9 F* S, ?6 D/ S - )
3 T- O% @9 E; } - (ddimen_setvars dimsvcurset) ; Prepare to exit. o7 {: N0 _2 u# f1 m$ w& _
- )
& V5 z" `% b6 h# b: o$ H/ a - " }+ G) _* y- \
- ;;
' R( p" o; a: ^# l - ;; Get dimvars of a dimstyle with overrides.
+ E0 |& o" T7 r. h# v' G& y - ;;: b2 e3 K! C2 `: J$ p
- ( ]9 R+ G# S' z; S7 j
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)' Y% y7 [! ]9 f' I
/ x* F3 Y, W1 p, y1 s+ @2 b( v- ;; Get override information for the specified entity.
g7 s9 v: C. | - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
4 s& X: J B% y% X: u5 e- z - ;; must obtain override information through this tedious operation.
5 R ?+ p, d, j8 f7 W) [" S0 G) X- V - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*"))))) d; s' \( o) U% ?+ u2 O8 V- X
- dvlist (tblsearch "dimstyle" dimsty)4 s( h) M K/ n- n6 ]: e+ t- B
- i 29 S# l( k, H0 Z M1 A' \% Y
- )
( F" ~: G+ @3 Q) Q' k1 [+ G1 ]
/ A3 j/ g' }. q% D; S+ p- v' R4 y- ; Update the list with overrides if overrides exist.- [# C! F0 e: H* ?8 x
# _' g- M) F* K2 i% H: ]0 u- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))* ?$ x# f+ z. g7 B' u( q; }
- (progn
& q6 ]4 B2 H4 g& H- T - (while (setq elm (cdr (nth i dimovr)))
: p k* S2 q* ^+ N0 b; k( h9 O5 z - (progn
$ m3 O) c {( s8 Z" h3 s4 z! @ - (if (or (= elm "{") (= elm "}"))' r: L g4 E& D0 n7 L* H
- (setq i (1+ i))
+ K9 ?1 D8 J7 H+ F [+ \9 F - (progn
! n, T) q2 ]1 i- c) ` - (if (or (and (< 180 elm)" ]8 Z8 L, D8 f/ p" H1 A
- (< elm 190)
, E0 u, h% t* B8 u; g n - )- T! ^( a7 _7 ^: z
- (and (< 80 elm); r$ y( h) b* i; ?, G: a
- (< elm 90)
. m# P+ \9 u+ U - )" X) @5 w/ F: s( ]/ K- j8 {
- )
! p0 w) E; J; v9 K3 E - (setq elm (- elm 10))
5 U( D2 L4 z8 ?, t3 g9 |) O - )
2 |* u6 d3 o ] - (setq i (1+ i) f) ?3 `* |1 c( O+ l( W
- elm (cons elm (cdr (nth i dimovr)))
9 Z# v# V. ^8 v - dvlist (subst elm (assoc (car elm) dvlist) dvlist)9 f8 _' a% ]2 B3 h+ r" J
- i (1+ i)9 [/ D" ~% t B8 i) |3 N4 A
- )2 b l- W% x) h2 W y7 I6 e1 m7 i
- )
! \* \- P1 H$ C2 f& P - ) n3 |+ t$ D9 u, R/ K
- )
" k& J; s2 X6 r* X+ w+ x3 Y3 ? - )5 T$ R0 r3 e" F
- )
. a& R: ?5 W* l j1 _5 @9 b( X - )2 y, k5 A; A7 ~' r$ I) V
- dvlist
0 [3 Z+ w; k( C5 `* m6 Z) m - )& W/ I, u; w) F, a; V8 b4 r
+ o6 U( u2 K$ \' `1 `- ;;
( ]) Y1 e( | i9 y/ Y% o - ;; Modify POINT
( ~' A' a3 T; D/ ]0 S - ;;
9 Y& |; v6 p0 v- K - (defun modify_point ()
) L5 E0 u# P; s - (modify_properties)
1 g( h7 }" _) g3 n$ m* I+ Q8 m - (setq pt1 (list x1 y1 z1))
% S: K( ~2 Q# A" H1 |" Q - (tempmod pt1 10 0)
$ Q! |5 v' P. s0 J% D! C- k0 n - (entmod elist)
( P* B9 ^( l L! }7 S% C - )# h+ `( L( \+ q/ E
# w1 n- ]; _+ u- (defun ddpoint ()
) V, \, `- U4 G$ v& W - (if (not (new_dialog "ddpoint" dcl_id)) (exit))
# Y' @4 Q4 i8 S0 ^( x5 N - ;; Set initial tile values
& V5 _" s) d+ I, L. m - (set_tile_props)
$ Z& T, E- h$ v" _3 h$ A - (set_tile_handle). k- n& ~2 Q- ~3 J( b$ ]2 F: }
- (set_tile_pt1 0)
& L3 W& Z: k6 R4 T - ;; Define action for tiles
; B6 B3 O3 @: y: T) P8 {9 ~1 q - (set_action_tiles)
s) d$ I- j; B5 r - (setq dialog-state (start_dialog))
6 `& H$ c: b5 I4 A - (if (= dialog-state 0)* A* [; W& k; A
- (reset)
( {; O/ M9 p; G+ F - )8 T- V/ `7 ?1 {+ [ X
- (if (= dialog-state 3)! [' T* o; L4 H! v
- (progn: q# k) X8 O5 _ F9 n
- (modify_point), @- S) V& {- r: e e9 O
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))* h% _! v6 F8 f2 Y3 [- K: @# s) y% P
- (ver_pt1 0)
3 q ~5 X# V. g R - (ddpoint)7 O' g- H9 r" k) l: v
- )& M U, a( J7 g0 }8 f( t2 m* O
- )
" w5 }6 ~, L6 H" V4 Y0 J - (if (= dialog-state 1)
: Z% ]* P5 _4 L( D) ^ L - (modify_point); R3 N6 @0 J5 |9 K% M
- )
$ h# p) ^, Z1 H% c7 P - )
2 k; b' v s! n Z3 V/ W5 N - ;;) I1 p8 F+ m. C8 V) a* S
- ;; Modify LINE
, g% H2 S# D! j J) W D - ;;4 K# n& H% ~2 i: X& g4 G
- (defun modify_line ()
( V; ~7 k" t. `* @' ~' Y2 Z - (modify_properties). t# T& y, ?- G% j+ u! N' _: m" F5 e
- (setq pt1 (list x1 y1 z1))
5 P7 H) w6 F8 r- Y- a T - (setq pt2 (list x2 y2 z2))2 [4 X' |6 a+ U# d
- (tempmod pt1 10 0)4 M0 T4 H, k H! \0 z
- (tempmod pt2 11 0)$ S3 m; [$ E6 Q& e
- (entmod elist)
T8 Q' p2 A5 F% @2 X; f - )
2 l" {4 ]: X# \) @/ g( }2 q - (defun ddline ()
, r! Z R4 s, _. f d( I& ~ - (if (not (new_dialog "ddline" dcl_id)) (exit))9 G; B1 T4 {* i% B- H
- ;; Set initial tile values
) v8 d5 ?3 @3 A; t - (set_tile_props)
8 ~, j1 @+ G M% b% A - (set_tile_handle)$ a5 ~) D# Y8 l& h6 K5 t5 B
- (set_tile_pt1 0)+ s; d8 G, u4 w; c) z
- (set_tile_pt2 0)
' ^* X8 N* P" W }( S( w - (line_calc)
) q& G/ m# }' y9 R- \7 Q* [ - ;; Define action for tiles
2 `( ]! S m; G0 a3 ? - (set_action_tiles)3 @. w; V! f a! J# f3 X0 `
- (setq dialog-state (start_dialog))
) u7 Z1 P8 p3 w! @6 M: g - (if (= dialog-state 0)
. G7 F, @. |5 m0 W) e( _" ~5 F - (reset)
. ]4 @% B. C3 ^" [ - )# T2 R$ U |9 g; s
- (if (= dialog-state 3)
; \2 B" a' n. | `. g - (progn. C+ |% C |3 F3 `$ o' ~+ I# v' j
- (modify_line)
; B& D* F4 g2 D& Z; ?# K - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
9 c! \; M& [& ^9 [! Z( e! P - (ver_pt1 0). p: K& t7 U; l8 F/ F$ Z9 ?
- (ddline)5 v$ ~9 i0 y- i; v
- )& t7 V4 o. [: r1 z; R
- )! @! f, ^/ g9 V" {6 Y
- (if (= dialog-state 4)
. S6 T0 G1 f+ ` - (progn
8 G8 r1 d- Y: U+ M* [2 g: t - (modify_line)
9 k+ i$ U; y o( U# d0 f - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))' Q9 s9 R; R. b% y7 ?1 i% G& Y
- (ver_pt2 0)
( \3 e0 S: _1 j. F+ N- g% u - (ddline)
* G. L8 z, M# W; |) X - )
7 Y% C" e$ ?$ L( i" y* Z - )
9 f- r B" C0 J/ _% s5 K - (if (= dialog-state 1)
) B3 [0 J/ l; S: W/ Z- s - (modify_line)
& l/ D E F+ _0 q& k5 s" Z+ {5 N* I - )8 L: N0 G$ B- ?: N" ?7 X
- )
! m7 S4 M) P J" ]) E7 @: P/ {- }, _ - ;;# ~3 X5 n7 J2 ~: T; R: F
- ;; Modify MLine
! [& K' l* c p6 L/ Y - ;;8 H, i$ _/ o( N% h, p" c
- (defun modify_mline ()
+ S) N6 \$ w2 f8 K7 s9 l - (modify_properties)$ i! Q( U: R, @" G! Q0 m
- (entmod elist)
6 ?* z1 j1 s8 Q - )
+ j5 d% L( A2 w - (defun ddmline ()" R7 @: M- m; P4 o% V4 ?" p
- (if (not (new_dialog "ddmline" dcl_id)) (exit))/ c. J) e& Q! I, a( M1 l& O* K
- ;; Set initial tile values1 o, b( M& c; M* @, Q2 z
- (set_tile_props)
. [2 V$ f: A3 F: ~7 H. Z - (set_tile_handle)/ }9 P1 A" Q/ r# q- c
- ;; Set mline style text field.
) ?8 G9 P& s* L - (set_tile "ml_style" (cdr (assoc '2 elist)))$ n9 x: k1 O* W6 y+ x& `
- ' u6 o3 Q; V" i& H: I
- ;; Define action for tiles
i, }/ n( d# a/ c - (set_action_tiles), o( M7 o" L2 Z" \' U' P2 O: v
- (action_tile "ml_edit" "(done_dialog 3)")
& L& m) f3 g, T* G - (setq dialog-state (start_dialog))# e8 q) @& ]; y1 D: x( e. B
- ;; Dialog cancelled, reset to original values.
8 O/ _# C/ r. d& b/ w) i, |+ w - (if (= dialog-state 0)( i: |! d2 q, R! z8 i2 Q5 l
- (reset)
. R: A3 R' V0 S9 M - )
- ~$ O& s {6 K; E) e - ;; Dialog OKed, update the mline.' V2 C: M1 C: Y
- (if (= dialog-state 1)
& r! U b1 r, H) c, \0 t6 a - (modify_mline); `. D+ F( s0 l: ?( q9 q
- )/ D) S2 ^5 Q0 U2 L
- ;; Edit Mline, call MLEDIT.
& ?! e3 L6 `; r& w. d - (if (= dialog-state 3)
4 D) a- z: k2 I) d) Y# a% Q6 |" P" P - (progn* }# K" x6 h+ q7 c7 D1 B
- (modify_mline)
9 ^. _1 f( B% {+ G. a - (command "_mledit")$ b& }/ R$ {: m+ f4 s
- (ddmline)' a. Z C) A4 W6 S+ [6 U
- )
, J" H* H) f# G9 a( z - )
$ w& S4 W3 n( f! ? - )
6 r# u; T; O$ }) b# r - ;;
6 @& I; @/ ~. g& k - ;; Modify Xline* K# r& {/ F! N9 ?
- ;;! J+ p" H+ }( J+ V! z0 O! j% |3 I
- (defun modify_xline (flag)4 G9 {3 P5 n& j; X, C r
- (modify_prop_geom)
& L8 u0 P9 R8 I - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1)); [' |' q) ?7 H t5 ~1 ?
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
+ Q. P7 N- X! i3 p6 W/ } - ;; Update the Root point.4 T. ] H. v. j) n7 _! o; ?
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))* ~$ L$ b/ k# I* \- \; j
- (assoc 10 elist)
: B8 D5 H7 \4 ^" a% V) l. e' q - elist6 ~/ e/ ]* a7 B8 l* O
- )3 ?0 j e8 V" \" C
- )
# A3 b& E1 d+ {$ {3 E3 g0 a5 O - ;;( b3 t& B0 F$ P( t# ]7 C
- ;; Calculate new Direction Vector WCS/ ?( ]% y8 P! c4 M% d1 m; c) p e
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
) {% q/ d; B5 ]4 L8 C2 J1 C: K
% ]# s. g7 d4 n; W$ A- (setq temp_dir (trans xline_pt2 1 0))5 r- S" v. Z {& W8 y3 N
- (setq temp_dir_x (car temp_dir)): s- O7 ?5 F- X5 v. g+ J
- (setq temp_dir_y (cadr temp_dir))6 G8 {; g- m9 l1 {% W
- (setq temp_dir_z (caddr temp_dir))
! S- z. ]0 M* u1 V/ f0 @- m - " ` `! a& ^! u5 t( j8 |! _
- (setq temp_xline_pt1 (trans xline_pt1 1 0))% i5 [5 E3 m! k0 R& L
- (setq temp_xline_x1 (car temp_xline_pt1))
! H/ L" Q2 ~2 W0 | - (setq temp_xline_y1 (cadr temp_xline_pt1))
2 _' @( E/ Z; E" }/ o+ ^ - (setq temp_xline_z1 (caddr temp_xline_pt1))
$ h& X( R4 A, D% E - / T4 Z9 `: T" L* [6 A! N
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
}7 X* ~; Y# b" x5 E- N/ ] - (expt (- temp_dir_y temp_xline_y1) 2)
B, b9 s ~3 Q r# }; X - (expt (- temp_dir_z temp_xline_z1) 2)2 Q' y1 W8 C$ F
- )))
# o9 r" ]' Q/ Z - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
; j o- K& k/ Z1 Z: b - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom)), r3 C# O% Z! Q8 F- [
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
7 k% B: J. K- u, ^ H. O, l V - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)); _+ d2 }! e6 K
- (assoc 11 elist)
; I4 k' G7 t* V+ z$ c$ L$ Q! w. B - elist
9 r1 g; ?$ L& L& o& M7 z - )
- u E7 S/ p# D3 T5 U" W - )
$ a* q/ C1 K' K9 V0 }' g - (if (= 1 flag)
0 m& {; n! A6 n# o - (entmod elist)1 B0 {$ ?% I. b! {1 r8 z
- )2 E$ ~ g, g8 b1 [; Y( c
- )# f) C/ d( f9 `+ E6 q
- 7 V4 e: j7 ?' ~- d1 ]
- (defun ddxline ()
% g, G4 c0 m6 Q. g- j6 w - (if (= etype "XLINE")( J e8 J8 d& p4 I2 o4 ?
- (if (not (new_dialog "ddxline" dcl_id)) (exit))% M+ N9 L9 E# @: _, N% E
- (if (not (new_dialog "ddray" dcl_id)) (exit))
" w: e0 w( Y1 M! E7 D# u - )" J, `% u) ~, A" o$ g# x
- ;; Set initial tile values, @$ Y* i; |& R9 o
- (set_tile_props)
t) T/ U& u" F4 e8 x( H - (set_tile_handle)/ y9 i" Q# x( a
- (set_tile_xline_pt1)& ]- K( {. d( m- f2 e; s$ D
- ;; Convert to UCS and post Direction vector.3 Y4 y1 s$ T. D) }, ]
- (set_tile_dirv)
0 W8 j) F3 S" @% r' }3 R ~! f. t - ;; Calculate second point by adding Root Point + Direction Vector.
; Z$ Z4 |: S+ E5 g" D& a - (set_tile_xline_pt2)
, U! ~. K- V$ N2 H y& O - ;; Define action for tiles+ ?" f$ g5 ]9 a: W6 R' z2 s8 A3 \
- (set_action_tiles)
! U- J- c2 c! A: `3 @% c+ k - (setq dialog-state (start_dialog))
) E! J# z) `# r' U5 B - (if (= dialog-state 0)4 C7 T. ?+ o& ]7 B1 S/ {! s- w. R g9 q* p
- (reset)
/ \7 t' {2 C; u: P% O3 Z# H' a - )
% [3 e/ v: Y( ]% M5 q - (if (= dialog-state 3)' ^& X( _$ r; T2 ], G/ J! ]
- (progn- F4 ]) a9 _3 t* }: X. o" W5 R6 ~
- (modify_xline 1)
! G5 l! h5 Z- x - (while (equal xline_pt2
; _# Y. E) |! J! w4 ^) ~ n0 _ - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
0 H- |0 y1 t0 w# d( e+ D - (princ "The Root point cannot equal the Second point.")
2 l8 y9 x" W6 X, _+ b7 y. B, G - )
! t9 F( }* r* H; U3 O& y - (ver_xline_pt1)* ?) d: N; Q! \5 Q
- (ver_xline_pt2)" _: x \6 \8 Y! J1 c u
- (princ)
# b$ D# n% l( c, w9 f - (ddxline)5 u) Y3 i* m8 z2 k* @
- )
+ U+ r7 H2 y7 x3 e7 I - )
5 e' g1 o# \: l! y - (if (= dialog-state 4)' \" J$ B6 V3 y/ A1 e l
- (progn. p d( } W5 x' L' ]+ e5 q" h
- (modify_xline 1)/ n+ F0 p- h" o) r- j; J3 m- A
- (while (equal xline_pt1
9 e. T. c; r- A - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
# v7 B8 R4 \' g. l/ m) K4 @5 C - (princ "The Second point cannot equal the Root point.")
8 v; B u7 q) I0 v! a. o/ X$ Q - )
& B0 T1 T- j9 \+ }5 v) u+ s3 h - (ver_xline_pt2)
; f- Z; z( \; [ - (princ)8 h! V( R* g- `1 l
- (ddxline) l5 g: ?: B& F6 u! L5 s0 m
- ), W% _1 |" \2 x# m( t2 [
- ). u9 y0 ^6 G1 w8 p; `# b
- (if (= dialog-state 1)8 H: u- e" V2 K M: Z7 g$ ?; M
- (modify_xline 1)
$ {! Q# F/ @& H5 X5 o - )
7 [! I) P& [' h. Z0 T* e - )5 O! ^) g& E& G% o2 b/ }
- ;;& x8 `+ f5 R$ ~* ?2 H2 U2 Q
- ;; Modify ELLIPSE
F6 d. M" ?) M' I3 R) m; [ - ;;3 F: M/ Z! O" W# \/ a: c+ A h7 D" ]- Q
- (defun modify_ellipse ()8 Q/ z! ]& c: ~2 S5 C: q/ e
- (modify_prop_geom)
9 t1 F0 j3 u: ^2 [& Z9 X - ;; Update Ellipse Center Point value.
5 u# P" u& g: d" h: f - (setq pt1 (list x1 y1 z1))1 n0 c3 E6 \" a {1 ^
- (tempmod pt1 10 1)0 e: F4 l; \/ Q$ v
- ;; Update Start Parameter value.
$ _" ^+ F v. w( c. s - (setq y_val (sin st_ang))7 P. F8 V) X; d7 s, h' m
- (setq x_val (* rrat (cos st_ang)))
: |# c+ k; j9 Y0 @3 ]9 M - (setq stparm (atan y_val x_val)); p" M% l- _4 ]( Q& n F5 ]
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
7 v, n. P0 l: p H - ;; Update End Parameter value. Normalize it, if it's less than
; `; N$ B- m6 p3 E$ a, e) D: o$ U7 t - ;; the start parameter.# j0 L' u) _/ F
- (setq y_eval (sin end_eang))
9 w0 u- H' h9 n* e - (setq x_eval (* rrat (cos end_eang)))1 \- o2 ]6 t! T# U8 m' @9 @
- (setq endparm (atan y_eval x_eval))2 F/ g5 e7 H4 |. E6 s4 S' d
- (setq diffparm (- endparm stparm))+ g$ ~! \% H* Q5 H4 g2 ]6 [
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
* e, c4 F$ ]& L$ f - ;; Since zero length arcs are not allowed - construct the full6 r. g/ f/ w% Y$ n0 |
- ;; ellipse in this case.
5 [. n& F5 V7 z3 Q" {. U - (if (<= (* diffparm diffparm) 1.0e-12)/ A8 u( l1 P0 F2 x
- (setq endparm (+ stparm (* 2 pi))) } c0 P: h" s. M6 m c! Y
- )
6 M4 z9 U l* T7 D; x4 P+ N" o - (if (<= endparm stparm)7 q3 P/ A) o9 ]2 [
- (setq endparm (+ endparm (* 2 pi)))- y% O% R1 v* D8 m5 p
- )# E+ R- U' @$ x/ X
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))( n( t4 f6 F |( v$ i7 v
- ;; Calculate the Major Axis Vector by first calculating+ d( q( j, L7 H, @' J4 r1 S# s( S
- ;; a unit vector using the old Major Radius value. Then' @6 N& z5 A- _ N6 W% U
- ;; Multiplying that by the (possibly) new Major Radius
/ j4 `% |1 A$ E8 a% k - ;; value to get the new Major Axis Vector value.4 w2 B2 c5 Q `% V% r, w, i) ?
- (setq unitxx (/ xx old_majrad))
$ T( m% B A L& L2 Z$ @* J4 r( d - (setq unityy (/ yy old_majrad)). |3 L2 Z- w" }# }2 Y) n: W9 O0 C
- (setq unitzz (/ zz old_majrad))
# Q. W$ c* W$ D. } - (setq newvecxx (* unitxx majrad))! n% y( r: F4 m4 b t* q: l
- (setq newvecyy (* unityy majrad))0 a# c& P4 |7 W2 }
- (setq newveczz (* unitzz majrad))6 {( ]; x$ c8 k$ k9 Q- [1 } ~
- (setq newmajaxis (list newvecxx newvecyy newveczz))5 h! T! h8 ^: y* K3 p! F; f: Q+ B6 l0 H
- ;; Update Major Axis Vector value: }6 ~; b6 a5 p* a0 n1 b
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
$ \, n, H$ Q6 K. | - ;; Update Radius Ratio value
; K, g/ p9 u! a( O+ ~+ @% [, d3 K - (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
, x8 j. r) F$ }9 K! c" z1 {3 \4 E: n - (entmod elist)& v' l c% a5 O5 {
- )' Q( J& K$ {8 s8 }
- + n4 x: t% h9 @2 _) \
- (defun ddellipse ()) B9 \* U1 f: n1 s( N
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))
7 a" s. J7 ~( H7 M4 t) Q - ;; Set initial tile values
5 k# ?+ ~! s! Y4 g: w - (set_tile_props)
9 @; Q \1 G# Z& K - (set_tile_handle)' J4 a6 Z# v) g/ K; p
- (set_tile_pt1 1): h4 H6 A3 g* C( _9 k4 {% v
- (ell_calc)# b& ]* [$ @; F
- ;; Define action for tiles
: ^8 i5 z: l* K3 M$ n& Y6 p3 U0 v - (set_action_tiles)7 [0 i) K. U, J3 r, _$ i
- (setq dialog-state (start_dialog))3 G7 E. V, k% t! t0 y$ ^5 I
- (if (= dialog-state 0)
' Y) U2 b {% g7 }9 O( F - (reset)
% ~9 D3 H6 M7 c5 a - )
$ o; j1 B; _3 Y - (if (= dialog-state 1)
; B2 t" N$ {* {9 l. a } - (modify_ellipse)& A7 C! l( m/ |
- )1 w1 [# X' R* S1 U- W9 L8 w
- (if (= dialog-state 3). M4 l, ~$ S. x# m1 h" ^
- (progn7 ~" Q& B0 o( A
- (modify_ellipse)- r) `" z# o! E/ h) E/ U" L
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
n5 k k, [) w4 |; p, k9 n5 S- r% E - (ver_pt1 1)
' e, U. N2 Y5 j& [" t - (ddellipse)
+ C! {/ {9 f6 P# l - )
, o- s, f3 ?. e- x* k - )/ @/ M( J$ p- E
- )
6 m2 w8 |. [7 c/ f2 t& ~/ y4 T - ;;
4 V$ d5 o& Y4 b7 j - ;; Modify REGION
7 @2 ^. p( b+ L4 b! i2 p2 |$ k - ;;
" W! w9 f6 F" {5 J9 U - (defun modify_region ()
- C& M* y' {9 {, [5 ` - (modify_prop_geom)
# X$ }& {$ D, _+ ]+ J - (entmod elist)
9 }3 j) M" E2 l* p0 o/ c - )' t; K% j7 }$ d" H
- ! B: _: j7 f3 E7 G7 x' q5 t
- (defun ddregion ()0 f" N; d; n/ }4 n1 {( @9 a/ A
- (if (not (new_dialog "ddregion" dcl_id)) (exit))/ p% u+ x7 }7 R1 T
- ;; Set initial tile values8 c5 k5 T1 o3 x4 z, x
- (set_tile_props)
2 V3 m& w; {2 q# K - (set_tile_handle)0 Y# H( H8 P, C3 ^9 Q% ?0 T- m
- ;; Define action for tiles) h9 ~5 t( R& E O
- (set_action_tiles)' @2 _0 e" {; X) X
- (setq dialog-state (start_dialog))
( e; q4 ^' C$ A7 H D' d X( o) a - (if (= dialog-state 0)
7 Z! ]5 [7 `6 L' Z6 N; C. j - (reset)
2 U1 o2 |' n: ? - )
: ^9 W3 L' \, M0 t. @3 x' M# o) _! W - (if (= dialog-state 1)7 g$ F& C, m! D2 p9 P* @
- (modify_region)
2 |. I0 s* `! e3 | - )
$ _; {7 g* T' F! C( f. M$ Z - )
! P0 C/ v6 ] }$ K7 } - ;;1 ?. i: i$ Q# r+ H$ c
- ;; Modify 3DSOLID m" {; Z+ g' \$ q. `
- ;;" a$ L* B7 a: f, y \3 _
- (defun modify_3dsolid ()0 Z3 t" {7 P) h4 H: Z& d8 n' i9 d
- (modify_prop_geom)
J, X" m% S8 x+ y/ r! x - (entmod elist)
0 z. U) F( ] `! O' r - ) o1 ^( j( I* a! D" m. `
8 p3 y9 r# N1 k/ [% a- (defun dd3dsolid ()2 {+ c% m, P9 I- N. \
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
/ k p" x& q: w9 J- x) Q - ;; Set initial tile values
3 G$ q* E7 g# o - (set_tile_props)$ p* r+ B4 W% E% w' P1 c( i
- (set_tile_handle), e( r) l5 X: C0 g$ E
- ;; Define action for tiles! q E9 m5 k5 s @( o6 b
- (set_action_tiles)! _/ l& _3 w- B1 g
- (setq dialog-state (start_dialog))
) R# J$ a4 _3 U( [ - (if (= dialog-state 0)( ] W5 k6 N/ ?! o9 S' e
- (reset)2 _. U! @& Q: X
- )3 |+ j2 a7 t/ j; U: Q2 l( ?5 d
- (if (= dialog-state 1)* a. F! e3 X* Y* @+ a
- (modify_3dsolid)
" H; C5 y" I0 h- ]8 W+ ]% r - )! F1 b) a9 P+ `% S
- )
8 T0 ~9 ?9 C/ }1 a, M' u& S- O - ;;: |# B: N1 L$ e1 L. s
- ;; Modify AcDbHatch
5 v3 M. J3 E& U; o, |) ^* K( O - ;;
% A- l2 _( ^* g" o) @7 a+ U - (defun modify_hatch ()
1 f; S( m- F, g - (modify_prop_geom)
, y _% _% ^, I3 x. h7 e/ k0 E - (entmod elist)/ B6 }% W; ~9 k( X
- ): O, W3 T! R: d
- 5 [2 o9 R: h6 |% F- i( f! p
- (defun ddnewhatch ()
% G `1 H/ ] _, ] J9 P7 Z- a! [ - (if (equal hatch-elist nil)
) R, G9 r$ R: Y8 W1 E) |: r - (setq hatch-elist old-elist)
I: ~0 w, X# Z' G) D& h - )% S0 p# a, i9 n& K) E
8 h% ?% O3 K! d6 t; k8 j0 p- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
) P% B/ ~. ^9 s6 }
2 F) A$ }+ C% q p8 y$ S; C- ;; disable the thickness tile
" U9 e1 C* b* H2 L! i! C7 a - (mode_tile "eb_thickness" 1)
* G/ R0 Y& F$ ^) {9 v - (mode_tile "e_thickness" 1), O2 |0 X' m% O0 l- z% W( ?6 w$ d
- b% A5 G4 _: ]
- (setq help_entry "modify_associative_hatch_dialog")/ ^8 c7 v# i) n7 K
- (set_tile_props)
, _- z R4 A4 I9 V5 p) I - (set_tile_handle)
& x7 {% k/ }& g) n: { - % r/ f& _' C4 }+ a. Z2 J; V
- ;; Define action for tiles! \5 u C+ e) H
- (set_action_tiles)8 h* {, a( d" c- @/ j
- (action_tile "b_hatch" "(done_dialog 2)")
, U9 M0 t( A6 N4 @, C, ~, G - (setq dialog-state (start_dialog))
; E5 y5 N5 U- q* r - (cond
6 m) \- L- L( y# j - ( (eq dialog-state 0)
( Q. z- _6 ~0 [, v* I9 k) n3 s - (setq old-elist hatch-elist)
0 H' W' D* h& T% f: h& G. B; @ - (setq hatch-elist nil) }6 ?3 o4 k) `
- (if (= (checkforlockedlayer ename) nil)
# d5 c- u/ O+ @/ T/ I% P - (reset)* ~6 n' w; i: y
- (progn ;;; special handling for locked layer reset; _+ S E, H" J7 r: d4 T
- ;; unlock the layer
: n$ j7 m8 H4 ~0 q J5 X - (setq layername (cdr (assoc 8 (cdr (entget ename)))))4 Y$ y& `# ~! Z0 y7 J% E: y
- (command "_.-LAYER" "_Unlock" layername "")$ W4 Q$ v3 j$ a7 i9 ~ t- A3 V7 O
- ;; reset modifiction0 o1 ^, N2 Y9 W
- (reset)/ w" K8 }5 i2 G& }4 u
- ;; lock the layer again G& h/ ~" b& G+ n: L+ W5 a* {* B
- (command "_.-LAYER" "_Lock" layername "")
1 ?6 R+ d% d' S7 c) z% j6 G' f7 T - )5 Z4 m& S, T2 `4 ^/ M1 d
- )
* [. Z/ s+ ^$ m' g6 s. e - nil ;;; makes (ddnewhatch) return nil for Cancel
& U# T) Y( R5 H* K - )$ V% O7 E9 r- F1 \1 ], ?! [/ C
- ( (eq dialog-state 1)
. y1 F0 `* @; U4 w) { - (setq hatch-elist nil)+ A- \$ s2 W' Z+ o: d h+ C: i
- (modify_hatch)- P1 v# }. m; {) r+ Z$ Y+ d5 q$ Q
- T ;;; makes (ddnewhatch) return T for Ok1 u+ ?: W1 f/ o" V
- )
7 _ W( `' O8 S - ( (eq dialog-state 2)
( E; i$ N( J) p1 K8 u* D
/ J7 n' ?- D# |; @7 F- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))/ }8 ~% l' D& r# S- n- ]7 P
- 48 R( l+ g4 l$ Q
- )
$ ^% A0 t4 |/ [5 E! k4 ~% j - ;;; new selected layer is on a locked layer& Q" M$ R$ R" p# p/ `! J6 i
- ;;; we can simply modify the hatch properties8 j, ^7 b# f5 N4 ?
- (modify_hatch)
* l: x( J: G. A9 q! N9 V# e& W - (progn3 ?+ \7 ~1 ~/ G1 z7 A8 V( h
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
% [9 B3 t4 x% t( {9 F* ]" n - 4+ W% \ k% z" p) m* F N1 _
- ) 2 ]8 t5 v5 V3 K1 i- E4 L
- ;;; We changed the layer previously and now the hatch lies on a locked layer.0 Z$ s4 ?" j2 M1 ?6 \" O4 `
- ;;; We have to unlock the layer forethat we can update the hatch properties.5 {+ Y! y5 R; U5 |# \+ I' a0 _
- ;;; If we don't do that (entmod) fails to update to the new layer.
B1 Z3 F; M F5 M* X+ }7 {- [( S - (progn: |% T/ G0 ~# h
- (setq layername (cdr (assoc 8 (cdr elist))))
1 A* j3 K' @' {5 M) V) F: t% s - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
' t4 J5 J( a# G/ M2 t4 y - (modify_hatch) ;;; update the properties! m, Z9 n& l2 W" M, Z2 k- I
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again# Q3 ~# A! J) |" f w
- )
" b8 a- G7 Y' W2 ^4 _( C/ w - ;;; All other cases we simply update the properties- Q/ d* w5 Z/ r9 G6 H( L
- (modify_hatch)' H, t5 h2 J7 q j
- )2 ]8 _8 s0 t3 y5 n/ h0 f
- )+ O& f) w3 Z1 T1 ~9 ]/ u
- ) ) o& t8 N; k* d5 _0 n2 W6 y
- (if (= (checkforlockedlayer ename) nil)
2 e) b- `; n. ?2 s- A - (command "_hatchedit" ename)
+ r& d9 d- g) d& e# s9 e. z; X - (alert ;|MSG111|;"The hatch object is on a locked layer.")
: t3 \/ ^2 Y1 |! Q% ~# s - )& q1 i2 h& q+ @9 Y; w( D% |
- (ddmodify ename)
* d, E6 d9 j* k+ s6 ^ Q - )0 _: ?* H9 z8 O6 L$ x, J! ^7 p
- )3 P! M3 j$ ]( ?8 j5 R
- )- D2 L1 O; Q& Q
- ;;/ j# u4 I( n$ D' B1 s
- ;; Modify BODY
7 B) J; b! E2 q) s - ;;
% I& S6 r" ] u/ s& H - (defun modify_body ()3 v2 w% U4 b, [( ?2 d M/ }0 T( \- |
- (modify_prop_geom)
' b" \ e$ ]( P - (entmod elist)4 q' s) M. L7 y" r& S: |
- )
8 X" O* u- P: Y" [( ]/ M - 4 o6 }& g4 T k- G/ h
- (defun ddbody ()
0 K) o5 U5 }4 d - (if (not (new_dialog "ddbody" dcl_id)) (exit))
& Z5 y) d6 i7 x7 S/ A - ;; Set initial tile values
- S$ n4 g, _6 I& S1 Y# ]! b+ e( W- O - (set_tile_props)
( c/ c; E9 g- D5 q# {: Z - (set_tile_handle)" i: m% X4 Y& o
- ;; Define action for tiles
2 t- \- B: Y% V2 l$ s$ g* y - (set_action_tiles)5 c" e2 W4 Q6 w6 W1 E( f
- (setq dialog-state (start_dialog))# {) M* D1 }) C
- (if (= dialog-state 0)
3 y+ Q6 K% {9 O - (reset)5 \" ~+ e2 D/ o7 X+ R1 W7 \
- )+ q- o& [1 M" M( i- B
- (if (= dialog-state 1); i/ ~$ V' d: E9 P. B
- (modify_body)
7 l6 b. m8 }# \1 L) e - )
1 |. [, h/ b" G1 `( f1 ^ - )
7 L; ^. Z L0 J# \1 F - ;;
4 x2 w2 ?7 t1 [8 u - ;; Modify CIRCLE% @: J) F& ?0 B7 }/ S3 U% m
- ;;
) \6 @6 I; M: e7 u5 m - (defun modify_circle ()- e! k2 r2 Q4 l* [0 `) ]- F
- (modify_properties)* ]$ I* h9 y. s5 C4 X
- (setq pt1 (list x1 y1 z1))1 c' {9 }7 ~& @. n/ m a' U
- (tempmod pt1 10 1)
, R4 T/ [. W' _ - (tempmod radius 40 nil)
7 {) j7 P# v1 q) I7 i - (entmod elist)
+ T) F/ ?4 D; r - )( g& [5 v. h U; a6 ~* @
- $ j0 Q: [6 \. P, t
- (defun ddcircle ()
. y D! K; V/ ^& C/ ~9 b - (if (not (new_dialog "ddcircle" dcl_id)) (exit))' W" A& x; p7 Z1 C m1 e9 E5 t8 L
- ;; Set initial tile values: ` ?' n8 G6 V, `7 p) u
- (set_tile_props)3 I: Q/ x& w; w5 o# s( ~
- (set_tile_handle); ?" V7 R! y2 Y5 t$ h6 Y+ X. Z
- (set_tile_pt1 1)8 y$ L! Q3 B) Y+ ?* r
- (set_tile_rad): u$ `3 o i7 r' ` l' M/ \
- (cir_calc)! C' j. Z( Y9 H' L" p
- ;; Define action for tiles$ c. a3 f$ }9 T" v# b" ]' V
- (set_action_tiles)
2 l7 M* [" ?2 M - (set_tile_pt1 1)+ `/ a$ L& P% t8 _( i" e: W
- (setq dialog-state (start_dialog))% g( w7 Y' l! K8 t" {: J5 K D
- (if (= dialog-state 0)
3 O# N* L, r8 R! P0 R8 b - (reset)
1 a2 f9 U) C0 T0 j# S3 S& w - )
' L" k6 [3 c/ C4 F$ [0 @ - (if (= dialog-state 1)
# L9 F* |& c' H0 k2 R - (modify_circle)
8 S) O, r& v. E" \/ G8 L - )
3 V4 j3 j2 R; y, [ - (if (= dialog-state 3)
U( Q! h% W8 K( ~ - (progn4 t6 j% _6 M+ {% _( g; W, h' p
- (modify_circle) t% p: |2 E R$ q; {) A& \
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")). b5 X8 U* x1 j0 J1 x h
- (ver_pt1 1)' q! k g0 p" t F6 h: [
- (ddcircle)4 U0 |1 r# @& a% R: v* W
- )
8 _- \9 B4 u$ u {) F+ b4 D - )) X8 m0 ?8 C7 k4 m, b
- )
1 T( |% W+ |- V- D - ;;
! P# S- y! q8 r8 M4 W# T' r - ;; Modify ARC9 ^! K* O; V& @
- ;;
1 j) U" B% _9 ^' h8 X - (defun modify_arc ()! {, p2 n2 [; V
- (modify_properties)! a- r3 Y a9 [* f
- (setq pt1 (list x1 y1 z1))* _4 M9 u% k* ?! y1 y6 x
- (tempmod pt1 10 1)
R: @+ a" s2 \6 B# T) m - (tempmod radius 40 nil)
) d" ~$ [# ^0 w- z1 o P - (tempmod st_ang 50 nil) I2 T7 K0 e+ R
- (tempmod end_ang 51 nil)
" H5 T* K! i) v: L; f8 { - (entmod elist)
/ d" S' M# t. @1 e! e% ~ @ - )
0 a k: ~& Q/ [4 P, R% S5 p) W7 V - (defun ddarc ()7 z& {+ W/ x2 O0 b% a" m$ w& p
- (if (not (new_dialog "ddarc" dcl_id)) (exit))& M9 D9 q8 [+ z; Q1 q: S
- ;; Set initial tile values
9 y. i( r" t% o8 J% y - (set_tile_props)/ Q& Z3 q k1 s7 j) V, A' j
- (set_tile_handle)
. e' j$ g' L8 w. s( _ - (set_tile_pt1 1)
7 f6 H- q2 n# t2 ^ - (set_tile_rad)
& K+ T0 `/ ?& q9 K - (set_tile_stang)' F, E9 D* h* e4 G" R
- (set_tile_endang)
$ q1 o" R, b" E - (arc_calc)
3 t% o" ?# m% y6 ~. ~ - ;; Define action for tiles
% e# \, p2 r# k) y; ? - (set_action_tiles)
& h" b, s- K8 l! L6 E - (setq dialog-state (start_dialog))
9 k: Z5 l6 r; o4 e0 J6 N - (if (= dialog-state 0)
5 O! ?, z4 f: M- C! I# S( D - (reset)( c- J; o1 ~; P8 [ Z2 c$ I
- )
( W- T. u! o: _: |" Y+ v$ Q - (if (= dialog-state 1)/ B" \! u7 X. j& ~0 N$ Q L
- (modify_arc), ]6 k& O( W8 i
- )
$ i6 u6 M& K& T. `! q" u - (if (= dialog-state 3)
/ O# S1 D. L- U2 ?& B4 p - (progn0 Y2 Z2 y) u. b2 D
- (modify_arc)
3 O, G5 V( L& W4 @; G9 Y' D( | - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
/ s) Q6 O8 G" J3 { R - (ver_pt1 1)
, J4 c1 [2 U# Z/ c) g* c5 ? - (ddarc)2 c W& j8 G/ z
- )
, [& r8 W! ~. U i - )
* @0 ^# b# h6 e5 W4 K - )
: }# ^6 O3 ^; ?1 {/ Y5 I - ;;. y- R' U2 w* ]' ]* |
- ;; Modify SOLID or TRACE
" N1 Z, A. a+ c* ~ - ;; Note the Z value of the object is determined by the Z value of the fourth( p' D3 n7 c# x; p- o6 E
- ;; point - code 13. Changing the point values of a solid or trace from a UCS
; Y, O, s2 ]2 G! K' ? - ;; that is nonplanar to the UCS the object was created may confuse the user.
1 K/ e& L3 c0 K4 @ - (defun modify_solid ()
/ P$ V2 F: R( }' G# ?; m! _ - (modify_properties)5 ^' ]0 Y! t" f/ P( K5 B( a
- (setq pt1 (list x1 y1 z4))
6 O6 i0 ^ ]% {' j8 P8 ?5 E - (setq pt2 (list x2 y2 z4))1 o; |3 b4 b+ ^: Q) v, Y
- (setq pt3 (list x3 y3 z4))
1 F3 a+ p4 ~+ x$ `/ w. W1 P - (setq pt4 (list x4 y4 z4)) Z1 w) [# \+ D; m' i
- (tempmod pt1 10 1)
+ m$ K! |) R% `0 j - (tempmod pt2 11 1)4 {. }( @; e' |2 \9 m
- (tempmod pt3 12 1)( ?' H) B8 _8 {. M# W1 W
- (tempmod pt4 13 1)
$ F( @" q; ]1 | - (entmod elist)
9 ?6 T- c% m5 ?" o# T. G% X+ A4 A - )
/ f' t6 x A: L- P& o8 l/ A& B - . q7 e) T, y- `# b$ B2 L
- (defun ddsolid ()
# Z* Y# A: S) } - (if (= etype "SOLID")3 C7 u ]- O5 p9 q: o
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))9 r( R, j8 p2 a0 o& K9 E6 r; R
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))% N5 x0 O4 m; D8 B& z) G
- )- Y+ O8 P: m: P! [, w7 g
- ;; Set initial tile values
. Y9 {" v- }. ]2 R3 o% d - (set_tile_props)8 d# a( h, m7 z: C
- (set_tile_handle)
5 Q* B* I/ O" U7 B - (set_tile_pt1 1) Z7 O* Z( w# b5 d2 M) `1 m
- (set_tile_pt2 1)
& A( u2 ^) _4 T5 g. o4 G J: g) ~ - (set_tile_pt3 1)
! u$ c# }( P2 o1 h* N# U - (set_tile_pt4 1)
9 M8 C4 V/ p: ?5 ~ - ;; Define action for tiles
+ G/ e7 [1 p( N$ y t6 B' R9 C - (set_action_tiles)
& {. `0 B& W. m: c4 j - (setq dialog-state (start_dialog))
5 N/ B4 {- n0 t- V } - (if (= dialog-state 0)
! D) b6 J. A! v2 d - (reset); l3 ~5 U$ @+ o
- )# w) W ^% m7 l, R j9 ~; {: W
- (if (= dialog-state 1)
' y, _. x1 \, g- } - (modify_solid)
" |3 ~2 {- n- N- S3 u9 Z0 s2 _ - )3 h2 q7 m- M2 e
- (if (= dialog-state 3) u8 l& u5 s0 l
- (progn' W. s4 p# N8 V) J
- (modify_solid)
( o$ T, B3 @/ \7 Q1 c2 x5 V# J - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
+ V# ?9 h$ ]" b" w8 N/ ` - (ver_pt1 1)* D5 J u' j1 O J& \
- (ddsolid)
9 i) ~% m5 U. r+ k) X b# h - )
5 }5 }/ a& {0 u! n- `0 y4 C( A/ g% w - )4 b; y8 o+ z0 ]& m, B9 i
- (if (= dialog-state 4)9 c5 I" n7 e r% m5 l# _
- (progn
6 S+ |' G5 R1 `! q - (modify_solid)& I' Q, ?% n C3 @7 m
- (entmod elist)
5 X' P5 |, B7 C - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))/ G- Z, A% Y- @: k5 |% l5 C3 G9 ]# @
- (ver_pt2 1)
0 I, b3 _; m" I9 _ - (ddsolid)
/ u6 c2 m9 g/ A& E8 \ Y; C- u g - )
& u* F* t- d9 A - )3 j4 D& e* H. \2 {
- (if (= dialog-state 5)$ }. ~& c- Z) v9 c, m
- (progn* g0 b+ I7 T' `! {
- (modify_solid)
q' ^$ ]$ N$ s3 j$ W7 g+ Y7 ]4 d4 q - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))) S+ E8 a _5 P; \. _
- (ver_pt3 1)
: ]3 T3 z: j# {! c - (ddsolid)# Y, d3 I- p8 S1 b8 U
- )
9 h4 ^3 B' ~9 @3 Q& {/ S - )
5 J+ M$ r1 Q4 W4 }1 K. o0 b' R - (if (= dialog-state 6)
* K2 t! _# [2 t8 O- V - (progn
% ]6 V7 e l8 I1 P - (modify_solid)
7 J7 q% n* }0 S# B - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))/ j" n* h- m0 l3 l4 o
- (ver_pt4 1)% o7 J; j' V8 v# t/ }: V8 `
- (ddsolid)
% N# t2 _0 E5 p* T5 I - )/ |/ e3 u) a% P: c; z( A/ M# b y
- )& W+ o9 f% X2 j, \2 s
- ): k l' A! v: \! Q
- ;;8 o; e- W/ t y; m
- ;; Modify 3DFACE$ m! J! R$ f4 \+ B
- ;;
! E; i+ s* o% S B - ;; Check visibility of edges) S: U2 B' B" P9 {9 o) p6 Q* _6 h
- ;;( h: x3 e- R0 j
- (defun edgetest (/ bit1 bit2 bit3 bit4)' m& o8 m* J7 s
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))6 Q6 g$ r! u1 G
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
# t, b8 e$ v8 g) F% P0 F& J1 Y - (if (= edge3 "1") (setq bit3 0) (setq bit3 4)): a( U, |% x& q
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))4 ?4 J% c0 [+ i( \) t6 b% I
- (+ bit1 bit2 bit3 bit4)
' c& t4 D9 [2 p: W/ r2 F - )
' l/ ~9 d, e ?! _1 O+ M - $ v% o, A$ G7 k
- (defun modify_3dface ()
$ Z8 Q" s4 g2 r - (modify_properties)7 ^; z$ r3 ?8 N0 x) \, S
- (setq pt1 (list x1 y1 z1))
, }6 O/ `* U# x* \0 a - (setq pt2 (list x2 y2 z2))
+ a: a/ S3 w9 H) A" m, K6 n - (setq pt3 (list x3 y3 z3))! \8 q* C$ t5 H& s( |: [& e
- (setq pt4 (list x4 y4 z4))% l* z! b) T) U1 ^
- (tempmod pt1 10 0)
. a3 i" ^9 [* l& @ - (tempmod pt2 11 0)
! ]! H" k% K6 H - (tempmod pt3 12 0)
6 ?- }! d2 r4 K" n, |- c, z - (tempmod pt4 13 0)
% _) F) n8 s( a# |" u- r - (tempmod (edgetest) 70 nil)
( X9 W8 c, f1 V& d' c* i - (entmod elist)( Z+ B6 [" b3 p; H! l$ [
- ); }5 B$ `5 s- g' J5 x2 F# n: p* X
7 a4 L8 U8 d* I9 X/ M. C- (defun dd3dface (); x) h& M% S6 f' N, w- X6 p
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))
% R1 x: W% {8 \8 H/ R) G7 b - (set_tile_props)% v- I3 v! W( l5 k5 ^$ @
- (set_tile_handle)7 ]) z/ l8 r! g( {( w0 E
- (set_tile_pt1 0)" j x1 D3 w) M: s; G
- (set_tile_pt2 0)
5 U2 L" i6 R' |! s; h% H - (set_tile_pt3 0)) y& T4 Q' z' r/ j5 k P6 u
- (set_tile_pt4 0): ~# j; V/ P( ]7 r4 S
- (set_tile_edges)
! _' V8 y6 l" N+ E( ^ - ;; Define action for tiles( d/ J/ p2 n4 ]0 l2 ?1 e% f
- (set_action_tiles)$ _& ?. d* n; b* H; p9 Y
- (setq dialog-state (start_dialog))
! A9 ]' J8 I2 M/ D; h% B - (if (= dialog-state 0)
. r5 S/ @/ _. d; K. O - (reset)
& Y& h. X$ `. _! n# u, R1 t - )
% g, S3 g3 k/ g5 q1 `! f+ k - (if (= dialog-state 1)8 E5 o. j' S k, Y& u
- (modify_3dface)0 k7 a* p9 P0 v! m! I Z% Y
- )
! \0 I# Q4 ^; x9 ? - (if (= dialog-state 3)
% O+ ~" r, |! p1 _, |" R3 `3 p - (progn, @& m7 a; e) G+ o4 f- P; V* h
- (modify_3dface)( _3 E! q: z- O3 Z) }2 H- B) q; h
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
4 _6 o- P: ]2 G' T - (ver_pt1 0)* X6 W; j0 I+ R+ w+ n- R0 p0 y
- (dd3dface)9 B- x7 p/ V* z* Y6 s
- )
. j4 w9 Q: I* u8 I$ n7 k - )
, Q: \$ k3 `9 k( u8 t9 w8 d7 f a - (if (= dialog-state 4). K+ e' y' G A
- (progn
4 t7 }3 d' `9 ]/ Y2 [7 {5 J" h - (modify_3dface)' H1 W$ {$ j3 p( L# U( W& {" r) C% n
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
+ {8 ?% f5 j& O - (ver_pt2 0)
9 X: M- |% X, y - (dd3dface)
4 v) h: D& n) d. S! ^( ` - )
4 K1 @7 |4 o+ ?) g3 _ - )9 W) d# }; e' O3 t
- (if (= dialog-state 5)3 o/ e2 s5 x* j% ^. ^6 ~, W1 r
- (progn
/ D2 N: I& F. j. r" `! ~8 T' C - (modify_3dface)) Y! G; M8 D$ W' X0 ?2 Q+ C
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
: {" _0 u' q) E - (ver_pt3 0)8 d, B, |) U! i, a
- (dd3dface)! S: C, \* m9 T. O& B/ V! C
- )1 C4 l( V6 C! H6 P( N, A
- )
# Q6 G1 @% k7 |9 ?' y - (if (= dialog-state 6)" u1 s* I( N% y% Y
- (progn9 Q, X7 o4 \, d+ w, q# z& z
- (modify_3dface)
" y8 P/ I" ]$ j! _. c( W - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
; l5 g4 n y/ [( z0 w5 V/ {% U - (ver_pt4 0)
9 B0 {7 A; F# U/ K2 J1 Q - (dd3dface)
" Q4 Y+ A7 y. F: r7 r* f - )7 N. v. u$ v `2 m# Y. }
- )
% f8 `, m2 s4 G2 W; \ - )
* J% `" ?' ~( Z; Q - ; `" |- `) k& H# O, U" ?
- ;;+ ~ u$ K6 \6 c% R/ s
- ;; Image functions4 W1 r( Y0 e8 T: @2 J7 `# C9 `
- ;;
* g5 w1 |' Z. C. E4 s* d+ U - (defun image_scale (/ upixel en n userscale temp)
, E# T) a$ `! k) F* E+ c" x6 @ - ;; Calculate the size of an image pixel in AutoCAD units X" C E$ g$ E, u
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist)))) F# }# P0 f! b' A$ C$ d
- 4 C& @# Z( ~2 B3 A$ G+ Z- \
- ;; Retrieve the user scale
: N* K3 J8 D: r7 M# O - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
6 c& n- [/ h1 _% E' ]5 Y, x5 L - . W) K6 ^% U' J; s0 p" d
- ;; Next, extract the image units and pixel resolution7 o1 G+ W; R9 X2 t
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
/ d$ `4 ]8 Y& Z) L, n& h1 \9 j - (setq image:scale (* (cadr (assoc 13 elist)) upixel))/ M5 \: Z$ {- a+ a$ ]
- (progn
) J/ Z: N; {1 f& R F+ P8 Q - ;; Convert the user scale to the proper word
9 a: X. j9 U m6 G% H - (setq n (cdr (assoc 72 en)))
/ G8 r& M: y7 o% l - (setq temp (getvar "LUNITS"))2 E5 u+ Q6 |* M: B4 r' Z8 g
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
1 e& Y5 O6 V; `7 Z - (if (= n 1) (setq userscale "Millimeter"))9 T* y. j/ i4 _4 A, h
- (if (= n 2) (setq userscale "Centimeter"))
- ?. D% R6 Q8 `# ]9 h( U# H) } - (if (= n 3) (setq userscale "Meter"))
P* q$ I2 u. t3 u - (if (= n 4) (setq userscale "Kilometer"))5 E& b+ ]' S0 N$ l7 r% s
- (if (= n 5) (setq userscale "Inch"))
: _- i1 L# ?2 L - (if (= n 6) (setq userscale "Foot")) A/ l' h& ] U1 ]+ r5 a7 @
- (if (= n 7) (setq userscale "Yard"))
9 Y! k N# X" _2 T - (if (= n 8) (setq userscale "Mile")). ^' H: |$ h' c/ l6 u. t
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))! A# ]" O0 a+ x/ m7 n' q% u
- )
0 ]: h2 u- I* P5 O8 s3 P8 v - )
3 o9 l; K0 t3 R3 H2 \+ {5 B9 o - )& j4 T& ^6 U6 z
- 2 G8 Q( l$ O$ Q9 y) A
- ;;
* _4 O" P6 p4 E. r - ;; Scale factors for block insertions7 P9 X7 F1 P- y3 R; s
- ;;
: s6 X2 _( }: B) O" q) c9 l - (defun image_set_tile_scale (/ temp)
+ W! t1 G/ \, g+ Z1 [1 A - (setq temp (getvar "LUNITS"))
4 Q1 Q" q( }; x3 E# n4 J - (setvar "LUNITS" 2)/ N/ r' l! q& Z9 W& h/ q- V
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))9 G( Z# O) M' q- V$ h L- s% F
- (set_tile "wid" (ai_rtos (* image:width image:mult)))
1 C& h) `7 j& N2 R, D# A$ A( x - (set_tile "hght" (ai_rtos (* image:height image:mult)))
* m0 p x1 H, M - (setvar "LUNITS" temp)
% K; w2 h% K9 b+ @5 l' c5 I - )( v! V3 z, z# p7 `
. Y J: V1 }9 c C6 ]- ;;
) Q: {3 S9 k6 B - ;; Set the scale, width and height values appropriately.
1 P; e+ g3 L7 e - ;;) P' @" a X3 m4 h' h
- (defun image_update (field value / orig_value new_value mult)
7 X: v. f& y2 ]/ f, |( \. r! i- T2 ?4 r - (if (= field "xscale")8 m$ Q+ r+ z! Y1 u8 c& N
- (setq orig_value image:scale)0 Q c9 Q; ?* Y6 {
- )/ ^/ Y& X$ n) I7 ~ A% i. p
- (if (= field "wid")
; g! P6 O" c! k5 V - (setq orig_value image:width): W6 Y; d' r; {9 S
- )
( I, h2 k7 ^3 p; a9 e4 Y1 g - (if (= field "hght")
# x9 [: n+ K {8 U+ u - (setq orig_value image:height)
* C4 H; B; O& ]# M$ Q: a: t2 Y - )
" ~( ?/ X) ^7 u3 `% K8 e3 T - (setq new_value (verify_d field value (* image:mult orig_value)))
* d+ X! [7 A* | b3 ?0 L6 y - (if (/= new_value old_value)6 v* I( V' v/ ?
- ;; Make sure the user has entered a sufficiently large value! ^2 r5 `/ B3 J0 M4 v, S
- (if new_value
; ~/ \1 {+ z+ | - (progn: Y9 T$ I7 v/ {' t6 [
- (if (< new_value 1e-8)
& ]5 K9 i1 m+ x8 x0 Z; C - (setq mult image:mult)1 J; t& [# D3 D, b$ `* a
- (setq mult (/ new_value orig_value))/ `2 @/ N7 ?+ E/ e( y( J3 r3 D- y
- )% k- f: S0 C- c4 f6 B: d3 H; d+ J
- (setq image:mult mult)
- R3 a/ L/ o# S/ Q) S - (image_set_tile_scale)
# X3 q. y$ \7 X$ I - )
8 x/ V! s) ?4 i - )9 g' z/ R# r0 Y) p( _$ p
- )3 o. x1 r8 \( h0 j, x
- )2 [; x2 } Y5 U" a' [% l
- + e, [; m( w0 B0 Z
- (defun image_disp_opt (bit)( M4 m: v, ]2 q6 j0 X& ~( G
- (setq image:options (Boole 6 image:options bit))
% a4 e, O+ i7 {6 F' T! C - ). m! @4 K% ^# J+ d1 n" x: T
& f3 g$ y7 r' c- (defun image_modify ()
- X9 H7 p" ?4 r2 I5 U6 ?( t - (modify_properties)
2 p+ q9 U- B- q* K8 k d - (setq pt1 (list x1 y1 z1)), a$ u; a! o+ u, R( P
- (tempmod pt1 10 0)) Z8 d- w+ ?6 I- o# b) E/ ~
- (entmod elist), N; l; F. ]2 j9 J, k4 J
- ) _2 m5 E- G8 h5 M
- % h" o6 v1 ~ p- W
- (defun image_clean_variables ()
! p& k6 n+ i$ _ - ;; Clean up global variables used here
! A* d; q" Z- T3 _5 R* q - (setq image:scale nil)
/ I) d7 y2 w% S; } - (setq image:angle nil)# m+ o$ L- f8 c- y+ M8 ?1 m& @
- (setq image:width nil)& ^2 p, i0 {$ u* S* I" D5 J
- (setq image:height nil)( c. f5 e+ u/ H; R" Z( p: W
- (setq image:options nil)
' y. S1 Z. g+ D/ [! U/ s; K+ d7 E - (setq image:oname nil)( ^; @ Z* f6 i
- (setq image:olist nil)7 V, J( t; l- h- S' m) }3 s9 ~# g
- (setq image:mult nil)
" m0 o5 g, T2 [( T+ h - (setq st_ang nil)
5 c% F- Y+ t$ N' R* e- e - )
- @6 Y# c* p9 c9 ` - $ N$ A1 e" [% f3 K# N, p; g+ T( _
- (defun image_scale_vector (v1 value)0 z3 m2 a3 |7 M0 [8 N7 ]- l4 j8 z
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
& @0 r2 i- J% D* x) |* r4 W* q - )' Y+ A+ X3 f: _1 f, t" X
* ~7 q5 g1 P+ D9 @5 c- (defun image_cross_product (v1 v2 / vx vy vz)
; R+ }: A4 l7 d) ]8 t - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
! Y4 n* `& l3 M, H" t - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
' u6 P$ E' j! D5 q - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))- ]; a) D5 ?: c, v
- (list vx vy vz)% P' T" u6 f- q( t- a1 w N
- )- i/ X( I& L l4 ?* E
" Y; q% K5 t9 g- (defun image_dot_product (v1 v2)2 V) ]5 {3 [! s7 Y# U0 C
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))% T( \5 Y1 g( d
- )
( e( V2 E7 K2 Y4 E
7 b0 m' D: ~! r5 R& L- (defun image_add_vector (v1 v2)
$ c+ B! i8 z* B5 ` - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))& Y: H, a3 I, |# @9 z
- )
! w. P; n6 c7 A2 s+ Q7 h$ _ - 9 q% Y# J; u7 r8 b/ G8 B4 x
- (defun image_subtract_vector (v1 v2)
3 M5 P2 J1 l6 M, d) p5 } - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2))) l" a0 G4 |# |8 H! [/ _4 ~: o9 I
- )( P" b9 K% }% ^5 w$ I' [
- 5 N2 p1 L* W" X
- (defun image_normalize_vector (v1)0 p- d/ U6 R- N% {4 Y1 g1 T
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
3 G6 _( S y7 y - )+ E2 x5 r g- X) O' `0 m& b% H; Y
6 b; j8 @, U( H A; M8 [9 r' n- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
* t, K/ N( _8 K! j2 Y# g0 t - ;; Normalize the axis
! I4 r I' Z) `4 E5 u3 ] - (setq axis (image_normalize_vector axis))
: |- O" L4 W* q# g - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
. Q# U' G; X9 | - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
( G g! H, w0 G - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane)). Q* {; w/ [' h" J; V- {7 x4 S
- (setq in_rot_plane
) `- C$ }- _* J' k+ o4 o - (image_add_vector
. Z& r+ I/ |% M" Q - (image_scale_vector axis_x_in_rot_plane (cos angle))
! U( f" l! Q) s0 ]% } - (image_scale_vector axis_y_in_rot_plane (sin angle))
& a2 q% N7 Q& m4 t - )
8 y5 z" I1 Y! o1 [3 l; Z - )
3 [3 I9 I, K6 u2 O8 } - (image_add_vector along_axis in_rot_plane)$ p/ H. |( ~$ z
- )! j0 Q q+ R) j3 H' E" Y+ ]+ ~! {
- 6 h6 S/ s; O: y" h5 A# t$ H
- ;;
1 Q0 b5 H+ m8 m9 k - ;; Calculate current rotation angle if appropriate.& ?9 W& @- E/ W' `
- ;; If not, grey out the rotation field.
: o* @- A6 w; W% u: f) J1 B. M7 w9 Z - ;;/ c' _& ~9 ^3 K( ?' |: s, w
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance) L+ l6 \# Y3 [8 ~+ D/ t, F! }9 T
- ;; Determine if image normal is codirectional with
8 u+ l5 O; Y0 a) K/ c6 B2 i - ;; the current UCS Z-vector.
3 h9 g% v4 p2 r - ;;) _/ s' j x6 j6 E9 l7 n8 b* f+ |+ }
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))2 ?- v8 N9 ~, c9 \& H4 h
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))6 z; P" U) e4 k9 r" n( H5 ]; P
- (setq zlength (* (last normal) (last normal)))! X+ ^0 c) P% `0 d+ k9 C4 `
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.. V" m8 D; t& s# U8 c& \: z
- ;;
1 X$ s/ P$ U9 `$ _ - ;; cos(.0001)^29 W1 P& ~, F1 T- K
- ;; Tolerance = --------------
r) ?! k- K( g! G/ U* v - ;; sin(.0001)^2
1 i$ L% ~$ w5 c$ N& |% E - ;;: M$ H( Y# I. t: P& L
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))7 k2 X$ a0 d/ J6 F& V2 H7 r
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))4 F# t* x, Y/ @' x- \# c; T
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))( u4 J, q$ b$ N( d4 F
- (progn C9 ?8 A7 g# x% {9 y- L1 ?! C) f
- (mode_tile "st_ang" 1)
\+ Q/ ^2 }6 D) `) a2 V - (setq image:angle 0). M2 e3 D9 _: c! V ?$ Q; T9 q
- )
A: Z+ C, u9 p K; E - )7 ]# E- D1 c2 E6 r
- )
/ ?9 d- G, a1 W
|. w4 V6 L! o8 L- ;;
: \+ }) j7 y5 ?! n0 n; ] - ;; Modify Image) m$ E% L: S+ W9 t8 ? g3 h% |
- ;;
( p2 Q& s( C# i& L" v - (defun modify_image (/ u_vector v_vector z_vector)
" m6 {; t% }1 t. i6 G/ ? - (modify_properties) V8 v4 N7 o; z
- (setq pt1 (list x1 y1 z1))
6 x# J/ e- \0 c$ ?7 A - (tempmod pt1 10 0)' W% a7 u, G+ L9 h0 B. W! o
- ;; Make display option changes to image
. @3 v3 n% O) c, R; D; Z6 T - (emod image:options 70)! b3 A1 S1 Y1 N$ h
- ;; Get the u and v vectors
* o+ @, G) N& }9 \1 F% ~: O# n$ Y - (setq u_vector (cdr (assoc 11 elist)))& y& @6 ] q. k4 n/ `
- (setq v_vector (cdr (assoc 12 elist)))
* {" @/ k- O+ S9 v) V. i' L, U& } - * C4 |, G3 T8 ] W: q& ?' U. ]/ a
- ;; Make scale changes to the vectors
" j1 h8 A: [2 C: k/ l - (if (/= image:mult 1)
5 z: F7 N6 o" M$ d - (progn
7 {5 h1 L* J0 F+ x; I% K - (setq u_vector (image_scale_vector u_vector image:mult))4 [! W- H- r) }* \
- (setq v_vector (image_scale_vector v_vector image:mult))% u W( a0 X! J& g
- )
1 O( E2 d3 C8 C8 b4 M - )
/ k2 Q! l( W8 F& ^$ E - ;; Rotate the vectors
; \# B1 A7 r. ]8 x9 [& I% b q - (setq st_ang (- st_ang image:angle))
' X# c2 y9 W4 ]' U1 o! y& d - (if (/= st_ang 0)
) ~/ R* t" Z1 I2 S! }7 D - (progn
. F: w( h3 L* E3 a; Y, k - (setq z_vector
% ]4 K, R& ?7 b - (image_cross_product9 `' d6 b$ w- X, w5 ~8 d, p9 H1 I
- (image_normalize_vector u_vector)
5 K2 d/ p8 I" E" Y, h - (image_normalize_vector v_vector)
* e" Q0 G0 T/ p! S - )7 b8 {) }6 f, V! H
- )
7 @4 y6 g' _* G. Q6 f) y9 X1 Y0 n - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))# X9 A& H$ s! R5 r+ [
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
1 R8 U- y$ J! |: H - )( b/ c' [7 |" X! q. s0 ?4 l
- )
/ |& Y9 p0 E& S - (emod u_vector 11): Z! S7 |- ?6 s8 `. `6 G
- (emod v_vector 12)( |4 ~9 S; |; h7 [9 @
- (entmod elist)
# d! ~( O# e, C - )
- n; s) G% \4 `# Q1 N - R. z2 W7 o) m# E5 ~2 P8 J
- ;;
/ H2 l5 R) u) j' M - ;; Run imageadjust on given entity, working around possible: i5 V3 _2 s" r9 Q4 \, J8 l, ~9 y' H
- ;; re-entrancy problems
. h+ y& ]3 I3 E7 `" B/ W2 G - ;;0 \ [7 D% m2 v# } x3 W
- (defun image_adjust (ename)' c6 G9 O4 G: C! u8 T/ z% h- Q
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...- [" Z' v7 Z4 I6 {$ C$ t
- (imageadjust ename)1 m, }8 R# c6 R6 Y
- )1 }4 C; M4 ~* | W, n7 w; n
2 o1 U+ k( U# d" _# f( u% N o- (defun ddimage ()
) Y: x* ?, r$ U y2 y; Z8 P7 |5 B/ A - (if (not (new_dialog "ddimage" dcl_id)) (exit))6 l& e& L- x- D) q4 p M4 k; b
$ v$ l) K) P7 U# _; r8 t- ;; Grey out the thickness field.
3 _6 N* y$ m% }& l7 b! Q - (mode_tile "b_thickness" 1)% A* @" E; R3 r k+ A6 M! l
- (mode_tile "eb_thickness" 1)
: C- _5 _) O( U% k9 Q4 W% {" J - ) O( X5 j- u+ U4 k/ Z/ X% Q: d8 ^
- ;; Get the associated def object.
7 o+ `) b8 T6 h/ h - (setq image:oname (cdr (assoc 340 elist)))* l, A4 h% W, G: i, D
- (setq image:olist (entget image:oname))2 c4 u, u$ V% l) Z: }
- 1 }1 s' _3 p0 X& G0 \
- ;; Set initial tile values% H2 K8 }" x2 E
- (set_tile_props)$ ~8 `% r" F6 r7 e. w3 ]1 |
- (set_tile_handle)
. v d/ |3 j* J* H4 g - (set_tile_pt1 0)" x3 W# j, h/ K- f; ^& J8 U
- (setq image:scale (image_scale))1 k) d2 _) P# m2 C
- (setq st_ang (image_rotation))* B) p/ q4 ~1 Q( b9 B8 _
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
: V" t" N2 E; T k - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))0 O: H: p* z& N! Q7 x: `; D
- (setq image:options (cdr (assoc 70 elist)))
# Q( S8 s4 K# C1 q. u% w4 [
/ [9 A% P' P; Z- ;; Record the last multiplier for use in image_update function3 v" N* f5 b9 S0 [" ^
- (setq image:mult 1)! a; ?0 l! @5 i2 r+ T. L- l2 ~
0 X, L4 m' D: K h6 q3 r- ;; Retrieve the image name3 n p% A$ }. E% v: k( z
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))3 ]3 t' h+ P7 ~+ _' V! R
- (setq flag 0)& [2 P! |2 G! r; H
- (foreach n fn1 `5 y3 a( u% Z4 E- q
- (if (= flag 1)
$ B5 k+ @7 b q7 { - (progn2 [3 W1 q. J5 m6 K8 n" Q
- ;; Display the image name
O/ D. @9 F+ b+ G f: X5 K - (set_tile "image_name" (cdr n))0 d$ q9 y$ D# ]8 w- T- h$ _9 N
- (setq flag 2)2 K# z6 U" J% [/ N! g2 |$ P# G' T. @
- )
. u( M! `) I6 a. G5 ] t - )9 N) Z9 [) @! z0 X. {
- (if (= flag 0)
3 J$ u9 _9 H2 b* } - (if (equal (cdr n) image:oname) (setq flag 1))
! X% _5 `9 U- {' w' s" D2 ^ - )
9 ?/ X# X, N* z7 }! A9 q - )1 [! `! ]5 t+ q( u8 A+ b: k& L
- _9 Z% z! U, d @/ N( ^ c
- (set_tile "image_path" (cdr (assoc 1 image:olist)))! p7 {8 S: r' v% @) W
- (set_tile "st_ang" (ai_angtos image:angle))
1 v" W' x- X4 @4 r6 f$ ^6 @ - (image_set_tile_scale)
! D, {8 y& T+ X5 a3 h% p: G `
3 M2 u- I; M4 X- ;; Check the appropriate boxes
" Z4 L1 z( E$ }5 X+ u - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
* g* k( b0 x# u! T - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
% F- f3 Z# ~1 g# V( f( n. ~% N - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
+ c" n8 D7 c( g - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))8 N' i6 |& j- ?
- & h% p4 k6 ` t. V1 _
- ;; Define action for tiles
3 S) ^5 \9 R8 h b/ B+ ~% ], R - (set_action_tiles)
6 s9 _/ B+ X* Q6 d. E% _ - (action_tile "xscale" "(image_update \"xscale\" $value)")' K2 r2 M6 d2 f3 N0 L
- (action_tile "st_ang" "(ver_ang1 $value)")+ Z3 u! x6 D3 b/ ]: ?
- (action_tile "wid" "(image_update \"wid\" $value)")& c% ^' A H; ` X
- (action_tile "hght" "(image_update \"hght\" $value)")
c8 n. }2 J& z. o: B; n" A* G% g& h - (action_tile "image_show" "(image_disp_opt 1)")( a2 R5 Q4 {4 j! {
- (action_tile "image_non_ortho" "(image_disp_opt 2)")5 r+ }+ N D: Y4 T+ c7 k
- (action_tile "image_clipped" "(image_disp_opt 4)")) `7 y& e. J/ t( J, B4 U+ x
- (action_tile "image_transparency" "(image_disp_opt 8)")
) d# ~* T! Q* ^& `- \ - (action_tile "image_adjust" "(done_dialog 4)")7 S) x# r1 |& I
- 7 A6 I* L6 @) r- U1 M
- (setq dialog-state (start_dialog))8 b! S. o# S1 d$ U
- (if (= dialog-state 0)6 y) p h# K; @0 L* p- I
- (progn& i6 P3 p" e) t7 L- ~, W
- (reset)) d3 R. F2 T5 g7 O- m
- (image_clean_variables)
1 K! Z4 [3 q) o0 y( C" P: b- r - )5 ?" p9 B9 e7 B6 v
- )* }. e% A4 a& f! h/ o' r
- (if (= dialog-state 1)
6 [! _* |) @( ]# g1 n8 ]$ n - (progn Q/ _8 h" X! |5 P1 z" k+ Z- u
- (modify_image)
2 E% Y3 [$ D8 }0 P$ |4 Y2 i - (image_clean_variables). }' d- [4 X. \) m! z1 u9 d: U
- ) U) Z+ ^5 S4 j% d6 a4 u' r
- )
0 |# o9 B% [3 H) R$ | - (if (= dialog-state 3)
" ^ C7 G! z s! B9 ?5 I- h - (progn
* n% d* u. _9 d6 ~; T. u; G - (modify_image)
7 X. |) F4 a. r: L+ Q$ S* K - (image_clean_variables)
; u ?" g5 X5 `$ l, a - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))9 x! ?: Y& z6 p; u% d" t2 u( d: ^3 d
- (ver_pt1 0)( Z$ }. H0 P/ a# K
- (ddimage)
& s% O3 q8 b6 b8 N% T - )/ J6 U) G- D8 m) q. A
- )( @0 O: H* ?6 F" Q+ |- P7 i2 @
- (if (= dialog-state 4) w" ]1 Y: K' j7 W. F, \. V
- (progn
7 I5 A5 h9 M# u - (modify_image)1 y: S0 u4 h1 Q3 [3 V: H
- (image_adjust ename)
2 f8 C" r( v5 z - (setq elist (entget ename))
! s7 @, j+ Q1 ? - (ddimage)& M" k; A: d# c0 L* T
- )
7 V- M. E% G3 m! b - )
4 Z6 V+ J5 U7 g5 n4 ~. g, D" [ - )3 W2 R1 L3 m$ J$ v3 l5 i8 I/ x; z
3 R5 Q) j; q T- ;;& v4 z; F- Z7 u! Z1 p$ u# z
- ;; Modify BLOCK (and its Attributes, if any)* T% P5 F- N" z9 L
- ;;
( Q$ o& e- P* K6 m - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr9 L0 R; Y, t$ B7 {% p9 ?
- new_wid old_wid old_rot scaling old_scale
$ E4 ^( J/ d0 w8 N* P - xdelta ydelta zdelta xbase ybase zbase ipos). w; c) W3 w# U7 [0 D1 Z7 v- C$ I5 N# [
- (modify_properties)
) f# c# |! ~( J
8 C& ^, b3 `' [' k' k I- ;; First, translate and scale the Attributes, if there are any.: {$ w0 m8 a* i
- (setq old_rot (cdr (assoc 50 elist))
% K5 P1 F( q/ x4 c" U: Z) H7 X - old_scale (list (cdr (assoc 41 elist))
( F% W2 N V' [" t3 n: G - (cdr (assoc 42 elist)); s+ w; A+ B. b- V q& m
- (cdr (assoc 43 elist))& A2 i4 ]1 x3 x+ J
- )
2 z* A9 S5 r* e+ B6 W' { - scaling (or (/= xscale (car old_scale))
5 C! W1 T( Q% w' K - (/= yscale (cadr old_scale))0 [% @8 U0 w1 c- R0 A$ j' D1 o
- (/= zscale (caddr old_scale))- ^" G9 `2 P" P2 M4 s
- )
2 M( \0 L- j4 A. h& _ - attr nil ; No Attributes modified yet
7 C. s, g+ m1 T/ C1 U% ^. A - )5 x; X: s, w0 U% h
- (if scaling
- U0 T) T) C) p5 y; L - (progn
V8 ?8 [9 j* S- O3 W - (setq xdelta (/ xscale (car old_scale))! d6 |, r: a" p& q8 w ~
- ydelta (/ yscale (cadr old_scale))
9 @2 L `+ u0 G- u - zdelta (/ zscale (caddr old_scale))
; ^/ E# |& z0 A0 H6 h - ipos (cdr (assoc 10 elist))3 ~5 F, [; c: j' }- a* k$ B1 x' D9 N
- xbase (car ipos)
) v4 f5 P+ q1 {$ J: b. n) C# V - ybase (cadr ipos)
% u' ^& y4 F& T* U3 m: |6 p - zbase (caddr ipos)% H p% x. ] x6 q
- en2 (entnext ename) ; First Attribute1 J# M) l4 }0 H4 T" X
- )8 i8 r* A/ I# x; w' c3 H& Z% }
* |& Y9 _/ m! |& v8 g- ; If the Block is rotated, temporarily un-rotate it, along) ^# ^- s' d) m8 F. f
- ; with all its Attributes, so the scaling/translation of the
4 k& l# [, P! h& h7 o9 ?3 A& A/ D4 z - ; Attributes won't have to take the Block rotation into account.
0 z0 i9 L6 ?2 D8 J - (if (/= old_rot 0.0)" s6 E/ ~7 c" c% s/ S& S r. u
- (progn
7 v0 C) Y2 W- X3 V3 h - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))/ S8 J |+ d" _3 u8 T$ p
- (setq old_rot 0.0
1 Z( o/ {0 R: F7 v; m% i, z - elist (subst (cons 50 0.0) (assoc 50 elist) elist)
0 ~' B: j8 r. c3 B" c t* u D2 H - )
; Y C7 g- i- N( g - )
& J# `7 g- _0 f% o# ? - )
3 L* P/ I/ i" w4 C0 w: }& A - 8 w/ b8 X6 W3 ?* }% @
- (while en25 M; w# }) x: _- O3 L/ ^8 Y( H
- (setq el (entget en2))
$ Q! I7 v5 t9 o( `, Z% e! d+ S - (if (= (cdr (assoc 0 el)) "ATTRIB")
+ N/ X% \, P3 H$ N/ k5 G - (progn
8 j7 |6 a# f* D, H' j C - (setq old_hgt (cdr (assoc 40 el)) ; Height1 [( W1 V, y: K/ J5 M
- old_wid (cdr (assoc 41 el)) ; Width-factor
4 K2 Y5 w" H2 o- ^. @ - oldp1 (cdr (assoc 10 el)) ; Generation start point7 A m$ T; n7 e' f0 t+ p* m8 q
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
' U8 d) g3 [) J - ha (cdr (assoc 72 el)) ; Horizontal alignment5 g' W5 K! R6 u# B3 a9 T- f
- va (cdr (assoc 74 el)) ; Vertical alignment
4 U d5 W* u4 w - 7 G3 u4 }1 e( z) `; }
- ; Translate gen. start point1 q( j; S" c% C, x, @
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
2 E* d6 D7 ^6 c$ y' _ - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
# P+ T# H& q4 l$ M$ R) Y7 t! r - (+ zbase (* zdelta (- (caddr oldp1) zbase)))& c& v- ?0 \, f9 C; r
- )
* F% d8 Y( k1 u - el (subst (cons 10 p1) (assoc 10 el) el)
' G b* S+ [4 }7 j& ? - )( \8 d: U# w4 d, V4 T" S. y
- 0 W0 P j% v$ T6 b+ D0 k6 l
- ; Translate alignment pt similarly, if present and applicable, i8 V1 | \% h$ b5 h6 A- }2 ]: c
- (if (and oldp2 (or (/= ha 0)
2 x4 E" g' ]: N; b% @! O1 ` - (/= va 0)* }+ v9 M) U" B& v& y% D0 T7 x! u
- )# d9 x% e o( f8 y
- )
9 F0 c" Q- }. _0 P( _# a# K - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))9 F0 ^5 E* r; s& R! A# X, _- r
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))
3 c$ F& q3 n' _3 s' y" I$ n - (+ zbase (* zdelta (- (caddr oldp2) zbase)))9 n5 F% a) |5 Q6 s
- )# r8 c" i# T7 K: D" U
- el (subst (cons 11 p2) (assoc 11 el) el)# m' ?7 l9 ? Q t) a+ j% a6 s
- )
3 e$ @/ ~& P. d9 K- O - )( q8 L- s t: l/ X* ^, l
- . ?$ B w: r/ }# T' Q* N$ Z& z
- ; Each Attribute's height and width-factor were computed
7 U( \9 D* }+ U3 [* n6 p. U" e - ; based on the Block's scale factors. Adjust them now,
/ x" N% r5 o1 h2 @) s0 R" Z, q - ; by first reducing to values for 1x1 scale...
k5 U) m, ~( D7 L* E4 U2 @ - (setq new_hgt (/ old_hgt (cadr old_scale))
y! p) K7 @0 O( u$ d - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))# ~/ O( w+ |# x# U4 j) E
- )8 v2 ~. Y7 k' P
- ; ...and then rescaling.
0 \5 i) l" U) w - (setq new_hgt (* new_hgt yscale)
7 {& Y+ y7 R2 g3 O) c) O - new_wid (* new_wid (/ xscale yscale))
4 J" Z9 _# |2 Y7 ^, f0 y" f - )
* o9 K1 n& Q" N( R* a - (if (/= new_hgt old_hgt)0 R3 b- C5 X. Z, J0 Q$ N, W3 g
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))0 h% p4 q0 A' q0 t2 |; `2 U
- )
% s/ D, |) J, J, [0 u/ f# D - (if (/= new_wid old_wid); A' F, C9 U! u, o! w+ b5 Q' O
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))- _. g0 H; b# l0 y4 [* S( v0 ^
- )
$ g# Q+ z7 e) \1 k) D& [6 ?$ I - (entmod el)
+ ]( F( [! Q& O( v/ [' O - (setq attr T ; At least one Attribute modified
' x; Q$ b0 K3 D. ] - en2 (entnext en2) ; Next Attribute6 S6 |2 c) y" v: c
- )
. w3 I# _1 p! _! h1 a - )9 s6 y ~4 {- _) r2 s" p1 \
- (setq en2 nil) ; No more attributes
) q& {4 }3 v7 i3 y2 Q G+ p - )4 v4 x! {9 D% p4 Q! n; Y) k/ u
- )
A7 _9 U3 \. a5 | - )
" b( O6 O0 n2 G6 }" B9 y% G - )! B# m6 B( K2 Q: P5 Z: l! @
- 5 T0 H' l2 Q$ r0 K; e( Y' N6 Z2 a) n
- (setq pt1 (list x1 y1 z1))4 p2 f4 c8 X, [0 r: ? G
- (tempmod xscale 41 nil)# N) i+ l; |5 S. u. w
- (tempmod yscale 42 nil)3 {! B8 i' w7 H
- (tempmod zscale 43 nil)
9 p0 G) d. a( T) Z$ \ - (tempmod col-sp 44 nil)
& m( i; \6 D7 {4 L9 }# c - (tempmod row-sp 45 nil)
$ L8 m, @7 j. A - (tempmod columns 70 nil)
7 Y5 m$ I+ l: S - (tempmod rows 71 nil)0 I6 i1 E+ L. m }- Z$ ]
- (if (= xclipmode nil)
. \- P. F! U+ A; r4 ~9 ] - (entmod elist)
5 _+ h4 S; l3 r. _5 x9 r" o2 e* A. J - (setq xclipmode nil)
2 _/ {; y: V J6 [0 t3 @$ z1 i - )
' y$ S: L# C$ r4 V - (move_pt1 1)
- v w6 V- ]* `" o% h. V - u8 `. z" @# V. a) Y4 A
- ;; Now do the rotation with the ROTATE command.
9 K7 ~* ^; w7 v7 d! y - (if (/= old_rot rot)" |, H6 Q. D: W" [5 |+ G
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))" N/ k/ h6 H+ |( x+ b0 ~) S7 O
- (if attr ; Else, if attributes were modified,* C9 `1 N( R+ B/ w. E$ W
- (entupd ename) ; just regen to force attrib display) D! @7 m+ t( V2 E/ H# W( }
- )/ d% x2 t4 _9 ^1 o/ t6 n! f$ Y
- )
# b% c; U+ B3 w" X" \& ?( h6 r/ W. j - (setq elist (entget ename))
5 q0 L% l1 \6 `2 g, C2 m- }3 Z - )) n; G( c3 G5 Z2 k3 f
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
. ? d' v3 a" ?" V8 m* r6 A* T - (setq newhatch 0)' A; H+ \1 e$ Y; W' g& K
- (setq blkname (cdr (assoc 2 elist)))
, T t N0 _1 J' x( P - (setq blklist (tblsearch "block" blkname))
9 M- h* X6 S$ E/ n - (setq blktype (cdr (assoc 70 blklist))), V* w9 H8 _( E5 r+ Q/ i; C! P
- (setq xcliponoff 0)! A0 r$ Y# s! A/ U5 [" t" G8 i
- (if (or (= blktype 0)(= blktype 36))7 B; w$ D, f% u8 R" S. C' p; W9 t
- (progn
' Y7 v4 ~# n2 B; E5 `4 j" n - (setq xcliponoff (xclipon elist))
' q6 o# W8 C% e% U2 p3 h - (setq temp_xclip xcliponoff)
/ B* q! k |9 g4 W1 {. o# Z l - ): _6 u& }) @2 Q& m1 |! Z O" T% t3 c
- )$ g4 _7 q+ v8 v1 U/ |
- (if (= (logand blktype 4) 4)$ u" g( D& c4 A, g& {0 W* y
- (progn
1 L- ? s, {6 n! M) Q: X# r6 V1 J - (setq xrefpath (cdr (assoc 1 blklist)))
% n) u5 p2 w! P' O3 K# m; Y - (setq help_entry "modify_External_Reference_dialog")8 E. c( f3 S, l8 R! |# Q7 B. ~
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
. ]7 x6 [8 }$ G& U: U* Z4 [ - (set_tile "Bl_name" blkname). ?$ ]& S2 x( O4 X5 o
- (set_tile "path" xrefpath)
$ t6 s% u4 d# q6 g - )
7 {) B; n1 W; n( | - (progn
6 t& [+ B& u% L/ v9 z - ;; Get program name for use as Xdata app name* P( L# |; T& u8 y" x2 }
- (if (not (setq program (getvar "program")))5 u+ y8 a! |3 ~ C: G" `
- (setq program "acad")
# x) Q3 O2 S; C - )
. s5 D/ m6 ~4 Q% _7 A" A9 c- U - (if (and (setq temp (assoc -3 (entget ename (list program))))& A/ V3 T/ n# ~* V2 s9 t; t
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
$ j0 _6 x% [. E* t. L# `& m2 `; s - (assoc 1005 (cdadr temp))
3 ~2 g, D8 ^, x" z6 K0 f0 B - )
, q6 `& U( ~3 R7 v y6 s9 j" E - (progn
* |& n/ s6 O" X- Z# k* y: s0 |5 C - (setq newhatch 1)" X! I: n& `/ S
- (setq help_entry "modify_Hatch_dialog")
0 h$ E. e) ]& t2 y* | - ;;; convert the object into a new hatch4 j# r3 t$ }3 E( y! G
- (ai_undo_on) ;; enable undo
9 H+ e4 {% o9 r, o1 B - (COMMAND "_.UNDO" "_Mark")4 q9 G, s# ], r0 Q! _
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")- v( H& V2 y; j
- ;;; suppress nasty message from convert command6 T, \+ o% P4 q H- q; o4 j
- (princ "\r \r")
/ C% X" p3 s0 G: k7 w/ m- r - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))- _, L, x5 ?4 P- V2 _) B
- (setq old-elist elist)' w, C6 @7 s0 \8 R# J# R0 Q) g
- ;;; If we have cancelled ddmodify
) y9 F9 A( |" o0 V+ Y+ n - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
, F8 a6 c/ \( r( R - (command "_.UNDO" "_Back")
6 ?1 g& V8 E4 f: \ - )% h9 `5 U. V2 ]3 N
- (ai_undo_off) ;; restore undo state: u+ V$ w, x6 B8 m; @
- )
: K; Y) E* T- R- S - (progn
9 G9 o8 L! H4 A' K" L - (if (not (new_dialog "ddblock" dcl_id)) (exit))
F5 X. V$ a/ @: Z, f+ `, W ^ - (if ( = "*" (substr blkname 1 1))# M' G7 y) p# D
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
8 \; \6 g S( n. b) q. ] - (set_tile "Bl_name" blkname)# J% }7 x; |; u1 F, Y/ l3 ~9 V( w) k
- )
7 J* A& \8 e5 J - (setq help_entry "modify_Block_Insertion_dialog")
# F- U: U2 Z3 f0 N# h - )9 t# I2 ]9 s$ K; ~. J
- )$ I l0 L' ^ A
- )
' E7 i# I, r9 O; _ - )$ C5 T9 s; A6 Y9 S* X) m/ g
- (if (= newhatch 0)/ M$ r1 \* h8 F( n9 z$ `1 g# a, L
- (progn* l) ]' y2 j" E4 D! S1 I2 ]5 c
- (set_tile_props)9 z/ Z7 }, ?% T A: y: Z+ I1 ]$ Z
- (set_tile_handle)
* |4 D# m: {# v2 E0 k8 V8 _' q - (set_tile_pt1 1)
& E$ _9 ?4 n% e8 Q) c; E - (set_tile_rot), r# X! p6 k! R4 n$ r5 m
- (set_tile_scale)( Q1 F; Z1 g% q1 X4 Y# P
- (set_tile_rc) ]0 N$ F9 j* X# ~- M ?
- (if (= (logand blktype 1) 1)
: Y9 Q+ h; n) R' E7 T - (progn
, h6 n3 w' Q2 G- o - (mode_tile "xscale" 1)4 K8 Z7 k! ]" k6 _7 a
- (mode_tile "yscale" 1)
5 Y/ |9 X3 \5 X- [. V$ p - (mode_tile "zscale" 1)
$ J2 Y/ a% p1 d s3 X - (mode_tile "rot" 1)
9 t* r$ }8 J- E) i) M; h - (mode_tile "columns" 1)* t6 | y9 N2 W( a. N5 \3 ~
- (mode_tile "rows" 1)7 z# t! R- R) n9 ?0 z
- (mode_tile "col_sp" 1)
) M; h ], n5 Q' k' }4 Z - (mode_tile "row_sp" 1)
+ ?, o5 ^# m% M& y* D - ), J( U* @5 N- w c' K4 N$ A8 c
- )
" }7 m' E& }1 S6 ?* Q; S) a - ;; Define action for tiles
5 i% Q# K2 q6 g# {8 ?6 z - (set_action_tiles)! m/ o1 \2 p$ l u. G* O7 R
- (setq dialog-state (start_dialog))+ e! n, e0 j5 b3 r
- (cond
2 y+ ?0 D9 @, G- L) l; ` - ( (eq dialog-state 0)8 C5 D! s6 z+ S; V A
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1)) m) [5 B" o7 V3 L6 c5 J! I3 b2 ]
- (move_pt1 1)- D9 p9 B7 ?0 o2 P5 \
- (reset))" B* p3 t+ V- T L- N) \' g
- ( (eq dialog-state 1)
( ~& W2 |6 x5 n3 B3 F; @ - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
' T+ J5 F+ ~- h- ^2 C4 i. o5 v - (xclip) i. z# i0 m) ^% J% L4 W
- )
& L5 f8 q6 X5 i1 @6 b - (modify_block))( `) x% I' ^! A$ {& K, P1 e" t, M
- ( (eq dialog-state 3)
! J7 q) ]2 }9 q3 t - (modify_block)
& F2 ^' @8 P5 v, Y( a) J- ?4 d5 i - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))9 b- Y/ W, H# j, q* @
- (move_pt1 1)4 V) |" v& \' b) W9 d% [/ T
- (ddblock))) @# z9 M( I* z0 L" `* P: D
- ( (eq dialog-state 4)+ A% Y+ l7 l+ s
- (modify_block)5 d( n6 B: [$ J1 H
- ;; Get current handle.$ G, T: n7 D1 S. i$ Z9 _% u
- (setq hand (cdr (assoc 5 elist)))
/ Z8 A$ V0 F/ x: k7 c7 Z$ l8 | - (command "_hatchedit" ename)4 Q' k9 |% ~/ s# ~3 j, w1 M& l
- ;; If OK in hatchedit, a *new* entity is created and the old one) b- h L! }& \% a. C
- ;; is deleted. So if the old one exists, it must have been a' D% D2 D# V2 N7 {; X
- ;; so rest the entity.) ]$ L- I1 `: M6 M: `2 s6 h0 K) ~
- (if (entget (handent hand)) (reset))
7 b8 V$ @! B( @! n5 X - )
8 O1 Z* ]1 P0 F/ L - )
0 W/ e' [3 H7 M8 H8 S! _6 | - )
/ B/ i$ F+ `, T2 C - )
7 c8 t0 X$ l c8 u9 \0 v5 q" D# F - )& [& [. i | {
- ;;
& ?, U6 `5 \* Y+ I1 l2 l" F - ;; Modify SHAPE
9 o4 }" l1 m6 _8 v - ;;
3 b; O2 }6 J: t& R - (defun modify_shape ()& E. |6 S1 W/ ]( ^4 B$ z
- (modify_properties)
& _1 U5 L4 v$ W# B+ @3 }* H - (setq pt1 (list x1 y1 z1))
# d8 S+ w" V X - (tempmod pt1 10 1)
; U0 t1 o8 ~" G - (tempmod hght 40 nil)2 ~! \1 u: Z/ y( R1 M! H
- (tempmod wid 41 nil)
* x' D W+ U. \, h; h( ~ - (tempmod rot 50 nil)6 f% w( ]7 O% M% T+ |! O' H( o
- (tempmod obl 51 nil)
8 ]( B6 E J$ Q8 l) c: f - (entmod elist)
# e* C& V( j3 }/ m; d - ). a/ l/ A4 J/ H" `1 J
- 0 ?- Z- r( b* q9 Q- @
- (defun ddshape ()8 w( L& p p) T [: T8 y' s
- (if (not (new_dialog "ddshape" dcl_id)) (exit))
6 v" V8 \/ v/ e: ^4 B7 f9 b3 L - (set_tile_props)/ W* T# e6 n% n; j B- _
- (set_tile_handle)5 I1 H: \# p. v) T2 j
- (set_tile_pt1 1)2 a0 s. t% Z/ t4 S9 y0 J6 D
- (set_tile_rot)5 `) Q! C( s- e& A: b
- (set_tile_hght) w) I9 A# X1 V* e
- (set_tile_wid)- p: s) c6 p9 I- O0 A6 X
- (set_tile_obl)4 M7 f- H. g, P& D3 }( j
- (set_tile "sh_name" (cdr (assoc 2 elist)))
8 Y' T5 i% L/ @ j0 v4 X% F - ;; Define action for tiles. T6 K" P/ G, |* Q4 o
- (set_action_tiles)$ r5 P; o! C) N* Q6 N2 c
- (setq dialog-state (start_dialog))
( T7 |. S; f' d2 ?, i% \/ { - (if (= dialog-state 0)
; C2 P {6 f( Y, j \ - (reset)3 k1 J i7 h- |( Z4 z
- )
5 G2 \ W X1 s( B2 W - (if (= dialog-state 1)9 i. [$ r8 m a9 G+ [
- (modify_shape)) C ]/ ]# e' j/ X6 E+ M" p, U
- )
' O3 V _2 I8 O- g- X1 t - (if (= dialog-state 3): P) e2 v h. E5 ^" b S
- (progn6 ?6 q) f% A6 v0 m" r
- (modify_shape)
1 x: f/ M8 U, k2 y - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))- s' ?5 s3 c, I4 F
- (ver_pt1 1)
4 W" f& D9 J. u - (ddshape)1 [7 L% ?3 J, E3 p! ]) Z
- )2 R' x; k5 g2 G
- )
/ Z; b1 o& a) | Q+ { - )) @9 }) p9 X, ^
- ;;. W `0 \4 }* S# k m' U0 X; c
- ;; Modify TEXT or ATTDEF
1 |* W* {& y1 m+ j" @) }6 _$ X - ;;
4 F& }8 F' g6 g0 p8 x6 h4 v - ;; Set bit code for upside-down and backwards setting
$ h1 a6 \* @, D( Q - ;;* _! _0 S2 Q. x* t% J$ j7 a
- (defun code_71 ()
; J; p! }3 M+ M - (cond ((and (= bkwd "0") (= upsd "0")) 0)' E- K- t6 Y( p3 @+ v7 }- ~2 q9 f+ |
- ((and (= bkwd "1") (= upsd "0")) 2)
% Y4 {2 l7 t$ o9 Z6 o9 j% t - ((and (= bkwd "0") (= upsd "1")) 4)
, k& i9 i) P: `( N' K - ((and (= bkwd "1") (= upsd "1")) 6)
9 m# e% X2 m1 I2 f/ M+ C8 z - )4 |; d, R0 ]1 R) W+ t
- )! {5 K, D- M; ^4 F) c: |0 M' s6 M
- ;;
* n& Z2 M9 w$ W0 i - ;; Style action. Reset widget values to style defaults
* F7 m1 u2 P: m% a - ;;
; t9 \# T1 x. j) `" q V) R/ j5 x - (defun style_act (index / style-list)$ R2 Y* x9 Q1 Z) o/ q5 b2 `9 g( j
- (setq style-idx (atoi index))4 m- Z' h2 c0 M8 e3 ?
- (setq tstyle (nth style-idx slist))+ U: d: E( ~( h1 W Y' X
- (setq style-idx (itoa style-idx))* O* |! ?/ ?/ B; \1 ~. @
- (set_tile "style" style-idx)6 }# m$ Y9 P. p1 Q2 S, L
- (setq style-list (tblsearch "style" tstyle))
) b/ w4 E! H9 ^2 Z5 [+ V4 e - (setq shght (cdr (assoc 40 style-list)))
( N) x4 ^' h" d$ q6 E. U# k - (if (/= shght 0)$ j1 d2 }! A/ W# ~0 F
- (progn
) C4 h9 x) E; _" Y4 _6 | - (setq hght shght)
; ^/ B3 R8 J }" U4 C - (set_tile "hght" (ai_rtos hght))
! N' n) E/ f. U$ q! b: \2 I, j - )
! h, ?: g; v0 f) E: D2 x! ^ - )
: S& z# D/ P" { - (setq wid (cdr (assoc 41 style-list)))
5 x+ ]$ b) }0 [# K' I$ @- L- G - (set_tile "wid" (ai_rtos wid))6 B& ~( K' l7 c/ }* I5 k; b# Y
- (setq obl (cdr (assoc 50 style-list)))* M* n- O6 s* U) s, L* S- T" o; n
- (set_tile "obl" (ai_angtos obl))
+ H4 {6 _/ H' p - (setq bk-up (cdr (assoc 71 style-list))) r0 m# G8 Y, @' L+ G7 Y3 x
- (if (= (logand bk-up 2) 2)
; `6 i, Z# I& |9 F+ }$ t" O5 K - (set_tile "bkwd" (itoa (setq bkwd 1)))! E" O5 `9 {* p$ l$ A& h6 e
- (set_tile "bkwd" (itoa (setq bkwd 0))). j. j; x3 ~! o4 ?9 h) `
- ), H( d% M0 G4 h
- (if (= (logand bk-up 4) 4)
: X& x5 q! y. `3 |6 n- y5 P- c - (set_tile "upsd" (itoa (setq upsd 1)))3 ^/ v9 ~! P, n3 A3 t" n3 t
- (set_tile "upsd" (itoa (setq upsd 0)))& a" z2 Q2 J+ K) p- _% o8 w/ v. Y' \
- )
1 u) {$ v/ y# @! T9 w; w - )
9 i; X) t3 k8 g+ g0 ]3 u - ;;
# g& o7 c1 Q/ _& V - ;; Justification action. Set vertical and horizontal alignment variables,
( z6 Z# O. v; Z. b - ;; grey out rotation and height if alignment = "aligned", grey out rotation% T5 p2 n9 Q. t* a9 g+ {" E
- ;; if alignment = "fit".
: @+ R9 u5 u \% L! P - ;;/ b' E7 n7 }; E4 v& k! G
- (defun jlist_act (index / templist)
/ y+ k( i% Z, I: C+ Y - (setq just-idx (atoi index))
* B; U" Q6 O+ b7 D; Y; w' b - (cond
- Z4 v- x' {+ Y" P - ((= just-idx 0) (setq va 0 ha 0))# c G* Y. O& v8 j: h8 M
- ((= just-idx 1) (setq va 0 ha 1))
6 n& k7 T* u, C- {% z0 J5 W( E - ((= just-idx 2) (setq va 0 ha 2))
1 l# z# ?. t) }' ~ - ((= just-idx 3) (setq va 0 ha 3))
7 g. b$ Q6 f8 ~5 [. \/ L - ((= just-idx 4) (setq va 0 ha 4))% S, e* R$ D* O3 c
- ((= just-idx 5) (setq va 0 ha 5))3 I! S6 k7 J! g4 J* i* e5 B+ R/ E
- ((= just-idx 6) (setq va 3 ha 0))
1 X, I9 r9 E" n2 I - ((= just-idx 7) (setq va 3 ha 1))
6 W0 w% Z3 N9 Q& o( w) z4 @ - ((= just-idx 8) (setq va 3 ha 2))# y8 {7 U; O# J i, |3 w! B3 j
- ((= just-idx 9) (setq va 2 ha 0))% m7 z6 @8 e5 O/ |* b
- ((= just-idx 10) (setq va 2 ha 1))
' j9 D$ Y+ s7 x8 L) J. ~7 C: ` - ((= just-idx 11) (setq va 2 ha 2)); @. e |. \4 v; [5 v
- ((= just-idx 12) (setq va 1 ha 0))( c/ Q @# S+ a( F+ V, t0 _
- ((= just-idx 13) (setq va 1 ha 1))
% K0 I$ W2 y# f8 I - ((= just-idx 14) (setq va 1 ha 2))5 X. Z$ w% O- g
- ); ?6 z/ [; {5 i: I$ u+ j+ g: }" I; _) i
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
: U5 E1 H2 }5 s, E - (mode_tile "rot" 1)/ s9 U! d0 n: y) E- g6 R8 B6 h1 Z
- (mode_tile "rot" 0)
9 o' v; ?- P2 e. k - )
7 J. C; [7 P5 ^1 l - (if (= ha 3) ; If Aligned text' a! W# Y/ @& ^3 j4 t0 x/ `% v
- (mode_tile "hght" 1)
2 G* }2 e9 R, j - (mode_tile "hght" 0)% i5 k' z6 d( B# Z0 g# m
- )& R( _ h; f( z- ]) p7 O6 c
- (if (= ha 5) ; If Fit text
# w& b, U- \' \% c, Q - (mode_tile "wid" 1)
5 P$ n0 A! J% E5 u. m: S3 I - (mode_tile "wid" 0)8 t' ^# V- V/ K) p8 B
- )
; L: X, ]6 V+ W' {0 E! C# o - ;; Reset rotation and height if changing from aligned.
6 j* D7 t3 s! y* h2 F - (if (and (= ha-prev 3) (/= ha 3))
8 D2 S3 R/ N4 G' H - (progn
2 N5 c, W) e* A8 S, R- S - (set_tile "rot" (ai_angtos (setq rot 0.0)))* {3 p) B/ I" k; D! Y
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
2 n4 d8 C- D! \ - )
" \& F- g$ W# k - )4 V; ?+ C5 R7 p$ Z" l
- 9 c: _8 c/ g9 A& y: n1 X
- ;; Reset rotation and width if changing from fit.
/ U: X" f( M& y' h B - (if (and (= ha-prev 5) (/= ha 5))9 C6 ?* G" |: T2 P
- (progn# `$ l! P$ U( V$ }) h2 K7 v
- (set_tile "rot" (ai_angtos (setq rot 0.0)))2 i% X ]: h( `. y! I
- (set_tile "wid" (ai_rtos (setq wid 1.0)))# N9 g5 N" S) ~) W6 i5 p4 ?' j
- )$ `' h0 f: s8 Z9 f. J" i) K
- )
2 E) L4 R8 Y: T2 z9 Y/ l+ x
/ X- u! ?( [6 z- (setq ha-prev ha) ; update ha-prev for next time6 a! u. z) \6 ~$ m$ `! G9 C
- (setq just-idx (itoa just-idx))1 @( Z, E2 v: Z: [- B
- ) n. N7 X3 @/ X
- ;;$ q+ B; @. p1 ~3 T. t r8 Y0 L; m
- ;; Set intitial alignment setting based on vertical and horizontal alignment. H5 q. Y7 Q6 F6 n) C, `; q# `
- ;; bit codes.7 x% Q1 }0 |/ m1 a P
- ;;4 w2 T7 C+ p$ g6 z n8 V
- (defun set_just_idx ()
% I6 |5 @: g' ^+ @% S( s4 ~ - (cond
8 T- {: @! H) p' D0 j - ((= ha 0) ; Horiz alignment = Left* h' G- M- j" I1 J+ ~+ t
- (cond
5 ~! V, E; g- H; t - ((= va 0) (setq just-idx "0"))! g6 n* {3 T. [7 a* v
- ((= va 1) (setq just-idx "12"))
& y, O. X. R' _ - ((= va 2) (setq just-idx "9"))5 x+ `5 S) ?" w* K
- ((= va 3) (setq just-idx "6"))
m( ^8 F* [1 h) B) @ U - )
" B& g6 t' o, Z: b3 b - )
, J7 g; ~0 N( u0 ~/ O% I - ((= ha 1) ; Horiz alignment = Center
+ ?3 I1 ^$ O& i* ^ - (cond
, h2 i- M; i' G# i' S+ A+ Z% Y - ((= va 0) (setq just-idx "1"))2 z% H6 G( b" N$ n3 d) g
- ((= va 1) (setq just-idx "13"))
" p) {8 p' i7 u6 h - ((= va 2) (setq just-idx "10"))
# o c% e! |* T! {4 r; C$ d/ }3 o - ((= va 3) (setq just-idx "7"))
# h( i) `9 s8 }) G8 r% e6 w9 T& H - )
' m& I9 D, b; }$ ^ - )
8 A4 ~- q% p8 l - ((= ha 2) ; Horiz alignment = Right
% T" i) {, v9 w* j) y6 s8 n - (cond
- y. M5 i7 _% e) j8 T - ((= va 0) (setq just-idx "2"))
5 J. j1 G+ q% o, b) A - ((= va 1) (setq just-idx "14"))
- |: Y" R2 B% O* L2 c; B - ((= va 2) (setq just-idx "11")), j f: N# V8 x
- ((= va 3) (setq just-idx "8"))
8 `1 o& Z! N9 A - )
$ @0 O0 F' @: A8 z$ B& J9 E - ): C+ E0 o* E' B4 M
- ((= ha 3) (setq just-idx "3")) ; Aligned8 W; R2 ~! Z5 L$ d! W7 H
- ((= ha 4) (setq just-idx "4")) ; Middle0 R3 ] k# O" E: {( F
- ((= ha 5) (setq just-idx "5")) ; Fit3 k4 @% |8 y9 }3 e
- (T (setq just-idx "0"))
- G+ B1 t0 F) l6 @ c7 N8 A - ). }& X# n' r+ m4 t' Y5 f; q
- just-idx
2 K w* f0 p$ H" _/ u - )6 e) v* @/ E5 X5 Y0 W, f, @
. A& I9 `. v/ J- p, y- (defun modify_text () C; {$ D" m2 j5 P/ T4 V3 C5 {
- ;; insertion point
o( H' i8 r$ [! ~ - (setq showpt (list x1 y1 z1))0 Y5 Z5 U" G% y' D* k$ [3 n
- (setq bit-10 (trans showpt 1 ename)) [: z8 I6 R6 v1 z' X
- ;; alignment point
- L! P, `% p- N6 q! p - ;; for 'Aligned' or 'Fit', alignment point must be different) ~2 x g3 a/ Z6 w9 o$ \
- ;; for all others, use insertion point7 [# p! {- u7 a9 X
- ;; (ACAD will recompute insertion point)
' L/ x$ w- e7 b* v" t; H$ K8 W7 r - (if (or (= ha 3) (= ha 5))
/ }* b+ s# B5 w. X - (progn( A7 i( D% j* `$ a$ y& S5 J& {5 ]1 U
- ;; if no alignment point, fabricate one% {; J3 {: N/ y! Q2 s- c, `
- (if (not alipt)9 V: I1 z0 x' l$ N' l
- ;; add text width to insertion point
" @4 P/ ~0 ~ v+ ]; ~# q: k! f; _4 O - (setq alipt
/ z" @* }; k+ t E9 }/ [ - (list (+ (car showpt) (car (cadr (textbox elist)))), }6 G; L' Y" M
- (cadr showpt)# E6 d ^% v. v8 x
- (caddr showpt)# d7 k* b0 a" ~7 L; m+ h) n* M: r
- )0 L! Q6 C& D( p% @4 L- |
- )
+ E& B$ C: \# q) Z4 `0 W, s7 r - )
+ w2 D/ A% P5 O - (setq bit-11 (trans alipt 1 ename))$ D& L1 g* `2 |# w# y3 c
- )
1 a( Y, r( z* V& h. g - (setq bit-11 bit-10)
. g' B* v$ c% g; ] - )
7 {6 F; D* P9 O8 `$ h5 B0 j - (modify_properties)6 X1 p- j+ N, a z, [7 O* [
- (tempmod tstyle 7 nil)
% c. F2 M* n3 t% G6 ~7 Z* B - (tempmod bit-10 10 nil)" j( f- O* U% V3 H( Z/ I2 {
- (tempmod bit-11 11 nil)/ M' ?8 j4 G( d* f. w' m1 Y0 j+ r
- (tempmod text 1 nil): H R: E) u6 ]4 G# V* D, s$ `3 m
- (tempmod hght 40 nil). x, ` e' V6 C, H/ d
- (tempmod wid 41 nil)
3 y! v- A0 M" `7 `5 z - (tempmod rot 50 nil)
2 u$ j; D' }% f5 z; w" v6 w- k - (tempmod obl 51 nil)
0 C, E$ w5 q( P6 w+ f: D$ I* K - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
j$ W7 @* Q& G3 h1 O - (tempmod bk-up 71 nil)2 U W4 ^" z9 D7 l% a" q
- (tempmod ha 72 nil)
! e. h' m& O9 k- x - ;; Attdefs use 74, text 73+ c- f+ ~+ ?+ T+ o/ D7 N
- (if (= etype "ATTDEF")
J9 i# e% |* v; w8 n - (progn! ?% ?' X" {* ?9 u9 Q
- (tempmod attag 2 nil)( r% |: W p( ]) h; G5 F# F) O
- (tempmod atprompt 3 nil)
9 ~9 @) C8 g( O: @2 L2 F* B) S - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))& l% A: L+ _- ^ S/ I
- (tempmod icvp 70 nil)
6 {/ p2 q2 J6 q - (tempmod va 74 nil)( m* N8 ~* K- c Q
- )
2 W' c. U) h2 s. T - (tempmod va 73 nil)4 N4 K2 r( [2 ]$ t' K# ]8 {7 s
- )0 ~8 D5 t6 o- @( J+ f7 R
- (entmod elist)
6 S1 v6 h) E5 M, F! B. I - )
t1 s$ u$ C$ w" |: [ - # Y/ u- G' ]: B% B
- (defun ddtext (/ 2ndpt slist i)- a' ]/ D6 N" \, ^2 C
- (if (= etype "TEXT")
( ^) O. b' M7 C f9 ` - (if (not (new_dialog "ddtext" dcl_id)) (exit))* p) i) R0 a8 @6 R+ `( |. S4 K
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))8 N- m4 A* X1 z$ P1 r" @# I. H
- )
( R4 _- U" T: Q5 V9 z/ ?+ ? - (set_tile_props)' ?7 U7 q; H- {
- (set_tile_handle) U* {3 a+ [7 V) W; V4 J7 U
- (set_tile_text), @2 n- }- m$ C; b3 I9 C
- (set_tile_tag)
9 c, ^: V" f9 h% q$ q) L! m - (set_tile_prompt)+ M* o& C5 |" S: ? y
- (set_tile_hght)
9 i- h* s f+ O1 v s8 x# B - (set_tile_wid)$ p! x& X, T7 X2 ]) `
- (set_tile_rot)8 ^+ x9 F6 ?# u2 k: X
- (set_tile_obl)
) ?4 c3 V0 @, f( x0 ? - (set_tile_bk-up)
+ d1 S6 U8 Y5 }+ @# |+ B2 n" Z - (set_tile_icvp)
2 V, K# k' {$ B* f3 |7 [3 B - (set_tile_style)
. S0 R% y _% h, H: @- l( K - (set_tile_just)
6 [/ n( e5 t1 G' g - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
- _7 n7 ?3 L& v7 f( Q# C - (if (not (assoc 11 elist))
d. ^# o2 m% e! q' z - (progn (setq pt2 pt1)/ I9 b* o1 K P4 T; y! ^) t. X
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))( R0 x& e7 x* B) l$ s
- )8 g: p0 I2 n8 I: o5 n5 y! ~/ I
- ;;(trans '(0.0 0.0 0.0) ename 1))+ ]# I" o% B2 E* X/ {" q( Q6 I
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
7 p3 C6 \5 d1 G# p - )5 F; E* ~; c' Y5 M- L3 X
- (if (or (and (= ha 0) (= va 0))
7 M8 H8 ^, T$ q K7 _ - (= ha 3)
( m" x4 g/ L# s6 l2 ~0 @( a' P" p a/ x" q - (= ha 5)
! u- S% h) L1 n9 L! a2 Z - )' _8 p" F1 ]* R% X) g
- (setq showpt pt1)
/ F* Y" [% c( l4 f8 I- Z" N8 k: ~ - (setq showpt pt2)
* S" u- j/ l) j. J X) c2 ^ - )
, _& {& e" |4 d U, w! p - (if (or (= ha 3) (= ha 5))1 }. Q; Z# H! C7 ?
- (setq alipt pt2)% w0 q2 |0 V, D( Y) S
- (setq alipt nil)# q0 A4 @9 e3 S; C1 r1 ?1 b
- )3 p1 [* j8 q4 ]/ O4 x: I
m/ ^3 `. z0 P- f8 [5 p' U' s- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt)))) N. p( g7 |- R) R0 ?8 N
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt)))), _9 @1 V1 y* _
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))- [$ D/ C Q N9 W0 I1 c9 Y; K
- |. e0 G P9 _0 j( G# J$ s
- ;; Define action for tiles* L% {. ~8 d1 _8 S
- (set_action_tiles)
- n% X& w8 b, c$ ^/ C2 ^+ j - ;; Set focus initially to the text edit box.
9 A1 Q' ~ G+ z: q4 ` - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
$ @8 z# M5 @5 X& a1 z+ J - (setq dialog-state (start_dialog))
( A' M% ^. v* J# x) n - (if (= dialog-state 0)/ Y+ P$ N ?( Q: C
- (reset)
/ r! _7 f; S$ D8 _ - )/ E! k' t% b; w* R, |8 Q, y1 Y, |$ F
- (if (= dialog-state 1)' z" Z6 T3 D9 o& F8 W
- (modify_text)
) ]1 F- F/ y) P; b: z - )* a7 y" Y# C- h! a: |1 b) F+ S
- (if (= dialog-state 3)
8 _* T6 O- v% ]) }" B - (progn
3 [ m) e- h K' _ - (modify_text)
1 s' g [5 G* v; X. U - (if (or (= ha 3) (= ha 5))
# J6 y" O5 y& Y; w8 F- | - (progn
/ ~. Q) V. `8 h% a* V; g4 t" H - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: ")); ?2 {$ P0 @3 |1 {, K
- (if (not showpt)
8 J* s- X- o9 z - (setq showpt (list x1 y1 z1))
/ m) q, O7 @0 N% n - )1 e6 Z' }( h, |' Y
- (setq 2ndpt (getpoint showpt "\nSecond point: "))+ ?# G: k6 [& S+ F
- (if 2ndpt
( l4 u8 t, t* k& A - (progn
[! Q2 ]& V1 P$ ^8 @0 y( ` - (setq alipt 2ndpt)
% H. q) O$ ^7 z& r, q - (tempmod showpt 10 1)* M- B# R( Y& R
- (tempmod alipt 11 1)& ~' C8 r4 `9 k' H
- (entmod elist)2 C n; R; J1 q; J; K+ @
- )# V% v) m* \' B& m: J3 b
- ) J; d( n3 c$ ?/ a# f
- (setq elist (entget ename))
% M! n2 k8 C% R; e b" C - )9 E! L- e4 X" J. Q9 j, y0 b0 G
- (progn
% [% n4 V# `9 w$ ` - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
- O8 _- R7 i4 @8 U/ P- g: O - (if showpt+ m5 C8 x. a3 d9 Y
- (progn$ m0 z! W6 ?2 M3 J9 ^" _* |
- (if (and (= ha 0) (= va 0))& M3 }# p# V+ K `, j/ j3 g1 H
- (tempmod showpt 10 1)& x9 Z: X# r" X6 t& `! B0 l8 O4 s6 z
- (tempmod showpt 11 1)4 |$ y% I; C7 O) Q" {6 D
- )
. k* q/ q' `3 ] - (entmod elist)
1 d v" _! K3 f8 ~1 B O - )6 G4 U6 V. m& w3 x, ?
- (setq showpt (list x1 y1 z1))
2 \7 ^6 r0 P2 _/ S$ J" b - ) D" D+ l- p8 l8 D" f8 m3 P
- )9 h" g6 J* |9 b) l# c* C, s
- )" |( A0 }/ N5 c) @+ H
- (ddtext)
7 [8 {+ E' M9 f1 ]) K( L - )2 U2 Y# d$ ^. j8 P4 H4 x
- )
, D, R, b6 I5 C" [$ K7 B$ _ - )
; K: h# h. M. a
. M6 @" `+ \; Q$ [2 J- ;;+ }2 f% |& K( M; W3 S6 ^
- ;; Modify MTEXT! D3 X- X3 E0 u# V3 y2 _ o
- ;;: p F. {% C3 M5 a! g; \
- (defun modify_mtext ()# e' m6 I# m% t" M
- (modify_properties)! W8 ^1 u8 l# U3 z+ u- d
- (setq pt1 (list x1 y1 z1))
" s5 a! R, q- o& J K B1 B - (tempmod pt1 10 0)7 P1 ]$ l& z3 _# |" D8 X- D
- (tempmod text 1 nil)1 F% J) G) `+ g) l, h7 P
- (tempmod tstyle 7 nil)
1 M9 r" G. h' n" w( D& a - (tempmod just-idx 71 nil)
e* j/ h" h) \1 n; z$ ?0 w' f - (cond
2 I5 s8 [, N5 D/ S - ((= dir-idx 0) (setq dir-idx 1))
2 A; \+ _# i4 Q5 m - ((= dir-idx 1) (setq dir-idx 3))
8 z+ T2 K! h3 I% \ - ((= dir-idx 2) (setq dir-idx 5))
5 S( Z( f$ n; u - (T (setq dir-idx 1))
2 v$ `1 p" h5 y0 [/ \5 W& L# h - )
, r& V7 y2 o1 Y0 x2 _ - (tempmod dir-idx 72 nil): C/ @, n. `2 [4 T* x- F; ]2 e$ a% w, `
- (tempmod hght 40 nil)
9 q" X* \: P6 N4 g* d - (tempmod wid 41 nil)# X" ^, [) m% p
- (tempmod rot 50 nil); t; i, }% q2 y/ g
- (entmod elist)
, x% {9 @ y8 P& L+ n/ G7 l5 t - )
+ M& {' N! C& i+ W E! d
" w4 ?" y* x0 c+ ?- ;; Set MText text style
/ P7 ` s6 ~7 Y. x - (defun MText_style (index / style-list)
: d: s( t' X! u7 l# I - (setq style-idx (atoi index))
, s0 I" L- k) s - (setq tstyle (nth style-idx slist))
6 O. ~; _" m+ J o - (setq style-idx (itoa style-idx))
! u* L* }; X$ ~, T, k7 r5 q - (set_tile "style" style-idx)! `2 f5 l& b4 u: W; M
- (setq style-list (tblsearch "style" tstyle))5 b( ~0 S) A2 T" r8 u9 V' ^ J) i$ x
- (setq shght (cdr (assoc 40 style-list)))
* ~/ o o' u z. F) T - (if (/= shght 0); o7 Y; l9 w# `! \
- (progn9 d. C1 C ~& O: E3 t! K8 \$ j
- (setq hght shght)
- p0 f D* I- E& w( N! I& B - (set_tile "hght" (ai_rtos hght))4 Q2 I9 P8 K" L4 P) M0 |+ g
- )
7 M0 W9 ?$ a9 x+ R0 X: G" Z# V - )
; B- {3 d. L0 j* j( _8 M - )
% o: v, e; m1 r* `; N6 W - : P3 u1 B# A( p( R+ [
- ;; Run DDEDIT on given entity, working around possible re-entrancy
9 V- `5 y7 i8 d - ;; problems with MTEXTED' q; y$ h4 O, j$ J7 ?+ P6 `% I
- (defun safe_ddedit (ename / orgMTextEd work)
' e' e! x7 T% O- A6 _, ~ - (setq orgMTextEd (getvar "MTEXTED")): ^6 a# r' N5 d5 N% h
- (setq work orgMTextEd)$ i" A0 ]$ V2 g
- (if (= ":" (substr work 1 1))
( ?/ q% J/ q7 D' A - (progn% `+ Y, I5 z2 h3 {0 X# F: z; }# B
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
( X8 ^9 L( U: ^9 e. t5 _) c8 W - (setq work (substr work 2))2 J9 ]+ u: Z) B7 O$ f6 G
- )
: |) z+ R- S5 o) J- u2 T$ x - (if (= "#" (substr work 1 1))
; J- N3 V! T: w( m4 C3 D, P+ P! i& j - (setq work (substr work 2)), r- F0 z2 V$ O
- )
4 l* x& K. z- e; ?. x- v0 r( b - (setvar "MTEXTED" work)
! |" Q& r w8 N - )" d2 H1 @; S9 }
- )2 @5 q% M9 Y5 |1 |( b2 e
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
( Z; j& N8 O! {; S0 J) j* @ - (command "_DDEDIT" ename "")
& y3 r% V6 r0 I7 n& g6 l - (setvar "MTEXTED" orgMTextEd)+ k" Y3 a; t, \% W1 K
- )
: N/ R6 B* E t - # u7 w4 Z3 c$ _5 C$ r7 [ @1 f
- ;; Verify MText object width& K9 }( |. x# y$ C J6 E
- (defun ver_MtextWidth (value)0 j! p) t/ `8 h% Q8 a4 [8 _; n
- (setq value (distof value))
0 P* @2 e# x4 D2 O" y9 ] - (set_tile "MTextWidth" (ai_rtos value))
* j4 j( ~$ @7 e7 t - (set_tile "error" "")
2 f; ?( {- ?. H - (if (< value 0.0)# ?' w8 {0 q& S$ ~0 @
- (set_tile "error" "Value must be zero or positive.")! i9 ~/ i7 S. S7 B* P
- (setq wid value)& P2 ?! x5 I, I- H# o
- )
9 A/ R n% v" Z" R- ] - )
" v6 ] r$ |) o - ( n* U5 _ x5 g1 I' v
- (defun ddmtext ( / gc3)
) \1 [' R# }; T9 I - ;; Get dialog
; W8 B+ v) r: L4 v2 p4 [2 ^ - (if (not (new_dialog "ddmtext" dcl_id)) (exit))7 F+ f0 l, Q: _ G" D& |
2 \% d, T t) U2 W- ;; Load list boxes
2 e1 N/ N) k( \4 C - (start_list "MTextJustify")
9 t; |5 d+ O9 K' W- i+ N - (mapcar 'add_list '(: F- u3 ?& ?4 ~; M
- "Top Left"
" ^ b. n! D2 R& o, L - "Top Center"
$ J8 s* ]( K, F3 x - "Top Right"1 b0 {7 X' I4 C' `: `
- "Middle Left"
5 {+ f" e( S m s - "Middle Center"/ V7 W- [$ k9 F! r; m
- "Middle Right"9 [) W/ D1 s3 ~+ E$ G. _" Y
- "Bottom Left"# \. R8 e1 M& Z k3 ?* q
- "Bottom Center") S, Y7 G+ f# U4 R0 L% _6 n
- "Bottom Right"
* D0 E' p; a' d' t( H& e0 [ - )
" |2 N) O3 t, r% e2 k8 C8 V - )/ L, [3 v' k) Q7 h: B) D
- (end_list)& U# b5 K9 `$ k
- + P' _, x# W5 x8 |' A$ x) i& J
- (start_list "MTextDirection")5 N! }5 D, j2 s4 X& U
- (mapcar 'add_list '(, Q5 x5 ~# n3 ^: I8 h
- "Horizontal"& ^2 \' [$ o2 L
- "Vertical"
" i0 F' N5 l! G# [- |/ L% u - "By Style"
1 ~% o+ e% b' J4 r1 i/ { - )6 o* R0 K. Z/ V, H( ?8 q
- )
* p% K5 o& y n6 a1 }4 r: V6 F - (end_list)
K8 z4 g% i2 G/ Y$ Y - + M2 N3 \' G+ V: D
- ;; Set initial tile values; R9 E" b# W- m
- (set_tile_props)
( P8 w0 K" X7 g% m - (set_tile_handle)
/ i! w0 [/ ~ V, D, @' f6 V( f - (set_tile_pt1 0), F# N0 T1 b: y! x( u" e
- (set_tile_style)9 R& c6 N- V( ]! g, _1 ?3 ~* x
- (setq just-idx (cdr (assoc 71 elist)))
8 ]2 {. f, A* r" I: ] - (set_tile "MTextJustify" (itoa (1- just-idx)))4 X- A0 G; n! E7 ^9 T$ [+ l! `3 V& X3 X
- (setq dir-idx (cdr (assoc 72 elist)))
# @1 ^2 p( r; O2 F; x1 i0 L - (cond( t9 [2 h/ c* s+ m/ _5 P% n
- ((= dir-idx 1) (setq dir-idx 0))
; t3 t7 Z1 ]& w$ c7 b - ((= dir-idx 2) (setq dir-idx 0)), q9 @. v2 g$ F$ `& K
- ((= dir-idx 3) (setq dir-idx 1))2 T S) z3 _9 h8 k7 y' Z
- ((= dir-idx 4) (setq dir-idx 1)) H' [) ^9 @8 g& y+ h. k
- ((= dir-idx 5) (setq dir-idx 2))& Y3 v; C+ w1 Q% K! N
- (T (setq dir-idx 0))
' P0 H7 o2 R; F! B! U6 R - )/ u( k6 I/ E3 H' V; J
- (set_tile "MTextDirection" (itoa dir-idx))
" h3 t' G* Z' n! T) k2 g3 W - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))1 [. b7 x! S5 A/ H+ {" E2 s
- (set_tile_hght)
0 c3 ^0 A/ n" ^$ O - (set_tile_rot)
- q, K0 H9 f# J% l3 Y- P# ^7 W - 8 Z8 j) i& k- s3 h3 p
- ;; Set edit box, disable if too long
& ?. V! X" D3 h! K - (setq gc3 (cdr (assoc 3 elist))
( P: b0 N4 N* B - text (cdr (assoc 1 elist)))
! x$ f! ]2 V, r$ R+ ?7 y - (if gc3
. W, N6 k& J8 q5 E - (progn ;; Text is over 250 chars, disable edit tile+ ]9 |. [# E1 a9 s' l- m
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))% y) T' W! L0 t1 S& a$ f1 n u
- (mode_tile "t_string" 1)3 q! F8 u4 A( C8 h* A
- )
4 |. e7 g- D7 @& ~ - (if (> (strlen text) 80)/ `4 T& }( y: V3 k
- (progn ;; Still too big) K: J' |& c5 M. |
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
8 i% C/ g% j# _0 [0 |+ z - (mode_tile "t_string" 1)
2 |! ^& e+ x! ?( k) f0 C - )- R+ R, r1 y& `
- (set_tile "t_string" text)/ B- Z5 I y) R* C
- )
" m* o3 I. l3 P6 T3 o - ), X% X/ A) R+ B' P, m$ n2 N
- 5 {8 ~3 D* E. f- i
- ;; Define action for tiles! a+ K$ E6 Z5 e5 C
- (set_action_tiles)
6 c5 e( P& k4 ]9 F% ~ - (action_tile "style" "(MText_style $value)")
' @8 s5 x3 j" U - (action_tile "MTextWidth" "(ver_MtextWidth $value)")
( H: n7 b/ H. J. d - (action_tile "MTextEdit" "(done_dialog 4)")
1 x, ]% b! B+ c* Y+ c - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")' j/ g$ m7 Q& K1 q' t
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")) J# f. M. ~& |* ^; a
- # y2 ?" E$ L6 c N/ f
- ;; Set initial focus to text edit box.
% h: ?# h( R2 }6 f9 X - (mode_tile "t_string" 2)/ J1 ~/ |! d" a" t; j- I
+ _/ @, l7 ?# |. I- ;; Run the dialog
3 N0 u9 E" I) L% h u* g+ V - (setq dialog-state (start_dialog))/ J: X* Q3 R$ p
- (cond
) s; _* n. L* i4 \8 \ - ;; Cancelled - restore saved data
# f0 l! L) p/ c4 D* e$ {0 }! E+ U - ((= dialog-state 0) (reset))
- ` q$ o- H% s7 o) K7 @! j - ;; OK - save new data
+ ^. \# R- E; ?) n( `/ g4 f% h - ((= dialog-state 1) (modify_mtext))
6 T* b# n, F! _6 Q8 j - ;; Pick new insertion point
) ]. V7 f/ l3 f9 [. ?' M# r0 A) M - ((= dialog-state 3)
, w9 `+ N$ \ [% m - (modify_mtext)) Z8 q& d( S3 L* o% D5 c7 m4 }
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))6 G0 y" S. `8 N: u
- (ver_pt1 0)
( h) d( [3 [7 C; l. _6 ^, C - (ddmtext)' l3 [; J& X/ {
- )3 q* K( R# ]" ~3 n% |& [
- ;; Run full editor
$ H# Q* L& n- h; ~8 T - ((= dialog-state 4)6 a+ d. d! i8 a7 m2 t2 E
- (modify_mtext)- x2 h' q+ f) i
- (safe_ddedit ename)! i. A8 ^7 A3 Y# ?
- (setq elist (entget ename))6 f) k7 Z) r9 `2 D5 u8 ]& ]
- (ddmtext) s8 A& n4 I8 d/ s, b" \
- )
. V* U$ G2 `6 _ P0 i6 J* U! X+ n - (T nil)
: { z5 u( L3 y$ v3 `6 M, \. K - )
$ g) R) j: n' J/ a$ J+ e- D - )
# x! S/ ~ u! J$ l8 b, t
/ B7 h/ E& Y7 Y* Q- ;;
" N4 Y, ]+ y1 S3 x% P2 h - ;; Modify VIEWPORT
* M# B" i; |% r* M1 u: w - ;;6 U! C* T* X4 _! n0 O8 \
- " }# E2 {, I7 r: }( O# A
- (defun ddvport ()
7 E+ c) W; c& B2 G - (if (not (new_dialog "ddvport" dcl_id)) (exit))- @: v4 f: `/ m5 Z1 x" [4 T
- (set_tile_props)
8 r1 T' w7 j1 k - (set_tile_handle)
) H4 X/ f/ w" H# U0 H - (setq vpt (cdr (assoc 10 elist)))3 U* a9 z+ w# _% }- J
- (set_tile "xtext" (rtos (setq x1 (car vpt))))' q; x0 P4 \3 _
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
; ?0 I. U& l' N& V. y+ i - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
# w5 T5 t% p3 E X - (setq wid (cdr (assoc 40 elist)))
i/ X1 ?9 k/ {. f: d% I - (set_tile "wid" (rtos wid))
7 Q1 W1 f7 ~1 p; M( J1 ^ - (setq hght (cdr (assoc 41 elist)))
! t0 x8 c2 R* k- X# c5 H - (set_tile "hght" (rtos hght))
' f) O- e8 p& C% |* R - (setq vpid (cdr (assoc 69 elist))), ?, S1 f" E* \* Z$ r
- (set_tile "vpid" (itoa vpid))
" |! F1 j1 Z: b( R( S0 h - (setq on-off (cdr (assoc 68 elist)))- c9 p0 N, g% m) R
- (cond
( u; F3 p E) t4 Y - ((= on-off 0) (set_tile "on-off" "OFF")), N, q! T+ S$ ~; o4 z, X0 M3 N$ ~
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
: P, m# e' {$ \ - (T (set_tile "on-off" "ON and Inactive"))7 A( }( K. y& L9 @ ^
- )
. [* a5 O# O% D! f Q1 z+ a) i
2 M$ v0 O; Y4 p' z+ Y, }7 m" o+ {- ;; Define action for tiles
) Q4 j& b0 q9 }& J2 _, n - (set_action_tiles)9 J3 C; a( g$ C! `
0 B! s) N; u( u/ r6 l- (setq dialog-state (start_dialog))0 t" J+ C+ H2 ^$ {( c
- (if (= dialog-state 0)
: R* E2 ]7 L" e; g6 M/ d - (reset), P9 v# ?2 O$ `0 P: Q5 @2 Y2 |; F
- )
. P+ ]0 }3 W+ T - (if (= dialog-state 1)" Q1 w {) |. m% d4 @
- (progn
6 p- V, k& \9 ]# k/ {/ V8 J - (if (= ecolor 0) (setq ecolor "BYBLOCK"))6 @* r& X/ J8 _' @
- (if (= ecolor 256) (setq ecolor "BYLAYER"))
7 H) \+ h4 f+ }* r: \9 ^! y& y - (command "_.chprop" ename ""
7 m7 n$ U6 q- S& @7 ~) s0 f$ e - "_la" elayer
& _- n3 ?1 P2 p! ` D - "_c" ecolor ""
$ ?0 H! i, l" o: c; I - )
) b; K: F7 p- m5 _$ q - )
7 y" F1 Q* o/ Y$ F: {3 A+ @ - )/ w9 r: x0 O' b& f0 |
- )
% p/ z; P9 }( H/ c. o% H) c3 ` - ;;
2 R: ?( j7 {/ t) D - ;; Modify POLYLINE4 Y" q5 U/ S+ V9 v' P* ]
- ;;
/ D4 H0 [0 e8 d6 @+ T/ b2 ~& ?1 d - (defun modify_polyline (); V: q3 c, ^4 D
- (modify_properties)! n0 R& K3 Z4 w/ X: U
- (if (= ltgen "1")- v4 z7 }- `3 a* T
- (if (/= (logand bit70 128) 128), k, l- x0 S9 ]/ x1 R4 M& R& K+ i
- (setq bit70 (+ bit70 128))
- Z. i3 y/ C$ y$ b7 z - )) e) _: e. a' [( v6 i
- )
8 Z! N5 J3 v. ? - (if (= ltgen "0")
0 ~- P! i1 ^" F9 N: S - (if (= (logand bit70 128) 128)) C7 q! r/ A/ H. C
- (setq bit70 (- bit70 128))
+ i! S- x& B- a4 g - )6 o! a0 Q! @, j8 T2 C
- )
4 Z& M% z! k6 M - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))5 m, r, c" u+ ^% Z% c
- (entmod elist)2 t+ A& z1 Z* Y0 ]! S5 P9 h& _
- ;; Added to take care of updating Vertex information for color
! D+ ]- }. \+ k0 R - ;; and linetype.
7 D- u/ q. c0 y$ W( i2 y e - (setq save-ename ename save-elist elist)
% F) a5 Y0 s+ A - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
0 a2 K! S! C: j. \5 c& d - (progn
% k" A- M9 K6 q3 N' p" P- d1 {8 q. I - (emod ecolor 62)
* j" g4 \! H% P& c0 J - (emod eltype 6)
9 g! K8 |5 p5 i% g2 G - (emod eltscale 48)
0 [# ?# R# ^% C( Q9 l - (entmod elist)
$ N( G, h) L" J: x- y2 _& `9 } - )
- Q I! }3 E, x* i - (progn1 ?+ N# A/ T5 |8 K B$ [
- (setq ename (entnext save-ename))6 k) s! J0 u$ S9 M. L, @' h# u
- (setq elist (entget ename))
; x* T+ W. w/ v0 C; _* g/ I - " ~- B8 \1 D' u6 Y
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
( }5 t5 J$ t) e9 c - (emod ecolor 62)
- d) U. Y6 h3 z4 ~5 q7 X - (emod eltype 6)4 ?2 I) m3 k/ ?, Y7 w4 i& N
- (emod eltscale 48)- q% ?4 l4 g @+ e
- (entmod elist)
v' ?) @' g4 T! r8 ^( p, }; T) L - (setq ename (entnext ename))
* j T$ h+ J1 z+ R5 J" E - (setq elist (entget ename))/ a5 f2 o5 v) R9 B' z7 O/ Z- M
- )
. E$ L8 r/ t e# \. V6 N( U - )
9 { d m4 _: h - )2 @$ U8 _4 X6 L, Y' X ?# H
- ;; Update the SEQEND. A. O8 ?) d% H! P! s9 @* C4 U
- (if (= (cdr (assoc 0 elist)) "SEQEND")9 `, Q2 N+ |# k! j
- (progn
5 ~3 G$ t& B: V M6 f4 ] - (emod ecolor 62)( D2 ^, W. ]% F( u$ p: N ^
- (emod eltype 6)
8 K. N- i$ L: s. i7 W0 d - (emod eltscale 48)9 p9 V/ r+ c% i$ g' V6 j4 ^" }: j6 b
- (entmod elist), s4 i* U5 x% c8 \8 o U
- )) N ~# L. b% U' G
- )% A1 _2 Z* R5 n$ X
- ;; Go back to header.
% k" r6 F3 G9 h+ C4 {4 G - (setq ename save-ename elist save-elist)
, s) P, {. C2 D' z& D( H
: {4 ~. y% A! A+ n9 o- (entupd ename); H4 r3 y! c2 |8 ]: a
- )
- C; l* C6 r0 N+ U% M3 i, b# t+ o8 }( a3 W - ; J& I& B# j1 \9 k4 i! c D
- ;; Increment vertex. Set tile values to next vertex0 Z1 U2 ]8 d' a' M9 R! g. t& i
- ;;
& k2 \, M# B8 s3 [+ g - (defun next_vertex ()6 d! [! i& j1 h6 w o% C$ P
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")& a/ ?" H$ r; F/ H6 n
- (progn
8 X, f9 [9 ~. a6 Y. ?# _! T - ;; If the counter reaches the number of vertices,8 _5 k1 S9 E* E
- ;; roll it over to zero again.
# ?1 w5 T9 P% |5 N" }0 y7 m5 J - (if (= ctr (cdr (assoc 90 vlist)))) {! g8 ]5 T: v5 j1 B; v
- (setq ctr 0)
( J- s7 e" {+ m$ B - )+ G) {2 A6 j/ r5 T' K5 `+ z2 Q/ K/ N+ c
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
, S2 l9 [7 c- H; y# [- V - (set_tile_vpt pointype)2 s/ u9 |) D3 {2 q0 o
- )% m7 l) f2 K: O o- g( H
- (progn( o# W3 I! r/ i. n
- (setq vname (entnext vname))
+ `9 t) z- O( Q# N( H5 M - (setq vlist (entget vname))" U, Z' b5 ^& M4 y
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
: Q+ c" C' J* y* |( ^ - (progn
* R j9 |# ]% C" _ - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))9 \2 f9 M: L; X; u- z6 D& K. U
- (set_tile_vpt pointype)
' V9 I( T* A0 p4 K8 a - )
4 Q: J; |+ ?0 M% @ - (progn
g ^ D- s+ B& e - (setq vname (entnext ename))6 K8 |/ K0 O' [% J6 h
- (setq vlist (entget vname))% D3 W% B& y, ?0 z* m4 N4 g1 n
- (set_tile_vpt pointype)) `& N. V" \. R- h5 \" J& {& S
- (set_tile "ctr" (itoa (setq ctr 1))): n* r9 t1 R! u& P9 _7 [
- )
! H/ v! b% x$ y9 `& l - )/ [: J2 d, o+ j# E+ d# @1 a
- )% { }6 Z9 ?. _9 v" h$ v7 n
- )
6 T- b! z! L: q; ^, k( o& M- ] - )
* |# _3 `; [* a2 L9 P - 6 o& ]8 ]. I) k
- (defun ddpline (/ oldecho)
: @ l) v9 M* \' _8 a$ j. l3 r5 x - (if (not (new_dialog "ddpline" dcl_id)) (exit))" x4 V. h% `! S7 Q3 P" B
- (set_tile_props)
) I, i+ ?' s( M8 u2 H - (set_tile_handle)
9 a' f4 \& b- g ] - (setq bit70 (cdr (assoc 70 elist)))
4 h! K8 Y) [# l0 j - (setq bit75 (cdr (assoc 75 elist)))& V7 A3 W( q7 a: g
- (cond
& f+ L5 J. D* q - ((= (logand bit70 8) 8) ; 3DPOLY. Y8 i e0 l, x
- (set_tile "ptype" (setq pltype "3D polyline")); `8 O2 D; R. J% n/ @
- (setq pointype 0) ; WCS or ECS point values
0 E& l6 f; c% F5 v - (mode_tile "fit" 1)5 q2 k, T3 a9 ~
- (mode_tile "mesh" 1)7 O! G3 H$ p1 f/ J7 D8 _; |
- (mode_tile "bezier" 1)
0 U p4 N ~, Y( C6 }5 T t4 V( u - (mode_tile "ltgen" 1)
# U# l' D' t: L - (set_tile "none" "1")
+ l6 }9 [0 i2 I0 }" f - (set_tile_closed)
0 l! ]! N! [/ O) ?, a7 E1 \ - (set_tile_fitsmooth)
3 v4 N) H: ^; a' F - )8 I3 ~3 k% J7 c! W7 \
- ((= (logand bit70 16) 16) ; 3DMESH
( d: l) i: N5 d; k - (set_tile "ptype" (setq pltype "3D mesh"))
) h. I' B! ?9 \& ] - (setq pointype 0)* g9 j1 A4 j( Q. J
- (mode_tile "pline" 1)
; d+ O( W+ s0 \( v4 w% v4 g - (mode_tile "fit" 1)/ e3 L. S9 [( b! V( e' z
- (mode_tile "ltgen" 1)
7 _5 R! a* w$ w# m# X$ ] - (setq m (1- (cdr (assoc 71 elist))))
+ K1 `8 V, s8 a2 N1 z - (setq n (1-(cdr (assoc 72 elist))))9 O3 p' A7 u$ u% o( y
- (setq u (1- (cdr (assoc 73 elist))))
) ~# X/ e* {" ]6 R+ m' ?; F9 {2 m - (if (< u 0) (setq u 0))3 ]. k9 _5 M! z9 J) j
- (setq v (1- (cdr (assoc 74 elist))))
6 C3 J/ _; m3 w! F - (if (< v 0) (setq v 0))+ ?+ c# x2 ~* x& b. J
- (set_tile "m" (itoa m))1 T K3 Q3 T& G! V
- (set_tile "n" (itoa n))
( j/ T8 t2 E5 {4 ? - (set_tile "u" (itoa u))( Y+ v5 L: ~ A$ p. y* r
- (set_tile "v" (itoa v))9 _$ b% W) x5 A* M3 N- c D
- (set_tile_closed)
, i. B; P/ v; N' x1 v, N1 S - (set_tile_fitsmooth)
0 n0 J* {4 w$ Z3 j3 y2 p - )
+ B+ G( W8 p. o4 K& Q# o1 L, H+ q - ((= (logand bit70 64) 64) ; POLYFACE MESH
* V8 Y0 @7 J$ u- d. {1 u - (set_tile "ptype" (setq pltype "Polyface mesh"))
7 L- u B$ o' j4 ]( Y - (setq pointype 0)
. w1 s/ y+ s; H+ P1 D$ b) G R+ J. \9 q, r - (mode_tile "f-s" 1)
, A1 v( g# a" `7 |7 u' w3 y - (mode_tile "mesh" 1)/ t# V' j* I3 m- T+ A( P6 y+ J
- (mode_tile "pline" 1)/ x- m7 W' s$ T8 y
- )0 Z1 X) s/ }8 }8 h+ _' o1 v
- (T ; 2D POLYLINE0 t3 }9 u/ }8 _. d% f+ L) w- Z8 C5 ^
- (set_tile "ptype" (setq pltype "2D polyline"))
+ e. F9 P5 m! ` ^$ @! y! ` - (setq pointype 1)7 J( a7 P# B' D" P. L
- (mode_tile "bezier" 1)
" v* j$ f* k4 I) C) L - (mode_tile "mesh" 1)
& {/ l+ U4 D) y5 x7 v2 L# K - (if (= (logand bit70 128) 128)9 ]) M0 G4 O8 x1 G, h; Y( `
- (set_tile "ltgen" (setq ltgen "1"))
4 N2 G9 g. R! G z$ E+ [- ~ - )
$ M: W* R! P! H5 [" S% Q - (set_tile_closed)
, i# R$ F% m% r9 q9 J3 X* M) r X - (set_tile_fitsmooth)
M' b4 P+ L U+ Q% _& Q - )
9 ^7 ]! c: s: j! {+ _ - )* C4 }6 U, x! d1 O
- 9 j+ W, `: Q! |+ t/ V. @' t" c
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")" d" r1 Z$ c) `5 H, y6 T
- (progn
- m$ N' I5 r3 j0 b - (if (not next) (setq vname ename))
) c% ~- Y( Q. V* u3 Q7 G - (setq next T)( y, D. `2 |$ }$ K, X
- (set_tile "ctr" (itoa (setq ctr 1)))
. t) G- K0 j) c8 S; z) Z( _ - (setq vlist (entget ename))
, H- X$ J6 O. n( j6 S - )
! i1 v/ r& L1 q- G0 Q9 s& I - (progn
% h" n( E9 `; z" B8 x3 S) Z4 _( W p* D - (if (not next) (setq vname (entnext ename)))
7 o0 ~1 |9 i# h+ t - (setq next T)
6 I7 U+ a% x9 _% [3 U; J7 w( V - (set_tile "ctr" (itoa (setq ctr 1)))
* D+ A* W/ m; F _+ M3 k - (setq vlist (entget vname))
/ e$ s- p8 W; q- [; D - )/ B5 {0 n/ z8 I) K
- ), a) d$ F6 s% Q* r! R
- (set_tile_vpt pointype)
3 B4 C* u9 r0 U- p1 R/ T - ;; Define action for tiles
/ u5 ^2 \; x( a# \: {" E' {; D0 I - (set_action_tiles)
' z: n. {9 ?9 {. Y0 a - (setq dialog-state (start_dialog))
, H0 G1 A. {, I" _- M/ R3 s5 E0 J - & V) p3 [+ ?6 z" X" f8 u. U& ~8 A
- (if (= dialog-state 0)7 N$ x; o+ o1 y; \, g; N5 N% i
- (reset)
7 t+ e" h% @. Q8 _+ Q: L6 o3 g - ); @3 T% \& x- }' h8 e) H
- (if (= dialog-state 1)' ~8 |* R5 |+ i j5 Q
- (progn
9 H, |7 s7 Q3 R- s: Q - (modify_polyline)
( Y0 C% `* N: K' ~$ q/ e/ ^ - (if (or (= pltype "2D polyline")9 u9 ~( ^4 p4 i& j+ u" X4 R) q3 J
- (= pltype "3D polyline")% I- f9 y+ s U D7 C+ {
- )
- O/ x: h) U3 D- c: Y9 p t - (progn# i3 Z7 E- v+ @8 B; A% x; [& ]
- (command "_.pedit" ename)7 Z/ j: h: i* N- Z1 ]) g
- (if (= spltype 0) (command "_d"))
! c6 ]/ p, L! ~+ E - (if (= spltype 1) (command "_f"))1 I. t0 m2 A2 S
- (if (or (= spltype 5); p; h/ H9 J! R& o
- (= spltype 6)/ C( t) n- ` V. e8 N9 d
- )
) C \4 c p( K) l+ H - (progn* W, g! @9 I) `
- (setvar "splinetype" spltype)
' R; e9 E. f$ H0 G! r( X( t! m& { - (command "_s")
" f* w# ?+ ~4 c ? - ) V4 j u; L7 W' ] l
- )
: s5 L4 m* L* z! ?2 d - (if (= closed "0")
/ {4 k4 L' K8 w# C8 b - (command "_o")+ D! I3 b# f1 Y
- (command "_c"), z7 b1 F; n, X
- ); i2 F" X! n. s1 _7 T5 o: P5 H
- (command "")9 Q) E' A/ w7 v: n$ ]
- . n3 I! L2 B$ {- Q- m
- (if (= spltype 0)* |1 i% D' F. D
- (progn9 ~* \/ J+ p* {+ u
- (setq oldecho (getvar "cmdecho"))9 Q! i6 z9 x) ^: c) U! P
- (command "_cmdecho" 0)
4 e" L8 x) X6 V: h - (command "_convertpoly" "_light" ename "")
% i& R! F' ?* f" I; w - (command "_cmdecho" oldecho)- Z( T4 ]: } R
- )
/ ~3 _1 o* { J5 V0 M: X7 ? - ). |9 N6 I" B/ a/ E3 ~/ j1 }, P
- )9 `0 h4 {4 I/ J) M5 ~
- )
( [) W% ^/ |/ T% N, ` - (if (= pltype "3D mesh")$ Z* j4 E+ @ Q% `& U# a( ^
- (progn
) n" T& f% J: h0 v4 I$ t# u - (command "_.pedit" ename)
# z n. Q6 P8 P7 m - (if (= spltype 0) (command "_d"))' l+ A9 Z" T4 M% D4 R5 P
- (if (or (= spltype 5)
4 g N& ?- `" g; h# T e - (= spltype 6) E% r' B$ z# q I: O2 l+ B# _; d: e
- (= spltype 8)
, l4 w$ v+ ?0 a& m9 [ - )
4 O1 V5 U. D! y. T" X - (progn
+ m3 Q# C1 V) t; L/ q - (setvar "surftype" spltype)
: G0 V1 K: u; \ - (setvar "surfu" u)' l V& Q7 s' {; {3 c$ \* h
- (setvar "surfv" v)
u8 Y p% a6 j5 F" P* e" I; Y. T" R - (command "_s")
6 v t0 G& f7 o4 } - )
# L. c9 y" y" j/ L1 |& d1 S - )
/ a( E9 n& |% o3 [( i - (if (/= closedm old-closedm)' n2 P% d, H8 s4 @4 E7 ^3 G
- (command "_m"). {2 @, R: C! E- n h+ }) `
- ). v; H# Q5 P2 {5 s
- (if (/= closedn old-closedn)" e2 B7 X, ]8 n) B7 q6 ?$ A. L; r0 S/ q
- (command "_n")0 u& {7 H9 c) L' G
- )
% t3 N0 s! Y4 Y& x6 r - (command "")
/ d. \* P7 o: ]5 X - )4 k$ M" ]# M+ p& ]
- )
1 v8 H4 J4 q; W1 i$ @5 A: y: B - ): t) R' Y0 j9 q. l! F5 P; `
- )3 J' y* t! _$ l7 D! O- [
- )
! Y$ I- q) ]% p0 `& O' W - ;;% t8 g% Q$ ^8 s' V* B+ u2 f9 H' K
- ;; All the spline data is contained in a single elist. We must do some3 O u+ V2 r! x+ G2 l* D+ v' g/ u2 m
- ;; tricky list processing to loop through the elist in order to display
9 P/ i' N8 Q5 B. X. M! H( x( b, z - ;; all of the control points.
6 b; |1 N3 G' ] - ;;8 m* y" Q4 V. Q" C
- ;; The structure of the elist is different for rational and non-rational
9 {* w" F! e! J0 D+ W" ?& v - ;; splines. Therefore, we check the rational spline flag.1 n( D/ W. i+ [
- ;;
% _& }9 N, Z- u% h. z - (defun next_cntl_pt ()) ]. ~# m" E S7 V
- (setq elem-no 0) ;; elem-no = element counter
+ S' R7 E: Q4 a6 Y9 I' ^ - (if (= first-10-time 1) ;; If first time, find location of first" J1 [& O+ R( `1 E
- (foreach list_item elist ;; cntl point element in elist) o1 o3 w& J- q
- (progn
3 Q1 u: k x+ Q, h) W/ r; B4 M3 F - (setq elem-no (+ 1 elem-no))
: T5 P9 H; `( f- ?& ]. R1 u - (if (= (car list_item) 10)
" G/ r8 p5 a/ S; a( N" v) h7 l. O - (progn
1 M- v# W$ \* P3 |. y3 [ - (if (= first-10-time 1)& Z% Q9 g$ i" Z0 e. ^
- (progn
! W( `2 I2 m' F8 `6 Q0 t - (setq first-10-rec (- elem-no 1))+ U! a3 d! T/ L
- (setq first-10-time 0)+ D/ W/ _0 v% R$ q2 T
- (if (= rational_spl_flag 1) ;; if rational/ n/ Z8 |/ B7 B) W- P# Y o3 Y
- (setq cur-10-rec (+ elem-no 1))
1 A* M, ?! r+ h2 X% c - (setq cur-10-rec elem-no)- a7 { ~/ [3 I) Y$ A( J% |
- )
: ^9 l" x+ F9 u `+ r9 d - )# q3 f0 p6 d- u! y% E
- )
8 s( z+ {8 S& @: ~; t Q% F - ), @3 d. Y' F5 m4 q+ p/ Z) L
- )) U' _2 N" Q, [/ Q. z
- )- Y% w" ]2 V. R# k" ] [; O3 z
- ); z$ c- E; v: _# u. h5 m {4 o
- )- f: w+ C* Y9 w7 S5 R q& C7 T
- ;; Now we know the location of the first "10" record; it's stored
( ^2 _. v1 K, H8 b; \ - ;; in first-10-rec. The first 10 record was already displayed when
) v" q( j9 a# P- l: d - ;; the dialog first came up so let's display the second one when3 `1 g: u8 ?, A" V) f# B
- ;; the user presses the "next" button (the first time through).7 G2 C/ `) A& Z0 F+ v
- ;;* F( s) W* ], L; }7 D( W3 T
- (setq temprec (nth cur-10-rec elist))5 g: \" Z- C! c
- ;;: I& ]8 [; |6 w
- (if (= (car temprec) 10) ;; if 10 record
( |6 D: r" h+ X& B; q - (progn
3 \, ~- Z K+ s4 r3 _ - (if (= rational_spl_flag 1) ;; if rational spline
& ?' S& R) g3 B: O$ J2 O7 _ - (progn
7 e% z7 S& x' l: ?0 l( G# l - (setq tempweight (nth (+ cur-10-rec 1) elist))
G( h8 Z% J% N - (setq cur-10-rec (+ 2 cur-10-rec))2 ?7 I/ ^: s* ~# H! {* B
- )
' ]0 |4 a5 U, v4 L; D. h4 \ - (progn ;; else
! y4 H* ?8 F. Q0 C8 p% i: Q' D - (setq cur-10-rec (+ 1 cur-10-rec))
6 P& L: s3 d3 c - )# z. O5 z, z! @' n; {8 k6 Q4 ~8 h1 u* w
- )
: n! T2 x* `# D& s - ) ;; end if rational spline; C2 N. c& u! y
- (progn ;; else reset counters
A0 ]& n4 P" Y! a/ O - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec) o0 u/ p: i8 F/ X( S9 b
- (setq tempweight (nth (+ first-10-rec 1) elist))
* |- E# ~3 a( \' j' J8 O - (setq cntl-pt-indicator 0)
9 P9 @4 F& P% g* H* V - (if (= rational_spl_flag 1) ;; if rational
+ ^- L U% Q: W; P& I7 `& j" I - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
& C5 \; x# ?0 T8 g - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec6 y( K) o1 B/ i7 {4 J7 O
- )2 k1 W6 o2 K h0 @
- )
5 V1 U8 M% |7 ?5 j! e6 ?, a& e4 S - ) ;; end if 10 record
0 Y) y' B5 O8 g9 e
B% ~! @( ?" _6 e* Z- ;; Display cntl point, weight and ctr. Increment ctr. @; U8 _/ c% d( F" f! V) K
- (setq cntl-pt (cdr temprec))
' p9 q3 l$ ^; l+ F - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))) U0 i) _/ B# U5 B
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))- s. l! S6 Q4 c* {2 E* i
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt)))) v' _2 M3 Z) Z! u- h; q
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))9 G1 K( E5 m, u q' l, R# I/ T
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))7 g! S$ F5 I2 O; H4 P
- (if (= rational_spl_flag 1) ;; if rational! P1 x/ N$ T2 s0 l2 `7 f% h
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght' y6 B q" O& M! w/ J
- (mode_tile "weight_text" 1) ;; disable wght
4 c+ k% G; A- z9 J. {; e. K - )7 Y+ ~% s) _/ P m( ]5 u
- )
' h5 a/ A3 C) Q5 n - ;;
- T) M% y& Q+ |3 H# a5 r2 W$ Y - ;; All the spline info is contained in a single elist. We must do some( a+ q2 r$ Q! g, Q& I0 i& j: \( q
- ;; tricky list processing to loop through the elist in order to display8 [5 y6 r4 H; z; p) w+ Y; E( f, g
- ;; all of the user data points.
. }0 @( |; `* e1 a: |9 z2 s - ;;
3 v4 U( g! Z% n5 a3 p( ]$ S) X - (defun next_data_pt ()- @! F4 j; ?. i/ C3 |5 R- \5 o+ ?& g
- (setq elem-no 0) ;; elem-no = element counter
( e* ?+ m# ?$ C% s - (if (= first-11-time 1) ;; If first time, find location of first
! G7 ^# R8 k" ]/ j - (foreach list_item elist ;; data point element in elist
/ A" H+ p: |) y. B: o0 @1 C - (progn: R: b& E* P# ]" N5 s
- (setq elem-no (+ 1 elem-no))
; G, g; a% s" Z m8 s/ f - (if (= (car list_item) 11)
2 u" M# @9 ]8 Q" h4 Y( a6 E& W8 p - (progn1 b! S( t: I# w5 A& p0 x
- (if (= first-11-time 1)1 V8 U& r ]9 {# A! c* [0 v
- (progn0 W# S4 U) n% g' |
- (setq first-11-rec (- elem-no 1))
1 `! i8 }; d5 ~% ^1 d - (setq cur-11-rec elem-no)
0 Y$ a% T- i1 C K - (setq first-11-time 0)
4 W I& }( W) w7 ]1 D+ z - )
7 D' k8 u1 D W) L6 |, c - )2 Q% R0 t% g+ w/ }/ ^: L/ y; o
- )
! s3 U9 k: U% V1 @ - )
$ H" u( l0 J9 n2 P8 e% H - )& V6 F Y3 s9 P' m! g+ d3 \6 V
- )6 P) t1 K; Q# D) t
- ). W# b! W3 Q. ?! N- c
- (setq temprec (nth cur-11-rec elist)), F: _9 _+ E/ I2 Z+ u
- ;; If it's not a DXF "11" element then we've gone past the last( M- R+ j& B9 i+ N. H" X# w* ~& Y
- ;; "11" element. Go back to first "11" element. Reset counters.
2 h1 O8 x% A, w1 u) @ - (if (= (car temprec) 11) o, p& ?" j# N- J1 a
- (setq data-pt (cdr temprec))3 T( p5 g' |2 `& j; q' O* @
- (progn ;; else
& E# c6 J+ E! H. {/ _, B - (setq data-pt (cdr (nth first-11-rec elist)))/ W& v& o' Y! Y! [" g' p' F
- (setq cur-11-rec first-11-rec)
) v, n* h% I6 m6 E$ I/ { - (setq data-pt-indicator 0)3 I) w8 s$ H; f k- [0 z' a
- ); ?, y! x) |) e* D. j' I
- )3 }5 N1 g/ L' n5 m7 _9 m
- ;; Display data point and ctr. Increment counters.
+ M I% ?; x% S$ A$ N8 h - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
' P+ L" n4 {9 p5 r4 Y. ]- ? - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))& i' ]; J( y) w
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))% C: o/ Z2 P" ?" S# Q1 _* i. Y) O2 I
- (setq data-pt-indicator (+ 1 data-pt-indicator))
- e8 I- n7 q) n9 c5 @$ c4 e - (set_tile "data_ctr" (itoa data-pt-indicator))% m q( h/ s8 q: E( q" e2 W5 j9 y
- (setq cur-11-rec (+ 1 cur-11-rec))
4 J- h) C8 |' ^6 e9 p - )
& G1 G0 |; T- W0 V - ;;
$ [2 B: l5 E7 ]+ \- } - ;; Modify SPLINE3 \* J5 `6 [3 {5 |0 ^8 @2 ^+ n
- ;;
& b& s& E' q$ d - (defun modify_spline ()
, U, a# F( Q& l- E9 j) q% T! ] - (modify_prop_geom)2 M: p1 L" e5 `+ Y* ~
- (entmod elist)
) x8 r4 \# G/ j4 k2 q) F - )7 h' H! ]9 o2 e9 ?
- & Q Q ?# ]7 W! X3 V
- (defun ddspline ()/ j5 y p4 M# Q, s
- (if (not (new_dialog "ddspline" dcl_id)) (exit))4 F( P% |- U- h* Q. w
- (set_tile_props)
4 P+ d0 L, B9 ]) P1 d6 t# M - (set_tile_handle)' B7 A+ T) q2 K
- (set_tile_spline_props)
: T! ]% b( z6 H! }0 l. ]: G7 m9 G - ;; Display first control point4 {+ ~( N8 q! N# S1 J' k' ^- i; B
- (set_tile_cntl_pt)
- ^1 j$ Y& l( | - ;; Display first data point
: r3 |% f# k9 m- X0 { u - (set_tile_data_pt)0 ~1 e) g3 j4 ~0 z
- ( v- g! X8 q& e; {. p! n1 h" e
- ;; Initialize flags to indicate first time through the dialog.
& }( @: l5 w4 n7 z - ;; For control points and user data points the "next" buttons9 p! I# K; V+ ]$ D3 e5 z* _
- ;; in the dialog call the appropriate functions.
5 V6 q5 C: ~+ I+ v. G - (setq first-10-time 1)
) h7 A8 M' ]# @' b+ U9 @8 D - (setq first-11-time 1)
" G6 H- k- a5 i - ;; initialize control point number counter e* t, g' I+ V; r5 S0 O
- (setq cntl-pt-indicator 1)8 r/ f* H: ~' w* D3 ^
- (setq data-pt-indicator 1)% t; X/ ~# n( u! K
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
& H0 f8 p' S @, ]* s }4 C - (set_tile "data_ctr" (itoa data-pt-indicator)); M6 U4 a+ L; a }: y ]1 X& |
- (set_action_tiles)
6 _5 k; k8 t' a8 L# ]/ U, A - (setq dialog-state (start_dialog))3 X y5 Z9 E/ ?1 R- V" E3 P; W
2 p) T3 a9 V" e/ ]% h2 N5 q- (if (= dialog-state 0)$ N# U: S5 G- M) W0 J3 D
- (reset)
2 U! a7 ?: r3 q& h% g) D - )% z. Q2 v. y8 s& i( }$ f* d( y
- (if (= dialog-state 1)- g C' m( p% ~# _: ^ z- R) u: c
- (modify_spline)2 a6 r$ a' m5 l
- )2 V; ~( B1 C. Y) @" x1 i% i3 ^
- )+ _" a1 U& D s: m9 z
0 d4 M/ ~. L6 u, s0 E' D, Y- ;;8 v( a- I2 d: b, {8 l& d: D
- ;; Modify DIMENSION A$ f' [1 e$ ]$ j" S% q% c9 ~8 E; T
- ;;
; i" H+ S! D& H6 P - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl5 w* N5 E6 j- C2 [& X) C7 B2 t
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist7 v' K y- A: ?, [% [ C4 ]
- dimtype dimsvcurset)
4 i8 l, U! J6 X+ Q# ^ - (setq dimtype "DDIMEN"! G2 T3 R0 B* V$ q
- dimsvcurset (ddimen_dimsty_restore)
& i4 z$ H* B5 \7 D - ), |, @3 w; r4 q8 ?( \
- (if (not (new_dialog "ddimen" dcl_id)) (exit))
3 p; v3 d7 }9 t7 T9 d1 W7 c; k- B' g+ r - (set_tile_props)# J& ]$ z+ L4 n; U! w8 c: s
- (set_dimen_props)/ x) n; f. N2 K" L
- (setq dimtext (cdr (assoc 1 elist)))
0 L+ Z/ i- F! F7 M: k, B& z - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
/ H0 s: w5 H3 v4 F- r+ H$ H - (set_tile_handle)
+ Z4 d3 r" ]7 A; f# C - ;; Define action for tiles- E2 b4 ?: g! B* x
- (set_action_tiles)0 U2 }5 b5 F" @5 \* Q' \( r
; q( s r" H0 N. Y9 }2 V- ;; Set initial focus to text edit box.
- _1 ^$ Y) x. @ - (mode_tile "t_string" 2)5 x+ `+ H9 x" f
- & X4 l7 |9 C5 @) e' w
- (setq dialog-state (start_dialog))
6 a. E# `4 U( D) A9 X - (if (= dialog-state 0)5 W# n1 k8 t8 {1 w6 ~! P
- (if (= ddimmt 1)* V* [* _: E# D2 s+ ]6 V
- (reset)4 E% L/ C9 Y7 Q; O3 n: u N5 i
- )
! H* A- V- i6 P: I- g - ). B2 q* z* _0 l! k; m/ M) \
- (if (= dialog-state 1)
. K: {) h; |2 H4 A7 t- e - (progn2 w3 t9 R, g4 c7 @+ t+ z6 W
- (if (/= dimsty stname)5 J! _4 m e2 ^
- (progn
9 `( z$ e4 X& I# i. `5 M1 x - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
9 q. D/ \* p# u* `& l6 f - ; doesn't have it.9 ?3 o9 [( R5 t Q) i2 z7 {
- (if (null (assoc 3 elist))9 Q! `% \* F' N8 r3 p
- (setq elist (append elist (list (cons 3 dimsty)))). O0 {( f( ?! @, g4 M
- ; else just replace it.$ s$ h2 L( ]% s: J* u1 R
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
8 b' u% K1 R; G: S) o- x - )
! k/ n% t3 J/ c' a, Z/ R9 _ - ; refresh sv_dvlist with new dimstyle.0 b, j% e, F: E8 W) D3 \
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
# }: G) x) K, j) v0 P0 D6 ~3 k9 ~1 \ - )* z2 U/ \5 P" \: K. d1 q
- )1 E/ f7 w5 d( L: D6 F2 z% H+ t$ R
- (if (not (null dimlist)) ; attempted to change dimvars
4 P0 R& D0 v7 p0 q - (ddimen_complist sv_dvlist dimlist dimtbl)& q( P4 ]4 v% w$ d) B
- )
9 Z6 z! X; R% { - ; Modify dimension text
& d; E9 c( ]$ y - (if (/= dimtext text)
3 |1 S9 i/ }5 @9 O - (progn, K+ `- G- y0 k1 Z! T1 J$ l
- (setq dimtext (if (= text "<>") "" text))
- e' w6 B! ^' m3 L - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))* X$ ?" \4 @6 `2 i4 i3 c( M5 n
- )2 i6 P5 W! a' Q/ g
- )' e& ]# t' X6 {4 S' _
- (modify_properties)
( N5 t, c+ x ?* _ - (entmod elist)
& ?/ [: g7 T6 i. O6 z. i+ V$ b - )% { w9 U4 |8 |7 Q0 C( ?
- )
- U3 J1 c, ?* g; b - (if (= dialog-state 4)
& a7 H; f& q* |2 ?# d - (progn/ B( ?0 j: |! I- P+ K! T0 g
- (setq ddimmt 1)! A, `' g7 K! ^
- (if (/= dimsty stname)
, y6 { D0 g+ w( h* f: A; u; t - (progn5 @' U3 B$ U( O8 X
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
! g( J; d3 z5 Q$ o Y9 \4 Z3 U - ; doesn't have it., g, w5 M6 f7 ?9 [- j1 c" h
- (if (null (assoc 3 elist))+ V0 r+ Q; t! N" e2 p
- (setq elist (append elist (list (cons 3 dimsty))))
' ], K# x( d# w4 Z - ; else just replace it.$ {* k* f7 P# f6 |; E0 f
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))) G2 O2 H- n$ J( W" _: l7 M! \
- )
4 k+ f6 A) w) _ C0 m- E! D; w - ; refresh sv_dvlist with new dimstyle.
& @/ C5 B6 W5 u- P" V - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
4 g5 n( E: `- |, [4 b - )
1 `2 v- m& [, g6 [ N( R - )2 @2 t1 y2 f& v2 W7 V9 l
- (if (not (null dimlist)) ; attempted to change dimvars
& q9 t3 B5 o+ r& `) [3 H/ q% H - (ddimen_complist sv_dvlist dimlist dimtbl), F- ^. T8 M, {! d
- )" z9 ]* b, E- N; s/ h3 {0 C
- ; Modify dimension text
, G* X8 J( f! p* T$ o* v - (if (/= dimtext text)3 _! f$ Y; p8 B! z
- (progn' \6 S* W3 M6 M$ u0 a9 ~ e2 Y
- (setq dimtext (if (= text "<>") "" text))
, O# ^+ H( [: b - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))! }: q# z) y9 |- h# R# r. w! e
- )
2 n& G4 E8 Q. M3 N1 X# } - )
7 O ~2 o# I2 I - (modify_properties)
$ J& D3 T: u' O; U - (entmod elist)
' u- A4 \( X2 _' v) z1 Y - (safe_ddedit ename)
/ o& F0 T, F! R0 r& K9 U - (setq elist (entget ename))
6 ]) F8 Y# i5 z# n9 M E - (ddimen)
& b% \0 u4 E3 s1 N - )
) W& f+ c5 S% S4 l* _5 w - )
6 ]' U3 A6 z* G- a3 q0 w - (ddimen_setvars dimsvcurset) ; Prepare to exit
3 Z+ N! u6 T# i9 y. ~9 e6 B) } - )+ }8 Z7 O1 {* U% s; `: a- N
' _0 V8 a6 P) r; q$ I2 K: ^# E- ;;
; q M- S- ~9 \- l5 A( N5 U - ;; Modify TOLERANCE
/ g8 i# U$ d+ X3 }( ?, f/ ^3 L5 ~5 A# u - ;;0 p4 X( P( F' E `3 s$ q
- (defun ddtolerance (/ a stname n dimtbl. \8 o2 y1 G0 S- O! p% N
- dimsty dimlist dimovr sv_dvlist stlist dimtype
8 B. [7 D0 d- E& h9 R% x& }1 ^ - dimsvcurset)
& q( U% L& J0 I1 W/ n - (setq dimtype "DDTOLERANCE"
* N7 G5 P/ S; s7 B; j - dimsvcurset (ddimen_dimsty_restore), o4 P- [* U3 `& h z
- )
1 X6 y5 L" _4 u: l5 O - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
' u# \, s' x8 b* \/ o - (set_tile_props), h/ |- R# J# h
- (set_dimen_props)% u0 G4 H1 U ^. e( Q7 w' T) q
- (set_tile_handle)
" ~+ S: F- E9 H( O - (set_action_tiles)
0 z9 G6 L' O; b/ f/ m; M - (setq dialog-state (start_dialog))) D, Y' ]3 E5 n% J" L
- (if (= dialog-state 0)
0 E* ?2 e" n8 W3 w - (if (= ddimmt 1)
4 e8 F# G5 r/ W2 i3 h - (reset), X y) b2 \8 @$ G* v8 X# D
- )
7 j/ o/ `5 V* S# `2 H( w7 f. q - )
& ~# g& t6 f& n( N! {! u7 ]* j; a - (if (= dialog-state 1)
- l7 H' h5 C( v5 l6 x6 v6 y0 @- X: A - (progn
! _6 w& h4 O& W- B. X - (if (/= dimsty stname)
, O' F7 d" \$ q/ o0 A - (progn
8 Z6 \) u0 Y# b3 I - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case) B& \) i. k2 e3 w7 \) O. r1 ~
- ; doesn't have it.- ?: e! b5 E% N
- (if (null (assoc 3 elist))( c: Y, j4 Y! R
- (setq elist (append elist (list (cons 3 dimsty))))" {+ h2 ?! ?6 _ f
- ; else just replace it./ T7 `' N% B1 V# R1 v: I. g
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))! K. b# `& y& Q, y1 E) l
- )
2 ^! k! O! K2 P' e/ X - ; refresh sv_dvlist with new dimstyle.
3 ~% g* h* v; G- {* ` - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
# k$ U4 l' w. L/ A) l4 t- z - )& I- ?% A% {+ j! G
- )' d4 ?5 A3 \& b' g" N
- (if (not (null dimlist)) ; attempted to change dimvars* g+ D" G8 T( o) l+ Z0 w2 ?& S$ G
- (ddimen_complist sv_dvlist dimlist dimtbl): |+ t. K3 c& i8 g' X$ Q) g# {
- )0 r. g+ S: a, e9 x, n7 P' W l& D
- (modify_prop_geom)
3 F& Y x' [, t: X1 q( s - (entmod elist)% e: `. W7 h j/ a. z( J
- )
, A4 n r7 A/ B g' u$ g3 M - )
3 J$ ^/ e9 A* c6 P, q - (if (= dialog-state 4)
5 M+ E4 x* @+ b O8 a* p) q - (progn
6 I2 Q5 }2 L5 Q - (setq ddimmt 1)
@1 _! b0 N* O - (if (/= dimsty stname)) ?# }9 \/ f0 e; i3 `7 l
- (progn% r# x2 v% B4 u& y
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case2 H, m! K& w; L+ s# U9 R9 L
- ; doesn't have it.
! r+ J4 ^0 k2 I; y - (if (null (assoc 3 elist))
& z' R3 { n( m& M: ?" z - (setq elist (append elist (list (cons 3 dimsty))))
k: v' X1 S* w2 h+ t$ \ w - ; else just replace it.
0 b+ S1 h$ h, R7 _0 y2 y/ Q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))7 G# f% [# N+ ?8 [6 Q$ A
- )- q( `! r5 S% Q2 A9 A6 d
- ; refresh sv_dvlist with new dimstyle.1 T: ^5 S# f' F. t8 o2 _( [
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
9 P. M' ~/ W* a. s/ M - )% l6 d* j( p7 M( z; r; e' K& u
- )
* e8 Y, Z# d# C5 a6 Z# g" u( b - (if (not (null dimlist)) ; attempted to change dimvars
6 M3 k# R$ S, y/ p5 K7 ? - (ddimen_complist sv_dvlist dimlist dimtbl)
3 w0 I* `. K5 P+ N7 u) Y - )
. s) q8 Z% k. u7 y9 U* `( Y' h/ r - (modify_properties)* [2 E3 z8 o* e; f* E
- (entmod elist)6 L4 g+ K+ W, \( ^9 `* e
- (safe_ddedit ename)' Z! G2 b! t+ @# A
- (setq elist (entget ename))& _5 {* O% k; v3 [* i
- (ddtolerance); F% C) p# h2 B+ M
- )
$ i# @% G$ X9 P - )8 w" V% }- U! @. j; B6 }
- (ddimen_setvars dimsvcurset) ; Prepare to exit v7 o3 u0 K, e7 }* ~$ ~, O' \# f3 ]
- )
& z9 K( W! Z5 D% ~" G - & e3 n' f! r% Z* y- g
- ;;3 K! C* T# O% I4 v0 y3 `
- ;; ddimen_dlg - jump to ADS ddim module
" C. H/ U; s! U$ z" S - ;;9 x: t1 C/ Z! {
- 0 z. k; y8 K0 V
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)6 Y& u3 h# E. E3 B0 T. i8 c5 K$ F
- 9 k( E2 f( R+ W
- ; Jump to DDIM with overrides if any.8 n: D- w8 ^6 Z3 C. Q
- (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry3 }# `5 J4 k5 k% o2 m* I2 {
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
$ ?" K) T1 M' T - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation6 F$ C# X) e$ L/ ~' i( O: G
- )
7 v- n, n' Q/ L- f, G$ D& U - )
/ w0 ]7 R, k5 m; n& v0 f* ?+ v+ V - - Z3 g7 U" F B) \; ~- {
- ;;; Z/ u' U- j( _/ Y2 M4 a
- ;; Dimension variables updated are stored as overrides./ G+ O' H" o+ n" U5 b5 M" K
- ;;
2 e1 {1 u2 u2 K. q! x
, o& o8 t, G/ s3 o- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
# ?! u+ z* h) y+ @- H - dv dime commandIssued)4 _! {& L6 x5 k5 h3 E
; h1 S K6 S+ W: G" w7 c- ; Here we skip the following first three items:4 K. B, {( ?$ |- @7 b
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)$ z6 @: B* \8 T) K& n
- ;
, T( F: S" R" t; h2 y5 G1 \ - ; The list comparison immediately begins with dimvar.( s) E. _. k4 @7 l5 m
- ;1 Y K' a& s1 Z* R3 b c
- ; dimolist - original states of dimvars
0 S: C( }9 K- H7 u3 R+ T - ; dimnlist - new dimvar list which is of the resbuf's7 x! L- D# \$ W' [5 L& \3 W
- ; dime - entity name for the dimension4 N- ^; U$ B/ _8 W5 z# c8 D
- ; odvar - value of dimvar for the dimolist7 {( d# j/ d3 i- u
- ; ndvar - value of dimvar for the dimnlist5 M5 Z' m9 ~% v7 ?
- q& X+ S8 Z4 O- (setq i 3) d7 d# j, O6 i; B1 b* r/ j
- dime (cdr (assoc -1 elist))
1 `+ O F2 X! P4 P - )5 B6 \1 y% N9 k4 J/ d
- (while (setq odvar (cdr (nth i dimolist)))+ v) \) `" A4 U1 K1 O
- (progn" F9 D' O5 ~; @2 m# J, R( X$ {
- (setq ndvar (cdr (nth i dimnlist)))
0 [6 Q* ^6 I. d2 J! d9 { - (setq dv (nth i dimtbl))/ V0 d! c" P1 P7 _# x+ V- t, N
- (if (eq dv "dimtxsty"). Y/ y6 i) Q7 L ~6 Q, R
- (setq odvar (cdr (assoc 2 (entget odvar)))$ x2 E1 x e1 f) J1 {" S5 j
- ndvar (cdr (assoc 2 (entget ndvar)))
% O$ `2 Z2 Z" \$ X* T( p& m - ) ]' n; H/ Y n, r
- )0 h2 X! c, w& p8 x) }
/ z9 v5 d9 u2 ^- C1 j- ;! L# {! w* J3 Q, K! C# A! R
- ; In order for DIMOVERRRIDE to operate correctly with string
$ o) x# H9 P5 |7 B, F( T5 @ - ; based dimvars, we must pass "." versus NULL strings.
' U( @8 v+ ]9 n& m' @7 q - ; In this case ndvar is the new dimvar value the user wishes$ e; P/ I8 I- [
- ; to update on selected dimensions.
5 [' Y1 C _7 c: c - ;
2 |9 h$ q# p: c M& G - (if (/= ndvar odvar)$ t1 s: j4 j& \9 p7 y# ^2 B/ r
- (if (= 'STR (type ndvar))
, M. f( E' ?, N, T; T1 \ - (if (= ndvar "")
. g- |& `$ n7 X& D5 @3 \2 U- r - (setq ndvar "."))))
/ p" ?2 O0 ?$ {8 x - e0 W- y; y' `6 ] G
- (if (/= ndvar odvar)
* G; d' t5 X0 E5 ]( ?5 Y0 j, L - (progn/ f2 n* R( r3 S2 v. k2 R
- (setq dv (strcat "_" dv))
9 j8 h- x' H- Y/ @5 [ O4 u - ;
5 z2 T( o7 g, y7 f' ^7 n6 T6 z - ; Start the dimoverride command
$ C- U6 i. n- g6 ]# x - ;
7 N: |+ ^$ m' {8 X. f- ~ - (if (not commandIssued)
% H7 i8 V! h( f$ X, b9 g7 h - (progn
$ ?# T( t4 Q: \4 x: ] ?2 I - (command "_.dimoverride")
& E5 n' D( S3 m( b - (setq commandIssued "T")
6 |! {; k% S% Q9 g" `5 p - )6 i, G1 i2 H: Q( E8 h& {$ N8 W( O
- )8 f: f, Q! Q8 U& p7 Q" L v9 z* M
- ;+ ^: F% x X$ w7 i7 L
- ; Issue dim overrides
3 D t6 X9 F1 w6 y4 L; Q; f- h0 k6 y - ;4 `- a+ Q, J$ C! ^& M
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))9 Z8 P# y: U8 z/ r# X# s
- (or (= ndvar 0) (= ndvar 256))3 s$ [' f0 _( b Q( D* A0 d" ?4 I
- )- W% D$ u+ g% C' ?/ w G
- (progn
) L6 b/ B- w. D& A/ H5 J' [- l - (if (= 0 ndvar) (command dv "BYBLOCK"))3 n' K( ?4 ^9 V* o
- (if (= 256 ndvar) (command dv "BYLAYER"))8 j1 ~4 L1 y; C
- )
! Q, R) h( u) r3 p! C - (command dv ndvar)- \& f0 E! V6 ^5 T6 O
- )5 O6 }' K, t* @3 P
- )
% `9 Z6 X {9 j3 X" f6 W - )9 ]# B$ o% S. T5 i3 l8 [
- (setq i (1+ i))' A+ I9 U2 w% t# }& S
- )3 A# l o8 \6 o' L
- )" `# @0 z" s1 u0 d; C$ Z
- ;
2 y+ ~0 J' m7 q' T1 i - ; Select Entity and terminate command+ f/ q4 L" N. P U4 _
- ;7 y) _8 C2 x* a; o5 {) ]! [
- (if commandIssued# ^. y( n$ `( p3 O" N ?+ I8 }& _
- (command "" dime "")
+ N% L" q0 i ?7 ?! z - )" z, v! T- w1 }
- )
; @* p* H' v2 Y/ @4 R. Z0 C
" a! y }% t9 m) G; g! x- ;;! L+ f1 t V P# d
- ;; Get style name currently selected style name.( Z- F4 f4 J# \; J% u# x
- ;;" A7 k+ e& h8 V, F, c7 j
2 a* u% }1 M$ p* C! ~# j- (defun ddimen_style (/ dimsty)
0 c. ?& ~. `' I8 p% T' D' h - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)" ^+ X( V6 M! {) @
- dimlist (ddimen_getdimvars dimsty)
6 h! [8 x% `1 F+ b8 T2 v ?, _ - )
! t% m, ^. _# F& _ - dimsty! Q9 ~5 t! Z" t
- ). N- v: |! b9 ?% h5 q
- \3 {' B$ b. C9 e. X' X; d
- ;;3 }. ?" p0 e% p# b" w
- ;; Set dimvars
# p8 ?" x! P; p: [1 O$ X. u - ;;
v3 c; ?' ~/ C! L# ` - (defun ddimen_setvars (dimsvcurset / dv i)8 [+ D# _& ?* |& L
- (setq dv (cdr (nth 1 dimsvcurset)))) h( L$ Y+ [* D& |) J. x
- (command "_.dimstyle" "" dv)4 W3 d( E6 U7 [2 V- E$ }
- (setq i 3)
! N: |7 [5 `. ^% S8 u# ?% ] - (while (setq dv (nth i dimsvcurset))) u) R6 j; r. _/ G6 c; R& }
- (progn
% d x; J' s& H1 ~$ Y$ }3 n3 Y" o - (setvar (car dv) (cdr dv))
/ y: T4 F5 b0 a! ^ - (setq i (1+ i)); q1 E5 T0 J' U1 _2 @0 X
- )
% B7 R% d; W# m, ? - )* r/ A U5 R/ @
- )2 X1 J- u H# u( P2 A: G+ J
- ;;
" V, t7 b/ _5 e; k7 B$ Z4 P - ;; End-of-dimension
7 o% k3 Z' d3 Y! r - ;; ==================
& |$ J3 z \6 A* R1 P" ]. t
( o& @8 R% l2 q' k- q7 M7 X9 z2 _- ;;
+ W) t9 H; r, B9 e6 G - ;; Sub-dialogues for properties. Common to all object dialogues
3 T; A6 Y" X6 `6 a$ r' V3 d& \" K - ;;! F# V! z3 P. ~* H6 |5 b
- ;; This function pops a dialogue box consisting of a list box,image tile, and1 I8 L& Q" x/ s* }
- ;; edit box to allow the user to select or type a color number. It returns8 W' v& v- o3 |" d! w/ d' \
- ;; the color number selected.
, K, d& Q) P' w3 f - (defun getcolor (/ old-idx colorno cname lay_clr)
$ y Q, G2 b4 g9 x0 T3 V - (if (= (get_tile "error") "")
/ l" ~: L! \: T1 @0 u# Z - (progn; M: j5 Y+ c2 i. F9 z9 F
- ;; Get the color associated with this object's layer, for use
A4 y' e9 ~8 W$ s: i' D- E - ;; in the color swatch if the user selects color BYLAYER." G9 u+ L9 ]1 K; n
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
# N! R6 `8 C' P6 G. n# ~4 v+ A - (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
7 G" }3 ?& C$ B. \ @: ]5 g - (progn! v' ]- z# e4 W! @
- (setq ecolor temp_color)
' O( H" ]& e Y+ x# r7 ~, R5 [9 I - (setcolor)
( ~# H5 U. M: F, E+ q) o4 z0 g ] - )
9 T! U6 b; K9 u& E% G - (setq testcolor temp_color)9 ^; [. a" G6 T' L
- )
0 K, X8 d. J3 F/ w- w1 m! L% ?- ]# p - )- E7 _4 | Q J
- )% w/ ^2 R$ w' a. C
- ecolor
0 {' g' C0 F( ^# H/ C+ @/ ^+ T4 E - )8 F7 [" }) I/ I0 M
- ;;) W) y% t" X; F9 S D
- ;; Function to set the color tiles.
$ a) u3 G1 G; t& l- K4 R3 A3 ? - (defun setcolor()8 h! [2 _8 @2 _4 E/ Z I
- (cond
' b6 G; ~8 a' _# N - ((= 0 ecolor)6 U+ {: T4 \$ ~' u- R' T. s
- (set_tile "t_color" "BYBLOCK"), D- `- c6 j9 i8 @0 p. I% X
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
( g5 p* U0 S* V# l6 E7 O - )' ?! G: j+ c: o- f
- ((= 1 ecolor)4 |; i* ^6 k2 A* r6 u8 A& Z% a
- (set_tile "t_color" "1 red")- B# H! ~! F# l5 T- R5 k1 q
- (col_tile "show_image" 1 nil)1 Z7 c6 u4 w6 X
- )( H2 q! O! z9 J# n8 _% V1 @
- ((= 2 ecolor)8 t, }& L% n" ~4 p2 v
- (set_tile "t_color" "2 yellow")
! U9 Z1 z; l) K7 _$ a/ [9 e7 X( N/ a - (col_tile "show_image" 2 nil). n9 x$ T4 c& ]; d
- )
$ O, ^: Q9 G" {& v& ~8 C. L3 H - ((= 3 ecolor)/ c% b* O/ S% [: ], u4 `# l- T
- (set_tile "t_color" "3 green")+ i$ G9 _- v3 y1 A, ^
- (col_tile "show_image" 3 nil)
: z: P. q* ^6 {& T9 \- h" j/ ? - ) b3 I* z3 R6 U& i4 l r! `
- ((= 4 ecolor). P8 X/ n \: }/ n
- (set_tile "t_color" "4 cyan")3 b4 r) P* k* Z( Z {
- (col_tile "show_image" 4 nil)" E6 p# H( p0 q9 O6 I: Y- S& X& D
- )
" J: e( F7 Z% D* k* b d - ((= 5 ecolor)
2 o) C! n7 b4 a' H o3 u9 H5 [ - (set_tile "t_color" "5 blue")5 n4 \# D3 h( \: b
- (col_tile "show_image" 5 nil)7 s* w1 ~) y7 x2 i8 f
- )
! N) F x' k3 i( p. F - ((= 6 ecolor)7 o" h6 j' ~* w- f. L3 ?
- (set_tile "t_color" "6 magenta")* D# `3 V( V* q# z
- (col_tile "show_image" 6 nil)
: _/ r4 p( j7 o - ): b1 E4 |' P2 M g, X9 {
- ((= 7 ecolor)& d$ A/ D5 a8 @" O3 {7 _
- (set_tile "t_color" "7 white")
+ V9 e* ?8 {3 t0 c ? - (col_tile "show_image" 7 nil)
Z0 {. y( {# G$ N! a* K7 B - )7 s) m* A+ r1 \
- ((= 256 ecolor)
; W) b; f- i' I: { - (set_tile "t_color" "BYLAYER")! h) {9 B( v( K9 Y% e( X0 v& g- n
- (col_tile "show_image" (bylayer_col) nil). ]9 l; q _& O! z t
- )$ M8 F# p2 k' T% h
- (T
' b1 E0 K8 ^2 L8 ~- G& | - (set_tile "t_color" (itoa ecolor))
6 h; R% s) s: D' @" d - (col_tile "show_image" ecolor nil)
- G* ?( Z8 j4 ?" V1 B# n3 t# e5 R# A - )
; W3 u6 f* \: X. @: k. S. \ - )
/ s6 r# s( w# I9 Z - )
2 `2 ` ]( @ F s3 A5 M y - ;;
5 n, b. g. s3 d1 Z. D8 t - ;; This function pops a dialogue box consisting of a list box, image tile, and
% ~/ U, Q0 Q2 k7 r; }& j - ;; edit box to allow the user to select or type a linetype. It returns the
: U# X1 U2 X: E6 p" K - ;; linetype selected.
' Z; d7 H, E) o8 G2 A" n0 O: O - ;;
/ m4 R& M6 `( Z$ N! ~ - (defun getltype (/ old-idx ltname)
. w) P6 K, ]+ K' \6 ] - (if (not lt-idx)
6 V1 @# s9 b$ v' ], j" f1 a2 { - (progn
- s1 ^! r w9 F1 V G, Q - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
, z% i5 d$ m- T- K - (cond
" g& m3 H0 I+ t. O6 F - ((= eltype "BYLAYER")9 |/ T# s. P. ^! F+ F
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
8 x' `1 J: q# B F8 i - ((= eltype "BYBLOCK")
$ w3 U& ^4 h* T4 ~ - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))5 J6 _8 r1 x2 ~+ ]
- (T (setq lt-idx (getindex eltype ltnmlst))): k' c" @9 S, e
- )
7 A c, R- |7 k% U2 H' N - )- f8 k7 U/ C0 g: K% z1 B
- ): y$ y1 q) b" E
- 3 ?2 y( Q ~* J
- (if (= (get_tile "error") "")
/ E. \& _1 W/ w* d/ Q$ C - (progn7 ?* @3 M. b! N& E
- (if (not (new_dialog "setltype" dcl_id)) (exit))
0 f" E3 b s9 g. w - (start_list "list_lt")
y' Y! A) ?, B! B3 W' g - (mapcar 'add_list ltnmlst) ; initialize list box: |( w, P5 d5 G; H/ g% H
- (end_list)( m9 l9 C# ?7 O6 o
- (setq old-idx lt-idx)
% n7 q8 U- ~) |' y - (ltlist_act (itoa lt-idx))# S" k. N1 a. S% B! u& U( Y
2 e3 y( x; s8 A- P3 B- {9 j) p- (action_tile "list_lt" "(ltlist_act $value)")2 z3 J/ e) [- |5 ^9 x
- (action_tile "edit_lt" "(ltedit_act $value)")+ @+ z: C% y1 A( [5 S
- (action_tile "accept" "(test_ok)")
S0 c. Z5 e% C$ U' \+ | - (action_tile "cancel" "(reset_lt)")
' h4 A3 q. k& N5 j% C
. F) a1 }$ h* y$ P2 t y7 A- (if (= (start_dialog) 1) ; User pressed OK3 l2 j, h3 M) v% o
- (cond: L4 \- f/ C$ W
- ((= lt-idx 0)
4 Z& j- y6 s8 A( a2 d - (set_tile "t_ltype" (bylayer_lt))7 {6 Q, j( n: s5 _
- "BYLAYER", y" D9 I; }8 |% J) c
- )
; R. @) V" _. u$ _+ j- P/ k7 m" V - ((= lt-idx 1)
$ F( V- k/ f. Q - (set_tile "t_ltype" "BYBLOCK")( G6 @( c# w7 y2 _" y8 J" z
- "BYBLOCK"
* p$ y7 u+ }7 r( N - )* u6 m7 @# Z& W/ R- g( N
- (T (set_tile "t_ltype" ltname) ltname)2 {+ \' h$ {2 B! {
- )
& G6 ^) f4 c/ E - eltype
- w% z6 ]. y8 T' q4 i% l - )
: r) H9 [* c9 t. Q - )$ F w. v f% \- K$ F& T
- eltype
0 L# H( J$ z! x5 G* S, z6 ] - )
: Q# o# F" _2 P& J% a - )8 n7 o1 Q7 c: ^! I/ j1 K
- ;;% B D9 x1 E2 B( u/ ^) h' x* @
- ;; Edit box entries end up here2 k! D: |$ r) ]7 R1 c) E) b- Y' t% [, q
- (defun ltedit_act (ltvalue)# O6 N3 _: D) _
- (setq ltvalue (xstrcase ltvalue))5 {, U e, w7 Q+ }, M
- (if (or (= ltvalue "BYLAYER")' @/ f; ^' s& `
- (= ltvalue "BY LAYER"))+ Z6 d4 c" }$ m' B
- (setq ltvalue "BYLAYER")
3 ~: ]. ?1 V4 C) Y - )* O' ?: f3 r" F) ^1 Q
- (if (or (= ltvalue "BYBLOCK")
& i5 g5 |' [! h( Q C) X - (= ltvalue "BY BLOCK"))
3 g! ^' ~& P% ]; b6 F o: m$ C - (setq ltvalue "BYBLOCK")- [! W) ^2 x; q/ D
- )* |3 k& Z& A, f, A" p. x4 E2 \, a# l& u
- (if (setq lt-idx (getindex ltvalue ltnmlst)): W t1 L9 ]' U' C
- (progn
& C8 w/ b( z! A0 F' E: z - (set_tile "error" "")4 c8 N# i# `) p1 v1 y
- (ltlist_act (itoa lt-idx))+ N! A9 W3 e- n) \
- )7 A8 l. |/ r* f* L& `9 N4 S
- (progn8 }7 z5 s) h1 x {, X% l. ~
- (set_tile "error" "Invalid linetype.")
0 p: G9 `' I) l0 A& p! U) V- X - (setq lt-idx old-idx)
) S' A. H6 ?* J4 C - ;; (mode_tile "edit_lt" 2)' `5 N' H' m: h I8 |
- ;; (mode_tile "edit_lt" 3)
: k# B7 y; z8 i3 x: o/ c - )# G3 T5 v- z9 h
- )
: s+ s$ M' y" f3 M+ u - )
# k: L, ?+ B: `9 A* C0 j1 T6 w/ U - ;;3 T1 v$ \( \4 B( z( ~+ C
- ;; List selections end up here. Update the list box, edit box, and color# M. B: b0 g0 H5 M
- ;; tile. r' H& a. c" H
- ;;2 K1 [7 R( G5 h1 c/ U9 N. }
- (defun ltlist_act (index / dashdata)
" U2 z& z* `8 f9 v; @ - (set_tile "error" "")
! v& f# e& A7 }' @. ~( F% l2 D8 | - (setq lt-idx (atoi index))+ R1 M {# d1 @. J/ c
- (setq ltname (nth lt-idx ltnmlst))
% O; t, b( s1 o# D( k - (setq dashdata (nth lt-idx mdashlist))
2 U h' D) u7 W) P1 i: @/ X - (col_tile "show_image" 0 dashdata)
* s7 ^1 @: p1 {6 r. { - (set_tile "list_lt" (itoa lt-idx))7 F+ B3 j' _9 _! l: _7 u" c
- (set_tile "edit_lt" ltname)- l% o: r S. `# d# N% E# @
- )
2 [1 d7 D P' k% |5 r - ;;
- x0 T( K& z0 L$ J - ;; Reset to original linetype when cancel it selected
7 f- O+ J+ O1 Z u( @8 t - ;;4 {% t4 R. M" J. c
- (defun reset_lt (): M! U& l9 G1 P2 j8 i* Y0 s
- (setq lt-idx old-idx)' |- Q+ @% M1 S z# j( `
- (done_dialog 0)
& ?) X( s2 r: D0 W, Q - )
' W2 ]' C6 K, ^+ Y0 ` - ;;
3 f9 q6 S. W5 q! Q/ ^ - ;; This function pops a dialogue box consisting of a list box,image tile, and
# Y; Z/ Y. H4 Q- h r - ;; edit box to allow the user to select or type a layer name. It returns the% `3 g. h+ Y7 W s0 p- T1 e
- ;; layer name selected. It also has a button to find the status (On, Off,
' ]6 E& W) [+ A0 ~; | - ;; Frozen, etc.) of any layer selected.: f; E+ p& ~! K, ~
- ;;# Q' ?# w$ n" u! A+ C
- (defun getlayer (/ old-idx layname on off frozth linetype)
- X' E2 ]! _! B; E+ C! M( q/ S5 ] - ;; Create layer list the first time the layer: Y0 T! l- {" K% y% i+ C- Y/ s( e
- ;; dialogue is called.
F6 z% h: F/ @; I - (if (not lay-idx)
, k) a9 z5 u r: p9 C - (progn3 n/ T0 D. ^9 x: Q
- (make_lay_lists)( F- k7 ~- ?' c- |
- (setq lay-idx (getindex elayer laynmlst))9 j2 \7 Z+ `; R& A% X$ J
- )
: v% O7 \9 G% O. }! c7 @+ s) W' X+ Q - )
0 ?1 s1 _6 P& ~ - ! o2 N C9 V$ [+ C0 T f
- (if (= (get_tile "error") "")% W- Z2 ~$ J5 H- _# T3 Z. z
- (progn3 N. E- V8 z! p: ~
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
* `" x$ i$ g W' J2 c$ P7 U - (set_tile "cur_layer" (getvar "clayer"))
: {8 W4 {0 t \. U3 } - (start_list "list_lay")/ V$ q/ D1 r n& C; c& j
- (mapcar 'add_list laynmlst) ; initialize list box
) E* j$ P& j5 f+ \3 h/ u - (end_list)9 {! ?- g$ u, h0 a1 y6 {3 G
- (setq old-idx lay-idx)4 A7 F' s4 n: A
- (laylist_act (itoa lay-idx))
1 C8 G: s' K9 b5 _& p5 U - (action_tile "list_lay" "(laylist_act $value)")! o$ N D! y) I" @# E
- (action_tile "edit_lay" "(layedit_act $value)")
: G' t a, C& K( c1 T, @# ?/ |" C - (action_tile "accept" "(test_ok)")2 d$ o. T: k: X' z; j x [
- (action_tile "cancel" "(reset_lay)")
; y5 C2 a a# E& Z6 {) M - (if (= (start_dialog) 1) ; User pressed OK
+ {2 c6 C1 d) J" w% m, O" u% s3 P4 L - (progn
. b }" [; H; F) E% V - (set_tile "t_layer" layname)
' X) x! k4 Z5 v8 \. C- j - (setq elayer layname)1 t' u( x# N6 Q% d1 Q& a
- ;; If layer equals bylayer reset color tile
5 l; O8 }( Y4 M: ^7 X1 y% m2 n - (if (= ecolor 256)5 p% R) P# ]# j- k
- (col_tile "show_image" (bylayer_col) nil)
' T5 g. x6 Z2 U, C5 g - )1 y# v- w/ u, x3 ?
- layname* [/ k4 }8 P# Q* I
- )
- c( K: r" ^0 x6 d - elayer
/ T! M( G) {4 v4 e, s' _ - )
! x6 u' z1 b( O: Q9 F - )
8 ?9 p4 p' R* Z1 \* t& `8 u - elayer& z7 f6 p( w0 j7 S
- )
0 j) b [, m+ X: H - )
! n' J1 P' r4 X8 h8 c6 [; n0 D - ;;$ [$ C% i4 U. v" i# _
- ;; Edit box selections end up here. Convert layer entry to upper case. If
& s7 _0 c4 \# l8 E - ;; layer name is valid, clear error string, call (laylist_act) function.2 i# P# b# V- A: i
- ;; Else print error message.( o# b y! W, b, g0 X
- ;;2 E3 u. A0 o# L
- (defun layedit_act (layvalue)
. d3 {& W+ |, k/ F - (setq layvalue (xstrcase layvalue))
, p+ H) b- e0 `# z. c - (if (setq lay-idx (getindex layvalue laynmlst))
8 a% g% @' ~# ~3 x: n& m - (progn
6 ?: C; R+ P0 K0 j& W - (set_tile "error" "")
$ t- o: T h. a+ ~$ j - (laylist_act (itoa lay-idx))
4 n/ x' J) |! ^ - )
7 q- [* d% F) {1 w' f5 V - (progn
. m1 B6 |- F! U7 O& J- B; i - (set_tile "error" "Invalid layer name.")4 X( ~/ L# _- ^
- ;; (mode_tile "edit_lay" 2)3 u% |, j; w2 V
- ;; (mode_tile "edit_lay" 3)8 s& [- i& u( Y0 s! v
- (setq lay-idx old-idx)0 b* U1 i/ g( y5 b1 e; |/ z
- )' g3 K# v8 h4 r$ _; b$ v+ @% P S7 E
- )
+ }- a& s8 d7 c3 Q - )
& a2 B% G' \3 \8 Z2 J5 p - ;;! ] l, y1 f0 D9 D8 M
- ;; List entry selections end up here.5 F) f P5 |& b- j% j6 `8 U
- ;;8 \" m9 {1 x9 D% Y4 V, D: _' U
- (defun laylist_act (index / layinfo color dashdata)
/ ^( y3 t" w+ V9 A$ ]2 g1 a6 @ - ;; Update the list box, edit box, and color tile./ \( x% v* }1 Y$ i
- (set_tile "error" "")
" `2 J6 F* t9 ^, T v! t - (setq lay-idx (atoi index))7 w9 _( P/ X9 z( \ ~/ Y; x' H$ i9 A
- (setq layname (nth lay-idx laynmlst))0 r% a# u3 p: d( f/ v/ V
- (setq layinfo (tblsearch "layer" layname))- |: N F; N0 [5 l9 Y
- (setq color (cdr (assoc 62 layinfo)))
5 `) I" _( r4 |. a& }6 s - (setq color (abs color))
Z3 X7 @, e/ ^% P" u" _ - (setq colname (colorname color))8 o' |! g# }2 @) {5 @3 \
- (set_tile "list_lay" (itoa lay-idx)) t5 r) r8 j' }1 ]# e8 u
- (set_tile "edit_lay" layname)
$ Y% J; \& w. m - )' W, M7 k- `, W0 j5 _
- ;;
2 N9 J1 j5 s: E- u; Y - ;; Reset to original layer when cancel is selected.+ o3 |% ~0 {) A( X* e
- ;;
$ ^9 b$ U) y( Z - (defun reset_lay ()
" o# e5 |- b: F - (setq lay-idx old-idx)
2 X! a$ T9 q3 j# G3 `* { - (done_dialog 0)
. G* ~& P( w2 @0 B1 Y1 f - )
! X: p7 ?& g$ b5 g# { - ;;6 W8 Y1 u- S0 a/ R1 |! V8 U/ R4 }# K
- ;; Checks validity of thickness from edit box.& x0 K; M; h& ~
- (defun getthickness (value)
* E. w$ `! K$ R. _& m- L; u. k - (setq ethickness (verify_d "eb_thickness" value ethickness)) f& J% y6 t2 K
- )0 r. ] h' U5 A' r/ ~, h: W7 H* A9 P
- ;;" K! T# Y* w: A9 I8 W E- u
- ;; Copy of (getthickness) for ltscale. If more, make this function9 ^% w0 N+ U1 V% B1 L
- ;; generic.
# i1 W. G! v% O& l0 M* ~' T& [ - (defun getltscale (value)
; B% z0 h/ V1 y4 j - (setq eltscale (verify_d "eb_ltscale" value eltscale))0 e7 W# p" X n9 O8 Y
- )& T: x) w2 v& d
- ;;
% k# N* W& C+ F; W6 v* D+ z - ;; This function makes a list called laynmlst which consists of all the layer
) }7 u9 K, h4 s2 R! I; J. v - ;; names in the drawing. It also creates a list called longlist which# E- j7 z$ r$ [
- ;; consists of strings which contain the layer name, color, linetype, etc.
9 Z' u l) ?4 b2 s+ D# q- t8 [8 c - ;; Longlist is later mapped into the layer listbox. Both are ordered the
2 j: l. ?2 y& L) a; S: l - ;; same. ^% c' f3 t) b% K
- ;;
4 N( {2 |! s* O6 e2 e3 h - (defun make_lay_lists (/ layname sortlist name templist layer_number)( X% ^; o! c1 k/ Q9 r7 w
- (setq sortlist nil)! }) U- P# Q! p
- (setq templist (tblnext "LAYER" T))! a* X9 S, C. }
- (setq layer_number 1)) X+ }* N* w/ S/ K7 Q( N6 B
- (while templist
9 g$ Q0 s& Y% Q% w - ;; No xref dependent layers, please.7 b+ q$ t: Y `3 J) F
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)- f: ]) P4 h7 J: w6 q3 }/ r
- (progn9 o) F& r. J7 t k
- (setq name (cdr (assoc 2 templist)))
' |! F7 t+ v0 S A# }( l5 H( v - (setq sortlist (cons name sortlist))3 i' ^, [7 w1 X* l# G8 V4 S* N
- )
4 _. L/ n+ @0 P0 {# M - )9 r) r; G' d; ]* C
- ; Get the next layer.
- q+ K0 h0 Q" S/ K - (setq templist (tblnext "LAYER"))
* h. u ?$ {2 y3 a X - ;; Not dead message...0 V( {8 A! `% f/ V$ ?/ r3 I# Q
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))' L8 ?* l; n2 L
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
% \) H/ U \( X. t - )0 r+ V# d' }3 g2 S/ }; B
- (setq layer_number (1+ layer_number)). X' y$ y8 V* y- v/ y6 j
- )( U, J& ^ x: k) e' q
- (set_tile "error" "")
9 N7 A& G: B' [5 L3 p0 b) S( P - (if (>= (getvar "maxsort") (length sortlist))& o5 q' @, z0 l
- (progn
! N) ?0 r* h E# b7 [# k - (if (> layer_number 50)* Z& D" m& F5 N
- (set_tile "error" "Sorting...")
0 [" M" ?8 Q5 L! M! s4 k - )- P& D* w! b. ^) Y! t% Q
- (setq sortlist (acad_strlsort sortlist))9 Q% P( p! H2 m5 L, H; @
- )
3 X' Y% \4 Z$ f- R( D( X - (setq sortlist (reverse sortlist))5 o( H% E, e4 H! R. U+ c# g
- )# d) R! c& |( m! X2 ?5 s
- (set_tile "error" "")
8 G4 i. S$ I0 m; D* a7 K( e' t& v - (setq laynmlst sortlist)* Z3 H) |9 e* O3 |! D
- )
. G( j5 t' \7 j5 _( j3 f - ;;
) y! z9 c. k, c5 F4 { - ;; This function makes 2 list - ltnmlst & mdashlist.* {4 X& C0 o6 S3 |
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist9 L6 t0 V& J8 I& o- ?3 v
- ;; is list consisting of lists which define the linetype pattern - numbers* v: T8 [6 [3 T; m9 J
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list
/ t3 S6 ?8 b- u7 Z6 `. J - ;; corresponds to the order of names in ltnmlst.
2 T# W( A9 ]- c - ;;
7 N* ]1 e5 E% `3 z - (defun make_lt_lists (/ ltlist ltname) ?' E2 `" y! @$ n3 S5 D$ Q
- (setq mdashlist nil)
2 F2 ?. N+ S8 G# M- r; ~9 U& G - (setq sortlist nil)/ H' q2 K3 X$ `" r$ r4 {
- (setq ltype_number 1)
# f8 @" I5 t7 g; W0 r S - (setq ltlist (tblnext "LTYPE" T))
3 g8 i* W2 g6 P5 n+ B - ;;(setq ltname (cdr (assoc 2 ltlist)))( C9 T3 ^% l# U3 Z9 g9 R
- ;;(setq ltnmlst (list ltname))5 k+ Z3 Q$ G7 d0 O# k) E4 ~' d
- (while ltlist
. r8 t" F, O) Y7 f Q - ;; No xref dependent linetypes, please.
4 }( ?, ?7 A3 c/ n' z/ ~& Y) N - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)$ z0 \- s2 B4 d
- (progn
) P* @- O L& l" ], i - (setq ltname (cdr (assoc 2 ltlist))) K1 H0 n- j9 O* {+ Z
- (setq sortlist (cons ltname sortlist))( l5 d$ k* m7 i r- V0 c
- )
2 e6 Y( [& z7 h' Z6 ~# H! @ - )* j/ q" Y, t) ~. L5 L
- ;; Get the next linetype., i* \, T) @9 K3 _$ g
- (setq ltlist (tblnext "LTYPE"))
0 Y4 G( Q: J! i5 w: A
" @$ O$ l( l" v! k5 ~. t+ v& r, f; F- ;; Not dead message...4 E: Y& v$ s& w+ \. F0 _' u# y
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
- l0 `: O4 j' s w - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
" E. f" d5 V/ h9 `* n- } b5 n" f - )
/ O; z: H; Y/ T. k. q - (setq ltype_number (1+ ltype_number))" k9 P. p5 U: V* B/ [. _
4 e& L* I$ _/ W/ F% }1 i; Y* t- )7 I! ]# C' f9 X( p1 c1 z
- + F& V/ O, B* Y( r @; r5 j
- ;; Remove Collecting message.
, G1 k1 h: T: O- E0 {3 y' i" \2 ~ - (set_tile "error" "")( H/ F9 N7 ]1 G% U9 S0 D7 w8 p' ~
+ p) D9 |0 f$ c/ b6 K/ v5 }- ;; Sort based on maxsort.5 {' B: c( ?9 h
- (if (>= (getvar "maxsort") (length sortlist))
; _. p' b* u1 \ - (progn! |' e+ w* d* F9 F3 L! H9 _
- (if (> ltype_number 50)
( p8 _. X( y; c- x - (set_tile "error" "Sorting...")/ }( w3 C& i+ }4 F' F0 d
- )
! [3 J. ~" }& o5 e - (setq sortlist (acad_strlsort sortlist)) P/ e' w0 o2 Q5 t! m: T8 b
- )1 w* Y2 G( U2 t# S2 A
- (setq sortlist (reverse sortlist))5 t9 J Q4 O u, U' h' t$ @1 @9 \. @
- )( z6 _2 W" f+ L8 u- x5 O( Z p
- (set_tile "error" "")/ s4 t$ x2 [5 H7 R' G
- (setq ltnmlst sortlist)0 j) i7 U: e0 ?# w1 Y+ A
" U) v& n4 o0 u( c" P, t- (foreach ltname ltnmlst" S! S9 h1 V8 x
- (setq ltlist (tblsearch "LTYPE" ltname))
9 t: T. m- N* h! p - (if (= ltname "CONTINUOUS")/ }1 D# H' q- o: z% }2 k
- (setq mdashlist (append mdashlist (list "CONT")))7 O) z# n4 O' i& W: _% k
- (setq mdashlist
) i- `' t9 k& ~1 d - (append mdashlist (list (add_mdash ltlist)))9 C& I" ?( Q. c& @! L& \1 A
- )
. G* ?. K7 @7 p0 P! j M% ] - )' X- p" s( ~9 y/ Y
- )
9 T J% { k1 n! h - (setq ltnmlst (cons "BYBLOCK" ltnmlst))$ M7 q5 e+ @( U( h# N9 Y
- (setq mdashlist (cons nil mdashlist))4 \% T# z% z3 z. G# e
- (setq ltnmlst (cons "BYLAYER" ltnmlst))1 Q1 W& a4 F, L
- (setq mdashlist (cons nil mdashlist))
~- ~, O- S8 E3 y4 {1 K - )
. k5 t% n0 E, D8 d `0 v/ } - ;;* M% E q2 ^/ Z" R8 [% `9 z
- ;; Get all the group code 49 values for a linetype and put them in a list
1 {5 M/ q, P0 o - ;; (pen-up, pen-down info).
. e. t4 e+ C0 g& M% @+ ^ - ;;/ a% b9 d& d; X' G
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
$ s! t8 E% u2 p/ r: d - (setq dashlist nil)
4 c% d# [$ w' v1 a) h9 |& Z - (while (setq assoclist (car ltlist1))" @, S+ {! K. G* r/ K% P
- (if (= (car assoclist) 49)2 R0 W6 H3 ~6 S. j' b
- (progn: r, X! c4 w5 ^9 Z
- (setq dashsize (cdr assoclist))
?6 d; G* u1 v. t% A/ {# G$ l$ g - (setq dashlist (cons dashsize dashlist))
; B" d: v+ @' a8 [/ e* e - )
- i) W$ I& k9 ]( P, W2 x - )
3 j+ y4 p7 T! I/ @. u - (setq ltlist1 (cdr ltlist1))! P% U0 j$ z. l' V! a* m2 [
- )2 z9 @) l: |0 T& h
- (setq dashlist (reverse dashlist))
$ H1 _$ b5 t B; X - )
& ~. N, Y7 r3 c8 T8 ] - ;;, w; p/ r. r; d& a
- ;; Color a tile, draw linetype, and draw a border around it
/ C0 {% b+ W) O1 y! J# {# F: G2 j/ W - ;;; _3 u% P8 P! B$ D
- (defun col_tile (tile color patlist / x y)7 s( |6 \! y2 C+ b7 s
- (setq x (dimx_tile tile))
8 g' T% a* z. Q- G1 N; i3 p P' a - (setq y (dimy_tile tile))* T, o. r _9 n% K2 d+ Q
- (start_image tile)
5 P$ H8 u4 e0 O( d - (fill_image 0 0 x y color)
7 F) n4 D+ G. [' i* p - (if (= color 7)
: A! ^/ Y- I2 R6 W; B5 c - (progn
3 z- { g" f0 c' v" ?/ a - (if patlist (drawpattern x (/ y 2) patlist 0))
% u( f8 O! p; A7 z+ k- T - (tile_rect 0 0 x y 0)# ~4 V& I0 C, X- y2 i' B
- )
9 ~8 L0 U$ U. | |& ~ - (progn
' k+ U8 k5 x6 l; \& h - (if patlist (drawpattern x (/ y 2) patlist 7))9 Z2 W+ Z0 N1 N& v6 y
- (tile_rect 0 0 x y 7)
$ D: S( i( G. _ - )
2 \# r% P- ], ? p9 C d9 Q - )
4 E2 q$ H. a- d) Q8 `4 w5 R- F( k - (end_image)
* {! p* V; O# o# N9 c% w8 T3 e - )
# @3 f% w8 M! y# m- K - ;;
- p- `! ?- h' }* T- l* l" U - ;; Draw a border around a tile
5 V- E/ L* Q( J" Y - ;;2 C6 _# f- u- ~/ V8 g# L
- (defun tile_rect (x1 y1 x2 y2 color)* Y# {# T4 |% q5 N
- (setq x2 (- x2 1))
. X& L( z9 F C - (setq y2 (- y2 1))
. D+ V6 a2 a$ ?& n. Z7 q9 v% |! N - (vector_image x1 y1 x2 y1 color)4 s9 Z6 F2 ]0 E
- (vector_image x2 y1 x2 y2 color)
2 P2 x& q* }" s: f - (vector_image x2 y2 x1 y2 color)
* U6 r( A7 @0 \8 ]/ E- ^ - (vector_image x1 y2 x1 y1 color)
5 |/ B+ ?8 D6 D) V( q, s, f/ G - )9 n0 N4 q' Q: g3 J
- ;;- i2 D) z3 U, O. H8 g
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image5 o" r1 X, {7 R" p2 `* w% D
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a6 n) |* a5 C0 W: Y4 u0 s; `3 p
- ;; list of numbers that define the linetype, and color is the color of the& o& m( j. J/ h- N- }, Y; O7 v
- ;; tile.
4 `( w' r& B0 P# K t - ;;2 H0 W1 h2 A0 M4 M
- (defun drawpattern (boxlength y2 pattern color / x1 x2
. \) t0 C& ]3 C9 V - patlist dash)
4 }' ` b" ]! @, n - (setq x1 0 x2 0)1 [) M7 N8 S8 Z+ F7 S+ J# n
- (setq patlist pattern)
# d) j* D3 u `& ~ - (setq fx 30)
0 S( f4 e# d( M3 B; _ - (if (= patlist "CONT")
' E6 K) j! K$ T% m7 w - (progn (setq dash boxlength)( ^/ n& U- M3 A) k" G
- (vi)
9 r1 i% y8 _ d/ |/ Y - (setq x1 boxlength)4 B3 ^7 A7 w* T' ]0 r* M- o
- )$ S/ n( h! X) M9 K. O
- (foreach dash patlist4 ^! ?* I1 i+ s8 X& E
- (if (> (abs dash) 2.5)
6 q1 R# w- W1 n- l# m1 i( W - (setq fx 2)
$ x1 v! _ P/ w$ E- U) G - )
* z3 j+ G) [# P1 s - )
. X4 H2 k- X( W/ w* Z9 W4 w - )3 s2 P' ]6 x U: d3 _: v& y
- (while (< x1 boxlength) _$ W- q5 N, y
- (if (setq dash (car patlist))8 m+ l# n5 ]; `0 s5 W* S: Y
- (progn
7 `, s* S0 p |. `5 d - (setq dash (fix (* fx dash)))$ D! m4 t# q4 ]: G0 I8 k6 @
- (cond1 |7 @2 @, o, P2 L# m6 P
- ((= dash 0) (setq dash 1) (vi))
5 I" L, w, j! V$ t3 c1 S - ((> dash 0) (vi))/ }: x$ Z' D J% H
- (T
0 l$ ` C( q! b* w1 E - (if (< (abs dash) 2)
% v% Q( N% M. j" J - (setq dash 2)6 I) e4 d& y' A) c5 O% F
- )# ?$ X* A; {7 H4 n
- (setq x2 (+ x2 (abs dash)))/ N6 e6 B! x2 E" Z' J% i1 `
- )! Y, e& V i3 f3 E) q
- )
9 N" @! ^+ }% N9 [& E4 Y - (setq patlist (cdr patlist))7 @# a, T5 Y' \, R
- (setq x1 x2)9 O7 f% [+ r: Q% i
- )4 j, U3 r: l8 n- _0 S3 k
- (setq patlist pattern)6 n* O7 N. \* e- X8 {% p" G
- )
$ |3 D$ d j$ t; }5 a - )
; x& F+ \; y1 R4 k - )
+ J4 B6 _! }, S6 t: B, W - ;;
" ~& h& ^+ R# W, S - ;; Determain state of xclip( J* t- P+ S4 ]% y2 S# p
- ;; Returns the group 71 value of the spacial filter dictionary.
( J5 @/ k6 @3 @6 T. |5 D - ;; If the entity doesn't have a spacial filter dictionary, this
9 F5 Z) \: w6 o, E1 l. c" r- A& K - ;; returns 0. If it does it will return 0 or 1 depending on the
( b6 D1 K# w% J, U# G0 K1 V% |: j - ;; current setting of the state of the clipping visibility.
$ E5 K$ e3 g ? - ;;
3 Y8 T( a) t7 u+ } - (defun xclipon(elist)
: O9 | \* B) |1 S. s! X - (setq hasclip T)
. ?! Y, r* J0 U+ G - (if (/= (assoc 360 elist) nil) }) v' S3 u6 V j: _: I
- (progn9 B: j# z/ w5 H9 `9 O
- (setq tmp (entget(cdr(assoc 360 elist))))
- Q$ |) {, a' L/ v) t - (if (/= nil (assoc 360 tmp)). |' L% {' b4 u$ p, [, X7 ] j
- (progn L6 V0 u6 |* m! p5 c
- (setq tmp (entget(cdr(assoc 360 tmp))))1 d) h. h) Y" ~& @; e" v3 N2 x
- (if (/= nil (assoc 360 tmp))' ]1 ]0 ~! m. x+ z$ I
- (progn- v2 p- o/ U0 G* D
- (setq tmp (entget(cdr(assoc 360 tmp))))
4 |2 q& J! L4 x7 R& q, L5 W - (if (/= nil (assoc 71 tmp))
* O% _+ ^( m4 r - (cdr(assoc 71 tmp))$ c$ ]' P( X- _( a
- (progn
- j- J! g1 R& H- o c2 q* U - (setq hasclip nil)
e2 }+ j3 Y5 [/ P - (eval 0). c1 t5 W/ P9 w F: P- s/ y8 Q
- )2 X, v1 l T, e2 V! g
- )
2 K3 H5 A$ D6 @$ G+ S3 B - )
- T! |2 r$ J' f7 S - (progn $ |7 ?9 X6 ^' G+ B5 ^
- (setq hasclip nil)
$ E8 M1 B5 ] i9 j, I2 r* K - (eval 0)
; w, v9 H% @3 L, c( R P' [6 j# a" e - )
/ Z/ Q% {2 k: R4 ~7 [& H3 m6 R4 x6 i - )- r9 v+ o( c' ?- p7 K7 |7 d0 U* \
- )
: a- K3 U$ m; w) }0 M' E+ x# F& G - (progn . l2 D" M, [) u" j
- (setq hasclip nil)
) I! Z9 S) g& T5 W - (eval 0)
$ u/ `. q* f$ q" M9 N [# D5 A, { - ). W9 r( ~, p( y( L
- )
9 j+ C7 w! m' j4 x - )
- t$ g+ |% p$ g7 Q* C' e - (progn 4 |, a3 { m6 P) g
- (setq hasclip nil)$ }9 t6 {+ c6 m9 _
- (eval 0)
8 |5 `; y4 v6 k6 X- C8 L/ \ - )
. X! b3 w* e; m f G% ` - )
+ e1 r* p& R8 H( x8 @ - )' i* V) |2 P& K" c
- ;;
( P( `; H P. ]. P* U2 T' ` - ;; Draw a dash or dot in image tile" s) N |; v" O5 Y1 S ^
- ;;
v$ G9 H0 D R7 T2 y$ |+ w' `) K - (defun vi ()
9 _. ]& Q8 O5 `! q+ F) I6 P5 } - (setq x2 (+ x2 dash))4 e/ A) q3 J3 ] Q& c3 A* P
- (vector_image x1 y2 x2 y2 color). J- j9 n0 U3 d; n& b B
- )4 \& _! c7 a6 C8 c, Q v
- ;;, @8 y4 |7 k# }; e3 N# A# a
- ;; If an item is a member of the list, then return its index number, else
0 p& A* n/ j0 w: t" h8 H - ;; return nil." J. u. N) p$ k
- ;;/ w7 @3 G) K1 p. |9 J5 D+ u
- (defun getindex (item itemlist / m n)5 X: z) Z6 Y0 M0 X: G# }" j- I( R% [
- (setq n (length itemlist))
7 a7 a. J5 s3 r9 U6 J( O - (if (> (setq m (length (member item itemlist))) 0)# P1 n" Q9 \* o6 H% M' k$ r
- (- n m)
3 `8 O' g( h% ?4 P6 V - nil
( ?* q, S' g8 c4 u* g - )8 z. H7 p# p( { I( c, ]- F0 E7 B
- )
7 `' u" t- f- E8 X4 A0 S - ;;
4 L' D9 F' S& U3 C - ;; This function is called if the linetype is set "BYLAYER". It finds the/ z; `! c6 y9 N/ ?& I
- ;; ltype of the layer so it can be displayed beside the linetype button.# o7 I. J) x, p* s8 j+ ^# A7 k
- ;;
& v$ u4 m. P4 A' _9 n( O+ R - (defun bylayer_lt (/ layname layinfo ltype)
* q O x7 D) I4 F7 l - (if lay-idx
5 g& q G8 \' A9 L' h - (progn9 T! A6 J5 S/ v
- (setq layname (nth lay-idx laynmlst))
- _4 L5 P- o5 [( U5 i9 a - (setq layinfo (tblsearch "layer" layname))
* U3 }4 L6 h3 E, o% n4 g9 ] - (setq ltype (cdr (assoc 6 layinfo)))
9 o- y+ W* H" m: r1 t" m% i - "BYLAYER"
2 ^4 F9 d$ B. P - )- s' N7 M) i" f9 Z. X8 r
- "BYLAYER"* p0 E+ ?# ?" X; h1 j. N
- )
* S2 W0 S9 J0 c5 X - )
\7 R. ?( \$ L& F% L - ;;% X, | x# r2 ~
- ;; This function is called if the color is set "BYLAYER". It finds the color4 d& N# M- i3 C. s _% g
- ;; of the layer so it can be displayed beside the color button.
; @7 j& q5 n% K - ;;
, O8 K" f( t7 d1 e7 H1 j - (defun bylayer_col (/ layname layinfo color)
# K4 j, h- I" D6 y E8 P - (setq layinfo (tblsearch "layer" elayer))0 B4 R. t6 w: x+ t" q7 P
- (setq color (abs (cdr (assoc 62 layinfo))))1 n1 A! F) d9 x
- )
8 i, h3 [2 T3 ], Y" C) x - ;;8 O$ i+ f- }2 D; t ]% ]! c" e
- ;; Used to set the color name in layer subdialogue.
\5 Q, ~6 J& U' Y1 J - ;;
4 z) X! ]$ }5 W; ^5 b" ^ - (defun colorname (colnum / cn)
" Q( W; S N1 X8 u+ x7 S& o - (setq cn (abs colnum))4 R; D. x4 V, [1 Z1 S) e/ g
- (cond ((= cn 1) "red")
3 Y4 B" W2 `- |6 Y. K# p$ ? - ((= cn 2) "yellow")7 ~' Y% ~) \3 ^( |6 m
- ((= cn 3) "green")
v; a8 X& O- x, J* F k R - ((= cn 4) "cyan")
$ A. f& V" n% {% D9 z - ((= cn 5) "blue")( l3 Y9 |/ K8 _
- ((= cn 6) "magenta")
1 O- p3 Z3 ]* Q0 B! g - ((= cn 7) "white")2 Z3 y0 l! K- K1 X2 S- E9 K! O4 Q
- (T (itoa cn)), e4 X3 Q% y7 s5 |2 W/ A3 a, W
- )) V% J4 A$ P4 W- k$ P! t
- )( W; ]. z& {% e, r/ z
- ;;/ }: t3 ]3 k2 S% E L
- ;; If their is no error message, then close the dialogue.6 L* f* O4 N& X/ k M w5 a
- ;;- R6 A2 n6 i% G l
- (defun dismiss_dialog (action)
6 }0 U! p* E: S4 b1 C* ? - (if (= action 0)
. w$ k# h8 _# c& J7 z - (done_dialog 0)0 ?# z$ R5 L! {+ |; J
- (if (= (get_tile "error") "")
6 }/ v7 K( ^) v |9 w2 y3 p9 H/ R ? - (done_dialog action)
' m1 J9 ^! p* l: l2 M0 W - )( N" t7 M- s" _4 e1 r+ i
- )1 B. `- N5 n8 C9 {9 w
- )- O+ U L' \( S4 u
- ; ^# o, \0 j1 D/ Q
- (defun test_ok ()4 l3 l9 V$ L/ _. _( ]/ T# n. T% |
- (if (= (get_tile "error") "")
8 n5 t: W* O. Q - (done_dialog 1)# h0 o6 m+ I; ?
- )
" f* N* {7 K( }- e$ ?! ` - )
5 w% H: \% G8 e" G* y' t
5 M9 v. O: } t8 e7 \8 {- _- (defun cancel ()8 P2 w$ x1 P1 T) Q! s) {4 A
- (done_dialog 0)' b3 \3 R0 _+ u- J5 {3 V, B: _
- )/ B+ p: {7 {8 Q* Q
- 7 n/ W' J6 I$ y; g; G1 v# X
- ;;; =======================================================================
" |9 Z* y+ h/ G, c" z, s - ;;; SETUP layer and linetype lists for application, and initialize all
' ^/ {* x0 ?8 {3 O - ;;; program variables.6 r9 D, }; ]$ V' g2 k+ a
- . B6 i& n7 P5 Q2 I/ |: f
- (setq elist (entget ename)0 J) s/ k) _8 O; H( Z6 X
- old-elist elist
$ ?6 q' `8 H6 {1 l - modlist elist( l J0 [: ~! M
- etype (strcase (cdr (assoc 0 elist)))" Z- A5 [7 L% f4 m
- ecolor (cdr (assoc 62 elist))1 L( I- @+ m7 x
- elayer (cdr (assoc 8 elist))
0 W: o" k3 z; ^2 K* \ - eltscale (cdr (assoc 48 elist))
' f) G% H, V, `0 n' _: ?; T - ethickness (cdr (assoc 39 elist))
: Q; w3 J. T' j/ h9 t$ C2 U" `: u - eltype (cdr (assoc 6 elist))# }6 ^4 u+ A" y \& p0 A/ C; u
- ); w" @+ A9 M9 L) z
- (if (= (assoc 210 elist) nil)3 {8 x: ~0 c! a1 N# h
- (setq extru (list 0.0 0.0 1.0))
% e1 A5 ^9 f& a! O+ f - (setq extru (cdr (assoc 210 elist)))( W7 `0 Z, l. G8 K: t4 f
- )
' ^" q6 @+ d" j H3 C+ Q; D6 O - * p4 f9 }7 K& v; o) o
- (if (not ecolor) (setq ecolor 256))' c3 D; Y$ `: m- K$ O% u/ F5 X
- (if (not eltype) (setq eltype "BYLAYER"))* R1 F. T5 q+ N, d
- (if (not ethickness) (setq ethickness 0))5 r5 y: i! G# u4 }. h
- (if (not eltscale) (setq eltscale 1)); \+ O$ T5 j5 N& ~9 s0 p& @
- ) ; end ddmodify_init
! | m* q$ [9 ?! j! x
; @: _8 o8 Z$ V# p- ;;; --------------------------------------------------------------------------
9 { M5 C j# J0 n; v8 j { - ;;; Function: DDMODIFY_SELECT
& l3 }; a B, J% Q) V0 t - ;;;2 M9 I9 Z8 N' p4 S( M
- ;;; Object aquisition function.
/ @$ d" f2 I+ O$ O9 P - ;;;
1 Q7 a; v; u/ V; Y p# R - ;;; (ddmodify_select)
3 O( z( B( g) l2 S7 g - ;;;
; ]# Q6 d. p$ s1 _ r - ;;; Obtains object to be modified, in one of three ways:& [! L3 ]- g& y0 l) z7 a2 c0 b
- ;;;
! c Y" J5 _- O _9 p, R& q6 M - ;;; 1 - Autoselected.
0 h/ m8 g8 @( k+ \ - ;;; 2 - Prompted for.
8 l* Y% w6 ?* M5 C3 \6 m - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )" W, B2 e. d/ D( p6 y
- ;;;
( O- k/ E" r, \8 b - ;;; The (ddmodify_select) function also sets the value of the6 S( P) K" T$ P N I
- ;;; global symbol AI_SELTYPE to one of the above three values to9 j" x0 Z$ Z+ g3 C0 B9 K
- ;;; indicate the method thru which the object was aquired.8 v) I0 G* C$ Q( |! B! Y/ D# _0 i) f
- ;;;9 X- |6 R+ ~0 X2 l
- ;;; This value can be useful to applications that want to RESTORE
( W' m$ D* V/ f - ;;; an object that was autoselected to its previous selected state3 N) W9 U' r- q: o7 [. P ^
- ;;; when they terminate, although there doesn't appear to be any
9 U2 {1 G4 w& ^8 K; i9 } - ;;; way to do this right now.3 V' y& k+ E2 d- A" T$ ]) x0 \$ M" B
- M$ b/ p! q, R
- (defun ddmodify_select ()
! q) A5 j$ m* @( M. g - (cond) y# E3 Q& S3 \9 I" ^! J7 ]
- ( ename ; (ddmodify) was called c8 C2 P5 h: H/ t& K5 ^' [
- (cond ; with an <ename> argument: L! r( E' E7 O3 J4 E! |- L
- ( (entget ename) ; If object is non-deleted
& h2 p& U3 Y; } - (setq ai_seltype 3) ; then return its ename.
3 \( s- B( I$ V& L - (ai_return ename))))3 d/ N; Q) E7 ^2 ^! G! X
- $ d3 r, S5 w. |; K, n. H2 o- V
- ;; return auto-selected , see ai_utils.lsp
7 i" K. t* f! R# W& s% F. d- D - ( (ai_autossget1 "\nSelect one object to modify: "))- m4 A+ b! e- X$ J# R
- 4 ^6 ~/ b* u7 q6 U, ]/ R
- (t (princ "\nNothing selected.")
1 `$ s R# }9 M/ ^) Y/ |, ~) G# O0 z6 W - (ai_return nil))' ~6 q6 N! ^' d1 F6 ?( E: ~9 {
- )
9 Q0 R: c8 g! g) r - )
: W0 C) U- r$ U* s a$ G - # l9 _7 w ^" C7 i! o2 k" V
- ;;; ============= Command line interface function =======================/ T+ l A7 _5 s- F* I w0 ]7 n) A
- j ?8 `1 T3 W; O. Q" S, l! T Y% r
- (defun C:MMO ()
! ]" [( B4 l9 I3 I4 Z - (ddmodify nil)0 {1 v, R( \* s6 E2 u1 Z7 v# \7 \
- (princ); ?! n. r, k$ y/ Z3 ^6 _* d/ C5 G
- )
% s" f- ?7 I, v( V8 @
) b; g7 ^; ]$ ?9 t9 f- ;;; ================== (ddmodify) - Main program ========================5 o$ H* Y- x6 E. @: q
- ;;;
& v( D4 f, K/ H) F7 p: B' N - ;;; (ddmodify <ename> )
) q1 v8 z. B. h4 `1 R2 a( C1 N Z6 T - ;;;
3 g: [6 P/ Y. V) \ - ;;; Main program function, callable as a subroutine.6 I+ W9 I5 s, m6 s) m
- ;;;
& p2 g# Q1 d# x3 {# S* I$ g - ;;; <ename> = object name of the object to modify.
' z% R! z. Y) q - ;;;! U0 b' ~: K7 s; @; ]# j# Z0 P
- ;;; If <ename> is nil, then user is prompted to select' {% r- u& m$ g( p' s
- ;;; the object interactively.8 I( k2 x8 \/ ^) I7 t9 _
- ;;;1 m7 ]$ u- M* F% {" ]/ G& G
- ;;; Before (ddmodify) can be called as a subroutine, it must
# }6 q/ H* z, a8 c9 h5 } - ;;; be loaded first. It is up to the calling application to
" q% V2 G* R/ F$ X5 p6 [/ C+ R% P, Y - ;;; first determine this, and load it if necessary., R3 W* a6 e8 I/ j' B( V: Q; q# J5 A
( }$ [+ E5 R \0 V9 D- ^7 ~) _+ W- 8 v; ^: C: C% K& O/ m0 r' b
- (defun ddmodify (ename /2 s- r, I h, `$ F- M) Y0 H
- 2ndpt ell_calc_area move_pt1 templist) p" u* n0 {8 Z+ R
- add_mdash ell_tile n tempmod
# O9 ^: W6 O! q( W; Y/ H: S - alipt eltscale name tempst_ang
A% k$ G R6 w7 i( |9 Z) {1 d - ang eltype newpoint test_ok
" P, ~$ W7 h6 j* v - arc_calc emod next text
& A6 \6 y% p+ u( | - arclen end_ang next_vertex th-value( }2 B% {& n& N6 ~& J3 r1 l. w( h+ P# r
- assoclist endpt obl tile6 i2 q# E( P+ l# ^! h
- atprompt errchk off tile_rect9 r/ r2 B6 d7 L$ q4 i7 ]2 k2 }# P1 A V
- attag ethickness old_majrad tilemode2 [) Z- u! s! r- a' m* Y
- attprompt etype old-closed totang5 t$ I! Z' {/ q) `2 ]% W. S# B
- bit extru old-closedm tstyle+ S, n) U0 S- x9 ?
- bit1 fchk old-closedn u
% V- P3 h4 Z/ u; x0 t - bit-10 first-10-rec old-elist undo_init
* e- N/ h2 @9 G( c - bit-11 first-10-time olderr upsd6 j8 B; T. B0 ^3 N. [
- bit2 first-11-rec old-fit v' x$ X. m, E. {* x6 ^( W( |
- bit3 first-11-time old-idx va
" L; s- a' |9 C- e - bit4 fit oldlist value, A6 H9 Y% m8 o
- bit70 frozth old-spltype ver_4
7 ^5 }3 t, J) W7 s* ?. j$ y - bit-70 f-vis old-u ver_ang1
' P/ ^% }/ k5 s% l- N - bit75 fx old-v ver_ang2
9 D2 ?' U- T1 z' Q* z - bk-up get_color on ver_col6 C1 X% M* C1 p, {# p5 `. l
- bkwd getcolor onoff ver_colsp
6 V- [' v6 Q9 Y2 t+ u" v - boxlength getindex on-off ver_eangle
2 w. X4 | T# M1 G - bylayer_col getlayer patlist ver_hght+ E% v+ ]7 r# Q( l) C% b
- bylayer_lt getltype pattern ver_majrad
- N j9 M# P/ y; X" D+ _ - calc getthickness pltype ver_obl. |0 I$ j: N) \; w- C; H, n
- cancel globals polytype ver_pt10 \8 E1 ^1 g2 J7 G' B2 Q
- cir_calc ha pre ver_pt2
6 N8 E5 ^) K) ]# F- ? - closed ha-prev proplist ver_pt3$ z2 [2 s( E) @% T+ W1 `& k
- closedm help_entry pt ver_pt45 k+ ^. `4 C# {: ^* r. k1 _$ l7 r
- closedn hght pt1 ver_rad# E$ R5 b" c- |7 G/ T
- cmd icvp pt1_eq_pt2 ver_rot
& c( c2 O! a- p1 D# H# B - cn image_add_vector pt2 ver_row
* V, u5 u. {" e+ J( T - cname image_clean_variables pt3 ver_rowsp/ t! v5 l8 q$ A% o; X
- cntl-pt-indicator image_cross_product pt4 ver_tag
/ r% C, m- m" i7 F* N9 L9 m( D - code_71 image_disp_opt ptype ver_u. N* P7 W6 B0 M/ b
- col_tile image_dot_product radius ver_v1 ~1 S: z3 d' R0 t7 Z# C) ~- ]
- col-idx image_normalize_vector rational_spl_flag ver_wid
/ q+ G* E @; A+ t D& J, B - colname image_rotate_vector reset ver_x17 F/ g+ @$ n- T+ O' k
- colnmlst image_scale reset_flag ver_x2
8 ?4 B3 N! S, z3 l5 w8 M - colnolst image_scale_vector reset_lay ver_x3' k: a- M& D3 P, s# Y
- colnum image_update reset_lt ver_x4; _3 I; H+ a$ x+ A
- color index reset_uv ver_xline_pt1
* ?# j: |; U! e& N0 Q) T$ X4 p! P - colorname inv rot ver_xline_pt2
3 l4 y3 X# a% e# q! \ _ - colorno item rows ver_xline_x1
$ E. @6 h) Y; L- a" t+ o - col-sp item1 row-sp ver_xline_x2$ ?! [# ^# E/ p, k
- columns item2 rrat ver_xline_y1" {) E! u4 l6 ~- l
- con itemlist s ver_xline_y2
; K1 a5 |! u3 l9 a1 E. F - coord jlist set_action_tiles ver_xline_z1
& }; M, I2 P% G: [" E! ~8 R - ctr jlist_act set_just_idx ver_xline_z2
; Y" f' f0 |: K0 ] - cur-10-rec just-idx set_tile_bk-up ver_xscl( s$ f- l. R( k5 R& L4 G
- cur-11-rec layedit_act set_tile_cntl_pt ver_y13 h4 v6 f* `* c( |& k0 Z
- cvpname lay-idx set_tile_data_pt ver_y2
$ u% l( }& s1 P3 ~& L3 A - dash layinfo set_tile_dirv ver_y3! H6 K: H2 p2 C! F9 {
- dashdata laylist set_tile_edges ver_y46 E% d1 K9 c6 K/ K5 {" D
- dashlist laylist_act set_tile_endang ver_yscl
: t! z4 z3 |3 B- P1 M4 I& \7 Y - dashsize layname set_tile_hght ver_z1
7 F3 B& |& m; a/ F/ m0 M1 P: K2 G - data-pt-indicator laynmlst set_tile_icvp ver_z2% C5 f# ]+ a) h
- dcl_id layvalue set_tile_just ver_z3! o( A3 C0 i) ]! }/ z
- dd3dface line_calc set_tile_obl ver_zscl
" r/ k* {5 i' P0 M8 t+ l* n - dd3dsolid linetype set_tile_prompt verify_a' f( W2 Z- W' ]/ x1 \ z6 K0 p
- ddarc list1 set_tile_props verify_d
5 t; Q9 p3 e2 e - ddblock longlist set_tile_pt1 verify_i9 I5 n% ^8 O8 c ]( }
- ddbody ltabstr set_tile_pt2 verify_xline9 B7 j& f0 V n% \$ q9 D
- ddcircle ltedit_act set_tile_pt3 vfy9 P% W' n" V% S5 j# O
- ddellipse ltidx set_tile_pt4 vi
( e' {) r4 c/ l* X - ddgetprompt lt-idx set_tile_rad vlist
* W4 o; w" }3 I( d$ Z9 S% k$ v - ddgettext ltlist set_tile_rc vname
! V. l9 V4 |! ~& C! \3 n5 w - ddimage ltlist_act set_tile_rot vpf! G4 b9 @" ~4 Z9 y8 p
- ddimen ltlist1 set_tile_scale vpid1 b( R/ A, ^2 S1 c3 k: q& [8 \
- ddleader ltname set_tile_spline_props vpldata
y6 }: A3 V. V - ddline ltnmlst set_tile_stang vpn
, d+ D$ D: F. {3 |9 r1 f1 D - ddlist ltvalue set_tile_style vpt. \! R( k- k, n6 l2 a0 l4 P' \4 ]8 `) }
- ddmline ltype set_tile_tag which_tiles" c, [9 V6 J' l; {7 ?/ ]# g z
- ddmodify_err m set_tile_text wid
; D6 O/ Y# m0 z8 Z - ddmtext majrad set_tile_vpt x' P# [1 x6 j0 l% Y/ K
- ddpline make_lay_lists set_tile_wid x11 v6 @% R; w; k# [/ H# T
- ddpoint make_lt_lists set_tile_xline_pt1 x2
. [2 }9 k2 p7 k2 i# z8 @ - ddray mdashlist set_tile_xline_pt2 x3$ l- j5 E, p7 K$ I/ k
- ddregion minrad setcolor x40 [! M) u% U$ x s1 }3 X. y
- ddshape modify_3dface shght xdlist( T' h H9 [! i
- ddsolid modify_3dsolid showpt xline_pt1
8 c$ f" u7 @, V9 b% _. i; Q" S) H - ddspline modify_arc size xline_pt22 y( H! [8 b) Y! ?5 }: k6 k# A. _
- ddtext modify_block slist xline_x14 \. V2 G/ s6 z
- ddvport modify_body sname xline_x2( ~& d: F7 a: n0 l6 m T
- ddxline modify_circle sortlist xline_y18 @$ ^2 ~: _) O G/ p S
- denom modify_ellipse spltype xline_y2
6 U: l5 P& D6 W: i9 _1 X* _ - dialog-state modify_image ss xline_z1
2 a+ s% u! M- z0 Z1 w7 F8 g - dir_pt modify_line st_ang xline_z2' U! ?6 A' L- T" R
- dir_ptx modify_mline stpt xscale
4 _0 o' v) O) u - dir_pty modify_mtext style_act xx
}9 b0 R1 b5 B% I - dir_ptz modify_point style-idx y* m# T# L8 j9 z4 w. ]+ U$ F
- dismiss_dialog modify_polyline style-list y15 Y" f" g. ~' G1 h. x; V
- drawpattern modify_prop_geom tagval y2+ f' y. E8 S% _* R, k
- echo modify_properties temp y3: P5 q5 J/ q7 A1 B# E# g
- ecolor modify_ray temp_color y4
% `, \5 N- K& Y7 Y6 N - edge1 modify_region temp_dir_x yscale7 Z9 p; k0 e1 n ]
- edge2 modify_shape temp_dir_y yy: O4 d3 ]6 h- o, V2 k
- edge3 modify_solid temp_dir_z z1
. p! H0 Z) ~/ v" B( V' T- B# ` - edge4 modify_spline temp_xline_pt1 z2
$ ]! a$ T' y( B - edgetest modify_text temp_xline_x1 z3
9 U, ^! }0 | ~9 } - elayer modify_vport temp_xline_y1 z4
$ k1 n- X/ s8 }6 {+ [9 M2 _* A' A( ^ - elist modify_xline temp_xline_z1 zscale' P, X j8 Z* t' f
- ell_calc modlist tempend_eang zz
& } X2 h) L8 i v ` - dir-idx safe_ddedit ver_MtextWidth xcliponoff
; A; I# o2 D9 ?- u# x - MText_style. A5 P5 O0 D3 v, m P
- )9 [: o# M f9 x2 [" [
& Z2 H# c& J2 u' B5 n3 Y# Z- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
. _6 [' K8 _ S5 Q `; S - old_error *error* ; save current error function
& K3 V0 [& R' n! B$ W y# T - *error* ai_error ; new error function
; S, K9 C9 g: _) ?. D8 T. [ - )
0 U- D0 N( X" D& D - ' e3 O- l0 d4 x0 K- f
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
2 Y) j& O' C! g - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
! h$ z u$ D% L7 U$ A. u7 N - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
0 ^% I6 r# D5 ~# @- V/ m, L) |. r - 3 x) \) x2 L" z2 X. x: ?
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
* S7 N- ]3 p. O: A8 v1 `4 o; H% r - (t 1)))- x' c7 [) H* B
- (cond
2 y0 C2 m# p: K9 H - ( (not (ai_notrans))) ; Not transparent?; `9 |$ V$ Z# l$ J* a! I
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?4 K m, ^: c, f$ x6 F4 X
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
! g8 O" D: R$ I# h - ( (not (setq ename (ddmodify_select)))) ; object to modify?
) r% P. U3 q) [( c0 j+ P4 r - ( z7 b4 K1 E# A/ Y* G& X
- (t (ai_undo_push)
% \& N! ]0 ?$ t- f- }/ i+ h& p8 i - (ddmodify_init) ; everything okay, proceed.
4 g1 f& @/ [# ~+ [* b - (cond7 Z3 x& m0 J# N e4 i. Q5 w+ j9 ]! t/ E
- ((= etype "LEADER") {2 t: \, j( I' P- B5 T
- (setq help_entry "modify_Leader_dialog")) O! p5 g* F0 ^" P# o; p
- (ddleader)
9 j' H- D2 @$ q- ^9 O* h - )
! w3 a3 x `8 } - ((= etype "ARC")
' G5 I, ]+ t0 f" O i - (setq help_entry "modify_Arc_dialog")8 j0 T9 `' S3 v6 G
- (ddarc)
! Q; y3 Q4 u$ n: S1 H: _, ]6 c& V6 P - )
8 U* ~1 D D. u4 k - ((= etype "ATTDEF")' O* q" ~) S1 o; T6 J% c& K5 C
- (setq help_entry "modify_Attribute_Definition_dialog")" y! B# t" o+ Y8 {
- (ddtext)
& n( o9 `3 L# T( E' ]! x - ): Y- y: O1 N; O
- ((= etype "CIRCLE")% ] f/ `' b: r4 d/ C
- (setq help_entry "modify_Circle_dialog"), F% Q) k# p% O8 q
- (ddcircle)
" ?2 c8 x% f" G* q2 c( F - )5 N& k# U$ n R. h' O2 k6 p; l
- ((= etype "ELLIPSE")
3 e' o# Z2 V* X - (setq help_entry "modify_Ellipse_dialog")
7 A6 M0 G5 I5 ~/ O7 C! A - (ddellipse)
% F7 w. Q( d& N - )
, i8 n1 ~, a, z9 [1 _9 m% O1 v. S - ((= etype "3DSOLID")
& T; |- A" Z* z) F* x - (setq help_entry "modify_3d_Solid_dialog")' i" W1 t/ d F9 A
- (dd3dsolid)
3 x- \( v* D/ s. H9 Z$ X) Z - )+ m( Q1 `) [& f1 t4 z" T8 _
- ((= etype "BODY")7 I3 R: t5 }/ G6 X$ b
- (setq help_entry "modify_Body_dialog")
2 j6 F, H7 s4 b7 p+ y# V - (ddbody)2 U5 s9 f3 x: j7 l
- )
% R) p6 m0 O- J; D1 o - ((= etype "REGION")
# G( J6 o7 B. C$ G - (setq help_entry "modify_Region_dialog")* d, @1 s4 m! s
- (ddregion)
3 z- O& a- R8 V6 e4 \ - )
5 A4 i# o) l% Y; @( _ - ((= etype "HATCH")
0 ?$ T6 f+ n0 J- ] - (setq help_entry "modify_Hatch_dialog")
9 J' y* a- ?0 i# i/ r - (ddnewhatch)( u6 c/ w# M0 t2 M# B! ?
- ), H& J! E7 d ^; P: y( J# W
- ((= etype "SPLINE")1 N& a4 A* j. r7 K" l% f2 \) V
- (setq help_entry "modify_Spline_dialog")8 N/ G' }! P; h, D$ V, s% L
- (ddspline). s( f) _5 B1 U
- )
; n m, `7 O: L" K2 t& p - ((= etype "INSERT") ; see ddblock for help_entry
`8 n5 B# r3 w6 K! q% T - (ddblock)2 o# P, B. U' D q' D" l
- )- M8 ]% f7 V- b6 X
- ((= etype "LINE")) m; |; A: ?) S4 p& r: `
- (setq help_entry "modify_Line_dialog")
) \1 J2 _8 D/ ~$ I% i' n - (ddline)
/ o) x4 p- F1 Z" Z6 F* \. D1 m - ). I" g- m1 T# l
- ((= etype "MLINE")
% e O+ A3 m! P- W% @' u - (setq help_entry "modify_multiLine_dialog")
1 `1 o5 d( w }+ c9 a - (ddmline)
& f& ^( l# J6 U/ m' t0 ]# I - )) Y( G0 V" d6 E, \6 _$ G! i
- ((= etype "RAY")- |! k6 n4 _5 M7 N. S
- (setq help_entry "modify_Ray_dialog")2 X0 h5 y" M7 A l
- (ddxline)" g; n8 J: q, [5 a3 N, x' h
- ) T1 p8 B: u& T9 W$ \
- ((= etype "XLINE")6 f/ P8 i8 R8 }7 y" V
- (setq help_entry "modify_Xline_dialog")1 J c# l+ K/ f p7 w
- (ddxline)
- ~$ x% O/ y/ ~7 L+ O2 K; A% r - )0 R5 r' N7 Z7 S! x, F( T
- ((= etype "POINT")
' _4 p) @/ a+ c+ Z - (setq help_entry "modify_Point_dialog")2 a( c, J$ R' R: n- [0 S% R {
- (ddpoint)
# T# `6 f7 e8 y - )7 \7 [& g* A) ^9 e; F6 w3 R: c* _3 }
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
1 p% ] A7 u8 v2 J+ ~( b9 _ - (setq help_entry "modify_Polyline_dialog")
$ o8 L4 f8 d. K8 ?1 U, X. u; B- o9 n, T4 I1 D - ;; If a 2D pline, check to see if it is planar to the current" e4 I2 c6 b' l0 j/ i
- ;; UCS, reject if not. To see if the pline is parallel,
& d% W. _8 I, Y2 v - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
5 f; m% ^& b' s' P - ;; and then converted to the current UCS and checked to see if0 Q. Q) w# f3 h
- ;; it is equal to (0,0,1).5 @, d- U5 q! Y) S. Z8 ], K# P
- 9 d/ O; p2 Q' B, b" H# W
- ;; Incase the 210 is default and not in the dxf list.
) |& H) _! q6 G( A& H - (if (= (assoc 210 (entget ename)) nil)
+ D0 u# u6 K/ Y, [# l - (ddpline)
% [8 }1 a8 e J& w( c& ~1 d - (progn
7 v: a& {! q3 ^# d1 t* d - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
5 ]$ m% ]' b( e7 V _3 I - (not (equal '(0.0 0.0 1.0)
. B7 K& E4 V, T+ P+ h1 n - (trans (mapcar '+5 I( ~; U/ n5 K* z0 ?! i
- (cdr (assoc 210 (entget ename)))/ z, f' |4 j4 ]' O
- (trans '(0.0 0.0 0.0) 1 0), U: B$ j9 _, }& ^5 X
- )+ ?( i! E9 ~* U$ S7 ^2 x
- 0 1
: R( q9 B/ q5 |; ^% V; @# \ - )$ o4 t5 C% K( g y* E8 m& N+ e
- 0.0000000001 ; fuzz# ]/ _ m1 y9 k6 u% r* h
- )' `7 e# l# `8 x0 g- I; m
- )1 D8 ]; [- U. A; l0 a% K: K
- )2 V+ e! F, L+ W+ e
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")9 z0 f7 F$ e2 A" l9 I5 K: i- O
- (ddpline)
" w+ G4 {. J" ~, A4 q; K - )
+ `( G6 v& r8 r0 @ - )8 y9 z8 T; T+ K; R6 x3 w
- )
+ B+ l& p: ^4 T0 I- ^9 } - )7 {: \8 s- r5 O8 F) j
- , j: |; Y0 N y
- ((= etype "SHAPE")
5 l+ v" ~# I" H# z/ E% |7 q - (setq help_entry "modify_Shape_dialog")
. Z6 q( n1 a8 U+ Y - (ddshape) n- C i' u2 Z! `, W6 Y# f
- )6 Q/ b3 d y' I% h1 m
- ((= etype "SOLID")
- l# T N: c9 D+ ? - (setq help_entry "modify_Solid_dialog")
4 s+ t" [; [3 i4 q# v: f. B - (ddsolid)
% I2 g9 K! v. D" X8 ~# j - )5 D% ^: A7 V+ ]+ S
- ((= etype "TEXT")* |, s e, Q0 {% W
- (setq help_entry "modify_Text_dialog")
3 `9 @" S! w( o4 i. M/ l - (ddtext)( H7 J/ d6 p* r$ C/ @$ ~0 c( I& t1 A
- )! m3 C6 P1 I$ M' I ]1 V
- ((= etype "MTEXT")8 h8 [9 _) R A% y6 R. }. F! ?3 e- f
- (setq help_entry "modify_MText_dialog")
7 ~, k* E; q6 w - (ddmtext)
7 u, f$ m: j$ ]0 r4 Z - )3 a% F) V* U! ]/ K& {- P8 B
- ((= etype "TRACE")
! w5 Y4 }8 {8 f% f8 g9 @" {3 ~& j# u - (setq help_entry "modify_Trace_dialog")& s* w0 L3 I Y$ T* z
- (ddsolid)
2 k$ n+ j9 e# s i) E3 w$ `2 r9 P - )
+ F$ A) t! p' m- K - ((= etype "VIEWPORT")
3 R) j+ V3 |% B, s Y - (setq help_entry "modify_Viewport_dialog")
! @, a1 j, o. B; o3 P8 Y! j' j - (ddvport)5 u5 ]3 b; h! `) t7 k" R; y
- )
; d' t/ L/ S$ ~& ]# g. M - ((= etype "IMAGE")3 J1 u+ M _# i! e) X* l: X$ b, @9 V
- (setq help_entry "modify_Image_dialog")/ T O. j+ V, a1 @" }' r
- (ddimage)" b1 u0 y% f9 X9 Y
- )
4 B7 W d9 e) b - ((= etype "3DFACE")
2 e! Y+ p$ v6 G9 M d - (setq help_entry "modify_3D_Face_dialog"); f. |5 K6 |: L0 u; M
- (dd3dface)2 i4 J( f* R2 d+ Y
- )* q+ W/ n* h4 h7 h6 k% T
- ((= etype "DIMENSION")+ C0 ~ _* j2 L) m) d0 W
- (setq help_entry "modify_Dimension_dialog")
6 J5 s0 R" C: k8 [- i - (ddimen)
1 m7 L" O/ {. F - )
: V, ^9 d' E+ Y - ((= etype "TOLERANCE")
+ G$ ]5 m9 [) w8 P - (setq help_entry "modify_Tolerance_dialog") t8 p, C/ y+ V& R/ L3 a( S
- (ddtolerance)
" k9 g' c! s. q& p1 L3 \ - )5 |/ Q5 `" _1 T, x/ u/ F- Q8 i' ^" g
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.
* c1 x8 c1 _ H) i5 a - ;; This allows DDMODIFY to work on any custom object or any new object type Q: T, C2 P9 C _! C
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.
' `! R% h& R5 L - (t
# I9 l$ i2 X% r( U+ g+ Z - (if (and (not ddchprop) (not (load "ddchprop" nil))): u( r# C( |3 @) s. @$ L1 \
- (princ (strcat "No dialog support for object type: " etype ".")))
) @7 }6 s3 Q* \& b/ ~ - (progn
, I& p9 x+ E5 W - (setq tempss (ssadd ename)) t* `2 d9 \2 T" L
- (ddchprop tempss)
6 X, H+ V/ Y5 `# n! M; B - (setq tempss nil)) U8 t+ d6 t/ b4 G) g
- )! f. F2 r. g" v
- )
s* U% r, p9 j1 v& o - )7 o7 r- q# T9 _. z" \9 H
- ;; Previous fall-through condition.2 t* N) }% l( L/ _0 c- j# U
- ;; (t (princ (strcat "No dialog support for object type: "4 U9 b0 t) ^3 A9 d6 V
- ;; etype "."- n1 r6 D) L. J+ H
- ;; )9 b( K* R2 l/ X& J" {! y
- ;; )0 A6 \; b h$ B# q% C7 W
- ;; )
$ h/ |5 A4 n! r7 W. m) m1 B - ;; )# y$ O+ T% E" h2 R {
- (ai_undo_pop)% s3 g0 G# W9 c4 q$ L: e
- ) m- }, C! V# H; m) m; L8 d
- ), L# r$ }8 P7 z
* }7 E# J4 Y: H! W) } J9 I- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
8 ~! ^& ` T( S. H( ]/ p# P& v3 x - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back4 O: f. I+ \+ ?- x0 k( v
- ) ; to what we started with1 I# n% V% Q. U1 _! l
- - S( }& J# D7 k; {7 H
- (setq *error* old_error)
: b; Y/ t7 N! s - (setvar "cmdecho" old_cmd): }8 F0 v5 ~9 m L: W N
- (if (not reset_flag) ; if object was modified, then$ X8 K8 z0 f+ ?6 x {8 m
- (ai_return ename) ; return it's ename to caller1 X$ u* a; |4 [
- )- r5 c) Q6 d& [: r; C6 {
- )
) R4 k+ G: H# h' P2 j& N0 D" S - ' Y. w0 `) u: T- {
- (defun checkForLockedLayer (ename)- P a8 ?, N- N' { c& S3 V
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))8 ~% F% A9 A, `+ f' ^
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
7 ? r6 u8 ^% z+ H& i8 `5 d3 ~* ^ - (if (= layerflag 4)
# [3 x3 O; ]1 L6 { - T; s" \$ Z- b' Z! E# |
- nil
# K8 X+ T- _: W1 ? {% `0 {: o) y( ^ - ), ~, n5 F; S0 O' Y' O! n( R! w! G
- )' ^& j1 Q1 J3 p& t" `
- 6 _& ~- J0 ]7 q8 g; \
- (princ " DDMODIFY loaded. ")
! e, b/ _! ~7 v* M- L: G* E5 [ - (princ)4 j# T2 w& [/ q* u/ Y# |
- ;;;???;;;---------------------------------------------------------------------------------------
) K b5 |+ V. s! o% u, b
& L6 x- x" w1 s- ; Next available MSG number is 8
+ O# b2 I9 v1 v5 A$ A - ; MODULE_ID DDUCSP_LSP_2 p* I2 O: j1 d
- ;;;( D8 p7 b% k/ I3 t
- ;;; dducsp.lsp
4 v9 B2 ^/ E- l1 w" |, G2 V. N - ;;;# b/ F) m7 F# m4 \9 B: ]1 b
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.; ?7 ~/ c4 P: I0 [" s
- ;;;
+ Y0 a( a3 ?# N6 @4 \: c - ;;; Permission to use, copy, modify, and distribute this software
" F# h( C3 x* w - ;;; for any purpose and without fee is hereby granted, provided
' R; H8 w! ~( M; l - ;;; that the above copyright notice appears in all copies and: H& R( i. k, f# a7 g N% l0 o' p
- ;;; that both that copyright notice and the limited warranty and
! A3 i- Y, O# M+ D0 j - ;;; restricted rights notice below appear in all supporting& B9 f5 {/ X5 b" w, K! J$ b4 J
- ;;; documentation.9 D6 V$ T6 C' c, |1 G+ [8 P$ z% v
- ;;;* U& P/ S0 W. O. C3 F
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
- b# ` Y3 b, Z+ f2 Z - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
! b- j. s2 t* B8 l - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
$ J$ @; U: y8 w8 B9 f/ i - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
. D9 P5 P- V% l9 \ - ;;; UNINTERRUPTED OR ERROR FREE.- w7 i# O+ _ \. [' E1 A' Q3 i3 c( b
- ;;;3 F9 c; F/ V+ A7 D: V
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
6 J& v8 P1 q* p8 J - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer4 M% A2 j# d* T+ R, ], @
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
2 n/ P% L+ G5 p- N9 w2 f; ]4 r - ;;; (Rights in Technical Data and Computer Software), as applicable.
0 _4 D0 h) ], H( Y - ;;;& M( p7 d: V9 P5 D5 K4 U, ?
- ;;;.8 s6 [! U& V: P* G# [* z$ k
- ;;; C:DDUCSP - User Coordinate System presets dialogue.( w- `$ e( D3 o0 w7 [6 Q
- ;;; # G: G; n4 } d
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
$ }' E3 M) w3 n7 j: @, g - ;;; slide images are in ACAD.SLB.
7 W1 n' O4 U" b. C I. z7 G - ;;;
' K: h. W' W$ v; G - ;;; ===========================================================================
, ~! k+ L/ D* s) v: ]1 t ` - ;;; ===================== load-time error checking ============================9 ]: N1 Z% M: ]* e) H. U! I8 s
- ;;;
* i8 ~% \% n$ ~
; F2 X0 v9 o1 m% G- (defun ai_abort (app msg)
% M# P+ S, N7 M) S2 E. Z) F) e% _, x, c - (defun *error* (s)
+ M) A1 P. I2 A- D# O4 Y - (if old_error (setq *error* old_error))
* \4 ^+ d7 F: k - (princ); Y8 i* @1 ]% z1 ?
- )
/ z* b3 f: z& a0 x: f0 V - (if msg
* n- W- @# y# `2 W - (alert (strcat " Application error: "$ @3 K& V- Q8 q/ A7 q& L, z8 W
- app
! y% E7 O! C4 r& w* c* T' D) G2 o& T - " \n\n "7 P. d* v' \" P5 l' a" y
- msg
% n I8 t0 {3 a8 t - " \n"! E/ L% N! A$ {5 L$ N
- )7 h1 J" K, b1 N1 N
- )/ N4 l6 O1 |' K+ n
- )
6 u2 p. _ D1 E5 I3 f4 H - (exit)
" c8 d; n! J8 F9 O - )
' }: d! U" b# m! X& K# K
- s6 r- d, T$ z- N) b2 G2 N- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,& @) }: f4 P) v) A* }/ }
- ;;; and then try to load it.
; P6 X6 \3 B# a1 p* @2 y - ;;;
- r J/ z: w9 I - ;;; If it can't be found or it can't be loaded, then abort the
$ U" E- P: k( A H - ;;; loading of this file immediately, preserving the (autoload) | w. x- [1 y
- ;;; stub function.
4 ^+ |. `9 J: [" z - 9 @. a/ j5 R; N) `% s
- (cond
- g2 n0 i% e$ g/ ^# p, Q( j - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.! c0 R, q5 t( q2 |. H
$ @; `, Z0 {5 [" |% p; [/ w4 P- ( (not (findfile "ai_utils.lsp")) ; find it
4 s: ~' ~/ }. o- T/ t - (ai_abort "DDUCSP"
, P+ D( w' Q5 j4 z# ] - (strcat "Can't locate file AI_UTILS.LSP."# [) u; V f) d0 Z6 K0 K
- "\n Check support directory.")))) z3 ~$ M9 M1 d/ @7 m6 |
/ w* m ~) W- D: m" @6 N- ( (eq "failed" (load "ai_utils" "failed")) ; load it
: s7 t" G( Z/ }1 y; o - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))& s; {3 c: n5 {$ n! L, H+ {' n
- )# N( ]8 \. O$ s
2 U$ u( t3 ~- b9 r5 N- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
# \. a+ m2 X; H - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
/ f) h6 g! E/ R9 s2 x- p" z - ) ; ai_abort's alert box dialog.
3 q9 b9 y l, ^+ Y
9 Q) N6 L! U. a7 b7 ?- ;;; ==================== end load-time operations ===========================
2 N! c& p/ A$ o2 d3 \! D/ Q - # d D) J0 w! A& z8 Q& t
- (defun ai_ucsp_start ( / program)4 l; x3 R: c" h
- ;; Get program name
; |' M6 g3 A/ |$ H( q - (if (not (setq program (getvar "program")))& i* H2 [1 ^8 X) o. @
- (setq program "acad")
$ s6 @0 Q( P$ H9 }8 g1 J$ p2 `" `- [& G - )+ A; v/ r# v7 e ]% j* } S
- (foreach v0 '("world" "left" "cview" "top" "front" 7 h* Y4 w c; ?: q U5 z9 J
- "bottom" "back" "right" "prev") C5 Y3 B" V. l0 R9 Y
- (start_image (strcat "ucsp_" v0))! w0 J) y* x# G; c# `4 M2 O4 [/ o
- (slide_image8 x9 C$ a9 b0 z6 z% z1 N/ Q- I7 F
- 0 0
$ X4 k7 y( V; r/ K - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
8 l1 m# L2 _+ S, C" M. Q1 E - (strcat program "(u-" v0 ")")
1 m/ x. e+ N$ c2 z+ p; j0 u - )
& K6 O* B# P3 q6 m1 l5 h8 ~# S - (end_image)6 i9 k& p0 f2 ]
- )
" y, i% z! V7 B f! `1 ]3 C+ U) h - )" l" t" k) T8 z+ s; A* Q/ _5 v* K( [
- 7 K- D' @% g1 F" u6 I1 [8 D' s/ l
- (defun ai_ucsp_set ()
( A ]( R/ c/ e. n - (if ai_ucsp_sv
& Q2 R3 U7 U# _* N - (command "_.UCS" "_V")
& c" J. S3 q' M+ m! N - (if ai_ucsp_prevs% x7 L; Y8 @7 l4 ^& A6 Q3 w
- (command "_.UCS" "_P")( m; w' _ {" P. b2 K+ {& O+ |
- (if ai_ucsp_chg
& P$ W7 k" o3 w3 V - (progn2 E3 V2 ], v0 T' c2 W5 c& [
- (if (/= ai_ucsp_a "*")
- G5 F" C5 c% J# h; l: m; X - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1)): j6 ^2 d! }3 J% U, N: i: [
- )
$ b" c9 ~. u; `/ C- Z6 T& ` - (if (< ai_ucsp_pick 6)
/ I: \7 I& l$ C2 J: t' J - (setq ai_ucsp_set0 "@")
3 p! C5 T- x- x" \% S/ P - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")$ R' l! K3 Z" n) v( l% `
- )
" W. e/ i7 |( {# F - (cond ((= ai_ucsp_pick 0)$ ]+ l0 c; M1 v" D B
- (setq ai_ucsp_set1 "0,-1,0"
* q# A8 q$ o, ]' F$ O. A( k - ai_ucsp_set2 "0,0,1"
p+ o6 H* T, s+ ?/ B8 s% i# l) U/ o0 ` - )
; ], M6 O8 W& x- G% i6 `: L2 b, r - )
! P1 b) Y) A G2 K2 X1 J) i/ O7 V" N5 M - ((= ai_ucsp_pick 2)! _& o" ]& {+ d5 ]+ F- c$ Q y1 _
- (setq ai_ucsp_set1 "1,0,0"7 x+ I Q- P. N- E$ \- f8 U
- ai_ucsp_set2 "0,0,1"4 X% F9 f+ k R4 _( M( a
- ); S5 U3 o$ Y7 V2 q2 W& C
- )
; n! f/ R. ~/ H7 W/ z C6 y+ y - ((= ai_ucsp_pick 3)
; e8 C6 _% v( h - (setq ai_ucsp_set1 "1,0,0") i. {1 c$ h6 j |
- ai_ucsp_set2 "0,-1,0"5 V! q; x6 d! V: W# n+ n4 t
- )
$ d( V( N- Y: z5 n1 K$ B - )
9 r- E# m& `3 o+ E# r - ((= ai_ucsp_pick 4)
! n: O; W( k9 |% B6 e- B' C - (setq ai_ucsp_set1 "-1,0,0"
9 I5 I& F$ S+ z9 v+ _/ _$ h8 T( { - ai_ucsp_set2 "0,0,1"% R; n+ _2 i8 H; {
- )9 ^4 V- k5 K" K0 Y( a3 I7 r
- )$ l& G, V& L. S. F4 S/ L, p5 q: G7 {
- ((= ai_ucsp_pick 5)
: }2 w# v# r' |$ \: L7 C - (setq ai_ucsp_set1 "0,1,0"
_0 L: t$ E! m3 @ - ai_ucsp_set2 "0,0,1"
% t% B. `1 X. m3 } - ), R7 R' I' N2 v9 X8 k
- )
8 K7 X" V% M( c S2 j" P - (T! ?* o* X) n8 z- N& R8 M, R
- (setq ai_ucsp_set1 "1,0,0"
& a; n9 g( U9 c6 [, G' G4 e% u4 H - ai_ucsp_set2 "0,1,0"
0 ~ S) }# |4 T# K1 z - )
! w, t' a7 ?; ?+ n1 O1 G - )
4 }+ I) q9 X: k- ]8 u, p - )
. L0 T3 U6 T M9 W - (command "_.UCS" "_3P" ai_ucsp_set0
8 H y+ Y3 W' S& h3 B+ | - (strcat ai_ucsp_a ai_ucsp_set1)
( ?; z! p9 e3 \0 ~, J - (strcat ai_ucsp_a ai_ucsp_set2)
5 Z2 H/ ]* y. J - )
) H2 v3 n4 Q# i - )' q) K6 @8 j; G5 W6 w8 T7 g. i2 C$ B
- )* V0 B3 ^9 C: @7 @* R
- )+ U2 a* O/ A" ?
- )7 s X- a7 A) e1 r @
- )
' N9 M6 c* @& K7 \ Z+ i1 m
% V& v$ G1 k( |* C: h8 \- (defun ai_ucsp_p (val currtile)" y& |; |% h6 L# V/ a1 ~
- (mode_tile ai_ucsp_currtile 4)5 X' E7 \6 E6 {
- (setq ai_ucsp_pick val! V5 q( I7 W0 W2 B5 J: b' |+ n1 y
- ai_ucsp_sv nil( A# K9 w0 T8 V) @5 ?$ h. V
- ai_ucsp_currtile currtile5 S# x5 v7 d" |1 K `. f- j
- )
) }4 I2 a4 M3 A. } - (if (/= val 1)
% m( f- f2 k2 C. U* S: _" F: d - (setq ai_ucsp_chg T)
5 s9 P6 [) k5 d) S: n+ m - ); D" ^6 t5 N, c- Y4 H/ J! I8 ~* u; `
- (mode_tile ai_ucsp_currtile 4)
3 m- R8 g. d( U6 \2 }' ?$ v - )
$ v' i& n0 s! h# `- l5 M( {1 N
+ J; N( q3 }! y" t% r- (defun ai_ucsp_swcs ()
9 f, u. o$ ~& |% a+ l& `/ n - (mode_tile ai_ucsp_currtile 4)% I6 p% a3 ?0 l S$ |1 \1 }; l
- (set_tile "ucsp_a_wcs" "1")
7 R% [. @- _) H - (setq ai_ucsp_pick 6( W$ p) q! i \
- ai_ucsp_sv nil
* t) V7 o2 \9 n- h - ai_ucsp_currtile "ucsp_world"
7 e- n" ?: p! f( U, i - )
% I: g/ x8 n' t: p5 x( r2 e& F - (if (/= 1 (getvar "WORLDUCS"))
/ [- U0 Y! p# ?: l! L0 w - (setq ai_ucsp_chg T)6 J! @# c4 L* ?2 i
- (setq ai_ucsp_chg nil)
4 {7 K C4 M% w7 |3 a# W3 t - ); d2 K0 r% g$ n! I T3 u/ c
- (mode_tile ai_ucsp_currtile 4)
0 R$ M4 T, _& a7 A i - )
) }) M* L* V& P
- c5 o u6 m9 g5 F; s( l0 V- (defun ai_ucsp_cview ()
" B: J( x L- q C' e0 N - (mode_tile ai_ucsp_currtile 4)
: O- L; r/ F! t' V% D, v - (setq ai_ucsp_sv T
]+ O/ q9 `) S8 `& v1 |' ?- ]& w- l - ai_ucsp_chg nil( y) g: f3 n; i" R. D4 y }3 ]* {7 ^
- ai_ucsp_currtile "ucsp_cview": X% y2 v$ w" W1 }6 o
- ). o2 W# m2 {. t( M& j
- (set_tile "ucsp_a_wcs" "1")9 u+ p6 |/ Q5 i ? l* Y! Z
- (mode_tile ai_ucsp_currtile 4)
1 @# F v! I/ Z# j; y7 u - )
/ o- o% H7 y$ b2 q6 E2 }$ r
4 j; W/ m( }! `. k- (defun ai_ucsp_rucs (typ): }. Y- T$ `" T( T4 k
- (setq ai_ucsp_a typ)
, l1 I8 m% c6 i: M* w7 c/ _ - (mode_tile ai_ucsp_currtile 2). o3 Q# u& \' i) Q1 W" T* B& G
- )8 x7 {- Z h" {( V( M7 Z% B
8 Q8 H; B9 m" L: D" e- (defun ai_ucsp_prev ()6 n9 d1 a8 m7 n( A" {, [
- (mode_tile ai_ucsp_currtile 4), w6 ]+ H7 V. N" G% U' D8 d
- (setq ai_ucsp_prevs T
3 d* b( h4 c9 V. \$ z w - ai_ucsp_currtile "ucsp_prev"' O5 D' \) U7 l' I1 O9 F, L8 N4 @! ~
- )
/ m( u' |% @9 \+ N" O - (mode_tile ai_ucsp_currtile 4)7 q2 k( q, y# {. B
- )% j9 @( U+ F: e( D: I
- ' m$ q! A4 x$ j: c( a
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)" M' P% b! L) d: V) h
- (if (not (new_dialog "dducsp" dcl_id))8 D8 [$ D" ?% q1 S+ W
- (exit)
d5 [2 p: `% G5 `* [& g - )# T4 C0 `: W3 O6 L% m
- / K% A/ D1 T) T; a0 Y
- (ai_ucsp_start)# V% |9 {: B; [3 H
- (setq ai_ucsp_a "@"
1 b% m$ M, w( F7 c' L& f - ai_ucsp_pick 2
4 R [9 r! X; w' P7 X% J4 a# l( P - ai_ucsp_currtile "ucsp_top"7 `. O, ?4 b% E1 j) X
- )
$ m; e& s9 K2 N4 Z' V& F - (if (= 1 (getvar "WORLDUCS"))
. q8 g, {9 x( ~9 K - (progn
9 H# h) w; t; V& r - (set_tile "ucsp_a_wcs" "1")- W8 L. i) g; {7 N! Z
- (setq ai_ucsp_currtile "ucsp_world")$ h" f1 q) ^2 p' {6 q) E
- )' E$ x+ F5 z: |7 S+ F
- (set_tile "ucsp_r_ucs" "1")
+ ?: d6 a; A2 I - )( p5 x+ G$ e3 g) [# ?
- (mode_tile ai_ucsp_currtile 2)3 V1 s8 A3 e. t, g
- (mode_tile ai_ucsp_currtile 4)
. P, `$ m, _, o# ?( e+ ]$ v* D# O& v - (action_tile "ucsp_world" "(ai_ucsp_swcs)")" ?8 b. u. }$ l6 U! W6 K" z
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
) T" K% p$ |$ @9 P' q# e3 s - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
/ ?" Q! n! k* r$ s1 Y' i& F5 |9 V - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")! \1 j/ Q6 @, z' B% d" c7 o$ P
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
* z. [1 r. M/ a7 M - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")2 S$ ?; y: g" k- U/ c
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
' w. b+ m" J4 _4 U4 f6 T M - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
: ]9 A0 N; N0 A - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
% p% @3 d* L6 [5 O+ V - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
: m/ s1 \" ^# Y- t6 t( C! ~2 o0 P - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")+ E- O2 ?- u1 {4 w
- (action_tile "accept" "(done_dialog 1)")9 z0 P3 T* |0 {) m
- (action_tile "cancel" "(done_dialog 0)")
0 D4 k/ C0 h2 _# F9 V* M( e - (action_tile "help" "(help \"\" \"DDUCSP\")")4 t" D, J9 T' H' m
- (if (= (start_dialog) 1)
, l p. n3 d1 V2 I - (ai_ucsp_set)1 m9 e1 g0 x. q3 m* A
- )
1 p% o6 t8 V: ~' u9 y- q) e - )
) i* I% O( y* ] i0 X - 7 V4 k6 ? n) r; f% n. c
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
; d4 v$ A4 u2 d3 I' A& u6 N - ai_ucsp_sw undo_init)
9 M3 y7 t/ R/ o% M
0 O2 V9 l9 ~! ^7 ~- ;; Set up error function.# Y6 @5 V, ]5 u& R7 f& _
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
0 o8 B/ {- b3 H. v8 X - old_error *error* ; save current error function
7 r q @; m# j" q" |1 b- W% p2 L - *error* ai_error ; new error function0 v u* N2 _5 ?$ R5 {
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration8 W: N; s r# e9 c" G6 C% {8 y
- )- q# L: Y$ k. m
- 8 M, C; }. h F4 V
- (setvar "CMDECHO" 0)! x+ F# ^+ a5 E' ?6 k" y
- & Y& Z8 i: ~/ Z. v5 A
- (cond( l4 l3 M U0 o* l3 |- G4 ]
- ( (not (ai_notrans))) ; transparent not OK
- b' r( m2 h% T4 y' l - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?4 V# f6 a; p/ ^* f. G* P
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
. g5 z9 h, E2 x/ Y+ s& p, N - (T (ai_undo_push)
& y7 Z$ }3 n! V: X4 B1 k - (setvar "OSMODE" 0)" S" I4 i8 N$ C+ a. n9 A% s0 W
- (ai_ucsp_main)2 _: D+ I2 T. I7 W( ~- B+ n+ Z: V
- (setvar "OSMODE" old_osmode)- z3 F6 Y x* ~
- (ai_undo_pop)7 V4 v4 S) _1 q
- )
/ g1 I- J/ p' O: s5 D; P) _ - )
, d( V" D: a6 X- c! d0 t! p - : m( C8 u" R/ w j" m" |2 ^
- (setq *error* old_error) " Q8 q# k1 @% @4 f5 G7 D
- (setvar "cmdecho" old_cmd)0 r4 p1 n0 E6 j
4 @* H% d% e: a$ P) ~- (princ)
) l% \: X j6 i2 k) W9 c - )& Q% ? S' G0 t' p7 s1 v
0 c- B+ \" _3 K; E. f- (princ " DDUCSP loaded. ")1 W' k0 p+ \7 s
- (princ)
( [+ @2 X& o ]/ z - ( N' X$ H; v0 O* H7 [
- ;;;???;;;---------------------------------------------------------------------------------------7 `# `6 L7 f$ m" `- U
* g/ f4 P) M5 {9 t0 A N3 E. i- ;;;----------------------------------------------------------------------------# A5 \' m1 f) ], j+ [
- ;;;
* b* C/ k; ?# @9 y7 D" ]* r - ;;; EXCHPROP.LSP
" w& |, h: H" h1 H& @8 E - ;;; Polyline and text modification capabilities added by , x1 B4 F( g, _: b/ ?- h! e" L
- ;;; Randy Kintzley 9 X) G8 z% \* z# S9 k
- ;;; ; c: x) x* ?8 F5 H+ y; L
- ;;; Copyright (C) 1997 by Autodesk, Inc.
' o, d7 P* b9 H2 n2 B5 U- ]; f% R$ u& }9 H - ;;;
# }, L7 q0 { p- X5 D! E' u& c - ;;; Permission to use, copy, modify, and distribute this software5 G, d0 [# Z* P" o
- ;;; for any purpose and without fee is hereby granted, provided; r8 h- ~, b3 \
- ;;; that the above copyright notice appears in all copies and
9 ]0 C! k7 b: K9 ?+ Z* J0 I - ;;; that both that copyright notice and the limited warranty and# @% U$ p% h. l- |4 ?0 A
- ;;; restricted rights notice below appear in all supporting
. A) ]/ _4 b# m u j, q. T9 y - ;;; documentation.+ K2 S, R1 A; i M; d. g& J( f
- ;;;* L1 t/ H4 {5 e8 ?) T; x; t
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
0 f: \# R9 c7 D! w# q2 w+ ~ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
4 e/ }. U1 ]$ l1 M) }3 H% t - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.8 N* N- _7 ~+ K- b
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
! |* d- G( n, C! _* z - ;;; UNINTERRUPTED OR ERROR FREE.
* |4 z) a" B+ _9 g" k6 w - ;;;
) h1 e( l1 \7 D( l7 k; g - ;;; Use, duplication, or disclosure by the U.S. Government is subject to, @3 G5 [+ [& K* S8 o2 U- Q7 D% C. L
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
6 f$ b* Y: S d- G - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)3 [5 O, i0 ?, L% t/ c* }) V
- ;;; (Rights in Technical Data and Computer Software), as applicable.
8 h U8 a* T; Z% k C - ;;;3 @: @+ r4 @' K; F$ p7 J
- ;;;.
1 m) x* C1 y) P' T - ;;; 28 February 1997
& Y% e! ] _$ h - ;;;
6 z+ y$ }/ l( J/ c* x8 x, M - ;;;
3 j& C" L& @6 A8 i4 H - ;;;----------------------------------------------------------------------------9 {2 u" P& A, ?$ w. V% K. A
- ;;; DESCRIPTION. r$ R" X8 {9 D3 |) u5 W$ ^
- ;;;----------------------------------------------------------------------------
) q6 K- g5 i1 f0 |: V2 X4 e/ p - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
% N( P: L3 |2 T - ;;; command gives the user the abilitie to change several characteristics * P8 ?; Z" u3 s1 p
- ;;; of selected polyline and text objects.
8 T) H" S3 X- P1 @4 T) c - ;;; The style and height of selectected text objects can be modified
( _' }, c# d( G' @1 {# _ - ;;; (including text, mtext and attribute definitions) as well as, width and
0 b6 H+ R, F2 W9 B# m8 { - ;;; elevation characteristics of selected polylines (includes lightweight and
j/ c9 {7 B6 h1 u - ;;; traditional polylines.)
4 S" r/ y k0 z& u" A - ;;;----------------------------------------------------------------------------8 q+ @8 X" Z: Z2 Q0 L! R! h
- ;;;----------------------------------------------------------------------------
& O6 M o1 N% U$ a/ P7 M% ^/ w - ;;; Prefixes in command and keyword strings:
# L$ ?. E5 H6 S: N - ;;; "." specifies the built-in AutoCAD command in case it has been3 a- r) r$ H) m- j
- ;;; redefined.
3 o+ {4 J! k" {' _$ z - ;;; "_" denotes an AutoCAD command or keyword in the native language
0 f. N. N7 o9 Y' H! ]: |2 }2 V - ;;; version, English.) P( P0 P( V+ t; k: x
- ;;;----------------------------------------------------------------------------
/ ^5 e1 B0 @- A! ` - ;;;5 M' @8 O0 n( T/ J5 Q" B/ k' q" l
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3 d' v4 d$ E/ Z' }" n
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4 e C% z" W4 l* U9 l* G
- ;Functions created as result of loading file: exchprop.lsp
8 @! m) ?- _ a" q1 w* T$ m5 S - ; DDCHPROP29 ?# A! v, @4 R) J% ~* Y
- ; DDCHPROP2_INIT; C$ X. f4 t8 s- W9 {3 m
- ; DDCHPROP2_SELECT9 |( Q; m( D! x& q0 m' B
- ;# g5 z. h5 [. e) K( S0 @
- ;Variables created as result of loading file: exchprop.lsp. k1 M _/ e. |; O$ b- h
- ; OLD_ALLOC5 L* {& k2 ^% B% Q
- ;- S2 ?3 C6 G& ~; ?- T) X% F
- ;Functions created as a result of executing the commands in: exchprop.lsp
3 q8 I" t4 e. d0 u - ;1 U4 j6 R7 z9 r' B/ ^) W2 h, \
- ;Variables created as a result of executing the commands in: exchprop.lsp
2 G) v, z2 t# {5 x - ; AI_SELTYPE
; E6 l ~) n* y( [" x3 V - ; BONUS_ALIVE7 _$ n) ]5 T1 ^/ M
- ; BONUS_OLD_ERROR# y& p M) E3 G p( `( C
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5 K5 E# E1 Q$ V0 Z$ n R/ G/ o
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# F& P' J2 c) t7 ~ - + s' P; E1 S( c3 B6 ]
- ;;;) f: ~" w& N9 \6 Q4 g
- ;;; Avoid (gc)s on load to improve load time.! ?- K2 e6 ?! b" b% S9 H5 B# s
- ;;;; L {1 B/ i O& U
- (defun do_alloc (/ old_allod new_alloc)9 }# l- ]- f+ B
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))3 C0 c+ {: k/ T. Q
- (expand (1+ (/ 4750 new_alloc))). a" J' C' a. L& ^; G, [
- (alloc old_alloc)
t& j* T/ |. g, i" u% g+ t - );defun$ }6 d$ K& |7 b" l
6 Y2 E! R. Q( P1 Y- ;runs at load time - rk
6 s1 }5 a: e$ @8 Z# P* q - (do_alloc)
, R3 K- V$ r; @+ Y - (setq do_alloc nil). C7 ?; U7 Z' l- C/ k7 Q1 q
- ;;;3 B" J9 [: Z4 U# d
- ;;; ===========================================================================
6 v# e) i# L( ?% r* d( i - ;;; ===================== load-time error checking ============================
0 Q$ G2 x0 b( n1 E+ f, m - ;;;8 {9 @# D- O3 ?2 V0 {
; t0 j7 W, B# i. m- (defun ai_abort (app msg) * Y( \* f) h- {- B7 y3 V9 F
- (defun *error* (s)) x. @: p0 A1 X4 p, d- O
- (if old_error (setq *error* old_error))
# l( h9 z4 R. V% A7 Y x$ ^9 b- G - (princ)
" @4 D) w$ G# U0 K- `5 l. \. s9 C - );defun$ v* x( T& p S, `2 t! L
- (if msg
1 E1 |$ C3 T9 |( |) U O - (alert (strcat " Application error: "
- _; G/ |# ^* ~2 ]+ U+ ]" R8 R9 U - app
& y/ T; D' k9 O6 D - " \n\n ") {2 U* m7 A/ D% D
- msg
6 Z* i0 N& I9 a4 l - " \n"* ?7 [0 N$ U# f) E# q5 j7 x0 a
- ): H( V# M4 N& ] I
- );alert! ]( J! z5 q' I5 E# y. K
- );if
# }7 ?+ N8 B$ [2 C - ;(*error* msg)
& |% L! Z3 {# j1 P4 S& G - (exit)7 Q; t/ Q4 v) b/ G p
- );defun ai_abort9 |+ G* k! \3 \: t& B$ o
: ~ t/ M: J. t+ M- l6 o- ;runs at load time - rk
5 w2 ]0 c$ y/ X1 N6 B. W: I6 R - ;(if (and *error* ;added the if wrapper around this - rk.
7 ?' `. v* T9 ^ - ; (not old_error)
M6 t( O, q3 l# _ - ; );and 9 i# @5 w! e% H' Z' ] P
- ; (setq old_error *error*);setq
+ e! V5 H0 f4 C& H$ O0 d - ;);if2 c |4 @" o1 }
; [ l( k e' i7 n9 ]3 @2 q
+ O" x7 h. e7 R# N- E4 c, A5 S. @- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,% l/ @1 N. S% O0 o
- ;;; and then try to load it.( q8 n& V. X5 _
- ;;;# C4 ?4 X/ ~! E7 ^6 [
- ;;; If it can't be found or it can't be loaded, then abort the
' g% s; ~0 G; C+ p - ;;; loading of this file immediately, preserving the (autoload): E" M# J/ L* K7 ^& i2 G5 a$ ]
- ;;; stub function.
. S# `: i# a' {- w: ~8 s5 X - . N/ p4 V* I/ A4 \) J+ T
- ;runs at load time - rk.0 _ T$ g) R' P4 \* `
- (cond- O& |# O6 j4 K$ P
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
8 M% r4 i! o1 y" J' p1 X$ A8 K5 l - ( (not (findfile "ai_utils.lsp")) ; find it
+ e3 b+ u4 f' f1 N/ K; T - (ai_abort "EXCHPROP"
# `# @ a! v" N; p+ \ - (strcat "Can't locate file AI_UTILS.LSP."
& X7 W4 O/ O3 M" f& ~ - "\n Check support directory.")4 o- l5 R* x9 z4 S* k$ t8 c
- );ai_abort# F' a9 ~+ s7 r* |) S, G: U
- )9 R5 j6 l4 a' @
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
7 q* T ~( l% d- p+ T0 a" \ - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP") _8 z* k- q# |& t+ Z4 a- {
- )
! V- Y. V, p) \7 @; h0 o - );cond close0 X" ], x% @0 i% O, _$ M
- m2 s9 M( r4 q) D. l0 b
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
5 O% I+ `2 A, L - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
2 A, u b' q, L+ {8 `( e - );if ; ai_abort's alert box dialog.
) m) p' L$ T+ V& B% W. N% R) S - . v1 ?: n5 I; z/ C
- ;;; ==================== end load-time operations ===========================2 X" ~% d. t) c+ s; V( u, _
- & ~4 _, W8 j' Z6 V0 [4 y2 o
- ;;; Initialize program subroutines and variables.
! n! o! w, v; a6 }, B - 6 a5 V8 Q4 e: `& k% d7 I0 q
- (defun ddchprop2_init(). f- F" e7 a5 R; y% x5 Y) S
8 J1 C, w R' h- 9 D7 v9 _' b7 a0 M
" \. f& ?2 l- t! u. ]7 p0 x. |- ;;
5 q0 H2 E( Q& m4 v1 s2 E - ;; Define buttons and set values in CHPROP dialogue box
( h3 H+ t" y" n& v - ;;1 t# v! C5 @# A6 `) t
- (defun call_chp2 (/ cmdact p1 p2)# b7 e) a1 o( Y8 }7 I# q4 A+ I
# E1 z$ c' I" B' C+ c! @+ K- (if (not (new_dialog "ch_prop" dcl_id))
2 a) c y; O6 h2 C3 P/ J* U - (exit)' X2 D: X' C- i" z
- )
# E' H3 I$ b, L# P2 j - 3 x; s, o# l4 b8 F5 P
- (set_tile "error" "")# e( x4 S3 t2 v; ~9 Y
- ;; Set initial dialogue tile values. r9 W; R C4 D
- (set_col_tile)
: L4 J) n/ R; f3 ~" p - (set_tile "t_layer" elayer)6 Z3 h) l$ \/ z" C, x' s) m
T5 q( P9 L2 Y8 _" U2 i- (cond
7 ?5 k9 G% U% o D - ((= lt-idx nil)
0 C" M4 J0 u9 f& \2 H8 Z - (set_tile "t_ltype" "Varies")% K( d7 f+ ^/ g* N
- ) _: K* T: i; c* y/ K
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
' |6 d- S6 z# i3 T2 L, @, n - (set_tile "t_ltype" (bylayer_lt))) f2 f- p& l" Z( G W4 N+ `9 f
- )1 T, x$ ?% t5 a" N/ n
- (T
2 {+ l$ J) t$ t# _! t8 u - (set_tile "t_ltype" (nth lt-idx ltnmlst))
! W# X: u5 G& _% U - )$ y9 w ]- P& J' Z7 T+ Z* p
- )
7 e8 p. R8 f a( f: ?
) D$ y; Z( ]# c, I) S- (if (or (= ethickness nil)
# U& f: `5 J, t( k$ m+ }- M - (= ethickness "")7 Z+ c6 B, Q- \/ R: x- T( y" K5 V
- (= ethickness "Varies")
6 S4 O9 T8 y% A) b: |* R Y& e1 Q - );or$ N6 p4 }( U0 K( i
- (set_tile "eb_thickness" "")) l: l- N Q+ ^/ D: @& x& D& ~
- (set_tile "eb_thickness" (ai_rtos ethickness))
! ^7 q' [ a1 \! I$ h1 ^ - );if* p' g9 g# X& q7 E9 r4 A
- (if (or (= eltscale nil)7 R& D, H6 L: q4 K, ^6 H
- (= eltscale "")
{% O1 O3 g. {5 q9 O - (= eltscale "Varies")' ~0 j6 n1 b( O, g' z9 y" l
-
9 c, a [- N2 C# h4 B! @0 k - ). Z$ X6 p( l2 g, \
- (set_tile "eb_ltscale" "")$ \( [6 y" a+ ?# d3 F# N
- (set_tile "eb_ltscale" (ai_rtos eltscale))
. k( [+ X3 n8 z - )
* z# z7 m0 n O! z5 x - (if% m& N7 B- {: P! z: `% y: W
- (numberp ewidth)/ a) Y- x% u& V! _0 J
- (set_tile "poly_wid" (ai_rtos ewidth))
9 b) o( e M7 U2 H U - (set_tile "poly_wid" ewidth)/ p% X L4 Q4 a5 D
- )
. j- k- F4 d0 q; H- [ - (if3 j! T; U3 H+ q
- (numberp eelevation)
/ M! R4 h8 i& r* c; J - (set_tile "poly_elev" (ai_rtos eelevation))
5 H3 U3 X2 M1 L' d' C3 R$ z - (set_tile "poly_elev" eelevation): A B w7 M2 j% G3 _. \+ ~
- ) z# W7 K* l; P& d' L
- (if
! ?7 U7 t) |0 X# Y. B - (numberp eheight): h& Z# o! s) |: d% e" S
- (set_tile "text_hgt" (ai_rtos eheight))
0 @2 S+ w3 n3 e& ` - (set_tile "text_hgt" eheight)
7 b. o: S% x3 E/ F! B1 W2 r; C - )
( o( S6 ]2 F% V9 T( y: ] - (if (not estyle)
" p( v) m9 I! y; _' u& ] - (setq estyle "")( D( I# n0 ?- n* w& l
- );if
5 b, d: b- t6 J# Y/ R - (setq hair_style_list (tnlist '("style" 16)));setq' k. H& J6 Q0 `, J" U
- (if (not (member estyle hair_style_list))
, W6 _# ]3 c2 f6 V - (setq hair_style_list (append hair_style_list (list estyle)));setq
- _" C% R! z) Z0 I0 F/ D" n - );if ( q' S* U- {2 v1 k, k7 m+ S x
' r8 V7 ^0 G5 `5 {' Q8 _- (setq hair_style_list (acad_strlsort hair_style_list));setq
" f( |+ I8 Q7 a6 C, V2 r - (mpoplst "text_style" hair_style_list)
2 K4 T0 P- k2 K/ b - (set_tile "text_style" $ B" u0 @7 b {; @. Y2 T7 X& [
- (itoa (position estyle hair_style_list))
. X$ e" i# V J - );set_tile 2 x7 v: r4 J+ t- y
- 9 H9 Q9 h0 v. k$ n/ `2 |
- ;; Disable tiles if need be... ;@RK
* L: B. H# _8 G% l - (setq a 0)
! o r3 Z* j% R! A/ ` - (while ( < a (sslength ss))
, \/ z" e" a1 [3 a - (setq which_tiles7 Z1 H: k# Y) z. j
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
# i8 z: K' X O - & U5 z2 J5 A g1 m- ^ b0 b; W& I) J
- ;; If all fields are enabled, don't bother checking anymore.
/ ~. R, g" R1 |- W4 d, e1 _ - (if (/= which_tiles (logior 1 2 4 8 16))
) {7 |7 p" r0 x2 g - (setq a (1+ a))4 d+ |: ]7 N) W; _; r( e r; \# K
- (setq a (sslength ss))8 R3 R' y, x5 i% C3 v
- )
# f8 }1 U9 v! j- Z& t* c& }$ Z - )& W# O" o- O2 _5 L9 j
- ;; Layer Button and Text Field" \$ R" D* c7 V( O
" _1 _9 ]7 R- x- (if (/= 1 (logand 1 which_tiles))
/ b6 R, g$ W! w; y - (progn: N6 b3 d' |3 Q0 Z% q# s
- (mode_tile "t_layer" 1)
3 ^* l: T+ V5 H) A% k9 C - (mode_tile "b_name" 1)( a+ J* X+ w: Q/ l5 f& A g; N
- )
+ x; R. Y9 R) ]# { - )
' Z+ j |0 ?* E4 H - / D1 q3 J9 _4 h
- ;; Color Button and Text Field* V$ q- M$ W$ T z% i/ e
- (if (/= 2 (logand 2 which_tiles))
" X( @ ~8 h, G& g+ S - (progn ]1 z0 a& s, q8 k1 X
- (mode_tile "t_color" 1)# M ]$ z% k Y9 N
- (mode_tile "b_color" 1)9 \/ z& u9 A+ y" m
- (mode_tile "show_image" 1)4 U) F; A+ ~8 R; z
- )
8 N: V8 ^. _4 ` - ). b+ G0 R* K+ R; [/ F
- ;; Linetype Button and Text Field1 `" M4 y; f9 V* T4 r' \! m
- (if (/= 4 (logand 4 which_tiles))
! O: G3 W: I1 P- B* V" e6 C - (progn
3 g3 R c# N9 n& H/ k, X9 o - (mode_tile "t_ltype" 1)! \9 Y5 M6 C( ^% R; J2 b% z2 X( c; l5 P
- (mode_tile "b_line" 1)7 g- _8 J* B' k' x
- )
d8 k' H# Q* U: S- J! V+ ?) Z - )' M$ c* E: k* b- T1 E" P( w9 t
- ;; Linetype Scale Edit Field3 |2 e! `6 S; G; S& N& K
- (if (/= 8 (logand 8 which_tiles))" ~" C% q' j& T0 k0 F, y
- (progn
' f" w) x% [6 N7 Z& b! T( e - (mode_tile "eb_ltscale" 1). ^$ `0 Q- L) g4 O2 l2 D1 a
- )( h' k; B, z4 H* r- D6 Y3 c {& m- F
- )$ Z: d1 R3 k8 c5 F: B
- ;; Thickness Edit Field.' P$ X6 R+ e9 `
- (if (/= 16 (logand 16 which_tiles))
- J! ]) w" {/ L# U1 F& ]1 _: y% H% @ - (progn
9 J1 P7 O# p z( ]7 @& p - (mode_tile "eb_thickness" 1)
8 p0 k8 [8 j. `$ b' T( J9 N - )7 t( E+ Q2 j' Y5 m! S: X8 D
- )# Y8 _$ c' J+ W, J$ _
- & Z# s2 e1 _$ H! \! F0 \5 g5 f
- ;; Polyline box and tiles @rk 10:05 AM 1/30/974 o. f3 Z: x+ a' U, l1 G
- (if (not (= 2 (logand 2 eflag)))
; B9 y* t, k, s, F7 M% C - (progn
9 z( a; ]2 p1 R - (mode_tile "text_hgt" 1)
( L8 e, T) [& z" R" }+ ^ - (mode_tile "text_style" 1)- x* o5 O& V( U* u; v r: F
- );progn
1 a: S3 a8 T+ l; K1 @ N - );if
C: N+ J" o. v. r - (if (not (= 1 (logand 1 eflag)))4 b( V* I, @ L9 D2 F+ P
- (progn
) q" N; A' T4 k( R( x- X - (mode_tile "poly_wid" 1)
. ?# U- j- f. v% u - (mode_tile "poly_elev" 1)
: a0 _% b1 }2 F, Q# E, E - );progn then disable polyline fields2 b" E M |' [; ^6 B) K
- );if
8 v! L; |1 `0 c3 l' X
% @+ @& c& _& u( g- C- ;; Define action for tiles0 l( h$ D' z# W3 E
- (action_tile "b_color" "(setq ecolor (getcolor))")- K% y( i. i) j6 f+ P- S4 k R
- (action_tile "show_image" "(setq ecolor (getcolor))")
: ]# b7 y1 i3 v. `5 e+ L* T6 d3 I - (action_tile "b_name" "(setq elayer (getlayer))")
# r) H- `& A3 ]5 Y7 _ - (action_tile "b_line" "(setq eltype (getltype))")
4 o4 M8 x$ K; X& R9 w - (action_tile "eb_ltscale" "(getscale $value)")
; O2 i: E* q$ T - (action_tile "eb_thickness" "(getthickness $value)")
9 f) @- g2 i1 I* K, U1 c - (action_tile "poly_wid" "(getwidth $value)")
) K5 p7 T# q7 R# c$ T - (action_tile "poly_elev" "(getelevation $value)")+ C5 g/ G: z, |0 U) [
- (action_tile "text_hgt" "(getheight $value)")
; Z: r& d5 i# o3 Q - (action_tile "text_style" "(getstyle $value hair_style_list)")
9 m- O0 ?8 k; r3 y0 n - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")* i" l2 u2 O3 n. J5 p) Q1 O
- (action_tile "accept" "(test-main-ok)")
( b* P& q0 T( f/ X& _/ B q! j - * D, s' I c! @& |
- (if (= (start_dialog) 1)
/ S' v, }! G8 c5 O: Z+ v) W$ ~$ B - (progn
2 T* ^ ?$ }. u, P0 f" T - ; Update special properties for polyline and text selection-sets.
3 l2 m+ j3 Z7 p0 M$ f - + T- S& g% K% s8 P% M
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
" k l* e3 B2 g' u. \! Q; L - (or ewidth- A( s4 w$ h( y8 G) S" W5 J
- eelevation& e9 H8 M1 a+ {% U
- );or* h: E- `) [# {; f/ u) J P
- );and6 J ]; }' `' Y$ q! o& b8 m2 w" Z
- (progn
0 ^; C3 \: }9 B+ H. j+ M: a - (setq ss-index 0 1 p0 z0 @& l4 H" E. L( O
- ss-length (sslength poly_ss)4 Z2 ^, n3 Q% E4 ?- z2 S; c! x
- );setq1 w' F0 h1 x7 x1 \/ Q
- (while (< ss-index ss-length)0 j! f$ U7 ]3 `8 s& c0 q* i6 Y+ _. u
- (setq ename (ssname poly_ss ss-index)1 l/ V& K7 T( I q" V- H
- elist (entget ename)7 m. C& L* z6 s7 K& O; X
- );setq, y) ^9 X* k9 J5 _" a. | c
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
5 T$ m+ d7 ?& f" v - (if ewidth
6 L) V& g: d3 W: I' n. y - (command "_.pedit" ename "_W" ewidth "_x")1 P9 _; X+ I6 D9 g
- );if
% v3 ]% ^% f# v1 u. I4 W- b1 B' \ - (if eelevation w! k1 Q- N5 Q: D( c
- (progn3 f; ~5 {6 S( |- Y; S3 Q
- (setq p2 (list 0.0 0.0 eelevation));setq$ D9 {, ]% }( g4 F" [+ l
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")% `! L( q# I5 O- u+ [
- (setq p1 (list 0.0 0.0; e# s2 `3 A1 [/ ^1 s
- (caddr (cdr (assoc 10 elist))); g+ s& k; w: @
- );list
! b1 f! ?, `2 w% C! Y& J- a - );setq. F2 H# q( R& H, V, W9 w# _4 s
- (progn+ O7 _) \' |9 w3 r! F2 p
- (if (assoc 38 elist)# N5 d2 j, w+ Q' k% X8 V
- (setq p1 (list 0.0 0.07 ^0 P& g: F# Q- q8 h
- (cdr (assoc 38 elist))$ H" L0 N( y8 N$ o
- );list
! i% @0 L& h. G - );setq' j9 p9 g9 P9 a1 ?, f5 Z
- (setq p1 '(0.0 0.0 0.0))
, B' Y/ a+ t" Q& L - );if1 a: Z# C' G: p* D3 x3 w
- );progn 7 t$ P f3 G7 g" j2 Y6 s/ w/ f% f
- );if1 u" l4 T% N* u
- (command "_.move" ename "" p1 p2)
2 `$ p+ a6 i2 C1 o - );progn then change the elevation of the polyline
, f7 i# s% w& C7 R, M - );if; U" j+ p5 B. x' s! g
- (command "_.ucs" "_p")8 y0 A$ W" ^% ? W7 y# @+ @
- (setq ss-index (1+ ss-index))) Y( V9 a4 T/ O+ Z" X( N: f2 H2 O
- );while5 W% {! q$ _+ _
- );progn then polylines are in the selset; q+ }& |4 {1 m( [+ w% B
- );if
. d) v; e' w# Z - (if (and (= 2 (logand 2 eflag)) ; text8 A. |: C: |" ]
- (or eheight
' o" m* N/ g+ ]6 e" [0 F4 Z - estyle5 N3 |# K$ i/ ^% @$ b; a% x& T) G
- );or
8 z7 E" b, I; m" B# b) d - );and4 J# {& H5 A4 Z8 f
- (progn
1 N- L( }" p* y - (setq ss-index 0 ss-length (sslength txt_ss))2 [5 Z0 `2 Z+ z9 [: c
- (while% a& U; x. L" r
- (< ss-index ss-length)
4 u! [; e8 U- x* P( j% z - (setq elist (entget (setq ename (ssname txt_ss ss-index))))/ K" a- d) J! c0 A
- (if (numberp eheight)
) i( ^" F& u7 f( B8 W' K4 H! f/ } - (setq elist (subst (cons 40 eheight)
* A4 A0 i8 f7 x# x, O# E - (assoc 40 elist)5 i, h/ ^+ h7 B$ m, C- n
- elist8 ^- p) i- U9 d+ }4 M
- );subst" E' G9 y4 |. `8 I/ w; S1 L
- );setq$ s2 L4 n; T3 b; w+ y2 o/ }, p7 Q
- );if
- N$ t& r8 d7 S" J9 c- ] - (if (and estyle ;(not (equal estyle ""))# W: b8 J; _0 [( T& V; o" a) {+ b
- (not (equal estyle (cdr (assoc 7 elist))))# x2 n2 z! j G
- );and6 n1 }/ R% R9 U# J* r! q, `
- (progn
" j% L- e6 z: K' O3 M3 V - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
! S3 Q7 d5 m; Z5 [" j - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
2 n. e+ ^& h/ B7 O C. c - ; (setq elist (fix_mtext_fonts estyle
5 _' G9 F0 K$ G/ D - ; elist+ K' x5 T& x( t' R
- ; )7 [% }1 r! m+ T# p; ^ {; P3 C: F9 Y
- ; );setq then1 x" {- O( Q9 o# j3 d5 Y
- (setq elist (subst (cons 7 estyle)
: i* a7 k* u, { - (assoc 7 elist)7 P# X6 D5 K! k% q2 a
- elist
( F i+ a) v$ ?* S0 F - );subst9 Z4 G; g5 U2 S; U! w3 l
- );setq else
. A6 w7 m5 M/ M1 w7 |$ X4 Z+ \. h - ;);if
& Z$ D" ?8 j0 d8 D, I# Q - );progn- J, N2 i+ _# q$ ?
- );if) P: [7 [8 n5 a( y" C3 o9 c( j
- (entmod elist)
0 v( u! @2 J1 L2 s - (setq ss-index (1+ ss-index))% q% K1 h; E' K
- );while
h& ?; G) T8 e! U$ ]5 p - );progn then
/ D) N( m+ \; D5 h1 h3 H - );if5 \6 z3 F8 l) W5 Z
- 3 e6 ?0 ?7 r$ W. n: X8 {
- (setq cmdact (getvar "cmdactive"))
( Z4 H" Q6 S) q+ B# {0 {- W - (command "_.chprop" ss "")
8 ~ ?7 g8 D- {# ] - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
) l* M" f; U l/ u - (progn6 Z2 {2 j5 t* w7 J8 y2 w! y
- (if ecolor
3 _. s/ u+ F2 ^$ x" l: P - (progn
' I$ D+ M1 l" j; B2 C5 W* j - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK")): z" Y! t5 u% i$ J3 n; b
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))3 s# I* b T0 m7 \
- (command "_c" ecolor)
. @! r4 x/ T& i - );progn then
/ P6 k! e# H. e9 W: _ - )
/ B+ d' t0 G+ j - (if (and lt-idx
9 }# d3 h$ r$ I0 T( u - (/= eltype ;|MSG0|;"Varies")
0 V4 T4 T7 f& z; |2 e( C+ y - )
: Y Q0 N+ b. ]: |* A - (command "_lt" eltype)
8 I( O0 ~7 m4 _4 m S - )( h. Q) y0 S+ n5 |% y- s9 Q" v
- (if (and lay-idx
% x) S+ }* u, ] - (/= elayer ;|MSG0|;"Varies")1 D/ m2 D9 ^' i6 T8 @; v2 G; ^
- ), r) ]8 H9 V& G2 U! `" d* b
- (command "_la" elayer)5 i' U; E% E4 ~7 L9 L/ j& H% f
- )
9 N/ X9 m2 L3 R7 Q4 w - (if (and ethickness ; c0 Q, O4 r x7 C1 v2 D/ B6 j" [- t" X
- (/= ethickness "")4 T- Z4 x; o" s: K6 }2 D2 I
- (/= ethickness "Varies")
6 O8 r! l; W; Q4 ^ - )- n8 v: q. O$ t" h8 J1 i) I
- (command "_t" ethickness)" t1 O d$ s: X+ q
- )2 A, h2 F6 P0 r. A# ]8 M; ?
- (if (and eltscale (/= eltscale ""))
1 ^1 j3 p/ {" i q7 T+ d - (command "_lts" eltscale)
- o* j! l# Y( M" a* G j - );if1 U: { Z0 Z. \ Z& [
- (command "")
, E1 Q8 `2 {* {0 d1 k - )
' A8 h3 D- j# m0 g9 q8 k - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
& d" b: j2 M4 H9 x. e% ? - )
4 ^7 i n5 P7 b% b' }+ b - 4 ~3 @# E; s5 g
- );progn then OK was picked in the dialog.
* y2 q) m: ]! c - " N$ F& `" Q {2 T, E
- ;; Fred GERBER - 25-AUG-94* x% Q1 E! v C; P% J* b3 [
- ;; Don't print the "Properties unchanged" message when the user cancels: o$ h2 a: L- y) t" \
- ;; the dialog because he knows that already (otherwise he would have6 F2 B% s5 k8 L9 B% l8 X; p
- ;; hit the "OK" button). Display the message only if CHPROP fails for
( q& a+ k* P1 g9 l - ;; some reason, because it is not the expected behavior of the command./ c- j2 f! E. s, I
- ;;
- X6 ?9 j/ ]/ B( W9 V8 O - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")0 P C, Z6 R7 h2 O* ]" `9 O( ~) c
- );if
" X0 f4 E$ x, U. D- ` J- E - (princ)
0 r! J! g6 ` r - );defun call_chp2: V2 e; I& W% P
- ;;
5 `, Y/ ~! D! y; }; D1 i3 x - ;; Function to set the Color text tile and swab to the current color value.
. v6 B8 g) q, d- a' t9 j: Q' c - ;;& X. N. M3 `+ g4 M9 G
- (defun set_col_tile()
& E- Q: H/ e! @ ^ - (cond8 F# J8 [: Y' N [' U6 L+ @ V2 S5 X
- ((= ecolor nil)% O& S5 A2 o6 b5 A2 K$ b3 M
- (set_tile "t_color" "Varies")
0 T6 I+ c6 m. v1 i, d' S8 E3 E - (col_tile "show_image" 0 nil)
) G! f7 h" W1 @' A - )8 Z+ A2 h$ Q7 |6 w
- ((= ecolor 0)
4 Q% {5 r" B. b* e - (set_tile "t_color" "BYBLOCK")' `( r; \7 t1 U" X1 d. Q
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white8 Y! D9 z+ Z- {5 j* p3 E" J+ p5 `# @
- )
; ~# ?5 U5 [8 o& v) W$ h' t - ((= ecolor 1)
* V1 n/ Z( f- Z9 n0 G( R* [ - (set_tile "t_color" "1 red")
" e: v1 y" v b; m( q, U7 p( P - (col_tile "show_image" 1 nil)2 A' d0 Q$ V# {- w6 W
- )
2 a: q8 ]) H- X% e& A1 r8 J* n - ((= ecolor 2)6 I) n4 ~8 t9 q" Y) z* h
- (set_tile "t_color" "2 yellow")0 l. z$ u; C( W2 E- n# G8 q
- (col_tile "show_image" 2 nil)
9 V8 U" e/ O5 D+ ?" k - )5 `# _- C2 I# G" Y2 V+ o
- ((= ecolor 3)$ q# d1 `' k$ x% w- ]8 _" M, w
- (set_tile "t_color" "3 green")
. ~0 K& k6 y7 X- [7 ~ - (col_tile "show_image" 3 nil)2 W. k& Q, x/ ]" E/ \" q' r4 \8 e
- )
: K; U4 q6 k* b) V8 w - ((= ecolor 4)* X; d8 R; A9 I6 n
- (set_tile "t_color" "4 cyan")
7 H8 j7 V6 n e" H - (col_tile "show_image" 4 nil)$ w9 c$ A! D& O& O( `# v
- ), _$ B; k: e5 K- q p$ O
- ((= ecolor 5); n0 o& S& @3 _- Z/ S. ~
- (set_tile "t_color" "5 blue"): Y3 o; D! @! ^# d& M6 U: V* ~$ q5 d
- (col_tile "show_image" 5 nil); s9 ]3 ]+ V. }& Z. a8 V9 x
- )
0 j$ L$ T/ B, z9 M. D; i - ((= ecolor 6)( ^; w9 Z7 i+ w# W; _
- (set_tile "t_color" "6 magenta")+ f- q# t3 P5 @! M' J: }" w
- (col_tile "show_image" 6 nil) }1 E/ ]) J# g0 ~/ ~: n1 x
- ). v# M3 K2 F/ T* w$ X
- ((= ecolor 7)( ` r4 ^( O8 u$ I7 n6 J
- (set_tile "t_color" "7 white")
$ i- N: y, r) j! S9 `. `0 h - (col_tile "show_image" 7 nil)
/ l) i( P+ ?1 F5 a! q - )9 `' k3 M3 V* B& [. o+ W" E3 Z
- ;; If the color is "BYLAYER", then set the tile to
0 Y# r5 a- C# Z% O - ;; show it's set By layer, but also indicate the; M% X+ n" X1 B6 Z
- ;; color of the layer - i.e. By layer (red), E" n; x% u6 C# {* a$ T1 k p
- ((= ecolor 256)# z1 D7 Z& E0 ?$ f9 j
- (set_tile "t_color" (bylayer_col)): s6 K/ T+ L3 U( d' k4 Q4 A
- (col_tile "show_image" cn nil)
5 ~7 j* j4 n$ \8 o6 ^ - )) x) x) R! ~( _
- (T% q' T" G1 x1 I( J! [4 g$ p6 l7 _
- (set_tile "t_color" (itoa ecolor))* d' ~4 \/ [- N+ u
- (col_tile "show_image" ecolor nil)
! m% _* b2 K3 \8 c; i8 Y - )' l$ j( A1 g% k7 t1 C5 r
- ). ]/ a1 P$ A) U% l
- )' O) G, [7 W1 j: X- p8 T3 H
- ;;
3 T& g8 u$ P1 Y( E7 c8 F - ;; Function to put up the standard color dialogue.2 Z# e6 B1 ~$ z
- ;;
' {' [3 A; G8 Z: R6 X* t - (defun getcolor(/ col_def lay_clr temp_color)
& k6 s0 Y w5 K0 D - ;; col_def is the default color used when rq_color is called. If ecolor2 Q/ n! c' H! s# o+ B- p/ S; y
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
, C' q5 b6 L+ F2 X0 g# y, o8 _ - (if ecolor8 N+ J# I6 E) P) N% ~' V
- (setq col_def ecolor)6 C0 A& _5 A/ p& A7 s
- (setq col_def 1)
L* N- M' C3 a7 f% { - )
7 ?4 T, J$ F, m1 o
! T6 @/ {" B/ z- ;; If we're working with a single layer, get its color
L+ {6 a7 o# Z. w - ;; for use in the color swatch if the user selects color BYLAYER.
( W! u. a: Z) N( j7 x* ] - (if (/= elayer ;|MSG0|;"Varies")6 c7 M% n% m! }, E6 n
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
' e h2 W* J" ]# E# r - (setq lay_clr 0)! W2 z8 p8 z0 O2 A; ]4 C! L: ?4 |# I# f
- )
- I; Z0 z, f" y Z - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
; C F* C! \3 F0 N6 W) d - (progn; S3 r- c3 P7 d! A5 @* J9 j+ L6 Y" s
- (setq ecolor temp_color)
& G* R1 p1 C* W- {5 g9 ] - (set_col_tile)3 u. ^$ [0 I1 [& ^3 g9 q
- ecolor
& H+ j$ n: Y! ?2 v: [+ S! W - )
5 D; X) f8 D% g0 p* v( v - ecolor5 a; T" J, U- h4 m5 Y) a6 G" c
- )
6 D: D& q2 T- X* t - )
. b- g. M5 h5 i" V$ O# f7 }1 b - ;;$ y, b% A4 \( _& Y2 K
- ;; This function pops a dialogue box consisting of a list box, image tile,' f3 V& A; ~' |
- ;; and edit box to allow the user to select or type a linetype. It returns6 k8 r3 }+ I/ U( K9 J6 S
- ;; the linetype selected.
, S+ T6 h4 o2 N& S - ;;% R$ a' I1 N* M* c; G' z: J! [
- (defun getltype (/ old-idx ltname)( q6 ^" J4 Y! I
- ;; Initialize a dialogue from dialogue file
( o% t# a: S8 M7 u* a1 i6 D - (if (not (new_dialog "setltype" dcl_id)) (exit))
& U. T0 M% `# S" z8 j4 `- e; G4 M/ d( N5 b - (start_list "list_lt"): e; E; q9 L3 I- z+ R# i) P
- (mapcar 'add_list ltnmlst) ; initialize list box
$ f! K: {2 y/ G* o6 T - (end_list)
% k1 G8 e5 W* l; ] - (setq old-idx lt-idx)
0 r3 R# | @9 N4 f8 o7 U" A - ;; Show initial ltype in image tile, list box, and edit box
5 _$ E0 g2 q& b9 t7 o* J1 ] - (if (/= lt-idx nil)2 p: u( \8 u3 N M; Z* Z
- (ltlist_act (itoa lt-idx)). B7 |" \# P, b; P* Z8 a! u6 K
- (progn
# \% Q+ X4 G$ {* X4 q: j+ U - (set_tile "edit_lt" "")$ w/ Z9 x, |7 n+ p# [ [
- (col_tile "show_image" 0 nil)
* G1 f$ y* h1 r! o( l k4 v - );progn else+ q$ D8 g" r$ c" `
- );if
, G" n, e( e) [! c- b, K0 k - (action_tile "list_lt" "(ltlist_act $value)")* s9 R$ J6 b7 @- A& ^, Q/ w: H3 m
- (action_tile "edit_lt" "(ltedit_act)")
( \4 s `* ^4 n% }& h" ~ - (action_tile "accept" "(test-ok)")
8 J" A9 z& m$ b- [ - (action_tile "cancel" "(reset-lt)")
0 F% d3 h1 @/ X$ c8 @ - (if (= (start_dialog) 1) ; User pressed OK
) e3 b. k6 P2 \: s& @ - (cond: B. T2 |) [8 M5 @. ?8 o2 g
- ((or (= lt-idx nil)
4 B8 `. ]/ }& e( Z5 {; @5 s - (= lt-idx (1- (length ltnmlst)))
+ J' ~+ Y8 j& F A( e4 o - );or
. ]3 c Z3 k# l5 Z. F' R# z - (set_tile "t_ltype" "Varies")
; o0 V0 V( _" O+ P- m) U E5 F - ;|MSG0|;"Varies"# l% S% R/ E) }# T6 F
- ): O3 c6 Z7 d5 \ Y% ^0 m
- ((= lt-idx 0)0 P2 R6 ^2 U# l+ E" ^
- (set_tile "t_ltype" (bylayer_lt))
9 u! z5 a ~& A* a# G& {2 S6 F. T - ;|MSG0|;"BYLAYER" {/ x2 _$ M0 }
- )+ k! {4 \2 A# i& n- {/ [
- ((= lt-idx 1); z7 j/ q; R. {5 X
- (set_tile "t_ltype" "BYBLOCK")
( R) l: y% B( P" T! ?& M - ;|MSG0|;"BYBLOCK") E6 F* R1 U" m9 V, P, f, m7 h9 F1 ~
- )( _$ E' z! O7 _8 @3 e
- (T- [7 Q, T% G: g' {" f' s+ @0 {; E
- (set_tile "t_ltype" ltname)
2 Q& }; T& F7 \5 N8 P/ u - ltname' e/ R5 N* S7 Y& C
- )
: q& Z% ?0 m! P0 ^# J - );cond then' t2 K# H* l8 _: ]3 T2 Y4 i
- eltype* f7 }# T' e p2 H& ~$ |2 g
- );if
" e: O* m9 t* x. r+ u; H) Y - );defun; l: R7 o* W" L" s* V: R
- ;;! e' J% T D* _' |
- ;; Edit box entries end up here; q( N4 \$ l$ ]6 P7 u
- ;;* j; U" N- y5 H% c; ~
- (defun ltedit_act ( / flag)
) u+ { u9 J+ M# O! `& ]/ X - ;; If linetype name,is valid, then clear error string,! X2 M4 T# N6 m2 N4 B
- ;; call ltlist_act function, and change focus to list box.
" }' X5 o" D% }( Q - ;; Else print error message.$ O$ z2 Q. N& l
-
- n4 L5 ?% A/ p( V* ^ - (setq ltvalue (xstrcase (get_tile "edit_lt")))
6 Z, M& I5 B" u) R - (if (or (= ltvalue ;|MSG0|;"BYLAYER")' C$ {# ] d& F' i: t, V3 a" c
- (= ltvalue "BY LAYER")
- B+ t0 g* W/ U; ^5 \4 x; y) k - ), `! [& B/ d _. b) T
- (setq ltvalue "BYLAYER")5 r% @ O6 K% V+ n2 c, c
- )
* K3 }+ k+ H: ?" z/ `1 X - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")) A" v; q% T& c
- (= ltvalue "BY BLOCK")( h5 B- G' f+ L9 O5 N
- )4 v& |; H# M2 ~: C) P" p
- (setq ltvalue "BYBLOCK")3 ]# [+ w9 n% S! y; z
- )
- E2 {/ J/ x0 R7 b - (if (setq lt-idx (getindex ltvalue ltnmlst))
! y6 Y" a% ~/ I. C: l' T3 t+ T - (progn
* F# Y3 N$ @: @, O- ~ - (set_tile "error" "")
! T1 g: b& y& n |( u0 [ - (ltlist_act (itoa lt-idx)), O* }: k0 j0 d' I
- ;(mode_tile "list_lt" 2)
% B9 R7 I5 }- Y; [6 h$ i - );progn then2 _8 u* ` O( N1 H
- (progn
6 r! @& B* m0 i8 ?" R3 { - (if (/= ltvalue "")8 r5 y: S ]; D& ?, i2 O
- (progn
5 d% `# x5 y# K# C. Z8 ? - (set_tile "error" "Invalid linetype.")! U+ ?( y% `/ ~" f* r1 G5 |& Y# K% K
- (setq flag T)! m2 S/ F% @" ~5 C9 g: x+ y
- );progn1 {( O3 w3 @2 P. y( k
- )4 H3 h; v; D- n
- (setq lt-idx old-idx)
h4 z( E$ o9 l# L, ^! b - );progn else
, _ q! d3 H3 k! ^/ w - );if
! G0 p T T/ X% I% P - (if (and (not flag) ;added so a return will take you out of the dialog.% ^+ p: ?5 }1 P7 B( B4 d, G
- (= $reason 1), _; z' E( B! j, m/ i0 D
- );and. j2 f9 I6 }' l& Z, J. `3 n6 Y
- (done_dialog 1) 4 H* b4 F4 K A3 q, Z
- );if ) R% j0 N9 [! E
- );defun ltedit_act
. L) p7 |" K4 e! h8 H v0 w+ U9 } - ;;+ M4 `: {$ ?9 l
- ;; List selections end up here
3 ^, P/ d A8 Q9 c - ;;
( N R& O1 K5 N; S& {( e! Q - (defun ltlist_act (index / dashdata)
- `& ~( S$ i# M - ;; Update the list box, edit box, and color tile( Y& `! K0 B/ F% x! b7 q
- (set_tile "error" ""). K% v2 U4 W8 e" E5 A
- (setq lt-idx (atoi index))2 [# S# e" t9 s( ~% c5 r- z
- (setq ltname (nth lt-idx ltnmlst))3 E4 v* ?3 R. U- @) m5 q8 Q
- (setq dashdata (nth lt-idx mdashlist))
/ q0 T( Y; ?/ A) H7 O P - (col_tile "show_image" 0 dashdata)
Z; i' n# K4 S6 c; U( |7 \8 { - (set_tile "list_lt" (itoa lt-idx))
" M' K& G1 A5 O5 J7 u: d - (set_tile "edit_lt" ltname)' L6 y: f$ Y5 K2 S+ p5 s: T
- )5 |, J' W E+ z( ^
- ;;
% a* e( _- q2 \; }" `' L - ;; Reset to original linetype when cancel it selected4 z) T9 s3 o& z4 I4 S7 Y
- ;;: S I0 X9 l/ U- Q/ l; p
- (defun reset-lt ()
% l: w. ]* D+ n; z; e' Z( D& T - (setq lt-idx old-idx)
9 m, S( r d8 K }! v, D - (done_dialog 0)
. r, v4 M' o5 E1 r- ]0 i - )
9 a& a6 e8 x P- j9 o2 M - ;;+ n" u0 s0 E5 d3 C2 r
- ;; This function pops a dialogue box consisting of a list box and edit box to
& U8 C. u& ~0 M$ | - ;; allow the user to select or type a layer name. It returns the layer name, s" I& X4 n. `( d6 S( H
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
; ^6 |# Y' R* _0 G1 M0 u+ G2 ^ - ;; drawing.
6 Z. _8 W0 L" t - ;;+ E9 n% M& d; S& g6 l2 W; a; R
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
( {' _# r+ G* }0 s j/ V/ H - ;; Create layer list the first time the layer6 A+ ^7 ^- ?9 H) G3 G$ l, k3 ~
- ;; dialogue is called.
' A; _# D: N& x/ ?' P; w - (if (not lay-idx)$ t1 c: A& |! u6 q5 p6 p6 k
- (progn! T0 \' f6 x# k/ S5 p i9 N, {' m
- (makelaylists) ; layer list - laynmlst1 Q9 X2 R6 ]. z# z
- ;rk3 v) q, c' u& M1 W- [
- (setq lay-idx (getindex elayer laynmlst))9 Y( q) g9 V/ P$ D. g
- );progn
, w5 z: H( [; w - );if
( E* }1 x; T9 ?8 r3 P. Z! r# N! }4 Y4 d
& \# Z! O" g( o& q7 F& J5 L' N- ;; Load a dialogue from dialogue file
3 f8 `5 @3 {' w% q) n - (if (not (new_dialog "setlayer" dcl_id)) (exit))
+ L% h/ r5 b! f* W/ L- k - (start_list "list_lay")* V( }& D( V3 O" S
- (mapcar 'add_list longlist) ; initialize list box; B7 R' {2 ] E- M7 A1 ^
- (end_list)
4 `; X3 f7 O4 _% {. m - ;; Display current layer, show initial layer name in edit' \) Y" h& j) @3 v- {5 L& S9 S1 c; x
- ;; box, and highlight list box.9 ], D6 q3 B* |- S* w
- (setq old-idx lay-idx)
2 S- A7 H' D% w$ ? - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
. B8 U& y" W& G) m - (set_tile "cur_layer" (getvar "clayer")). L' p' L9 [/ C) U7 \: X
- (action_tile "list_lay" "(laylist_act $value)")
: O* |8 X, V6 x - (action_tile "edit_lay" "(layedit_act)")
1 t+ x7 _2 G* g9 F$ P, f - (action_tile "accept" "(test-ok)")
! i% q4 |( z+ P, `1 s2 Y5 B - (action_tile "cancel" "(reset-lay)")
, k3 E6 C3 C: a& y - (if (= (start_dialog) 1) ; User pressed OK
$ v$ |1 n3 k0 e! i& F2 R- @" V$ f - (progn
) i* I5 I! L2 \9 E X - (if (or (= lay-idx nil)9 }1 \) O4 P3 o. q0 o. r# U
- (= lay-idx (1- (length laynmlst)))8 ~! [8 k3 P7 [" E" A
- );or2 i6 X! u+ E# [5 w( V
- (progn* J( }$ [1 L4 i7 b% }6 R4 Y3 Z6 G
- (setq lay-idx nil) + j: T3 O: E( x/ [- X2 u7 u; ^
- (setq layname ;|MSG0|;"VARIES")9 g" _ ]& ~* O' H$ h6 c: i
- (set_tile "t_layer" "Varies")
5 F O5 G$ y5 S j/ T - (setq layname "")
' D5 Y d, n; k3 V2 W4 e! v - );progn8 E& w) r% l# {" L7 B; B
- (set_tile "t_layer" layname)! X, V% t) ~% I9 D6 J/ g: ~
- );if [# G/ p7 v5 K j3 Y) M
- ; If layer or ltype equals bylayer reset their tiles/ z0 P0 f1 B5 N% g# h$ W
- (if (= lt-idx 0)5 F; X# @8 \# \$ s7 G& i( d! G
- (set_tile "t_ltype" (bylayer_lt))9 k# h5 n1 `0 |
- );if
5 |, z7 M. W! L - (if (= ecolor 256)% X/ {1 K1 @( l5 R
- (progn
( l8 r& h2 O8 l' D - (set_tile "t_color" (bylayer_col))
3 G1 b6 ^7 ?/ } - (col_tile "show_image" cn nil)
7 A2 r( X2 d5 b1 b+ g* Z0 O" o: p% V - )3 V7 `7 w+ F1 I' Q7 }
- );if
T. U; [ I A( W/ K# u. o - layname
5 x5 z q' Y2 s% P2 | - );progn
3 ^" A% C& m/ i- x - elayer+ K7 Q2 k* p: U9 c/ k
- );if
( z4 G/ B# K- {' M& n4 s w - )$ p5 Z/ {& t1 s
- ;;
' G7 W& C6 t1 ? - ;; Edit box selections end up here
2 V# f. a) r' G( G - ;;
$ {+ X% W$ u9 P- ^0 b - (defun layedit_act(), Q8 U. i, X, I
- ;; Convert layer entry to upper case. If layer name is
$ P& X- @5 F6 f Q! F8 | - ;; valid, clear error string, call (laylist_act) function,, }* r: S. P' X9 H
- ;; and change focus to list box. Else print error message.) j' K5 z. K& k$ x7 N. [0 O" P/ P
- (setq layvalue (xstrcase (get_tile "edit_lay")))) c2 R! Q! B2 a: Z) q% |( k% T' E
- (if (setq lay-idx (getindex layvalue laynmlst))
/ v' D2 I' Q3 B- [( P! o - (progn4 [& k6 @- G) `, @
- (set_tile "error" "")
3 r0 Y! F. X9 e - (laylist_act (itoa lay-idx))/ P% b, L' c9 L1 w: {& O$ @! H
- ) K( o6 k8 x/ O7 y
- (progn: n- n- w, J2 a. ]) G$ I& Z
- (set_tile "error" "Invalid layer name.")
/ \. h' V& f$ z1 p: |. b% u5 c0 y, x - (mode_tile "edit_lay" 2)
/ `" r# k- K; R& V* Z. } - (setq lay-idx old-idx)1 \8 W0 M- S; r, J; m+ _
- )
* [* S$ Q) v6 }+ |, l - );if0 N, A S" N7 @) v( |- }, W
- );defun( E& u9 Q1 f4 f
- ;;
& f( C B. o6 X2 K) i - ;; List entry selections end up here
0 A( A4 K9 J0 q* D - ;;1 ^+ M$ H' r. S% E. Z s
- (defun laylist_act (index / layinfo color dashdata)! Z2 ~, J; Q1 D- }# Y
- ;; Update the list box, edit box, and color tile
9 t' F# N. Q+ h - (set_tile "error" "")2 U {! k, |$ D5 m+ u0 c
- (setq lay-idx (atoi index))
, j7 O g. s4 v7 ^* D: w. ] - (if (not (equal lay-idx (1- (length laynmlst)))); ^' h% ~, \3 {& ~" a/ x+ l
- (progn
) D% D3 V+ c; A7 Q5 n9 [ - (setq layname (nth lay-idx laynmlst)); P% B' R; p5 B
- (setq layinfo (tblsearch "layer" layname))0 `8 |/ ^; Q j5 M/ W( x* \7 D3 u
- (setq color (cdr (assoc 62 layinfo)))& S$ Y7 }$ `' Z
- (setq color (abs color))8 W. x7 s1 V& p5 _
- (setq colname (colorname color))& O2 J1 B" R' c7 f* ^9 B
- (set_tile "list_lay" (itoa lay-idx))
5 y# _5 D$ _3 G3 `% c+ u - (set_tile "edit_lay" layname)- J3 z3 m! l) V
- ;(mode_tile "list_lay" 2)
! F7 S- y* p8 X% ]7 z) \ - );progn then
' e% u, H ~+ T' h! H: Z! ` - (set_tile "edit_lay" "")
# r1 \" M/ K% i4 O - );if . O: ^1 L0 u, p
- );defun laylist_act
( b" z! M3 ~7 K1 \) @( }( R - ;;( F# r3 [) o9 z' M, n
- ;; Reset to original layer when cancel is selected
# E$ Q' a( I& H! j7 A* B; l4 N - ;;6 o5 `5 H! X- e, h' y
- (defun reset-lay ()# \3 s9 m9 F+ ]2 x
- (setq lay-idx old-idx)
$ v* j; ~9 @+ ~9 o* ` - (done_dialog 0)3 _ g/ q, d7 @& F* w
- )
, U d3 ^9 b+ Y) c3 X* W% e - 5 K( p. `1 k7 {2 y* |- s
- ;; Checks validity of linetype scale from edit box. It checks to
4 o) I3 F$ x; a* e3 Y% } - ;; see if the value equals "Varies".$ ]. e1 t+ D" Q- x3 f
+ c9 M4 u/ U% ?6 X# n/ s# |- (defun getscale (value / rval)3 _# O4 c; c! u# W2 v
- (setq value (strcase value)$ o, Z0 Z, z: M# W, N
- rval (distof value)! J5 D; F( b) m8 l. f6 l
- );setq* B* Z6 n( Y+ R
- (if (or (= value "")
+ Q; [( x1 g% P% p' A& g. E# \* P - (> rval 0.0)% l$ z3 F6 ? G! N# {
- )4 |2 d) O I# }: R) O
- (progn
2 m& ^! b: j% ?3 K3 a - (set_tile "error" "")
! \4 {! C1 e, F& m - (if (= value "")
; j; u9 K/ o% o" S - (progn
: ?5 O4 h0 b# X( I3 G- O& v( _ - (set_tile "eb_ltscale" ""); U) e# T% H: M. m
- (setq eltscale nil)9 [6 N* L3 a5 u* I
- );progn then
; ^: w: }. _+ O) \: ` - (progn
! S9 M) c" T1 P D% n9 U- Y - (setq eltscale (distof value))' F5 h" E8 f9 w: }9 Z- ^" w
- (set_tile "eb_ltscale" (ai_rtos eltscale))
" G& l) M" d |- b - eltscale# N0 U1 r F& s
- );progn else
6 Y) Q4 s9 B8 D! f% | - );if
5 t: i9 e- s9 D8 ]0 x - );progn0 E5 u% @8 Q x+ t5 o
- (progn/ \- F5 H0 J7 N" I) }& ]4 ]
- (set_tile "error" "Invalid ltscale.")8 L# z! X6 W- [8 Y
- nil
: h- Z7 Q9 \5 ?7 e6 M2 N - );progn else+ w/ N3 X5 E$ F$ ] B; y
- );if
* p1 R; D; T& d* J) E7 } - );defun
- J: Z, e3 H' H; S0 T( N4 L - ;;
3 M, C& {) }+ m - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
! q) i4 G8 j7 w# v6 s - ;; string can't be converted to a real, this routine checks if the first9 v/ G9 h+ q; o
- ;; character is "0". It also checks to see if the value equals "Varies".
1 W$ q, D# G/ Z. z { d5 ] - ;;4 ^/ o" C* T2 m- j
- (defun getthickness (value)
& J1 G) t A* E$ ^ - (setq value (strcase value))
+ p% k( A$ ?" W: x2 f6 s% _ - (if (or (= value "")/ Z$ p) P( H( N; |. r
- (distof value)# h& _: S4 V' L! }4 R: A
- );or
) ?4 l( e3 d& u: ]7 ^ - (progn
$ N1 z7 E) G( J0 a$ @ - (set_tile "error" "")
& ], I3 H4 Q: S+ W - (if (= value "")! k) f7 n7 Z+ i1 }* Y
- (progn
" `/ C6 O0 Y- `7 [( o: ? - (set_tile "eb_thickness" "")
/ p, W; C& q# s' ] - (setq ethickness nil)! e9 _8 g/ j( @! S; ^6 r
- );progn
) b$ L0 N" o. L. Q - (progn/ {% P, Y0 E- Y* A' j* z
- (setq ethickness (distof value))
# ^2 [- [, _: x5 \0 `9 P - (set_tile "eb_thickness" (ai_rtos ethickness)) X$ o) r* Y. M8 R0 T
- ethickness
- d! g/ E7 q3 @( n - );progn$ ^* m; [1 F% W; \5 d5 P& l3 w
- );if+ {3 F6 D9 V6 s9 v& v7 V
- );progn
% \8 v+ d" F( X0 ]. p0 M3 R! N/ x - (progn0 r% B6 k }$ f5 x4 w
- (set_tile "error" "Invalid thickness.")$ P: s) d, X, [8 ?8 f k- [
- nil
0 |; I# L, D, Q. e& g/ x9 R) k - );progn
8 n' P2 c! |( C- x# [ - );if& q1 J* f. Z) C. x) G) g; C: f+ b
- );defun * W3 j7 U/ w O0 f% G# x* g4 c
- ;;
/ h, {# \6 V+ C% S1 b: o, o0 j- e - ;; Checks validity of polyline elevation from edit box.& T7 B/ R. E( T8 T+ D
- ;;
6 o) M3 [9 }/ o7 L - (defun getelevation (value)
- x3 A( G+ d- Y4 q1 Z [0 M' G9 l - (setq value (strcase value))7 }( c9 u3 E1 d. L3 w6 m
- (if (or (= value "")
- g% X: `/ c9 ]3 G* z - (distof value)
0 p. \5 {2 f( n2 P - )
3 e6 f6 }5 _' c+ l) G - (progn
) C1 B. a/ b/ u9 P+ G3 d& A( J& a - (set_tile "error" "")
% ^& D7 E: s7 r* ]: ^/ Y* g# C& v - (if (= value "")/ U% }/ l( [6 K4 L- u1 Z$ L" L
- (progn6 ^1 J8 q; K+ }$ R
- (set_tile "poly_elev" "")( j/ J0 |- }0 M5 N- i2 Q
- (setq eelevation nil)
. X9 T4 L: b8 [' i, b - );progn, {; V% Z1 \: K9 A
- (progn
' [' c- }' \0 Z/ ^ - (setq eelevation (distof value))6 _1 Z* N& e4 T5 D
- (set_tile "poly_elev" (ai_rtos eelevation))+ y) q' U& l1 k% W6 Q5 o9 D5 w" K
- eelevation2 O4 ?, b5 Y& Y& L# ?9 p, L
- );progn1 w( O$ d% p% v, O8 u/ g0 w+ S2 c
- );if# c$ F! O5 f" x3 N9 O
- );progn$ E1 y1 p' F; v0 ?
- (progn
; z1 b6 X) c. B - (set_tile "error" "Invalid elevation.")
1 V* i; E# e( Z1 x+ q - nil
+ \: W* O% p7 r5 u& M7 g, ` - );progn) {' d9 Y4 d* X9 N. H
- );if! m) ]- o" H( N) {2 M$ t
- );defun. }" P8 q. U' b% M+ D
- ;;
3 M+ Y' Z" y Y) j - ;; Checks validity of polyline width from edit box.) I& X7 _* B& I2 |2 r* v, J
- ;;
V* q# ^+ T* [* l, U9 s, S - (defun getwidth (value / rval)% P2 Y: E% i$ u$ x
- (setq value (strcase value)) @9 Z! N1 a0 A4 p1 t
- rval (distof value)& [" G* V( m& O1 U) O" m- t9 w/ M
- )
0 O6 p% e' E+ S% q9 m - (if (or (= value "")# h. C5 _. \- I k/ b9 I( N
- (>= rval 0.0)9 E w2 f( ~! L( r0 I: B7 u
- )/ q4 P* l# Y# o2 m
- (progn5 X) r `' N" X7 K: w3 y4 b
- (set_tile "error" "")
. X P' \7 ]' O8 i, u& w) K+ z - (if (= value "")6 ~8 D" R+ t* G$ G4 r- @
- (progn
4 C# D, h3 n5 H% {7 j6 q: ? - (set_tile "poly_wid" "")7 D/ r- ~3 m5 L4 Y9 N6 y
- (setq ewidth nil)
3 }/ R, V" N5 N: I7 [! e1 ? - );progn
- V4 X2 Q0 Y9 g% M - (progn
+ M8 R% T; t" v7 E3 \1 q - (setq ewidth (distof value))
( K/ _ l: C! J. V - (set_tile "poly_wid" (ai_rtos ewidth)): Z7 l! Q# A R5 r
- ;width
$ Q8 m& A7 U# h5 } N - );progn
* _" C; U: O5 I6 {$ _ o - );if. L8 q% m# S& l2 N' { ^7 ]
- );progn
/ V% T7 I ~) Y2 J1 E# { - (progn8 W+ Y9 @( N' I! g B( k- y
- (set_tile "error" "Invalid width.")- h6 D+ |1 R3 W Y7 w8 A2 x$ T
- ;(setq ewidth nil)* g8 E* y9 w. C% I
- nil - @" x# T& E8 I1 u& \
- );progn
$ g2 G0 U S; w" c% A9 M7 h - );if' j0 r: i: @$ ^
- );defun6 W) o2 ?, y# p" q9 J% u1 }
- ;;
7 h2 @+ b7 t X8 T) Y1 f" Q* u4 @ - ;; Checks validity of text height from edit box. C0 j. t3 n' I+ @- v ~
- ;;- v7 `; i; F( O
- (defun getheight (value / rval)& m5 j v( q6 B/ U$ q
- (setq value (strcase value)/ V5 G3 G1 \8 N3 J) }
- rval (distof value)
4 s* o: U( A8 O( _ - ): C% k. \" Z- o
- (if (or (= value "")1 d& m, r- M% H$ N/ s( R" U
- (> rval 0.0)
/ @6 [) ?. ^, K" E8 X9 |2 y! d9 H - )$ G) y, r; f) m9 ^
- (progn
# T& D! P: C4 s- |* A! ~& L - (set_tile "error" "")* ~4 Y5 E1 J- ]& q: p; m
- (if (= value "")
# J/ i2 k& `4 s - (progn
8 x4 [/ |& a2 \4 ]* h9 w - (set_tile "text_hgt" "")- K8 O% Y) y) y8 h, @) _ n$ X
- (setq eheight nil): F/ H4 f! u4 |1 i" Q: \8 B
- );progn
+ k3 v. e2 U6 j: _: A: D- ?) l - (progn3 j- j4 c E V5 ]9 T5 k
- (setq eheight (distof value))# A4 D' k/ O2 Y. q
- (set_tile "text_hgt" (ai_rtos eheight)). h2 K: S# e5 z2 S6 l/ ^! x
- eheight
$ u% a$ D" V _# A - );progn N b6 [5 d! |8 m* a5 K
- );if7 z: [0 w" D( c: @! c
- );progn% Q& [, j$ t+ o
- (progn6 w: T% x+ ?2 N3 R6 d9 Y
- (set_tile "error" "Invalid height.")
|) R. g" }8 J) A: Z+ P u - nil
! {. y# j( p/ g - );progn: o3 ~ r ?, N* x1 V; A
- );if2 d0 x9 @; G7 h/ Q0 x* X
- );defun# n1 l+ K' }6 N
2 M2 ]- K% @2 m# ` ?. j. S/ \- (defun getstyle (value lst / rval)
! Z* c. c+ _. Y9 ^ - ;(setq value (strcase value))5 _9 g! U$ e4 @; i0 U
- (set_tile "error" "")
) E/ E) V7 y. W( w' |% B0 r2 |3 o$ l* S - (setq estyle (nth (atoi value) lst))
) \- a% `% G9 {- v2 t7 K - (if (equal estyle "")9 N0 H2 @* B3 U3 x5 Z' [$ s
- (setq estyle nil)- M0 z9 [; M5 `6 h o7 |
- );if1 |' ?( \7 f" ?+ G. t# m3 N
-
9 |$ c0 _* X. m& I' C3 m, X- R - );defun getstyle6 ]. Z, u( I6 ?6 w3 v8 t
& Q2 c( Z3 ?; P g+ z' Z Y! \- ;;
. d1 Z: ?' E r9 ]' Q - ;; This function make a list called laynmlst which consists of all the layer
& X( t( S- Z# V: G6 i9 B - ;; names in the drawing. It also creates a list called longlist which
- ~7 R2 Z2 U$ Y3 w( R - ;; consists of strings which contain the layer name, color, linetype, etc.
4 H. p& K$ T! a; | - ;; Longlist is later mapped into the layer listbox. Both are ordered the
4 o D; V. p, Z& a4 V5 ]$ ^ - ;; same.' f3 h4 R# f5 f. X0 |. B3 ]8 v
- ;;
( h9 F5 A( t1 H' W6 E - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
1 W% {) ?- u: h9 b6 ^& v- T - xdlist vpldata sortlist name templist bit-70# O0 e/ B# i T( `* e' z3 f3 M
- layer_number
0 I: p* A% m3 a8 z. s" N" L - )
& A2 ]9 M- G# _) B+ H6 b! Z1 _1 r# a - (if (= (setq tilemode (getvar "tilemode")) 0)
5 l' |4 K/ W$ P$ P' A - (progn) A0 ^/ f6 D3 _" n& o
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")% Z3 H1 ^, z4 p) E. _+ U+ j3 }' K
- (cons 69 (getvar "CVPORT"))
: `/ v1 _) S3 A0 ~ - )
; C) L8 C8 a% c - ): S4 U) i4 Y8 J) T2 {8 g1 n+ l5 g5 o" ^# \
- ). @# `- I/ K" V/ g
- (setq cvpname (ssname ss 0))& A2 Z8 F5 n; ~# w! t$ k/ [* S
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
0 g. Q3 y, N0 H3 X2 k$ y - (setq vpldata (cdadr xdlist))
; C) @5 V5 P2 \( G( Q - )
6 w, z0 L' n0 L+ ? - )
/ c! T: A5 q/ e8 N( _' V& d - (setq sortlist nil)
: L. @( h, a! j2 k5 |7 K. Z - (setq templist (tblnext "LAYER" T)); o" ]. t; H `1 T5 O' t
- (setq layer_number 1)/ X, D' E! y. m- d, m A
- (while templist" K! g6 W9 K }, M, W# ~; m, t
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))! w# H6 r2 D" b8 O5 u6 ~: A/ O7 p
- (progn
- C) |0 u% D# `7 ?; V9 U# k) ` - (setq name (cdr (assoc 2 templist)))
" j( U4 x- l- W$ U3 E: h# g: W8 u& B - (setq sortlist (cons name sortlist))% J* [, o+ C* ?0 y; u
- ;; Not dead message...% ~5 X9 @ I! i& M
- (setq layer_number (1+ layer_number))8 D D; g: s6 C* i7 R+ n
- );progn2 M' ?- J* P3 L; h6 `) l+ I
- );if
8 I6 B. J8 T* Q - (setq templist (tblnext "LAYER"))6 i3 t8 \' _) p, @. \# T$ D
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
7 \" ^$ T- J7 h4 O/ V2 z, p - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))2 d( m' D1 j" P$ q' H
- );if) }9 G& D+ y) T ^( t% |
- )4 n7 m# P4 D- R% A) s0 T
- (set_tile "error" "")' O+ @% P; S" c1 C8 a( Z
- (if (>= (getvar "maxsort") (length sortlist))
' V- u% l" t/ Y. A7 c( A( y - (progn& E# A4 U: P2 U8 b6 N! I
- (if (> layer_number 50)
. w1 V3 a8 {1 b. f- T& t - (set_tile "error" "Sorting...")
* F' K; D" |3 G, g; S4 Z7 S0 X' U - )$ v- ~. d) m, P6 q
- (setq sortlist (acad_strlsort sortlist))
1 c- R4 ]3 _3 g- l4 q9 G8 ` - )
+ U7 K9 m; p' I* M0 H' i - (setq sortlist (reverse sortlist))
; X/ |2 z* h- v - )" i# o0 e& N4 k" |7 N# D$ Z- w
- (set_tile "error" "")1 t0 `% k$ i/ F7 C b4 @
- (setq laynmlst sortlist)
3 b/ o; J1 g. W8 ]3 b! c; k - ;rk ! p, E( ?5 n8 S6 D. c
- (setq laynmlst (append laynmlst (list ""))) 1 ?' L8 H/ M9 b
/ P6 d# y6 A. j% M" G- (setq longlist nil)9 d8 c+ Z# H5 _& G. W T
- (setq layname (car sortlist))
/ S: a0 {7 U9 ]1 r" {- q - (setq layer_number 1)
, W U6 t9 k' p' u( f - (while layname
B q# l9 V6 X+ t" y" m2 r' i - (if (= (/ layer_number 50.0) % v; W) w: G! T& O; ?8 }7 l
- (fix (/ layer_number 50.0))
; |- J; Q! ]8 Y5 i - )2 R o% t( a' W9 Y, u) s. P: `+ j
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
( X% |' p1 u" f5 c' g - );if
3 e3 x# {% H# @. Y; q$ T# U8 D# Q - (setq layer_number (1+ layer_number))
4 p0 {$ v" E X6 z* z - (setq laylist (tblsearch "LAYER" layname))
" V- D3 \1 {$ M- M6 z - (setq color (cdr (assoc 62 laylist)))
# b1 v: g+ q4 R% D4 Z - (if (minusp color)
( ]( a, c- E/ J8 u0 q7 L$ } - (setq onoff ".")
) b0 g& ?" i& Q, C4 {8 w$ ^ - (setq onoff "On")
" |1 ~7 B+ y+ ?- N: O6 S - ). c1 v" K, Q% X8 n2 }+ _9 q
- (setq color (abs color))
+ q$ S# u+ _. K! z" M. g! O - (setq colname (colorname color))
8 S" A# J; S c$ r - (setq bit-70 (cdr (assoc 70 laylist))); j' [% k2 J' e5 a
- (if (= (logand bit-70 1) 1)- I4 c }# g) _ |( W' u
- (setq frozth "F" fchk laylist)
' _1 r; {4 a. C }5 F7 c7 G - (setq frozth ".")$ G2 O. z+ f# ?8 d6 P! C6 o
- )
" k- `# ^" u# y, q2 r - (if (= (logand bit-70 2) 2)
( L( w- ?8 }8 m. m+ V* g r6 r2 t3 P. [ - (setq vpn "N")
* s# ~& B- ^% K9 s% E - (setq vpn ".")4 F9 G0 n, W7 F9 t* P) W: ^# N8 h
- )- x o$ Z* z$ U$ [# t2 m
- (if (= (logand bit-70 4) 4)
' H) \) {$ D: ?% G3 E - (setq lock "L")( }; K+ w' [5 M1 g: S' X* @
- (setq lock ".")
- f! P; T9 Y: e9 X; C! y$ P - )
: \: p ~" i' C - (setq linetype (cdr (assoc 6 laylist)))+ P$ B: n4 ~; \, q* Z) }+ K; N' A
- (setq layname (substr layname 1 31))
7 O+ S) z9 m4 m) f1 O. ~5 i - (if (= tilemode 0)
5 {! ~% B0 }. [) ~) l; j - (progn
6 E2 @) u: c2 \- H( X; i - (if (member (cons 1003 layname) vpldata)+ i) g2 ~' X. f7 r( P' K
- (setq vpf "C")
; T8 W- Y0 z# k, V: u7 k8 s - (setq vpf ".") g. o$ m, c; x! t9 q% v
- )
2 \" w1 m( Z8 K% w$ @. B6 H - )
6 ]5 y/ E! n! z. S1 {" n - (setq vpf ".")
3 d j& o6 Z! y$ D - )$ s3 \' |3 |/ b" F0 L+ [
- (setq ltabstr (strcat layname "\t"
3 N/ }; `+ U; m1 s - onoff "\t"" H+ Z( U: K, u
- frozth "\t"7 b4 o3 O+ T4 t
- lock "\t"
4 { _; J! o" e$ w - vpf "\t" m" {" n3 R5 }
- vpn "\t"
/ v( M9 b" O$ U# o - colname "\t"/ { Y) C9 v" r8 M1 \
- linetype- [0 l& w4 Q. f' s
- )8 y2 [+ \% E7 E5 C
- )$ `6 D% [2 P/ ~: Q& l# @
- (setq longlist (append longlist (list ltabstr)))6 ?; s& Y2 {3 p1 @
- (setq sortlist (cdr sortlist))
/ K7 h2 w! O# G8 c- [ - (setq layname (car sortlist))) D# v+ Y3 y {8 S& `
- );while% i* M* `2 } m( Q @2 x* e
- (setq longlist (append longlist (list "")))/ [$ ^. Y( j& y0 b
- (set_tile "error" "")9 I" r+ x# }7 e2 ]
- )& z& U V( p' ?. Y! F
- ;;5 t3 _. s; i& r. m
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of+ \8 Q/ R) \# F# X
- ;; linetype names read from the symbol table. Mdashlist is list consisting s& j* m0 @5 k' @9 o/ A* ^5 \
- ;; of lists which define the linetype pattern - numbers that indicate dots,
, L9 U& Z( H8 t- q* W$ o - ;; dashes, and spaces taken from group code 49. The list corresponds to the3 e! E7 O* T/ D& x& E& z" F
- ;; order of names in ltnmlst.( A- `$ |7 I# u/ @1 Z- i l
- ;;( G: E3 Z7 D$ \7 L( j
- (defun makeltlists (/ ltlist ltname). W+ y; K5 J, Z) C( b) Q
- (setq mdashlist nil): o( X+ U8 E( s2 \( n8 N( S
- (setq ltlist (tblnext "LTYPE" T))& T% h: @5 S0 }: a; |* M9 W" q
- (setq ltname (cdr (assoc 2 ltlist)))
; \" |& F' O, _7 H K1 q - (setq ltnmlst (list ltname))
) z+ h# W, H5 h2 }- I- d" Y3 j - (while (setq ltlist (tblnext "LTYPE"))0 ^" ?1 C1 n9 H# {+ v
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
. M4 q" b0 r+ } - (progn
9 n: s; y" o3 w1 f8 Y - (setq ltname (cdr (assoc 2 ltlist)))- H l1 `% V# Q9 @1 a9 a
- (setq ltnmlst (append ltnmlst (list ltname)))
% X2 r k# H8 X- V - );progn
+ ^! C2 ?. {, l9 X: D - );if
1 z I2 E" G, o" F4 e - );while) Q$ B/ R$ M8 m; L& J
- (setq ltnmlst (acad_strlsort ltnmlst))
' x8 y! K- E' C6 f4 w& ? - (setq ltnmlst (append ltnmlst (list "")));add by rk
7 `# Q$ Z! ^: K- A - (foreach ltname ltnmlst
9 X5 x- E6 \" `. C7 I$ R, C2 O: X - (setq ltlist (tblsearch "LTYPE" ltname))
* X& ~% |$ ^6 U2 u6 m3 d0 E - (if (= ltname "CONTINUOUS")7 X, }7 i$ s1 W. X% L
- (setq mdashlist (append mdashlist (list "CONT")))6 Q/ ?) l; r# d4 R
- (setq mdashlist$ F' x/ N: e% \) }( D* n0 @
- (append mdashlist (list (add-mdash ltlist)))( k% T3 g- }( s: ~( |% A5 P; t
- )
6 o* R) Z, Z+ Q* f( U - ): q7 S" t4 Q9 ^: \; T1 S
- )& N: \3 O9 h$ w/ u% v7 x% C
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))) n$ k* t" }- `! I: ?4 K/ \9 I8 Q
- (setq mdashlist (cons nil mdashlist))# [% P3 ~2 ^; ~ B
- (setq ltnmlst (cons "BYLAYER" ltnmlst))4 A7 N! p. w( c. u4 \" h! B( `
- (setq mdashlist (cons nil mdashlist))3 v# x8 d7 i& H: ~) Z( ]$ H
- )
2 A c" e* y4 V - ;;
3 p# e3 k7 z. z5 ?' r% \ - ;; Get all the group code 49 values for a linetype and put them in a list
% a1 x( D! j0 B( x0 } b( S - ;; (pen-up, pen-down info)
w; ?/ x4 ~& i9 ~2 r, a+ s! X& |. ?' G5 q - ;;8 ^3 T8 C6 G$ d
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize); G; I5 e! A( }
- (setq dashlist nil)
7 T$ Y g3 u, v6 {2 I - (while (setq assoclist (car ltlist1)); S" F; r9 Z' Z+ z
- (if (= (car assoclist) 49)& Y- n* M+ L7 H3 m1 X) ^0 n g
- (progn
' o7 M! p# g2 x6 H' Z3 W) a. m6 j - (setq dashsize (cdr assoclist))+ e3 x8 k. g% _! G
- (setq dashlist (cons dashsize dashlist))7 B+ I1 \# n) o, v, E+ x
- ), G7 b# n, n0 Z( n' C0 E+ T
- )8 {1 r( W! b) e
- (setq ltlist1 (cdr ltlist1))
3 M% `% C( D2 u3 _5 c% w9 b - )
( a; J n1 T8 b+ r" [2 y. ~+ T - (setq dashlist (reverse dashlist))0 j9 x4 ?( V0 H7 E' s6 B
- )
3 ^2 G/ N0 W- E( \ - ;;
8 y+ a- {& E* p0 g: r' T - ;; Color a tile, draw linetype, and draw a border around it8 v, [9 ?; H+ a/ A
- ;;2 a! P& G" k/ P- Q! A6 C4 X$ {
- (defun col_tile (tile color patlist / x y)
* p: q4 B6 A, |2 c - (setq x (dimx_tile tile))1 \6 K6 P! _0 U# O
- (setq y (dimy_tile tile)), Q2 I, n, H! o$ Z4 g9 S
- (start_image tile)& B6 Z* A3 x: N! n) g3 i
- (fill_image 0 0 x y color), E1 L" j) ~0 r, W% n5 t
- (if (= color 7)8 l8 {: r6 \$ a" z7 T" s# g
- (progn
/ M% [& |% w8 N+ o/ v- M; b3 ? - (if patlist (drawpattern x (/ y 2) patlist 0))
4 P/ q' E' O+ }7 s - (tile_rect 0 0 x y 0)
. d: H. w: h) R9 I" A9 @$ ? - )" L4 {8 n2 I: S& }# ^
- (progn- f) R$ @0 ?8 i" E. I1 C
- (if patlist (drawpattern x (/ y 2) patlist 7))
9 X6 @% E( t C L h/ {6 A/ G& l - (tile_rect 0 0 x y 7)# Y* z) H' h$ x. }# ~) A3 T3 P
- )4 L% Y( h+ e% j, @
- )
% `) Q$ W" f0 d. `9 p% e$ r& l - (end_image)
* z; J7 Z) U+ K - )8 {* }" O& s2 Z3 g
- ;;
; ]8 F0 t3 b; U9 x( o ~( A - ;; Draw a border around a tile
, E! V. G& v! @+ I% O - ;;
& Y0 y$ V6 z( C4 j - (defun tile_rect (x1 y1 x2 y2 color)8 |$ x/ r7 W. T) t# `! L
- (setq x2 (- x2 1))8 B; y+ I$ }# x& q1 U
- (setq y2 (- y2 1))6 [! P* z" Y! }4 J+ `
- (vector_image x1 y1 x2 y1 color)
_ R+ X3 v3 s8 `. |6 i6 u - (vector_image x2 y1 x2 y2 color)
! N. V D* N, P- Q% W - (vector_image x2 y2 x1 y2 color)( i, @0 I3 t7 k# r
- (vector_image x1 y2 x1 y1 color)
" x, I) v A+ I4 V/ S - )2 S$ p6 k0 Q6 C& F- T
- ;;
/ s; O& Y1 n% F1 d - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image `7 B' W) g# H
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
& O! i% Q. V" k8 R6 m - ;; list of numbers that define the linetype, and color is the color of the
- T: ]9 i4 E( j - ;; tile.9 z b% t g+ P1 f
- ;;# B; a/ ?- W O, r$ W
- (defun drawpattern (boxlength y2 pattern color / x1 x2% ?; j& C7 w7 Z) m" Y
- patlist dash)& x9 _7 W+ s: I2 O' [ u2 W
- (setq x1 0 x2 0)! U; Y3 M7 j4 K/ e
- (setq patlist pattern)
- N: ?0 R" \4 l6 e; N! h6 G - (setq fx 30)
4 m, }/ P) B+ S5 P - (if (= patlist "CONT")
5 L8 ~$ }- ]4 g& f - (progn
) K1 ]: G) C K' _ - (setq dash boxlength)
8 i+ ~4 e' \. y( e9 t3 J - (vi)) J$ K! V! e- m/ T Q
- (setq x1 boxlength)1 r/ T# M- S3 y. O7 K+ `) W: ~
- )
' F+ j- I% z+ c, C$ ?6 D: T4 t. i - (foreach dash patlist% \2 n, h' v! R* n* S" |
- (if (> (abs dash) 2.5)
M T4 {! Q" X# e# S! Q - (setq fx 2)
3 n" f+ ^ p1 v" _7 i - )
* G- I6 @2 x/ c- w. K# R9 @$ j) C7 i - )
8 Y& O+ j- |/ G+ C. N% f+ ^2 G - )2 Q# k/ c" z9 V
- (while (< x1 boxlength)
2 r$ F E9 ]* S+ D) ]; A8 `; z5 S - (if (setq dash (car patlist))4 N9 U0 W9 [3 R+ @8 m/ l; G
- (progn
/ B9 b2 z& ?. b' U. P n( L - (setq dash (fix (* fx dash)))
/ T+ C% U, [5 Z* }' N3 Q& d - (cond
2 ^0 |' ~$ Z4 l' c% }5 ? - ((= dash 0)
% M: {: V% o' G8 h4 `! D( o9 I - (setq dash 1)9 A& B! m. }; O8 z: M
- (vi)( K: j& _/ u, e& Y- k& j
- )- H7 J6 K6 s. V
- ((> dash 0)
: u8 ~' U0 ]# r3 f, P - (vi)7 x* _ T( ?4 ]- A
- )
2 v5 w" D I. r& g J# u- c/ s - (T9 {! B! j+ [# `" T2 n( x
- (if (< (abs dash) 2) (setq dash 2))0 r% j( N3 Q9 H& g2 f
- (setq x2 (+ x2 (abs dash)))4 \4 H( r. w( ^, F
- )
( {3 Q1 S8 N- N; [2 o - )
) [4 p% ^& x2 @0 l! l4 e3 H! }1 B/ `) R - (setq patlist (cdr patlist))1 w' ?) M8 w* I5 s! I8 j
- (setq x1 x2)7 [& |4 d6 E4 q$ U. n: K
- )
7 r0 o) a% m& I4 [ w+ m1 Z) O - (setq patlist pattern) _9 T! _( K2 G, f
- )
% `2 ]( k" k+ f. k1 W8 w' D! x - )
% | o' l2 y. ?) @6 u3 {- s - )
3 P# V/ {: {$ |: I4 e# e; K - ;;1 S: h$ `1 \+ k4 @
- ;; Draw a dash or dot in image tile5 t& q& I7 o5 O; ~; j: |
- ;;
7 `4 n+ W! Q5 V/ R2 K; n - (defun vi (): N( f' X+ A4 B" z; T5 z0 a# a- H
- (setq x2 (+ x2 dash))
/ n. b7 I1 ?: {/ B# T& J - (vector_image x1 y2 x2 y2 color), f. i ?/ \( Y# u7 X
- )
( r2 {' ^9 r7 `+ C: Z+ }; n3 \ - 7 D! _ W* V0 x6 P' ]5 I$ H
- ;; This function takes a selection and returns a list of the color,6 ?: M, r9 S$ ] ?( d0 V
- ;; linetype, layer, linetype scale, and thickness properties that, A: E4 q( D7 p/ K3 P+ B0 k( Z) V9 H3 @
- ;; are common to every entities in the selection set - (color6 A0 L1 _0 K( z* {
- ;; linetype layer thickness). If all entities do not share the same
( i& E& M! i2 I& E( J - ;; property value it returns "Varies" in place of the property" Z" t. ^, q: ^* ]0 w0 U6 ^+ `7 t
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
4 H2 |6 S; i9 T( ^- B - ;; The last item in the return list is an integer flag for the" q0 f( C C; V
- ;; homegenity of the selection-set object types.+ T5 c1 L3 X/ R0 t
- ;; 1 = All polylines; v* C/ ^$ F1 c' s6 M: h* y
- ;; 2 = All text or mtext or attdef, or a combination of the three+ x% L3 M' z8 E# H4 f; I; j
- ;; -1 = Any other mix of objects" g5 C& R, h- p5 ^; J
' y) F t. V. y- (defun getprops (selset / sslen elist color ltype layer ltscale thickness2 d a* j+ A+ _
- width elevation height go ctr
, O' y% l4 S( V. z - eflag
, A8 r+ ?* }/ ?# g0 {0 c - etype temp
- u, f) v8 m t5 a; `! B6 R2 d" m - txt_ss ;;;;rk 11:24 AM 1/30/975 E& q, R5 u. [+ d3 W) _- C; \$ f
- tmp
& F. |- p: [5 ~ - poly_ss
6 |9 R# h; M+ s" @; j4 k - style3 F4 F: E9 x1 n
- )
) N' l& }# x% k3 o3 g* w
8 T+ ?8 ^) U7 i1 O6 @! J/ w+ A- . y$ V8 N' ~1 Y
- (setq sslen (sslength selset)
; Q6 S4 X7 d$ {: G& B' l- q - elist (entget (ssname selset 0))- q% `8 l* r) H' }
- etype (strcase (cdr (assoc 0 elist)))
9 m6 P2 x Q% }3 Z - color (cdr (assoc 62 elist))
, t* \5 y5 Y2 b2 \) R% V5 E& V - ltype (cdr (assoc 6 elist))
1 s6 S9 g% Y) O8 |* A - layer (cdr (assoc 8 elist))* z( r; a! v L( b5 N
- thickness (cdr (assoc 39 elist))
1 s/ U e/ b2 I- S P - ltscale (cdr (assoc 48 elist))) c" H, M4 I/ Z0 U7 A& i9 n
- );setq
V1 w$ h% J, q7 H0 I
0 e z7 ]! M# s- (if (not color) (setq color 256))
# ?. a9 u: T, S3 `$ \ - (if (not ltype) (setq ltype "BYLAYER"))
5 _: c0 V, K, N - (if (not thickness) (setq thickness 0))
% o) N+ U# B3 ]0 ~ - (if (not ltscale) (setq ltscale 1))
. S9 ^0 I& k* N U& P. v. y4 s
7 E. T, N1 q8 S) r5 s- (if (not width) (setq width ""))! u5 G, ?" R* ]4 M8 c! ]8 f" B
- (if (not elevation) (setq elevation ""))" u) Z: ?9 o! f) I G' K( G
- (if (not height) (setq height ""))7 V7 i9 s! ~, `
- 0 o" I* F* `( V' R X, F3 |
- (setq go T
* Q. p9 f- t/ M# J- u0 ?/ A( P1 ~ X - chk-col T
+ G8 b8 M. R; ^ S" |) h* ^6 f - chk-lt T
0 J; u" I! i$ |& ^7 M9 J; | - chk-lay T
% p a$ ~6 j& E8 g9 `4 B5 \ - chk-lts T
' S- X5 W5 Y, L - chk-th T
3 O! B. e( s+ u! b4 L - ctr 0- |& [# N5 L0 p1 L* N/ l) _
- );setq
0 m5 Z, o' {$ Z - ( o/ @- G, a3 p5 I7 k5 R4 Y$ ]: ]3 \
- ;; Page through the selection set. When a property
/ q* L9 G" ~3 y9 V, I5 `) F - ;; does not match, stop checking for that property.
# s$ t/ k: N& t5 m; \) g - ;; When the selection set is not homogenous, stop checking.
0 q$ a H$ n% h; A, e' ^ - ;; If all properties vary and the set is not a type 1
/ D a- x% \4 v8 V) c8 ` - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
/ Y) ?" v& @9 s( {( m9 V - 6 L! Z4 `# y0 O# s; |# d
- ;Lets set the eflag so we know if the selection set includes any : a( S8 E# G+ }. P1 |/ \6 {- T
- ;combination of polylines, lwpolylines, text, mtext or attdefs.2 R# Q- ?& _* Y! a
- ' I2 Q4 W1 M. D
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
# u) r3 G4 t/ | - (setq eflag 0)
* |% ~0 y2 }. J' c - (if (setq poly_ss 5 V; ^. a6 t! X& f" \! z
- (ssget "P" (list '(0 . "*POLYLINE")/ Z& b& `& l+ s: K# k
- '(-4 . "<AND")
0 k# J; _0 o4 o+ i' C- x J - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")* _( s# D% M% f! O% C) S# F
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>"), R) n9 Z4 Q; y% t
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
# Y, w+ J2 s. z8 \, A/ X$ L - '(-4 . "AND>")
9 e* M) [% X; G2 U - );list! M/ D2 M$ O2 c6 m# \
- );ssget get 2d polylines (legacy and lw)
' l8 Z: \- n8 Z) z4 E - );setq, A' b0 T; q" [ k4 y( s
- (progn1 v, W5 C! w2 V/ i* n
- (setq eflag (+ eflag 1))$ H( ?) b5 Y8 P$ ^- b$ N; A
-
+ u: p4 Y \5 T- Q* o5 J - (setq tmp (entget (ssname poly_ss 0)));setq
$ H' \& x9 z5 G0 m! f8 `2 w
* R, b; m6 B7 X" X0 y4 i- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))0 K% z& k A) n: ^( Z* g9 g
- (setq elevation (last (cdr (assoc 10 tmp))))
# m1 P5 F$ v" u% s* } - (setq elevation (cdr (assoc 38 tmp)))% z, j& s3 `. w8 l7 ^ E9 |3 a& j
- );if' M" Z7 X$ l, v1 n. n
- (if (not elevation)
# ]! q) v. s* T* \& W- ^: s f% i - (setq elevation 0.0);setq
/ E* h5 p3 @- P6 ~ - );if; G* H. K8 h# O9 d
: q7 @1 U+ u- M$ E- (setq tmp (ssget "P" . E5 C5 ? s/ U1 x- D! N1 M, F3 ^% N
- (list @8 S) c. e7 s( l/ Y. V
- '(-4 . "<OR")
: @) h$ `% ^% y$ r4 K - '(-4 . "<AND")
1 F4 b8 X$ a. _$ c7 C - '(0 . "LWPOLYLINE")) L" }( [2 O( B1 u, N' u2 v9 C, R; f
- (cons 38 elevation)+ H& c" h! {- V% S1 m
- '(-4 . "AND>")
9 J. Z6 G6 y% q1 N - '(-4 . "<AND")
8 f: H) C$ w8 J$ C# A3 {/ d - '(0 . "POLYLINE")
$ w g) t$ v9 A4 x- E( K7 D, G - '(-4 . "*,*,=")
) W! g4 l$ y' s# y7 Y, n$ h - (cons 10 (list 1.0 1.0 elevation))
9 H* W4 ^ T% q4 q( i - '(-4 . "AND>")
- P$ y1 ?0 a7 L" ~% ~ - '(-4 . "OR>")
+ L+ ]* @% w# Q- F* y5 z - );list7 p' \8 e( c$ l& G
- );ssget* y# o2 Q) F: @9 C& V- i1 h
- );setq# P- Z; I+ d! I- a" w* }. ~
Y& C; u/ s7 ?, q0 o- u- (if (and tmp & w |' e+ o3 w: c7 X
- (equal (sslength tmp) (sslength poly_ss))& n/ ?( P# e$ C+ N
- );and. @0 ? v r+ _$ \8 n% k5 R
- (setq elevation (ai_rtos elevation));setq) S2 V1 a; q# Q8 Z; R3 o
- (setq elevation "")0 d; p# y( f; S w( q v
- );if
7 A P" Y3 X0 b. w6 l |$ e# Q -
6 Q6 i6 E0 }3 Q& P1 B, a6 C9 N( b - (setq width (pl_width_getter poly_ss));setq* r* {' }5 _; e2 G5 O: u% `
- - Y2 U+ ^( D- A% b5 P, r! o! t9 k5 A
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!9 j- { o, S( _! e* h
- );if7 \1 L8 L% R9 i4 s
- (command "_.select" selset "")
( u1 q; z, Y- x6 E2 P5 @7 k1 P - 9 i% d, }# k5 }3 Y" p3 K
- (if (setq txt_ss
2 K' g7 u# G+ m1 p" G - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") # M) H, s6 d/ \% ]* A" f' t
- (0 . "ATTDEF") (-4 . "OR>"))
6 t" q- P. ~2 N N - )
5 U; e2 W, |: w; p - );setq
" R- h- ^* _& H$ }/ W6 e - (progn
# |# ^8 [% h( Y - (setq eflag (+ eflag 2))7 i$ Y9 K, s& s
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
6 o) b# A0 d) ?5 \( [2 Y - tmp (ssget "P" (list (cons 40 height)))
4 f5 K0 t. y) i. _9 Z - );setq % F7 X6 k" J+ N. Q* `" m0 q0 G
- (if (and tmp
! e" k- }+ I. `# c1 X - (equal (sslength txt_ss) (sslength tmp)) & C; j$ j/ Z* j
- );and& R5 B, w9 c: t. Z8 z
- (setq height (ai_rtos height));setq ;@rk need to translate from float 8 Q, w7 m( k5 m. h$ k
- ;to string and back again easily# I5 ]7 }- s3 G& I/ n
- (setq height "");setq else the height varies
3 N7 G3 J+ L1 L* Q3 s - );if' z4 J# F4 M3 q: P1 x
- (command "_.select" txt_ss "") ; ?6 l" M( N0 t# t
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))# U3 T& ~2 [. w1 }7 t
- tmp (ssget "P" (list (cons 7 style))) ! [7 a- p& J* V1 z3 ~5 ^
- );setq
3 m! Q* Y/ C: `* G - (if (not (and tmp
) {4 f/ i9 Z# ?, c& J - (equal (sslength txt_ss) (sslength tmp)) " p# l% o z7 i) \
- );and' |2 I) S8 x1 F5 Z0 Z& S- X
- );not
6 T, r" z: ~( O) k; T - (setq style "");setq then the style varies 1 e9 X! S+ p8 Y# s# G; ] h
- );if$ ]+ @1 z# \3 d! E" \
- );progn the text type objects are in the selection set
3 @, E+ e8 u0 S! J! h - );if
! c! B3 K7 ]% B - (command "_.select" selset "")
! Q9 r! s7 l- f/ | -
9 O- t" r/ w! o+ q( ?6 w8 D - (while (and (> sslen ctr)
& u% v/ B' h9 g - go5 M. }8 j- R1 \, ]" P9 C0 K
- );and. n8 j; @; ?6 e. N% G
- (setq elist (entget (setq en (ssname selset ctr))))
% x" C* X; @$ @ - : }- m4 A+ ]$ ?4 n4 [* J, A
- (if chk-col (match-col))
* F* h- A1 M, t; {! r6 ` - (if chk-lt (match-lt))
2 {/ ]: a) h( q1 S* C - (if chk-lay (match-lay))
: e" Y/ ~) X# |! q! r% j - (if chk-lts (match-lts))
* Z" `9 Q0 y. g) m - (if chk-th (match-th))1 g- \1 p9 N1 j u
* _& v7 i, U, c; \- ;(if chk-etype (match-etype))& k B+ Y! p0 B& v
- ' P% F. b6 t( R' z9 N; @8 A( P
- (setq ctr (1+ ctr))
' r4 ]* Y/ z9 X' R/ y - (if (and (not chk-col)
" c7 ~, {& `2 J$ T8 e - (not chk-lt)5 ]/ l* _& c& B: S
- (not chk-lay)+ j' s2 b$ d t2 F! M
- (not chk-lts)2 f; N# i4 q% D: E( E5 T
- (not chk-th)
* y n A: H: c% n2 I3 Q+ U$ ^3 z7 R - ;(not chk-etype)( h( P& ?1 Y* f2 N9 b
- );and9 C! T5 G3 N& A
- (setq go nil)
9 i$ Z- ~8 w* h S4 t; I- `, m! B9 t - );if
4 U6 T# J+ G. c! _ - );while
, m1 f* p! S2 r5 s2 g8 M0 Q - ; D/ i/ Z: O+ _# t: q
- (list color ltype layer thickness ltscale. M; V% p$ Y% K2 Y' d6 `
- width elevation height eflag 4 S, N$ l0 j; W: z' z1 p
- style poly_ss txt_ss0 k* |# {# v4 K' ]! k
- )+ B7 l3 @7 Z8 X' Q7 M
- );defun getprops' `( v6 j5 x3 S3 r4 B0 `! Z
: R m2 z$ D8 Q2 ]' W3 ]. i- ; This is a speedy little routine to tell whether the polylines in / x) s2 ?/ Q) x( U3 x
- ;the selection set argument are of varying width or a constant value.
1 d* v; ]& q0 Y - ;Looping through the vertex's has to be done for old polylines when
# J- Q9 ^& z3 E; p# ~ - ;the polyline header has width values of 0.0. Basically, in this case, ! i" P! K' K; i$ W, z3 K% E8 h
- ;information in the polyline entity header is abmiguous. Width values . j( x; p: ^' g p( @
- ;of 0.0 in the header entity could mean the polyline has a constant : z# L# f7 _7 H9 D' t
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
5 e' @7 d7 j2 l% ^. k4 ?! ? - ;width.
3 z8 C. i- g- l1 _5 d - ;0 ^5 S* z- t; H* ?: t( \
- ; It's all in wrist. Err a.., I mean it's all in the 'if'
* r+ x0 N2 }2 E' F0 i0 V - ;;! B" Z1 `! d4 Q& P0 t9 F+ b
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2) F( G% c( O! k$ L, E
- 8 O9 K( m0 a5 H. o$ i9 L+ g
- (if ss
6 p4 b9 N! |* R* h* |3 @2 U9 A - (command "_.select" ss "")7 q6 u e0 n F- ^4 \
- );if
' O- B. R# b! d/ ^5 c" a - (setq width ""
. g% I+ G* F. u& o2 B" ]8 z% y% i; ? - flag nil! x9 ?8 i6 N* U% G9 s" s
- flag2 nil% B# n7 `1 G8 }
- );setq
; {9 y& d$ W) S4 ~3 \' m - (if (not
, M3 ^& V5 T! t. h) e - (and ss
: z. A; V2 j0 {8 B" W - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq* t( l) h+ b' h6 j5 K9 d1 z- @# C
- (setq na (ssname ss2 0)
! L* x# Y r' J/ ] - width (cdr (assoc 43 (entget na)))
! _/ z. P5 \4 l* T2 V - );setq
5 G$ R4 s- f! U6 \% E2 q g - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
! s: k! z9 q$ {+ m) I5 t - (cons 43 width). a; g1 q9 ]* Q% a" z. r% s
- );list
, x( ]0 x6 o3 R% D - );ssget \6 m" I* V- T0 y2 M% F
- );setq: B$ U* L. T/ i) l
- (setq flag T) / }7 o) W, _! A4 _! }7 w+ ~& m5 `
- (equal (sslength ss2) (sslength ss3))
# x0 \" S- \) B1 N7 j4 o \ - );and
6 @& `3 F# X6 ~' j9 ?& E8 ? - );not
* k) \+ z7 V; t# |2 { - (progn
^# _+ J$ ^% o5 j4 s8 J. W - (if flag0 q& G2 Q6 X; c& t! h5 q+ c) X
- (setq width nil) , ^: Z7 i& h& k6 a; Z9 Y! H
- );if7 n! ?" W1 K( `+ S& e6 w
- );progn
) U& I. N0 Z. c1 B2 Y2 ^ - );if % `/ X. P! Y3 D4 a
- 5 E! y3 ?) _: U( j. T
- (if (not
4 {0 [! w( i3 u - (and , x6 y8 Z2 ~" S& }
- ss
+ K' y. }2 h/ o9 f/ }0 t) l/ P! ~ - (progn (command "_.select" ss "") 4 \% }6 p# ^" i6 _
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq" u6 K( ]( j) f( B/ {, s
- )
: H$ S8 Y3 s9 S$ L2 u - (setq na (ssname ss2 0). M7 u! P {% D* `% Z7 a
- e1 (entget na)
p$ e9 L/ e" i$ x - width_a (cdr (assoc 40 e1))* A( [7 Y3 K0 M* k9 D0 f9 s; T" p! n
- width_b (cdr (assoc 41 e1))1 A+ J) _0 C3 c9 F. N
- );setq
3 f' a6 l* j" B - (equal width_a width_b) O. L( g0 u! n0 {
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
8 w' k2 J0 p0 i' L# @9 A - (cons 40 width_a)
5 w5 M, b! C8 F; n$ ?5 r* { - (cons 41 width_b)$ r) o( ]. L2 D: M6 @8 v
- );list
' V& R( v$ Z2 q7 A - );ssget9 Z2 s6 j; `+ u) O+ Q
- );setq
, ^- o+ G+ j2 D - (setq flag2 T)8 y0 B* k+ C v1 X
- (equal (sslength ss2) (sslength ss3))7 z& X' C: J! v2 ?, U% x5 d
- );and ( I# s9 e7 f7 t3 K# c
- );not
) K; E1 K0 d) \# ~' m9 ~6 R$ f( ^ - (progn
& ^, O! Y n$ S0 h - (if flag2+ q% y6 u. ~2 `% i1 ^/ Q# x4 y
- (setq width nil);setq
7 p: b4 o! o. V% |( V% |; D2 z - );if7 V ~2 a) F' L N) X4 \1 X( y
- );progn then! X. p/ s- v5 _
- (progn
7 M& Z' k- q; g. l - (if (or (equal width "")
9 Z! N& V& p* H+ Q* o - (not flag). L7 n4 a& J( ^# w @2 U1 l
- );or* I* A8 J' Z: P3 U. D' c
- (setq width width_a)" x p0 B- d3 v. u/ E
- (progn
3 x R" O7 [1 s( W - (if (not (equal width width_a))
, W5 a$ S. c. _5 R9 W' E$ n5 Q- w - (setq width "")8 Z$ F3 M( N( b6 m% P5 D" F
- );if
. M1 \& ]2 B: l! F' u* j7 m1 K - );progn- n8 E9 o# {* ~$ h" i5 H; e& c
- );if
, |( J$ E0 f! ] - );progn4 M+ L" v ~( E* B' k8 {! l1 N
- );if
. T# H- T7 x* y T2 O8 W+ }- H - % K4 A' T2 j; ~: z X
, A2 M& t8 Y9 H! h' j. _- ;now for the special handling for old polylines
5 B! l7 l* T$ I2 L6 w' O- } - (if (and width ) |6 o5 D }8 @
- (equal width 0.0)
: f% V: e. F6 g - flag2/ [( Y o2 I, J2 K5 P8 P
- );and 7 \; f! q0 _: S2 j: u: e, b/ L& z
- (progn* A. D# V* i( n" f
- 3 x; Z' ~/ r. x9 d, L: @; b
- (setq n 0);setq
5 K6 N6 Z3 Q8 a2 T; K( A - (while (and (equal width 0.0)" d7 I6 c4 A- { I% e2 m, H
- (< n (sslength ss3))
; `9 W( `( B9 q* u* E. K - );and
9 J2 e1 x& I: C( [ - (setq flag nil" K2 V# z5 c6 t* k4 u' h" C
- na (ssname ss3 n)
8 G' I8 W4 z4 H4 P1 Y - na (entnext na)/ a2 i H5 W( R( @" y9 A
- e1 (entget na)
& M. \' B9 H0 L( H - );setq
6 H* t* w) Z. B! n - (while (not flag)3 f$ I/ V f2 o A1 |& w
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")- ^5 ]# m1 t0 G3 [
- (not (equal (cdr (assoc 40 e1)) 0.0))
* @4 v$ U0 I4 O- J - (not (equal (cdr (assoc 41 e1)) 0.0))
/ S6 v& [$ ]- ~2 o - );or2 T6 C, d8 e E1 y+ q: D# L
- (progn
& q2 c; c* g0 A9 q. B. j. P - (setq flag T);
6 A/ b: o" H' R, X/ ^2 I8 {7 P6 { - (if (not (equal (cdr (assoc 0 e1)) "SEQEND")) W" I& Q. I9 `! P/ p$ f
- (setq width nil) $ u) R% |6 [% p* W9 R5 R
- );if
y& C! L" _4 `6 H) x" V6 B - );progn then jump out of the loop
/ e7 w% d2 J6 N* C. q, l" a" L8 J - (setq na (entnext na)" @3 j- e9 m! i/ Z' y: [
- e1 (entget na)
" `) w8 ]" K6 u/ X+ m3 v - );setq 8 s9 X8 c" R! o7 D
- );if
' b( |" `0 ~' d. G6 z2 x - );while2 [+ l4 r! v9 y5 U t, x" @+ u
- (setq n (+ n 1));setq
$ p$ k" b ~+ j) E - );while - I2 a, t6 ]/ N' J% D
- ' Z7 c6 T2 {% _" \/ ?
- );progn then it's a legacy 4 i* S/ x! T9 D3 m1 u
- );if ;legacy polylines that may have varying widths - R- d: Q4 n/ r
- 3 _: p V+ G% `
- (if (not width)
0 j5 F$ L1 s$ N3 ^7 C) M - (setq width "");setq
4 u- ~% {) D$ q8 T+ r/ F" u0 D1 S - );if, b8 W" {% j; Y! o7 x
- (if (not (equal 'STR (type width)))4 A9 s- L2 y7 Y
- (setq width (ai_rtos width));setq
4 } V1 m1 Q }0 P) Q; { Y0 b - );if
; E: I. Z3 x7 [* Q - 8 \4 O1 C% A* V9 _' m7 I) _$ \9 Y
- width
' T% L% u. l, w - );defun pl_width_getter
- C/ K9 q: W8 c" O& s/ _% x& f3 _0 { - & A5 U9 p. S* h( R
-
1 T, C& T% I% q/ ]; m* o7 B - (defun match-col (/ ncolor)
[7 h7 H! h ^6 k, N& y: R - (setq ncolor (cdr (assoc 62 elist)))
7 E( E/ ?& P, L" W- }0 d3 ^ - (if (not ncolor) (setq ncolor 256))
$ `. x! _7 U" M: y. _6 o! A - (if (/= color ncolor)
. `+ K: C. X9 r0 ^* S - (progn0 j$ J3 t$ B; A# ^( S$ o" s
- (setq chk-col nil)
+ B$ C. j$ G. W# {# @ - (setq color nil)1 g8 {( V3 K% r9 p7 ]! M/ k8 N: g
- )
+ b' S3 a' Q: {9 Y; \/ P( v) Y - )+ `1 o) t2 [. U* `
- )
. P; a" S/ [( H) ~- e$ e - * L& d/ s* ^; q7 I# k2 K( Q" j
- (defun match-lt (/ nltype)
9 D& Y- r' f# Z) p/ ~ E% }* L - (setq nltype (cdr (assoc 6 elist)))$ h& L; I) P4 V7 y# ?4 m* q
- (if (not nltype) (setq nltype "BYLAYER"))' P' ]8 [) R' ^; ^1 n3 e
- (if (/= ltype nltype)
( E2 d# H. ?, @# ]. ^ - (progn
$ C% A! j& t7 ^9 | - (setq chk-lt nil)
) y. d: ?) Y A+ ^$ a+ x: w - (setq ltype ;|MSG0|;"Varies")/ x! h6 G% D8 s! v! f) {- s
- )2 r6 h, i+ y8 @; k) b* e2 Y, y6 b
- )
" @9 j0 d% P( E7 d8 V' Z& i0 X2 ?6 | - )
- a2 T8 D. b& |' B - 7 L `/ @) q7 X; H4 s9 X: a) C) i
- (defun match-lay (/ nlayer)
6 r7 r. [) A6 q5 [+ C/ }9 n - (setq nlayer (cdr (assoc 8 elist)))0 P& C4 R6 N* E$ m4 K
- (if (/= layer nlayer)
) G: e! a# L2 {8 i% Z) } - (progn/ F: l( Y9 L2 z. X* Z# b. X
- (setq chk-lay nil)) ?2 Q2 c- a# S* \' X
- (setq layer ;|MSG0|;"Varies")0 V9 Q; W# p+ o7 Q
- )
0 _2 C) \1 h9 t - )( B6 ?2 M7 X8 i8 T9 D
- )! q. A) V$ Z' I$ O5 L
- 9 y: }' ?1 J E+ L. H1 Z9 |# |
- (defun match-th (/ nthickness)
2 `/ s% R: v2 z; S: g& ~ - (setq nthickness (cdr (assoc 39 elist)))/ r' i' Y6 Y$ `- U7 f0 Y
- (if (not nthickness) (setq nthickness 0))) L& [- v# Y1 W7 m$ s
- (if (/= thickness nthickness)- ~2 {0 g* U: F8 ^3 K y+ n/ K) t4 T
- (progn" E4 e% h/ g/ G) F
- (setq chk-th nil)
% D1 G; `& ~# P; U8 r1 C/ W& m1 G! n7 R - (setq thickness ;|MSG0|;"Varies") V" ^+ U& W! a* a/ D$ H1 o
- )
/ P# h+ b$ j' k) z; L) t! Z - )$ g b6 o: i3 e$ S0 S$ g
- ): ?: U8 m0 f: V' u& h
2 X, m& P* ]* O! ^7 S g! c H- (defun match-lts (/ nltscale)/ N/ Q( {9 p3 J0 d
- (setq nltscale (cdr (assoc 48 elist)))
) k8 U7 ]# @6 _) { - (if (not nltscale) (setq nltscale 1))5 ]' U% a" Z7 G( r, U
- (if (/= ltscale nltscale)
9 d6 p: S9 G e/ @9 m" l - (progn2 x A6 x s2 w ]0 n
- (setq chk-lts nil)
, Q2 k# Q- q; m0 f6 A$ ^ - (setq ltscale ;|MSG0|;"Varies")
* q6 ^# ] [6 F( N - )
; g$ e3 l' q5 G/ N. \6 Y' r# ^% S+ c - ); w+ q5 u4 C4 Z3 O. F
- ): B# }* m; Y1 j, M; |8 O
- , }* a! a- P; {) l
- ;;
% q/ _6 a/ E8 ^! W: e - ;; If an item is a member of the list, then return its index number, else
0 K+ Y# W; T5 O - ;; return nil.' ~6 r% y1 p, t) B# K
- ;;! i/ [) E, |7 Z% p* ^4 i s# |% n7 f
- (defun getindex (item itemlist / m n)
7 e3 v$ m! U2 `3 ~! Y& X - (setq n (length itemlist))- ]- O) a& Q& F1 l G" |; {: l" K
- (if (> (setq m (length (member item itemlist))) 0)% p9 c3 S* W- H" {7 f t4 ]
- (- n m)
# d. u/ C9 N1 J - nil/ ^6 T; Z$ Z" U9 ~
- )
: o( Q0 x0 p+ @. C - )
: U N- _2 f! ~: [6 k4 K - ;;
+ ?# I0 ]4 N0 h - ;; This function is called if the linetype is set "BYLAYER". It finds the
* I1 i8 y) E7 o6 X2 l+ O; a - ;; ltype of the layer so it can be displayed beside the linetype button., a/ Q. n% S* [6 ^1 i
- ;;/ ?# r6 \# g$ t) H# e) h
- (defun bylayer_lt (/ layname layinfo ltype)% {- g8 }+ \8 U2 n4 h1 ]
- (if lay-idx
! Z3 i: H5 a! {; a - (progn
; H: }, D9 _/ B/ N) a! A% x - (setq layname (nth lay-idx laynmlst))) z ?* ^! ]. L' ]4 g
- (setq layinfo (tblsearch "layer" layname))4 z+ ]1 _( m+ f1 _+ @# B$ P7 `# U
- (setq ltype (cdr (assoc 6 layinfo)))& w! p; B( o \' b) f
- (strcat "BYLAYER" " (" ltype ")")
7 Z! R4 X: Y+ q6 @ M - )7 V- W" F6 G! o# N& M, z, S
- "BYLAYER"! K; n- k& g6 a7 i1 d5 G( w! n
- )& R6 d5 Z+ T/ K* ^9 E, a
- )$ L6 ~' L9 J8 `9 {3 m: @5 F% p# T
- ;;
: x$ I4 @9 k' _0 Z& q& } - ;; This function is called if the color is set "BYLAYER". It finds the
+ t! t& b6 L0 _! C: X - ;; color of the layer so it can be displayed beside the color button.
c0 x- |9 A3 z) S( b7 u - ;; a6 n7 p( ]( ~0 G# {
- (defun bylayer_col (/ layname layinfo color)$ g( c8 G; S: H1 t, S, y# s
- (if lay-idx; E( \% {3 D7 g% B4 o2 x( y
- (progn
' l5 p, P9 P% {& F2 H& N. _ - (setq layname (nth lay-idx laynmlst))* n7 N8 M8 n0 ^% Y9 R B/ N! G
- (setq layinfo (tblsearch "layer" layname))
. h( ]5 R, e/ @9 D+ R* q' W - (setq color (abs (cdr (assoc 62 layinfo))))0 I% u+ S' Y# a. V* L4 X# {* E0 `
- (setq cn color)
6 e) n9 d: Q- `: H - (strcat "BYLAYER" " (" (colorname color) ")")4 x; W. P' |# s; h( h
- )
) h: N( s* k6 m- h% s - (progn
3 h6 [. N/ T0 K6 o: R - (setq layname elayer)
$ Y% s3 {7 c, Q2 k8 l1 y+ J- V - (if (and (/= elayer "")1 n9 u7 w' s0 j
- (/= elayer "Varies")
2 M- a5 s5 s9 `% E% P. y - );and
e/ G. a' G8 D+ \5 ] - (progn
{% D1 v7 C: A) F' r: O! T( h6 u - (setq layinfo (tblsearch "layer" elayer))1 o1 A, ?9 v3 S3 C
- (setq color (abs (cdr (assoc 62 layinfo))))# u( w( I$ I/ u8 {
- (setq cn color)+ }5 Q3 O& ?" U6 S+ a
- (strcat "BYLAYER" " (" (colorname color) ")")
+ P/ Y+ Q, w# B. _( u% _$ n - ) U5 J: p. H% z9 S) u
- (progn
! z. U- Z X e2 G& x - (setq cn 0)
$ h' k0 Z& D3 p f! ~. I. | - "BYLAYER"
4 S6 O; w7 D' C# ]( G! r - )
+ D+ ]: z( t% H8 E - );if8 _8 Q: Z% Q' T6 v5 R
- );progn
4 _4 ~1 K7 n3 Q( ^4 h; U- S/ d+ H - );if) Y+ i {; A# T
- ): \/ @6 R/ b2 r2 Z6 r$ R1 V* N
- ;;
+ o/ C5 v/ `; j4 f) c - ;; If there is no error message, then close the dialogue
+ m% y# w2 Z/ i# I/ ?' h0 F - ;;4 F, i6 q! E' s/ y/ d7 i* B
- ;; If there is an error message, then set focus to the tile
/ A5 b( l; u, C! b4 l$ T - ;; that's associated with the error message.
# f4 V$ [9 q0 i1 j+ o - ;;& W1 t/ a5 k T) g
- (defun test-ok ( / errtile)
9 H0 l& e" B: A - (setq errtile (get_tile "error"))" p |" M# }/ }
- (cond- P( J( I0 Z( ~ ]4 x
- ( (= errtile ""); |+ a/ q% P5 q$ f3 @
- (done_dialog 1))
1 b6 O: I# Q1 t" W - ( (= errtile "Invalid thickness.")
+ _8 m8 b; F) G0 l - (mode_tile "eb_thickness" 2))
4 F6 I" V6 q. L7 {( l% e2 ] - )
1 ~% e9 n! t1 {, j3 A - )& Z1 S% P) r7 E% c# A+ Q
- ;;
: C* L; d) X T - ;; OK in main dialogue.# l- `6 `1 O3 a! @
- ;;
* X, A" b2 }* j) @/ d - (defun test-main-ok ( / flag)
) Q( @3 A6 @3 C; m# ]: g - (setq flag T) . }- a- v. m9 Q: r
- (if (not (or (distof (get_tile "eb_thickness"))
. G. n( c5 P0 c% N6 a, V - (= "" (get_tile "eb_thickness"))
+ h9 ?; Y. Q1 B0 r4 I4 k/ e - );or" a" O. @' S% W
- );not
# h. T8 k7 c( t - (progn) v+ i6 y/ Q' t/ s! X/ Y: y& h
- (set_tile "error" "Invalid thickness.")
2 S/ G8 R ]1 J2 X5 m( X - (mode_tile "eb_thickness" 2)3 W/ R- q7 \" B
- (setq flag nil);setq
% a1 U* k- u% I: x1 n2 ~ - );progn) R- R1 ^7 T5 n
- );if
5 n. m* q5 q; M; m, l/ j - (if (and flag
% g' L; W6 m( j( f - (not (or (< 0 (distof (get_tile "eb_ltscale"))): n9 \9 G* |) C7 Q
- (= "" (get_tile "eb_ltscale")). j7 }$ r; G* B" u0 T# {
- );or ' Z/ `' j' v' w' s" Z( ?
- );not" j- y% c! j+ ^8 } r& ]
- );and 5 H& q- _7 {) u6 n9 J6 H
- (progn
" q2 v( R5 J' N - (set_tile "error" "Invalid ltscale.")+ e, Z' o0 ^* w7 R
- (mode_tile "eb_ltscale" 2)$ w1 _, I% s' H, v; y5 _
- (setq flag nil); 4 A2 v$ S, l# t
- );progn then
1 v8 g8 t. g3 y1 d: `1 r - );if( x$ ^# U' q% n% m2 L
- (if (and flag
, R' R6 a: c6 Z4 V- q+ b - ; Don't test the tile's value unless it's enabled.; D/ B- O0 \) H
- ; We're not set up for the display-only value9 B$ W! r0 V+ ]3 T7 N
- ; of "" here in the error handler.
8 a$ O. h- M% B! x2 \ - (= 2 (logand 2 eflag))1 }4 M o4 ^: X% H0 ~
- (not (or (< 0 (distof (get_tile "text_hgt")))
6 L1 W: b$ d8 H2 F! T - (= "" (get_tile "text_hgt"))
5 Y" C! e5 x* K; v - );or9 ?/ ^: U# p8 G% U
- );not
* [# K6 I8 ?7 P8 M( z3 h; O! s - );and
1 F/ s7 |% [' C. H, @3 f - (progn" ~9 `. R" x% r& D6 ~
- (set_tile "error" "Invalid height.")
& Y: Z$ v2 R4 v5 x* J) o6 U - (mode_tile "text_hgt" 2)9 V9 K$ t% |% J1 A* I! A+ J+ \
- (setq flag nil);2 a# {0 [: ~$ _& F
- );progn then) s( n- O# G0 i
- );if, f4 h- x5 x3 u/ C1 U0 ]6 r
- (if (and flag
8 H/ i# E( ~9 |/ {, F, W& h r - (= 1 (logand 1 eflag))
! m: {; ~ ~: {6 A V - (not (or (<= 0 (distof (get_tile "poly_wid")))
$ [) a Q; Z# _+ @' A. A - (= "" (get_tile "poly_wid"))
3 D4 i7 E# O0 {# @+ p" n; h - );or
. k. a* X: e. z( [9 y - );not; y* R4 ?/ f q* O, n9 T! R+ Q/ W
- );and
( v/ V% d1 Z, K% k2 D0 z, {, V" Q - (progn
% [2 M- L* {2 C& z: Y! ~# o# S: V6 g - (set_tile "error" "Invalid width.")
8 Z% ~9 g1 T3 Z8 c' Q7 ? - (mode_tile "poly_wid" 2)
4 L/ b- H% Q/ T! W - (setq flag nil)% \! j' r# O2 x# \6 ^" w- \
- );progn then
* k h5 F: Q' k- ] - );if & |; J4 y* U) H# _
- (if (and flag
/ S% A8 A; O' r) \& X+ x$ r - (= 1 (logand 1 eflag))
! v7 K- M8 ?, {; k, F; M - (not (or (distof (get_tile "poly_elev"))
$ M. q: x( R, c - (= "" (get_tile "poly_elev"))& ?* G( `: x' K
- );or
# h, K0 v& c" S g ], D0 ` - );not# y$ }5 ~6 }6 B7 l
- );and0 \, a2 D! _: v+ i, y
- (progn7 y, Y+ s5 W& M- E& T
- (set_tile "error" "Invalid elevation.")3 j* w# C0 E; @% M# F
- (mode_tile "poly_elev" 2)) o% e. U R ?, f& T+ ?
- (setq flag nil)1 o: e$ [* B' e% x4 O$ i
- );progn then
, {8 X& {/ k' |) J6 l. [# j - );if 3 s$ Q+ S2 D& q3 W j# U- c
- (if flag , c# @4 u! ?; x. K/ |
- (done_dialog 1)% U8 B. O G. q T. G
- );if4 d* u' u9 F) v! M+ W6 ^
- );defun test-main-ok: f3 z6 p7 Y5 r# H) H
- . e% G; x8 Z0 [" k
- ;;7 J& ~. s. b( u5 M, w/ Y
- ;; A color function used by getlayer.
) D" Q$ ]* u1 r& q* N4 `# I1 w - ;;
- @; v X& Q- H# y v - (defun colorname (colnum)! ^5 V! t& Y3 S( m5 X: h9 U9 J- z
- (setq cn (abs colnum))$ f' H( l6 S8 N# c- l
- (cond ((= cn 1) "red")
: }$ p' `; Y# E- O. X/ t6 Y0 s2 e - ((= cn 2) "yellow")
+ ^- Z# w/ \8 E$ r- q) } - ((= cn 3) "green")) z. n, s1 {9 Y1 m
- ((= cn 4) "cyan")
f5 b! a' i# H - ((= cn 5) "blue")1 ?3 l. L' V3 `& \
- ((= cn 6) "magenta")4 j! ~% e7 z" c$ i
- ((= cn 7) "white")
& g0 g0 A% L$ N8 f/ ^ - (T (itoa cn))
8 C+ \' e/ r3 B9 @: F9 v6 S - )! i" Y/ D9 n. @/ [' \ C8 T/ ^$ O
- );defun
7 k/ f' f6 ]& m3 q q+ f9 x - : z# p5 L$ m" W% X( f" B( c6 ~8 [
- ;;; Construct layer and ltype lists and initialize all
) q" Z# T, A6 m/ l& Q# O) z% Y+ x) w _ - ;;; program variables:, z- H8 a' T: n- @! i9 b* W
7 V7 t+ l- ]6 y* o; L& M) Z, ?- ; (makelaylists) ; layer list - laynmlst
, ]0 F8 p( d1 K7 |8 m/ s. a2 _7 z - ( {) L& U! H% R
- * x6 e7 T/ a) Z- S; T
- (makeltlists) ; linetype lists - ltnmlst, mdashlist% C' S' h1 M I; P9 o
- , z; b% d5 X+ L) R
- ;; Find the property values of the selection set.6 @4 g2 R/ B% K( x" C2 c8 K+ m
- ;; (getprops ss) returns a list of properties from" x' H+ o1 S4 N
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
0 G$ P: D3 k( n8 }! z - # T/ d9 e; V" ?3 k2 q
- (setq proplist (getprops ss));@rk interesting things happen here
, B/ b/ h: i0 h' f
# H7 m/ q2 @7 Y9 G7 L- (setq
( T! U( n) A% v7 Z0 O g5 f - ecolor (car proplist)
' Q; I$ e) K9 {" r7 f - eltype (nth 1 proplist)
/ e4 _+ y4 F+ F8 W' K- @ - elayer (nth 2 proplist)
. [& L( E6 C% D/ {% f4 ?; u8 g1 t - ethickness (nth 3 proplist)2 b7 C+ _* ^9 }% e* T
- eltscale (nth 4 proplist)7 \) H0 f4 j' a/ q9 p) x
- ewidth (nth 5 proplist)9 u+ M( ]4 H; H
- eelevation (nth 6 proplist)
b# f; g# m0 J1 Z ^2 G0 G - eheight (nth 7 proplist)
3 u$ |; C) o# J! R9 j - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.0 S' j) o) f6 V0 ~
- eflag (nth 8 proplist)4 l! F# ^7 k, Y) w) A
- estyle (nth 9 proplist)
3 m* o, S8 ^; ~7 D - poly_ss (nth 10 proplist)
# q- t7 {( \' | R+ g) v- N - txt_ss (nth 11 proplist)
! h7 {2 L O+ r# H5 \9 K - );setq
, C7 B& S- ?. e4 y - 4 U+ |6 N& \4 f6 V
- ;; Find index of linetype, and layer lists
9 V! R5 f* |, T - (cond. j6 K& s% k1 `8 T$ q' s& v( g8 N
- ((= eltype "Varies") (setq lt-idx nil))5 A O' H# b n% X
- ((= eltype "BYLAYER")
- M* B1 u& J4 K N# v - (setq lt-idx (getindex "BYLAYER" ltnmlst)))& w# L J- d% A0 z. J
- ((= eltype "BYBLOCK")0 i0 J7 |! x6 d1 v* ^5 L
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
7 o$ N1 [1 ^; I; \, Y - (T (setq lt-idx (getindex eltype ltnmlst)))
6 c r ~- k4 q: O - )
! h9 M& \) R- a8 ]% @+ J7 B- {% T - (if (= elayer "Varies")3 B! B+ S% O4 V7 |% V: m8 ]" K1 I
- (setq lay-idx nil)
) C+ w f1 s' [! ] - (setq lay-idx (getindex elayer laynmlst))
6 h2 g/ r" W# k) D - );if2 ^ ~/ s+ N9 z5 _
- (if (= ethickness "")
" R$ Q& W- }; x \9 N/ ^! m6 p. I - (setq ethickness nil)
( I* L) X1 p4 e5 m0 J( h: _) c - );if
! n+ ^$ y V0 g+ P# b4 U+ r4 e- H - (if (= eltscale "")3 W% K: n' F) \2 u/ J
- (setq eltscale nil)
* Y* h& k) L/ F - );if
. b6 v3 P/ Y2 S; S8 O4 Z
% o; G8 x* |$ @( W# d5 t2 J( G- );defun ddchprop2_init ; end (ddchprop2_init)$ |/ V- g! I7 D( H" V( _
- ( c D: U/ |) I0 m% [: J3 @
- ;;; (ddchprop2_select)( c/ L/ t N$ F* V& @
- ;;;
/ N+ |0 w; W4 U" N1 f - ;;; Aquires selection set for DDCHPROP2, in one of three ways:
' v' ^/ I0 Z. q& A) O4 b - ;;;
4 h7 k; r5 b. {( x% F - ;;; 1 - Autoselected.5 T* @5 h, U) Z# W+ t0 U! S/ g3 B3 t
- ;;; 2 - Prompted for., t2 R" n5 z/ R. k0 ~7 e q
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )7 o& E. L. t# k7 G# M
- ;;; a$ ]$ {: a) n: ^4 N, K! W6 j
- ;;; The (ddchprop2_select) function also sets the value of the1 b# ~3 L$ R( s: s; p3 t
- ;;; global symbol AI_SELTYPE to one of the above three values to
) t; H+ b8 _' J& ^. j9 i! A - ;;; indicate the method thru which the entity was aquired.- C) B; d1 E6 ? t6 f7 O
- 9 c7 k0 K4 f4 ^8 O
- ' G4 c; m+ @# F3 l7 d
- (defun ddchprop2_select ( / )! N6 x3 K3 b% I. o @7 R" G
- 6 y* ` g5 i" o" Q
- 6 u1 `# D" _ R" q) J# O
- ;returns only entities in ss that are in the current space. * [- l9 Z2 o# V$ x
- (defun ss_in_current_space ( ss / a cur_space ss2). |( a0 a, k4 F$ Y# r9 R8 _
- 1 l! j# a6 ^. D5 A: x" j
- (if ss
! @8 m. F8 j6 l9 D3 p) h8 h1 T - (progn9 e$ y" I: V" u3 Q6 H* m- P
- (if (and (equal (getvar "tilemode") 0)9 O8 W% H/ S) C
- (equal (getvar "cvport") 1)
8 G7 k; v# ]; _/ S+ \3 X+ @ - );and 3 ]2 W* z Y# I8 s, }9 a) r" @% m: a
- (setq cur_space 1);then paper space is where we are.
; n5 \' a h) h4 Z: R! P8 X1 b - (setq cur_space 0);else model space.) {* w' _2 s# r7 w6 _% @
- );if
$ q/ c+ i# }: t3 n0 h4 H: h - (command "_.select" ss ""), A; l9 N' M% l% _
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
: [! |, a1 p: l - (cond ;;;;;tell the user what's going on.- c! T: G8 M8 i9 z& Y/ i
- ((not ss2) (princ "\nNo objects found in current space."))
/ s1 L) z* d7 u4 N( A3 E - ((not (equal (sslength ss) (sslength ss2)))% z4 @( w2 ~$ L b1 x/ }' q( ]
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
% m8 _( ?* t. {7 e - " object(s) were not in current space."9 v; v3 ]8 i$ C+ g6 {( B
- )
% J6 E7 q$ `" {2 ^' W/ Y; ]3 Z$ C - )8 Y* f7 o% k9 J$ m+ `% d* F) Z1 x8 m& |
- )
0 _9 T( D4 Q N, m! | - );cond 3 I# |6 B! m6 m$ h8 }: \, j
- );progn then0 O* |- m/ ?/ ^* [, U# O1 J) z
- );if
3 K; k1 d8 e" X9 \ - ss2/ V% B& C D/ W% Z$ b& l2 e8 a/ T
- );defun ss_in_current_space
" t% x$ B" g8 O+ c8 ~( v! [! Y6 F
* p, C7 m" B5 j- ^
+ t Z9 \' d8 H, B- ;;;begin the work of ddchprop2_select
* ~# B' I1 w/ i+ F* i5 T -
) t! A+ Y6 w8 h. ^6 x - ;; temporarily restore original highlight setting./ x. M% T8 k0 e+ M& |" g
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
. h1 L9 `" }! Q, m5 A - (cond4 o7 Z0 h a) j8 q% ^% h
- ((and ss
9 n' B' j* m0 j6 S. s - (eq (type ss) 'pickset)- J. E7 y: L8 J5 Q9 n( p/ [
- ) ; selection set passed to" A4 O( x" u6 t$ D4 R1 ?
- (cond ; (ddchprop2) as argument
& `% E; |. q/ j# O" i+ i8 j - ((not (zerop (sslength ss))) ; If not empty, then m: p3 Z* n" U* i; m6 _9 A
- (setq ai_seltype 3) ; then return pickset.$ J8 C9 j. S- m# B+ Z' w* g- s
- (ai_return ss); c6 V9 F+ v: q m, f6 S- ]% b- S, N
- )' N5 h4 K6 E8 t& I
- );cond close5 @ r6 ~; [# y6 ~
- );cond #1' Q: v0 n/ i5 {- G
- ((setq ss (ai_aselect))) ; Use current selection* J9 L0 P$ d1 W: {8 M3 ~
- ; set or prompt for objects! L. U) F# x. P
- (T (princ "\nNothing selected.")
$ s8 c1 f8 n! x8 T1 {6 u# k8 f8 [ - (ai_return nil)/ @) F) P Y0 I* M( ~
- )% o7 H3 N3 l+ }8 j) v0 H$ s
- );cond close: ?1 d- r; o9 `/ V5 `
- (b_restore_sysvars)
z6 i. c1 o* p% s8 D* u3 y - & ^2 `5 C; z& D8 q
- ;(if ss
" P8 T- u) ]: O( P! v' _ - ; (setq ss (ss_remove_locked ss)) 2 v* M/ V; X/ H9 q& K' h& e
- ;);if
0 g& T. o! c& l; P c+ Y - (if ss) Y- f1 |2 b1 Q+ C# X! p' t. ?
- (setq ss (ss_in_current_space ss))
8 Y/ o) `+ p+ N5 E" q) D. ~ - );if
- J$ x; y2 ]2 t. A' F9 I
M/ I# _6 ?' v# G" j b/ C- ss
: V- W+ w: c( l$ L8 I - );defun ddchprop2_select$ @4 S# c: }. n+ S2 |9 O. h
p8 L& o/ b3 w, s c: x. |
8 I5 X5 A+ G Q& ?% ?. _- ;;; Define command function.
( i' G# q" D7 @% U* H( o2 ] - (defun C:CCH ()3 m" x$ w. Z+ G
- (ddchprop2 nil)
2 v9 U0 m8 g. v) @ - (princ)9 C$ \4 H m" y+ }
- );defun
0 h: }& `! q: l Z
- W/ \& ]$ ^- h9 j9 ^- * {* u/ ~; f% z6 r. t7 u
- ;;; Main program function - callable as a subroutine.
" S8 f; {* A+ P3 W' [( b/ g - ;;;- g% j# K) |! a m0 D! v, \
- ;;; (ddchprop2 <pickset> ), T- G! N, x0 s6 k, O5 }* o9 n
- ;;;- f7 e) ?! x4 ~9 |1 j8 p, {
- ;;; <pickset> is the selection set of objects to be changed. e T5 u& `/ x% M3 ~$ |. m/ |+ F9 ]
- ;;;' W# O2 K, b& m( F/ L
- ;;; If <pickset> is nil, then the current selection set is6 U& x2 m+ O9 N. X( K( i5 \
- ;;; aquired, if one exists. Otherwise, the user is prompted
/ u4 Q/ t6 ^, X. v; K# S - ;;; to select the objects to be changed.5 g) R6 E& p3 K
- ;;;
- n, Q9 w) P0 n+ t - ;;; Before (ddchprop2) can be called as a subroutine, it must
2 t J; _3 B2 G1 p. T6 f# N2 A - ;;; be loaded first. It is up to the calling application to
8 _4 L6 i8 U3 k1 p - ;;; first determine this, and load it if necessary.
4 w9 X& z# J I) u4 R6 o9 e% H - * F* ?8 V3 k" K
- (defun ddchprop2 (ss /
Q* b- X r/ ~9 X1 g( R' c& A% C - 1 O$ ~% S% ?1 C
- a
/ |# m2 P: K0 g# x- {% |$ ` - add-mdash
r0 ^ r& q. @; d2 q6 o - assoclist7 c+ O3 e" E. U% f2 S1 C, {4 t- h
- bit-701 |/ X% ?# h1 i, E+ c2 Q
- boxlength
# R0 N4 }# u3 Y - bylayer-lt
, f8 [0 ?% \" e4 {8 _/ `0 t' Z$ x1 [ - bylayer_col+ l- G7 h& C* X P" |
- bylayer_lt
/ ~1 m0 u* g9 I - call_chp2( C, t# |) C4 [
- chk-col# i% E$ z: b! t/ P
- ;chk-etype ;var removed by rk ! ?4 X0 n( M9 N# U+ f4 l3 U s: b) ]
- chk-lay & o3 W/ J. u9 G* i- E9 s
- chk-lt- {) S& D; i- i
- chk-lts ;var added by rk : Y/ O: Z* D' | X
- chk-th
; d& T/ u$ x8 ^6 R' x6 W - cmd
' |1 Q9 `! ]! r2 H( ^ k! H: x - cmdecho4 B+ U6 `2 [$ U$ B+ A
- cn
6 q' c" t; S) N) ] - cnum
# X$ @" J" D' e5 C" g0 W: a% s - col-idx0 i5 I3 k+ r' z+ e- X$ o
- col_def
8 ^5 p& t8 |* X8 |9 j" O: p - col_tile$ S0 D# h: q: @' h7 ~4 B0 _
- colname
* ?+ Y" F: U) i$ c7 I/ f* u3 C - colnum
6 Z" W0 o2 {/ K3 h; J& ? - color- X t: {0 _: w; x2 W% m4 O0 ~
- colorname2 D% _' W8 }( R' m5 M# ?
- cvpname$ k% t& m+ e9 J' Z0 S4 q7 _
- dash) h, x& B0 |* T$ i' S0 J
- dashdata
$ ?+ B: a; A0 p6 Y$ [ H, L. O - dashlist
' N* B1 G2 g3 j - dashsize
) G0 v8 V9 C+ \" B - dcl_id
/ v( B& @2 w! h7 J/ v, m - ddchprop-err
; b- B* I9 o0 T7 d, X8 | - drawpattern
/ e: {3 D0 `: ]. @6 t1 x - ecolor. ^& ]2 e6 i" M/ u, X
- eelevation
9 ?6 n E6 ^2 C& [ b - eflag
; E5 ]0 h/ n" z( h1 X - eheight. E5 ]. {7 U- X; a; v" @
- elayer4 L6 T' l- y+ ^: f
- elevation
9 |3 H' ?+ d) x. R) |$ v- j# ?5 a - elist
( L/ X! I7 K7 G8 P; p - eltscale' P7 X* U( {7 p1 ?: ^5 C+ U7 J
- eltype
; I0 C! Q/ N; R, {( e7 z' V - en
- t7 A2 t5 I P- ?5 b Z - ename; p% i. m% X J! ~2 C
- ESTYLE ;var added by rk
$ {$ d- w' S3 |1 c# f, v$ E4 s; P - ethickness/ w3 _- m# o- M i- H, k/ p
- ;etype ;var removed by rk
5 R. p6 |# r6 K" B& J0 }; z - ewidth! u2 i% _. _5 r% B* E/ D; e
- fchk
0 d* {) ^/ v( G+ y - frozth
, K: V- J: X/ k) h - fx
i0 H2 n+ f: g1 w/ W; @* a/ Q4 P9 h - getcolor' P& `9 H. i4 z2 s% [7 U
- GETELEVATION ;function added by rk- e/ r3 K! H l
- GETHEIGHT ;function added by rk
4 d( T7 d, v3 P4 r* g - getindex
2 ~, `$ r/ W& n( n9 \, \ - getlayer
' v# z5 Q+ x; U) K& q - ;get_locked_layers ;function added and then removed by rk
: V) _( _8 S3 u- _* j0 A, V& Z8 E - getltype
# F0 E% Z+ g$ S: z - getprops5 i+ u6 d u1 q
- getscale ;function added by rk& |: |0 E" [- M }) s' c" S* W
- GETSTYLE ;function added by rk
3 w6 U9 q. j) C! ?/ @& Z - getthickness) w) q" F0 l! x% i7 |& Z( _
- GETWIDTH ;function added by rk
: a' }4 C/ p' e$ ^$ ]+ e9 z - globals
/ b* c. x2 X% u4 p - HAIR_STYLE_LIST ;var added by rk
2 }% ^- p! c7 x5 y/ h - height
9 _# {( `# h# G- a& `6 L) t% ~! H - index
) a" K% Z* e0 j) S% H - item v9 s* i t( b1 z. Z
- item1
x" g1 b+ w" V- ^# P# K - item2
0 [6 |9 M' m3 b7 z% z - itemlist) ^0 \, G+ f: c7 j4 j
- lay-idx
( k! h+ X2 R0 Q& ` - layedit_act
# T; i2 a/ [/ `' B2 ^2 t - layer V9 X2 T% |5 _
- layinfo& I5 H/ |% N$ C
- laylist
0 ?" x3 P4 ^+ {- ^2 M5 b9 l4 r! _8 X - laylist_act/ Q. u5 w7 J2 v
- layname
" O% X, K" O, C3 q$ C' [1 n - laynmlst' o& L" N2 p7 B5 k& c' u; z+ L
- layvalue' ?5 G6 i+ r+ ^, @1 C
- linetype
8 C4 f' p, t4 ? - list1- A. `! v& B! _: L3 W
- longlist# L) w6 W' x; _0 q2 o& Y
- lt-idx' x, A4 S/ Q. k; k8 h+ H
- ltabstr
* C$ u- g# a0 W M - ltedit_act8 B& ~6 t; X2 O: l4 n0 h
- ltidx
4 ~' _1 _4 Z" l - ltlist
/ R, d/ P! m3 a" g3 v - ltlist1
7 [1 l8 A7 Z8 h2 } - ltlist_act# A8 R& e+ X% _+ Q6 V* j
- ltname% B j) {0 T# S7 r
- ltnmlst1 Z8 [4 a% ?3 z6 w
- ltvalue8 g! b+ T0 M" ]" \" j
- ltype8 M; ?1 K8 p# }" ^7 `
- m
4 P& m' a! t. r8 ~# O - makelaylists8 S- {( _' ~- `
- makeltlists, E+ J6 V4 P, z2 U- \
- match-col
1 X I; g) d3 o* p5 D* J - ;match-etype ;function removed by rk X2 f5 z: s: Q3 c
- match-in
; y% b% p/ j0 C* v3 b, P - match-lay7 b- ^3 D) B" X- h! `% {) C% r
- match-lt8 _ ~" `, {- J' r) v" H
- match-lts( P$ H1 A4 [ l
- match-th
c q" Y, U X% {1 w6 N. l - match_col
3 m7 g6 X. g% \/ j; T - mdashlist6 Q/ E0 |. @6 {* h1 w9 z$ ~2 q
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
# ?0 [9 r6 n" i/ @+ ^5 B - n5 g6 O8 j5 H+ `" M" @. \
- name1 T. X* ~* g0 f) G! t% Z# m7 V, S: Y
- ncolor. a# P- h; i2 _& J9 F3 `
- nlayer
6 c9 z% U5 ~0 R I7 E4 y: P. b - nltype
! G$ K/ x7 o1 [1 b7 U - nthickness( d# b; ]: C1 P
- off. u/ B" N% }( _; e
- old-idx) ^" D" A# Q/ d8 N
- olderr
! M! ~; [; A9 s+ h5 h {# W* q - on
$ d4 }; j. u' t% ] - onoff
1 q! b5 J( R* D* z; F - patlist9 S& h* f3 i& g( M2 \) `) d
- pattern
: g0 g; w3 L& u' Z9 w' U! T @ - PL_WIDTH_GETTER ;function added by rk
1 J: \: `3 [( h# z2 |, D - POLY_SS ;var added by rk
" L- v6 x6 K, m/ F- Q, J - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
( E8 J% s; @% n% L - proplist
. M" S. i3 k+ m7 u9 c9 e' [ - reset-lay
, g2 b4 @ Z# ?% ^+ i8 {0 b - reset-lt
7 \5 L4 A* Z, ?8 _( o0 k4 C5 R& L - s
5 p+ c) V7 i7 n+ Y. r5 Z - selset
& T' J/ b& h9 m8 E; r! W/ q! I( | - set_col_tile2 D4 V# `, y! E/ Y* j" @ U
- sortlist; a* J" S" G+ n5 @2 h! U
- ss6 J4 `5 k# {/ ~8 y4 o
- ss_in_current_space ;function add by rk./ {- `( m* ?" l: m" Z5 w
- ss-index* q+ A% v9 v p5 B6 i1 l w! }
- ss-length. j9 V! \* L& R: G+ L2 m
- ;ss_remove_locked ;function added and then removed by rk.* N' F% H7 S1 D7 K' r- S
- sslen2 [4 z) T( t4 `5 M6 f% ]0 O2 F& _
- temp_color: W! Q+ p3 u5 d6 f
- templist
6 L5 c9 R7 S# ? - test-main-ok
l( x! i- v( o( k) c- O - test-ok
- N, O5 G7 X% P4 J7 A; e. `) U1 ? - testidx
5 @2 r3 b3 w+ \% h8 P% ~+ R# L/ X - testlay
% D- q Z' M# }2 b% H3 c- m - th-value3 i: u6 f- U9 {3 ]. j/ W6 v
- thickness
7 U+ d3 h6 E. ^, _4 V% K* f - tile& J8 l% N: L% E' E5 I* e$ [
- tile_rect9 k: t1 M) S& L* c, M
- tilemode
$ b$ F" ?2 I3 h: P& ~6 d X/ K - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk' h5 Z0 Z4 p7 S( B4 {
- TXT_SS ;var added by rk
8 W" }" _0 h4 [. j. J - ;undo_init ;removed by rk.
5 o/ b$ q* v+ Z1 C0 ?! \9 H - vi. z0 H% r& s* \
- vpf
1 ]4 B) t6 o1 p( n( I - vpldata4 l+ O9 @6 d* W7 V* B
- vpn
5 b2 j7 g% ^; y0 ?! ^9 { - which_tiles
3 r5 W5 L7 t8 v8 D/ | - width0 p- V7 S7 |- J: i8 P
- x$ ?' D8 V. d* v9 ?8 E- F3 O
- x1
, v& L; [2 C- j" {3 n9 {6 U8 Z - x28 `3 f( d. S8 v: q+ f' t \
- xdlist
0 h+ s, `1 b+ @& u! L - y$ G/ v7 M* c5 _: C9 ]4 G" u
- y1
) ^- d1 V. F4 p) n - y2
" \0 ?2 G8 z* u - )1 a' T1 ~3 N3 u8 x% o( h+ ] o; S
- # ?6 o2 | F* j9 `) k8 s( R
- (if (and (not init_bonus_error) 8 c+ L: ?! l. I, K: Z& ^
- (equal -1 (load "ac_bonus.lsp" -1))
. U3 Z3 o) f) O6 y+ O1 A - );and
$ r4 z( ]; n# S, E1 M- p - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
1 H$ S7 U! X& y: b' I - );if
. Z* O# a; {% ]( w# {( Z: I* ^ - (init_bonus_error (list
0 F" X+ W7 @+ k, a5 u - (list "cmdecho" 0
. U9 d, x, e6 B$ o. n" x9 `5 ` - "highlight" 0
5 Y" k3 B; F% I0 e9 ^; s+ | - "regenmode" 1+ T3 f5 ~" n: b/ F
- "ucsicon" 0+ k4 Q* @2 E C, t/ a7 S* \9 y
- ) & `- |9 p- e1 x
- T ;flag. True means use undo for error clean up.
3 K' o) d+ w9 }: r1 y2 ] - );list
8 F( v* p" {( y; S# x - );init_bonus_error; D+ F7 a8 s X* k; [" s
- # Z% S/ q- t% A3 b- ~' n8 ^
- (cond" ~0 R! x( ^6 |. C+ u; N- w
- ( (not (ai_notrans))) ; Not transparent?
c1 c V! y- Q/ q- \ - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
( R' a% g0 q: X: ]% J0 [" |: W - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
' D# H' s* I# V4 o' d1 q0 c - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
- w5 m9 Y2 S) v4 J - (t ! L5 e0 y+ f2 g2 A i |
- ;(ai_undo_push)( V# Q) X' U# ~+ H+ ^& {
- (ddchprop2_init) ; Everything's cool, _9 |5 f2 b* i
- (call_chp2) ; so proceed!
, a: E: q+ w' G0 v2 N$ a3 j - ;(ai_undo_pop)
1 l `: K$ K2 O/ I' f3 a - )
3 V) S: j9 q" A/ r& a - );cond close
/ Z& }) I' } E4 l/ X% E- O, _
: d7 t' K/ Z1 J, A+ Z& e7 h. z/ t _- (restore_old_error)) l8 K& \" a7 r; q
- 0 Z2 k4 l/ e% n# N6 F# c9 ~/ {7 W
- (princ)$ [& E( @+ Z# ` R$ M' u; f
- );defun ddchprop2
2 z/ `2 ~* m7 ~, x8 L) x
+ S/ n9 m( y9 }! y5 Z! w5 Z- ;;;----------------------------------------------------------------------------
/ X5 s2 B2 {2 M: I; ^! H1 Z, c9 a - " x, S: w- f% f; ^
- (princ " EXCHPROP loaded.")3 G: D9 h+ f9 m! D
- (princ)2 m0 W6 x+ ~' M9 }- w* H8 {
1 b' A1 e5 H4 E; [- ;;;----------------------------------------------------------------------------" o3 w7 G4 [3 ^* O0 \$ o( ?. R
- ;;;---------------------------------DDCOLOR_LSP--------------------------------4 T0 z* S8 F1 ~+ y
- ;;;----------------------------------------------------------------------------
U$ H4 L/ P: F; r% Z- A# x7 R - ) ~8 A2 x D$ ?$ X! A! x0 i1 }4 Z
- ; Next available MSG number is 24
/ }! w: {. K" ~ - ; MODULE_ID DDCOLOR_LSP_
( t+ Q( Z: B6 A# z" H' _ - ;;;( o5 }; m4 Z6 p l: M' i' h* [
- ;;; ddcolor.lsp
; U$ K& c8 P/ O. k! l6 f - ;;; % t H* @# @+ `7 O" B3 E4 g4 W0 ^
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
+ ]! d' ?, W4 q. R0 T - ;;;
- }8 y' Y0 `, ^5 `$ G - ;;; Permission to use, copy, modify, and distribute this software- h4 t3 d& j5 C8 C6 l0 }: f
- ;;; for any purpose and without fee is hereby granted, provided t) o& t! X" i$ p9 J, x9 T7 J
- ;;; that the above copyright notice appears in all copies and
. D) J/ E# V: K2 y' E - ;;; that both that copyright notice and the limited warranty and; Y% i/ b O7 `8 E7 j
- ;;; restricted rights notice below appear in all supporting% S5 L) G1 Q6 l2 k
- ;;; documentation.$ d! e3 O; e2 E8 l
- ;;; |3 S% O7 l1 c( \1 T6 g
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
t# {! K: x; {) M+ `( \( { - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
7 Z/ x' r% ~$ c4 i: E! Z; z - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.% e) u8 ?: z; p5 I" e! ~* S
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE2 q& q6 O1 y0 ]9 J
- ;;; UNINTERRUPTED OR ERROR FREE.6 E/ `* _' q7 C4 @6 \: Q
- ;;;, A. n5 d& ]; ?& `, q) S
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to3 k3 P' _1 M" @- T9 {) f* M$ v# h
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
5 E! D+ Y$ e \1 e) K: G9 j" l" m - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
2 k' k: B- ~( W - ;;; (Rights in Technical Data and Computer Software), as applicable.
, h0 \1 J1 C% C( u( F( H - ;;;
. ]0 a' y3 o2 j6 Q- N - ;;;.
& i7 o3 H2 i, n/ H - ;;;
2 x/ |3 M+ P0 a5 ^ - ;;;----------------------------------------------------------------------------
- f: m6 h; M, V/ J - ;;; DESCRIPTION3 r6 a) X2 _1 S5 Q9 m
- ;;;
1 O9 i" n9 y' M- v8 m$ P9 W5 ~2 X4 [ - ;;; Chromatic Pallete style color selection dialog.; a% k- O+ E. b/ g+ z* E [1 U3 F
- ;;; * m8 M2 X7 i4 c5 X1 f7 k
- ;;; Globals:
4 a3 I' |' n: B7 N" ` - ;;; " t% b( u4 k8 ?+ q: ?9 a0 n
- ;;; chroma_color - Integer color index. The last value selected
* i3 W5 C; c- w% P8 |; s2 K - ;;; by the user in chroma dialog. It is not cleared or reset
7 I( M1 D$ k" ^" {4 Z5 U2 c - ;;; by a cancel. Only used for communication between callback$ e8 Z6 S8 l7 H) C% z$ m0 P; S- g/ L
- ;;; functions and the (chroma) funciton.
* b) R2 c( b$ l - ;;;
/ O W2 f5 D$ Y& ^5 Y8 `- f. L - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
$ z; V b7 h% b; J$ L - ;;;
4 A* v$ L+ J* B8 t - ;;;* W# S0 g6 r5 t; t
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
2 a( P0 r0 _- M' a; z* y2 `, S - ;;; pallete style color selector./ L2 R, }' Y" |* |- v$ _( |/ \
- ;;; a* H+ M' V" D. H5 Z/ j9 M
- ;;; ===========================================================================
4 |! E- J# k3 F( W% [# { - ;;; ===================== load-time error checking ============================6 ^ t3 q. h6 h5 o" j6 v
- ;;;" b9 V2 |& K6 U1 l; T
- $ {& Q& n m5 ~6 ?( a0 a# L
- (defun ai_abort (app msg); W; F B. q0 E8 P6 ~
- (defun *error* (s)
" k+ @! m+ V1 O2 t9 B+ v5 w - (if old_error (setq *error* old_error))5 z0 I/ D$ u1 n/ @3 k3 W
- (princ)
) r2 V/ I: ?% m# e$ F8 E2 d7 f - )1 H3 b2 }, ?( U4 r# v
- (if msg/ t0 @6 f6 Z9 v; I) \$ V f; T
- (alert (strcat " Application error: "
* z* E. o9 |: Y5 g - app
2 V& n- ?$ \. c, |. _8 U8 d - " \n\n "
- I$ S6 H" L2 r - msg, R w7 Y- y V; ~, O. h
- " \n"
|) D; Y" x- @- _ z y - )
/ c5 T# }; O3 S5 f4 O3 _ - )* \, |2 ]3 f! j+ y1 K+ U2 ~: G
- )
' Z# L% W8 e" ?8 U! [ - (exit)1 T! g0 A" p9 E# ?2 B4 R
- )& B; c! n% g! U; j, Y& `# F4 r
8 ?" i0 p; P+ J( J8 X9 K- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,9 V/ r* K2 g. A: G
- ;;; and then try to load it.1 D% z1 N6 c( b- F
- ;;;
, Q9 m8 l4 F: J& c0 C - ;;; If it can't be found or it can't be loaded, then abort the" @/ _, `, n9 m: U, k$ ?- Q3 Y
- ;;; loading of this file immediately, preserving the (autoload)- }2 a$ M1 a7 B5 o
- ;;; stub function.
; |: Z& ]3 t$ T2 @- F7 { - 7 L+ w) L; J" ?
- (cond
6 t; U6 B4 }/ b& c/ E5 `/ M - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
1 E4 L; t$ T" }4 v0 |
8 d8 B) \0 n/ C- S2 T$ n8 `. ^- ( (not (findfile "ai_utils.lsp")) ; find it
& n1 }2 `% u4 s3 h! ?$ u - (ai_abort "DDCOLOR"9 r* W$ ?7 k8 q" _: Q4 b% z
- (strcat "Can't locate file AI_UTILS.LSP.". x# `+ B# `! x) W$ @
- "\n Check support directory.")))
( P2 L9 ]. y- S" O' l5 P. Y! l4 L - $ p: ]2 U! @/ h" T# F# u
- ( (eq "failed" (load "ai_utils" "failed")) ; load it$ ]/ _# w: u4 J6 X" \
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
6 h/ N9 q1 n4 H, t' z+ U7 y" D$ c - )
4 G# V9 _; T5 q t1 X - " \# @' h$ c0 H( K7 G) S4 [! D0 ^5 W5 U
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP& Z5 _' l# i8 B# s: b, C
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses0 Z8 ^& B3 Q. y" G4 ^
- ) ; ai_abort's alert box dialog.% [+ Q+ N/ [- `; a3 V1 p: ]/ E
2 ?- ^, b8 @2 b* o5 |' S9 y- ;;; ==================== end load-time operations ===========================% y6 o2 E, L/ }. R. Q) Y
- : W+ [1 G3 t7 e6 q/ D" l! a6 \& ~! v
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
% |) J/ w) T! W1 N& Y) v# _- } -
V& G7 |3 L9 h+ g - ;; Main Color function, called by setup code.% B' p5 K9 i: A- |
- (defun ddcolor_main()! O9 l% Z5 f: U0 R) f) E
- Z, ~" m) _* O- (graphscr)
+ W6 g! g0 ~5 s, _/ Y/ q3 O -
3 f8 [- \4 Q5 b+ _# M - ;; Get the color of the current layer, for possible BYLAYER color swatch.3 `0 g5 D% Q/ n C( a# l( V
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
/ Q! C* L! L# u, q% o3 Q" w
- B4 f z6 X, B1 q, K- T- ;; Call the dialog here...
# W5 V: O5 u4 v. I! D0 t - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
6 y0 Q) j5 g4 D# A+ }; L4 J - 2 M9 h7 ?# B2 n% M9 A4 o
- (if clr
# P' y, j8 v, }0 l- ? - (setvar "CECOLOR" (citocs clr)))- Q& x/ g1 _ {( G$ A
- )" S" N0 G' |& T: o9 K# g, U/ q
- / {* O6 s6 \! _' y; k9 L
- ;;;
9 y7 l. ]) I u: {7 v8 ~8 o# M - ;;; CSTOCI -- Color string to color index
0 q, d+ D7 W- v ~. K0 p9 J - ;;; Convert an arbitrary case string into a color index.
3 o+ ^, b0 A& T) |6 H5 X - ;;; Returns nil if string is not a valid color., p; `" p" h# ]& s* e) M- {) K% n g
- ;;;0 ]: M4 u) B: C: I0 m
- (defun cstoci (str)
1 y1 f' P0 B$ E W& u5 ], R0 @ - (setq str (strcase str))
3 L- I% k! w K$ f - (cond! M% V6 a( { [% s. g" l
- ((= str "RED") 1)
( F- P( B5 Q' M) O - ((= str "YELLOW") 2): C7 v! G" x! }% X
- ((= str "GREEN") 3)
' [/ e B N! S7 m( y - ((= str "CYAN") 4)4 q% b; y! N$ d/ O
- ((= str "BLUE") 5)
0 N' A6 S# k" {& k. O' a - ((= str "MAGENTA") 6)
, t, S% d ~8 V - ((= str "WHITE") 7)
7 [2 Y, \6 y8 S( z4 y - ((= str "BYLAYER") 256)/ a6 K! y. S4 S6 N" O- G) }
- ((= str "BYBLOCK") 0)
) @0 W# l$ J. H) @9 \! o! f - ((= str "BY LAYER") 256)& [" Z& t+ c# Q* M( a# ]
- ((= str "BY BLOCK") 0)
# }2 P2 E$ Y" \" {6 Z - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))$ E" t6 q; z# l' a
- (nil))9 a; Z4 G b9 u9 A- C
- )
4 ?' y( k+ K7 _; c - # b. Y: ^' e3 t
) r4 d h1 {1 m- ;;;
; k+ Z; i3 g9 I - ;;; CITOCS -- Convert color index into standard color name.6 A8 x5 S4 B7 G$ D
- ;;; Will return the standard and logical color names as text* g0 q( M3 q; c; ^0 P
- ;;; strings. Returns nil for out-of-range color indicies., ?# B& i6 ~4 r3 o a [4 Y- R
- ;;;
* F7 g- G$ Q- u8 B T/ { - (defun citocs(i)0 g) l/ v4 t" q9 I1 f" p* g) w
- (cond, x) n2 l+ X* g9 D5 ^! Q& _
- ((= i 0) "BYBLOCK"). V; X H% w f6 M
- ((= i 1) "red")# B% S/ I1 |; {+ E; m- p
- ((= i 2) "yellow")
l8 k8 n2 T# r( J' Q - ((= i 3) "green")+ a4 ]# e- X9 C1 A8 L; C) [
- ((= i 4) "cyan")
* }7 Z9 ]9 Z' L- Z - ((= i 5) "blue")( G! b S# E4 B
- ((= i 6) "magenta")
6 j$ W5 a- Z/ j( | - ((= i 7) "white")
% |! `8 g/ h+ z m8 O - ((= i 256) "BYLAYER")
k1 m' l! n, C$ _- M: H2 ]1 ] - ((and (< 0 i) (> 256 i)) (itoa i))" C M, M8 r( E( i0 H; }# f! w- e
- (nil))
% C- k/ r; o7 F: d+ n9 [+ \ - ), T+ x; y: q; q0 O' x+ _
! ^+ C. p i8 J- ;; Start of ddcolor9 O- K1 [2 z7 s k
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
8 q3 j! o) _/ w8 w4 f5 N+ I - old_error *error* ; save current error function4 ~) C; }) A" I
- *error* ai_error ; new error function
0 q. Q) i3 }9 V x4 C( E f - )
' F) B3 p: |% Z1 C* p
. u% c# o( F: N! v! L; w+ b- (setvar "cmdecho" 0)
8 R4 ^ b' q9 M( m! r - 9 Y- k0 l. ` g& r
- (cond
. p8 N W' Y+ G( ` - ( (not (ai_trans))) ; transparent OK
5 J _5 ]6 O1 D& r - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
* Y* _! Z. l9 Z6 E - 3 ]1 S7 t, v0 G6 w
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
9 [: f' ]$ e; s0 p; r - (/= 8 (logand 8 (getvar "cmdactive")))
8 `! j, Z1 T( d S$ P6 ^3 G - )
( b( l q# v* A R* R - (ai_undo_push) |6 _8 |0 S2 T4 }. e! m
- )
/ a( g1 S( u- Q P8 I
% A; L* ~$ ~( _+ `+ Z6 s3 `0 g# e$ U- (ddcolor_main) ; proceed!
8 E* \9 [' c0 [/ O4 B) d4 O+ J - ; y8 [; I- V/ L) }6 y
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))7 c" O, Y' Q) x/ U
- (/= 8 (logand 8 (getvar "cmdactive"))); N5 x; O4 O8 j0 E% K/ U2 h/ i
- )0 r- L6 @ W* B/ [& E% N2 B
- (ai_undo_pop)- s0 f1 X+ p/ p# R$ o* b3 x
- )
5 N5 B& b# l1 w3 T) f$ c/ L! a& F - )% T' t1 |( _: o2 a& ^# \
- )3 r# E3 P; I9 N+ o8 {
9 ?* j( C7 F1 U' D2 Y- (setq *error* old_error)
0 Z3 x3 u" n4 n, @& F. k4 F: T - (setvar "cmdecho" old_cmd)( w% v& _; C" E- w+ g- N
- (princ). l* | L# l5 A9 z6 ~" K7 K
- / I0 u- Y( e$ F! {2 S" M$ g
- )/ q: @& b& e( ~9 J
# R; T$ S4 m7 a- ;;;----------------------------------------------------------------------------
! |; [. w" q- }! q5 C
! V7 ?5 j6 X8 }0 L/ e/ l- _1 L5 g- (princ " DDCOLOR loaded. ")3 v' P+ b7 a0 D0 |1 k
- (princ)
! k7 M2 N" b- _& K1 @5 p
) l1 X$ K% ^! o- ;;;--------------------------------------------------------------------------;
& M+ V v5 Y3 j - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
- Y% Y2 Y* ^6 q8 R, c$ a/ r - ;;;--------------------------------------------------------------------------;/ y/ m1 @, m @. S) j0 Z
- ;;; ssx.lsp
' T, D% g; {/ G1 P' i6 P - ;;; Copyright (C) 1990 by Autodesk, Inc.
& ^' R- F, D7 Y1 O - ;;; Copyright (C) 1991 by Control Systems, Inc.7 ?6 M/ Q3 l$ R: _% ^
- ;;;
" C' ^9 r, r9 y- I5 g - ;;; Permission to use, copy, modify, and distribute this software and its
" b* m# w5 D, c2 O% O - ;;; documentation for any purpose and without fee is hereby granted.8 ?7 {$ [+ q: K" O; U
- ;;;
0 {* t4 h% b5 B, w; f8 O - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.% _; o" O" @: s' d% ?* k
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
1 W p( h2 s1 v* b3 o- m - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
; O# L; `5 \, t, z% g - ;;;
6 i6 `1 Z/ K6 J" t3 F1 k9 ~ - ;;; Larry Knott Version 2.0 7/18/88, c7 d, V+ X5 L' n. w8 a2 h, t
- ;;; Carl Bethea & Jan S. Yoder Version 3.0. x* ~# a# G5 V9 z+ V
- ;;; Enhancements to (ssx).
* R! p' ^0 E; R3 j5 m - ;;; 15 March 1990
/ s/ d/ I: w' x9 j7 c: a* Q - ;;;$ D( T I0 Z8 B/ d9 a& {
- ;;; ARTIST Software, Inc Version 4.0 December 1991! _! K' ^9 x6 a
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
. x* j! h, @: y4 H - ;;; use Flexicon menus c u: T5 p: g: |9 r$ A
- ;;;
6 { e3 P$ E- ]$ x- y+ O. r7 K - ;;;--------------------------------------------------------------------------;. Y/ H- i( J: m- D" h
- ;;; DESCRIPTION
. K+ p2 X# I/ e8 p - ;;; SSX.LSP * M0 ]# [2 M, T% ]9 r
- ;;; ! S& U: C1 `# a, a2 ]
- ;;; "(SSX)" - Easy SSGET filter routine.
: F* ^+ w7 A5 ^- _6 }( q2 \ - ;;; . \+ F, q1 \/ `/ M' Z
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt # f0 X) S8 u& Z
- ;;; to create a "previous" selection set or type "(SSX)" in response to : l. s3 j: W0 Z! g1 B
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 0 r; [$ D, W$ {# N: l$ q4 t
- ;;; entities and "(R)" to remove entities from a selection set during
5 }% m% }: y5 t; D8 u - ;;; object selection. More than one filter criteria can be used at a
, V8 A' h1 j1 R" H9 g* T; b1 H" G/ i - ;;; time.
; |8 E+ Q6 d% [" N - ;;;
# }& w- ~/ W1 H1 s* _. I" c - ;;; SSX returns a selection set either exactly like a selected
& O( \, {" G: }+ B - ;;; entity or, by adjusting the filter list, similar to it.7 r- b: H# [ x# Y7 a
- ;;;% J8 A: ~; u5 ]* u1 l
- ;;; The initial prompt is this:4 z; G8 V" Z' t) r1 l
- ;;;
$ _8 |( f" I) H* d - ;;; Command: ssx' E# W- D; O. F5 n; K
- ;;; Select object/<None>: (RETURN)# U# ~8 \; o) }* e; Y$ {
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ( V" `8 F& k. Z; i& ]4 i
- ;;;
8 d/ ]7 e1 I* ]* R; I" { - ;;; Pressing RETURN at the initial prompt gives you a null selection
+ o9 P) A5 n. h k% Q0 J& Z: w - ;;; mechanism just as (ssx) did in Release 10, but you may select an
7 r, o2 j$ K5 Q: ]% u - ;;; entity if you desire. If you do so, then the list of valid types
4 ^' }7 E/ ~! q$ D - ;;; allowed by (ssget "x") are presented on the command line.3 B% ^+ \) O- d; E/ r4 _, {
- ;;; : ]% M6 A7 q; M& x$ Q
- ;;; Select object/<None>: (a LINE selected)
8 G' A0 r: ^; H$ n4 S9 c - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
4 L: k% t) [5 w4 E - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ( V& l# }# _% @5 F8 J% G
- ;;; % s6 m7 p% I7 Q9 `: {
- ;;; At this point any of these filters may be removed by selecting the 2 k, w$ _, N- C/ `) S: j1 @" l
- ;;; option keyword, then pressing RETURN.
" c. f: V! j$ s7 G& d! b! S0 \ - ;;;
) ]/ \ w; @- x) O+ v) G# ~' `( } - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)9 s+ k5 I) L3 A7 T- Y3 [
- ;;;
3 a' R' H8 K7 e, n7 q4 T - ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))6 c9 v; {" [* X. c
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
) d' o8 G! T, v& J - ;;;
0 z7 g4 p! L \5 z. n& [( V/ s - ;;; If an item exists in the filter list and you elect to add a new item,
: c- D, g6 j9 g. Q - ;;; the old value is overwritten by the new value, as you can have only
9 D& p' ?4 @& r8 ^& v3 M& V5 t9 ~ - ;;; one of each type in a single (ssget "x") call.
/ {! R6 I/ ~* u - ;;;
) }9 }) t$ x1 Y - ;;;--------------------------------------------------------------------------;8 }; ^) W/ d/ I1 e
- ;;;9 K- p5 D5 `6 I; i$ E' U7 x
- ;;; Find the dotted pairs that are valid filters for ssget7 v5 m4 k; J. T* x, j- E$ [1 i
- ;;; in entity named "ent"." Q- n" E) T5 S) N6 \8 O" Z+ w- z
- ;;;
/ J7 m" M) j( l9 D/ t: X# V8 n - ;;; ssx_fe == SSX_Find_Entity
2 [, `2 p5 B0 c# M. O/ [% U/ J - ;;;0 t/ r4 { \/ {
- (defun ssx_fe (/ x data fltr ent)% L: S; _6 ^: b1 j, E
- (if (and (= flexvar 1)(/= t2 "Pick"))
3 G6 T1 z" y, |/ f$ ] - (setq ent nil)
3 f0 h/ V5 U1 o$ J, F8 X - (setq ent (car (entsel "\nSelect object/<None>: ")))* u" k, [3 I, C3 k) q
- )
0 i y. s; X, X( o. {7 S - (if ent
! G% Q( l% ?# P9 Z; a - (progn
5 w2 X7 O6 r8 z) R1 ^/ U - (setq data (entget ent))' i3 Z/ j+ q6 d4 h3 G% y; {! g
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
' q+ X- M% R# x$ J - (if (assoc x data)
) M9 u0 c" U# B - (setq fltr
5 P+ n* o# ]/ V! J( D! O+ c3 N" w - (cons (assoc x data) fltr)
2 { z/ L8 T6 V; Y; M) s/ C - )7 }( ?( o( ^; \
- )) @0 }- g' L+ Z' Q+ F6 o
- ) " I4 p4 [/ n" T; H: r
- (reverse fltr)
+ D5 a* u4 b* Y1 u7 @& _ - )
5 U- C6 V: Q4 @3 l4 |) ?6 e' Q - )
' a8 K! e: J" @ - )
* U# s' I0 E7 i$ M$ t - ;;;
" S5 h6 M9 g; ~/ V8 k - ;;; Remove "element" from "alist".; r- `7 M$ M/ c( E4 I8 F1 _
- ;;;
5 _# c0 k( {% C6 J |+ L( A8 E - ;;; ssx_re == SSX_Remove_Element% |7 Y* {: ~2 g" p8 V* z3 h3 P2 |
- ;;;8 E( f& v% `" h1 |$ j8 m
- (defun ssx_re (element alist)
5 L" f; l1 U. Z: ~; n7 C - (append8 E4 X0 l$ ~3 |- f. t
- (reverse (cdr (member element (reverse alist))))
. ^! f% N: s; w. S - (cdr (member element alist))
6 \, E' ]2 ^* _% |& c - )
8 x$ j- T+ e% ^4 Q, v - )
1 U2 J- A3 z% J1 N8 [ - ;;;
* }/ ]1 L; H; ?4 G) Y. }% d" i - ;;; INTERNAL ERROR HANDLER 7 w: x/ P( e) {: F. U' b" l5 V) @
- ;;;
2 d- `0 }/ V! d, G- b' ]4 e! b - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs* z6 P7 V1 T- h% f" l6 K0 c
- ; while this command is active...7 {4 ^/ K% s# C1 C$ r( b
- (if (/= s "Function cancelled")
. U+ h1 W3 j2 ?0 k5 c - (princ (strcat "\nError: " s))+ E3 o* G. y, Z4 C
- )
, }. V( U1 b9 `2 n - (if olderr (setq *error* olderr)) ; Restore old *error* handler9 _) x- M1 P) a
- (setq flexvar 0)
" ?/ O" I/ m+ S$ P2 t5 [ - (princ)3 k) P: s- M" i8 I
- )
: E* W" _/ w0 t* x) H1 W9 y; F" k) Q - ;;;
. I% j0 `% [9 w1 E! u& U - ;;; Flexicon call routine
# g- ^% C' s4 u0 W - ;;;
' ?7 j: C1 e' s6 Y - (defun flexmnu (a)0 W5 X& a8 y0 X2 e" d( |$ Y
- (if (= flexvar 1)
) W" W: s7 t$ `1 Y9 S- d - (command "FLEXICON" (strcat "FLEX" a))
% t D c: x, ?/ j - )7 v! X: U [% |$ F, g8 @
- )
' H8 z8 a7 c0 {! v - . g* o4 I, |0 S% E
- ;;;
6 U- W% k8 h6 I, b: y - ;;; Get the filtered sel-set.8 b- J/ G" q$ y# W% X6 W4 E" n9 r; T
- ;;;
Q, S* O7 b) v! g9 O: V6 e - ;;;
' f+ l' v7 i4 d( V - (defun ssx (/ olderr)3 l7 P$ M8 \( Z: J0 b
- (gc) ; close any sel-sets
9 D" l" z* X7 L5 N/ B9 q( A - (setq olderr *error*
% u/ P$ B2 M! c2 {# v' I9 u - *error* ssx_er 4 e& n; o/ ?- A1 k% V6 S& B- _& b
- )
6 g8 |4 q1 c1 w I! ]3 b* c, H$ g - (setq fltr (ssx_fe))
- t- Q1 q6 {4 R g/ L+ ` - (ssx_gf fltr)
0 V; W/ v0 o- c. q - (if (= flexvar 1) j( ~0 }1 y: P$ [8 w3 i; C
- (progn1 g) N/ y4 r; S. [8 n4 ?% L( j
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")9 `5 C, J3 f+ T& V
- (flexmnu "EDIT")4 e- i( T8 o5 ]0 x
- )
8 h a+ p( g- _% ?7 x- Q* B0 H* O6 F - (command "p")( N: A+ h' Y% H1 H/ W+ C
- )$ I- @" l R8 q) t: t! i! O
- (princ)
8 p& B) }/ \. i- Y$ C - )
1 S( @4 u" H( H - ;;;. c" P" F& h! L" q; l$ p4 g
- ;;; Build the filter list up by picking, selecting an item to add,$ D f/ _. W9 _( t) X' G
- ;;; or remove an item from the list by selecting it and pressing RETURN.
# U9 n; z$ g; \6 J. |4 Z w: {" L6 s - ;;;1 i% f9 Y/ g" I8 x7 y% Q% Y# W" z
- ;;; ssx_gf == SSX_Get_Filters% [9 w; Q/ U2 V
- ;;;9 y0 D: ]: y% V+ ?# Z) h
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)" H: J# \9 }/ {" ^5 P
- (while ! f6 i6 K! c ]* X6 _/ i" u1 o
- (progn
+ ^! U7 W% ~& n5 f - (flexmnu "SSX")5 F' Y: l# G; j' ]
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))& U+ j& ]& R6 [$ o1 d% w% _) l
- (initget
& |# r& k2 g. u T% I, | - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
# J0 z5 |; C; K4 Q7 K4 ~$ v) X - (setq t1 (getkword (strcat# }2 M" i3 q# J
- "\n>>Block name/Color/Entity/Flag/"
# u$ j$ a) I6 o( e- r) ~3 R - "LAyer/LType/Pick/Style/Thickness/Vector: ")))
O& X: R7 z+ H( M6 f0 r: e - )+ z/ x' ], T& [5 L; b( ]( ]
- (setq t2
6 W% V Y; S5 H/ b" w - (cond4 O$ V: P3 a* x4 h% ?; G, {
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)
7 i: B( v3 U2 K* Q0 G - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)% [- y9 F, I* Z% r, Y+ B
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)
- G% e: T0 X* z - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
+ K$ S* \6 _% d8 x& Q" I - ((eq t1 "Vector") 210)7 S. Z- @) z' b3 q( w" L7 v
- (T t1)
6 I( _' W W; f* y0 t5 ]0 O - )
( [& c( N9 F1 V# w8 Z+ i - )6 l7 B" N5 i ]4 A
- (setq t3$ p1 w5 H7 r& q/ V r Y
- (cond
+ `8 f$ W2 S q8 A1 a+ n- f - ((= t2 2)
' g2 k0 u5 G: C- U/ W6 v# q5 J+ v% s - (if (= flexvar gtads 1)
$ p. O2 F. s, r, D4 z; E! l - (progn' Z% B: v) w4 G$ `
- (prompt "\n>>Block name to add/<RETURN to remove>: ")
$ H" X! w c+ p: G5 G- X - (gttable "BLOCK")
. ?9 B8 Q6 S8 n6 n2 O" b6 l - )
- B* ^. V5 O6 a( p- [" H - (getstring "\n>>Block name to add/<RETURN to remove>: ")
/ c) {4 F$ U) O' { - )$ J; E- f" R+ q) W) V
- )
0 n/ r; U2 |0 }- a. {/ s* _ - ((= t2 62) (initget 4 "?")5 O) `: N9 {" ]. K# C3 W2 Z. z
- (cond
+ W+ a* i( `: j4 Y0 m - ((or (eq (setq t3 (getint
9 |4 ~' G4 R* ^5 s# H( q - "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
' I0 T2 ~- O7 W$ a - (> t3 256))
/ n; u7 F2 ?" {7 I2 U - (ssx_pc) ; Print color values.; t! |, z" Q# k1 N( P% \
- nil m/ T+ p9 J) M! D3 k6 Z$ J
- )( |% r8 O" Q9 t+ |
- (T
" w" t# m( {& ~ - t3 ; Return t3.
4 A7 W1 \% Y @ - )
9 b& c% I1 S% p+ J/ l4 r9 T4 } - )
! q5 c2 y4 z9 E( z - )
& c. u& t2 ~: B0 p1 M* \ - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
% T; ?* x8 _) a) r7 \, h4 J; ? - ((= t2 8)2 [& `# ]* l' b4 P9 o
- (if (= flexvar gtads 1)5 y. ]. x D( |# i2 L5 \
- (progn
$ ]; n( ~: W' x# V# }0 R - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
+ K6 O9 e$ O0 ~- t3 y - (gttable "LAYER")
3 O9 B8 `2 N" |2 R" I - )( f! @. j* k m6 Y3 z+ F
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")1 n0 N1 g& g( Y% |4 f
- )
2 [% q- L: R J \- E- c* y7 v - )
" V" E8 H4 `: c+ Z# B - ((= t2 6)
7 `7 W% l$ T* P F. | ?$ p" e - (if (= flexvar gtads 1)
P" _* O6 G5 I* i2 v - (progn
" H) S. ~* {1 @! N - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
, ]. R8 R2 P4 K - (gttable "LTYPE"); E) i9 w3 z" I1 R8 L4 z* c
- )
- R- \0 e7 S# P* d5 \ - (getstring "\n>>Linetype name to add/<RETURN to remove>: "), h4 ?1 R0 x) k; q: w7 i2 R
- )
P/ |- Y/ ~6 l5 }2 v6 k* R) p0 E- e - )
5 [4 Z) p T. Y, L+ { - ((= t2 7) % h+ g t1 P% Y+ n
- (if (= flexvar gtads 1)
8 @+ q+ p, v5 z4 ^2 ` - (progn
1 M& b; U* L6 Z& V, o+ } - (prompt "\n>>Text style name to add/<RETURN to remove>: ")
( K$ D3 v, a; ~5 D0 L$ Z7 z - (gttable "STYLE")
+ j/ v! o0 ]$ r* \% s3 n% p4 X; ]2 k - )- ?4 `- _/ h; L/ s8 q; e
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
/ X% `, a" X5 A* J" d& t - )& T9 J. N$ } a) G& o% ]
- )
5 f2 p7 { K7 b* y) F - ((= t2 39)0 Q% i$ F: @( A9 t# ^3 ]
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
1 [, r( O; p0 I6 G6 D# I7 {/ N: X - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
. S( g' F5 u c - )# ~9 [9 }$ p! F0 R$ z) E
- ((= t2 66) (if (assoc 66 f1) nil 1))
/ A" P( _6 v3 u7 p - ((= t2 210)
: \+ W4 Y" c2 J/ S' J - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
, c4 o$ a" x$ N - )4 Q$ K5 j- S/ k4 q' ^3 w( q
- (T nil)
, }3 i0 r. J5 J0 y6 [ - )' a% [& J0 ^/ r
- )+ h- G0 B3 J2 U9 W" X( d7 N L( S+ {
- (cond2 o/ H7 _2 I8 J, E: I! n) Y
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity' ?5 |$ d' p8 ]- Q
- ((and f1 (assoc t2 f1)) ; already in the list
# b0 n7 o5 v! q; v - (if (and t3 (/= t3 "")), b+ M; J6 y0 r0 h8 Z
- ;; Replace with a new value...
" i* ^. |0 o9 b' I - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
' u* V3 X$ _9 M; {) k) \5 C& J7 Q - ;; Remove it from filter list...1 ^& `% j' W, |& Q' T
- (setq f1 (ssx_re (assoc t2 f1) f1)) : ~0 q8 E9 e3 k3 m' V" ~; Y
- ) - |9 l6 ~% h6 i0 O5 k! V
- ); }: E: y+ \- y. c
- ((and t3 (/= t3 ""))
7 w: d, @: Z) W% L3 Z - (setq f1 (cons (cons t2 t3) f1))
$ x8 e: O! F! k( S8 D m4 D6 [ - )
' B. {5 Z* C& T8 T2 Q - (T nil)8 N7 W( F r3 |, q
- )
2 F8 h a: R- X) ?: b# l - )" p& N8 [7 P/ w' m
- (if f1 (setq f2 (ssget "x" f1)))
2 ~5 t- o& _( D6 I2 D - (setq *error* olderr): {0 F0 d! N$ `5 G" j! a1 F e
- (if (and f1 f2) ; G K. }2 y4 Q9 v. O+ s) F5 ^8 m
- (progn
) ]' ]' Q5 E Z5 ? - (princ (strcat "\n" (itoa (sslength f2)) " found. "))- U- V- m: `, a5 c$ O7 S% ^
- f2
2 J. s+ ~4 q$ A, I# Z4 Y+ ] - )
: t$ ~( P7 H6 O Y. ^7 e& S! w9 N - (progn (princ "\n0 found.") (prin1))
3 C' o# k) A; Z6 d) U; x" n - )
# K1 L# @- k; S7 K - )
& g9 x5 @, D8 [9 u - ;;;+ O }- b* `7 S u1 A/ f
- ;;; Print the standard color assignments.
0 ]3 [$ Y- D. q9 G3 d- s - ;;;
* u0 G& m1 h9 i - ;;;
e" ^' D, Y0 V9 p - (defun ssx_pc ()
1 x5 b k4 }/ | - (if textpage (textpage) (textscr))
: V# I; W" ~9 ^: | - (princ "\n ")3 _1 m, w* p/ d0 R$ i/ H4 Z
- (princ "\n Color number | Standard meaning ")
: b& u2 O1 {+ w6 F' J& J- {* ?. \ - (princ "\n ________________|____________________"): o! A" l8 N' R
- (princ "\n | ")
d) h# A% o0 ]8 V' E. M$ h - (princ "\n 0 | <BYBLOCK> ")
" g- F7 y% _, E( z V7 e - (princ "\n 1 | Red ")
- ?( `4 y) a! K5 p5 ?. b0 H( N - (princ "\n 2 | Yellow ")
6 w; l) z5 \7 W8 t5 d1 v" [% M6 P& v: j - (princ "\n 3 | Green ")5 k+ i% D$ d+ }
- (princ "\n 4 | Cyan ")& B. J" l- e6 ?+ Q. [
- (princ "\n 5 | Blue ")
$ Y! s7 ^: `7 E6 g0 P - (princ "\n 6 | Magenta ")$ b; M& u+ `0 x( C; {
- (princ "\n 7 | White ")
5 m& }: W& J/ F5 c( B" S8 m# d4 Y - (princ "\n 8...255 | -Varies- ")
5 j, N9 i- b( i; s% [: R) q - (princ "\n 256 | <BYLAYER> ")
' X- O( y+ R/ [3 |+ c b- c - (princ "\n \n\n\n")
$ ]# H3 f0 t, }/ N3 i0 { I2 g1 f - )8 B9 `% z' V; s; [
- ;;;4 |: b: P2 ]4 X& [% _5 G8 }6 Y
- ;;; C: function definition.' F/ S: C. n) P7 A2 ]. }1 O
- ;;;! u0 e( X( X9 t
- (defun c:ssx () (ssx)(princ))
0 B& }3 I1 N9 s" j; s4 X2 g - (princ "\n\tType \"ssx\" at a Command: prompt or ")
- c' n4 H: O) D4 ~- t7 m - (princ "\n\t(ssx) at any object selection prompt. ")
$ j6 h* t- J% X- C, c# y" a - (princ)$ j/ k- o8 C, B$ r, e5 [
0 q6 ^. _# m+ k2 A# H4 _- ;;;--------------------------------------------------------------------------;3 ?3 u& n: e1 `) Q- r! a2 k
- ;;;--------------------------------------------------------------------------;
d) S# R3 U i1 {" ^9 | - ;;;--------------------------------------------------------------------------;
# X- s$ m8 k3 h6 e! m - (defun S::STARTUP ()- H. ^: C3 l1 ?* N) l0 M2 U* D
- (setvar "cmdecho" 0)
. v a, V# p5 T2 \+ C( B - (setvar "cmdecho" 1)! _" o8 O, z: d
- (setvar "LTSCALE" 10)
4 z* `! b9 K- L9 n" R
) O, U+ V3 l* M: w) A" O- ;(command "_load" "chenKH.fas") _: z. U B8 x8 \9 P% ~$ M! k. u2 U
- ;(command "_load" "ctcot.fas")
" B- m# E. J4 _1 t - ;(command "_load" "damdoc.fas")
) r; Z: G/ m( r% R - ;(command "_load" "ghichu.fas")' F* q2 [% b9 Q' ~
- ;(command "_load" "hamtutao.lsp")5 E6 I7 P, c% V* m! a5 F
- ;(command "_load" "KHOITAO.fas")
4 Q7 @6 d. y4 w J - ;(command "_load" "KHthep.fas")
% U# ?, j1 S4 T+ I% b- c0 F - ;(command "_load" "mbmong.dcl")' V5 [6 i5 o% E: E! G3 L4 s
- ;(command "_load" "mbmong.fas")2 w; w z9 B9 J
- ;(command "_load" "mccot.fas")
$ J$ y( C, F1 m - ;(command "_load" "mcdam.fas")
9 ?( M) Z9 q& x! k - ;(command "_load" "mcmong1.dcl")
; b& w! E8 a/ h2 f- @3 m: `" K - ;(command "_load" "mcmong1.fas"). u @! K4 ?" P
- ;(command "_load" "mcmong2.dcl")9 U1 g1 y0 D# k& C. c. h$ n: S
- ;(command "_load" "mcmong2.fas")* c9 f; t8 ]- P% Z
- ;(command "_load" "mcmong3.dcl")
. D$ e, J4 B7 a$ |: S- Y - ;(command "_load" "mcmong3.fas")
0 J- P) Q/ ~# O0 k/ f - ;(command "_load" "mcsan.fas")
# H, r9 {4 L6 P V9 ] - ;(command "_load" "thepdai.fas")( v; b! b' B+ X& [* ~1 B, K
- ;(command "_load" "thepdoc.fas")7 S( \6 M* E- u. s. k
- ;(command "_load" "thepmb.fas")* Y! M3 \, u3 {
- ;(command "_load" "thepphbo.fas"); J0 }- X( E5 w& d, k C* P
- (command "_script" "thongso.scr")
~) O$ k# d3 T* l3 H4 B& ^! c1 r; c - ;(command "_load" "thongso1.dcl"): q7 z) O- n, _
- ;(command "_load" "thongso1.fas"); S+ i; g8 ^# h) y, M+ W
- ;(command "_load" "thongso2.dcl")2 k B) u: A6 S$ Y
- ;(command "_load" "thongso2.fas")& w# T6 ?! W" [* L+ n) w
- ;(command "_load" "tietdien.fas")
! [: ^; [, E, g, P! X) P - ;(command "_load" "vehan.fas")- b: N" V7 N4 [3 N
- (command "_load" "phamDuy782006_TKT.lsp"); D- o# t2 l6 Y1 w
- (command "_load" "phamduy782006ganhtd.lsp")
" h1 {( t! P1 J3 t0 A - (command "_load" "phamduy782006ganhtds.lsp")
0 u; h; U5 O8 J3 Y! [ - (command "_load" "phamduy782006htd.dcl")
: y( B' h, t; Z - (princ)0 G1 k: E: { g0 q6 ~
- )
( n7 s/ P+ \" v
; j: s. |) d p, c( Q- ;; Silent load.- z. g7 ^# h3 x
- (princ)2 Z% P Z, q# o% |: e V1 l
- # C9 d* i$ H- g: P& `
" B: ~4 Z; H1 } ]7 u. W5 _- ;; Silent load for the Express Tools.
% M! M* S4 b! y% y - ;; Altering this line will affect Express Tools functionality2 G2 G# F; v0 D3 x D" R9 J9 B
- (load "acettest.fas" (princ))7 N! m) {* b9 `& ]* p9 |
- �32
Sao chép mã 7 } j6 o e4 L/ u
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ5 s& w9 ]' }# U7 |) a. {7 q1 a
|
|