|
|
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 |
- ********************************************************************************+ P' w# S# N3 i9 f$ ]& G
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *4 W- S* j5 j( h* t8 v
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *1 R4 H, j! t: e/ e$ [8 e. T) E1 `
- * Suu tam & Soan *
* J/ l- r1 s: X( Z% A7 T - ********************************************************************************
5 R' Y" B% Z; O# w1 G! p - ' b) f* E7 B5 Y( D+ F; @
- ; Next available MSG number is 104
7 w( } W, T w4 b. C0 @+ B - ; MODULE_ID ACAD2000doc_LSP_
6 g. x6 O7 C5 X( ]( g Y* X - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000' y. X+ i8 Y8 q3 B
- ;;;
, Q+ O, D. P& B% ]: ]' ~ - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
" \: b7 [* ?5 x - ;;;
6 _' M/ L) t4 V/ E1 @ - ;;; Permission to use, copy, modify, and distribute this software
0 \! |' m8 p5 A: j# @) L( G' T( s - ;;; for any purpose and without fee is hereby granted, provided) i# r. o- a/ n f1 \2 H
- ;;; that the above copyright notice appears in all copies and
* I9 y) ?, o6 u) ~" @( x! I - ;;; that both that copyright notice and the limited warranty and
; j' K( p3 \) j - ;;; restricted rights notice below appear in all supporting
3 {: z, C, |1 A7 R/ U - ;;; documentation.
" P, Q# N4 F8 P" }' M- K - ;;;
5 W, e9 e7 @0 L) l- k - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
/ b) ?+ O6 b1 A4 L, U3 m- E; h - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
% I: F/ Q+ X4 R$ @- C; X - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC., }$ [/ E4 C$ x [- b" E1 i' X
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
) }( W/ m8 W0 [! I) g - ;;; UNINTERRUPTED OR ERROR FREE." D# E- ~, L; [1 _4 A
- ;;;9 T$ O0 Y( S1 t* e1 U
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 E1 _0 A) L# @ z& h/ N - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer8 {4 N6 j" _ _" ]; E# u/ J
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 5 N+ v. G5 H9 v% {
- ;;; (Rights in Technical Data and Computer Software), as applicable.9 b b8 `0 f3 O1 t8 c0 ]: g
- ;;;
* s \' y8 q0 ` - ;;;.% r. Y! j, ]% z0 x( U* R
- ;;;! w3 M- o- @! q/ W! _
- ;;; Note:& D* [% \2 x$ Z- f! j5 I
- ;;; This file is loaded automatically by AutoCAD every time
/ l% E) @& z5 n) G - ;;; a drawing is opened. It establishes an autoloader and- f3 V; ]9 _" k+ h( m% B, C4 |; ?; `
- ;;; other utility functions.. g. B/ N4 D- x0 K+ N. C
- ;;;
* i$ D: ^7 Z- l9 }, P2 U, z - ;;; Globalization Note:
( t% B' ~5 ~0 O - ;;; We do not support autoloading applications by the native
& o5 Z! C5 Z! D+ s6 W3 ? - ;;; language command call (e.g. with the leading underscore
9 n6 I# G& c9 T. h% q/ L4 G - ;;; mechanism.)
! M7 J5 P. ~" j8 c* b3 F6 J - # k0 P* `( ?/ c) A4 H5 h
) d! {, o7 @$ \4 V- ;;;===== Raster Image Support for Clipboard Paste Special =====
' t C+ X% c, F# t$ { - ;;; P c) ~" X8 G; A1 d
- ;; IMAGEFILE
, }2 C3 N5 h D# ~ - ;;
! k9 L! U4 a4 h: [- A8 y7 Z% V - ;; Allow the IMAGE command to accept an image file name without
) k) f. M$ Q4 O2 A2 ]; k o - ;; presenting the file dialog, even if filedia is on.
% w' {# t( e5 E - ;; Example: (imagefile "c:/images/house.bmp")
5 R. h( z9 K/ d6 I* o+ P+ M - ;;
# N* f6 t0 O8 \$ b2 r7 A- h7 _ - (defun imagefile (filename / filedia-save cmdecho-save)6 Z7 V5 e) u8 b" \0 l# r
- (setq filedia-save (getvar "FILEDIA"))
9 n3 @6 o+ S* t. N8 b - (setq cmdecho-save (getvar "CMDECHO"))) y6 J' I4 M9 p1 _# o
- (setvar "FILEDIA" 0)
/ G, ~" Q9 }0 z# G( ^. U - (setvar "CMDECHO" 0)
4 X7 x! U2 M; @. i" w, Y - (command "_.-image" "_attach" filename)8 q; S/ N; k! p/ t: \
- (setvar "FILEDIA" filedia-save)( w f& ?( k- N& p v: v
- (setvar "CMDECHO" cmdecho-save)
5 e. {- r: O0 p( U9 m - (princ)
$ R3 M. S$ }- q$ j/ q - )+ S) O. ]9 G' L$ L' V
- 5 e3 e- _5 V% w8 e* i
- (defun c:zx () (command "zoom" ".5x")), u& R! v! k2 W
- (defun c:zz () (command "zoom" "p"))$ f" l* w# ~. R; G: a7 S [
- (defun c:za () (command "zoom" "a"))
- A. ?% s" W4 z$ h! J; K - (defun c:zd () (command "zoom" "d"))( a4 C; E; Q& }# R* B& P! n
- (defun c:ze () (command "zoom" "e"))
1 X# t( m! Q% H - (defun c:zr () (command "zoom" "" ""))
4 A& O( q* H ^+ r3 Y5 }- }9 v - (defun c:vv () (command "ucs" "v"))
0 t) {( s, `, P! C& U - (defun c:co () (ssget) (command "copy" "p" "" "m"))2 s5 J3 O6 d" L5 B6 C6 v x7 ]; k
- (defun c:c () (command "circle"))
5 r3 j, e+ t3 d. B - (defun c:rt () (command "rotate"))
0 f% s0 S( I" ]4 |" ? - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
/ ?& {0 M) Q1 K3 E - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))2 c! Z0 v8 ? E, q w. K& O
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))* f0 o N; z/ z, t5 H2 d: m
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))1 C& q: J, i7 S" y. \
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
" W9 h5 _$ q% U7 h" _. x6 K" a - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
) r0 q$ V, ^# O' s2 D - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
" D' R( C% w7 z2 z7 X - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
# K. s3 K/ _1 P7 T5 F - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
1 w+ C+ B8 j1 S& Q+ z W# c4 z+ \6 o - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
( R" e9 m% L- a! S K - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90")). [; c# S( I& q. Q
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
( ~# j" b( i8 \8 t9 {' r2 s - (defun c:fd () (command "find" "p" "" )(princ))(princ)
$ `3 Q% |4 U9 U. W" e( j* p5 k
! `: k' W: i1 X6 l- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)- H8 H$ u: S7 [/ D5 r
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)! ?3 m5 h, Y; e) n8 ~2 k
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
' ^; U8 v9 X/ y5 \# c( _ b - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)$ |2 C5 M: t8 B8 T) i' s& |. O
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
; t0 ?4 L5 I& C0 W - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))' }2 `+ n- W5 U- V8 R% i
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
* i' c) q' t# ^/ z2 @ - / ?1 x/ o, l) y+ r; n1 \+ b5 ^. b: L
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
. v4 j" I5 ~0 Y) G- L0 A# `# `; C/ U - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n")): h/ n. x1 r5 S" m6 i) W
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))- n9 B z5 q1 D: D, m4 F
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
8 D7 ?9 C5 m" |+ X4 ]9 Q - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))( z4 w: t/ r% ] Y+ Y
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
; s& o" y( ~1 j& h4 a
5 c- [* c- m; x! ]% O3 Y* _- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file( A0 k3 N; Y) Y/ z% d! C
/ D0 s1 \& K3 Q& J- ;free lisp by cadviet,cd2k44& g& s1 s$ {6 N% |- p' s4 h
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830* `9 \. ~# V! N7 T, U
- (defun c:FTEXT (/ ent tstyle ); I/ k% @1 P$ ]0 W9 P# j- ~
- (command "undo" "be")2 F0 F8 {9 ]& z3 @
- (setq ent (entsel "\n Pick text :"))
, n$ z0 g9 ?% Z( l - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))7 ^7 {' e6 W2 \. O/ K+ f) `
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")1 V6 D& G* u9 \* @
- (setvar "TEXTSTYLE" Tstyle)/ h- ?: z8 W2 e. C# N( m
- (command "undo" "end")! w; K* H* _& Y; h7 ~
- )
" R) r3 D, N' p- ~9 L: W9 s: I8 u4 T - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet), A, N( n% Y$ [7 p, f3 T
- * \0 e+ z. l' b! z7 w( ~+ Y
- ;free lisp by cadviet,cd2k44
0 ]" r. T5 B6 ^% ]: ~+ l8 I! H - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
6 f/ y7 w! z2 y d8 s0 q0 X- F. W - (defun c:Fvnh (/ ent tstyle )4 g/ e4 }! U/ g- f5 O
- (command "undo" "be")
4 O# a. J. I! M' ?5 B8 _7 K; N e3 l" ~ - (setq ent (entsel "\n Pick text :"))) k* i& n) r7 X! W7 f
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
" @0 B" o2 I3 q# {' i( I - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
% H4 e# Y; N. A r4 T% s# o0 S, q8 y - (setvar "TEXTSTYLE" Tstyle)
) V0 h" T: s5 u+ d - (command "undo" "end")6 f# {$ x( [$ J0 |/ o. {* n
- )3 y( t: \3 t6 t# p5 K6 Q2 x
- " s( D/ ~1 }& A
- ;free lisp by cadviet,cd2k44. w! U0 y2 @* {
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
$ [. w/ J( V, z" o: V - (defun c:Chbg (/ ent tstyle )
& J& P1 }/ E' E0 X. l2 S. P - (command "undo" "be")
5 [6 c; O! ~/ r, n; T0 Z4 ~& m - (setq ent (entsel "\n Pick text :"))
4 _& \8 d, k( d7 Z: C/ q) y) f - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
6 h5 q7 X3 n0 ~/ [ - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")8 r( \8 O' A& @& l0 M
- (setvar "TEXTSTYLE" Tstyle)
8 l# p6 g/ G7 z- ?* [ - (command "undo" "end")% H8 P& A! m8 J* ~: P$ ^
- )4 [: B: H* o0 M
$ Z6 ]' e3 y! v$ T+ O- ;free lisp by cadviet,cd2k44' }' l( ?; j2 n. B. N
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
: M. v d5 b4 R - (defun c:Chsm (/ ent tstyle )
, s2 O4 s7 \( x: Z1 _! m - (command "undo" "be")
* F+ g+ w3 S" f - (setq ent (entsel "\n Pick text :"))+ D9 }. L, p8 i; K; R9 `
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))) d* d" Z0 o3 A$ X0 Y5 M5 t
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n"). G. v& o0 ]" p+ [% d
- (setvar "TEXTSTYLE" Tstyle)
# q8 x& S5 p7 ?& w - (command "undo" "end"). j+ Z Y+ [9 [" O, a% w
- )/ u: Z" {' E' `8 q8 J
- ( @3 |" a' B6 I# o8 J+ J; d; N0 w
- ;free lisp by cadviet,cd2k44
3 b/ `1 T2 X- V- l/ y - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
9 @7 j+ c1 h4 T - (defun c:Fttf (/ ent tstyle )8 S0 f9 n7 E: o- O. a# D) d6 q* u2 z
- (command "undo" "be") l# R5 ^8 Y( v3 S8 R
- (setq ent (entsel "\n Pick text :")). d8 w5 f0 H \/ ]* I
- (setq TSTYLE (cdr (assoc 7 (entget (car ent))))) v+ o4 {0 R0 r$ w& G# {. N
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")' C2 G j& l: f
- (setvar "TEXTSTYLE" Tstyle)$ h( h, a, r! w: |, A
- (command "undo" "end") w0 m$ O2 ]& s8 A
- )% q0 k8 y) U+ R; D7 b. k9 ^! ~
- % H# Y5 ]) e& w9 \# j6 ~
- ;;; ============================================# r D" I- M2 O8 I
- ;;;4 w* Z% p/ g) @7 o; c2 R! L
- ;;; LISP Creater Tao Duong Dan AUTOCAD20000 O0 Y1 Y: S. C
- ;;;
! E4 B$ a5 n& y( e* l/ s { - ;;; ============================================9 e6 N7 q6 F7 U, r) g3 o2 L* {
/ w, o7 U9 d8 a) E S" C- ;;; ============================================
$ s2 w- ~# O" t - ;;;3 N4 [7 p: o7 w2 X; S( m5 k0 E
- ;;; CREATING FROM AUTOCAD2000" V& U6 J" g5 a4 K
- ;;; b$ m1 Y" W, |6 @% G1 I
- ;;; ============================================/ x5 y1 Z+ R! g2 _! R
+ o7 b+ u" f1 C8 j* A4 Z9 n+ c- (setvar "INSUNITS"4)
# m" K5 Z8 r6 Q; `1 S - (setvar "ANGBASE"0)4 f, }1 v; C: M# r
- (setvar "ANGDIR"0)& l/ o" Z2 s7 M$ ~1 k
- (setvar "AUNITS"0)1 R! b' g, v* Q, e( v- q
- (setvar "AUPREC"8) A0 F; ~; o2 `2 z' _" |
- (setvar "LUNITS"2)
) {: e) M8 s( x7 e; `4 T - (setvar "LUPREC"8)
0 a: H. p M4 e7 c0 k$ ? - (setvar "ACADLSPASDOC"1)
# ?0 m E8 W% }* r* _9 Y0 V - (setvar "pickbox"5)
; z* B- t5 T' L. i3 A - (setvar "blipmode"0)0 P" G$ @8 I3 U# E) _
- (setvar "mirrtext"0)
; W1 Q, q) H2 b! j/ j7 y+ h1 c6 A - (setvar "cursorsize"100)9 p3 z9 H4 q; c, x! y
- (setvar "ZOOMFACTOR"75)( r) f# S% |4 d" R
- (setvar "LTSCALE" 10). ]9 p+ f5 |5 k* N
- (setvar "lwunits"1)3 R) \7 ?# t% o. K6 h. t9 \& I9 o
- (setvar "DIMBLK" "Closed")2 f1 b' A2 `8 Y/ d% m
- (setvar "DIMGAP"0.0693)
5 b6 s6 s8 r/ g - (setvar "DIMASZ"0.20)$ K4 }8 v, }" v* \: J6 z& ?9 W
- (setvar "DIMCEN"0.2)
7 e8 {' P7 S9 K) r/ W - (setvar "DIMDLI"0.1)
* J) {( s6 C# f% i0 v) E - (setvar "DIMEXE"0.0693)" x& ?3 n9 c4 T( M V
- (setvar "DIMEXO"0.25); c; R* I! Q) T9 ]2 q7 ~% ?
- (setvar "DIMDEC"0)" @, J6 n: g0 v+ W
- (setvar "DIMTIX" 1)
, @, V% R: f' D' t/ J' l - (setvar "DIMTXT" 0.099)# {, ?( | L& W, h' A. R! c: O
- (setvar "DIMCLRT" 7)
& B: t# H& [( ~5 W$ y( W8 {( x, e3 @ - (setvar "DIMTVP" 1)' a4 K8 B2 w3 h @1 w$ U% D1 d
- (setvar "DIMJUST" 0)
, U0 a! h) i! Q. d8 r5 Z - (setvar "DIMTIH" 0)
9 ]( l$ X4 Q" a ~+ f" \8 a - (setvar "DIMTOFL" 1)1 _1 V, N0 p' Y# R8 ?( ^6 n" Z
- (setvar "DIMSCALE" 1111.1111) A5 C5 ]- t4 \) v+ o
- , g! z& Z5 b1 z2 N0 z+ I5 s% l
- 6 ^, ?$ q; ~3 D* f/ t& `, Z0 \
. E8 Q, N% U% e& o- (defun c:zp () (command "'.zoom" "p"))
# z6 {5 R0 {) ^: x& K - (defun c:zz () (command "'.zoom" "p")). u/ M8 [1 n5 k6 w+ x, R) {( P: p
- (defun c:ze () (command "'.zoom" "e"))9 F' Z" C7 M2 a3 g3 m
- (defun c:za () (command "'.zoom" "a"))8 z4 c6 k& ~7 j- x% w
- (defun c:zd () (command "'.zoom" "d"))
! L6 n& z7 V' @4 y1 U% q* p) q - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
) z9 ?1 ]! E2 n/ X) G3 ` - (DEFUN C:ZX () (COMMAND "ZOOM" "2X")); u" r) ?2 s. t( g! H
- (defun c:de () (command "ddedit")(princ))
B) A6 U$ n1 G5 P$ Q- S2 U0 O - (defun c:dda () (command "Dimaligned"))
5 K- n4 U, G! M! G - (defun c:ddb () (command "Dimabaseline"))' ? \$ r" p3 E/ L) y7 _
- (defun c:ddc () (command "Dimcontinue")). B# H5 W! T4 {2 Y2 v( M; C8 B+ B
- (defun c:dde () (command "Dimtedit"))
3 q ^' R3 \& Q6 H! |2 A0 h5 a - (defun c:ddf () (command "Ddattdef"))! k9 d* `) \+ f6 @
- (defun c:ddi () (command "Dimdiameter"))
. x- M$ J, ]/ P% ?! G* Y- I - (defun c:ddl () (command "Dimlinear"))
7 N* A0 H% F+ } - (defun c:ddn () (command "Dimangular"))" T9 z( T& ~# L) q
- (defun c:ddo () (command "Dimordinate"))* [' H" ~" V" b T: J: A4 g; D# h
- (defun c:ddr () (command "Dimradius"))
, l" s! Y$ n/ B; p; h - (defun c:dds () (command "Dimstyle"))
# r7 j9 [# p+ ] \. z N8 [' o - 5 Y! m0 @6 V& ]# _) v
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
' B/ d, P& ]5 g! e) E - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
7 g) A- @: x; A* b# m/ N' ^8 Y N7 {# X - (defun c:UU () (command "dim1""update""all"))# h5 r; E* n4 |, x; H* j
- (defun c:ded() (command "dim1""tedit"))
1 j% e8 Z7 r% x- S" d - (defun c:da () (command "dim1""ali"))
8 w: N2 s$ J% j - (defun c:dll() (command "dim1""l"))5 h2 F: w0 P3 C
- (defun c:dan() (command "dim1""an"))
2 u! V8 @( d' J+ K5 s& P" D - (defun c:d1 () (command "dim1""ra"))2 I9 @& @' y* c* U
- (defun c:n () (command "dim1""new"))
7 B; T$ `7 Y7 o. H$ T, W9 b
+ A, J( y- u9 c1 q0 s. k3 H- (DEFUN C:PE () (COMMAND "PEDIT"))
3 \" \' H/ I, U9 |0 O - (DEFUN C:PL () (COMMAND "PLINE"))
& S, ^' s% n5 U m - (defun c:dd () (command "dist")(princ))% W1 ?! O0 m# G m/ i% A+ ^1 v
- (defun c:w () (command "pedit" pause "w" "au")(princ))% d: G" c3 d. s6 _8 m0 m
- (defun c:pg () (command "polygon" "polygon"))/ E) n; M) ~8 D1 E! y7 _# [
- (defun c:el () (command "ellipse"))) p- Q p( I# e
- (defun c:xe () (command "explode"))3 H t% K1 S# ]* I. F) o
- (defun c:eex () (command "extrude"))
6 G6 m. P! j+ X# N8 V# T9 T9 H @ - (defun c:xg () (command "xline""a"))
" u, i2 g/ ?( J @( [ - (defun c:xh () (command "xline""h"))$ L; e D; X C8 _9 q e4 E
- (defun c:xv () (command "xline""v"))+ ~' X6 _: L: T8 P
6 t5 _+ ~- c4 K5 o# n- (defun c:oc () (command "osnap""cen"))
3 P+ o5 e6 x6 p4 p; V* Y" j$ N - (defun c:od () (command "osnap""nod"))
6 k/ ~$ [0 O+ B5 r0 Q' v - (defun c:oe () (command "osnap""end"))
) `0 A- c/ j6 R* ]! S1 w* a1 w% y - (defun c:oi () (command "osnap""int"))
8 S5 ]% z4 {: g/ Q6 D6 I; @6 t9 k - (defun c:or () (command "osnap""per"))
2 {1 S" m0 Z. l) M7 T6 W' y - (defun c:on () (command "osnap""none"))0 X- {- J L! j d/ k: v1 P6 S7 }- ~0 F# b
- (defun c:oq () (command "osnap""qua"))9 e0 Y+ a* r8 F- Q& I; k5 q+ ^$ K
- (defun c:om () (command "osnap""mid"))
% _( c. E: Q- y n - (defun c:ot () (command "osnap""tan"))
# i! \. n3 |' S4 r' Q# H; y - (defun c:oin () (command "osnap""ins"))
) L" Q& V2 E3 N' d c - (defun c:oa () (command "osnap""nea")). O: Q Z2 O+ s" r5 F8 z* I+ F
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
6 n2 Y1 G: A# X+ v - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
F& h* ~) D6 S: a+ u - ;(defun c:nn () (command "new" "y" )); J) b4 y' [' z2 ^6 `
- + w) x9 g' @* B8 e; V. W
- (defun c:/ () (command "limits"))
1 q$ |" h! Q9 E g5 k - (defun c:`1 () (command "region"))
u+ U7 [& O Q. A( T - (defun c:`2 () (command "subtract"))
c4 ^3 Z# E$ g# X+ _ - (defun c:`3 () (command "union")); \* o' S; p! [2 c/ L
- (defun c:`4 () (command "intersect"))
& V7 ~ k) [5 C( @ - (defun c:`c () (command "cal"))' }! C; T, W1 P9 H0 w' [
- (defun c:`g () (command "Polygon"))4 J$ n5 n, i0 N* a4 W# N
- - `+ l( A ?8 w* H/ B3 C
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
$ _, b4 T9 {! f - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ)); h! W+ Q3 k+ b* j+ I
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)
$ l# g1 f3 L- k! Z v
4 y) D2 U! P+ x; n$ y6 ]- (defun c:ddm () (command "ddlmodes" pause))# H; `- @- {* T0 }
- 4 |' u; F6 ]7 X0 j! r- K
- (defun c:sha () (command "shade" pause))
0 J0 _7 m) O: ?
( A- m9 R8 H6 e- (defun c:sr1 () (command "surftab1" "p" "" pause))
) i( z5 B+ ~! K( b# f - (defun c:sr2 () (command "surftab2" "p" "" pause))
% `( y2 w5 O% O u/ _# v `; k
' S" b$ Y U# x( P# q5 m- (defun c:ad () (command "audit""y"))
3 M9 N3 k/ z: s' v1 {: ]/ n( V7 S" @ - (defun c:q () (command "quit"))
I: o9 p, f. Z8 P+ [. f - : X( Q6 k3 y" [" A6 k
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))& S6 O# f8 J. z8 B- j ^
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
2 O2 w1 t2 d$ A$ ^, I$ b - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
( [% L' s' R( I. f! } - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
: f! E( V' v, X$ e" L" ]( U+ ^ - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))4 V) @' X. D! p! t
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
8 G. X0 Z+ T4 v+ G - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90")), r" D: e2 Q; i S* ~2 H
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
2 _* v/ T! q$ r4 Y' ]& A - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
/ z- p7 V" _$ w: ]( X+ Y$ U - ; }& w, `/ r8 ~9 K; E
- (defun c:u3 () (command "ucs""3"))! y0 J# o4 u& ~0 |7 E4 c8 F+ a
- (defun c:ue () (command "ucs""o""end"))% s1 w0 R( F0 f/ W$ Z3 g
- (defun c:ui () (command "ucs""o""int"))
8 a4 R# A3 a1 R* [% Y$ S - (defun c:um () (command "ucs""o""mid"))
5 q8 @% ?/ x; Q3 @/ w; [% W w - (defun c:uc () (command "ucs""o""cen"))
. j* n+ J9 l" A/ n0 B4 T2 g6 ]$ N - (defun c:uq () (command "ucs""o""qua"))1 J; |% X+ o; n
- (defun c:3s () (command "ucs""3"))1 ^+ V8 N. F! Y' n! X1 U: o
- (defun c:sx () (command "ucs""s"))
' {& }: E" `3 G: |1 H0 V2 n+ f - (defun c:sf () (command "ucs""o"))
* Q" j' T" C9 e f& z: V4 I+ c - (defun c:sz () (command "ucs""p"))2 g9 \+ c) `# @* o3 `$ ?( e
- (defun c:sr () (command "ucs""r"))
: y) D* q* m7 o1 W - (defun c:sw () (command "ucs""w"))
# @7 _+ j0 u" m4 ]2 h+ { - (defun c:fv () (command "ucs""v"))9 L5 n! P8 c; ?8 F _# q9 w
- (defun c:ux () (command "ucs""x"))- H9 P$ L5 c; Q" L
- (defun c:uux () (command "ucs""x""90"))
8 C% n8 Y4 W% j9 J- k* a - (defun c:xxu () (command "ucs""x""-90")) \! E4 C c% ~8 T% e" I5 d. g
- (defun c:uy () (command "ucs""y")). f! B \1 w0 J: A# u
- (defun c:uuy () (command "ucs""y""90"))# k+ B0 ^4 L2 E5 A
- (defun c:yyu () (command "ucs""y""-90"))% T% d/ F2 H; U2 h* o4 h
- (defun c:uz () (command "ucs""z"))1 ?5 V1 t# W$ A
- (defun c:uuz () (command "ucs""z""90"))
2 I: r+ K5 ]( i4 a6 D2 n6 J - (defun c:zzu () (command "ucs""z""-90"))
6 `) k4 z0 m, C - (defun c:uci () (command "ucsicon" "Properties" ))(princ)2 h" p: b; L8 |, B$ }% R
- (defun c:ucm () (command "ucsman" ))(princ)
v, h0 r# U5 D4 q7 ]
. |7 Z |, ~$ I* a- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
( R6 Y6 X( C- f7 A a( g1 \ - (defun c:sd () (command "vpoint""_non""1,-1,1"))" r3 [# S) u' ]
- (defun c:se () (command "vpoint""_non""1,1,1"))
2 {) l) }9 p$ g* K: o - (defun c:sq () (command "vpoint""_non""-1,1,1"))
; ?# {; g1 z$ y* [ - (defun c:vc () (command "plan"""))
/ @# D! \ o( y - (defun c:vd () (command "dview""all"))' f( |9 p2 U {4 B8 |
* P% X% `" C5 {) c8 a8 d- (defun c:TT0 () (command "tilemode""0"))
. C! n9 r$ G8 R. N - (defun c:TT1 () (command "tilemode""1"))
6 _' M4 E/ ]# K( X4 d ~
& A3 T$ _6 @; H5 [+ J+ V, }6 |, y- (defun c:vt () (command "vpoint""_non""0,0,1"))
( }$ y& Z) e" v' ~ - (defun c:vb () (command "vpoint""_non""0,0,-1"))
6 }% O8 @4 w0 v; R* R" w - (defun c:vl () (command "vpoint""_non""-1,0,0"))
, g3 I) a. c2 p- J @ - (defun c:vr () (command "vpoint""_non""1,0,0"))9 `0 T/ |5 @: N# c" O) d. Y
- (defun c:vf () (command "vpoint""_non""0,-1,0"))
( Y& _# q/ T! ^1 n* y- q( z# { - (defun c:vk () (command "vpoint""_non""0,1,0"))
* c" o& ^+ `$ B! q& e- r - [9 X7 J6 m, `" w( K* S
- (DEFUN C:MM () (COMMAND "MIRROR"))
* `6 o# Q4 M; g8 L& s& d5 I$ } - (DEFUN C:MP () (COMMAND "MOVE" "P"))2 m( C: h/ Z# o. P9 c% O
8 J6 G6 S9 V, d' J- (defun c:mee (/ a)8 n+ q: f5 _ }0 A/ e# m7 v6 }
- (setq a (ssget))(command "move"a"""end"pause"end"))* o& c1 H1 A9 n
- (defun c:mc (/ a)& ?( |6 s3 V0 C& c* F. F R+ u
- (setq a (ssget))(command "move"a"""cen"pause"cen"))
2 f) ~4 `. F8 S: F* G! \ - (defun c:cc (/ a)
4 z: U' X0 F( y- z - (setq a (ssget))(command "copy"a"""m"))1 c0 X3 Z! X- Y9 M" A8 P* O
- (defun c:ce (/ a)
( ~, ?7 m; g# h; q ]- c - (setq a (ssget))(command "copy"a"""m""end"pause"end"))0 }6 n/ @- ?5 w \ P' a6 k% G
- (defun c:cn (/ a)$ h e* t3 F |" m& R
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen")). [" a& X9 ]$ s4 j
- (defun c:tl ()(command "trim""l"""))
9 Q8 N1 q# t% s3 I, C5 u1 r# t - (defun c:tf (/ a)3 q3 T4 S& |1 |
- (setq a (ssget))(command "trim"a"""f"))9 O* T( I ~5 S: Z4 O
- (defun c:el ()(command "extend""l"""))$ J7 m1 U1 ?, R
- (defun c:ef (/ a)& a! k$ @* X6 ?/ Q N' }
- (setq a (ssget))(command "extend"a"""f"))" ^8 Z* U" I# Y! U3 H* x- I! n9 |) D @; k
- 8 w$ _9 L, ~. G8 o* o+ O
- ) l" ?9 s r9 g+ \1 r8 t& A- N
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))6 [/ M5 a7 n) b7 Q
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
, J$ o5 L% a; @& i: u& i - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))( P4 r, z+ C+ m$ r
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
- v- l: I5 X, x5 A( Y2 P - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
9 M4 X( x3 z) ^ c - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))4 P8 n# d* b& [2 T* |8 j4 i5 b3 d
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
6 O7 d2 T, t- a2 m- A) g8 ]9 [ - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
1 k! g* S/ ~. t - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
2 K2 o) X v3 {2 ? - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))5 Y5 {. @ k" U& z. _$ r
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))2 I6 L0 ^' M3 F- y2 d2 v" G
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
9 o3 P5 V6 h( t) X7 c - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
2 G% L6 L. D2 l, S) x0 F - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
, Y' e; t' m; ^* b - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))+ {$ b# D& G1 U7 k; m
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200")). |* P C# p1 G/ G$ |2 r' d g
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))/ r7 f! s5 O) J1 C2 Z/ ]3 X
% D! U1 c( ^: Z. n- (defun c:mla () (command "-mledit""av"))7 I* a/ k8 l9 t' P3 \/ u
- (defun c:mlc () (command "-mledit""mc"))
5 t0 k: o, q' E! h1 `0 p - (defun c:mld () (command "-mledit""dv"))8 A& `. V0 H& T9 ]( e" S
- (defun c:mle () (command "mline""end"pause"end"))
: g" n) g* o3 s) G, M - (defun c:mli () (command "-mledit""ca""int"pause"int"))/ k; r, z+ e5 ?* q9 B9 w
- (defun c:mlj () (command "-mledit""cj"))& I) @* K6 l3 y: s
- (defun c:mlt () (command "-mledit""mt"))' P- p+ v9 d( m# g' H" F
- (defun c:mlk () (command "-mledit""ca""end"pause"end")). a6 T# r( R% O( b, \& l! I
- (defun c:mlw () (command "-mledit""wa")), k( D0 W- f L0 Z& u0 C9 J
- ! R( P4 Q0 D) L9 n" V
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))1 b4 `3 E8 v o! ?$ d
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))$ u/ i# K j! ?7 X" _# r6 C
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))+ d, H- p3 A4 [* s) o4 t
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D")) H Z: C. N) U
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
0 G. t( {" c: }- G- }8 ]% H - 7 w; |. |5 z; l( A
- (defun c:p0 () (command "pline""""w""0""0"))4 _" J% w( d: h% g
- (defun c:ot () (command "offset""t"))0 h# Q0 I1 x& l* g( x( w) T
- (defun c:t () (command "mtext"pause"j""bl""h"pause))( Z% d3 f: }; \; X4 f
- (defun c:uo () (command "ucs""ob"pause))- a2 L0 G6 ^8 v+ `/ c9 `
- (defun c:f0 () (command "fillet""r""0"))' C! t; q! R! ^0 ^+ r
- (defun c:fr () (command "fillet""r"))" |- M# Z: f- T- W
( v1 J. E1 [+ Y; b# x7 y; [* j1 j- ;CHAMFER6 _/ P5 s1 S: v7 A, Y0 k$ V+ u3 }
- (defun c:cf () (command "chamfer"))+ i' e- K5 ?8 S
- (defun c:cfd () (command "chamfer" "d"))
+ _$ Y9 T8 h% {, w - (defun c:cf0 () (command "chamfer" "d" "0" ""))
( m% l- w9 X& _2 V& s' w - ; a4 l4 a' [5 _1 J* ~
- ;FILLET
/ b* B+ x2 Y6 s: p, X# @ - (defun c:f () (command "fillet"))
: G" m# f- S" D - (defun c:fr () (command "fillet" "r"))
7 w4 d$ g6 z5 m* G* D - (defun c:f0 () (command "fillet" "r" "0"))
; r- D7 q* X& x+ q5 H+ W - 1 D, u! I2 y& q# Z2 D9 Z# C6 J) C6 h
- (defun c:OO () (command "oops"))/ e! D" p$ ?: V8 j1 [
- (defun c:dln () (command "dimlinear"))
1 o! s' a3 s# f- A2 U$ r - (defun c:dan () (command "dimaligned"))2 s) c5 S( u% A: {9 p+ i5 Q: `( h2 B
- (defun c:ddc () (command "dimcontinue"))! O4 g4 Y7 d4 u/ q* I6 \& y" ]7 }; r! s
$ ~' T" p( p6 {4 G4 f- (defun c:sc () (command "scale" "auto"))# k; w$ I H" P8 I
- (DEFUN C:XO () (COMMAND "snapang"))
/ E: c/ r6 e9 }+ k - (defun c:cc (/ a)) Y* A8 P* u+ i+ V: I
- (setq a (ssget))(command "copy"a"""m"))
0 Z) x7 x5 t2 B4 _: X3 q
( J, ?0 W8 [' U# F- (defun c:PJ (/ a)
( w' c$ f% c6 E7 _ - (setq a (ssget))(command "pedit"a"""j""all""y"))* D# V3 M, d* ?9 a6 h5 D' \
- (defun c:JJ (/ a)
3 E. H+ C- W) c2 d7 V0 Z/ Q) {/ F - (setq a (ssget))(command "pedit"a"""j""y"))
k r5 N- f a9 T1 } y - (defun c:TN (/ a)
; b! \1 W2 q/ X% N$ t9 u - (setq a (ssget))(command "change"a"""p""T"))
0 @; }( `) r B5 A7 U- f
8 c# K3 j$ T. ]- " Y+ c3 W; g5 F; `8 m8 `
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
" N/ t3 T: |4 @; n6 [ - 6 Z, B! }9 w0 W8 E1 W7 I, T) k
- (defun C:IB ()(setvar"cmdecho"1)0 y8 m7 [8 ]! Z3 X/ Y9 c J
- (setq pt(cadr(entsel"\nSelect Block:")))
7 E/ k1 \/ C, I, v - (setq e1(ssget pt)) 9 O4 {1 M; J. c8 H% M, y0 j; Z
- (setq e2 (entget (ssname e1 0)))5 C6 |0 Z# Z, e$ H+ V% a
- (setq blname (cdr(assoc 2 e2)))
, a/ E; m: @& @0 V! F2 F - (setq oer *error* *error* err2)(command ".insert" blname))3 p8 k6 Z! Z! V$ p! e; C
- , e% P& L* W6 o; C5 l* |1 l8 U- a
- (defun c:II ()
6 ]5 m+ [; R4 J; u/ N - (setvar "cmdecho" 0)
% D1 S) ]; o, G$ N( Q) { - (setq olderr *error* *error* myerror); u# r7 ^9 t( h% B
- (prompt "\nSelect objects: ")
+ \7 q6 q# e, O) @ - (command "select" "au" pause)
4 x. [' G: {- h3 \' y# N/ c8 r - (setq sstxt (ssget "p")
: @! U: ^# O1 ]2 u7 | - sslen (sslength sstxt)
1 H8 f" o) C5 C- U; O - ctr 0
: G1 ?0 J% W7 ]* ~" p9 l" _ - )/ L- k& ?# b; ~* B" f: I4 B( Q# j" e
- (command ".undo" "mark"); c2 n, e; t( P4 f
- (while (< ctr sslen)
) L3 t8 O; w4 H9 X - (setq listxt (entget (ssname sstxt ctr))
; e" W- ^# j0 V( X - txttxt (cdr (assoc 1 listxt))
; a; u0 K4 t; N- ^ L - enttxt (cdr (assoc 0 listxt))
1 l& w* u- \4 c% D - )
. U4 Z! a' A) c) O W: F5 b) ^. k - (if (= enttxt "TEXT")8 P' ]$ C0 X9 @
- (progn
" l' `, g. K. |3 T - (setq testxt (substr txttxt 1 3))
& \$ n& _. B3 ]' b ?1 G( b4 G - (if (or (= testxt "%%C") (= testxt "%%C"))
% C: ]8 @/ m# P0 I9 G7 u - (setq newtxt (substr txttxt 4))
. V, @: e6 S( O0 o - (setq newtxt (strcat "%%C" txttxt))
3 Q- }" t) {' T$ T" P( Q# T - )
1 s7 [" ?; X" m4 ?: \# \ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
$ K7 I l. M, f) i! O9 m! o% `! q; s - (entmod listxt)6 O, H) G3 a: \7 r, m5 I
- )
! S1 m( T' k7 b - )$ U/ z9 L0 D* i( c
- (setq ctr (1+ ctr))
( `8 s8 ?' w( s- p6 y- q - )8 B/ z- P% `/ D7 t' {9 \% P
- (setq *error* olderr)7 K' s( _& s- n% ^5 j% {
- (setvar "cmdecho" 1)9 s; p+ q/ c" o) {8 K
- (princ)
; r1 } T$ F% F- {; h - )
8 e+ m1 Q& O8 z/ U4 l( L6 H% ]& f
* l" l- w/ u, T1 Z. Z/ M- (defun c:DG ()
4 Q5 ~+ S1 M7 g: @0 B% i - (setvar "cmdecho" 0)) ]. x' o* x; {5 q. \. T" u
- (setq olderr *error* *error* myerror)8 L% h( J* x" a5 J4 g
- (prompt "\nSelect objects: ")$ P* q) X6 A0 r0 B6 W8 b$ h
- (command "select" "au" pause)
7 [1 h# U9 r( I3 ?+ l0 ~ - (setq sstxt (ssget "p")
# Q( I) P1 w! b2 r/ B# T2 C# ` - sslen (sslength sstxt)! f% {0 M9 O: r9 Z" x
- ctr 0
}7 p$ f& A$ d, ^6 X- Z% r0 [ - )4 m5 k- e$ [" y% J5 M) E
- (command ".undo" "mark")
6 S! v3 z: f7 U% b. `0 o! [ - (while (< ctr sslen)% L9 D$ w* h% P# d
- (setq listxt (entget (ssname sstxt ctr))4 j4 N" q! w5 n/ K/ `1 S* j
- txttxt (cdr (assoc 1 listxt))
; N) v& C6 U5 E. l0 k! @ - enttxt (cdr (assoc 0 listxt))1 F3 f) u) S5 {5 C$ r& }
- )
Q. @- p; ]" ^6 S+ ?+ V - (if (= enttxt "TEXT")" N' C, m, W0 e1 T% X1 X$ V
- (progn$ ?1 T9 ]4 f% G9 Y( |
- (setq testxt (substr txttxt 1 3))
/ N3 g6 e+ B( d; e4 L - (if (or (= testxt "%%d") (= testxt "%%d"))
+ }& z1 Z3 d9 x1 r( H1 X - (setq newtxt (substr txttxt 4))0 n& X; E* R- g7 j& V4 z( X
- (setq newtxt (strcat txttxt "%%dC" ))
4 @: C5 a& k3 T - )
T" \4 M* {* M$ \! @) d - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))) [0 n; l1 b4 u; K. w' b8 V' v
- (entmod listxt)6 T# {) p9 H9 K) x( ?# q
- )
5 z( e2 a) X$ J' Z" N# o& ^ - )1 ]9 |% g. t6 x& Q
- (setq ctr (1+ ctr))3 X6 e' ]( j1 I
- )
# ?$ ?) k# Y! v0 P E - (setq *error* olderr)1 B$ J0 {! x3 l' ]6 q% r5 x
- (setvar "cmdecho" 1)( u5 X0 h- [1 V
- (princ)
. D3 {' H- n8 I0 m' [2 Q, @ - )- c, g* `$ E: \ i* J/ j, M6 A" o0 [
- ) _/ N3 k/ {6 W+ e( f) h$ N1 e, s
- (defun c:PI ()4 p. G- t5 k' C1 X
- (setvar "cmdecho" 0)+ t0 H4 F) U1 F5 h- u. y1 s
- (setq olderr *error* *error* myerror)2 w5 h% a# ]" i3 v, B
- (prompt "\nSelect objects: ")
' z, M6 M8 B2 c6 `7 H g - (command "select" "au" pause)
/ q" F. G% ^( K' C; H - (setq sstxt (ssget "p")
" Y6 w5 e5 l4 R8 l# a$ C" e6 }1 B - sslen (sslength sstxt)
/ O- [- q" h8 b$ C - ctr 0
5 t4 b: U# F# I: K. e - )2 t" f2 U& C' q) N) w
- (command ".undo" "mark")9 x Q, R9 u' U% G" T3 S4 ?% y
- (while (< ctr sslen)
5 N7 m Q7 G8 m# h - (setq listxt (entget (ssname sstxt ctr))
: w. g& _* j9 ]3 R: N9 z4 P - txttxt (cdr (assoc 1 listxt))4 ?* F4 C0 L4 z
- enttxt (cdr (assoc 0 listxt)): ]* s7 g/ d# \) O
- ), T' }% p1 b; l$ ]4 r8 c! L. g& ~
- (if (= enttxt "TEXT")/ @ U# q$ u6 y3 I
- (progn
1 ~' Y7 n4 _5 u2 v$ \/ E - (setq testxt (substr txttxt 1 3))0 O/ g/ Z! N' g
- (if (or (= testxt "%%p") (= testxt "%%p"))( V4 S( {8 z7 i2 V) q h4 n
- (setq newtxt (substr txttxt 4))
: p& k% H5 ~$ ]: ^4 W; V2 [ - (setq newtxt (strcat "%%p" txttxt))
3 c( H' n7 U% s9 C9 A& _+ B- S - )$ g( q% Y6 u0 B$ P5 p# r2 H
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))0 r# g3 j" r* o( d! A1 b/ E
- (entmod listxt) w; j8 v4 m( U* j1 m6 }, T- q9 W
- )
1 Q6 P) A( G; q. {# Q - )
* r* V% I3 t* h; c; L9 _2 x5 H - (setq ctr (1+ ctr))& q2 X4 }: w; Q. k% o6 l9 g/ C, j/ C
- )3 j7 u2 }3 t4 v) A Q/ V6 T
- (setq *error* olderr)5 k$ a3 G I9 T+ o! }2 X; k3 g2 o
- (setvar "cmdecho" 1)
% i9 _% Q* C% i& ^; L \$ n# \ - (princ)4 a. O$ F& y3 f$ D' E
- )' G0 s2 z$ R% [ b0 o6 F( K. {
0 c i3 @0 w- P6 A& v% M* h3 P- (Defun c:CB (/ a): ]! Q4 H; ~3 K
- (setq olderr *error* *error* myerror)- r( H, D+ V7 b; U
- (setq ocmd (getvar "cmdecho"))
2 N4 @4 Q5 q1 k - (setq oblp (getvar "blipmode"))) Q8 p- e. E/ p0 U( c Y
- (setvar "cmdecho" 0)! ?$ P, w; L% _, e! K( P# l; h
- (setq a (ssget))
% P% G' A% T/ o' \ n+ d8 Q. C - (command "CHPROP" a "" "C" "bylayer" "")5 B8 M; B. G& k+ G, o& C- e8 F
- (setvar "cmdecho" ocmd)5 L% q/ f+ ]( x" l
- (setvar "blipmode" oblp)( X r3 C8 @) V9 r
- (setq *error* olderr)
+ A1 y1 J% Z, V9 L* D - (princ). U G2 z% u0 W+ Z9 z8 j
- )
( C6 ~; ]( t$ k: G- L: N - & S4 z2 g3 J- y. d; y5 D% L, b
- (defun c:LCC (/ co43 obj23 la23): q' `8 S6 Y* o U; I
- (setvar "cmdecho" 0): v* J6 O, X; N i
- (setq co43 (getstring "\nNew color : "))
2 C* B: i% q4 T% z( l' D+ q$ [ - (setq obj23 (car (entsel "\nPick object on desired layer: ")))
- c0 ]; s/ S; j+ @; h - (if obj23 (progn
+ a8 ~( M6 M; N L' W1 S. W - (setq obj23 (entget obj23))- J- ^2 _5 U% m9 w5 X/ h1 y
- (setq la23 (cdr (assoc 8 obj23)))# ^( s$ l+ ?9 M# v
- (command "layer" "c" co43 la23 "")
! [7 T/ m, ]7 w, Q: K - )
. t' d. U4 P! y! f5 n( { - )4 Q2 w- ^ R3 Z4 z9 u8 Y, t8 f
- (prompt (strcat "\nLayer has changed..." la23))5 A$ {- g" p0 C# @
- (setvar "cmdecho" 1)' b; y, v0 u% t. B
- (princ). J4 x& Y Q$ k5 ?% P
- ) ; l. p& W9 S1 y; M' Z3 \
- ( o1 A" n4 t* D3 m
- (Defun c:RP (/ a)
; N3 ~9 n" B( n/ Q5 x - (setq olderr *error* *error* myerror)
! Q4 `" q( t& F( m- N% T - (setq ocmd (getvar "cmdecho"))! {/ h) p, J! e; h- o
- (setq oblp (getvar "blipmode"))
- z# Y" `8 @" u - (setvar "cmdecho" 0)- E6 \, e/ _, u
- (prompt (strcat "\nUSE: Delete object(s) belonging to"
% S% o. q1 p/ }6 K4 [ - " the layer of the entity picked...!"))5 ^7 v& c8 f% y+ y# f
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))+ Q0 c% R8 @) M8 X3 Y6 T7 P/ X
- (if (/= a nil)- s. w: @- h6 j, d' o" F
- (progn (setq a (cdr (assoc 8 (entget (car a )))))
- v* Y/ G8 z% T* z7 l - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))# p# q ^0 a7 Y& a2 |& `1 L
- (prompt "\nNo entity selected!"))
# T7 Y) _4 S+ t- l# u1 g% U - (setvar "cmdecho" ocmd); G- ^' b6 s6 Q9 g7 I6 U3 P+ @
- (setvar "blipmode" oblp)
. I1 ] u; g" D2 v: Y& j$ S - (setq *error* olderr)
7 @$ S0 l: n G - (princ)
m! r3 u6 W' ]) l X8 w - )
/ S* m% j* M5 }. q
$ v @8 |9 y5 B+ G* S; C6 I- (DEFUN C:WL(/ SSET NET SSL M)4 R$ a' } m2 s0 d9 s" T
- (PRINC "\nSelect lines :")
- S5 I- r3 M0 L) _+ L0 s - (SETQ SSET (SSGET))5 o: a8 F/ e" X# w) x( W! W
- (IF (/= NIL SSET) (PROGN8 t8 j+ E. V: }
- (SETQ SSL (SSLENGTH SSET))6 D3 j7 ^* i+ L
- (INITGET 4)
# w. i+ v6 B& l* K2 W1 p - (SETQ NET (GETREAL "New width : ")); w; r8 J& w l' |
- (IF (/= NIL NET)
# k, [) g' ~0 w5 w - (WHILE (> SSL 0)
+ j7 d& }. m' D1 Z9 r - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
6 M) t1 e4 \+ L( I9 B) \2 ^ - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") . ]- ]; ?" q: v6 J, B [
- (COMMAND "PEDIT" M "Y" "W" NET "")
2 t1 e( B$ b( ~/ n, O2 I5 R* G - ) # |5 K& P7 S( p' G: [/ C, R m
- )
: c9 U7 h" P) J9 N/ H4 n4 Q - )))
7 I0 h' B- A* E% h$ I ]4 [5 F - (PRINC)9 h! `; T' L( L
- )' J G; }1 F+ `
- , C4 l0 y3 r' @5 p9 t8 w: j
- (defun C:MML ()' Q, ~$ c* w, S
- (princ "\nSelect objects to move to another Layer.")
5 V1 Q* o3 c/ r; d - (setq ss (ssget))' ^ e1 q, g9 r0 P: ?& x7 e; f
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
, q1 y0 X4 r6 m' d" u - (setq counter 0)2 @( Y9 v/ u# c! k9 Z' Q- C6 _7 B
- (prompt "Moving to layer.....")(princ ul1)% N9 T% M! T2 J5 f
- (setq e (ssname ss counter))
0 l% i( c# V2 v1 ~ - (setq l (cdr (assoc 8 (entget e))))% h1 a- {! e- ]3 }' o5 [
- (setq S (ssget "X" (list (cons 8 l))))
. G( ~3 ~& u3 V8 d/ E4 | - (command "CHANGE" ss "" "P" "LA" UL1 "")" R7 f- w% @, ^+ b3 g
- (setq counter (+ counter 1))5 d3 p& d0 q5 b& K
- (princ)0 k! r; R1 H* y( o7 `
- )
& A- Y1 I/ K+ Q; h - * U% i+ O8 I! P, H
- ;;; ================================ GHI CHU ============================
, l( p: h( q( F& V, i - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
, K, F; w( R1 s& w3 B4 n. {+ T - ;;; =======================Thuong Dung Font Romant.vnh===================
; Y7 }& ~# J* r+ z/ O - ! L" s& V, @- b3 c0 W, }
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
/ C& N8 ?: k, y# R m - (setq oer *error* *error* err2)( a+ Q4 V9 F; ^8 ~* m
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
+ Y6 l; @% u: D$ w: g- Q9 T, W - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))7 B' l8 A5 d8 h. C+ `1 I. ^ @6 G
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))
s" a1 t- f6 d& s# [ - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
$ Y' ]$ n3 z4 g - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))4 \* \! |4 x: m8 r
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
( ^' b9 W4 A3 Z5 u2 ]) U N" k) O, ? - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
1 K9 U( y- T' f; \' G) l: R - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
$ p; U; J5 T, P7 M& Q& d; C8 p - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))$ M* r6 y' ?5 ^5 [4 y1 R3 ?4 x
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
, n4 S; w9 ^7 {0 a - + b5 {$ Q) H& E
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
' J6 D- l7 o1 B- J5 L7 |; c; d - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))1 ?% C' K! q- r5 M9 T/ U
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
7 `2 M; G: ]" n$ ~* p - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
* `& b" D8 P6 E& D8 g - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))4 p2 p2 x9 V& B! O* v2 ?- I. e
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))- U* I+ e6 b! U0 b5 _: k# F
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
+ U6 A0 J# t; P, {5 c; c) I. X- ?# I - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))4 t: n% J+ l9 V) z" v
- / h0 ^6 }( ?; B) t! t: H0 l
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))% V# g% i. D3 X9 y
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
+ S3 r0 H. M9 ~3 O$ g; [ - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
, Q& D+ T- Z3 O( T8 ] - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
; U8 j5 |5 J0 m8 K - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
- i/ r. C! C b% f4 E - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
8 Y% O2 X7 a- r$ F. q - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO")). W0 P* p* F8 p& \- C
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
/ @4 W. m, V) y* u - (setq pta (getpoint3 | R! m g) \. ?( d1 |
- "\nPick first corner. : "))1 X: w& k, X9 c% u' @ Z
- (setq ptb (getcorner pta
' k4 G8 U: L9 F+ }+ |# R - "\nPick second corner. : "))
2 S0 `# R" T, [3 H4 A& O0 P; Z - (setq ptc (list (car ptb)(cadr pta)))
+ t# E* v {& C" k. |; |( \ - (setq ptd (list (car pta)(cadr ptb)))
* W) `. Y- s' s. y0 u - (setq ang (angle pta ptb))$ i0 g; | i- k# q) I
- (setq d1 (/(distance pta ptb) 2))' Y9 ]' f6 \. H4 v7 y# u
- (setq cp (polar pta (- ang (dtr 0)) d1))
: q1 `) {2 C0 i; p6 M+ R - (setq X (distance pta ptc))
7 T! H# Y8 W( x4 T) e. |) M7 L - (setq Y (distance pta ptd))8 B9 \! s' B# y3 F! F$ `( p4 J
- (setq X1 (rtos x 2 1))& [4 s3 V% M5 F* r) k( ^" W
- (setq Y1 (rtos y 2 1))
2 j) n& j# I5 y( u! f: [* w: ]3 ~ - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
/ D* z7 e+ j Z$ u/ R - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
$ m9 m, v1 S( x+ P - (defun dtr (angg)
6 w; j% n( f. n+ a" v: l- ` - (* pi (/ angg 180.0)))7 s+ k7 p' d1 R& E1 V P8 q; x
6 h2 p, ~( o1 _8 G% b/ R2 H- (defun c:WS (/ pta ptb rmsz pl1)2 V7 h- X. o6 y) H7 r
- (setq oer *error* *error* err2)! P2 O5 D r/ D8 |
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
" |9 i: _# u0 P: y - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
5 G9 n8 s0 r/ @8 a - ; L. \. e8 `3 S$ K- m+ Z; B! k/ |
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
; Q0 a$ Y1 v( C$ s* _ - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
; |$ m" ]) U0 ~# ^4 w2 Q - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100")); {0 n: m3 j- u$ w! }& C
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
, b. ?" p0 t7 r2 r- F - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))- m# a3 O8 g' w- y2 n0 s
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))$ Q/ e) f1 x+ u2 H9 t
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))- x9 f3 j0 [/ p& q, \7 ^5 f
- / E: [# z% N5 Z. Y
- (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"))% _# o* K# c! N% c
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
c |# I! K* T, U - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
8 |0 u! Y8 Y! V. M - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100")). I" [& z" n; @& U6 J, O( o
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))% c3 L! j. E& h6 F! U( \- [& x
- (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"))7 c V( v) V5 D# w3 C2 ?% C
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
9 a/ d+ N8 @6 w( p1 A3 B: Y - (setq pta (getpoint
4 y. D. ~4 P) ?% ?1 i. o1 u - "\nPick first corner. : "))
9 J/ `9 q0 ~, F9 Y+ v+ }- A! g3 d - (setq ptb (getcorner pta
( k+ b) Z0 w5 X* M - "\nPick second corner. : "))
6 S7 V: J. S: B1 K - (setq ptc (list (car ptb)(cadr pta)))
) \6 L. u' s, c1 d, J - (setq ptd (list (car pta)(cadr ptb)))
# T8 j9 Y0 }1 F9 H4 q: R - (setq ang (angle pta ptb)). o/ y% l8 q8 K' P5 z
- (setq d1 (/(distance pta ptb) 2))! ^& I3 U& o* k" w4 N
- (setq cp (polar pta (- ang (dtr 0)) d1))! A C" s& f0 a) j+ U+ K8 y
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))7 v5 ~+ i' p$ i5 s$ J4 ~7 {
- (defun dtr (angg)
% y* d, ~8 H: H0 X4 ] H% D - (* pi (/ angg 180.0)))
& o, Z" i- i! f8 Q- F* ?
9 o: h! R5 i; d6 {! J- ;;; ================================ GHI CHU ============================, j1 y3 X, i+ v2 a8 A) D7 l
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========" }! L2 ?+ a3 Q& e5 e1 b2 A
- ;;; =======================Thuong Dung Font Romant.vnh===================& b9 q0 t( n, p; }# {
- 3 R; I2 W2 P5 v' q6 x0 Z6 h* M0 l
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)7 i- t6 c3 _* ^! k8 A
- (setq oer *error* *error* err2)
/ y& _* }: `9 C0 X! B7 v# V - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
P3 U" @% B; ^' R9 M; h - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))* W/ \9 E- k5 K5 v0 s
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))* q$ F0 a0 x3 r
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))/ w y- N) p+ ]% S) y
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))2 l2 @7 _+ ]3 V4 N- {8 K* |
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))# ]% J8 p; b$ ]7 [9 X, j
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))+ b5 ]' h9 J8 o" j3 i8 j
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
! [. f+ j! k9 D( S p9 ?4 ^ - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))9 {4 C+ J- [4 k% z
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
( {1 Z4 v: a. i) B p - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
8 M1 Q2 q/ o2 y& V0 K. s3 O - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))+ a( w0 X( u8 M9 K0 S
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))* \" y% d7 M7 H1 ]3 @7 q
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))" G6 l m, K& b5 z2 Z+ R9 U
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
( |* T& m: _3 s7 |) \ - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
9 L5 ^8 Q( w2 ~ - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))" g, U9 b% I7 ?$ Z+ T
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) * }+ Y+ ^' n4 j; w+ c
- (setq pta (getpoint! [: k" j( z5 Q' {3 B d. a. e8 m
- "\nPick first corner. : "))
7 ]4 x: ~( B B/ r - (setq ptb (getcorner pta# Y1 b: A3 P( j, ~
- "\nPick second corner. : "))
% E, t% b' K; f - (setq ptc (list (car ptb)(cadr pta)))
# F* X, Q% c9 j" O( i - (setq ptd (list (car pta)(cadr ptb)))4 o$ [5 h8 o( [0 K8 w! F
- (setq ang (angle pta ptb))" ]& f- }. t O. z! [3 G
- (setq d1 (/(distance pta ptb) 2))
# X2 r2 x5 M, K. u- `, T - (setq cp (polar pta (- ang (dtr 0)) d1))8 Y/ ?( y3 k, [& n
- (setq X (distance pta ptc))3 g3 D2 O& g: E2 r( F T3 }
- (setq Y (distance pta ptd))& P, n1 R" b: H4 O0 W4 m |
- (setq X1 (rtos x 2 1))
# r, i5 F0 j: Y/ D+ o - (setq Y1 (rtos y 2 1))
' K& ^2 o0 r( G* |' a: Q - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
7 \; j0 q. l; V z/ b2 W) J- g - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
0 m5 s2 V& t5 g6 W! g( |4 J/ j) g - (defun dtr (angg)' E3 C) D; Q6 ]$ K' M5 f# `& _
- (* pi (/ angg 180.0)))* P2 F8 a. M/ K# A
+ e7 l/ u9 Q/ E, I! @& x- ;;; ================================ GHI CHU ============================$ P3 }( M( l3 `% W3 q
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========0 J4 c( l7 p" u
- ;;; =======================Thuong Dung Font Romant.vnh===================
! q1 `4 `$ j2 k& u
) E8 K' a6 a7 y- (defun c:GS (/ a b c d)
E( b/ n j4 p d; h - (graphscr)# a: S' \6 N" K) r- H; ^$ A
- (prompt "\nSelect text to set style....")
$ R5 r. }* M; Y6 B- ] - (setq a (entsel))
3 p R; M7 S5 M! [8 l& f; f6 r0 R - (setq b (entget (car a)))* m; [/ h6 K9 v& ]5 N% J( {
- (setq c (cdr (assoc 7 b)))
1 L% W( r5 n' k- \$ D( |. Q( D$ K - (setq d (cdr (assoc 40 b)))( G1 k! b) M5 V$ g
- (command "style" c "" d "" "" "" ""))
- B$ F0 L! C2 ?( n" E4 n* {9 G - (princ "\nType GS to set text style.")
7 D/ E3 M0 G) z# B a - & Y3 ^5 v" X. @; k8 W( B, u. |" z
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
. r' O. h4 K: m - (setq olderr *error* *error* myerror)
/ x+ i) ?6 O& x) O) I& [- t' |+ p, o - (setq ocmd (getvar "cmdecho"))
' n8 j1 X% t: T0 V/ z- u5 k - (setq oblp (getvar "blipmode")), K7 B: v- j7 I, a9 u& `8 A
- (setvar "cmdecho" 0)
8 R U) m+ f7 L3 Q$ b: i - (initget 1) ;3D point can't be null
6 Y, R; _& h" h% W6 G8 f - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))& j/ j0 i! ?5 y% n) R
- (setvar "ORTHOMODE" 1)4 s! l1 X* Z, E7 X1 W, ]
- (initget 7) ;Length can't be 0, neg, or null: r8 A9 r- B; n
- (Setq l (getdist pt1 "\nLength: "))6 J4 l2 V7 z! t" r4 K! x- X3 V6 X* ^
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))" s R6 s* g) V3 D! \
- (grdraw pt1 pt2 2)
, U" a9 c4 y5 I5 A$ i3 `8 Q# a - (initget 7 "Square") ;Width can't be 0, neg, or null
, W. g# x3 D0 g% m5 x - (setq w (getdist pt1 "\nSquare/<Width>: "))
7 X! K: Z3 |& r# U - (if (= w "Square")
. |5 L8 \$ |" K - (setq w l)1 x4 i, S! M* x. W4 S9 k
- )' {* U* b: z$ X7 Z* K
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
( s. V# |) d/ [/ r! ? - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
* f c$ i2 B" T - (grdraw pt2 pt3 2)# z) d! @! H+ p' w4 G. N
- (grdraw pt3 pt4 2)
( \% ]2 X6 `5 b5 U' u; { - (grdraw pt4 pt1 2)
, Y7 q6 d3 g5 _) {( x - (setvar "ORTHOMODE" 0)
$ Y" a% ~# p2 _) E - (command "pline" pt1 pt2 pt3 pt4 "close")
* \. Z& W7 Q: R4 s - (setvar "cmdecho" ocmd)' h7 s" z# o. o0 ~( W
- (setvar "blipmode" oblp)- D# t, t2 K) {4 g6 t
- (setq *error* olderr) ; Restore old *error* handler
& n: m& l% G6 `8 {4 ?* g; s. ^ - (princ)
" [$ s9 R- _- f& J* H$ r* R' A! u - ): A. ^( y8 ~* S# Y2 Y3 X) j. e
- 9 _ L$ @) ]* y5 N# ^' H
- (defun c:SG (/ ent pt1 pt2 ang): e' ^0 x; ]3 t: y4 B
- (setq cmd (getvar "cmdecho"))2 }0 e$ q/ O. z7 E, r* A. N
- (setvar "cmdecho" 1)
4 _. M% r; d9 m j7 C9 x - (prompt (strcat"\nSnap angle will be set to angle of line"))0 R2 X0 Q! M! N2 o! s
- (setq ent (entget (car (entsel))))
2 `+ L* T C( r3 \+ P3 |7 o - (setq pt1 (cdr (assoc 10 ent)))( M1 D1 `$ `/ ?/ Z, e! t5 J5 n
- (setq pt2 (cdr (assoc 11 ent)))
# u/ A. @- Z& E, M! G - (setq ang (angle pt1 pt2))
* {4 W7 I7 z5 u! U3 o - (setq ang (/ (* ang 180.0) pi))
! ^+ g4 g+ W7 q0 V w; H; I - (setvar "cmdecho" 0)/ A3 f: t, K L5 V- ^
- (command "setvar" "snapang" ang)
9 i1 {2 m, u) h# N - (setvar "cmdecho" cmd)
/ `2 J% i/ T) r- \' v - )2 m% t" t" X) o% `- [
E& I; ~6 ?( w* b$ t3 O6 f8 t- (defun C:TG ()
3 g. w* E0 h) Z$ \ - (initget "Increase New")
/ y' h; s, |1 g9 H- k! u* K - (setq ans (getkword "Increase/<New>: "))
- p7 P/ F' k) O1 L4 s - (modang)
, s) @. v+ V+ L! y- m" X( U- D - )" k" M( s3 ~; K/ u# X
- (defun modang (/ ang ss ca e na ssl)
; f/ |( O0 z+ `0 d% J# j. J - (if (= ans "Increase")# F! K _* P; @2 F
- (princ "\nIncrease angle for text by: ")
7 ]0 O3 L7 |( E" W - (princ "\nNew angle for text: ")
! r( V G c1 H# K( _/ V% ^7 N - )
/ }2 V7 n% i: ]( _, @ - (setq ang (getreal))
7 ]( g7 J5 U) K8 l, U: I1 U - (setq ang (* (/ ang 180) pi))! h( g6 X& g$ h/ v: O8 Z0 v) I W
- (setq ss (ssget))
% X9 s2 `' z" d9 `/ c6 v5 q' z$ R - (setq ca 0 ssl (sslength ss))* g% }9 h* u+ X$ @
- (while (< ca ssl)' J* `, H" K8 g% q& F: f: s
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))1 U- g3 x$ m( j, Q- V
- (progn: e7 c3 U: v+ N2 e# h
- (if (= ans "Increase")1 _+ ^/ R" H, m7 [1 s
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
* ~4 s) |. j4 L - (setq na (cons 50 ang)). b0 A2 s3 `9 l& ~2 W$ ]* s! Y
- )
) N3 a! \% O8 O9 [( H! T - (setq e (subst na (assoc 50 e) e))! d( l2 H" K' ?/ B0 j
- (entmod e)
( [( z. J7 i1 _) n# m5 c1 O - (setq ca (1+ ca))7 O' V7 U! Q3 m' s1 n
- )8 s% P6 O% ~4 D) t
- )
9 s. N2 U% o6 p0 d - )! N$ ?; P. S5 ^+ [4 u
- (terpri)5 z. u8 Q z4 L) s) q7 k
- )
. X; q7 |' A9 j! w* z# ~$ A
( y: d! k- G5 F: W' U% }2 R- 2 e6 g# j+ v. @7 v9 S- c
- (defun c:WL ()0 i3 U, M9 [% d* _ C8 z2 _
- (setvar "cmdecho" 0)
% g& h. ^1 y }) i# a5 `7 f - (setq a 1)
3 q7 Z4 Q& J J) c - (prompt "\nSelect Polylines to change: ")
2 V! v2 {9 J' t) A" F4 i, S& H - (while (/= a nil)/ d% E8 Y7 I0 N# a" G. s
- (progn
) }% H1 F2 }; o - (setq a (entsel))
2 t% ?, X2 k; { - (if (/= a nil)/ C0 @% h, V9 {/ j
- (progn
, j% ]1 S$ m4 [; n* Q/ U - (setq b (entget (car a)))( m! Q9 f. ~2 M' s! K0 E
- (setq c (cdr (assoc 40 b))), P4 {7 s0 Y3 V1 W3 @
- (princ c)6 R3 k. @+ r: Q' G$ Q5 D
- (command "pedit"a"w""lw""")
g1 r" C& z. s - )))) - A, t& ^9 p: Y9 y5 w" L5 p
- (princ)
! R" O6 H3 y: @- k. Y8 I - )
! a0 v" r9 I/ R2 A7 V - 8 P N7 z+ {0 a, X/ ~, @
- ;;; ================================ TEXT FIT ============================" j# f P Y9 M
0 S; V& p5 h+ [4 b/ x- (Defun c:FT ( )
r7 O/ u2 P+ z6 D! y& X - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
( E+ ?9 C* Z/ w$ C - (Defun LL-xyz (arg) (CAR (TextBox arg)) )9 r- A+ R% u1 C, t
- (Defun UR-x (arg) (CAADR (TextBox arg)) )1 f& X, `# }% T6 ^( r& @. Q
- (Defun LL-y (arg) (CADAR (TextBox arg)) )
* y# G& A8 R/ e# P. P4 y - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
0 `) M4 c! j9 Q- ~ - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )3 ?! y; @( F! O$ } F$ [- r
- Textent (If ename (EntGet ename)) )
9 _ S z! k/ n& H$ y. N - (If (= (CDR (Assoc 0 textent)) "TEXT")
2 Z" N& V; ?) G5 _' H - (Progn (initget 0 "Start")' }( A/ I' i! B0 i* u/ h n
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
9 v) C Q5 x& S& N& l1 q9 E, A# I - (setsnapang Textent) ;set snap along text entity
3 O; C, s% _( f$ M9 z6 h% J - (setvar "ORTHOMODE" 1) ;drag along the text
# E4 ]9 E( ?3 \% M1 x - (setq
8 R; y, X# F9 _( g4 } - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )- m/ L, C3 P; Z( O
- (setvar "snapang" 0)
0 o+ [3 O4 P% g' I! C, s7 X& E8 s8 V4 u - (cond
: ^, Q" {+ A$ X) N/ F - ((= (type TMP) 'STR) ;;new starting point to be selected% ^5 T9 ?& `5 a+ A& u* @
- (setq Start (getpoint "\nPick new starting point: "))
: ]: [: ^" S1 P0 z7 B. w - (if Start (progn& ^" w/ D% o+ B. `( g4 p
- (command "_UCS" "_E" (cdr (assoc -1 textent)))! [: n% o" A( u" C9 c" f
- (setvar "ORTHOMODE" 1)
" \: H" m5 f- T, g" z1 I6 D8 ^ - (setq NewPt
! Y" _( _$ p$ {+ J p - (if Start
. P% _2 A( ]( N5 o! D' t - (getpoint (trans Start 0 1) " ending point: ") nil ) ), U( c$ K. V4 C) \
- (if NewPt (setq NewPt (trans NewPt 1 0)))$ D- D5 \0 C$ @" d% E( h( q8 `
- (setvar "ORTHOMODE" 0)8 D/ f% ~+ H# N) ~& Z! d8 m$ ]
- (command "_UCS" "_W") ) ) )
% ~- S: Z' ~2 {; o; ^+ `# H - ((not (null TMP)) ;;new ending point selected1 j1 i/ M' p* p( N# h2 ?% T
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )9 S4 T' H2 w/ M( a+ _9 g
- (t (setq Start nil NewPt nil) ) )" w7 u P& {2 m7 h
- (if (and Start NewPt) (progn( V M9 V t0 j0 @
- (setq Val (Assoc 41 Textent) ;;current width factor6 ^. ^4 z4 |+ a( n, t( I
- Val (if Val (cdr Val) 1.0) LTC_% 9 Y' s! t& w- ?% C+ n
- (* (/ (Distance Start NewPt) NewEnd ) Val )
+ S1 o" ?# Y4 Z0 D1 D: J( D; } - textent (Subst (cons 41 LTC_%)! V S$ V' g i- g* X! C0 `
- (assoc 41 textent) textent)# R' x# G' ?, ]" j1 \' S7 i0 E, G
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
. |4 ]2 ]' W% w6 M - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )( U, [2 D6 n d; ^3 F& ?& Q/ r4 ?% W8 ?
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
) v' P+ w8 x* D, H
f4 P, }# L7 Z, b$ G3 \( P$ I, _- ;=====================================================================4 V/ V% N H5 @# t/ }* m
- ;=========================COPY + ROTATE ==============================7 j1 z, R/ K6 u I6 a! Q3 Q8 {
- ;=====================================================================+ ^6 t. @: ` E/ E! y1 `3 e% B e
- : y Y* W$ ]9 m. L9 R" O( v
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)' _5 O0 l7 q* S* T; l* c' u& u
- (setq olderr *error*
7 Z1 g4 I& A: R. W - *error* croerr)
4 @' g, v8 A, {2 y' O& T - (setq cm (getvar "cmdecho"))
% X* n8 Y9 t9 N* b - (setvar "cmdecho" 0)
7 i: V4 Z L/ ^6 w0 { - (setq loop t)
9 V+ t8 z# S4 a0 A( M - (while (not (setq ss1 (ssget))))/ n( I7 Q6 G7 b
- (initget 1 "Multiple"). E+ I) E+ h/ x. K5 c
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))4 S" o% {2 E& J) _4 Q' W6 S
- (if (= bp "Multiple")
) m% M4 p# u5 i7 J/ R) ] - (progn. m( h/ x. Y7 W: M3 Z- D2 ^: l+ |0 a
- (setq bp (getpoint "\nBase point: "))( m2 h; h( H: X3 ^+ P% f, {
- (setq mult t)
+ t9 y- e5 U9 |! i$ g$ o - ), ^* F% r/ w1 T0 \% T; I; m8 a) x
- ). h/ u9 C/ q" S) Q6 |- j
- (while loop
_6 |6 z" E, n6 \# W. T - (setq loop mult)/ J! U, k2 c$ M* D P- R
- (setq lent (lastent))8 W6 e9 A4 Y, h7 v
- (command ".copy" ss1 "" bp bp)
- y8 O f& x+ K: {* w4 e - (setq ss2 (lss lent))
6 e, E+ `" s6 h2 A' l) }/ ~' C - (setq lp1 (getvar "lastpoint"))) M5 N# O9 K, i8 o2 X0 C. a
- (prompt "\nSecond point of displacement: ")3 h, N# V2 J: ]9 x- a2 b6 {% J
- (command ".move" ss2 "" bp pause)/ h9 t- H; @: f, P
- (setq lp2 (getvar "lastpoint"))( g9 }! c9 m E9 ^2 [! ` n2 u
- (redss ss1)$ o) x2 Y8 T8 a! V
- (if (and (not mult)
~( ?3 s/ O7 A# b( g! k9 ` - (= (distance lp1 lp2) 0)* W/ z. H6 A3 C9 d
- )
& p; m: J* h8 h2 { - (setq lp2 (getpoint "\nRotation Point: "))
9 n' c3 j# E9 ~- ?+ D& C% q - )
6 |$ j" @- m3 U: k) b+ U! { - (if mult! G# j- t8 u; J f4 w: Z, s
- (prompt "\nRotation angle ")
) k+ z- J# Z! C: U$ ^9 t - (prompt "\nReference/<Rotation angle>: ")
# F, p. y |5 X) d - )$ u0 O5 n9 c( R& {1 }! ^" Z
- (command ".rotate" ss2 "" lp2 pause)
( ]3 x% ~0 i! I! A - )# N( t" V, D2 ]" B1 v3 X$ p* m
- (setvar "CMDECHO" cm)
; \' I6 `2 e% w1 b - (setq *error* olderr)# q- B( ?. _$ [
- (princ)
' U7 I; c* ~2 ~2 k2 a1 T# X O - )% j! O# `$ y M( x9 }0 X; L
- (princ)
2 i5 l: j2 L. Q# m; S, \9 R - (defun croerr (s)
; s1 w7 i0 R" Y/ r; m - (if (/= s "Function cancelled") / U% {" v9 U' {7 a# X# I) P
- (princ (strcat "\nError: " s)): f+ i( n2 T; x5 i& p
- )
' G& O; |; I# ]$ n! H- x - (setq S nil) D) [& q+ R) T3 L+ D: c1 ^- K
- (setvar "CMDECHO" cm). Q5 ?0 T. ?) d3 }3 l0 Y% u
- (setq *error* olderr)* p2 H0 ?3 G& ?$ k, `" P2 n1 _
- (princ)( H9 H) j) B# m# }6 x
- )7 x+ r* B; o, d9 Z2 H3 W
- (defun lastent (/ a b)3 w& a! b0 J' E7 x+ @, B
- (if (setq a (entlast))& N/ X3 S0 Z8 p& [( N" u, _/ o' u6 u
- (while (setq b (entnext a))+ ~+ z% s/ v5 X. q: u% f% J
- (setq a b)% M5 p/ K9 K3 e k( T7 B( h
- )
2 ]# q7 E: ?4 F6 ~; F d% [/ U - )
" e! X4 j4 d. I+ t - a
. h; t# s/ x9 _, b - )1 @# Y% ~6 T6 O3 ^6 l( s
- (defun redss (ss / en i)5 S% S7 t1 h9 [7 W; h/ U0 @; _
- (setq i 0)% h4 T( h' |$ T
- (while (setq en (ssname ss i))
, w$ u+ }( V4 _% i# H" | - (redraw en 1)) U3 T4 U# F+ M+ u* b) t
- (setq i (1+ i))
' x7 E4 M8 M& K j% {, s- Z# K - )
1 R- }+ A2 N# {5 o - )2 F& t; k* a: t7 ]6 D
- (defun lss (en / sels ed)' q# f. g4 U5 }0 K: W' i' L& O
- (setq sels (ssadd))/ t5 f6 \& M* r) C$ G
- (while (/= en nil) F1 T% g/ Q% [% F Q+ c
- (if (setq en (entnext en)) (setq ed (entget en)))
/ B7 y% D) k+ N; Y k$ Y/ d4 J - (if (/= en nil) (setq sels (ssadd en sels))), y. l. k# J; ?# _
- (if (or (= (cdr (assoc 0 ed)) "Polyline")
6 m, M+ q* H1 Z! o( s8 v - (= (cdr (assoc 0 ed)) "Insert"); o7 e* N; P& X; R
- )
# L; Y& Q. [& Q" B5 B. D - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend")) K( a2 q$ N( R# |: t+ |
- )5 t7 I! W: y; v" c
- )
' R& x5 m& c1 e: l% { - sels1 h7 D! [: X* r( i
- )
: c' }* c# m" A
/ }& v" Q% s1 F( }# L$ U- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================& p, I9 s7 d/ ?- T; K, h; C v
- + x9 b0 {* w$ w
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
# O$ d4 n2 R. q$ a - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))( C' |. ^/ G7 L7 V l; @
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" "")) L( O% N& |: j( R$ y8 u9 t+ T
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
% W3 d4 p% Z7 G: I - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
3 W3 \/ P3 {' ?0 e! y - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
) }8 g5 U( {, ?3 A: }! K* _+ ] - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))5 ]9 T1 a4 A5 T9 l
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" "")); s: q( w( r+ D" _7 q
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))* N2 G N; q, t3 Z0 @
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
* i9 n/ ?5 _9 o0 b/ s7 W - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))% a1 z$ H) q& j
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
( v% x! ^2 ]1 I8 | - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
/ E# i) r; S' ?" B9 d u" O - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
4 P/ F8 n @, S1 z$ G& M - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))! u1 W3 ]' O* p; u/ V4 Q
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))6 A* T, C0 Y% s* h
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))( Q8 |. {4 P6 g! P
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
3 H) `. u/ t0 T3 G3 {* m, n - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" "")) V0 C3 E8 `0 s1 [* O* ~
+ p: f& O5 [4 h7 O4 C# E- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============* i# h$ c& o& H
- 0 d% W0 Q' Q7 `" r$ R3 n
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
$ A: M; o0 n7 Q - 6 }. M8 Q% |1 C) F3 @
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")1 G7 q5 |* n. P
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
: n7 y' P/ B( Y) R; j
& ]$ Q( Y# U- s& ?9 B- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===1 W; v7 B4 z7 N* N4 V
- 4 F+ w& u2 g8 B2 E0 W
- ;(DEFUN C:netxuatanh ()
5 U9 _0 J5 p3 n5 j - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
# ~4 @/ N& u1 f, P0 N$ w& D/ V+ [ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
/ P5 T9 K0 R$ q9 ]' w - "M" "MANH" "C" "9" "" "Lw" "0.5" ""; k/ q" J2 T7 u4 d6 x) B
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""& p" o) i0 t: X* C( M. `- q7 D
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""
6 O& V7 ]. |+ I" Z - "M" "THAY" "C" "7" "" "Lw" "0.7" ""( Y; {& w n5 Z3 M7 r
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" "") H" V" d# N; R. n$ ?+ N
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
! K; [2 u) C) s - "M" "COT" "C" "2" "" "Lw" "2" """ X/ r+ F& X4 J9 M& M' w) X. s
- "M" "Defpoints" "C" "7" ""1 H1 i& _- E. e
- "M" "0" "C" "3" "" "Lw" "0.5" ""
7 c8 Z, ~" }0 l - ; "M" "1" "C" "1" "" "Lw" "0.5" ""( s2 o! p# h m9 `, g8 k$ j; U
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""5 q6 e( S+ _* _+ S6 T d5 C& _
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""$ w3 [7 i& V6 U4 m) K5 X
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""
% G y& Y) h4 H. {- j - ; "M" "6" "C" "6" "" "Lw" "0.35" ""
1 g! M& r" Q. ~. _ - ; "M" "7" "C" "7" "" "Lw" "0.4" ""( Z5 V9 X# @1 i4 n8 _& Q7 }9 j0 E4 D
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
& ?$ D( O! R5 W6 b1 Q - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
$ P& g/ r8 _" Q9 k, b- ]9 k - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""7 N8 O4 Y1 F* f- D' [
- "M" "KE" "C" "8" "" "Lw" "0.3" ""
1 W7 O: W' a: x# w" ~) t# [ - "M" "KT" "C" "9" "" "Lw" "0.35" ""9 g3 d$ F1 O# S x& ~
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
$ [& r* I0 B0 r8 ~' I4 d - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""( l( e* _7 }' G9 y: I$ I
- "M" "TBD" "C" "2" "" "Lw" "0.8" "", F3 h2 L% e) f
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""$ M4 @: }9 p$ p
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
/ U) r+ J" R2 ^ - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
( P9 k* l8 ?6 I3 j - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""* o; z: Z* |% M% n" h, K0 v6 Q) H+ l5 K$ P
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
' |! }* U" M2 ]; D - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
# ~" P6 [6 s G% o, n- Z8 x
; l' `( g4 p- P. j% i: d- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
# D8 A: [" E% V* K: u% n/ g4 L - ( ^9 E( w W* m* x- d* N" O
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
5 _3 s V. W# }' e" W- N5 l$ ^' A - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "". s0 ^3 I$ g9 x5 v! U$ X: H& j, c; q6 U
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
n; {' U2 D, |# C. W4 v - ; "M" "250" "C" "250" "" "Lw" "0.35" "" p! _# l a9 ?, }' X) c2 Q* W9 N
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
% F( R% X. T6 p8 u$ r - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
& J9 }, ^9 A( g% ]7 ~ - 9 \6 ]5 a9 a- M* Z2 x% f
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
4 ^# j; Q& o# c( m6 d! y* i - ;===================================30|04|2024==============================$ o. `0 ?! X# R, h, U2 t
5 G: S" E0 e9 k6 z7 V- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )7 x4 y, t9 N7 `; t
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )7 f: b$ G! Q' n8 g% G" y5 h7 L$ A
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" ). y$ P& o" h% y2 G8 i
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" ); Z! K5 u# O5 F2 G2 D
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )( ?% B x. _& p) t& G1 ?" e
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
% C6 V* f0 h, J - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
) T1 g N1 z& c9 @* x3 @) y - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
( D: _3 {+ a: L# f7 B# r - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )' |1 b Y0 X3 \# p! J% w
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
4 a; Z: |+ n6 T+ }6 Q
3 P( S( v4 S" \# q- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
5 ?, H, p( ?8 S - ;===================================17|10|2024===================================) `' R- ], } R' }
- " k1 ^* k T( U" d
- (Command "DIMTXSTY" "ROMANT-DIM" )$ O7 C% \0 E* P* p3 h7 Y+ A
- (Command "DIMBLK" "" "Closed" )
/ C$ p6 m! N2 g0 k/ x: y* _9 n2 s
2 Q% ~ G# ]: o- c, g Q. t, }6 y- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
2 L0 p9 u% p' A2 Z. o3 B7 t9 l9 ` - ;===================================17|10|2024===================================
. f1 f1 W/ U9 b0 Y+ @, L8 x3 V - * \! N. J; V4 I4 z) e( r, }' n
- ;(Command "-units" "2" "8" "1" "8" "" "N")# i! Y" F' ^2 o: O. U
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
. U- m: s" r$ o/ s. v
: @* {+ }2 y% C8 h+ h9 T- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
2 g6 k# V* V4 n X1 K4 A* h - ;===================================17|10|2024===================================7 `" F3 ]1 G& Z5 g
- 7 j# V# J, |* C
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====. K* ?' H. V: j1 Y8 K1 Y
- , R5 `2 a6 h' V% \# X4 `' r) z
- ;======================== DAT NET IN & TI LE BAN VE =============================
- t( U/ v, |3 n, u; Q
) r8 q! I) P+ [- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
, d4 s) x. f. E9 e+ B - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================) E" b$ d* H, \ X
- ;=============================11|07|2025==============================2 P+ r4 `5 a% l9 }( v& V* ? z
- ;Ti Le Ban Ve - 1 : 100
; x: \5 w, ?9 S/ g# [ - (Defun c:kta4 ()$ c" E, V+ ~5 m! o; w) J$ k* i
- (setq mv_sc 100);Ti le ban ve. m3 { Z, M( x+ P- R" R
- (setq x4 297)
; L) f/ o1 G8 ~4 u - (setq y4 210)5 w2 w. U7 u) R8 J! p
- (setq x4 (* mv_sc x4)
: a9 M' ~8 ~' a - y4 (* mv_sc y4) )( }4 Q" c3 w+ c" L: e
- (command
9 o, O K0 U, x - "LIMITS" "0,0" (list x4 y4)
% \' ^& z. n! | \" W! d3 M3 O% c, k - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"$ J- Q- V1 X8 C6 D" R& n7 T
- ;Khung CHU NHAT Chinh
6 ~1 n) n+ N! [/ H - "RECTANG" "500,500" "@28700,20000"
! f. N5 ~/ g* S) E - "RECTANG" "700,700" "@28300,19600"+ E; h! q3 _: F" r
- ;Khung Ten Chung' H$ h; I1 Y9 W4 @+ ]
- "RECTANG" "700,700" "@8000,1250"
) @) Z n. M' K. B! c( Y! T - "RECTANG" "700,700" "@17300,2500"
O2 ~1 U | ]- k3 @9 a - ;Ten Ban Ve
9 J8 R# `% H! ^5 v7 o/ H - "RECTANG" "18000,700" "@11000,1250"+ c6 r: g- U" q2 i1 k: J
- "RECTANG" "18000,700" "@11000,2500"4 d- k0 t9 K+ P' Z0 Y/ B; E
- ;Khung Ti Le + Ngay Thang Nam
3 z9 D l& P7 z - "RECTANG" "22500,700" "@2000,2500"
6 g$ H* u& Y0 @ - ;Khung CHU TRI* t }/ E0 f* e! C) x
- "RECTANG" "8700,700" "@3800,2500". [2 s. |% g! e7 w
- "ZOOM" "_a" ))
9 v4 I& |1 y$ f N7 z - ;=====================================================================
! ^6 [# f2 T; m+ R! j2 R - ;Ti Le Ban Ve - 1 : 100& K/ h3 t( \1 ~$ X! ~' C
- (Defun c:kt4a ()
' w: z! c9 G# e0 m& z7 r; |" { - (setq mv_sc 100);Ti le ban ve: b k8 k" S8 {4 t1 R& W- I' R
- (setq x4 297)
4 S8 g6 {# G6 w9 w5 I, }7 } - (setq y4 210)
/ d/ L1 ?; u6 f0 Q0 M - (setq x4 (* mv_sc x4) 8 s" [% x( w* n; g. w+ F
- y4 (* mv_sc y4) )! R2 z4 s: y* X/ R, {
- (command ( I/ ]) n$ h1 M# ~1 G$ x
- "LIMITS" "0,0" (list x4 y4)8 e5 Q7 P0 t( u2 S
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
9 C7 _& T9 E! H3 B) C$ F - ;Khung CHU NHAT Chinh
. T6 n2 L4 ]* J3 k - "RECTANG" "2000,500" "@27200,20000"
8 r7 `# g" l2 V _! K6 } - "RECTANG" "2200,700" "@26800,19600"
3 B( b' L( S7 i# y8 n0 h - ;Khung Ten Chung
/ b$ i W: Y7 ~, _+ i - "RECTANG" "2200,700" "@6500,1250", B$ g& \2 d* {! }# s
- "RECTANG" "2200,700" "@15800,2500". N& L2 y" @, Q9 N0 s
- ;Ten Ban Ve
- b$ A$ n3 ?3 C+ u) q \ - "RECTANG" "18000,700" "@11000,1250"
/ }+ r. Y0 p6 E% P4 T6 U+ Y8 L5 f# `! | - "RECTANG" "18000,700" "@11000,2500"" S2 `) x7 t2 D3 E4 R W
- ;Khung Ti Le + Ngay Thang Nam
3 j' k7 S6 v9 w( P- h5 ~1 } - "RECTANG" "22500,700" "@2000,2500"* {7 V2 m3 L9 x/ @. k: o# T
- ;Khung CHU TRI {( n/ q0 R$ r. u8 X" `
- "RECTANG" "8700,700" "@3800,2500"
$ |) g- E+ G: {* s- w( d - "ZOOM" "_a" ))
6 D1 b0 d- W) X: s* J7 _5 K+ A3 Z - 6 C- b- F- V O d* l& A2 t. a r
- ;;; ============================GHI CHU Khung Ten========================
1 c) e" o" T$ b6 C* H7 y3 { - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========. i5 a- h: D2 w
- ;;; =======================Thuong Dung Font Romant.vnh===================) s, O8 C9 Q1 W$ a2 w5 D( |
- 8 ]1 f! M' j/ W+ j9 c! H3 E
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
. x4 U. t- p- ^& r7 i7 _: _% w - (setq oer *error* *error* err2)# |& o4 E6 D. D' x
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")$ r, f6 d8 r; }5 \1 @
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))) F* b$ z6 N A3 W! v1 r5 z
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
/ @- l$ B& G9 O, Z/ ^% j - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang")); B9 ?% v% A$ ~+ W
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))8 w, H+ B* L9 U0 e, A
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))" z2 `9 ~9 L+ s4 A" M+ w
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ")). p3 M9 S0 a4 T
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))* X; ? g! w/ J& Z, u
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :")); W3 L; J! p, W/ p2 I/ h4 L
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
! O" c3 X* `8 T8 S, Z, S - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :")). I# d+ T# y- u
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))% L. k! m7 t6 z; v! A5 s
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))0 g7 {2 q( ^9 L2 c0 n5 O, Q
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
. q4 r2 Q+ U a9 e* D9 ? - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
$ I3 c, Q5 a) Q3 }& Q( z - (setq pta (getpoint, H! e6 ]1 f/ w9 G4 y6 v
- "\nPick first corner. : "))
4 g4 x9 g) N2 {1 h( R - (setq ptb (getcorner pta% W! O' u ^2 P
- "\nPick second corner. : "))5 |4 B# C" J4 d4 a$ h8 Y$ ]
- (setq ptc (list (car ptb)(cadr pta)))
5 m" a* ^, v2 [0 K+ j* q8 z2 w1 X - (setq ptd (list (car pta)(cadr ptb)))3 a+ o( h3 x3 ?# l& y0 V$ G# o& _
- (setq ang (angle pta ptb))/ T0 C% u, ^8 N# k( ]0 V, S
- (setq d1 (/(distance pta ptb) 2)): k7 Y- k2 R- w" G! _% d
- (setq cp (polar pta (- ang (dtr 0)) d1))
8 ], [4 r( x. @. l6 n - (setq X (distance pta ptc))$ U( h. X; K Y$ _# W
- (setq Y (distance pta ptd))7 O6 r! M( d9 S2 G" ^! j- M& T
- (setq X1 (rtos x 2 1))& m/ g8 h+ I; q1 m5 G3 }7 D0 I) L
- (setq Y1 (rtos y 2 1))- s! s: |& z, s* n8 m$ E
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))% y. \9 v! ]" w n) V
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
3 J1 Z" l c4 c0 c: {% a7 q6 v1 S' u - (defun dtr (angg)
2 ^" A) c5 H2 Q, R# G - (* pi (/ angg 180.0)))% Y' O9 K9 Y5 ^# C7 ^6 ?
- ) E9 W; @0 `/ i
- ;=====================================================================; E1 r; O. j! a8 M& y9 M
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
" a5 E* [% n3 c! F - ;=====================================================================
7 q& i N. {! h4 Q - $ Z q) u, q1 m; W3 P+ z" e! `
- (Defun c:a6 ()
7 q! C1 Z, P2 L4 p - (setq mv_sc 100);Ti le ban ve
3 C# y" w, w& {: q0 U% h9 N. ^ - (setq x4 74.25); _, F+ u; q" H( O4 o
- (setq y4 52.5)
' u: A# a U5 _7 R4 B9 f) | - (setq x4 (* mv_sc x4)
. l- m& w. C, A* L" c4 }' q4 ?) j - y4 (* mv_sc y4) )
2 Q8 c7 A4 r7 P" M: T) T ^% O- @6 [ - (command M( L& j( }- ?+ Z1 h
- "LIMITS" "0,0" (list x4 y4)+ x H, K* m+ S. e* Z. {& x1 M5 A( `
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"# x9 s7 a4 A( {0 P* n$ s: o! y }
- "RECTANG" "125,125" "@7175,5000"
, H n5 w$ j+ y7 {) p+ _( { - "RECTANG" "175,175" "@7075,4900"
0 e* g% z( V6 O# D& G5 Z% A& j - "ZOOM" "_a" ))
" z* M7 T S) I" G: d2 [ - ;=====================================================================& Z, L- Z' @+ V7 D8 G
- (Defun c:a5 (). m! T$ g5 d6 ]
- (setq mv_sc 100);Ti le ban ve
) i+ D2 O) [) l, V+ V- |3 y% j - (setq x4 147.5)
$ I+ _- R7 V. K. q X - (setq y4 104)
6 g3 X# m/ ]9 T* J - (setq x4 (* mv_sc x4) ! @) U9 g; o8 i6 I! N3 k' }
- y4 (* mv_sc y4) )
u* B% v! l6 C8 \* f+ G - (command " F& k% E4 u% ^- y; r: U
- "LIMITS" "0,0" (list x4 y4)$ `3 ?+ F w8 i: J- S. e
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
+ o- D5 B+ w6 H F - "RECTANG" "250,250" "@14350,10000"
+ E5 Z I' k6 u; |2 ` - "RECTANG" "350,350" "@14150,9800"( g0 B4 C$ N5 j8 o p* i
- "ZOOM" "_a" ))
0 O0 M: m. N, W - ;=====================================================================
6 j9 m1 O, h* Q4 Z I - (Defun c:a4 ()
. A4 X# c8 A! G. P, y0 T - (setq mv_sc 100);Ti le ban ve `9 C8 X5 _: W7 c5 y( E0 U
- (setq x4 297)) R. K9 Y4 u4 V6 |% f
- (setq y4 210)
8 \) d. z! w5 c( b5 i - (setq x4 (* mv_sc x4)
2 E' ~7 r# S- C8 i - y4 (* mv_sc y4) )4 V7 F5 z/ `6 A' s, v l
- (command
7 r* k# a! W7 _$ d - "LIMITS" "0,0" (list x4 y4)# l0 G+ s) S" n- [3 t+ I
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"! ^4 ]* k# q5 U5 Q Q( D: Z. v
- "RECTANG" "500,500" "@28700,20000"0 v4 O1 x) D: P$ p; S4 V' j
- "RECTANG" "700,700" "@28300,19600"
7 v: f3 r8 L: ] - "ZOOM" "_a" ))
; ^/ i/ Z' N+ |" G' D2 H- R8 U - ;=====================================================================$ r, ~/ ~) K7 E) r4 `2 ?
- (Defun c:a3 ()$ x5 d$ X2 z$ Z/ s( d+ v
- (setq mv_sc 100)
0 Z* _6 f* F' O6 `" H( R6 v0 p - (setq x3 420)
: c$ G2 N6 D6 N* o: b - (setq y3 297)$ D: i5 D% J2 D! F% z5 u3 U+ O
- (setq x3 (* mv_sc x3)
5 z' H: p$ V- z, ? - y3 (* mv_sc y3) )
2 e0 }' F1 y& S7 L, c- y- q7 a - (command
0 Y. e- a6 g& K% a( L* t - "LIMITS" "0,0" (list x3 y3)
" C8 O, H8 p0 s# f - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
' f, S ~/ ]2 } w+ Q2 x3 t( y - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
( ?0 e" E$ i }+ l - "RECTANG" "990,990" "@40024.28571429,27720"
7 w+ Q/ @5 @( [( v' g - "ZOOM" "_a" ))$ L( e1 U) q5 D# R4 N& b
- ;=====================================================================
# B. o: g4 ]* |# ?0 E: K - (Defun c:a2 ()
8 r3 G: b `) w9 r - (setq mv_sc 100)
# A6 ?- ^' A" Q P1 r5 g - (setq x2 594)
) z0 S2 l) n: S! d) K( G - (setq y2 420)
6 _: o$ l* a: y/ f* V3 W" j - (setq x2 (* mv_sc x2)
5 U7 K- s4 m' [5 C e - y2 (* mv_sc y2) )
; E9 V" r" N7 y0 Y - (command
- c$ R6 e/ N+ h! k# Y7 i* U2 F - "LIMITS" "0,0" (list x2 y2)
- K& N3 W$ A6 r7 `' S; Z e - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"4 _ e' K* \ Q( Q: [: s
- "RECTANG" "1000,1000" "@57400,40000"1 @; i4 f- P" ^; e
- "RECTANG" "1400,1400" "@56600,39200"3 R) ?6 n- f2 v& d) G: }
- "ZOOM" "_a" ))3 f( R/ i( l! X8 \1 }
- ;=====================================================================" I8 x- z+ v" s$ c7 O% Q
- (Defun c:a1 ()
" z+ I$ @+ \& L$ A: ] w3 Q - (setq mv_sc 100)
6 Q' h9 n9 B8 W/ p, k- q# F - (setq x1 840)
: ?' S4 V0 y2 h* @& s% N - (setq y1 594)
5 {7 n( `( A, U2 J4 e" d - (setq x1 (* mv_sc x1)
0 j, V& p* ~. K3 a0 L) l4 f - y1 (* mv_sc y1) )' A$ X' u6 P( q* Z+ R
- (command
5 i F% b8 m' a& R% S# D) I0 {! \0 ~ - "LIMITS" "0,0" (list x1 y1)* z& z1 A7 B p' b
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"# b# p$ o8 j+ I
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
: @* Q) H- l- t2 o) B0 ? - "RECTANG" "1980,1980" "@80048.57142857,55440"$ ^4 P0 ^ ]' W+ ?" Z
- "ZOOM" "_a" ))
* n; u$ Z u$ n8 } n% h - ;=====================================================================( s+ {( w& z. J* [( A& D& J
- (Defun c:a0 () u" l0 L0 H( W% C V
- (setq mv_sc 100)
$ G2 D" @- B# D$ ^ - (setq x0 1188)
% Q; B0 e3 U: ^ G - (setq y0 840)9 e9 r$ B/ J. Y) L& l% ?' I
- (setq x0 (* mv_sc x0) 7 Z4 c5 H1 U. s I
- y0 (* mv_sc y0) )8 a% u8 s* ~ A1 [2 \" b: `+ i
- (command
. H! T6 K" I* h6 x - "LIMITS" "0,0" (list x0 y0)
" `" Y9 k; P) P - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
/ R8 ]$ }. H8 s# l* f9 h! I& r - "RECTANG" "2000,2000" "@114800,80000"
$ [4 g4 ]% | r- i - "RECTANG" "2800,2800" "@113200,78400"
+ f2 |8 |% [9 ^+ \* u2 Z - "ZOOM" "_a" ))
& T" c7 b- T5 z% g - ' e6 Y6 ~; l. {" W& C5 E1 _- M
- ;=====================================================================' M6 C9 B7 e$ q9 W& W [1 Q
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================( z6 B, w, B8 C$ l6 A9 X
- ;=====================================================================
6 j/ d; ?6 f* ^3 a4 v% C
, X2 `2 f7 p, E* g: ^- (Defun c:6a ()( ^# ]( T- Y' Y |1 N
- (setq mv_sc 100);Ti le ban ve$ G1 A6 M w0 G$ I: G( I0 K
- (setq x4 74.25)& E. K: G% Y# r
- (setq y4 52.5)8 J$ t3 K% \5 y
- (setq x4 (* mv_sc x4) 2 ~1 z7 R5 B/ M4 P& ?
- y4 (* mv_sc y4) )
2 G8 f! c6 |; U - (command / F5 E& j; w _$ ~
- "LIMITS" "0,0" (list x4 y4)! W3 q2 u$ {* F% j
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
9 j/ S O5 t. J6 B3 ^( _9 G# b - "RECTANG" "505,125" "@6800,5000"1 u; a, a% h, ~0 b% v2 ^
- "RECTANG" "555,175" "@6700,4900"
# d( q: p0 V# s! A2 y - "ZOOM" "_a" ))5 [$ M0 ?! T: |# \ L
- ;=====================================================================
5 ~$ v$ Q* Y" @( n- }9 l& T - (Defun c:5a ()$ D3 @# k& m( [5 L' |" J
- (setq mv_sc 100);Ti le ban ve
# S1 c: j, Z. X Z& g - (setq x4 148.5)
" ?# S& |" d5 E! U. |. @! {+ L - (setq y4 105)) e8 H9 E2 t9 V: D. \
- (setq x4 (* mv_sc x4) d2 A: l9 U8 V1 O
- y4 (* mv_sc y4) )
$ K3 U5 c' w5 x3 L6 y/ K - (command / y$ y/ j' k% R7 L, ^ J: R
- "LIMITS" "0,0" (list x4 y4)
/ @$ n4 r; U8 i' O' o+ e0 d - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"# E* \- ^5 U G5 X9 _$ t5 K
- "RECTANG" "1000,250" "@13600,10000"
- b3 H2 g! j& q4 s - "RECTANG" "1100,350" "@13400,9800"
4 c( V) Z, e9 _ {5 O' ~$ [+ a - "ZOOM" "_a" ))9 Y' i4 |9 i& F8 x+ Z& A+ N
- ;=====================================================================
+ y$ E2 R8 S8 i - (Defun c:4a ()5 ^' u3 A, v9 x6 j
- (setq mv_sc 100);Ti le ban ve7 N' H% Z% O4 A5 z% T( U- B
- (setq x4 297)
6 _( R8 R( t6 {# Z( d - (setq y4 210)
6 E# I0 [* f; e: r+ ]$ ] - (setq x4 (* mv_sc x4) , V+ L. [8 g8 i( F
- y4 (* mv_sc y4) )
( w) t8 p* l& G: Q9 Q2 j: X& j - (command " [; s; m% M; L" y# |/ k3 C. |5 ~+ ^
- "LIMITS" "0,0" (list x4 y4)4 N w& [) @7 n" r* E4 J$ G
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
7 \$ y5 V7 l9 H/ M - "RECTANG" "2000,500" "@27200,20000"
: O' i+ x$ a0 S/ M/ ~0 B" V8 X - "RECTANG" "2200,700" "@26800,19600"" e/ M1 h0 E c- J# [3 d
- "ZOOM" "_a" )): |3 Y/ n* m1 x: A/ p/ W
- ;=====================================================================
7 X( D1 p* M) ^. L - (Defun c:3a ()
# @! t2 J( S- _5 n - (setq mv_sc 100)
5 z( b/ c! S/ F/ E - (setq x3 420.0428571429)
7 o& `& T) k+ s# i - (setq y3 297)6 D# b8 G' G6 I
- (setq x3 (* mv_sc x3) # J* ]1 a8 i* S$ i3 {" a2 p0 q
- y3 (* mv_sc y3) )
' [) m- P& ?; k6 Z6 f, N. t3 I - (command
4 t- f/ x3 E$ ]% d - "LIMITS" "0,0" (list x3 y3)
5 [. ^& A% h; V* B: z - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"% Y8 h$ r9 z2 c; H- g4 S4 ]! y
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
. L, y1 Q. Z/ X - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
) G; m( g9 g. y* Z9 { - "ZOOM" "_a" ))
0 E+ _4 Q/ @' W9 x1 |. ~ V - ;=====================================================================9 b3 C( c. a) E: K& a7 ~
- (Defun c:2a ()! x( T2 n5 A1 \" m
- (setq mv_sc 100); h. I6 r7 z& l* t/ O" `
- (setq x2 594)9 Y; i/ Z2 ^3 p1 P5 F" j3 m
- (setq y2 420)
5 |; G7 {( S/ l. t1 l& b% p - (setq x2 (* mv_sc x2)
* W5 `: j4 g5 H - y2 (* mv_sc y2) )1 t: k. r! G) ~* a' v/ ~
- (command
3 y# G1 ?6 G) C+ l - "LIMITS" "0,0" (list x2 y2)
! d9 c9 A% b+ j0 n9 C- ? - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
& v0 d# N9 O8 W- E9 N - "RECTANG" "4000,1000" "@54400,40000"
; ]6 Z5 U7 _& \& N/ X4 B p - "RECTANG" "4400,1400" "@53600,39200"
f& Q6 T" h! c6 M z - "ZOOM" "_a" ))7 K% w- ]+ e" K% W
- ;=====================================================================
7 t6 L) r$ `0 T* g! ]; s" S. t9 M - (Defun c:1a ()$ \, J. m* O: ~
- (setq mv_sc 100)
+ y) @3 p( n. W" N - (setq x1 840.0857142857)& ?" g6 ~1 Q+ X
- (setq y1 594)
. q/ P8 ]+ H u N8 Q - (setq x1 (* mv_sc x1)
: {# U6 G5 [3 w" f2 d' O. g - y1 (* mv_sc y1) )
3 r7 [* c4 O0 ?& O - (command
& A% H5 [7 W) ^0 f$ e- t5 ] - "LIMITS" "0,0" (list x1 y1)6 d( A6 g& l% g; a4 P
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"9 R# ?7 B. H6 t
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
& l6 _: o# r; o* V: p1 @6 [5 [/ ` - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"" c- E8 x2 y& G- Z$ K1 `4 o& y
- "ZOOM" "_a" )): ?* [ R8 |7 A9 I
- ;=====================================================================
5 {" y9 J" j# ] - (Defun c:0a ()6 c* u& a+ i9 [" m6 o
- (setq mv_sc 100)! i# D+ V v5 L# @
- (setq x0 1188)
0 n+ }" o- I$ Y0 K4 Y - (setq y0 840)
8 w! G5 ^3 G' D# {) r - (setq x0 (* mv_sc x0) # N4 q% [) J$ A# l" t
- y0 (* mv_sc y0) )
) f; a& Y3 D. f3 R: g - (command % ^* \/ L- E% I: R% q; K
- "LIMITS" "0,0" (list x0 y0)
% H9 z" h4 w& h) r E/ ` b - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
% M: ?$ j4 ?6 `7 ~& h8 q - "RECTANG" "8000,2000" "@108800,80000"
9 s6 j2 Z* f, e! Z - "RECTANG" "8800,2800" "@107200,78400"* A7 e+ G1 b/ E- n( I7 {& ]
- "ZOOM" "_a" ))
5 i- B o- ^$ h. q - ) }! n& C: X, C3 M, C
- ;=====================================================================
2 R# r& g0 N" c7 l - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================4 g( e4 H! ^7 ~0 ?
- ;=====================================================================
8 \0 a: {* r i1 | - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
3 `) I i$ j0 ?9 l% N1 a2 z9 V7 P+ J - (command "undo" "be")
4 ?8 m; {, w! s0 w, B - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))4 _8 w7 j. C3 E+ M: O0 |+ m+ U& y
- (setvar "CMDECHO" 0)
1 t. T" N3 V/ \1 i- h7 n - (setq a (getpoint "\n chon diem chen :"))" T# v* k7 a+ h1 p# R
- (if (not TL) (setq TL 1.00))3 n# a' V, g' @5 B8 u( n* D! W/ X. T
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))& q) k8 e, s& H) [" G
- (if TL1 (setq TL TL1))
E8 Y2 a, G0 D7 L+ c9 ] - (setvar "osmode" 0)
, o! L( d, x. ^. c5 f+ Z9 a - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
) y- v/ d1 E* P. B F3 C" k - (initget "0 1 2 3 4")
0 [7 H. Y5 t% C - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:")). u c K) E% ^* i
- (if (= kho "0")& @% ~& ^( h2 e, @
- (progn' g: W, K6 \7 k3 E7 E
- (setq b (polar a 0 (* TL 1189)))
M: ]1 H3 n) b& h% a# ] - (setq c (polar b (/ pi 2) (* TL 841)))# ], j) z. j p, |
- (setq d (polar a (/ pi 2) (* TL 841)))" Q& w& N! b& o
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12))))): D4 e+ E6 ]3 m# W- m4 `% ?# t
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
8 G: a' a: y! c# l7 P6 e! N) O0 n - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
8 o2 G2 A! W+ B8 F: E - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))2 G# b3 S a- y; t7 z0 y0 g
- (command "Pline" e f g h "c")
( ~3 @( H+ k+ V9 Y* r - (command "change" "last" "" "properties" "layer" "0" "")" L+ K) H+ |# p
- (setvar "cecolor" "4")
5 S3 d7 n4 T. o+ ]* a/ t0 I2 D* f7 G1 j - (command "Pline" a b c d "c")
4 T# y$ J: ^ X! z n8 Q - (command "change" "last" "" "properties" "layer" "defpoints" "")))
7 s! t+ r* |! Q! y W$ w - (if (= kho "1")
( T8 f; G9 Q* t6 d& {) y6 U - (progn
. q9 u6 w$ x0 W9 K7 s6 @ - (setq b (polar a 0 (* TL 841)))
; _3 E( ?. y3 S0 d3 ?- f$ s - (setq c (polar b (/ pi 2) (* TL 594))): h: I- I( G/ a
- (setq d (polar a (/ pi 2) (* TL 594))), J7 o: w4 [ l0 u, B# b
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))/ n; L( R0 f# n
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))1 M2 V5 n1 \3 o5 f
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))% p [6 ]& T4 k) r
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
$ [. [ K5 p& ]) ] - (command "Pline" e f g h "c")
$ k* ?' Q. n [7 q4 G. k2 a9 f - (command "change" "last" "" "properties" "layer" "0" "")* k0 f) h9 H+ L3 C5 P) h
- (setvar "cecolor" "4")8 \! z8 T, z6 V
- (command "Pline" a b c d "c")- ], u7 R6 E, {9 v' Y" R+ z
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
1 t2 v; \$ _7 p5 {+ O4 M2 a - (if (= kho "2")/ E/ g( P. _3 U8 v( x
- (progn, l8 w: W1 e2 ]8 l( T7 ~' y: z/ X9 V7 f
- (setq b (polar a 0 (* TL 594)))* H6 ~( [( }: u* |% R6 s0 j
- (setq c (polar b (/ pi 2) (* TL 420)))' ~: p" h4 _. A, K5 f# P& ~+ \
- (setq d (polar a (/ pi 2) (* TL 420)))
5 J' O1 `$ H) ?, ?, D: b0 e2 Y - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
! `2 S" n! S; V, b' p% ^ - (setq f (polar e 0 (- (* TL 594) (* TL 20))))
, h; H8 C. ^8 Y - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
: g# d' G8 v/ o4 i8 j - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))# V" n3 j- W6 g+ R+ u
- (command "Pline" e f g h "c")
7 Z1 C5 W; C$ t2 b - (command "change" "last" "" "properties" "layer" "0" "")
: }" C( b4 K0 Z9 z4 O7 |/ O - (setvar "cecolor" "4")
8 R8 A- M; v: o - (command "Pline" a b c d "c")/ A0 L& w, C3 ], [6 b
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
[/ K* r$ N9 o3 ^8 s - (if (= kho "3")
( {+ z: K. M' l. K - (progn
6 s3 O, y; C! g8 h/ X* O4 W; A - (setq b (polar a 0 (* tl 420)))
- E( S) U, N/ S; Z+ o5 u$ A J - (setq c (polar b (/ pi 2) (* TL 297)))( c9 Y. v9 x6 q! g
- (setq d (polar a (/ pi 2) (* TL 297)))
1 B/ d! ~7 }/ _$ K5 F3 \* p - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
( v: ?: z+ N' c* m, p2 |5 D* C - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
, F: ^% Z h" ?9 k2 `" L - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
! ]0 E3 |# Y: Y1 s2 K - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
. T1 p5 O+ M& n, B- B, e - (command "Pline" e f g h "c")# B8 b7 g0 m) g( J* }1 |6 ^
- (command "change" "last" "" "properties" "layer" "0" "")
( s1 w% L) z2 ^" N6 @! [ - (setvar "cecolor" "4")& L' L, L( r8 L. _; `4 u* S
- (command "Pline" a b c d "c")
; `2 O& D" A3 @# L9 n Y - (command "change" "last" "" "properties" "layer" "defpoints" "")))' C$ g% |1 l2 Z3 A [9 O; i- j) b
- (if (= kho "4")
" ~+ C) z- `- n+ t5 h2 O0 [: Q7 H9 f - (progn
# h1 _5 P% |' r, R' h - (setq b (polar a 0 (* TL 297)))
. I% [& k( M$ z; V8 q. w - (setq c (polar b (/ pi 2) (* TL 210)))
2 a p, y5 y* I/ s - (setq d (polar a (/ pi 2) (* TL 210)))* i8 Z6 e" T+ c; M6 V
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
* k7 g; q- J1 |# t% F8 R) @ - (setq f (polar e 0 (- (* TL 297) (* TL 18))))
: ^* k( v1 @) |0 v0 v5 Z) R3 v - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))! r3 K ^5 S; z; N
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
6 @% \6 j! R. H7 k) Z0 h& Z+ b1 S/ R - (command "Pline" e f g h "c") 9 y; J7 @: H- Q5 J2 A5 ?
- (command "change" "last" "" "properties" "layer" "0" "")
# ?% j, o8 v& n/ z! ^; v+ w. V - (setvar "cecolor" "4")( a$ ?" J1 U4 q* D+ ]' L
- (command "Pline" a b c d "c")
. P& Z G2 E$ @8 k+ f - (command "change" "last" "" "properties" "layer" "defpoints" "")))
5 q# U. J) w( z. p5 U - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
7 s8 s. ]" s' |$ V7 p! l$ A5 z) ]% @4 O - (command "undo" "e")
4 H% l/ k& {, V: p- @# m4 z: g - (princ))
: y1 a* C0 }6 S! f - ;===================================================================== J% H L1 O! U: i: U# B
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
. E/ P/ ], v1 B$ ] - ;=====================================================================
- b, h& j3 a+ L# K. E( E# j; n% k+ t - * c9 X* `% l9 V6 B# r( Q
- ;=====================================================================
1 O6 @, E; w1 ~( J - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================! |# ?8 Z6 j, R9 [/ L F7 @
- ;=====================================================================
4 G7 }& N; x& I% ]2 J
8 U+ C8 t d6 V: |- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""( I9 k! v" ]* p4 h! T b1 {
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
$ `/ g5 ]) j! M+ R - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
" w) @1 c* j/ d$ n, S* c$ x7 k! s - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
8 {& M% C3 z7 h7 {' J% B - "M" "DIM" "C" "1" "" "Lw" "0.12" ""& x) O! V. t j
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
) s/ o8 j6 @8 N d1 m6 b: |' r& e9 K - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
$ c: m' ]+ a- W3 g - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""* {* U- q# o! d/ e2 d+ u2 Z
- "M" "COT" "C" "1" "" "Lw" "0.3" "") W4 w" U" C( `0 B9 o' Y
- "M" "Defpoints" "C" "7" ""% R( R: u; b0 \7 g* u& j0 v$ I' R4 j) J
- "M" "0" "C" "3" "" "Lw" "0.12" ""
$ b( N# U4 f1 }& F* `9 H; w! n8 x - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
$ x( \8 I- v+ {3 {; G3 J+ _ T - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
4 g/ t0 T2 ]/ M - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
% X$ C/ M0 K' B8 F, t, Y( W6 H - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""# Y! b" k4 L% [' W, y
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
0 I- Z" J- P; O - "M" "MANH" "C" "9" "" "Lw" "0.12" ""
& C" ?' A" M3 m) s( R - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
9 q" k" f( y( A( j$ X$ |% ^" w; b' a+ | - "M" "DIM" "C" "1" "" "Lw" "0.2" ""( f# h( f2 ]2 y+ M6 n1 B
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
3 ~& ^& n4 K p2 {7 L U - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""* R5 _4 S; y7 b/ B6 C$ N
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""! ?# D, i5 m G8 H9 z
- "M" "COT" "C" "1" "" "Lw" "0.4" ""9 z4 q( j& ?1 ]! w
- "M" "Defpoints" "C" "7" ""
) x9 `8 Y- ^2 _( R& ] - "M" "0" "C" "3" "" "Lw" "0.2" ""
5 ^7 u9 A1 @( `3 T' \2 G - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
# v' {7 _/ d' L7 a9 s - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""4 j& ~- t7 O2 T' c2 E( A) _ `
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
8 l8 q2 ?3 r) @5 Y8 T9 W% ] - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
& _! n0 A& S8 P& y u - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""5 @5 \6 X& R/ c, I$ M6 D1 _
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""
9 L9 S/ W9 H* L; W1 R - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""( h. k, o4 [3 H" P
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""* F# E& D3 H7 E2 I. ?% w8 x; q
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""2 e# x$ P1 i% w! l0 ~$ [
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
) F+ n- y0 F# s7 c - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""* T. |5 h+ a" r3 J/ k6 f4 f
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
& e% p8 z R" _5 @ - "M" "Defpoints" "C" "7" ""3 j/ S/ h+ P. I' U* c: M
- "M" "0" "C" "3" "" "Lw" "0.25" ""4 ^& [& |0 ~1 B3 @9 q1 ~% B
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
4 V D+ M/ ^5 X3 M$ ?6 n% U+ b - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""' P' e; O1 N8 C% B% g7 r
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
Z1 c0 e& w, A& s0 f - $ x: ?" o: l. L5 B9 i3 B
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""& T6 P/ |* ]. l
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
' O, R: ~5 B+ W" z/ ?: \" p - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
2 O: u* M p. h - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
6 {- z v: E9 @3 g' I - "M" "DIM" "C" "1" "" "Lw" "0.35" ""' ~. A2 s/ }+ M) @# K2 `
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""1 R6 ^$ N b/ O
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""& F9 X w! n6 m& |
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
?4 K/ J* g h - "M" "COT" "C" "1" "" "Lw" "0.7" ""$ U4 Z4 m& }* n2 @" ?9 `' Z
- "M" "Defpoints" "C" "7" ""( U# |6 F/ l4 f4 I
- "M" "0" "C" "3" "" "Lw" "0.25" ""
n0 H' b. c' U6 I9 o - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
. z. O+ u( W) M" \5 l/ t; Q; h; I - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""+ j7 v6 H( s; ]* y9 ?
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)1 y, V+ l$ }* ~ ?' F& y8 I
3 F- x5 D/ a2 |6 U5 U1 a1 }0 N- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
2 w* W! y0 ]& D0 n# n9 F3 x - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
4 `, _# L1 S9 ?" V) e' ` - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
8 H7 e4 Y0 `3 r3 b - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""$ |: u3 h7 ^4 J$ E# {8 E
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
/ y% _; C7 G. _7 w" _, ]2 m z, ^; e - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
; k- w' [& H2 Z# U - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""% B2 f- R" t9 Y8 W; H5 v2 e5 Z
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
/ T, h# w+ p- X/ k3 | - "M" "COT" "C" "1" "" "Lw" "0.7" ""6 Q1 M# ?; L( C. e+ D5 ?0 A6 b) s% E
- "M" "Defpoints" "C" "7" ""
5 R$ U3 R% X0 | V+ V7 Q - "M" "0" "C" "3" "" "Lw" "0.35" ""
- l, O; R, y K& y `. K - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
. m. D" p8 _3 f+ E/ ` - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
- m+ a) F1 K% M - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))( z/ Z! c" q0 W& H7 ?
- , d' u" b H( Z, H$ \$ |
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""$ U7 D: D! R! N/ K2 O
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
) O" c+ P& S6 b+ Q& i: I8 g8 A - "M" "MANH" "C" "9" "" "Lw" "0.35" ""% k4 U: [- b# d; L& `: v6 @
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
# C5 @2 R% l1 n X5 ~7 L9 X - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
) W$ k* f+ L+ i+ r5 _6 j; e7 ~ - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
% {. ^% G% V, R5 j - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
) |5 t* E' i* ] - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
& C9 j1 Q' \( ^, h1 Y - "M" "COT" "C" "1" "" "Lw" "0.85" "": i- r) L/ S) x( `- O" _
- "M" "Defpoints" "C" "7" ""
% t! H* X% Q$ @1 p2 `0 ?) ] - "M" "0" "C" "3" "" "Lw" "0.35" ""# S, _, Z% e2 c& I- A+ T" O# F: I
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""1 l6 ]& A# l0 T% x+ j, a% s
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" "", ^2 [5 Q% F9 {4 [: e+ o0 O
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))' k' E! Y' B9 \' \4 L1 ~9 \" Q
-
' Z2 `5 V1 o+ u7 a5 u3 e - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
4 K( Q7 _2 Z$ J - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
8 Y1 V9 u- a. H( P( w; \" j9 m - "M" "MANH" "C" "9" "" "Lw" "0.35" ""- ~2 A( j- U! z1 w" `
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
; L; d* S/ {* ~ J0 v+ J - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
% w9 C% K. q a4 b2 n$ z! w. U; W - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
$ Y2 d5 i$ o7 x: y7 Y8 g - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
+ l, O, n1 ~# x/ `# f% J - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
9 q7 H# n8 B7 |) l1 ? y D - "M" "COT" "C" "1" "" "Lw" "0.1" ""' U$ S$ }5 @2 x9 ^
- "M" "Defpoints" "C" "7" ""; H$ t9 ?: o# \- @& C' q
- "M" "0" "C" "3" "" "Lw" "0.5" ""1 e( ?/ G J# Q- {' F; C
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
2 J0 W( O; S4 y6 S - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""2 Q# N8 ?$ u" I' N. _5 }$ ^9 N& O" t
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))( N) S. U3 A1 t, B, [
- (DEFUN C:O () (COMMAND "OFFSET"))5 X# g+ d5 f8 U3 q6 C: R
- (defun c:s1 () (command "surftab1"))
$ J4 P3 r' s5 ?, l, Y; M - (defun c:s2 () (command "surftab2")) ], L, Q+ Q7 y8 w+ ]0 i; p! `
- (defun c:ep () (command "explode"))% I3 h/ j8 [$ @" x- r4 J
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))* s% }" e! D2 B( z( g
- (DEFUN C:QV () (COMMAND "QSAVE"))# W" z" R6 w2 |
- (DEFUN C:S () (COMMAND "STRETCH" "C"))
) I: h, F/ u) I6 r - $ ]+ I0 h7 j8 r1 a2 X0 I* y
- ;************************** CAT DIM **************************
! c, E+ s. r# k# p - 5 d' D/ l7 _' S! C; }% c6 ?4 I
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
7 S& |" y' K3 {2 G. E4 m& N5 g8 i - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)/ @, B7 M1 ]6 ^. r/ v: c( {: p) e
- (SETQ CMD (GETVAR "CMDECHO"))9 H9 {' b- _4 |' _
- (SETQ OSM (GETVAR "OSMODE"))
`* l% G$ W! x: q6 @& F- G - (SETQ OLDERR *error*
! e' D2 p1 ~) t1 r7 y7 f - *error* myerror)
2 V# d, l2 }) O8 k - (PRINC "Please select dimension object!")! I5 M* f. T1 K- S) d6 {) Z3 B0 R7 \/ L
- (SETQ SS (SSGET))& ?. Y3 P* }# O5 `% a) A
- (SETVAR "CMDECHO" 0)$ @8 P0 o+ T8 @. y( Q6 Y
- (SETQ PT (GETPOINT "Point to trim or extend:"))0 A+ @2 J( W/ l, x4 ^) m- P) f
- (SETQ PT (TRANS PT 1 0))' h# W, }0 o$ V5 H; s
- (COMMAND "UCS" "W")
$ W. ?' G T G: A* a - (SETQ LTH (SSLENGTH SS))
% L7 n0 ? Z5 J8 K: S+ G/ L5 E& J! H - (SETQ DEM 0)! U) ]) _! [2 b* ]) v8 |$ ]
- (WHILE (< DEM LTH), V7 V# ]9 y, P
- (PROGN, L7 N9 V) K) @ ^- v0 K* W5 E: \
- (SETQ DS (ENTGET (SSNAME SS DEM)))5 V D0 X2 x! N( ~; P2 |
- (SETQ KDL (CDR (ASSOC 0 DS))) N; P& p0 q1 ~8 Q3 [3 b
- (IF (= "DIMENSION" KDL)) E5 D* D% k- C. j V( R7 i* t
- (PROGN) X2 }. l. q& W& L. W
- (SETQ PT10 (CDR (ASSOC 10 DS)))
+ |. D3 n t% } - (SETQ PT11 (CDR (ASSOC 11 DS)))6 d% {$ w/ B% [. h% r9 G) ]5 V9 l$ u
- (SETQ PT13 (CDR (ASSOC 13 DS)))% z% Z7 G9 r1 J& l
- (SETQ PT14 (CDR (ASSOC 14 DS)))2 z5 }$ J/ S# T0 W& ?5 P
- (SETQ N70 (CDR (ASSOC 70 DS)))- J6 G& o4 T0 L) a. o) V/ j/ S; I( M) Q1 I
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))3 L) ?/ e7 p N+ _
- (PROGN
V2 S4 d) W3 [2 |( N9 g& F - (SETQ GOCY (ANGLE PT10 PT14))- M+ z, c2 L3 p" o
- (SETQ GOCX (+ GOCY (/ PI 2)))
S& A- n: |9 [ - ) x8 Q: {* @. T" T. i
- )$ P! r9 P, z- N4 c; ^# k/ I
- (SETVAR "OSMODE" 0)" _ O2 }# K* f/ E
- (SETQ PTI (POLAR PT GOCX 2))6 p! k t+ c/ l) K
- (SETQ PT13I (POLAR PT13 GOCY 2))
( Q4 }7 B/ v6 Y7 w - (SETQ PT14I (POLAR PT14 GOCY 2))1 ^; }' N, X' e3 @/ `
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
) Z- M8 \1 o+ D4 [% J - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
+ |3 q; H4 `; |8 p) x - (SETQ O13 (ASSOC 13 DS))
# u- s v; |! F( A - (SETQ O14 (ASSOC 14 DS))% I3 T0 q! i. U @! N
- (SETQ N13 (CONS 13 PT13N))
8 J: R d* N3 l- p/ D9 K - (SETQ N14 (CONS 14 PT14N))
6 D7 }5 k4 Q& u3 f' J% v( w - (SETQ DS (SUBST N13 O13 DS))* I1 j, i/ ]! I0 {( E
- (SETQ DS (SUBST N14 O14 DS))% A+ Z1 h3 X {2 D& u n
- (ENTMOD DS)
( q' x% t. @% [) H - )
% d1 I; L# h5 O - )
1 O' E; o. _" B% ], b$ T( d - (SETQ DEM (+ DEM 1))
7 K+ Q% M X& }# i - )
^6 p, ~ X* U1 J - )
% [2 ~# `. r, d$ G' F3 s - (COMMAND "UCS" "P")
& {8 Z/ O8 [/ C- b1 S - (SETVAR "CMDECHO" CMD)1 F0 e7 n+ t, |: R! t# \
- (SETVAR "OSMODE" OSM)
3 }. {- N8 W1 a& p1 I! K5 e# i - (setq *error* OLDERR) ; Restore old *error* handler, s3 K2 o' Q. [
- (PRINC)
) S }2 f2 P8 y) u" \7 P - ). _& a. X3 e" }4 r
+ |( i9 F' }. w! K6 g- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
7 I# l; X( }4 J4 m6 u - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)) z! F( d6 f2 w. G& M
- (SETQ CMD (GETVAR "CMDECHO"))
3 b$ a, p; e" Y! t - (SETQ OSM (GETVAR "OSMODE"))* k/ \1 j0 K1 b, G9 B
- (SETQ OLDERR *error*
* e$ m+ k9 ^: l5 E& K A& B8 E - *error* myerror). t$ f% E2 o- u( E
- (PRINC "Please select dimension object!")
) n, p0 y! d; W, v - (SETQ SS (SSGET))0 b) J6 V& f# d/ Z
- (SETVAR "CMDECHO" 0)* u, u( E, i8 X6 R, M
- (SETQ PT (GETPOINT "Point to trim or extend:"))" M( Y( `' ~$ R; v( X. K; k$ o5 P
- (SETQ PT (TRANS PT 1 0))
~6 [! Q1 P" b/ D6 g - (COMMAND "UCS" "W")
( U# M0 A6 R" \/ d# h, O - (SETQ LTH (SSLENGTH SS)) O0 X; u( q. }$ X' v, }
- (SETQ DEM 0)4 x8 ~% B+ w+ Y+ T L5 \1 i
- (WHILE (< DEM LTH)) n: M8 K0 N' H+ f: ?
- (PROGN
: `( `; g. d# f- V. G" K - (SETQ DS (ENTGET (SSNAME SS DEM)))8 l/ [/ p D5 |+ x
- (SETQ KDL (CDR (ASSOC 0 DS)))
# a' l4 b0 {* K" H - (IF (= "DIMENSION" KDL)
# V9 R. S. f) o0 z - (PROGN, v! k6 u$ J2 \$ g' g5 b
- (SETQ PT13 (CDR (ASSOC 13 DS)))! G" d1 A- M k; b0 {0 u ]5 {
- (SETQ PT14 (CDR (ASSOC 14 DS)))7 b+ @, o& E0 A! h7 E
- (SETQ PT10 (CDR (ASSOC 10 DS)))
: `3 b6 Q1 F! }- B0 u/ B - (SETQ PT11 (CDR (ASSOC 11 DS)))& J4 j, K: A. V
- (SETQ N70 (CDR (ASSOC 70 DS)))5 G( i) c: @: V0 @9 c7 F: E* f
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))' o0 A. l, o: Y' y. \ p
- (PROGN
( O' m, z; Y# z - (SETQ GOCY (ANGLE PT10 PT14))3 x& ?) a! e! N T- V! u
- (SETQ GOCX (+ GOCY (/ PI 2)))2 m8 G6 T" d3 C
- )" ?) n9 h; b: Y# A
- )% I2 G$ y" Z7 E' n: N
- (SETVAR "OSMODE" 0)* {" [* P( `' J! D
- (SETQ PTI (POLAR PT GOCX 2))2 ]2 A* a t8 J( f/ v
- (SETQ PT10I (POLAR PT10 GOCY 2))
% b- _: U& p: Q, _8 V% Z5 ^% H - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))5 |7 S. k3 q. [# }6 l& t/ A
- (SETQ KC (DISTANCE PT10 PT10N))' v2 o3 N7 c* b2 M
- (SETQ O10 (ASSOC 10 DS))
) z, k# _. F( c8 \# f+ m* W1 ` - (SETQ N10 (CONS 10 PT10N))
$ `9 i+ }( v8 n6 W* E$ f - (SETQ DS (SUBST N10 O10 DS))
- k9 { V, s b - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
5 ~( g! ]+ Y8 Y+ A' d& T5 ?0 b - (SETQ O11 (ASSOC 11 DS))
2 S& W: p A% c4 v& Q, J7 f - (SETQ N11 (CONS 11 PT11N))) e; y4 {2 k2 K$ Y
- (SETQ DS (SUBST N11 O11 DS)). s) F3 s* K; I( t _
- (ENTMOD DS)
5 N( Z) `* e6 _1 C, X; Y - )* E4 }+ ]7 K2 z6 V& h/ a" N
- )0 z" n8 o# p1 x9 v7 D$ J
- (SETQ DEM (+ DEM 1))4 O" w& c& K+ S) g; a. v, f: f
- )
! _ S8 N; x* G* q( B - )
7 H H6 `6 q& i' l' T3 C - (COMMAND "UCS" "P")
5 i. a2 z, r% L% r- ? - (SETVAR "CMDECHO" CMD)
2 W5 I: Y y& v9 M& @ m - (SETVAR "OSMODE" OSM)
0 ]3 G; k& m9 v% Y) x( a6 g - (setq *error* OLDERR)
( N8 y; k# r$ `$ Q0 I- O4 \$ v% H - (PRINC)
& x) L8 }* q1 ^6 y) y5 |& w# t& L - )6 ^& U8 P+ j2 f. V
6 g' @" j* F( ^4 {3 s- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================& t3 @8 x4 C2 ?) }+ P0 m# K7 p' b$ p
5 S7 Z* X0 N _2 T+ ]- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
8 N' l7 V& ^# i9 Q - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
, ]0 \8 [8 v3 _+ ?' C# D - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt9 F+ L* K+ G! k) Z# }0 O" i: [) D9 u' G" e
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
, i+ d- I8 `' E6 @ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")' t$ @" |& L0 m6 c4 h
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))% I1 t2 X5 Z1 ~) q2 h/ E
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))* g7 J! V, p/ u3 M8 t* ?* y0 {6 y2 ] O
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))2 e: T* ?, j, e1 W
, S) K7 h! D" L9 L- ;;; ================ CHEN COT (TUU) =================1 D1 R1 z0 O! o/ |& H
- : B" Y. Q2 \9 D* E+ B# E# L. n
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
6 N# r/ u- e0 J) X- T - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")+ S& |; R8 B. H0 z" |. M3 S
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt: e1 w1 Q# V5 q. h8 J& G4 O; r
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
1 L. N4 w0 n) \4 P1 J! W0 d) V, i( ^ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")# c8 w# H' T+ r2 F }( L) U+ M
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
' y+ l0 O. M3 E$ ` G7 L - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))), c8 ?* ~/ v8 H6 X3 }
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))6 |2 ?5 ?1 K) u( v* \: ?3 t. }
4 h/ g! H; s" b1 s$ a% a4 X- ;;; ================ CHEN KY HIEU THEP (TP) =================0 i3 L" r7 t# O' c5 `: j f7 \# `! P
7 \9 O i/ L& i ^- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
' z( T4 l) q. k5 x6 Z - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
" l2 r% F. c1 O/ Z0 d( } - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt( l2 x- J2 c( i, Q5 b! U
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
7 B5 h7 Y# A: Q7 q8 S - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
9 i; i' F9 R. [$ h# v9 A5 l! r - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
( j, v; J1 `) k# A( ^, z; p - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))* d3 P6 }9 {) I* t4 f
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)) Y7 { l4 i; t* P
- 5 c2 L* { o: h! }3 c
- ;=========================== TAM TUONG (TAM) =================================
" b+ m* C: u% d! Z5 Y - 5 k9 y$ _! j) o( r- ^
- (defun c:tam(/ data_m)
, M, n7 u0 [3 k1 F - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))4 G, m7 s. \3 ^3 I" R: E+ }/ H, E
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))3 D, l. U* v/ l5 `) e
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0), X/ W3 J5 x5 A! s
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset! h( z5 x) \! Y- x! H
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr+ ]0 ^: { Q7 ]& H
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
( a6 j( d# c' l - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
6 l' @7 ?6 R }. @4 b* x - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
# R1 ?$ P6 z A0 L - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
$ x- R: w/ p% O# u+ b# I0 B - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
- {6 n8 Q( d& E. \5 g6 i - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<* x4 l, I- _& d
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
& s8 Z& }; ~ B# Y - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
+ b- W1 |" z/ `2 l2 m$ W7 n - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
" F; _2 Y; l/ }2 ~5 @5 ` - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not/ o# Z. `! n4 l* W% {: L
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget _5 _. H% l. \# W
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
/ R# |8 `4 B) m- o7 ?2 J7 m4 ~ - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))+ ]+ G; O% I( @8 o0 C" V" r
- + s9 V+ u, b3 A3 {# R
- ;============ GHI CHU PHI (T1) ================% p5 h! c2 E- G6 N& k8 { h9 V
' u7 o; Z* B4 D( z# o3 [- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
6 ~1 G5 @" \$ M+ f" V, u - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
- T) ~" `5 u" Q" E7 U) ~ - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
* {! T% \& t% Q E, s - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)( G/ V7 r8 y% I2 z" a
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))0 k2 t* E- Q9 \4 V% J5 i/ S9 ]
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)9 b. P2 y& o6 h. ]1 i) @
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
2 M! i/ V. y. G - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )' [& I' _8 |9 F. m
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")( T4 \0 X) P) N, ~( g! M7 L) s
- (command "ddedit" pause))
: H- d A) x' h5 b
7 x3 h: X- b' y, Y7 o6 N- ;;; ========================== Join (J) =================& R) D" Z2 X( U8 V `" [
$ _! ~& N0 O* E2 O3 B4 G- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
; g3 b1 G; ]# e& E - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
4 x- _, m3 X `3 Y: x - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)- P! s/ S/ m+ g' r/ a1 o8 Q% h
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")$ q4 A9 G. Z& T: j
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
" Q U M- x, o4 Z+ m - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
7 G. [8 r* M7 l4 C, M" T - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
. e3 b& N; a) C" ~, E - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
4 a5 E9 O0 |: I0 U - (setq *error* m:err m:err nil)(princ)); Q% h9 S) Y+ W
- ; S! o6 T7 l `. o; m$ x w: [
- ;=====================================================================
$ w; p1 k1 f! p9 K% f6 Z2 ` - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
2 }- y! V) \3 Y3 s, N8 R3 G - ;=====================================================================
' q( q3 x1 k3 ^' f) G) f. P/ ~! T - 1 m0 g( ^! Z- r }4 b5 G8 {6 O
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)1 v9 _& t1 a( d1 x. x
- (setq old (getvar "OSMODE"))
4 i) t8 ?' C! U: c$ w' l5 a - . ]% f! s6 @# L$ f' `- Y+ ~: Y
- (setq p1 (getpoint "\nStart point:"))
, }: X1 X# R* ?' p" V2 d! n, @1 P1 u5 P$ z - (setq p2 (getpoint p1 "\nEnd point:"))
3 l0 y# s. ~2 q# ~ - (setq side (getpoint p2 "\nOpen side"))
6 d1 z# V4 R8 b: T7 d5 {
( S. V5 V, G# t) o/ T* l- (setq dis (distance p1 p2))- Q( F1 f1 y6 R
- (setq ang (angle p1 p2))
; e4 ?% x) f9 c3 @ - (if (< ang (angle p1 side)), c9 f& P& ]1 H3 I, ~8 h# x! `
- (setq angside (/ pi 2) )
2 E. K. f5 {% w% | - (setq angside (- (/ pi 2)))
+ c( T3 r; @: D5 C; r - )) o, U2 W4 B8 D3 Q
- (if (>= (- (angle p1 side) ang) pi)
' F' Z/ F, Y/ g5 @8 g- W - (setq angside (- (/ pi 2)))
+ R6 @% [6 ~4 T$ |, ? - )
. ]1 O) D& C" ^ - (if (>= (- ANG (angle p1 side) ) pi)7 t$ x4 U2 w; e
- (setq angside (/ pi 2))/ z- s9 t) m" `7 l
- )
( O9 _! `( q, [7 M+ E
1 C7 q0 [* E+ Y, ~- (setq p3 (polar p2 (+ ang angside) dis) ); T& V- p- k/ @, U) l/ u
- (setq p4 (polar p1 (+ ang angside) dis) )0 T. T& p# I1 m& [; O' k5 I
- (setq wid (/ dis 15))7 Z* J) _1 H5 u5 f/ S6 {% Q
- " t* F" J3 X8 b: _' ~" |2 J
- (setvar "OSMODE" 0)) F: H+ C6 c# F' O+ |
8 x3 ?9 }: S* u- m9 ~- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 % E' @0 C o. s( ~3 `* Q1 [" J' U7 E. w
- (polar p2 (+ ang pi) wid) + h+ C0 f+ B3 b2 Z: z- j/ t$ D3 n
- (polar p3 (+ ang pi) wid) 8 n# e9 M0 p9 ]! C3 G
- "")$ Q. I& M# I m+ \
- 2 M$ t# B6 |6 K2 F7 G
- (setvar "OSMODE" old)& [5 L% A& |- I. C
- (princ)
9 Z9 _, v: c; n4 R, s& e; B* g' ]! m - )
( j, B+ Q6 }9 E/ r/ x h8 b - + k8 |+ ?3 Q9 B/ Y: I# v
- ;=====================================================================
" J9 p7 t% r& o
( r& b" a1 J6 X; `9 E- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
5 S V8 l& P% c4 X+ y7 P! L6 q - (defun cua1 (pt1 pt2)0 y0 A: N* N& [1 T1 m
- (setq p1 pt1) U6 ]( ~* d& r$ x! m& A. O
- p2 pt2)
) C; C! k7 z+ y# u x8 k
/ j" g5 W. B# [ m/ {4 o" B- (setq ang (angle p1 p2))3 }# l. ~$ ~1 _. q( |1 C
- (if (< ang (angle p1 side))
: t- t6 q5 X' U - (setq angside (/ pi 2) ); b' c5 W4 K' [8 ~* q
- (setq angside (- (/ pi 2)))# p+ _6 D: N7 p0 K% m
- )) P9 G# O; U: ]% Y
- (if (>= (- (angle p1 side) ang) pi)
8 y: A' }4 I/ p" V0 L+ [ - (setq angside (- (/ pi 2)))
& p: A0 y9 U& N0 D, ` - )
. ~* B% f1 ~2 a& Y0 z' ?2 w - (if (>= (- ANG (angle p1 side) ) pi)9 t# `; b2 N' B) B2 ?3 _. p. M+ v
- (setq angside (/ pi 2))! f- X2 I; g# I1 w. h# d
- )
% N* ?# i4 n+ Q' i( ? - : D9 g4 }3 {4 d, ?6 O- a
- (setq p3 (polar p2 (+ ang angside) dis) )" V( k' i' X, B/ w7 G1 J
- (setq p4 (polar p1 (+ ang angside) dis) )7 l* i' @; u' l0 k
- (setq wid (/ dis 15))
- \3 n" d6 G$ H3 }/ m% Y - 4 P! f, p% j1 `3 |
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
. g; Q. ]5 h% \) f4 Y - (polar p2 (+ ang pi) wid) 0 |2 f; k; _ L! F1 W
- (polar p3 (+ ang pi) wid) ; ?# k, B6 o$ n( o7 W3 G$ y/ w, S
- "")
1 W+ ?- R: C* n( a" k5 b - )
' [/ R; a7 V0 G; L/ O% k( Z( S0 q - ;=====================================================================
0 {$ O4 R5 Y4 p7 w Z5 Q s F' w - (setq old (getvar "OSMODE"))
3 M# V" O; G4 c+ Y! M3 h
# L9 j, w, G7 j( C' h, R+ P- (setq p1 (getpoint "\nStart point:"))
/ {8 q, i& ~1 ^2 e8 ~0 P2 S - (setq p2 (getpoint p1 "\nEnd point:"))
, A$ {0 n o; J' J. \ - (setq side (getpoint p2 "\nOpen side"))
5 b' |/ U) P2 O+ i5 y- D
3 j: g1 J7 w) \- (setq dis (distance p1 p2))
8 k: \0 H, P2 |3 F% H - (setq dis (/ dis 2)) Q5 {# @5 @# ?+ J2 l+ z/ X
- . T( ]5 D$ N- A' \2 u0 t
- (setvar "OSMODE" 0)* H; ?5 Z6 @5 {, o3 B& B1 w" s) n
2 `% p% b& v9 b4 o- (setq p1 (polar p1 (angle p1 p2) dis))
/ j, V% V7 ?! I - (cua1 p1 p2)
. I* r3 u' S+ D
; S4 U0 ` w. X7 p% T2 \- (setq ang (+ ang pi))( ]6 m8 K! j- C: Z9 i
- (setq p2 (polar p1 ang dis))
" K: l \! q, E4 J. \ t: o6 v - ; (setq side (polar p1 () dis))) V O5 f% a4 ~! c2 h: a
- (cua1 p1 p2) 1 }8 }" j# E% O: H
- 2 X$ u: Y) h6 Q4 k
- (setvar "OSMODE" old)0 E0 v+ g3 Y" b- _- u* p) d
- (princ)+ j2 x& t3 V/ w5 S* ^( z3 }; K
- )
5 `2 h. k8 @* t) I6 v5 Z
% n+ x% w$ f1 O4 j6 O- ;=====================================================================
/ ? a% p# z0 [ X8 A- \# Y - ;"Glue" text strings. All adopt first's properties.. D7 |4 I8 ?) z, b* \
- ; Author:
: I0 K( c2 U+ O3 S - ; Henry C. Francis
5 ], o' Q( z# D# [- s! j - ; 425 N. Ashe St.
6 h0 A/ O* Y b& q- J - ; Southern Pines, NC 283875 r7 X+ c) I: p; Q6 J, c
- ; http://www.pinehurst.net/~pfrancis
7 o$ i1 u7 D a/ s - ; e-mail hfrancis@pinehurst.net
( S: o% @/ q5 e: i T0 r - ; All rights reserved.9 @$ u& l3 L8 N9 q* @
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)! f Q4 p. x+ ]% H
- (while" J' G E& ^( r6 i. _
- (not
4 K3 L) P9 v. Z - (and
, V7 Y( u3 b8 m5 z" r" r& P - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
. ?2 m5 z& h& v/ I0 I% |2 Y - (setq ent1 (entget ename1))
0 K/ H+ M7 b% K- f! {; z5 B% h - (eq(cdr(assoc 0 ent1))"TEXT")
. I0 Z0 K, s4 J - );and3 B: y" S8 E9 S) c1 u
- );not& }( r* |9 r- A& Y) p A; H
- );while
3 b8 V3 D! p8 z5 W% R - (setq old1 (cdr(assoc 1 ent1)))
) w& @3 e* }- {( u# m - (while6 i& V- A1 v3 `$ ?
- (not
& F) d* I5 P; h, w, L% u - (and
' d. i7 Y# w- u& a$ P - (setq ename2 (car(entsel "\nSelect second text string to join: ")))+ P7 c8 x( G- G1 U x
- (setq ent2 (entget ename2))
0 {7 ?8 w. v2 N$ ^7 ]5 V - (eq(cdr(assoc 0 ent2))"TEXT") l$ P! [& |) @( V! o, V& U
- (not(eq ename1 ename2))( m) d) T' P1 [) H) r8 ~/ ?9 g
- );and
6 F* {. }% p& O2 d# K - );not
% p$ k8 x. A7 N7 v- O8 } - );while* m( O6 v, @; }/ ]* I B
- (setq old2 (cdr(assoc 1 ent2)))0 ]5 p8 c3 Z! e9 O: u6 h" n
- (setq new1 (strcat old1 " " old2) C1 Q- a3 m ~, C, l5 H' F/ w) |
- ent1
* m! t' f. i4 ^8 Q# c& l& A - (subst (cons 1 new1)! Y( P/ c6 [; B$ [
- (assoc 1 ent1); T- ~ \1 X, ~: U1 C. O! c
- ent1)
% g+ h' f2 \2 m+ Q2 E/ ]( I z - );setq
0 M* d6 O6 A( F+ Y - (entmod ent1)9 |0 R/ W: M2 v( l- Q; a: m
- (entdel ename2)
6 P+ b, y! y; c* X7 g: m& Y - (princ)
' W! i- Y+ C8 L1 ?: r- k. Y - );defun! C6 {9 l; n. d8 m) @
# W& W1 L% b* n2 ?) q* R4 x- ;=====================================================================
- S/ b- Q9 t0 }$ S - / x+ _. k' }& ?, v* \% X B
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
: I* i; d) l& x* F: A, V% C
1 K! `# T$ U: |5 x! [& b; ]- (defun nterr (s)
5 }: o2 ?$ b3 B& d* Z4 L% w2 F3 b - (command "_.UCS" "" "_.UNDO" "E")6 v, k: X9 b( o" P% J
- (setvar "cmdecho" 1)
- u: c( t) s$ J/ n( b7 ~9 ? - (setvar "blipmode" 0)
* p. ^) J" Y; [5 T - (setq *error* olderr); S1 ^+ w& m, Q! l
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil * T2 E6 K" Z( s+ _6 l- [
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)8 N# Y6 r/ A2 `7 M. d3 J7 H
- (princ); T5 ^2 v+ m. s4 H# |) n
- )/ L4 j+ S7 f3 x# I; t( S* q. x" A
- & g0 K$ o* B# @
- (defun tim_in (dt / p01 p02 ktra)5 j. J; l( \+ |+ P, D9 A8 k
- (setq p01 (cdr (assoc 10 (entget dt))))
- p# m% J. T# H8 d1 |7 Z - (setq p02 (cdr (assoc 11 (entget dt))))
' Y& p& x8 `3 }4 s - (setq ktra T)$ z& [1 x( D3 E8 v, n9 U& C
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) ' I" C$ ^7 M3 L) v: k7 w# ?' Q3 T
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))* @$ m; p1 `* j2 M
- (setq ktra nil)- M, s4 q/ M# o1 |* X
- )! a: |4 W3 A% a" F
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) " J1 `' f6 `0 P" n0 j" u. E
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))9 [# `0 K! L. R9 {+ F# ^( B
- (setq ktra nil)( T& `5 O- ~% s- _3 q/ [7 D9 {" ^; D# j
- )
& t, Y9 ]# D3 g8 s - ktra
) ?* x, ^1 I% o% W p) Z - )* v4 |+ E7 u" k1 p! n8 c
- ) C a! X) Z' i3 |. f5 b) z# K
- (defun timdt (dt1 dt2 / p01 p02)2 R9 p+ g6 d. j5 ~$ p* Z9 f, V5 W) c
- (setq p01 (cdr (assoc 10 (entget dt2))))
% H' C3 C& o$ n9 S - (setq p02 (cdr (assoc 11 (entget dt2))))
4 c: k7 p% [$ I# h2 X Y - (setvar "ucsicon" 0). c5 a! x" I# ?$ M' c7 F$ R
- (command "_.UCS" "E" dt1)% M! q) w4 w) V+ b* A- X0 k7 J3 J
- (setq p01 (trans p01 0 1))) q2 [9 \+ p- h0 U
- (setq p02 (trans p02 0 1))
- ]8 r. ^- j+ L0 B9 x5 p) R - (command "_.UCS" "")0 }7 [. A5 ~( ?7 o# e. n) D9 e
- (setvar "ucsicon" 1)
4 m: F8 P: Z* `- v8 \7 L - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))+ P) x2 r, Q9 l% n" `9 r: H
- T! o- ^! f1 R. ]9 f7 f
- nil
: ]4 N0 C, r5 n - )
) U3 X" w' i+ H1 J - ), ]7 s& ~8 @& @& g# {" j& s- a
- & g9 F8 `8 h, r4 c7 I7 C" j: J
- (defun tim_out (dt / p01 p02 kt)
( K8 Q' F) a0 L$ V( d - (setq p01 (cdr (assoc 10 (entget dt))))
% z; R" T9 ], s6 Z# _2 i! r8 l, b - (setq p02 (cdr (assoc 11 (entget dt))))4 r& N! Z9 X5 L, m, [
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
" S. R5 [2 G- v& u) R) @ - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
4 Q4 n" e. A. }3 _' z5 V - (setq kt p02)
0 o- B Y/ e4 |- F1 L - )$ A( T( v1 [/ j, @/ A! O& J
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
. T, f+ l- k/ {) j. ?$ R7 k6 r# u# { - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
# E; x/ P, P7 E3 g5 z* d' V6 }6 x - (setq kt p01)
. L( H S: N! T U+ w2 c' T - )
) t- I6 e/ t5 i) g# D8 V- p - kt
; t3 G* R5 b! D) ]0 v& Z! z - )
) {7 M8 d9 @; J" u) p5 n - 1 p/ u- c) R1 f- ~8 W9 F; s- P
- (setvar "cmdecho" 0)
6 Q( S. U% F) ~, v: | U% V! ? - (setq olderr *error* *error* nterr)% \% Y1 y" F( l0 H1 o Y
- (command "_.UNDO" "G" "_.UCS" "")
& W3 p; W: Z6 Z8 \2 k0 O - (while (null ss1)$ O4 t3 h, _" f: E
- (princ "\nChon tuong muon noi...") x6 y) f! k$ i0 V0 v9 L. n$ `
- (initget 1), q( w* C. {. V
- (setq g1 (getpoint "\n>Goc thu nhat:"))
) z( c% h' H. l - (initget (+ 1 32))1 U6 ]- v% O. r: t" @# A* @8 C: x: O
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))
; B, C* z. b, ? q; | - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
" A/ r5 h" f" F2 h - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
- |" f5 l6 [$ a: i( y* R - )% P6 Q) b8 e3 P: K) o- w
- : l6 X6 i" T3 I+ H' B" c$ j2 h
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
6 H$ m' z- N4 G: u2 y* f8 B - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))# ^" [7 }+ F7 r9 ^0 B" {* E
- g1 temp)
9 Q2 q1 [" G+ X - (setq ss1 (ssget "w" g1 g2))0 V! _5 d" Z6 M/ J
- (if ss1 (command "_.ERASE" ss1 ""))
8 x L" @* X' n - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))2 s( y3 Q* d: D7 ?" c. Q( G
-
7 v i: k5 k% [ - (setvar "blipmode" 0)
+ f) x; v. N1 d: s - (setq i 0 l (sslength ss1))
, M! E+ r* x. o$ P - (while (< i l) w) Z/ n; `3 \; v& `- c
- (if (tim_in (ssname ss1 i))
' Q) [/ u' |* D, }! W3 x8 c - (progn
$ |( g/ ]( O8 H' D: c8 W0 P - (ssdel (ssname ss1 i) ss1)0 y l# p3 M! `% u+ G
- (setq i 0 l (1- l))
$ x9 |, D2 \+ J - ) 4 a2 Y( N, Q$ c! J6 [
- (setq i (1+ i))
4 C# o* t4 H$ ]) ~& r - )) x. u5 n1 e6 U8 g+ a4 }
- )
" c9 n* a* q8 _ - (setq l (sslength ss1))! T R0 Y$ |$ G7 U
- (while (>= l 2)
; l. z0 a1 s' j; i1 r1 Y6 c - (setq e1 (ssname ss1 0))
" U5 d7 a! ^! Q6 q e& B2 T$ K9 ]& x - (ssdel e1 ss1)
5 H! S. H6 G% M+ ^5 ` - (setq e2 nil i 0 l (sslength ss1))
% ^% u& ^, D5 {! k( h( y' {& O0 O - (while (< i l)
4 |. a4 h3 Z/ A6 G4 D - (if (timdt e1 (ssname ss1 i))
5 a9 k# s1 c+ I! r - (progn6 V% l1 p( d1 p8 Z: q' }8 ]: N
- (setq e2 (ssname ss1 i))" t7 x( }& V" A
- (setq dd (tim_out e1)); M5 C; n; C; n$ k+ f$ x+ i
- (setq dc (tim_out e2))% G" b0 B& ^8 O( _! L, n+ D9 D
- ) I+ R5 C9 b1 i; y
- )
. r) h" h1 T9 ~1 Q& f8 U - (setq i (1+ i))
1 d( V: m8 N! Y2 M S, L7 Z9 x5 q - )
5 i$ U# }. P' `# _& H - (if e2 (progn6 S7 D, r' o+ Q- u: c! h2 a8 W/ Q
- (ssdel e2 ss1)
# Q! K( a! U0 d3 h: ~ - (command "_.ERASE" e2 "")
+ P5 f% E% D/ ^ O1 _/ j3 H - (setq temp (entget e1))
$ [1 v% F2 u8 J1 Z: K0 m - (setq old (assoc 10 temp))
" y9 @8 c9 o$ C6 H - (setq new (cons 10 dd))2 T) [ _, F& i! J! u9 x+ r
- (setq temp (subst new old temp))
' W; w$ a0 I7 K( C; l - (entmod temp)
3 I" e6 C* W- I) I X" N/ B - (setq temp (entget e1))' Q5 a" V* v( x+ q4 K, Z
- (setq old (assoc 11 temp))
/ C5 a; r! U0 [: |( n: A. \ - (setq new (cons 11 dc))
`8 U4 x6 [8 b7 U [/ f - (setq temp (subst new old temp))' W/ A% h/ ~3 U
- (entmod temp)
4 V% {* R5 j; K& ^% |$ N- f - (redraw e1): V# N( s* M8 _* r: S- g, e
- (setq l (sslength ss1))2 T; d+ c+ n! ^7 Q8 V$ {( _
- )
) D9 t) N3 S3 \1 v* X, q - )
$ a# f2 n( I3 i) f3 L: y- Y - )- W7 D- T' Y, w \4 r3 V* C
3 o7 |. }! d, T" g( R- (command "_.UCS" "" "_.UNDO" "E")
# n, r- n+ m. X8 v( D - (setvar "cmdecho" 1)
0 a/ E0 {# z- s3 b- i# C( O; j3 {4 J9 Z - (setvar "blipmode" 0). P3 f' s7 ]; o& U* Q
- (setq *error* olderr)
; W1 L; j! ~7 D) N+ t5 j - (princ)4 B, A7 F5 Q1 M- R3 v
- )
( g& T p; Z/ l" V- L - ;*********************************************************************
% p" }" i3 b# ?1 {& Q4 L! S - (defun ketthuc ()
" h+ r6 D5 w# ?: {0 Y( T - (setvar "cmdecho" luuecho)) J. {9 Z; h. `8 v8 e1 e; w9 g
- (setq *error* luu
; P$ Q! ~. c' C/ c/ _6 U - luu nil 2 ^. f! b! W4 U+ n6 h7 G# m6 d- {
- luuecho nil
9 N4 p% X5 p4 ?5 O; y) k - );setq# ]- V* l4 O6 q$ d, j; G! ?0 i3 K
- (princ)" s7 ]1 k: `1 u. O
- )
5 p- M! r; y! Y2 J - ;*********************************************************************. G* C& l8 A; w) J
- (defun modau ()& ~; u/ m, v4 z/ e! t
- (setq luu *error
. q5 Z5 Z1 t. y3 z) y5 _2 ]# y0 B$ d - luuecho (getvar "cmdecho")6 Y. V; o* \2 S+ _6 L t" n
- *error (ketthuc)
. i1 x; J! F. z9 g* B- y - )
. s6 X2 \9 Q7 T$ }. s - )
$ a9 H; q) u' _4 m4 ^8 o0 \- @ - ;*********************************************************************
2 z4 X! }# E! k! j& h5 a$ A - (defun xulytext (text / kytu ma sokt luusokt lui )
8 H' Y9 \5 J! v/ [* C - (setq kytu (substr text (strlen text))/ ]; M( ?% W0 `3 h
- ma (ascii kytu)
4 Z2 m- y! e& P5 s: r7 k2 @+ j - sokt (read kytu)
" q# T* L5 f# Z6 @ W4 m - lui 1; ]+ N! u/ ^0 Z$ y- p) z: Y: E
- ) T5 K: H3 N5 \2 E; k0 R
- (if (numberp sokt)$ f' H7 s. v+ ?& ]3 }; d" D
- (progn6 R( o7 S1 o5 k. m. S- u, |
- (setq luusokt (1+ sokt))
# b" P% d7 k0 J, T. {1 h6 r7 | - (if (and (numberp sokt)
; _4 `3 u1 T4 `) ]& F/ Y- o. d5 N - (> (strlen text) 1); \9 \1 R/ r# t S; @8 u
- )
M4 `8 ], @3 t! R9 I - (progn
7 D+ J8 y6 @) Q* ]2 y - (setq kytu (substr text (1- (strlen text)))
0 L0 K0 P# V1 i; l% J+ H/ N" M4 m - sokt (read kytu) + F- s9 z! H7 a( O# j; z
- )
) X- L" f, o9 i9 J7 F( @5 C - (if (numberp sokt) / ~; j% A; E: b( O
- (setq luusokt (1+ sokt)7 A3 o, J( h0 y* h
- lui 2& q0 P% o3 D+ w8 e+ _7 M: k
0 u) h; J' g/ q, {8 {. |- ~# X- )
D5 ~( ^, t, S- w) e% b3 @ - ). q' Y' E' M2 J; _7 K* b
- );progn
7 m5 A' Y. }) q1 z i - )& c' k6 Z7 `, {9 x. C3 o
- (if (= luusokt 100) (setq luusokt 0))
% O9 L+ G4 l8 V- r, Q0 p - (setq kytu (rtos luusokt 2 0)
$ O0 N, n0 z" K* @ -
1 X9 Y2 ~9 Q, {5 H5 j* |2 T - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
, |( O# r& [* b. N7 k ]+ K - )
, a4 u+ J" l* u* y& S0 r6 R3 S. C - );progn 0 h4 W/ L7 x0 g: l2 R5 `* o1 t
- (if (or (= kytu "z")
$ l' C: W9 h5 d$ C+ d* x3 C5 H& K0 H - (= kytu "Z")
5 |4 H2 N/ x6 b6 Z - )6 w4 X2 |+ P( A& A# ^2 e
- (setq text (strcat text "0")
; j0 s! Q% L. y - textxl "0"9 s; @: T( p3 x
- )# H+ [' X0 p6 [" k2 ~$ B* M
- (setq ma (1+ ma)7 ^$ f8 C' U# r1 a T
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))7 H& c+ l3 X+ G X
- )
" Y* }, H& N4 C/ c* q - );if
) t/ j j8 ]5 X3 K0 H* @7 q - );if
5 r* m* X' M2 r! [% c" X3 X - ): l6 x9 D/ C) {4 v$ p" _) B
- ;*********************************************************************) v8 Z- p1 O; O; [2 A
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
0 |; R2 T& {/ q% t+ T* k - ;Neu doi tuong la text thi tiep tuc
' u1 y7 ^' q* M7 H- Z7 I8 L - (setq doituong (entget tendoituong)% ?& [% q; c' G' A# A" t$ z0 C, ^
- kieu (cdr (assoc 0 doituong))
( ]8 M0 d! u% A: J; t# x - canle (cdr (assoc 72 doituong))
5 }4 W5 j" ~7 J& P - ) , Y& h/ `: ]$ i/ Z, r- J
- (if (or (= kieu "TEXT")7 T0 d) T5 C9 z' X2 R3 Z B6 q
- (= kieu "MTEXT")
3 q9 m L6 ^ l' T2 q - )
- K+ M& y4 M+ Y$ {; Q; ~5 D7 C# X - (progn
, p. S, R k6 y h - (setq textxl (xulytext textxl)
1 Y$ o" L# H h6 Y! a - text (cons 1 textxl)
. X; x1 m8 _- {0 }+ k% i - vitri10 (cdr (assoc 10 doituong))- N% n; D2 A' h/ f. k
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))- z l4 c6 V, M+ ~( B
- vitri10 (cons 10 vitri10)
( n; W2 J, c' y; v; y9 v6 [& V - vitri11 (cdr (assoc 11 doituong)) H. @% @2 l: @ M
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))+ m2 u1 W! I- s. r+ R2 h
- vitri11 (cons 11 vitri11), h0 b; Q' s, l$ u5 J: x0 ^
- dem 08 e* A3 e# _* V% L2 Y# t0 g! V& Z
- dsach nil
; p) |! U0 t' } - )9 S6 Y- M) k2 ~2 S+ g9 G3 Y5 E
- (foreach tam doituong( U0 a/ u4 g2 ]
- (cond+ l7 F: G; n/ W( g
- ((= (car tam) 1) (setq dsach (append dsach (list text)))) ~: F9 ?, G' d2 X5 I% E% o7 C
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
* K p: C: _- M3 K - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))+ N. l* m+ j1 X6 }3 ^" P0 I2 S. ?
- ((setq dsach (append dsach (list tam))))
- j$ V" h3 V w1 D5 D - )
: H2 L2 m7 H6 ? - )3 U) ]# Y' y$ G# G a. S
- (entmake dsach)
8 v% W7 U- R7 b% S( j$ v9 O - );progn& g9 O0 _$ u4 g7 u4 G7 J7 m; \0 E
- );if
$ x( ?* x+ ~( U0 ~ - );
/ s9 D8 o# n4 N4 d! s9 c T - ;********************************************************************** r" ~) s% m6 Y0 ^' v
- ;sao doi tuong cu sang vi tri moi
: `+ g2 `: e0 u+ Y0 @ - 5 R; H9 f2 ?, _4 z$ C1 L2 S/ y, [
- (defun copy_dt (tendoituong ); Q" U6 Y4 C3 J0 z
- (command "copy" tendoituong "" goc toi )
' o, A0 d P3 Y, n; \9 j - );defun" K- j/ X: ^4 j/ ]
- , i! u: Q+ g) Z4 O" u+ _2 Q
- ;*********************************************************************
/ j5 i, B- I" k
1 w9 k) Y+ A9 w2 b- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
. c, l$ @) I8 \) d - ; Khoi dau cua chuong trinh7 E% J+ p# F; d; T3 C
- (princ "\nCopy Inteligent...\n")0 V" C* ?% Q% m4 g+ s0 c9 ~# }* T
- (setq luuecho (getvar "cmdecho")' B( W4 A0 [5 S m& p f5 [1 x8 x
- luu *error*" O7 ^7 v* x+ X$ ]- `. B* @" ?
- *error* ketthuc
6 h) v# s( H$ _/ R- D; m! x- \ - cumdt (ssget)9 S( r7 d' V" w5 p' ?7 x7 U' B
- dodai (sslength cumdt); `; B. M; V9 {$ d
- goc (getpoint "\nSelect base point:")7 w( L1 h! d) ~# ^
- thoat nil4 d. R, a! ]/ `$ f; e. h
- dem 0
r# O- j6 h6 R - textxl nil
* L q( \0 j. @' u+ X/ s+ ] - );# Q8 q; H( } v0 }
- (setvar "cmdecho" 0)8 T# u* N; H9 V1 s$ r _
- ; Loc ra duoc ong text de xu ly
9 L$ I4 {" z! F; Q& O - (while (and (= thoat nil)7 ?: c# a5 T( k* M
- (< dem dodai): h: H# f3 O" O- l
- )
8 B9 Y$ f5 e( u$ A6 } - (setq ten (ssname cumdt dem)5 z% i- r6 o& w v
- dem (1+ dem)
- c& {7 i: J, z4 ?5 z, ?7 k4 b K - doituong (entget ten)
2 N) U' b. W* g" w - kieu (cdr (assoc 0 doituong)) : R0 B1 Y# U$ U3 s0 k' S! a0 Z
- )
( @1 l# B, l* Q2 z3 N% X- D - 9 {# r2 G& m Y9 l
- (if (or (= kieu "TEXT")
7 k5 I, Z1 W) e4 x8 @ - (= kieu "MTEXT")
2 Q8 r3 n7 p! t& K) Q9 u6 M5 s - )' G+ e& {: e+ C! L
- (setq thoat T3 B, a' e) Z- v8 t) |
- textxl (cdr (assoc 1 doituong))
7 `* y- }6 Q! `/ P- v# x9 _5 d - )
( D# u4 h$ ]- l$ z$ _ - )6 m, o k) _4 A/ r/ w) j: o# a
- );
2 U& s' R( D* v! T$ o - (while T
5 E% m9 N* ]5 W n2 n - (setq toi (getpoint "\nSelect next point: " goc)
- k& X! T& ] X: o- Q3 ~2 X$ n - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))). l! t% p% E% m+ J$ l( }
- dem 0# M) ~, H# b7 l; S7 X; F. k- l
- )9 O# x& Z" G4 a) r* F& U
- (while (< dem dodai), t2 p. C# a+ E1 p, G
- (setq ten (ssname cumdt dem)8 J( e$ e2 w) k+ X
- dem (1+ dem)
. z3 [8 q8 f" h( ^5 ` - doituong (entget ten)
# H1 ~; ~1 z6 G, { F, f9 \; s) K - kieu (cdr (assoc 0 doituong))
( A% J9 ~ i3 S r3 W) c - )
6 J1 l' R; k% c- ~2 w& L
( R0 _( L8 R7 F3 L. X- (if (or (= kieu "TEXT")" v# M4 A. S0 r% y- ~3 u
- (= kieu "MTEXT") 9 ?! r% `7 A/ d$ A3 u/ W; A
- )
* R! ~: i$ v$ Z: H E" o5 d; e9 N/ d! b - (doitext ten)' o1 l% l2 v7 N9 L% q. P
- (copy_dt ten)- {# I2 C, F/ F! h
! C3 R5 x! k' q9 b& Y0 L- );if
, U. _+ o: G; k - )
& l/ g7 w5 h% I! ]& C8 | - );while. C$ [1 {* r. w2 }, ?
- (ketthuc)( G; s3 U3 K& H- w' Q* F" x
- );defun: @5 |" j+ P6 O: r
- (princ "Type \"DG\" to start")( P* ~* q t) w, D3 I2 F) Z
- ;Note: bien toan cuc: textxl vitrilech
% A( M; {' s: H$ C' }8 P) X1 p - / r# m/ n. r9 c6 ^ U4 ]
- ;=====================================================================8 R& a1 s; a5 F: @0 b
- ;;; PLJOINFUZZ.LSP+ ]* n. `- m; L3 n3 ]
- ;;; Joins lines, arcs and polylines using a fuzz distance' r! s6 u0 A5 k
- ;;; If only one object is selected it tries to join to all objects that are possible# a" X0 A9 J2 [4 x1 V* u, D
- ;;; By Jimmy Bergmark
: V* ]2 v3 {- k - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved! x5 K- S" H: ]' n; q
- ;;; Website: www.jtbworld.com
, U4 X/ @( K* P( I - ;;; E-mail: info@jtbworld.com
* _. | G0 J% D- G( {! U - ;;; Tested on AutoCAD 2002,2004 and 2005" R0 s. {& y& ]$ w" B0 [" m& V
- ;;; Latest revision made 2004-11-11
: w" B' x9 B$ t: F: Q - ;;; Minor code cosmetic change made 2004-11-13
- z0 {8 s+ ~) K - ;;; Bug corrected 2004-12-23
# `4 l! {7 U0 ]; J- [0 T - 6 P$ l4 C- k* l* G' D/ @+ C
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
5 H6 T3 P# k+ b$ H& F: U2 \/ [, W - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
4 G: o, ?* H7 H0 K" O4 `2 L# w1 u: L - (setq oldcmdecho (getvar "cmdecho"))
; V. z+ s5 @8 ]: V$ P - (setq oldpeditaccept (getvar "PEDITACCEPT"))
/ U- m5 Q8 H# ?6 G3 |9 ] - (setvar "cmdecho" 0)" o0 N' V5 Z" I) ^7 ?
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
" W: v- S% X9 o- m9 ?3 F$ O - (if A2k4 (setvar "PEDITACCEPT" 0))$ |8 N x* a3 I( o& K- L0 S) C# z, ^
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
1 O4 K$ x4 s) G1 ?5 ^: H T+ b4 m: s - (princ "\nSelect object to join: ")
7 h2 C7 c% K3 J' |& \1 S+ I) E y: F - (setq ss1 (ssget okObjects))
: ? z& g7 [6 m5 T2 E" o& {2 e - (setq fuzz (getdist "\nFuzz distance <0>: "))
0 P0 K7 S- z4 W$ l3 j% Q - (if (= fuzz nil) (setq fuzz 0))- _ g# Y. j6 I/ o6 ~
- (if (/= ss1 nil)3 p3 \, r* M1 d- \
- (progn1 ~/ r' u5 B8 [2 W
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))8 M6 ?. N% y; A- V
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
1 y. W; t1 g# i+ }+ V1 U - (if (member objType '("LINE" "ARC"))
0 a+ F: f, e3 S9 ] - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "") t0 U2 y# u& T$ d6 C
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz ""); c {" @6 R, E6 t0 e: l
- ) E) E3 q/ x! ]5 I2 |
- )( `; |7 N. ^0 i/ l; K* O3 a
- )8 ^& U0 l* x" i5 B
- (setvar "cmdecho" oldcmdecho)9 T( M% l, s, G8 _4 {
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))/ D6 Y- \, I6 e' U
- (princ)" e" d$ a" C4 A! A* |
- )
; Q# i9 d4 D1 ~ - 9 \( Z) {6 B. d: J' I5 Y1 I! x9 v
- ;===========================VE CAO TRINH===========================
* V( @$ H& l3 I - , ]4 ^' q6 {5 h$ X6 p
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
% q+ q: U H/ h6 L7 u+ v - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)' k/ `$ x+ ^7 C+ B
- (SETQ OLDERR *error*
$ f3 H, y' I; p! ?! P - *error* loisb)
4 Z o2 l) \+ `/ h0 ?* V- j3 H8 {; a - (command "layer" "m" "dim" "c" "" """")) O6 w: n B0 \: b8 v: W3 r& \
- (SETQ CMD (GETVAR "CMDECHO")). m9 i1 p" [5 e( K( l
- (SETQ NBC (GETVAR "CLAYER"))
5 v# [( U6 ^0 [ - (SETQ OSM (GETVAR "OSMODE"))
5 W4 p( z7 C& F* b: R# D - (SETVAR "CMDECHO" 0)5 S X! Q) x( N$ x
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))2 b# \, {8 d9 L0 ?; @
- (SETQ TX (GETSTRING "\nCao trinh:"))* _2 G( l+ l0 m* ~$ w
- (SETQ FCH (SUBSTR TX 1 1))/ I s# T( M; z; g% t/ G' ^( g
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))8 w9 }) a1 C) L2 L6 L, R8 f+ Y
- (SETQ CRST (GETVAR "TEXTSTYLE"))0 {( s" W# M- w' r
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
; ?$ m; {9 |, [4 @ - (SETQ TSIZE (GETVAR "TEXTSIZE"))
: L I/ R5 g# R9 V0 p* Z: H - (SETQ STR (RTOS TSIZE 2))
8 _0 r- q9 Y- c3 k6 P9 U - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
+ n8 v. a1 e0 V - (IF (= RSIZE 0)* u! Y8 h3 V' w) @1 B- R' ^; m
- (PROGN
3 y- c" n# a* _& F5 J9 H5 V - (INITGET 4)3 s- \& U) E* n5 O
- (SETQ TSIZE (GETREAL PRMT))
+ H' V3 ?3 [' F - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))( p6 H0 x" y1 E9 d
- (SETVAR "TEXTSIZE" TSIZE)): b1 M% H6 i {- {" X
- )
7 q0 l) O8 G3 C! Y - )
/ w' m& P& X) D9 L+ C: y2 d L - (PRINC)
! T% \5 j% N; r3 e - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))" y) P; k. J/ Y; B" A) V) Z* w, Z4 ? K
- (SETVAR "OSMODE" 0)
& O6 m: ^2 w# [1 x/ t% g - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
- Z1 |; f: M9 I- B' c5 L# Q1 Q; j: Q5 | - (SETQ NPI (/ PI 2)) m& H) }7 Z! m+ E( t [
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL))), G1 Q& d: Z( y& G: b. T1 ]
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))- _! i3 @! C6 w) }
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
9 b# T+ \+ Z- h! i9 W& a - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
1 X" T4 i) b# I& X; u3 O; Q - (SETQ PT6 (POLAR PT2 NPI TL))
) T3 B& o/ g. v& |; { - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))+ u/ x" Y) r: U/ x% X2 m' ?2 O
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))2 B% v5 J. e1 q8 z' q
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
1 R! j7 {1 b3 |! b8 I8 L3 D* ~+ i. M - (SETQ PT9 (POLAR PT1 pi (* 2 TL))): [# t0 Y; `2 T
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))4 D8 Z( H( O; ^1 ^ z4 ~
- (COMMAND "COLOR" "7" "")
3 J$ ?4 q+ Z5 n$ G - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")0 E8 \$ j3 b( }
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
S4 W" S' p- h; H+ G - (COMMAND "COLOR" "BYLAYER" "")
% d: x% l) _. V# ]( L - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")! k5 v2 @* I' D7 R. C( v
- (COMMAND "COLOR" "BYLAYER" "")
" J+ L5 C' b' q" b. _2 Q# k - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")8 U& m6 T3 x$ ?2 f5 W
- (SETVAR "CLAYER" "0")
! G" k4 ~! B/ K% e8 V, U# B - (command "ddedit" pause)2 T8 B% g8 D e$ |# ]7 w% J# c
- (COMMAND "COLOR" "BYLAYER" "")
4 I! r0 A9 h0 v! K- ]; f - (SETVAR "CMDECHO" CMD)5 u; j. P& z& n/ Z+ ^( T
- (SETVAR "CLAYER" NBC)7 H$ q" ~, u/ P* p
- (SETVAR "OSMODE" OSM)
{8 T, r, k* S. _1 @) R - (PRINC)% q0 `: J/ T9 w
- )( A, R3 w, c* t' X- ^
* s& M5 P2 b! p k, _. R- ;;; =========================== VE NET CAT CHEO (GC) =============================
3 h5 b: @- a" s6 S; J8 P - % z: m5 q3 K8 _! A
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang); }3 O2 F# q- a/ ]
- (setq x (getvar "osmode"))
0 p. u2 ?$ b! f- ]! b# F - (setq p1 (getpoint "First point : ")
; Y- y! v5 P s$ q ~ - p2 (getpoint p1 "Second point : "))
- _( O* J9 L+ C5 \& e( r - (setq l (distance p1 p2))8 M+ r$ \+ K9 x; X% v- y
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))" k+ Z; G5 n, I! \ v# V
- p12 (polar p2 (angle p1 p2) (/ l 5)))
4 ~; \+ l Z5 K9 b - (setq ang (angle p1 p2))
$ D) K2 F P7 x6 w' J* D, O - (setq p3 (polar p1 ang (/ l 2.5))6 I& s9 c7 ^* r8 f
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))2 w; a% k/ I; @! Q
- p5 (polar p3 ang (/ l 5))2 y d( B: A! d, E4 r, W4 o
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
6 K/ `2 A6 e- C7 j- j, D& S& u, w - (setvar "osmode" 0)
+ m- N: c4 `! z - (command "pline" p11 p3 p4 p6 p5 p12 "")
0 y/ N2 {7 E: M5 ~( h+ m% d1 g% L. p( g - (setvar "osmode" x); g' N0 z$ |3 m+ [& \* r; o
- )6 E( v# c. t, ]. @) ^ {4 x' t* x
- ;----------------------------------------------------------------------------------' K) O* E) H! @% R" C6 t) C" E! c
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6$ o6 M" s" R7 S% ^
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))) B. }- D: }& |7 z1 D
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
- [2 K/ x0 d& X( O' u( W% w - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: ")), o7 G2 Z, z/ F+ V! p
- (setq sb 50.0 sh 200.0 se 20.0)! Z4 v* D# |" G1 ` y% q, Y8 m
- (setq ang (angle ps1 ps2))/ ]; C# P% v" R! {+ R# f% I! z b5 B
- (setq pf1 (polar ps1 ang (- 0.0 se)))
! w8 i# P6 w5 g9 ^% v - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
7 r! a$ N+ {7 n; F0 G+ A; ]8 c/ u - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
& @8 w. @" K$ d - (setq pf5 (polar pf2 ang sb))3 s# J! T( I, i0 |: k1 u) m
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
% d' I" v# B- o( K - (setq pf6 (polar ps2 ang se))
6 ~" m& o; M" [; J5 J - (setvar "OSMODE" 0)
, k4 Q8 S# E) C L - (setvar "BLIPMODE" 0)7 J* H* n6 f- H, | `
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")( M t6 m+ l. W1 F
- (setvar "OSMODE" 703)1 _; D v. U; d/ R$ F
- (princ) )) a& U/ Q" t# b) K& c2 {* q$ d
- ;----------------------------------------------------------------------------------- J: e4 v4 i# n% R
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6! X( F. Y+ u6 O- ^2 v' g0 `
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))3 a& a1 |) j3 p7 j" r' V, E" _
- (setq ps1 (getpoint "\Chon diem thu nhat: ")) s' j; ~+ v. H* W
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))$ M4 \0 w# f* R6 E: i" e5 ~
- (setq sb 100.0 sh 150.0 se 20.0)5 L0 ?3 m; M$ D, l! o
- (setq ang (angle ps1 ps2))
L4 Q; q% i4 F1 } - (setq pf1 (polar ps1 ang (- 0.0 se))), g8 ~% E) F- h5 r( Y+ e( Z
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
: r$ }- b, X, h3 R& ~ - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))9 P B- r! I: B& e8 H3 u& R
- (setq pf5 (polar pf2 ang sb))
( V, p$ Q* H! p! V' @ - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
4 \! A4 z, X7 J: u- U) `# A - (setq pf6 (polar ps2 ang se))
; x8 @) M: [/ K9 Y6 S" l4 p1 o - (setvar "OSMODE" 0)
1 n/ P# `; T) N# z - (setvar "BLIPMODE" 0)
: A/ a0 D6 r: M - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
; ~& ~; Q0 c3 ^" V4 f# X# | - (setvar "OSMODE" 703)
3 c! C. K! O. I1 L - (princ) )+ \# m* `4 K* R, ^
- ;----------------------------------------------------------------------------------
! a- C( i+ k# O( v% } - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
3 s" z- \0 r8 ~# T' }& T" a - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))6 @* D+ O+ R5 _& e6 `
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
8 M9 a" P- e/ ^( q - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))* E t; C8 a% B5 s) @$ ?
- (setq sb 100.0 sh 250.0 se 20.0). M' w2 }7 B: Z/ k) L+ [( X
- (setq ang (angle ps1 ps2))" T V, N4 J3 b- l
- (setq pf1 (polar ps1 ang (- 0.0 se)))
: I5 O4 b: w/ z4 _ - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
- d5 h) f8 W- W2 B7 x; ~ - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
, H! O- D( F C5 R) x - (setq pf5 (polar pf2 ang sb))! P/ A8 W! c0 i! a4 D9 A7 }
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))$ r9 D; g8 i1 i. p
- (setq pf6 (polar ps2 ang se))+ G3 i6 @. U* v: u
- (setvar "OSMODE" 0)# H% P7 t: G% ?. S; f
- (setvar "BLIPMODE" 0)
8 K. o$ i' {: I) X% D - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")9 I% t4 L- q, ~, a5 v% }4 n
- (setvar "OSMODE" 703); [" q2 B) {0 |/ B6 b1 O _$ t
- (princ) )- {' C- S5 \0 E
2 c* e/ w5 b" B- ;==================================================================================
8 z# z# i- Y! U; n - (defun c:ang (/ ent pt1 pt2 ang)
: t3 Y Z1 o/ R. H - (setq cmd (getvar "cmdecho"))
# u+ a' s8 y0 F; _" i9 _; g - (setvar "cmdecho" 1)9 ~& }% q6 k( Y; W
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))' `/ I9 M- u( F
- (setq ent (entsel "\nChon duong thang:"))- G2 z) m; k' j& V3 z/ u% P
- (if ent
1 J9 j3 I- ^: u0 J - (progn
3 G* n* Q7 y6 o/ e; k - (setq ent (entget (car ent)))
: k1 r4 z0 Y9 M" L - (setq pt1 (cdr (assoc 10 ent)))! q$ F$ a4 k5 m3 t x
- (setq pt2 (cdr (assoc 11 ent)))
) r! K% S/ ?" I6 H* ?+ Y - (setq ang (angle pt1 pt2))
% b/ B# G: q: |6 p5 n. a3 ~ - (setq ang (/ (* ang 180.0) pi))) @7 i. v% z6 E4 O/ V
- (setvar "cmdecho" 0)
7 g. u& }1 G) G7 M - (command "setvar" "snapang" ang)& K3 {6 ~+ z: O1 c5 O
- (princ "\nGoc cua truc toa do moi : ")7 T g7 D/ Z; @9 m! ]; I) `0 Z+ O( S8 L
- (princ ang)
- V, G. M" {" v \1 [ n - )1 R* @, i: u3 {% N; e. i4 R: [ l, [
- )
3 m4 e f* r. M% H - (setvar "cmdecho" cmd)
" I3 P/ ^, a- I+ o - (princ)
/ n L+ Z5 P3 V: Q& O - )% A: i3 |6 }( _
- ;==================================================================================
& I8 q# I2 B# |; J& e0 O5 Z8 U - ;============================== KY HIEU DOI XUNG ==============================
, [, w" |1 G7 V- y4 H) Z4 [5 D - ;==================================================================================3 q, f) d6 L3 [+ O8 D; ]" E7 i7 K
- 1 ?0 I" B7 [4 ?) c6 M: u0 P* b: u4 ?
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
! [( i- W$ y2 ?1 z3 z/ s - SZ G45 G135 G90 G180 SS loi)
9 M' e- y0 ] D8 I$ E& D, c% c/ H - (defun loi (s)
; O1 m! w1 s2 G* a - (if (= s "Function cancelled") G' K) p3 b/ T- p( l# b, n
- (princ)& U; Y. h' I0 H! A4 ?2 Y( d! D
- (princ (strcat "Error:" s))
' U$ ~* l9 ~/ X/ O# X% ?1 F8 k - )
- T8 ]* P7 U/ s( k5 V. Q- s - (SETVAR "CMDECHO" CMD)7 J# C7 {2 g: \& u
- (SETVAR "OSMODE" OSM)
' ^1 b7 N0 ~4 ~ - (SETQ *error* OLDERR): F! E) G3 l: V0 b; Q1 A
- (PRINC)
7 K5 R3 `" |; E: ^; V* h - )# |8 [. V4 e* e' s
- (SETQ CMD (GETVAR "CMDECHO"))
6 V7 U+ Y" K( m4 U. f( T7 Z - (SETQ OSM (GETVAR "OSMODE"))' t; b" t q* y
- (SETVAR "CMDECHO" 0)
* \! @* g! Y: o5 ~0 z - (SETQ OLDERR *error*8 J, s7 N1 j: n7 F6 ~' P% z
- *error* loi). B# }. a8 d: x2 z( w* j' c
- (SETQ SZ (GETREAL "Size <1>:"))3 N+ R/ V/ W$ L# a+ Z
- (IF (= SZ nil) (SETQ SZ 100))
# o" {9 P! j: s - (SETQ G45 (/ PI 4))
+ M+ i7 v( m, u$ h - (SETQ G135 (* 3 (/ PI 4))): w& x* j" X1 @7 P, l( [1 f
- (SETQ G90 (- G45 (/ PI 2)))6 Q! B; v% M+ {: D% y8 Y' ]+ _$ n
- (SETQ G180 (+ G135 (/ PI 2)))
6 ?6 L% Q ^: E7 } - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))2 j3 ]6 r1 D5 h2 `2 z# Q, W4 G
- (SETVAR "OSMODE" 0)) Y" [; Y$ H( }0 |
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))- d2 O' y# ^/ W; M
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))4 [( V' E1 y8 B( x a8 \" Q
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))7 V0 k/ W( e2 f$ H& P4 l) e
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
U5 N; E4 g0 i/ y: K8 @8 I - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))% ~) m" ^5 o% j: w: Z
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
+ u0 C( r: i- @ - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
2 E+ l7 ~! S+ {# C& e6 {6 K - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
3 W: N& ?, x% O9 h+ @ - (PRINC "\nGoc quay:")
5 o' s! k: }' L) w0 A: u - (SETQ SS (SSADD))% [# Y" R$ q6 ^3 F( R. W8 X) e
- (command "layer" "m" "Dim" "c" "" """")0 u! _7 M3 \. A( L% u4 }
- (COMMAND "COLOR" "1" "")
6 T7 {8 k K* f - (COMMAND "LINE" PT8 PT2 "")+ Q: a) e3 M. }# ^: {
- (SETQ SS (SSADD (ENTLAST) SS))
" ?+ Z8 f/ d3 K9 J+ W+ b; a - (COMMAND "LINE" PT9 PT5 "")
~+ W, r, n" @/ A. `6 a5 l9 W3 |) K - (SETQ SS (SSADD (ENTLAST) SS))4 b% `/ @' l1 `( F% F" r# j
- (COMMAND "COLOR" "1" "")
& }, {4 D, s. M) [ - (COMMAND "SOLID" PT2 PT3 PT4 "" "")( p: h5 J7 `7 @, p( S6 v( i. s$ w
- (SETQ SS (SSADD (ENTLAST) SS))
' T' i0 ]1 v5 [- }8 ^" N+ ? - (COMMAND "SOLID" PT5 PT6 PT7 "" "")# A, z+ c1 z9 k- v
- (SETQ SS (SSADD (ENTLAST) SS))( B4 b# z2 E: Z
- (COMMAND "ROTATE" SS "" PT1 PAUSE); o- X4 K, e; m6 s, G
- (COMMAND "COLOR" "BYLAYER" "")
" B/ q+ O* f( g8 U% G - (SETVAR "CMDECHO" CMD)
' e& H0 n. |5 W# e' D( Y - (SETVAR "OSMODE" OSM)# q/ J! Y' I; C0 ]# F+ e
- (SETQ *error* OLDERR)4 u G! N1 }9 }7 W# N2 s
- (PRINC)
4 t1 ~ ~! l# h1 V1 Z2 L - )
. z1 ^2 Z- K) b1 `1 S0 h. j: t - : P O* `6 X/ |& m1 P% R6 b
- ;==================================================================================$ p4 d3 s1 }& {8 _6 p
- ;================================= KY HIEU TRUC ===============================
/ s9 B4 H8 S& k) } - ;==================================================================================" S' _+ V, n+ V3 B1 V* A
- ; Y' L3 P6 x( g# s. t4 b
- (defun C:vetruc ()
7 ^3 p4 {- w" Y8 q* F - (setq bk (getvar "USERR3"))
' s. N& W5 S9 d9 I' U - (if (= bk 0)
7 u0 j ^4 _7 U0 w% m a - (progn' g, E, g' {# I/ I7 l
- (setq cont "1")
; [: q" Y; {" K3 k - (setvar "USERR3" 1)) w5 s' p7 y# G' H [
- )
1 `, w; `7 K) R - (setq cont (rtos bk))
3 e. [* D0 a G$ a5 i* h6 y( c - )
9 ^0 g G5 U) p - (setq pt1 (getpoint "\n Nhap diem dat:"))8 l2 }3 t5 T3 ~- d; a
- (command "layer" "m" "Dim" "c" "" """")
+ ]" L w, L, z' l/ n- v* o- R# k! W" C - (command "osnap" "")" x8 w; N" _% E* o: s, W2 a$ r
- (COMMAND "COLOR" "7" "")
4 s. ]$ n h; ]2 n - (command "circle" pt1 150 "")
3 _8 J% g/ S! c+ R - (setq pt2 (polar pt1 0 150))- i, J9 Q, [# q+ E; S9 Z
- (setq pt3 (polar pt1 (/ pi 1) 150))
2 F$ ~1 M1 n) B; l& ~/ h- j# R' ] - (setq pt4 (polar pt1 0 300))
1 H8 J& A7 p+ I& I - (setq pt5 (polar pt1 (/ pi 1) 300))5 n( `0 _: H4 J' C% Q( R* p# p" w; p
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150)) J& l3 h. h( H* p' t7 @
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
2 L: j) I1 M: S/ d - (setq pt8 (polar pt1 (/ pi 2) 150))
. U; Y2 W9 d7 U9 A8 e5 b% a - (setq pt9 (polar pt1 (/ pi 2) 300))
+ v$ W3 I9 `3 R5 w5 Q8 \ - (setq pt10 (polar pt1 0 150))
- \% v1 v% U9 R4 r. l; C" h* Q - (setq pt11 (polar pt1 (/ pi 4) 150))
9 u' r. W) e9 q) [4 d8 Q5 U - (COMMAND "COLOR" "BYLAYER" "")
% _7 I- V, j6 f: i3 n. R: W0 H2 J - (command "line" pt2 pt4 "")
4 ?, g" p j3 _7 t - (command "line" pt6 pt7 "")
, C; N& s* d5 E% i! C - (command "line" pt3 pt5 "")
* c+ u" p" ?0 Q1 L' N - (command "line" pt8 pt9 "")0 e/ @8 s" e/ I1 B$ t
- (setq dk (strcat "\n Size:<"cont">"))
+ h0 K' R' L9 l+ w* ^+ X% ~& @5 k8 N - (setq bk (getreal dk))5 U& C' S) J0 J& \; X
- (if (= bk nil), a9 C# C: y3 H6 @; k& `8 T1 e
- (progn' {2 ]& \+ p9 b/ F1 o
- (setq bk (getvar "USERR3"))
- P! g o. {6 g, O - )
: L. a1 L. u n4 x! X0 z - (setvar "USERR3" bk)7 [3 q; A* p8 @) t) s
- )
8 A ]# ~8 v% e - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
4 {8 L, Y- r6 x, y - (COMMAND "COLOR" "7" "")- O: G4 ~6 \ } ?' Y
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" ""). |( @* M6 c+ r N6 f
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
5 |9 H7 A- C( w% I! j9 @% ~ - (COMMAND "COLOR" "BYLAYER" "")& [; M1 p9 @- Z: n9 N' W- W& ?5 K% j/ x8 ]
- )
( w- r' M z! s9 n
+ `7 O( r) k* w- ;=====================================================================% Z' |- }1 E4 B# I, I
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)& W8 ]. u. s0 y8 n
- ;
( z7 P4 a/ z8 h. x - ;Jeffery P Sanders
% H/ p+ Q) d! Q1 D4 x# A& H" ~ - ;( B/ B0 ]2 X' g, d
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)
1 l# q$ H/ g7 u9 s' \: I; L% i - (setvar "cmdecho" 0)
9 O2 s6 o* _4 b - (if(setq en(entsel))9 u n9 Y7 u1 M* V" l4 Y. H
- (progn0 l; d( p9 Y( S$ Y9 ~0 d
- (setq enlist(entget(car en))), |/ W5 f4 [: [ b4 C. s6 W
- (if(= "TEXT"(cdr(assoc 0 enlist)))' |3 m$ S' V1 S) Q" s1 f# Y
- (progn3 |' M, {2 b$ a7 s* t5 J
- (setq tx(cdr(assoc 1 enlist))
: J; R0 i& E$ c( T, [0 _: M g - newtx "" cnt(strlen tx)
/ p" W4 a/ v1 c7 D: g: I, Z: _ - note "\n...CASE Reversed. \n ": `, c+ }# x' j
- )+ E# w4 C* u& c9 s. S5 q: |
- (while (> cnt 0)
S1 a4 m& F) l - (setq tp(substr tx cnt 1))
! L! W; C: f9 |( B - (setq asc(ascii tp))
6 z# Z& z! n2 K2 y3 f0 A2 n - (if (> asc 96)
; C! H" Z1 s% ? ?: }0 Q3 t - (setq tp(strcase tp))
, d: M: ~. y/ W2 {1 u - (setq tp(strcase tp T))
" a+ Q$ `7 ^6 U+ P+ g& \ - )
0 {* F9 u5 S2 t% o- g) p' g" t - (setq newtx(strcat tp newtx))
8 Z# r9 f0 X8 F - (setq cnt(- cnt 1))
; ]8 | D6 I- E9 T1 s6 @ - )- z! F4 a8 {6 `; f) t! N8 k. S
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))* J6 q2 o, c. n: X" d0 S9 J
- (entmod enlist)8 t L' {" Z$ Y( v, C1 v4 E
- )
' o8 Z/ F, N, m8 \9 A - (setq note "\n....Text Only Please. \n ")/ ^: K; b: O9 m2 `( K4 x
- )' p5 O! l4 t* u$ p% O8 X
- )
/ N( ~; P, u5 z) u7 L - (setq note "\n....Nothing Selected. \n ")
9 B2 R6 S; G0 @- T - )
- _8 d4 M# Q" V8 j! p - (setvar "cmdecho" 1)
; c7 F& q* C1 R! r9 H - (princ note)/ z7 L2 c1 e& Q' }. W6 Z
- (princ); R' c1 V+ r4 J
- )
5 x, }! x0 v) v" M, N' @5 i6 ~ - 7 w4 C. X W3 [& Z# v. `
- ;=====================================================================% l1 J# }6 U! _ J
- ;==================== NEW TEXT STYLE UPDATE ==========================
- e( V2 r. O# I9 f5 h3 \( Q - ;=====================================================================
4 N- c4 M' H# ? - & e. O# j/ ^ w
- (defun c:nS (/ tdt ssdt sodt index)
$ f% p! M- K( M* x3 d - (defun ObjName (ssdt /)
/ W; ^- @ u' p! q+ Q; ` - (cdr (assoc '0 (entget ssdt))): f1 K3 R2 `/ W9 L$ Q, y1 f: Y2 o- f2 z
- )
8 c2 g/ j/ I& H2 w& D! s - (defun MoPL (ssdt /). b: R, w4 o/ F5 B' v9 f/ N
- (= (cdr (assoc '70 (entget ssdt))) 0)
- y$ a5 e: i" c- A# L4 U6 A - ): M' }8 ]* _- O/ ?* i- s; p& y" V
- (defun NoiPL (ssdt /). ^- r1 w% D$ D; I Q4 z; p
- (if (MoPL ssdt)6 L7 K" H) K) g0 W4 [) Q
- (command ".PEDIT" ssdt "J" "All" "" "X")
5 f' g, n3 S# r L" ` - )3 y; k; R' O9 Z" ^6 A% T! y. r+ b* ~
- )+ _9 A) p! q i3 }
- (defun NoiLC (ssdt /)/ f S0 S: s/ U, ~
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
" F, l( n2 ?+ I, V8 i% h9 x& V2 ^ - )
& v: }$ N5 t0 I( x6 S( ? - (setq7 k3 O# W" V; m. S( o' U4 \
- tdt (ssget)1 M' X' I9 K) G6 l: f t
- sodt (sslength tdt)
5 \! y& q2 U, ?0 I: t - index 0
7 O0 {( C% `- a - )9 i- w; O$ P) f! k: a' p
- (repeat sodt$ a3 `6 ] _# o6 U9 l( r5 D$ _: v
- (setq
$ ]3 B& m( F% P" h6 K - ssdt (ssname tdt index)
4 a5 v0 M7 \& S* r3 L - index (1+ index)
. O/ D T: Q6 C k - )+ |: {% j* U/ D3 N2 \) u' W
- (if (or (= (Objname ssdt) "LWPOLYLINE")- u" o; Y! M3 ^/ W/ x
- (= (Objname ssdt) "POLYLINE")
6 b' _0 a+ C" V$ k8 Q; J5 T - )
! }# b2 C; C5 S9 M% c8 t2 n; K' u: @ - (NoiPL ssdt)4 W2 {/ f8 i" o; q J/ P5 _3 p. A
- )
" X9 J. b" s/ b; O( D" d - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
' V& [! @9 s2 z) H: O$ x - (NoiLC ssdt)
8 E; }6 G4 v- o - )
|* y7 b- _! R4 E. R+ ]3 s& q - )% e4 z1 A1 P; F5 x& U
- (princ): F9 s1 r" [ e
- )
; Q: ]- l* B) c
1 X: O; P* b2 C* O5 N% f+ Z- ;=====================================================================
+ [/ ]1 T. e* n; r W4 e - ;;; AREAM.LSP
2 ^/ q1 n7 Q; U- s5 T - ;;; Function: Calculates the total area of selected objects
* [5 L. e4 L+ ~: D - ;;; By Jimmy Bergmark
+ i: y% P; [" W# n - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved9 I3 Q6 T k$ {8 k' ~( `
- ;;; Tested on AutoCAD 2000
3 F& c0 A7 Z, t( w. n - ) y! j9 s8 b' v% |
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)6 I/ j$ C0 z/ C% a2 F6 M' P$ P- {8 B0 Y
- (defun errexit (s)8 U/ {+ C* F- u4 G2 L- B) b4 Y
- (restore)$ F. M6 I* f" m( r+ q8 r8 N) u
- )( S- l0 `& v' r! I- d6 w
- ' A% s& p6 o0 X0 _2 b
- (defun undox (). K s# \& K \! V6 p! w
- (command "._undo" "_E")
2 Y% ]* Q# R% W% o" N; @! a: h4 P - (setvar "cmdecho" oldcmdecho)8 p' N4 b% B* F& |# j8 o
- (setq *error* olderr)
. ]) I, h& ^6 A) O3 l - (princ)" m t9 X5 f4 F2 K L0 U
- )
7 _; M7 E: h( c& a8 p- \/ }" |; N1 e - 9 Y6 N1 y$ q; k7 }3 g
- (setq olderr *error*
2 D6 w [4 g; ~7 O - restore undox
9 U9 U3 G3 u8 V- ?6 _. a$ s1 V - *error* errexit
2 a0 g4 z' {2 @3 Q# @( z$ S - )( v, |4 D8 P2 ]" b$ g/ |
- (setq oldcmdecho (getvar "cmdecho")) d3 W9 C* h2 f) Q6 Z# W
- (setvar "cmdecho" 0)7 z( A/ G. Z8 ^! _/ e
- (command "._UNDO" "_BE")
. V0 H4 ?" l( i6 W1 j3 x& a B( y - (if (setq ss1 (ssget '((-4 . "<OR")
( z: u( t5 G, f/ q0 q6 x - (0 . "POLYLINE")
$ R- s! a* L% N; U( s" @ - (0 . "LWPOLYLINE")6 \) R, P; G+ X7 Q2 M3 T- j
- (0 . "CIRCLE")1 R, J" j" ~. A7 F' T& D2 |* Y
- (0 . "ELLIPSE")
" O/ m/ n7 P0 H7 _8 Q1 T - (0 . "SPLINE")
% q) @9 ^* y8 _ x - (0 . "REGION")
0 W4 u) [5 i o7 g - (-4 . "OR>")" P L! \( ]2 i3 _
- )
; ?$ v* m) d8 ^/ E! Q7 n) x e - )' l( D1 X$ ~, y! K
- )
- d! n+ s. u Q! x: d - (progn9 ~: W4 T C5 L) V; h
- (setq nr 0) s: V; f% w. ^0 O
- (setq tot_area 0.0) {% I7 _2 `! k
- (setq en (ssname ss1 nr))" D# H5 o# ~4 T- @) S+ A
- (while en
+ F' L0 v& A6 x# m+ i - (command "._area" "_O" en): Q2 \* |" L# i* f8 B
- (setq tot_area (+ tot_area (getvar "area")))' i' a0 K' z2 t! }# C8 s
- (setq nr (1+ nr))
. `/ N9 A3 }$ P& v6 J2 v( J - (setq en (ssname ss1 nr))- Y: ~, o, w1 t0 s
- )
1 d6 C* `; z+ w - (princ "\nTotal Area = ")
8 c- L8 A. Z. m6 V5 H- ~: O - (princ tot_area)
% n1 z0 f* B# i6 p. g, N. `% M - )0 a$ v z; H: I7 v: Z2 F2 m8 P
- ): N9 R. W. N# P! X
- (restore)
1 W8 D* Y' y( |" l - )) W" f: e8 m& _; O/ U# \! f
6 \9 \1 T& ?- U+ s- ;=====================================================================, f" j: e. w% \$ m% U4 n! M
- ;;; By Jimmy Bergmark
- g5 q9 V8 s* L- b7 S# l7 w. m5 X0 @: L - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
1 A. t% P1 l( l! k" B" I- R - ;;;
5 k/ y# l# r5 D1 }8 i9 h& Y - ;;; Created: 2008-03-31
7 [* {( R, B! }' O" ] - ;;;
5 g S( {0 W$ |9 `! h" t' {4 P - ;;; Convert Attribute definitions to mtext
2 \& p9 c0 J: K3 c9 b - ;;;. Q+ P- S$ U( \- Z
- * v; z. C9 ?* U( G s
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)- O/ w3 [2 V7 [! ~
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
( N2 d& c+ @4 j! N - blkcnt 01 J* {) w& r% J7 Z8 u
- )
9 i8 q: [+ Y7 K6 h - / }; z, f" m% |# e: h: {
- (if eset1
. r7 \$ ?' e6 X- Z - (while (<= blkcnt (- (sslength eset1) 1))
6 B$ R6 e) h6 o7 {. w1 U5 n - (setq en (ssname eset1 blkcnt)# ^1 i* u0 X$ q, N! r
- enlist (entget en)* {3 I' S' t1 j3 F' r" k0 ^
- ht (cdr (assoc 40 enlist))* G% z5 u0 @4 L M( G
- pnt (assoc 10 enlist)
) M, _# B$ ^7 Z0 x7 P* J - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)' p) i b# j. V$ _1 P* i9 I0 p
- space (cdr (assoc 67 enlist))( |, K# o$ U5 Q% A3 H9 V: f
- )2 ?. G8 \1 q. W* `) R* c* s
- (setq vl (list; c: S z# I" [; H
- (cons 0 "MTEXT")
5 J1 y) s3 J0 V$ r$ w - (cons 100 "AcDbEntity")
4 N- E& e. k# z5 A) g - (cons 100 "AcDbMText")4 m5 A- w: `" L6 H
- (assoc 7 enlist)( ^) w# M3 r$ f) `' R
- (assoc 8 enlist)9 ]' q! m1 l9 g1 w0 V: A3 B' V
- pnt0 z* z9 y* @5 e; U
- (assoc 40 enlist)
9 g. B0 b7 [4 m+ d& x3 r - (cond ((assoc 62 enlist)). [/ i" j" ^: x, U
- ((cons 62 256)), e# X) N/ y0 X) m* ^0 \
- )
! l- j) P; e5 N5 A! ] - (cons 1 (cdr (assoc 2 enlist)))
2 |, H/ F) `% G- W; N0 E - (if (= space nil)- p! ] ? k- ?1 r$ X! n
- (cons 67 0)
. H1 Z V0 V/ e. s: \ - (cons 67 space)( U& A4 I2 V8 X
- )+ w# H0 ^- I. A! Z
- )6 E) a' }) Z: F/ g3 Y( f$ O$ _
- )
3 {7 F9 S2 I2 k) E1 h( ] - (entdel en)
& \3 r5 R7 K1 m) b - (entmake vl)$ F+ x4 Q1 |! |# ^6 S2 h
- (setq blkcnt (1+ blkcnt))
7 m& w/ h6 l7 X0 C7 x7 A/ {, P - )0 S% C5 |; {) U$ \
- )% E% n0 B2 v& A
- )6 e. I& ~/ s C8 {. w+ K5 h# X
2 Z: E/ Z; F" d: T3 q. L0 h- ;=====================================================================
; L! R1 o0 N: W6 i - - y; k& C% p0 E* L7 O: F) g8 ~
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)" f+ U1 a% x# W/ w3 i% d
- ; Khoi dau cua chuong trinh9 v! m3 U. q8 ?' f: x+ L) b
- (princ "\nCopy Inteligent...\n")( R2 m2 x. V+ E. e
- (setq luuecho (getvar "cmdecho")& w# ]; p. @+ H: z4 s' K
- luu *error*$ }6 z$ U& @) R( A/ H
- *error* ketthuc: F- {$ m9 z9 D) P& N
- cumdt (ssget)
' n, J4 o% J& t0 N! [ - dodai (sslength cumdt)
2 [/ w- I0 a* q( ]) W - goc (getpoint "\nSelect base point:"): P7 h: \ Q; L: D. R( J' J
- thoat nil$ L# g% B& W$ k
- dem 0
, w( {. R8 ?2 R2 W( C" ]7 A9 L - textxl nil
7 o; H7 t ?8 S5 n6 y# @% Z - );9 | P* y6 [1 L0 x
- (setvar "cmdecho" 0)" p1 ]- g" L0 Y. V9 K8 @
- ; Loc ra duoc ong text de xu ly
: K7 p9 m8 r4 \6 d - (while (and (= thoat nil)/ v8 w8 D5 f3 v0 N" ]; F
- (< dem dodai) W4 V) W: m1 B9 s0 n
- )1 r6 N5 @, C" E) b% I$ G# S
- (setq ten (ssname cumdt dem), S8 s) [: Q7 W* R
- dem (1+ dem)* l5 A! N; x- w- k% n0 L
- doituong (entget ten)
. }: X/ d6 T. G: R% z - kieu (cdr (assoc 0 doituong))
- y" L+ t& S' R3 f9 M3 P - )
1 K( U, M! l& I4 a& d -
; G& w2 y5 K* ?) T3 H- I, V2 A - (if (or (= kieu "TEXT")
8 b- F" [$ Z! c! R6 D V - (= kieu "MTEXT")
/ y- l5 m# D' X - )* K: q7 N. z; R/ `; j
- (setq thoat T x+ l" g# _) K3 L/ ]0 B
- textxl (cdr (assoc 1 doituong)) ( N8 n& d3 z# U+ K8 k
- )
, Y' `: b" e% z - )
6 p5 u/ M9 b# d* D$ F; Q0 v5 {3 N - );
5 r' T) F, u8 `( t - (while T
& T5 A L& h9 w3 F - (setq toi (getpoint "\nSelect next point: " goc)5 a% s4 W- ^5 H- S' _- L
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
6 F# j/ T% d5 g; Y3 ?6 j3 f {# V - dem 0+ A9 b. @% [4 b
- )
# R$ u4 ^8 b# q. ] - (while (< dem dodai)- i1 o. A/ @9 W: D( {# U5 l+ V
- (setq ten (ssname cumdt dem)+ u: P4 C/ F; i& \5 V
- dem (1+ dem)
3 q5 d, ~* J d6 r; C6 A4 o- X- a - doituong (entget ten)# C {8 e- N& z
- kieu (cdr (assoc 0 doituong))
! h. Z. i: a; U9 ^8 a7 \6 D - )0 N: g9 t8 O3 @
1 J8 |( h C* A- (if (or (= kieu "TEXT")
# Z/ w7 M6 j0 A0 B+ {4 E - (= kieu "MTEXT") " @, ?& T( j* @
- )
* o* i) |& M9 P' N3 t" M - (doitext ten)# B# u, k; h$ O$ ]& R
- (copy_dt ten)$ _& X% ]3 ~' j4 R' Y4 [
- 5 o# J$ E( D% H6 N( d/ O
- );if$ `. r; i9 `0 g# Y
- )
/ B/ |) f/ l! M( B" e- p! a - );while
; t$ w! W9 y: h0 P$ T4 q - (ketthuc)
* r% R7 ]& J' s3 S - );defun8 N* _! [/ {' W" [& c! H
- (princ)
5 \! R4 u) o1 e5 G& s1 v; }
) a3 Q: m5 V6 D- ;=====================================================================
( }: h" T! l5 u - ;;; By Jimmy Bergmark* X2 L f* P5 B2 K, ]7 Z
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved/ @3 }, F H( [0 p$ Z
- ;;;
8 `8 f. t; X: R' D6 w5 O' X - ;;; Created: 2008-03-31
$ H( R& q8 E$ p, E/ ?& w - ;;;% I( T8 X1 v' Q
- ;;; Convert Attribute definitions to text
: I, f, e1 }6 t3 B - ;;;- L" o& h4 k3 a$ o! R
- 3 `2 T, X. e5 _7 Q I
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
7 n4 S! `5 L$ u; P p- [" a$ H6 [- X - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
+ r( u4 ~/ W; j" f - blkcnt 0
8 f) d) @( B r" o7 L - )7 p9 m/ q6 I) w
- 5 K- t( p, T; S2 x% X( i$ b1 L
- (if eset1
& M; I+ _ r, I/ n - (while (<= blkcnt (- (sslength eset1) 1)); i9 U; I- i! j. d
- (setq en (ssname eset1 blkcnt)4 ~' e/ N! O. b y9 i
- enlist (entget en)% S+ e8 w0 I# J" {: }. ?- w
- space (cdr (assoc 67 enlist))
2 h' ]9 M1 z! [0 d, G8 @- R - )9 w- [ g. V( M2 X. q0 B
- (setq vl (list. {& H0 [9 x( g6 F* c+ e
- (cons 0 "TEXT")
0 e) g" D& Y1 X. B8 v' U% j& u- n - (cons 100 "AcDbEntity")# n v) \/ _2 A6 _
- (cons 100 "AcDbText")" ?5 \! Z5 a# f0 _6 q, F) L
- (assoc 7 enlist)
# }) _' u* {0 p; c8 c - (assoc 8 enlist)! L: g& x6 O& h. c" s
- (assoc 10 enlist)2 a% b( }# V0 h9 u
- (assoc 40 enlist): c& U6 V2 i2 s- Z% X
- (cond ((assoc 62 enlist)). l7 ^2 e1 i, r4 ~& m6 p! q
- ((cons 62 256))) C0 O M; O- U5 r7 C& v
- )
" P0 O8 Q1 c+ Q - (cons 1 (cdr (assoc 2 enlist)))
2 Z+ ^* v: W, z - (if (= space nil)- V! ~: T3 D& C% y7 x1 D! l0 y
- (cons 67 0)8 p5 l( O6 U0 B- X9 @
- (cons 67 space)
4 B/ v+ m3 ?! y( D! l$ o8 `& C - )
, a9 K8 S" w& _, @ - )- F/ N( G3 q" F1 { w C
- )
3 C0 j7 |( R1 C5 P4 o! S& d3 w - (entdel en) @% _ k5 g& {- {- _. N
- (entmake vl)3 M; ]: F4 l3 T6 x Y" P
- (setq blkcnt (1+ blkcnt))) Y+ n1 a$ I2 t5 p5 m7 V7 v2 y
- )
9 Y+ k9 _5 v! P% [. A0 J - ): y+ }5 H% E8 ], H' G E4 X+ T
- )2 e! d' x1 ]; v3 p# |7 s
- ;=====================================================================
5 i6 u# G; u* ?) x* B4 s% ~ - ;============================ Doi Truc ===============================8 v3 |6 e9 z, g
- ;=====================================================================' v* M3 E2 |, k
. Y, X4 r# d( \- ;=====================================================================" ?* n/ {/ e6 D
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
, `; l3 ^0 d5 {* n2 _ - ;=====================================================================) r; a+ G7 e9 @
- (defun c:ga1 ()8 B" \% q7 l: l# W
- (setq a (getpoint "\nChon diem: "))
& U I' L; \1 Z5 L. ~8 }' y - (setq b (getpoint a"\nChon diem: "))
2 I2 X) }! t, J* n: ?) j+ l - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% F2 O- @6 M! ^- }! d; `
- (command ".circle" c a)
8 w5 a5 a0 B9 b: A; @9 \) Y& b - (command ".line" a c "")
( w3 V; ?( N1 P) L5 F. F - (command ".array" "last" "" "p" c "1" "" "")# H, J% f: e" m3 ~
- (princ))4 K( W) [9 g( h M) t; J% H
% _; m. {, |5 p. r4 h4 Y/ E- (defun c:ga3 ()
1 X4 p& M, @ k - (setq a (getpoint "\nChon diem: "))
# k/ y. u. c9 X0 a4 T0 S - (setq b (getpoint a"\nChon diem: "))6 S' i7 O% G9 Q- o/ ]8 N: K
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ y: c( r% V$ W2 T! l - (command ".circle" c a)1 v/ h" ~3 D0 m2 l0 X" j8 E
- (command ".line" a c "")
& O+ q( G- ?+ f* ]1 ]3 \ - (command ".array" "last" "" "p" c "3" "" "")
1 a) [! s: N% u5 k' y7 o) T - (princ))
" ~9 O5 `5 e+ K4 {+ j$ C
6 K! G8 o% Y6 S- (defun c:ga5 (); D: k1 N7 q! @
- (setq a (getpoint "\nChon diem: "))
, q1 |5 I& j" s- J - (setq b (getpoint a"\nChon diem: "))1 E, X: W: G* J' z0 X8 H, {) x, j2 X& A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' w7 ?( O# I% D8 M+ R
- (command ".circle" c a)
% u" u- f# x% h9 e) p" A1 Z- O - (command ".line" a c "")' b: C& I/ g; Y
- (command ".array" "last" "" "p" c "5" "" "")
+ |5 E3 K2 \+ d# y$ Y6 y9 T2 f - (princ)), x# [9 M2 H7 e# T& `4 H1 p5 I8 Y
" o y8 C& o- ?$ W/ @- (defun c:ga7 ()3 x' Y, {, s- d+ o4 f! W0 b3 y# b
- (setq a (getpoint "\nChon diem: "))2 c) e6 v5 i5 i# u5 M4 G0 \
- (setq b (getpoint a"\nChon diem: ")). r. I4 S5 ^. a& o8 {$ N; R4 d
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), w% Y$ s: E5 x' L8 J7 ]0 j* F
- (command ".circle" c a)0 F5 J+ R/ k9 C' K! u) h" o
- (command ".line" a c "")
$ w, H8 \+ ^- s+ C1 U. Z - (command ".array" "last" "" "p" c "7" "" "")
+ z( J Q) [9 [8 d - (princ))
6 Z1 g6 D/ _; q1 _* c$ Y) M
/ p/ R8 N4 I+ V7 h- (defun c:ga9 ()+ p% m) b& g% Z F8 P/ `6 h- p2 x
- (setq a (getpoint "\nChon diem: "))( R! \ k( e9 q! ^+ L9 T) d# K
- (setq b (getpoint a"\nChon diem: "))0 [# ~' |! m! j1 |% _! V
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 `' `* s- `6 g6 E# k* H( I
- (command ".circle" c a)3 r6 y+ q2 |$ w9 E3 U
- (command ".line" a c "")* F3 c+ X/ b% `& r" M% n
- (command ".array" "last" "" "p" c "9" "" "")1 B# T5 K; M/ \1 F
- (princ))7 l- a4 \2 _# m; r8 D! x
1 V2 ^( ^( t4 H$ j2 c- (defun c:ga11 ()
/ ~. {# u" |% t. v( [5 E0 { - (setq a (getpoint "\nChon diem: "))7 s. |, o/ k x2 C) f, x
- (setq b (getpoint a"\nChon diem: "))- |5 K: h9 Y' j" J' r3 t
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 q R% I9 ~1 R, N4 a: _ - (command ".circle" c a)! X7 A9 u+ p, v5 k% ^& ?
- (command ".line" a c "")
' R2 S' i. H# j! e( Q; @ - (command ".array" "last" "" "p" c "11" "" "")
1 q/ I, M0 {$ w" k1 P - (princ))) K% X4 d# _, _5 a% b, p Q
* r @# I7 k i, D% f2 Y& F- (defun c:ga13 ()& Q8 S- j4 D Z# E2 C$ E
- (setq a (getpoint "\nChon diem: "))
?- B: j3 d& [9 x. x5 B - (setq b (getpoint a"\nChon diem: "))
. F7 Z+ c- V- P6 D7 u6 m6 ]8 r8 W - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* j; w( @2 U( Z- j% h* S2 k) q
- (command ".circle" c a)
4 O; k6 u. S9 F/ v0 l+ ~- z - (command ".line" a c "")
2 G4 _; |4 b9 g" H - (command ".array" "last" "" "p" c "13" "" "")# A: S3 F$ p, M0 h: Z5 `- j
- (princ))9 f1 _( X0 J) h- N/ l/ ?
- O& M7 z/ n2 {0 O2 I8 T. q2 e- (defun c:ga15 ()
3 o0 ~5 d v4 {6 u' J( J - (setq a (getpoint "\nChon diem: "))0 q& W: x! C- `- O, y
- (setq b (getpoint a"\nChon diem: "))- \# l7 ~; t! x/ e+ C
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 s% B" T% |5 e n& ^4 L
- (command ".circle" c a)" s: A6 C5 q; ?$ o1 i
- (command ".line" a c "")
* L8 q" y r. A - (command ".array" "last" "" "p" c "15" "" "")
' K8 E; K0 ~; ^% O* K$ S; e - (princ))
/ N- o! l& [# d1 h - : f& V k' c' u+ w: q4 Q+ |* V) U
- (defun c:ga17 ()
3 H8 _) R4 k5 p# \. V8 |8 ] - (setq a (getpoint "\nChon diem: "))
1 g, ` _ D8 g& H/ `9 V - (setq b (getpoint a"\nChon diem: "))
( X4 u# D! S9 t' |* \ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
@9 y5 D& U. \# v0 g# X - (command ".circle" c a)$ G+ }0 {8 h5 s$ I
- (command ".line" a c ""): ]0 N5 z) j. d8 a6 o* N4 W7 \
- (command ".array" "last" "" "p" c "17" "" ""). I$ Z* A- S3 E% Q
- (princ))9 z3 E8 p0 e; K1 M1 ~0 ?% g
- f3 \: g% O+ V# c( C
- (defun c:ga19 ()8 ]3 W1 T( P* q/ S8 r7 c+ K$ P
- (setq a (getpoint "\nChon diem: "))
& p" h0 J/ m6 _; I - (setq b (getpoint a"\nChon diem: "))
% ?* @6 D5 ]5 c$ x5 V& z: i. ~8 E - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! |+ \+ P0 L# D
- (command ".circle" c a)
: R6 d: i- a+ C1 {' L5 ]3 G - (command ".line" a c "")5 J2 _- K4 h+ S& Z' M5 q2 P; p
- (command ".array" "last" "" "p" c "19" "" "")
9 [" U: F J& C( p4 m" }0 E - (princ))/ f! J( Z) r" t. G& v
6 x/ e1 e# p5 g+ ^) e9 h, L- ;=====================================================================
$ ^2 K: S( g$ t' @ - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============) n; ~9 h# q) ^: {/ \
- ;=====================================================================- w1 b+ I0 N. ]: v3 W' z
- (defun c:ga2 ()
& G: \* }% v6 F* j - (setq a (getpoint "\nChon diem: "))
2 t1 E) I, y" p. @) C" f - (setq b (getpoint a"\nChon diem: "))
& @2 M3 ~, T9 Q8 D ~% O" t - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 H3 c. n- y0 U& {1 V! o2 [ - (command ".line" a c "")- |( z2 o8 x9 A( t
- (command ".array" "last" "" "p" c "2" "" "")
/ ]& H8 m1 I9 l3 H3 G/ [ - (command ".circle" c a)
1 n2 G! e6 R1 A - (princ))" c8 P/ y4 E8 s
- 3 ^& x+ X' V3 \1 |* B( b
- (defun c:ga4 ()5 e5 R% Q5 V; K6 j4 |! Y
- (setq a (getpoint "\nChon diem: "))2 r4 Z; Q! [% t: f0 ^1 h9 _# h
- (setq b (getpoint a"\nChon diem: "))
* T8 D7 Q( X* t! q9 x - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 h5 v) p2 J. z
- (command ".line" a c "")
- T* L/ g, q6 Z+ t) x4 v0 u) ^( W - (command ".array" "last" "" "p" c "4" "" ""); Z3 V$ o) o; |% R5 }
- (command ".circle" c a)+ L: b. ~: r8 b* q% b) H) T
- (princ))
1 ~3 ~; }4 O4 [4 a - / g% Z% m% L5 H! ~
- (defun c:ga6 ()6 X! a4 p9 `; P( f9 _8 b `" O
- (setq a (getpoint "\nChon diem: ")). c' H$ y- X5 W% c1 y9 V
- (setq b (getpoint a"\nChon diem: "))
0 ^. t$ s( @, t8 f/ l( {/ C - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 C8 i5 i( i& ]0 }5 y9 }, s - (command ".line" a c "")
% @$ O$ N" q0 A2 Q8 t - (command ".array" "last" "" "p" c "6" "" "")
2 z& ~+ A# q4 ^) T. O s. V, z& z - (command ".circle" c a). A8 _9 R" |& M+ d h2 R- Z# @
- (princ))
& H: V; ~$ Y1 D - ! V2 A/ n, m, Q c5 M9 \& O" H
- (defun c:ga8 ()" a& I! w; u" w2 g; n8 c6 d
- (setq a (getpoint "\nChon diem: "))
/ [& V6 S; _4 C( n - (setq b (getpoint a"\nChon diem: "))
6 Z6 { b/ o, F& u - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ {' a' R6 A/ L$ F
- (command ".line" a c "")
3 t* }4 t" |* h: S! t - (command ".array" "last" "" "p" c "8" "" "") R' |: |1 O7 R5 a7 H
- (command ".circle" c a); C. e z b3 m' K9 M9 I
- (princ))
: a+ q3 O* {: Q4 P - & S& `+ \% K( Z7 p9 e$ _/ {# U
- (defun c:ga10 ()
& ^6 s7 S# m) ^+ N; W5 c/ o - (setq a (getpoint "\nChon diem: "))- N% O; q) V) l0 s6 W( q2 ?
- (setq b (getpoint a"\nChon diem: "))
( z1 ~. P( n2 i% E9 \/ I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: P8 J: b3 O# B6 ^0 y8 r - (command ".line" a c "")
6 Z% f) b5 L; p0 `+ z% O - (command ".array" "last" "" "p" c "10" "" ""), s0 Z/ h8 s/ n% A
- (command ".circle" c a)
* z0 [3 V1 e# r3 k* R9 H - (princ))" ~5 U0 ?( _0 H f( _
- " [/ ~4 W+ x4 `! h9 Z0 }
- (defun c:ga12 ()7 H+ c K4 o# C
- (setq a (getpoint "\nChon diem: "))
( _# S+ V0 n0 D8 d' f, _, @ - (setq b (getpoint a"\nChon diem: "))/ ~- t- _- ~4 H8 n v" l
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* c( Q+ \" i3 F. b
- (command ".line" a c "")
0 T y* v* F. U) h% s! T - (command ".array" "last" "" "p" c "12" "" "")1 ? Y! T8 ?8 u4 o! K! c
- (command ".circle" c a)4 @8 a6 `. w5 z3 _
- (princ))$ d2 X! R1 X% | I/ {
! A0 ?+ q: E9 Z$ |, O- (defun c:ga14 ()
- y9 L8 X% [! v' n - (setq a (getpoint "\nChon diem: "))
& W8 s" E3 X$ ]+ j* j - (setq b (getpoint a"\nChon diem: ")). z1 l; I5 t- S) M5 [7 ]7 B
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! m8 w' V& k6 Z7 a7 d9 Y - (command ".line" a c "")
3 l" y9 y% C/ V R% I$ H - (command ".array" "last" "" "p" c "14" "" "")
: | G0 i2 o. c$ \. P, q' s- L - (command ".circle" c a)$ i7 A4 t# c2 _" k7 X* \; T
- (princ))
0 Z" i# C' `# v+ Q: l - 1 I: D; R& \8 F
- (defun c:ga16 ()4 _/ d2 B |0 H6 D+ c% `* [. ^
- (setq a (getpoint "\nChon diem: "))
" ]1 f& M8 f6 X7 `6 ~; o - (setq b (getpoint a"\nChon diem: "))' [% f. v8 p+ M9 U* O, ^' Z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 w6 k d2 m7 E - (command ".line" a c "")
3 S8 J8 P! C; j$ a - (command ".array" "last" "" "p" c "16" "" "")
' T5 m* H* V p2 L8 A+ f - (command ".circle" c a)
: A: I! U$ `; }( X+ `/ L1 J - (princ))5 T+ W2 o/ C$ v6 Y/ l- F
- , a8 q5 N/ }" m H$ u0 y/ {9 [& ^% W6 Q
- (defun c:ga18 ()/ ~- w$ _2 X$ |
- (setq a (getpoint "\nChon diem: "))% J# t( [3 e6 s: R% o t3 f
- (setq b (getpoint a"\nChon diem: "))6 b" U @$ `. s4 C. |1 Y# N% M
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 Q! Y- ^4 ^4 z; q8 a+ ?, v
- (command ".line" a c "") B# B/ r; ^. p* V( d1 D
- (command ".array" "last" "" "p" c "18" "" "")
- g' \3 G$ b! E% T4 W0 A; u) i - (command ".circle" c a)
3 y) V" H( k: Y& q& E; J - (princ))2 i9 ?6 J4 F6 Y- i
$ @/ m, h1 ^( u# m/ q/ K- (defun c:ga20 (). y+ [# j+ \4 e) B6 Z$ p! a, H
- (setq a (getpoint "\nChon diem: ")). O" q) }7 O' j( F
- (setq b (getpoint a"\nChon diem: "))
- H# e6 i0 o+ d5 S* u* K - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); Q2 D7 t ?/ @$ _" u) o
- (command ".line" a c "")' k( @2 l+ i1 }4 ~9 `/ w
- (command ".array" "last" "" "p" c "20" "" "")
& W# ^: Q ]2 O" O - (command ".circle" c a)0 v; b) D% ~( V% s+ Z: g! V
- (princ))0 M- q( F5 Y, ~. P+ f# j. n7 V( w
- " i0 p4 s8 q( e
- ;=====================================================================
) C5 y1 _& m- u, o5 [ v& C - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF =============== ?2 O8 ~' m' `# C7 z6 e$ y% G* j
- ;========================== 06-11-2016 ~ 18h00 =======================. x4 [) | c; s$ G) K: h1 X
- ;=====================================================================. T- U6 A7 t: W0 O. \
- (defun c:ga ()
$ M/ Q/ g- ^! c# T- D' j - (setq a (getpoint "\nChon diem: "))8 q4 Z( |0 Y0 Z! i
- (setq b (getpoint a"\nChon diem: "))
, x y! O9 r/ R d8 h, e& ] - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 R3 Z" Q/ f* t7 C0 R/ G - (command ".circle" c a)
* A6 n/ ]! h8 O, d+ C; f/ }0 t - (command ".line" a c "")
1 S. s; w; `4 Q8 ^7 ^ - (command ".array" "last" "" "p" c "NUM" "" "")
+ r' j7 M! k; L& u' l: N - (princ))
* ~/ O! @; Y+ o! O5 m. t
. X# K1 f" G3 O* u. X( L- ;=====================================================================
' u) x6 H# |& L4 `$ j7 N( V - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============, k: A3 t" V: N* s& X
- ;========================== 06-11-2016 ~ 18h40 =======================+ }/ X( p$ X$ _
- ;=====================================================================& j! d" F# P2 k2 G
- 1 u, C i. m+ J! Z3 v( A
- (defun c:hoathi ()& w3 N/ i4 _$ Z8 E" i
- (setq a (getpoint "\nChon diem: "))
) {8 K9 l- L/ Q8 j' Y' Z! e - (setq b (getpoint a"\nChon diem: "))
# K8 A0 p2 b8 k6 \ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 L' _; |; D/ C0 Q6 R P4 L& Q/ v
- (command ".line" a c "")
, {' X" x9 n8 f, O- Y% j# n' V - (command ".array" "last" "" "p" c "NUM" "" ""): ~) {+ o, n3 i$ k9 W
- (princ))) p/ y9 Y& O) r3 l
- # a$ [1 m- H. G1 K9 F
- ;=====================================================================
2 y& e* Q' a! _- [$ u& t, K - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
3 ]0 f5 e: e2 y% J# R% b1 f$ x. B - ;========================== 03-11-2024 ~ 19h33 =======================, V7 X$ Q. B( h6 t& Y- G
- ;=====================================================================" ]" t" u& t0 O$ N
- . p; P5 L/ p3 ?9 l; g8 u: A
- (defun c:cung (); L: R! I) P. c% J
- (setq a (getpoint "\nChon diem: "))! a6 `/ S. a, v. B; G$ J' ?$ T
- (setq b (getpoint a"\nChon diem: "))
0 r, |) K; e$ T7 w' q0 }, W - (setq c (getpoint a"\nChon diem: "))
) w g. z; P* G- m+ @ d9 t p - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 o2 d+ W% T7 h5 e9 p! P' ^ - (command ".arc" a b c "")' u* { k% j8 O& d w! L
- (command ".array" "last" "" "p" c "NUM" "" "")4 {1 I0 n0 T4 b+ x4 a
- (princ))
: {, u6 L a) k' ]0 q# S' s: d
2 C8 l6 G, O& g% W+ k- ;===================================================================== j0 n$ y% ]7 U4 \
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
1 y, z. U" l; l. x' T - ;========================== 03-11-2024 ~ 20h02 =======================
2 ?9 T7 b% c' N - ;=====================================================================
8 C, z6 m) c B+ w& i9 L% I& Z2 r
: g6 e9 U1 O4 c/ b- (defun c:hecloic ()
0 s3 t/ r& G( H) ?+ ~( W, r2 \ - (setq a (getpoint "\nChon diem: "))
7 I" P' Y) E) c7 I - (setq b (getpoint a"\nChon diem: multi "))2 A6 F2 {* J( y x# s$ g* y
- (setq c (getpoint a"\nChon diem: "))(princ)
- N' k( L: }3 G. o$ s/ `( g - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): G# Q8 J$ c! y
- (command ".arc" a b c "")8 h7 M- j% ~) D7 c: t0 K
- (command ".array" "last" "" "p" c "NUM" "" "")
1 p" F2 _, o) p' @, i - (princ))
: F: w: k% y) a/ C
* S4 {0 K- Q: a: O. Q- ;=====================================================================4 |% Q8 K1 w7 g; y! w; ]
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============% N4 K: O& y; p+ L! U. u% `* l, k9 c
- ;========================== 03-11-2024 ~ 19h38 =======================0 N1 m* k& q( f8 B2 t" D
- ;=====================================================================
( h+ ]4 C& u9 j; O( H0 g+ B$ ~
# k& w& D& C) l6 ~* r+ V" i& z- (defun c:gay ()
7 Z$ q9 {0 S" @ - (setq a (getpoint "\nChon diem: "))+ Z& P* D* C }, B2 B
- (setq b (getpoint a"\nChon diem: ")). L4 ^, e+ q% p7 @
- (setq c (getpoint a"\nChon diem: "))(princ)8 P" {2 O6 y; R3 L1 N
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& l0 W! A5 T( z4 \& K
- (command ".pline" a b c "")
( s& u0 j4 l/ f+ K - (command ".array" "last" "" "p" c "NUM" "" "")
8 L' B5 A, G9 ^2 S/ D8 G# \ - (princ))
" p, C( e6 {2 ~. w
' D- l9 h$ w. I1 o' x- Z$ u3 r- ;=====================================================================
/ V+ P! I0 j# |/ Z - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
, s$ C* B! Z# ?( j - ;========================== 03-11-2024 ~ 20h02 =======================: M( {4 `8 [6 i6 W, h
- ;=====================================================================3 H1 F. i, R) k0 x, V8 `
- ; ~3 T4 {/ S4 Z0 U1 `" a" J
- (defun c:hecloit ()
( w3 R( _% X0 e H) @9 s - (setq a (getpoint "\nChon diem: "))' x* e' C2 U. ]: ^" N1 e
- (setq b (getpoint a"\nChon diem: multi "))- X0 p4 }. H% ~
- (setq c (getpoint a"\nChon diem: "))(princ)
( U" n. C7 t9 l0 A6 W# { - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 `' g7 N0 K; F' @ {9 X3 N: N. U% d - (command ".pline" a b c "")1 \ @9 i! B8 ]
- (command ".array" "last" "" "p" c "NUM" "" "")
0 G8 G/ F! R# E; X# Z5 Q - (princ))
8 a- r! j4 R& a4 g9 { - * ]! K4 T {% G- w
2 l" w- D1 [& T& g- O/ G- ;;; ============================ Merge Hatch =============================
5 g" C2 I* i$ S, Z4 [9 J; T - & \" ~+ Z+ L: t8 i$ w
- (defun c:mh (/ ss entht sl i dt dtht)
/ ` ~- h6 [: l - 6 l6 A9 S: B C; J
- (princ "\nMerge Hatch - free lisp from CADViet.com")
[$ u) ~3 T# v. a0 F - 9 G9 {7 }" ]7 i6 e
- (setq
( D/ ]3 F1 k3 J' s - ss (ssget '((0 . "HATCH")))6 l4 |, {! b" l8 j# j) ~# ]
- sl (if ss
2 e3 A# ^( h7 r/ M# y8 c) n: A - (sslength ss)6 i. J/ v. a, G
- 0+ r& \' u, G2 _8 R9 K7 o: l9 z, g5 ^
- )" S8 l& a# R& T) L# i1 r& G
- i 0
8 c5 F; r, Y+ |5 h- f - l 06 m/ j8 K) o* A# O; g
- )' S, _. R* H$ E$ T9 p# l
0 k3 T& N+ `+ u* i- (repeat sl0 D8 v* c/ l4 _" P, I# W) _( K3 I
- (setq2 ^! R8 s: U0 _2 m
- entht (ssname ss i)
1 ^0 q, Q7 P5 | - dtht (getbdata entht)8 M1 Q3 L1 a6 W0 I' w& B- x' }) [
- dt (append dt dtht)
& Y7 M. r @. x5 h - l (+ l (cdr (assoc 91 (entget entht))))
d( d$ r/ P, v0 a+ @ - i (1+ i)
) x4 x9 o+ _- O( G2 ` x$ J: ]: Y+ J& k - )7 v' }+ n' H- L. R! [
- )- }6 t* l0 X: B
- / `0 t8 a% n+ ]+ C% `2 N
- (setq ent (ssname ss 0)& k6 o0 O, K) |) M! g1 `; A
- ss (ssdel ent ss)2 p9 J+ ]# d& C! x) A6 l D: H
- tt (entget ent)
3 N; ^( L4 M) F# i) T - duoi (member (assoc 75 tt) tt)
* S$ K0 U2 B6 y5 f. y; v - dau (reverse (member (assoc 91 tt) (reverse tt)))
" l" f- U5 x/ W# B5 [% n - tt (append dau dt duoi)
& n0 V& U7 M9 M* s0 O - tt (subst (cons 91 l) (assoc 91 tt) tt)
8 x- D5 g5 \/ F; t - )3 C. N6 y6 g! y
- (entmod tt)
& Y& G* T" e$ W - - Y' {8 k; q4 x2 j! M
- (command ".erase" ss "")6 Q A$ q- l% L
- (princ)
. B# H h/ o' u9 e) _, Q8 f - )) Q2 d. s6 k% B% U# J: z
- # P$ T% o2 O# X& A+ R( ~
- (defun getbdata (ent)2 j) T: Y2 j5 J( V9 F' u) J
- (setq tt (entget ent)1 w5 C2 M) m4 L" b: Q
- tt (cdr (member (assoc 75 tt) (reverse tt))): \1 n+ T: D% |$ v% G* ~
- tt (cdr (member (assoc 91 tt) (reverse tt)))
* X3 G# U. e% `9 M7 H) @/ V& f - )( v% Z0 R; |7 |# ` v8 ?
- )1 X3 K0 @+ h% m" A+ z% l' Y
- ) w+ e* r. m6 S6 O9 w& }+ u
- " f4 h/ `( ? ?, b4 |
- (princ)' n% t' t8 \& z0 m' Y
& g" Q/ @7 N/ x8 n. n- ;;; =========================== CAC LENH LAYER ==============================
# f" _$ T: F0 t5 M1 U' V% A - ;;; =========================== Layer hien hanh =============================
3 Q( i( o/ x/ n* d; @7 q
! X" M2 N" K$ k. _' m- (defun layset (/ LAY) (setvar "cmdecho" 0)
8 y% d9 g& Y: ]4 s+ _! ~ - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
6 V3 f7 V- ?0 n8 d7 ` - (if LAY (progn
7 p' d8 ?; c# S5 t, E# J - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
8 i7 f0 k% H' ^! A. J4 \ - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
. S M2 H% l" q; H9 \ - (progn# }9 P8 X6 J" |0 X& ?* x) q7 `+ u
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) g" U6 N0 m4 L5 N* a
- (progn; w1 m1 r" \ y5 k# ?; f* N
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
* U+ @7 ~, g X+ j7 g - (defun c:LLL () (layset))(defun c:LAYSET () (layset))
6 Q" }; E( `4 D. E! N0 i' l9 l
/ x/ h5 |- r- s& _- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================1 p; G D0 o( k4 {3 |4 e7 N* c
- ( e7 f* F+ S# @9 u/ u
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
+ [+ [/ x3 H1 z: z" Q - (if (not (setq SS (ssget "i")))
8 W! e* f) H" m) i) o; l - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
( K7 `. d. R1 x' \6 C8 h2 ~ - (setq SS (ssget)) ) )
8 o( ^6 W8 V: k - (if SS (progn5 D* u5 `0 h; U' o" M" o
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") - _5 B; @! v+ s9 A
- (if (> (getvar "cmdactive") 0) / @( K6 z2 {5 r5 G/ V
- (progn
/ ?* Z0 l: ^- k% p1 ~0 l - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
% V4 W% V' Y5 |9 o9 Q - (setq SS nil) ) (if (> CNT 0)
2 S5 l; T$ ~* d$ f: u6 ^4 ] - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
7 M A1 N% B7 @9 X3 E- \' ] - (if SS (progn
4 i9 G2 y& u2 ] - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
3 g+ W7 x- C8 k; K0 U - (if (= (sslength SS) 1). R; f9 s! A; L% e5 p( t
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")): y! D$ W1 u5 V \
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
$ r' A4 J9 p, e$ Z8 E e1 u; d9 z" } - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
e6 Q+ K9 o, G2 B' T; Q+ A
! x l1 ~4 |' X: @' Z- ;;; =========================== Layer Iso ===================================; Z! @4 f3 a! \# Z5 }. l- `! d& J
. b9 X. b8 b# i) J# P' t9 G) g' Q- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
8 {" R7 e& o3 s$ H9 v - (if (not (setq SS (ssget "i"))) (progn) ?6 U+ D! {: J H6 ?0 t
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")- O0 [$ p5 M0 I- t7 h, n
- (setq SS (ssget)) ) )2 v: U* j, u* j3 u
- (if SS (progn (setq CNT 0)( j) W5 G8 e: j: Y4 }& X
- (while (setq LAY (ssname SS CNT))
, ]: F* N$ g$ V6 n( h$ j& X - (setq LAY (cdr (assoc 8 (entget LAY))))# ]( w, n' d' M }# c
- (if (not (member LAY LAYLST))
+ V1 g; `; `; { - (setq LAYLST (cons LAY LAYLST)) )# \7 d; A0 t# v/ y4 R
- (setq CNT (1+ CNT)) )
' i2 o/ U: ]/ i9 i! |' q' u - (if (member (getvar "CLAYER") LAYLST)* W3 F( ]" l2 f/ Q- a0 x0 s- u: B
- (setq LAY (getvar "CLAYER"))
+ H: n/ O* D' q; M$ W# [ - (setvar "CLAYER" (setq LAY (last LAYLST))) )7 S9 y9 D: ~/ s( u: a
- (command "_.LAYER" "_OFF" "*" "_Y")
: U3 ^" |1 t( b - (foreach VAL LAYLST (command "_ON" VAL))
7 E! R* P# c7 X' `! G$ V - (command "") (if (= (length LAYLST) 1)
# [3 i) v' \0 ?3 i/ }9 L# F - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
0 }, x$ E0 s7 Z$ N5 U1 I6 s, Z2 v - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
" l* J# N, }/ z$ c! c/ Q+ T - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
- |( E* I. C. J+ q6 }" u - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))3 \; H" e6 \3 t$ i; W
- ( A' w0 }, i6 c7 X. O9 S1 j n
- ;;; ========================= Layer Match ==================================5 S- y* U0 E1 a+ A% }- {5 z0 b
- 9 K# v/ X5 H4 `3 d; u3 h3 s Y
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)/ k. N; q: j/ w9 m, @8 N
- (setvar "cmdecho" 0)
& E1 j v3 c9 y4 i - (if (not (setq SS (ssget "i"))) (progn
1 b: v( L- r7 P4 O V. L0 \6 y - (prompt "\nChon doi tuong muon thay doi Layer : "): }- A, G8 f6 Q
- (setq SS (ssget)) ) )# T% V$ Q6 \+ q
- (if SS (progn8 g& H( c& |& T8 `" K
- (setq CNT (sslength SS))+ r0 n, i, E4 S0 h) f1 K, S& [
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") / h& @1 Z9 R/ ?" N& s
- (if (> (getvar "cmdactive") 0) (progn& ~2 D9 p, A1 }$ v8 I
- (command "0,0" "0,0") (setq SS (ssget "p")- U7 F: v* R$ r6 k" B
- CNT (- CNT (sslength SS)) ) )
4 F& ?1 c; ?$ R' u - (setq SS nil) ) (if (> CNT 0)
6 m, A$ _+ F/ k' z - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
- U* M5 N- i9 ]- G - (if SS (progn& C' W$ B* ^1 j1 o
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )! X; r) e* E* _( X: I
- (while LOOP (cond' A N* s8 k. H1 C* b) n/ \; x
- ((not LAY)
9 w+ }5 H' @- T4 y - (prompt "\nKhong chon doi tuong.")# i2 L0 J% ~8 [; o$ ?' u+ m P
- (prompt "\nSu dung layer hien hanh? <Y> ") Z+ V/ F K" W+ R- _" j, E$ {
- (setq ANS (strcase (getstring)))
5 d, h( N$ B$ o. k% v+ J! f - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
* k/ e u' s0 R7 L - (setq LAY (getvar "clayer") LOOP nil ) ) )2 M6 ~7 Y! j9 {* m
- ((listp LAY) (setq LOOP nil) )
7 U: l8 S; ?* {' j" R5 U9 V! J( U/ O# a - ((= LAY "Ten")
3 u- D4 T" h+ \& s - (setq LAY (getstring "\n>Nhap ten layer: "))* ^7 G4 w2 d* `$ X' u
- (cond# w" ~5 e' }1 t2 W: ]/ h
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )) ]: ^" n( H9 T/ f, u
- ((/= LAY "")
2 [3 W% i9 p1 C - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
6 u. O1 m* C7 A1 V7 R' K - (setq ANS (strcase (getstring)))( l" _3 T6 G2 U" u" s
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))/ P2 s9 A4 a; a9 m
- (progn5 y/ i9 A! A( e& j
- (command "_.LAYER" "NEW" LAY "")
" g8 r7 s/ I; J1 i0 B - (setq LOOP nil) )- G E% ?0 ?3 _% {0 z. u; ?/ O$ X
- (prompt "\nLoi ten layer.") ) ) ) ) )8 y3 D* m; U7 `5 R8 m& I3 t' u+ C
- (if LOOP (progn (initget "Ten")' A' Z! f r: C% |' d+ n. x( B( Y0 y
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP" d) ?2 k% a, }
- (if (listp LAY)
/ Y" W, o, V3 n) y3 @& e - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )( K2 i. l' t1 W' T, H+ x; H
- (command "_.chprop" SS "" "_la" LAY "")
& V; j5 m1 P: m; S - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )6 C5 R8 S1 I! j4 w8 i
- (if (= LAY (getvar "clayer"))
- I( D3 u1 a( Y3 r) K4 u - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )" J2 X7 R! D% u# m0 W( t
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
+ t i* u; N g - ( A+ M% u4 @0 t6 m, P1 W6 Y
- ;;; ============================ Layer OFF =================================
. }/ s- k3 v. Q4 U& u
$ W; _) F5 v$ s, i2 ?/ ^- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
, k! E+ H' Q1 S# t% ^. r* W - (SETQ SSET (SSGET))
4 K% b& k8 ^& {: b5 a/ N - (IF (/= NIL SSET) ' S- U3 V. g& _: n& X2 q/ V
- (PROGN3 ?% M3 K$ O; E3 o2 x! U# h( N( o& W
- (SETQ SSL (SSLENGTH SSET)). I! @3 f) u s1 q8 H
- (SETQ LAY "")
: ? e) U/ L" h7 }' u, o - (SETQ I 0)4 t$ g0 O6 P* t* ]% \! P( w
- (SETQ MODE 0)
7 U& x7 [ |6 b+ m2 d - (WHILE (< I SSL)
2 h. o* A5 m( F( k7 U - (SETQ ENT (ENTGET (SSNAME SSET I)))0 g, v5 N: w4 N& r* u
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
! x5 f( Q4 x0 Q+ p - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
6 V+ B. Q: q+ {% V8 M - (SETQ I (+ I 1))
- ?" f/ l7 x0 s - )
5 ~+ Z0 `& F6 W, s4 H/ H1 a - (COMMAND "LAYER" "OFF" LAY "")- \& s2 }. U$ D( r
- (IF (= MODE 1) (COMMAND "") )/ Y/ I8 N+ N+ p3 b' E# s$ N5 g8 T
- )' Q7 \$ t$ r( Q, H' x
- )$ T; @, K& A: |# L' b: k c; F
- (PRINC); o. G T+ M; |+ H
- )
- p3 y9 n* Z& ?' k - 6 ?' Y) t- ?3 T! F6 T
- ;;; ================================ Layer ON ==============================: ~: q( B( X1 X0 O: t" S% F; S$ U
- % Z8 @! |# {" w- ]- b' A; M
- (Defun LAYON () (setvar "cmdecho" 0)
) L* S/ Q9 g6 G9 j& g: K8 B - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")5 e9 I$ p7 k3 c6 y
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
' K2 s9 F: B) H1 [ - (defun c:LAYON () (layon)) (defun c:LOO () (layon))6 |4 y* L2 X1 p' [; D9 H
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
, n' M7 L" F4 Q( I% ?2 g8 R2 X
8 B# w& o' k- J7 ^6 \0 M# f4 k- ;;; ============================== Layer Freeze ===========================
* H3 v7 e; }9 H- e6 l' X
4 [9 p5 ?5 T' U1 y( c& W1 E- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) 8 x" K5 r( i6 [: O8 n( z& g3 ^
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
) I) q% ^: O1 y' x: p) Y - (IF (/= NIL SSET) (PROGN
/ E I2 O( S9 O) I3 F - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
! g0 x8 K O, s% E - (WHILE (< I SSL)
) S6 Y8 {1 Y, P6 J5 A/ Q# L - (SETQ ENT (ENTGET (SSNAME SSET I)))
0 x! p. B' q9 x2 f- T4 B6 `: x2 z - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )" y; z) Z0 `2 j/ T5 l/ H' _6 W
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
. Z+ V+ l! R' _( ? - (COMMAND "LAYER" "FREEZE" LAY "")- r3 }. m1 `' W8 b( f! S
- (IF (= MODE 1) (COMMAND ""))))
' Y1 f% g6 I8 B) X. t - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)! t: Y4 F! o5 p5 c# C) p
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
' r1 P- u7 j9 S/ l+ H8 g- b - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
8 W h" D3 R! g1 ^7 k4 E - 2 Y1 W+ ?. W: m- j* M
- ;;; ============================== Layer Thaw ===============================, g! ] }) i# W# l. n5 T8 X/ r$ `6 {
* _- B' e/ P" J. K) w8 i$ q- (Defun LAYTHW ()1 q" I; n+ @7 ^ W1 U, v* f, y
- (setvar "cmdecho" 0)
7 a5 _7 S6 X5 j6 p - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
: g* r( `! r6 {7 H* g, m! f+ m2 B - (Command "_.LAYER" "_THAW" LAY "")
+ K+ @* ^! k; w# T5 w, [ - (princ (strcat "\n Layer : " LAY " da THAW."))7 i/ P4 Y/ e5 j& Q$ h+ Y p
- (princ) )* o! |( L- F5 `9 k. O* |
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
8 V$ J _' ?# L# Q3 b: { - 1 w+ |, c. w2 K( F% F# ^; A k6 O s
- ;;; ============================== Layer Lock ==============================
' K, t( F2 a1 x' X
; T: |2 [# V6 b9 ~- (Defun LAYLCK (/ LAY)
H, K8 w5 k( G- Q( I+ `/ X' I - (setvar "cmdecho" 0)
) E- _4 V0 M( C$ y) d) j' D, w - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))& K3 ~1 p1 g8 t. A: L1 g5 {) l
- (if LAY% M, t$ f( ^1 {2 i2 u* u
- (progn9 ]5 ]) E$ A: U( k1 \% W& q
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
4 C- L% N8 U2 \: a7 m3 O6 A# | - (Command "_.LAYER" "_LOCK" LAY "")
2 T0 r+ [; i; z# {* }$ Z" z; Q - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
# t0 X0 ?% M2 t! l$ b& q* Z - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck)); C" Q+ _$ L% |
- - x, U) F+ F8 C& T& _! N7 V
- ;;; ============================== Layer UnLock ==============================, g. e' k7 U/ y5 F5 N
9 G8 W" v& j3 b( U5 K. e% e7 Y- (Defun LAYULK (/ LAY)9 h9 A- N$ i9 g" z
- (setvar "cmdecho" 0)
/ m* F; w* }+ o1 v - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))2 J, k, S4 s1 x- t# @
- (if LAY
0 c& m# i2 v" k, W: F5 f) h! Y B( [ - (progn n- H8 d6 g6 N7 D) r
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))2 z" J: @7 [, e: W4 c
- (Command "_.LAYER" "_UNLOCK" LAY "")9 s9 ?5 L v& }% K! T
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )% c, U$ h; ]/ n3 N) k/ V1 s& T
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
\0 L/ `7 G7 m5 b9 N - . p, w) P; d# W/ r
- ;;;===================== Delete all objects of Layer ========================
+ Q# v# @% h9 b% a# U9 p5 a - 7 A- F' @' Y9 }6 v! ?* i2 D
- (defun DELAYER (/ ocmd L S) ! F) l0 j% w- u- i/ N$ F5 r& g
- (setq ocmd (getvar "CMDECHO"))
- @" R7 q; ?5 d9 ~2 L2 n7 Y+ N - (setvar "CMDECHO" 0)
: p7 [) T7 i% J! {/ N - (setq L (strcase (getstring "\nLayer(s) to delete: ")))
' v$ n7 d$ r5 }7 t& b- a* L! c - (setq S (ssget "X" (list (cons 8 L)))) : I* H# `6 A2 a0 o( M; ~% j$ X
- (if S " G4 E+ x/ x2 M9 d* j6 T! d: @
- (command "ERASE" S "")
. C/ O `- U0 c3 W - (princ "Layer empty or not a valid layer name.") ) / }" h$ y# B4 z& ]$ s5 @5 L
- (setq S nil)
0 N6 H4 c& r t6 t/ e - (setvar "CMDECHO" ocmd) / p! z5 Q. K: [. E$ g- q8 I
- (princ) ) 9 Q5 z4 E+ s0 w! b# V v8 `
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))5 G; v8 ]5 ^( o( w) f
- ' Z- Z; m4 R9 i; v$ W7 d* n
- ;;; ========================= HET CAC LENH LAYER ===========================9 ?6 e) j2 \7 J# y9 L1 E* p
- / A0 V' w0 x: c8 F" a& L5 ~2 X0 u( Y
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
/ \7 u3 y6 Y4 v: p, V! d, }7 `/ j
( _ r& f: i( G, ^1 l4 m+ I6 f: f- (Defun C:EET ()
7 t& }! f' ?' m - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)8 @; S: F4 `5 M0 ?1 C& u
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
) V5 a2 D2 I3 L1 Y - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))$ S/ p/ _ I+ L% L4 u- v
- (Setq I -1)+ D/ C7 V, f1 p/ T: w. n! |
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG ""), S3 f5 ~) l+ X4 m
- (Repeat LEN3 |) x/ w# ^3 W' o1 C# Z+ j
- (Setq I (1+ I))
# K* I% \0 F* Z - (Command (List(SSname SS I) SIDE)) ) (Command "")0 Y& j; J7 T. x G( F4 m
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) ) v6 W {3 W. q! B
- 1 u" D% A. L. }6 f/ J
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH =============== [3 K: n3 V0 E
- ! d% y# }, f" r4 j/ z
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)4 x+ O9 x3 H) I5 h2 ]9 P1 q- g
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
0 \5 Q5 Z ~; p+ O) h - (setvar "osmode" os). S% G9 J6 `: V1 G
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
" l- I! Y% j# z% z - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
, J- \$ A+ Z- i% H! o* {
" p/ [, C- C% Q9 F6 g `- ;; ================ Change width of polylines =========================: R! z; T& ^3 \8 p8 R
- 6 k; A! M1 D! a# Z/ @ _& e
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)+ ?9 z, D4 K" W
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
4 U7 P" K1 M. \, P: p4 l4 i - (setq b (ssget)) * f" y% i) C7 r5 q" H- E+ n
- (setq sophantu (sslength b)) ! Z1 c! E$ E% y, y
- (if (null ha:wid) (setq ha:wid (getvar "tracewid"))) Z+ X$ H; b" x* a" A
- (princ "\nDo rong polyline <")4 O# Z% L$ e# z) P* g% q+ l
- (princ ha:wid)
/ O6 R+ K6 W' S& d) |& Q - (princ ">: ")
7 q( o' T* j: D" c! j* s2 `6 n - (initget 4)
; q+ J1 A4 K2 W( d - (setq ha:wid (getdist))( j) a$ r9 J8 l8 t( K$ Z1 R
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))- ~& @7 _2 m$ M; t8 J
- (setvar "tracewid" ha:wid)/ a) A4 }+ s m- S1 P3 x2 `. U
- (setvar "cmdecho" 0)
& p2 m, F' B ^ k, }# b1 B - (setq sodem 0) 9 e; ]. |1 K0 ^* C" Y1 V* ~
- (repeat sophantu6 Q1 g6 F6 D* r! U9 G
- (setq a (ssname b sodem))
3 _6 |' q& t+ \) J% x! y - (setq list1 (assoc 0 (entget a)))$ m6 S4 i1 M! n5 I
- (cond: ]: o% o" t4 {2 i/ n3 T
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
3 h5 Y0 ]' U% @+ m7 p - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) 4 G0 v" d0 \# f; W: E- r+ d
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
& b; `# J* F8 e9 G3 y4 Q - (defun c:wp () (wp)) (defun c:pw () (wp))
* D2 s* S. f. J/ b6 W# ]/ ` - 1 {7 }# r4 ^. |
- ;; ================ Change radius of circles ==========================
! A4 w0 G2 x Y - 0 D5 W' x+ M3 Q- }# V
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET)); }3 `( s4 c' p8 W) z
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))$ i/ N$ U% g$ C( r; `( c
- (IF (/= RD NIL) (PROGN (SETQ I 0)( C. ~1 n: C, s# C0 |) ]0 l
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
5 m7 p3 n6 X1 c: h* z - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
6 k0 F( r! f1 S% ]% f" C - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
! k8 ^" ~& x6 Q: D( b
, w; y0 z F1 _' F; j% L( Z2 A- ;;; ============================== TEXT Hight ===============================0 E9 G+ I# p. Y, Z) O
( B- S- p/ f; G G* M/ I7 W- (defun texthght (/ ent hght)2 x1 h3 J/ F/ @2 \: |5 @' C6 ~0 A7 Y
- (setvar "cmdecho" 1)7 w0 p8 R; |0 [8 n5 Y" V& u
- (prompt (strcat"\nSelect text entity with required text height"))/ E7 M7 e: r) J9 {5 |# s
- (prompt (strcat"\n.")): I! f$ h8 D, g1 _* |
- (setq ent (entget (car (entsel))))
d3 [* ]$ }+ Z# ^7 E% Q: E - (setq hght (cdr (assoc 40 ent)))# w" p0 ~$ v! _! d5 ^
- (prompt (strcat"\nText height now set at "))(prin1 hght)
2 C* b& ?/ O+ A [' v - (prompt (strcat"\n.")) " {6 r0 l) z3 M( g
- (setvar "cmdecho" 1)
' D% b- S6 x/ g e. |7 E2 d - (command "DTEXT" PAUSE hght "") )3 G7 [. N i9 K7 Y% z. D4 ?
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))$ w$ |) q( o' ?0 o* E. _
- $ ]- }5 v. l7 E$ ]" O3 v
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT ================= `5 H/ O2 @) z
- & C" j3 M; p' {8 X, m
- (defun c:tuu () (setvar "cmdecho" 0)
: }/ X8 z3 v9 Q: E4 Y - (prompt "\nHay chon dong TEXT can gach chan ")% H! B$ A* r0 \ y. S
- (prompt "\nSelect objects: ")
% X2 U7 ?0 k- N* `7 r2 }7 P - (command "select" "au" pause)
5 n K% a2 z) A( \# v/ i0 N) Y- K7 a - (setq sstxt (ssget "p")8 H7 A1 Z. c" U, V& d5 D: C0 [+ N0 \
- sslen (sslength sstxt)& L4 I; V& d9 i( K
- ctr 0 )
# u+ p7 h! K7 y% V - (command ".undo" "mark")
! ~; O% F( H& `1 J' I - (while (< ctr sslen)
% l( E4 R, p5 J& ] - (setq listxt (entget (ssname sstxt ctr))- Z x) W9 e! a# [- ~) g1 F# ~
- txttxt (cdr (assoc 1 listxt))6 n6 \2 D! E o" g# C
- enttxt (cdr (assoc 0 listxt)) )4 q) j! P; ~( K2 k/ q4 k! x
- (if (= enttxt "TEXT")
2 Q& \4 B& f1 @% m( L( u - (progn: [" Y+ ?6 i! q. Y! p
- (setq testxt (substr txttxt 1 3))
4 {5 }9 b$ T, y( D2 z) H! S \ - (if (or (= testxt "%%u") (= testxt "%%U"))/ O7 `- Q: E3 }* r! M$ J/ I. z
- (setq newtxt (substr txttxt 4))8 e+ g: y% v! ]
- (setq newtxt (strcat "%%u" txttxt)) ); j% K g7 A3 t9 c
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
) L- t+ j! C9 o, n8 e" x - (entmod listxt) ) )
" r6 q( T. k1 l o( W5 J0 a - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
" v! I; P5 X3 r0 \$ b$ }- A1 T - 1 q) c* |0 |' Z% _
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================1 Q8 i! n' }" \% [; A
! b$ g( G4 r' G" g& H- @: Z: o- (defun c:tob () (setvar "cmdecho" 0)
B4 P0 k7 ^7 l8 q - (prompt "\nHay chon dong TEXT can gach tren dau ")
7 R8 i' T4 h, u0 M a - (prompt "\nSelect objects: ")
+ Q* |' l2 H% T F - (command "select" "au" pause)
$ s# R7 s: G% h% C& y l4 ], @ - (setq sstxt (ssget "p"); E5 i y5 \$ _) V" P+ ?5 D
- sslen (sslength sstxt)
! G; p) {) }. _& q - ctr 0 )
u/ i! @/ o: J1 | - (command ".undo" "mark")
* T- n- Z# }6 s3 @ - (while (< ctr sslen)
7 U4 {" W+ C- \' _& c4 W4 n4 @ - (setq listxt (entget (ssname sstxt ctr))
! }4 X# s9 D+ H - txttxt (cdr (assoc 1 listxt))6 h2 N2 G/ ?( N! W1 B
- enttxt (cdr (assoc 0 listxt)) )
7 e- B+ t, a1 Z0 R( S - (if (= enttxt "TEXT"). z, C1 x- L ~+ |$ L8 {
- (progn) V$ w5 I( c5 o0 u
- (setq testxt (substr txttxt 1 3))2 c4 i! q" e$ n' M( m2 O
- (if (or (= testxt "%%o") (= testxt "%%o"))% f5 k, v& b+ N1 c+ S6 |) ^
- (setq newtxt (substr txttxt 4))
0 w) z8 H' ^* s4 A) W - (setq newtxt (strcat "%%o" txttxt)) )! R; ]9 ]6 X- s' |/ R% n1 f2 u
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
5 V& j1 V G. F! F4 _6 i - (entmod listxt) ) )2 x7 O/ c2 |' Y# P/ k
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))8 f. |- R1 b6 G; e: ^* ^( R' E& g; U
- ; f# H, J; t& A9 d
- ;;; ========================== Tim & thay the TEXT ==========================+ S* o g" Y+ \ D/ a
- # I0 h# v1 U8 d5 v" |& T# M6 q
- (defun frstring (str search replace / str1 str2 index find)
2 Y2 d, B4 J e3 | - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
$ H3 R: m! t- J: E1 I( n - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))( U( p; y; ?6 z, i8 l
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str)); Y# T/ G" p9 Q4 p
- (defun hai (/ dial)
; I$ a. v/ A* [& b2 ]' u - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
) Y1 T; C& b7 t, H - (if (not (new_dialog "find" Dial)) (exit)) ;;6 p& K. Z2 q/ K5 k" z
- (mode_tile "find" 2); Tao dau nhac tai hop thoai7 _+ {( M2 P: W0 }; R
- (action_tile "find" "(hai1)")
# a9 m! O* } f- c - (action_tile "replace" "(hai2)")# M7 X1 _3 Z: \ g4 O! ^
- (action_tile "cancel" "(done_dialog) (exit)")
9 O6 J k8 Z' o) ?4 o. d3 | - (start_dialog) 6 S) b" |4 G' ~$ R& p
- (unload_dialog dial))
; N; A0 M2 ^! r# G5 O- w - (defun hai1 () (SETQ str1 (get_tile "find")))
" Z' |; e- v& }; f - (defun hai2 () (SETQ str2 (get_tile "replace")))9 \7 e% f2 S" e1 }( ^( {
. f n. x8 k, B" T- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)4 V# m. O# @" R: O Z
- (hai)
2 f0 h1 ~ G$ b" P5 r - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")% j9 B3 U Y2 D ^, w' q) o
- (progn
9 ~- _: X+ S) R5 j9 A - (setq taphop (ssget '((0 . "TEXT"))))
, v4 j8 a# K# G1 p1 D9 { - (setq sodem 0): q W4 C) g* |) g: J7 x6 e
- (if taphop
! k+ e( k8 s2 [" ^% M* B - (progn" i3 ~ ?5 E9 V( Y' e4 f& V
- (Repeat (sslength taphop)
+ i5 ~3 U; t9 |* n' {" k& V - (setq a (entget (ssname taphop sodem)))0 L" ^3 A/ O$ Y4 [5 B8 F
- (setq str (cdr (assoc 1 a)))
0 u& a6 N) S/ l5 g7 { - (setq newstr (frstring str str1 str2))
2 y# o: t; H2 {8 R9 J: \( ? - (setq a (subst (cons 1 newstr) (assoc 1 a) a))+ C" A; D# P4 W( S" p
- (entmod a): G/ h* Z# T( ^8 R
- (setq sodem (1+ sodem)) ) )- V5 Q6 J# n/ r
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
' W+ K% w$ p) U' R
}1 l: L6 ~, T- ;;;============================= CHTEXSTY.LSP =============================% i4 d3 Y7 _% v0 g
0 v4 s( C! Q" |& \$ x3 z- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")6 X( o. S7 N, R. g7 b
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))# ]9 Z o! D0 D# z' w
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
^! Z: l& t+ O& m% n - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
7 ^+ h0 ~/ A1 ?! x$ t - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
6 h$ n( J0 X! l! ] - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))( o9 T2 z. G9 u' c* l
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
2 A' T" l2 h& E - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
7 Q+ h' v3 t8 S) V4 v - (Initget 1) (Setq A (Strcase (Getstring
, c" V! Z) R! X+ ]) ` - "\nEnter text style to change: "))) (Initget 1)4 |. \7 v2 Z, n* T' \( @
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
6 V- C% h7 n6 v5 H! ~ - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If, z, \# ^, g% d. c4 y1 e! u4 Z( v
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))/ i5 v4 l4 R6 O" i
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
' i9 i* _: f( A/ I5 S - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
_" m& }1 e. E- b3 }, M% A7 W - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
0 x/ m1 C. ^7 W/ n* v. \, W9 D
: M. [) H) o4 ^7 E0 C# S( b- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))) B, i9 P5 l9 w: `
- (Setq J (Cdr (Assoc 50 A))))
" K( Q; a5 V$ E# ?' m
k7 k' f0 _- _6 {3 c- ;;; ============================ DRAW CLOUD =============================
3 h" c" _5 [" O" u& F6 I7 R
# j* B! ~8 {, S8 l& z s) F- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)* n* x, V; b* j4 L7 n
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")6 Y H- T8 |: d+ l( d5 [& E( ?# h
- (setq la (getvar "clayer"))8 A3 ]; V* P# k! q
- (command "layer" "m" "cloud" "c" "5" "" "")( s+ y. q" p# e5 q* l8 w
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
Y5 p; ?' P% Z* W9 _7 A7 Y - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))) [1 w3 H9 H, U6 H) r- ]* N* Q
- (setq cnt 1 ss (ssadd)); |( E @" I- k
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))/ u1 z3 N$ m0 b
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))6 U) Q3 @$ T9 i6 m1 Z
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
# J- h% H* K& P1 `, ~ - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)# W5 A/ V$ Y5 \* `& H6 ~
- (command "pedit" arc1 "y" "j" ss "" "x")
4 u8 G0 s# ]( z0 z# k- m y4 l - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)3 S: F& b$ c- ~' @+ g6 j0 V
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
9 K1 ?- o. V) H6 M7 u6 B0 M - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
. S( B \4 f& B1 o* ?% L2 K - & Z( {& v9 h9 G6 t/ [+ R+ [" K
- ;;; ================================ Funtion-Dulieu ========================
+ v- |4 l+ {& E+ M! D; v8 j6 e. ^ - ;;; ================================ Funtion-Dulieu ========================
& j* w; E+ J* _# f3 }. ?3 T( Y - ;;; ================================ Funtion-Dulieu ========================) k# F, l2 H }( b! r: F
+ U' A3 ^; K& n: d& G; g4 \- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
. ] {6 d9 w; D; c2 G K! D - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
) t9 _: B A0 Q- ^8 Y! _ - (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))
1 F' g3 P9 V8 N2 V* I& V - (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) )
/ o8 ?/ ]5 \; o, `, ]- s - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
; T4 L# a+ P& v7 ?( N: } - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))* ~* z& v/ g! b: t& g0 [
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
; ^, u& E. Y% c - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
& G) I0 a) ?/ @ - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
0 n$ @' O; { I' D+ v$ @! ]1 J; E/ L - (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)))
" F/ O9 K9 f9 V- c2 B0 f3 } - (defun dtr (dtr) (* pi (/ dtr 180.0))); O u% N. c# u# e6 l; O* f
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))6 X- z2 h8 `1 j0 |+ u: d
- - {" [5 A/ o9 y; E o8 R
- ;;;==============================PROGRAME===============================% `# l% B! g2 _
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
3 D0 d1 [+ r+ z7 M - ;;;==============================PROGRAME===============================, _5 x8 M; Y3 i! U/ t# G
- 8 H/ r" l9 b# z5 F/ x; l
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh); S& s5 l/ j" ] R$ W
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
: M: B3 R" p/ F" y- H1 { ^8 {6 k& M - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)4 Y+ ^; ~1 L# O3 {( b& Y
- (Setq Oldlis (Entget (Car Chon))! d9 A I7 H. G2 H
- Pt10 (Cdr (Assoc 10 Oldlis))
' G D* l* j& \ f" m - Pt13 (Cdr (Assoc 13 Oldlis))
( G2 F' s L4 w3 P2 i3 G - Pt14 (Cdr (Assoc 14 Oldlis))$ U1 P" B# N! K! v8 v; H5 U
- St (Cdr (Assoc 70 Oldlis))
l2 _0 i4 z3 A0 |( |# s - Dimdefault (Cdr (Assoc 1 Oldlis))+ Z3 i6 x: E/ A' B: X
- )
9 C4 G# k$ d- s2 C; k' s% z' X - (Cond% e9 L7 w0 H1 {
- ((Or (= 32 St)(= 0 St)(= 160 St))* P/ V4 F! S& p4 s! T9 A: C9 B \
- (Progn- u7 s7 Z4 j2 u9 K+ X
- (Setq Ang (Cdr (Assoc 50 Oldlis))& a; `3 X- d+ d( W i$ i
- Pt (Polar Pt13 Ang 500)
" I* M& ?& Y* @$ I5 o2 f% `" T - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
7 k! @! S0 o5 V% ~9 z - Dis (Rtos (Distance Pt13 Hc))
: {1 c% a( k( [. W( D - )6 P0 Z& Y# I5 C4 e/ d1 u
- )
+ r0 w) K8 E) I6 T7 N! H - )
& R! A1 V/ o8 x8 T& n7 X - ((Or (= 33 St)(= 1 St))
4 s( F' j. E: }; W* Q - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))7 }. X2 \1 f- X* S) S; f
- );;End Cond" {- ?2 j9 S0 T* y4 O
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
7 U* ?9 m; Q7 p. b; p) M' M8 T - (Setq Dial (Load_Dialog "Hai.Dcl"))
8 K, w) D6 g. m8 J - (If (Not (New_Dialog "eddim" Dial)) (Exit))
# p, u+ K V' U; W1 {; @6 Q, Q5 p - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St)). o+ g) _1 x3 R* |1 Y
- (Set_Tile "text" Dis))2 E) F( _ ` a" ^3 h
- (Set_Tile "ha:edim" Dimdefault)) E/ b! n( @0 k/ \- k% @# C
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai. j( l+ E3 r6 @& w& r6 Z( [: X
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")+ {7 I- ] |! {# b. A- s& ^( \5 k7 D
- (Setq State (Start_Dialog))(Unload_Dialog Dial)4 S! \) m' l* A. A0 n
- (If (And Str (= 3 State)). U- ]9 y& E1 k
- (Progn5 m, M0 e% u2 p
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
8 l$ y4 }! M U3 r3 y* [/ o" r3 W - )+ t C3 v( V& e/ ?
- (Defun C:EH (/ Chon Name )
5 Z& F& q6 @% ]) O% Y- y1 q - (Defun *Error* (Msg)
7 I) Z5 a+ }0 \3 N! B, ^2 k0 x - (Princ "\nerror: ")(Princ Msg)(Princ " ")
' k D q! Z: q; G - (Start_Dialog)(Unload_Dialog Dial)
, W. c6 I ]/ ^/ ]0 p3 c - (Setq *Error* Olderr)(Princ)
) K* I1 q! D: b6 j6 O - ), t# R v. f0 O% l1 C! u
- (Setq Olderr *Error*)8 [ e. [$ U5 D$ K* e5 L! L
- (Setq Chon T)
3 ^: Z! H- u2 O' _- |/ U - (While Chon9 E- d3 e% Q1 b( D0 @3 O% @
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
+ V' Q, A5 x8 q" g$ M8 @( u3 W - (If Chon
/ g, X% p( D/ M: x; ~8 |! K - (Progn
- l( |2 ~5 V- O& H$ g - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon))))), n) g/ S( m0 g# L/ O6 t8 u, b
- (Cond
0 S0 D) {. p; `) r% z7 |# S: u - ((= Name "INSERT")(Command "Ddatte" Chon))
' p, @( p- ~9 |! ] - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
" w1 \8 a( H8 [8 x) G9 H" F# t - ((= Name "DIMENSION") (Hai_Edim Chon))
2 `) D9 u" b8 n4 ^) v - )
( v1 z4 \& E( ?" P. o - );End Cond
) A* z- c8 }9 ~. d! a* m - );End Progn
0 q D4 F5 W: I$ A! A. M, Z - );End While
$ y& \1 l! ]* ]2 ?# F* V6 ~ - (Setq Olderr *Error*)(Princ)
1 ?+ W5 w1 q# E* W8 U1 j% F - );End Program7 P; h, z# J% O* K3 Y
- ]) H/ q$ i& t, K$ d, @2 l/ V- ;;;====================DDeditDim=====================
( H; P* V' e* r- m& B - ;;;=====================Hai.DCL======================
" R/ }7 j5 [# n) w - ;;;====================DDeditDim=====================8 q* n; Y3 l$ V
8 ^5 g5 n8 W2 R% W5 s9 u0 w- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
3 I$ f8 q2 h: ~ - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
1 R$ r4 e& D5 d4 c f7 s+ Z0 R# u - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)/ C r; _ [7 x
- (Setq Oldlis (Entget (Car Chon))9 R6 ^- O( \2 R3 G& Y& F, G
- Pt10 (Cdr (Assoc 10 Oldlis)): [0 U4 D; `) K2 ?2 o; I) u
- Pt13 (Cdr (Assoc 13 Oldlis))8 P+ s7 V4 \! P8 q" v
- Pt14 (Cdr (Assoc 14 Oldlis)), `/ Y! j! r* R( y3 {! e3 \! C
- St (Cdr (Assoc 70 Oldlis))
+ ^7 Y3 ^ X- ]$ H - Dimdefault (Cdr (Assoc 1 Oldlis))$ b" f: } M# ?
- )+ R6 L& w' h6 x* V; v# A
- (Cond
2 t$ u: e: Z4 q0 {# r* N" S* ] - ((Or (= 32 St)(= 0 St)(= 160 St)): V' b1 s) I2 V& y
- (Progn
4 { S* C0 I! h - (Setq Ang (Cdr (Assoc 50 Oldlis))
# F7 I+ N" u' P& Z6 l$ N( p - Pt (Polar Pt13 Ang 500)5 m* ?. b' k* C8 x( D
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)6 x8 N& N3 _: g
- Dis (Rtos (Distance Pt13 Hc))1 g, v0 z- T( z8 t6 w0 p$ C3 M+ }
- )3 b3 b$ y! u) K; `
- )
. n. U4 M8 a; D2 E L3 X% R - )8 Y3 t5 o k' d# s
- ((Or (= 33 St)(= 1 St))
/ u5 ?2 x, O R }. T3 s |% G - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
& s7 Y3 g8 V% q0 L7 B' v3 h - );;End Cond6 y/ c; t1 v. W9 u: ]4 M
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
- F, r* @, C) O$ K/ [ - (Setq Dial (Load_Dialog "Hai.Dcl"))
6 y/ u3 u5 B, ^' e/ q+ S - (If (Not (New_Dialog "eddim" Dial)) (Exit))9 u I' V' T) }' T" ^
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
5 |% J6 ` Y8 j: ?; M' H3 X$ T: s$ q2 _ - (Set_Tile "text" Dis))' I( L" W3 V0 r7 e( K* ?
- (Set_Tile "ha:edim" Dimdefault)
% j) f* M3 P6 P- g X* z2 E* O - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
k( Q6 {0 L8 }! l& x" W - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
) m& c0 S3 c _ u7 G - (Setq State (Start_Dialog))(Unload_Dialog Dial)3 _0 c/ ]5 W$ i7 Z
- (If (And Str (= 3 State))* x6 `% P& _* Z6 y
- (Progn% M6 w( [ n. P4 [; a; _
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
3 W" D* H& C4 o - )
* r' X: K) z; e$ {- J; ?* t1 x - (Defun C:EH (/ Chon Name )+ ?. k2 u. l" \% r& O6 S2 d
- 6 g+ Z8 q0 a( l+ k% \ X
- ;;;********************Du Lieu********************
9 I5 U6 f5 v, h$ Z- _4 d. ?7 g
3 s+ m5 Q4 R" L$ j" Y, |! p2 U) m- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))2 f* f$ ~5 z8 B" A
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)1 V( ^" A; G$ i7 a t( E) l2 w
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))4 A; x0 [* d( o" l# ~
- (Progn6 {5 w8 \5 u4 ?% Z, y: J
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))9 ~6 V; o" K6 [6 K
- (Setq Chon (Ssget Hacat3))
( d$ j4 X6 r; a" w1 X5 f - (Command "Break" Chon Hacat1 Hacat2)
1 r& L/ b8 @! M. h9 ?! a- h - )" F4 g T& I+ J) B: f9 S- v
- )* h* J; c& b, F L' m& D' i
- (Princ). a7 J% I- Y( \
- )' Z7 {" X: E4 c$ a# R% A. l
- ;;1 i6 s8 Y2 {2 X* q* g5 L
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))* t- W; ]/ W0 Q( e/ I! r) \
- ;;
8 N+ \: m! D2 O7 k - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
* j- ^ F' U, w q6 w: H( q - ;;
. y+ C& p0 q# p8 p, o: }' A - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
4 t' d+ j4 P$ N5 I' t3 R0 L - ;;
& e9 Z9 }9 t( f5 [ |. | - (Defun Reinit ()(Setvar "Cmdecho" 1))* c; `8 z. J9 h! ]/ p P
- ;;0 A' C+ E" U: i+ W: n/ Q: i
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2))). m [% I- V5 _) x& `: M( j; c9 d
- ;;$ J, u, R2 e9 D) r- I
- ;;Cho 2 Diem Tinh Ra Vec To Phap
3 C, Z+ I& j4 |. s5 W - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
* Z7 U+ Z( [% B1 A! A - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang' B( i' g, Y8 {- t
- ;;Da Biet 2 Diem Thuoc Duong Thang8 d. |! Y$ A5 J5 p! V6 N5 \- W. W. }
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
( \3 h( {5 H0 s+ `, p" { - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
; ?, A z0 w. G1 U: { - Hc (Inters P1 P2 Dc1 Dc2 Nil)))
' ~( \! D5 l( m - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang% w; E! N4 w7 I
- ;;Da Biet 2 Diem Thuoc Duong Thang
$ {9 G+ e7 n% ` - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
7 K& e4 I' B2 z: B6 C' P$ w - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)$ w" X1 h1 t6 X% R7 {& y: H l3 ^
- Hc (Inters P1 P2 Dc1 Dc2 Nil))
& S) N" X, N; q( U4 O3 z - (Distance Dc1 Hc)
& R* g, |1 C3 V& }6 |/ c - )$ R* [, P, A- p+ Q. ?$ Z6 b
- (load "nhapcua.lsp")
7 W1 p7 s6 g; I6 S - (Defun *Error* (Msg)- P0 [! x1 c- B
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
* i7 I; Y( p' ^+ D1 F - (Start_Dialog)(Unload_Dialog Dial)' w8 o2 z2 c, t2 h. Q: [7 \" w
- (Setq *Error* Olderr)(Princ)
. A8 h$ A4 O6 [9 e& G' t0 q5 r - )* \" K6 T: G4 J
- (Setq Olderr *Error*)$ p" R( l' G# e: c! X
- (Setq Chon T)
0 k3 m8 a' h8 [5 m, i( H - (While Chon
2 f. [6 F3 i2 s( n3 L4 w4 X - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))0 s9 N* a5 M* J8 b
- (If Chon
# j- ~; b0 g& c - (Progn3 X" b, x* J4 ]$ T6 p0 ]
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))/ q( A0 _- Q/ h) n
- (Cond) h+ H& c& n2 T0 X
- ((= Name "INSERT")(Command "Ddatte" Chon))
' x; D/ Y! v: m, X$ ?" }% |, f - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))+ E9 D4 q( J, \6 E3 b6 r6 m, H+ }
- ((= Name "DIMENSION") (Hai_Edim Chon))
4 |# d6 z) M5 x - )
D% C2 o. T- k/ q, k - );End Cond
' o5 ~% q0 U! w/ P - );End Progn
8 Z3 P2 d4 z0 Y0 J# V4 S - );End While
! r7 {& \4 S' T d - (Setq Olderr *Error*)(Princ)+ c& q/ C# v' q5 z3 w* v/ x
- );End Program, n+ \4 D0 f- P5 B
- 3 p; q' p3 \0 k$ b) z" g* f, q
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================/ ?$ D8 B% n; D3 v
- ;====================================Nhapcua.LSP====================================
* h- S; ?1 T. D7 H! X - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================' ] p) M/ ]! k2 R3 ^
0 L `! u7 I% O! ^; s! x
6 G3 F0 H ~5 C# \- C) r, l
' d* T7 V/ G( X% G& V8 j( k- ;*******************;*******************;*******************;*******************/ V' w/ l0 }9 T: J( o' @' c
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****: I5 a+ G" q; @0 ?
- ;*******************;*******************;*******************;*******************5 v! o& \ v; F# T; D, @
& N7 i9 h" w$ s5 I5 y' E5 J- ;VE HINH BINH HANH
5 y) Y4 p+ n3 u7 h. o - " h7 N6 W, @" c# c7 E; j; L2 e
- (defun c:binhhanh (/ p1 p2 p3)
, f5 Z, x& i0 o Q9 F6 V4 O5 C - (setq p1 (getpoint "\n Nhap diem thu nhat:"))
& ?% [8 N& G# ^9 k* \ - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
) s1 T" x/ L/ W$ l+ u3 O3 O - (setq om (getvar "osmode"))- y; W+ y% C' q- P/ f2 j5 |" V( w
- (setvar "osmode" 0)' k! H; @: Z/ Y' g" Y
- (command "line" p1 p2 "")% [5 H2 a1 i1 A
- (setvar "osmode" om). |2 R& E' o C% I
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))% L5 D* t; k# d6 D# p
- (setq a (angle p2 p1))
3 e" u1 l; r {- U- W8 t- w - (setq d (distance p1 p2))% F4 x* [' V0 h; \
- (setq p4 (polar p3 a d))6 M! ?6 |- Q9 R$ b
- (command "OSNAP" "none")
0 G: A3 a! s- ^ - (command "erase" "l" "")& w+ n& ^5 t0 [6 E. V
- (command "pline" p1 p2 p3 p4 p1 "")
- F {) r: O; C - (setvar "osmode" om)" r3 |' v2 J0 B) f1 a( a3 U
- )
! P' j* _ e+ V6 S
% l5 m' S. ^+ Z- ;VE LUOI COT
/ n7 T6 ^7 @, o& X! I+ k
( h5 }9 ?: `5 S1 B) q- (defun c:LuoiCot ()0 N3 o9 q9 c. v% `# Q
- (setq om (getvar "osmode"))! y k1 ?' ?3 a$ T
- (setvar "osmode" 0)7 G/ H4 Q* A" h. d/ l8 f: N1 G
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
0 B5 l. P& \2 j; Y/ s9 }+ o& D - (setq p0 (getpoint "\n Chon Basic Point:"))8 H" z3 `! B( d! r8 i
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
_/ W9 \8 u8 [ {" X. T - (setq dc (getreal "\n Nhap chieu doc cua cot : "))
J: i j4 d0 k& V# ^$ j) a7 { - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
+ Z% z p. U7 t1 L - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ). |4 R9 H- ^# x0 M) e9 b
- (command "rectang" p1 p2)) Y5 Y( i; |/ |2 D4 h6 k
- (command "hatch" "solid" "l" "")* l# u0 ]' U% k4 C0 ?
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))( g& n1 w8 I" g }
- (setq nn (getint "\n So buoc cot phuong ngang : "))
" R. ?" z {6 C( w8 h. d! v+ j - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
, _0 W" C- G& Z* C - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
1 x& V$ d7 Y. |( ~ - (command "select" "w" w1 w2 "")! G$ o% O2 ^6 X( b6 C
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) ); o: t6 q! c7 w/ k4 I; x1 O2 F
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")5 A7 M# z& {! d9 T
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) )); S H5 t4 [4 y. F( Y! G8 ~; s) h
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
& A; C4 d; K+ S# c$ J; } - (command "zoom" "w" w1 w2)1 }" K5 k+ s0 i2 b' y0 M' U
- (command "select" "w" w1 w2 "")
8 I! E/ n' i4 w# j - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
1 m, q$ ]# b( Q/ f4 ?/ M - (setq nd (getint "\n So buoc cot phuong doc : "))
( J; v* m# y+ l7 F2 q6 b% V - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
& Y1 d# d/ y* f - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
& @$ z+ W3 z0 W' @& h' H. h& y) F% ` - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
) t& T6 A, ^" r9 d( Z* t - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
4 |, k I5 a. D$ F% Q8 \ - (command "zoom" "w" w1 w2): y) q$ N9 L* @0 C7 x, B( z3 F
- (setvar "osmode" om)
7 y) D2 w, Z( Z - ), w% D6 z: i% |9 a
" R! {. h7 n2 M7 N Y, X) @- ;VE CUA DI
- o# n, t n" _5 z8 l - # y' Y2 F5 F) v9 ]2 I; \7 P! H
- (defun c:cuadi ()5 `7 p# @9 Z$ W9 C7 g% x
- (setq om (getvar "osmode")). \, ]2 U( r9 U$ F; o3 c( x
- (setvar "osmode" 0): j3 H1 E% B# N6 C+ N8 z
: ^1 B& w2 J" W0 A* C Z6 E( v- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))" L7 K/ x, ]8 z2 z- E* w/ U8 r0 a
- (setq b (getreal "\n Nhap be rong cua : "))' m, J1 f- ^3 E, `8 e
- (setvar "osmode" om)
( J4 V9 X4 `. _9 U$ Q8 E - (while (< 0 1)
! N7 @: E9 D* m) @ - (progn
: g( E+ ~" F8 i - (setq p0 (getpoint "\n Chon Basic Point:"))& y; k+ l2 e0 N) r
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))% v( W" n, J; U6 x- s
- (command "osnap" "none")! L8 Z) ^* d* l, z. I
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
! p% \6 N2 U! t+ |! G - (setq a1 (angle p0 p1))
2 v" U' w- ?; R; c; V$ _# x1 _: ^ - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
$ Q& |( A: G, I) c) X( X& G - (setq a2 (angle p0 p2))
3 y% v9 }5 i v - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )7 {* d/ [6 M% m' r5 Y' y
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
* a; R. x5 Y' }7 M0 I - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))5 [; z, y% F# N6 Z8 B. {
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) 4 l% ] |9 T5 M8 T4 z6 s/ u
- (setvar "osmode" om)
+ o- k! t2 h( k9 z - )) O2 X$ t8 Q2 g- r+ S! y$ `
- )
6 n" H5 T/ y4 q2 M
9 x4 w% H! P1 f n( g3 c- `0 M8 n- ;VE CUA SO
5 ~2 a B# W( E9 Y2 ^' f1 r - 2 {9 @* S6 H0 m3 E8 H! l
- (defun c:cuaso ()( K: @. B- R" u0 a# {1 N6 Q
- (setq om (getvar "osmode"))
" V* L+ Q" m# Q+ b' p I - (setvar "osmode" 0)9 q: H) P' L' W
- - D; ]* }0 W. R7 Q K0 `
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))1 q4 I' P0 ^; a4 Y+ J' r
- (setvar "osmode" om)/ L7 J8 f5 s& I% V" y
- (while (< 0 1)
$ X3 X4 {! c& [' Q& Q5 {- W# p8 H - (progn
, G0 y# y6 {$ o! f& Y( w - (setq p0 (getpoint "\n Chon Basic Point:"))
4 P# m) K: X8 k. t8 \ - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
* V- G! L6 d4 s - (command "osnap" "none")
; O! y9 R; i: ^+ B B4 f - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
6 _: d: _) K; F0 F) c( ?2 r; { - (setq b (distance p0 p1))
9 @0 T+ j& U. G* j, E- n5 I - (if (< b (/ (* hstl 600) tile)) (setq du 50))0 A% i. m1 D! M
- (if (> b (/ (* hstl 600) tile)) (setq du 150))8 o2 }3 `" [8 J- Z( y
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))# ], ?- i2 z }* f
- (setq a1 (angle p0 p1))8 u1 w' ]( Z6 @
- (setq a2 (angle p0 p2))! v3 ~0 Q* ]8 q
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) ) A- F5 v- d' @8 k2 {4 f
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
' @8 h; o. k; ^( r - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) ), U- i/ c" h6 C3 N O- O
- (command "pline" p0 "w" "0" "0" p1 "")
2 p" m, t" t: {1 l) b' i6 h/ o - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
( S$ `8 ~1 X F3 t: W9 t. E - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")" D, z/ n) {" ]7 t
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
3 {- W& p# h& ~) @) b- H - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
6 c$ O) C! e' Z% r3 M4 l) W ^ - (setvar "osmode" om)3 h, U* } y$ R/ P
- ))
7 r! Z9 f- N! F6 Y - )+ U( S% A! s- h# \4 L Y
- + X& J) X+ a3 A& t; H
- ;;;=== General Utility Functions ===
0 i1 p# h5 F/ w0 X* j - - ~2 e* J$ o% H
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined 0 `0 } s8 ~9 A: ?8 z! ?
- ; ADS function. Now it's a simple AutoLISP function that calls the
" u# `5 `' l1 _$ ~% P5 {, r - ; built-in function (help). It's only purpose is R12 compatibility. * a! O$ @ ^+ ^3 I
- ; If you are calling it for anything else, you should almost certainly
- r! ]0 p( |% N' E0 D - ; be calling (help) instead.
6 H1 x$ a$ V) s( l- G -
% x$ P, a& }7 \# n. b b/ q% o$ ? - (defun acad_helpdlg (helpfile topic)9 H- F0 h+ E* v4 K
- (help helpfile topic)/ G" H. p5 O4 P; H
- )
9 {5 l0 u9 u4 [) H - 2 h1 A: u3 J9 V& P' s# {9 X
$ b. ~) Y! Q+ q0 A, ]8 Z- (defun *merr* (msg)
/ R: l3 Q5 h5 T7 O% u7 ^7 i2 ` - (setq *error* m:err m:err nil)
i3 m/ {+ r2 c7 S: ?) W6 \ - (princ)' | f& _- L4 c; Z
- )% y6 k' z' k3 N! | [7 d6 R
- ' x! u& b0 M2 L, A; H& K6 j
- (defun *merrmsg* (msg)' a6 }7 U8 e d @ A w
- (princ msg)
% [7 ]8 H+ N0 y - (setq *error* m:err m:err nil)
: A% L! {, ?6 _; `8 u - (princ)0 u/ b: K: U7 x) S, j* l1 Q
- )7 f; b6 T$ y, B2 Y
# L# S5 z, @$ M# S2 Q9 U* e- ;; Loads the indicated ARX app if it isn't already loaded
9 P+ V+ t2 `/ Q8 L0 L3 W8 Y: n' ]4 j - ;; returns nil if no load was necessary, else returns the
( A& h6 [$ U7 c }% q - ;; app name if a load occurred.
$ d& z, N4 j1 M1 N X - (defun verify_arxapp_loaded (app)
) }, I; s5 X5 t7 m% d7 P* Q: k - (if (not (loadedp app (arx)))
& R) s0 r- @: Y$ ? - (arxload app f)! S3 C A' r. y
- )$ f$ X. @# b4 I0 K
- )/ L' Q# f! Z+ ^% [ J
8 ?- x0 E$ ?. j3 \( G: F- ;; determines if a given application is loaded...% t6 S+ n9 p: k- d
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
1 J0 U7 B9 V/ l9 M4 q& G - ;;
/ C8 \$ b& W: ~; A/ ?1 K - ;; app is the filename of the application to check (extension is required)
5 V( w* j7 _6 N# f) l - ;; appset is a list of applications, (such as (arx) or (ads)
$ ^* Y* Y" C' S; ]8 M - ;;
t6 o2 [5 B/ `0 W - ;; returns T or nil, depending on whether app is present in the appset
& i W3 a( D, T" o6 h- D& l. j - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
$ n, g N U2 N) i! \. t - ;; Also, if appset contains members that contain paths, app will right-match- k7 M2 h2 T1 }) i% L
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that0 |) p) O: V/ o/ @ ^* F
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
( A- v# Z# Q, y8 o. S1 t - (defun loadedp (app appset)4 V9 U: o- v+ d7 Z/ b& E' E% n
- (cond (appset (or : P$ p8 k% z: R6 q% W' z; Z b
- ;; exactly equal? (ignoring case)
5 A' I) R- H1 i( b6 N O - (= (strcase (car appset))
, A+ I8 t) {, `4 q - (strcase app))6 b0 B- o# \, u; f
- ;; right-matching? (ignoring case, but assuming that# t( A9 ?6 Y% A& K: E, s
- ;; it's a complete filename (with a backslash before it)
# k" |3 A; o7 B+ x" u z - (and
* W) y) D6 U6 M+ I3 Y9 @ - (> (strlen (car appset)) (strlen app))% e% a8 Z i9 m) W4 }, l7 s9 _+ a
- (= (strcase (substr (car appset)
3 q1 h$ d. D) @ - (- (strlen (car appset))
- f( @/ t' m* [$ x8 z; C - (strlen app) + q% o2 M! g4 g! B; O4 M9 r. T
- ) + h# [2 e% O3 C8 l% U: f
- )1 _6 l2 Q4 x- d; \ y# j
- )
3 F2 f: ]2 S. o1 `! E' \4 l - (strcase (strcat "\\" app))
3 h: E6 L' w, A. F: n) d; } - )
0 Z/ B' c2 Q! w/ K - )
% u7 u L4 w+ {# T - ;; no match for this entry in appset, try next one....
, ]) I9 ~; k8 K/ p - (loadedp app (cdr appset)) )))- D) `5 z7 I* H' W. y
- )
3 W/ p8 Z7 a z) q' m
# g' g0 i8 A7 c8 f- f8 \3 T- + K* l; U4 n$ s5 k9 ~3 j) ]
- ;;; ===== Single-line MText editor =====
3 Q- l9 D+ B- A7 c2 U) { @7 O( @3 p: P - (defun LispEd (contents / fname dcl state)
, x% z! B+ B* M4 ]0 ^" U - (if (not (setq fname (getvar "program")))1 P* J! c% a5 h
- (setq fname "acad")8 a7 X ]: h( M& v, ` U5 Q
- )
4 Q2 t5 b6 K( _# r4 y$ c- S3 Y/ y5 _ - (strcat fname ".dcl")
- ?7 e8 _ K$ O" @% x - (setq dcl (load_dialog fname)) R6 C% |! V- c8 X' {
- (if (not (new_dialog "LispEd" dcl)) (exit)), @( u0 c9 @3 t
- (set_tile "contents" contents)
2 q2 V2 |( {$ u: z - (mode_tile "contents" 2)
2 G7 Y# \8 c8 o - (action_tile "contents" "(setq contents $value)")
1 L8 C8 N3 @( i& I - (action_tile "accept" "(done_dialog 1)")' X" \/ {+ m6 R9 g _8 h
- (action_tile "mtexted" "(done_dialog 2)" )2 }9 s8 f9 S. b
- (setq state (start_dialog))
, v2 L+ ]% y% S( M } r% c8 L - (unload_dialog dcl)
, o% n0 a: J3 ?6 I' V1 L' G7 | - (cond
; W" V: X0 T( t/ L- n0 ] - ((= state 1) contents)
) O) ^/ Y. h! b' f9 ~0 ^ - ((= state 2) -1)( a1 Q2 _; W7 f+ _! y: v# P# [) H. p
- (t 0) n% q; E6 |5 q) S8 [
- )2 N! s) f. H/ W" Q4 t, B* X2 a2 } c
- )
6 s1 b9 q' X) i% v- j O7 R1 @ - " h D& E; ~; ?7 \0 M8 y
- ;;; ===== Discontinued commands =====* G' Q. l% C' p: H* _. ]
- (defun c:ddselect(/ cmdecho-save) R& o# z+ }4 v% z* B& F1 S
- (setq cmdecho-save (getvar "CMDECHO"))
& N* O. b' W9 ?9 S - (setvar "CMDECHO" 0)
( S0 c' h" X7 o6 j, b( D( n - (command "._+options" 7)
6 j3 n7 F% \: J% I - (setvar "CMDECHO" cmdecho-save)
7 c" o& W1 S4 |( W+ r5 k4 i - (princ)
4 ^* k% S9 E$ G, C; k - )
; [4 \% |! y0 f$ ^. q7 e5 ?/ W - ( o/ o) D2 G. I
- (defun c:ddgrips(/ cmdecho-save)8 o( j# U6 D7 |
- (setq cmdecho-save (getvar "CMDECHO"))1 j' m! S2 c# H8 ^+ N/ H
- (setvar "CMDECHO" 0)7 T* }& F" a0 N8 I0 G& V. a
- (command "._+options" 7)9 U& r0 A4 b1 S5 y' `% o. b, G
- (setvar "CMDECHO" cmdecho-save)% V2 ^! f6 i$ O) ]: w
- (princ)
4 k; }6 \$ C$ y, t2 F* x. D - )& N4 s% k F( _( r
- m- `. [) D8 q7 @
- (defun c:gifin ()
' t0 x" a3 a, { - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
& l& h# w6 a# ^% k - (princ)* j/ A3 S/ o" y9 w" p
- )
' }6 ~5 ?7 U/ h# W; x5 l% E
# [# O# {8 N- [: z: w- (defun c:pcxin ()- u5 _+ f' R! _3 W$ [
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
: V" x9 v+ g" i: y - (princ)6 x1 H8 h$ g( K4 @9 Q- i$ H
- )9 s4 \. c2 b+ f- ^$ T) E, a
) _1 O q, r K# z* S- (defun c:tiffin ()
4 T L5 Y+ G; E5 ~- l5 l+ p# v - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")$ {3 N3 i" y, P/ o/ i/ ?) S
- (princ)7 \6 o# Z( J' F) z% E
- )
t# O n6 `& E& B' j
Y4 q K; ?' K( U7 p, v6 L& }- (defun c:ddemodes()1 G6 V l+ r) v
- (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.")0 ]- g) X' r- O
- (princ)
4 K _9 S: Y! H. M - )7 [6 O3 s9 H, c: u. I; _/ c
/ z6 W: s t7 L- (defun c:ddrmodes(/ cmdecho-save)# B5 \( p5 c: y
- (setq cmdecho-save (getvar "CMDECHO"))9 L! W( i! ^4 r9 _/ r- j0 R
- (setvar "CMDECHO" 0)
7 b+ |! n+ T% v3 W$ c) f+ x - (command "._+dsettings" 0)
4 l, L( v8 ?: e5 V& ~ - (setvar "CMDECHO" cmdecho-save)
" b% c, y; c* [ - (princ)7 l! v; {! \; P0 C& A0 s
- )) W \# K, I) Y
- * G& A- X W! P. k
- ;; HPCONFIG
7 R# \8 `0 X3 Q4 H- B& i. _ - (defun c:hpconfig (/ hlppath)
/ g3 J/ w8 |7 u( e: { - (if (not (setq hlppath (findfile "acad.hlp")))
% C2 Z5 Y& P2 e2 n! H+ D' p - (setq hlppath ""))7 i$ g! h$ _6 w* E" M7 i
- (help hlppath "hpconfig")
0 C! l& n( n2 v+ {. [: X* U3 N - (princ)
9 _7 G; E1 E0 s& u - )
# P, f3 H/ R1 q8 g& J - + y- W0 p6 z# x: p7 \3 r
- ;; OCECONFIG
6 }- L" Y$ U5 a2 q n - (defun c:oceconfig (/ hlppath)
* F( Y5 ]* K; U" d - (if (not (setq hlppath (findfile "acad.hlp")))4 u, I M+ f- J" N1 f
- (setq hlppath ""))
0 c4 L! }8 o- k: r, \- e - (help hlppath "oceconfig"); s3 E+ c, |7 N& Y" `' ]
- (princ)
; M4 }' P, S d* w - )
; z* @2 L3 V8 m6 {) X" Z - 9 c! {1 n, ]) ^# y# F
- ;; CCONFIG
0 _0 y* G7 {$ d4 f6 \ - (defun c:cconfig (/ hlppath)
/ `( O& \, u1 Y2 M: v - (if (not (setq hlppath (findfile "acad.hlp")))
8 Y; s7 x7 B+ p# P! O) S( } - (setq hlppath ""))
* y5 a0 A/ J7 Z1 N) F, V6 @ - (help hlppath "cconfig")
8 H, |6 q# _3 { - (princ)
- E# N# f+ T$ w6 B& e+ t1 B - ), ~ e5 ]7 E0 H! z; _9 M
" Z* \7 G0 ]/ Y' E% |" r4 ?- ;;; ===== AutoLoad =====( Q6 Z% k1 [7 g. ~" B& F, X
- 6 v! Z* j9 L9 P
- ;;; Check list of loaded <apptype> applications ("ads" or "arx") ^5 [- l& l* v; u
- ;;; for the name of a certain appplication <appname>.
) M4 N1 l7 C9 @, n3 r( s/ f* S: e$ b - ;;; Returns T if <appname> is loaded.
6 b4 i, y/ H2 y5 i" i. n, d# `& ]1 B
9 x+ A/ `% P. b* R+ o, D- (defun ai_AppLoaded (appname apptype)
" J4 P& t0 L/ T1 z! M, B - (apply 'or" x5 P; X2 _1 v5 `6 o% |* e0 R7 }
- (mapcar
' ~/ ~- {$ u6 |, a. J: R+ A0 k - '(lambda (j)
- d& j, d+ L6 t - (wcmatch
8 s" Z1 u: M: y( u - (strcase j T)
$ e( |2 Z* p* @/ T9 n. Q! _8 t( r - (strcase (strcat "*" appname "*") T)
1 o9 @/ s$ b t4 b- e2 c - )
& g0 d/ P7 u& p9 P - )
7 L7 s# w7 }! {( ?3 T - (eval (list (read apptype))): U, b( S4 `1 }+ v
- )
3 A3 l" p# s6 A2 N8 Y/ Q' _8 _- f F0 o3 n - )
$ T. _' u. O, k+ [. t1 @' |& ? - )) S7 x, P x4 @/ I& W& y
' i6 A6 }# a" X& v' E) h* ~5 S- ;;
1 K4 x! m' L& o - ;; Native Rx commands cannot be called with the "C:" syntax. They must 6 Z' f& K5 X: f. W- `! C+ h3 Z" v& g f
- ;; be called via (command). Therefore they require their own autoload , {, S$ d8 A' |# d9 H( Q8 N1 c
- ;; command.0 u2 _# n9 ^7 u, b. g0 M
8 g3 ]0 l: ]6 q" X" O! }- (defun autonativeload (app cmdliste / qapp)5 `( K* p3 J/ [; Y, R- M
- (setq qapp (strcat "\"" app "\""))3 @' u# M; B$ M# V
- (setq initstring "\nInitializing...")
* R1 J$ \+ k& N; Z9 G* e - (mapcar
4 t! ?7 T4 }. E+ b - '(lambda (cmd / nom_cmd native_cmd)( W* l7 K2 k/ O7 Z* A+ h8 k
- (progn2 e. U$ |2 @1 B k+ x8 k P# }7 b
- (setq nom_cmd (strcat "C:" cmd))3 L5 Y6 V. K) n+ s
- (setq native_cmd (strcat "\"_" cmd "\""))0 T+ W9 q) z, p. q
- (if (not (eval (read nom_cmd)))
$ a% H! \2 b. h7 ]6 d4 I4 t. t - (eval
2 s0 z2 ^$ Q! |. B - (read (strcat
' F- G8 | Y! b2 Y - "(defun " nom_cmd "()"6 F6 A5 d& B$ }5 k
- "(setq m:err *error* *error* *merrmsg*)") E( E+ M) q, V5 q
- "(if (ai_ffile " qapp ")", w+ W$ Z. [+ ?
- "(progn (princ initstring)"8 G* d3 P- G' Y/ V r: d. L% ~" M
- "(_autoarxload " qapp ") (command " native_cmd "))"
: g7 i/ ?0 e) g8 U( f - "(ai_nofile " qapp "))"6 b @+ m4 _- P1 a+ l
- "(setq *error* m:err m:err nil))"
. a( `4 {0 ], c% c8 d/ a( I2 E: } - )))))): ~. J1 F, m4 W) W8 b# Q
- cmdliste)$ d+ F8 x" h, w( m& {- R2 ?
- nil0 J$ z1 s7 f4 o6 _" T" G4 Q- [
- )% J; \" Z: u2 b
- ' o) y& Q; t6 O- ~7 c. y" `
- (defun _autoqload (quoi app cmdliste / qapp symnam)5 r* [3 k5 q: c6 c- Q% L8 C
- (setq qapp (strcat "\"" app "\""))
+ |, `; h8 a+ a: s - (setq initstring "\nInitializing...")
* x2 o' M/ N: ~! F& q - (mapcar( ^. ?' B3 A$ r% H8 z
- '(lambda (cmd / nom_cmd)
! I; h* w9 Q0 J2 t0 K2 R - (progn
' b3 C# D% x0 ?% }* g) R - (setq nom_cmd (strcat "C:" cmd))
$ U" s, J8 M4 I& _$ ^- Y( X - (if (not (eval (read nom_cmd)))
, @+ X ~& g( T& I - (eval
( ^, i3 f% S1 x6 H' S, z5 i - (read (strcat' s+ j5 j: w8 R/ }. w# R
- "(defun " nom_cmd "( / rtn)"
% z+ j+ [" u5 K - "(setq m:err *error* *error* *merrmsg*)"
6 y6 d( B3 b: W- S" B* J* e1 c - "(if (ai_ffile " qapp ")"* |; |- ?1 O: E9 s8 Y
- "(progn (princ initstring)"" ?/ Y( J0 Y1 l% ?
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"6 W! R0 l( c/ o9 n$ q* S+ b- D* U+ j
- "(ai_nofile " qapp "))"
& v4 q4 M' |# H! E% z" u) z - "(setq *error* m:err m:err nil)"
. Z/ i0 n C4 D - "rtn)"5 W- k- s- \' e7 w4 `( J: m
- ))))))
1 ]$ @; w+ s! `' x u" ?4 S' m - cmdliste)
" \1 h# O$ p5 M" } - nil
3 }- E2 e5 }# b- g) e - ), j2 U( P+ [# y8 B/ J0 F& K
1 ]& B: D: p) i- (defun autoload (app cmdliste)4 A M0 v5 v+ y9 ]
- (_autoqload "" app cmdliste)6 D" k: e- L* t
- )
# t3 U! ~; V) h5 w1 k2 J u( ? - . m( `. c% m+ A! w5 n) X/ |% L L$ q6 P6 C7 n
- (defun autoarxload (app cmdliste)# L, H! r4 }' U6 \) S7 i
- (_autoqload "arx" app cmdliste)
. D% O( N% @% y; P) V% u- T - )
" l3 ~3 r" V7 C* @5 n - # I5 c; P* N/ L# ~+ \
- (defun autoarxacedload (app cmdliste / qapp symnam)' r+ [ I" G" E& ]! m. ~. O2 `1 Q, z
- (setq qapp (strcat "\"" app "\""))/ w" v- b# G& k2 F) e! y
- (setq initstring "\nInitializing..."); d/ q/ z& K( u, O
- (mapcar( R" E+ m% B! Q; D$ v
- '(lambda (cmd / nom_cmd)
$ P9 h( M3 S3 q/ C - (progn" W, L {" _. l/ y _" \
- (setq nom_cmd (strcat "C:" cmd))
/ t, c8 b7 Z1 C- I - (if (not (eval (read nom_cmd)))
A' k3 P5 E: U0 s% d - (eval
3 P! A6 p9 g( R, p; W, R - (read (strcat
( x+ {; `0 y6 [# }# o) u - "(defun " nom_cmd "( / oldcmdecho)"5 x- b* r, p& T# J* p
- "(setq m:err *error* *error* *merrmsg*)"
$ z: P- I, s3 u+ ^ |0 n - "(if (ai_ffile " qapp ")"
! o/ E* V& n7 K K* L - "(progn (princ initstring)" e& d1 h8 | b
- "(_autoarxload " qapp ")"& w$ L$ u( j+ @; z7 i8 V# K
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
5 Y! g0 g" A q J4 h& P - "(setvar \"CMDECHO\" 0)"$ `3 k+ ]! q7 }4 W0 F
- "(command " "\"_" cmd "\"" ")"$ Q% Y7 S; m8 }8 e6 z
- "(setvar \"CMDECHO\" oldcmdecho))"
6 S6 ^, L7 r& q - "(ai_nofile " qapp "))"
& f. h1 e7 w8 v! b y5 E - "(setq *error* m:err m:err nil)"
" b* _/ K5 F/ C - "(princ))"- o6 G# e7 E8 C) R" ?
- ))))))$ P8 V5 Y" B$ W9 m) W+ ?" t8 j: y
- cmdliste)
5 U' b' ^* H& p8 j8 i* H - nil( b, G- {0 C: `. C1 l2 G
- ): f Y6 l9 s/ r! m, t7 B8 K. [
! c% L0 d1 \8 f* r1 V" S# k: h- (defun _autoload (app)9 o# }; H5 C& a3 C" R8 q" O
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)) F$ t$ Q* }, [5 U. Q3 @
- (load app)
2 b0 c3 m3 R. `0 `* W. u! l" ~0 m - )
8 r- ]' |$ w% w$ B# F - . O& v+ r( R4 ]# F: u$ g
- (defun _autoarxload (app)
. b/ {' V( G% s; G- v4 q% Q& i - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
{1 F `# l2 U R1 H2 ~) v0 N - (arxload app)5 u* n! \7 r4 j" @3 t4 O U( K9 t
- )# q$ P% H9 ~- K) o2 Q
- * P/ d7 z- ?$ R7 q3 Q) m7 g
- (defun ai_ffile (app)
' I) P* w6 k) h8 Y - (or (findfile (strcat app ".lsp"))
5 t; X" C# O" ] - (findfile (strcat app ".exp"))& V$ A: t$ U# E, J
- (findfile (strcat app ".exe"))
& A0 n8 }3 d2 \! L+ \. d8 K - (findfile (strcat app ".arx"))
5 H) u' G4 j( j- T H - (findfile app)
6 X* q7 j3 r2 M6 _9 h - )
& G1 a8 e$ S6 j L - )
- T* F8 o+ R) Q - $ G& L8 ?0 m3 t- b
- (defun ai_nofile (filename)
! o7 F$ ^4 E4 u5 Z: X! X - (princ
8 p) R6 i" N, L" X7 v# C - (strcat "\nThe file "
$ Q; J$ d) y+ R! f- {0 G1 F4 i - filename
# G9 A* [ N, n - "(.lsp/.exe/.arx) was not found in your search path folders.") {( M) Y2 b. P: }5 T1 ^
- )
% n1 e+ t$ o0 T1 S' |" G1 P0 C( Z - ), N5 z S$ Y3 I0 t9 K' l# U0 ?
- (princ "\nCheck the installation of the support files and try again.")3 j' M9 l0 n9 X' r, `. X1 v
- (princ)+ n' P) R/ [3 [3 b: {2 E/ X
- )$ O1 t5 C+ c: S) M
- ) b# M Z; s/ l
- : K" ?7 d$ Y+ v& ]
- ;;;===== AutoLoad LISP Applications =====
; |1 W6 q1 ~* n. ~* [! A! s - ; Set help for those apps with a command line interface
% u/ ~ w1 n3 Q1 T - : l2 b/ ^, D$ B6 d0 R+ y
- (autoload "edge" '("edge"))
2 O; G, d; N' H1 h - (setfunhelp "C:edge" "" "edge")
! t; ~# [& w0 h - - Y4 P: t$ B* i e- ~) [9 e3 l
- (autoload "filter" '("filter " "filter"))
- B" e# D8 r, e7 ^+ ? - 4 e a1 @' M6 z9 N* ~% \) U7 N5 d
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"# Q; _$ X' ~* d( e
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")5 m3 o1 J: t1 y4 H2 v
- )
@7 k( `. T' X9 ?' y2 ^ - (setfunhelp "C:3d" "" "3d")- c% O. l0 x0 H+ C
- (setfunhelp "C:ai_box" "" "3d_box")
" w, x6 N- q$ _: ~6 F. q( K7 } - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")2 O+ X" c: a% X: c( g
- (setfunhelp "C:ai__wedge" "" "3d_wedge"): u. F$ U$ |) k' }6 v3 F0 _1 b8 X
- (setfunhelp "C:ai_dome" "" "3d_dome")$ E& R* A' l+ G
- (setfunhelp "C:ai_mesh" "" "3d_mesh")6 G/ O2 l: e% q5 I8 R7 p
- (setfunhelp "C:ai_sphere" "" "3d_sphere"). V% @! F9 M4 E4 }
- (setfunhelp "C:ai_cone" "" "3d_cone")
4 @; {+ b2 ~* I6 O$ m! s - (setfunhelp "C:ai_torus" "" "3d_torus"); B! f) M* \- j; p5 U7 F5 e) O
- (setfunhelp "C:ai_dish" "" "3d_dish")
3 ~8 ~3 H& V$ }0 I n, y
# g# e% Q2 [4 x1 e6 I* v- (autoload "3darray" '("3darray"))0 G8 J. P+ G6 V3 |; \6 w
- (setfunhelp "C:3darray" "" "3darray")0 L. r3 v J4 t+ x- Q9 t; V
- : J2 [+ q& A8 q
- (autoload "ddvpoint" '("ddvpoint"))& B$ Z+ R0 Q8 W; C
" B+ B8 f ~" h- (autoload "mvsetup" '("mvsetup"))) }0 g6 g6 ^& u" \' H( y! J1 L' u
- (setfunhelp "C:mvsetup" "" "mvsetup")
+ E. {8 h0 v) k( K& I - % \7 K5 o$ R. i, w, t- \
- (autoload "ddptype" '("ddptype"))
7 v: w7 [0 B, M, V& H$ J. h
) @+ }: S2 m# ?- (autoload "attredef" '("attredef"))
3 ? U- @" D6 W$ ~ - (setfunhelp "C:attredef" "" "attredef")1 e7 u" U4 {+ R$ o& F) {3 c
! z( I: f; [. K( t/ V& @2 z- (autoload "xplode" '("xp" "xplode"))
' f& _: }6 j9 A3 \- T4 K( H/ t - (setfunhelp "C:xplode" "" "xplode")+ g" I( m2 T4 T% L1 l" E8 W) }+ Q
% r- }6 c# G8 W# l- (autoload "tutorial" '("tutdemo" "tutclear"3 P. z' g2 ?" v" [" i: d
- "tutdemo"
# e0 F5 t3 o. e$ t - "tutclear"))& O A+ J; h: c+ z
. Q1 m" E- G1 G! _- a1 K- ;;;===== AutoArxLoad Arx Applications =====
0 Z/ ~9 m P+ l9 [) ^+ u - 6 w0 U% D, {) v* Y
- (autoarxload "geomcal" '("cal" "cal")), i' J2 f9 z+ c/ M: B9 u
4 G* c8 V ^2 Y- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"8 y9 X* H( E5 h6 h/ ~0 |
- "mirror3d" "rotate3d" + \( z5 }0 O* g0 q+ t6 v
- "align"))
$ R; |# a4 L5 y - 4 N1 Q7 H" U' Q+ \' p0 l' x
- 5 g; W+ p1 y; d, V% K. |' d8 m
- ;;; ===== Double byte character handling functions =====
8 W [8 m7 q, U5 d5 { - 8 M& o+ d, c: Y4 K" Q) I W* W
- (defun is_lead_byte(code)& f' S( J3 r& t/ K1 G/ ~ X$ c
- (setq asia_cd (getvar "dwgcodepage"))0 ?6 s7 ~, ?8 |- s$ Z6 x
- (cond
+ d8 i2 b9 i+ P - ( (or (= asia_cd "dos932")& L1 V0 |5 K D- n) |
- (= asia_cd "ANSI_932")
8 B; {: f- Q9 W0 i* q% e& L& Y - )
9 \7 E. e& N8 ^ y - (or (and (<= 129 code) (<= code 159))
3 m: y `& P; S+ f - (and (<= 224 code) (<= code 252))( R) f) ?; }/ s1 D. O! F1 _
- )
! @" {, E$ z/ \. T+ g - )
1 o# t V. `5 ?7 C6 y( u - ( (or (= asia_cd "big5")# M' W) p$ q/ o8 y8 d% j8 d
- (= asia_cd "ANSI_950"). E6 A- O5 p. H' ]( ]8 D
- )
2 X1 z5 ^) @% H3 N5 M - (and (<= 129 code) (<= code 254))
0 i- w6 Z9 Q4 C" [) W - )- b4 e$ X% D ?
- ( (or (= asia_cd "gb2312")5 g2 ~ N v# m( l7 h
- (= asia_cd "ANSI_936")
# E( P( Z0 M; b0 \) \1 B3 e! A - )
' r) o$ R& ?6 a8 G$ N' y- e. b& ~ - (and (<= 161 code) (<= code 254))7 N$ w: J" o& R% N
- )
. o1 I4 S/ M8 h" W5 u$ E2 _ - ( (or (= asia_cd "johab")$ z7 R& B. j! l! I) d- ~3 D
- (= asia_cd "ANSI_1361") V- u' o/ C* J9 {+ `" m7 a
- )
: U* {' W- t- C) }) \" Z' i - (and (<= 132 code) (<= code 211))
! a. a1 V& B/ k5 X( l: c# }7 D7 ? - )
& i1 q: u* g s4 D! n - ( (or (= asia_cd "ksc5601")
! {) W0 I' T: e* B1 ]; o - (= asia_cd "ANSI_949")+ v$ b- u4 m# Y6 V8 m9 H3 s7 s8 S( E
- )
4 C; H5 |; p. S$ E6 K6 x. N - (and (<= 129 code) (<= code 254))% u% m4 O- E7 P( q
- )
0 a! p# a- ~: ?" W - )7 T1 V: J9 q: C
- )" F7 G( J0 E6 `: [9 o4 q5 Z
- ( N, o) P* L' L R
- ;;; ====================================================
# s) o$ v: }! f7 f$ r' V" h" A- ~
( J0 Z, F" e% v9 d$ Y# y
, P/ g" x Y9 a9 ]5 _0 r: o5 y8 V- ;;;- Q* _8 ?: I' x' n5 ]* V
- ;;; FITSTR2LEN
. Y6 W6 v% |2 S% p" s - ;;;: Y# T9 g- p4 X1 U9 d) ^$ q& H, x
- ;;; Truncates the given string to the given length.
, k6 n3 C3 s+ g& v$ R - ;;; This function should be used to fit symbol table names, that
3 A% v: B U5 O- ]# R5 m - ;;; may turn into \U+ sequences into a given size to be displayed
- B* q( z5 X( {" C - ;;; inside a dialog box.7 v* `' z* B+ v) j9 M# C; x) N Z) A, \
- ;;;$ ~, P8 @" k$ H
- ;;; Ex: the following string:
. Y" L9 h% }, ], @1 W9 L J - ;;;
! v* U' ?! t# S, O( m, ~: { - ;;; "This is a long string that will not fit into a 32 character static text box.") d) ?. S) P' {9 ?2 T
- ;;;7 y |0 z$ x( N
- ;;; would display as a 32 character long string as follows:
1 g# X# }; O" y7 j - ;;;
! \# V" g3 @8 L: G2 I( e/ { - ;;; "This is a long...tatic text box."7 O, j5 W+ V$ A4 p# M+ C2 U3 m
- ;;;+ p. z9 d; [. l& V/ f
' s. Y/ l' n* p' V. f9 j) E- (defun fitstr2len (str1 maxlen): q8 F2 Z* P* @+ d6 f
. ~& [1 w+ t- F' l6 m* u- ;;; initialize internals
! o# T: s" ]' G( M% z8 U - (setq tmpstr str1)
: v* B0 p" A7 S/ B - (setq len (strlen tmpstr))
7 Y3 p' b! T( C9 i7 _ B6 y: x - 3 `0 P. b1 _! Y! ]! `- q+ U
- (if (> len maxlen)
, G( q! h' J6 X8 E3 l( ]4 C - (progn2 I' ~+ B3 L+ I) W: I
- (setq maxlen2 (/ maxlen 2))7 G$ s; }1 Q6 |9 j; x# y4 U
- (if (> maxlen (* maxlen2 2))
+ _- f% b3 T% M: D# M& |# M, _% [ - (setq maxlen2 (- maxlen2 1))
" E0 q) O' l& t& m5 ~7 J; R! J - )
( A# ]# }# z& l# c5 C - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
" Q( X% b; D2 S* C! ~9 n - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
5 J2 R: {: j7 R" Y3 m - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
+ z; q% i: }& Q' n - )( L& |) n K* e- N2 t4 }
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1)). V5 m- E, U$ Y# S# Y9 d: ~
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))- U) C, F4 b2 v" }+ a
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))5 ^; x0 H# Y) L. }6 y
- )+ C0 T+ B4 \/ {
- (setq str2 (strcat tmpstr1 "..." tmpstr2))8 B3 D. x" X3 `5 e2 y
- ) ;;; progn
. F3 Y1 f1 k9 i+ |- q - (setq str2 (strcat tmpstr))! `+ z: k: ]* S; z n0 j
- ) ;;; if
; ^* S' k9 d% H& Z* ^' f. K& f - ) ;;; defun+ u4 c3 r Y$ N9 S [
- " Z, f. b1 N$ K
- ; H; i5 o; \1 U* @$ c5 g; ?
- ;;;' K+ l+ Z" _* O O5 A/ z
- ;;; If the first object in a selection set has an attached URL
" y0 i! t/ e1 j$ E6 l- ~ F) _. n. p( U! e - ;;; Then launch browser and point to the URL.
. u$ D, x& |" c# w6 M2 O T( a$ C - ;;; Called by the Grips Cursor Menu
5 R: K- |4 p2 r: r( b - ;;;; r8 }! B3 L; r# V3 d D( |4 W
0 d# \7 o( H1 Q& A5 D5 I- (defun C:gotourl ( / ssurl url i)
' H" G0 s: {1 S# _ - (setq m:err *error* *error* *merrmsg* i 0)
5 ]1 N" t# J0 r4 L3 x - q B [9 x( ?7 D7 S, N
- ; if some objects are not already pickfirst selected,
~( ^0 E" v. _8 @+ S3 I - ; then allow objects to be selected
* U, W/ p1 |* R6 z, z( ^
. b! O3 e' |. \3 N/ f- (if (not (setq ssurl (ssget "_I")))/ c7 m- H- }1 a4 [& Z
- (setq ssurl (ssget))
! Y( p( U1 y t2 g! ^ - )
" I( |" _3 V- ?6 R/ h5 {# f - " A& a# J* X3 n. ~0 x9 k
- ; if geturl LISP command not found then load arx application. a q* ^$ P/ ` ?/ @ A
) w8 R N) c& Z9 D" V, @- (if (/= (type geturl) 'EXRXSUBR)
# R2 G. V: V$ k6 X2 V( [1 J - (arxload "dwfout")8 u |: n7 N+ \
- )2 X. P; ]* o/ p4 P. i
- ; r6 a. b( N( l" H
- ; Search list for first object with an URL
8 J G/ T |2 d5 W1 E - (while (and (= url nil) (< i (sslength ssurl)))
5 J8 s! H+ j6 y6 M' q, H) S3 p - (setq url (geturl (ssname ssurl i))! _0 f- L9 S! b* r) i
- i (1+ i))4 v% W1 q) A7 w5 \7 C* ?9 e6 `
- )
& v3 k4 d, k# G8 q. u
! F \4 G) J: K, g& F4 ^0 U h K- ; If an URL has be found, open browser and point to URL: f5 n7 T. P: y, R d
- (if (= url nil)
( {+ D& o1 L0 `6 g$ } - (alert "No Universal Resource Locator associated with the object.")
# \* g6 r. q8 e1 X4 ] - (command "_.browser" url)0 S4 y. p+ @' r" b0 f; W
- )) C1 ]/ N& m0 u, p* W# l6 ]
+ c) \2 h f, P: l: ? W" o- (setq *error* m:err m:err nil)+ K, E) G: c+ y. `$ _ M7 I- m
- (princ)
, f- }& E- R$ ~7 j" N5 d
* B' i% f1 e' q! f! k, _: n- )
" }0 N6 y2 C, T1 Y& r
% S7 m0 l2 A# I( P7 u) E$ b/ v- ;; Used by the import dialog to silently load a 3ds file7 P" N' [! v7 E# [* h8 u P0 _1 _! b9 T
- (defun import3ds (filename / filedia_old render)2 w( G: w- b6 v5 V! c
- ;; Load Render if not loaded0 h9 P8 S' t; o
- (setq render (findfile "acRender.arx"))
. l4 ~ P4 ^- ^& X; L1 S - (if render5 T* o# t5 H% ~
- (verify_arxapp_loaded render)
: L( ^, N, m `3 k+ @ K+ K - (quit)3 c- }7 i8 k9 Z1 ~- I% W) o3 u
- )
3 L* Z! f- L$ \ N# ~
& h% h6 R1 {% Z- ;; Save current filedia & cmdecho setting.3 [+ _1 d: H5 a; z: l3 W$ ^; q
- (setq filedia-save (getvar "FILEDIA"))" K: l6 W7 q4 U$ f" z- p$ Q
- (setq cmdecho-save (getvar "CMDECHO"))
6 n! B# ^# X+ k - (setvar "FILEDIA" 0)7 |+ R& }) o; r7 ~% j/ L
- (setvar "CMDECHO" 0)
; F0 W; p4 }) N& f1 B' D. @
4 c8 o3 c9 |/ t: a' y# S- ;; Call 3DSIN and pass in filename.5 P6 L; }$ @' G5 [) q" Y3 J
- (c:3dsin 1 filename)# m! `: P8 q' K$ O2 B* z: ^
- ! O- ~4 w8 `! T/ r1 u
- ;; Reset filedia & cmdecho: j; D5 c- @+ ]. f
- (setvar "FILEDIA" filedia-save)
' W! U/ l4 J7 t% h - (setvar "CMDECHO" cmdecho-save)' i! e. l6 q- Z" Q. Q
- (princ)+ G Q) G1 S5 |$ I! K5 v2 c
- )0 ^! N# ?1 T- B( H6 n
- " }( N1 c w4 M1 l1 `. e8 t& w
- : x2 l* h- b0 U: _' a" o* S" b
- ;;;=== Menu Functions ======================================2 y! j0 H% ~ ~7 q8 R( W6 P# {
7 s# T/ O( o* w* F% z# t- (defun ai_rootmenus ()
. a5 x# o5 G3 _3 u - (setq T_MENU 0)
R+ t# z% H/ V+ F( h! P2 A7 B7 s - (menucmd "S=S")
. z: c8 {& q( O( Q1 W5 V - (menucmd "S=ACAD.S")
) U7 _1 a: U; V P/ p W- I - (princ)
+ }+ `/ O6 _& L" w% H* z - )
3 h9 I! |9 Y2 ?
, K7 c$ F& U8 t" z- (defun c:ai_fms ( / fmsa fmsb)6 I+ ^" p: [6 H% I9 t1 x( G8 t$ I3 c
- (setq m:err *error* *error* *merr*)
. \. Z0 y/ ?. p- |" F - (ai_undo_push)& O# ?7 @6 P9 N( V
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
+ l* C- Q! N a/ ^6 n - (setq fmsa (vports) fmsb (nth 0 fmsa))8 C* F4 ~0 N, B. |" J
- (if (member 1 fmsb)% x7 y/ h% c+ w! |6 h
- (if (> (length fmsa) 1)
/ m4 @' C# B* V% P6 \ - (command "_.mspace")$ _4 v& S! a4 w. v
- (progn
1 u0 j: P7 O8 X+ M7 ]1 z$ D$ f+ D! Q9 Q - (ai_sysvar '("cmdecho" . 1))) I; F% z1 i0 \
- (command "_.mview")
g) ^( i8 G# j+ `8 Z) b - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))3 Q7 j4 d( W) q1 Q
- (command pause)
# P( @" k! J/ } - )
' Y$ |* k) G; x$ q5 h' q, } - (ai_sysvar NIL)% h i2 z1 L r8 d1 o; U, ^
- (command "_.mspace")
3 J- t& `7 }( T - )
' y# C; O) c4 A+ j5 Y) n - )# U M9 S8 z8 \7 Y# t9 F
- )
) b, a0 O8 Q0 f- c, P' W - (ai_undo_pop) e# L# V" C1 u. m# }
- (setq *error* m:err m:err nil)
8 ]' q( j) ?8 N/ d6 P5 N# g3 O - (princ)
( u. |) C% }& Z. b - )' k H: a9 p0 J: z* }
! r& ]4 v" F) [/ [. ]& C, ^7 [. I- (defun ai_onoff (var)
1 _# K% O1 t9 T3 `- z, i( {2 _ - (setvar var (abs (1- (getvar var))))! s |" S+ k# O
- (princ)% s* J( i( H) L
- )
# y& T! I6 ~) f @/ U+ H - c C8 V4 m/ _
- ;;; go to paper space
6 ~% A7 x- t* a' [. G% R# G - (defun c:ai_pspace (); D2 P4 u, A0 L- h
- (ai_undo_push)
( V3 F9 N& I, c - (if (/= 0 (getvar "tilemode"))6 c; `0 S8 x7 g, N
- (command "_.tilemode" 0)7 C8 O- B/ m. }
- ); i. D1 E% N5 P4 q" k
- (if (/= 1 (getvar "cvport"))* y6 \' S, h) V& X* }3 B! N
- (command "_.pspace")1 L3 r5 v" P" k' M( s4 p
- ). I8 P( }+ S/ e2 e! Y9 d5 ?# l8 G
- (ai_undo_pop)
l9 d& l7 @( S# v% M4 E, ?' v - (princ)
0 c+ g" N, N# o3 w# S ~ - )" [! o4 ]( r/ \& }1 _7 w
. s7 A: O3 q2 R' S/ P- ;;; go to tilemode 1
' S6 p4 i, O' Q* f3 H7 a - (defun c:ai_tilemode1 ()$ e1 c/ X8 ~ L- e* M) ~, m8 J, r
- (ai_undo_push)1 P) S p; x5 p/ W) N& |5 [& t! k
- (if (/= 1 (getvar "tilemode")): O. G0 W0 N% d. m. ^9 \! D8 E, V+ o
- (command "_.tilemode" 1)9 G; W* O4 ~8 t$ k
- )3 L$ i/ ]* o; f$ I2 N# T& k6 Z
- (ai_undo_pop)
& u/ E) V, E+ d& m - (princ) {- `0 I( w: q- ?& F6 y. y3 K$ g
- )
4 o$ R6 I ?7 w, I4 H - 3 }* r/ N# Z- G0 g" M+ m- T
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
) c, M5 K9 I7 C6 e& ? - ;;; Toolbar Dimensions/ Align Text/ Centered
1 f0 D i4 Q. p - 4 f: t! m+ X* ^4 o; h" i, J. p1 Y8 _- O
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
+ ~$ l$ L9 w2 e% |: \7 g9 I - (setq ai_sysvar (getvar "cmdecho"))
- H0 L% ^8 B2 x: p8 v3 c; l5 p - (setvar "cmdecho" 0)
: n2 b, X6 |: o7 T4 Z6 O - (cond
- Q9 T$ W* O! M* j: l& F8 F - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
4 d9 g! s% j: I3 K0 j6 w* {8 U - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
6 G9 W& r- }+ L4 ?* B4 E8 h( s& ? - "_.dimtedit" ai_dim_ss "_h")1 B1 v5 h# E' J( e8 N
- )
9 H0 Q. k1 q! c: ? - (T nil)1 i% J& H M" I1 U4 j
- )" ]4 X3 o$ @4 ?; k
- (setvar "cmdecho" ai_sysvar)' l) S$ {/ h# c, Z& v! o q
- (princ)
( C1 w! _8 O# B5 z2 M1 w, ]7 [ - )
# Y6 z- t1 Q( f1 c7 Y - ) S& y2 ]* h- k5 B' x- A$ i2 ~8 d
- ;;; Shortcut menu for Dimension Text Above 1 C! U+ k/ f8 b7 {5 e n
% b! d0 i4 r" [$ m W# c- (defun c:ai_dim_textabove (/ ss)2 M8 r5 {6 c3 \! A# S) K% c' t
- (ai_sysvar '("cmdecho" . 0))
}, D& d' i5 l - (if (setq ss (ssget "_I"))# J# i( F2 N2 g# w8 O+ U! i
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
# n4 e9 |% r% m - (if (setq ss (ssget))
+ x/ z" h5 q& T: Z: w: Z: ~7 g - (command "_.dimoverride" "_dimtad" 3 "" ss "") + S. ~3 k6 n; Y- x5 o
- )
; t" P- M* a5 }! m+ @7 ? - )/ L* t! i3 u4 B# j' l
- (ai_sysvar NIL)3 I- F- q' A, a, U: b' }& m$ h
- (princ)
+ Q8 o3 X" @ s" g, o q8 K' f - )' q, \$ I. ?! q( y5 A
- ) v/ X8 \ F3 f! I
- ;;; Shortcut menu for Dimension Text Center % m2 Y6 ^- @5 ^
% M' o% [8 ] M+ W3 t. \- (defun c:ai_dim_textcenter (/ ss)
& q( K* T a( H - (ai_sysvar '("cmdecho" . 0))- b% ^" ~6 ?% W. h5 j+ @
- (if (setq ss (ssget "_I")) x" Z4 ]9 N: k
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
* e5 b9 F- H: O- q - (if (setq ss (ssget))
% ^' ]: i( D2 F1 ~ E% Z, P1 O - (command "_.dimoverride" "_dimtad" 0 "" ss "") " D* m" s2 P2 f3 F; t/ \
- )$ I# G3 E2 _( F% ]
- )
. `. R! a6 N5 P9 B, M - (ai_sysvar NIL)
; Q5 G$ W7 l- ]0 t - (princ)! v& `8 l! Q, `. }
- )5 [% w5 o" g4 O2 H7 @+ ~
9 s5 Q' ~: {7 ~2 h. _; @5 F- ;;; Shortcut menu for Dimension Text Home
" a' S8 _- u7 E7 i, h6 t6 a1 C0 l - 5 ^; l! z* r+ a4 g5 p4 W
- (defun c:ai_dim_texthome (/ ss)
1 t* m5 c7 h2 ~8 I - (ai_sysvar '("cmdecho" . 0))7 V! K: l4 b/ h: U: Y) K
- (if (setq ss (ssget "_I"))
1 q' H Z2 N( u- i0 D" V; e - (command "_.dimedit" "_h")
5 f0 T; ^) w$ T- o' D7 ?! e - (if (setq ss (ssget))$ _5 w. D5 L2 D- B0 @
- (command "_.dimedit" "_h" ss)
- m# @/ M( Y0 A1 }6 K8 s# R - )% S1 B4 L# x' @' S+ c( f4 h7 X
- )( T9 C7 w7 }" m. b: z& |! W; e
- (ai_sysvar NIL)
8 g; l* d8 K. n7 y4 G* Y: L2 e' C - (princ)
' I, F; S5 L$ W$ l5 U7 J& \ - )& b9 B" y0 f0 h# T8 o
- # ?9 x( r0 S/ P6 H, I; ?
- ! z; S8 ^& b8 L2 g
- ;;; Screen menu item for CIRCLE TaTaTan option., M# E5 R+ b2 G
- ;;; first, get points on entities
" _' N& |) O1 V; f# w - (defun ai_circtanstart()
1 [. ?# o* C' d4 w - (setq m:err *error* *error* *merr*)# [# Q9 ~' c9 v
- (ai_sysvar
* t) G2 n$ b& g0 z. T - (list '("cmdecho" . 0)% P$ J) B& h& s! a' z4 N
- ;; make sure _tan pick for CIRCLE gets same entity
$ y; y1 G4 ]: ~3 Y9 D; o2 f - (cons "aperture" (getvar "pickbox"))
. @8 ]. f! t$ J% @$ W - )% x/ f6 o2 }, e3 ~
- )
2 g% n# B9 R9 f* w( Q - ;; prompts are the same as CIRCLE/TTR command option
+ A5 A2 \- p$ w3 S7 R+ i - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))- G Y+ Z( h" v3 v ~& D3 S
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))! e f& H' J9 N8 C( m3 z" A" b1 K
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))$ |7 U1 P1 f" b7 V% |9 Z/ d
- )
4 `# O. [( ~8 ?. b+ D3 e6 b - ;;; Command-line version
X! g+ x. }2 S* Y+ g1 k. c - (defun c:ai_circtan (/ pt1 pt2 pt3)7 D, ]7 s. p: S4 Z6 z: z# f7 D/ I
- (ai_circtanstart)4 k! A# g3 `) n8 Z: m
- , f0 F: W- Z3 W3 x8 O3 X! k
- (ai_sysvar '("osmode" . 256))
9 h, H* ]5 K3 Z+ h" R/ Y - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)' L" m, F$ X {, p) m6 ~( M
- 3 s R/ s% v" C
- (ai_sysvar nil)
G' e& U; V4 y0 a) V% [4 v - (setq *error* m:err m:err nil)$ y; n3 F# q6 K
- (princ)- z4 v+ F4 T* N1 Y
- )6 ^% R2 a5 r, T r
- ;;; Use this if CMDNAMES == CIRCLE
$ M! {0 T/ w$ N7 p - (defun ai_circtan (/ pt1 pt2 pt3): d; X$ p; @* i( N" [) {6 l
- (ai_circtanstart)
7 m( m& S! j1 r/ @& p - 8 z/ K& y) n r; d
- (ai_sysvar '("osmode" . 256))
+ o8 R! T' E0 o) [0 Q - (command "_3p" pt1 pt2 pt3)
! T5 [0 z) I$ I. j - 6 Q9 a0 g' U) H5 a" S" `# \
- (ai_sysvar nil)
# c; m# b4 u/ a! r9 N# B; m - (setq *error* m:err m:err nil)
9 |6 \! O+ n% n. ]0 U: U- L* | - (princ)9 t! E" H0 ?9 e
- )6 [# q( F% N1 W/ y$ h
- $ q) K% Z3 [, }
- % j4 \8 @+ q- o* y% n& a
/ `! A+ w: u1 G4 J% L0 m- ;;; Shortcut menu Deselect All item.
; J( T6 h1 ?8 Y. z8 m, e - $ B5 U$ ?+ N3 O' ]. _! I/ ]% V3 N; L
- (defun ai_deselect ()" ^1 ^2 n! `6 c+ e' F) l
- (if (= (getvar "cmdecho") 0) ;start if
5 }0 V& U+ B8 |1 Q" a - (command "_.select" "_r" "_all" "")8 N% a! B9 _: i1 n0 x! v7 P4 ?8 Z
- (progn ;start progn for cmdecho 1
1 e0 U/ E6 c. w$ m* M& v4 `9 e+ M - (setvar "cmdecho" 0)% s& r( m+ K: I
- (command "_.select" "_r" "_all" "")
& b& f8 @) n9 ` - (setvar "cmdecho" 1)9 s6 X V7 q, z- e2 n$ `- R, {3 v
- ) ;end progn for cmdecho 1
( D$ ~5 r( j- f2 ~$ Y) \ - ) ;end if7 O; Y3 I8 s3 _) r
- (terpri)& I# e4 E$ p c, |7 }) d/ K
- (prompt "Everything has been deselected")
, x, e# T4 Q) p: w- l1 `8 X* r% v - (princ)2 a9 `4 q, R, i3 ]/ l/ a- S. G6 L
- )
7 b0 H( o. N$ Z0 A - 4 S Y" l7 P6 t$ y2 E
- ;;; Command version of ai_deselect to be called from the CUI
3 m! _4 X7 G* q - ;;; so it gets properly recorded by the Action Recorder" w( \. O) e- f+ N0 k' V6 `! i0 A/ D
- ;;;! n2 {) H1 z6 A7 H. C7 b* ~0 s% R3 r
- (defun c:ai_deselect ()8 v; l7 o D; C9 R) u2 z
- (ai_deselect)" h. w5 D* S' l; x0 g5 F
- (princ)
0 p3 p N0 [" z8 F - ), y0 t; I! z& G5 l$ C8 b
% M0 r" M7 v: l- t/ M) [- ;;;
7 h5 h9 a# D/ |' q8 K( Y - ;;; Enable Draworder to be called from a menu
9 Q9 N' `* O$ ?+ Y/ i. Q. J - ;;; Checks for Pickfirst selected objects1 y. W3 g- C0 K% a+ S4 Q$ G$ A
- ;;;
: O6 U/ Z3 l9 X; W) }! X - ) R W, y: ~' p3 C
- (defun ai_draworder (option / ss )/ z* ]4 ~$ ?* w% M* N
- ( m+ A2 ], {4 _+ ^
- (setq m:err *error* *error* *merr*)
6 d( k& o8 D9 g) R, f - (ai_sysvar '("cmdecho" . 0))! s) [* \' M! q0 p+ H
/ }2 Y. l2 `+ e% w- (if (setq ss (ssget "_I"))
* @" W( E. p- ]" Y - (command "_.draworder" option)3 G9 C& ]* @9 a! [! a/ L; M
- (if (setq ss (ssget))2 J/ X" T# n3 F2 w4 ~6 j4 ~
- (command "_.draworder" ss "" option)
7 Z: g0 `9 r f - )3 Y: ?# v( M5 o! p8 X2 g$ R' G
- )# j* C4 c& r' d8 [, b
- (ai_sysvar NIL)
0 {8 \( I4 @3 j5 [4 l+ L, ^: M! D - (setq *error* m:err m:err nil)
0 E' ^& A5 U8 K4 F - , ]& h, `4 s$ H: Y, H- P+ o
- (princ)
/ u. A* m- Q9 n9 ~! ~9 n+ z - ), B# {+ T0 V" \% b7 [9 q
9 u2 R$ R! W! q# D6 \- ;;; Command version of ai_draworder to be called from the CUI
$ a2 i: D) H; r5 d* h7 D3 j; l; p - ;;; so it gets properly recorded by the Action Recorder
/ S7 y# s" d3 |8 C) { - ;;;
# `8 N5 ~8 p7 _+ {/ ?3 ^# D7 @0 l. A - (defun c:ai_draworder ()
$ ~9 n$ J" v) f* ` - (initget "Above Under Front Back")( z6 r+ w# r0 Q! O6 g' H6 e+ p! W0 S
- (ai_draworder (strcat "_" (getkword)))
" i }' ~8 T# k O - (princ)
% g# P7 A- r5 e/ n% q; L5 m - )
5 U1 M& {2 ~+ W& G+ S9 F7 ]- B$ ~% i% H - . a, ]7 O! E" N/ S, j
- (defun c:vlisp ()
- E& }( G7 y& E) M( U% v - (if (/= nil c:vlide) (c:vlide))" a6 {1 a2 A; F/ O4 B
- ) m1 a5 G% ]' G$ a- ^! }5 Y/ Y
- ; g/ ?; E3 b2 Y0 e- I# K
- (princ "loaded.")* k F, r" y$ Y: l9 z2 _8 m
$ c; `3 R! x' \, D- j. [, @0 m" |- ;; Silent load.
: I- t$ K) w* I ?( N2 l) i - (princ)
1 Q: k9 j4 V7 ?; Z
* d* x( J9 q0 t: @& t- ;;;----------------------------------------------------------------------------
1 v2 W" E4 A! W% N( O- r - ;;;* ]7 p" ^, R/ q# w( d, U: B
- ;;; DDCHPROP.LSP Version 0.5
& {; ?$ E( W7 R3 s# i# ` g& d8 y - ;;;* Y6 `% J( b2 X: G
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
, C( t; ?) F' z7 c% [$ T - ;;;: [" V+ p, H5 O1 C1 S" U
- ;;; Permission to use, copy, modify, and distribute this software. u) i8 O8 E% l4 b+ H/ v
- ;;; for any purpose and without fee is hereby granted, provided0 h( |3 X+ R2 J& Z
- ;;; that the above copyright notice appears in all copies and that2 Y8 ^ o( T6 h5 [2 ?" I- ~0 }8 x
- ;;; both that copyright notice and this permission notice appear in/ {6 A, b4 q& p( c9 \' z
- ;;; all supporting documentation.. s. t9 i2 X; |. n
- ;;;
; B7 A/ D f9 [) H) d, L( h - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED4 o- R+ y. p% y1 P3 s
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
2 m4 w+ ~- A O0 O - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
/ T: s3 U9 d/ w. b. v - ;;;
" u9 A2 S" T1 `+ l* i5 n - ;;; 2 February 1992
% i4 n$ \3 ]7 |) | - ;;; # L' @+ F2 l* E# u: j2 T
- ;;;----------------------------------------------------------------------------
- [3 P% z; u: V& v8 y2 J( x - ;;; DESCRIPTION. l7 \! g: R ~& H" L: x# G
- ;;;----------------------------------------------------------------------------
# Z# y0 o. R$ G5 M - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command./ k# Q! n9 p* p' _. j0 |& U& ~
- ;;; o$ o; j- R6 w6 i3 \
- ;;; The command looks similar to DDEMODES. The main dialogue has an image 6 h) b L, `. c3 M. U+ G( I
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
@. Q" d5 C6 D - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. 9 f1 o& `' v0 s+ t g G+ V, }6 d: W0 r
- ;;; The dialogues are all defined in the DDCHPROP.DCL file. t. n# d+ w v4 G
- ;;;
1 ^/ j' a4 b) j( X- j - ;;;
% w5 u5 X3 b, G7 j1 l1 r0 o7 @ - ;;;----------------------------------------------------------------------------
: P0 H# X: m/ n5 n; |' k) T - ;;;----------------------------------------------------------------------------" l! {5 G" o9 u0 q4 M. G
- ;;; Prefixes in command and keyword strings: ! S2 q" ?# }7 |7 c
- ;;; "." specifies the built-in AutoCAD command in case it has been 3 o. f% `/ C7 b% [
- ;;; redefined.
* g. x2 `% v- A6 i& E; ? - ;;; "_" denotes an AutoCAD command or keyword in the native language
" O4 J& b4 Y3 h( Z7 w+ ` - ;;; version, English.
4 z1 ^7 h. }& e0 R+ q! }& ?/ W4 q# r - ;;;----------------------------------------------------------------------------( c& j- s6 w1 A; K( d& ]7 R
- ;;;
( U7 V% V5 M+ W2 S; f - ;;;. R3 X: i& k ^4 p2 V, d6 ?% b
- ;;; ===========================================================================: y/ V+ m: b* S( [' m& y
- ;;; ===================== load-time error checking ============================0 {" B, V& p) u: z9 ~
- ;;;0 W& s, ~$ V) X% k/ S/ V; t
2 F7 N. d" Q; s5 f- (defun ai_abort (app msg)
4 q+ e/ x# w3 x) g$ u - (defun *error* (s)
6 z$ j3 U G) U$ g" A$ J - (if old_error (setq *error* old_error))
( i. @2 H+ ]3 O. m - (princ)
# }. r8 W3 `' Q; e4 i1 w9 d - )' `& n$ r* `6 T( j7 k2 a( ]
- (if msg; V. \$ P- c3 v' A
- (alert (strcat " Application error: ") `+ \1 l" T0 m3 n. H& T" p3 F- p
- app$ X0 E$ L& e7 e
- " \n\n "3 g- |5 w( [- B( [7 C; C
- msg0 w j; b# m7 T
- " \n" F0 ^" p8 K1 R5 t N' C
- )
! C9 ]8 L- {* k& d; v: P3 n) z3 _+ R - )
4 |( ^) |+ k. i! z- u - ): [8 ~ f$ o" \9 v
- (exit)
2 z% G3 ]' P0 F - )
t. C7 e* p# A1 a' s) k! X" I
& @" r* z5 j4 H: t- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
! s5 I l9 T G l0 Q6 _3 ~# } - ;;; and then try to load it.. k; E/ t1 \0 J) Y8 g/ g/ U& N$ T
- ;;; h* s7 o T; i2 r. N/ [+ A
- ;;; If it can't be found or it can't be loaded, then abort the- s$ m; n9 a* S+ q, A
- ;;; loading of this file immediately, preserving the (autoload)
, F$ W0 k5 i* M' N# h - ;;; stub function.
- ], g& e/ K- C; l2 K - : h3 V$ \4 s0 S H
- (cond. C9 ]' O2 f* \( `
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
/ L$ }& |+ t' Y6 M
$ R5 z. `* y" q0 x8 ~. y$ x* m- ( (not (findfile "ai_utils.lsp")) ; find it
+ C0 N$ E4 v- D5 s% o4 j - (ai_abort "DDCHPROP"
. r$ ]* L' q* L7 f' y# j' f7 _9 t - (strcat "Can't locate file AI_UTILS.LSP."
$ k& @& f8 K6 \, ] - "\n Check support directory.")))
3 }4 _ n/ T+ M/ |7 l' A0 i p1 Y - 6 j$ K+ Y7 L7 p( x, g0 W
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
- R* X2 ~# f& e- A' t" H" V+ r - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
* ~, d' @4 U* F6 Q6 Q - ). t# c6 j; K. `+ u# f
- }' L: j$ |9 N3 Q4 P
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP! T+ J! m' f# ~/ y% J
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses' q5 o3 i* u7 s' t! M
- ) ; ai_abort's alert box dialog.
' u) W' @( v6 Y$ W+ c - 9 v, r* Z$ Z' V( N
- ;;; ==================== end load-time operations ===========================
+ K- L7 D1 H8 T: |! [( o - 6 \3 @( e7 l& Y8 m- I6 s( |
- ;;; Initialize program subroutines and variables.
! z0 Y+ W+ ^2 R' M# ~ - 9 y) Y a Z' E
- (defun ddchprop_init ()
# H( t$ C' q% k9 Y
# i; i- r- u; G* W. C+ n( g1 M8 M9 {- ;;
5 p( t/ D4 h1 d! q; { - ;; Define buttons and set values in CHPROP dialogue box ) q: N+ w* M* t& s' [' e
- ;;
1 ^( O2 L# O- m% p4 x) }/ o4 | - (defun call_chp ()
0 y- D, D6 I Y1 n1 l7 A0 e - (if (not (new_dialog "ch_prop" dcl_id)) (exit))7 {* V6 Z! ?8 o# ~$ R
- (set_tile "error" "")
+ ?: ]9 W' R. d9 ?' z1 v9 P - ;; Set initial dialogue tile values
; u! @$ e# V3 l2 B5 d; ~/ V* d - (set_col_tile)4 v9 ]/ J4 G: e$ b! Q- }& W
- (if (= lay-idx nil)
0 S6 Y% R/ I+ g; d/ d - (set_tile "t_layer" "Varies")+ g' \8 }* i8 c
- (set_tile "t_layer" (nth lay-idx laynmlst))6 m3 s( |( l+ X- w( S- t
- )
4 l& {' _5 Y2 |( i- O, p - (cond 0 ^( G' N3 `( D+ Y2 u1 I* |
- ((= lt-idx nil)- A3 Z, P1 G( v4 k* |2 ~
- (set_tile "t_ltype" "Varies")# i: X w9 `* Q0 s# v4 u5 f
- )7 E, r9 j9 _; M7 w
- ((= lt-idx 0) ; set tile "By layer & layer linetype"! |9 B: m5 e" |0 \) J
- (set_tile "t_ltype" (bylayer_lt))) I3 s6 }# G: m* q" M3 s
- )
4 D( p. [9 @$ g1 i2 S7 _2 Y - (T
% Q) N" ~. X! X& C& k* S y - (set_tile "t_ltype" (nth lt-idx ltnmlst))/ P/ C+ d2 {4 u2 J0 Q& X8 o
- )) t, M ~' n8 l& @( O" V F
- )
3 C5 W. Z( O0 N" D - (if (or (= ethickness nil) (= ethickness "Varies"))! k6 M/ W; N9 ?' x* p+ p' P" l* |
- (set_tile "eb_thickness" "Varies")) z, S9 n; c$ ~' K
- (set_tile "eb_thickness" (rtos ethickness))) d$ z8 V4 i( f6 @7 a3 }
- )( D/ M" d& f% U+ ]: h
- ;; Define action for tiles) G2 h% e% y' k( X$ ~* E
- (action_tile "b_color" "(setq ecolor (getcolor))")
% k/ V, y: r3 e" Y! c& v - (action_tile "show_image" "(setq ecolor (getcolor))")
1 ?5 W K* j% l3 s) t) R - (action_tile "b_name" "(setq elayer (getlayer))")
7 ^% C0 p, t1 E& w2 h - (action_tile "b_line" "(setq eltype (getltype))")
- T& h1 q- b# U$ u" F$ c) @ - (action_tile "eb_thickness" "(getthickness $value)"): G( q; }4 O, M
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
% Y* Q2 [# g" ]5 S, b0 d; W* H - (action_tile "accept" "(test-ok)")9 B4 s: N; j4 e3 V0 S
- (if (= (start_dialog) 1)! u$ W4 X3 x3 D) H" X
- (progn
" M' _9 X- b' S9 F6 s/ G: V$ S6 ` - (command "_.chprop" ss "")
) B1 g8 O" w) J! s - (if ecolor
7 _0 P% x/ R2 U* D/ n7 v - (progn
; @3 _3 Y2 M) M& H( G' R - (if (= 0 ecolor ) (setq ecolor "BYBLOCK")) l. v# [- {8 W
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))4 ]5 a* D+ f3 h9 }. l9 Y
- (command "_c" ecolor)" f# w* W1 W. Z. V' g
- )* ~3 D- g1 [% w+ {+ h* v
- )3 e4 d5 x+ l, q
- (if (and (/= eltype "Varies") lt-idx); O) g6 t/ t4 |+ p
- (command "_lt" eltype)
; `" d% }4 W3 W, V$ ~6 z; w3 o% ^* } - )3 o3 [1 b- U) L- H1 D
- (if (and (/= elayer "Varies") lay-idx)+ M6 P, i6 @6 _' Z0 `
- (command "_la" elayer)
3 o# O7 G6 ]3 a6 Z a# S4 |# N - )2 g9 u- ~- ]- f$ R
- (if (and (/= ethickness "Varies") ethickness)1 u/ S/ s; [; g, C. V
- (command "_t" ethickness)" h8 }# i9 x# ?9 d7 l$ v
- )
. h, R; L1 z; e: f- v - (command "")% d9 [& d- s% Q! t% U0 j
- )# o8 i; ~' o9 j& G7 |
- (princ "\nProperties unchanged")8 ?, p: O3 T9 Y5 f! S9 Q
- )- a# O1 A7 ]/ C4 P w& }
- (princ)' ]5 J- a% h- X2 [9 w( S
- )6 ^) \. Z/ Q5 J9 ]4 R4 N& `0 }- t
- ;;6 A4 V' [0 G% e7 e0 @
- ;; Function to set the Color text tile and swab to the current color value.
- Z' I) K) e" Y' y - ;;5 W( C" f1 X+ \$ Z! O: [
- (defun set_col_tile()) E4 z- [0 w% j- ^0 H, p
- (cond + n% G2 Q, O/ s4 K2 _5 k- x
- ((= ecolor nil)
1 a' c/ l+ Z- P - (set_tile "t_color" "Varies")5 I/ i: _1 k: I- ~# r- p4 L
- (col_tile "show_image" 0 nil)* p3 |* [. A* N4 u+ ^$ z, Y3 f
- )* P1 G0 g# Y0 Q2 \$ f
- ((= ecolor 0)
& _% l- y+ b0 X( v; Y - (set_tile "t_color" "BYBLOCK")4 t" Q) s2 p& x# v: \7 R; |
- (col_tile "show_image" 0 nil)
6 s. n& Y5 F& O - )5 u, t u+ X @+ \
- ((= ecolor 1)! m4 W" Z+ M) X+ I/ b! k6 `3 m
- (set_tile "t_color" "1 red"), g1 Q Z. L9 r) r( `. \
- (col_tile "show_image" 1 nil)
. y1 z' z' q, m0 ^: O% {2 X - ) p, |$ h$ O: G$ l
- ((= ecolor 2)7 E6 w8 f% h# P
- (set_tile "t_color" "2 yellow")6 P7 H/ i. o2 D6 F5 U
- (col_tile "show_image" 2 nil)- Z2 K6 T5 g$ w& m/ C. e$ s' M$ T
- )3 A5 N6 ? C! }6 C* C* {
- ((= ecolor 3)7 \! O# k" F: Y3 b: k/ z% I
- (set_tile "t_color" "3 green")6 W5 R( K+ l4 G5 }2 Q2 N3 S
- (col_tile "show_image" 3 nil)1 e9 G" z* F+ y7 M; f' Z
- )
: x( I& R7 [! w0 z8 r - ((= ecolor 4)
- M7 b/ y4 X$ |% v% ~9 i - (set_tile "t_color" "4 cyan")
% J. k: p1 [5 n! F: ^ - (col_tile "show_image" 4 nil)
9 Q7 J" G- P6 K/ d* J$ ?6 s - )5 N& `. h1 d5 z) c
- ((= ecolor 5)! s/ G8 Z% L7 \ S" z! O# K
- (set_tile "t_color" "5 blue")8 C/ B) r* d$ I- m
- (col_tile "show_image" 5 nil)
" S$ I2 T! z% Q2 I' U - )+ G; D6 {7 w, s: |, k, n/ p
- ((= ecolor 6)) s4 i7 b. k& ~+ ~
- (set_tile "t_color" "6 magenta")5 ~ b3 k: X( Z3 O
- (col_tile "show_image" 6 nil)
# @; H, ?- y- X2 D3 T$ ~ - )
: j( J2 _9 e/ k! o - ((= ecolor 7)& Q4 j7 b- g$ d
- (set_tile "t_color" "7 white")6 Q/ [# L0 M: x4 D, G6 I: H
- (col_tile "show_image" 7 nil)# i/ l+ m+ ^, A3 U
- ); J' l/ g% k6 t/ V( I
- ;; If the color is "BYLAYER", then set the tile to* j+ e& w# p, f0 U8 W- N; M
- ;; show it's set By layer, but also indicate the# K7 Y2 @6 W. o& S- w
- ;; color of the layer - i.e. By layer (red)% c" l% S2 q0 ]+ O/ s u) t
- ((= ecolor 256)
8 |- M5 s4 Q1 R/ V3 N - (set_tile "t_color" (bylayer_col))7 [6 f9 Y/ s4 h+ m& X9 @' C* ^
- (col_tile "show_image" cn nil)/ J4 l8 }* {5 C7 D- H! [2 m$ R3 k4 C' Z
- )% y/ B$ S6 u3 P$ ?
- (T
* l5 P6 D( f# o) P6 u6 m( o - (set_tile "t_color" (itoa ecolor))
* K/ c" \# ~9 _/ T# K: @$ y - (col_tile "show_image" ecolor nil)
7 ^8 t! U$ R; V( K- A1 J. Q - )) B9 G- `2 p( \, A# |8 w$ B" V7 \
- )
" R! O; |8 ?$ h - )' e8 s6 g, s1 r
- ;;% U5 F9 [8 K5 o
- ;; Function to put up the standard color dialogue., H8 W) P" G( o# ^8 v1 N
- ;;
: Q4 }6 a6 f& O1 {2 G6 {) r# V - (defun getcolor(/ col_def lay_clr temp_color)% v7 a6 D! r: n: I' h# J
- ;; col_def is the default color used when rq_color is called. If ecolor
( j, U& M& l: E! N3 ?! R" f- a7 z - ;; is nil (varies) then set it to 1, else use the value of ecolor.( q9 o3 i& Q% U5 h7 }
- (if ecolor4 N0 A, t9 z# q" N4 t* i! G
- (setq col_def ecolor), {& Q* o, ~, J
- (setq col_def 1)& j z; ]6 e2 ?: `& h" W% y
- )
$ Z2 U/ H* k; B- Y7 r: X - # n) f/ \9 F( a+ m: j; h1 ~
- ;; If we're working with a single layer, get its color3 g! g5 O2 `5 X$ j: x
- ;; for use in the color swatch if the user selects color BYLAYER.
8 S5 A2 R' a/ j1 s - (if (/= elayer "Varies")4 o, {9 z) M8 x! A# Z* V3 G
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))0 e* D& e$ r5 X; s9 F
- (setq lay_clr 0)
2 o* C$ `& n; G, h - ), Z% r) E5 W9 ?
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr))); D+ o' r( ^ c5 Q5 ^% C7 k
- (progn
$ M: \5 ~9 Q' b+ m+ j, ^ - (setq ecolor temp_color)1 t+ G) l' Y7 j
- (set_col_tile)7 Y! v1 Z* H! E8 }$ C; D
- ecolor
! a0 c( N5 N: W: C - )" Y6 u! f9 E- n: M
- ecolor% m1 |# P8 A3 v; @+ c6 g
- ) 6 i" \+ h" f& o
- )
5 x) _3 P. Q1 i6 ^ - ;;
+ f, R7 V4 }+ D8 ~# ?9 s6 A2 c9 ~ - ;; This function pops a dialogue box consisting of a list box, image tile, & i; `% k' y' k% f0 V" P2 J f
- ;; and edit box to allow the user to select or type a linetype. It returns + \5 F! L& X4 Z
- ;; the linetype selected.1 b. [* G) Y F, C# A
- ;;
4 f! z/ z1 d3 U' C4 i - (defun getltype (/ old-idx ltname)
" r! G7 {- H! s7 c& w* r! o: H7 K - ;; Initialize a dialogue from dialogue file
; g( K- o" b6 q/ @0 Y - (if (not (new_dialog "setltype" dcl_id)) (exit))+ x' W. f/ g4 E7 f S
- (start_list "list_lt")) G) b6 }& @; `3 w$ V/ m. \
- (mapcar 'add_list ltnmlst) ; initialize list box
3 W( ?# m) h. B1 U$ _7 Z - (end_list)
+ U$ ~& V- v* N Q$ }5 ? - (setq old-idx lt-idx)
* r' B8 _' F* S" p - ;; Show initial ltype in image tile, list box, and edit box
, u% m- N2 A- S7 p9 i - (if (/= lt-idx nil)5 R& _& N) z5 ~/ y D
- (ltlist_act (itoa lt-idx))
7 g% H, v) Z1 l$ |% r - (progn
0 D% c5 ] R Q& [ F6 { - (set_tile "edit_lt" "Varies")9 w; ^7 ^* C* F5 B+ Q
- (col_tile "show_image" 0 nil)! }6 U) r7 k! |* u: ]$ L
- )0 y+ V) e; J5 v6 h
- )
- T6 M# l7 [0 S* ] - (action_tile "list_lt" "(ltlist_act $value)")" v% }3 s" o' I+ |
- (action_tile "edit_lt" "(ltedit_act $value)")! S3 B4 n0 y5 N% ?
- (action_tile "accept" "(test-ok)")
l/ r* X! N# K, j% i) ] - (action_tile "cancel" "(reset-lt)")
- Z* T$ F3 U0 k+ E - (if (= (start_dialog) 1) ; User pressed OK: P f/ ^* ?% M% T9 A, }5 w# q
- (cond
/ G6 ]5 O1 T: C: {' s$ ^9 Q - ((= lt-idx nil)
( V( O* y% X& u; ?/ ^7 k - (set_tile "t_ltype" "Varies")
3 r; Z0 u4 L& Y( F - "Varies"
, u) Y# d- e; `7 w) S% M - )6 d* @0 N4 {3 B7 @
- ((= lt-idx 0); v9 `$ X; K9 j2 _5 `5 v
- (set_tile "t_ltype" (bylayer_lt))
0 X2 L' B6 [# ?9 T' T; S' s - "BYLAYER"
' P+ |! `1 N9 z- N: Z- O/ G- U6 R - ), S/ C* `- u% F
- ((= lt-idx 1)" g3 j5 }' _ A; W* [
- (set_tile "t_ltype" "BYBLOCK")- v: b8 v [/ c4 N
- "BYBLOCK"( t2 B# V1 C% U! g- j0 p5 ~2 W" K1 u
- ); M: L5 a8 |, D- g3 p5 C+ r4 s7 D. j
- (T + Q& }, c( U: K9 [ q9 _
- (set_tile "t_ltype" ltname) $ r# ~. b0 h( Q9 U! A7 G5 v
- ltname
3 E! ?! K7 {: U) ]1 _$ E% \( G - )$ |2 k. E0 t L; R
- )( K. t& i( z- h) O) C. ?: S, i
- eltype
* ~; C% i# M: `! n( z - )
/ i: g1 o! w$ J3 s( c - )
: L( R7 i& B7 t+ m1 u% S4 { - ;;
# S- }8 J6 @1 H4 x$ e: a - ;; Edit box entries end up here
* }4 O8 S0 o9 A - ;;3 H$ Z, k5 p- ]3 M0 ^- e X0 J4 o
- (defun ltedit_act (ltvalue)
7 ^2 j* M3 x! c& B - ;; If linetype name,is valid, then clear error string,
3 L( u8 U: K# n5 q9 t) g, B6 m - ;; call ltlist_act function, and change focus to list box.6 E* o( Z; W( B( Q
- ;; Else print error message. l/ z$ I6 U1 C# F6 t8 T. |
- (setq ltvalue (strcase ltvalue))7 A: G5 p3 y) Z( j+ M- k
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))0 G: v6 z" a/ N% j
- (setq ltvalue "BYLAYER")
/ g4 [" z, J3 r, A0 J: M! j1 k6 M - )
& P5 ]# A- n! p( I" ` - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))* i6 c$ k9 g2 R
- (setq ltvalue "BYBLOCK")
9 v' K, v$ u h2 A - )2 q6 X" W& u7 @" _
- (if (setq lt-idx (getindex ltvalue ltnmlst)): I6 n5 k" v, O4 P" p- z; G; @
- (progn
# @; N5 y/ P! ]4 V - (set_tile "error" "")! {; ]* }$ P# W! J8 N! i5 j
- (ltlist_act (itoa lt-idx))8 i/ [' o7 H1 S" n: X2 b( B% p3 `
- (mode_tile "list_lt" 2)
1 Z# ~( J. |2 X7 B V2 | - )0 y4 t% W3 d+ a0 r) h/ @: A* l
- (progn" N, y6 B! b8 Q
- (if (/= ltvalue "VARIES")
7 u( Y! `$ Z3 L - (set_tile "error" "Invalid linetype.")3 Y J6 i/ E# Q
- )3 j" W( t$ ]" q. a7 R/ ?. r& A8 ]
- (setq lt-idx old-idx)2 K) l! c# C; M8 _. U
- ) 2 j! v! A" d" ]/ | I' z; k' A& B# R
- )# {+ l' E% v( j( x" h
- )
; n. ^6 H( I) z) t' N - ;;
$ { m+ Q6 a% a - ;; List selections end up here: C0 w) U6 L6 `' J
- ;;$ g* o7 k8 H5 p
- (defun ltlist_act (index / dashdata)9 E# t* U: U" w7 \; [, m2 G2 E
- ;; Update the list box, edit box, and color tile
+ \* i* s9 Q+ x8 H, x; O$ ~2 l" ?: b/ g - (set_tile "error" "")
9 L H" Z! @1 v4 J Y( A - (setq lt-idx (atoi index))
* o! J3 f1 \0 G1 x - (setq ltname (nth lt-idx ltnmlst))
+ m2 \4 S2 C: ~" B. s" w - (setq dashdata (nth lt-idx mdashlist))
8 t6 l% s. s' {( \ - (col_tile "show_image" 0 dashdata)' [9 ~. F9 O, p( N9 m" X- ?
- (set_tile "list_lt" (itoa lt-idx))
. O/ H) a* Q% r5 o, ?% l - (set_tile "edit_lt" ltname). }' R, c; ]5 S' Z+ r7 |" c
- )( ^- W8 A2 ~: g+ P
- ;;
5 Q; z5 P. R# w+ G8 w - ;; Reset to original linetype when cancel it selected
( e1 ^) Q3 Z4 T- b# m - ;;9 g# p) ^1 S& h" A3 l
- (defun reset-lt (), R; _0 G. _) R b- }
- (setq lt-idx old-idx)
# M0 _0 E6 t3 C; F# ]$ G: K - (done_dialog 0)" l+ i' R5 w3 b ~
- )
: G+ V& j+ M% i - ;;! H3 [% ?! @& z! `. f9 B* L4 I
- ;; This function pops a dialogue box consisting of a list box and edit box to 0 F% G K3 X/ j$ ~, o
- ;; allow the user to select or type a layer name. It returns the layer name
- [6 d6 j8 a$ ?3 X9 @+ V- N - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the + E, I+ P7 k8 j0 H' v8 M
- ;; drawing.
+ `3 z3 b0 ?1 x [4 g2 G3 M - ;;' r e) w9 I6 D. l
- (defun getlayer (/ old-idx layname on off frozth linetype colname)" h" R z9 v% H; a7 z/ p- H2 f5 Y' c
- ;; Load a dialogue from dialogue file
. [1 E5 d0 {6 D: D - (if (not (new_dialog "setlayer" dcl_id)) (exit))+ i2 ]5 t* C" h7 F- O
- (start_list "list_lay")
3 h' o% d% C6 c) F& k3 ^1 I - (mapcar 'add_list longlist) ; initialize list box: ?/ P" C2 L7 i, O6 ~' L
- (end_list)
' p7 V* n$ H: M; | - ;; Display current layer, show initial layer name in edit 2 F4 e3 U: c* L5 U4 N/ |; m
- ;; box, and highlight list box., N. ~/ P+ l( w% O; S- L& U
- (setq old-idx lay-idx)( F2 g: z" L/ _" k
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))' i1 p( z; ~4 z
- (set_tile "cur_layer" (getvar "clayer"))
) c) }0 u$ v3 b- m- I, X6 j; y - (action_tile "list_lay" "(laylist_act $value)")- ^; ^5 f- ^4 V
- (action_tile "edit_lay" "(layedit_act $value)")+ x |- N6 Z2 V9 ?+ \4 q6 _
- (action_tile "accept" "(test-ok)")
+ f" f7 t8 p; P2 g* ` - (action_tile "cancel" "(reset-lay)")/ }. c$ k2 u5 s
- (if (= (start_dialog) 1) ; User pressed OK
! p0 e; Z! V" g; o8 t' `/ }6 \' z - (progn* v' X+ b! R; I3 k/ \
- (if (= lay-idx nil) (setq layname "Varies"))
) ?( g# |# E) E - (set_tile "t_layer" layname)6 I* @' T; u8 R$ Q
- ; If layer or ltype equals bylayer reset their tiles
* v7 K1 p% ? Q& f2 d, K/ v8 p - (if (= lt-idx 0)
- P, V0 j( [( {2 i# D - (set_tile "t_ltype" (bylayer_lt))
7 ~' n3 U8 x& a* j; I, e( k - )+ R) e, x6 H6 ^' J( W
- (if (= ecolor 256)- d# B$ m) B' k8 A
- (progn& s4 l" C0 J: ? I9 c6 G5 ~
- (set_tile "t_color" (bylayer_col))
! \7 P' O: b" g( ?+ \2 K+ T. x - (col_tile "show_image" cn nil)2 U F. i: a, }0 _" O \
- )4 H4 J. C- ~1 t# a: I" i: e
- )
0 |! ~& u$ e$ |; N) k* `$ {+ ] - layname
/ h4 i w6 \. Q* X+ |( Z( c. f - )
X* }5 A: T1 F! V# Z9 e - elayer, W/ `& a0 b8 I
- )
3 I& R L2 E! u5 T/ l: Y8 { - )2 t1 Z+ i1 @2 c% `1 L4 b3 D
- ;;
, z& y6 b3 D. A6 ?6 {" n5 T! J1 M - ;; Edit box selections end up here& A$ L9 m7 E9 k% Z f
- ;;; Y: g K+ T" o6 O( X6 t- v
- (defun layedit_act (layvalue)6 Z9 _* K) t, S1 ^- K4 I8 D
- ;; Convert layer entry to upper case. If layer name is& b* B# C% x! K2 w
- ;; valid, clear error string, call (laylist_act) function,
0 B& B/ b' I) v+ L0 p2 @ - ;; and change focus to list box. Else print error message., C( O6 O$ R, c# x0 l
- (setq layvalue (strcase layvalue))5 ^" p( w+ W$ p9 W9 i$ L
- (if (setq lay-idx (getindex layvalue laynmlst))
A. z% \8 i- p0 b! y - (progn$ _% W# l& x: |& o9 x6 i: I
- (set_tile "error" "")
4 N) f$ ]/ g3 L - (laylist_act (itoa lay-idx))
" _- E b( M4 E2 T" m( y - )
. T8 y0 e% g# U# i - (progn
: G7 a8 t% X0 G - (set_tile "error" "Invalid layer name.")" ?& c" [ `+ M2 z9 t' ^
- (setq lay-idx old-idx)
# ^0 d7 P: [( c) { - ); f' K$ k* g7 h+ b ^' ]
- )+ U- q+ l _: t- y+ ?3 J5 [* k0 Y
- )
" Y4 c# v; ]6 f# b0 I. X5 t& d+ V - ;;
, q3 @2 v; L6 a( V/ N: K - ;; List entry selections end up here2 S: s0 G8 q' b0 k: V1 v# S2 ^
- ;;4 {; q! L2 D% z" d+ _; i/ a
- (defun laylist_act (index / layinfo color dashdata)
3 ]7 ]- @& C( A7 k* z* [3 n - ;; Update the list box, edit box, and color tile
. x+ U/ c' j6 Z; d4 p; P) n, { - (set_tile "error" "")
1 {0 J9 C! [5 }/ F! O3 u1 v* b - (setq lay-idx (atoi index))
6 l @0 K' d# J# b, V+ I0 c1 p$ } - (setq layname (nth lay-idx laynmlst))4 ]/ R! Q8 I% P* t: }; p; L$ a
- (setq layinfo (tblsearch "layer" layname))
' i% `( e1 {7 f5 ] - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4); b; \. {" p) x# Y
- (set_tile "error" "Cannot change entity to locked layer.")# ?8 R# O3 @8 y8 s
- (progn
3 }! }/ e% N: g$ r& R5 g$ P - (setq color (cdr (assoc 62 layinfo)))
9 t5 G3 B k% Y3 J5 g6 r - (setq color (abs color))
! x7 k. g# y$ D$ k6 U! ~/ E' _! R - (setq colname (colorname color))
/ y. q0 j* m$ h6 a! G/ ?) T - (set_tile "list_lay" (itoa lay-idx))
- F* q/ f1 N( ^ V - (set_tile "edit_lay" layname)
+ W7 a& C" f$ R) k! o& G( ] - (mode_tile "list_lay" 2)3 a7 p, O1 ~1 r t7 k$ [6 D
- )
: ?- U1 S$ ?) H# f - )
4 Y2 e6 w) V, q( X! D/ i: ^ - )
/ J. v: x" u% c. K' L* t - ;;
/ v8 d' q8 M& P- {) U - ;; Reset to original layer when cancel is selected
b8 b/ b% d& ]1 v5 {* ] - ;;2 c, a1 I: ?( `
- (defun reset-lay ()0 u9 r; t+ @; J0 m. Y
- (setq lay-idx old-idx)
5 I1 U0 E; U2 n* V7 ^; J; k- w% R - (done_dialog 0)
( `; X; ?8 d& D - )7 @% I( S& U( ^2 V0 d
- ;;
+ o6 s2 U' V/ G) I8 G - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
! Z0 N9 [/ i, u4 r - ;; string can't be converted to a real, this routine checks if the first 9 i* g: O. l- u" }
- ;; character is "0". It also checks to see if the value equals "Varies".
$ t( m" b0 e( U4 m5 f1 X1 [" q4 x- l - ;;
7 |( q; }& h$ i: A$ O - (defun getthickness (value)! ]1 b8 o, ^8 c
- (setq value (strcase value))) y3 s& |0 ~2 _- T0 G- _7 ^/ b: R
- (if (or (= value "VARIES")8 O% i+ [( N$ y. {
- (distof value)4 f7 l% X. L( Q. Y1 |9 q. G
- )4 O$ j/ e/ h" ~2 U" K6 e
- (progn
" l& l& I6 Y. ] - (set_tile "error" "")
( N, b: g7 D6 b1 T9 E0 m' K - (if (= value "VARIES"). B: }4 `" P4 \1 Y
- (progn: ?; S! S4 Q7 R; W) ^4 z. v
- (set_tile "eb_thickness" "Varies")
# e* h, H& o( {( h% R1 r! G9 T - (setq ethickness nil): {3 D/ ]/ @5 j5 z/ x
- )% \# {- \( F: _# F/ B5 V# X5 r
- (progn& \2 ~+ c* h5 d' e" y9 _
- (setq ethickness (distof value))6 o0 e+ g9 F( p! f
- (set_tile "eb_thickness" (rtos ethickness))
' t$ U* k2 k9 p - ethickness
' M: T. N. o/ `8 s8 o2 n - )
8 ~- G0 W F: {/ u - )
/ X& v8 _7 n) }8 v% {1 n* T6 | - )) Q m. |& K) L! C
- (progn
1 l; G8 W. P7 P/ T. |3 ^: @ - (set_tile "error" "Invalid thickness.")
8 t7 g" ^/ R' j3 D - nil$ m4 z' v) P% |2 R, r5 |1 P) T
- )
2 ?3 U" y5 V0 n" R$ v# M$ [ - )
0 M! x1 O& q0 _& e - )
! _0 [1 n- K6 u9 n8 l/ Y9 G - ;;
; |% L# y7 X# r* ` - ;; This function make a list called laynmlst which consists of all the layer ; @ c4 J* K1 Y" _6 M% g0 D$ E
- ;; names in the drawing. It also creates a list called longlist which
5 ?' e, E$ f7 n% p+ X - ;; consists of strings which contain the layer name, color, linetype, etc.
0 W( H1 ^+ b" S M( f; q, y8 J3 s" x) j - ;; Longlist is later mapped into the layer listbox. Both are ordered the
" D. W& j- Y" d - ;; same.
; }6 u8 p% y7 b( u- { - ;; S% Z, v( a5 `* F2 d# ]! r
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
N4 b+ L* t4 H3 L - xdlist vpldata sortlist name templist bit-70
! x% R& O) O6 ?' F' L5 \4 X8 [ - ); c- {+ c' [) ~9 S
- (if (= (setq tilemode (getvar "tilemode")) 0)
1 X0 V5 m. h9 e1 N: p! V$ ` - (progn; \* C* Z* F6 j, @& {2 V
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
! P# B+ U2 C& J - (cons 69 (getvar "CVPORT"))) ?' H/ b% o/ i
- )" [! Y6 {. x1 ^6 T) F
- )
. l* t- \! F3 ?5 W - )
3 I3 k4 k8 i8 R" g& J3 A - (setq cvpname (ssname ss 0))
/ U# [3 f. Y1 Y& t0 o7 n - (setq xdlist (assoc -3 (entget cvpname '("acad"))))) Q9 Y- P! f" D. O. J0 V
- (setq vpldata (cdadr xdlist))
7 {( N7 Q8 X# a4 Y4 M" L - )6 {* ], ?. k! I
- )
& `. u; o( _8 V - (setq sortlist nil)
2 d! q# _, d- G9 W& p, m( C; e - (setq templist (tblnext "LAYER" T)). @1 j, W0 f1 A7 O
- (while templist( ^! h. K' w) P; E: ^2 W5 W/ X9 p
- (setq name (cdr (assoc 2 templist)))1 k: [) J, C2 t" B- t: p
- (setq sortlist (cons name sortlist))5 v$ l: W U! @7 F6 R' `
- (setq templist (tblnext "LAYER"))
( n! ?4 c& c! I+ K5 s - )
. X# R5 K0 G9 Q$ y) l/ z4 u6 F - (if (>= (getvar "maxsort") (length sortlist))' O) @ B3 K) P$ B
- (setq sortlist (acad_strlsort sortlist))
; s: W8 j6 I) \ - (setq sortlist (reverse sortlist))
4 Q* z. i0 g4 d8 B" W - )( O7 w2 {6 N) ^! ^( ?( C
- (setq laynmlst sortlist)
4 Z6 r1 V$ f0 _/ G2 h - (setq longlist nil)
$ d( ~' }/ ^8 T) Z - (setq layname (car sortlist))3 a2 j, `* P/ r- S
- (while layname
$ }8 u2 f8 B' B5 b0 Q/ ^, r; e - (setq laylist (tblsearch "LAYER" layname))
1 L/ d# V9 Y1 J2 M7 _3 C7 c) a - (setq color (cdr (assoc 62 laylist)))6 D: j" p: K8 w$ J: t3 h
- (if (minusp color)* k, L! q7 F. E! d' r+ j. X7 _
- (setq onoff ".")( Z7 L, l M5 Q z) `7 a
- (setq onoff "On")5 X' f( R7 R6 k8 K$ X$ q
- ): F3 `4 e: F5 `- g5 T7 z5 n; U
- (setq color (abs color))) W2 c+ Y3 P7 S' C$ w; r
- (setq colname (colorname color))7 J5 K# h. s j& [6 G2 T; L( v
- (setq bit-70 (cdr (assoc 70 laylist)))7 D+ m ~: H/ D7 d" {" f7 M
- (if (= (logand bit-70 1) 1)4 h! h8 g- U# `' b. ^7 C. |
- (setq frozth "F" fchk laylist)
. j3 i3 e* M6 a1 c - (setq frozth "."); @+ ^* [4 \* m4 C; _7 F/ a l
- )
( m9 B) |4 Y2 z0 t' b. ] - (if (= (logand bit-70 2) 2)( d% K8 p# S0 O9 b
- (setq vpn "N")
7 `. h) G7 d3 d' @ - (setq vpn ".")
% l0 g$ k- h9 ^% L& x) l' u4 h - )2 J$ R% f9 \9 V5 H& E
- (if (= (logand bit-70 4) 4)
~# a3 b9 ^( C' r ^8 I& V - (setq lock "L")
' J+ O/ j& r3 H7 H - (setq lock ".")
m. J6 x% `, N$ b0 _$ S) J - )& u8 l1 L- C0 t* v, h/ [& k( z& |
- (setq linetype (cdr (assoc 6 laylist)))
F5 D8 D }8 G- ?' w - (setq layname (substr layname 1 31))( i1 s J4 E- b0 s, ]! L2 S& T
- (if (= tilemode 0)
& f% X' l: {2 t9 r - (progn1 a" y" A! l K2 ~% `! d* w$ n
- (if (member (cons 1003 layname) vpldata)
6 W. O0 F9 B( A8 R, d8 w - (setq vpf "C")3 J0 x% d: w9 c4 Q
- (setq vpf ".")
1 a3 n; n/ q" }4 N - )! O, t& I6 F) v5 _
- )& }4 t1 T7 T# h1 F" u9 y
- (setq vpf ".")/ q' `/ X- z" j8 P2 p( X1 ]1 Y
- )
/ y4 t/ X8 `6 C( v2 @ - (setq ltabstr (strcat layname "\t"
) h$ k5 t" ^& X0 \: _2 U" [ - onoff "\t"! ^; T* `7 n j
- frozth "\t"
8 ?. C* }5 |, ~3 S" v0 B1 ` e - lock "\t"2 u- ]7 ?+ Y. K7 e, r0 J
- vpf "\t"
( l) T# T7 e! |5 D; F1 e - vpn "\t"# Z- l2 p# d( y" [6 q' B
- colname "\t"! O3 N" ?: a g3 N
- linetype6 P8 I) _9 i& O# A
- )
4 `) P: m: ~3 F# b/ E0 {9 T - )
, ?6 T: y* e$ b; ~7 q5 z1 o - (setq longlist (append longlist (list ltabstr))) E7 e! m) u8 U+ X; N
- (setq sortlist (cdr sortlist))" t3 i0 U8 `; F6 X, ?
- (setq layname (car sortlist))8 T* f+ J W( V1 f$ t1 {) i7 ?, K
- )) ~0 t% Z: _: P4 L7 g3 o
- )
, r" V" J+ Z( F - ;;
& D' B8 ]' E; ]' f: K! y4 w5 A$ b - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
: E& F( w1 t9 I6 b7 E2 R - ;; linetype names read from the symbol table. Mdashlist is list consisting
. }9 z3 e$ h- \: E - ;; of lists which define the linetype pattern - numbers that indicate dots,
& \! i; ~1 Y) Z( ]4 _+ r: A - ;; dashes, and spaces taken from group code 49. The list corresponds to the
# P0 d0 K% f3 ]3 d' {$ [+ A - ;; order of names in ltnmlst.
5 o% B, c) V# E% q; ~* g - ;;! v) q% z- T% L% J
- (defun makeltlists (/ ltlist ltname)
5 J3 M) C$ n6 `, f7 f0 y7 F+ h - (setq mdashlist nil)0 z' f; @, B; O7 q- X
- (setq ltlist (tblnext "LTYPE" T))
% l* d4 p( |; o5 E' P6 D - (setq ltname (cdr (assoc 2 ltlist)))
2 A9 S8 f. m$ O+ ~3 U+ a - (setq ltnmlst (list ltname))+ q; x6 b( z5 [
% n6 }1 @* D7 e2 D- (if (= ltname "CONTINUOUS")0 ?* x" m4 A M$ a
- (setq mdashlist (list "CONT"))
2 ^6 Q% ^, ?+ o4 D' a3 ^: z - (setq mdashlist
3 N9 i- V9 C7 `8 \; Q# a9 [% r - (append mdashlist (list (add-mdash ltlist)))
3 c! v& N* @9 E0 S, m& @ - )9 R9 o5 _% B3 T! v* G* y* `
- )
; m) ~# j1 W! i+ C; m8 V2 W - (while (setq ltlist (tblnext "LTYPE"))
/ P+ i4 i/ g/ J. F - (setq ltname (cdr (assoc 2 ltlist)))
' A+ v! T6 S1 P+ ?/ ]6 z - (setq ltnmlst (append ltnmlst (list ltname)))( `; ?3 J: v; a$ v8 Y# M
- (setq mdashlist
9 e% z$ N# @1 W1 u - (append mdashlist (list (add-mdash ltlist)))
4 H' ]$ T" u+ |& t" y, T - )
, h4 b" }1 c2 Y7 ]! G2 \( p - ) w2 G7 `; o% ]! T% Z
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
4 j9 N( G% H% D7 m8 Y - (setq mdashlist (cons nil mdashlist))
* `# P2 u# T' C" l* S - (setq ltnmlst (cons "BYLAYER" ltnmlst))4 ?6 \) ]4 [+ T5 s9 u
- (setq mdashlist (cons nil mdashlist))4 a u" A8 a+ t. o
- )8 U% r1 F+ G8 n* O
- ;;
6 c; [! ~: p5 a. E - ;; Get all the group code 49 values for a linetype and put them in a list
3 ]2 ?$ R. \2 T5 r, N: S. l - ;; (pen-up, pen-down info)
! i# v8 D, V2 u- _2 b' M - ;;
- t1 m* i% F Y [6 Z: V: q$ |; ~ - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)/ N+ v8 {* P0 q& q1 i! c
- (setq dashlist nil)
1 ^! j T5 V0 |# F( L- ^8 `' ] - (while (setq assoclist (car ltlist1))
) i* F7 K; D# V5 g8 q - (if (= (car assoclist) 49)
4 c2 K+ m. U# f$ ?0 Q) n; H - (progn U! p; f: r3 W$ a g! e
- (setq dashsize (cdr assoclist))) K) ]) X% M" {7 W5 y7 J# b+ t
- (setq dashlist (cons dashsize dashlist))/ A* [; E5 g6 C; }
- )
/ B9 E$ o8 B* U) k9 ^2 L - ). ~$ A% J, c. L5 {8 t
- (setq ltlist1 (cdr ltlist1))6 B) |1 Z( f/ `: ^; O2 B
- )# A. r6 t0 m( q7 f
- (setq dashlist (reverse dashlist))& {0 J6 e H5 e; t' t
- )/ ?; }! e- w; N6 g4 X/ R* t
- ;;" \; J% o& G5 x2 f2 F* {
- ;; Color a tile, draw linetype, and draw a border around it
5 u1 d* y% t0 A$ n. e - ;;% v% u& _7 P$ ~2 u. _3 l
- (defun col_tile (tile color patlist / x y)0 \3 i* P# }$ {3 q y
- (setq x (dimx_tile tile))' t" U- w) {2 C z% u- D! q
- (setq y (dimy_tile tile))
6 n# J# ?4 D; M4 g& `5 @ - (start_image tile)3 L. a9 z; b! Z, m* [. B
- (fill_image 0 0 x y color)
. N/ `3 ^! c/ h6 M" N6 _ - (if (= color 7)
) O/ j _. Y6 F& Q - (progn
) O( f+ n2 g) ]- }/ P - (if patlist (drawpattern x (/ y 2) patlist 0))
- i9 w$ A0 U- ~( W. m7 Y9 e1 d8 S - (tile_rect 0 0 x y 0)
- M4 O& M* Z. V5 u& k% c2 ~1 c - )% p/ K% X: f$ w1 v
- (progn# }2 b! j" x* R4 }; |
- (if patlist (drawpattern x (/ y 2) patlist 7))( p# H/ s3 ~2 D# }* c7 ^( j
- (tile_rect 0 0 x y 7)
7 n, E3 F1 |1 P, l - )9 F3 s+ |5 t4 J i; j
- ); H1 U5 P) P$ `7 {3 J
- (end_image)4 J+ B2 j8 M O3 `
- )
: _% t( o3 Y6 {% J3 P* i0 h - ;;+ F' c+ f2 O+ t% Z. P) U
- ;; Draw a border around a tile% }2 ^1 q- j) V) v( B6 G
- ;;
( ]/ ~ c7 F& {- m6 _& ~ - (defun tile_rect (x1 y1 x2 y2 color)
+ I4 ~& Q% G0 I$ W. A' `4 {1 S s - (setq x2 (- x2 1)); s: ^5 {! e" O' V1 z3 S, S
- (setq y2 (- y2 1))
* V {$ V0 y. g - (vector_image x1 y1 x2 y1 color)
) D' l. ?$ t- f% @. H - (vector_image x2 y1 x2 y2 color)
8 n! l2 d% F/ H - (vector_image x2 y2 x1 y2 color)
& \& Y( D$ E6 ~3 i - (vector_image x1 y2 x1 y1 color)/ I5 i# T% Q: Z
- ), O+ X1 i3 u9 @# ]2 f6 [
- ;;
; B, Q) m" l7 R$ V& l4 { L - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
) Q4 C; P+ y9 X( s- M - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
: O# N6 e+ ]$ ?1 L$ C2 n2 n - ;; list of numbers that define the linetype, and color is the color of the
1 V- J$ d+ V" K$ n" j9 e - ;; tile.) o w$ g& b9 s
- ;;0 _; y- q5 V( U7 X) Q
- (defun drawpattern (boxlength y2 pattern color / x1 x24 I2 L0 e- h! H
- patlist dash)
" u; @, b2 P" y& R+ I2 V - (setq x1 0 x2 0)9 H l2 a4 F5 V
- (setq patlist pattern)
9 i$ i) I! M- q4 k& G9 T - (if (= patlist "CONT")- r D9 `: a0 t, |1 O) H9 l
- (progn
- {/ n% g" @, m. y1 u. ?/ } - (setq dash boxlength)# [2 N% C6 s- S- W; W5 A _" e3 p
- (vi)
) B' F# Z V7 v$ m5 Q n" e, l5 I - (setq x1 boxlength)* t" [' T/ i. A
- )
8 R( u. P( M: j, B: T - )5 ~& o$ k9 {& d/ S4 s/ B
- (while (< x1 boxlength)
1 X) b0 ^4 S% ]; w2 F6 _# ? - (if (setq dash (car patlist))
0 e4 L; ?6 [. K" M/ [; t) w: [ - (progn
0 l" d7 j! H6 ^' Z% a2 v - (setq dash (fix (* 30 dash)))
% _- {6 S& t+ R' f9 d( S; J% g - (cond % h) w z6 f- ?- U+ s
- ((= dash 0)
, r2 ~) S$ C6 p3 X% G- X - (setq dash 1) + `% c! v; t0 R, S
- (vi)
1 k9 t+ z% h1 w - )4 f. ], S7 C! R7 m
- ((> dash 0)
2 s8 y5 t' E! `7 {& n - (vi)
5 P+ h$ u9 `- R* V; D( i1 P - )4 W) N( Z! Z+ z
- (T
7 |9 G( }) L; z/ D3 o - (if (< (abs dash) 2) (setq dash 2)) z$ O4 A! c- ?3 x4 N
- (setq x2 (+ x2 (abs dash)))
3 C( ]$ K% v7 n7 U4 K - )
4 M0 Q/ \5 Y$ H - ): \ j4 a V0 L2 z- r
- (setq patlist (cdr patlist))
5 R+ \% L5 d% D. }+ p3 g - (setq x1 x2)
3 {7 \ A# b5 `+ d, M7 P- @) I - )
G2 K- g# x' Z( C' q - (setq patlist pattern)
% J% t \& z& A; |+ O - ); U: D; Z- p" a1 n3 s# n
- )
, W0 G! a, {- T- L& B: {. I" W) ^ - )) W7 L4 N- Z: v8 h, f
- ;;
. k9 K! b3 c6 U5 n9 ^4 H4 n. n - ;; Draw a dash or dot in image tile
, N" U6 H4 U; d4 R( ~; b3 p - ;;
7 W1 v7 B0 [; m3 ` - (defun vi ()8 q0 U9 I; }6 g5 z
- (setq x2 (+ x2 dash))
/ @, j- I5 ]" ?" f: Q U; m - (vector_image x1 y2 x2 y2 color)5 f9 _! ]* ~1 X% _$ J' f, }
- )
, |. }# h# g* P0 r, T - ;;7 b0 v, [7 w" j3 S" G
- ;; This function takes a selection and returns a list of the color, linetype,
9 C4 ^+ O/ S4 V/ z: f - ;; layer, and thickness properties that are common to every entities in the! t# X, G8 c9 m& `1 v9 s
- ;; selection set - (color linetype layer thickness). If all entities do not
; F) m* Z+ @: L5 X! ]& L - ;; share the same property value it returns "Varies" in place of the % w7 I* ?$ D9 G3 r8 `* Z4 e; `
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)* c/ Q4 A* Z* C; X' H5 t* }
- ;;& [$ M* u8 p& _; H$ t
- (defun getprops (selset / sslen elist color ltype layer- w! L& g. P8 A) M- z
- thickness go chk-col chk-lt chk-lay chk-th ctr)) Z5 C1 L4 V+ Z7 X, O1 O5 K/ G
- (setq sslen (sslength selset))
( v' y5 ]8 r9 F. I' t) T& ]2 C' O - (setq elist (entget (ssname selset 0)))4 Q' ]7 w6 P( t- q' Y& h- ^
- (setq color (cdr (assoc 62 elist)))& {4 N) t$ ~$ A# F8 r3 v6 [9 U
- (if (not color) (setq color 256)). x" E6 b- ~, M5 E4 Z1 k' e2 m5 t5 e6 R
- (setq ltype (cdr (assoc 6 elist)))
" F( R- X F! |) B2 C6 V' H - (if (not ltype) (setq ltype "BYLAYER"))
n9 x; h2 k9 s% ]9 I+ Q3 K# C - (setq layer (cdr (assoc 8 elist)))
3 V9 S7 Y* Q g - (setq thickness (cdr (assoc 39 elist)))2 s( N& `! t- a
- (if (not thickness) (setq thickness 0))& H1 \( d: x2 w1 I8 T
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
: r. S& ~# m) r, m
, Q( r& s7 j0 c7 l. Q8 y9 w- ;; Page through the selection set. When a property
' l3 K% [% S- H4 g. z1 M - ;; does not match, stop checking for that property.6 b- z) k* N0 o# k: }
- ;; If all properties vary, stop paging.
6 C+ i0 L0 x! l" ?* j0 D
# Z% M, O) s) A" \- M& S0 B- (while (and (> sslen ctr) go)$ \: p. t, L/ A& \0 s0 L
- (setq elist (entget (setq en (ssname selset ctr))))
/ U& I0 n3 |: T% g - (if chk-col (match-col))4 C* s% y" d5 y, Z$ { d4 U. F' E
- (if chk-lt (match-lt))
8 { e0 {" U# Y- Q6 b8 ` - (if chk-lay (match-lay))
. }6 v: }5 m( p2 _& Y5 ]9 ?8 a/ z) r - (if chk-th (match-th))' T( m1 d9 n( B
- (setq ctr (1+ ctr))
" c ^+ i& h( D8 n' U0 o - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
' P+ m9 g. l1 C* `5 i' T - (setq go nil)
" o \5 n( H p5 O! { \ - )
/ S( c6 |; d0 E/ |' C% v; O8 R - )7 s8 Y: G4 {4 T: q. }: l5 }$ ?
- (list color ltype layer thickness)/ f- W6 A& {/ e0 y: `3 H6 k
- )
. x. l9 w* ^0 \4 i* G5 L - : @$ x4 W/ ?8 \5 x6 O$ I
- (defun match-col (/ ncolor)9 f2 c( h( J0 w% f# D* S: I
- (setq ncolor (cdr (assoc 62 elist)))9 ]( c# ^3 B& J3 F( k4 g& Q. f- m. @
- (if (not ncolor) (setq ncolor 256))
% o( f% g+ |8 y0 w. h/ T- E4 Z - (if (/= color ncolor)
$ n* v+ H# c" b0 E7 l - (progn
4 p& ~; O) v1 B+ j1 h8 N - (setq chk-col nil)+ c+ z) P; ^' {3 g4 p2 l7 k+ {
- (setq color nil), ~7 z, p$ A' P% q$ T. P
- )
& R/ W" v# W- h) @) Y1 i3 p - )( T& r, f$ h0 Y2 a- C+ D
- )
' S& a' T" u9 s
, o% g3 a$ }, k8 S- (defun match-lt (/ nltype)* {' r2 G' l: E; q' |2 D
- (setq nltype (cdr (assoc 6 elist))); B/ m; p+ p+ }& e' Z! W2 T* t
- (if (not nltype) (setq nltype "BYLAYER"))
' F; c+ N2 l d( z, s - (if (/= ltype nltype)
( i% K% b. _- I1 V - (progn
2 i, Q/ a) k- k - (setq chk-lt nil)3 |+ ?, o/ J1 s7 w/ M" R
- (setq ltype "Varies")
6 X/ w8 }# A' m, S( ^; { S - ). d' Y/ ?, S- f& c9 t; e* R
- )
6 {* S0 G( A. o+ n8 U - )
' y( V7 i0 n" K
# ]2 T% k+ g: t/ ?/ n9 j- (defun match-lay (/ nlayer)
9 Q6 L6 {7 G, S0 S - (setq nlayer (cdr (assoc 8 elist)))! }# [& `2 z/ y9 U/ s6 r% g
- (if (/= layer nlayer)1 o1 N! [9 |& U# a5 T" V
- (progn9 F% l1 F+ P! v1 |# u, X
- (setq chk-lay nil)
8 q3 u0 z8 Y ^8 V3 B - (setq layer "Varies"): P i' S/ s' F2 r! e2 I
- )
8 ]" l3 k9 @9 F" c2 W7 u3 D - )' o7 c# I0 p7 ]9 R- d) A; s
- )
( a0 o+ ?+ u4 ?% y: \# t - # U7 F( g! `4 [" Z: C$ J
- (defun match-th (/ nthickness)
, i$ k0 I4 L+ x0 h: {) P; G; F - (setq nthickness (cdr (assoc 39 elist)))
8 U z3 `! w# { - (if (not nthickness) (setq nthickness 0))5 S: `2 z7 S" |! ?& p
- (if (/= thickness nthickness)
( T: k3 p) ?. o- J/ H - (progn
& E. G9 X$ `! e: z- Z1 h - (setq chk-th nil)9 b& B! ^% C0 S5 {
- (setq thickness "Varies")( _3 R- O {% i* Q0 w" D/ _
- )
0 D' V; b' w) K) x2 R - )( n2 ~( a" G: V8 O$ a
- )
6 t/ E) B' Q8 W9 m$ ~' K5 T - - m5 o* n' u2 t/ h1 P- x: F, G( S; w
- ;;
0 S' K5 B8 a/ |: p* j P; H - ;; If an item is a member of the list, then return its index number, else 0 k) }$ F! Z8 N/ }7 h2 n# M) }; y0 d( u% A
- ;; return nil.2 U- a$ w2 z8 q
- ;;8 U4 K9 {% c. |! j$ m) r$ \. b1 r
- (defun getindex (item itemlist / m n)
$ H" W# s8 G: w% ^8 n8 @/ Q0 Y5 z - (setq n (length itemlist))! @; I/ u! Q: G
- (if (> (setq m (length (member item itemlist))) 0)
! S$ q' E; A3 N% n5 o% m - (- n m)
8 ~& ]3 R! s, _/ v0 k( S" ?; S - nil6 s" u2 j- m& V' Q" T& v
- )7 q9 w! h X9 ^; H" r
- )) M6 ?: v( Z! W5 W
- ;;
) F! M/ o/ p+ U+ u0 F) I4 x, a - ;; This function is called if the linetype is set "BYLAYER". It finds the
' q6 K w9 a& z5 F9 b- E: ` - ;; ltype of the layer so it can be displayed beside the linetype button.1 a) A- e7 x! q" @0 J
- ;;, g: M+ V5 r4 q2 N8 f+ F5 }1 i
- (defun bylayer_lt (/ layname layinfo ltype). z. L( V/ }! ?0 e
- (if lay-idx2 f+ U; n0 V, A: |
- (progn5 j' }5 L# Z, i, u
- (setq layname (nth lay-idx laynmlst))
% j3 g1 s; b; W" |" M - (setq layinfo (tblsearch "layer" layname))
/ @, N0 w* W# O3 ~ - (setq ltype (cdr (assoc 6 layinfo)))2 g1 L0 I9 F* N) x
- (strcat "BYLAYER (" ltype ")") t) V' O! C1 x ~# Y
- )* [$ C4 A3 z0 H5 }
- "BYLAYER"
# w, \, G( A; ^" a - )
) }$ p/ e/ L2 a- {4 P - )' G" f" P, J# Q; `5 u) Y
- ;;
1 i/ V s/ R, C% Y2 }6 l - ;; This function is called if the color is set "BYLAYER". It finds the ; @! O; P4 n- P
- ;; color of the layer so it can be displayed beside the color button.
" v: }, `7 G! k- m/ d5 j. f - ;;2 C: p: q7 j6 m* y: l
- (defun bylayer_col (/ layname layinfo color)- T# i6 W+ |1 w7 p4 Q, R1 p1 ^2 l5 }
- (if lay-idx
1 L% \1 \. j" i) X5 a9 ]# m - (progn
8 `6 J3 c9 p z7 }7 q - (setq layname (nth lay-idx laynmlst)). N: e: l- M" a, d4 E
- (setq layinfo (tblsearch "layer" layname))7 O1 D c3 J7 ?' j+ L6 y
- (setq color (abs (cdr (assoc 62 layinfo))))+ F: K) W& c" M+ m
- (setq cn color)+ c; c8 z+ H$ ~# h/ }
- (strcat "BYLAYER (" (colorname color) ")")6 f* X( i* f0 D# L# g+ [$ [
- )' z% B" e2 c$ f3 k6 Y7 Z( M: Z
- (progn# T) K: B2 b, d6 ^0 Y, o
- (setq cn 0)2 u/ V0 Q; R3 }8 s7 A/ G4 s
- "BYLAYER"- z! T: H! T2 I
- )8 ^- Q' B' Q; W' d6 Q4 R6 C
- )
/ S3 D; A4 Z- E6 t- h - ), W7 [4 a$ Q; V, d
- ;;7 X, ~$ F5 {: C( J. j
- ;; If there is no error message, then close the dialogue) Z z R$ `7 }1 T' n& p8 w$ Y
- ;;
. V O% l/ f" t0 r1 e/ F: z' s - ;; If there is an error message, then set focus to the tile
# k: r8 [* S4 r# |0 r4 j4 l - ;; that's associated with the error message.
7 b3 f; t; P$ @% d9 W5 g$ N - ;;4 T* N2 H: I2 @1 r( t
- (defun test-ok ( / errtile)
: E* d8 P U" I: h) f6 e- O8 D) c - (setq errtile (get_tile "error"))
% J# }& P3 ?9 \ - (cond2 V( `+ M; f& [6 q% I2 D! ~
- ( (= errtile "")
9 k. ^8 Z7 w, u; _2 Q - (done_dialog 1))7 \- B+ ?: j% e _' b
- ( (= errtile "Invalid thickness.")3 S! V$ D) z# w8 L
- (mode_tile "eb_thickness" 2))$ n: n3 R8 w. d' O
- )# x$ f8 q7 G; e
- )/ S9 \4 P+ n$ B: g4 v; g
- ;;
. R$ |( g" c; g% v1 f9 c) R - ;; A color function used by getlayer.
+ V1 N1 w6 _' u" Q# M2 X2 H: h: ~/ k - ;;; T5 Z; q2 ?% ?% V* d9 j% w
- (defun colorname (colnum)
`1 I7 s: z( M, W( ~" I6 u. ] - (setq cn (abs colnum)); m1 y9 a( f- s- S
- (cond ((= cn 1) "red")
3 q8 d8 M9 s1 V" L/ y - ((= cn 2) "yellow")
. F5 t( Y/ n7 C5 B; F3 @# ]* k - ((= cn 3) "green")( V; ^8 P, q" ^/ a2 Z% W$ u
- ((= cn 4) "cyan")
+ J2 e2 V% N+ ]/ a" D) j' }' d- h! a - ((= cn 5) "blue")
1 w5 m, ]* Q- T3 Y1 k - ((= cn 6) "magenta")0 v3 I' q# w/ N3 W; _* B
- ((= cn 7) "white") E, }0 ~! O: r: W8 G
- (T (itoa cn))
( j# i) f, x/ o" ^ - )
U% F( q$ f6 n* V9 ?4 [ - )
0 v7 O; v" b# g% Y0 c" O/ ^6 V - / `0 M5 l: x2 n: g& O0 y$ t
- ;;; Construct layer and ltype lists and initialize all5 \3 K6 Q9 z4 V1 x
- ;;; program variables:3 W3 u* x5 Y: M9 C' R! Y4 j" h
& S* i' ]/ \. F8 h* D- (makelaylists) ; layer list - laynmlst
) {6 W7 I6 n% X8 W& A z - (makeltlists) ; linetype lists - ltnmlst, mdashlist
* v9 S4 D5 ]$ p/ W. s7 x - ;; Find the property values of the selection set.- j2 l3 ?/ V/ m- q7 _( w- P+ S6 ?+ S
- ;; (getprops ss) returns a list of properties from
/ z4 O, c8 t3 _9 U - ;; a selection set - (color ltype layer thickness).4 r( R8 j/ i4 ]8 v/ ~
- (setq proplist (getprops ss))
! D" v7 Z5 b4 D. f+ t( r4 R2 c - (setq ecolor (car proplist)) X- `3 N' P* y/ {% X
- (setq eltype (cadr proplist))
* S" S/ z2 D: K* O# n/ l - (setq elayer (caddr proplist))3 Y) L; B( ~( x7 n, Q
- (setq ethickness (cadddr proplist))
4 f; e" d% y2 y% o - ;; Find index of linetype, and layer lists5 s4 f7 Q; i% u, Y h
- (cond, m& @" f5 \* @2 U0 G6 u) Q
- ((= eltype "Varies") (setq lt-idx nil))
- A5 X# |0 J- @9 a$ ] - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))) f$ O( A9 M* a% Y, B: m0 e# }
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
/ q1 A R* K5 c; y9 y0 M7 r - (T (setq lt-idx (getindex eltype ltnmlst)))9 f5 q7 M: T* L7 {% I/ ?9 P
- )2 K3 Y& u2 I" n$ [
- (if (= elayer "Varies")
, D) S# X! Q6 o" z! }7 r - (setq lay-idx nil)' `! T7 z/ K( z, j, T6 {9 U
- (setq lay-idx (getindex elayer laynmlst))8 b8 [- r' E# Z3 G
- )8 q" e0 }8 B+ D v: s7 l
- (if (= ethickness "Varies")
) ]/ q2 r6 p2 T - (setq ethickness nil)1 i6 w/ p% o$ p
- )
2 X! N" |1 t3 j: R4 {
7 s% d/ W' ~# c1 h; e& A# R0 B- ) ; end (ddchprop_init)
* M; E+ m% Q. ~7 `; c7 i) E6 T - / M$ m9 ?2 m" n+ T& U% h
- ;;; (ddchprop_select)
0 t% C5 q2 W& J7 Q - ;;;% n2 Q, M0 l2 v6 r7 a* d2 `3 g8 W& E
- ;;; Aquires selection set for DDCHPROP, in one of three ways:$ F4 Z2 r9 M# c
- ;;;! l( C( {: `& J7 \
- ;;; 1 - Autoselected.
( Y) Z C( A+ `/ B$ M - ;;; 2 - Prompted for.
|( y, {- {% E7 X2 ?8 q& A& \ - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )4 G, j1 J. e, o. n% `4 s
- ;;;2 D6 h# }' |4 C" b) [1 H. e
- ;;; The (ddchprop_select) function also sets the value of the" j$ `2 `2 \( {- }
- ;;; global symbol AI_SELTYPE to one of the above three values to$ a9 D. |8 N: H2 O) N" Z- C. m
- ;;; indicate the method thru which the entity was aquired.
2 s' |, x/ P5 V* \' i. b! D0 `7 w - ( [' s7 r/ E M) I; _8 V. @
- 1 a/ [: s( e: E/ G4 u
- (defun ddchprop_select ()/ r0 O' g5 y0 E6 k1 l8 E
- (cond
- ^0 V' ^1 B. k - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
, F( l) P6 G( _+ u) D8 U - (cond ; (ddchprop) as argument
, g* |6 ?) ~+ M; H; y9 {% j - ( (not (zerop (sslength ss))) ; If not empty, then- H9 n: V: E- J9 w0 h
- (setq ai_seltype 3) ; then return pickset.
- j& z, x1 z; a - (ai_return ss)))) k% b! Y( i9 e- M K) l
- 7 c/ Y2 h @' R
- ( (ai_aselect)) ; Use current selection6 ? C/ E9 y5 J' U. g& t( ~, u9 B
- ; set or prompt for objects
2 W8 A, ~( p" n; K
1 r1 N, [ V/ x2 w: ~- (t (princ "\nNothing selected.")0 r: i* T6 a9 y! w5 A
- (ai_return nil))
/ N$ t$ J9 A5 y( a - )$ y Y) O; E3 j; F
- )& S; t( W- N+ U6 s$ J# x" ]
- 5 c, k9 @: o \7 V( s" m
- ;;; Define command function.
' \7 u* U1 N; \/ |) x9 r
: V6 X" A0 N$ }/ }$ \- (defun C:CH ()
. ?" E, S2 N6 e2 H% y - (ddchprop nil)
2 k$ I' }' p$ B - (princ); b2 r" C& e9 x) J
- )" \: U4 }4 }( i2 T" G V( u' Q
3 `. l& N# L0 w, z- 5 V7 G z8 h8 f6 e) A/ n
- ;;; Main program function - callable as a subroutine.0 |, ]1 N: B. x6 [
- ;;;
: r' m; }4 ~' F5 B# n - ;;; (ddchprop <pickset> )
& w2 a2 ~' S' L/ n - ;;;
& i: V- _- X' [: s6 |5 ? W8 E# A - ;;; <pickset> is the selection set of objects to be changed.
. G: Z( s6 |' Q+ [% F - ;;;5 W, L" a+ w, a7 Q; ~
- ;;; If <pickset> is nil, then the current selection set is
: u# [+ ?$ D4 _7 `0 J0 F, F9 s - ;;; aquired, if one exists. Otherwise, the user is prompted0 t! t+ ^9 ~, J4 a9 g, D
- ;;; to select the objects to be changed.0 L8 K9 ?/ c6 E5 x* s$ R8 h% X
- ;;;' l! Z! R/ }9 O: S3 _" f9 T
- ;;; Before (ddchprop) can be called as a subroutine, it must
- r7 v2 y: Y5 f/ @' ~# s2 J U1 a - ;;; be loaded first. It is up to the calling application to, v; { j, r9 [8 m- b
- ;;; first determine this, and load it if necessary.; y+ ?8 N8 S, R- ]9 K; h; v
- $ w. T7 u. d# U d4 f
- (defun ddchprop (ss /
2 u* G( ^* X& E/ V% o. q - 8 _/ ^4 B6 f4 q5 J' N% [3 q
- add-mdash ecolor ltedit_act s3 a+ ^" w. A0 ~! t) G1 n3 Q
- assoclist elayer ltidx selset
( y: a& ~- L. _. ^( q h0 ~" n - bit-70 elist ltlist set_col_tile9 ~9 y( f, A4 I2 c! i6 ]' s
- boxlength eltype ltlist18 s# v7 G/ d( T7 r B
- bylayer-lt en ltlist_act sortlist) l& [! V8 G; ?( }
- bylayer_col ethickness ltname Q, i) b; K& n8 q4 [! l& y: H9 u
- bylayer_lt fchk ltnmlst sslen& C! `# a h- P2 T( B2 C
- call_chp frozth ltvalue templist
" {; `& o* U8 A* s - chk-col getcolor ltype temp_color
8 F- i& I7 T! ^0 m! |, U- K - chk-lay getindex m test-ok
6 E. }- P& v% [% r o, J! a+ m6 Q - chk-lt getlayer makelaylists testidx: f, z6 U% e4 }' f+ z& k
- chk-th getltype makeltlists testlay
* d. z2 q) @' y3 g - cmd getprops match-col th-value4 e' V( E9 _/ X% W0 U
- cmdecho getthickness match-in thickness7 m3 a* p1 I4 K
- cn globals match-lay tile
& s8 |6 w; e) ^1 D; y% { - cnum go match-lt tilemode( `7 v" V; h" y* G, k% n! I
- col-idx index match-th tile_rect
0 I, h) n# e4 f" y - colname item match_col vi/ A; _# z7 C0 g
- colnum item1 mdashlist vpf
5 A3 |, m9 p2 W* z+ C5 S' o( ?0 G - color item2 n vpldata- Q) u% N9 Z& `* f* y
- colorname itemlist name vpn6 h( E) b7 t$ N# q, K
- col_def lay-idx ncolor x% f2 K) x q# c
- col_tile layedit_act nlayer x1, @) B. ]2 H( T) h6 E6 X
- ctr layer nltype x2 I/ n, J& t- H% S( Y
- cvpname layinfo nthickness xdlist
; S) I: T2 \; A3 \ - dash laylist off y. E8 T2 d8 ^, g, p
- dashdata laylist_act old-idx y15 a" t j' |3 L8 e0 V* W/ N
- dashlist layname olderr y2, \- l+ ? o) @& C& M
- dashsize laynmlst on undo_init5 }6 p# g* K0 L) C
- dcl_id layvalue onoff
9 b3 N e$ M* U9 V2 t/ s. O9 x6 K - linetype patlist3 m; [/ a& t1 s; S
- ddchprop-err list1 pattern. N& b: w. }5 k/ H1 A
- longlist proplist* e. r: Y) r- y/ G- V
- lt-idx reset-lay
. n. G$ `4 I0 b9 `6 \4 g' | - drawpattern ltabstr reset-lt& ^9 F! j/ |* z$ L- k# }
- )7 O* r5 A$ G* C3 k, S. K7 |
- / i/ o+ L. L$ L. }8 l& P1 J7 q$ R) t- P
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho* H5 p* j( W% Q1 b) n
- old_error *error* ; save current error function3 P5 D6 t T6 N6 n' K: u9 q, u
- *error* ai_error ; new error function
' }" b5 G) A5 f4 h - )! j0 |/ P, [1 \5 {2 m- }2 [; e
- + c4 L2 C9 N d
- (setvar "cmdecho" 0)- q6 s9 }) a( S2 U% Q* A
7 I. L( E1 m. U0 X- (cond
$ M/ M) q4 c8 R - ( (not (ai_notrans))) ; Not transparent?# X2 b0 M6 L/ H$ C+ J9 K
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
/ c0 ^. o+ w6 V- H5 w) Q - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded? a, O$ O7 ]" {% U) e# P$ ^3 t* C
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?
6 E ~& I5 V7 n. @2 @/ R
9 O3 A3 K$ Y3 u# L- x) Z- (t (ai_undo_push)
' `) U* ?, z% H - (ddchprop_init) ; Everything's cool,
2 b5 V& o, z. L4 Q - (call_chp) ; so proceed!
2 ?! D h" {: n0 O6 C$ V( [) I' f9 X - (ai_undo_pop)
1 L# q+ {( k: c M5 W - )
. {. ?/ P, G8 s! k# s6 F - ) ]6 `- ?9 H: H" m" F/ H
- % q0 k0 n! W! \# V* ?
- (setq *error* old_error)
0 A8 c* }+ j, ]) S- H - (setvar "cmdecho" old_cmd), J9 Q' N6 B% U, q* F* ]& N4 Q. l
- (princ)0 ~3 a+ z, ^, D0 \+ a+ |% Q6 n! M
- )
' H, a n9 N& ~: _1 P - $ f& i5 [9 J% \+ W' c% o- j* H
- ;;;----------------------------------------------------------------------------
x4 S9 s3 I- v! d. L% F8 p! B
" e8 Y. x7 z& e& Z6 v5 L- (princ " DDCHPROP loaded.")
9 s; w% c9 Y- {4 @ - (princ)
/ }1 w3 K* ]5 ~ J - 2 C' c" h- q' f0 @2 l+ m
- ;;;----------------------------------------------------------------------------
( C( y- `, A' i/ ]3 q& A/ \
V' y9 Y8 d1 k1 |7 {* F* f( n- ;--------------------------------ddmodify.lsp----------------------------------
. F' @# C* E5 P4 b - ; Next available MSG number is 1119 q+ P1 G8 g# a( H6 w
- ; MODULE_ID DDMODIFY_LSP_
' K$ B6 j: `5 X5 ^, N9 Z3 p5 X - ;;;----------------------------------------------------------------------------
$ s {# i0 M6 D. h - ;;; DDMODIFY.LSP
: N2 I( {& h7 j4 N1 J3 x - ;;;+ J2 W# E& p5 C/ e' N
- ;;; Copyright 1997 by Autodesk, Inc.
. O2 m% u% `9 F6 Z1 E6 v - ;;;
' t; X( ? [2 a( P( X" V - ;;; Permission to use, copy, modify, and distribute this software
: _/ v. R$ T! | - ;;; for any purpose and without fee is hereby granted, provided+ Q. n- ]$ N& P) A( _
- ;;; that the above copyright notice appears in all copies and
0 t9 U1 M' {. Y* p' F - ;;; that both that copyright notice and the limited warranty and
+ b7 x! e! J! U$ k. c% M - ;;; restricted rights notice below appear in all supporting, F- c) H; r2 ^; h
- ;;; documentation.
7 c/ e& u5 I) H6 T$ N- l - ;;;6 Q+ A$ K4 i% X- C; |
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.9 k6 Z% ~5 R- A/ k; [
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF5 s, B3 c! L+ g: R) J+ f3 t
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC., y' h% d" K5 n! c5 M: J$ \: l
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
' b5 p$ k" V* K/ F; g$ ]# p+ ~' ~ \ - ;;; UNINTERRUPTED OR ERROR FREE.4 v4 v g4 J' H4 p# {. E
- ;;;
8 v x$ c3 Q' H - ;;; Use, duplication, or disclosure by the U.S. Government is subject to6 b2 | U9 k0 a' N; F; b: B1 w8 U" M
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer- J L% \( F* e! m& A; _ M6 \2 j
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
# p9 b3 {8 ?* h- h0 T - ;;; (Rights in Technical Data and Computer Software), as applicable.- @; }0 B; x- i- I( R/ Z
- ;;;
, P# q7 n! K8 L - ;;;.) w7 K \' a- K2 W9 p; Y
- ;;;
+ o- q" v. B" J! L# G - ;;;----------------------------------------------------------------------------
: B* X: Q l+ K1 ?( b9 D3 p* ?& P - ;;; DESCRIPTION( p0 B; h% r: K: a3 ?8 z( h" w
- ;;;3 p% x* K2 }; |5 v: _) u
- ;;; This function allows the user to get a listing comparable to the LIST& F) r4 P0 w( {: n
- ;;; command for most objects. In addition, most object fields in the m. y; B& A0 q" m( T
- ;;; dialogue box are editable. Points can be specified dynamically by
$ u2 _ O% t* r( d# f3 [ - ;;; temporarily dismissing the dialogue box. Each object has a unique
7 c( n" r# F! V/ a6 M- [- L( u - ;;; dialogue.
& q3 R! h' h! z7 J- ~" z: Z* I- M - ;;;; F; h. k6 ?" x0 C+ V2 G, z
- ;;; Naming conventions
( E. ]& P3 b! w) x$ t) U9 J - ;;; Long function and widget names may use an underscore "_"
1 Z& B: [' u# b( C* O/ E# M- D: E" R" j3 x - ;;; in their names to make them easier to read, long variable
( d: R w ?( I# g9 V - ;;; names use a dash "-".. f. V, R% A( V* ]8 M2 y" |" S
- ;;;----------------------------------------------------------------------------
. b' y0 R) W3 T( r3 Q7 n& v0 ~( h) H - ;;;----------------------------------------------------------------------------: _2 ]6 i6 H- x( M
- ;;; Prefixes in command and keyword strings:
- I7 h: s" {+ W( O# X - ;;; "." specifies the built-in AutoCAD command in case it has been7 `) |3 M* f0 J; ~9 q9 B
- ;;; redefined.
7 t* j$ T# t3 T - ;;; "_" denotes an AutoCAD command or keyword in the native language
- M% o+ r& L, e/ R3 ^* O; L, E - ;;; version, English.
) K6 L7 ^7 y3 Q - ;;;----------------------------------------------------------------------------
; E; y) K, [ u - ;;;( \; J1 |0 H7 _, n" ~& A
- ;;; Avoid (gc)s on load to improve load time.
/ i# l$ x3 ^9 t: n1 k - ;;;9 l2 J0 Y8 ?1 T1 L2 a4 T+ Q; L
- (defun do_alloc (/ old_allod new_alloc)
" u9 i4 s$ `( J - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))3 Z2 K3 H3 W( Y6 C+ h6 s" V
- (expand (1+ (/ 17000 new_alloc)))9 N# L: c* h) b; J; Q/ ]
- (alloc old_alloc)' `+ m% Q8 v! d
- )
& b( d! T5 T6 P5 [" z - (do_alloc)) @+ s( O) C; R
- (setq do_alloc nil)! r. s0 q; j" [/ N, \
- ) O# x) {9 t' ^7 U0 Y
- ;;;' M' }6 f2 X% P# L5 w9 E
- ;;;# t+ @9 K; g* b" J' ]
- ;;; ===========================================================================
1 r: u. i! @/ h - ;;; ===================== load-time error checking ============================
# x1 W6 j, \* I" T
2 |- M' i$ {( A3 q- i* d* l8 `9 U- (defun ai_abort (app msg)# c( r' `( @% T( @+ q' e# v
- (defun *error* (s)
8 E) a. u( Y1 A/ k$ S; b - (if old_error (setq *error* old_error))
' [" ^ T( M7 F! p) H k0 r: v# ~ - (princ)
$ Q4 K' l% |9 P' t/ l - )% _. R7 e8 x0 L: n
- (if msg
@" R2 P E$ Y y/ }, z! E. }$ \/ J( @ - (alert (strcat " Application error: "; ?3 }; G) ]5 n
- app6 A/ W! @8 W1 X8 e
- " \n\n "
7 L2 z' o! K' r' b5 m% @, q - msg
9 F5 V' r: j5 e F" T4 S4 [ - " \n"
4 }- _9 s! }7 d - ) ]+ k. J: s8 g% I
- )
7 Y& D4 e% J3 I. p - )% J$ Z- g3 ]$ i2 x4 P- i% E
- (exit)* s& D( Z1 c: D
- )
/ Q9 J; D1 P5 g$ H5 C# p
+ p4 o' b/ j6 I) e7 d- ;;; Check to see if AI_UTILS is loaded, If not, try to find it," }( x3 ^, Z/ l Z6 k
- ;;; and then try to load it. If it can't be found or can't be
" h; ~- Z5 S& D2 H0 L' k, K - ;;; loaded, then abort the loading of this file immediately.
, K% V: ^+ _- B9 R
5 ~- i/ t9 |: l+ _9 S3 Z8 q- (cond
6 G+ _9 y) j. q z" A8 v$ \3 h - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.& a5 z% L- K3 B5 ^; { R7 {3 G
- 0 d3 G: ?2 D5 A0 s. X( S( |$ g
- ( (not (findfile "ai_utils.lsp")) ; find it
/ d. E! K' m/ w% } - (ai_abort "DDMODIFY"
+ L* f4 x" S6 H3 P+ D! X& p6 K s - (strcat "Can't locate file AI_UTILS.LSP."# w/ C3 Q6 J. D
- "\n Check support directory."))), Z" e; A6 v' k5 n0 Q
3 _/ E: L, F( T7 v. P+ M- ( (eq "failed" (load "ai_utils" "failed")) ; load it) `& j( a0 C& D4 U
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP")); G* {: U z% B: I: u8 z/ z Q
- )
& T7 o7 k1 n9 J' `& s& j# l
5 o% w" g* T: g6 e {- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
: Z$ E! k: n9 I1 E' E* A - ;;; be assumed that all functions defined therein are available.
; H ]! s& o- L! e5 f9 B3 |
" ?; J, F# K; f8 q, ?7 g4 j. H- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
8 g) v" \& d# R. T. U: M0 U! ` - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
5 k T. M7 N: r( t2 S% z - ;;; does not abort the running application itself (so that it can, _: P" L, T8 W* H+ l7 n4 ?: L& d! J
- ;;; also be called from within the command without also stopping
; A) Y" c7 m7 ?' _1 m$ G - ;;; an AutoCAD command currently in progress).
- a2 g5 @2 }* i/ k3 U
Y& ^& Z+ P" a. C& N- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
2 w% n1 Z8 c& _0 G( t, K - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses0 C& V. q! J- J U
- ) ; ai_abort's alert box dialog.& I: j! ]& ]! k9 z% R& M
2 @* x3 C Y! P4 i0 r- ;;; ==================== end load-time operations ===========================9 f: @1 L0 l) X2 G
- 5 P% k7 @: s6 Y7 B9 ?% F. C6 I
- ;;; global variables
7 m K# h+ ]- E8 @) L - 6 W# S7 P- _" Z; ]3 n
- (setq hatch-elist nil)7 @- w1 _0 [8 l1 q+ M1 I
- 2 D) D/ H, m% r5 j8 s& k
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are$ T3 D7 z6 ?( V; }* x5 b
- ;;; assumed to be available.
) A7 T" n/ Q. I/ z& ? b
3 B4 |# ~4 J8 u# u2 ^7 T/ e- ;;; Define and encapsulate all subroutines that are declared; t* L( `# b( u/ C- a7 m) g
- ;;; locals of the (ddmodify) function.1 g! g9 ], `! e. y
- 5 i( T" @( H/ l: X* \5 E
- (defun ddmodify_init ()8 t! g ]: J& h4 c) G5 X* x, _
- ;;) U/ ~$ L5 N9 H0 _# h3 _
- ;; These three functions modify the enitity list for common properties. Since6 X. X( H' K5 Y1 w1 u+ p, B
- ;; color, ltype, and thickness are absent from the object list when they are
" O7 N9 `' V! o: N0 T - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
9 m+ q; X! u: U S# T! m, z8 y9 x - ;; SUBST is not possible.
: U4 [8 Z( e' ^. X5 E% d; A9 B - ;;) Q0 R5 F* K& O$ F) j+ |
- (defun modify_properties ()
4 Q2 w& g- `9 z$ f8 r/ Y# T - (emod ecolor 62)( d: f' T3 v$ ^% N k! U3 }
- (emod eltype 6)! @9 u Z9 ~: U3 D" J7 n" W+ @. I( ^
- (emod ethickness 39)( i4 c* a8 b4 R) u5 L- |
- (emod eltscale 48)
" p/ P) j: ]* Y- B - (tempmod elayer 8 nil)
: C8 n7 q8 F" ?% L. J# `& s( f9 w - )! b. c1 L( C: b6 a
- ;;
! Q' G0 i# P5 l# B - ;; This function is used for modifying common properties of the ACIS
% {6 N0 m6 S; s2 S( p; d" R - ;; based geometry objects. Thickness is not valid for these objects
7 o5 v0 V; @! w% b. S - ;; so it is left out.2 i4 T+ G( P2 k- {) m
- ;;
* z; N2 @3 P F0 }1 \ - (defun modify_prop_geom ()
9 O- q$ A+ f- M - (emod ecolor 62)
2 | W$ d9 Q+ @) N - (emod eltype 6)
' _) ?! m0 u' ]3 B( J+ ]8 q - (emod eltscale 48). a1 ?- {5 O9 }
- (tempmod elayer 8 nil). x* ]4 O, b& W( K9 s
- )' i2 B5 u9 f8 A' ]; b8 }1 `" M) `6 T
- & K4 X7 O5 n5 y5 ?
- (defun emod (value bit)
* }7 J3 F8 r( Z& t" Q$ d y - (if (= bit 62)2 |& \0 @) I0 s w
- (progn1 M2 Z3 a4 J% s8 N' m6 W
- (if (or (= value "BYLAYER")/ t( r$ [' `) g+ X: X
- (= value "BYLAYER")) (setq value 256))! v" F7 N# j. r( ]. T
- (if (or (= value "BYBLOCK")
0 d7 S5 E% D4 x4 }7 c - (= value "BYBLOCK")) (setq value 0))) g9 W4 u" [: P) s. h9 c# x
- )
: G: K+ t3 `1 y$ Q1 H - )
* m$ s9 g9 x/ q+ ~' e% H - (if (setq oldlist (cdr (assoc bit elist)))
2 _, t l% }6 b9 V - (tempmod value bit nil)
! i# [3 n7 Q: C4 @ - (setq elist (append elist (list (cons bit value))))
& `) T& _. r" \# ` - )
( W/ w* V4 a. M" l4 ^) q; f9 k1 Y - )4 W7 \6 a: ]4 d( p: J
- ;;
+ t+ D: q/ q2 P, [. o - ;; Resets object list to original values. Called when the dialogue or+ ~: G+ ~7 z2 P2 B0 B
- ;; function is cancelled.
4 Z" _2 n9 v' i" C% Y, X4 o/ E - ;;& L3 v1 G, d$ X+ ~9 G8 @/ g5 g
- (defun reset ()
9 x/ R- E1 O) e, a - (setq elist old-elist
' r5 {1 `8 M$ ^2 H8 d# X - ecolor (cdr (assoc 62 old-elist))0 H; ]+ D! \* f
- ethickness (cdr (assoc 39 old-elist))
8 q7 k3 i4 T+ w - eltype (cdr (assoc 6 old-elist))& g$ ]( W8 @: ]1 H' e# w& g; ~
- elayer (cdr (assoc 8 old-elist))4 {2 Y7 m- q- O7 f' G1 d$ Y
- eltscale (cdr (assoc 48 old-elist))( V. b! a$ N$ G' B2 M: Z& {2 L
- )
- ?* {% k$ p: A - (if (not ecolor) (setq ecolor "BYLAYER"))
+ p, e* J" m( Q: y - (if (not eltype) (setq eltype "BYLAYER"))! W. z8 _$ ^" u: x- g5 K4 n
- (if (not ethickness) (setq ethickness 0))
; a' I" _7 f7 w% v5 C - (if (not eltscale) (setq eltscale 1))
! ~+ B/ y5 W# q" p0 j- S) M - (modify_properties)3 e2 D3 Z4 l, z( ]' ~* k
- (setq reset_flag t)
4 X- W5 m) n7 k, i3 U! k - (entmod elist)
/ e& l3 S( z9 n* R# b" e/ F - )
3 q! L6 d, ^+ i' d5 a! o7 C0 B( c - ;;
0 g9 Y2 @ G4 Q4 i+ J- [8 `1 t" y& Q - ;; Modify object when dialogue is temporarily dismissed to reflect latest; M# \0 @8 |% W9 V* j
- ;; settings of dialogue. It converts the point from current UCS coordinates to
# \0 I5 ^; a/ Y- T - ;; the proper object coordinates (world or object).4 Y2 O! ?: I7 o# l* i9 l
- ;;7 r6 z- Y! _5 q5 U3 s, B. N7 ]9 c' T4 Z
- ;; Arguments: value - in current UCS coordinates* c& f# A/ D5 S! ~9 h
- ;; bit - object code (i.e. 10 for start point)) ^ a% A8 Q* ^0 _6 E% i0 e, ~
- ;; ptype - point type 0=world 1=planar9 r3 a( X* w/ \8 X
- ;;
3 r6 ~" R* k5 |( {$ i, ]6 A - (defun tempmod (value bit ptype / newpoint)
" }; ^# O6 J7 s; p* G/ I9 C9 b( o - (cond
. s; }9 } ^6 z& m5 f9 W - ((= ptype 1) (setq value (trans value 1 ename)))
2 [, {- T' c8 b7 b1 ^$ i - ((= ptype 0) (setq value (trans value 1 0)))) y' t2 W+ B. N) J1 X( d( I# D
- )
/ U* o4 d! e# V - (setq elist (subst (cons bit value)0 M+ ~1 H$ A9 L3 s! U S: r
- (assoc bit elist)6 t3 t3 ?" x, n7 I. H' o
- elist
! H4 F& B, h, ]- {* ] - )
/ n; c- Q( l1 y, ] - )4 o0 m, N9 K' Y. k' l
- )
( B/ A- i. O8 L( c - ;;
Y7 H2 W# W) F# v3 f) j1 S - ;; The following functions are called after a dialogue has been temporarily9 ?: Q6 q3 {. D' G" o( ?: R# I
- ;; dismissed and the user is selecting a point. If a point is selected the- C0 ~! A1 I; V7 z+ @0 V' m
- ;; object list is modified and new X,Y,Z values set. If no point is selected' \7 R3 g+ m; ]/ K% w) I; P; d% F1 q
- ;; (null response), then the point is reset back to its previous values.5 k8 s, ?1 \: r3 y& u P. k* y
- ;;
: W- j" M9 f6 Q1 H3 Q - (defun ver_pt1 (ptype)
7 ^+ p, ^0 e4 @3 }' \* M - (if pt1' @9 t, A- y8 u }. z5 @
- (progn- r: K, `# f$ p, Y& g9 @. w4 B/ n6 b) M
- (tempmod pt1 10 ptype). b# |) B9 `4 R# P" U
- (entmod elist)
3 q0 g5 {" a# V! p) [% Q - )
+ |) e) T0 p A' B - (setq pt1 (list x1 y1 z1))" P1 l7 B) G/ W# X/ H. S4 }5 ?8 h$ {
- )
! ?* X ^% X( ^* a, z. P& z - )3 B$ i1 l. Q! S$ j& @/ k: a
: K/ J: |. o2 x+ T4 t& S- ; (move_pt1 <ptype> )) R$ v7 [4 f8 }4 h& M. b1 ~$ R0 M
- ;
, x' S# q6 Z2 i5 B b" f- o - ; Called in liew of (ver_pt1) to translate block insertions which
r/ I2 V2 u9 v# \ - ; might have variable attributes attached to them. If the distance
2 p- [4 f/ j( k - ; the block is to be moved is < 1e-6, the move is deferred.
0 I. z# G& P6 a- F' i# @( I
2 o& w0 v6 t+ Z; q& R5 o/ Q- (defun move_pt1 (ptype / basept hi)9 v# w' W( @7 J6 T6 [$ ^
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))3 d' E0 V7 R) H0 ~- W: g4 p i7 N
- (cond: e+ j# A& f& ^: I
- ( (not pt1)
4 i. S! }6 h' R* a' O- v# D1 [ - (setq pt1 (list x1 y1 z1)))5 g) G+ |7 f' F9 b0 V4 R2 H) Z
- 4 V9 w. x7 v" j% O2 [8 n2 Q+ K \
- ( (> 1e-6 (distance pt1 basept)))
; J# N) i: R( W3 y; n
% p. O- } a9 T. _* K1 {- (t (tempmod pt1 10 ptype)& @) x$ j- V) w; [7 X3 w! B
- (setq hi (getvar "highlight"))
( N, ?) V* y0 z! z+ _. l - (setvar "highlight" 0): h* U% Z1 {7 n, s) _
- (command "._move" ename "" basept pt1)
) ]- \4 x3 d ?6 H! X- b N% s6 d - (setvar "highlight" hi))( ~/ |8 d+ Z( v1 G' ~2 D/ s- K
- )' D1 D* ?& t" y" O* n
- )6 A7 S5 m1 O% w% \
- 5 Q: l6 f5 b& d7 K
- (defun ver_pt2 (ptype)* M: I* O% S7 V
- (if pt2* k! U0 d: G6 `+ {" g: O; \, v- E
- (progn
# p9 ^9 T! Y! ]& w6 y) H - (tempmod pt2 11 ptype)0 Q% G% Y2 U/ ?) Z0 @5 [
- (entmod elist)! I! o, s7 c% z7 J/ }
- )
- \" z- d2 s! a - (setq pt2 (list x2 y2 z2))
, L! M# E# z0 j% G! ?* G0 { - )
1 R, y# H# r% Z - )( B2 t$ B' I+ H( y8 ?
7 H3 p& N7 z3 A" W- (defun ver_pt3 (ptype)
0 b O' `; n0 }8 l4 I5 E; q - (if pt3* @) B ?$ w# w/ z4 h0 e3 ?
- (progn+ [: _2 @) X! ?
- (tempmod pt3 12 ptype)4 k% G# [8 {; e# g; I0 ^
- (entmod elist)
: y5 k6 x5 X- i) f. V! e1 a6 A& _ - )' b% w+ D4 `0 |+ {! N9 m) _/ h
- (setq pt3 (list x3 y3 z3))6 A6 D# ? C. H) b" X) ], d
- )/ K- }8 p% x; u/ b; j
- )7 E B/ O0 {6 `2 q4 q) l, L% g
- 4 Q+ V: o& L& D
- (defun ver_pt4 (ptype)
H# ~- n5 V' [, c+ \, k0 J - (if pt4
/ O' N. V3 o% J - (progn) s, b {# W: K% {7 s8 y
- (tempmod pt4 13 ptype)
$ \& V! n& n; d2 j4 G - (entmod elist)
5 G& `9 j: a) q7 ]9 t. E7 [3 v - )! a8 d; E7 w, H) h" p
- (setq pt4 (list x4 y4 z4))4 Z; J4 Z. ]/ j0 x' G* @
- )
& {2 `5 `* V) { - )5 A! I- K) ?) u2 I' Z
- ;; Xline/Ray' z; B) D/ f4 p0 n& d0 E
- (defun ver_xline_pt1(): w& j; ^3 ~+ ~& v. {) {
- (if xline_pt11 Y4 `7 c( p$ u) y# G$ }8 z
- (progn, t( F' B6 D6 ]0 s% d& m3 K8 u
- ;; convert to WCS.# `9 Q2 g: G8 ^/ [6 w" m6 `
- (setq value (trans xline_pt1 1 0))- B& R) I, J) {" H4 U
- (setq elist (subst (cons 10 value)
# r1 s: X5 w6 {9 i' \ - (assoc 10 elist)* o% i. @" O" I6 A7 v6 c
- elist# ]' E% M0 h/ K; u5 Q8 U
- )
7 u, F1 P. @0 ?" Q# w" z - )
* G) \: K8 \: ?, s- P1 S8 i5 w - )
5 ?8 Y+ a b9 n - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
9 G( H0 t- H2 t3 q0 N) u - )
& a$ s3 F/ ~8 f! a0 F - )# V4 g9 x0 `2 Z1 s; f
) J3 f. E$ s% B; I- (defun ver_xline_pt2()
4 B6 P% K7 z* C/ S2 ?3 Q; P7 f1 ~( w - (if xline_pt2: o9 h; F! D) {9 C* g
- (progn/ T# z$ l/ d/ [! n
- ;;
$ f8 S1 o0 S0 a+ ~1 O" R& K - ;; Calculate new Direction Vector WCS
1 s, j0 f0 b& g% x - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))+ M. P" N( z {( h0 _% G' S& {$ g
- (setq temp_dir (trans xline_pt2 1 0))! {3 U, |0 r; Y+ \; \
- (setq temp_dir_x (car temp_dir))
* l. w3 m$ p# P0 }$ | - (setq temp_dir_y (cadr temp_dir))
, l7 c: N% O/ ] L: \ - (setq temp_dir_z (caddr temp_dir))( }# D+ o1 t5 G, w* w! \3 p
- 5 D3 [; A+ T& W1 Y1 B) ~
- (setq temp_xline_pt1 (trans xline_pt1 1 0)): d/ |& S# d1 `1 h% |$ M7 I: E5 J8 [4 f
- (setq temp_xline_x1 (car temp_xline_pt1))- N6 @/ p! u' l5 `+ S
- (setq temp_xline_y1 (cadr temp_xline_pt1))+ U* V$ v7 |( I/ }8 R
- (setq temp_xline_z1 (caddr temp_xline_pt1))
( _, I/ E9 U S/ k$ [
7 N w9 H1 `0 R. H- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
1 E; @5 M9 I: H$ ]* }& O - (expt (- temp_dir_y temp_xline_y1) 2)
8 t) C7 n& |5 F& a" R! G - (expt (- temp_dir_z temp_xline_z1) 2)0 v, G- }9 ?; N8 U: R2 M
- )))
5 y0 P8 Q( Y0 Y1 L - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))# y7 P; k7 x! d* a" m
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
8 S/ t* K, A M* M5 ^5 a - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))! \ r# b/ J" ~, E* c3 b
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)), H5 t" U1 E, h+ V5 Y d
- (assoc 11 elist)
" H+ Q: C% P1 @$ g. ^ - elist* o! I3 g" k: \( |; Q
- )
3 S$ p! Y0 p/ { - )$ n! k( s ` @0 W, A7 n& {
- (entmod elist)5 r1 `* Q: U9 m
- (setq xline_x2 (car xline_pt2))
6 q0 x* o7 b: d9 f' V% L) }4 ? - (setq xline_y2 (cadr xline_pt2))# c4 @4 K8 d' u7 a/ _- B) n
- (setq xline_z2 (caddr xline_pt2)). c G7 ?; b! t
+ z9 P- ?2 Q* P, f: N
. N4 Q% X$ m) {) c& `# i, }: O6 q4 [- )
4 s$ ^( R3 t* x) E: R - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))) y9 Q( i+ u4 G+ J( p v2 v
- )
" @) m0 b( ?( Q) b% P - )
, L( ?, X8 `+ M! B& R; {8 j1 l; W8 N - 6 ]) @! e5 ?$ b5 [, ]6 c% A
- ;;
/ l! Q* S1 }! P6 p- I) f' E* f - ;; Common properties for all objects, r# \' u, v# y+ |2 x
- ;;9 z9 G! ]1 A: J2 v% x
- (defun set_tile_props ()# ?; D+ l' N7 f7 O3 E
- (set_tile "error" "")! I; q! i" m/ x) y8 O# s
- (setcolor)
+ \$ d T9 u) |- R - (cond
7 n$ Z" v# D# I0 ?: t l9 ` - ((= eltype "BYLAYER")/ m1 }8 x0 j2 |- Z/ L
- (set_tile "t_ltype" (bylayer_lt)))
$ T6 s1 p! Y( w) w f2 u9 D - ((= eltype "BYBLOCK")8 g. |5 x* v; x. W$ l. Y
- (set_tile "t_ltype" "BYBLOCK"))
! h& Q) {% [' i - (T (set_tile "t_ltype" eltype))
4 Z& U2 H @ O, m0 E9 x - )
( o* T8 E9 f" M/ G, H% J - (set_tile "t_layer" elayer)
+ J/ ^ H& y' x* s1 D3 Z, Z - (set_tile "eb_thickness" (ai_rtos ethickness))3 c2 W l8 g: Y) w
- (set_tile "eb_ltscale" (ai_rtos eltscale))# x. k: p( r6 r* A- y5 e. |( |
- (setq which_tiles (ai_common_state etype))
7 E. ?$ u4 l% ?; L - ;; Disable tiles if need be...
' H t$ Q( Q) x
5 L2 v: J+ z8 R( }0 I, P% M }- ;; Layer Button and Text Field
U" f/ O" G2 M W/ m2 z2 i - (if (/= 1 (logand 1 which_tiles))! _! x. P: ?3 r* |$ { X4 p
- (progn+ }7 n$ w z$ V, K) L& v
- (mode_tile "t_layer" 1)5 [, ]% e' f& n/ x% n! O
- (mode_tile "b_name" 1)
) I' J: |5 _0 \/ d2 G/ O - )0 |6 ?0 A: i% W" K; m- @
- )6 Y& `" _; f4 y1 o
- ;; Color Button and Text Field* |$ t: \- p, Y9 B3 [% n
- (if (/= 2 (logand 2 which_tiles))
$ y& |4 x+ d' ]: O( J( F - (progn
8 z, q m- S4 P0 d2 F7 E0 j9 q! g - (mode_tile "t_color" 1). ^8 S0 n+ G2 K- f% t
- (mode_tile "b_color" 1)- _, X6 c T0 s8 \% q
- (mode_tile "show_image" 1)
8 G4 ~' y8 o/ x+ A% p- v - )
; S% G, S- P# t6 g4 U" K - )
/ m: s& \: {" M( n$ s# Y6 j* _6 ` - ;; Linetype Button and Text Field
* F W+ z( f, ?: I' G# I2 M - (if (/= 4 (logand 4 which_tiles))
( h \% [8 C) } - (progn( ]2 t9 q7 T* [) o* K
- (mode_tile "t_ltype" 1)
) h0 S7 q. G1 v% `* {* J - (mode_tile "b_line" 1)3 u3 s$ m( Q) O- D+ [
- )& ^: w0 f0 Z6 g
- )
* u2 p, |0 n* e- ?2 { - ;; Linetype Scale Edit Field
; |$ R2 O8 ]% l, K: v0 v5 K - (if (/= 8 (logand 8 which_tiles))# N* m b, J2 B) }( }
- (progn! l$ U4 N9 Y9 Q7 Y! _
- (mode_tile "eb_ltscale" 1)# \6 v% E, f& \6 Z! E$ P% R$ W
- )5 C- Z5 C( M1 g9 t. u* u2 e% f
- )8 o! ~2 F8 h% T! ^/ Y# a7 V( v) V8 Z
- ;; Thickness Edit Field.
5 E" u2 d( I1 O" a) t9 A4 g - (if (/= 16 (logand 16 which_tiles))
8 N' k O# |" Z, K( B - (progn
' w' E- V$ f3 \$ K# y4 J5 V - (mode_tile "eb_thickness" 1)
' {( z9 s5 \' e0 t6 N0 u% D - )
$ E6 r5 b4 {% F6 p! Y1 `- s. l; r - )! _; F3 S5 g: M: C \2 k* B
- )
/ Q3 \5 M( A. T( e- }) d5 V - ;;
7 @+ B$ o3 M4 T* b - ;; XYZ Point values for all enitites
2 V, p8 M: U/ M& c& P% X - ;;
0 H3 ?2 o ?3 `! d" v+ h7 X - (defun set_tile_pt1 (ptype)
- H( ^. e* h1 B: Q& | - (if (= ptype 0)
' K1 t# `) x7 _ x - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))6 b7 s. A% S: k4 h( p% H) c7 U
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))3 f! R8 W' s7 J" R5 C/ k# o8 l. m& V
- )
; {9 b' s0 t$ c - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))( Y# V0 P) R* J) L
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1)))); h3 o% \* ]# _; h& [
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
; o, B G; L0 ^% q, T - )! y, k) p$ ]4 q# q& d
- (defun set_tile_pt2 (ptype)9 P8 O) X( w- Q' c/ N# P- m
- (if (= ptype 0)# J( Q8 n l" y# t3 Y( [
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))) i: }' ^$ j5 i$ h; d
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))9 [. h. F" E- I3 s
- )+ J4 Q4 D6 U; x- O- {
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
$ S& N" g; x: A! Y0 I$ D - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
# A/ A& D. E4 [6 l2 P( c! {8 i - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))6 \$ f, _) Z( i" h) e
- )- r; y' J D8 }, K1 V
- (defun set_tile_pt3 (ptype)
4 N) L2 ^, V# S- b* F8 ^- ?- j* | - (if (= ptype 0)6 I R9 f3 A& V, l% O
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
e& y% q! T% @3 p/ g - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))) c+ B% U4 D+ p$ ^
- )
& Y- h1 M! a6 D- n: b - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
# Y; ^' P2 d4 J1 R - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
) O# b5 j: [# k! ?; o0 t- R - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3)))). j; H/ Q, l; o1 n8 h0 j
- ) E# s2 g( L: ~
- (defun set_tile_pt4 (ptype)/ S* a; E7 K, t# N: d$ b
- (if (= ptype 0)
1 k- i) u" N+ m - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))) A2 i6 M3 s2 E, J x4 [) Q9 ~) m
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))+ Z( ?% v* c, z9 ~4 Z: w
- )
* T0 {: s2 c1 e7 U# Z) X: k Z - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))4 F# O2 x; M% L7 S7 U- b4 U4 ?
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))2 r+ \/ Q# a6 @9 B) _
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
" a2 i* o) ~7 _! ]. ]$ \: G - )
4 G3 O) R: ~% [ v7 W - ;;
- _0 \1 i" E% F3 h9 ]4 y/ @# W - ;; Xline/Ray
, a0 \0 Q# U5 E d - ;;
; M" w9 j' w% m - (defun set_tile_xline_pt1 (), u, S. K% \8 Y
- ( b- n2 C1 @) c4 d0 m4 A# N/ n$ C
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))) M$ x* M. H. k$ R- P
: s2 p4 y+ H$ _- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
. [, D- ?0 d/ N! w2 A( `& J/ H2 m5 E - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))$ l$ z- D, w/ l8 ?$ p: o$ \/ w" v- B
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1)))): F" N' |4 D: n! ]
- )
( D7 i. i& X3 p+ M* g$ u - (defun set_tile_dirv ()& }& q f' {. u! [
- ;; Convert 11 group to local UCS (displacement)* r+ g+ o- j [1 P3 k
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1)); I( ?3 @) x' |9 A ]& H! a( m
- 8 d$ C ]. @3 I2 D
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
; {7 x" j) j; h ^ - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))' }; J, N8 K% ?3 D( h/ _$ l y
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
# c& V% J; |! z$ n) x6 E+ z - )4 z2 U0 P- H: d `- M- Y
- (defun set_tile_xline_pt2 ()9 y) Q- D3 U/ ~% w
- (if (not xline_pt2)
9 O* ~' Y) h P7 W# p - ;; Initial second point is Root Point + Direction Vector
1 ]* h: }/ L6 c7 | - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))6 \3 k2 y& Y" R' i
- )
' H1 U- \8 u4 {; m$ |2 E - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
9 ]8 J y; }) d2 R6 G - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2)))). A% a, e! y6 {! m+ H
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))7 Z+ a/ O: _8 Z8 f
- )
" E& c1 g( K' Y4 a* d0 s
: L/ _# G2 b6 O1 |5 O: [# S) n( }- ;;
2 B# B- M3 m5 U; T" o - ;; Handle for all objects: `6 m) a# U9 P( q, G$ T( Q" S
- ;;
% n5 @& u+ w. J - (defun set_tile_handle ()
' p; z! @. b% t. n- a( U. E - (if (setq hand (cdr (assoc 5 elist)))" z2 A2 M4 {. Y9 D
- (set_tile "Handle" hand)' J( V; u& M& J& W
- (set_tile "Handle" "None")( x8 ]' K" F0 ~+ L; d
- )
$ |. K, A8 X1 g$ b% K, q& s - )! d+ e* q2 Z3 A' d4 c
- ;;7 c/ a* h d- w% Q
- ;; Radius for ARC and CIRCLE
+ p3 i# K' ?- \" ]% Y - ;;
8 ~+ y% x: }' L) B: A% W% v8 z d - (defun set_tile_rad ()4 P8 V9 a2 R4 _( B
- (setq radius (cdr (assoc 40 elist)))
1 `' p. ^* A# | W/ A L: | - (set_tile "radius" (ai_rtos radius))
: L% I4 W7 k2 p5 ]: e. A8 ~ - )# ?5 O! o1 L6 ^7 U8 a4 p$ f$ h
- ;; w( ^: e0 I' i+ D3 i2 ]/ n% D
- ;; Start angle for ARC* B8 @0 Z: x: d& u
- ;;
0 ?) Q' A q+ T - (defun set_tile_stang ()% M' y' Q w; B
- (setq st_ang (cdr (assoc 50 elist)))
/ r/ r4 Z3 l8 I/ b0 X& L - (set_tile "st_ang" (ai_angtos st_ang))' V! c5 V) \& f; P3 l- }4 V, V
- )5 N( `& ` s9 @! z
- ;;$ D$ E+ n+ c/ @' p4 ^
- ;; End angle for ARC+ f, L" r( ~# Z" p& J7 O
- ;; r0 ], U' s$ G
- (defun set_tile_endang ()
2 s4 a3 }. G3 j( Z - (setq end_ang (cdr (assoc 51 elist)))- H! P" b6 O0 M) L: g
- (set_tile "end_ang" (ai_angtos end_ang))/ C: O2 n( Y5 j# B+ M
- )
* ]: f9 Y' A' ^" v5 x9 `$ g. | - ;;" Y1 b/ n0 d7 W
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes( d( g y) T# P# D3 c' ^1 {& v/ w
- ;;
0 b6 l; H3 B* V& T0 r6 ]: K- H - (defun set_tile_rot ()
1 Y* K8 w* |8 B - (setq rot (cdr (assoc 50 elist)))
, ]7 ]. v. w9 J4 R* x: s7 e" _ - (set_tile "rot" (ai_angtos rot))
* [: k' F! K) l7 g1 y7 M0 Q - )1 K3 s2 ?7 o" @" ~5 ?8 a: G
- ;;
/ I) i7 K/ i( l2 Z - ;; Height - Text, Attributes and Shapes
- O; {8 y6 L* n7 T- Z- W) B - ;;
) v, H- ]* a# }. M( L - (defun set_tile_hght ()
: ?, g, J- X/ v6 }5 y( ] - (setq hght (cdr (assoc 40 elist)))
5 K, ?* q" r& \& \ - (set_tile "hght" (ai_rtos hght))6 I3 k. O$ Q: H/ R7 C
- ) p- _" s! D2 W0 d+ K
- ;;
/ d) B2 ?9 _! o - ;; Width Factor - Text, Attributes and Shapes6 f$ @# E) [) K, A; w
- ;;, k" t/ s; S3 Z7 W. ]0 P I
- (defun set_tile_wid (), P- \( b8 B% C5 Z- L9 p
- (setq wid (cdr (assoc 41 elist)))6 _! p' H! F1 ~$ A
- (set_tile "wid" (ai_rtos wid))
6 U' g# t3 a# J r - )
) j2 C5 c+ \2 J% U - ;;# T/ Y5 l( \" h, i! C
- ;; Obliquing Angle - Text, Attributes and Shapes
8 j* | q6 j( M) R6 M. T9 f3 @ - ;;
0 q8 t# v# f1 g% P J - (defun set_tile_obl ()5 c; Q! O$ k# B* K1 f8 C
- (setq obl (cdr (assoc 51 elist)))
r0 \' _+ u. o5 b/ @: k& R9 @ - (set_tile "obl" (ai_angtos obl))/ w O) |# U# a1 a
- )4 Z* S5 \- F# c. U0 ~/ C
- ;;
* ?$ [* k; W: x) A/ H* l - ;; Text string5 e( T. r: Q6 |9 Z4 ^. W$ q& P
- ;;
2 r9 d4 ^0 o+ D9 |# Z/ j: [ - (defun set_tile_text ()
5 o, s1 {. X# d( p- Y - (setq text (cdr (assoc 1 elist)))9 ?5 u+ |% ?+ a, t2 _/ H2 J
- (set_tile "t_string" text)' q$ P" H0 K, n2 ~3 A
- )
$ e5 ~, @/ U1 A6 ^' k) Y2 ] - ;;# h! G2 J; S h% w5 Q7 t
- ;; Attribute Tag
& d) s; f/ T: B9 Q - ;;
$ m" X! o- S) S; f+ G& ?) ] - (defun set_tile_tag ()
1 i% V* G0 h. T" M+ O - (if (= etype "ATTDEF")
# a* R2 M: t# r ^2 q- N - (progn; F% r4 ~7 f4 `$ T$ ] y e
- (setq attag (cdr (assoc 2 elist)))
! Y# {9 m: o8 P - (set_tile "tag" attag)9 T. q: P% ^" T- s% G8 v
- )/ L% @3 G$ T+ m# d, Y j
- )$ |- s" j! X- h9 w& F
- ): E! z3 j2 b( J8 K
- ;;
* @: n, {+ M$ H0 ?2 b* k5 {- X - ;; Attribute Definition
! N2 v2 r* e) ?, w' G - ;;
7 r* G' H' Z! c7 b - (defun set_tile_prompt ()/ _: N( \/ L1 y# u. }4 H7 W
- (if (= etype "ATTDEF")* b; c7 N E7 H1 J' _/ c B7 a* }
- (progn/ _% @4 |( m( Q, A& z6 d' b
- (setq atprompt (cdr (assoc 3 elist)))% d4 w9 t, _$ y
- (set_tile "prompt" atprompt)5 o9 P. x. m* L0 q: F) {; d- U
- )5 J: m" z* [2 u/ _2 b C% F* p
- ): |. c7 ]" I- f( w" a
- )+ Q+ u* Y! y* ?6 \. `0 g3 w) ^
- ;;2 i K! u( C; n
- ;; Justification setting for Attributes and Text. Initializes& g7 b- F' Y2 I+ A# Q0 w
- ;; popup list box5 G- P. `2 \: q4 ?* _
- ;;$ W9 u* E) r2 b% T6 a3 Y" H
- (defun set_tile_just ()
" b$ O2 t ^) v* A n - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
2 s' `- L8 g, Q# n2 L7 W - (setq va (cdr (assoc 73 elist))) ; vertical alignment t0 }2 H2 ], t( h3 [
- (setq ha-prev ha)7 }( j! U2 K( w# c: n8 a
- (if (= etype "ATTDEF")- U0 B6 r8 ?5 n8 j8 C/ N$ q
- (setq va (cdr (assoc 74 elist))) ; vertical alignment/ l, { e; o% C3 _* M
- )
" A# R5 z' \; W - (setq jlist
0 m4 k6 q5 q) Z; x. ~ - (list "Left" "Center" "Right"
# N4 Z. @* u1 F/ p9 [# h* P - "Aligned" "Middle" "Fit"
; h$ X1 t' q1 S8 `* B - "Top left" "Top center" "Top right"4 {8 m4 o. ~8 ]8 k v- M5 n/ `
- "Middle left" "Middle center" "Middle right"
6 Q# Z/ |! ~( a8 I9 n1 X! a3 V - "Bottom left" "Bottom center" "Bottom right"
: V' v0 b) A4 K7 V4 r - )9 {* V; X& Z) [$ _1 t
- )
' y \) \6 n6 z* }4 v - (start_list "popup_just")
; Z0 \* s) F: @0 l9 E7 |4 | - (mapcar 'add_list jlist)( |' Z) Z ~0 z6 U6 K
- (end_list)
0 W& z7 D' o7 q+ y; X, F - (set_just_idx)
! h2 E3 d$ C$ r8 J& F! O- V1 O - (set_tile "popup_just" (jlist_act just-idx))
6 `) f+ W8 G2 Y% C - )
t9 y7 x: N# r0 N* i8 N- H+ R - ;;
* y. O. L) V8 S6 D9 c - ;; Style setting for Attributes and Text. Reads symbol table for popup list
5 Y, ?6 C4 c/ l, \; f0 ` - ;; box.
' t9 b& r& W7 E r7 U - ;;# n; L3 s p; H, O9 C
- (defun set_tile_style (/ sname style-idx tlist): i- ^ t2 g& d4 g0 d0 X3 l
- (setq tlist (tblnext "STYLE" T)
3 q" [$ r( W$ O! i' Q/ R; y - slist nil)
* m% ?. |- q6 _ S# n - (while tlist' }0 x) ]# E, A) _6 {
- (setq sname (cdr (assoc 2 tlist)))* s- c4 Q$ F3 _4 l5 j! n
- (if (and (/= sname "")
6 x9 t' q/ K: k/ x; o# Z - (/= (logand 16 (cdr (assoc 70 tlist))) 16))
3 K9 H3 a1 U A7 f. {- A - (setq slist (cons sname slist)))
" F& h4 s( a- c* s7 S0 Z - (setq tlist (tblnext "STYLE")))
R' I/ Y! S: M5 b6 ]' \ - (if (>= (getvar "maxsort") (length slist))1 {$ |* g( X u; z2 F
- (setq slist (acad_strlsort slist)) ; alphabetize style list% \; O' b+ r( A# {: N
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
8 A0 T* b6 y9 T3 L+ i* F
4 J' p9 `5 G& |) l- (start_list "style"). ?$ ]0 X' D- p$ p3 N4 b1 c
- (mapcar 'add_list slist); ?+ |# ^6 b! b" |" U- U
- (end_list)
/ Y$ Q7 v& S% ?1 a! E1 Q - (setq tstyle (cdr (assoc 7 elist)))
5 I& `6 P: R( {' J0 l - (setq style-idx (getindex tstyle slist))
7 E. H& z+ H8 O& E - (set_tile "style" (itoa style-idx))
0 N. D2 C. C. D5 o+ ? - )
" h& l/ |7 A; O6 U- b- A; w - ;;
1 g& Y! o% R+ c* m% @' A - ;; Text and Attribute setting - upside-down, backwards' Y6 j! Q4 N, |( T4 k8 v9 ?
- ;;6 ^* P# Q& n4 K6 F4 c3 U7 N! }
- (defun set_tile_bk-up ()
5 q- m3 d/ t# } - (setq bk-up (cdr (assoc 71 elist)))5 u& b5 ~' x0 _; p/ W
- (if (= (logand bk-up 2) 2)
0 ]& D6 I$ ~7 [( e( L - (set_tile "bkwd" (itoa (setq bkwd 1)))
+ j4 }* l; o4 `( I1 Y3 r' I0 |, S - (set_tile "bkwd" (itoa (setq bkwd 0)))$ ?; e9 e) S3 k$ d# E5 P/ J
- )6 ?0 s; j& |/ \2 A
- (if (= (logand bk-up 4) 4)
+ z6 Y: ^- R6 ?7 c - (set_tile "upsd" (itoa (setq upsd 1)))8 B- N: G1 b: f* O+ C
- (set_tile "upsd" (itoa (setq upsd 0)))
+ R! l2 @$ l+ L8 _0 t1 f - )
& M* q5 J5 y7 A- V - )& n" j a" h, e% F& Y1 k
- ;;
w6 P8 C0 d2 s - ;; Attribute setting - invisible, constant, verify, preset; i! u: p% J0 c# U! G
- ;;8 W! j0 L0 e" @3 {! }
- (defun set_tile_icvp ()
W4 @6 b5 r5 S: c - (if (not (setq icvp (cdr (assoc 70 elist))))
$ O3 w9 C. l& @/ z# J x) _: K - (setq icvp 0)
' V7 _5 _7 G5 p; V+ g' E9 n - )- I* p, S: N- N& ^
- (if (= (logand icvp 1) 1)
& G B) x7 [# }9 d$ a - (set_tile "inv" (itoa (setq inv 1)))/ b; L( f# A# [! c, h+ Z
- (set_tile "inv" (itoa (setq inv 0)))
1 Q# X0 o' `! d; o - )- N8 q( L; E: u6 m7 M9 k0 N
- (if (= (logand icvp 2) 2)
5 E% T+ J; C) h2 @+ L+ V - (set_tile "con" (itoa (setq con 1))); j5 b( }7 G' T+ G: y! e7 u. p
- (set_tile "con" (itoa (setq con 0)))& N0 u/ d4 Y& v! k- o
- )% L1 D, k/ n' n k# k
- (if (= (logand icvp 4) 4)
+ }- M* r, I( ]- w$ S5 T - (set_tile "ver" (itoa (setq vfy 1)))
$ v" F& M- m3 `7 P - (set_tile "ver" (itoa (setq vfy 0)))
- F: m, E7 T$ s- n* ^ - )- i- W" I% h" R8 ]
- (if (= (logand icvp 8) 8)
* F* j+ m% M7 S. u - (set_tile "pre" (itoa (setq pre 1)))
: {6 g( S3 Z; B2 ?- T- i - (set_tile "pre" (itoa (setq pre 0))) L2 H% i1 g0 c9 e5 |2 z5 f
- )2 Z# L( X+ F/ _! W3 x% o( ]2 g# v
- )
( N. t$ m& H% a" a - ;;
. q) Q4 Y" k4 f# v0 e - ;; Scale factors for block insertions
% V" J, S$ T7 y - ;;
: Z" s- X2 b0 U3 ^9 f - (defun set_tile_scale (/ temp)! s0 l0 s `& {7 B
- (setq temp (getvar "LUNITS")) |0 o1 [- x! ]$ c/ K
- (setvar "LUNITS" 2)% c# s- U2 Q0 G2 Y9 Q
- (setq xscale (cdr (assoc 41 elist)))1 s; ]6 i2 D. \! I' \. E
- (set_tile "xscale" (ai_rtos xscale))
, q4 Q) K5 f$ _, m; d9 f' h F - (setq yscale (cdr (assoc 42 elist)))
/ Z+ p+ F1 {6 C" x4 r; z5 H - (set_tile "yscale" (ai_rtos yscale))
. m7 A4 E; m0 g; B } - (setq zscale (cdr (assoc 43 elist)))) A) N% B$ H, }8 h+ G( [
- (set_tile "zscale" (ai_rtos zscale))) b7 L9 o+ T b2 y+ l. h! X
- (setvar "LUNITS" temp)
) D4 H( ?7 v5 n6 I. ~2 ~! ~* s5 L - )
* a; | w; k4 A" R$ G4 Z - ;;8 g0 F$ [2 s$ O6 F3 r9 c5 o& A
- ;; Rows and columns for block insertions
" A/ Z# X1 Z: Y8 M( b9 Z - ;;
8 v! D" K) `2 e& ^; F- V* P% d4 Z - (defun set_tile_rc ()
j: G, L# p- o7 ~! s- } - (setq columns (cdr (assoc 70 elist)))
% p+ L9 Q4 J; H# ^1 r - (set_tile "columns" (itoa columns ))
2 i2 z5 u" W. g8 y. H L - (setq rows (cdr (assoc 71 elist)))
% K% V/ ?6 L% L2 _ - (set_tile "rows" (itoa rows))
- r" K8 L# R- J% H& } - (setq col-sp (cdr (assoc 44 elist)))* V* Z6 u; C* [- O* l
- (set_tile "col_sp" (ai_rtos col-sp))$ ?, U; y9 s1 h- j9 A
- (setq row-sp (cdr (assoc 45 elist)))3 g4 m- d# n% y
- (set_tile "row_sp" (ai_rtos row-sp))
" n9 B- f$ K |# f4 t( Z9 C - (if (/= hasclip T)( Q. h- y% T1 u* S5 p/ r, u% R
- (mode_tile "xcliponoff" 1), Z2 r* V5 P* t8 a! @ g: y
- (set_tile "xcliponoff" (itoa xcliponoff))
% \2 h ?$ |3 A9 A- [ - )$ ~+ U# C9 z. N
- )0 d5 ~0 w) p' V( m! q
- ;;* S0 b4 c+ X& W v! R
- ;; Invisible edges for 3DFACE
" e; y- f, c0 F2 m- ^, R - ;; B% d* j' ]9 M5 a; t" `4 d) G
- (defun set_tile_edges ()
) s: {& m6 w# f, c' m8 v& S% @7 q - (setq f-vis (cdr (assoc 70 elist)))
6 I2 Y# Y+ C+ m1 N+ I - (if (= (logand f-vis 1) 1)
. Z( H/ g- ^/ Q+ E& E8 \ V - (set_tile "edge_1" (setq edge1 "0")); x7 ~% K5 Y7 K3 h3 Q
- (set_tile "edge_1" (setq edge1 "1"))% D: t& C- p- M3 q5 K2 u8 a
- )1 G- i5 I3 r. S
- (if (= (logand f-vis 2) 2)7 f: F" s. i) ^ }- Q
- (set_tile "edge_2" (setq edge2 "0"))
. l) e* ^" K/ ?8 H9 C6 ?% O - (set_tile "edge_2" (setq edge2 "1"))
9 S1 s2 h S7 }; o$ R( o - ): ^, Y( L9 D( U1 A9 y4 h2 c
- (if (= (logand f-vis 4) 4)
) W5 d ]7 a2 X: H2 L% m - (set_tile "edge_3" (setq edge3 "0"))6 r! {0 @0 J2 R5 M9 m4 d- a* w' R
- (set_tile "edge_3" (setq edge3 "1"))6 M6 F# v, R' f) p2 M9 a8 N4 \" W
- )5 d# l% Y- I2 O8 c0 X
- (if (= (logand f-vis 8) 8)
- I0 c* Y. Z$ a5 N - (set_tile "edge_4" (setq edge4 "0"))
- Y i. O7 X \4 {: O - (set_tile "edge_4" (setq edge4 "1"))
{, j& A+ G0 G# _ - )
7 V, U4 J5 F4 f# ?- B# g - )( p) F" |7 r) f3 e
- ;;* [. y& m# M* ~: r* @' [
- ;; XYZ Point values for polyline vertex
2 M) Q4 {! a/ B8 t - ;;
& q* H0 G r, y# y - (defun set_tile_vpt (ptype)
5 O# Z' E9 n$ ]5 J$ l e - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
2 {+ ~; f+ y X$ r# l( M, z - (progn& H9 ^2 f/ X' t5 N& v
- ;; ctr is 1 based, vertices are zero based.
& g: X" Y& T. F% i0 X) \+ K) O: w - (setq vpt (cdr (getLwVert (- ctr 1))))
+ P5 q8 B: m; r6 U9 }+ D - (set_tile "xtext" (rtos (setq x1 (car vpt)))), C4 ^% \: u: R w7 R5 [. f
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
; o. u4 n2 P9 {; ~/ g - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))$ ?% ]: f- D, d" c. t. v
- )9 H( X$ }% y& r/ L# Q
- (progn. e# W, Q6 i8 I* i
- (if (= ptype 0)
. J5 J: C$ b8 G. g3 d8 l - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))1 L; r9 \" M' w0 ^5 i* V( Y7 H, `6 H
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))7 o+ J5 i- o' C
- )% H5 r4 N% a4 O1 F. g
- " Y& f% _0 C, Z8 T
- (set_tile "xtext" (rtos (setq x1 (car vpt))))% ^5 i' n% l g3 @ c/ c
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
8 _- t2 u. v) D - (set_tile "ztext" (rtos (setq z1 (caddr vpt)))) D6 W5 c6 B# ?7 x
- ), ]+ h1 U' h1 g) B) ?
- )
% Z5 o5 v' e: Q0 Q - 7 U( F. l) H& g! I) l
- )
( \: |( I# h! A6 S% o$ } - ;; This is the equivalent to doing an entnext on the heavy weight
& @3 r" w# K9 `! l9 {" s+ F - ;; polylines. The hard coded '4' below allow stepping over the
& O# o* w* y+ E - ;; 40 41 and 42 group code information. The while loop finds the+ G$ h/ d) X. o5 V' P
- ;; first vertex which will be used as the starting assoc in the& |, r( Y. e" O) n2 e, u; x2 O
- ;; call to nth.5 D% ~0 A# m9 R! S& V7 v% v: Y
- ;;
) S1 Z6 {+ }9 n4 Z8 U' m - (defun getLwVert (tmpctr / count tmp)
& p0 b9 M/ `, C6 `5 H - (setq count 0)1 q1 G! Z b' B2 W2 B5 [% O
- (while (/= (car (nth count vlist)) 10)
7 l; a w: f8 w- ?: A - (setq count (+ count 1))( ]# f8 q9 R; C2 z1 h i( h
- )
1 V! T: m! ?! M @5 J - ;; If the counter reaches the number of vertices,
* q9 Q% d6 @9 ~# M; j - ;; reset ctr and tmpctr to zero again.
# h" d1 g! i1 d, [5 D3 X0 f. P i - (if (= tmpctr (cdr (assoc 90 vlist)))+ w7 H5 y7 v+ a/ d7 a) {
- (progn
5 X0 \& D9 ?7 ^& f0 O6 c - (setq ctr 0)4 W; `4 d8 P, C8 E$ T
- (setq tmpctr 0)
- B0 ^; k, J' q - )
8 M! }8 k" k: Z2 x2 G2 y - )
6 t9 y2 l% P, K$ a& M: s5 r! t8 H8 k( ~ - (setq tmp (nth (+ count (* tmpctr 4)) vlist))
+ b3 o ~: a* y& W9 H - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
( p; [5 U6 O1 K' `- m/ b - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))5 E) ], } h$ o! W+ w
- (setq tmp (cons 10 pt1))
. L2 {' F5 H! H* E5 x9 X* H - (setq tmp tmp)
3 z9 Y% S$ ?# W% U% C - )5 u4 r& Q n0 y& ?( g) P
- ;;
! T# ]2 X" g6 w% _; ~ - ;; Set tiles for Spline properties. If the spline is rational then we) M5 j- e8 j7 z1 ~1 S# ~7 o6 i
- ;; need to display the weight values of the control points, so set8 B7 J* R% T4 o
- ;; flag to 1.
5 t# T4 t4 d0 \9 h; x$ Q, G7 s - ;; 1 = rational spline
9 d6 i0 \+ j6 t - ;; 0 = non-rational spline
9 W# b9 g/ [- j7 I: _ - ;;
1 M& ^: }. w' a. D { - (defun set_tile_spline_props ()
. E" [$ ^0 F$ ^& Q- e+ y: b - (setq rational_spl_flag 0) ;; initialize rational spline flag
$ b7 n" S, f6 C$ ^; B - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
) o. O \$ K) B5 F$ V! | - (setq bit70 (cdr (assoc 70 elist)))
% @2 F% K! C. {, } | - (if (= (logand bit70 1) 1) O7 [2 N& z6 y, T/ w7 d
- (set_tile "SpProp4" "Closed")* @& m! y+ V- {5 L
- (set_tile "SpProp4" " ")$ L5 f0 @8 y3 c6 [ b8 G7 U3 T8 K
- )5 f/ g) P# p8 Y! }' |( }
- (if (= (logand bit70 2) 2)/ p- [8 ?4 E) l- k- \7 k3 y
- (set_tile "SpProp3" "Periodic"); N3 E0 G% K2 _% C2 F
- (set_tile "SpProp3" "Non-Periodic")
" }- i: Y! a1 d% u8 \) P - )
0 R; p1 A# K, u. e - (if (= (logand bit70 4) 4)
p2 c! L8 B) `' D, z* d - (progn
1 {4 f; Z# V. J) k$ D' T0 ^ - (set_tile "SpProp2" "Rational")1 k2 i2 E* F% \
- (setq rational_spl_flag 1) ;; this is a rational spline+ L/ `: a9 \! \. B3 f. N! f0 b
- )
% l9 t9 }1 {3 d; _* @0 v' g9 o" i5 w p - (set_tile "SpProp2" "Non-Rational")
1 h) [' T- M2 P1 s1 ^6 v" C - )" s: u2 z+ C* h W% P, j$ O
- (if (= (logand bit70 8) 8)
7 h) m$ W- Z& h( k! M. |1 {4 A: e - (set_tile "SpProp1" "Planar")
& v+ K6 _% R' A$ | L - (set_tile "SpProp1" "Non-Planar")3 z+ |# k' S: [# { t6 u0 d' {
- )
; w: R' J5 _* ?8 ^8 m1 m - (if (= (logand bit70 16) 16)2 Z4 Z+ i+ W: ?6 t. C
- (set_tile "SpProp5" "Linear"), b/ T8 `- U, ]8 C6 n( l2 O+ W$ f3 I8 U
- (set_tile "SpProp5" " ")
' H& I- B. P1 F- x( C$ M - )
& b9 x, B$ ^" ?+ t9 g( Y3 I8 r - )% @4 `4 Z) p* b& l0 z5 |
- ;;" U. i% O* b' x4 k, I1 e @
- ;; XYZ Point values for spline points, O$ r/ f- _- {- s: [6 f/ H
- ;; Need to account for WCS/UCS
( k! Z6 i4 R# U- @ - ;;
/ I. T. c& W1 ~% V0 F' d - (defun set_tile_cntl_pt ()
% g8 |# H! ^( |# q4 a - (setq cntl-pt (cdr (assoc 10 elist)))- K* V, F$ f$ z7 ^* A2 k% g! o
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt)))) _ P" [ ?* |# b( g0 f( ?
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
' q6 S1 a: P* G% r' }1 D. r# e' A - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
1 s3 ?' c2 F. L! e - (if (= rational_spl_flag 1) ;; if rational spline4 \" s3 n9 F K* a
- (progn ;; show weight
9 ?/ L+ @9 g9 y( T. L& o& C0 J - (setq weight (cdr (assoc 41 elist)))" C) d2 |) l; {; y, A
- (set_tile "weight" (rtos weight))" J6 [& j( B; O; `2 A/ U
- ) ;; else
4 C* b+ u2 d7 z9 p% B! O' D1 q; u4 _ - (mode_tile "weight_text" 1) ;; disable weight field3 L3 t: X; P8 W/ p
- )
, v* n7 v, ^5 E6 l/ r; t3 V - )
, q6 k9 x7 h0 B8 K1 D" b0 G" i1 I - ;;/ }; W# F- ^6 y+ \! M+ U" Y6 t& J
- ;; XYZ Point values for spline points
# o9 J+ E/ D: Q$ i4 u% r - ;; Need to account for WCS/UCS. k8 I: S: f( i K% B# {- G1 m
- ;;
H. V! _! @6 O: q; g8 ]5 B) ` X+ U - (defun set_tile_data_pt ()7 j& }; q% B. a' p r6 L" y" P" j
- (if (not (assoc 11 elist))0 x6 S4 ^9 z( @) V* s1 `. V
- (mode_tile "data_pts" 1)
. ~$ a3 c6 m0 [9 T - (progn7 n: L9 r, T5 {- @) r, {: _
- (setq data-pt (cdr (assoc 11 elist)))
4 b: H, G9 n, ]% }& G6 C$ ^ - ;; display points with current precision.2 M- m- O# d1 b9 y7 X4 O( ?
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))% R6 u6 Q& {- H. g( I/ Q1 S
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
' b; X5 ?1 \) h - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))+ M. H: l2 G% w# R
- )
D: Y) c0 |1 k6 C! d0 m - )
8 b4 s4 m, D3 I0 \) X) P - )
6 `) j4 c w8 u% c# K - ;;) o/ W+ s: F, F- d. Y0 z! t* P
- ;; Fit curve, fit spline, or smooth spline surface setting
3 P9 T4 q7 i7 M$ ?5 |7 N" d - ;;
- P6 }; {' B5 @0 d5 P3 | - (defun set_tile_fitsmooth ()( A9 @; [8 q9 p- _8 i
- (cond7 h5 r( P. H/ o* y$ S4 W7 a
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
, d X+ U6 O- @8 k- \" f6 a - (set_tile "none" "1")# u1 [4 {# u, P+ m/ O4 D
- )
6 T0 r; T0 x( q - ((= (logand bit70 4) 4)0 [6 k7 p8 e% f+ Y0 Z3 m
- (cond: k ?+ E- ?$ P: d4 q9 u
- ((= bit75 0)
/ \+ E6 N7 ^- h0 B+ ^6 h. b - (set_tile "none" "1")+ B _$ q. g4 f2 ?! A0 L. D
- (setq spltype 0)
s2 r7 }5 e" x" n5 c Y7 V8 K8 O# P - )
; B: v# r& a5 V3 c' p/ H - ((= bit75 5)& \. i6 b: u: _# |' @8 f
- (set_tile "quad" "1")
|' s. c) U7 c" Q# q- U - (setq spltype 5)
( C" {# n2 ?3 z' K - )$ ?) k# a, ?" S6 [9 m- w8 `: r
- ((= bit75 6)" h7 Q# y- Z/ r# }. e9 w
- (set_tile "cubic" "1")
`$ B/ J! c# A5 y- l0 L - (setq spltype 6)
5 z, q& ?/ \, w1 n+ q/ b& w8 f - )" z0 }1 T: ~. x' l# R4 D
- ((= bit75 8)4 n' ^+ a- u: M L3 w0 n. X: X5 l
- (set_tile "bezier" "1")
g6 |6 f8 N8 P3 n O - (setq spltype 8). d) }" k, a) n; |" O
- )& N. I, I, X( u/ c; j, L
- )
# q+ b' h( G8 [5 @2 Q4 B: X4 j6 W$ c7 @ - )/ ^# n1 |1 d# K6 o
- ((= (logand bit70 2) 2)( E4 B$ H# P* p/ @+ d! x% C% n
- (set_tile "fit" "1")
" y" c5 h h& E1 d$ ` - (setq spltype 1)
: L! D4 K( b5 Y: w - )* Y3 h! {5 _- y
- (T (set_tile "none" "1"))
8 n$ u) `6 x3 H9 {4 \ - )
: B3 N0 U4 K$ ]: U - )/ w q: y* f5 [% u4 T' m( G4 _& b0 j
- ;;; |4 m+ M* w S& _! L
- ;; Closed or Open mesh and polyline setting
, p/ W& G7 y- t' j: \' [; N0 b& j! K - ;;
0 F& z; b3 } l - (defun set_tile_closed ()
' h9 ]: ]0 z* O! r - (if (= pltype "3D mesh"), J+ N. J8 u K$ l0 ~# c X" c
- (progn
+ x6 V( b( \! V5 B% j - (if (= (logand bit70 32) 32)
" l" C8 S5 n# V4 I - (set_tile "closedn" (setq closedn "1"))
2 y: g" q/ T# s/ u - (set_tile "closedn" (setq closedn "0"))
) K. {$ `! [* V9 p! } - )
! g3 y: ?' n( W0 t- }9 Z) t - (if (= (logand bit70 1) 1)8 Z* C/ M6 W% U" X" k0 v! i" }; M
- (set_tile "closedm" (setq closed "1"))
$ p5 y$ u9 h; o D- x; Z) r) y' f - (set_tile "closedm" (setq closed "0"))
) `0 U" o- W3 J) c - )% q6 D. r! X9 |$ x5 Y( R8 Y! \
- (setq old-closedm closedm old-closedn closedn)
/ d, m5 p. p! w$ X8 L - )
" k1 S3 _. x8 k8 D! C* M0 J0 k - )
( u( L$ ?& k9 Y. l1 j, q6 n2 T8 Q8 B - (if (or (= pltype "2D polyline")1 K4 w6 P+ K) B9 P: E% x
- (= pltype "3D polyline")! C! L4 b# c4 X: H2 e5 y& `
- )
; @6 Y7 S; N/ b5 F( ~ - (progn
/ h' R) B/ y) J+ ~ - (if (= (logand bit70 1) 1)& m+ k8 [" `1 i: \% d
- (set_tile "closed" (setq closed "1"))
" E! z6 ~4 N) U) h - (set_tile "closed" (setq closed "0"))/ B5 T9 z# o: w. t2 u2 l$ `: ?
- )
9 V2 t* T0 M6 t( P6 k& y- n - (setq old-closed closed) A1 ?' G6 }' H- ^! C& t4 N# e
- )4 a. v+ ^: j1 f3 y1 G, d$ b! X
- )
+ S" k( z2 t. o# H) y' W1 w - )
" k3 i0 d O( d5 F8 H# u - ;; Set common action tiles" s' W# F6 z5 w z
- ;;
4 g/ N. W1 t* x9 T& @9 k1 N! k - ;; Defines action to be taken when pressing various widgets. It is called) S" Q# q0 J" I5 z
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
/ M& V0 o) d' f, {, E$ ~2 ? - ;; but defining an action for a non-existent widget does no harm.1 I& w3 V4 G9 C5 r# E1 ^
- (defun set_action_tiles ()4 u7 @6 r. o+ z8 p+ G
- (action_tile "cancel" "(dismiss_dialog 0)")
" X3 P5 K. f, T4 a9 ] - (action_tile "accept" "(dismiss_dialog 1)")' m6 N1 _! Y {3 {/ v
- (action_tile "help" "(help \"\" help_entry)")4 K/ G/ t4 C; b, o* o5 ], C3 L, N! Q
- (action_tile "b_color" "(getcolor)")6 L: N- N% x$ |
- (action_tile "show_image" "(getcolor)")
2 E7 N5 U1 d7 K) \& o. N - (action_tile "b_name" "(setq elayer (getlayer))")
/ r) x" x4 w7 u- ]) n - (action_tile "b_line" "(setq eltype (getltype))")& s9 p3 J* s; d5 d, I3 Y; z& X+ S `
- (action_tile "eb_thickness" "(getthickness $value)")
3 W: D8 _! i! o$ C/ w - (action_tile "eb_ltscale" "(getltscale $value)"), M9 k' j. I+ u' c# p. }, S! U
$ ~- v+ `/ ?, O2 o# @$ [- (action_tile "pick_1" "(dismiss_dialog 3)")8 G+ H2 K( n9 G
- (action_tile "pick_2" "(dismiss_dialog 4)")
1 G) k. D2 y% ?3 r - (action_tile "pick_3" "(dismiss_dialog 5)")+ \! A# X+ |6 O$ J1 O$ U9 W c7 E
- (action_tile "pick_4" "(dismiss_dialog 6)")! |- ?, P3 ?' w) V/ D j
- (action_tile "x1_pt" "(ver_x1 $value)")
' u% e( n9 L' h1 ]0 K - (action_tile "y1_pt" "(ver_y1 $value)"), @+ R' m5 z A2 l3 U) C3 ^
- (action_tile "z1_pt" "(ver_z1 $value)")- [8 n$ Y! Z5 l5 T* n* K
- (action_tile "x2_pt" "(ver_x2 $value)"): r) {2 O4 s7 X5 d
- (action_tile "y2_pt" "(ver_y2 $value)")( h1 G, R$ }- Z, A1 J
- (action_tile "z2_pt" "(ver_z2 $value)")
7 x2 b+ M5 ]) s- h5 T O6 L1 E6 p - (action_tile "x3_pt" "(ver_x3 $value)")1 p4 A( O3 D. _* V- G- @
- (action_tile "y3_pt" "(ver_y3 $value)")' s2 z t& ~( l( ~
- (action_tile "z3_pt" "(ver_z3 $value)")2 G, A+ q( }0 G$ _3 P$ f0 Y3 n
- (action_tile "x4_pt" "(ver_x4 $value)")
8 Q5 L% |4 }; P/ c1 ? - (action_tile "y4_pt" "(ver_y4 $value)") F, A: \; a* T$ D+ x
- (action_tile "z4_pt" "(ver_4 $value)")5 @# I1 t7 r, a: A v, H3 T/ J) V
) u9 \. a+ J+ P3 G% C6 N, M- ;; Action tiles for Xline & Ray* M0 I# v0 r* o2 u0 i
- (action_tile "xline_x1" "(ver_xline_x1 $value)")
# r! p, N4 A$ D4 o - (action_tile "xline_y1" "(ver_xline_y1 $value)")( P* J2 O$ x" y; ?. T: C
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
6 b; `3 C. r. Y1 B# f - (action_tile "xline_x2" "(ver_xline_x2 $value)")
9 E, C1 _. q( a0 Y6 d; L - (action_tile "xline_y2" "(ver_xline_y2 $value)")
; d- Y7 O$ b: T0 | - (action_tile "xline_z2" "(ver_xline_z2 $value)")- `5 L, P* V7 I/ j/ T7 \
# j* D0 _+ I1 e4 q0 p2 E: D& E- (action_tile "edge_1" "(setq edge1 $value)")0 h: e/ h3 T: ]) x( x3 W
- (action_tile "edge_2" "(setq edge2 $value)")7 G5 b" J. ~5 I$ |' M6 @9 a% ?( ^
- (action_tile "edge_3" "(setq edge3 $value)")
4 o' _/ r1 G# m5 R - (action_tile "edge_4" "(setq edge4 $value)")
- X! m" ~0 _8 {4 N7 e! P& O( m: }! y* d
, k8 `( F- z1 _8 y3 E( n* C k- (action_tile "radius" "(ver_rad $value)")0 o/ A7 e* D4 P2 z9 |5 x. w
- (action_tile "st_ang" "(ver_ang1 $value)")
3 P$ G9 h& I5 N; D - (action_tile "end_ang" "(ver_ang2 $value)")
8 }6 D2 Y& m- x1 l - (action_tile "end_eang" "(ver_eang $value)")' E' o, K8 r$ I9 \
- (action_tile "minrad" "(ver_minrad $value)")
( ^, L, F) g5 A* V - (action_tile "majrad" "(ver_majrad $value)")
( _# O" ^2 `+ j/ i! f! i2 d - ) ~+ r# e v6 f
- (action_tile "xscale" "(ver_xscl $value)")
) e- X# u$ N8 r/ L: Z, Z1 } - (action_tile "yscale" "(ver_yscl $value)")7 r9 U( ~$ s0 x& Q9 c2 l
- (action_tile "zscale" "(ver_zscl $value)")
6 W4 X9 x% q: p; p - (action_tile "rot" "(ver_rot $value)"): S t1 j# S% [" t/ t, V
- (action_tile "columns" "(ver_col $value)")( a5 r/ f; Q* j. c$ P
- (action_tile "rows" "(ver_row $value)")
. V/ F# @3 Z9 j" P* y% }# J( X - (action_tile "col_sp" "(ver_colsp $value)")6 O' Z! s: [! u2 B* N
- (action_tile "row_sp" "(ver_rowsp $value)")9 }" j' B- Z' }3 B% u
- 0 X; `: a/ l7 A6 p
- (action_tile "hght" "(ver_hght $value)")
; V3 z& r* {* V0 P- R) b# q - (action_tile "wid" "(ver_wid $value)")
& X' i6 F8 j# S) p2 g1 t - (action_tile "obl" "(ver_obl $value)")" y5 g% j: W# [, x7 }+ c
- (action_tile "style" "(style_act $value)")- C4 M) E( y5 W5 U8 r
; ]6 y6 i# X- r, c: U- (action_tile "t_string" "(ddgettext)")
/ u7 @- [; O, B! E) B, p; O% x - (action_tile "tag" "(ver_tag)"). Q1 z7 b% v; q8 L1 t, M/ X8 c6 @
- (action_tile "prompt" "(ddgetprompt)") R1 `( c8 A4 U
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
$ ]9 Z& O. S9 S$ `; L - (action_tile "upsd" "(setq upsd (atoi $value))")% V# T+ t( a: `" V) J6 l9 w, X' |3 f
- (action_tile "inv" "(setq inv (atoi $value))")
# ?( L. w% W, B9 k( g - (action_tile "con" "(setq con (atoi $value))")/ P1 ]9 E, S$ v# O& ~# T7 D- m; O
- (action_tile "ver" "(setq vfy (atoi $value))"). Z& q4 }0 a- _. u
- (action_tile "pre" "(setq pre (atoi $value))")
( O) G! `/ R, n8 \, O& V" B/ Q9 Q - (action_tile "popup_just" "(jlist_act $value)")% q( u6 R9 ^0 n: u$ X% v
- $ d: {6 y0 {8 Q7 T/ [' d1 z9 H1 l
- (action_tile "closed" "(setq closed $value)")
' D2 g5 H) c: O; W - (action_tile "ltgen" "(setq ltgen $value)")
. U+ \1 D4 s: }( M- k( f3 c - (action_tile "closedm" "(setq closedm $value)")
6 g4 ]$ z0 Q ^) x# I0 j - (action_tile "closedn" "(setq closedn $value)")
% ~6 L) N8 L' S# z - (action_tile "next_v" "(next_vertex)")2 `1 }4 S; G) W2 _9 V
- (action_tile "xcliponoff" "(setq xcliponoff $value)")
$ T' d; w: l5 z1 h8 f - 2 K/ y+ A$ l* E# L# s
- (action_tile "next_cntlpt" "(next_cntl_pt)")
, s0 T" P& z9 {+ s+ L% ? - (action_tile "next_datapt" "(next_data_pt)")
/ K5 V, O1 T2 \# ^$ e2 I" x
* J( j+ ^( r: R) L! F) ~- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
" Y, ?' A/ s- O - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")" y& S: W9 D) J4 D u8 |0 e
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
7 `3 Z. Z! h! z6 t& Q$ f. d3 W& w) @ - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))") i# N. B7 s9 G6 S% a; M
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
3 `& ~9 y" ]4 r - % U# K4 ?9 z7 C ? q
- (action_tile "u" "(ver_u $value)")# n2 J* Z: i$ D1 r# [/ g
- (action_tile "v" "(ver_v $value)")
0 D! a3 C. O3 O - )* [* S# r$ }5 D5 A) J
) [' a) `' I- \3 G) P" [) y- (defun ddgettext()
: v* n. W+ H" c. z: b1 M: ?* q - (setq text (get_tile "t_string"))
. k) x0 {# u& A - )) }6 o- q" v/ H* O0 Q& ^* Q! |1 r
- ; j" j. a2 o8 T6 F# `3 R
- (defun ddgetprompt()* s1 d7 T' ~) N. s1 E
- (setq atprompt (get_tile "prompt"))
; N2 M. L0 r' w% t; T T - )) ?" c A8 U8 N, T) c$ ?. x; ]
- 1 I2 j( _$ ]$ l
- ;; As OW doesn't support disabling of individual radio buttons within& ]: o5 X4 E; K& W) T
- ;; clusters, a check must be performed as to the legitimacy of the
3 B/ D1 o; h# F: _ m - ;; button pushed and reset if necessary., n5 h n! ^7 W" S" \) J! F4 r' w
- (defun radio_gaga (pushed). Z( l- `( t7 o3 N% T+ U4 J. _; C
- (cond
|) B* _/ q |7 e2 Q' {' T - ((and (= pltype "3D polyline")
; J# o4 o+ X6 H! [5 ~7 \8 i - (or (= pushed "fit")
! v. o3 m% m1 e% i5 f* F5 B3 Z% x1 i - (= pushed "bezier")
2 V8 j$ P8 M! P" N3 p2 B/ u2 B* i$ d - )
; k; G$ ?% J& l- l2 x - )! i e$ @; K+ j% c/ s5 q6 ]
- (set_tile "none" "1")
$ H$ p$ \: y1 U* ^ - nil
% P9 P1 \5 e! b" r - )
) J7 c6 k0 P2 V# { [! r - ((and (= pltype "3D mesh")' d' O ]+ F; ~: U/ ?
- (= "fit" pushed)
% O9 R, f: V# Z7 k - ). k% R, \2 Z1 m. s4 f( L
- (set_tile "none" "1")
9 W- `; i5 d* i6 l7 b8 ]' w. q - nil" U+ m+ k: w. R2 m: {* i- g
- )
* G" g" s: Z: |( p2 n - ((= pltype "Polyface mesh")- A4 W5 `- @9 F: J V2 _1 y
- (set_tile "none" "1")
+ L& n) p, O4 Z7 o" n3 S' H - nil
5 r4 J( c: N+ u - )6 a) F, [2 U2 ?2 m; C( `3 K; F9 F, h
- ((and (= pltype "2D polyline")6 [; O8 z6 g9 P# ^$ T1 C
- (= "bezier" pushed)
- \* K. @4 t0 i7 }1 j# R$ ~ - )+ J0 s3 { E9 a1 T, z" M
- (set_tile "none" "1")
6 f1 \4 C1 j0 C6 b- ?5 l3 c: i" g - nil0 A/ W3 j4 S. [' j2 K
- )2 A* d6 T* w, K8 H3 |5 {5 b
- (T)
3 T( c% O* h2 k - )1 q- E$ `+ h6 @! o- `2 h& k: J0 T
- )
( E6 {, L, h% @ - ;;
5 K; z0 N0 U9 w; f1 @) i+ J2 x9 Q - (defun set_uv (type_n)
: ]: \) Z$ |* L+ x- d - (setq spltype type_n)
* p+ d+ y- c% r& x) J Z9 a - (if (= pltype "3D mesh")# S# {7 F) e' C5 ~, c" x
- (if (= spltype 0)7 F6 |( p( u5 |( A- e) b
- (progn
5 H( E2 t& E' b1 m9 p: Q - (set_tile "u" (itoa (setq u 0)))
# r& Q" l4 J; x4 }4 h7 d1 F" Z - (set_tile "v" (itoa (setq v 0)))
1 {) H; p% n7 s& n% ` - )( Z2 Q* p8 ?1 e, e
- (progn) j. y1 P( r7 o- P
- (if (= u 0)
+ b' x. c6 ^5 R% g4 H! ~3 U5 U - (set_tile "u" (itoa (setq u (getvar "surfu"))))
2 S3 J- m% M6 a) o2 k/ u( U) N" R - )/ _' a, {0 c# O9 N" ~8 X
- (if (= v 0)
( X* J2 |/ ?5 V! m# h - (set_tile "v" (itoa (setq v (getvar "surfv"))))
* t+ ]# X4 Z# [1 o' a# l* F - ); n/ e& C2 @7 Z0 t, r5 t
- )5 f1 Z9 s' q& M, d" r" t6 c
- )& w) z. D* g# A% v
- )4 L) Z" W1 a$ l! a- Y* H
- ): c$ h0 b' U3 |0 q' v
7 c5 z- P! S% h% U# @+ @4 e' g- 1 a# [+ P N, j+ V
- ;;# ^, }* b A- L3 m. H$ x
- ;; Verification functions
. F7 f I/ }- u% A - ;;
$ R3 v+ L) o9 U" q- M - ;; Verify distance function. This takes a new X, Y, or Z coordinate or/ [& y0 ~7 f0 H& x
- ;; distance value, the tile name, and the previous value as arguments.
6 S9 u2 d4 n) I7 Y/ a" |1 p! I - ;; If the distance is valid, it returns the distance and resets the tile.
- A( ]/ ~: Y. c6 ^ - ;; Otherwise, it returns the previous value, sets the error tile and keeps
$ F( J. K6 x3 t1 N9 W2 e( y - ;; focus on the tile. Shifting focus to the tile with invalid value can) {/ Q2 f# Y9 A3 N$ t+ ~
- ;; trigger a callback from another tile whose value is valid. In order
" J. C B u! Y/ `! V! e4 n - ;; to keep the error message from being cleared by this secondary callback,# m1 T# m% l9 z' V- g. f
- ;; the variable errchk is set and checked. The last-tile variable is set
& W/ W! m* \; Y* {; _4 r: }) o - ;; and checked to ensure the error message is properly cleared when the0 |6 c6 ?: Z5 {/ \; G
- ;; user corrects the value and hits return.
; Z$ @, E2 M9 c8 m& ?2 } - ;;, W+ Y* }' W K& B4 J$ F/ u
- (defun verify_d (tile value old-value / coord valid errmsg)
1 e$ z1 h$ x% f$ C! s# E5 t" r# G - (setq valid nil errmsg "Invalid input value.")! R( N6 y n' A3 X7 O: ?) a/ `$ G
- (if (setq coord (distof value)); l" [& V" s& I/ K. C: W
- (progn" y- x& D7 I0 t, S, u6 \
- (cond
" S" l1 i, i; m8 V7 ] - ((or (= tile "radius")
9 ^) Q. n, }) V1 r; F' S - (= tile "hght")
) o# {8 u7 W( D- X - (= tile "wid")
/ E+ ]+ n7 C1 r* U - (= tile "majrad")
- ^. O3 X! L$ S( I( q/ d - (= tile "minrad")2 m4 X# V. k7 s2 Z1 x- E' f' c
- (= tile "eb_ltscale") ^" j. r, N! Y8 z- Z7 l
- )
5 J5 @( {8 l# K5 z8 X - (if (> coord 0)
5 Z3 y6 y# A; K" ]% ] - (setq valid T)
! X3 j+ o! b7 b9 o - (setq errmsg "Value must be positive and nonzero.")
, w, e; y7 i, L2 X - )
1 ]- O1 w: b- S - )2 x2 [; C W: F( b
- ((or (= tile "xscale")' k1 x/ A! ]0 @- j( x
- (= tile "yscale")+ Z# n7 o; d: ~ _
- (= tile "zscale")5 l# |3 u, L& C4 q; b
- )( j2 Y, y* s# Y# r: p3 x
- (if (/= coord 0)
c# R H) I/ F3 e9 E - (setq valid T)
B! C2 k/ R' G9 v - (setq errmsg "Value must be nonzero.")4 d4 u& a; U3 `/ S9 ?% o
- )! `+ G% v6 a3 P+ W4 X/ r
- )
6 }0 k* E; i/ h# m: A - (T (setq valid T))
) X2 m1 G- |- V8 e - )
6 y. d# e5 o- w& G, z1 ^& |/ { - )! e0 V$ G: v; _
- (setq valid nil)
7 m9 ]# W8 ]$ E - )
, r1 k0 Z( W3 r8 V, a2 D, U- d - (if valid* e! H( h. Q, P
- (progn
8 s( k. P) m% p0 s( c$ C' ] - (if (or (= errchk 0) (= tile last-tile))
5 c2 C# A4 r7 e - (set_tile "error" "")+ G2 T6 H3 i6 P7 x/ y! r! x5 }
- )
) Q; E* ?$ n$ O+ s O6 H - (set_tile tile (ai_rtos coord))
" u# ^2 v0 q. u) [ - (setq errchk 0)' R$ F. V* a% z4 }4 N, F- j
- (setq last-tile tile)
9 ^0 j& B p; g' F4 s - coord2 U% Y7 [/ Y- C
- )8 N1 M3 f/ c% C$ X8 e
- (progn
; U6 b3 t0 d6 m3 d6 @+ v' k- x - (mode_tile tile 2) ; Move focus to offending field: U" h, q! Z+ p+ _, i
- (mode_tile tile 3) ; Select offending text$ k4 n+ d& E8 ^5 w! e
- (set_tile "error" errmsg)
7 e6 P! Y' B8 z - (setq errchk 1)
5 t/ n, N) J% _, d3 A - (setq last-tile tile)* X2 m" W2 h, ~0 }4 E
- old-value+ r7 s, y7 B; V- T1 t
- )
& }! T. H# M1 S# _& x9 B* R2 o - )
# ?2 g4 T/ r; c7 Z. e - )1 ]0 I% h4 V# |% K' b
- ;; Function for Xline coord edit box checking.9 Q) P" V( E7 ^. v1 Q
- (defun verify_xline (tile value old-value / coord valid errmsg)* r/ X& ?' I4 q6 R: \ s; y% Z
- (setq valid nil errmsg "Invalid input value.")
8 t4 e' U! D4 I* L; t A- L# z- p - (if (setq coord (distof value))1 O/ W) ]7 K9 N$ p* A
- (setq valid T)
$ c. y) G/ d& T7 `! ^, c! O# A - (setq valid nil)
8 ^' u, ?: R& b% T$ I+ { - )
7 ~) Q7 [+ s! l1 ] C* B+ Q - (if (and coord
- @+ d, v* q, V' K+ f( _ - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )9 }$ ?0 o; h. e! d/ |
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) ): e b) S4 H: O& R
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ), \/ c+ \. m' \: e+ x0 M
- )( S$ I$ n' n1 J- ^+ G7 G# x( @0 h; L _
- )
- n' g3 S! u6 [* ? - (progn
/ W: K" f$ d( x - (setq errmsg+ v. d. f9 Y1 q$ V; i! J
- "The Root point and the Second point cannot be equal.")+ b/ `. {7 S& b: O/ A
- (setq valid nil)
: I& ?2 j& l$ m! l! ]. \ - )* w6 H {1 @$ g) ]. I
- )
2 l; e# K- I, N! I& S3 @1 d - (if valid
; m: ~ ]* A! v - (progn7 s( D' P O- c
- (if (or (= errchk 0) (= tile last-tile))
) g2 P# V2 S6 L4 e' ~ - (set_tile "error" "")
7 B+ o. R: l! e% S, O, b! _+ G - )
) S" |' [) A: `' I - (set_tile tile (ai_rtos coord))" e1 s" b4 ] ?3 h
- (setq errchk 0)
- x- A9 V6 }& C1 ]( M: T- W - (setq last-tile tile)" s5 B" e( O4 B& \& O% O6 q
- coord" A* g1 h3 |% O( I
- ): q+ `2 E$ k% p: I0 y+ N
- (progn
/ o- p( w+ ^8 [ o) S5 ~$ O: w - (mode_tile tile 2) ; Move focus to offending field8 ]( e. T3 i6 U# W) I0 ]+ ~" v
- (mode_tile tile 3) ; Select offending text
# a2 W- h- d* H3 R" y) h+ D - (set_tile "error" errmsg)
$ r6 U1 M# f U) G& G - (setq errchk 1)! l# n6 t7 m: W& N, ?& [% z
- (setq last-tile tile)% @7 q( P: [5 H# b) F9 y
- old-value
8 a- { d! l% g( Q' Q3 r1 y - )
9 ^. A" ~- \, C: Y$ |6 f* F& U - )
! r# R5 }( w/ e: B7 D% {7 G - )* X( @% L0 |5 q+ F& o
! P" q7 ~3 Y. e9 {- ;;3 k' J1 b9 l) k8 P1 O! J
- ;; Verify angle function. This takes an angle and a tile name as arguments.7 e# b( ?7 n* x
- ;; If the angle is valid, it returns the angle and resets the tile.0 i* _7 {. U3 d3 C. V) b+ ~
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
, j+ b) p: k: G. E - ;;( X- r' M$ \6 o/ \" z
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
6 g5 \& J3 Y; Z9 {: W. ?) r - (setq valid nil
{4 w- k* |# r e7 h! Y/ T3 N - errmsg "Illegal input value."
0 m: u$ _6 L4 X1 S, a' ^ - )' K* a! E9 k" t; @, g. l3 b
- (if (setq ang (angtof value))) q. O$ R0 X" p9 ^, E
- (cond
8 `( C7 N6 ?! Y* a/ W - ((= tile "obl") ; Restrict obliquing angle
3 D$ O* e, }& H1 b7 O8 M - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
' O# o( K3 A, N- ~ { - (if (or (<= ang oblqmax)
) h9 s7 W( B% Y8 c* [' E& z3 [ - (>= ang (- (* 2.0 PI) oblqmax))
% r+ n. `- V3 A$ @* d) t: d - ) p& t( G+ V3 s$ m" q9 V, c& r+ i7 ], X
- (setq valid T)
) q& T1 c# w* s' Q. l7 Y& B5 w/ Y* r - (setq errmsg
9 ]8 q2 B& ?. X9 g& r - "Value must be between -85 and +85 degrees.")
9 M* Q# v, i! P7 o, O | |1 M - )) q- c i5 |# K5 Z! T
- )
# i) f4 o% Q9 y0 V - (T (setq valid T)) ; Other angles not restricted$ ~4 `" w* @% ?; A
- )
9 \' L+ d1 {6 N! y; b - (setq valid nil) ; Invalid angle input9 X" m& ]: l3 S" \* d9 C" ^: ]
- )
; `, H" i; D/ Z: ^ B8 | - (if valid
% n! J0 d5 t8 w1 m - (progn
* K5 u7 r" A7 A6 g* B- D - (if (or (= errchk 0) (= tile last-tile))$ a, O A: v, `# H
- (set_tile "error" "")
- [* l# b2 H, E/ D9 i+ |# m; W - )+ w- H2 }" p* R' G% G5 c+ J
- (set_tile tile (ai_angtos ang)) C# A6 M, e) x. u
- (setq errchk 0)$ ^# V1 V7 G: P* |
- (setq last-tile tile)' }' w3 ~; _5 w
- ang8 C* [1 P- o9 \0 Y. ?
- )1 I6 v6 k2 w |: v. T3 G
- (progn2 b' g/ ?, C1 U" A9 V% p) E
- (mode_tile tile 2) ; Move focus to offending field. V) J* Y- O1 _: T. u7 R! d5 B7 U7 y# B
- (mode_tile tile 3) ; Select offending text$ w3 k, b0 K1 a( a0 B) j. f
- (setq last-tile tile)9 q" `4 y7 S2 J4 q" Z
- (setq errchk 1)
9 H0 p1 [9 P' b ]! S9 `6 d - (set_tile "error" errmsg)$ u5 `9 D. u( `! o, I9 m
- old-value
" ]: g# l X+ a2 P4 M$ t9 N - )
( L+ ~. O/ d: Z. E* z9 {: f& E - )' S2 |$ k( A' S/ R7 g% u! Q+ n7 ?
- )
3 o6 ^6 } ], y9 G" s - ;;
( D$ f( @2 _6 v$ A - ;; Verify angle function. This takes an angle and a tile name as arguments.
1 ~, r! ~ C1 A5 i% s - ;; If the angle is valid, it returns the angle and resets the tile.
( |, k# G+ y6 e& ^ R - ;; Otherwise, it sets the error tile and keeps focus on the tile.
: ~+ [; i* [8 x; q1 L8 r - ;; This function is specifically for the end angle of the ellipse object. If
6 d% \: W# y9 A' n! B - ;; the end angle resolves to zero then we want to display it as 360." L- o* v/ `) G
- ;;
' j# y0 O# `% `/ z8 `5 e% i - (defun verify_ae (tile value old-value / ang tempend)
) x7 r" X7 G' J( t% B - (if (setq ang (angtof value))8 f/ i# _" G3 i6 j. T
- (progn
# \5 A5 N6 N. `9 `# n; b - (if (or (= errchk 0) (= tile last-tile))- @4 _+ H, X" b: C
- (set_tile "error" "")
* f) j" D u$ z! B2 H0 A - )
B1 Z5 u* t4 Z* [4 O1 ` | - (setq tempend (ai_angtos ang))2 Z' T: T! s! V9 Q; f
- (if (= tempend "0")
" R7 U* B4 t" W% z3 y+ g - (set_tile tile "360")3 A/ i3 C% h7 \& R1 W: }, }; T
- (set_tile tile tempend)
# R h9 t, M; c5 W% x; u" N* @2 v - )
6 }; H, y, Z# a6 M - (setq errchk 0), E9 P. z0 E+ a! n2 O0 Q3 v4 x
- (setq last-tile tile)
$ |! D; R- U8 l: D: z$ I - ang4 ?/ R" ~; X7 Z; l! Z2 @$ k
- )8 R9 c& D5 y7 V- u+ t
- (progn
2 w# `+ Q6 h7 d* S. ]+ f: ~ - (mode_tile tile 2) ; Move focus to offending field
' U) v, ?% c, k7 K. a; r3 \- s% @ - (mode_tile tile 3) ; Select offending text9 Q( c4 h2 G; D( }
- (setq last-tile tile)
( x) { j6 `7 M: G7 S% ^ - (setq errchk 1)
- l2 o* r3 o, G7 ]6 W3 H - (set_tile "error" "Illegal input value.")
* y6 ]9 k# o$ x& h - old-value
, ?4 T( v/ N% ]* D( f4 c( [ - )% K6 y1 B% r4 W8 X5 ^
- )) Q; c* a0 D- n3 s
- )
2 m* @. w& q; J* v' x - ;;% Q' S3 Y: x1 X
- ;; Verify integer function. This takes an integer and a tile name as
) K X: @. {# L' i - ;; arguments. If the integer is valid, it returns the integer and resets the
! z% y' j, N9 I d5 {$ k. U! H, X - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile., |9 p7 }- j. K" s, G
- ;;
6 @; S' L6 X3 i/ a' J1 G - (defun verify_i (tile value old-value / int valid errmsg)
% T9 o; r, Z4 x( C' ?5 s2 U - (setq valid nil)
, y2 X' E5 S& K5 x. u - (setq errmsg "Value must be an integer.")( K8 d3 d' e4 {. \. e( f2 T+ l
- (setq int (atoi value))! B7 ~7 h3 h" X5 T( b
- (if (setq intchk (distof value)); ]1 J7 j1 f# n/ d% {/ |8 O7 N
- (cond$ F' i9 F! S0 Q# v i2 ]) i
- ((or (= tile "columns") (= tile "rows"))
. J3 S( F' ^2 M% [/ l - (if (and (= int intchk)- K( I: |# Z) w* \! _! U% ?& A
- (>= int 0)
" g, }# t4 X0 A - (<= int 32767)7 e c4 I1 v; b& x
- )
/ `( P- r5 t+ v8 K, a7 y: v. z - (setq valid T)
1 G" _$ ?9 H5 B! S" t5 v4 Q* o8 h - (setq errmsg "Value must be an integer between 0 and 32767.")
, E g7 G" ~0 A# _0 p; K1 k - )
- d+ O, X) g7 W& D2 U2 W1 d& S - )4 m* M: u& K$ d) c; F
- ((and (or (= tile "u") (= tile "v"))), P5 j+ R8 z- T4 U1 x
- (if (and (= int intchk)" d G. V0 E9 \& m( m
- (>= int 0)
1 c$ a1 y4 t9 _: Y: c- M - (< int 201)
3 K w1 C4 _7 j1 W- ^ I6 B - )4 K3 E8 {1 t. E0 U6 m
- (setq valid T)' ]8 s* x5 C, j- w3 ^+ k
- (setq errmsg "Value must be an integer between 0 and 200.")
9 M/ B) G$ v; f) W$ E7 h j - ): a7 u) t+ F+ h' T7 W1 h1 H
- )1 l1 }. X7 p% d
- )( o# |5 N0 M0 A1 L9 q
- )
/ y& e5 u- t/ C0 F0 z4 p6 \ - (if valid
/ a/ G4 R& i- B; k3 a6 @3 Y - (progn0 ]" R% n' w. K, |
- (if (or (= errchk 0) (= tile last-tile))% H* e3 X E* Y
- (set_tile "error" "")
$ s9 O; A8 y: ^0 c4 z: o5 y - )
( }5 J% v+ P) [7 f; ] - (set_tile tile (itoa int))
& _/ ^( `3 c6 d1 _8 r - (setq errchk 0)
; q9 v# F' Q0 x. C) X - (setq last-tile tile)
/ z! m& A. X4 h( M% p - int$ @: {3 i* B' s! C6 ~- B! t
- )
: \, q) [% H: {6 E4 ? - (progn
: g; I: b& | V; V' g - (mode_tile tile 2) ; Move focus to offending field
# I& {/ \% C4 \% }6 x3 X d8 b" i - (mode_tile tile 3) ; Select offending text( m: q( u- w- y9 |/ q6 {; v) o
- (set_tile "error" errmsg)
: D0 z' j- F# f# p3 k - (setq errchk 1)" ^, e+ Y2 V6 ?! {
- (setq last-tile tile)
: y6 E( F+ i9 p3 E& A - old-value; x* s ]" n; S: [, \3 G, j
- )2 D5 P9 T% z% ^" p! n
- )
9 q' \- H; J7 o1 y4 ?* X7 D% T2 M - )
0 b) R! d+ O! }; s' b S - ;;: E8 A, \# ~3 l/ \3 n& C
- ;; Functions that verify tile values for integers
# B# k; V* u- I, ^& v2 H& ] - ;;
4 K& _ g: `2 `/ p1 h/ M - (defun ver_col (value)
" s' I8 w$ ]' _ o - (setq columns (verify_i "columns" value columns)). C y$ _) B2 `2 C! S- U/ I
- )
0 Z5 M2 `8 g+ V. v - (defun ver_row (value)
7 I0 b' e3 v0 P/ C6 g- z2 m - (setq rows (verify_i "rows" value rows))
: V, o, n% l$ R+ L# z - )4 |- T; T5 Z( g1 e' W
- (defun ver_u (value)2 P G" t% b4 L8 Z
- (setq u (verify_i "u" value u))
! a9 c. f7 u7 Q- e1 Q* q - )
" O9 q! `' Q4 S: T- y7 ] - (defun ver_v (value)
5 Y8 ~: M4 ^. l, b5 r9 k5 N - (setq v (verify_i "v" value v))
7 t1 x4 K" U" ^% v+ _* _/ T+ b - )& g, f5 Q" N7 w& r) ~2 {2 x
- ;;& Z: b* T. W3 ]1 X! M% {
- ;; Functions that verify tile values for reals9 r) e7 k0 x5 v; b
- ;;$ X% U8 }2 H; B7 l4 j- t4 @ {) m
- (defun ver_x1 (value) O: Y2 x y6 a& z5 q
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))9 ?- o* e- o9 y7 z# X
- )% T# Y& }7 K1 C' s7 ?3 W8 e# U* P% ^
- (defun ver_y1 (value) h) S' \/ H9 J4 f3 U
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))) A5 L: p/ e0 a& u4 @7 Y* L1 k
- )6 m( v8 M' E) B$ A
- (defun ver_z1 (value)
3 d, H; F* C& E! ?( R! i/ P - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
% F# Y4 A! L& d9 g. T - ) R4 o. W7 |5 `. B! ^- a" q
- (defun ver_x2 (value)2 R" M s/ `! O0 P
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))( [) U* G8 H ~" N# Y5 e
- ): }2 I) A9 q2 i& u+ z
- (defun ver_y2 (value), p7 Y, |3 Y& r; l( _
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))- o; M2 ]& X/ T, D
- )
7 W J# d$ \ s& b2 v. \) m9 a. } - (defun ver_z2 (value)
( e6 y+ F; s, P2 O - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
. L( b5 c2 C" P - )
1 x' o& P D8 u4 g8 k - (defun ver_x3 (value)& t6 l5 ^7 {) p4 Q2 M+ Y
- (setq x3 (verify_d "x3_pt" value x3))0 F* m4 v M9 c# `4 e4 A1 _9 l4 \) {
- )
: Q$ F3 n& K; R6 d" H7 \* a - (defun ver_y3 (value)
# O/ A3 }$ f# [# q9 Z! r! |/ T6 p - (setq y3 (verify_d "y3_pt" value y3))$ h- M4 N% s! x `2 s( ?
- ): ]6 I+ |- f3 Z( j2 G" M
- (defun ver_z3 (value)) T8 d. [5 e# ^& H0 B
- (setq z3 (verify_d "z3_pt" value z3)). n0 f3 Z z7 K' T1 [& X
- )/ M7 |1 P$ g5 M3 p5 A5 g; F: u
- (defun ver_x4 (value)
5 ]8 ^! L' j6 N5 w+ F7 f - (setq x4 (verify_d "x4_pt" value x4))% v9 _* o* U# p
- )
6 i2 l/ R0 P9 i8 {2 ] - (defun ver_y4 (value)7 k+ V B2 m9 t e! u" W; h
- (setq y4 (verify_d "y4_pt" value y4))9 S9 z8 }0 c% s6 ?
- )
! ^2 C8 W9 v k8 G - (defun ver_4 (value)3 `9 }: ^0 p. Y( b9 v
- (setq z4 (verify_d "z4_pt" value z4))0 G0 l+ I2 f1 ]" T3 E2 z; K
- )
" B, z+ x$ z6 y$ |! U9 K - (defun ver_xscl (value)
" B+ c. \7 h9 A! w4 L: x5 T+ f - (setq xscale (verify_d "xscale" value xscale))- X A9 s! {: \; _+ ]0 I" Q n
- )) A+ X& r; J% |: U' N
- (defun ver_yscl (value), i6 W8 S1 x5 M. a6 d
- (setq yscale (verify_d "yscale" value yscale))
, c* y0 C+ x; g3 I! b$ I - )
% V: t+ ^$ J( F& p$ I - (defun ver_zscl (value)
4 I) G o& m) h1 Y+ \4 b - (setq zscale (verify_d "zscale" value zscale))
& i' d- y( x- } - )
1 o5 Q: Q9 {+ s" S* F2 x3 `* R - (defun ver_colsp (value)
& k. s5 _3 C( L1 E' } - (setq col-sp (verify_d "col_sp" value col-sp))6 O% j! N1 j; G' M, s# M
- )7 F \, V0 M( @+ \+ R
- (defun ver_rowsp (value)
! D- ?2 g; R0 \7 P% n% { - (setq row-sp (verify_d "row_sp" value row-sp))% H P$ v+ s0 i. i/ G
- )3 `3 m& |6 B, ^- j
- (defun xclip ()2 z0 _" \' H( k' ]4 D
- (setq xclipmode t). k/ E5 F/ H1 e, v8 \7 X3 @
- (if (= xcliponoff "1")' z3 b6 e; s7 m+ b& W
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
# m& g! x: ~8 Z1 s( A. V& N% T - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
- y' t) ?: B& E9 S2 S6 G! o' ]( r$ E - )5 w& A7 y5 M& ^' O; [% P
- )6 L2 H. n: M' o8 k* N* [8 ^
- (defun ver_rad (value)
* i, `9 E+ T8 M1 y$ A$ @ - (if (setq radius (verify_d "radius" value radius))
5 q8 C& s0 @- ` M* [5 m - (calc)
" P$ v+ z' i) u: [ - )7 r! d" f' B+ f- W) ^7 L; D) Q) }
- ), h, C' z0 R* V1 w8 z! J
- (defun ver_majrad (value)
$ ^" e9 [$ V* C - (if (setq majrad (verify_d "majrad" value majrad))
3 Q0 i3 o. y9 W7 S( K! j q% r( K- S0 ~ - (ell_calc_newval "majrad")
' m* O: {7 g8 }. F. s. N0 ^ - )
1 h! p6 `/ A! R0 ~ - )& s J1 |$ i: j- f( Q# B4 ?( T6 t
- (defun ver_minrad (value); e: c' P" [8 D, j. m1 b
- (if (setq minrad (verify_d "minrad" value minrad))
4 T! F& J5 q4 B' B - (ell_calc_newval "minrad")
+ b X- ]% ~! k8 X1 { - )! Y* u- n/ L( `& E) z# C6 |
- )
# @3 i6 ~3 _, i- u# c - (defun ver_hght (value)' _$ f; A8 ^& Q* I2 Z
- (setq hght (verify_d "hght" value hght))
& E' i8 [5 r) \6 h( u& P. g& Y; O% G - )( P( O- Y5 `3 l5 I
- (defun ver_wid (value)
9 f' W3 @; O/ @0 e5 y - (setq wid (verify_d "wid" value wid))
( |$ B& b9 i: h+ d; J# m' f2 e - )" h( t/ D$ g6 {: X
- (defun ver_xline_x1 (value / temp)3 p% e# e* x# E# J
- (setq temp xline_x1)
1 e% J! E+ C; [3 k' H4 U2 Q7 P, N - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))2 I0 P2 u+ ]+ i- | f- U3 ?: V5 n1 K1 L
- (if (/= temp xline_x1)5 n8 Z9 J4 d' } W9 _
- (progn (modify_xline 0) (set_tile_dirv) )( `7 N! H- {8 ?! \3 `4 w
- )3 l( \; A+ x3 z& s5 l# K' a
- )
& ~ K$ z- I! K7 f) p1 q - (defun ver_xline_y1 (value / temp)5 u% W# N' k% A9 _( f% y0 o3 |* y
- (setq temp xline_y1)8 r: L W4 w/ [% M
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
( `7 h* L& n# w8 o6 K0 W- n& _0 o - (if (/= temp xline_y1)
' U) f! W( G4 Z( z* g - (progn (modify_xline 0) (set_tile_dirv) )
/ T5 V; W' s7 e! v9 r1 s8 ? - )7 [) e* ~ ^4 l$ E" @# z% o
- )
, X+ j5 c6 P3 X1 L0 o - (defun ver_xline_z1 (value / temp)) [! t+ E/ ], [0 P# @7 D6 c
- (setq temp xline_z1)
9 v8 a+ c1 D; f$ V* s' ~' l - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
3 b8 c- Z Z0 d( A% N - (if (/= temp xline_z1)& g6 x$ _! U6 v* H0 p7 | X
- (progn (modify_xline 0) (set_tile_dirv) )3 y; M+ ~$ E. O1 i
- )
3 i( ]- J2 E0 b @ - )0 A* ?* }. j. X ~3 U
- (defun ver_xline_x2 (value / temp)
! n9 z. ?) q- L - (setq temp xline_x2)/ l7 n: n6 Z' u* s0 ?8 ~% O
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
# ]/ w! K* _# I$ d0 P - (if (/= temp xline_x2)2 G% C0 D& L% ~; l3 n3 e
- (progn (modify_xline 0) (set_tile_dirv)) Q& M9 U8 g! p0 N! D W1 M
- )5 \" g* k! i, G+ D
- )0 \8 S" _* ^7 }* W
- (defun ver_xline_y2 (value / temp)/ s% x% G, }7 \0 g( e5 V
- (setq temp xline_y2)
% r# L% o6 \7 `0 H - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))( h! Z. n, b; i
- (if (/= temp xline_y2)( ~* h6 ]7 Z( F3 ]* E/ N( V
- (progn (modify_xline 0) (set_tile_dirv) )
# k$ V- t) b' ?. [9 S - )# o w! M5 R& L# X6 D" B5 K, D6 k
- )
8 d7 D3 P* M! M! ^ - (defun ver_xline_z2 (value / temp)
9 ~+ ^; K& q6 @# ^ - (setq temp xline_z2)
$ P' m% Z0 P) k6 ?, i - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
$ f( @+ l7 D4 u" {9 ~ - (if (/= temp xline_z2)
, s3 g9 y* w: e7 A - (progn (modify_xline 0) (set_tile_dirv) )
/ Y7 X, A# }5 i; O% k. C* Z, E3 M - ); R2 \1 d1 w* ^5 i0 q0 U; @
- )0 x: R* H2 U* v
- ;;
' A. J) [6 m) _, y/ K - ;; Functions that verify tile values for angles/ s. r0 Z( }+ C* q, N# T# ~9 e5 M
- ;;0 I/ o6 z3 e" n; w" o; a% K$ K
- (defun ver_ang1 (value)
$ [8 b9 ]% z0 V/ h - (if (setq st_ang (verify_a "st_ang" value st_ang))
/ T/ {; ~9 y* ^( d- q- f0 @ - (calc); @, I( l# C g. D+ l* S. h+ ]
- )( o6 L. P' f4 k$ i6 V7 v+ v w" n! l
- )
8 G; v* O: j# V# R4 O. s - (defun ver_ang2 (value)2 o8 Z' c; m0 e# l# U
- (if (setq end_ang (verify_a "end_ang" value end_ang))& C) }' @& w+ W9 m6 Z
- (calc)# o9 {9 S1 [/ H4 ~! F
- )$ c- ^2 h$ c# Z" d& u! f
- )
" N6 ^: { t/ g* ]3 p- `2 r - ;;
$ s" n- \7 o* m/ c - ;; Verify tile value for ellipse end angle. Handled slightly
+ E6 U) X/ m2 p& k - ;; differently than the other angles.
- q* j% q; w' ?$ E) e& x - ;;8 L' Q& f9 o# ~- t0 e
- (defun ver_eang (value)
7 \( |* z8 V+ t3 h - (setq end_eang (verify_ae "end_eang" value end_eang))
+ h( }& W. B% P* V- R" w4 B7 I - )
' Z1 J0 i! [; Q# m, F - (defun ver_rot (value)4 w& e& S: b" O/ t4 z0 D" l: W
- (setq rot (verify_a "rot" value rot))
' r, _ ]; a9 h - )
. e; @- p: W4 u4 Q( n7 p- h8 D( G - (defun ver_obl (value)
u- ~3 g+ f O0 P% e* j4 N - (setq obl (verify_a "obl" value obl))* B/ y) D M8 O, ^9 ^; q4 r( l
- )' ^% t& |" O9 y
- ;;2 ^: g" h: x) `/ @ D5 V$ \, d
- ;; Function that verifies attribute tag field for null string,
2 T8 f0 H- G) t - ;; or a string that contains one or more spaces. Tile value
8 t, }9 B! ~5 s w5 _2 e1 b - ;; is also converted to upper-case as well.
8 R* Z( h& g3 Y6 o! T - ;;' G2 O3 p9 w9 q0 J
- ;;7 ?# o6 e/ k3 [' T+ [
- (defun ver_tag ( / tval)
! R3 I) y* g2 y2 G6 j9 z; y - (setq tagval (get_tile "tag"))
7 B2 u8 [# A' C! h - (set_tile "error" "")
7 @6 H( r L. d; o - (cond# N/ N: |' }, h9 o6 T
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
9 o% d0 G- o0 a - (wcmatch tval "* *"))
3 x% v$ ~" D8 n4 u& H, I+ X - (set_tile "error" "Invalid attribute tag.")2 d7 }8 s: e. ~0 y4 @ Q, e3 p
- (mode_tile "tag" 2); ^3 ^8 F5 J+ Z* b2 t
- (mode_tile "tag" 3))" N* ?, ?5 @3 J% f3 d# h/ o
- (t (set_tile "error" "")
9 _6 C3 i# ?- p. N: i. m - (set_tile "tag" tval)! ^' d2 P, Y9 F
- (setq attag tval)))* M5 i' U; T' f1 ^
- )6 c' t# G& ^2 E" o
- ;;
3 M! x; C8 g" W - ;; Calculation functions
; m1 p8 y5 }" j8 E: i/ [7 S/ n* z - ;;& @7 y3 S/ T8 t1 `9 O
- (defun calc ()1 x& J' ^1 \/ X) H4 H1 m& X; c |
- (if (= etype "LINE") (line_calc))
# |% ? A+ P# u - (if (= etype "ARC") (arc_calc))% G: o& H% M8 V ]. X4 {! t$ V
- (if (= etype "CIRCLE") (cir_calc))* h9 F' A5 a8 s
- )( o: V& d7 I3 |
- ;;! ~1 s0 X# q# Q/ b9 d( n: z
- ;; Calculation functions for lines, arcs, and circles, K2 M9 c8 ?4 ^8 {
- ;;
- e4 ?# f8 R1 v) U4 G# M - (defun line_calc ()$ T" I/ u \- b$ Y- z' Z% H
- (setq stpt (list x1 y1 z1))/ v$ i* C' \. _# {
- (setq endpt (list x2 y2 z2))
% b6 Z& M3 N2 X - (set_tile "delta_x" (rtos (- x2 x1)))
0 } W/ y i& X( q - (set_tile "delta_y" (rtos (- y2 y1)))
; S% \) D- I7 E2 X3 c4 j" I - (set_tile "delta_z" (rtos (- z2 z1)))
' s; J) S* m6 ^' S+ L; }/ t - (set_tile "l_length" (rtos (distance stpt endpt)))
, F5 |( @0 {9 P- O$ Y - (set_tile "l_angle" (angtos (angle stpt endpt)))
) p7 U& L, W; E0 P* d - )( g+ B2 [; @; I3 X) Q5 `! ~2 g
- : b+ n( E4 n W' m1 W% c
- (defun cir_calc ( / area units)
$ G; E, b$ N# T7 [ - (setq radtest radius)6 a! d+ i2 ^4 ?; w( V0 d( G
- (set_tile "Dia" (rtos (* 2 radius)))
b- l- v8 Y) U2 { - (set_tile "Circum" (rtos (* 2 pi radius)))
3 B- n2 O/ X% c! L - (setq area (* pi (* radius radius)))' b1 U `) `" Y
- (setq units (getvar "LUNITS"))
, v% R) t, g1 b' z$ S: @ - (if (or (= units 3) (= units 4))$ W' e4 l: O d* t! y* _3 a
- (progn( i! I, ^) H" h+ N8 ^
- (setq area (/ area 144.0))
" X4 Q/ t" D% V6 Q/ o" c! V2 q - (set_tile "Area" (strcat (rtos area 2) " square ft"))
7 Q) q" r1 y; l5 O0 ~7 F* A+ H. r - )
( @( ~8 |' _7 s" b; |# ^ - (set_tile "Area" (rtos area))! b4 L% T# d: t% P/ i {7 K2 F1 S
- )" D# V: T! P) o1 o6 ?
- )
. d2 V/ x9 v$ L" t e
0 R: e) F: V% Z- w( T- (defun arc_calc ()
5 a( A) d; i4 u - (setq totang (- end_ang st_ang)) ^. x* R9 p3 m3 A! M
- (while (< totang 0)
9 C+ M+ G+ D- v6 |( o - (setq totang (+ totang (* 2 pi)))
0 { a" ]. G; I& i% T - )
6 d7 i n6 E" |8 y - (while (> totang (* 2 pi))
- o7 X8 \) e5 ?! B& q/ `8 ?3 A) k- e - (setq totang (- totang (* 2 pi)))
. O) H) W% k+ M$ i - )8 d* l7 ^$ K4 y, _9 C9 y% ^
- (set_tile "tot_angle" (angtos totang))
9 a9 J, B# Z d- x - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))( ^) L( l% G% {& I6 k. f6 U9 n( }
- (set_tile "arclen" (rtos arclen))3 H0 e `" M N: Y/ w" N4 @) c
- )
. x1 R! ~1 ?( a - ;;
! z+ P$ {' A8 j0 b# p% t - ;; Calculate the major radius, minor radius, major axis direction.* z3 N& A1 t( z8 Y, q# d
- ;; Get radius ratio. Convert Start, end parameters to start and end
( J8 _( i3 h$ k% N/ r( n! h - ;; angles. Save Major Radius value in "old_majrad" in case the user! T, Q' Y8 ~) p o
- ;; chooses to input a new Major Radius value later. It's needed to
4 T, B% o$ }% y3 v4 V7 k1 d - ;; calculate a new Major Axis Vector value.
! ?$ ~/ r, q- N; k- t - ;;" V* T% w2 V$ q# y
- (defun ell_calc ()
( S& P" V4 Z9 G q - ;; Get major radius from the major axis vector.
! ~$ W' u! U3 v$ y - (setq majaxis (cdr (assoc 11 elist)))
6 e) y: y+ M4 ?' \/ Z - (setq xx (car majaxis))4 I4 d8 W) }3 A' @5 G' I$ O
- (setq yy (cadr majaxis))
6 k" X8 }1 e* x3 X - (setq zz (caddr majaxis))
# p) r5 S5 W, Y - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))+ C! p( m2 x2 U8 g
- (set_tile "majrad" (ai_rtos majrad))$ N' Y, @$ T, p0 a; j# a; U2 I
- (setq old_majrad majrad)
) r. U0 Y* F7 X0 @6 d - ;; Get radius ratio
+ D# ~( V# i6 O: Q" H& ~ - (setq rrat (cdr (assoc 40 elist)))
4 W; I2 W. d7 y" p3 L. ]2 ? - (set_tile "rratio" (rtos rrat))( m3 n; r& F# q2 e
- ;; Calculate minor radius
5 t' Z ? I2 d* | - (setq minrad (* majrad rrat))
$ j9 E' Q& P1 {% A - (set_tile "minrad" (ai_rtos minrad))8 U& b7 p' a9 H# f* s7 K: f: g
- ;; display major axis vector5 [. ^# K) k) Y% ~1 H) r i, R* y6 A
- (set_tile "Majraddirx" (rtos xx))
2 v4 m6 W- I* g4 z( j1 @) P, @* ? - (set_tile "Majraddiry" (rtos yy))
/ y1 ?9 K3 Z3 i - (set_tile "Majraddirz" (rtos zz))
5 z+ U0 n9 b E9 W" P1 N4 A3 L
' d9 w/ t7 A! W- D9 n; V" N- ;; Convert start parm to start angle( e. o! I* }* A
- (setq stparm (cdr (assoc 41 elist)))
' q% F7 a3 |1 W% |; f - (setq vecx (cos stparm))( c8 w+ f# B( z/ W/ s5 j
- (setq vecy (sin stparm))
4 i* Z1 Q' R! ^/ C, V - (setq st_ang (atan (* rrat vecy) vecx))
* `% n; V- t7 J ]& A1 ` - (setq tempst_ang (ai_angtos st_ang))
" m a+ Z6 {+ Z( j3 } - (set_tile "st_ang" tempst_ang)7 K3 s5 p% Y! Y: u5 j1 S. K; A
- ;; Convert end parm to end angle. If end angle evaluates to 0
- M8 m+ ]8 `0 O7 x/ G - ;; degrees then display it as 360 degrees.
$ ~7 P. C C N9 A* T - (setq endparm (cdr (assoc 42 elist)))
, L+ L v, t) q1 L7 L. i! R$ C - (setq evecx (cos endparm))
, x; p. ~/ t2 \3 J- g - (setq evecy (sin endparm))
. c- v5 k/ Q% X. t4 c l# G `) g: X - (setq end_eang (atan (* rrat evecy) evecx))
: P6 p. d/ _6 Y; q+ ? - (setq tempend_eang (ai_angtos end_eang))1 }) q, b" \- d$ l2 g: C, a
- (if (= tempend_eang "0")8 }5 u& _" L% H: C6 o' f/ Q% _
- (set_tile "end_eang" "360")
2 u6 ~3 y0 T% J& v8 k0 o" {+ u - (set_tile "end_eang" tempend_eang)- ^, f/ V L& ]: l1 z! F$ \% Q5 Z
- )5 \7 L( x' @, E! B4 |# W' O9 f
- ;; Get area of the ellipse.# _) Y' l6 n. G! G0 z, V
- (ell_calc_area)7 j: H3 o8 U" B8 N& }) h; f- [
- ). E5 x# c5 e) S. s" U/ Q7 a( P
- ;; Calculate area of ellipse. If it is an arc then
, y' d5 u# s. B) }/ L( E: o - ;; grey out area display.% k( J) A. L) _+ c; x4 ?
- ;;
% k; V0 y5 O: N' s6 { - (defun ell_calc_area ( / area units)2 `/ T0 n$ p, @1 H# L0 B+ U8 L$ N
- (if (and (= tempst_ang "0") (= tempend_eang "0")). S# X, V3 e. e9 S
- (progn
2 h2 ]6 Z5 W% u, ~% `9 d$ k& W - (setq area (* pi majrad minrad))
0 @9 s; t; K" F& P; a" `3 k - (setq units (getvar "LUNITS"))
9 n: L; {$ ^8 U, b9 `+ Z* h - (if (or (= units 3) (= units 4))
* h% u% s" p; R2 U6 P0 b- } - (progn
Q5 j% Y$ G! y4 v5 O/ L - (setq area (/ area 144.0)): ]% ?8 j W1 s0 K4 m. J
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
+ f5 W- U% X8 F# ~5 q2 q - )
0 U: t- W6 R& Z3 {" @ - (set_tile "Area" (rtos area))
" ]2 T$ ^1 P8 d- j! F - )
: K8 D+ p0 }% W) L u% a - )1 m4 j5 H2 r' P; T
- (mode_tile "Area_text" 1)
) [# }! e3 x7 g) V8 M- Y - )
% I& I# J$ e* l - )* a3 G r0 @& E0 p& C
- ;;/ `- A' f/ e0 [: P6 U/ g8 d$ o
- ;; Calculate new values for ELLIPSE- H" _( _4 x3 h9 a" m0 k9 |8 O9 N' _% M
- ;; Minor Radius, Area
& W5 \, Q. s5 W5 ?* _- _! J - ;;7 V) O7 y% Y J, w
- (defun ell_calc_newval (ell_tile): @8 `7 {& s5 K3 l8 J& d
- (if (= ell_tile "majrad")- O% _/ r4 p" S$ m* k: ]. P( G9 }
- (progn: A4 n' Q2 U1 l$ k5 U
- (setq rrat (/ minrad majrad))
0 m4 z! }& V9 M' Q - (set_tile "rratio" (rtos rrat))5 D9 W7 x' Q; ]# N
- (ell_calc_area)# D3 U) b) w1 m0 ]( \ x' C) u: O
- )5 g6 {: ?4 _1 }+ V
- )
R4 N3 w8 j; W - (if (= ell_tile "minrad")& c% I+ N2 t& G+ G' S7 T, M
- (progn
4 z2 c. T+ e0 f- u3 Z5 \ - (setq rrat (/ minrad majrad))) \: ^9 L9 ~& a L
- (set_tile "rratio" (rtos rrat))
8 M- b/ o, Y( Z4 z - (ell_calc_area)
% _1 y8 u0 L+ ?0 \ - )* V$ D6 \6 C& ?1 d5 F7 z
- )
3 z% D8 h& J8 `/ M. V - )0 {6 e+ K- U0 C8 A, _- j' E
5 J$ b: n) [& }" Q) v- (defun set_dimen_props (/ loop a stl txstyname)
8 n; B' C8 e2 C6 p+ {" v
8 j( K2 q. I* k) k! i+ Q- (setq stname (cdr (assoc 3 elist)) ; get style name
% R. s! z" |5 c2 M8 E( J6 L - stl (tblnext "DIMSTYLE" T), A1 G( G5 C" I1 X; V1 \" B
- stlist nil)6 s+ \) k3 u9 M6 |5 a
- ;; Get all style names and list them in alphabetical order
6 f- E3 ^- |# a, m3 Q - (while stl5 K; M O& N% w w: I8 l, ?
- (setq sname (cdr (assoc 2 stl)))) k# W% D0 K, z2 O) n1 l j) y
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
# D1 q; o+ e _* t% B) R+ F - (setq stlist (cons sname stlist)))/ _6 |2 Z. {+ r& F
- (setq stl (tblnext "DIMSTYLE")))
0 Q" G3 U/ S* H0 S4 E Y' W
/ O" i- A/ V; i4 k- L2 J- (setq len (length stlist)% Q" z+ I9 c. H0 f1 R0 C
- loop 0
8 D5 O( G, H' s. I) O - dimsty stname) v: j: Q0 {* ~9 y5 Z
- )
/ D. t' a0 _4 I* l
: f, |" f: k6 Y7 {' C5 ^' C1 F- ;; alphabetize style list, depending on maxsort
6 U; g6 R4 c( ?) X7 J - (if (>= (getvar "maxsort") len)
5 w0 E$ M4 W t6 J: P0 A - (setq stlist (acad_strlsort stlist))3 A$ N! w& @. W4 s7 O5 e, |
- (setq stlist (reverse stlist)))
% Y0 o; W1 j6 N2 g0 r
1 p/ j$ P9 o' T' z1 ~- ; *UNNAMED style (dimsty = nil at this point) is replaced with
* z6 V: a& l: y' P* U. b. q% A; ^# \ - ; the current style. After R13, we require dimensiosn to have a R p- H9 x# V% @/ E( Q
- ; dimstyle, so we plug any holes where we find them.
/ ~) `3 j" o& J% \! r0 e - (if (null dimsty); o7 k/ K/ l; Y3 E n
- (setq dimsty (getvar "dimstyle"))0 T, _0 L# f3 L
- )
n4 R4 Y0 [% H2 k" d - ; Show the styles in combo box8 i' t' J, U1 R0 \
- (start_list "mod_style" 2): e& X7 I: ?& p+ e1 H
- (while (< loop len)
6 X' P; C% P5 A8 V - (add_list (nth loop stlist))
! K# H+ _% G* l4 p - (setq loop (1+ loop))
0 @! h# ~7 r- P - )
( K- k/ D1 p; |- o - , ~9 I6 w0 Q; @. V) f `
- (end_list)
2 m( Z9 A4 [4 T" f. T0 ` - + `& t. ` U {
- ; Hilight the style name of the selected entity, K! R% Y& I: l6 r
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
Q: t6 \# d( k, I/ \4 [- G# L0 o - (setq loop (1- loop)): M1 a8 O- {$ z
- )
# t$ d& Z) ?% v3 }4 @8 Z - (set_tile "mod_style" (itoa loop))6 R" ?7 f& e! x( A5 c+ h: B, w
; X) A$ W! @2 I4 b0 n! S- ; The following is the list dimvars. It must be sorted in the same! _' N( V+ j+ m, `1 ]: I& L5 ]
- ; order as the resfub returned from DDIM (ADS module).( d; S' Z' ` G, s; }+ O
8 x$ k9 B8 t8 i/ G$ J- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values", `: O! }, {' v( d
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"2 _, l# I4 C1 c0 ~3 Z
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"* o+ s7 p( c' H2 K" b7 ^
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
& @+ @/ `/ |. S: S/ y3 n" Z% A% I - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
# l1 _& R6 U/ x- p9 t3 k% B; ?/ | - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"2 i9 t$ a e3 D& F0 B
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
: p. U' J2 \6 N0 a - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"/ q, {! d" |+ @
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"$ a2 b+ p9 }2 W& W6 t2 ^9 _
- "dimdec" "dimtdec" "dimaltu" "dimalttd": @, r, `' _5 B0 G
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"( v3 M: A" s8 {1 O, S3 S6 g0 E
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt". A" N8 c( [ B2 j- K
- "dimtxsty"
) @4 U9 \& E: a& s - ))
1 N8 O; ~ x8 Z5 m - (progn0 |5 [' Y1 \6 Z1 j1 F, L' `
- (setq sv_dvlist (ddimen_getostate dimsty)& c" |5 N8 n7 p1 E
- txstyname (assoc 340 sv_dvlist)
. ~! |' x& q6 K A* B- M - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname))), t$ i" k. [+ K# U {
- txstyname sv_dvlist)( x( l& M" n- {
- dimlist sv_dvlist
7 ]& r; v; O. }5 T9 y( P6 ` - )
. b; O) @4 Q2 I, x8 }# s O# E: h. Y - )1 z, B8 R% J) _% d3 q
- (if (= dimtype "DDLEADER")
* u) I; I7 ^8 ?( _& d - (mode_tile "mod_format" 1)
9 m/ I/ k( t& G6 A8 U - )
: q' o2 |5 }( P" r7 z% `: j' v - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
) v* G) g% I4 g: J& q - (action_tile "mod_text" "(done_dialog 4)")6 q; g9 U q# k' [* b1 n) y. i/ H4 ^
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
+ \( i' }/ ?# b C$ P& t - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")& o) {$ i7 Y- i0 H1 b; a( {
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))"); O# e. ?! p) W9 o& W
- (action_tile "accept" "(done_dialog 1)")' g# Y/ W; k) h8 C: Q
- )& ~; U; b8 k! M5 G/ d- O+ `
- ;;, n2 H8 N' ]/ F- Q
- ;; Get dimvars that have been restored.
) F% A& y3 {( O( c9 v3 q9 u - ;;
4 @5 i; G- u9 f* R# ~; T& e& p) B - (defun ddimen_getvars (/ elm dvlist dv i): ]/ Q# F3 e# J4 _ }, S3 K0 B
- (setq i 3
$ V0 P! q; B4 l7 W+ j0 H - dvlist (list (cons 0 "DIMSTYLE")
1 A5 S' c# D* W" i* z+ I; H - (cons 2 (getvar "dimstyle")) (cons 70 0))+ h$ u( N$ a- L. s0 G
- ). j( ?# I1 d! m z
- (while (setq dv (nth i dimtbl)), `+ L, f) {; r% p
- (setq elm (getvar dv)
" M2 M$ e7 p+ o- p9 A0 | - dvlist (append dvlist (list (cons dv elm)))" _+ T; h6 f. V# m: D7 g/ [$ B# |- X
- i (1+ i)' p1 v- w3 V8 Y. X6 j
- )3 F: Z; B# f+ [5 R6 D) ~" r
- )
+ L" J/ _# s- T - dvlist
3 T; x+ ^0 ?3 _4 E* O! } - )
9 o; W6 `) Y2 X) z4 F) O
' n1 @$ ~6 Y" i7 H' ]- ;;0 `; F3 g. v# Z1 q* z$ v. O
- ;; Get the original states of dimvars. This is for DIMENSION entities.
0 C( x/ m8 ]1 k2 ~$ H% V - ;;
. ]! T9 G; @! M: X8 F! H0 v - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)% e) ?: l* ?& e% ]5 ]5 {" N
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
h' O2 N) j! m. @" n% |+ v - dvvars (ddimen_getvars) ; Get dimvars for that entity9 q3 |- I% k2 W
- i 18 h" V' Y+ g) m, y& D# s G- Y
- )- y/ d5 K. i% H% B) I7 w
- # U. I7 R4 W! m" O# l* e
- ; Create a list that contains values of the selected entity.+ Y* H% H4 I8 a6 i- V
- " X- B$ |( [# C+ F6 i/ n
- (while (setq elm (nth i dvlist))
$ R* y6 n# q, U. x) f - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)' J( A. h( Z; i# w/ [3 P9 D
- i (1+ i)
' _, }- e* e ] - )
7 k( M6 T/ a7 k% U - )
2 O( T) k3 i; \& ?" J; T - dvlist3 c# m. v% c# E4 v! j, W1 B4 v7 w
- )* V8 A# `# n9 S$ q! X0 ^
. }& i; Y1 f* r- S0 R- i- ;;
3 a4 f% [: h( u - ;; Restores dimvars of the selected enity.
' o) d! P& p: J% C2 C* P$ d - ;;
3 Y) I( D, g2 t& m7 K# Z5 @; J - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
% l2 w! S" e2 |/ @6 D J: M! t - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values". l8 M& l2 g5 H O/ G+ J
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"9 |# W* E. T" a, B7 N( o; D1 \/ z
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe" g% h( {9 x9 v; S" \
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
! y! z* N0 z: a# c5 y8 ` - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
& y+ u/ X# Y# v* L% Y5 z - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"' G5 l) H; H& ]' j2 b# K4 x
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
+ V7 b" P$ `9 ^. e( a* u0 e% B - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
/ l" k9 f( k B. W( x4 h+ g - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"& H+ R2 ~/ K8 m$ ?8 _! `; D+ s
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
) q' h8 _* z. V [2 P1 P7 ^ - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
$ T+ b4 |! \# K4 p$ E, K - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt": C4 z6 k5 q- o4 K4 }
- "dimtxsty": w7 x8 Q/ K) T4 `
- ))0 T: V/ H0 r$ g0 _8 {- f8 p
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
+ ^6 w& I/ }+ L" A! g6 ^) m - (progn. y$ j- j d& e% n2 l
- (setq en (cdr (assoc -1 elist)))- t( F J: }4 x8 w9 w0 J2 E% Z
- (command "_.dimstyle" "" "" en)2 F% [, N- ]5 l! V" K
- )
* Y& J, q) B$ _3 Q3 g! S - dimsvcurset
. I, p6 o% Y8 o5 s - )
* M8 v C5 I- E! ~ - ;; e$ m$ ]0 O7 [3 D# `) L' j
- ;; Modify Leader
9 n9 M G2 {6 o! d/ G# T. C; y9 Q - ;;6 V, A9 `* [' w! J3 |
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl9 N9 c3 o7 x3 t( ^
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
4 m0 g5 @: [. t1 g4 ]3 l( U - dimtype dimsvcurset)
" r$ S$ L) ^' `. ?' O, K+ Q - (setq dimtype "DDLEADER"
4 D. u T5 o) f" `; m! U - dimsvcurset (ddimen_dimsty_restore)
6 f; }8 w9 c: E - )
( R7 }: u% t3 G" |5 `3 Y - (if (not (new_dialog "ddleader" dcl_id)) (exit))
) D4 T5 T$ O1 }0 y# E9 [ - ;; Set initial tile values7 V% @8 H5 e3 H9 a
- (set_tile_props)
7 _( n- ?* B P& i4 Y1 E1 @- p - (set_dimen_props)% t8 b1 ^8 N. ]0 u
- (set_tile_handle)
; [7 k% Z5 Z7 F/ ]" S' U2 g - ;; Define action for tiles
( o4 j3 B0 `) G) W( {/ D3 w - (set_action_tiles)
3 f9 A d% d4 G& X6 _4 _ - (mode_tile "mod_text" 1): n9 g+ H4 w8 L8 U) p7 j3 E) u# }2 }
- 1 \1 G9 {! L! G' \: U* J
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")' q+ }! M) P$ Z" @% h
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
4 X$ F8 ?/ Q& |7 i# { - ;; Get ARROW and TYPE.
7 U* |. B( G9 e5 J1 @6 | - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
7 J) q8 T( k+ F, n9 Z4 S& M - (if (= 1 (logand (cdr (assoc '72 elist))))' b3 N7 C4 M! K4 _0 X+ [) ?
- (set_tile "s-s" "spline")
& L$ Y. d; u& v - (set_tile "s-s" "straight")
9 p4 u4 d H9 g, ~1 h - )! m7 i. g, X8 T" m4 l
- ;; Start the dialogue.+ u7 q% ]7 H: U+ J; L" a
- (setq dialog-state (start_dialog))
- o7 x7 k7 X( K& q# |' A1 Y - (if (= dialog-state 1)5 ?3 g5 [! q N' r. Z6 E
- (progn
; [; T- Y' n- l" a/ S1 i k - ;; update the style S/ r; K( U9 `- {: S8 Z1 X
- (if (/= dimsty stname)- d" z- ] v) M2 T
- (progn6 C8 `( n0 z$ B* i
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case6 n. ^9 |" N+ ~. L. L7 S
- ; doesn't have it.
2 R5 u8 O; Z/ Q- @; B+ c) n - (if (null (assoc 3 elist))# T" t+ D: x5 x" z6 T
- (setq elist (append elist (list (cons 3 dimsty))))
$ E- ]' f8 J' Q6 J a8 b8 n+ r8 A - ; else just replace it.
* a) S' b c0 N+ e - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))1 X+ z% r1 P! J/ M
- )* K9 {; J+ Y# F: V+ R8 j; d% H# ?
- ; refresh sv_dvlist with new dimstyle.& M5 A. e' _2 [: K$ m
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
2 U5 _+ _$ O* D1 E; X. l' E6 k+ d - )5 }$ e6 }9 C: l. m3 j5 X- j( U! x
- )
2 k5 |! q% i' u# a - (if (not (null dimlist)) ; attempted to change dimvars5 F3 X& ~$ n, e
- (ddimen_complist sv_dvlist dimlist dimtbl)5 b% k# z' R1 d- b# d4 H q
- )
- t9 I0 O& T8 i x2 v - ;; update for ARROW.1 v3 z# T* T3 E+ i, P& y% W
- (if (= "1" arrow)
3 r4 N, c8 ~+ g, ~ - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist)) w f. L0 `5 C3 R
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))) U" I0 l. t2 ?$ Q+ y
- )
* b# f: _4 t: C( n& y - ;; update the TYPE.6 t9 \5 T/ v" g" t4 q1 r( T
- (if (= "spline" leadtype)/ \! F! F, d S6 b
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))" M& T2 _. X$ ]$ w9 U
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))5 D) N( \! Y; V: r9 [
- )- O, \7 ?- R3 j' h; }6 a/ b: ]
- (modify_prop_geom)
2 n" o. {( [' k* w& J0 D - ;; update the Color
2 u/ O0 M: F! n7 N$ g - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))1 Y+ f$ i% o/ T
- (entmod elist)2 u0 J/ j$ ~6 M; I/ T
- )" J9 V: c: [- C+ E" P
- )
6 \/ e& x" i8 }) D9 s) h$ f9 y - (ddimen_setvars dimsvcurset) ; Prepare to exit6 T9 }2 u7 ]4 e3 ]7 i! b9 K
- )
$ L9 F" O5 a6 R0 i4 `: I3 f
- {! w- w b f% W( H- ;;* o C! ^5 I' x b' H& A" P0 k
- ;; Get dimvars of a dimstyle with overrides.
, ~5 a0 F! o) n O7 A9 H - ;;
) L1 A* B2 e8 F' a$ U7 e2 } ~/ { - 3 m7 P$ g: S2 }- x7 c2 P5 F' y& D
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)8 h, j! V* L& g4 H# w% m( x
- ( L+ q) L D' d% H& s2 Q4 I/ t
- ;; Get override information for the specified entity.2 k- [ o4 w+ d, W' f
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
% Q! R5 \' u" w% p - ;; must obtain override information through this tedious operation.
1 `( l) [( {! T7 A/ G& C6 j - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))% R' e5 Z1 g1 v9 @1 \7 D8 O5 r$ K) i" Y
- dvlist (tblsearch "dimstyle" dimsty)& ~ x6 e: G: F' E) z
- i 2
- u' G7 U% m5 I - )8 t9 B* w& q$ _3 C! `
- 6 Q. O! F, z. t$ x+ X
- ; Update the list with overrides if overrides exist.
# X% g O' E/ ^7 H j
+ P, G3 J: g6 `7 W- k: O/ Q+ y7 E- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))7 M, b2 V7 D+ x) O* X
- (progn6 X* |- c( l+ w* ^$ ~- A) b
- (while (setq elm (cdr (nth i dimovr)))
+ p. ~4 }+ g u3 @ - (progn( U0 ^' U4 |# ]* v* K6 ^; V
- (if (or (= elm "{") (= elm "}"))! T' x" M# M4 Y" p7 y$ i9 I, r- s
- (setq i (1+ i))
% a- h/ N6 r' j: n6 \0 C+ o - (progn# |/ g. t$ k0 j. O( `
- (if (or (and (< 180 elm)
! ~5 l# C7 C+ v( j - (< elm 190)
+ k) @, L4 W8 Z) \( i - )
) o/ A/ J/ J" V8 L- Q( g - (and (< 80 elm)
X9 O; }/ C2 S* }0 f4 X - (< elm 90)8 {) g8 W/ L, @1 {1 A
- )
, }2 G/ t, W2 P - )( @- [6 E, V; `/ h j
- (setq elm (- elm 10))
! s5 y k5 r9 e0 [, _ - )3 {! c+ |7 e9 X) \. b
- (setq i (1+ i)
" _2 S- @- V8 o3 c" N! \7 z2 ? - elm (cons elm (cdr (nth i dimovr)))
% J! c r+ P& z - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
4 R6 N8 q+ m" w. E* I) ]2 h - i (1+ i)8 L2 g/ R' H9 o4 N2 g" M
- )
8 {) a. j$ G/ a - )' b! ~+ j& `+ W* ~
- )5 {' X4 R" e& d+ j
- )# x& b; }# }& _8 c: M- E
- )
7 O: T9 v* [1 w. R# C - )/ Q* W6 b/ W3 X* Q8 v1 I. l$ J
- )
9 A! ~3 D: r/ r - dvlist
8 |& {. y+ u$ [# I3 k2 J - )) I [( q! C/ U- W
0 @7 q* W. v' }6 p5 P, m/ l$ Y4 d! o- ;;, Y/ O# y7 d) _
- ;; Modify POINT
, ^8 b5 w2 g) q3 U( Z8 O) B - ;;
$ I3 g3 V4 Q' k8 k2 U - (defun modify_point ()
3 n7 U5 m9 ~/ O2 w- ]/ j0 ] - (modify_properties)$ r9 t! p$ G; j' o) `& ~5 j
- (setq pt1 (list x1 y1 z1))
; I( p( L/ T5 C3 z - (tempmod pt1 10 0)
2 {% t4 |* R' J, n7 e - (entmod elist)3 [8 X( d# T" m: U6 \: O
- )
( o2 P- k- b$ C% U( D0 F - ' p- x' s9 O0 `, K7 v
- (defun ddpoint ()
$ m5 X, x5 g% O+ R - (if (not (new_dialog "ddpoint" dcl_id)) (exit))
, O" n7 @; m3 w% p& o2 Y3 F @1 k9 r* _ - ;; Set initial tile values7 w, O2 X1 F3 R J, x
- (set_tile_props)" h; v3 u; ^( I
- (set_tile_handle)8 ^! e- ^- a. Y" G+ B
- (set_tile_pt1 0)5 ]7 S9 R }3 Z {7 b* g
- ;; Define action for tiles
6 K9 W# w) I, V- @. N - (set_action_tiles)% e# t& n4 _" B0 V
- (setq dialog-state (start_dialog))
! J2 ^. v5 |' v3 L8 z- ~ - (if (= dialog-state 0)
/ R% k1 ^7 y: B* v! V3 q4 C - (reset)
- G# d& l4 A1 x6 y, s& W - )6 b1 D6 Z% u" m: Q+ `- k
- (if (= dialog-state 3)
. Q* B: E! D' ] ` - (progn
, O: d& ^5 w' ~; O$ d% v+ {& w" U - (modify_point)
( J( ~/ H, [, w; k# y! |& R - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
N7 y9 c) u4 ^$ i: p - (ver_pt1 0)
, }, S1 G# P! I; e/ Y# { - (ddpoint)" ]3 Y0 O: M0 B a: O
- )& J! r; j+ k; J" [4 i C
- )
. p2 Z: M% O4 ?" ?) b( Z0 _ - (if (= dialog-state 1)! U0 e" B" ?7 ~. m
- (modify_point)% A# u, f. f. W( G
- )
* r( ]( Z0 V/ _/ S+ q0 F - )
; I' ?; F# {- T8 x' X* i% E. J - ;;
0 I L4 v' B4 R" K. x - ;; Modify LINE
7 ?: n5 f0 O" D6 U - ;;
7 b' }5 D5 O9 _; s1 R. ^ - (defun modify_line (); ^3 z1 |- W" B H: _1 {" V0 b1 W
- (modify_properties)
8 W# L/ z! ~% N( K2 D1 N - (setq pt1 (list x1 y1 z1))
, w. B6 Q# @" k% U8 W" s# H0 b, }! B - (setq pt2 (list x2 y2 z2))
A7 L6 J# b4 o7 W) r3 A! p! {9 i% {% ~8 T; Q - (tempmod pt1 10 0)& d! E! f% j8 x _9 @
- (tempmod pt2 11 0)
. p. Y$ u" P( i' \ - (entmod elist)
0 J5 f* \. o( ^/ Q - ): y4 ?5 E0 K5 M
- (defun ddline ()
' n( M/ Q0 t2 w% n - (if (not (new_dialog "ddline" dcl_id)) (exit))
3 d- a$ O* }& V - ;; Set initial tile values0 Y: ]1 @7 |% q o' C" U
- (set_tile_props)
8 B$ j. f8 |4 z- p' [ - (set_tile_handle), x' [2 g- i6 ^
- (set_tile_pt1 0)
( z& Q4 v& w+ i) |$ [! ? - (set_tile_pt2 0)2 r& e' |* v" l1 q/ ^8 u p4 r1 @. w
- (line_calc)
4 |* }3 a4 P# T0 Z - ;; Define action for tiles
; Y4 g0 x& \# x2 Q; C7 x - (set_action_tiles)+ u$ w% d5 u& H2 N8 S
- (setq dialog-state (start_dialog))
+ p' G4 ~" x- Z1 O8 W, D - (if (= dialog-state 0)& I0 d* h- ? Z Q# {$ l
- (reset)4 w8 r3 p! R/ j, I( Y
- )( h7 C* n+ q5 Z6 p, L: T' i7 y
- (if (= dialog-state 3)
( D4 }. X) u! O/ B( R, I+ T - (progn
: B6 r* {1 x- Z& \ - (modify_line)
. ]2 z7 N7 G2 n" r3 |4 l8 m - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
2 V+ a4 w% G6 J3 U4 f - (ver_pt1 0)5 a1 f; e2 t1 ]6 [
- (ddline)) x0 Y/ O& x7 j
- )
' J" ^, Y/ j$ H! \ - )+ x8 n& P1 h2 I9 _
- (if (= dialog-state 4), k) d5 ~6 m- V7 V' S- \- m
- (progn! i( z0 y% \, g) }
- (modify_line); ^7 m! V& i+ Q: {9 s3 v
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))5 r6 @; k, o& x: Y
- (ver_pt2 0)% m( X# U8 D$ a, U
- (ddline)
. _# o* `* C( G- Q( \ - ) i8 S9 {6 X% x6 E# z! C
- )3 K5 |/ `; O) g' i. @5 v
- (if (= dialog-state 1)
" D. H: o: }8 Q0 [' { - (modify_line)
! A3 h$ ~3 I9 N5 ~1 ?9 \+ R8 T - )/ v4 g( i# g+ K& p5 J5 m, |1 U
- )+ m1 W6 g3 F( z4 H
- ;;
. D! C! @8 w# M$ H - ;; Modify MLine
, X2 j3 Z/ E% | - ;;+ w. S7 p* h) G: {6 F
- (defun modify_mline ()
- B. |" N, }4 B1 A: V# _, m8 C/ ` - (modify_properties)( c; E! z4 D& ]) f- j) O
- (entmod elist)
( E; ^7 y/ M4 n2 S7 ?: M8 J( r0 A - )% E- Q$ l u+ N: s/ R
- (defun ddmline ()
4 A5 F5 H$ h( y4 G - (if (not (new_dialog "ddmline" dcl_id)) (exit))
* D" q9 Y% ]9 m$ u4 c; C - ;; Set initial tile values
9 H( e; l" o7 A0 c, q0 k - (set_tile_props)% Q* `1 s, o5 r, A N% V/ G
- (set_tile_handle)
5 r: ~, H- S# T6 _1 X6 Z1 X! ] - ;; Set mline style text field.3 s3 F) `$ _8 ?3 r7 y+ r$ p
- (set_tile "ml_style" (cdr (assoc '2 elist)))0 i& c* t8 |' S# g
. V6 @) H& d9 c% `2 m+ D6 J- ;; Define action for tiles
. i5 C" I; u/ Q( C6 r! I) i - (set_action_tiles)
8 q/ I3 T2 Y8 P4 b; I7 M - (action_tile "ml_edit" "(done_dialog 3)") c- J! w7 E4 `" u
- (setq dialog-state (start_dialog))8 i$ h2 k& @/ Q, f8 y% e% Q
- ;; Dialog cancelled, reset to original values.; }2 h5 I/ m7 f
- (if (= dialog-state 0)# ?3 q1 G: K: z( M5 R
- (reset)
8 c# C* x# \3 K. n) H - ) f/ Q) z: @: O! p% w
- ;; Dialog OKed, update the mline.$ h6 u( ]! E* o: ]1 O# d+ u
- (if (= dialog-state 1)% \# k) ~ J$ R8 Y$ k1 {* F
- (modify_mline)
2 Q* P6 E; K; a$ C - ) P5 |) {5 [3 r2 G* U' Y8 l4 Y" _
- ;; Edit Mline, call MLEDIT.
4 [. ]2 a; \/ v' d. b9 x* v - (if (= dialog-state 3)9 _7 y- A4 v2 ?0 a
- (progn
7 ~/ ~# k+ [9 X: B: a. y - (modify_mline)
) G& s. p% i! q0 T, F - (command "_mledit")1 q: m5 m3 P L
- (ddmline) C9 X/ ~% L# L- M4 V
- )
& q T5 S( r% }* g - )
$ t. q8 s" z, j5 x+ x" ], t - )
) L+ l2 t& B7 s8 M7 b7 { - ;;: m, z6 p, \7 @) u$ q
- ;; Modify Xline" G U% g3 m% e0 h8 e+ R
- ;;- L1 r1 R+ p$ K% F
- (defun modify_xline (flag)
. W( V, \4 ~' t% K# b8 l& Y - (modify_prop_geom)
; N, F% ~( e' G - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1)), B! g3 {4 M: i8 s6 T( y4 K
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
0 e0 [3 E( Q, Q6 b - ;; Update the Root point.
) ~( R3 {+ d6 F4 p- y - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
! Q8 y" o7 W5 n& X) L* C3 u - (assoc 10 elist)
O" z- {2 P5 Y+ I - elist) v* L& I7 _! H
- )
+ @4 z) Y1 w' q. _* B$ s - ); C7 m- b8 [( O) C/ F
- ;;
7 R" ^- _; X2 ^7 K) @ - ;; Calculate new Direction Vector WCS
8 i! n0 }+ V# y% A3 z - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))8 M2 G, c( ]( n& {: d& L
- - c" C9 l) j" E
- (setq temp_dir (trans xline_pt2 1 0))% v) Y) A _7 H$ x* K( z
- (setq temp_dir_x (car temp_dir)), |& z* f6 A2 D- b: E
- (setq temp_dir_y (cadr temp_dir))
j3 V. j r$ r% a0 s - (setq temp_dir_z (caddr temp_dir))2 U6 ]1 J/ i& d' v% f# Q! ~) W3 v
) m! u; U8 O# A/ J4 Q- (setq temp_xline_pt1 (trans xline_pt1 1 0))7 i8 Z- T) n# V6 ? U
- (setq temp_xline_x1 (car temp_xline_pt1))
5 k7 Z7 J* [6 ~; i: k7 | - (setq temp_xline_y1 (cadr temp_xline_pt1))
7 m6 F* ^8 X2 ?4 p" g. t - (setq temp_xline_z1 (caddr temp_xline_pt1))6 B# P# B S7 q+ R
) ]0 \0 P1 T) Y$ q- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)7 l, s8 s0 r4 Z+ b+ d+ @0 m2 Y
- (expt (- temp_dir_y temp_xline_y1) 2)
9 T6 A+ z" r. R' s3 ]# E) {# [ - (expt (- temp_dir_z temp_xline_z1) 2)2 Z: B/ g, r6 j
- )))
* z5 ?' h0 t5 P6 ~" n0 `/ D - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))# }0 n# ]9 `3 q( N- d
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
' J# q' m/ x' M9 u( i - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
/ [3 N/ v/ }5 Q; o - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))8 ]( d. ^2 r. N. G$ a0 |6 b6 T) J
- (assoc 11 elist)
1 {$ A( P# O* X5 r - elist* v3 v/ y8 B4 }# g) T4 {
- )
* Z1 e% p, e) B6 ]* K$ M+ M, y - ), q* O+ a( t+ d$ u4 j
- (if (= 1 flag)0 m5 [" h0 n' j7 w
- (entmod elist)0 P( J- T+ [" H
- )
, \, J5 }3 \5 v6 G4 T, W/ ]5 T+ e - )" p( D3 T; F0 ~$ g9 j; t
- ^4 Q8 Y1 Z" m1 J
- (defun ddxline ()
( G# z' r: H0 y) a - (if (= etype "XLINE") t5 Z% n# \. y2 d# E, H
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
/ [4 ~$ D. K9 |+ X) E# I' ]% Z7 Z - (if (not (new_dialog "ddray" dcl_id)) (exit))+ |- d# v! w1 z1 p
- )
, _' K, @6 a( d4 l9 y - ;; Set initial tile values
% K3 s% m" Z7 i3 q# l0 W& b - (set_tile_props)
# ]+ g: t) N4 X+ u - (set_tile_handle)
6 \- n }5 w, o$ s6 @7 d; I$ Z - (set_tile_xline_pt1)
2 ^" f7 f4 n' T6 J - ;; Convert to UCS and post Direction vector.
. u. U. P9 H g2 p# _ F; y - (set_tile_dirv)
' l7 \2 @! F8 J* E0 @, N9 d - ;; Calculate second point by adding Root Point + Direction Vector.6 ]; y( Y5 k; ^8 Z% O; T3 S
- (set_tile_xline_pt2): b7 ~; S3 c4 _& {$ H! A0 o
- ;; Define action for tiles; ~# g3 \9 V, ?% X/ L9 y
- (set_action_tiles)
1 G" X4 K, A7 t+ C) Z - (setq dialog-state (start_dialog))7 r5 m; I5 w& s
- (if (= dialog-state 0)
0 K- Q6 a* l$ @$ c! w7 F1 D! Q6 N6 Q - (reset); h' r! z4 Z0 O; b! R
- )
; Q+ P0 `, N! `/ n - (if (= dialog-state 3)
+ i$ G2 V# n' `8 b5 z7 \ - (progn
& d T- ^* E7 L$ }" o - (modify_xline 1)
# z4 ?1 p/ |" D8 x/ M - (while (equal xline_pt22 ~# l, D6 n4 c5 ~* U
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
5 M6 M) I+ J7 K - (princ "The Root point cannot equal the Second point.")
2 q$ s0 ~4 e+ A1 r! y/ q8 U% v - )
) @ C0 d1 m8 H+ Y9 { - (ver_xline_pt1)
7 A- C0 i! m( {% J; } - (ver_xline_pt2)
% w8 _" k. |! n5 H! ^4 w5 L - (princ)
6 c) d Q+ r% p5 Y: a2 v - (ddxline)
/ e1 j0 [5 W" U9 |# K - )
3 Q9 M% y) d7 Z3 D4 f6 N+ ^7 ]( o% p - )( e$ Z; r/ f( B/ H) O, | ^- L
- (if (= dialog-state 4)
' u$ U" Y( f6 _, J - (progn2 J% P6 k4 Z6 w& m0 W' I8 y
- (modify_xline 1)
2 j" l ^* P" M0 D% f - (while (equal xline_pt12 K e# ^2 M* F0 l% M: `" H+ _
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)! l5 C4 J# e6 P( y2 L
- (princ "The Second point cannot equal the Root point.")7 I6 ~) h2 T- y" F8 A% a* V
- )
- r7 x7 w+ d6 ]& l! E - (ver_xline_pt2)
* E1 V4 V3 M/ s( e& h6 z - (princ)2 ?& L; J/ W4 x3 O) i4 J
- (ddxline)( D1 Z2 b% }4 i! O
- )
r3 Z( R4 ?4 h0 g+ b. Y; { - )$ t+ ]5 V" k: s h7 @
- (if (= dialog-state 1)
" Y b; m; F% ~& l - (modify_xline 1)
, W" c. O+ p u8 o - )
# m ?% m( T* |% a8 O - )
# l* y3 j4 \7 l B/ }, g2 U - ;;
) }( C/ _1 F* x9 t2 x - ;; Modify ELLIPSE0 [( w. R* `+ q, }
- ;;
' _0 G* F y5 V' X% C5 y - (defun modify_ellipse ()" p6 ^! m1 h$ q, N1 |1 f
- (modify_prop_geom)" c1 w; E+ e( G0 ^5 k r/ E4 u9 z) k
- ;; Update Ellipse Center Point value.
* p; W7 B! I0 m8 \- U& p - (setq pt1 (list x1 y1 z1))& I$ x) B4 J% {) r3 a7 f6 F
- (tempmod pt1 10 1) Y0 P9 O* s- H, @5 y8 {
- ;; Update Start Parameter value.
6 C6 v4 K% w; [0 g6 N9 x8 _# [8 G - (setq y_val (sin st_ang))0 J$ a9 q& C2 ? W) H. @
- (setq x_val (* rrat (cos st_ang))), _# Q2 m7 [7 K
- (setq stparm (atan y_val x_val))8 F) X0 `5 y P
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))/ X: V6 D0 ^5 q0 j6 N8 y
- ;; Update End Parameter value. Normalize it, if it's less than m8 u q1 F5 R( i3 i2 [
- ;; the start parameter.
$ q1 \) }, ]$ H. X' Z - (setq y_eval (sin end_eang))
' H' j9 Y- J! t. v - (setq x_eval (* rrat (cos end_eang)))
, l1 D9 X' E# K - (setq endparm (atan y_eval x_eval))
8 W7 b1 J8 K6 Y2 n/ p - (setq diffparm (- endparm stparm))
3 v9 j* n7 D5 f - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.; |) o& P/ F2 P, O) N! ]. J" }# o" d
- ;; Since zero length arcs are not allowed - construct the full; e3 G2 q) G/ p F, a$ U8 x
- ;; ellipse in this case.
. ?. Z- S! W5 M) I9 L5 I$ m - (if (<= (* diffparm diffparm) 1.0e-12)
- q; x4 Z- t' A1 t - (setq endparm (+ stparm (* 2 pi)))- D& O5 ]% q9 ^* o( `( c$ C
- )
* E9 p/ Q; j8 B; l) Y - (if (<= endparm stparm)
& q. N7 E; p! x8 E# J5 J- I3 t - (setq endparm (+ endparm (* 2 pi)))
) u3 Y1 A& L- @/ t3 ~7 ` q! K - )( v* f* r5 z. ]/ A; ~' Y) Z( S
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
+ S. r- ~1 W* m( @ - ;; Calculate the Major Axis Vector by first calculating; n5 p4 J4 ~" l0 O, n- p
- ;; a unit vector using the old Major Radius value. Then
) \1 j* t/ {1 t4 w' W) B2 e - ;; Multiplying that by the (possibly) new Major Radius
& G/ C. H# U- A2 ?% Z- D - ;; value to get the new Major Axis Vector value.3 Z: ^7 ]% y. E3 g/ |7 V
- (setq unitxx (/ xx old_majrad)) l) l, A* P7 u( n4 l1 m
- (setq unityy (/ yy old_majrad)), Q7 y/ Q5 Q; h
- (setq unitzz (/ zz old_majrad))
+ R% V8 i5 Y6 l4 L" ~' f [" q - (setq newvecxx (* unitxx majrad)) K1 t1 y. O7 h3 L
- (setq newvecyy (* unityy majrad))
# q3 ~2 ? J7 o. ]0 g( C# V/ \ - (setq newveczz (* unitzz majrad)) S: [3 P3 k2 p8 {7 m( }0 R
- (setq newmajaxis (list newvecxx newvecyy newveczz)), Q* f2 _1 X: N4 X& o
- ;; Update Major Axis Vector value
! r; O0 f3 S! z, W& `( r - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
7 O) V8 Z0 S* O( z" [6 f - ;; Update Radius Ratio value9 N+ m+ Y: n3 P. R7 b4 v! [4 b6 t0 B
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
7 j! Q- R+ p+ T* n1 t - (entmod elist)1 M8 [' {8 @6 h, i# K5 p8 |. @& \
- )0 [5 U- k1 \, _5 S$ Z, q' P
) E5 P, R+ M7 b; H- (defun ddellipse ()0 H9 S6 ~9 I( k: U% E% C
- (if (not (new_dialog "ddellipse" dcl_id)) (exit)) B" ~ n: n }. ]. |
- ;; Set initial tile values! J- t- w% M# H: |' Q M
- (set_tile_props)) ~: K, x# U, N/ l6 |% j9 i4 I
- (set_tile_handle)3 D$ O3 U! X* A! U
- (set_tile_pt1 1)
9 ^; c- s! D1 R* N4 X0 Z! a: ~ - (ell_calc)
6 \9 _ m" ]& S' u+ P8 h2 b* H - ;; Define action for tiles( q0 r1 s9 u+ E8 L& h
- (set_action_tiles): u* J6 T* D4 |9 N6 F4 ~
- (setq dialog-state (start_dialog))
' T. n# S+ Y2 O' H% x: p* A - (if (= dialog-state 0)
* {& a+ w* F# z0 s, J! n3 f - (reset)/ ` C! T# R- n5 L- q8 I3 A6 D
- )
' K4 R5 h, U: r4 ^7 N& E N5 u - (if (= dialog-state 1)5 S5 K) R( ?; X' y4 X8 N
- (modify_ellipse)3 @: k& m" g& o% s# N9 Y1 n+ J2 y, o) `
- )
% U8 O" [; d. d/ Q# [+ @9 n9 ] - (if (= dialog-state 3)
" f5 E# [+ _" P G - (progn
0 q7 `& U# y* t: U- F6 b; G0 r1 A - (modify_ellipse)
8 F, N: k) L7 {6 p3 W( K - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))- I9 S7 f' O! R ?1 f) [
- (ver_pt1 1)
# ~6 Z3 m, c6 g: q" z$ P - (ddellipse)
j7 `. r! G0 D! a4 a; h1 h1 u1 Q - )
- H4 O/ Z" e" O9 A5 j$ d - )
# y! a3 W8 [/ i- T - )
5 S* a7 U5 U# X& \+ I - ;;
8 i3 z d. |; p' G! X - ;; Modify REGION
' i E1 i& @) x4 I - ;;
' ?0 e0 W9 W# D - (defun modify_region ()
. t, G. w* G% D - (modify_prop_geom)
9 Z5 m! ]$ H c% z2 W$ p - (entmod elist)
( o& u1 d U7 {) w/ ?; e! Z7 ~0 y - )
6 N; T+ W6 d. z8 f' ?# m, D% m
2 B6 [; F4 L$ n- (defun ddregion ()
' V* Q: z* Q! W2 _- D* r& k - (if (not (new_dialog "ddregion" dcl_id)) (exit))* f9 |8 b& H( B1 s" x+ l4 x
- ;; Set initial tile values; x9 [5 C. Z1 `. g
- (set_tile_props)/ v! j6 g. V( x" J. ]
- (set_tile_handle)
& s. h% m) G3 Y$ R$ q - ;; Define action for tiles3 W/ u3 ~- F: P2 v A5 J5 a: V4 ]
- (set_action_tiles)
2 r7 A9 [1 @. c! h# E8 v - (setq dialog-state (start_dialog))$ O' }9 I) {$ Z/ y* N' v( ~
- (if (= dialog-state 0)
$ U8 Y6 M q( Q* L* Q: s- b - (reset)8 t6 [, U. C2 X& T% Z
- )
% h3 M8 W: j8 U+ A - (if (= dialog-state 1)
9 `# j3 l- X. B. `& d - (modify_region): m/ {2 S- d7 s+ O/ V% w' ]% }
- )
4 C' i) U4 N& [! R9 [ - )
3 C1 p& S+ W2 u; p4 _7 K - ;;
/ B: v" H3 Z1 f0 c' ^! L - ;; Modify 3DSOLID4 k0 S0 l, a* w7 C
- ;;
1 a0 W3 l# |2 P8 ], P: U - (defun modify_3dsolid ()
0 a) P+ Q+ c. r - (modify_prop_geom)
( _+ U+ ?: k* M- f - (entmod elist)5 ~: z0 Q9 e) q( p3 X: }. Z
- )& l% j, c9 U: h$ b6 k: M
- " z6 K3 ?3 S& R- {: v% w# X
- (defun dd3dsolid ()
) r5 b/ z. |" f( s7 d - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))7 ?! m6 Z& h' H$ Z/ a) L" I( r% i
- ;; Set initial tile values
- M( i: @# e' p3 S/ M - (set_tile_props)
% E S) ^# K! V( ]! { - (set_tile_handle)
6 Y' z8 |, U* @) [) B' B - ;; Define action for tiles
4 Q0 ?+ @; Q. d: a - (set_action_tiles)7 {, A9 ?0 U/ O4 j8 h8 s2 E# e
- (setq dialog-state (start_dialog))
$ [ Q r7 R7 O8 m }% Q! ~( A5 } - (if (= dialog-state 0)9 g" S/ j% j8 D) O9 b& `% M
- (reset)
5 q4 v2 ^: y; [9 {- [4 k0 ?- e7 |2 X: s - )
+ y1 g& Z$ N& c) G - (if (= dialog-state 1)8 K% y+ y4 _$ W) @& Z( w
- (modify_3dsolid)4 U& @; Q2 p/ s2 I4 z
- )
3 Z- P. ^- W6 k( a2 K, J8 S! @3 _ - )
! x! ~& z+ E8 Y - ;;& ^6 J2 \: i: K, L/ H1 u
- ;; Modify AcDbHatch
' L4 t. G3 T( k3 Q - ;;
3 ]# D. { o+ \1 T# }. _2 W8 w9 B - (defun modify_hatch ()6 \ n" u# y4 D. v0 s! c8 R: l
- (modify_prop_geom)0 b, |5 A: N @* w3 l7 S P% X
- (entmod elist)
7 b. l" `$ b; {5 c9 y# h( ?5 ` - )
/ O, ?3 b) F; Z+ J
: X# B- F' w8 [, d* C- (defun ddnewhatch ()
) c' L) B7 q l2 g1 [4 ^ - (if (equal hatch-elist nil)
/ d& i5 n3 O5 {0 C' U - (setq hatch-elist old-elist)
0 l- T9 x3 A1 x& V8 ? - )
G# e: X( p' w& i" ]- S2 T# F( O
6 o7 Q6 {$ D; c+ a3 a& h3 e( W- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
% o; f. H2 b- }' [ - . ` Y, c& L8 h
- ;; disable the thickness tile/ h' j* M" @# t$ R7 @
- (mode_tile "eb_thickness" 1)) r$ Z3 z& h7 D4 X* u2 J
- (mode_tile "e_thickness" 1)
% O6 H. f {4 K
* r" ^* ?9 j4 n9 Y8 |! v- (setq help_entry "modify_associative_hatch_dialog")
, h9 q5 q K3 c1 u% N - (set_tile_props)
5 M: V# H: o7 K0 w$ { - (set_tile_handle)- I0 P9 h/ J! N: b
7 t& `; C1 G3 ]* v- o- ;; Define action for tiles8 Z* D/ r+ h; r3 X
- (set_action_tiles), e3 _" j7 A' y2 J, k, U, Q
- (action_tile "b_hatch" "(done_dialog 2)")
0 W& Z. p% c% j. e- ? - (setq dialog-state (start_dialog))
! m( ^, f8 g! u" a8 r2 F3 _; L- f - (cond( H3 ~- z/ W0 L, Y! k# i
- ( (eq dialog-state 0)
5 k( T: y# d- @4 o1 n7 A" ? - (setq old-elist hatch-elist)4 J# @4 x& k; Z+ ~& D% w3 O
- (setq hatch-elist nil)
6 Q% M; U+ v8 i" U( ?% W - (if (= (checkforlockedlayer ename) nil)
3 i& N. m& @1 ^6 ^1 T$ C - (reset)4 [9 q# c; b2 q
- (progn ;;; special handling for locked layer reset
. z W/ w/ i& z8 l5 p4 ~ - ;; unlock the layer/ s: O, Y# c0 e( V' Y
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
6 S6 T& P' @8 |) w' P, B: X - (command "_.-LAYER" "_Unlock" layername "")
) H2 C/ c9 O9 Z& Z+ ? e6 Z - ;; reset modifiction' ? |4 {% S% }- O
- (reset)( C9 k& P% M$ t; k1 a" K0 w; _
- ;; lock the layer again$ N" Z& C5 g- H3 U
- (command "_.-LAYER" "_Lock" layername "")- T* v7 B1 @3 w% j
- )2 A) { ~; w4 W+ `, y/ H
- )
! m& v9 u/ ^6 Z+ W& G - nil ;;; makes (ddnewhatch) return nil for Cancel
. {% Y; b9 B$ `4 _0 n/ y - )6 i/ S" E7 Y7 P% C4 f( B
- ( (eq dialog-state 1) c v' }$ ~- M- }* c
- (setq hatch-elist nil)& u+ v3 Z6 n+ _( m1 B
- (modify_hatch): i8 E7 E) B% A% B; i
- T ;;; makes (ddnewhatch) return T for Ok* i7 A( c' b9 K3 [/ o7 t
- )
. @4 b9 f: U3 Y+ i' ?/ @" }& X - ( (eq dialog-state 2)
' h$ j1 ?( _$ t" v- W/ A, g
) a! z9 Q% A6 m0 A, M- R- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))9 B8 h2 U* z( ]$ o5 _$ m8 X* h
- 4. m, {5 p. H9 V& f5 W- _. O
- ) 9 N4 o: X# C0 ?' F- J7 L1 q3 }
- ;;; new selected layer is on a locked layer
/ o& g4 h! ]7 z9 k# k3 g! [ - ;;; we can simply modify the hatch properties$ p+ u5 M. k" J& a
- (modify_hatch)
/ \% {/ Q6 ^8 }4 y' ^8 q# S - (progn" y1 K7 l" ?. ?: ~! ^% u: c; Z! e
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
: B9 p# l1 O9 v+ M& v - 4
8 c8 j( [9 Q5 _; Z- P9 i- r - ) . o* t$ ~" N9 S& b7 }
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
5 S# j6 {9 R- Y1 b. r - ;;; We have to unlock the layer forethat we can update the hatch properties.3 @5 |9 E7 |# f0 ]+ }
- ;;; If we don't do that (entmod) fails to update to the new layer.$ H( m& @$ u: z3 C p
- (progn
+ S: X3 T3 K- {: o% Y - (setq layername (cdr (assoc 8 (cdr elist))))' ~5 x# }. @$ S# F/ R, T4 {
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer/ O- n5 m6 K9 r( n. ^
- (modify_hatch) ;;; update the properties
% |: z5 m" C! K) C1 r8 n$ t - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again M# ~" n- R0 O
- )
* M8 m1 ]4 W5 a0 G# }0 b! p( g - ;;; All other cases we simply update the properties
2 C7 D; B; W- A- t: z1 o. ? - (modify_hatch)
$ z8 t* D: m9 s, q - )+ h: M! i0 o2 z0 k, k
- )
8 r8 K' V8 L' c' \ - )
6 p" n8 P, ]0 e& A- n6 J - (if (= (checkforlockedlayer ename) nil)
f! b% d' c4 v+ s5 z - (command "_hatchedit" ename)4 y2 _+ e: n) Z G# k& w
- (alert ;|MSG111|;"The hatch object is on a locked layer.")9 F- l: N) o& r. h+ Z
- ): u& J1 D' k6 {+ h8 T% l; [
- (ddmodify ename)
* A; v0 o; I- n1 F - )
( Q; M- F. I4 ?0 x* |( ^1 Y I - )
0 c' ]& q2 h/ v - )
1 k# Z0 a0 Y, s* |. g - ;;, `% \3 G1 F3 i5 C
- ;; Modify BODY
& D7 h; a2 ~7 b- R; f5 ^ - ;;
4 Z/ D9 F+ t& A; J4 P/ o" M/ p - (defun modify_body ()' E8 S; ]$ |6 ?) W$ y: v) T
- (modify_prop_geom)
- E$ @) y% r l5 o+ x9 u5 ^ - (entmod elist)
[6 Q$ Z t: L9 @& E - ), X! A2 r% D3 R! c$ U q3 g/ a0 a$ ?
- ' w- @ l( m; r5 m0 f: K0 y; d
- (defun ddbody ()6 G% y* i' r1 Y+ w! o7 c. \! i
- (if (not (new_dialog "ddbody" dcl_id)) (exit)), F' K" g6 R& S+ I; n+ f
- ;; Set initial tile values. _* u6 v) t: W7 J1 p
- (set_tile_props); l! W c# s% Z( X j) T
- (set_tile_handle)
/ _! C$ @ T) w; W' J - ;; Define action for tiles1 F I$ v" B; k% q$ j5 x
- (set_action_tiles)/ ~+ A; |$ r: m7 a7 t2 ^
- (setq dialog-state (start_dialog))
2 k0 C4 K8 F2 j1 ` - (if (= dialog-state 0)7 l4 V; r2 c+ Z8 o2 e8 p
- (reset)( c# v* y# U2 y3 P
- )- x5 G/ N5 p8 g# R+ N
- (if (= dialog-state 1)9 H2 ~1 I& ?& m
- (modify_body); l; u# |* w" i: g& P
- )
( f9 T- l" ^' A% R - )% [: V& G' L# B
- ;;
& p8 E4 l# q, }. u8 J' Z - ;; Modify CIRCLE
; @6 R& q X) K: ~. O/ G - ;;$ D# P! p% C; R& W
- (defun modify_circle ()0 j2 ]# \& P4 F2 h9 s7 e [
- (modify_properties)& t- \: C- c% F/ T" r) O1 j
- (setq pt1 (list x1 y1 z1))
& l# i2 Q7 O" t2 ~& t$ C9 M - (tempmod pt1 10 1)
l7 E m1 p+ F$ K @& c - (tempmod radius 40 nil)3 ?9 T2 i5 t+ h E" p% [, e) a
- (entmod elist)' W/ j# V( |4 j' O
- )9 c7 C1 S$ J1 z/ E
- * K6 w0 ~* l" k
- (defun ddcircle ()9 {; b2 y2 n8 ^( z: r
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))5 w6 E, s7 U+ c/ o4 c R
- ;; Set initial tile values! n2 D; U0 q6 z
- (set_tile_props)
9 ?3 } b0 w) N- F9 m U7 O2 A - (set_tile_handle)
. a) [3 X3 d1 {' `( m, o- d - (set_tile_pt1 1)% o `$ Q% G6 |. b& X) a: G8 ?" W
- (set_tile_rad) f% c( ^6 o6 C. v5 E
- (cir_calc)
) e* q8 x" g0 {- V - ;; Define action for tiles# [9 r( d& P( N" z$ t4 x
- (set_action_tiles)
- k4 t& u% G' `8 J: R - (set_tile_pt1 1), E2 z% I: _7 x! E4 X' S5 q
- (setq dialog-state (start_dialog)). `1 f! H# v. g4 e# S
- (if (= dialog-state 0)
! T2 Z" a: }0 g - (reset)
# _8 H9 J0 \* g* i - )
, z: G+ \ [0 M9 r) J2 K7 ] - (if (= dialog-state 1)
$ h: M6 ?- `' n - (modify_circle)0 s7 F6 b' N7 m4 S. k, W
- )" L% q1 `0 L. L- p6 ?
- (if (= dialog-state 3)
7 i2 u3 q5 ]4 x) ^( g W$ o - (progn
H, l s1 K# k, x' I6 T0 ~ - (modify_circle)
3 }# S% a& [' U; p6 K* X - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
0 @- i8 [# h1 M b& _' X/ j. F0 g4 r - (ver_pt1 1)% r7 Y1 S" p' \* ?) ^$ Z- l& T( k, j
- (ddcircle)
( L: Y3 M' g& U0 h7 n - )% f. x8 K' S4 r- U. |
- )! {8 J( N) z, v
- ). W) `3 {2 x: `. A( x
- ;;5 ~/ e6 @% b0 y
- ;; Modify ARC3 u: M# i$ ^; U& z. z
- ;;/ H+ J) m/ p! H9 D4 \0 B
- (defun modify_arc ()5 S/ G' t+ Q" a5 \! D; H8 L! x
- (modify_properties)
( x' N2 k q- d( t, P, j, I: |$ ]% J - (setq pt1 (list x1 y1 z1))( l ?( F5 i/ C1 }
- (tempmod pt1 10 1)
/ U8 i1 b3 N* {( K( y( d - (tempmod radius 40 nil)
. e& y+ y) ?& O ]7 E/ Z6 g6 e2 b - (tempmod st_ang 50 nil)! F, N `& ]2 s* F' x" p W
- (tempmod end_ang 51 nil)
* }) L) R9 t/ l2 W7 R" r - (entmod elist)+ I7 @# m$ \, r) r/ j+ D
- )
6 N# z- ^, ]6 K6 L, J8 | - (defun ddarc (), S9 i c; d4 F+ m$ @" ~; x" {: p
- (if (not (new_dialog "ddarc" dcl_id)) (exit))- k; t$ [1 [6 c: X2 A
- ;; Set initial tile values
, \+ Y$ V, Q: y: Q - (set_tile_props)
# }8 Z0 }" D) X - (set_tile_handle)7 S; \# n# o- ?5 Q: V0 S$ p! H+ I. M
- (set_tile_pt1 1)4 `% c0 i3 U$ |9 y1 ]
- (set_tile_rad)5 u% F! V/ b* s; l" _% C/ B
- (set_tile_stang)/ w ?1 V$ a. U
- (set_tile_endang)
& ]2 K+ R" Y& f, P$ N2 q - (arc_calc)+ a/ }7 v5 ]0 k$ Y; I0 O
- ;; Define action for tiles
" L* F2 E4 ?& n+ G - (set_action_tiles)- ?+ ^. I" A# y, x1 u
- (setq dialog-state (start_dialog))
" q) _, ^" m7 u8 E, D - (if (= dialog-state 0)* Q) {# F. l. O& _: P/ I
- (reset)$ l6 z+ X) M6 G: T4 N4 B2 P
- )
) q4 @+ {9 E2 v, }! q - (if (= dialog-state 1)
/ I3 O6 X4 j, z/ w! ~3 T7 d0 e - (modify_arc)5 @8 ?8 {- c2 r* r5 q+ y( H5 P
- ), `# X* }! N) T6 L! a9 |
- (if (= dialog-state 3)
2 a" {4 k- c* T/ j; v - (progn# B! s* ]7 J& Q" i! Q$ @
- (modify_arc)
7 z+ Z: j# T2 u4 a+ \* K5 a+ e% g - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))7 a* M8 o4 V# `, ]+ n
- (ver_pt1 1)& ~# Z7 Q. U7 G6 `5 N
- (ddarc)' m7 N2 \1 s, y- J
- ); [1 G$ _. n7 G; }1 E' H
- )/ K$ i8 |' i5 N. s
- )
" j2 O- X- P! ~, N- k - ;;! f/ j8 r5 |* v) h! S. i
- ;; Modify SOLID or TRACE" [! I' I6 m, A y: B, c
- ;; Note the Z value of the object is determined by the Z value of the fourth
2 L7 D' P) L- B9 C! @. b, e9 d; ^5 ] - ;; point - code 13. Changing the point values of a solid or trace from a UCS
& O: E5 }" S% a A& [ - ;; that is nonplanar to the UCS the object was created may confuse the user.
7 }3 _+ y9 d. I7 F9 b - (defun modify_solid ()
' r* p9 }) A, S0 B" Z - (modify_properties)' Z( o5 B; @1 W, J& b% E" I! k
- (setq pt1 (list x1 y1 z4))! J0 M( J. |% D( [
- (setq pt2 (list x2 y2 z4))
/ |" M1 H0 }$ `$ {6 N- } - (setq pt3 (list x3 y3 z4))
' e u0 p0 e0 ^& H! W; z - (setq pt4 (list x4 y4 z4))
3 K" D. N/ m3 i0 @2 R* [: ]; ` - (tempmod pt1 10 1)
9 k& L5 N u% L9 _ - (tempmod pt2 11 1)5 e8 m8 Y _* l$ ^: {' x, T
- (tempmod pt3 12 1)
( U c4 P1 K: d/ T5 A. \6 p+ _% N - (tempmod pt4 13 1)
( }/ ?' m: I: H3 H; U* l& h' _ - (entmod elist)' D2 R: P, ]6 f; O" f8 h1 Z0 H
- )$ y9 x$ o: g) @* a
! B7 R7 L/ B# u5 Z' M$ D2 x- (defun ddsolid ()
; N& o8 N# c: r. \, G) W5 {( m - (if (= etype "SOLID"), P- K1 W, ^3 K7 {
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))) S c! ?, l) X+ {
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))
) E7 B1 m, [, M {1 e2 [' } - )7 d ~' p3 b# ^9 ]# J. L. `5 g# j
- ;; Set initial tile values5 w+ ]& u; z) [3 Q8 ]
- (set_tile_props)
6 F( l$ `+ l7 ~( x: B0 ?) u- O4 j - (set_tile_handle)
1 J! r5 Q$ @$ w, q) O- ~& D - (set_tile_pt1 1)
. i( u+ m, M8 F% o& k - (set_tile_pt2 1): ~) A( i( ^$ h9 B4 S
- (set_tile_pt3 1)
. @' k- S {( O) N2 a - (set_tile_pt4 1)" J0 T+ T) |0 {, S+ X( ]
- ;; Define action for tiles
! h/ n5 _2 G+ W2 N- V0 | - (set_action_tiles)) t2 Z- {" Y- v, d* ?3 M
- (setq dialog-state (start_dialog)). \. r+ Q/ j! V& \" c. g
- (if (= dialog-state 0)
' c- b# L" W' r/ f! ~! H2 Q - (reset)6 D! ^! {( L/ j) ?; S( F
- ); @# z6 n) l* a& h
- (if (= dialog-state 1)+ ]% }2 J# r N4 f
- (modify_solid)' K. T* i, t C! r k# R$ j2 P
- )5 R( q. K& B* H
- (if (= dialog-state 3)
3 T' e0 H* Y- B1 s* R4 U - (progn
4 {, d' U3 y% [) _# ]5 e; I - (modify_solid)
\8 O# b4 \: X) W& p1 ?; w2 l& R - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
9 O% J5 c1 ]/ W6 g - (ver_pt1 1)0 R! ?" C9 v1 J2 p0 w5 h
- (ddsolid)* v! l6 d. `+ w5 X Q( A9 N( K
- )
$ h I5 Z- g5 @' ] u8 X) H: A - )
/ @! Q q+ M/ o - (if (= dialog-state 4)0 f# ?+ ^% q1 H3 q
- (progn
( Q. L) p! y: y: B' k0 V4 V - (modify_solid)
5 N/ M9 R0 \( L2 M o1 C - (entmod elist)
% i! v6 B$ r9 @1 O6 S, c - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
4 S, t. t7 s( b# E& o7 L - (ver_pt2 1)9 q6 h2 _9 V0 [3 w$ { Z+ b s
- (ddsolid)
, b# S- F; r* h/ n5 q7 q/ i - ). A; j: N; Z% i+ ?( w
- )
+ w9 j6 w+ [& G1 p8 y - (if (= dialog-state 5); i5 b" x$ @: z# M! s& l3 H
- (progn
8 f& |! }: W( e" n6 a6 w) k - (modify_solid)- u0 K G% {8 U" s5 S' W+ j3 I
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))- ?% t0 o7 l9 w$ H& ~% y2 i% f
- (ver_pt3 1)
. n, m* }. }/ v( v4 r0 o - (ddsolid)
! k l8 ^ |5 ?& ?! l' r" o) F0 a - )0 T7 B& _- [/ a
- )2 H: ~/ r# }5 u+ w" o
- (if (= dialog-state 6)% a# Q' C( O6 w* B7 R, X9 v
- (progn
; U/ s+ y7 Q, z8 | - (modify_solid), x7 i3 O0 W. W- W
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))- f8 `0 L" z% `+ F" s
- (ver_pt4 1)
: |( T- A I; {( q- K4 D5 F - (ddsolid)# \! b2 d- Y. P! x, t
- )
- m5 k/ U* I# X; T d- r) o - )# t: b O0 b) Z# ~0 R
- )& Q8 I) {) p0 \1 d
- ;;
$ [! F' M8 V# d6 n8 @ - ;; Modify 3DFACE
# ^# G* m8 D" Z& G$ o/ i - ;;9 N6 ] X9 {2 I0 ?- d1 i$ W# H
- ;; Check visibility of edges
1 [+ {/ J3 g; N9 J& y2 S$ K( b - ;;
$ T; q( }2 N) Y7 x% o - (defun edgetest (/ bit1 bit2 bit3 bit4)/ x, E3 D5 h' ]2 ?: ~/ a
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
$ ? i, R& [% s8 Y - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
6 d9 L4 ]. b9 i1 k - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))% g9 T p* M- b
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))8 _, \9 ~; i& k
- (+ bit1 bit2 bit3 bit4)
, G4 i. f/ l$ I8 v# l; O7 h - )
! l, j$ D3 Y- |7 j8 W4 p
H7 z6 t5 h" P0 y$ ~9 Q7 x- (defun modify_3dface ()
( y) L3 r: _7 X! v. i - (modify_properties)
& a X( ?% Z9 m4 V1 B% a1 `* e7 y - (setq pt1 (list x1 y1 z1))
1 P X5 S4 {1 G7 t$ p9 p2 V& l - (setq pt2 (list x2 y2 z2))
# \; ?$ i" [% i& I8 Z - (setq pt3 (list x3 y3 z3)). w7 a9 E( ?& j' t }
- (setq pt4 (list x4 y4 z4))( l3 R3 n% Z0 R9 [* ]7 M
- (tempmod pt1 10 0)
& u: @" [6 \: ], g8 x9 B7 E- P# J - (tempmod pt2 11 0)" d% l- e; c$ @7 E5 g4 |" l o
- (tempmod pt3 12 0)
# L# C& u2 x4 O% o1 i% o5 I - (tempmod pt4 13 0)) R! N' ], G/ n5 E/ I# E
- (tempmod (edgetest) 70 nil)' F4 D+ h5 }; E2 z' h
- (entmod elist)
8 Z* D% D9 _, N& J1 [ - )
) C' d: v2 z0 [8 n8 ~$ R P. X2 d
4 L3 l0 x7 P( F0 a- (defun dd3dface (): Y P$ R# o) r& U N S" p' N
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))
7 x+ X1 b% g1 r/ B5 @ - (set_tile_props) p) p- S0 d) P$ Z7 m9 `: b
- (set_tile_handle)
7 l. G" ^: S6 V; k - (set_tile_pt1 0)7 E0 |4 c M) m; A z
- (set_tile_pt2 0)
q9 ?! H o3 x; D - (set_tile_pt3 0)' y0 j+ G7 E3 n: f3 f; K i
- (set_tile_pt4 0)% V1 F; m9 v! a: E9 R/ p4 f- W
- (set_tile_edges)
z/ P. r5 X b9 n- V - ;; Define action for tiles
& ` ~1 T8 [, y/ u$ a - (set_action_tiles)0 z- O6 z3 [/ u4 Z, w3 Z" h. U$ f
- (setq dialog-state (start_dialog))
) {8 g7 C7 l8 X& ~6 }% Q0 D - (if (= dialog-state 0)! d9 q# t* H( T5 C, ?. x0 p
- (reset)' F0 e4 h. R9 y- w: Q
- ) y, H/ k/ ^2 y4 g
- (if (= dialog-state 1)) ~) d$ Z) B0 o3 K+ H2 l
- (modify_3dface)8 Z2 [4 D8 ~0 c7 {/ p4 k X `0 w, b
- )( R. O! v5 m0 Z/ L& I
- (if (= dialog-state 3)
. k7 e) ]' o2 U( } - (progn
& w' r& V! G& ]. H& O9 |+ m) b6 _4 |3 | - (modify_3dface)' q- n( R) y3 s- M5 b
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))4 F) `( K5 m0 r0 C7 F
- (ver_pt1 0)
9 ]" u3 Q$ E$ d* v - (dd3dface)
* Z& u$ f' K4 {+ g _$ F3 L - )
% c) U% s; E* ]# A - )
$ L6 |- X3 [" { I$ ]3 E2 ^ - (if (= dialog-state 4)
- x9 E3 |& o) ~' W4 U P - (progn2 n2 w1 `1 I) p2 |2 J& u( M
- (modify_3dface)2 x0 P: J( X5 j& w
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: ")): m2 {3 H l J
- (ver_pt2 0)
2 X9 _2 ?" V2 g2 m% V3 p- ] - (dd3dface)$ k; R: ?. ~$ b1 Z# ?. V1 V/ R
- )
& }3 g9 A" s/ l3 M; v - )
* F7 z6 p& _: x( t) w4 Y0 [ - (if (= dialog-state 5)
8 Y# Z% q/ {. |. J2 M3 N - (progn( b' [* R7 L3 F) Q" @& s
- (modify_3dface)
1 P) q j, p# a% g8 p - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))# F6 L6 R0 R/ C8 }* V2 j
- (ver_pt3 0)& ]8 B7 g% I% d7 O9 m. O; f ^! @& h
- (dd3dface): a# a0 T1 v l! c
- )* t6 L4 ~ l% ^3 N( h" j
- )/ d+ d" B s! c$ A, C/ E
- (if (= dialog-state 6)4 _6 V& n7 }2 b4 R( N
- (progn7 c2 e, @. o0 O
- (modify_3dface)! r) _4 d% s( q2 H8 @/ S% C. `
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: ")), h% w6 b8 ]1 h7 Z
- (ver_pt4 0)
. R7 _6 k# A. z8 ?) d' t# s( o - (dd3dface). s4 ~5 m; s, z9 R
- )
: n. m% {5 ?# }. m, Q - )0 Z; E! r6 T" k; [, W& z
- )
% S( ~! F/ B7 p! k, M0 @6 v( q - ( K' T) U" _ H& y1 a
- ;;! l! {% c' k- @9 s9 V
- ;; Image functions5 K5 [! m( R7 K
- ;;# J0 ~! w* ^* w
- (defun image_scale (/ upixel en n userscale temp)
% f z) n: Q* A) q0 |) H - ;; Calculate the size of an image pixel in AutoCAD units
$ ]6 m, ~: i* J4 j0 F+ Q. D - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))( h0 n2 G& ~5 ]2 P7 i
" r/ u, n1 }! W% H% n& [, ?- ;; Retrieve the user scale* ^. R" @* S" u8 j
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))4 [) S- k9 R* b1 u( ^* T
- 8 @8 _! e* }2 \9 C
- ;; Next, extract the image units and pixel resolution- E3 i9 f! ~0 v. t) C
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
# j0 H" q2 M+ g$ X - (setq image:scale (* (cadr (assoc 13 elist)) upixel))0 M8 v/ x) ? E2 ^. Y7 q3 l2 O
- (progn4 A- {5 x; O2 C( l# M- p
- ;; Convert the user scale to the proper word
x' l' ?3 G i6 j, y: g4 K - (setq n (cdr (assoc 72 en)))+ b' C/ G# t! @: k- u
- (setq temp (getvar "LUNITS"))
8 e5 y" x/ F, l, n9 k - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
4 Q! h9 `# U! J# f4 G8 c - (if (= n 1) (setq userscale "Millimeter"))3 d- E8 n! }/ {1 v
- (if (= n 2) (setq userscale "Centimeter"))7 c% U. b: D# h$ `4 o
- (if (= n 3) (setq userscale "Meter")). H! G1 P, G2 m i! J/ o6 h3 x
- (if (= n 4) (setq userscale "Kilometer"))
7 x" P |7 I8 Q8 E. ] - (if (= n 5) (setq userscale "Inch"))# T& @: h" e* K' W6 h$ `5 `6 }
- (if (= n 6) (setq userscale "Foot"))
1 @$ T7 H* s% }. P - (if (= n 7) (setq userscale "Yard"))
% ~4 u' x3 S, v) M# O) F - (if (= n 8) (setq userscale "Mile"))2 g) D1 w* i6 Z, ]9 s) C
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))9 m1 Z; I5 y8 z
- )
+ W! Y5 x, K7 y- T8 u/ E% C - )+ {% `8 H8 {5 u; I6 o% z+ y) B
- )3 c( p4 g6 N3 G4 v; n
8 X+ X% L; s- `* ?- ;;
/ @. c( A) G% p0 E4 T/ P' F - ;; Scale factors for block insertions
{3 ?- V0 x& ^* r1 m6 _+ i) R - ;;
. N2 o) b, M( o& T! d3 F - (defun image_set_tile_scale (/ temp)1 Q. a/ j# j% J+ Y; H! P
- (setq temp (getvar "LUNITS"))
: H: @, P0 a9 Y$ t$ R - (setvar "LUNITS" 2)# K* o: o4 @: A5 h8 O+ b) w* B- E7 S# g
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))5 W6 o* }9 t5 j5 [
- (set_tile "wid" (ai_rtos (* image:width image:mult)))9 \" n$ f) p- n- o
- (set_tile "hght" (ai_rtos (* image:height image:mult)))
& b9 G2 P- D' t - (setvar "LUNITS" temp)
c# w) k" o& k4 h - )' Y: n" l( s2 g5 U4 i* W
, t" }# d' t+ `+ p% I T- ;;0 v1 S' I. y, I- V; z+ c4 z
- ;; Set the scale, width and height values appropriately.6 j- Z) O4 ^2 l* D# _
- ;;" g8 }" P" v: z
- (defun image_update (field value / orig_value new_value mult)) I2 i4 ~4 l1 I5 K/ X; s& Y
- (if (= field "xscale")
2 j- e t9 q8 e' r g - (setq orig_value image:scale)) n2 W5 P) Z1 ^% t( S1 F( F
- )4 t7 Z& \1 S* q8 k6 w$ Z
- (if (= field "wid")# Q# q8 x: h: @, ]. S. {
- (setq orig_value image:width)! O4 z' }4 C- `( w# u L/ e- s
- )$ ?$ V; `# ?, j& @( l: q( H! h
- (if (= field "hght")6 J& J. f5 S1 ?' q: _5 T# |
- (setq orig_value image:height)
0 @. l1 e0 Q4 W - )
: ]1 _% z- d" i8 O - (setq new_value (verify_d field value (* image:mult orig_value)))
! w! s; e1 p; D* c& D S2 R - (if (/= new_value old_value)# b% F6 o1 t: j% v* k2 }
- ;; Make sure the user has entered a sufficiently large value
- Z2 B+ t3 b: Z* X ^2 C' r - (if new_value1 ?6 S& g/ u1 m5 Q3 q4 Q
- (progn) N* d3 a0 K6 h$ |2 _; O% D* v
- (if (< new_value 1e-8)5 l! Z+ k' F+ E& N
- (setq mult image:mult)
: A! c) W; S$ z3 Y' h# q - (setq mult (/ new_value orig_value))
5 @/ y- a; M4 l# E9 k - )
0 N! L" u8 L% D* n9 k" M/ w% _7 D - (setq image:mult mult)' g% f' U3 n; B$ f& h0 U
- (image_set_tile_scale)
0 A4 s6 Z+ v9 m; K( a! e* a - )- o: w8 x* H h
- )+ J# v1 t. [; Z# n4 k
- )
5 L7 E" D: Q+ B' |3 r - )
, d" F. W# h$ s5 n& `
0 j3 V. @/ [- {& ], |7 W- (defun image_disp_opt (bit)
* k$ O/ Z: Q9 ~ - (setq image:options (Boole 6 image:options bit))
/ `4 j; Y- }+ S - )
- e( T$ B& F5 R0 h - + Z3 W6 v$ m% ?) y* i
- (defun image_modify ()
z3 K A- ]5 G3 q. L - (modify_properties)& v6 d. F$ x4 t( I! z: u2 }$ C, ]! I
- (setq pt1 (list x1 y1 z1))* X0 @& Q. N" d0 X5 ]
- (tempmod pt1 10 0)
/ O# q% O0 a) F* t2 A- D1 z - (entmod elist)1 v/ d4 W6 D6 h0 L
- )
" I# K+ ~ a& g4 P1 D
1 Q% b: ?6 `) r5 V- (defun image_clean_variables ()7 O0 v$ v! o; S0 \ V9 b- Q$ s7 g% P
- ;; Clean up global variables used here) p4 A( @; X0 t; e9 q6 a8 }
- (setq image:scale nil)
3 [9 m) f2 \" p% R1 y+ Z U - (setq image:angle nil)/ R+ H7 j& D, D) S. s* |$ I% j$ O! }
- (setq image:width nil)' M8 S; |' T2 s! f0 R# l" }( f
- (setq image:height nil)7 p; M( x! I# \/ N, h! m$ _0 l
- (setq image:options nil)
! P( g4 W% @2 E$ m$ w; R - (setq image:oname nil)
( [/ O% X: S' X; g - (setq image:olist nil)
- }9 V f3 Y' [3 g - (setq image:mult nil)
0 m4 s* J7 @0 Y% {1 _: r - (setq st_ang nil)& V) K7 R" f/ T3 ^1 O2 l/ Y$ e+ T
- )
" G. r/ x2 Q( K& |2 ]& ~% ?) c' w - % c3 I% U- g" b/ S( a) k
- (defun image_scale_vector (v1 value)
+ S+ t' Y) `4 d6 }" c0 i! p - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))4 C% \* a8 j; O2 U* D9 t+ ~$ ?
- )4 }& ~( A/ q' }+ ~
- , f4 i, d/ Q6 d5 w' ?
- (defun image_cross_product (v1 v2 / vx vy vz)
8 W% U5 q6 B3 g" z" ^5 Q/ q" Q- C - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
) A2 f+ W5 e; V% }; ^ - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2)))). F* k- B; H! B
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
6 D& m7 E* o2 e# A% f6 f& V8 ] - (list vx vy vz)
+ B/ ^1 @4 Q& l) f0 ^! c# s: o - )
' R2 s1 {- P7 e% U - ' G% C2 V( | q( o* W# R y
- (defun image_dot_product (v1 v2)
: [/ \, @) N3 f0 V% ^ - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2))); i2 w" M3 @! j- |
- )6 B+ n- b$ [2 G7 M" [! A
- * w1 |) j0 P+ E! G, [. F* a0 S) j/ b
- (defun image_add_vector (v1 v2) S7 R) y2 G1 ]9 n, H
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
( t2 c3 b, @- w; m0 q# u0 R$ ] - )6 c0 T4 x6 t) y! E. f7 T
- # Y) d z* ^3 v) i" T* F# ^) ]
- (defun image_subtract_vector (v1 v2)( z# s; W4 N& L" r9 M2 Q
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))2 R+ Z2 ?7 u8 H( r& N! M. P
- )
& O# Z9 a7 S2 }3 A - 0 ]- I0 j( \. I0 z% k
- (defun image_normalize_vector (v1)9 B1 _$ A! ?3 \& q
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1)))); l3 I) d$ S; j7 m- A
- )
4 h# e1 o( @6 J5 `+ \) \& b: K* z% q x, s
; Y) w3 C$ a) Q+ P3 C- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
% N( j5 X) t# L" I6 t& X - ;; Normalize the axis% W' t- z2 P! A5 k+ o2 E
- (setq axis (image_normalize_vector axis))9 C3 @/ P! l8 {+ @5 Y
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))/ ?! B$ m {3 {
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
# y! C m& _! ^$ ?8 w - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))+ }4 _6 k# E3 j5 ]6 S
- (setq in_rot_plane6 m& _. U3 z `6 A& H; L4 J/ I& c! ]( D
- (image_add_vector: u4 C) h4 q: i7 y' X4 h
- (image_scale_vector axis_x_in_rot_plane (cos angle)) k% f" V; P1 z4 W2 J4 ]: v# U
- (image_scale_vector axis_y_in_rot_plane (sin angle))
' G3 N- U3 T7 h- [ - )
: c6 R# q7 d5 _: V" o _. A2 d' L4 u - )
3 O7 q$ @9 ]/ j8 ?4 K& D& W - (image_add_vector along_axis in_rot_plane)
C& O- u. W4 ^7 o) g. j - )
3 L( u+ s( S5 C6 C
$ |. w7 m+ z% u/ G7 S) _) L8 i- ;;1 K& o- o$ a" d) S* z3 g ~
- ;; Calculate current rotation angle if appropriate.
3 X5 G! Z5 j1 C o - ;; If not, grey out the rotation field.
, ~1 X9 H8 R* V6 a" g, i - ;;" `6 S9 K% B1 f! C# ~
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
; A9 g! B) w* b' G$ } - ;; Determine if image normal is codirectional with
6 ^$ S3 d& k* A7 O - ;; the current UCS Z-vector.+ W% w) n# ]1 {. G/ h
- ;;# e4 P3 Z0 ^( W" l# {. l+ K" G! y
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
4 N( ?; {7 Q [0 }. D/ t - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
* Z6 _" c0 m9 ]$ {$ r& r0 F# Q6 v - (setq zlength (* (last normal) (last normal)))
" k8 x$ M+ r+ `* Q/ n - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.- A: P( E( s5 M; T# K
- ;;0 c- X" ?5 x0 V
- ;; cos(.0001)^2
8 {/ b* Q# K* P% }4 i! k - ;; Tolerance = --------------
( e7 L: n2 P8 Y5 k2 L - ;; sin(.0001)^2+ w3 g( l& ~5 ~- ?9 i# K
- ;;8 I, Z+ u# b; r- i8 O7 x, y( ]
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))* [9 ]0 E1 j: I+ V. I
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
- X9 H$ \" P+ j% U$ l - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))& b g, t7 r. R q3 h
- (progn
; d' a: v; f4 D; c - (mode_tile "st_ang" 1)
! S; V" ?1 G- ~# w% B. B0 x - (setq image:angle 0)
# K/ K3 z" R" {4 E( _. t2 |" q - )4 t Y: V% ~( m& H
- )( a w2 Q) l* N% K& }
- )
" z1 `! {$ O$ w) n. P0 @9 ^
% T ?# B% m6 D( `7 N& F- ;;
0 H5 b! P/ H B/ I! @3 Y* X - ;; Modify Image# K* Q. R8 E- [
- ;;, K# d! i& q* ]( C, r. [
- (defun modify_image (/ u_vector v_vector z_vector); U) I* k/ C, s) S: l
- (modify_properties)
, k. B( B- R8 d0 W/ x, g - (setq pt1 (list x1 y1 z1))/ A) J% i) M. {1 m2 ~! |1 o
- (tempmod pt1 10 0)2 q* L$ y) c+ L9 K9 U7 C, x
- ;; Make display option changes to image" t. k7 a* {9 z9 y
- (emod image:options 70)
u; _4 m! N( ~! p4 B. b - ;; Get the u and v vectors- O" O1 r7 q4 Z3 _; B/ J+ \! e; X, Y
- (setq u_vector (cdr (assoc 11 elist)))6 v" X' @& q# I2 p0 P, c
- (setq v_vector (cdr (assoc 12 elist)))
: Q8 b6 n$ h; ~) {. R. ]3 w$ F& b9 ~
& q B4 y% B3 U, Q8 ?- ;; Make scale changes to the vectors
, V d( D% \2 Z! @4 G - (if (/= image:mult 1)0 ?1 T3 F5 ? U4 r
- (progn
1 J/ T( L+ p! v - (setq u_vector (image_scale_vector u_vector image:mult))- p* \& S+ m9 h3 k" ~" L! o
- (setq v_vector (image_scale_vector v_vector image:mult))4 R5 d$ z' E& |
- )
T' I& K, l: c4 j; X$ ` - )
. Q, `% T5 b3 ` - ;; Rotate the vectors
$ d/ C+ A- D, W5 i+ U' b s. x) r( Z - (setq st_ang (- st_ang image:angle))
! K2 g; b: b% O b - (if (/= st_ang 0)
+ |8 G" z* k8 i2 ~* [ - (progn9 |6 c! u0 B F$ G- o
- (setq z_vector
9 l4 @8 R7 ^, O: V& Y2 c2 O8 Q - (image_cross_product3 v8 ~, v- R Z: y. l* o
- (image_normalize_vector u_vector)
1 f% Q+ X' z# o* @. i5 ? - (image_normalize_vector v_vector), @5 }( Q0 U& F3 i
- )" z3 {; o! G( _# u' y) ^$ b( P
- )
) i1 _. b. o& u5 g' H2 u - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))4 L |) T+ ~/ ]5 H% i
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
2 \& f$ d+ C, H7 X/ m2 ^- U2 Z - )3 E1 U7 m6 ]# m- x
- )
( W) {) X! _" s0 t; x - (emod u_vector 11)
9 P0 H6 w" X8 ?) F0 O+ f2 y8 ~- a - (emod v_vector 12)
) c1 O0 _: H) T5 I# L - (entmod elist)
0 U' F( }' o3 {- }8 h1 p) p - )9 {/ R; i* b' Q3 ?
9 w' n$ L2 ]4 H: S9 j/ K" q/ E( I- ;;
/ R/ L! F: B5 a; W, u/ ` o1 I - ;; Run imageadjust on given entity, working around possible: R( h3 C# L# W! b2 H( I" ~# ?
- ;; re-entrancy problems
6 `* ` X& R- K) B. Q* D - ;;4 x6 d- ]2 w7 {4 _- l" D7 p4 X
- (defun image_adjust (ename)
v$ S. |0 B; d: W% ` - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
F: F+ R4 A' k7 Q - (imageadjust ename)( N% P' d% t8 r3 x7 C
- )$ W. |+ L d5 s) C) `- T& J
- 5 ^7 w% Q7 B0 b5 l$ S
- (defun ddimage ()8 C3 y% A( P1 ^! F7 R1 h" f. g3 ]
- (if (not (new_dialog "ddimage" dcl_id)) (exit))
, H1 t* ^ s, S" T - 8 o# S; j3 [3 x1 N" b
- ;; Grey out the thickness field.: w# L( H7 {1 |* @4 D& v5 l- I) X
- (mode_tile "b_thickness" 1)! a% U6 B1 f: [/ x' d& _" S
- (mode_tile "eb_thickness" 1)6 U1 L6 S! j/ c2 O
" a* F0 H ^6 T- ;; Get the associated def object.$ l0 K$ L2 a. g% ^
- (setq image:oname (cdr (assoc 340 elist)))
. L' w9 _. b( j( O l' r - (setq image:olist (entget image:oname))
3 Z1 Z! H$ A% K! Z9 ~# P - : w! q# b3 @- m; a8 y
- ;; Set initial tile values/ |$ S" O9 D8 O# `! K; T% y
- (set_tile_props)0 a+ \7 V$ K" ~/ Y4 _( B; q6 O, Q
- (set_tile_handle)
+ c5 q* Q+ l) c ]% ] - (set_tile_pt1 0)( z) R9 L* A+ Z0 u4 D
- (setq image:scale (image_scale))! h7 i# }0 }$ U: z q) f* p
- (setq st_ang (image_rotation))
+ V# L5 k' s v4 R5 f2 m- H - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist)))), z+ U$ ^4 J' Z; q
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
; _7 I f5 x- q! K5 j$ Y - (setq image:options (cdr (assoc 70 elist)))2 N" _# d! X! ?7 m6 N: G
- : |+ V h; S; ~4 V# l7 K
- ;; Record the last multiplier for use in image_update function5 m" z* m& c# |5 m2 z" W8 i
- (setq image:mult 1)8 B3 E% t5 L8 `: X2 A
/ t( V# j8 r" p: X, }- k- ;; Retrieve the image name
- v7 O2 u7 Y- l2 X5 k - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
% L; d* H& t. R, S0 w' S - (setq flag 0)
- B/ [! p/ j- } - (foreach n fn
g* y" b0 c1 W S - (if (= flag 1)
6 H0 `: Q) E1 N - (progn
9 h, v' t3 k {& M* v% O - ;; Display the image name
6 Z: w4 T; D: c& o# S/ t% Y2 a1 ?) j - (set_tile "image_name" (cdr n))5 i/ w* d: S* U; r
- (setq flag 2)
# J! W' {: ^% z) p$ V - )
5 `& x& ? s5 K& ]& k( _ - )7 k7 R" m" x3 {5 ?& C# _
- (if (= flag 0)
3 W0 o9 q ~2 U7 T - (if (equal (cdr n) image:oname) (setq flag 1))' _2 m2 ?9 l5 u. w' _1 g
- ), r- \+ Y4 s1 M" B. Q2 P; H, e
- )) ^4 q- K8 s9 r& i- V0 V9 x- }1 ], ^
0 ?( e% @, I8 W4 Y. Q- (set_tile "image_path" (cdr (assoc 1 image:olist)))
( [% Q' S8 v* S2 y - (set_tile "st_ang" (ai_angtos image:angle))
( a; |/ c, o; q: k$ Q% ~ - (image_set_tile_scale). S! F' i9 F8 _/ s* M
- 2 M% D8 J+ Z! Y, U0 M
- ;; Check the appropriate boxes" T. j1 ^) t! N9 z) i0 |1 D
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
~) W% j, E: F4 \* E8 ~ - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
; U Y& ~; M# }( z! `: a7 ? - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))6 J4 _. I N2 d6 A
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
4 s" E. W2 ]" d( O! n5 e - ) Q9 `- P# B( s' h5 G
- ;; Define action for tiles
& Q+ a& P, c/ C* G1 S - (set_action_tiles)
+ l8 g' P8 ^" i# p8 O# \/ c - (action_tile "xscale" "(image_update \"xscale\" $value)") }, x$ y8 l$ z. ?$ G
- (action_tile "st_ang" "(ver_ang1 $value)")
( S" }" m' E* K) U( J1 v! L - (action_tile "wid" "(image_update \"wid\" $value)")
; h8 W& u+ [8 T- ?, ]; j& G9 z - (action_tile "hght" "(image_update \"hght\" $value)")
; g# C& l8 j! d5 K7 s. K* @ - (action_tile "image_show" "(image_disp_opt 1)")
8 |1 s: M1 l a* p6 K2 D - (action_tile "image_non_ortho" "(image_disp_opt 2)")' `# x: {3 |6 n
- (action_tile "image_clipped" "(image_disp_opt 4)")
n9 B9 a, Y! T9 ?& s: K5 x: P - (action_tile "image_transparency" "(image_disp_opt 8)")
) H" }) e3 W) b. X9 }! m' ? R: J - (action_tile "image_adjust" "(done_dialog 4)")
1 [+ I- a; S( L; W7 k4 x0 ] - 6 g- ?7 F+ q1 r2 h0 \
- (setq dialog-state (start_dialog))
5 [! ~! _& t( X( @- E - (if (= dialog-state 0). y; s1 L; s; m
- (progn" Q, N5 i2 x. d* [
- (reset)
Z8 {# q7 @, `. ]' F+ A% H - (image_clean_variables)# @$ x5 R# w8 g0 _; z, I! h' W; f
- )
" e/ R$ ~/ |4 |: `0 D - )
0 a0 X/ c8 {' r# V" ]; l - (if (= dialog-state 1)
0 p% b2 ~7 i/ l* l - (progn
- b& d& V& ]- x ]( a% ~4 l3 v# m# F6 z - (modify_image)
: ^6 v& E8 [; b$ X6 a; k! V - (image_clean_variables)
4 i8 h& b/ Q1 m9 v9 W: M# o* D - )2 ^: m/ U! E5 O' q0 F) k
- )3 L9 K) M) ~- ~3 ?# f, T
- (if (= dialog-state 3)
2 o: j( C2 r( x! t - (progn x0 H# f3 Z; a7 }- t
- (modify_image)( I9 I0 w0 Z: Y3 }6 @
- (image_clean_variables)# x4 o9 z2 |" K d+ P
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
8 ^$ u7 t# @6 i9 w) @ - (ver_pt1 0)
! S7 d' G# K4 y9 ~: i, A - (ddimage)/ g; y$ X8 \, I) X, J W
- )- p7 H' \" q1 b. d
- )
# M* a# c6 L0 l5 U+ f& z2 z - (if (= dialog-state 4)2 L" n0 x! N5 M2 k
- (progn
) p, a _+ b. c - (modify_image)
3 f4 Q" ]& t( h4 v2 D4 _9 y8 L - (image_adjust ename)
) O' [2 {; r# Q& W; X - (setq elist (entget ename))0 X) o `; P3 t# K* x6 I( B5 u1 s+ U% y
- (ddimage)- K7 w* P* ?, i' r5 c; {
- ); R( J9 Y+ J/ v$ p7 J) f) _/ a1 b2 ]# G
- )
* W+ J- E' x' I m - )
* q1 O7 \" V& D' J! M8 k$ |; ] - # M% ^4 \) \7 y+ j4 s* E
- ;;
2 h- F2 T) I. d: d3 | - ;; Modify BLOCK (and its Attributes, if any)
- u9 ~. U: X# |+ F' l, L - ;;: ~3 v. J2 k7 i! s$ b
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr4 ]% Z2 ]% P9 p: c0 Q
- new_wid old_wid old_rot scaling old_scale9 |7 L% S6 Y/ V8 |7 s
- xdelta ydelta zdelta xbase ybase zbase ipos)
$ V3 A9 D$ @& k4 P# P, q S2 q4 j - (modify_properties)
9 l0 ~# c. Z7 j5 ?+ b) z1 |* B - 0 o( x/ P$ n- h8 S2 `
- ;; First, translate and scale the Attributes, if there are any. B; O) s: q2 q
- (setq old_rot (cdr (assoc 50 elist))+ w3 O3 x5 w7 c: e T1 P! {. h8 q- H
- old_scale (list (cdr (assoc 41 elist))9 j- Z( q* `0 n _, E! U
- (cdr (assoc 42 elist))
: U9 f3 v! \, ~5 b - (cdr (assoc 43 elist))
" l/ _( t; `4 [! r } - )/ a8 T* ]$ M, ^- z. v
- scaling (or (/= xscale (car old_scale))
& j4 L6 b* N# u; }6 W/ ] - (/= yscale (cadr old_scale))
/ l) b- T A$ d - (/= zscale (caddr old_scale))3 T+ G9 a7 A* o( z( }2 R
- )
& y. _* f' g& x' L9 u% ? - attr nil ; No Attributes modified yet; a }+ p5 e- Z, l/ C7 j$ Q& u6 z
- )
" |& C) V8 a! I' y; w! z - (if scaling' v8 f( M4 H& B+ M3 g% o ?% U
- (progn
1 S! Q# Z7 ^6 s& O9 f* o/ T - (setq xdelta (/ xscale (car old_scale))
+ j5 q4 h1 c' H4 t V7 Y5 U - ydelta (/ yscale (cadr old_scale))$ X" [& V, f1 F; L+ Y2 e
- zdelta (/ zscale (caddr old_scale))
8 |- A1 W! B' M$ d0 z$ a$ {/ } - ipos (cdr (assoc 10 elist))4 w1 V2 z b5 p' G6 o! q% z: F8 l! |9 I
- xbase (car ipos)1 n6 z- J9 B3 Y6 }, {* T
- ybase (cadr ipos)8 A' I" @6 \! L$ ^+ X
- zbase (caddr ipos)( y3 b6 c. n( o& T' M, v
- en2 (entnext ename) ; First Attribute
T3 w5 ]; n" a* Q6 U( A4 L - )7 D1 ~) ], R& o' @) x$ ^% \# q! s
7 A$ K* ~; X: Z0 _; U. V- ; If the Block is rotated, temporarily un-rotate it, along
! w& n" N7 g$ v1 _- ? n - ; with all its Attributes, so the scaling/translation of the
. `7 X* s; X& ~. i4 X5 \# l - ; Attributes won't have to take the Block rotation into account.
5 }0 ]) \+ ]% B3 j$ X8 v - (if (/= old_rot 0.0)
- G1 m. e0 ?; E# p" e - (progn
% |9 e$ p2 K5 y# Y - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
! y/ g8 b. M ^. b - (setq old_rot 0.09 N9 p- C! H2 t( `* @3 a
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)6 `3 w9 X; v6 v+ V9 Z. g+ q
- )
8 f6 a, ~3 n& Q' R4 r( ]7 x - )
* Z8 x- g, D: s8 y5 _# N- P - )1 T, g& z1 e J/ z( Z2 j, k5 }- D- L
; M6 `. b# z* b; [ f# h+ m2 P8 y- (while en2
" ]' I) o/ d& q- { C4 e4 {2 A - (setq el (entget en2))4 Y8 h: n* i! E1 S2 f6 d* O
- (if (= (cdr (assoc 0 el)) "ATTRIB")' y, d% k& ~) p/ r2 n
- (progn
9 f' R% v$ Z# G1 H. D - (setq old_hgt (cdr (assoc 40 el)) ; Height
$ I" w Y# T# K0 _" Y9 k# \- _; @ - old_wid (cdr (assoc 41 el)) ; Width-factor
! F4 n3 v- ]# l' Y$ A - oldp1 (cdr (assoc 10 el)) ; Generation start point
2 s0 ]) k7 C2 Z - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt% F% E" t! ]5 g/ B
- ha (cdr (assoc 72 el)) ; Horizontal alignment j" A; {/ \' {% q
- va (cdr (assoc 74 el)) ; Vertical alignment
; M, H% P; [1 f1 J) }! w2 G
- h$ \( b% b4 w8 E9 R# n3 Y- ; Translate gen. start point
; g0 }7 O4 {6 y' [2 K* w - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
& g7 R6 a/ {: _+ a# F/ | - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
3 `8 Q, B1 P. H! R9 B4 V - (+ zbase (* zdelta (- (caddr oldp1) zbase)))
$ E8 S/ x9 J3 V) u - )
7 s1 Q# m d' K* X& L - el (subst (cons 10 p1) (assoc 10 el) el)
6 I: w; Q3 h) F" y ?" b - )3 I& C8 q( x& W; ]0 V
! c$ X2 f7 q( l7 \2 G4 T- ; Translate alignment pt similarly, if present and applicable
. G, X8 A' \& I# [1 A, b$ g; ^ - (if (and oldp2 (or (/= ha 0)
0 R/ v6 i( g% w - (/= va 0)% Z) @# Y- I5 v9 A& I% L0 k$ [
- )
, M/ F2 E) H5 _. h1 a - )5 J! q" {/ [' ^1 S3 Y
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))/ ]8 C, X3 f: o) g
- (+ ybase (* ydelta (- (cadr oldp2) ybase))). E+ {: g, I2 R
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))
) `2 E2 }2 t: S& U4 P5 r - )3 y& {# w( V( Y: d- n) H9 M0 {
- el (subst (cons 11 p2) (assoc 11 el) el)
, A) d( T. r+ a2 G f2 u1 I - )1 B) ^1 u/ G% \7 a5 v
- )
( v9 r% y* a$ h! z/ t, p" i
! r: b* A0 n9 L- ; Each Attribute's height and width-factor were computed" o, ]+ e" ^" u) Y
- ; based on the Block's scale factors. Adjust them now,1 y# `) ~2 D) t4 u/ I) l
- ; by first reducing to values for 1x1 scale...
" \5 c# K( e" b% B - (setq new_hgt (/ old_hgt (cadr old_scale))
8 @7 J. |3 T K7 _& R- }* h9 h( s - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
% s8 w9 S/ v" m8 ^/ } J) z; q - )
2 t5 X4 p' w t - ; ...and then rescaling.1 B0 X$ ~4 S" X7 t- t. b' A' K
- (setq new_hgt (* new_hgt yscale)
; n4 c0 U5 ?/ A: S" M% t) p# j - new_wid (* new_wid (/ xscale yscale))
5 S6 J! _6 }+ L2 h- N" m0 ?6 u& r6 b% E - )
6 F8 D9 g9 ]& A- s - (if (/= new_hgt old_hgt)
& g. W& O4 |* j - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
^1 B4 y; x, M5 S - )* K/ h/ `5 _3 R! ~1 t
- (if (/= new_wid old_wid)' R1 z6 t: v L4 `! m/ B" p$ Q
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
( c) l, ?/ A% F - )/ R9 u2 p7 _8 {8 A" q
- (entmod el): K. i& [$ g+ Z( o; P: d
- (setq attr T ; At least one Attribute modified, C7 f! q+ D' E5 K Z3 l. `. I
- en2 (entnext en2) ; Next Attribute
. k* `! u7 g4 n/ U) v* ~/ ?8 @ - )
7 M( B/ B/ k. g* Q - )
0 {7 e5 i( I; ]/ B: D - (setq en2 nil) ; No more attributes
5 B$ L3 P7 \: A$ q% t4 V - )
: D+ Y0 Q$ @# ^9 a7 y - )& \/ l( W! _7 c" _: [( [
- )
& n. r& r2 G. A: Z - )8 s2 g8 f! h7 J2 }
- : U Q% V. N) b' P; @3 B' \7 p/ U5 k
- (setq pt1 (list x1 y1 z1)). G5 m6 D4 w1 W# k8 `3 M8 F
- (tempmod xscale 41 nil)
/ }4 V' z" h+ ~ - (tempmod yscale 42 nil)5 y; M8 ?1 ~2 R+ k' [3 n% y' p- Q
- (tempmod zscale 43 nil)
& L0 o! Z2 r4 g C - (tempmod col-sp 44 nil)
0 E8 v! g' m5 l; T/ P/ D - (tempmod row-sp 45 nil)( t2 z/ g. r$ c
- (tempmod columns 70 nil)3 E5 t1 ~) w. P/ X, g, d; S! C) M- t
- (tempmod rows 71 nil)! ]$ u/ Q8 N2 y
- (if (= xclipmode nil): V. G$ y7 I. O; d8 [ t
- (entmod elist)
* Z& I1 x2 u. ]; Y - (setq xclipmode nil): r6 O; f3 ^% b
- )
& b$ Y, M. O3 y1 _ - (move_pt1 1)
) a: w9 J1 l$ _9 U& l2 T - 8 n% L( a- U$ |& [
- ;; Now do the rotation with the ROTATE command.. J$ h' d) c' A8 X
- (if (/= old_rot rot)
- E n1 t: D V - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))* s( P! d& ], }& b f" {
- (if attr ; Else, if attributes were modified,
1 v0 j9 e4 A6 V7 G - (entupd ename) ; just regen to force attrib display5 N: S; _6 C' Y5 i3 s6 w5 s
- )
3 a) V3 N3 x( s0 N b - )# ~0 M( @$ n$ y9 e. }( ?, K ~8 z1 z$ j
- (setq elist (entget ename))# O8 Y$ j' D) I" Z: @
- )
' w; B+ I. z2 g H t% |6 j - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
- M6 h; M9 d, b) b4 {( e - (setq newhatch 0)
( q0 t% y! v) ~ C3 b - (setq blkname (cdr (assoc 2 elist)))
+ W' D9 L6 x1 L! _; w7 n2 [4 S; X - (setq blklist (tblsearch "block" blkname))7 Z3 `. f* w {$ `( G- P
- (setq blktype (cdr (assoc 70 blklist)))
0 u) p F8 X3 h& F - (setq xcliponoff 0)
! t A q6 {& O* s. C) {% }: R - (if (or (= blktype 0)(= blktype 36))
# k% x5 {: Y. q1 A% ] - (progn
6 [- f. ~$ e7 [1 B - (setq xcliponoff (xclipon elist))
V* }3 Q1 ?1 L; S! e - (setq temp_xclip xcliponoff)6 ~2 ~ y( L9 Q8 x: g% \" L, k
- ) @+ j$ Y# K& w/ M
- )
x, A8 a2 W% n; L9 \. y- w - (if (= (logand blktype 4) 4)
& b$ t* z T `/ l/ U! Y3 P - (progn4 w* e; k( |; C- V1 n+ K6 `2 d, A
- (setq xrefpath (cdr (assoc 1 blklist)))# e' v* b* z$ L$ j& Z
- (setq help_entry "modify_External_Reference_dialog")
7 n+ I- u, C9 X1 k7 d' N - (if (not (new_dialog "ddxref" dcl_id)) (exit))
# `6 q& g6 D! M3 A! v( j4 p - (set_tile "Bl_name" blkname)& A8 I5 |" ~8 f! Y- ?: P
- (set_tile "path" xrefpath)
, m4 B( [5 H+ b6 I# _ - )1 w. V- q" v7 Q6 n# b5 {
- (progn0 k, W9 {- O+ J
- ;; Get program name for use as Xdata app name
8 G# N7 }, g1 o8 w2 {' `+ {/ J - (if (not (setq program (getvar "program"))); N7 P8 i7 y8 h
- (setq program "acad")# w+ S, h# X6 u0 }3 e# `
- )) M/ B) A4 M' l {3 O: I- a
- (if (and (setq temp (assoc -3 (entget ename (list program))))
% Y7 k( E: H, y$ f4 A/ S - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")1 |* D$ M8 Q( G8 ]7 D0 @, P
- (assoc 1005 (cdadr temp))! ^7 {$ c7 y6 V2 ]) X
- )
+ [& {' u0 i$ F0 Y, M, p8 l - (progn
, @/ n/ ~& t; @7 z. k - (setq newhatch 1)! u+ M2 H, y: g2 w T0 i
- (setq help_entry "modify_Hatch_dialog")1 O/ j( u, a9 [2 Q' o
- ;;; convert the object into a new hatch% z: S. w$ r5 _5 _; W& G
- (ai_undo_on) ;; enable undo V. V$ t* h0 |3 E5 `, z
- (COMMAND "_.UNDO" "_Mark")/ C2 c- ~1 d( S2 p. U4 [
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")0 e" J, t' D3 J) t: y/ a
- ;;; suppress nasty message from convert command
% ~) n' z. v! f7 a, T( B - (princ "\r \r")
' n6 b' _ |- m, m - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))% \8 O( F3 A7 ~ F* g) S
- (setq old-elist elist)
5 |. I" b- x/ ?4 \ - ;;; If we have cancelled ddmodify- z$ c+ q$ ?. s1 |0 P5 f; d
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
. I+ U) N- C! z+ M+ Y# p, B: R. v( h - (command "_.UNDO" "_Back"); ~& S# }* F: ^9 F8 ~6 e
- )0 X, {" F& }; Y5 t4 f2 ~8 g
- (ai_undo_off) ;; restore undo state' f9 _1 `+ ], b0 t
- )
3 G. }8 l* P- Y2 y3 T+ z - (progn" b M* @3 q% ?* R. b
- (if (not (new_dialog "ddblock" dcl_id)) (exit))' v0 D' ^5 A- S
- (if ( = "*" (substr blkname 1 1))4 X% C6 J% m$ l! n0 O& v% A) x+ y
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
; J9 }5 @1 `. V: ?) w( n3 V3 G1 A5 p. A - (set_tile "Bl_name" blkname): N8 }& g6 M3 U" _- A v
- )
9 I3 o. G. ?+ p" M& F - (setq help_entry "modify_Block_Insertion_dialog")0 ?& v+ ^$ B! S! t( e: W8 D% V7 R& `( F
- )
4 A N; O# u7 g i, P6 ]! M - )) F* w; g+ A, F% e
- )0 M3 |6 U _+ l; l9 B& b
- ); v6 ]! r# [6 X, s" U
- (if (= newhatch 0)
- M; g! \" H- _ - (progn
: b0 D6 @5 ~+ ~& _8 y9 S - (set_tile_props); h) q" T" ]7 B" W) I1 W
- (set_tile_handle)
' ?3 a# ~' D0 t8 G% L5 D - (set_tile_pt1 1)* \& [" J) P5 V
- (set_tile_rot). m, g7 N0 ^. `3 f. g3 W7 @
- (set_tile_scale)
% O* T7 G$ {* M3 W" H4 x - (set_tile_rc)
! ^& |* ?- d7 S - (if (= (logand blktype 1) 1)$ k# ]! p. Z5 R) s
- (progn- ]6 Q' J3 n# m
- (mode_tile "xscale" 1)+ J4 q4 |8 |! \9 C: O
- (mode_tile "yscale" 1): S4 R! l, u& _# t5 v5 [, v
- (mode_tile "zscale" 1)
1 L% w9 L! O" m6 x5 z3 ] - (mode_tile "rot" 1)8 r0 b1 `) ]! a: g
- (mode_tile "columns" 1)7 K1 J) g Q1 v# e% n, O
- (mode_tile "rows" 1)
" H2 @, M! V0 k( z( Z+ i$ t - (mode_tile "col_sp" 1)8 ]$ l: n2 q# N* b! P
- (mode_tile "row_sp" 1)
8 d# m: b |6 W, o - )
# g/ _+ r f' Y- }" c! E$ K - )( ^/ ?0 a' x" U1 L' `" z+ j
- ;; Define action for tiles& z6 M! Y) `& O( n% L& O& S
- (set_action_tiles)/ B2 `& a8 e# k& W& n3 ?
- (setq dialog-state (start_dialog))% Z, T; \( D8 H
- (cond
7 G. v3 H0 [: o$ i - ( (eq dialog-state 0)
% {( g! s( `- t& ] - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
3 Z% t& l# ]& }8 D- Z# S9 R - (move_pt1 1)
8 n1 M! @7 W; T; G' @ - (reset))
$ A0 Y! D `& \& W0 q - ( (eq dialog-state 1)8 w8 z. C9 _1 Y
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))/ |' a! k: f. K! s, ^7 j
- (xclip), p5 {1 x2 g) e9 M& i
- )
5 N6 ?& @3 N* L& O, m& g& D7 d - (modify_block)): q" W& E/ O- S7 T* T! N
- ( (eq dialog-state 3)# ?# e$ E1 g3 m' |
- (modify_block)1 P \4 m. ~3 H2 ~
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
# x/ S; u, E2 A* T! q - (move_pt1 1)8 ]$ R4 B3 i- _- }! U
- (ddblock))+ }! Y) I, e/ [! g/ F6 A
- ( (eq dialog-state 4)
, b V' p$ z0 k# c n* `, F - (modify_block)
9 G# F% T! D. [0 F) O& f+ I - ;; Get current handle.* h7 t5 b' k+ C2 s1 C5 u
- (setq hand (cdr (assoc 5 elist)))
6 o2 y% j; ?: `9 n - (command "_hatchedit" ename)2 \/ w8 _: ^/ T; A; M
- ;; If OK in hatchedit, a *new* entity is created and the old one. \. s1 a1 ]/ m6 V
- ;; is deleted. So if the old one exists, it must have been a( @# O' D* l$ J+ y* d
- ;; so rest the entity.
q1 h' j1 W- _+ k+ }! r$ ?! { - (if (entget (handent hand)) (reset))
! n' _1 |- O4 P) Z - )
5 H; \4 E0 O, \5 s - )
" q' Y0 f6 ]* H: A+ t3 M - )1 ^9 F8 h$ T: D2 ]/ b
- )4 S& L0 U; l v* t4 _: I5 W6 U$ i! E
- )1 h/ g" A5 }- }- e+ t2 `
- ;;
: {5 P" I5 [- X: Y- X - ;; Modify SHAPE
/ }1 Z4 B. j# r" D. M - ;;! A) T" S3 ]) N8 X4 z6 E
- (defun modify_shape ()
. n4 r i" s* \# L - (modify_properties)6 X9 e7 B& o# ]+ G. p7 i
- (setq pt1 (list x1 y1 z1))
0 {) z A; a; @# {& v2 ^ - (tempmod pt1 10 1)9 x! J. z, k2 S. m* N& f+ f; G
- (tempmod hght 40 nil)/ @& ?1 S8 e1 _- S( G
- (tempmod wid 41 nil)
) A J/ M2 I6 G4 T/ f - (tempmod rot 50 nil)
* P$ n. y6 c x+ v C - (tempmod obl 51 nil)
* {( H" T8 z+ l- ?8 P4 u - (entmod elist)
2 _: z: y" d3 `+ z7 v4 v; ? - )
( l6 c! W0 F+ M+ Z' d( j - 8 B* b) L0 T3 L3 E1 n- {
- (defun ddshape ()% x0 y$ M0 m/ Y0 c8 Q/ j- B- _
- (if (not (new_dialog "ddshape" dcl_id)) (exit))
+ Z. c! D" S/ B - (set_tile_props)
! T0 D1 K* c5 g/ E. S; h - (set_tile_handle)
3 T' s# v/ G( N/ R! ^ - (set_tile_pt1 1); @8 {' |, P3 O: z" U6 S' H
- (set_tile_rot). |. s" ]9 i( k6 M
- (set_tile_hght)- h( g8 {/ A" S6 v, H6 ^
- (set_tile_wid)1 {- Q, p/ W8 \. p* z
- (set_tile_obl)
7 C* ?7 Q/ r- `9 @9 D* l - (set_tile "sh_name" (cdr (assoc 2 elist)))' M0 f/ q& E! H0 q7 Z% {
- ;; Define action for tiles) N/ w: Z; ^/ o( U* u0 M- A
- (set_action_tiles)
" h4 Q7 O/ d# f6 c/ @" N5 `+ h. n - (setq dialog-state (start_dialog))
3 a$ e2 u3 d$ q5 u3 \9 _ - (if (= dialog-state 0)0 i! V0 Z2 `3 y, G# i
- (reset): E' w4 }5 ]( A6 x: {4 f" a' r" U
- ), B+ s& W2 P5 c1 ]$ J B% f9 W
- (if (= dialog-state 1)
1 g3 J- G5 l5 E3 a. y( I - (modify_shape)
a2 A# A6 z* o3 d* r6 I' | - )1 g; w6 f6 b4 |+ [% H% h
- (if (= dialog-state 3)+ Y$ f) X" W7 `+ y& g! A4 `2 f
- (progn
( j) _ g- B$ s) y - (modify_shape)& p7 r& T" V5 u3 y
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
7 q+ c3 z+ c: y - (ver_pt1 1)
7 _. T7 y I" p# Z8 l! B - (ddshape)
5 {0 l7 Q' V/ b9 X2 n8 t - ). t7 ~. q/ [; K- m& j; K' Q3 ^
- )
4 b' E3 ~! J0 R- S/ m( k$ m - )0 h: H0 H/ @( W8 }- R7 c
- ;;
% B' C. g2 T. N2 H+ g, j - ;; Modify TEXT or ATTDEF5 U: }, z3 E) h+ I8 Y+ K. N8 |
- ;;5 t. ?) {- L4 f Q- x) @$ x
- ;; Set bit code for upside-down and backwards setting
; Z! |: b) { E8 | - ;;/ X2 [$ @: S# }" X. `
- (defun code_71 (). V8 W8 v; _9 o7 O7 K6 E3 K( S
- (cond ((and (= bkwd "0") (= upsd "0")) 0)& {% R3 @" O( I/ ?
- ((and (= bkwd "1") (= upsd "0")) 2)) a7 `" u$ e7 i5 n
- ((and (= bkwd "0") (= upsd "1")) 4)
0 b, W# i5 U2 |& b - ((and (= bkwd "1") (= upsd "1")) 6)7 T) E' S. t( b
- )
3 ~, p' l, X4 L( {1 G" S - )1 }# u' @1 ?7 D3 F. v* T2 r( k
- ;;4 w$ z: r5 S7 U1 _9 e% W5 W) `4 j: E
- ;; Style action. Reset widget values to style defaults( }& z! f6 u! [
- ;;# r8 t# j# U. O. r/ h8 |
- (defun style_act (index / style-list)
, h3 X& |# w% b; a+ E; b - (setq style-idx (atoi index))7 J: |. ~* Q. t! n6 d7 ^# @+ N# R- d
- (setq tstyle (nth style-idx slist))
2 C0 x4 a, Y# V4 r! }- P5 h - (setq style-idx (itoa style-idx))4 ]" w0 f6 p: C4 b1 L
- (set_tile "style" style-idx)
B! Y) j- `8 ^7 j4 U- ]# R( q+ A - (setq style-list (tblsearch "style" tstyle))
1 `5 [/ k# x) N' p+ I7 {4 ]# G - (setq shght (cdr (assoc 40 style-list)))
* T3 y4 H2 {8 a0 p% d4 c: `, g/ L - (if (/= shght 0)
w/ I" |$ s8 _) K1 Z/ z - (progn
" m4 r V2 w$ k8 L' |0 ] - (setq hght shght)
& w' R0 A4 ^3 B& p8 L" \5 u; c+ C; a - (set_tile "hght" (ai_rtos hght))
$ `% u# p* \6 h, h/ `# a - )* ^ ? L& J, W1 M: a9 d
- )
3 z- j, P; e0 ?3 C1 j - (setq wid (cdr (assoc 41 style-list)))
6 j q; R, m& x4 a1 g3 A9 M - (set_tile "wid" (ai_rtos wid))7 Q+ ~# r& K& {# w) h5 }
- (setq obl (cdr (assoc 50 style-list)))
6 }' R3 u1 b8 ^. C% J - (set_tile "obl" (ai_angtos obl))0 S7 f2 _* u1 p4 {
- (setq bk-up (cdr (assoc 71 style-list)))
6 c9 E3 r! @% k- ?+ O# e( F - (if (= (logand bk-up 2) 2)9 ^, g' |" N$ Q: m/ k
- (set_tile "bkwd" (itoa (setq bkwd 1)))
, n7 @2 ]8 l7 R$ i! L% \) U - (set_tile "bkwd" (itoa (setq bkwd 0)))6 N! d/ S. X" n" r
- )
' N1 d4 \& r8 |# `0 Z. \1 k - (if (= (logand bk-up 4) 4)
' B& }$ q+ Y5 \% u9 X - (set_tile "upsd" (itoa (setq upsd 1)))" O7 @7 \* h3 k% p0 X$ w- s5 y- a, z
- (set_tile "upsd" (itoa (setq upsd 0)))
( y% R/ [" f b - )0 c0 G" M1 [, H3 U; e
- )
; o, \- ?; W4 f8 K, \ - ;;0 q3 `' A% d- x& J9 X" Q
- ;; Justification action. Set vertical and horizontal alignment variables,' s5 h r' S1 s4 j% |) S
- ;; grey out rotation and height if alignment = "aligned", grey out rotation
* L4 O e$ X! q% [/ M8 ^& O( e# _ - ;; if alignment = "fit".
* {" `: K2 B' }* y0 H7 I s - ;;
( ~( k2 U0 G- S' Q( I5 b. S4 L% q - (defun jlist_act (index / templist)
' N7 R9 ^# F) } - (setq just-idx (atoi index))
& i! e' J0 O( S" |% y0 ~ - (cond
& v# b7 [& w3 n3 g - ((= just-idx 0) (setq va 0 ha 0))$ C$ M# \& d) }1 C4 R
- ((= just-idx 1) (setq va 0 ha 1)), b X" X9 D$ D( J) Z
- ((= just-idx 2) (setq va 0 ha 2))/ I. D' l' B) j. `( i4 y
- ((= just-idx 3) (setq va 0 ha 3))
. ^ `! z# `* P3 l: ?1 S - ((= just-idx 4) (setq va 0 ha 4))" E& ~- Y' _2 b K1 f( y/ Z
- ((= just-idx 5) (setq va 0 ha 5))
* n/ o$ o p& J5 } - ((= just-idx 6) (setq va 3 ha 0)) {- C) B) Y5 J, F6 \8 Z
- ((= just-idx 7) (setq va 3 ha 1))
* Z7 _! P) F5 M a# m& i! R - ((= just-idx 8) (setq va 3 ha 2))5 x X; `6 c0 i
- ((= just-idx 9) (setq va 2 ha 0))) |. i% z) a* C
- ((= just-idx 10) (setq va 2 ha 1))
m5 |3 x. T' O# _ - ((= just-idx 11) (setq va 2 ha 2))9 ~# b( \& f$ p
- ((= just-idx 12) (setq va 1 ha 0))
{- r, Q; ~% H0 n" r% b - ((= just-idx 13) (setq va 1 ha 1))8 ^' u4 I$ z5 v, f
- ((= just-idx 14) (setq va 1 ha 2))$ ?& ]/ }2 v4 g6 z3 e* O; E ~3 a6 q" J
- )* e+ w% A' N9 \5 |! S
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
! h& Z1 `7 w& F) p7 R/ b - (mode_tile "rot" 1)
8 j$ D6 G( u* ?! F3 O9 R3 K$ b, [ - (mode_tile "rot" 0)/ O5 l7 |+ P" R! m( R$ W2 O
- )
% o8 q! G1 ]: q0 z5 ^ - (if (= ha 3) ; If Aligned text
* h j: H5 g/ @7 y- x - (mode_tile "hght" 1): W# o& a0 S6 Y& \: n# d
- (mode_tile "hght" 0)
`# l5 Z# M' H' a' K+ p9 w2 w - )! b3 J; A! W' l0 c. o/ J
- (if (= ha 5) ; If Fit text
( C5 Q$ p. S. u* z" v: K& X0 f/ o0 B - (mode_tile "wid" 1)# P4 L9 \# c4 t% W& P7 b
- (mode_tile "wid" 0)" m+ e7 {0 X7 O
- )
! ]! Z4 M5 ^3 F: I* Q& z+ P; D/ R - ;; Reset rotation and height if changing from aligned., g; [9 ]8 E2 b
- (if (and (= ha-prev 3) (/= ha 3))
1 ~9 o) L4 ^ J4 q2 `' L - (progn/ [. z3 E' o* L/ \ j; G
- (set_tile "rot" (ai_angtos (setq rot 0.0))): j) a% p* ^/ @% l1 H
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
; e- w. d) v6 z, S+ c - )
, j4 \! O" X \ b* Z9 h" {2 m - )
2 T% Z$ N/ d) G
. G$ L, r8 [6 R3 R+ G4 n- ;; Reset rotation and width if changing from fit.5 @# ^9 R+ i8 D# v9 z9 d3 e* @
- (if (and (= ha-prev 5) (/= ha 5))6 g" r2 T4 y$ B+ |
- (progn
/ d9 _3 m- k" f3 H, l - (set_tile "rot" (ai_angtos (setq rot 0.0)))% B9 l4 }/ l. q& I* w" u" `
- (set_tile "wid" (ai_rtos (setq wid 1.0)))6 q2 F1 ~0 f/ f! \3 b: b
- )
7 g2 e' C1 o4 T5 z - )
8 [; a( a& Y0 h) x% }4 u4 ` - ! k( M) X0 ~2 f
- (setq ha-prev ha) ; update ha-prev for next time: T# j4 x' ], m7 v0 u
- (setq just-idx (itoa just-idx))9 Y4 @* D% x* ^4 h- Z
- )
2 _( X; B+ k. j0 F3 q( g, @# g F9 q - ;;
+ S6 ~! T: b( m2 l b% m* N+ } - ;; Set intitial alignment setting based on vertical and horizontal alignment
" r: F5 `. w# R8 L* s& N - ;; bit codes.' K" _4 V( i Z! t
- ;;
# L1 Q; j. R1 F! I. A - (defun set_just_idx ()
$ S! p4 G _, U0 W& e4 t5 b$ K - (cond: n: R' @; }; I( }* N' o8 \9 z8 l* ~
- ((= ha 0) ; Horiz alignment = Left. n$ W8 n2 N8 H9 w( ?
- (cond
" q; j& b- v& Z; Y9 h5 ?; N5 c - ((= va 0) (setq just-idx "0"))2 ]: h; v I; H- F, y% C4 h
- ((= va 1) (setq just-idx "12"))
, w# W9 |/ o& t( M6 U0 x - ((= va 2) (setq just-idx "9"))0 }3 i' e ]& b8 o8 n! n) c
- ((= va 3) (setq just-idx "6"))
8 @% Y) x8 o. B5 N5 \1 z2 x - )* I( G R; _) F4 {: A
- )
9 p" t5 m) m8 f - ((= ha 1) ; Horiz alignment = Center
' f n' v6 z1 ]' e% u: y - (cond
% n6 I0 C! n3 |+ j - ((= va 0) (setq just-idx "1"))
- D5 n' [6 A) E5 _ - ((= va 1) (setq just-idx "13"))
( ]% E8 f/ ^' a3 \ - ((= va 2) (setq just-idx "10")) F a) F. [" O( m' V
- ((= va 3) (setq just-idx "7"))! C% D `7 x( f1 {8 D
- )* `1 V: r7 l- x D+ S# X' d
- )0 Y ]9 r: Q- K# c
- ((= ha 2) ; Horiz alignment = Right$ {; ?6 i. d0 `. X5 }, Z+ V3 C
- (cond
' n- Z( `; }5 m+ C8 | - ((= va 0) (setq just-idx "2"))
4 t0 C1 V; n- Z0 c& _7 d5 N - ((= va 1) (setq just-idx "14"))
/ s+ L" I- a0 D - ((= va 2) (setq just-idx "11"))
6 S% h5 L% ?5 C2 w' ~; f - ((= va 3) (setq just-idx "8"))
) d0 |7 m+ j7 e) N9 j* j1 N) l - )" _7 ^* j8 T1 R! }
- )
4 a% V; B+ e E - ((= ha 3) (setq just-idx "3")) ; Aligned
' Q. Z0 E/ z3 Q3 W) n - ((= ha 4) (setq just-idx "4")) ; Middle
. U" H) h) T: E' z; l; X - ((= ha 5) (setq just-idx "5")) ; Fit
7 u t9 \7 `8 P - (T (setq just-idx "0")) q* ~* {. L% F0 E) K8 I1 q* e
- )4 Z, V; v+ J3 ]& @
- just-idx/ c! G7 J. t p$ j: \! ~& y
- )
1 V/ }- ]+ W( ^+ W# i- v; Q7 n - 6 X% E: G3 w8 f9 A ]
- (defun modify_text ()2 y* B. B4 h. p" w; J
- ;; insertion point
) p6 ?- R- Z, }' {+ Z. K - (setq showpt (list x1 y1 z1))! y/ x, b9 D0 H% }: Q
- (setq bit-10 (trans showpt 1 ename))3 C4 S3 k9 ]/ i% m2 C4 K1 S/ s
- ;; alignment point- C7 D" ?# j3 z
- ;; for 'Aligned' or 'Fit', alignment point must be different
( T" V3 }. o1 N% [ - ;; for all others, use insertion point
4 W$ v' b6 M q4 W G - ;; (ACAD will recompute insertion point)
6 |; X& J$ N$ a/ h, F w - (if (or (= ha 3) (= ha 5))
W5 n9 J* S7 p8 z - (progn
, {: |# C# x- A0 B( }7 p5 a - ;; if no alignment point, fabricate one; e: i4 N3 G4 d* D8 p: T3 z
- (if (not alipt)
8 D- Z! b4 g8 {5 f - ;; add text width to insertion point
! v2 Z5 ]0 C- g- z - (setq alipt
1 s) g J- k3 m. L6 \+ f - (list (+ (car showpt) (car (cadr (textbox elist))))
v! D. x9 S& B7 ] V - (cadr showpt)& a: `: D) c% [. G% a5 U* [0 ^1 r
- (caddr showpt)
! d/ V I2 a% u/ k - )$ Q) B, h8 N( I1 [
- )6 U, B: y: |3 ^5 p# l1 [- ^
- )3 z9 {6 [6 R2 f# x- F
- (setq bit-11 (trans alipt 1 ename))
# I) U2 Y: X% X1 c+ e& ^ - )1 U3 R; f2 |% U M
- (setq bit-11 bit-10)1 s$ ~* c! Q9 r- a5 P5 O
- ), S: A4 D0 [- L
- (modify_properties)
) X- Z' \7 `, F1 T - (tempmod tstyle 7 nil)
8 s$ j" c6 {* m% j9 j, T, C - (tempmod bit-10 10 nil)
c* J+ S |" Y: R - (tempmod bit-11 11 nil)* N# l$ c9 ]* {) e
- (tempmod text 1 nil)! q6 g7 f* Q3 ]: b
- (tempmod hght 40 nil)
, I0 P4 H; U x" f* H - (tempmod wid 41 nil)! L; }. d6 P- g" ?6 s, [' g
- (tempmod rot 50 nil)+ o, [' j$ } m% v) t+ z/ p
- (tempmod obl 51 nil)/ [# r o& d! \& Q; ^9 [! V
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))
) h* d# c- x- J# s& A9 Q5 D v - (tempmod bk-up 71 nil)
0 r* O5 V6 _( U8 Z) ^4 H. m - (tempmod ha 72 nil)
! K: c* P3 r9 P1 i) t - ;; Attdefs use 74, text 73! d0 W+ B$ ? o; L d2 O% L/ g( \4 v
- (if (= etype "ATTDEF")
+ ^5 M/ b" V' C2 c; y5 G0 ^- k6 { - (progn
8 u+ ^! E; C; U: M - (tempmod attag 2 nil)0 N7 i* I1 l: W/ ` {! b
- (tempmod atprompt 3 nil)- w5 j' u. s9 t9 I) n* Y! k3 y3 T
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))- r3 x1 [3 `1 [
- (tempmod icvp 70 nil)
0 N7 c0 N$ I/ k3 h - (tempmod va 74 nil)3 y$ a" `) U" h$ ^) t' I' C
- )2 I, Z7 O, t1 E# l6 z4 o
- (tempmod va 73 nil)8 d7 E9 N2 w. t" w% z
- )3 j3 y8 R# I8 o2 }
- (entmod elist)/ o! d- ^: S% F4 D3 f: z9 O$ s
- )
9 c) r- E5 t$ M6 {/ z" @ - 9 M, `& _/ a# Z* Z* Y
- (defun ddtext (/ 2ndpt slist i)
9 @3 t* V. ] C! D3 [# l: Z - (if (= etype "TEXT")% }- m+ X1 g0 @; S
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
4 t# _1 H" N) N% J& u1 F - (if (not (new_dialog "ddattdef" dcl_id)) (exit))& ^% X* F+ I% H' R
- )" J# T' B: C7 ^7 d, u1 \
- (set_tile_props)( g" Y& G0 x4 @: W1 {! B7 }0 S; g
- (set_tile_handle)' U# r9 ^- S+ f& | K$ ]& g l
- (set_tile_text)* n, H Y& m7 w0 l% H
- (set_tile_tag)
: T7 w* H% V+ @, f" c. S5 v K - (set_tile_prompt)
. c( p) d$ z5 D6 F' R- I - (set_tile_hght)
9 R* z3 U) n: J" [; H - (set_tile_wid)
7 E: t" a6 O) L' n2 k1 L' x1 A9 R - (set_tile_rot); E' }8 i T5 X1 T* Q
- (set_tile_obl)9 D3 `8 \- N( f3 z
- (set_tile_bk-up)$ w, O- [- J" k" M8 c2 [
- (set_tile_icvp)
; F' L9 b" d! u- L- v( f' P - (set_tile_style)4 ]/ Y$ D7 |# f' M& V# q# u& @' T
- (set_tile_just)) W6 ]* E8 f% Z# M& l; O- T
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))7 w5 l7 V' E$ i6 V6 w3 d2 p
- (if (not (assoc 11 elist))
5 Y- @% @& m- \- u - (progn (setq pt2 pt1)
3 w1 o- ]& n* ?% _* ^' F9 u - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))0 M+ X# w* H5 H: N @! Z2 V
- )" G: K0 g" O7 w' F3 K
- ;;(trans '(0.0 0.0 0.0) ename 1))
. j1 T! }% l2 r - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
3 m0 s1 M. C4 F" X/ {/ i - )" H H7 i- h9 G' }+ j( H
- (if (or (and (= ha 0) (= va 0)) S* D3 \) F1 ?8 n5 S' \
- (= ha 3)
+ t1 h0 E2 S `! ]) [/ h - (= ha 5)
; T$ X1 @+ Z9 m. c; l. ?- T - ); [; s2 h& z4 D8 _
- (setq showpt pt1)
! S/ Y; k# O9 A$ ^( m - (setq showpt pt2)
8 f3 l; r1 z/ B - )
3 D1 J: z. o' H- q; J8 s7 I - (if (or (= ha 3) (= ha 5))
# U* ?; u; }, s/ v- X" R$ ?/ U - (setq alipt pt2)
6 m: u3 \- F% u0 ?; C( H1 w - (setq alipt nil)+ u+ B% g3 N/ Y [1 ?2 h/ N
- )$ c N" ?2 F- Q; }8 i" S/ {
- " X. M, I! b) H, O: F
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))* O8 y: [% v) E! U% u
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
) W4 c: Z( v; Q1 i1 S - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))5 ?) u- `! J% J2 d% ?
) G3 T v2 |3 c: s. T8 r* l- ;; Define action for tiles q, @# W/ B$ m7 S3 N& c* c! z
- (set_action_tiles); `, t" c% l9 i# \
- ;; Set focus initially to the text edit box.
6 T& Q8 t6 O; c5 m* c& [5 h7 B2 a - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))( J+ f, S1 S) J4 B2 j8 ~
- (setq dialog-state (start_dialog)): b& W0 T4 m* X: l
- (if (= dialog-state 0)+ V. M* f9 O/ A! S5 r6 }
- (reset)- A& C' I7 p9 j2 E/ D8 C, X
- )! a* c' b/ X N' z7 _' V" c! T
- (if (= dialog-state 1)
1 A% Y/ Q' v4 w* W - (modify_text)
( N; r( ?$ H' w d) A3 K - )
5 M) b( z5 n4 a" I! s! U - (if (= dialog-state 3)' w4 s2 T' s o9 M: n1 m/ `5 f
- (progn
9 \, H6 A; D2 j! F _ - (modify_text), Q0 [3 Z8 t2 e' D% R
- (if (or (= ha 3) (= ha 5))! ^4 d4 N9 z* z+ }4 g& | l
- (progn
c# v! s& |6 K) ?8 p A - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: ")). ~! N( j: e( E
- (if (not showpt)
# J! t0 v5 F8 O - (setq showpt (list x1 y1 z1)), u! |1 B: b" y! w" V
- )8 l/ h4 s/ \( S* N/ c/ z
- (setq 2ndpt (getpoint showpt "\nSecond point: ")), a2 X) f u. o% M
- (if 2ndpt
6 l# _% }: ?' }8 s - (progn, t6 K: [# V5 [2 P) X' P( h+ a
- (setq alipt 2ndpt)* d w' ~4 G( u, J" S
- (tempmod showpt 10 1)
9 F) W& H, B' g0 s# w& e9 J2 B - (tempmod alipt 11 1) A# b2 y, @+ k4 l
- (entmod elist)
/ M: C0 N7 E9 i3 @2 X* _ - )
6 Y9 [: M( }/ x5 q0 F - )1 V2 N7 N& z( [- N1 E" k
- (setq elist (entget ename))
! H# V7 L& y D$ K- K9 {, z - )
. A b' n* X' N5 e - (progn
3 D7 @7 L5 J: J4 ], L) D& F0 N - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
" [3 H1 N* R7 ?7 D- D( r9 N - (if showpt
& n) W L' F2 K! ]$ Q- Y - (progn0 X5 s1 Z4 ^0 k2 N' I% R6 u% @
- (if (and (= ha 0) (= va 0))0 V& t$ R7 [0 l$ ]
- (tempmod showpt 10 1)
: P: e/ Z% O, k7 T; y2 _0 t - (tempmod showpt 11 1)" c: C$ C2 P' E+ n7 }0 m1 b
- ), ~4 p* T; Y J- h9 u% b! {
- (entmod elist)% m) U' a4 q! o. }, y
- )
1 @( p0 a. h( _5 Z6 y - (setq showpt (list x1 y1 z1))- i! \5 H& @0 {- E
- )
- A8 Q3 f P7 b& T - )
0 \ w2 _- y m' \7 d5 ]6 z5 R* H - )
- ?; Y! c6 M+ l5 e7 v - (ddtext)5 P0 T4 D8 c& e8 S3 X" U, ]
- )
1 D* C" c0 T& v5 G& n - )* ]( U- G& R2 _2 O# y1 e0 O4 n+ ]
- )
4 F7 g3 M9 q' M! _9 Y# k - ) a2 I4 ^( x! S$ B" j
- ;;
9 `$ h( @& N* ]/ G# h. L - ;; Modify MTEXT
8 U% X% t$ K8 K" S1 P [3 Q$ P6 A1 U - ;;
: }; P1 q, J& C# f$ l- f" |- S - (defun modify_mtext ()
* O2 k2 A5 Y- E9 C) [; O - (modify_properties)
; o- n# l! W$ r- f0 F8 M8 ^ - (setq pt1 (list x1 y1 z1))
: {4 H; f( s& s/ t$ x0 | - (tempmod pt1 10 0)
5 P. ?/ _" E& a& y3 Y5 n+ M, `# X# Z - (tempmod text 1 nil)
* q8 }) R# Z1 s, e$ r' A2 X& t - (tempmod tstyle 7 nil)1 ]7 p7 j4 r9 C% q$ _' p
- (tempmod just-idx 71 nil)+ E& K' e0 w& v3 W$ Q9 p- h& `
- (cond
( a% L2 H0 i# Y( j. }) @9 R0 \( ^ - ((= dir-idx 0) (setq dir-idx 1))
' }# i m. `! y - ((= dir-idx 1) (setq dir-idx 3))
, c1 J3 ^9 B7 r6 F - ((= dir-idx 2) (setq dir-idx 5))+ b/ [3 v* b5 J
- (T (setq dir-idx 1))" a, H$ _: r& _3 F
- )
1 \$ X7 N- x4 Z. e# L, l$ R& f - (tempmod dir-idx 72 nil)6 m- `- J. E5 n3 F- V5 `- v2 q
- (tempmod hght 40 nil)
4 B6 v0 k6 K4 R - (tempmod wid 41 nil)3 C* M* W4 G, b1 n
- (tempmod rot 50 nil)
0 I2 c: x. c" ^6 c - (entmod elist)% C, g: X! ?2 Y# Q' h3 s) {1 ?
- )
- F, g j# a- _* g2 o+ V( B
# l+ ~; E5 m r- ;; Set MText text style; r/ T1 f6 s( Q) \* w* ~
- (defun MText_style (index / style-list)& Y: U0 v3 L2 T! o) C
- (setq style-idx (atoi index))
[! W% i4 [! O7 J8 V; t- L - (setq tstyle (nth style-idx slist))
5 A7 A" V6 n7 ^ - (setq style-idx (itoa style-idx))
# I+ D5 H0 Y+ X2 Y3 W6 @ - (set_tile "style" style-idx)
1 ~3 x6 x C' B0 g' W0 T& H" R - (setq style-list (tblsearch "style" tstyle)). D0 C0 _7 u2 s2 j) t+ u/ v$ k
- (setq shght (cdr (assoc 40 style-list))) n, S0 \* q; ]/ C9 f
- (if (/= shght 0)1 }+ m, L+ i( ?! t; r6 e
- (progn
, |3 u9 H3 R2 H& f n) J# i - (setq hght shght)
0 v3 r- _4 O* z7 P3 ^* L8 b2 n - (set_tile "hght" (ai_rtos hght))
; |5 [' J/ J: Z' m2 A) M% u - )% r9 U+ R ^; ^- h/ @1 g
- ): N6 `4 I T: X% c/ V
- )
/ u S) N& d3 a; w, \- [
. {6 A% Z( N4 u$ o8 C( [; L7 _ `- ;; Run DDEDIT on given entity, working around possible re-entrancy$ O8 e! ]( a) o" i
- ;; problems with MTEXTED4 ^7 E3 E" m! {
- (defun safe_ddedit (ename / orgMTextEd work)
5 S) T. m6 g: d) r - (setq orgMTextEd (getvar "MTEXTED"))
! X: G" d: m4 _: d" e v& j - (setq work orgMTextEd)
) C* a; V. X. X4 V - (if (= ":" (substr work 1 1))2 i7 ?+ z$ q! q, ^ ^* \4 ~
- (progn0 P% l- B3 t6 d! u7 D, r% @
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
7 |: f7 ^+ c( F: F. t - (setq work (substr work 2))/ `; U; a# q* p3 k' v# K+ x6 x
- )
& u7 j* n+ P+ {$ o - (if (= "#" (substr work 1 1))* f& A; {. l( z* W0 @. ?" a5 g
- (setq work (substr work 2))
" j% e8 x7 z8 H. |. D - )
8 ~2 e( T' x8 Q, X# l# }! x, Y - (setvar "MTEXTED" work)
( T% h2 c! s, |! f" t1 ^% g - )5 S5 W1 v' z5 \' h! H6 l
- )% L* Z. C# h+ P: b" K
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
1 z3 B, S% K I! t - (command "_DDEDIT" ename "")
W" C+ X5 F6 M - (setvar "MTEXTED" orgMTextEd)
7 \. [8 ~& s5 |4 ` - )
- r8 j1 X# o& n$ e3 k
4 q- [$ L: K4 L" J3 b+ T- ;; Verify MText object width5 i" ~& k5 h* g3 o# w& ^
- (defun ver_MtextWidth (value)+ t. C1 ]6 M6 O z
- (setq value (distof value))
0 N1 A& m F9 ~: C9 c - (set_tile "MTextWidth" (ai_rtos value))
, Y4 n: d1 N, w- \/ x) b - (set_tile "error" "")* q0 p8 x! V4 D5 @7 E8 E7 l8 T
- (if (< value 0.0)+ E5 ?$ v U* p i
- (set_tile "error" "Value must be zero or positive.")
* I: a* s( }. \ - (setq wid value)5 ^. ?# N% q9 `# [) W
- ), G* r( p- X! L8 b9 y: C
- )
$ j, _; V7 Z. h3 l: v
, c& x, Q6 `* A& \% U I- (defun ddmtext ( / gc3)
7 ]( X6 w7 M' D/ X: i z, V% v - ;; Get dialog
! ~" R( F/ e. M* l. w - (if (not (new_dialog "ddmtext" dcl_id)) (exit))
$ `5 m# c, Y! q - : V8 m' {8 k- K. T- C' X% d
- ;; Load list boxes
( w0 \% @3 E, X4 B; t( f - (start_list "MTextJustify"); E$ X6 Y) x& b) H6 D
- (mapcar 'add_list '(4 t; s% a! w g( }
- "Top Left"( I# B, U& `9 j ? z' V
- "Top Center"
$ i/ ]/ p: w9 b; e C/ C3 l - "Top Right"
, i% ?* L6 @' h, p- | - "Middle Left"' l. ]' |6 E* y6 U: H- p1 Z) N9 ^
- "Middle Center"4 U0 ~9 N- E# X. q I4 M9 n
- "Middle Right"7 r* j3 B2 N. Q
- "Bottom Left"
1 F# F4 E( q; k: I' l! Q# R N - "Bottom Center"
) c: E! W7 `$ O# P& v; t, [ - "Bottom Right"9 N7 c" k' h# e% L; @% S& i8 g% ]
- )! R4 J* R/ I1 b4 N3 r
- )8 ^7 V, {+ z' {* q1 @# Q
- (end_list)
% \( k% F x' b* G5 N( n6 U - 6 h% U/ D& l, n3 \ t
- (start_list "MTextDirection")
7 d$ c, d, W6 H/ d, z& j - (mapcar 'add_list '(7 ^3 U& j% T# K
- "Horizontal"
- c9 y. @4 o; {9 i1 f ?9 b4 f - "Vertical"
, O, o- ]0 C+ C: m - "By Style"9 v2 C: w5 z' k' ?5 ]9 W
- )
) A1 h( Z; r& z" h - )) R/ }3 I. ^3 O+ C$ f4 i8 g: k. W
- (end_list)% I" m+ A* s2 l3 S
- 6 c! G$ H4 W4 L1 v% K9 V( Q& e! G
- ;; Set initial tile values. z/ R. f/ q5 U$ X, I
- (set_tile_props)
2 }& Z: L7 o! O. z+ r& F: ? - (set_tile_handle)
: ^" k; n" g3 q& c: D e* O5 y - (set_tile_pt1 0) i: V2 M9 i- _' g
- (set_tile_style)
1 ]/ R: r4 @; n - (setq just-idx (cdr (assoc 71 elist)))7 d* k4 g/ c' y# F
- (set_tile "MTextJustify" (itoa (1- just-idx)))& \8 m3 |* {- N% x
- (setq dir-idx (cdr (assoc 72 elist)))) [8 h% f! g. I$ _! u- _
- (cond
- I3 Z _* m; z' v - ((= dir-idx 1) (setq dir-idx 0)): R* `: B0 h( G, k
- ((= dir-idx 2) (setq dir-idx 0))
( W' z3 q9 } @1 m: |8 K - ((= dir-idx 3) (setq dir-idx 1))( B1 q( ~+ a+ S4 x, S
- ((= dir-idx 4) (setq dir-idx 1))' e& k! i4 G- \
- ((= dir-idx 5) (setq dir-idx 2))
1 E9 r0 X$ E/ w9 o" R& a - (T (setq dir-idx 0))
+ |, _' P5 P; n* |8 b' o! C9 l - ): c# k0 g3 v9 p1 F
- (set_tile "MTextDirection" (itoa dir-idx))
+ b; m- _, l, v+ j0 ?. I - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
/ I0 E) }, y: m' L- E - (set_tile_hght)
' E* O3 Y$ t0 U! l9 v+ [& a - (set_tile_rot)' ^) V9 H T- ]" _9 N2 b0 A/ ~
3 `) W( T8 ], p" V6 d- ;; Set edit box, disable if too long8 I/ K1 t# ]$ i1 Y4 ?6 D* [3 p
- (setq gc3 (cdr (assoc 3 elist))/ W: t) J8 ^8 J1 D2 r/ @3 U4 P- ]
- text (cdr (assoc 1 elist)))% Z, D. m- q1 ?: [0 ^5 P f6 u e
- (if gc3( u) h! G/ P0 v7 r U6 v
- (progn ;; Text is over 250 chars, disable edit tile
0 s/ n* w; x9 k3 o - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
$ a# p$ ]2 b& C) l7 p7 A - (mode_tile "t_string" 1)
# w# D' y$ U5 y B9 F+ M - ). O+ z M# B# k4 p0 A
- (if (> (strlen text) 80)5 h; {6 B7 O) A, b- z
- (progn ;; Still too big% z) n% o( K1 W+ g, C
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
6 j! ?; r+ B5 `$ {3 ~* o - (mode_tile "t_string" 1)
; A& y6 f$ w4 m0 {7 R6 c; ` - )
9 u9 g) U# k$ j) d7 N, V4 a - (set_tile "t_string" text)
$ m+ b1 j; ~# ~, j2 l. N W - )
; l, ~/ B- J; z5 a. f; G - )
, d/ ?' i4 N P/ p5 L+ Z( n
/ _6 X6 R7 b d+ g2 E- ;; Define action for tiles
1 f5 M) {; D7 h) T, Q - (set_action_tiles)
8 }7 q0 J8 T" V0 m. D# s - (action_tile "style" "(MText_style $value)")1 a O2 e1 n! G ]! Y+ p! {
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")
$ h6 @% j) `5 a+ { - (action_tile "MTextEdit" "(done_dialog 4)")
7 i1 u* H2 ^9 M$ Z/ o3 I' Z; { - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")8 C; K0 x' M; d! M# c! l& `$ i
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
+ ]1 r0 [! [ y" p1 ^- T - 1 L4 c" o, L2 t( A
- ;; Set initial focus to text edit box.; s z, t4 M: {) I
- (mode_tile "t_string" 2)
, N6 o, y. E" p
+ Y4 }+ y1 Y; k" t- ;; Run the dialog
( J- V- p0 g8 j( c - (setq dialog-state (start_dialog))
. d4 C# O/ ]4 c8 O. z- q0 \7 ], F - (cond4 n6 `9 ?8 H/ B( \; T2 M9 w# z
- ;; Cancelled - restore saved data9 B I- f B$ }- R
- ((= dialog-state 0) (reset)). F8 t) c5 g1 q. {- Y3 w
- ;; OK - save new data3 C1 b2 h+ J. u. Y$ Z6 a9 j
- ((= dialog-state 1) (modify_mtext))6 d$ C- H+ V. @' @: y/ Q
- ;; Pick new insertion point8 c% |. R" z8 v3 Q6 _
- ((= dialog-state 3)3 N5 J4 u( W. {
- (modify_mtext)
9 I( x, f* G" ]% A% s% U5 H - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))# X* ?, X# y" G- o$ i d, C
- (ver_pt1 0)
% U% R M) |. [$ O+ _) C - (ddmtext)
# \0 `) I# {; r0 k( [ - )
( ^1 E8 h4 P6 ?$ ?) g - ;; Run full editor
. |9 l* g. u9 P7 H3 U# y4 V0 _ - ((= dialog-state 4)
& Z5 r+ e _. [9 Z2 T - (modify_mtext)+ M( _) ]% L: `6 ^1 w& }! }7 b% J
- (safe_ddedit ename)
+ E& B( i6 A9 o- N* _$ t! c - (setq elist (entget ename))( w7 j0 p' ~4 T4 j6 { X
- (ddmtext)
1 d( c" L! u% x5 ? - )
# a; k+ A J( x& C - (T nil)
# n8 c1 a% G. a/ D) B% j6 [( i8 L5 l' ] - )1 X+ z( h F+ t3 S' Y. G1 u+ g) M' f
- )
7 O; @3 o3 ~/ `( \6 T$ W1 f# V4 T
4 r% [3 K* U9 J _- h$ ^- ;;$ ^5 d4 p% e7 O3 T+ ^* V
- ;; Modify VIEWPORT' D. @: C' ^' s% E N, D4 [
- ;;- L( w# }9 R/ E7 }' I
- $ Y+ \# o' }7 }2 C1 L
- (defun ddvport ()
1 ?* }9 {. ?" ~& t1 s" D - (if (not (new_dialog "ddvport" dcl_id)) (exit))
4 F, Q) b6 l& Q9 c' { I - (set_tile_props)+ h* ]# n9 J* a7 l6 _1 d
- (set_tile_handle)
0 g7 x" K+ S7 \ - (setq vpt (cdr (assoc 10 elist))): w4 ?2 I& d1 D A! ? C
- (set_tile "xtext" (rtos (setq x1 (car vpt))))/ d! F' F: S% h. Q; V: j7 {
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))# h3 d) H- h. o5 H1 A3 G i* J) Q
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))' c, ?* u' @& Q. k
- (setq wid (cdr (assoc 40 elist)))
6 ]7 t6 n. M& j - (set_tile "wid" (rtos wid))+ [% ~+ J2 g3 O) l
- (setq hght (cdr (assoc 41 elist)))
/ N/ H s7 y* }0 ]7 e3 ~+ v# B" c - (set_tile "hght" (rtos hght))" l1 _: G0 c& D% \6 }
- (setq vpid (cdr (assoc 69 elist)))
/ C6 Z) H7 |( \* k1 E2 i2 f/ m - (set_tile "vpid" (itoa vpid))
- L- T8 { g) ^5 r5 C - (setq on-off (cdr (assoc 68 elist)))7 h* B7 U2 x* @4 k* s+ L1 c
- (cond! I, ~ k; a7 i
- ((= on-off 0) (set_tile "on-off" "OFF"))
9 A7 U9 ?( A: G+ _; h( { - ((> on-off 0) (set_tile "on-off" "ON and Active")). z& b; k" V8 f& ]% n# D
- (T (set_tile "on-off" "ON and Inactive"))7 X1 ]9 p/ o; c! @
- )
8 g3 j+ Q2 U( J9 B5 l! t - & h# A4 D" b5 [
- ;; Define action for tiles6 \4 n5 Y' f4 }5 T% C1 o- y
- (set_action_tiles)' M- \* H) `* ~5 h3 z1 H1 r
z" K! C) {: {) r- (setq dialog-state (start_dialog))# N% x! N6 i8 p1 W+ c- ^1 i, T
- (if (= dialog-state 0)" a! ~9 p, m0 x3 A8 G' y! I
- (reset)" G( E0 |; S# X9 M2 Q7 c7 b0 T8 N
- )3 ?7 n4 Q! J i3 x$ V
- (if (= dialog-state 1)
, }( [- z% N9 X0 K% h- }5 c5 W - (progn
2 X! c% f" L) C! \ - (if (= ecolor 0) (setq ecolor "BYBLOCK"))6 a/ B! @* R8 G* w
- (if (= ecolor 256) (setq ecolor "BYLAYER"))) O" o" y! K8 x, P% f c; G
- (command "_.chprop" ename ""
& G5 D+ \0 Z( f: _% p' r0 J( F. j! w - "_la" elayer2 @ C0 i2 a& c8 v: K+ U/ h
- "_c" ecolor ""
3 E, }: [( {! D9 l5 U - )
2 q' N4 z9 _* _0 h" t$ y - )
+ J1 D4 Y5 E& }! X/ r4 ~ - )
- m5 ]+ L2 J6 l" v6 a - )+ k, h4 _. C( c, j
- ;;
: e5 }0 E1 O' l# n! e - ;; Modify POLYLINE
/ W6 F9 ?% A+ N- G1 F% D8 q- J - ;;
2 b/ F$ T: I" Q1 X0 z. U' ~$ A - (defun modify_polyline ()
; Z" {7 P( g( A9 C: v; v - (modify_properties)
( N0 o0 A1 r) h2 D) X% V5 [, }0 ] - (if (= ltgen "1"); U: y6 Q O7 l! W9 E& M" L. k
- (if (/= (logand bit70 128) 128): m- S8 e$ |, e
- (setq bit70 (+ bit70 128)) d. A+ i. A- ^* h4 m) p4 y
- )) l) U4 p* f b- J/ E
- )
8 H+ V" `$ ^- L5 P9 p - (if (= ltgen "0")
) a+ x5 \ b' F6 x O, A - (if (= (logand bit70 128) 128)/ f- X. p" e7 F" x2 z1 c
- (setq bit70 (- bit70 128)); w6 ~9 ?7 [0 d7 `1 {1 |7 R+ E7 p7 T
- )
9 k) D6 _/ ^. K9 I - )1 m/ v) Q/ u" r4 ^' G: X
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
: U: p7 K; `+ g0 s - (entmod elist)) J( {% d, K% U2 U. j& [" |
- ;; Added to take care of updating Vertex information for color8 _2 P" e5 E$ _ {, a( d
- ;; and linetype.
, ]* B- H/ K/ X* a( g* _" b; h; K" A - (setq save-ename ename save-elist elist)/ E# k& h$ U# @
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
1 [' }' u/ {( M - (progn
% f& E3 ~* H M9 _5 O. ~3 A - (emod ecolor 62)
x, f# g' q9 N# N' f - (emod eltype 6)
8 w* t: m) w7 Y - (emod eltscale 48)% [6 V# ^9 a; T1 ~0 i. F
- (entmod elist)
. ?" k y. Y7 y: Q, Z: s/ }4 h9 b - )
" @8 x) `* ?. Q - (progn- t3 a6 \3 |& q9 W! J
- (setq ename (entnext save-ename))
3 `" r0 @$ S0 `5 } - (setq elist (entget ename))
' t) h0 @# U. y* C) _8 ?
( f4 e, N$ U& b- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))6 f% x- U, X. W; x
- (emod ecolor 62)3 R& y# a7 {9 c
- (emod eltype 6)1 v: \1 L$ s1 X) F$ n
- (emod eltscale 48)
8 {. n; F7 D" f' G/ P - (entmod elist)/ l- m( \: \0 D' R
- (setq ename (entnext ename))
$ P/ H. X# n5 J$ I. O- o - (setq elist (entget ename)): I% _) T% O4 i' I1 S" V
- )! J( o) ^$ I% G4 j. F
- )
+ X( u0 u/ I" E+ N - )/ J6 B0 g7 n* ], `
- ;; Update the SEQEND
+ }8 L1 Q# d1 u: I% [6 m% Z3 u - (if (= (cdr (assoc 0 elist)) "SEQEND"); X4 O2 w5 l/ j/ U0 e
- (progn! M j$ g( o2 t0 T
- (emod ecolor 62)
- c0 `* Z/ u& a. m: C0 N - (emod eltype 6)& v; A# S& _5 |9 O S* X
- (emod eltscale 48)2 T0 k5 u, a$ n% P, A/ x
- (entmod elist)$ @6 H6 a2 Z7 K, ` X" M* B6 Y, E
- )1 @) j) \9 C. P9 S6 i, ~* O
- )
: D& c' p* d- [4 Y - ;; Go back to header.2 c0 {$ b: k4 c; K9 x
- (setq ename save-ename elist save-elist)
6 f9 ~* `2 H) e) P( _" D4 R6 v: } - 5 m3 T! d s/ X0 s
- (entupd ename)
$ s( U/ U1 w7 f S - )
6 I+ Y+ t5 v8 a
n4 p% V# ^6 O, ~! y# X- ;; Increment vertex. Set tile values to next vertex
. x* \2 J0 ]8 G2 Q - ;;0 l/ B: f: q- L
- (defun next_vertex ()3 ~% c! [% D2 z+ N' x
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
7 C+ O( E5 C$ j4 T9 k) u - (progn
, [* }! o- h/ g" N& E- t7 e( N A ~ - ;; If the counter reaches the number of vertices,
1 I( a$ E9 }5 r - ;; roll it over to zero again.% z4 ] m2 U$ h9 ]+ P1 q# j
- (if (= ctr (cdr (assoc 90 vlist)))6 R1 x/ T$ B2 G3 J4 K
- (setq ctr 0)# v, }& e0 i% J' t$ ~+ c
- )
- p5 r; C; d/ a - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
$ k+ y8 f2 f6 j4 j8 I$ Y - (set_tile_vpt pointype)
, K5 _& ^+ z+ w* k; \ _9 O - )
. [- k% M- U; F5 N - (progn ]9 \8 w& o. G# N2 z
- (setq vname (entnext vname))
0 M8 ~; W+ J8 t- V# [' v, } - (setq vlist (entget vname))
0 C1 I6 o0 M0 d- R - (if (= (cdr (assoc 0 vlist)) "VERTEX")
& f1 @+ s4 x1 P- o: a* k - (progn6 R: l2 g; j% L" T/ ^9 ^
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))2 A4 Z1 Q9 O# K; n
- (set_tile_vpt pointype)
" ?- [* [/ S% T0 w - )3 S! g( M* y: x
- (progn. J7 c7 ?1 O# g2 b- t
- (setq vname (entnext ename))
3 P- K4 s. q( r# e3 ^+ I; q l - (setq vlist (entget vname))
) T% x! I: [ a2 q N2 f2 P. l* ~3 R - (set_tile_vpt pointype)
& Z, P( z! o4 Q) T0 q/ | - (set_tile "ctr" (itoa (setq ctr 1)))
; `" ]3 n9 c* y. Z - )7 p1 b$ K' T' q% E7 [8 u. A
- )2 x+ p, j) C# w
- )( n8 T6 r6 w C
- )
- D- u; T3 ^/ @7 a1 j4 I+ @% S) s - )% {3 r7 v3 N/ L `! c
& J. U- g$ h: d, G& k- (defun ddpline (/ oldecho)7 ]! T. U% R3 s7 }. k
- (if (not (new_dialog "ddpline" dcl_id)) (exit))8 ]: P; n! x5 n$ X3 H" k: g
- (set_tile_props)5 |2 _2 L8 k" U) u3 i: i" @
- (set_tile_handle)5 e& `0 o: L7 P: o% @1 i" Z
- (setq bit70 (cdr (assoc 70 elist)))' R$ ]" j; Y9 ]% l0 S% W+ v2 |9 X
- (setq bit75 (cdr (assoc 75 elist)))2 ?) K6 l4 ~6 P! @( v
- (cond
0 ~" h4 @" j5 U+ y - ((= (logand bit70 8) 8) ; 3DPOLY
: e8 p6 c1 c2 n6 V: w. n8 ]& m - (set_tile "ptype" (setq pltype "3D polyline"))* X4 @( {& Q" K! z
- (setq pointype 0) ; WCS or ECS point values
7 g X8 s5 f: I- o - (mode_tile "fit" 1)3 _& E: }/ H9 o. \. B2 S( p2 P
- (mode_tile "mesh" 1)
/ C {2 g- A4 d - (mode_tile "bezier" 1)6 E9 h# {( K/ _. `7 p; G
- (mode_tile "ltgen" 1): }0 P9 ~1 N! t6 S. R- ~& E
- (set_tile "none" "1")
, _; j1 }9 ~4 e2 d7 W - (set_tile_closed)
, Z! t Y4 F& D: y - (set_tile_fitsmooth)
1 C- q6 l: D K, @ - )& u5 k& d6 w& R9 v$ }/ }2 c- Y5 Y
- ((= (logand bit70 16) 16) ; 3DMESH! M O% x$ [& ~' C1 t7 ~9 k) t
- (set_tile "ptype" (setq pltype "3D mesh"))
* f% I8 `* B( U Z' q8 Y+ f - (setq pointype 0); @$ o7 f& Q( n; r
- (mode_tile "pline" 1)5 T1 \) g+ R8 t
- (mode_tile "fit" 1)
4 w- h9 g; m. ~5 u' S - (mode_tile "ltgen" 1)
+ x, y2 c& Z- [) d& p0 J- N" ] - (setq m (1- (cdr (assoc 71 elist)))) K. S6 u1 F/ S }: g3 r) L
- (setq n (1-(cdr (assoc 72 elist))))
$ x1 U4 g( D, w7 \2 e - (setq u (1- (cdr (assoc 73 elist)))). J$ F7 j _9 B P
- (if (< u 0) (setq u 0))
, z' t- H$ N. t, V: x) V1 J) z2 R1 ]! s - (setq v (1- (cdr (assoc 74 elist))))8 Z5 g* A% _. ~0 J
- (if (< v 0) (setq v 0))" v+ [0 f c5 @
- (set_tile "m" (itoa m))4 c, c' l5 J% K. u7 X+ J7 c
- (set_tile "n" (itoa n))' h. F3 k$ Q k' C6 u
- (set_tile "u" (itoa u))
. Z% m' W3 T, ]7 | J4 K; f' u* Y - (set_tile "v" (itoa v))% {: b- p1 s# H/ h5 l. c& ^
- (set_tile_closed) u* E5 X8 v7 P( H2 P1 Z
- (set_tile_fitsmooth)# w6 k4 B, k5 \
- )4 ?4 p# R; w9 E8 p' M
- ((= (logand bit70 64) 64) ; POLYFACE MESH
3 `/ h- a3 z4 v! T - (set_tile "ptype" (setq pltype "Polyface mesh"))
& C- M; H- Q4 Q1 @; f - (setq pointype 0)
% a0 W' A4 I: K+ r' M* D - (mode_tile "f-s" 1)
* L% q* X; x$ A {. P) |- L1 X9 z - (mode_tile "mesh" 1)9 s) i+ _" P; O: _
- (mode_tile "pline" 1)+ S H/ |1 m) b$ s6 B7 U& n/ h) W
- )
+ I! j4 v; Z' J, j# Q - (T ; 2D POLYLINE
8 i2 u$ \# G/ [( t - (set_tile "ptype" (setq pltype "2D polyline"))
L! Q9 h# A" t' n+ F - (setq pointype 1)
( I5 I3 K, u7 y+ I3 d# ^3 S# D - (mode_tile "bezier" 1)
5 ?; a$ [4 T7 \/ C - (mode_tile "mesh" 1)+ b6 f9 W, m0 Q& A
- (if (= (logand bit70 128) 128)$ R- N* F `" z
- (set_tile "ltgen" (setq ltgen "1"))5 ^" }) a I. p: w& z/ D
- )4 }3 V& F' J% a; i, ?' ~
- (set_tile_closed)- l) e8 q9 B) g1 O3 V/ ?: j
- (set_tile_fitsmooth). S+ G. x) }* Y" o8 |/ z% p
- )
2 h+ J7 F; ^: L* {* J( g* P - )
( u+ m3 p- Z- ]3 D - 2 N; K8 b5 L- h, e
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
+ g# P6 O4 d1 L" h% `9 B8 f - (progn/ z) F3 `/ M$ m, K4 j8 s2 k
- (if (not next) (setq vname ename)), ?# F5 C( J6 S" E+ L/ q
- (setq next T)7 ~ \: K6 r0 X
- (set_tile "ctr" (itoa (setq ctr 1)))
: c! `5 m% i. Y% E& g% u' O - (setq vlist (entget ename))
6 I* O: p o' O% B) `2 J - )0 \8 x6 `. ^8 B/ x: h) J
- (progn
' U0 C4 A. {" Y" z$ e% ^ - (if (not next) (setq vname (entnext ename)))
* m( `% O. ]( c1 c - (setq next T)
( `0 g6 G8 l" r! h3 k - (set_tile "ctr" (itoa (setq ctr 1)))
1 f1 _3 F f1 e# Y3 _0 A1 r; e - (setq vlist (entget vname))
9 z" [' p, t% W m4 D( n* T3 f/ s0 R# c - )
5 T) ^! R- C6 a0 e( r4 s - )2 W8 i! B9 X! r& u3 S7 V
- (set_tile_vpt pointype)' q8 \3 j0 n* c1 W. x0 w# J
- ;; Define action for tiles
8 L2 l4 c$ L& A: d# K - (set_action_tiles)
. \$ \0 F4 Q, a! f4 B- Y- M - (setq dialog-state (start_dialog))+ z( }2 Y9 @% {% s% [3 D+ X
- . b- y( l `/ |; R, s: n7 j
- (if (= dialog-state 0)
& p5 Q$ C2 z. N' s' F7 J - (reset)
0 G9 R: ~# L, @- F* X - ), ]; z# M* f/ H* }
- (if (= dialog-state 1)- k! T0 l; Y7 ~0 @, e! d) Q# R
- (progn* Y5 [4 P% W7 {/ L) i
- (modify_polyline)( W, W1 [7 t; c+ W D9 v
- (if (or (= pltype "2D polyline")
) H& w$ u: W4 {7 S* K; L - (= pltype "3D polyline")& N% m) C1 O, R* Y) J
- )
2 n% `/ K0 U& ^6 _ - (progn( H& w) h" y' G" ]6 l, K+ v2 i
- (command "_.pedit" ename)# s7 Z9 d: \9 L: v7 ]
- (if (= spltype 0) (command "_d"))" G/ e" T* r+ c# w3 h/ q4 J
- (if (= spltype 1) (command "_f"))& l% |, \/ _7 n+ ]
- (if (or (= spltype 5)
1 {2 P3 a! w' ]- d( l2 ] - (= spltype 6)8 @( T" P# D9 E( O
- )/ I& x+ k) N' N B
- (progn
# J3 o) Q3 i9 I+ s/ Q, s3 b - (setvar "splinetype" spltype)9 s0 p: M4 i- y y+ @
- (command "_s"): n8 a' m) p9 t; A- t' Z
- )9 y- u5 r& D: a6 s
- )
! A& k0 y3 S5 P - (if (= closed "0")
* P3 X' ~" ^& x- _6 S: s/ O% u - (command "_o")* J1 v2 ^$ O; O0 z5 g
- (command "_c")7 K% j! K# L) i, b2 G% L8 W; v
- )
; H ~, @2 S9 O: U1 H - (command "")7 B+ F; q5 R7 r; J, `" Q6 e/ `: Q! e
3 ?# \, m5 T1 a" r5 r2 e- (if (= spltype 0)* u* s# U% |# B$ w" k7 W
- (progn. o* k$ X; t; ^) b
- (setq oldecho (getvar "cmdecho"))6 d: G, L2 b1 r, G) ]
- (command "_cmdecho" 0)
# q, [2 z/ m' z8 U - (command "_convertpoly" "_light" ename "")
- y2 o( I" u( J8 y0 N/ N& V - (command "_cmdecho" oldecho)
: s+ N' H" C/ y' R: e8 J - )* r4 [! \! X" T$ d$ V( e2 |, j
- )7 c# J5 b0 h/ l; p$ A
- )
5 f3 Z( F' W) i" G; W8 f- V - )) y* T$ H6 ?2 N, X3 g
- (if (= pltype "3D mesh")
1 t7 h U- q% I - (progn) i: Y, j0 c9 W" a
- (command "_.pedit" ename)
$ u. A" ?1 r2 d0 s# [3 k: N! l; E - (if (= spltype 0) (command "_d")) p( Q4 q$ O3 a6 ~/ i
- (if (or (= spltype 5)
; l& f$ T9 U$ s: H; F - (= spltype 6)/ b: S4 w# V$ T& q/ O
- (= spltype 8): O5 I" ^/ a/ w/ W; ~6 T3 N5 a& A
- )
: v# }9 i$ z7 D - (progn9 t2 J0 H, y, P2 s7 S' {3 V
- (setvar "surftype" spltype)
, {. z9 X# G, }" K - (setvar "surfu" u)2 _2 C( l; \5 p4 t$ Q/ n
- (setvar "surfv" v)! a) c* g# v, Y# w' {0 b, a& m
- (command "_s")
' Q1 f; W( G1 M3 T2 \- ^6 y - )
8 g H1 n- G6 N" I8 o - )
! m3 A( i/ T; L* Q - (if (/= closedm old-closedm); ~& i0 p, ^0 T5 ~% J
- (command "_m")
' e1 L; W9 l. B( ^+ _$ c- C: Z/ D - )
/ l" P- E2 \4 _! N/ [: O - (if (/= closedn old-closedn)
5 k* E# p( B2 I - (command "_n")
6 X8 A; D% I8 |$ |3 [; d - )
% m& c, }9 j6 P" d$ o1 Q9 T% C - (command "")
- y6 v% k. z2 k K& d - )5 c. T, t& ~6 J( I0 F; F9 Q& z
- )
7 v0 q& \+ [1 K5 e. ~- q3 f - )/ ~& @) `3 a, \
- )
! z/ @* L ?8 V$ k3 f1 @9 S - )
5 S- e& ?" a" K r( R - ;;" A) G. H+ c0 d" o0 n8 o* X3 A
- ;; All the spline data is contained in a single elist. We must do some
' {7 {0 T) y' ^9 p - ;; tricky list processing to loop through the elist in order to display/ _4 e% A, j4 x. L
- ;; all of the control points.& G: T4 V) X, @, u7 z( i
- ;;" Q9 H- A$ Q% z* W; E! G
- ;; The structure of the elist is different for rational and non-rational
0 H9 q) E$ ^/ f2 D# t - ;; splines. Therefore, we check the rational spline flag.
5 N" Z$ E# Q1 ]. z - ;;
) |* I5 A- ^! D s - (defun next_cntl_pt ()
& W" y* W4 y+ R5 x# f - (setq elem-no 0) ;; elem-no = element counter- ~) v: q) ]9 E/ r1 w% I) G8 b' w" T
- (if (= first-10-time 1) ;; If first time, find location of first
3 r6 [$ s1 x0 ^2 d - (foreach list_item elist ;; cntl point element in elist. L7 h% Q% x- r& C1 Z
- (progn8 b7 u( n8 J! H2 x4 |4 k
- (setq elem-no (+ 1 elem-no))
$ T: \- @0 m( Z1 C - (if (= (car list_item) 10)# w1 V6 t% I! E, K5 c3 U3 b" y% r
- (progn6 v6 J" c- k5 I3 \0 e" o
- (if (= first-10-time 1)
6 ?- T2 c; J( G! T% }9 F9 ?% J* _+ b - (progn
4 O. X" e' [$ a - (setq first-10-rec (- elem-no 1))& S# X+ z$ Y) B; \9 J
- (setq first-10-time 0)+ z) K; q9 T h8 P- z
- (if (= rational_spl_flag 1) ;; if rational2 N) `; R2 O* O' \1 B/ i8 z
- (setq cur-10-rec (+ elem-no 1))
5 ^8 ]5 T4 t/ Z4 p9 o: ? - (setq cur-10-rec elem-no)
' |1 b {/ `& V3 S: R - )
" W, b, j, Y* g! ?* I* c3 x" e - )4 o; j9 {& k+ Q9 ^. P. z. D
- )9 Q, r3 |7 a+ B9 a7 d
- )
# F5 z {( T/ X- p. s. Q9 K - )
) i1 }9 K A% g( b, u - )
2 }- F, a6 ^1 [6 H* ?- N3 D9 q. q - )
( d& E) b6 w$ _3 p* P - )# N/ q- N9 W/ e2 V1 J) ] o5 Y
- ;; Now we know the location of the first "10" record; it's stored2 o [0 z& z/ }6 g9 b0 j! R. `6 b$ c
- ;; in first-10-rec. The first 10 record was already displayed when" c1 n( |5 K3 L1 q2 p9 e% _4 a# u
- ;; the dialog first came up so let's display the second one when; q7 `; j0 q4 T; G2 e
- ;; the user presses the "next" button (the first time through).& Y1 l: A+ K- Z9 ~1 }) \$ i
- ;;
. k, R+ w5 U+ ~5 \7 F/ m' n) j' a. ? - (setq temprec (nth cur-10-rec elist))* A! G- r* o* I2 [' e7 P
- ;;
/ [- W6 w9 P& m - (if (= (car temprec) 10) ;; if 10 record
) ? U) v! h; A - (progn
: n% W! i+ w/ Y4 K# Y! s0 }5 d3 v& z - (if (= rational_spl_flag 1) ;; if rational spline
$ G1 J* j' F7 {$ ^, @) {* V4 w* Y - (progn4 W1 H' a& F; `8 G, R3 _
- (setq tempweight (nth (+ cur-10-rec 1) elist))- h7 T" o) a9 C
- (setq cur-10-rec (+ 2 cur-10-rec))7 D" J$ |) q ^6 K+ Z
- ), D. E. e6 d/ t* z" q m& V
- (progn ;; else* g2 O4 Y2 ]# s) v0 R9 p- u
- (setq cur-10-rec (+ 1 cur-10-rec))# w& s( h; s% S
- )
* Z" i5 B& U6 Q6 K - ), |$ ]7 y0 E# H; J
- ) ;; end if rational spline5 P2 M& ~( u) |! _- b
- (progn ;; else reset counters5 b9 Y5 |6 E5 P( I! Q- Q3 W
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec% s. y9 l, O% B3 [& c" M$ k
- (setq tempweight (nth (+ first-10-rec 1) elist))
+ i2 s' h& P; x2 \5 M/ T - (setq cntl-pt-indicator 0)% K- F: y$ u+ p+ ` S2 M
- (if (= rational_spl_flag 1) ;; if rational
( H9 y% B) X& P% T - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
R& l. ?. B1 W: o A& t2 {, `$ p# v e - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
' @. S$ X# N* h - )" l; _& ^4 t# T& c
- ). b& D+ j0 P! z0 f, W
- ) ;; end if 10 record2 R4 _' X4 O- c: z
7 b7 K$ o5 K* u( q6 N; R5 a( N$ d, L$ b6 T- ;; Display cntl point, weight and ctr. Increment ctr.. F3 m- G/ \* l8 S- a
- (setq cntl-pt (cdr temprec))
6 v& _7 _9 d) s% d. S% B* I: M - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))" L& e! x9 u" w: O$ \
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))# q) \# v$ c0 |
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))# ~, _1 p; ~- f; n7 y% R
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))5 t" c5 ^- A, o- W1 w) D
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
! ?5 C- d6 w3 B+ Z: j; B6 x8 j - (if (= rational_spl_flag 1) ;; if rational
u9 \% Y* [2 U - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght8 y+ l' K: o6 |$ ~9 b9 l2 G4 x
- (mode_tile "weight_text" 1) ;; disable wght% n# D7 ? m+ t' J9 z
- )
" D' \- c: s9 W# }: I* _4 o - )1 y g$ E& o; N% e/ t# F( H
- ;;
* |9 P- Z* b& O% E - ;; All the spline info is contained in a single elist. We must do some+ J8 \' N# X$ d/ @& T$ Q. @$ S- t
- ;; tricky list processing to loop through the elist in order to display
( o2 z4 N7 K. y. ~ - ;; all of the user data points.! G6 z, J# c# y& s& p( `- Z3 F
- ;;+ v1 i6 j& ~- P# f5 e! e/ L2 x
- (defun next_data_pt ()+ d/ |9 W' _& x
- (setq elem-no 0) ;; elem-no = element counter
p, U4 U1 @! E) f9 X' j) J - (if (= first-11-time 1) ;; If first time, find location of first3 A* y0 I7 Q$ q3 b5 I0 D) q) c4 u
- (foreach list_item elist ;; data point element in elist2 Z6 S9 }% ^4 b2 ]# X, ~
- (progn
( Z% Z# A q4 y% A( p7 K; f - (setq elem-no (+ 1 elem-no)). _& ^# B) j, K6 c" R% M
- (if (= (car list_item) 11)8 e7 v1 R( n4 u& b) r; V2 s
- (progn
( k5 M* [. T1 @ - (if (= first-11-time 1)
/ X4 w# k5 g0 M# B, e - (progn
1 h+ J' J" T/ k - (setq first-11-rec (- elem-no 1))
2 c# b. T- o T - (setq cur-11-rec elem-no): G8 E6 [% ?. A8 W6 u8 L
- (setq first-11-time 0)4 {# y$ X r9 B" W0 ~1 H! ]" t& W
- )/ P0 Y O1 Q! F# g0 t
- )
0 x: H* b% ]( e f - )1 w" Z) D, y. X* G; U) D; ~
- )
- M7 b8 U' i6 c - )) H' Q' O) M9 o7 ]
- )
& C3 {6 ]2 E6 M3 Q# G - )9 ?/ @% w* R& V9 l
- (setq temprec (nth cur-11-rec elist))
& B0 z+ q* H$ S# Z/ i - ;; If it's not a DXF "11" element then we've gone past the last
) A" H9 V0 Y* w. s- G/ G - ;; "11" element. Go back to first "11" element. Reset counters.1 b5 e* E' b4 m; U9 H& p
- (if (= (car temprec) 11)
- b) E, f8 I% `3 r5 z7 ~) o( b: u9 E/ r - (setq data-pt (cdr temprec))3 P4 R8 `$ V4 T* i
- (progn ;; else! w: \; C% @* g/ v4 d% ~
- (setq data-pt (cdr (nth first-11-rec elist)))( T1 e6 C; r+ E7 s2 d# t4 M
- (setq cur-11-rec first-11-rec)' X- |! H0 I/ X9 z7 }0 U1 W! x
- (setq data-pt-indicator 0)
* O4 ~. D" b# C5 ^3 t - )6 g w/ X" ]8 R) L
- )# E" m; a5 }+ A- P8 m; k8 p
- ;; Display data point and ctr. Increment counters.6 m+ m; t/ k% B2 t/ v. `0 e( a
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
& A2 d0 ~: p' `; z! } - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
% s" m2 l& o) s7 }+ x- T& i - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))8 q. i, a- g+ P
- (setq data-pt-indicator (+ 1 data-pt-indicator))
. ]" O+ H4 R& H& L. t/ @ i: k# V' L - (set_tile "data_ctr" (itoa data-pt-indicator))% h% {; P8 V5 e# T* P+ D8 _# ]
- (setq cur-11-rec (+ 1 cur-11-rec))
6 q) {. W; \8 F- R3 K - )
: a' s+ r! ~+ K5 t: s7 v7 t4 B - ;;
4 v2 ^ `1 Q; O7 b5 B! w' X - ;; Modify SPLINE# r" G0 o* [2 H* w
- ;;
' {: R9 P3 w7 w+ o; C3 B, B: i - (defun modify_spline ()5 `# k5 l8 v1 \: N& ~
- (modify_prop_geom)5 C2 j/ J$ w; K- b% N
- (entmod elist)
" F. q# Y' w8 k9 R; u - )! R8 A) Y0 q: B# r, Q8 |8 E$ X
- + c) c4 F1 D& l$ z
- (defun ddspline ()
5 [1 F( J5 s( X( ^. f - (if (not (new_dialog "ddspline" dcl_id)) (exit))3 J5 Q* B! K1 l
- (set_tile_props)
5 D: s7 }% ^% ~( C; X" e0 M - (set_tile_handle)
& c1 W: x2 d5 Q/ P* V& R0 N - (set_tile_spline_props) M: _' O" a6 q
- ;; Display first control point
0 _0 q. m8 O, C( _ - (set_tile_cntl_pt): M7 x( \3 |" C+ T1 |- Q+ Z
- ;; Display first data point- [7 w4 a9 H& @
- (set_tile_data_pt) y- j! O9 E' l: P, i7 r; ]+ ^
- $ d& g" y$ K, Z; d# L4 d3 y
- ;; Initialize flags to indicate first time through the dialog.
/ E: b4 ~+ ]! `# s" ~/ ? - ;; For control points and user data points the "next" buttons2 l$ N( t( ^/ p2 g$ d5 E5 n
- ;; in the dialog call the appropriate functions.
6 Y1 O" f! Z. P) Q - (setq first-10-time 1)/ g' ^# O; M9 q
- (setq first-11-time 1)
x0 S; R t% S - ;; initialize control point number counter1 x. C; X3 Q5 K8 }8 G8 B, ^
- (setq cntl-pt-indicator 1)
6 D5 e( k3 t( A - (setq data-pt-indicator 1), ?2 f9 W" R5 T7 |& x! I
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
3 l. o) m- y. K9 C: t& j. P - (set_tile "data_ctr" (itoa data-pt-indicator))2 I4 m% `% \' Z+ ~& B J1 N' K
- (set_action_tiles)9 g! m* f! P9 K8 O/ O% l
- (setq dialog-state (start_dialog))' q( ~5 w" X. }- r
- D& f4 Q w: D3 s1 M* t- ^' S- (if (= dialog-state 0)
, _/ S1 B i: _5 w7 k - (reset)7 D, o C- }7 l; T, G; w3 ?/ y
- )$ I7 L( k# C! T9 p; c
- (if (= dialog-state 1)
0 T7 G% ~; @2 X- C8 M2 J - (modify_spline)7 ~% i2 {3 Q6 k* k
- )
( r, [) k0 W' D/ T3 F - )
9 p7 C2 q2 K1 N9 o3 d
1 x) K2 z% A6 e, ^- i" S/ Z- ;;9 d5 S9 t' A- I/ R3 N8 j
- ;; Modify DIMENSION" t4 |" V1 r4 `& X5 N
- ;;+ p; v \$ y, `1 a- z/ S
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl; l1 B& G o7 |2 {% |% c& b R
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
6 e: P# \6 [* ^8 u/ I+ h - dimtype dimsvcurset)7 q2 w4 n( E9 u2 m2 l5 W( \
- (setq dimtype "DDIMEN": P* l% ]6 d" v" j
- dimsvcurset (ddimen_dimsty_restore)/ | U0 s' G* Z1 r# t2 @
- )# F E* v/ \7 w" V
- (if (not (new_dialog "ddimen" dcl_id)) (exit))
7 X0 g5 ]: J+ v, e; ]1 N8 p - (set_tile_props)
w" |$ h% \$ o4 |6 H - (set_dimen_props)# S9 V7 q: t8 J/ Y8 u% r
- (setq dimtext (cdr (assoc 1 elist)))
! m. l Z! B" @) T - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
. H1 f# u: J, _. M - (set_tile_handle)0 {, E" r! r# x! `) E
- ;; Define action for tiles1 v+ [! n$ H, R m" `$ e) A6 C2 |
- (set_action_tiles)
2 u7 C0 d# K' Y4 w$ y: V
, F! F) s" F& E- ;; Set initial focus to text edit box.
1 e& |3 Q. D0 h4 g {3 V - (mode_tile "t_string" 2)
* O5 R* q& @+ ~3 g6 p* C2 J% Q/ O - ; \" y d* M1 `2 K
- (setq dialog-state (start_dialog))
0 l, h$ E0 p: ?% n- S( f9 e - (if (= dialog-state 0)5 G. [ \" |$ i4 a8 [- u+ C
- (if (= ddimmt 1)# @4 |5 a( Y2 n2 `
- (reset)( u8 I6 F4 u, ^8 Z/ S1 u
- )2 b9 ]$ K4 g3 B3 T1 X: D
- )8 ]( l2 F1 E% H) _) B
- (if (= dialog-state 1)
8 A; u" |& S9 H7 }* G% I - (progn3 D* R6 j, s# B& Y# I
- (if (/= dimsty stname)
4 S2 e+ Q. I% s& ` - (progn
0 G" f8 M6 w. e5 t) e3 } - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
% W2 A- y9 c- d* ^ - ; doesn't have it.
8 c. F7 d7 S* @5 S5 c - (if (null (assoc 3 elist))0 d7 `; Y0 a8 U! @3 K3 A
- (setq elist (append elist (list (cons 3 dimsty))))8 E D& ~+ `' q. T& [; z& S
- ; else just replace it., A! k' P. k2 o( O+ z
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)) i+ F! q- R( e
- )
9 k) ]3 c# \+ s - ; refresh sv_dvlist with new dimstyle.; z( }) i+ J& t: a+ l
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))0 `! q: W# D' j
- )
$ ]; X% H$ O) n2 W3 _! ` - )
& h1 p( M- f6 D! t - (if (not (null dimlist)) ; attempted to change dimvars# ]9 u; S1 G/ O+ p5 Z: M A
- (ddimen_complist sv_dvlist dimlist dimtbl)8 Y0 T Z0 J7 v
- )
1 Y4 ]6 A7 E4 ]; G4 Z: F - ; Modify dimension text" |6 ]1 {: w/ ?' c4 U9 B
- (if (/= dimtext text)2 R$ Z2 Y5 i& F0 r# Y0 T
- (progn1 G* Y; N: p# T! l* @% z7 ~4 Q
- (setq dimtext (if (= text "<>") "" text))
& A8 E7 S2 h, p7 w - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist)). D5 T! s6 n: B) ` e! P1 L
- )( S+ Y) \5 G1 k/ J+ F; j
- )) {. M' w0 w$ e1 E3 p+ p- C
- (modify_properties)0 `; j z5 G3 t. s P& M. ^- w
- (entmod elist)5 b& I0 a9 g3 O$ T
- )
9 r! y8 x0 D0 ?/ L1 p, y - )8 S7 n2 b2 _0 M4 Y8 @, U$ x( L. y
- (if (= dialog-state 4)1 \8 \" o6 |) r
- (progn* {5 q% o0 C4 j( Y2 G2 U
- (setq ddimmt 1)8 \5 u% S; b$ f8 e) z
- (if (/= dimsty stname)
( @5 e# f+ N( q, P4 _& D - (progn% f e$ ?, W& t0 T# H
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
$ j x& ?) v! Z% d, ^+ [ - ; doesn't have it.
' k/ n8 |$ b/ m6 { - (if (null (assoc 3 elist))
) c4 L d; Q" c: o0 G - (setq elist (append elist (list (cons 3 dimsty))))
, b, h R$ d) T, U" K$ u - ; else just replace it.6 t# D3 h; E2 U8 b$ [! Y9 a& z
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))8 x ]9 m9 a, p
- )
$ o3 d5 O( M' c8 s - ; refresh sv_dvlist with new dimstyle.! G3 q& W% ?' r( R. a4 k. D
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
% Y& I8 l7 l2 y! m1 w - )
% H8 t: g9 E: A# m s' v - )9 f' c% C! L" H! K7 _& E
- (if (not (null dimlist)) ; attempted to change dimvars1 ?! I- V1 t: g5 V0 J
- (ddimen_complist sv_dvlist dimlist dimtbl)
+ p8 b) V. N( f, s }9 M% w - )9 |5 \9 D) l8 _6 i1 s( b& O# r
- ; Modify dimension text# \% e$ z8 ^/ T- A7 s1 r
- (if (/= dimtext text)
; }; w) Y) M/ M$ Y, n - (progn* F( n. p3 p) E8 \% F6 c
- (setq dimtext (if (= text "<>") "" text))+ L; }; K$ @! @8 H
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))9 u. c; _& b1 J: ]) C
- ) w* R! F. M/ b# i
- )
- x2 c* f6 g- D - (modify_properties)# T& g' z/ Q! q! h% S% f9 P7 u
- (entmod elist)/ j2 @' J% c; g! V
- (safe_ddedit ename)
. U3 V+ ~: q* u3 F* v6 m/ K7 \ - (setq elist (entget ename))
( O8 B1 H3 H' g8 `9 U4 q - (ddimen)) O8 ^' B: y4 \: I! D) ^- e
- )
' c2 s: U" n# X - )+ i5 ]7 d% T4 A7 `# v# o0 I
- (ddimen_setvars dimsvcurset) ; Prepare to exit7 Q8 \2 w9 Y# G$ @: Q2 }9 S; P
- )
. n: g2 p. s: Y3 R# X - + ]; u# M/ k" F# G' `; [2 g1 i6 m/ y
- ;;
8 `" w8 F3 D- t n7 \" E3 \! s - ;; Modify TOLERANCE
) u* R; e6 b0 |# _3 n4 B% |1 K - ;;
2 K) ~3 L+ ~0 i1 s - (defun ddtolerance (/ a stname n dimtbl7 |$ s. T j. l9 K0 m) G: t: k
- dimsty dimlist dimovr sv_dvlist stlist dimtype
5 }% f, w) H b - dimsvcurset)
5 ^5 K6 @/ ?9 Q6 O: t - (setq dimtype "DDTOLERANCE"
% U3 }' g7 J; z8 a! |. z4 d2 X - dimsvcurset (ddimen_dimsty_restore)2 m7 G1 M: \' x$ G
- )) m9 `+ n* Z9 F' i0 u6 T
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
5 u8 G$ u [7 h2 x) S! @1 M) m - (set_tile_props)1 L1 ?2 ^8 a$ d$ O8 S
- (set_dimen_props)
; U% U) j4 S8 ]8 j z% Y - (set_tile_handle)
7 {, P' g+ x2 h3 C: x - (set_action_tiles)
, Q6 ^7 k5 @4 U( C - (setq dialog-state (start_dialog))
( y+ ^9 T d- h4 \% C - (if (= dialog-state 0)$ z0 h9 y0 ~6 q! [: F" M6 n
- (if (= ddimmt 1)
# s7 E |- d' N. O+ W: @ - (reset)
. E- x8 j& l4 B. X; y: @# u - )/ \: L5 |: H- q
- )/ j7 c5 I1 j, d$ [; |
- (if (= dialog-state 1)* \9 n Y" A( {4 D! l
- (progn
8 p+ ?' m7 t& y" _+ S1 ] - (if (/= dimsty stname)
9 z- W/ s( ~9 C( a - (progn+ w9 L+ y/ [; I6 a* w2 n) |! N" a* Q
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case$ i3 f9 H8 J; _& T9 A0 A
- ; doesn't have it.
% g9 L- Y1 L' O - (if (null (assoc 3 elist))
1 D0 s& O4 W6 \1 f% @, ~ - (setq elist (append elist (list (cons 3 dimsty))))
& x$ {1 J4 x+ k7 o3 H# `5 [ - ; else just replace it.
2 L$ k! V3 e W; R8 s - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))4 A% l3 Q4 E( x3 R5 t3 W/ }
- )
7 Q, r9 p9 N/ e& Y. _ - ; refresh sv_dvlist with new dimstyle.
5 f8 q4 `; p: @0 m H4 n" ~ - (setq sv_dvlist (tblsearch "dimstyle" dimsty))% @, f- C8 g/ D( W
- )
3 H# D' Y0 {' H/ Y9 _2 c' t g) m - )
7 p6 W0 p/ ~! U% d - (if (not (null dimlist)) ; attempted to change dimvars
# s% H7 A& }" H, c - (ddimen_complist sv_dvlist dimlist dimtbl). e3 v3 y* l+ I$ p
- )
" I3 b! e; r. U( n - (modify_prop_geom)
' Q% L; |! F& R$ Q! R& S! s" | - (entmod elist)
5 L5 @0 _1 t! |6 \( v0 c - )/ X9 \' Z* q+ l* W \
- )
, a. O! ~0 K/ X; z' a - (if (= dialog-state 4)
; R; v/ _( O5 [1 v' |, [- T - (progn0 Q* ^; T4 X8 z: ~2 X8 G
- (setq ddimmt 1)
0 z4 I' Q- ~* p6 h8 @- w& f4 F - (if (/= dimsty stname), G- P) I8 S. j7 ^
- (progn
( q9 Q6 A% u, b7 X: r - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case( W3 n# F* K2 E3 y- U
- ; doesn't have it.
/ }) i' M3 v. n+ ~" ~6 O# [, z# D! U - (if (null (assoc 3 elist))/ M3 e1 w& E1 B* @/ |4 v3 s
- (setq elist (append elist (list (cons 3 dimsty))))
0 u M, } L2 D2 C - ; else just replace it.3 h# F3 C( f- x5 l% e
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
' Y) T" O9 M+ S! N8 G: w& g. b3 t - ); u! h! L8 ]) Z( ] w h y8 T) e4 V
- ; refresh sv_dvlist with new dimstyle.8 W7 L+ S' G1 M- N* _
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))3 \7 [( m: m8 E* ~( ?9 M0 I
- )
1 M0 l0 R p; j( D3 E - ); c4 V" t2 c0 v
- (if (not (null dimlist)) ; attempted to change dimvars5 S& k6 t: u0 ]: N
- (ddimen_complist sv_dvlist dimlist dimtbl)8 v; Y; L/ `# C2 S R
- )) l* d6 e c( d" Y6 K9 w0 ?
- (modify_properties)
8 _( I( |9 x. t8 h# X2 o - (entmod elist)9 X& X8 _; o% C% k8 Q# b+ N; K0 S3 `
- (safe_ddedit ename); X9 _1 E v1 W
- (setq elist (entget ename))
, F7 ^) L: T. y, I3 E, _% V - (ddtolerance)+ h: b7 ^% l4 L7 r2 Z3 p
- )
; r- D4 \ s0 _4 g- V$ M - )
1 o3 r: K% n$ f. H+ s; e: l - (ddimen_setvars dimsvcurset) ; Prepare to exit
' f9 J$ X. }( n" T {1 |3 q - )
: m/ h. A8 k L1 K - 6 r! B5 {* z- j0 Q6 {
- ;;: s$ L* Q& j0 U. Y) ]% w$ x/ }
- ;; ddimen_dlg - jump to ADS ddim module2 m5 e. t j* V1 u
- ;;. O e9 V: \' `# ]0 h9 i
8 z/ p; c" c& ?- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)2 B5 ^4 I, _* i+ u [
- + ]3 c* w5 _/ q, B2 H8 `
- ; Jump to DDIM with overrides if any.
. J9 _( c- ]( v/ J" } - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry* ]! G( u3 `$ |4 n
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
7 m& u# M6 S3 y% J - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation9 _0 _) r" Y7 p, P2 ^0 i- L7 Z
- ), k( j% S) J- z( n7 w
- )8 n5 N2 q/ x' C6 y3 M
- " p* X6 ]6 i K4 X* N( q& f: L" M$ s1 r2 P
- ;;- p \+ B. c# b: S" K! [9 P* N
- ;; Dimension variables updated are stored as overrides., x* g( o4 ?/ S. Y1 s
- ;;6 b+ E& r2 H7 \) i& H
3 X c3 ~( I+ C+ B: N0 N- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
" x8 v7 [0 y0 }7 C. X. Q9 } - dv dime commandIssued)
" L# `: x. ^* z$ O - ; S- ^. M% m: | U
- ; Here we skip the following first three items:
7 |, u8 m, H6 s. _ - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0). q0 h0 R: C/ S y6 U; W) q- K9 S
- ;
8 K! J. a3 e6 N' ]/ U/ k6 X/ J - ; The list comparison immediately begins with dimvar.
. q; P7 s: i: p4 B7 Q' r. E+ v' W' p - ;! M- B, U/ f( p; p( @$ W x
- ; dimolist - original states of dimvars0 j7 }, o8 H) F( F# D
- ; dimnlist - new dimvar list which is of the resbuf's6 u8 E! n! y% A/ A, D1 B# U
- ; dime - entity name for the dimension
* s& _* P+ [8 y3 e - ; odvar - value of dimvar for the dimolist6 D; [. B& T* r9 v* H
- ; ndvar - value of dimvar for the dimnlist
: w% E; y3 {8 j* ^* d( F7 e- r
, {% F2 e3 [ ^. L' @- (setq i 3
; J5 q- R+ D* G. s# l6 [ - dime (cdr (assoc -1 elist))
" q) G! N/ ?- ]( ^# L. e! B - )2 N, O6 w x6 L2 g2 V3 p' ~1 {# n
- (while (setq odvar (cdr (nth i dimolist)))
( p) l7 C. K" a j) q7 J - (progn
8 q3 ?- M* R2 p; g - (setq ndvar (cdr (nth i dimnlist)))
+ W' @% F, G* g; u2 W - (setq dv (nth i dimtbl))
8 B2 h: |: \! g8 z4 N- @3 `7 n @ - (if (eq dv "dimtxsty")
* Q! `" E! P) q4 M - (setq odvar (cdr (assoc 2 (entget odvar)))5 @/ X% j1 f' s) K
- ndvar (cdr (assoc 2 (entget ndvar)))* p0 S8 A- L! {- o! z; v! z
- )
' N: i9 q0 F4 _0 k: @" M$ u% T - )
; {5 A& Y3 L5 E2 D
k) g8 S! R/ m2 T4 y- ;& Y2 i* P8 a6 f& n( B
- ; In order for DIMOVERRRIDE to operate correctly with string
7 {9 ^6 r: V% R( a5 Z+ v/ u - ; based dimvars, we must pass "." versus NULL strings.( h& P5 y% {5 j4 r& g3 ~4 F
- ; In this case ndvar is the new dimvar value the user wishes. q2 m4 D5 F/ n) f0 P; {" d$ [
- ; to update on selected dimensions.
2 P9 k# ]! h* F2 ?! S - ;
3 t. L, j9 T7 Z1 S, U7 q$ y - (if (/= ndvar odvar)2 @! N: {1 M; ?
- (if (= 'STR (type ndvar))% h5 E9 ~# H- v9 s
- (if (= ndvar ""): b8 [9 O. s9 m8 c/ i$ a7 Y A
- (setq ndvar "."))))
: l* ] z( C% W* B - 0 Q$ s( o* J. j" }; M' _6 K
- (if (/= ndvar odvar), H4 ?. D0 q ~% ?
- (progn
& ]- s% d( r% I; O; A4 \" c - (setq dv (strcat "_" dv))$ j$ |% X' L- \5 z8 E
- ;
8 W2 P. F$ V8 u# Z - ; Start the dimoverride command
: @/ H7 z9 D' s6 a! L - ;
5 Z3 M/ @1 W% ~- i7 \0 a; h - (if (not commandIssued)9 j% C6 g! i' |7 g
- (progn
9 [0 z4 f) l0 z) i' N - (command "_.dimoverride")
+ ` O0 A: H2 p m2 K9 i8 ~" X# z - (setq commandIssued "T")
. E% o3 r2 A6 v4 R+ g. T) c6 a% a - )
6 v: }/ N6 }) F7 I - )
, l9 m# X' T' ^8 a. \ - ;
# z' J$ [( G/ _+ G! R. v - ; Issue dim overrides! z+ a, W/ ]- r5 k, ~3 \, O
- ;
9 `9 t8 N5 u8 T+ _ - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre")) t# Z6 ?8 _: F% H
- (or (= ndvar 0) (= ndvar 256))
' h6 w; d/ S' q! B0 n6 a$ _ - )
5 p. u0 u3 Y1 m2 j7 N T0 } - (progn
5 }3 k& ]& j3 \* b) [; D, h - (if (= 0 ndvar) (command dv "BYBLOCK"))# T7 ]1 Q0 M s0 K
- (if (= 256 ndvar) (command dv "BYLAYER"))
( D) [% W A4 t _) Y( U - )7 p3 |" e B" |% Z8 s. e
- (command dv ndvar)
. r* @: h0 A: h2 k - )
8 }) k: a6 y6 o0 \! Q - )
3 a2 {" O1 D% ~ - )& T' E% e U7 M3 H- _/ ]: M8 O3 K$ l7 O
- (setq i (1+ i))
2 c8 c' y) A F/ L - )
: D: i8 z/ y: K5 g6 C - )
6 L5 f2 ]" I2 F& ^1 \ - ;
5 T. U1 w, z$ B3 R - ; Select Entity and terminate command( _5 Y f5 c' ? T8 n' o
- ;
, b' N, k& u, V" {" b O - (if commandIssued# o! u' O7 ?& o" V
- (command "" dime "")0 I& `% n2 }) ?% a/ ]
- )
3 X% V2 E% u8 g3 Y - )& C% Z- Q* J+ @* I$ D
5 c- @8 s$ G. K0 k1 C4 U- ;;# o2 Q& A% |$ K+ b+ X6 |
- ;; Get style name currently selected style name.2 ]. D" J: F, F7 G2 q; B
- ;;
2 I) t, s* m- c- Z - ( O! i# j1 q# t. H& B
- (defun ddimen_style (/ dimsty)4 ^4 q5 p! M5 L# N' M
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
# e2 `9 \( Z/ b4 {3 Y - dimlist (ddimen_getdimvars dimsty)
( Y( f/ ^- d+ Z2 K7 N" _ - )# }+ }. f, l. ^' K/ d6 L( r
- dimsty
( ~" z( i) M3 ~, B1 S- w- ?) t - )# q7 [0 |$ l0 F
- ' v6 F$ @1 d3 N7 z& o" }
- ;;' G- ~; f4 S& Q+ d" x
- ;; Set dimvars
5 P+ F6 Y6 ?+ ` P, V0 H. {/ J - ;;
+ t; a2 e) \- o0 m/ ` - (defun ddimen_setvars (dimsvcurset / dv i)
3 Q. Z& k/ e3 `( X8 ~1 p) j& J# o - (setq dv (cdr (nth 1 dimsvcurset))) a. T6 z# {6 N
- (command "_.dimstyle" "" dv)
3 w9 Z6 d8 |$ o2 Q& m( _! r - (setq i 3)
7 r ^$ y% Z j. g+ E - (while (setq dv (nth i dimsvcurset))
& ~1 g0 b) V- `4 P8 f$ U" @0 D* R' s - (progn
5 k+ G, C" g9 |. N# M+ _1 m( w& h - (setvar (car dv) (cdr dv))
2 g0 _2 }- {& B - (setq i (1+ i))
- i( u1 [, y% Z - )
5 B+ O5 o% I1 r: l) T - )2 e0 u- H' X1 s6 G8 n
- )2 e n: l c9 o5 x7 m
- ;;
+ N! p7 A! B! h" P3 L - ;; End-of-dimension7 x' v9 F) K' c0 j' ?& i. X
- ;; ==================
- z0 P* u* W3 A8 ?* D) D5 V - * e9 U; {" r# F1 q/ J
- ;;! m* }: N- E1 ^% i% l# d. h1 U
- ;; Sub-dialogues for properties. Common to all object dialogues/ R1 A* W; ]' s8 k, G7 ^
- ;;
; u! O: f& P+ \- Z - ;; This function pops a dialogue box consisting of a list box,image tile, and8 w8 @1 @8 r+ d/ w6 {, i
- ;; edit box to allow the user to select or type a color number. It returns
B9 @+ g' A; F: W; d! z9 l0 n - ;; the color number selected.
, W) v8 \; P9 {# e - (defun getcolor (/ old-idx colorno cname lay_clr)
, |& o" H; o O% K - (if (= (get_tile "error") "")* v$ O! i( n* {# N, I7 W( s
- (progn$ |7 L! {5 I! ]2 o5 ^
- ;; Get the color associated with this object's layer, for use
; ]/ M9 | ^8 x1 ` Z9 I h' _ - ;; in the color swatch if the user selects color BYLAYER.
: G" q- }$ h2 c1 t% `! U9 G - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))& |# b2 f/ O( F8 G& j
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
: W2 ]$ {0 I3 g. q) u- ?( H0 [ - (progn1 k& G; k5 T j5 K) B. A" N
- (setq ecolor temp_color)% W* B4 f0 z j! F1 h3 O0 w
- (setcolor)
9 T4 s0 K$ {( w+ P - )* o: ]% D$ `$ ^' @$ w
- (setq testcolor temp_color)
3 X2 L& }( |3 s. r7 E% }3 b7 I - )
$ A) c4 K2 v3 b+ L) G - )
: Q8 c( }' u5 _' y4 g - )+ k7 C' v0 D' m5 L3 v$ e7 ~/ E
- ecolor
6 w- y& k% ]/ y! _4 h - )9 R* K8 R ^" U+ X/ D3 I" Y0 A. I
- ;;
# _" L1 l& i0 {$ p& {, w - ;; Function to set the color tiles.
- y0 S8 _+ `3 x5 h8 n/ [ - (defun setcolor()
1 U6 D4 T$ p5 J4 X - (cond
+ z: Q* m' N0 {# `+ \* Q0 H N6 S - ((= 0 ecolor)" f- \& V- u# l: Q
- (set_tile "t_color" "BYBLOCK")
+ K _# d$ w3 C$ @0 r. ^' v - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
0 S3 n' z4 R9 E4 D+ o - )
4 P9 |! M8 ?# s5 [3 q" B) Y) Z - ((= 1 ecolor)3 w$ u8 o W$ E, @2 M6 x
- (set_tile "t_color" "1 red"), w7 a/ Z+ ~9 j/ F- m5 Z
- (col_tile "show_image" 1 nil)# e; ]/ S& i" W/ I
- )4 i) q) V9 U5 i( y, _
- ((= 2 ecolor)! ?# \3 _& x& t7 p1 n! S, ^
- (set_tile "t_color" "2 yellow")* H5 N# W* Z; r# i' A" m. h
- (col_tile "show_image" 2 nil); A) m6 \: T& |3 z6 a' T
- )
$ X" o' B6 ^3 P+ i* I9 {0 q: C - ((= 3 ecolor)
$ u6 ]0 b7 a8 z( m; Q - (set_tile "t_color" "3 green")2 D2 u. y, ` ^% j I$ J: K
- (col_tile "show_image" 3 nil)7 V1 G# n7 O2 ] ^9 n2 `# h
- ), a) P. m8 m4 a6 t- F2 O) |
- ((= 4 ecolor)
( \( l# C) I' s - (set_tile "t_color" "4 cyan")! L, `, K% m9 ^
- (col_tile "show_image" 4 nil)* m# R0 A4 Y6 g7 V D" T* e
- )! e0 U! U* z6 I0 Q# f5 w) t. C j
- ((= 5 ecolor)
+ U( s- \+ R& U - (set_tile "t_color" "5 blue")" j5 c; M0 K8 o' W) F9 @
- (col_tile "show_image" 5 nil)
E0 P( G9 ?/ ~% M3 G5 C1 H) w - )
. ~3 W O/ N) u$ J/ \7 T+ ~9 Z7 g - ((= 6 ecolor)
. ~6 J, y! [/ F) N - (set_tile "t_color" "6 magenta")
: ^) \7 [9 @" D2 l ~& f - (col_tile "show_image" 6 nil)
7 ^& g# X4 O" l7 @1 o2 A- O - )
" r8 k, n- |" G8 r. { - ((= 7 ecolor), \* B3 i0 P! ]# }+ N* a- f7 r5 M2 \
- (set_tile "t_color" "7 white")" r& _4 U7 X5 F- e: D+ }
- (col_tile "show_image" 7 nil)
! G! x: w/ D# V' k/ U& g; V - )
x: Z- {* h0 Q - ((= 256 ecolor): { s9 w- W$ A7 w
- (set_tile "t_color" "BYLAYER")! d* }+ W! [: \' u! [8 r( I7 D7 y
- (col_tile "show_image" (bylayer_col) nil)
' S+ _5 Z' z7 Y% d - )* C3 k/ l" s% R# F
- (T
# ~3 l! r' o4 X' l* r - (set_tile "t_color" (itoa ecolor))* v1 V$ i4 J/ n" ]$ j( Q
- (col_tile "show_image" ecolor nil)
$ i/ }7 l Y$ u: j( H. f- y - )$ K, {2 x" Q& i9 U; T
- )
- k/ O, h& d6 G0 m3 E3 _9 ] - )
( r: r4 K, ?# z - ;;- O+ A9 Q8 D' K/ O
- ;; This function pops a dialogue box consisting of a list box, image tile, and( W9 K! p9 z8 u1 \
- ;; edit box to allow the user to select or type a linetype. It returns the* W( t ]% b! r: Z& t4 a
- ;; linetype selected.' ]' `$ Q- t! W, l, H- W
- ;;
3 M* i2 f, K( x" w0 y9 F4 N3 {, X - (defun getltype (/ old-idx ltname)5 r* q' C$ _) U0 } n. {3 R$ q* N
- (if (not lt-idx)
3 s7 C9 ~% ~; w" Q5 u" j - (progn
6 E" o6 P7 y9 A L5 R - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist. @/ I8 n$ Q( L8 @: w6 r& K
- (cond
3 M+ l/ ?. k4 b6 ~' \1 s) J6 w - ((= eltype "BYLAYER")
3 E, h" L4 u* Z9 D% q2 R z- m - (setq lt-idx (getindex "BYLAYER" ltnmlst)))1 B( S# g: y- q
- ((= eltype "BYBLOCK")
8 _% v0 q, Z6 z$ Y - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
! Z( n: Z4 \5 _' O - (T (setq lt-idx (getindex eltype ltnmlst)))
, c" w- @* t' V' Q7 _4 \ - )' I0 V, _ W7 }5 W+ J* |) ]) e1 }
- )
3 Y" X4 ?: g& U- ]' T: Z; o - )
- N: W7 a6 C2 h
" `/ x' e/ k8 z5 ^: S! `; u$ _- (if (= (get_tile "error") "")- a6 Z: H- s7 s! v! J% R
- (progn5 u% z) T! x/ u. S$ f9 P
- (if (not (new_dialog "setltype" dcl_id)) (exit))3 }% F1 c' N9 W4 t+ W
- (start_list "list_lt")
) i n7 W) ^3 F8 P: E7 I - (mapcar 'add_list ltnmlst) ; initialize list box% M, Y$ F- T/ M
- (end_list)' s# X p( B# u% Q0 F
- (setq old-idx lt-idx)
" U8 n9 ~$ ^* ^4 s2 C - (ltlist_act (itoa lt-idx))
/ s+ P2 d* r' W$ M- F
2 _5 ^( B1 R# y# k0 r8 W7 o6 ^$ ^; o- (action_tile "list_lt" "(ltlist_act $value)")9 I% Y& E6 O: ~( D! {
- (action_tile "edit_lt" "(ltedit_act $value)")
: i7 h, {) T& |& H" J - (action_tile "accept" "(test_ok)")" M% `, e7 u) U+ e
- (action_tile "cancel" "(reset_lt)"). M, I% S4 u S X2 o1 t! M
! ]3 B c5 Z/ M, q0 |8 ]. [- (if (= (start_dialog) 1) ; User pressed OK+ x, J3 X; ?/ @! e4 q# q8 X
- (cond
- Z; w$ J1 u9 E. C1 u' J* B, \ - ((= lt-idx 0)+ a7 I3 {% O9 ?8 H/ o" s1 ]
- (set_tile "t_ltype" (bylayer_lt)): T$ r5 r* @( X# {, ?9 F# ?- W
- "BYLAYER"3 z+ u4 B+ p$ M3 K- I
- )" F; f& ^3 x* ?" R% {
- ((= lt-idx 1)
' S. j0 `! Y5 Q2 A - (set_tile "t_ltype" "BYBLOCK")& d# ^+ m# {5 r+ x
- "BYBLOCK"% ?$ T- _* d' p/ K' Q' H$ V/ [
- ); v. K% s& Z( T4 B% z
- (T (set_tile "t_ltype" ltname) ltname); l H/ ` C" u6 X5 y9 q/ y
- )' r9 |. t9 B* d$ A+ B
- eltype
, A' G+ h/ S& X7 Q9 _: L! g5 e - )
" t: f: `( |0 W A* b' x5 u, i - )1 d; ], i S5 S* w3 L
- eltype
0 a5 J/ j4 |1 T' _6 }4 d5 X - ); ]" l' t- L8 y% B: C
- )
. T& N8 k* N: Q) c; [ - ;;
) h* r$ f$ x- v* }% | - ;; Edit box entries end up here6 _$ c0 l: ], V* T+ e
- (defun ltedit_act (ltvalue)
! R9 I) h1 a+ s3 T. z - (setq ltvalue (xstrcase ltvalue))
: M+ J; D! Q& f, L1 w$ [* x: w8 j8 _ - (if (or (= ltvalue "BYLAYER")8 m, B: y. y8 L$ M2 j& a" K
- (= ltvalue "BY LAYER"))
! O7 D' {0 d0 m/ ^" K - (setq ltvalue "BYLAYER")
4 }6 i- Z P- R0 Q - )0 d2 P/ H9 {$ _( R
- (if (or (= ltvalue "BYBLOCK")
) X7 s5 s: w4 K% @' ^# B3 _ - (= ltvalue "BY BLOCK"))8 M; e# q p& Q. j9 G1 L
- (setq ltvalue "BYBLOCK")* ^" L# e. d/ a, L
- )2 V; C d+ K( [
- (if (setq lt-idx (getindex ltvalue ltnmlst))
0 F8 }9 i6 j2 [ G. d4 H, { - (progn
$ X3 w' J& S% v - (set_tile "error" "")' E) r/ r E0 d! g" j) z4 s
- (ltlist_act (itoa lt-idx))' @& K( q* C# m) }
- )
, h5 _& |& E9 M: N1 l9 u' b - (progn0 b- L" c- ?& V' C8 W5 H
- (set_tile "error" "Invalid linetype.")! W8 b" v: \4 l! s8 L
- (setq lt-idx old-idx): U# V: R$ @- w. [* e# _
- ;; (mode_tile "edit_lt" 2)
# e. F$ m% Y# ?( ~7 l3 [ - ;; (mode_tile "edit_lt" 3)
4 _+ B- v( L# h0 Z - ); W$ V+ V6 v$ y
- )% t2 g3 p+ T/ E! v/ C
- )
) ?2 ]2 n9 L' _9 [ - ;;
/ O) d5 u7 f1 e" \- [' q - ;; List selections end up here. Update the list box, edit box, and color
2 k2 ?! l; Y2 @# h+ ]! ]; X - ;; tile.
( x- O' y* D# V e# N2 P0 a - ;;
; ^/ [% [$ X( U& D0 ` - (defun ltlist_act (index / dashdata)
* `8 g: C, S# p% V9 @ - (set_tile "error" "")
3 F' v- Q# w5 R0 J+ S* X! x - (setq lt-idx (atoi index))# ?5 M' R& x# ]5 ^4 l
- (setq ltname (nth lt-idx ltnmlst))
- q3 w" w3 |- G% D - (setq dashdata (nth lt-idx mdashlist))
" T8 M X% D0 ~. v - (col_tile "show_image" 0 dashdata)/ ?- M6 |+ C; o
- (set_tile "list_lt" (itoa lt-idx))
1 f- e6 v0 o% M0 L! Q - (set_tile "edit_lt" ltname)
1 U& B \9 v5 Q0 X# n - )
6 N8 n* s& ^* b" E' g - ;;
: o" y& N8 J. C. k2 {' \& o - ;; Reset to original linetype when cancel it selected! x+ w; V3 f) v' e5 t1 J
- ;;5 ~ C9 k: t, n9 e$ f
- (defun reset_lt ()
5 Z$ g' G: K, I - (setq lt-idx old-idx)
' p* _; o3 F8 O/ Q( G: S8 R' d; w8 D - (done_dialog 0)
H# m$ z* F% {3 Q' A1 c - ) o% o8 m4 C; h2 B9 S3 Z
- ;;' W0 ~5 x; L+ u4 U2 A0 C' F
- ;; This function pops a dialogue box consisting of a list box,image tile, and
! X6 `- {0 n( m; W4 t - ;; edit box to allow the user to select or type a layer name. It returns the: @7 \6 B) a5 i- I6 Y: K( H$ ]
- ;; layer name selected. It also has a button to find the status (On, Off,
1 J" T) {" I+ e - ;; Frozen, etc.) of any layer selected.6 K+ J! u& r# Q/ Y0 N
- ;;
6 j! u6 A8 W0 N+ T. }3 H# l - (defun getlayer (/ old-idx layname on off frozth linetype)
/ o$ f/ t5 w; l" z - ;; Create layer list the first time the layer
/ c9 |& z7 k1 Z% m - ;; dialogue is called.
% V) |2 w# y v$ T2 k& Q - (if (not lay-idx)
- V1 T) B/ T% U: R( q9 c3 { - (progn
$ Q6 }+ L2 }0 u - (make_lay_lists)
+ C- t8 _! ~: ^! s5 v - (setq lay-idx (getindex elayer laynmlst))
5 j1 W1 T, O0 _ x) L J9 M/ k: o - )& @; V! x8 h0 a
- )! e. R+ H" u! D- E) g
- 8 q9 o9 N' h9 v+ r
- (if (= (get_tile "error") "")
* n! U% e' h# m/ y - (progn
6 n8 K' v* `" C: ^3 h - (if (not (new_dialog "setlayer" dcl_id)) (exit))
4 D: O! t! n: d$ |7 b - (set_tile "cur_layer" (getvar "clayer"))& X) }; k1 f/ k7 `8 v
- (start_list "list_lay")
! _* ]1 f5 |8 U! _, I - (mapcar 'add_list laynmlst) ; initialize list box
8 ] ?3 b+ e! J - (end_list)7 j! m6 p; H8 {6 Y% z" V X% q
- (setq old-idx lay-idx)
], _4 ~6 Z2 G$ Y4 [$ I - (laylist_act (itoa lay-idx))' D7 h. t) {; z0 S+ C* W2 u
- (action_tile "list_lay" "(laylist_act $value)")
; S9 e* Z5 Y2 A; P: D9 b0 P) p7 s - (action_tile "edit_lay" "(layedit_act $value)") O5 v2 }2 f# ]/ @0 l5 P
- (action_tile "accept" "(test_ok)")8 N2 Y+ u/ W3 J- |' q9 E6 U# Z
- (action_tile "cancel" "(reset_lay)")
- @: R4 o- S9 L& H& p- `5 W6 }9 E5 D - (if (= (start_dialog) 1) ; User pressed OK
6 W7 ?; p0 @" f4 P) i - (progn( R$ \) ~! z8 u& h# s' w
- (set_tile "t_layer" layname)
/ Z7 r# j/ Z& O: Y - (setq elayer layname)
: X) ^; B5 B' O' { - ;; If layer equals bylayer reset color tile7 ]$ B1 C m8 J+ N
- (if (= ecolor 256): w5 ]6 a, c* `. X2 q" X; {
- (col_tile "show_image" (bylayer_col) nil)) O$ i) D' B% n! C1 `, [$ X
- )
% p6 W- A% o7 Q" r4 s3 i1 |7 n - layname
/ ]- G9 r3 b% [1 C - )
5 i8 D, L4 X2 U - elayer& j# P0 O3 _5 I3 \
- )
0 O9 U1 U0 p" A7 }& A - )
+ b; u" U7 i! | T4 q% z5 U - elayer Q8 W# O& n! Y
- )
! h5 g& Z+ ?) n6 e* a - )5 O0 {' r+ m; Y8 L
- ;;) v4 i! t0 U! Y/ U
- ;; Edit box selections end up here. Convert layer entry to upper case. If
& B) S$ r0 F& [0 r! i* A7 b! | - ;; layer name is valid, clear error string, call (laylist_act) function.$ h9 O9 |, l7 a8 ]
- ;; Else print error message.
( a9 x1 z' @& `& e" z. X6 m$ F - ;;) w. [. u" @! @% {
- (defun layedit_act (layvalue); Z! M7 s- c6 o% c
- (setq layvalue (xstrcase layvalue))
( r v/ @, W5 N, r' b - (if (setq lay-idx (getindex layvalue laynmlst))% W1 t# R0 C& L& I4 o
- (progn
) T+ M& q% }" @. d' L2 r- n. g1 Q. B - (set_tile "error" "")
2 Y5 M* S6 P9 h+ I' z - (laylist_act (itoa lay-idx))
! }8 r9 C) Q X - )8 w( W6 h6 t- o) [
- (progn
1 i4 o( V4 H0 W9 i - (set_tile "error" "Invalid layer name.")
" H4 X6 f- l$ u9 ], k9 h- t - ;; (mode_tile "edit_lay" 2). J! k n, i# q0 c5 ^
- ;; (mode_tile "edit_lay" 3)
' _. @6 k& c6 W7 q: w - (setq lay-idx old-idx)
$ X$ F% R- y. a f% K; y - )
5 g# q4 \6 g' y. A. o! m - )- {# ~3 a5 c# u, z6 S
- )
$ u/ j% S$ y) f% v! t2 C/ C - ;;4 y' a( P) y" h' F
- ;; List entry selections end up here.% W% P* K5 q9 G
- ;;
! M' j9 c- D7 P3 M) E; ~/ `% K& B; x - (defun laylist_act (index / layinfo color dashdata)
o: n% G* }) h, |+ U3 L - ;; Update the list box, edit box, and color tile.+ ^$ A5 _/ i% j4 V y
- (set_tile "error" "")
: a2 S* h9 o% \: P! {+ r8 n% e - (setq lay-idx (atoi index))) A- z6 T8 D7 |2 g/ w1 e" d
- (setq layname (nth lay-idx laynmlst))$ l' L0 O/ y) Y @# _3 B5 ]; U
- (setq layinfo (tblsearch "layer" layname))
- f' t8 _9 _1 V! B Y - (setq color (cdr (assoc 62 layinfo)))
+ f6 ?5 m3 q6 J* s, N0 p- G$ `9 o/ B - (setq color (abs color))4 ]1 Q* a7 n4 a% E' \
- (setq colname (colorname color))/ j- s. m0 s. E3 _: t" g2 r
- (set_tile "list_lay" (itoa lay-idx)), D# a8 u8 Y6 G; ?5 f
- (set_tile "edit_lay" layname)1 r/ C' b, j) h( O: K7 s K; ]+ @: _
- )
- s1 R$ W% g& v& P. p# v# z8 y0 H! w - ;;
$ u" o! g7 i6 T5 ]# I3 _! e2 F( ] - ;; Reset to original layer when cancel is selected.
5 o1 }0 z; _: f, n - ;;
6 Q, _( Y9 S* c& G% x - (defun reset_lay ()9 {# v$ l% c; }* q$ _( g
- (setq lay-idx old-idx)4 U/ Y4 x3 _+ m }+ b0 G y' f
- (done_dialog 0)
" ^" d3 P. X) Z3 R) H - )! {5 \, W! q/ O, r! s# _ k
- ;;. E2 S1 o; F: t1 f) z7 L: M9 I
- ;; Checks validity of thickness from edit box.! V0 Z' I; j6 q z! K K
- (defun getthickness (value); {# t$ {# }5 j9 t1 h
- (setq ethickness (verify_d "eb_thickness" value ethickness))4 {0 Y, n; v8 w' L: u. s9 X
- )' i9 I5 c9 A, ^. @ Z1 d
- ;;% Z7 s/ A2 s2 h4 @( [4 w+ X
- ;; Copy of (getthickness) for ltscale. If more, make this function
* g* M: q% q7 Y G* c - ;; generic.. p# s- s, N; E+ a. [8 Y0 d
- (defun getltscale (value)
. ^9 L; S4 }* e8 g - (setq eltscale (verify_d "eb_ltscale" value eltscale))
; |6 ~4 b1 G( w6 s v; \5 p - )- S! x3 u) ]: ~+ w3 g( Y/ N
- ;;
, ~2 f$ |+ ~ U( a - ;; This function makes a list called laynmlst which consists of all the layer$ W! ]; \- e, V6 v2 t
- ;; names in the drawing. It also creates a list called longlist which7 H7 k& r% @6 J
- ;; consists of strings which contain the layer name, color, linetype, etc.; x' Y" s4 O. V9 _8 @5 R6 r6 t' y
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
, U# J+ W0 _& j; F9 R. B+ `5 ^* V - ;; same.1 T! a: s2 Y: f/ e. l+ ?
- ;;" S( B: c0 Q# k( ?4 t; }: b
- (defun make_lay_lists (/ layname sortlist name templist layer_number)* R% G$ Y8 ?. q9 q) C
- (setq sortlist nil)
1 C, |4 J" q4 E; d - (setq templist (tblnext "LAYER" T))7 U3 e5 u: u9 \/ U S/ i
- (setq layer_number 1)
. f9 X' p1 V# S: F* v1 S, a" _$ S - (while templist
: t# X( u* ^- ?$ c' m - ;; No xref dependent layers, please.
- K _4 N& I N8 T% l' h5 C - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)4 b9 L3 w4 N3 a- v9 p+ F6 |8 R( L
- (progn
. a2 \9 W% ]# K7 P! o - (setq name (cdr (assoc 2 templist)))0 r8 D- z, z, `! X7 e7 \8 U" z
- (setq sortlist (cons name sortlist))
: c- H: k2 r; M' r t$ I6 i - )5 w: G5 {! q8 J% h k
- )
1 ^/ P! f4 j4 I* P% J - ; Get the next layer.0 t5 _* f, E5 X; c! o
- (setq templist (tblnext "LAYER")) y4 m- @0 i" P
- ;; Not dead message...
1 v; q. q0 P/ E - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
; ?7 F( _5 R7 L - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))0 D# s/ r# y; Y& O" r. Q# D. L
- ), _8 t' s1 g- O" L1 }1 L3 ^
- (setq layer_number (1+ layer_number))- z: a/ w7 w5 m! L6 E$ l; a
- )
8 J8 R ?( T: h - (set_tile "error" "")
* W$ ]4 Y9 h- t% e7 K1 w' v' I9 p - (if (>= (getvar "maxsort") (length sortlist))
% T. y7 Q9 l" R7 o0 F9 B3 b9 w - (progn
( i! C; d1 a; H7 v9 t; ^4 [* |7 [/ }; c - (if (> layer_number 50)
5 M4 I9 d7 C% n$ i - (set_tile "error" "Sorting...")+ l+ L. W6 c) l8 O1 H
- )0 T3 r3 L& l0 L* ]6 a- B5 D
- (setq sortlist (acad_strlsort sortlist))
+ O+ ?+ r6 d7 ~ d9 m8 O - )2 W( y+ u7 y' {& b' _* t: {
- (setq sortlist (reverse sortlist))
' F+ A6 n% @; i5 N# T% t - )+ C9 |$ i" z3 T$ \) T
- (set_tile "error" "")
9 p* q: D; z R' f7 ?& g - (setq laynmlst sortlist)! A1 y% u! V+ ]
- )/ P' B8 Q% k+ g8 x+ m' \
- ;;
' N# ^2 K6 m0 k6 k3 C1 t - ;; This function makes 2 list - ltnmlst & mdashlist.
" x! F1 p$ A5 i - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist/ ?! x; S$ w2 | W" R; Y' Z( T
- ;; is list consisting of lists which define the linetype pattern - numbers
: O6 J6 v0 j7 _! { - ;; that indicate dots, dashes, and spaces taken from group code 49. The list- Q, x( W- e f+ O. V
- ;; corresponds to the order of names in ltnmlst.
& Y G9 G# _ x - ;;# H2 n. L t4 v) i! t& t7 n
- (defun make_lt_lists (/ ltlist ltname)
! w- T# w7 i5 _/ @* t - (setq mdashlist nil)2 E# _) \0 g8 {& U9 C
- (setq sortlist nil)
& U6 V) j# R, M K - (setq ltype_number 1)9 S4 E3 f9 h* ?7 I. A
- (setq ltlist (tblnext "LTYPE" T))
3 z. Z# d" Y# E4 x g1 \+ ` - ;;(setq ltname (cdr (assoc 2 ltlist))), b$ t* ]/ j4 w [2 }
- ;;(setq ltnmlst (list ltname))8 X0 T+ b5 N; Z* j3 Y; z
- (while ltlist& h% A7 T9 R; p5 D4 Y p
- ;; No xref dependent linetypes, please.
$ A4 E4 u4 |/ K' w2 G4 m - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
' F6 H; O% R: J0 T0 x7 b" M8 W - (progn: U3 P. g/ K! m0 r0 n5 M
- (setq ltname (cdr (assoc 2 ltlist)))7 a b& z/ C5 ?. F' e" |; z* g
- (setq sortlist (cons ltname sortlist))
) ]: ~6 D5 V$ Y8 U5 I4 z& }3 q6 W - )
, e5 J, ?% F, R- f- n3 [* g4 ]. K5 ^ - ). }3 ]) J5 D# B+ [
- ;; Get the next linetype.
: ?3 L3 n; {8 V9 D# C+ C g - (setq ltlist (tblnext "LTYPE"))
2 @) [0 b! `; x5 D/ Y9 e - . j5 D0 V$ F* a; s2 A
- ;; Not dead message...' C: H9 A, U; n3 t z2 E" z
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
: M* i( O; i. X( g$ D. E- q# J - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
2 R0 k- P+ \6 [" r9 u - )' w7 ?7 ^$ B' c l% ?! o6 H+ u
- (setq ltype_number (1+ ltype_number))% Z8 M4 D8 } v: t
7 D( o/ F9 d2 i6 B0 |+ s! u- ); R: y$ O4 Z+ {( i# w- o- a, n, |7 `
+ U, O9 j- W* j: _- ;; Remove Collecting message.
. V: ~- Q w: U# \6 _- ^ - (set_tile "error" "")% p3 [# o: f! L; N, F* u4 |
, x: d+ s' g% a5 h7 ?- [0 R- ;; Sort based on maxsort. q4 v# P' ]8 e0 k/ ^, [
- (if (>= (getvar "maxsort") (length sortlist))' d1 b% p' T3 F9 u9 {' a2 L/ k: ]8 o- g
- (progn: Y, K1 V* m4 A/ Q5 b$ K
- (if (> ltype_number 50); d0 U% a( t7 E1 O
- (set_tile "error" "Sorting...")+ \# `1 I6 d( {' }. z; k
- )
* f! o8 @7 `5 U; l - (setq sortlist (acad_strlsort sortlist))- B9 b- V2 T: S/ ?- }9 ?6 J/ t+ z
- )
4 d% k/ v/ g. }. m - (setq sortlist (reverse sortlist))2 C! J( K6 A/ A3 A: A7 u1 U. d( N
- )
2 v- W. a' q* R- y# q) {& h" i - (set_tile "error" "")& p2 p, G( ~5 q& s1 Z8 P
- (setq ltnmlst sortlist)
! X3 S! D; E1 ?" T; f - ( N# V2 q% ]6 l2 x7 l! ~, P
- (foreach ltname ltnmlst4 v/ ~5 F2 J8 u ]+ h, I
- (setq ltlist (tblsearch "LTYPE" ltname)). Z: y' P. l- E4 M5 e* W
- (if (= ltname "CONTINUOUS")
( [% C% f1 F0 q, t& V5 f; i2 J - (setq mdashlist (append mdashlist (list "CONT")))1 l5 d% e d$ G8 f' J0 [$ o9 ~
- (setq mdashlist
Y* f5 z; y$ c6 Y: B6 { - (append mdashlist (list (add_mdash ltlist)))
% G+ M: }2 k& G* b, i' n7 G% W0 e - )
+ f4 w# k0 f+ x: @$ b" d - )2 r. h6 h2 f0 {# w1 X5 j7 F
- )
: s. Q% d$ m$ o( V q* D, d5 x) ] - (setq ltnmlst (cons "BYBLOCK" ltnmlst))9 W H* J0 p& c" C
- (setq mdashlist (cons nil mdashlist))( Z! P c8 L9 D4 e) K
- (setq ltnmlst (cons "BYLAYER" ltnmlst))7 K' v k# M& _; Y5 t
- (setq mdashlist (cons nil mdashlist))
& a) M( s# L8 i1 r1 P - )3 I" A" P1 k) I. e0 E
- ;;
% H* Y: I9 w# ? - ;; Get all the group code 49 values for a linetype and put them in a list7 v' ]. `" e# Q# d$ }2 i
- ;; (pen-up, pen-down info).) W& d# n {/ o) ]8 j
- ;;) c" r; b+ }8 i# c, [5 L( t( z
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
7 G0 J% k/ }/ m6 n' T5 ? - (setq dashlist nil)+ m: r: q5 ^1 |0 i! Q+ h5 ]
- (while (setq assoclist (car ltlist1)); }4 h$ @# t: C
- (if (= (car assoclist) 49)
' `2 m0 f. V9 q/ D# F* ^& A/ S. R7 u- k - (progn
& L6 ?% E" c2 |. _ - (setq dashsize (cdr assoclist))# L# C D& k3 p( ^8 d& t/ r! w( y: {
- (setq dashlist (cons dashsize dashlist))
6 @6 p/ }4 ?' o# Y, |; g3 L/ A# b - )
" u5 C U4 D* q- m' B) u+ P - )
$ z3 h" e# h1 o - (setq ltlist1 (cdr ltlist1))
; K, Q7 I2 M- d" U# T - )6 X. o7 u) k+ k: S( U. d" k
- (setq dashlist (reverse dashlist))8 D) ?9 |0 t) M
- )
% S5 Y3 k% o3 J; o) w& F+ \ - ;;, a F* y2 c' h: U4 U
- ;; Color a tile, draw linetype, and draw a border around it' C& ~$ f6 D4 X# h+ T5 c0 ^
- ;;& h2 i' V3 X. h+ W8 r( D; r
- (defun col_tile (tile color patlist / x y)
. L! K! P" v4 K' @( c# F( d0 x* [+ j - (setq x (dimx_tile tile))1 W Y! t: E4 g
- (setq y (dimy_tile tile))* ^5 Q) R. i' e. Q. \
- (start_image tile): j, _* [/ F0 g- b" W( J
- (fill_image 0 0 x y color)
2 R) r) _# a" d - (if (= color 7)( B% a3 X4 {: f$ w. q. m _+ Y
- (progn0 `) h% t ], F
- (if patlist (drawpattern x (/ y 2) patlist 0))7 Y/ j M3 W8 [% v) k3 B u
- (tile_rect 0 0 x y 0) u1 s. {2 s4 A8 e, e
- )
4 z5 w" \0 W% U, o% i - (progn
x0 r; k6 J8 J4 Y - (if patlist (drawpattern x (/ y 2) patlist 7))4 w* o# E; \; l, Y9 h5 Z
- (tile_rect 0 0 x y 7)' [1 r5 T3 S! ^+ |: n/ j k( N L. Z
- )3 F+ l8 {1 n5 Q% ~
- )# m' w0 F6 n9 d! p% E% V5 @
- (end_image)
7 @" Q3 P7 g; K1 @6 W) Q7 Z - ). O7 y+ g6 I9 S, X
- ;;5 X/ N% c+ b$ D: @) b* k
- ;; Draw a border around a tile
; ^' X; @! ?8 L. X7 P - ;;- W# K4 J* Y5 @; B. m! j$ S) n
- (defun tile_rect (x1 y1 x2 y2 color)' p2 q9 l& J6 s9 K) h! K
- (setq x2 (- x2 1))
: |/ J- u/ N( g. b8 o* X - (setq y2 (- y2 1))+ r' t% u7 ^' x1 Y% [
- (vector_image x1 y1 x2 y1 color)) U- D' [$ L. V" q' l
- (vector_image x2 y1 x2 y2 color)
+ J* a5 g3 U' M: U9 a& y - (vector_image x2 y2 x1 y2 color): j3 m: p' M/ Z2 p
- (vector_image x1 y2 x1 y1 color)
G6 `0 g. _ |+ I3 U' p a - )
0 s6 m7 K2 f7 X) U; i - ;;8 P) s m7 `1 w6 D" E+ G- o. g
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image: w6 H: H8 I' h S9 F
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a9 U$ a3 |* l4 u
- ;; list of numbers that define the linetype, and color is the color of the
( f3 o5 K0 ?5 j6 n m, e - ;; tile.- a1 s$ f. ?4 t* Y
- ;;
9 D( l6 W+ P" } A - (defun drawpattern (boxlength y2 pattern color / x1 x2& Z* i2 f/ e+ E& |9 k7 I: x* G
- patlist dash)7 w6 x) @# {( E+ z
- (setq x1 0 x2 0)' ]5 {5 B7 i. k7 b3 b8 E0 @
- (setq patlist pattern). z0 w7 ~- I* B) V% e
- (setq fx 30)
& E. G3 c" |% `+ a+ Q - (if (= patlist "CONT") z0 v+ Q# o" l' H* O8 h9 t/ e
- (progn (setq dash boxlength). Y5 I1 t) s6 m, p- d. \* G9 p
- (vi)
& L' @8 T* u7 ^! y1 {% u) S - (setq x1 boxlength): g' U% B* k \# n
- )0 w2 J- x! Y( E2 e7 ^. }
- (foreach dash patlist
' }* N0 C% E) n5 o/ ^( X - (if (> (abs dash) 2.5)
* _) t) z0 l* f+ ]% Z0 N - (setq fx 2)3 ]% t% G* w2 l; m, o/ m
- )
+ _' _9 _ V" i3 D8 z" i - )
) y" V" m6 ]4 X5 j! e4 N - )7 V- v) W7 S. L! A3 v) q
- (while (< x1 boxlength)
]9 H, ?/ Q( M+ U - (if (setq dash (car patlist))( K' @5 i; L( y
- (progn0 |0 h; b3 c. y. y& G
- (setq dash (fix (* fx dash)))
0 P/ t4 {6 Y+ o$ h4 E3 M( h - (cond& F4 D* v+ \9 } [; S
- ((= dash 0) (setq dash 1) (vi)) A6 w8 m1 c9 r1 c7 B" }) T
- ((> dash 0) (vi))
6 ]$ u! M7 i2 T - (T
9 J l7 Y: k) r7 V - (if (< (abs dash) 2)# G# k! ^: }6 L; j; R7 m% m
- (setq dash 2)/ a$ Z/ J5 w- V6 b
- )
8 Q; c. i8 x: [8 G2 B- S$ X - (setq x2 (+ x2 (abs dash)))+ Q( t" C0 ^; O/ B( b
- )% a* _% z- i. j8 i% v* ?
- )- `- w6 p R& L
- (setq patlist (cdr patlist))0 d0 n4 a2 B# a9 W, G
- (setq x1 x2)
: W! g& `& f0 d! w- S4 c6 j - )
Z8 a% _7 p5 x5 x; j/ n - (setq patlist pattern)3 Q0 x6 l5 g# {6 @2 l
- )6 U! z$ `# M7 S
- )% k& O4 j4 w- B- u3 m r4 W r
- )
% X6 V5 \6 n+ c9 a* a3 i - ;;3 t9 v* V) }& `3 z9 B, X, z
- ;; Determain state of xclip! A) B9 J! y) S/ N; v! z
- ;; Returns the group 71 value of the spacial filter dictionary.& l3 f3 y6 d1 c R
- ;; If the entity doesn't have a spacial filter dictionary, this
* [ ~3 [0 ?, Z2 _9 h0 c5 P% S - ;; returns 0. If it does it will return 0 or 1 depending on the' N& o; F( [1 Y7 `6 L
- ;; current setting of the state of the clipping visibility.2 N" s! c2 B9 q9 H
- ;;
! t7 J1 Z7 K1 ?- {& @' q; h - (defun xclipon(elist)
+ [3 M; \! i) x: `( i; }& z6 D. I+ n - (setq hasclip T). `; J l% j# X$ d, @0 u. S" M
- (if (/= (assoc 360 elist) nil)
* K' E3 q. Q3 f6 b/ k+ w - (progn
$ q; w- c$ {: c, R8 e2 B - (setq tmp (entget(cdr(assoc 360 elist))))
& f8 b) s! [) V - (if (/= nil (assoc 360 tmp))
+ }+ c: S, J- z - (progn
7 l$ G6 O0 }+ F* Y - (setq tmp (entget(cdr(assoc 360 tmp))))
) S6 Z% e2 D8 v( W - (if (/= nil (assoc 360 tmp))# ~3 u0 ^; T- H
- (progn
7 S9 ^" g) {/ \; m* I) Z& Q - (setq tmp (entget(cdr(assoc 360 tmp))))
/ b8 W; Q/ y9 \/ ?2 A1 Q0 e" ^ - (if (/= nil (assoc 71 tmp))8 l2 E$ A, M z% H. K# A0 m& v, K: y. d
- (cdr(assoc 71 tmp))9 T& q9 H4 J+ g& J
- (progn
) t$ {! J* V. s9 D3 t" ^0 v7 q! r. G - (setq hasclip nil)
" P2 N& L, j- J' c, }1 c b) C8 _& s - (eval 0)# k+ |$ b- r* k: y, y
- )% Z! w% }4 s, s" K
- )
" k, Q& m1 H V' ]; b - )
) f1 w( H) m( v' t ~# Y - (progn / y. F! v8 n1 [+ e* K3 F8 z
- (setq hasclip nil)1 `2 q) {* ~( _" K' _; c: M
- (eval 0)
/ G3 \# F; d# ^0 ? - )
0 }8 s0 d! V! S5 }6 i) F' [6 ] - )
' @1 y( m4 E3 E3 x - )
* ~! p9 ]) h1 O/ `% v4 o T - (progn 3 K5 l2 n* x& F1 u- p* S# R
- (setq hasclip nil)
( u" p. ?* f; J7 P0 |- f - (eval 0)
+ p$ T5 S: K2 n! {% L0 c8 | - )
& g% F& K: ]. y& B$ j# P+ Z - )
) b& I6 | M$ a. ^; d5 \5 s5 ~6 T0 p - )
2 l$ @# ~% V$ }# c/ \ - (progn * @7 Y4 e# ] |
- (setq hasclip nil)
% W8 N; t* a$ p( x: R9 Y1 B - (eval 0)' s. J" c4 h" L' z+ \/ g0 q
- ) K% S2 I: E" h5 U0 A/ p
- )
3 V/ N. j5 f2 }5 b) l+ c - )& A0 [! e) Y. H& Q# _) U% |
- ;;
j7 B# v9 Y* w/ z, o1 d - ;; Draw a dash or dot in image tile
3 p; t. U0 O) q" x6 K - ;;$ L6 z7 L, h3 W$ l ^: V9 D1 S
- (defun vi ()/ M1 O1 ~# D, p" W
- (setq x2 (+ x2 dash))6 @) _ F, _9 c* [ q1 l( R2 `
- (vector_image x1 y2 x2 y2 color)
) S) P, T' w, V9 k: T$ C# X - )
* R. T1 ?, O" m9 F3 t5 G. \ - ;;# [6 N: V# G# @+ j( {
- ;; If an item is a member of the list, then return its index number, else
% S) ]' |; v3 V! [8 U* f - ;; return nil.6 l, g' m+ o& n
- ;;+ {8 U; |& B) p% I' n, Q
- (defun getindex (item itemlist / m n)
* L3 W1 d* N+ Z! l( t V/ _3 T6 P - (setq n (length itemlist))
+ X8 |8 G, ^5 ]- R5 y/ G* V4 g% S) ] - (if (> (setq m (length (member item itemlist))) 0)
G7 @) g( J, M& i7 e2 O - (- n m)! _2 a( ^$ t' }5 i5 J
- nil2 |" O& P; K( O& m9 a# _! N: Q
- )
2 J- i( P. f# H - )9 ^7 j9 X i a0 [1 D0 N6 e
- ;;
9 i( E! z. h/ R8 r7 K: [2 A4 W - ;; This function is called if the linetype is set "BYLAYER". It finds the" f G0 O, n: \" | L3 ^# v. [- |% q
- ;; ltype of the layer so it can be displayed beside the linetype button.; O# F) n* k7 d. w- H
- ;;7 U( I, a' O' b; e5 P
- (defun bylayer_lt (/ layname layinfo ltype)7 M$ a( P- ?) v
- (if lay-idx9 S2 f5 s) I6 i' H
- (progn
3 S9 c# U2 r0 {" P4 `& v - (setq layname (nth lay-idx laynmlst))9 `: z; ? ?7 l6 A! K- E
- (setq layinfo (tblsearch "layer" layname))( Z7 _6 Q0 b. ` R7 @- W" U) D+ ]
- (setq ltype (cdr (assoc 6 layinfo)))
" j; |" c! b% e - "BYLAYER"
@ {, N* e7 T6 x! M - )
% T F [ R* _. K8 M+ ~9 ]' S, C - "BYLAYER"3 }, e! U. u. k5 w
- )
) k v, H5 M+ }, Z - )5 j( n; ^" X" d
- ;; ~8 l' y* x9 G+ h
- ;; This function is called if the color is set "BYLAYER". It finds the color8 z }' V# F' [( [
- ;; of the layer so it can be displayed beside the color button.
3 D% D; | v6 `- Z. N2 d( v Y - ;;
0 H- l( W% K1 C+ }# Y, ] - (defun bylayer_col (/ layname layinfo color): ^9 a3 l) h+ i: r5 L( h+ K1 O. k7 e
- (setq layinfo (tblsearch "layer" elayer))
% d7 v; w* \3 W* V4 w& \ - (setq color (abs (cdr (assoc 62 layinfo)))), ^, U! f+ F3 Z& W' G
- )# e" k% ?8 U$ D! S! s' X# m7 |0 n/ V
- ;;, _* K3 e! `8 f6 B! X3 S
- ;; Used to set the color name in layer subdialogue.* ^0 r4 p) ~6 u. o1 n h7 i7 M
- ;; [& }" a+ h- X/ _% @
- (defun colorname (colnum / cn)6 F3 X1 A" L% m' I, l# e
- (setq cn (abs colnum))! i3 x, o6 Z7 N
- (cond ((= cn 1) "red")
& y4 X) d" Q) Q - ((= cn 2) "yellow")7 O. e/ `7 T1 f+ b# b
- ((= cn 3) "green")
/ d, u8 w5 c7 j" | - ((= cn 4) "cyan")
. c6 j7 u: \9 O, s; A7 @ - ((= cn 5) "blue")
9 E% Z' V6 l* ]) X' R5 ~5 b" N - ((= cn 6) "magenta")
1 H) S2 v# i( q- j3 p. ` - ((= cn 7) "white")
1 S& D" S+ k# t1 h - (T (itoa cn))
1 Q( e! \7 c7 h; }4 P" y - )
7 j, T9 ?9 L; ^# Q8 n - )
! g9 P9 `) m# K - ;;: N& P6 g8 ?) L) Q
- ;; If their is no error message, then close the dialogue.! F7 h$ S( G0 C' a) D/ `' x' ~9 I1 B$ K
- ;;
{) ~$ W1 W" c- y - (defun dismiss_dialog (action)+ f( e7 ^7 M9 Y+ N; L" R
- (if (= action 0)
1 [$ n \( v6 s7 Q: Z. N7 ]& H9 n - (done_dialog 0)
) ?/ U0 U, X5 o - (if (= (get_tile "error") "")! R6 Y. j# {8 ^) ~$ z' `5 N) c
- (done_dialog action)
& X, v3 G# g8 v+ C - )( L1 C6 B0 V" N+ S, @5 J
- )
9 X! H& ]+ T1 n; m/ C! j1 w9 W - )
/ ~! @+ H- h' v* `( F& @
" R" u1 y ^' f7 d$ J" i- t" e/ c- (defun test_ok ()
; c& n& m" F7 W2 w - (if (= (get_tile "error") "") L) e6 Q6 z6 o: P) U$ i8 C
- (done_dialog 1)1 |( r9 G7 J& \" x7 G I
- ); f" n* K) d+ z2 L% m; k Y/ q$ T
- ). g4 F9 B& Z, r0 z' {
* _" B7 {& R, G# Y5 t1 w8 m- (defun cancel ()
5 A p5 m, h( m5 s% z - (done_dialog 0)
7 u( h) [: ?6 p) m - )
1 F; C9 C6 t y: [$ q: W - 4 I, {8 u* V; |, c7 v' A2 `6 o
- ;;; =======================================================================+ P1 G- ~, f& y$ I& l' L' L0 ? k% c
- ;;; SETUP layer and linetype lists for application, and initialize all
4 G- \& `/ n8 r. }& b - ;;; program variables.
$ {4 Y' Z4 }% j" A3 ] - $ p# r, s, [' z( A( O; O
- (setq elist (entget ename)
1 u) l5 H( E( D - old-elist elist% w$ s8 p% @, _0 b! u
- modlist elist0 ~1 i2 F1 I8 d
- etype (strcase (cdr (assoc 0 elist)))
1 B7 J+ [+ F8 e* O8 {. Q - ecolor (cdr (assoc 62 elist))
8 c w$ X1 E3 \9 M - elayer (cdr (assoc 8 elist))' M, Y5 X2 q: \# H. ?0 E
- eltscale (cdr (assoc 48 elist))4 x4 T! k! ]+ l
- ethickness (cdr (assoc 39 elist)), W) ]% Q0 q3 f3 h4 ~1 R2 |, P' w
- eltype (cdr (assoc 6 elist))
- ^4 P. a5 N/ d% d. ~2 B' I" B - )
- I; |6 m) }" T/ s5 `" [' @ - (if (= (assoc 210 elist) nil)
3 M2 n$ K# }3 U( w - (setq extru (list 0.0 0.0 1.0))
% O9 z* w6 s* l d" y+ W2 Y6 | - (setq extru (cdr (assoc 210 elist)))
! ]# w8 C' y- o5 U0 K. e0 b0 j - )
7 N3 B; p( D! ]) V$ L' ?2 D
1 `4 `" p( e9 \- (if (not ecolor) (setq ecolor 256))1 \& l7 J' i; Q3 ]8 ?
- (if (not eltype) (setq eltype "BYLAYER")); R* R% ?! j1 z
- (if (not ethickness) (setq ethickness 0))
3 k+ a! f/ y4 x0 M - (if (not eltscale) (setq eltscale 1))) i9 @. U# s' I. j: t
- ) ; end ddmodify_init8 i) o, c) \7 N# F2 b/ P1 H
+ t, K3 f7 Z) c- ;;; --------------------------------------------------------------------------& t$ e3 G4 Q) E4 ^' |
- ;;; Function: DDMODIFY_SELECT
$ Y# F; X# u8 h0 K - ;;;. R, U C8 \. j5 ?5 u2 U* m6 T
- ;;; Object aquisition function.
' E [8 `1 @: s3 q) P$ X/ N - ;;;( g6 Z8 U6 [6 w% E& Y
- ;;; (ddmodify_select)# b( T/ O5 W: _- y- O c
- ;;;
7 @4 l1 p# f5 n - ;;; Obtains object to be modified, in one of three ways:4 x6 ?. T8 ^+ J5 O( V5 c; [" }7 H- G
- ;;;! }. j" {0 Y7 v, A( @* c! u
- ;;; 1 - Autoselected.
. U) ?( Q* i9 v* k- W- b - ;;; 2 - Prompted for.1 q& ^1 \& i6 o# [2 v
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )$ a1 J1 `/ N) c5 X
- ;;;
' K: x- }6 H, g, ~ - ;;; The (ddmodify_select) function also sets the value of the
% {$ V: {$ x) m2 q2 M" y - ;;; global symbol AI_SELTYPE to one of the above three values to' j4 Q G7 D4 x/ i
- ;;; indicate the method thru which the object was aquired.
: P# n/ U3 |! ^! ? - ;;;
* l1 H1 n7 D# R: {# I) s* f6 T1 z! ` - ;;; This value can be useful to applications that want to RESTORE
1 y2 w% M& H, M* b - ;;; an object that was autoselected to its previous selected state
. c: I0 q$ P9 H# [, Q0 X5 g - ;;; when they terminate, although there doesn't appear to be any; s& C9 q& o& W$ `1 R8 T
- ;;; way to do this right now.
2 w" I! `$ |9 d U' ]7 R3 i
" \; ^7 l- ]/ o- Y" @- (defun ddmodify_select ()* g( z$ a0 ~1 K8 l) \
- (cond9 ?& X7 f. |4 e* e# h% a( U
- ( ename ; (ddmodify) was called
' @' _7 `5 A* X - (cond ; with an <ename> argument3 \6 g2 g2 u1 A, ^
- ( (entget ename) ; If object is non-deleted! n) a/ {7 G$ {" D6 e' O$ k
- (setq ai_seltype 3) ; then return its ename.
+ X n8 H4 M1 R$ ~" @ - (ai_return ename))))
, ? u! }- Z. y: j0 l
7 U4 ~% m' s3 g/ v) W- V- ;; return auto-selected , see ai_utils.lsp* r6 r: e+ D9 n& u4 I, k: B+ G
- ( (ai_autossget1 "\nSelect one object to modify: "))
# N. e0 D8 Y9 a7 x9 f' W: w/ v9 } - 5 q, E" y8 X4 K L t( f
- (t (princ "\nNothing selected.")% z2 V/ V% J+ g; M* b0 U
- (ai_return nil))& B) C3 H* y# \+ e) A! M9 O1 L
- )! ~2 C+ B1 N8 X$ p3 B7 \3 v* t, T
- )! ]5 Q! I% Q5 ]: N% }4 e
- L# I, p* {1 s% _/ O9 l- ;;; ============= Command line interface function =======================
N0 k" k# U0 d" _. E$ _
- h) b! M% Y3 `3 S' h& ~6 ?1 h- (defun C:MMO (), }0 f* S* Z ], T) {% `) `) R5 M- ^
- (ddmodify nil)# @" A6 O, `2 [# }$ [
- (princ)6 w Z( n7 ]3 b* b z6 A$ D
- )
6 d! P& z w6 n/ u% }
5 P& S6 y I! i2 L) |/ n7 ?$ o- ;;; ================== (ddmodify) - Main program ========================% K, c+ l+ a6 `4 L4 j. \
- ;;;
+ Q; Z+ B9 }) Q7 `% B& F( V/ ^ - ;;; (ddmodify <ename> ). l' \0 Y) S2 u- J X+ V% c/ @
- ;;;
. b, }; w) A& e4 k - ;;; Main program function, callable as a subroutine.
" x$ ]: y& }. X) v. ~+ b+ P2 y - ;;;( q" _0 ^5 ^- p7 f- J
- ;;; <ename> = object name of the object to modify.
' f f. n/ @2 j, {' L - ;;;
+ l5 y$ P& u3 [! |5 _' } - ;;; If <ename> is nil, then user is prompted to select
* T+ T2 \/ H6 F' r - ;;; the object interactively.# J* x9 D9 r4 l0 F2 h
- ;;;
1 N+ @8 V1 x$ w) R# C. j - ;;; Before (ddmodify) can be called as a subroutine, it must( `4 r# Q; y- R
- ;;; be loaded first. It is up to the calling application to
# o0 |/ I) q" u. f- h' f. r - ;;; first determine this, and load it if necessary.
! U4 _: P5 ?6 s& ]7 P: C - + f8 Q, |* u& C" T* `
- $ M1 {8 L1 x) l0 [; e
- (defun ddmodify (ename /0 [8 _1 p; Z. o _, t" j; W
- 2ndpt ell_calc_area move_pt1 templist/ t3 ~9 g8 i s, q- m
- add_mdash ell_tile n tempmod
5 {) J; Y! |* t+ t) S - alipt eltscale name tempst_ang
" c0 x/ l4 f5 d J; t4 t# E - ang eltype newpoint test_ok
, N* u, C3 s/ x1 [7 N - arc_calc emod next text
/ B% D, `* R6 _* T2 h% G0 u - arclen end_ang next_vertex th-value( t: t7 z+ N8 n- m2 h0 p
- assoclist endpt obl tile" O/ n4 I$ \6 G7 L
- atprompt errchk off tile_rect
$ o8 K) G# c7 ~+ _* b) a - attag ethickness old_majrad tilemode
2 m2 s% O. `4 r - attprompt etype old-closed totang% I+ }9 {7 V6 C2 d1 s9 I/ a C
- bit extru old-closedm tstyle
# M! @2 p" S" P- }& l - bit1 fchk old-closedn u( y$ W& D) c( N( D( ?( G8 t: v6 z1 G7 L
- bit-10 first-10-rec old-elist undo_init
( ?$ I# O6 @4 Y) z- @9 q, G. O; Y - bit-11 first-10-time olderr upsd0 S. m2 H8 X, ~, a7 d: P" \& u) G
- bit2 first-11-rec old-fit v
+ ~0 @7 ]' E- R/ g! Q" y4 X: t9 h9 P - bit3 first-11-time old-idx va( I8 ?+ c" ~) T
- bit4 fit oldlist value. a: s! e2 J U8 E. z& A" Q
- bit70 frozth old-spltype ver_4
4 L! w ?' ?" Y; b+ j. C - bit-70 f-vis old-u ver_ang1
1 {" J% z( A- y: y c - bit75 fx old-v ver_ang2% }2 q0 \' T3 e
- bk-up get_color on ver_col
c: p2 E$ a6 |; K# I* ]+ @" N. ~; E - bkwd getcolor onoff ver_colsp
2 e) [! \5 \* c' { - boxlength getindex on-off ver_eangle ^: c `! G2 [: p
- bylayer_col getlayer patlist ver_hght
3 {. ~9 @3 E3 A4 E4 q+ T8 @- ] - bylayer_lt getltype pattern ver_majrad
0 n5 ?! O, z) z$ F( V( H - calc getthickness pltype ver_obl/ F L% T+ q- \1 a
- cancel globals polytype ver_pt1+ \: S" X9 C) r0 h0 |
- cir_calc ha pre ver_pt2# H ?. g3 U1 p& U
- closed ha-prev proplist ver_pt31 z7 h( _: E5 O5 a6 r0 ^4 r: u, p/ V
- closedm help_entry pt ver_pt4/ O) c$ T% Z3 h! ]6 Y
- closedn hght pt1 ver_rad% p% W. b2 i+ d7 | ^
- cmd icvp pt1_eq_pt2 ver_rot
' t( w& A1 r4 b6 k! i$ A - cn image_add_vector pt2 ver_row
- v* }. `9 Q, F" Y1 r - cname image_clean_variables pt3 ver_rowsp
# P( a' _9 s3 P& d$ Y - cntl-pt-indicator image_cross_product pt4 ver_tag4 Z) r5 `( [, n2 Q8 g
- code_71 image_disp_opt ptype ver_u* Z8 l% R7 {* Q- V" e5 y9 t
- col_tile image_dot_product radius ver_v
' W! w- B0 Z5 T+ y. R - col-idx image_normalize_vector rational_spl_flag ver_wid
$ h2 ~8 _. Z. ?1 D; k - colname image_rotate_vector reset ver_x1
( o& J) z% a, h& v( u - colnmlst image_scale reset_flag ver_x2
3 b" \& C0 e- V0 E5 g. d5 { - colnolst image_scale_vector reset_lay ver_x32 P- g$ |3 |' w. t! f4 U/ ^
- colnum image_update reset_lt ver_x4
+ `7 T; c+ v& s3 k( A- w( T' J - color index reset_uv ver_xline_pt1; F) i" s' H% S* x8 d9 R- \* T
- colorname inv rot ver_xline_pt2
4 }8 @# m( E- B - colorno item rows ver_xline_x15 ]- m, ]$ V/ ? t
- col-sp item1 row-sp ver_xline_x2
; }! c! C0 U. P. M9 L' u& t4 K - columns item2 rrat ver_xline_y1
- V {* |5 ]1 U# r - con itemlist s ver_xline_y2
( `) ^' W+ h( F% o2 U0 U: l: v) O - coord jlist set_action_tiles ver_xline_z1: K" F8 R4 S3 H% d8 x& q; T& c+ C3 t
- ctr jlist_act set_just_idx ver_xline_z2; e( z4 l$ e$ j6 ]
- cur-10-rec just-idx set_tile_bk-up ver_xscl
4 @# d- X2 Z# _ - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
~6 j4 G6 B9 O - cvpname lay-idx set_tile_data_pt ver_y28 G7 I" k* [' ~% U; Y. w! b Q, o
- dash layinfo set_tile_dirv ver_y3
/ ?, }3 G8 ]- j4 Y" N- e+ A - dashdata laylist set_tile_edges ver_y4' \2 v& d8 g3 f1 x2 Q' t
- dashlist laylist_act set_tile_endang ver_yscl
" m" h6 Q; J2 W0 f - dashsize layname set_tile_hght ver_z1: I; Y1 e- \1 I* d2 S
- data-pt-indicator laynmlst set_tile_icvp ver_z2
/ m4 N8 G" h4 k8 o - dcl_id layvalue set_tile_just ver_z3
. r6 }. W3 u. M - dd3dface line_calc set_tile_obl ver_zscl
5 a0 I( L7 j, i4 N0 H6 z) m' b - dd3dsolid linetype set_tile_prompt verify_a
y' {5 v, T8 b# L0 s8 l - ddarc list1 set_tile_props verify_d
2 N/ b+ k# w! T* j - ddblock longlist set_tile_pt1 verify_i
4 @9 w: y' Q! E0 s# r7 ~- [ - ddbody ltabstr set_tile_pt2 verify_xline
$ q3 r! Z1 h+ o- y! A2 \7 u7 ` - ddcircle ltedit_act set_tile_pt3 vfy
" z# J! E- ^, s/ I6 }# v* f+ b - ddellipse ltidx set_tile_pt4 vi$ b5 j, t6 y1 z2 P
- ddgetprompt lt-idx set_tile_rad vlist' a7 T' P/ T" S7 ~# G+ y# r2 Q, d/ `
- ddgettext ltlist set_tile_rc vname* S1 D4 v- `1 P- _
- ddimage ltlist_act set_tile_rot vpf5 H* H4 e4 A) s9 ?$ F
- ddimen ltlist1 set_tile_scale vpid5 x9 p3 _! `. K) S: }
- ddleader ltname set_tile_spline_props vpldata
. _0 @' a7 E. u# y2 {6 C7 P T! t7 X - ddline ltnmlst set_tile_stang vpn
* L7 g5 a6 L6 ~. ~2 {6 u% [, \ - ddlist ltvalue set_tile_style vpt& B) w% k9 s0 g( H/ \' Q
- ddmline ltype set_tile_tag which_tiles
o1 E8 S* C$ P: N/ V) q) t+ ?6 Z - ddmodify_err m set_tile_text wid/ r) Y6 G0 g( t3 a/ @# c) W
- ddmtext majrad set_tile_vpt x; o' [: Z; Q3 B9 p8 @: x
- ddpline make_lay_lists set_tile_wid x1$ I+ P% l6 u* N/ u3 l
- ddpoint make_lt_lists set_tile_xline_pt1 x2
8 B* e9 ^& N( U. p% ]1 t - ddray mdashlist set_tile_xline_pt2 x3. T) Q- O$ K. `
- ddregion minrad setcolor x4
) d7 n# s. c( T! n% ] - ddshape modify_3dface shght xdlist- ^) C& ?% D( P0 f) `$ L. Y
- ddsolid modify_3dsolid showpt xline_pt1
0 O0 Z; k5 J# Z1 i/ f9 U- A! G - ddspline modify_arc size xline_pt23 w1 M( x0 c+ D' u1 M
- ddtext modify_block slist xline_x1+ n9 f8 G3 G0 M% o
- ddvport modify_body sname xline_x2+ t: u/ ^! k/ x+ a' m% O/ d+ ~
- ddxline modify_circle sortlist xline_y1" k0 Q: j2 P# T/ P
- denom modify_ellipse spltype xline_y2
% ]+ _1 c! |7 A( y - dialog-state modify_image ss xline_z1
# Q( J7 \3 L e* }+ M - dir_pt modify_line st_ang xline_z2
( v, C' K! }: Y- m* F/ D. { - dir_ptx modify_mline stpt xscale
, L2 o* {/ _4 q% [1 A" y - dir_pty modify_mtext style_act xx4 F( \" O' r. i+ l& d! J
- dir_ptz modify_point style-idx y
" [$ y7 t' |, O2 ?, U* u! \8 d - dismiss_dialog modify_polyline style-list y1; [# t8 w9 v8 E# o( w. r2 J# _
- drawpattern modify_prop_geom tagval y2
9 T) v) q7 W$ h+ A7 b - echo modify_properties temp y3
0 o: e8 Z) R4 A" k - ecolor modify_ray temp_color y4
' ^) i( u) R; g8 q0 C - edge1 modify_region temp_dir_x yscale' X; R3 _- E. W" ^
- edge2 modify_shape temp_dir_y yy* ^! O' N# t; ^* ~$ `$ D
- edge3 modify_solid temp_dir_z z19 M" Y. a5 S; q( l7 k) k
- edge4 modify_spline temp_xline_pt1 z2
# z. d% ~3 C/ }. F - edgetest modify_text temp_xline_x1 z3& q) `+ @ r; K# a
- elayer modify_vport temp_xline_y1 z43 }, Z- }2 l( w1 v$ `
- elist modify_xline temp_xline_z1 zscale( ?8 O0 x0 C p0 y" Y2 d
- ell_calc modlist tempend_eang zz/ g7 F& P/ b& y- M# f
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
7 R3 m* J1 R) k0 J8 H3 I - MText_style
+ d+ r! D- S8 F! Z E9 @% f - ) ^+ g8 _# S ]6 I
/ I+ {% ^- s# e5 l* F1 X- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
0 A7 `. q5 @8 @ n! q - old_error *error* ; save current error function
1 \. ~" U) k& y8 p2 M ?5 u! m$ n1 m' J - *error* ai_error ; new error function
* v1 f# m$ S- ^& ?4 R$ b- U - )7 k. b3 }* I& Z" r, ~, |7 @
$ O' @8 H8 f. b3 {- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle" \9 q, T( j$ b- i; @
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
, }& _. X" |2 ^& R% m( K9 g; c F - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
$ w7 k) `0 G9 N* R' d - ' }, e8 C' N! p3 C( M" T
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
8 x2 ^$ s8 n7 D - (t 1)))
$ D- i+ r0 F+ R# \+ Z - (cond: t! F; F$ h5 A, ~7 o
- ( (not (ai_notrans))) ; Not transparent?) R- w% ]& b* M* J8 w5 O
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?, q b' B8 z& Q# |$ R6 J% F7 B
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?7 _) I% t% k2 Z/ R Z5 z) Q8 ]
- ( (not (setq ename (ddmodify_select)))) ; object to modify?+ D2 m& S! B4 d+ ?: X7 {
- 7 k; q$ t; }: j0 w: K* s1 P
- (t (ai_undo_push). m+ ]; E: I% R! v4 W7 V- b4 H
- (ddmodify_init) ; everything okay, proceed.$ z0 d0 o3 k6 Y Z2 p3 E
- (cond/ Q& A. I' \5 m: }( e. ?# @5 L' y
- ((= etype "LEADER")' i# E3 e9 a; G1 Z1 a9 o
- (setq help_entry "modify_Leader_dialog")9 {( j8 ?* t' T( t7 L2 _+ _
- (ddleader)
- t0 z+ P/ C' P5 h, V - )
- y; Y9 S" @, q% q }5 j3 C - ((= etype "ARC")
. A. J3 Q' n3 K; M+ E - (setq help_entry "modify_Arc_dialog")- Y8 P6 K1 m' h: v$ S' O
- (ddarc)
3 R+ m4 I6 @" D, { - )2 M3 H9 v1 ^" d' _
- ((= etype "ATTDEF")0 M) Z+ h6 S8 N5 ?0 ^( v& G" Q7 q
- (setq help_entry "modify_Attribute_Definition_dialog")
0 b1 L' g8 W+ [; V7 ^- z - (ddtext)
$ V. s7 A2 B8 k; m - )- |2 L1 h* ]8 Q( h
- ((= etype "CIRCLE")5 B( t' O ]3 X( S7 I
- (setq help_entry "modify_Circle_dialog")
. O$ @5 G/ o$ z - (ddcircle)
( n: \6 A' J7 S, y - )
( @' y$ t8 t4 P; h: S1 M - ((= etype "ELLIPSE")
. ~" v. }2 ]9 }4 K1 Z - (setq help_entry "modify_Ellipse_dialog")* v: R' y1 n, u4 m
- (ddellipse)) q7 c5 w' G* I- q
- ): S" l/ x7 O4 t* t; L. `
- ((= etype "3DSOLID")
9 j! |4 W: s/ q, m% d: I - (setq help_entry "modify_3d_Solid_dialog")
- _: w6 G8 y( R" c4 x3 I1 h - (dd3dsolid)* X- q% ~- ^4 m' R4 K$ s
- )8 g! I# ]- R! u+ l. d* F. K$ i
- ((= etype "BODY")
1 l3 O/ t3 T# z& ? - (setq help_entry "modify_Body_dialog")
; t4 X! W0 p* [8 C% q) Y. M - (ddbody)8 O% z' v- W6 O
- )
, h% f" T% z/ ]/ s$ N/ q& @ - ((= etype "REGION")# [2 y; j* H/ Y- ?/ W8 R" o
- (setq help_entry "modify_Region_dialog")
0 m, L9 @0 \ G - (ddregion)4 h) i, `: o( U4 O) H E
- )
( `3 L0 y. Y* A) B7 n- y+ m* t( }! t! U - ((= etype "HATCH")
3 m0 a& _1 D! M$ A - (setq help_entry "modify_Hatch_dialog")
/ e H6 ]* A9 O7 o' A - (ddnewhatch)
6 Q f( i$ }& O - )+ P9 |4 O* y6 b' S4 n( r9 n
- ((= etype "SPLINE")' h' _/ ], q! g; T9 J- G- Q* ^
- (setq help_entry "modify_Spline_dialog")/ y( c9 ~$ ~% n6 c* F1 G7 v
- (ddspline)
6 B' z# S0 o. H; U; s$ d - )- M# Y+ K: q4 c E! N
- ((= etype "INSERT") ; see ddblock for help_entry
6 d6 s2 B% r% i, C6 g - (ddblock)
/ `: F& h* w% n4 [% I6 b/ `: Z; K9 J - )9 j! Y3 f# `7 n8 l
- ((= etype "LINE")
, r2 S# b2 @- u, j F4 w6 V - (setq help_entry "modify_Line_dialog")) j- m' U ]$ z& K/ J( f' A
- (ddline)
4 b* u9 V" H3 n" ^5 ?( z: P - )* R- X8 r" l( Z- k( h
- ((= etype "MLINE"), ~# b! L- Y- z, N4 {4 t
- (setq help_entry "modify_multiLine_dialog")
0 L, T. H1 R8 s& N* q, |1 z2 B6 N - (ddmline). I8 e2 O$ p! ~
- ); O$ B. ]! R, E+ D) l& H. ^; X
- ((= etype "RAY")! S" B* [$ E3 d7 s1 a
- (setq help_entry "modify_Ray_dialog")
. S: |% L2 u: a7 X& A - (ddxline)
) w& K' \0 @% F& k# U - )
( |: h1 T+ A$ a# R5 T - ((= etype "XLINE")
6 g" n# b1 [6 z( u3 e - (setq help_entry "modify_Xline_dialog")' M* o. ]( Z6 ]- \+ M
- (ddxline)9 H5 ?6 M, q: P" F; ?2 s( u6 H
- )
* a0 j" z) [ x t - ((= etype "POINT"). U0 Y1 z# V" Y7 @2 K
- (setq help_entry "modify_Point_dialog")
! a. U5 U% D( y: ]' E - (ddpoint)
7 i6 ]4 y0 b5 Y3 h - )" Z% H) w) c" D6 W
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE")); S( R3 \3 E% o; I! n4 |: D( v5 n' H
- (setq help_entry "modify_Polyline_dialog")
* _% N. g8 j0 o8 {* j7 E - ;; If a 2D pline, check to see if it is planar to the current
3 U# B# U9 @9 x# l& F - ;; UCS, reject if not. To see if the pline is parallel,0 M! c' d( r' t3 e/ S7 b4 L
- ;; the 210 group (WCS) is added to the current UCS origin (WCS), S$ G9 L2 D6 q( {5 z& a( c' j# }, y
- ;; and then converted to the current UCS and checked to see if
* Q4 O) H, f% t3 i( D, K - ;; it is equal to (0,0,1).
+ c# Y V1 V$ J* i9 [ - ( p/ n, Q7 Q2 n# g' T
- ;; Incase the 210 is default and not in the dxf list.0 R* S% R L5 w" X* j
- (if (= (assoc 210 (entget ename)) nil)
! u9 {6 O% e2 `9 S - (ddpline)
9 Y9 v& Z, o. w# p - (progn
6 r; G1 H# O9 C- [; P - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))1 r+ s3 v j* P' x Z3 u2 r: m
- (not (equal '(0.0 0.0 1.0)% N; e" r2 G6 ^5 H4 q) Y
- (trans (mapcar '+1 a& N- o6 b, {4 p) _
- (cdr (assoc 210 (entget ename))) A4 c+ Q ?! u9 }1 n8 {" v* V
- (trans '(0.0 0.0 0.0) 1 0)
G8 y* _; V1 `3 B/ v: I6 H! R - )% n R* y: f6 F( B& u
- 0 1( N: i4 k4 f6 i0 ?
- ): A. t0 b9 F8 [! u# i3 e6 d
- 0.0000000001 ; fuzz
1 o( Z0 c0 a6 ]/ ~ - )$ _+ v7 K; s: G, W( f
- )2 s( i+ Y A8 x' E: Q0 ^( M
- )
; a+ t* ^* E. L7 O: f$ a4 a" w. M1 [ - (princ "\nThe 2D Polyline is not parallel to the current UCS.")+ m% D% x- `7 A' j1 Q: u
- (ddpline)3 D6 q* w# V. v2 ~
- )
) J+ d1 j; }5 [! ]! M# j2 j - )' f1 O; Y! G, O+ \; B5 q
- )0 Y( S# F1 h6 L5 B# X5 j, l% `- Y
- )
% ~$ m' Y3 h, p& o) Q7 d* C1 q - ( S( E. |& E9 ^% j( n, k- z3 i- k7 ^
- ((= etype "SHAPE")! ]/ v: b, c0 }0 e8 U8 z
- (setq help_entry "modify_Shape_dialog")- q& ^; B. d7 H& P8 c2 O
- (ddshape)
+ d; l4 E6 o y2 f - )
. ^9 N3 W* S* h8 _$ j$ z - ((= etype "SOLID"); c" y) A1 I0 z% q/ l9 y
- (setq help_entry "modify_Solid_dialog")+ m( r/ R- ]3 {: A
- (ddsolid)
1 p- s& x2 W, g2 j% A- `- `9 m - )* {+ `+ |, C9 g
- ((= etype "TEXT"). M' c0 `4 Z" ] ^/ N8 m, H& f
- (setq help_entry "modify_Text_dialog")
( F! i. C3 Q1 q& \$ x4 Z - (ddtext)! s# z3 G) i7 [" J9 P9 j
- )
; z; Z3 R- y, F - ((= etype "MTEXT")
& r! j: n) N; O @1 m! A( z- f - (setq help_entry "modify_MText_dialog")
' R" \- ~ V- P9 u& j# u0 b - (ddmtext)! b, y% \1 e0 m4 S0 b
- )
8 u/ w$ v& F0 X - ((= etype "TRACE")5 i% F% I- N5 j7 @; z3 ^, t
- (setq help_entry "modify_Trace_dialog"): q. U8 }# F1 j+ n' A; i
- (ddsolid)# H1 |" t2 ?* l' Y6 z. F+ Y7 S, W" c
- ); t2 Q r% v. F+ Y, j v
- ((= etype "VIEWPORT")) Z8 V- V0 B7 ^4 K$ S! y
- (setq help_entry "modify_Viewport_dialog")) D0 u& K2 _: \3 ~( V k" V2 c! N
- (ddvport)( Y! j+ Q4 P+ F! U+ U y L# p
- )
1 B, \( P8 g7 `" o+ j: S( C - ((= etype "IMAGE")
0 C3 [+ V0 R3 `% M6 b' `- P& J - (setq help_entry "modify_Image_dialog"). r U8 j- Y) L5 ^
- (ddimage); @+ X( f: M1 N9 b9 f
- )0 B9 J9 X {$ E) _+ w5 M$ w& `
- ((= etype "3DFACE")
* s' X1 l! _ Z5 c - (setq help_entry "modify_3D_Face_dialog")
. s0 O- J1 h7 A - (dd3dface)/ G8 c! l' S6 I, \& r) w
- )4 Q* G0 x1 L$ F8 ]5 ~1 j6 o
- ((= etype "DIMENSION")
( O& C% L7 H* x/ X - (setq help_entry "modify_Dimension_dialog")
( h% V! |. O$ q/ X" D; A - (ddimen)1 L1 o \$ \( t; ^, y
- )
2 E- {( W' E! f" ^2 [1 @" w - ((= etype "TOLERANCE"); }5 L% Q0 `, J" j e( [
- (setq help_entry "modify_Tolerance_dialog")' L/ f, y# C' f/ @2 `$ f
- (ddtolerance)" ] ^6 Q K0 U# g4 X5 n+ A
- ) Z; y" Q. ~+ F
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.# e1 Z: u! p& a$ f
- ;; This allows DDMODIFY to work on any custom object or any new object type
4 m4 }) E# Q4 p) t - ;; that isn't specifically handled above by calling the more generic DDCHPROP.
" z9 b! r+ r: b. `: d4 l5 i/ S- A - (t
" y+ H+ @6 G" Y1 X# t# k( |/ E - (if (and (not ddchprop) (not (load "ddchprop" nil)))6 c- V$ {$ j" o$ q& n, I
- (princ (strcat "No dialog support for object type: " etype ".")))! Q! e* k& y( y
- (progn/ b' [5 ~* m4 a
- (setq tempss (ssadd ename))
5 \- \5 U& O* _/ ^6 r2 w - (ddchprop tempss)# V1 H" p, L% V
- (setq tempss nil)8 B" J) a5 S4 a0 E" {' m' z! G
- )
9 N+ E4 V: G7 f. |" ?! F2 E9 U - )
$ D5 M! [$ u: _ - )
2 j' O1 }9 v9 c# v9 X - ;; Previous fall-through condition.
0 t, P3 o' w% f' p: E& S - ;; (t (princ (strcat "No dialog support for object type: "
6 u3 ^( Q, b1 y* K* L - ;; etype "."
( @/ @. s* Y: @2 E4 |4 t) V0 [ - ;; )# L% i/ P% l7 W& k
- ;; )
( ?7 O; ^+ Y5 B" C4 x3 { - ;; )3 C( a6 i' q2 b+ k$ l- j5 Y( T
- ;; )
3 C. Q/ d# z, f - (ai_undo_pop)
, k9 g) J7 R3 |4 E8 O% } - )& M ~. d/ t) R1 ~, M
- )" A+ v; X2 ?! v% x6 s2 |7 L7 H
% f1 Y* M& }8 [9 ?, Z, ?& K- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle |/ s4 Z# r, s4 d2 {
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back) Y4 I+ C7 K+ P5 `' p {! Z
- ) ; to what we started with
8 A y l, ?+ ^1 k% f3 t1 e - ) U/ F5 u1 W3 t; l b
- (setq *error* old_error)' `# S$ O/ u3 I: j- z4 Q
- (setvar "cmdecho" old_cmd)
( O8 f: p' e3 M0 N: q+ R - (if (not reset_flag) ; if object was modified, then8 @4 A9 ^ x8 Q$ R2 g
- (ai_return ename) ; return it's ename to caller; R# w J& K% j% c' H) }0 A
- )
$ W9 B- N( {' e% W+ N% {- T - )
/ c+ a+ s/ m* j8 ]- Z9 A" k7 n
2 @5 c) l' q! N7 R# u6 W: k- (defun checkForLockedLayer (ename)
* W: G- V" T0 }; b, E - (setq layername (cdr (assoc 8 (cdr (entget ename)))))6 \! X- r; w7 K/ |; \
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername)))); ~+ E& l) X8 ^
- (if (= layerflag 4)
6 U" `1 ~6 y9 d$ n5 i' N1 O - T' {) ~ p3 m: P$ q4 r
- nil/ a, \9 |3 p+ t
- )& U' h9 T4 i( G3 Y+ G$ m+ j8 a
- )
9 s, @3 B% X/ v/ L% n. I6 `' Z2 Q0 N - ! x/ n! Y* F( ~+ ^2 N8 K
- (princ " DDMODIFY loaded. ")
" ?" D+ [3 g$ k6 {* p. _# A - (princ)3 o' F* Z, { b8 [" y
- ;;;???;;;---------------------------------------------------------------------------------------
% z1 r$ q6 W% \- n
: V: J; D* X6 ]- ; Next available MSG number is 8
8 P( C9 U$ @( x: ]) q - ; MODULE_ID DDUCSP_LSP_+ y* v) g0 J, f T" i% _3 f
- ;;;8 M: t6 c( h# _+ E: _
- ;;; dducsp.lsp
4 @) d9 I+ Z' Z! u - ;;;- t9 ^& `1 U* U" U
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
) e# h+ W9 q6 f* O - ;;;0 M( `) J5 ?4 V
- ;;; Permission to use, copy, modify, and distribute this software. g7 h5 ~' i8 N' V0 o! ]) H# t
- ;;; for any purpose and without fee is hereby granted, provided
* }5 @0 x# q/ a/ g7 l1 ^* | - ;;; that the above copyright notice appears in all copies and
4 y) a* y0 j6 l' X$ S" m. m - ;;; that both that copyright notice and the limited warranty and
6 X" O* Z. W' C: e - ;;; restricted rights notice below appear in all supporting$ L0 h1 u6 \. F7 C3 ]
- ;;; documentation.5 D+ [& h7 E E. m0 K4 A% v
- ;;;
+ g5 b+ c' W5 _/ q( V - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
0 a+ t' P% `9 i/ V7 ]7 ~1 s2 } - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF! s5 p) Q' w; c+ _
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.8 O; j. d9 Q- n4 A6 m! y0 B
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE* b6 X5 Q. p. F' N3 l0 S0 A
- ;;; UNINTERRUPTED OR ERROR FREE.8 j, i) }& l$ h6 D
- ;;;$ O3 R9 r0 w. g9 o, o+ `
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
: W+ i8 [9 h' A0 e ?) y - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
, a+ z4 J6 k. W* y - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
; v+ |, h G* R! ]5 B, Z - ;;; (Rights in Technical Data and Computer Software), as applicable.2 @7 l% Q7 d3 ^) L5 V
- ;;;
% L& H- ] \) c1 K0 C! X - ;;;.$ A! X/ e3 A7 ` W f$ F0 Z
- ;;; C:DDUCSP - User Coordinate System presets dialogue.
: I* `9 F8 r: b6 F3 i - ;;;
7 C2 h0 K; U5 p - ;;; Uses DDUCSP.DCL for the dialogue definition. The5 ^0 k9 S0 I, _/ S& R# y3 W' t
- ;;; slide images are in ACAD.SLB.5 o S7 _! b. E5 o% p
- ;;;" G! T% y' l1 J5 O, Y
- ;;; ===========================================================================1 R6 J7 r% G. g: S' n! ^
- ;;; ===================== load-time error checking ============================8 y- q2 B& K8 ]2 ^" r- E
- ;;;
5 J; B; e) e7 B8 G' Z) I - / m6 O/ o& ]1 I
- (defun ai_abort (app msg)
1 i6 i& X [( b& S - (defun *error* (s)
6 |! x6 V: u/ \7 H( ]- d t4 U - (if old_error (setq *error* old_error))
- b! Z, h. R* P7 _/ H' C - (princ)9 o4 h0 {0 S9 J- ~
- )
7 ~: L6 Q5 A+ m( f" q - (if msg
0 O% l4 A: s U8 K- M - (alert (strcat " Application error: "( f2 C! m& I q# ]4 W+ s4 ?
- app
7 e5 D2 u/ n/ C9 J n1 N - " \n\n "
, C6 G7 J1 P1 j9 D, { - msg% d4 j9 @6 A d( l1 }- Q5 D- Z, J
- " \n"
% i( r( K/ o- S- U5 u8 V1 _ - )
) u8 `: _+ [; x$ }* J j- `6 g, N7 F/ z - ), g* E* s& b+ P: J$ f
- ) Z; [. A$ I+ |3 V; m; J
- (exit)
# B& S# e- r, N! b9 B |+ [! z - )5 q, R- w6 o4 [7 r# c1 x* u' ?
& q% |, z) T$ F; ^" w5 w- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,& i) H6 K Y; N$ `
- ;;; and then try to load it.( w0 D: G" W7 {8 ]
- ;;;
/ [- y* t- A U - ;;; If it can't be found or it can't be loaded, then abort the* n- Q$ Q& X( p* T
- ;;; loading of this file immediately, preserving the (autoload): `6 G% q. b; k. Y( O3 H8 y
- ;;; stub function.! g- U7 D& d# y& L: P$ i, |
' X: G: w9 K5 s- }" c3 F- (cond$ J8 U/ L$ c( g! N2 H
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.' }& k" j1 _3 k3 I: c) u6 p- [/ y
- ( s& R; G& y: B6 G
- ( (not (findfile "ai_utils.lsp")) ; find it7 n3 v9 f) y8 Z
- (ai_abort "DDUCSP"/ d. }) a) W9 k
- (strcat "Can't locate file AI_UTILS.LSP."3 X0 Y- U6 n* \ X( ]
- "\n Check support directory.")))
5 l5 }/ t) W& G1 C; [4 P
0 b, m1 N+ Z; p ^1 Y( r- ( (eq "failed" (load "ai_utils" "failed")) ; load it6 x0 p: N6 r$ q0 i, L# |
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
% r8 g( z8 S7 B, D5 ?0 y/ x( W" q - )
+ I4 W: p* H- o' Z I
: y' W5 W( c6 M- R4 W- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
4 N; ]6 W) k5 S7 ?7 U! u6 ]* C* S - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
- y$ n7 [' A( x. F$ w* k - ) ; ai_abort's alert box dialog.8 a |+ K" {+ L- O
- & P9 Y- H$ L$ @' E( W O
- ;;; ==================== end load-time operations ===========================5 G9 D& c! {' C0 R }
- . E9 I- T; S8 A! G- p& D1 s9 d2 l& _
- (defun ai_ucsp_start ( / program)
; [7 i$ i& w |: }$ c- { - ;; Get program name
7 S A- j7 _) t5 k$ q( x8 J - (if (not (setq program (getvar "program")))6 A8 b, n$ O/ } t) J8 ^
- (setq program "acad")& g. x2 r' r f) a5 O
- )5 \- d: E) R: k+ A1 r. e
- (foreach v0 '("world" "left" "cview" "top" "front" : v9 {+ z* z% `8 J! e. p0 q) ~! P
- "bottom" "back" "right" "prev")
2 k2 x+ \" u3 B; o+ s g - (start_image (strcat "ucsp_" v0))* C6 R+ x; f n) Z/ ~; y
- (slide_image/ C) a3 e& Z& W f
- 0 0
: \ w( l2 `' T, |4 C7 u - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)! h% H+ h& V" p3 K3 D
- (strcat program "(u-" v0 ")")
8 }: Q$ z: {! c - )
5 l7 q6 Q# E3 z* a2 s - (end_image)7 \4 ]9 C0 r7 V% R; ^
- )$ Q- U2 d" t" p9 N2 ^/ T% _5 z
- )9 p( I" n$ ~: a8 ]& \+ S
. ^4 \* Z5 A" t' C6 P) G5 K- (defun ai_ucsp_set ()' m6 s& v) a3 b* L) ]% e) i5 D' @
- (if ai_ucsp_sv' l1 i. b% D8 e5 D
- (command "_.UCS" "_V")
7 O- J! L' H# j3 w; L6 v( e - (if ai_ucsp_prevs: x! u, F+ g$ p
- (command "_.UCS" "_P")& ]2 V; e# F5 ]) D' s& w
- (if ai_ucsp_chg
+ s0 T! s+ S8 o/ N( D4 W2 L - (progn2 a; u. H" k( S! d
- (if (/= ai_ucsp_a "*")
u9 W' c3 `, u/ s5 ? o6 M - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
% X$ \1 ^ H `3 l! f. M - )9 M+ b$ H/ e" Y9 e! u, G
- (if (< ai_ucsp_pick 6)1 J: H! |2 e: J9 A$ H( S+ k% x
- (setq ai_ucsp_set0 "@")! g0 X2 U; |) f
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*"); {& k9 o" f# ]1 S3 e
- )4 S6 v; h5 y( B& |
- (cond ((= ai_ucsp_pick 0)
! t! K* L! c, k! o+ U$ O( J - (setq ai_ucsp_set1 "0,-1,0"
* r0 {. L& ]2 D( c2 y; Q - ai_ucsp_set2 "0,0,1"9 }: {; f9 m N/ Y
- )
. b& r0 @: V" L/ x( }0 |2 v - )
) Q: [3 p5 T' Q7 T7 U/ c - ((= ai_ucsp_pick 2)
' C1 i) }* M+ g# l, y7 { - (setq ai_ucsp_set1 "1,0,0"( o% k. F" C3 s% Z4 |
- ai_ucsp_set2 "0,0,1"3 t7 g7 _1 h4 z j
- )) K, F% L; V1 `8 r$ N4 L! F
- )
1 F/ Q" H7 M% @: S - ((= ai_ucsp_pick 3)8 |: P0 o. N" g5 W! Q- H
- (setq ai_ucsp_set1 "1,0,0"7 x# O9 ~- U6 Q# q0 D
- ai_ucsp_set2 "0,-1,0", s- I1 k% K* u6 n
- )
. t: E. H: }9 N ?4 z' C - )$ }/ F& l% x; R/ a6 u
- ((= ai_ucsp_pick 4); L E+ P# I1 @
- (setq ai_ucsp_set1 "-1,0,0"- c: a( H# U, u9 {
- ai_ucsp_set2 "0,0,1"" L2 P, c. J# {+ _" {
- ); O/ y+ `( y, t8 s
- ): U5 a4 L- U+ F
- ((= ai_ucsp_pick 5)
, b* |7 A7 }3 J9 Z+ F/ [ - (setq ai_ucsp_set1 "0,1,0"
0 w. P1 e2 |! [ - ai_ucsp_set2 "0,0,1"
2 a" ], |) }1 Z) _; _ - )
6 x: i9 s; r6 v0 r+ A - )2 N! W# Q* U5 n* r0 j: z; O* j+ ~
- (T$ c6 V( p! f: E3 H
- (setq ai_ucsp_set1 "1,0,0"
* E9 ~; h" y% m - ai_ucsp_set2 "0,1,0") I( I$ Q' @5 h6 Y$ R; o9 Z
- )
2 p/ g( a2 {5 B3 ` - )
4 E0 ^/ C$ w5 `7 X4 e - )
; p$ @' c/ T9 I- ~9 c - (command "_.UCS" "_3P" ai_ucsp_set0 0 v) R! d! _7 F2 B; ?
- (strcat ai_ucsp_a ai_ucsp_set1)
4 k( Q/ p: G; @: [% b% P - (strcat ai_ucsp_a ai_ucsp_set2)' w, P" l$ a4 j9 @* j) ~ q
- ) * R% ~) \& N& D5 J3 G5 W* W" o; x
- )- m9 s1 j* ^ }& b# h
- )' b z4 Z( ]: [+ F
- )2 x5 `+ O1 B! @, O3 l! N
- )
( b u! ^1 o# Z7 w u - )6 o8 y5 r- D. }$ j, |7 C
- ) W2 j- x: C/ Y1 J0 m9 ]
- (defun ai_ucsp_p (val currtile)4 R+ `/ m! `1 S# k* H/ d7 e
- (mode_tile ai_ucsp_currtile 4)4 r: }: Q8 h9 _+ x4 B
- (setq ai_ucsp_pick val' R, K; z x3 O1 s, v+ ~
- ai_ucsp_sv nil2 x4 a5 ?3 q5 V- ~* q2 j
- ai_ucsp_currtile currtile
3 o% C9 c4 s" s+ ? - )8 d* H' M9 x# k y5 X
- (if (/= val 1)
) M5 k, `. G- ]: C& s - (setq ai_ucsp_chg T), X) J' v/ i' y" T& h* }/ z. u
- )8 I. B/ |0 p, D
- (mode_tile ai_ucsp_currtile 4)
9 }; ?, P4 W# W3 f+ f' y Y - )
# {- A9 r) {/ a! A
! i, {& }$ L5 J; w: [; V- (defun ai_ucsp_swcs (): u( X7 H3 n, w0 S1 f3 O; }
- (mode_tile ai_ucsp_currtile 4)- A8 S4 B' P7 ]: R1 @
- (set_tile "ucsp_a_wcs" "1")
9 ]% {' ?9 b+ v* s - (setq ai_ucsp_pick 6; V% Q r! B9 E; y
- ai_ucsp_sv nil8 ~7 a5 e# _) e2 N& q; Q4 Q
- ai_ucsp_currtile "ucsp_world"8 |2 l9 i4 B/ v( C. ~
- )
" s, V( {' K( J& }" H/ \ - (if (/= 1 (getvar "WORLDUCS"))
; [$ J4 v9 A* }; O - (setq ai_ucsp_chg T)
8 Y) O$ `+ G: W0 @* \ - (setq ai_ucsp_chg nil)
1 O8 ^; Y- H3 ?! G, b) j% Z - )
7 [/ ]4 P" k# X+ N/ G" V - (mode_tile ai_ucsp_currtile 4)5 B/ X# J1 H' e8 r. L
- )' e1 d% b/ X( C. g, _* t
- * Z7 K- d, h" T" h/ z( H, {8 e
- (defun ai_ucsp_cview ()- `3 V: f5 J" T2 a" X
- (mode_tile ai_ucsp_currtile 4)
E0 B1 B8 L2 I+ G - (setq ai_ucsp_sv T
) G1 i, O/ b. v5 j: ] - ai_ucsp_chg nil
2 i: w, T9 x% f# {6 U$ m - ai_ucsp_currtile "ucsp_cview"4 J; D) n( S! z6 T2 I
- )
7 L' ~/ f0 O: [3 [ - (set_tile "ucsp_a_wcs" "1")
+ n; G6 E* a; }6 S$ E - (mode_tile ai_ucsp_currtile 4)
& }/ z2 _! f; o1 q# U2 a - )
4 v) ?. [. u1 ^! N - $ ~2 K2 m2 S! k# G
- (defun ai_ucsp_rucs (typ)
* I# B8 K: e# G& b% L+ L) R# M - (setq ai_ucsp_a typ)) @) E3 c$ R+ m. c- V
- (mode_tile ai_ucsp_currtile 2)
) g/ t: {# }0 a' o8 ^0 }9 Q/ T - )% L- L' d5 P/ P$ V
- 2 M X1 e" {' }6 }" P
- (defun ai_ucsp_prev ()' n8 S6 h. e. o& Q/ d
- (mode_tile ai_ucsp_currtile 4)" I) e p, u% Q3 u' B) Q
- (setq ai_ucsp_prevs T
2 u7 K7 o) }. ^% H$ F - ai_ucsp_currtile "ucsp_prev"
+ {3 a8 ^/ @2 l0 G' R" k - )$ z' Q4 U0 M6 ?
- (mode_tile ai_ucsp_currtile 4)
' P$ B1 b) v+ Q0 z - )
9 a9 E9 t0 U9 D4 `4 t, d - 3 @& E" B3 ]; l& b6 y6 w- f4 d8 }
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)7 E& c- R5 A$ p& q/ a2 `
- (if (not (new_dialog "dducsp" dcl_id))+ b! Q2 K4 o/ c) N/ b" W
- (exit)
8 k( a6 P% F% d; ?2 k% o* A2 ? - )
- j( y( Y* w; C, `# m4 p' F
, {5 x* }! l9 E3 r3 p- (ai_ucsp_start)
! [/ o8 _% e, o- U& F8 Q# v - (setq ai_ucsp_a "@" 5 v, i0 X; j D8 F! ~
- ai_ucsp_pick 2/ ] v: m; d1 E+ t3 W6 _& P3 A* L6 m
- ai_ucsp_currtile "ucsp_top"0 D7 F* J3 `9 d
- )
& y6 [% N# y h2 Z0 R! b - (if (= 1 (getvar "WORLDUCS"))+ l; C$ ?: p: d6 V& @
- (progn
) e8 k( s5 K( |" x$ f: [' o" y - (set_tile "ucsp_a_wcs" "1")* d' X0 v& ^; u3 U
- (setq ai_ucsp_currtile "ucsp_world")! g: R6 q4 X( H
- )
3 P& z; i( N8 ]2 w$ w5 B1 E+ w; U - (set_tile "ucsp_r_ucs" "1")
) m" C0 p: A4 L# N - ). b- b( X: g+ z
- (mode_tile ai_ucsp_currtile 2)- j! s" X3 f5 t5 Z8 `: R8 o7 i
- (mode_tile ai_ucsp_currtile 4)
+ D, a6 F" b+ [3 D0 e) A5 v" |9 G - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
0 M1 a* C8 ]/ W - (action_tile "ucsp_cview" "(ai_ucsp_cview)"): l+ u2 k; H$ T/ m# z4 o
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")8 j, c0 n5 B* q l* i( H
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")! ~" l; `# M* m
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")' d: ?) F, I8 W8 W
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
2 g) `) t% F, u$ X% h - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")9 Y- u) l; i$ u" K/ t, v& y# \
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")4 T' e. \+ s' D, f4 I* {
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")+ m3 `+ J# ]/ D6 ]7 t" w+ K9 K( t0 r
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
. G" t+ n* p2 S) F1 s - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
* I0 J3 ], h: `1 u - (action_tile "accept" "(done_dialog 1)")
9 e% Z/ C, ~2 l1 z( \ - (action_tile "cancel" "(done_dialog 0)")2 l u* E8 F2 G% G W
- (action_tile "help" "(help \"\" \"DDUCSP\")")
8 H9 R e$ X$ p9 V7 M - (if (= (start_dialog) 1)$ ^ w( r" f' b( [. u
- (ai_ucsp_set)& T' V/ |& ^8 B( P6 j+ g
- )) W1 c R4 t8 ~# {0 J3 D" K
- )4 K. K8 @" {3 h5 \/ d
_" \2 |& f# U& t" E" E) m* W- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs , W3 ?+ ~" L [
- ai_ucsp_sw undo_init)$ z) W$ q/ p9 E. P' T6 ~
0 x( y- q. y1 w9 F9 }) a3 S; }- ;; Set up error function.
! `0 {/ D7 X4 [( j8 F - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
% |4 J" m1 W0 `) P - old_error *error* ; save current error function; w7 \$ v+ u% \* J7 L8 A$ E
- *error* ai_error ; new error function
$ M. |( i/ E5 D) Z l - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
" |" p: e( j5 l - ). }) {7 n; S# l+ J6 K# [$ W
. q8 B: J) A* g. k5 ^# J- (setvar "CMDECHO" 0)
`& C5 K: |5 X1 a0 n, m' L& p- _ - " t' D( d- H. y1 K0 r. z
- (cond
% i. i: D3 {" N+ u9 k2 u d: ] - ( (not (ai_notrans))) ; transparent not OK
* q& j* Z o+ z* g4 b - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?, R9 @) a. p: V
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
' P" D4 d/ `* O/ q1 W7 s - (T (ai_undo_push)/ C" {8 s9 j8 g. H# A) W% C
- (setvar "OSMODE" 0): F: Y. e0 n7 U8 ^2 e! I9 b% h
- (ai_ucsp_main)
; ^$ Q/ I" C$ a$ [6 u$ z - (setvar "OSMODE" old_osmode)
' r& o' q, A& R8 O# _4 o - (ai_undo_pop)
1 \3 a, x, \# \6 ]/ r6 r/ e - )
, G* J. ~! w- ]1 ~% q1 Z - )% H% i2 B/ K, i: }( p" F- V1 g4 N
/ {- N1 G8 ], Y( Y# J3 Q- (setq *error* old_error)
9 m$ Y, {- v: a. ^/ y a/ e3 ]9 b - (setvar "cmdecho" old_cmd)
+ i9 u4 \9 |; b& L+ r6 ?$ F
+ h$ _; @) C* H7 J. Z8 {- (princ)
) z2 D7 L( _( _6 M/ p) c% T: U4 P - )2 h* j5 ^% Z0 f
# p, ?, k2 z8 ]- l* \- (princ " DDUCSP loaded. ")
& ]. e: m$ Q) L - (princ)! H G2 {% R6 D0 m
2 C7 Z3 A' G2 g- B# q- ;;;???;;;---------------------------------------------------------------------------------------
" k/ F z0 o, N# R/ ~, t6 y
4 r, @3 m, j% [+ B- ;;;----------------------------------------------------------------------------: D2 }9 P/ g; }# S
- ;;;
6 }& Q: Q2 A, }9 ]7 T! I - ;;; EXCHPROP.LSP 9 o# g9 j* Z3 R, _& F$ B
- ;;; Polyline and text modification capabilities added by
9 ^; B2 n8 \) c m - ;;; Randy Kintzley
* c" O4 N8 c/ | k. T* A - ;;;
+ n, b. p a7 {1 l3 j3 s - ;;; Copyright (C) 1997 by Autodesk, Inc.( ]6 F5 l* I- D2 g
- ;;;; L8 J C: e; r' K5 y6 q% W
- ;;; Permission to use, copy, modify, and distribute this software n) [2 R5 a" g, R
- ;;; for any purpose and without fee is hereby granted, provided8 c3 x2 K5 ]6 x+ z1 O. t1 q
- ;;; that the above copyright notice appears in all copies and& r6 n. o- k% l) ]- E6 a& H
- ;;; that both that copyright notice and the limited warranty and
" `# N; p: K B' D' a+ f& B3 u - ;;; restricted rights notice below appear in all supporting
0 D- i+ I7 g$ M - ;;; documentation.
5 S2 I7 ~9 Y6 ` - ;;;
6 ]) f2 {8 t: w - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.# X8 Q+ ? y0 P# K0 M7 e1 w
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF& ?/ D H) v, G
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
9 @, {5 ~5 |9 }0 Y/ W( o - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
$ N6 P5 M( `7 W$ F+ D! N - ;;; UNINTERRUPTED OR ERROR FREE.
+ d3 o4 w$ R, _* n1 \) s1 J. A! L8 y - ;;;
* q$ K. {& m: t$ P/ y& ] - ;;; Use, duplication, or disclosure by the U.S. Government is subject to$ T* i* N! O( ?- U5 A# s% k
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer( {) p2 z' ^0 d9 D$ e! x9 s; v4 p
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
. ?7 E: r, |6 P J# ]" I$ K* [) G - ;;; (Rights in Technical Data and Computer Software), as applicable.' u6 s# m! R& l7 g+ |( R7 u
- ;;;
% }( V$ H( _# ^/ g* y) k - ;;;.* B' ~$ v* e( m1 t8 _0 u% m
- ;;; 28 February 1997
( m+ O/ G0 L% E+ X- L - ;;;
% W% ]$ c! c9 x4 }5 F - ;;;' `3 A4 W2 m, O" z
- ;;;----------------------------------------------------------------------------" x0 ^/ F5 D! B% o) Z- Q/ R! e6 s
- ;;; DESCRIPTION |+ n1 ^& g v4 c0 ]; n) V
- ;;;----------------------------------------------------------------------------
$ \; j9 j" i( M1 Y4 u- W0 l% J - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
4 v& J5 A8 k5 s. r5 m6 @8 ] - ;;; command gives the user the abilitie to change several characteristics " ~! j7 O. H' ]# O/ r
- ;;; of selected polyline and text objects. . n- e1 ^% W8 |% G# R- f
- ;;; The style and height of selectected text objects can be modified
+ R% F8 U) N, m7 ~( I" ~ - ;;; (including text, mtext and attribute definitions) as well as, width and ! q7 h! w% M$ X, l# G& g
- ;;; elevation characteristics of selected polylines (includes lightweight and
( s% g4 z! _! Z! _9 Q; n$ A - ;;; traditional polylines.)* J! Y& Q4 K' K# ]. l6 F
- ;;;----------------------------------------------------------------------------0 E; s9 {% Y" ~. Z
- ;;;----------------------------------------------------------------------------3 l, I8 f0 l/ Z
- ;;; Prefixes in command and keyword strings:
/ f3 O1 K2 J g - ;;; "." specifies the built-in AutoCAD command in case it has been# t- Y$ U' K" D/ T
- ;;; redefined.
& E8 U* _! _: G1 `: W& ] - ;;; "_" denotes an AutoCAD command or keyword in the native language
c6 J# R6 r4 _& R! ? - ;;; version, English.
* |2 m5 G) [3 F0 T' k Z, g - ;;;----------------------------------------------------------------------------
: a' Z! U5 o: Y4 s( J5 R - ;;;1 N, v, _! _' `) M2 }# ]% C! h
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 K! q8 m! M7 a% I9 e Y# m9 i' u- ] - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- T8 k0 l* o3 M& o - ;Functions created as result of loading file: exchprop.lsp
5 S2 G+ M ]# n: R: t+ H5 E - ; DDCHPROP27 Q S. p) z& Q5 d+ f3 l0 |9 a
- ; DDCHPROP2_INIT; M2 l: s$ x4 K. k. e
- ; DDCHPROP2_SELECT
1 s/ j6 e( b# O6 G - ;
U K$ P" Y! N - ;Variables created as result of loading file: exchprop.lsp* O+ j9 ^& `+ }
- ; OLD_ALLOC
! U1 n: r+ t9 ^% q- P - ;/ ^% B! E% Y: L1 [2 D M
- ;Functions created as a result of executing the commands in: exchprop.lsp9 d# K- p8 g9 x/ z, ~8 ]- q
- ;
y8 g9 i9 s, W, G, {# I S( H - ;Variables created as a result of executing the commands in: exchprop.lsp6 y# T4 c6 t' w& g4 V
- ; AI_SELTYPE
' @! d* u' e/ j* Z/ t3 q, ]- s - ; BONUS_ALIVE
+ `( A( G0 B* S( t j/ ` - ; BONUS_OLD_ERROR- `9 O7 Q2 ~) E( f! c& s' r& |- `
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 {4 C9 R- u0 j1 U" N( b, z5 x - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3 C" z* ]3 m3 z9 X1 C
# I2 F( X, T% N2 h7 c% D! r( G- ;;;0 S6 L6 f0 j& h* l! j' c
- ;;; Avoid (gc)s on load to improve load time.
% |, E% Y8 w9 u# r/ G% ~ - ;;;
% k! |8 m5 D" Y8 f; |0 M - (defun do_alloc (/ old_allod new_alloc)
/ g# l3 Y" H) i d& @ - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
, S8 ?+ l8 U1 f" ]; F: P# p - (expand (1+ (/ 4750 new_alloc)))2 w! f7 H. p' _' e Y! S
- (alloc old_alloc)8 T3 h- B' L7 Y6 Z% E6 Q$ V7 D
- );defun$ H7 v! \! u: Z B
- 6 d' a0 d+ w, n" ~7 S& ?
- ;runs at load time - rk. u) I# z! l0 A2 A" s; F
- (do_alloc)
) c# l! e! ~! u# m/ a" X - (setq do_alloc nil)1 d( H; F% C/ L7 e! N6 B* Q
- ;;;0 t1 h% y" O5 n) a
- ;;; ===========================================================================
0 `. l; u8 h0 E2 k - ;;; ===================== load-time error checking ============================% s* |. }# b* Q7 S# `
- ;;;+ d5 D& x, M) N( ^- e
- . w7 B- @7 J( A. d( M# z
- (defun ai_abort (app msg) 0 z. o; y5 j4 @
- (defun *error* (s)
6 G% l' ]+ P7 I - (if old_error (setq *error* old_error))5 E \9 ]7 r, O/ }% m z
- (princ)! c4 s" y" P! Z+ |
- );defun% N, [' S( z, A3 C- h& k
- (if msg
3 | N2 m2 Y i/ f: M0 e8 c, H - (alert (strcat " Application error: "
( y* Y4 j3 o; I2 c' J& I - app8 E3 X0 E& M! v8 D
- " \n\n "
3 k# t$ p7 U% z; i: z( L( u$ X - msg
. ^7 s7 s7 e/ i$ a; d- P# J - " \n"
\) h- k$ h3 C: o K4 q - ): \0 W% x% V0 X$ ]' q- Z* x* T5 c
- );alert# z* M: r5 }' B: b( a5 d
- );if% F m) O1 n: |) z4 q
- ;(*error* msg)
( F0 a1 I8 |7 P/ I9 q) ^8 ? - (exit)
, Y4 X' a9 Y- b, @) i, I - );defun ai_abort0 A; B& V- H9 [/ n! {5 E
P1 {, L2 U, v# \" G0 w- ;runs at load time - rk' {( y1 `. M, q% x$ r
- ;(if (and *error* ;added the if wrapper around this - rk.
( ~$ b# h' O" b6 g+ n& e - ; (not old_error) , n3 b8 Y! B$ q1 k; Z2 u
- ; );and
$ ?: j+ O# c2 P - ; (setq old_error *error*);setq, R+ v1 U$ J: ~( h3 X
- ;);if% e( R9 ^5 r4 y/ Z8 Y0 Z
; U$ Y, I- \# [) x* u1 j" R, |
, w" l7 Z* c+ x- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,3 y; s! v3 ~0 j! c- a, X
- ;;; and then try to load it.& O% H) \; f5 g; Q0 R: v
- ;;;
7 A% v) N2 p5 i# F L - ;;; If it can't be found or it can't be loaded, then abort the
% X- X% p1 ~' t3 }( [ - ;;; loading of this file immediately, preserving the (autoload)
7 i/ }8 J. E' q3 U# k - ;;; stub function.
- {, b0 k+ L) K3 G3 N& T: q5 [
9 W' j& t1 k9 p! h* \- ;runs at load time - rk.
1 X; W6 J$ f% d: R$ j+ A' W' d6 m# r - (cond
# U- p! k9 o. V. y7 H9 f6 a - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.7 F/ u+ B- _! u. D
- ( (not (findfile "ai_utils.lsp")) ; find it
% o" z" K( B, e - (ai_abort "EXCHPROP"
4 V/ ^& h! P" |. ^5 y* l - (strcat "Can't locate file AI_UTILS.LSP."
- e3 e0 ?; ]5 q2 o* k - "\n Check support directory.")" N8 f% ~9 P# Z6 ?1 c
- );ai_abort
* y2 V) ^ s1 r/ z6 |1 w `& R - )
( n+ b9 F; H; y0 v# f5 ? - ( (eq "failed" (load "ai_utils" "failed")) ; load it
. ? g6 I' D" [( Y m0 T/ z$ G+ f - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
8 D$ }$ \8 V. o! e/ e - )
3 L& A5 \% e" e8 j - );cond close
( |; B. R- J5 O6 M
3 @* V5 x( d. B$ P1 o5 J- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
2 y7 l/ g3 C/ n2 G, S. O# s) X; j - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses Q( l9 K1 i3 W1 s7 K7 E: k9 ?/ t+ o
- );if ; ai_abort's alert box dialog.
) L" D! r5 Q/ F' ]1 h, x
7 {8 v* z, f! l. u+ Q4 { O! r( X0 c- ;;; ==================== end load-time operations ===========================# X3 N& K4 d4 {( a1 g4 a
- . e% U' O j6 e1 i
- ;;; Initialize program subroutines and variables." `# l8 V! p9 m5 N' Q+ l- ^8 L
- 4 x$ F2 i& p. q8 L
- (defun ddchprop2_init()
+ A3 ~% m# f- ?: v( a w+ v - 2 d3 F. n2 M" T& h3 g0 O
- , F& B& ~: B; G' L8 ?* h5 ~
- ; T* ^" m1 y6 z5 r4 C' ?
- ;;
2 U0 i# ^/ G. W z- c! }" L7 a - ;; Define buttons and set values in CHPROP dialogue box c% U( ]5 D+ z* ] S9 |# ^
- ;;7 R8 H" D1 i6 q3 t: ?- x
- (defun call_chp2 (/ cmdact p1 p2)
4 v7 {9 i/ i9 C) }4 _2 o5 S - $ s! P- D& J% x K/ ?/ X" o/ r: r
- (if (not (new_dialog "ch_prop" dcl_id))
2 K7 M) G$ O0 t+ K9 i- z) W, X - (exit)8 f3 Y, C# J7 E, M
- )! q1 ?9 |! i) o+ \8 E! M e; P
- 2 F! s- D, N: T. X/ L% m
- (set_tile "error" "")9 N, f e, w8 y4 R; ~
- ;; Set initial dialogue tile values/ u4 m! q% \8 \1 |
- (set_col_tile)
% N* p& @# S; k; J - (set_tile "t_layer" elayer)
" U' r+ o* _% q7 d; f, v
* F. v- L! f4 p. l- (cond
; t4 L3 f: U1 ~( @) } - ((= lt-idx nil)
/ | Z, X1 d$ C% w - (set_tile "t_ltype" "Varies")
) q' Q( p' @$ r0 c; s1 R - )
7 ?7 }1 d$ s; ~( @3 p9 Z - ((= lt-idx 0) ; set tile "By layer & layer linetype"; i0 j& S u) O
- (set_tile "t_ltype" (bylayer_lt))9 W; g& c5 o/ V u- y- r
- )
2 M% d# i- m4 d* _- U; M5 ~! D5 B - (T
- w/ F: p' M0 S: Z @ - (set_tile "t_ltype" (nth lt-idx ltnmlst))/ A* o: S, q! T& [- t" q
- )
0 o; B3 O" l* ~ - )
' Z" o- V1 y8 H% k. g& p& p
4 a* @# Q8 T) t- (if (or (= ethickness nil)5 g+ G4 t9 J: \. d' P# v
- (= ethickness ""), K6 \1 n4 p6 g0 i9 a' e
- (= ethickness "Varies")
- h0 v8 _+ r/ n& e% { - );or
3 C5 P- v1 y$ d- P$ i' N8 _ - (set_tile "eb_thickness" ""), o, l v# l$ x" h( ^1 i
- (set_tile "eb_thickness" (ai_rtos ethickness))5 ]; L( c, D/ I1 M% K! Q4 E* @
- );if" A* g& z9 P$ d7 _ Y2 }
- (if (or (= eltscale nil)
% I/ f C: R& l% L2 l: g - (= eltscale "")
0 u% i7 p0 k* I9 t1 w! q$ N8 W - (= eltscale "Varies")8 _6 t' I0 y B# e% Q$ |, f
-
6 x9 O' C0 p( A8 q/ R& {; j) ?" Y - )
9 n# H+ G; q0 y4 H; U+ V$ p) S# ] - (set_tile "eb_ltscale" "")
0 @" I! h+ y& s& V+ m - (set_tile "eb_ltscale" (ai_rtos eltscale))
/ {6 I: V* R: K# @; s8 q) k - )5 w2 q# y1 ~, X3 m: Y9 |) K- A
- (if$ z' c5 E3 {1 X" }8 M7 I/ s
- (numberp ewidth)
7 y) x( R; L4 e8 T$ V - (set_tile "poly_wid" (ai_rtos ewidth))2 K4 ]1 B8 J# }# K
- (set_tile "poly_wid" ewidth)
3 l) M& |* ]+ d! W5 x, \ - )
3 U/ b/ e( {+ W" U6 x - (if3 k8 }1 w; p0 k. Y7 J. y( Q
- (numberp eelevation)
- [5 Z# R, H* K6 j6 g - (set_tile "poly_elev" (ai_rtos eelevation))
9 w9 Q( L m$ T4 ] - (set_tile "poly_elev" eelevation)) j( B, @8 u2 m( F* ? m4 n
- )
) G3 @. j0 }2 V6 r - (if8 n. V9 u7 M- _4 q: _
- (numberp eheight)
' f& b% G1 U: H6 d% [7 P - (set_tile "text_hgt" (ai_rtos eheight))
% C* Z' B* b2 K$ o' _1 h9 X- A - (set_tile "text_hgt" eheight)
! \. q# Z1 E4 ^6 W g, }. m1 i - )
M: T+ e/ ~8 n( T& Y& a - (if (not estyle)
0 V, ^, j( j |* D8 m( r: } - (setq estyle "")
6 o$ a, ]+ ]1 |; {, ^/ M' L - );if X0 }1 [- U/ a0 w) H
- (setq hair_style_list (tnlist '("style" 16)));setq5 g3 k* N& J% ?8 B9 ~# J) M. C7 y5 ]0 }
- (if (not (member estyle hair_style_list))5 w6 T8 J( d3 L7 Q8 O$ d) s5 _
- (setq hair_style_list (append hair_style_list (list estyle)));setq- g/ b3 V# ]2 j4 u
- );if * r1 M$ a- \8 ^4 u
2 f6 A+ V) o( L2 t, h( I9 d- (setq hair_style_list (acad_strlsort hair_style_list));setq' J+ A2 \. ]& t5 Q& x
- (mpoplst "text_style" hair_style_list)7 T: n; T" ~; D' J. g5 W( b
- (set_tile "text_style"
2 l8 I9 h a _; C4 o) z - (itoa (position estyle hair_style_list))' T" @- }: Q) h: k- G
- );set_tile 2 S- T. x6 z7 w/ q" a
- 1 q6 Q5 r9 {8 L J0 D2 y( {
- ;; Disable tiles if need be... ;@RK
" ~. \3 W( S- w2 K0 S# e - (setq a 0)( V8 c( H6 G/ I5 \5 M! _
- (while ( < a (sslength ss))/ y4 H1 W% u3 ^* ^. z
- (setq which_tiles
7 g: t2 m! Q# m, Q5 I6 @5 q - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))+ A7 e; n5 W4 u8 ?/ h4 F- E
-
. J" L* ?* u. v% z9 \1 Q - ;; If all fields are enabled, don't bother checking anymore.9 h# h& S7 I5 _ h: J, j
- (if (/= which_tiles (logior 1 2 4 8 16))
8 C0 Q2 r! A% m2 ?0 ^+ z! M - (setq a (1+ a))5 t* J: D! L* Z/ w
- (setq a (sslength ss))4 G" D3 @( r: h ^: N4 E
- )
& o( v0 g' e6 R4 U - )
3 [* a) u7 ]; y - ;; Layer Button and Text Field
h3 a: c- B2 `( [ - ! e' Q6 U8 l4 S: K2 V2 X u
- (if (/= 1 (logand 1 which_tiles))
5 i5 l# m% T1 m( \ - (progn
# }7 X7 t) V. v# { - (mode_tile "t_layer" 1)
2 f- p2 E8 F3 {$ S8 T0 d9 W - (mode_tile "b_name" 1), d, }- o% m: T0 a
- )6 C8 B; v( I1 r9 R
- ), [7 Y# x8 h2 Y. K% H$ P: h1 ^
- 4 J6 g$ b5 n! R% [' B; Z
- ;; Color Button and Text Field
! J' v0 `2 X a8 r - (if (/= 2 (logand 2 which_tiles))* n! i9 _4 [! J: _1 y; V6 ^
- (progn' T' O* Y u% ]: d3 m0 X
- (mode_tile "t_color" 1)# s6 v5 L! o4 ]5 C6 F G& X2 k: E
- (mode_tile "b_color" 1)/ `0 M) O; b0 r: Y/ h6 I
- (mode_tile "show_image" 1)* @/ m, {( D6 y
- )9 s- ^ c W0 Y w
- ): e N) i, y# R$ B( p- v9 e3 V
- ;; Linetype Button and Text Field
% T6 A& l4 _& I7 h - (if (/= 4 (logand 4 which_tiles))
" ?2 z( c I+ F: x- N1 X% f - (progn
8 o( w; \, p* z - (mode_tile "t_ltype" 1)2 I4 v4 e1 f! S1 x; \: L) `
- (mode_tile "b_line" 1). l3 d) j: N$ e# s' g. V
- ), n$ \: s6 b" z
- )7 d$ O- p$ Q" i
- ;; Linetype Scale Edit Field l, p. |: P+ R" g) a" P7 I C" `
- (if (/= 8 (logand 8 which_tiles))
" _; r% J7 E* b8 y/ P- _2 ?4 U - (progn0 X. n4 ]1 u$ C. A' d) }: ?+ k
- (mode_tile "eb_ltscale" 1)
, ^" v/ t7 A" f& { - )5 Z- I& F4 P: z7 D9 `& o
- )6 N9 ~( Y7 W3 _3 H% x
- ;; Thickness Edit Field.. W) Z; @- G# }% i1 I, o0 e
- (if (/= 16 (logand 16 which_tiles))
0 v: o' a7 L* ^7 L9 w! e - (progn/ r7 {( q0 r* x
- (mode_tile "eb_thickness" 1)
* x6 b! C% ?! ]( P - )+ L* @( q5 O. `5 Z; b
- ) N4 ^5 G/ N" H
7 M% A% q% v) }) T- ;; Polyline box and tiles @rk 10:05 AM 1/30/97; z: b) X( {2 \( L
- (if (not (= 2 (logand 2 eflag)))
f1 U. M# U3 o/ k - (progn4 ~9 T; |( |8 {. g# f* D$ X
- (mode_tile "text_hgt" 1)7 R9 F6 w7 Y- y" c0 W. `# N
- (mode_tile "text_style" 1)
; [' n7 k2 l" c( w - );progn3 i) j( o3 F. |4 y
- );if
' J2 e9 o* K( D" k - (if (not (= 1 (logand 1 eflag)))
2 W- R# _- _$ u4 n% a - (progn % {1 L' i+ L- i! U5 U$ A; m
- (mode_tile "poly_wid" 1)
7 x! ~. L" s8 m: g2 M5 |( a3 ?& S4 H - (mode_tile "poly_elev" 1)* v1 _, H; R- ]
- );progn then disable polyline fields
# W. C( u$ |. S# @# ^( L - );if
+ L) { t; K P$ d3 x
N7 a) `2 c7 Y$ l& T9 @6 L- ;; Define action for tiles
% Q; i* r5 A4 Y. {+ m3 N9 O - (action_tile "b_color" "(setq ecolor (getcolor))")
/ ^3 G5 l; o5 Y0 o - (action_tile "show_image" "(setq ecolor (getcolor))")
9 t. I0 q- ^( i* B( D - (action_tile "b_name" "(setq elayer (getlayer))")
/ [7 |# l, y. l2 e/ z2 D - (action_tile "b_line" "(setq eltype (getltype))")3 \! Q4 F) x! O0 g
- (action_tile "eb_ltscale" "(getscale $value)"). B {, r7 I: g: ~$ }! d
- (action_tile "eb_thickness" "(getthickness $value)")
* K6 T; K J% R& W: M h, Z) ^; n, y - (action_tile "poly_wid" "(getwidth $value)")
/ Y& |4 C/ a, p) o, h/ I% ? - (action_tile "poly_elev" "(getelevation $value)")+ o3 \$ j3 M( G8 X5 J, V
- (action_tile "text_hgt" "(getheight $value)"); ~; `. ]- K5 R' R @1 t I( D
- (action_tile "text_style" "(getstyle $value hair_style_list)") 8 N) D4 n3 m; B+ a# W& U% p1 I. ?
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")+ R( P3 {) X i6 x; u
- (action_tile "accept" "(test-main-ok)")
' u9 c% m$ m$ H6 I6 f/ [ - . K0 W; S- _% @+ H1 L T6 K+ A1 l
- (if (= (start_dialog) 1)
4 Z# J. F' K" M. y - (progn# n5 w8 D" u3 \
- ; Update special properties for polyline and text selection-sets.8 F; |# l# I0 {: R0 I
- 0 k2 f4 G# n. S" Q) q
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
2 O) h& x$ m+ Z6 a2 q8 s" d - (or ewidth( g% q; i+ Q# C& D
- eelevation; H. I7 } n& z) k
- );or. b2 U) E$ b9 l6 l8 O. D9 V, g
- );and
' P# g) y: T+ _/ x! E$ ^& M - (progn
9 N l7 e" D/ Q% [. ]( Q; k7 X9 y - (setq ss-index 0 2 r9 H+ o' j+ l0 `2 \" e, c% {2 [" Z
- ss-length (sslength poly_ss)
. {6 e" J$ {2 a5 k - );setq
" \0 @/ P7 w* k1 D! h) I# d - (while (< ss-index ss-length)
- O$ l4 T! ~9 n& B f/ r: p$ v' \2 t - (setq ename (ssname poly_ss ss-index)
. v6 z9 H+ F! L, ^6 x - elist (entget ename)% p( ]0 ^3 j9 q3 x
- );setq
, O4 S1 j6 n( V% e/ Z ?8 f, R1 H - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
5 s/ V# P$ m8 L& ]( T - (if ewidth
% \+ O' f% ^; h5 y* w - (command "_.pedit" ename "_W" ewidth "_x")
* F7 {9 a( k6 X! S# I( ? - );if
2 D' `3 C7 Q3 h9 K) V - (if eelevation 8 G9 x8 q9 Z+ }; I
- (progn! a* h. s, w+ Q7 s
- (setq p2 (list 0.0 0.0 eelevation));setq
' J: N0 n; [, q# S6 P4 q5 I - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
% v! _, @: @; y- Y0 U8 N - (setq p1 (list 0.0 0.01 B( U+ A5 z$ Q, b: g* Z8 x# a
- (caddr (cdr (assoc 10 elist)))
: U4 q6 B7 M, J7 N - );list, {( e, N4 d( P& f) K
- );setq
4 `) o& N" U5 F- A - (progn0 a5 o% J" N4 k7 [/ |
- (if (assoc 38 elist)
1 i" U+ T$ X3 } - (setq p1 (list 0.0 0.0
1 B3 L/ {9 H% {' a - (cdr (assoc 38 elist))& k; a: ?6 f3 D( a0 [0 x/ g
- );list
" t( n; X4 t4 n6 C- B - );setq, x8 H& N2 z, O/ b& ?8 w- f, v; z/ @
- (setq p1 '(0.0 0.0 0.0))
/ W( {- v* D, n3 q6 P/ a% t* { - );if9 y5 g3 _6 B% | T" N, Q: U
- );progn $ Y$ g. `- w% Z3 N
- );if+ W8 A: I& t3 M# b0 m& X
- (command "_.move" ename "" p1 p2) |6 \) A+ ]) x2 }' U
- );progn then change the elevation of the polyline
6 C3 y3 F( [8 L7 j5 v# G% q6 j - );if
; Q1 N0 \/ l% D4 W - (command "_.ucs" "_p")6 l6 U* Q; x3 \
- (setq ss-index (1+ ss-index))! l2 p& _. n% o- M. L; R) P) R
- );while
+ ~8 g# h0 z+ b/ X1 w! J - );progn then polylines are in the selset
* d6 p6 r: X4 \, M3 o2 x w - );if2 n W' g) N9 D, g& X0 d: A
- (if (and (= 2 (logand 2 eflag)) ; text9 M+ j# h9 a A" J2 [
- (or eheight
$ j/ u, G% M# h$ G8 Q# @( w2 B - estyle
) g0 ]$ H+ G5 H# y$ U - );or* b) Z3 `1 I) W3 t! [& y
- );and- b0 ]+ O& l& G/ U% R4 Z2 W
- (progn
8 o9 q, y$ e- R3 A) T2 s - (setq ss-index 0 ss-length (sslength txt_ss))
; ~4 `3 J6 O. ?% O/ G! g- | - (while
+ w$ `: Q2 [ F1 B4 I9 r* L - (< ss-index ss-length)
# @( n* k) ]) L7 s - (setq elist (entget (setq ename (ssname txt_ss ss-index))))
9 @# U$ Q. \$ u! ~) [3 a1 M - (if (numberp eheight)
5 i8 e8 h! O0 g; p' ` - (setq elist (subst (cons 40 eheight)/ [: o+ y4 s2 \$ D/ m: B
- (assoc 40 elist)1 A4 x j6 j5 l
- elist
# B% T; R$ h9 i. A X- m - );subst. a7 H) c8 e0 w. |' W8 A
- );setq
C2 p$ u2 C+ x- @4 q4 d6 q - );if; o( n: H0 r: g' j
- (if (and estyle ;(not (equal estyle ""))+ ^2 [! r3 f A2 K8 c
- (not (equal estyle (cdr (assoc 7 elist)))), ]+ ]1 p2 N5 w" E( P, g. c* r
- );and9 S9 d+ R* ~* h$ E9 k! e+ U2 s
- (progn * v7 X* [4 |8 d1 r4 S- b
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt ! B% H) j& j, ]% f+ a1 _! f
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))# y4 l' [) s7 S z
- ; (setq elist (fix_mtext_fonts estyle $ E2 [! l/ Y; m& c$ h* S$ T( @
- ; elist% h u9 A8 U8 B# b$ ~- q9 X8 U9 U
- ; )
1 P- Q" j" p D, b% y8 c - ; );setq then* k- M7 H; N" n
- (setq elist (subst (cons 7 estyle)% ]0 a7 j* g& T/ b' N* A
- (assoc 7 elist)
0 f% H# x: x2 c S3 Y; f - elist2 S# B3 ?9 s5 M9 {0 p6 A
- );subst
% r2 Y* h$ ?& V" n/ W - );setq else
- M( `! e; }" ]; ?- L+ Y - ;);if
0 A4 t# L. e1 I2 ]! \ T+ t5 Q" C - );progn n: d4 ~5 l% m( D# a
- );if3 w% d- G. i5 G
- (entmod elist)% i9 b& K b8 i" W1 I
- (setq ss-index (1+ ss-index))3 d: A# \, k, G
- );while
9 X* ^3 W( n+ Q- _" m+ ? - );progn then
" k- x- p/ U0 k0 H - );if
+ ?; B2 ?1 R* H - $ @- v5 E1 p' e/ R5 r
- (setq cmdact (getvar "cmdactive")); ^7 {) J6 G, V& P3 Z' @. n
- (command "_.chprop" ss "")
% ^4 x: u1 [# j" E) n - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
8 B1 V7 P" a/ V ~' L - (progn
8 r8 ^) u! N, G/ p9 Y' p$ _8 A9 P - (if ecolor4 t' w+ y" e/ q4 y1 J) v/ y7 _' D" ]
- (progn
* Q( c" I2 w C+ n# k8 k - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
4 s0 \2 \5 s/ `% N9 m3 s - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
4 V! n/ o$ f# ~ - (command "_c" ecolor)
0 Z0 u. z, o0 }0 K1 O$ j( |' \( d% X - );progn then4 T( E. }7 U% b% K- |* W7 \
- )
$ A0 B* O4 }9 ~, N, O6 g - (if (and lt-idx
4 J( H+ T8 Z" P# `* d- _ - (/= eltype ;|MSG0|;"Varies")7 p. z8 r4 s/ ~
- )
1 r2 \" l! ]. R P$ ~! o+ P7 } - (command "_lt" eltype)
; K, ]$ j$ V, e0 P - )) \, [: x" N) l; i. ^
- (if (and lay-idx u2 t( U+ Y) c$ F5 g% Z
- (/= elayer ;|MSG0|;"Varies")9 |4 F8 Q: ~; Y# f. G# R2 q( m
- )
9 }% O7 ^: x/ G9 W" Y; x0 m' T - (command "_la" elayer)
$ k$ Z/ g# [3 r2 C) w5 e& O - )
8 V1 g& _* Q+ f3 e! S4 z% d7 b/ P0 B - (if (and ethickness
, R( a+ i! ]" ]. ^# A8 N/ e - (/= ethickness "")
; ~& Z9 B. o; s3 Q - (/= ethickness "Varies") ! ^/ h7 F4 l: l) }
- )
2 k+ f) ?" ]3 S! r - (command "_t" ethickness)" x2 G5 H- }: ], y; a2 U8 S% F
- )1 `" ?- ~- ?; s9 S6 p
- (if (and eltscale (/= eltscale ""))
$ t5 n( ^6 Q" Q$ L D - (command "_lts" eltscale)
# D$ J& D: ~! ^( V - );if
- m- F, L/ Q% i" Z6 T7 O - (command "")7 t, s# p. ?8 u0 u0 U: U
- )
2 y: K ^) h& S9 m6 h* S2 m - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set, i" s7 O: q& w( }1 `7 w: C [
- )
5 {' I n9 |5 C8 s; u
1 y% A1 `9 D/ K. {6 z) F- );progn then OK was picked in the dialog.5 A+ p& L8 ?: w! q) W" n
-
# R& t0 k' K9 Y& H. D+ F - ;; Fred GERBER - 25-AUG-94
# K/ C0 y5 Y- s) }1 k& F - ;; Don't print the "Properties unchanged" message when the user cancels
* h: Q, ^9 X) a N& L4 P6 O+ o - ;; the dialog because he knows that already (otherwise he would have* Y+ g' I2 J/ ?) `
- ;; hit the "OK" button). Display the message only if CHPROP fails for
* b5 T" t' T! T2 w - ;; some reason, because it is not the expected behavior of the command.. k7 [, V: U" m6 |3 {% O
- ;;
: C- Y V* w4 Y$ J8 J& ?/ y - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")9 ^, g( ]7 |1 ?! W; ?
- );if; w8 Y" p! g; m% L& e* \" A
- (princ)
8 {$ O U, ~ V5 m - );defun call_chp2& G# w' Y5 m: U
- ;;+ S6 I( C: b5 A; o7 c
- ;; Function to set the Color text tile and swab to the current color value.; v9 d( b7 \* V$ N
- ;;
! X7 W8 F' u9 b0 Q- u - (defun set_col_tile()
+ M; R. g3 u2 R/ R# M5 ] l, ^ - (cond, s( ~0 ^$ W- |5 s
- ((= ecolor nil)* h3 T# r9 q6 ^: D
- (set_tile "t_color" "Varies")$ ]- F: S4 S5 {6 O# w! O* a- ]
- (col_tile "show_image" 0 nil)
5 e8 q) ~5 d- u o3 g8 { - ), O! ~! K) N5 R/ q' F) E8 w' \# E' b
- ((= ecolor 0)
8 B. o8 I8 h0 g7 M4 O: O - (set_tile "t_color" "BYBLOCK")
7 [8 h. C+ ?7 ^5 C - (col_tile "show_image" 7 nil) ; show BYBLOCK as white" R, J( ^# U7 L" S; |' `
- )
! o# o3 ]7 a+ n% u - ((= ecolor 1)
v. e5 g* H1 T; }$ _9 e; l! ?$ D - (set_tile "t_color" "1 red")
( U5 x/ E# w! _3 h0 ^ - (col_tile "show_image" 1 nil): \0 [+ _$ T: y" G S% l+ P
- ): B) I; a! Y2 ~
- ((= ecolor 2)
( Z6 i! t) O+ G2 y8 r# Y, r - (set_tile "t_color" "2 yellow")
8 B+ C3 O8 Y3 L% s5 m3 y4 e - (col_tile "show_image" 2 nil)
9 }6 w, A9 G* O$ h! D1 I - )
! |+ x& B5 u1 G7 g" a - ((= ecolor 3)3 X' m1 I% F4 O' U. m! N, T
- (set_tile "t_color" "3 green")6 {9 @- F7 w1 q% {; Y- Q# ? E
- (col_tile "show_image" 3 nil)7 B" i2 d$ D7 b- _
- )
( f- Q; @. S9 r9 E$ d3 B+ j - ((= ecolor 4)
3 U% J1 z2 u6 K8 h1 m - (set_tile "t_color" "4 cyan")
4 u/ X g0 _0 R* | S5 T - (col_tile "show_image" 4 nil)
& U7 ?* m7 I% c - )
1 v# M$ f! c% a; h' y- A - ((= ecolor 5)
/ u4 z) U2 E7 A3 A - (set_tile "t_color" "5 blue")+ p' Z/ ^5 X0 Z
- (col_tile "show_image" 5 nil)
0 P, T; W8 v% d0 ^ - )+ m9 u$ y4 h o
- ((= ecolor 6)
/ ]5 H- O) J5 f! N7 \% F - (set_tile "t_color" "6 magenta")5 L' S5 v3 J- D* _
- (col_tile "show_image" 6 nil)" y1 j& ^1 F0 s l" h
- )9 i$ X4 I! h# K: S: x, E1 q
- ((= ecolor 7)
8 j) o; W7 Y! y( J - (set_tile "t_color" "7 white")
, M' f5 T) U. A$ A2 U; ^! W - (col_tile "show_image" 7 nil)
3 ?+ S. c4 s" C. a" K2 Z N - )/ g, k. {; p r( s
- ;; If the color is "BYLAYER", then set the tile to4 d/ q ~1 Q; @' |- K* i
- ;; show it's set By layer, but also indicate the
0 W, q8 B9 p1 d! [' Q - ;; color of the layer - i.e. By layer (red)7 v9 ^, Y! f3 G. n
- ((= ecolor 256)! ^( K# N2 |, _6 c" I* \
- (set_tile "t_color" (bylayer_col))& A; o# O; A3 x
- (col_tile "show_image" cn nil)
! U% Z0 V# t& f - )" W! _3 ~' s7 O+ [; S
- (T
* E8 _7 u0 ]# ?- | - (set_tile "t_color" (itoa ecolor)); x: O4 F! k; B7 Y' p
- (col_tile "show_image" ecolor nil); T+ H2 g% ^) F% o. h+ @0 I
- )+ ^" u0 U/ {6 Q
- )5 z) g- E' x# c6 R) m" w; E
- )5 F2 C& | ~$ u( E' E+ }% N7 Y* V
- ;;4 O& g* Y' y% x. I" S
- ;; Function to put up the standard color dialogue.
" B+ f1 J( ]% _9 r. z7 P - ;;0 H+ p5 _9 }3 \) ^! R" e* Y" c
- (defun getcolor(/ col_def lay_clr temp_color)3 Q1 i0 q* P' @& W3 V- L6 h/ p
- ;; col_def is the default color used when rq_color is called. If ecolor
, ?9 p. D% L- {% k& b0 ` - ;; is nil (varies) then set it to 1, else use the value of ecolor.2 l' L% Y/ b+ H& t7 D, G0 l
- (if ecolor8 l( M. f7 ]6 m& f# z& F
- (setq col_def ecolor)7 Q- q7 L3 I6 U
- (setq col_def 1)
* d% z9 g+ L* P. _! a - )
% ]$ I& e; I+ c* d' d4 Y - ! e; A$ J6 {4 D) n
- ;; If we're working with a single layer, get its color
u" T- D! V& H* g5 C0 A0 U - ;; for use in the color swatch if the user selects color BYLAYER.; ^/ m" X: S. g; p1 c- X- q
- (if (/= elayer ;|MSG0|;"Varies")
" P: ?# H$ S8 C" z, A% h+ f. |5 M* \ - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))8 H* j3 p6 E% Q& ` X& Z
- (setq lay_clr 0)
q' y4 b' b/ S' Q3 R) ~ - ): X" V4 f! i$ ]5 T9 C
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
& N4 ~- o' f/ G+ Y' K( f - (progn7 N% s2 X( T* s" K* c& p$ c
- (setq ecolor temp_color)7 p: a/ [% v& J
- (set_col_tile)6 c, ]$ ~. V2 L! n5 H
- ecolor
9 y1 E) w& v/ i8 Q0 S, T1 X - )
9 m8 C. G: U7 Z7 @ - ecolor
$ x2 e' d7 r% W! ~) H' W - )' b% |- V) B7 c; u. ~! q4 N$ e5 q
- )) I* i* Q$ `( v1 x% K( w1 h5 x
- ;;3 u. C+ w+ {9 o$ a& h w! J
- ;; This function pops a dialogue box consisting of a list box, image tile,' p8 B" D" h2 Q* \7 A( Q) [
- ;; and edit box to allow the user to select or type a linetype. It returns
9 T8 l6 y" \" c- G7 h8 x. }/ j - ;; the linetype selected.
+ m6 H' M& Z9 J7 `/ p% q - ;;- J0 d4 [: B, d- i
- (defun getltype (/ old-idx ltname)4 R0 X) o$ B! a- C8 i
- ;; Initialize a dialogue from dialogue file: k7 g: \% D0 G
- (if (not (new_dialog "setltype" dcl_id)) (exit))
5 C& Y5 B" S! d4 M. `) }* j - (start_list "list_lt")
" I/ e3 r/ D5 F, q) H - (mapcar 'add_list ltnmlst) ; initialize list box+ _7 ]% Z5 @! _* j: c
- (end_list): o' O0 O% f' u$ ? G
- (setq old-idx lt-idx)
8 O0 R n( e' ]! h k! x; O - ;; Show initial ltype in image tile, list box, and edit box3 \' V" {: i# i7 i
- (if (/= lt-idx nil)# F! p6 Q y/ d! }( ?$ [
- (ltlist_act (itoa lt-idx))
. p1 Q- u; L' d% O( q9 \) D) v - (progn6 P( V: E( g0 ^
- (set_tile "edit_lt" "")
3 Y( L4 r* e( ~' y5 T - (col_tile "show_image" 0 nil); K$ }' b, C/ g7 ^$ m
- );progn else0 g& C9 U0 n3 W4 y1 g
- );if$ V' @9 I* g ?1 s
- (action_tile "list_lt" "(ltlist_act $value)")
: a) ^1 o! {5 o8 e9 P& G/ p - (action_tile "edit_lt" "(ltedit_act)") u- s s$ ?% a
- (action_tile "accept" "(test-ok)")
- q3 W9 J! l% p6 T+ P - (action_tile "cancel" "(reset-lt)")5 R& U- O9 g$ ?4 }
- (if (= (start_dialog) 1) ; User pressed OK
! w; W/ p: m' f) V$ L9 h* z - (cond
) @3 ^5 F9 s- z a G - ((or (= lt-idx nil)
. t7 S! U$ D. E E* U" B8 W - (= lt-idx (1- (length ltnmlst)))
3 R) j; n& Z% f - );or- u, R: O% _) }" {, E+ f7 ^. S. L
- (set_tile "t_ltype" "Varies")
+ I9 u/ O, d. V2 {& k& ` - ;|MSG0|;"Varies": Q+ G3 ]1 d) F4 M& k
- )6 e! H7 S/ H {/ Y6 \3 p9 O8 c
- ((= lt-idx 0)0 V4 N1 G, _& i; G+ a5 ]
- (set_tile "t_ltype" (bylayer_lt))2 G' @7 c2 n% U" |6 Z- X1 Z& E2 j7 }
- ;|MSG0|;"BYLAYER"
& F% h3 [9 p P$ V/ }8 M0 c1 h - )2 v3 m+ h0 P6 d& [7 ~6 a
- ((= lt-idx 1)
& [; B6 D9 q! c - (set_tile "t_ltype" "BYBLOCK")( Z) A: z$ G0 v8 E, n3 N
- ;|MSG0|;"BYBLOCK"
) Y- D' i3 O1 S4 x - ): Z! I8 T4 l& `$ x
- (T5 F2 Y: H) `7 b9 _+ u
- (set_tile "t_ltype" ltname)
0 ]( h$ m. ]' q, s! ]0 A0 ]6 t - ltname
& F! P% T t8 t( Z2 K' D - ) e' a) s7 M4 c" u- d a9 Q! L l
- );cond then8 ~% w+ O2 [2 z) I% K) \' c
- eltype
" W* o. y; e+ A" t1 T - );if6 i2 s' U4 x1 @
- );defun( _' O' N8 U( E; Z
- ;;. T6 f6 G) F6 v
- ;; Edit box entries end up here
, f5 |! T. {. q7 v) F9 M, i8 ? - ;;1 x) J2 `6 u9 I% E. k0 _4 a# ~
- (defun ltedit_act ( / flag)
; ]0 I# z% a0 B" Y - ;; If linetype name,is valid, then clear error string,
, K4 U( ]( l* t i$ {% G - ;; call ltlist_act function, and change focus to list box. H$ z5 n$ h- d! M
- ;; Else print error message.: c! \5 V) _) q% ~2 x' n
-
$ ^+ \: x4 S2 ?, k/ h& W' i - (setq ltvalue (xstrcase (get_tile "edit_lt")))
3 {+ o4 `) ?5 O) S4 Q/ D' b - (if (or (= ltvalue ;|MSG0|;"BYLAYER")$ c1 G, i0 z' |* \/ S- ?7 h4 {& E
- (= ltvalue "BY LAYER")* A1 i6 k, c# y- r5 a7 K# P
- )2 x, p' X7 H: E( }
- (setq ltvalue "BYLAYER")! Q0 S, y. p1 H8 |( a
- )( Z+ g! e; h3 Y9 u8 T
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
) A4 s& m! D3 z0 [% D% ` - (= ltvalue "BY BLOCK")5 {. X$ _7 T5 J4 { S3 W' u. C
- )
8 m, u4 X% j# L+ w0 V* i4 A% ]% R - (setq ltvalue "BYBLOCK")
7 p* E% M( G# v2 ?) H/ l' N - )
; @0 p; g1 ~* k# T - (if (setq lt-idx (getindex ltvalue ltnmlst))6 F K/ O3 A% F- ?4 N
- (progn) I0 J* ~# x( m6 i$ r
- (set_tile "error" "")
E B6 y. f' h/ }" I0 {4 [# i - (ltlist_act (itoa lt-idx))6 \; C. _5 a. d6 ^ G* s
- ;(mode_tile "list_lt" 2)- t8 I4 B4 h' r+ X$ s+ `- D0 b
- );progn then# Y. t& W9 S7 ^; y7 K
- (progn
+ G2 H/ D) B& d - (if (/= ltvalue "")3 }& |( h# @& k0 d
- (progn
; V7 Z/ k2 N2 O0 D - (set_tile "error" "Invalid linetype.")
) J1 p; Z6 F* U1 T t - (setq flag T)
( B/ B, m# }0 J d - );progn9 d+ N$ p" k! U& v% i$ G# S! E0 ?8 O
- )# |9 _* T' z/ y2 R6 e
- (setq lt-idx old-idx); w( D) U& `% A* W/ R# A' D8 b
- );progn else
* w' l1 J3 ?- K5 v - );if
+ F$ M3 I V( N - (if (and (not flag) ;added so a return will take you out of the dialog.3 A+ Q2 ]" W. ?, a
- (= $reason 1)
. j2 g0 u* g U B - );and
3 i& Z% B' U2 ^ M - (done_dialog 1) 3 F, o1 F, i- g; W$ o+ g4 O9 u: W
- );if
6 r& y- t3 m2 I! O0 w - );defun ltedit_act7 I2 s- y! _8 [
- ;;
8 R% z- q& g2 V' `7 v+ P& g7 C4 `* ~ - ;; List selections end up here
+ s" R6 B1 R9 q3 G% @) l- a - ;;
: Y- z: |) e! z - (defun ltlist_act (index / dashdata)
( C* X9 n( T/ T4 N - ;; Update the list box, edit box, and color tile3 g1 t- G% N) y+ }' J4 B- H8 R3 g
- (set_tile "error" "")4 d8 e2 g$ V/ s& P3 d6 Z
- (setq lt-idx (atoi index)) Z6 b/ h* M# e, G* P* t9 E
- (setq ltname (nth lt-idx ltnmlst))7 r( z6 u* E+ ?; @- V, H- m
- (setq dashdata (nth lt-idx mdashlist))+ f0 L- b0 |/ c+ X
- (col_tile "show_image" 0 dashdata)
$ J$ b- w& K: U4 M - (set_tile "list_lt" (itoa lt-idx)), C) p' k! B& Q- B6 A0 x+ h
- (set_tile "edit_lt" ltname)
( j) O" {4 _ w% M8 d. m - )
# W8 Y, b, x( u |6 a7 r& h0 p' P* u - ;;
8 D+ V' ]) `6 o% P - ;; Reset to original linetype when cancel it selected, `: m9 b6 m; B' T: B; o+ E
- ;;0 U9 S5 x: \& w3 n
- (defun reset-lt ()' h3 t# ^4 \: @. r/ a
- (setq lt-idx old-idx)
. m1 ~0 S U1 D& Y; j+ ]# O1 p - (done_dialog 0)
2 C8 M/ J7 l" i, z7 f: P - )0 ~0 s' n0 M: D9 F2 ~' F2 d: e
- ;; q+ F2 p$ @* u1 F9 y8 Y4 y! c3 l
- ;; This function pops a dialogue box consisting of a list box and edit box to+ O0 E) _; S4 p: t- P
- ;; allow the user to select or type a layer name. It returns the layer name* D5 [5 g5 R5 i0 P9 O$ o
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the' ^. t: z; @$ s- a( d2 `( i
- ;; drawing.0 T7 J3 V" n" h7 f, n7 E, R5 p
- ;;
, Y6 q6 p3 ]; B2 Y0 e4 _, ^% q - (defun getlayer (/ old-idx layname on off frozth linetype colname)% N8 B8 F9 t* J- ?4 e7 R9 e
- ;; Create layer list the first time the layer
6 ]9 s4 h7 S# U0 [; A+ ` - ;; dialogue is called.
' E. W; Z1 F; L - (if (not lay-idx)
4 ^: l1 T/ [# A% g. B3 j I - (progn
# x; ?6 J- C$ J: P8 U; x - (makelaylists) ; layer list - laynmlst; v7 I- _/ C: |7 R' K
- ;rk
% D0 z( w' }& v% n5 C# `/ i& O - (setq lay-idx (getindex elayer laynmlst))% P( W7 F8 b6 o- U; [; D
- );progn+ }. C! j9 z9 c
- );if# E$ }: z8 Q: w( x
- . \# }5 c0 \: o3 v
- ;; Load a dialogue from dialogue file
7 l/ h$ j1 k& y D3 e1 b- N9 D - (if (not (new_dialog "setlayer" dcl_id)) (exit))
' O/ |6 Z, o0 I8 j- F - (start_list "list_lay")
9 F: u8 O# O1 k$ ~7 A: ?1 N8 w) J - (mapcar 'add_list longlist) ; initialize list box
0 C3 Z) Z, |8 o( `0 _# F$ v2 e - (end_list)
) b1 g$ |9 I: Q3 p - ;; Display current layer, show initial layer name in edit( O# _& I$ `8 o \" G& p8 B7 C8 a
- ;; box, and highlight list box.( G% s! O7 T5 G/ _1 @. x( Y
- (setq old-idx lay-idx)
8 Y) D9 Y! Z' Z' U - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))% D! C2 i( j' g9 V
- (set_tile "cur_layer" (getvar "clayer"))
0 \# U5 k$ S4 ~3 P1 h2 @3 f+ x - (action_tile "list_lay" "(laylist_act $value)")" u9 N7 R0 H0 o1 s* Y. {/ F( ~3 p
- (action_tile "edit_lay" "(layedit_act)")% O! I$ x' I4 x! h i
- (action_tile "accept" "(test-ok)")+ N4 E" D# B# N" Z& g% D0 o
- (action_tile "cancel" "(reset-lay)")
" `; s7 V( H4 C' M) L% ]# ` - (if (= (start_dialog) 1) ; User pressed OK8 ]3 ]1 [, S; X0 O" _# y
- (progn
3 O& d0 L. B6 I" | _1 t* ^ - (if (or (= lay-idx nil)
6 ]% l( t( R' i: L! i3 I" F - (= lay-idx (1- (length laynmlst)))! \5 @$ m2 ]# F! _; B" Z; E) S( x
- );or
' P- J4 I, Y. i+ p - (progn* R/ ~3 T+ B, ~. m8 }& p) x$ i
- (setq lay-idx nil)
! C( J. @% l/ S - (setq layname ;|MSG0|;"VARIES")- X9 Q! K3 r( J0 `( P% o0 p
- (set_tile "t_layer" "Varies")
' R2 z; A* C$ F9 h0 L - (setq layname "")9 n; ?- h5 K0 v! ?* ?
- );progn
4 k# y# ?. m @7 D6 v5 [* @ - (set_tile "t_layer" layname)" D4 m2 E7 k8 e/ q8 K; g# P
- );if
& o9 F/ z+ L3 `$ U4 p6 ^6 a9 u$ Q - ; If layer or ltype equals bylayer reset their tiles1 o" ^; h" B$ ?; E" x {
- (if (= lt-idx 0)' m. }& V/ T" P2 K
- (set_tile "t_ltype" (bylayer_lt))
& i, W' I8 O! F" ]1 T( W - );if3 k. D6 w. N8 g/ L
- (if (= ecolor 256)& Z' ~9 M2 ~/ n( ?6 i
- (progn
/ e! g) C& u6 m- V0 {; K& ^7 N - (set_tile "t_color" (bylayer_col))
3 U4 `* }1 D2 N+ Q$ A& K - (col_tile "show_image" cn nil)
6 e2 c. E% ]8 r, H/ u) b - )
% R& t* Y- t2 ~+ J* J% }3 l1 { - );if
2 _3 c( h9 D! C+ x2 N% x$ w ]# N - layname
1 r0 i# k* A: X - );progn
* S, ?4 d+ h( Y4 [) Z7 ]$ c' j - elayer
( H* s* R, N8 _5 L1 q; K4 N - );if; V+ e( e7 [' j; g# U
- )
, ]% u9 b+ M s7 X4 c/ x - ;;
3 a# T; P8 z2 K i6 o6 v - ;; Edit box selections end up here
/ a! A9 J' C5 O0 C ~6 T0 s8 b e. { - ;;
/ `4 F0 S1 v) b! k - (defun layedit_act()3 U( M5 o" n2 J9 V& R
- ;; Convert layer entry to upper case. If layer name is4 I3 d# I- F& o# t' h
- ;; valid, clear error string, call (laylist_act) function,% e2 r% z7 J9 U8 B# J3 e' S
- ;; and change focus to list box. Else print error message.* `1 {/ @, j `( u/ N# E
- (setq layvalue (xstrcase (get_tile "edit_lay")))
+ g# T! c% A' V" \% } - (if (setq lay-idx (getindex layvalue laynmlst))
$ n! N% n- Z" j3 k: F. @* ~$ w6 |# w6 t5 d - (progn, }2 Y6 N3 Y. B( V' Y9 R( S
- (set_tile "error" "")
. q0 x! x" m @' h3 M( P, t - (laylist_act (itoa lay-idx))
4 T! }! G3 d$ h7 h7 ` - )' f( ~! v+ w# }5 s
- (progn- S: E: B; O3 O* H. C. `
- (set_tile "error" "Invalid layer name.")
6 ^7 A2 c9 u4 E3 I - (mode_tile "edit_lay" 2)
+ ]0 H6 [' w4 K3 h% s1 m- Y) I4 h1 [ - (setq lay-idx old-idx)
4 K# d* r! w9 I. n5 `8 n! B - )
& M4 d4 u/ e4 I7 o6 X - );if
# F5 n3 y3 ~) B" l - );defun
8 Y/ v9 X8 t+ V0 ?" W - ;;
, a/ p5 l+ a6 P- h2 z6 S7 i# [ - ;; List entry selections end up here
' ]$ C3 `0 ]4 j; Q1 ?$ E - ;;
+ C% |7 @6 H0 X( a2 Z6 W - (defun laylist_act (index / layinfo color dashdata)
' V) z' L- e, E - ;; Update the list box, edit box, and color tile
9 T- P" e, s/ N; B$ R - (set_tile "error" "")! e+ N& F1 r: J( J+ F! v4 A! A. f
- (setq lay-idx (atoi index))
1 r+ D; [ r1 J/ B6 Q - (if (not (equal lay-idx (1- (length laynmlst))))" ?' u5 M( @9 \) p& D+ E. M
- (progn , T; v. T: E4 K) ~
- (setq layname (nth lay-idx laynmlst))1 D+ e6 z- Z8 A5 ~; V7 U9 e
- (setq layinfo (tblsearch "layer" layname))
6 O" i' h* \/ J* g1 t4 r - (setq color (cdr (assoc 62 layinfo)))
) F; S5 n0 F$ W/ m; C8 Q% \4 K# Y - (setq color (abs color)); K+ Y+ P, x4 q
- (setq colname (colorname color))
4 d+ Y: P5 _1 j* i( D - (set_tile "list_lay" (itoa lay-idx))$ L) B5 ~6 |. Q5 T( R# M
- (set_tile "edit_lay" layname)
) R0 K; T" r0 y. a; c) A - ;(mode_tile "list_lay" 2)
7 O/ @7 k; Q$ W+ [ - );progn then
. V O+ ? e9 R, r8 N/ d) y z% Q - (set_tile "edit_lay" "")
0 b# m& B1 q2 ? - );if
4 ~3 a% m0 A( S: P, l - );defun laylist_act8 c8 B: H/ C q" k4 \$ Y" i! V/ |. T
- ;;% F8 \, x# L6 [7 m2 ]+ q
- ;; Reset to original layer when cancel is selected
$ L$ }( ?7 ? y7 u - ;;( g! u$ B# W2 P
- (defun reset-lay ()
! t. {2 M4 X$ o5 w - (setq lay-idx old-idx)+ W& ` ~$ z1 @( `2 M8 L- c* }7 y0 ]
- (done_dialog 0)
4 g7 n% k: c* A - )2 O4 j1 ]2 X! K
- ; ]. P9 q0 ~4 K
- ;; Checks validity of linetype scale from edit box. It checks to% _+ @: t( a$ X8 a1 C
- ;; see if the value equals "Varies".
7 f& P( A% D \7 K% G
5 l% G- o$ V2 O7 ?0 j* p- (defun getscale (value / rval)
c! Z7 R) c! l$ O) `( p( } - (setq value (strcase value)5 Z3 ^1 j1 Q, ?/ b
- rval (distof value)( ]. y; ]4 F. q+ R. ~/ Z( q! C
- );setq
) L! ~ F" R6 I - (if (or (= value "")
2 Q/ U! f5 o; y- ^+ N2 N - (> rval 0.0)9 s8 p. Z& l9 q% L; o, J: X
- )
+ |& h6 a9 I* R, Y" v2 [. W - (progn* r9 O9 A G; y/ e0 b% h: u
- (set_tile "error" "")+ W; W8 Y# W" {& f7 S) u" [* i
- (if (= value "")
8 ]/ P2 R: A( ? - (progn; K& {% x' Z% n7 e
- (set_tile "eb_ltscale" "")7 \1 C# W# d0 Y+ _5 \
- (setq eltscale nil)4 e: H3 B& U" O
- );progn then8 ]/ @6 y* S9 T5 U" s. ^ m) j
- (progn" H8 q6 {3 u& K; W, h2 M9 M
- (setq eltscale (distof value))" ^: Q5 z" ^5 r% _
- (set_tile "eb_ltscale" (ai_rtos eltscale))
" R+ F" v* s. [6 z. r - eltscale
0 I% F0 @( c9 r$ z6 G' e - );progn else; Z. W% |: T, Y7 N5 K! x
- );if( ^( t7 f- v, ~9 }) m$ z( z, N" r
- );progn
) z& w& J. R' H k& j - (progn' i8 e5 _6 y" A6 r1 a( [8 k# {
- (set_tile "error" "Invalid ltscale.")( h7 L/ M$ l' Q
- nil! `: S. W- f6 z! m' }5 A
- );progn else; D: e `0 G$ H/ s
- );if
* |* w- c1 S# n; s$ D - );defun
, S- T- a( f8 J) W1 |9 N1 q - ;;) ~, P7 |& E, d: y# X* U
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
& O: p: Q7 ?8 ^2 o+ K3 q. b" D - ;; string can't be converted to a real, this routine checks if the first6 J. a/ E' j5 L
- ;; character is "0". It also checks to see if the value equals "Varies".
0 g6 C( J( H" c$ Y - ;;
& O7 ~& @8 Y3 L; T' I" v - (defun getthickness (value)# J2 ?" D' }* o2 E' P
- (setq value (strcase value))9 k5 k0 g. ?' o3 ]
- (if (or (= value "")0 y; Y" N3 A) w2 o
- (distof value)4 F7 o! F; Y% o# |' U0 X8 ?
- );or
0 M& _8 y0 ]/ z N! J - (progn
4 x; b! A# O3 l: U - (set_tile "error" "")! R/ N5 i G l9 W" g8 P( Q2 ]
- (if (= value "")' s9 Z& {5 j* s% K/ L# y
- (progn+ Q- s7 U3 b4 t9 J! @$ f! V
- (set_tile "eb_thickness" "")4 S8 V5 D+ s5 T1 ^' v* B
- (setq ethickness nil)
. q5 E. N+ c' _5 h* J3 N! G - );progn1 M( R9 N6 p$ ?: z
- (progn' A( r& p3 }; Y
- (setq ethickness (distof value))' d* ?; t7 o2 [9 J! `; x
- (set_tile "eb_thickness" (ai_rtos ethickness))7 C5 ]2 m; R J% B
- ethickness. @+ L7 t4 \ D7 v, L: T
- );progn
3 h9 {$ d5 A' }4 e( K2 D - );if
8 V9 n% ?( [- [" T- r& s+ q - );progn% L: @8 C: Y# F# z
- (progn2 u* _2 Z, U- ^$ R8 D) L0 h# K
- (set_tile "error" "Invalid thickness."). t0 C6 L; V$ A- M
- nil
) ]$ ?6 }: a( c+ m. j. D - );progn( C+ U2 C) b4 { I
- );if" T9 m* t! G" F7 D( R/ R
- );defun ! o1 b1 q( v; N: A3 t8 I
- ;;& x5 W7 q: \, e: e7 z2 a* X( U$ D
- ;; Checks validity of polyline elevation from edit box.
: Z0 z, g K( Z, W - ;;- C- h$ ?, J# k; _
- (defun getelevation (value)
2 T9 t M! y- ]; I* G - (setq value (strcase value))1 Z9 \' ` s9 X" K6 g/ n
- (if (or (= value "")
+ q' i) y A% j \0 i - (distof value)
; q- |# n: P! j - )
8 |1 w" Y$ ? L8 ?; X - (progn
+ D9 Q- u. n! Z2 M! f" U, r - (set_tile "error" ""). j1 X% K& I' E' b. j3 K9 J
- (if (= value "")
7 {! o$ L$ J0 J - (progn
' _, T/ @9 Y) J - (set_tile "poly_elev" ""): u, D' x$ b7 V Z, U2 _/ H) U
- (setq eelevation nil)2 {+ h) ]; s2 V. S/ v7 W% x
- );progn
- h, x8 f: L1 x" _ - (progn" R/ b U) I: U
- (setq eelevation (distof value))
$ S1 k! z/ ]1 h" K - (set_tile "poly_elev" (ai_rtos eelevation))% r9 q2 x; n, G8 F( A
- eelevation
# G8 n# I r( @1 E5 b" g - );progn) E8 \+ {, ~ |/ ~! R1 n' _ ?
- );if
7 E) f" V& @5 V1 Y/ n - );progn
* S* J; R. P8 Z - (progn0 {4 s; h- |- d9 e( V
- (set_tile "error" "Invalid elevation.")
' |' ^# _1 R3 P/ u& B! B1 [9 l - nil/ D; x& V7 Z: ?" F9 b' ?
- );progn+ v. u! K2 g5 \; u' z
- );if# e: k$ |; z: i" u7 X* @/ T# }3 e
- );defun" b8 L3 I: v5 {# k. K( x9 K$ x+ h. G
- ;;
+ j' ?% ^7 h$ G0 `" N - ;; Checks validity of polyline width from edit box.( u& q& b; y" C2 g! W _, P
- ;;
- p9 c4 c& \0 \7 t6 O$ R: Q0 ]' y - (defun getwidth (value / rval)
( k" I& h* g& A. v% b: ~ - (setq value (strcase value)
- x" O! L$ J* r# O l, K - rval (distof value)
, |8 U, D6 @- v: e2 X - )* R7 b& N: A. L
- (if (or (= value "")
9 z% O; V- {7 L: m - (>= rval 0.0)
2 m: W8 v9 R: V. d2 D- g! G - )
' g; M. J2 M: m q1 v - (progn; d' e* G- ]6 `
- (set_tile "error" "")# i9 M9 e( v" {1 E
- (if (= value "")
9 ?! d7 K" J9 P, s( ?; D( i - (progn$ p2 _5 W& H$ l
- (set_tile "poly_wid" "")
, c+ h) X) X y$ b3 I - (setq ewidth nil)
2 R( u6 \' h! x& G$ S5 K5 H$ `& l/ C - );progn, Y$ z7 F, y* ?, T% p* \! Z, Q/ g
- (progn+ E& H1 D- V2 @0 Z% H
- (setq ewidth (distof value))
]! K; n, u! `6 q: ^9 C - (set_tile "poly_wid" (ai_rtos ewidth))- [) w& i& g2 u5 J" D! M9 K
- ;width3 h. I3 H* L( b9 e Y
- );progn0 U+ }7 s2 N( X" ~# O
- );if
) I' m2 u8 O! v+ x" m& K3 @6 l! S - );progn5 m3 |$ [# H6 i. C9 R! X+ p4 f1 w
- (progn1 u8 G. x! I( ]4 X3 w' p- M
- (set_tile "error" "Invalid width.")
2 M& e+ ]0 H. u3 m3 i - ;(setq ewidth nil)$ ]1 k- u% W4 J6 K7 ?
- nil + E' X: `* L7 |0 \1 \
- );progn8 R$ }) V; S4 x! Q( w+ }
- );if
* j) d H8 K8 e9 a5 b. G6 k. } - );defun3 C& r2 O7 M! |+ g* p
- ;;+ k% A4 d+ E' [: V3 S+ k
- ;; Checks validity of text height from edit box.
% Q8 a0 n* O& T9 h' q2 @ - ;;% n* a6 m3 ~3 W% N" x" a
- (defun getheight (value / rval)
" g% F9 i8 y& B$ Z# ~6 Q- D - (setq value (strcase value)
+ X. G. ~0 y4 K7 V' [# \ - rval (distof value)6 m3 P g, ~4 V5 R, e* K! M. z
- )" Y. r, Z( P+ A9 w- } O( v7 W
- (if (or (= value "")
2 G" c' ?6 |, A - (> rval 0.0)- R# ^1 g% I9 b# b
- )
# h' n- X$ @7 ` - (progn* Q8 n+ ~% D T1 g. X" n
- (set_tile "error" "")
# a, Y3 w. ?1 D, Y! q6 g! V# t - (if (= value "")
6 F0 t& C: \' P. ] - (progn
$ p* M! u& m7 [1 Z4 f - (set_tile "text_hgt" "")
3 o1 X7 ` S# G: B; V2 Q - (setq eheight nil): R, r% [6 \2 L D1 y3 T- J
- );progn, k- Y% @4 \' I+ `7 _( x
- (progn8 c l$ r7 o% ?% U3 j7 m; H
- (setq eheight (distof value))# {- [/ \9 T3 p6 x- O5 ^& n& A
- (set_tile "text_hgt" (ai_rtos eheight))
3 S/ v6 z4 c* B O9 A) L - eheight
( i3 k9 c) v! y - );progn1 @ D1 a9 i S6 m
- );if. i* b' j) N7 d3 M3 B' D, u$ d
- );progn# D$ o& U/ f1 L
- (progn
" |: O& a7 ~5 Q E5 j9 v, W, S - (set_tile "error" "Invalid height.")
; b& k6 c3 N- @; c3 d! f! j8 n - nil$ o1 G1 C1 i: v
- );progn
* [3 c5 M& i4 |0 i, q4 h - );if! P1 x6 m" ~/ R) a3 j% O& k9 e: P
- );defun
: k: g5 p1 O; {! B
4 \- I9 q* y+ L# J5 r- (defun getstyle (value lst / rval)
5 M1 z- X" \* [9 \ - ;(setq value (strcase value))
; J( o3 h W" {* N U8 F# I - (set_tile "error" "")
# P, y8 i- O2 U& m W" B - (setq estyle (nth (atoi value) lst)): y t$ ^# D' v* {2 r/ e# e* F
- (if (equal estyle "")
& ?0 l8 L' L* G* N# y# b( Y - (setq estyle nil)- Q y2 x! u1 D. T
- );if
* D& U" y5 r3 i. Z8 f; d - ; H: R8 }: N @8 R0 x" Z5 W2 Y$ ~
- );defun getstyle
( P: m9 ]6 e/ Z8 [+ \8 C/ Z5 T
7 L7 A0 R* k' H( z5 b5 L- ;;) S4 j; t8 i3 U4 w$ R# o' i
- ;; This function make a list called laynmlst which consists of all the layer
3 g: f2 i0 A N - ;; names in the drawing. It also creates a list called longlist which4 J Z: b. g# R/ b
- ;; consists of strings which contain the layer name, color, linetype, etc.. }/ D- u ]# Z- v- x$ E
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
2 L/ M9 q6 H% h& t - ;; same.
# \1 \8 ~* N* T8 g' [( v - ;;
5 n' S7 ]0 j7 b& t9 F T - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
r* D7 {# u! Y - xdlist vpldata sortlist name templist bit-70
P y8 d' B' J5 w/ [ - layer_number! a9 B8 v# F D. v! O' |3 v* V
- )* b5 a+ T6 U7 m: H( x
- (if (= (setq tilemode (getvar "tilemode")) 0)
6 D! r/ H2 n: s- C, H - (progn/ S8 R' d2 M) a8 Q+ N
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
% E5 k; y: k' O/ s7 H. U% n6 g - (cons 69 (getvar "CVPORT"))( o5 M, F! T) S2 t
- )1 z* s5 z6 G- R% e7 J( n0 }! l5 P
- )
1 T& x2 l( _# U, }& T - )
$ r, T+ c- g8 ~$ K! _2 c2 _ - (setq cvpname (ssname ss 0))# X: |7 \ S) }, J1 U, h
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))# N$ D2 b# d; Q! Z3 I
- (setq vpldata (cdadr xdlist))
9 [, ]; q9 a- ~ G* `' T4 i" S# Y - ). h" w( N4 v W; I# D6 C
- )5 _. v) ^ ~/ Z6 g, C8 [% Z
- (setq sortlist nil)& }2 ^3 P/ i, e( R2 H
- (setq templist (tblnext "LAYER" T))
$ M! |/ Z5 C, { - (setq layer_number 1)' [( N$ R. b9 G! I+ X( C
- (while templist
5 ^4 G7 G0 y7 a0 Y: M - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))+ k; h' E( y; ^7 Y; q9 r2 ]
- (progn
* l$ {9 R8 g' Q8 r - (setq name (cdr (assoc 2 templist)))5 b( P0 d# E5 O/ V
- (setq sortlist (cons name sortlist))$ `* S, ?3 o/ i' Z
- ;; Not dead message...
: v7 A6 z l9 x% x# |7 L - (setq layer_number (1+ layer_number))* R+ s' I7 I, _
- );progn+ i# m, r: c2 g7 {5 V$ C
- );if" a% X# m! K T) J/ s
- (setq templist (tblnext "LAYER"))9 t1 _" }- @* q$ W- B
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))% s! F+ h6 I r$ I
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))7 k8 Y4 M0 C$ o: A* v7 c
- );if: T% h$ P! {; U% E1 U$ t) |
- )
& t5 h; s) o( \6 s - (set_tile "error" "")& t$ H" v7 i. f: h, p: N1 K9 v
- (if (>= (getvar "maxsort") (length sortlist))0 E2 O0 _( n2 d: i6 r" `1 w
- (progn, ]) J2 p% u' P
- (if (> layer_number 50)1 ~) P- M3 l7 T8 I! v' Q- W
- (set_tile "error" "Sorting...")
, U/ ^) a4 s/ @7 b- I/ r' ]/ { - )
6 J% }' W* ]; q" r - (setq sortlist (acad_strlsort sortlist))8 g, l2 P5 C1 C6 k$ w
- ) {# y" T a; F( y2 T* E0 @" B
- (setq sortlist (reverse sortlist))
! \- o+ |" t+ \ - ): t# a5 ?0 p% b' m3 d
- (set_tile "error" "")
( S4 L& H5 ^; i' s - (setq laynmlst sortlist)+ F. `, b3 Z) X1 o
- ;rk
/ l2 O0 ^: o3 B - (setq laynmlst (append laynmlst (list "")))
0 n- u6 L3 R, T' K3 Y3 A
2 h, u1 t$ R6 }( z- (setq longlist nil), i% }! R, m0 {, c6 q2 k
- (setq layname (car sortlist))
0 d/ }( f# X: W) m: N - (setq layer_number 1)4 X5 S. s. `' k+ N' i, z& Y3 u
- (while layname
3 G1 N: m, O2 ] - (if (= (/ layer_number 50.0) 4 Q+ v, }3 ~+ h
- (fix (/ layer_number 50.0))
4 K, ^% \6 x$ k2 | - )
# f5 r, E! [$ `2 p- D8 ?. q - (set_tile "error" (strcat "Analyzing..." (itoa layer_number))), v0 Q1 |+ L# K7 c
- );if
, j! q5 ^, N0 l! N - (setq layer_number (1+ layer_number))
$ D! c( h5 t8 b - (setq laylist (tblsearch "LAYER" layname))# e r4 z. V! s/ e9 m, m& F6 I/ U
- (setq color (cdr (assoc 62 laylist)))
, `1 } d1 i7 S4 u1 r L1 Q - (if (minusp color)5 T, X" d: K5 C' P/ r @7 _% K
- (setq onoff ".")
: }' r8 c( f" W" T0 b. A! ^ - (setq onoff "On")
$ m. k; P" H# ] - )
5 ^& v8 S& `( _1 z1 v, e - (setq color (abs color))
- i: l2 {- ~7 f; }5 \ - (setq colname (colorname color))9 k8 V) j Y; E; n9 }
- (setq bit-70 (cdr (assoc 70 laylist)))
* _8 J6 X$ n( ?% c9 e% b - (if (= (logand bit-70 1) 1)6 f! J' x+ d {' o9 j
- (setq frozth "F" fchk laylist)
2 V* j1 H; ^2 u6 u - (setq frozth ".")
) `3 g P" [8 `: S* `% @) } - )
) @5 y/ Z7 n! w5 S8 | - (if (= (logand bit-70 2) 2)2 r/ z9 D$ V2 k/ G: }. E
- (setq vpn "N")
; u6 q( O; u: W N - (setq vpn ".")5 r, X5 w4 C! Z' a4 n
- )5 B5 Z. l D' Y9 X% O( N
- (if (= (logand bit-70 4) 4)! A8 p3 U4 y; w9 ~, w: j
- (setq lock "L")
( ~9 z) K" S9 S& a- @6 r6 ` - (setq lock ".") n) E0 x& u* ?9 g) x* d: F
- )
) ~ [5 _3 c" D0 T0 c3 V) G - (setq linetype (cdr (assoc 6 laylist)))
, [6 H* f. w1 U# e - (setq layname (substr layname 1 31))
5 p/ ^( Y& `1 l8 Y1 w - (if (= tilemode 0)
- t. T" x' t( T% W- a8 L - (progn: x5 K8 p1 I' j) c
- (if (member (cons 1003 layname) vpldata)! ], U/ K- H$ J3 f9 ]0 Z
- (setq vpf "C"), N6 H8 [4 ^6 h' \ u
- (setq vpf ".")' a3 Q7 Z) r0 _
- )8 p* {4 d7 W4 `
- )% A; N) V9 V. ~( M# M* X
- (setq vpf ".")7 I6 X, X: z9 u4 P$ r/ k b+ M9 n
- )2 c) W2 x% Y+ ?. U l: D3 h* O
- (setq ltabstr (strcat layname "\t"7 d/ V3 i6 P$ q
- onoff "\t"
$ G& R& { H4 I( _2 k3 C) m - frozth "\t"
& y, V/ D/ x3 R' f, R - lock "\t"5 D# {' u1 D V; W
- vpf "\t"' c2 G+ I; y- d' s3 ~" I7 E
- vpn "\t"
& Q' z, B5 [9 f - colname "\t"
( O' U2 Z* v5 E+ w - linetype) \8 N" U1 R' m" V
- )3 t* }3 W4 x! B8 z
- )
# j7 [8 J/ R8 M1 W8 { - (setq longlist (append longlist (list ltabstr)))
- I1 m* X# p2 ~ - (setq sortlist (cdr sortlist))
5 K# w8 `, I* q8 }$ M - (setq layname (car sortlist))* N& a+ _0 D+ A* x6 l6 A
- );while2 o; W8 w; B0 Y: G9 S/ u
- (setq longlist (append longlist (list "")))
! C8 m) k, d( Y0 Q: c; O! n - (set_tile "error" "")
- [+ }: c2 W9 u) v0 f4 B( b - )$ {* P3 m5 R5 H7 c4 L
- ;;9 g$ J; R# B: p L4 }. @$ B
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
* D+ v+ c& f1 y8 o - ;; linetype names read from the symbol table. Mdashlist is list consisting/ |8 K! I. j% {$ W: R8 v
- ;; of lists which define the linetype pattern - numbers that indicate dots,6 w1 l# P% `8 e: @
- ;; dashes, and spaces taken from group code 49. The list corresponds to the- N H; h/ a0 a" H: y# [1 m
- ;; order of names in ltnmlst.: X6 u, H% m1 W0 w
- ;;$ X. ]$ N) Q3 E9 S6 k
- (defun makeltlists (/ ltlist ltname)$ S/ ]$ v- l9 S+ n2 z( A
- (setq mdashlist nil)
+ X$ c; d% ]9 s: F6 h, H: r% m - (setq ltlist (tblnext "LTYPE" T))
+ e( O4 g: o, V; i& C' o2 o( Y- p. _- Z3 t - (setq ltname (cdr (assoc 2 ltlist))): b- P# u3 T$ j
- (setq ltnmlst (list ltname))
7 \( k% _7 A5 T' a - (while (setq ltlist (tblnext "LTYPE")) S6 l$ }0 R2 Q4 B! v
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
& H. |) v. e+ y4 z7 u6 o( K - (progn
) ]: H% D" l- h4 r3 r - (setq ltname (cdr (assoc 2 ltlist)))
% S( L* b" d% U% ~! Q2 C2 K1 x3 d - (setq ltnmlst (append ltnmlst (list ltname))). j) z0 p. \$ [$ r- v7 c9 [
- );progn2 T$ D( I4 V$ e! ]
- );if
0 h- W3 R% {3 `, o/ X - );while6 X5 K! M0 C& X, K! O
- (setq ltnmlst (acad_strlsort ltnmlst))0 o* a) t4 `( ` W% t
- (setq ltnmlst (append ltnmlst (list "")));add by rk / u. N. C! x# z) H; k5 V
- (foreach ltname ltnmlst
+ \! G0 r6 g4 d5 Y* F# x - (setq ltlist (tblsearch "LTYPE" ltname))+ y! b( y9 T8 N& I: A9 o
- (if (= ltname "CONTINUOUS")+ _7 x& Q: R* t- {4 l8 p0 G/ p
- (setq mdashlist (append mdashlist (list "CONT")))
6 o" Z" |$ f2 s- I( U, | - (setq mdashlist
N, r2 _, u2 ]% R3 e5 z - (append mdashlist (list (add-mdash ltlist)))
8 ` B: V% u1 t - )% A7 k) ]+ t4 M/ i9 a1 j
- )+ J4 `& Y+ R+ u# _
- )
; n7 j, d: O/ ?% l' U& K6 F - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
+ o, E) }$ M$ G$ i- s9 W- O. y - (setq mdashlist (cons nil mdashlist))2 k- w" Y- _" y! e$ x% |
- (setq ltnmlst (cons "BYLAYER" ltnmlst))! s# v' x, U' s' E% b
- (setq mdashlist (cons nil mdashlist))+ n, x- S0 n7 O
- )" t# B* k8 g8 X" e( ^
- ;; X; U6 z7 m: J- E
- ;; Get all the group code 49 values for a linetype and put them in a list4 K( m0 k4 A( G" u
- ;; (pen-up, pen-down info) w# ~. h6 u% _: z
- ;;+ X, d) i; F g/ b$ R; O
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
* X! [6 }3 `) m* R - (setq dashlist nil)4 Q4 u) n, K2 z0 j& |( e
- (while (setq assoclist (car ltlist1))
& P% t1 X1 V. x0 q$ ]' k - (if (= (car assoclist) 49)1 ^" t* i1 b \) Q$ \0 z7 u1 z
- (progn/ o. Q: W( N+ A
- (setq dashsize (cdr assoclist))) W: l* n& _) c C$ g% ~
- (setq dashlist (cons dashsize dashlist))
( N' o: `9 c+ [9 P" K - )) b, F+ T, x$ K B a$ `* R1 M
- )/ p1 C& t4 E, T6 E
- (setq ltlist1 (cdr ltlist1))
5 `' q* D* V' T - )7 L! f$ H; W7 r# }! L- I9 H
- (setq dashlist (reverse dashlist))7 s1 P0 O7 K! |
- )& v* E. |3 E; D: c
- ;;
/ i; W5 E0 D7 y0 F( h - ;; Color a tile, draw linetype, and draw a border around it
* j6 u/ v! t% N* C7 w8 G! r - ;;8 A' u' n" e7 T1 [3 B
- (defun col_tile (tile color patlist / x y)! ^3 U) j4 Q& B' k. B! i# V' h
- (setq x (dimx_tile tile))( B) D& A& x+ f4 i( S
- (setq y (dimy_tile tile))
9 N* M" o* |( V# B2 p& D - (start_image tile)
, T r" l6 U" B7 n4 H8 f$ Y - (fill_image 0 0 x y color)( Y8 A+ S2 _( a$ m; q6 [7 L
- (if (= color 7)
: A. a2 K. A$ N& T y0 C* n% ` - (progn% P( I2 G( @, z" i* d4 i
- (if patlist (drawpattern x (/ y 2) patlist 0)). p& w2 ?$ T& e% g
- (tile_rect 0 0 x y 0)
0 D# }9 O0 B9 p& f' n) \ - )& D- e, i+ I' \
- (progn" g3 w) b8 L$ l& `" H0 H3 g! l' i
- (if patlist (drawpattern x (/ y 2) patlist 7)). O N2 ]9 h: i$ L9 T
- (tile_rect 0 0 x y 7)* P! w( I, v2 N `! a
- )7 _( ]0 h7 d% I' s8 d
- )
7 ]) Q0 c7 H2 u; A/ @ - (end_image)
* N7 {/ W$ m: ~ - )9 t: B- {/ d0 ]
- ;;
: K1 N( h% v4 ~6 U( o6 L - ;; Draw a border around a tile. {6 d' o$ `+ v3 A/ e5 s O$ V' ^& |
- ;;3 o8 @9 [* V& {, T6 L
- (defun tile_rect (x1 y1 x2 y2 color)
) z0 g! `3 ?( g+ x - (setq x2 (- x2 1))
! f" s$ _/ w6 K" \0 U - (setq y2 (- y2 1))
( o' V+ \* W) k/ {& B - (vector_image x1 y1 x2 y1 color)( B' ?- E( V; ]* Q" r; c7 O
- (vector_image x2 y1 x2 y2 color)
3 S" X# f' x7 e1 M7 z - (vector_image x2 y2 x1 y2 color)
2 v: Y: K1 n* I& a+ O - (vector_image x1 y2 x1 y1 color). R) X+ F2 I7 i, B, h7 d
- )- Y* E- c& |( P5 ~
- ;;
& M: [) d; B1 v* }) B" [# H, s4 ?2 ]. e - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image9 t* f( P# G( C9 g2 X* F+ c( W
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a+ l9 _$ P5 ?7 {# ~: B. U; p% {
- ;; list of numbers that define the linetype, and color is the color of the
4 B$ A' Y6 r* F* }+ L" b" r$ F' U - ;; tile.# i7 x6 P6 e$ K }; B a
- ;;, B5 i5 Y1 L) ` H9 j
- (defun drawpattern (boxlength y2 pattern color / x1 x2
9 z4 V# V. i, b - patlist dash)
) y) \9 e+ U+ X+ f$ P; N2 m - (setq x1 0 x2 0)5 _ H2 ^4 u$ I1 U# k
- (setq patlist pattern)
2 v3 T7 ?2 u B' t, I4 M! } - (setq fx 30), [9 }* g" S$ s, X
- (if (= patlist "CONT")
' f. {# C; ~0 b7 {( w3 @- b - (progn5 [- a% Z1 l! U( T
- (setq dash boxlength)
6 j1 c/ v) c2 }% T: M$ b n0 z - (vi)
0 {) J% a1 X1 M! C; ^ t - (setq x1 boxlength)
* y# }( @2 W6 g$ @ F" a+ K: v) ] - )/ W# B, M# m7 |. m
- (foreach dash patlist0 I# c. F' Q+ e/ r1 `% a3 Z e- r
- (if (> (abs dash) 2.5)+ i) L' J. G2 t- h, ~
- (setq fx 2)) h) E) a t5 \- `1 ~& x
- )
8 W) z& Z5 r) y& {1 W7 c. g7 [' M/ p - )
: p8 b+ |# u/ t, l: P3 V' | - )( R3 s+ g& \1 @- Z
- (while (< x1 boxlength), P, q, y. d# A4 G! i
- (if (setq dash (car patlist))" l% J! U/ |( C
- (progn4 _$ r' B/ `% G4 n/ L9 f
- (setq dash (fix (* fx dash)))' p4 U% U; I% I' v+ A
- (cond
+ @ l- W/ z1 J- D! `1 w& e - ((= dash 0)! T- D6 {0 k3 I+ k2 l/ | r
- (setq dash 1)
' h& D8 E, Z* d7 m s+ [/ d - (vi), c6 {' b% [5 X8 m) J+ V
- )
( r9 {3 y- q! X+ z- x, N4 a# U - ((> dash 0)$ X# A% W. U$ a5 e# @
- (vi)
0 M$ C% w/ a: J' C2 q8 n( Q; o - )
4 ]7 c/ y" A" J* g! b& R, o. _. L - (T
* Z% K6 Q4 c( S6 \" W g. B - (if (< (abs dash) 2) (setq dash 2))
$ d, a. @; E% K* S" h - (setq x2 (+ x2 (abs dash)))
1 x$ a& Y. V9 y8 G0 A! c - )
% b- `, U# I# N+ z& G; ` - )
$ x0 C1 Z# g# g% q8 ~" R! s' h/ k - (setq patlist (cdr patlist))
) R9 H6 Q9 T+ S( C. x: q - (setq x1 x2)
% J% u# R* C) D. Q: {: q - )
& s Q& `5 T9 {( ]% s# [$ V - (setq patlist pattern)5 j$ z" J7 y1 D* _' f
- )
( T7 C/ n7 a$ y8 p, ? - ): x+ Y& _: A8 B5 V
- )& S3 D, K' R0 X' l, S D
- ;;0 q% J4 S5 @+ \' I
- ;; Draw a dash or dot in image tile: P0 e( N7 F: m5 T F
- ;;
2 v) [5 k% ]6 g e - (defun vi ()
5 r0 C% }& W' u) [/ a( ` - (setq x2 (+ x2 dash))6 N- d/ A7 v s1 v* B) `+ p; |
- (vector_image x1 y2 x2 y2 color)3 Y5 [9 G8 l# m1 S
- )
& _. T9 ~0 {0 }; O4 Z. L7 X - 6 b( f) s u5 {% `% n
- ;; This function takes a selection and returns a list of the color,
& L6 `* o4 U! M: d- K8 H& C- M - ;; linetype, layer, linetype scale, and thickness properties that
& I! m! C4 l* u; I, r; h - ;; are common to every entities in the selection set - (color$ Z0 F& I" G8 e# D+ G) ]* E2 f
- ;; linetype layer thickness). If all entities do not share the same6 h. D) |# ^8 H, C0 w3 [
- ;; property value it returns "Varies" in place of the property: a: k1 e$ L, }
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
& x& c" y- `) R, p! J' I* O+ _" y - ;; The last item in the return list is an integer flag for the
+ \$ B; |) X$ X, J- R" A& O - ;; homegenity of the selection-set object types.
7 W4 s5 X/ v1 L$ }4 W$ R0 K1 d6 y - ;; 1 = All polylines% e1 ^: U U* b0 t7 M! o$ d
- ;; 2 = All text or mtext or attdef, or a combination of the three
a& {; A3 R# ?" F" W& ^ - ;; -1 = Any other mix of objects
% I- ^1 `( l/ @+ D0 @8 M0 [
4 f! i8 m; U/ N+ }: i: v- (defun getprops (selset / sslen elist color ltype layer ltscale thickness2 G# r2 U$ x, o- j3 D
- width elevation height go ctr , c( N3 u* B. L& r2 r1 r- J& ^
- eflag $ n$ Y! M6 ]5 \- ^7 s
- etype temp 3 Z5 s2 k4 K* @8 z
- txt_ss ;;;;rk 11:24 AM 1/30/97
) M* c8 x3 A$ m3 r1 Q - tmp
7 g" D! C( b5 t# ?# P2 W* w - poly_ss k3 y0 x3 A1 u2 e! |+ S0 h
- style6 h4 x! Y0 ?% ^7 V$ r
- )6 `+ O1 P3 L v7 y. R: g9 h
: S# V: p: I; t |$ A ?
4 v# v# E7 v1 a% |, u! U- (setq sslen (sslength selset)
% ~4 ^& p4 U: W& ]' K1 q - elist (entget (ssname selset 0))4 W, c) M! ]5 J9 c5 S
- etype (strcase (cdr (assoc 0 elist)))+ {* J: ^( I; u- y) r) Z' @
- color (cdr (assoc 62 elist))6 h$ j% |: }" S
- ltype (cdr (assoc 6 elist))
0 h$ _5 M* c+ [2 k# {, a h) Q- v: v - layer (cdr (assoc 8 elist))
6 @4 J/ K. r! l - thickness (cdr (assoc 39 elist))$ m- N+ g0 {4 Q: r3 g% i
- ltscale (cdr (assoc 48 elist)): s- b5 F: t0 ~/ \: O! P5 K3 V2 ]
- );setq
1 m9 p# W. }2 L* r# K, x" Q - $ N+ ~) C. O' d& M
- (if (not color) (setq color 256))
- l8 c4 O8 t* @7 F6 [ - (if (not ltype) (setq ltype "BYLAYER"))) H9 W, \3 d. D
- (if (not thickness) (setq thickness 0))
8 R3 q! H" R9 W# o6 R% J - (if (not ltscale) (setq ltscale 1))2 j- d& W4 O" q! x
7 ~! H. I9 S" D: P- (if (not width) (setq width ""))
3 R3 @+ z' a$ y, @/ k3 b! T$ X - (if (not elevation) (setq elevation ""))& M/ Y* o" W! g) P0 V% i
- (if (not height) (setq height ""))) ?/ D7 o+ R& M
0 _; x: U. N" b8 @0 {4 K0 ~2 U- (setq go T
8 U5 Q! D: T! f; `) N - chk-col T
: C$ @: I- B4 z- l) M7 V! A3 } - chk-lt T
) ^( r7 N. J$ e' z - chk-lay T 9 {! W3 S) }% f. m
- chk-lts T , S E; m" C" F" o2 v4 [4 ?! G* [
- chk-th T
2 |1 ? F" N6 b# z9 E/ w; M - ctr 0
, J+ Z, J S; g, S4 G - );setq2 @8 G1 w2 P6 k `4 _$ D8 |
2 I/ a8 n! i" f+ P' n- ;; Page through the selection set. When a property8 o) n! c1 H3 e6 Y
- ;; does not match, stop checking for that property.
; M% Q7 X! A0 S4 f/ I - ;; When the selection set is not homogenous, stop checking.: I% J5 Z% q7 ]2 q0 |/ X
- ;; If all properties vary and the set is not a type 13 V$ }% _# {" x3 r
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
( I4 w8 z5 B; a3 { - : J* U) h' [( g' ]
- ;Lets set the eflag so we know if the selection set includes any
* _- s& f' B8 G" r- y - ;combination of polylines, lwpolylines, text, mtext or attdefs.# N8 o1 Q' O G2 F/ _0 G
- ) u, `0 M3 d8 Y7 k' p% j N
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
' U" }% P6 u9 w( f# o& L* j. Z: @ - (setq eflag 0)
6 t- c( c0 d% | - (if (setq poly_ss
- |- q9 u( ~; V0 c- `6 a( X5 ~6 ^" D8 T - (ssget "P" (list '(0 . "*POLYLINE")
+ o% c, V# x( b" u - '(-4 . "<AND")
. m3 o u& k- j2 ]! J - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")) `1 ]$ k/ W# d0 {; i$ h
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
1 O1 o3 J! }! ^ - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
# ^8 c( S! J+ S6 Y. J J% y - '(-4 . "AND>") 8 O* a d! C$ `2 {9 k
- );list
: [, k v. e1 |/ H) D: }9 Q - );ssget get 2d polylines (legacy and lw)4 q6 ?0 L$ n; Q9 h2 j( O5 a+ A
- );setq/ N; E/ k- j5 c' e1 y5 ?& J
- (progn+ I. n- T. ~- Y2 k
- (setq eflag (+ eflag 1))) Z, G! Q" S( b/ g7 t, S
-
- v) _% L8 c0 ?1 u9 b - (setq tmp (entget (ssname poly_ss 0)));setq
0 h. g6 x9 D' {& z5 T
. Q! d- k* J- t% W' g- (if (equal "POLYLINE" (cdr (assoc 0 tmp))). Q- r }( U! }. y9 c. s
- (setq elevation (last (cdr (assoc 10 tmp))))
# y% m" Y9 R* J) }) ^2 x! M/ s9 W1 e9 m, E - (setq elevation (cdr (assoc 38 tmp)))
$ i+ ?; T6 R6 y& P2 s9 O: [/ F3 @ - );if
5 A# ]5 d0 M* _$ ? - (if (not elevation)
& u5 X) o8 N) D$ d6 C5 s - (setq elevation 0.0);setq
, I0 f2 a! B+ ~+ _ - );if
) v6 |) z$ J& g+ ^$ J8 x' L* _
: Y M, P8 ]9 O8 M- (setq tmp (ssget "P"
" F, g0 `% |( |: A& d% Z - (list
4 |8 B( t. L* T$ } - '(-4 . "<OR")" g) Z% S: z6 j6 y
- '(-4 . "<AND") 1 q3 w2 m3 q/ O% q5 Z" j9 T
- '(0 . "LWPOLYLINE")4 E0 ^- y% ?3 y( p& s7 j* a
- (cons 38 elevation)
7 }" t* ^: Q' T" z+ T - '(-4 . "AND>")
) k m2 a9 H6 j1 e) L - '(-4 . "<AND")
- ]& t& l. @, R2 q$ k - '(0 . "POLYLINE")1 s1 w9 `4 a- u5 O8 u7 _3 \
- '(-4 . "*,*,=") : ? u( {1 n; o; s" a
- (cons 10 (list 1.0 1.0 elevation))
2 S+ J' K4 z8 v8 y - '(-4 . "AND>") ( E$ V1 i8 _3 k8 C: u
- '(-4 . "OR>"); q/ u: R3 Y1 j' z A8 ~
- );list
; l- B. @* Z4 H, i - );ssget
1 y( F, b9 b H8 r3 X - );setq0 e1 c& o" K' U" ]
- & G) x% K+ \9 P: m4 k
- (if (and tmp
8 {, g" B4 T- D- J3 M9 t: b - (equal (sslength tmp) (sslength poly_ss))/ n( ^2 T! m9 G* E5 i, o
- );and
4 M3 X" m, P7 ~3 y0 V* k, U0 N - (setq elevation (ai_rtos elevation));setq
7 \( w0 r' p8 ]( D, {- w9 Q - (setq elevation "")9 n l$ ?/ h) j/ H
- );if
) H! w! u/ y$ D; N7 H -
1 S# n) r4 t3 o! _& r1 l+ o# m1 s - (setq width (pl_width_getter poly_ss));setq
# U" X' G9 z; g. J% u -
3 y1 o4 l4 b/ I - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!7 |( D$ T# H* |, B4 S5 U, ~
- );if
z, x4 @: Y S1 X6 ]) ~8 T - (command "_.select" selset "")" ^! h# B7 i, }. v
- & H7 \: T6 C _* |! M
- (if (setq txt_ss . V0 x3 | g) K6 i: S+ z+ p/ C
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") # P+ ]" y, Z& e' N G% ~
- (0 . "ATTDEF") (-4 . "OR>"))
. U! M$ k' X5 z+ t - ) 2 [& c: \' N! {; O
- );setq
$ I4 L0 U, S% h- _3 {' n - (progn0 S4 A' S+ F6 U# T* G
- (setq eflag (+ eflag 2))3 D2 n, @6 z% T4 @4 H: W" {1 F
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))2 ?; |% I' |! X& [+ R0 _, x- R, m
- tmp (ssget "P" (list (cons 40 height))) 9 K8 x' A9 _* T+ @" I$ R
- );setq
/ Y/ b* \( @6 y# ~0 l - (if (and tmp5 v, M( Q( B5 B' Z1 l& T, X
- (equal (sslength txt_ss) (sslength tmp))
/ C* R9 ?) t7 M$ C - );and
# a2 L. L S8 K* K8 z - (setq height (ai_rtos height));setq ;@rk need to translate from float
6 r& ~" F$ L% ^2 f, O - ;to string and back again easily
: B& R& ]1 ]3 f - (setq height "");setq else the height varies . C. B3 L' b) U/ g( h4 ^ P
- );if
. [5 I% z- h6 k& W! O( C - (command "_.select" txt_ss "") - _) `3 Q0 I4 J
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0)))): Q+ t i' h% m
- tmp (ssget "P" (list (cons 7 style)))
1 ~! C n4 A) B& n0 _3 p - );setq . n, H" e0 \0 F# ?
- (if (not (and tmp
% l. C6 R7 f( w+ u/ o - (equal (sslength txt_ss) (sslength tmp)) " K( p% N7 _% B# I" B
- );and
- G* I" |5 H, c1 t6 O - );not7 S( J% G+ M( A ^5 X: ?7 f7 [" c
- (setq style "");setq then the style varies
: F4 t7 y' G, m- t3 ^6 z2 ?0 x5 J - );if
) M+ q. N+ W9 C3 m - );progn the text type objects are in the selection set
+ P# B. i' l& G9 x2 e: i9 a# R - );if
! Q! f- `0 y( u! @6 V' d - (command "_.select" selset ""); G* h6 w/ f8 e
-
. M F$ Z+ `/ w# r, K8 w# o - (while (and (> sslen ctr) 0 d& [8 m& @8 N$ `- }4 }
- go* n4 q7 Z9 V* q: H
- );and( V/ Q: i! `$ w6 s" q: ~+ ^
- (setq elist (entget (setq en (ssname selset ctr)))). f( u8 x7 j6 B2 z# d
) A2 P) b; d& _! ]! L; u- (if chk-col (match-col))3 L# {! A" W R9 G
- (if chk-lt (match-lt))
# B3 F% j3 ]* Q \ - (if chk-lay (match-lay))3 |& l3 p1 F, V4 o, N
- (if chk-lts (match-lts))5 A5 |# t' `2 ]7 F1 S
- (if chk-th (match-th))
, M1 R( e! R$ l5 X - / ^0 c/ Q( A: y0 K
- ;(if chk-etype (match-etype))
1 e9 t: j7 o, d9 Z E2 M+ L; U
, Z: _( q8 x E4 W1 ~- (setq ctr (1+ ctr))2 O7 O8 `! y# m2 F
- (if (and (not chk-col)0 S9 D+ R9 {1 g$ j5 R0 t& O( c) f
- (not chk-lt)% h/ `* I% [- [
- (not chk-lay)
' @0 c" G/ C) |0 h5 i - (not chk-lts)
( F7 Y" |0 t3 b - (not chk-th)1 t6 s: P: T3 Z; _) y& y, A
- ;(not chk-etype)5 }; r# O) w4 q' M3 o
- );and
9 j% v3 h$ z+ t8 C9 r - (setq go nil): h( q- {0 ~: _; p& C ]: c
- );if# z) S0 ~" B9 _9 d9 N$ u7 R, u
- );while9 z$ x! u" e$ J1 T7 i" f2 r5 D
-
. ^0 d/ k9 N6 o2 l+ ]& a, M2 o - (list color ltype layer thickness ltscale3 H7 f$ m& A; m2 x! u. Z: v
- width elevation height eflag 8 V, j1 r- y/ I8 F; W4 ~
- style poly_ss txt_ss
# a5 h# W& k) [1 V1 O+ ]6 u; \0 B - )
6 g W, r. C% W ?1 B9 e( o! E) V - );defun getprops ~, @8 j# X7 l5 D, E( I
- 3 `2 `1 p* l* a+ g) `
- ; This is a speedy little routine to tell whether the polylines in / e3 {& f& l7 c
- ;the selection set argument are of varying width or a constant value.
* |& \2 F* m) R; g( s- b8 _ - ;Looping through the vertex's has to be done for old polylines when ! q0 `9 e( q2 n# R) U
- ;the polyline header has width values of 0.0. Basically, in this case, : b7 u) \' Z9 ^2 W
- ;information in the polyline entity header is abmiguous. Width values # M+ O0 {9 m5 \. W2 b% _. v( U
- ;of 0.0 in the header entity could mean the polyline has a constant
5 c: h, x( B/ B - ;width of 0.0 or it could mean that the polyline has vertex's of varying . q* N% n! h, B1 k- y& h+ k6 _) C: i
- ;width.
; Y1 c: g0 |3 r9 D - ;
9 ?' [' S7 l. C" I6 C - ; It's all in wrist. Err a.., I mean it's all in the 'if'- f8 p L! ^' c5 J8 r) B6 A
- ;;* B$ W4 a3 N+ v
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)1 N4 @) ]" ]0 Y
- 2 p6 w! S5 h2 Q
- (if ss
6 Y5 n2 x9 c5 \( b, ~, d - (command "_.select" ss ""). D. l% j. I% w0 J
- );if
+ ^9 h6 {$ R6 Q1 |2 b - (setq width ""
- \" V6 ^+ a& Z6 ^ - flag nil; u" F$ z* C' K% Z% i
- flag2 nil
! H& l, ?0 s$ \' o2 R2 f. C - );setq- Q) ?; a: J& R* U- K J7 i
- (if (not , N" y* |: o! H8 h
- (and ss
9 f; P6 M4 b' o- u+ Y& g) J g# d - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq6 B* W6 m. J8 j! ?3 t
- (setq na (ssname ss2 0): {* j8 F6 ]" f6 i2 `: O8 V
- width (cdr (assoc 43 (entget na))); |$ o! t% e8 z3 E% l
- );setq! X Q. T% g# x, ?
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
( M$ m2 U/ ]/ j" u* i( N - (cons 43 width)
; P* Q, M5 b: [+ t+ x7 l - );list7 i, o. s& Z; {0 |" E4 G
- );ssget5 c. \/ L* {6 ^8 `0 y/ W: I8 S
- );setq5 x" a3 `. I8 j
- (setq flag T) 4 @# E* d; r/ D5 Z1 E2 {/ x
- (equal (sslength ss2) (sslength ss3))( O( w6 M$ T$ c
- );and
; }$ _+ Z7 N$ q( w. T4 u v - );not
: g' t9 N: G$ \5 i - (progn1 r& D2 d* T7 i% \
- (if flag
) I7 j, H+ S, ~& C" |. Y - (setq width nil) 4 `' [' V$ ^" z2 M3 l+ t5 {7 k8 E* |* _
- );if
0 q, ~" W8 T5 i2 ?% L - );progn
! k* d! _5 _" f9 Z - );if
) n7 m' ] q$ D - 5 U* r3 q+ P4 i2 k; j$ \6 h2 h
- (if (not # B7 O& M" `# X1 Z3 F* P
- (and
" a0 |: L& _$ Z6 q9 H/ d. u - ss
1 Y% I- r' Q& Q - (progn (command "_.select" ss "") . _2 y& T" k1 P0 t
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
/ z9 G/ y! t# m& I - ) $ c# X" A. u4 a i; ?8 d' P
- (setq na (ssname ss2 0)/ o( h7 M/ @5 ^, g3 G
- e1 (entget na)
+ U" f; u; e! r$ ?7 K1 m2 h - width_a (cdr (assoc 40 e1))" g: R5 n0 x: l' _) J2 z7 ?" O
- width_b (cdr (assoc 41 e1))! g7 y: x( C3 ?' q2 y4 ^
- );setq% a* ]# k3 [( u* t. W: D4 D1 n
- (equal width_a width_b)
& [' }! G6 o% F( U* m3 y - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
3 K0 q- }4 N/ i - (cons 40 width_a)" Z' P4 g* b$ Y. }' o
- (cons 41 width_b)
( q/ x2 T6 j7 Y. G# O/ q - );list, P* K. o- {, h1 v% t; g7 V/ x3 N! J
- );ssget
V8 p0 y$ _) L* B0 n; C4 m. O - );setq% q3 }9 j$ c, z$ y
- (setq flag2 T)3 n6 X5 t$ I: L5 v, i* [# R1 Q
- (equal (sslength ss2) (sslength ss3))
: g+ S& r7 ?5 f6 L1 W - );and
0 m2 T: r3 e$ m, S - );not $ C! [; o6 } i; T0 C5 F; o
- (progn
) i1 }" K: P1 e' P - (if flag2
9 m" m8 @: N, V3 a3 F0 a - (setq width nil);setq
( P8 [$ q; u* t+ [" ~ - );if
) X5 ]4 i8 _" e9 i8 I2 [3 H - );progn then; d6 G3 E; j' ]( i0 |# c; p& H
- (progn# U1 j6 G" `, M
- (if (or (equal width "")# u" y7 I' Q& D- r5 a8 o
- (not flag)
2 P3 e$ I! b& i6 t$ I - );or
# c# H% {' M" ^+ @" ^ - (setq width width_a) \& O' X3 @+ l& \5 g* T7 q
- (progn
" m1 L- m h4 I) U2 H - (if (not (equal width width_a))6 A4 T3 H; R) {3 J6 b8 U% t
- (setq width "")
' z q3 r5 j* F7 e: |: R6 U - );if
7 ]% {; V% u6 B9 S" [- e - );progn
8 u& m9 l9 r6 N. ` - );if- M/ A# e8 l% Z( j
- );progn6 Q | W$ i2 G7 }* Y
- );if
i7 X1 a( L- c - & c1 _6 U" r* x1 [% ]; B
- , D, j5 Z4 \" h+ H( Q8 K
- ;now for the special handling for old polylines. j$ x2 \. R$ O* U
- (if (and width
2 e' E5 j0 C( u, h* J - (equal width 0.0)
2 b' g9 s. W$ B& ?0 k) e, k$ b - flag2
% e1 ~$ @6 | d2 R* H; e: H - );and ; J! M9 f+ W! A
- (progn7 w+ O* D& w1 ]1 w3 T: Y6 D- O
-
0 |' V9 X, j- u3 s! F4 U' v6 d - (setq n 0);setq4 O0 D3 N2 ^4 x- F6 I6 w
- (while (and (equal width 0.0)0 a# w# }: j- f) D3 N" ^
- (< n (sslength ss3))
4 n! W. g7 |; _, y3 p& Y - );and c- v- n: G( [' ]4 e/ J' R3 J
- (setq flag nil/ Q8 c& O+ d7 v7 D
- na (ssname ss3 n)) \* n4 p# K( T- P9 X
- na (entnext na)
2 a: O: l7 A" {2 I6 L- q5 v: _9 O* C - e1 (entget na)
* X h9 d1 \6 a+ j) P - );setq! l5 l) n6 o; `
- (while (not flag)
2 P/ d7 z* A1 k' ~( m2 e - (if (or (equal (cdr (assoc 0 e1)) "SEQEND") V1 O: r6 t* n* v
- (not (equal (cdr (assoc 40 e1)) 0.0))
+ z0 A# X% W+ y* e, F7 k - (not (equal (cdr (assoc 41 e1)) 0.0))' \" U% @2 w8 `. r3 [. w
- );or
$ A2 J& W7 E8 Z) `" D - (progn
# J5 U8 s" [& d2 _0 z+ U - (setq flag T);; O/ A. t9 b3 b" L: |2 L6 _
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND")); l0 Y7 ~ p; n# P4 V4 [2 y: M2 G
- (setq width nil)
0 z5 j0 U- W8 }9 x# Z - );if
% K" [; ^' ^5 `7 t - );progn then jump out of the loop
" h7 f2 P+ L% M1 [! ^* V - (setq na (entnext na)
" ?! s1 a, t& X- G. s# ~7 u9 @ - e1 (entget na)
- E# E. |: Q/ U1 ] - );setq
5 J i$ e7 L) \2 Y& ^+ k - );if / [3 {( H* X# X. \0 C/ v
- );while
! }; I! j! Y: o$ i/ d5 D9 \1 V - (setq n (+ n 1));setq
% Q6 e) D; S2 n: c; w - );while 7 d+ K/ X2 U# [- a7 q
- 4 ~2 s6 P7 Z1 @$ P I
- );progn then it's a legacy - C; I! C9 u8 ^* I% P# e- f4 q
- );if ;legacy polylines that may have varying widths * \4 d8 `1 D3 y
6 h2 F: ]/ n- n/ a- (if (not width)
& _6 i( P# p. F! G9 u) u4 c - (setq width "");setq
5 ^: f3 j( X4 ` d5 A9 P: l - );if9 w& w) W# H2 X8 t7 h
- (if (not (equal 'STR (type width)))' H, j! g% I& k
- (setq width (ai_rtos width));setq
9 B) R* k5 K/ E7 y% T9 s7 T - );if 7 r6 F2 D. i' ~
- 7 C; W3 \ x; I- Q" V: V
- width & V, g" O( {8 ]9 P8 v
- );defun pl_width_getter
% ?' }# ~+ G# f. w - ! w- G* d$ V! f3 X5 T0 V3 L
- : b1 R. l9 V( M3 y
- (defun match-col (/ ncolor)7 p- K5 M" S$ f- @
- (setq ncolor (cdr (assoc 62 elist)))
( Y& a; X1 T. y' G' Q - (if (not ncolor) (setq ncolor 256))
1 U K5 L! P' k) |0 C - (if (/= color ncolor)
6 e) F0 @1 a# A5 \6 ~ - (progn
( U3 ]! W* i& U4 h j - (setq chk-col nil)
9 F/ M& ?3 l4 S1 L- i4 |6 E0 Z - (setq color nil)
/ I1 K# d# d( D4 {4 E/ G6 L - )
& K* J" u+ z6 z* t* }3 a - )
1 K. {9 z/ p7 E0 F, c! \, Z/ x - )
. a" x) s: P; y8 X6 V - 6 l5 O+ X) [/ y* P) G
- (defun match-lt (/ nltype)1 W+ H/ t- H2 p, o: U; d7 P ~
- (setq nltype (cdr (assoc 6 elist))): m7 H4 m6 j$ B# B3 w
- (if (not nltype) (setq nltype "BYLAYER"))
$ ~* O3 S6 Y Z% c& c - (if (/= ltype nltype)4 r: c; ?2 k, M
- (progn/ }7 Y W! w4 s g( U
- (setq chk-lt nil)
; I8 K7 Y; L! I - (setq ltype ;|MSG0|;"Varies")
4 c6 d. B. J; |; [ L - )+ o i8 H" O0 [! \& a' Y+ D% c
- )
, W" o( w0 e2 @: H! l+ n7 M - )
" z; u8 u' R1 D. X3 z - " f/ {0 |6 s" k% |
- (defun match-lay (/ nlayer)% J; k% v4 D. q: n0 j9 F3 Q
- (setq nlayer (cdr (assoc 8 elist)))
- y) H0 F' g: X0 M$ u - (if (/= layer nlayer)% C! h# h/ r- M" n" S2 _( ~
- (progn) }7 l# ]2 P, h% R, {
- (setq chk-lay nil) \9 ~4 S! K' O+ @( L0 |6 D
- (setq layer ;|MSG0|;"Varies")- c: y0 J4 o3 g; m( w5 f2 H2 ~& ]( t8 o
- )
* B( [% n/ z$ n! r7 L6 p* X0 X' ^ - )
' ^/ s0 U- W4 H/ J( o' ~3 e: f - )
% |0 @+ g- |' E! v' \. i4 u% P - " _+ a3 d" Q, p$ W$ M
- (defun match-th (/ nthickness)
0 f/ y4 w0 `. I - (setq nthickness (cdr (assoc 39 elist)))
; j+ t3 B; l6 p) B - (if (not nthickness) (setq nthickness 0))
) p, x% J$ f. s1 g. {2 T - (if (/= thickness nthickness)( [% N: y, i6 r, u1 X1 D
- (progn
+ |5 _- M/ c) o4 c - (setq chk-th nil)
0 X U/ I( V0 _* F. l* j/ i1 y - (setq thickness ;|MSG0|;"Varies")
5 C% Y& j& O7 e; n4 I - ). X& u) A' f L, k( j0 b
- )- Q' U) o) T a/ h' \5 N% N
- )0 ]4 j: k( b4 i0 _ K; c" @& H% D9 c
- + M+ U: W$ z3 @5 |- \- f
- (defun match-lts (/ nltscale)
6 j5 Q& n0 b% X4 m6 v1 `/ o - (setq nltscale (cdr (assoc 48 elist)))
& d* }9 O8 {: y. {3 ~* |- \7 g! T - (if (not nltscale) (setq nltscale 1))% y3 ~( ?7 K/ [
- (if (/= ltscale nltscale)
5 I [6 A# _$ D: y- _4 P9 t - (progn
) P# n, Y% Y& G& S) v6 R - (setq chk-lts nil)
( V+ t) ^+ ]: y+ i( l6 B - (setq ltscale ;|MSG0|;"Varies")
% M$ O8 K5 `: Q4 s. w3 y: N - )
# f1 u6 m0 A. k; K7 ^* e4 n% p - )
$ h' J7 Q& T; A0 K% o - )5 D+ i: u: ^" w, ^3 p5 x5 f4 a
- 1 M) b% @# _. P
- ;;! U9 D, ?) I, p! O5 r1 S
- ;; If an item is a member of the list, then return its index number, else* F/ S. ?$ L& @1 N0 W
- ;; return nil.5 h- u1 q; I6 `. r8 q& o; ^+ W- Y
- ;;
) ^! X+ H2 W& p$ x - (defun getindex (item itemlist / m n)( _5 |/ ?1 c9 S) o) S$ k
- (setq n (length itemlist))
4 C% E2 n: e, N9 s - (if (> (setq m (length (member item itemlist))) 0)8 G& e4 a" L a5 Y
- (- n m)9 _5 @0 x+ B- t K
- nil
/ a0 T9 G# d8 q1 q# Z - )* j0 g- X1 e; l# }0 f7 T4 G9 W
- ), v8 ]+ S$ j6 F3 X4 u. H7 W. V
- ;;
" z$ `' q$ v- W. L* e6 x( G" N - ;; This function is called if the linetype is set "BYLAYER". It finds the3 D" o. m& h3 w# ]: K
- ;; ltype of the layer so it can be displayed beside the linetype button.
* h/ r% G- H) [& c' Z# u8 y - ;;
) B/ m) S; ?1 c' C - (defun bylayer_lt (/ layname layinfo ltype)% o5 ~: x+ e1 g- {# Q3 d
- (if lay-idx5 j& c8 ?% N, a# i! R. V9 W6 w. _2 [* l
- (progn" W9 W2 }" ]# D2 u0 ~, H
- (setq layname (nth lay-idx laynmlst)) D4 D) g7 V a$ ~/ ?
- (setq layinfo (tblsearch "layer" layname))
: J5 v5 S3 d4 q$ e' b - (setq ltype (cdr (assoc 6 layinfo)))
, ^6 L w" |! G: _* w8 f - (strcat "BYLAYER" " (" ltype ")")+ C* |$ Q6 N0 X! H" ^5 B4 O6 x
- )
* ^( v3 h% N( z - "BYLAYER"
7 i. Y3 [9 s- X7 t8 `6 b" i - )
- K) U+ L- G( {! T% |- v - )
0 Z! V; E$ B8 q8 D* R: n) w3 @& ] - ;;
. R3 y1 U' N3 a# C9 S7 D& y - ;; This function is called if the color is set "BYLAYER". It finds the
* y9 ]' S- r, E) _ - ;; color of the layer so it can be displayed beside the color button.8 E9 g7 |% Y# I& x4 B
- ;;
+ K* J7 U8 m* s, I% M/ b - (defun bylayer_col (/ layname layinfo color)
1 z9 [6 _1 @- P/ x6 J. J% u; X - (if lay-idx
: g7 \ j; Y# t8 A& f - (progn) R9 ]) }. M; X- ^2 K+ u5 u
- (setq layname (nth lay-idx laynmlst))
. h# R3 ^- G1 {4 }; l - (setq layinfo (tblsearch "layer" layname))4 R. R- `$ a( i1 _) [8 ^
- (setq color (abs (cdr (assoc 62 layinfo))))
6 K( N" h' f$ @1 E$ p7 q; c! P - (setq cn color), }; b) }$ j: P: S# X% @
- (strcat "BYLAYER" " (" (colorname color) ")")
$ |+ ]7 [# T1 ?0 e& H; u$ Z - )
% e8 q$ C# b* P% b. {# q, ~. z - (progn
/ g( A) K- O0 Q5 a. } - (setq layname elayer)
& f4 t& l. _6 d. q' L - (if (and (/= elayer "")
7 C; Y/ H9 d* f* x- x6 n9 J - (/= elayer "Varies")
3 c( [( U1 t, I1 z8 b - );and
& s8 c6 ?3 {. S% m0 U6 o" V) X( } - (progn9 _/ O$ r, v8 L
- (setq layinfo (tblsearch "layer" elayer))
, Y B4 d+ D ^% \ - (setq color (abs (cdr (assoc 62 layinfo))))0 F, r5 C' m* a: I" k! |2 X
- (setq cn color)2 d3 v; \" J7 Z* N
- (strcat "BYLAYER" " (" (colorname color) ")")
$ j( y, z! L- p1 _& d$ [ - )
8 ?% {/ X- b6 V0 D6 m - (progn
7 n% i) S P4 A7 l5 `% P8 N - (setq cn 0)& g* u2 ] A# H8 Y" }
- "BYLAYER"
& f) W# o" i. c6 z# M2 J; I' S0 a - )
/ j* {) I8 j$ Z0 E8 Z+ i1 k - );if1 O/ k6 A) Y7 M9 @' J2 [% R
- );progn w8 Y$ Z7 q" I
- );if' {8 y1 D5 w+ Y: _& r8 `9 `1 U
- )0 ~% F+ s5 ]. W; E$ b2 \$ J
- ;;* f6 E% i8 l7 ]2 V! t& A
- ;; If there is no error message, then close the dialogue
- f4 A2 Y7 Q' E5 t0 F f' m- E, G - ;;
: o3 T2 v! p; {) H4 T# U4 Y - ;; If there is an error message, then set focus to the tile# p4 j) i! \& ^( D
- ;; that's associated with the error message.! P. J. X4 o8 U8 k9 x8 E& m8 x. B
- ;;+ o: k" p: |$ {; O* q ~
- (defun test-ok ( / errtile)
- C+ \. f1 {+ |. k% P& D/ v - (setq errtile (get_tile "error"))& w( M! @* M* b- n# b) @
- (cond
0 [: y* U3 F2 l) [" Y: d+ ] - ( (= errtile "")
' g- _7 h# F' J* i* L" h - (done_dialog 1))
' e, `* `8 u9 @ ^' U - ( (= errtile "Invalid thickness.")7 n0 k4 r8 Y+ H- n* \
- (mode_tile "eb_thickness" 2))9 H) D# A M) P% r! l# v
- )
* f4 R( J: L& s! ^ - ), ~, P9 r0 x" B. G
- ;;
' T7 I6 N* S- a( O4 O - ;; OK in main dialogue.
( u! r9 @. x# j% ~ - ;;) @4 p; C8 `2 m M% P4 V, z9 [
- (defun test-main-ok ( / flag)
9 \8 R2 {# `3 `: b$ p - (setq flag T) ( b Q; p, d% a2 ~1 G; h) H/ {/ m
- (if (not (or (distof (get_tile "eb_thickness"))! u* _" T9 k( E4 I) G' D
- (= "" (get_tile "eb_thickness"))) R2 k- o0 t4 k7 K7 O
- );or w4 _, O7 L3 C* |& Y
- );not
; ~+ F( @4 |6 O+ z5 R - (progn5 ]3 d! x' m9 b2 x
- (set_tile "error" "Invalid thickness.")# r5 s/ l$ o# n8 a0 i" k& e
- (mode_tile "eb_thickness" 2)5 Z1 t& ]8 ^4 C8 b4 E
- (setq flag nil);setq. u7 b+ u# t; x. c
- );progn) l! O4 @0 v9 i! V% [- S
- );if
4 ]- M1 ]) z6 r/ Z/ ~ - (if (and flag1 G1 |2 n! A2 C
- (not (or (< 0 (distof (get_tile "eb_ltscale")))2 x5 v1 l9 g4 \1 Q, o
- (= "" (get_tile "eb_ltscale"))
3 A6 C7 y# H( q) M! r. I$ a - );or
: L$ u0 I$ d' ]- A - );not
. J; s; @7 U& x - );and
% a: k1 R) u) ]. Q - (progn4 c/ Q' l6 D9 R% M! {
- (set_tile "error" "Invalid ltscale.")
) o* g+ R( R1 d% \, Y - (mode_tile "eb_ltscale" 2)
/ f1 {% H. C4 y% _ - (setq flag nil); * {" X0 b7 P& `7 a6 T
- );progn then( Y) q) M6 R7 ~. S6 b
- );if6 s B0 b4 i) |
- (if (and flag; f. Q5 M2 D$ p! m
- ; Don't test the tile's value unless it's enabled.& [4 [' X& B# X/ y
- ; We're not set up for the display-only value
* s. J: x' u7 \: d; G. M - ; of "" here in the error handler.+ m7 H7 D1 M" ]" T3 Z1 K% X( p; F* W
- (= 2 (logand 2 eflag))
# C5 l) S! E7 t/ L - (not (or (< 0 (distof (get_tile "text_hgt")))% I5 E7 g9 M0 H/ D' {7 g& l/ g
- (= "" (get_tile "text_hgt"))
P" n5 v, C5 ]) x - );or
" F, @) |& a3 v! T; X# Z p' E - );not
+ D/ D# i2 a9 O ?! z - );and
4 u6 R* }3 P* J, \7 X: z - (progn/ o6 n2 B! R8 O+ T! t( j8 t
- (set_tile "error" "Invalid height.")" D: R$ X% P0 B# h% P: P1 q8 G: b
- (mode_tile "text_hgt" 2)
; N+ |3 u# } J# F( z& g! ^ - (setq flag nil);* F6 B' B" N& Y6 S- c! d
- );progn then! c1 g a* [ p6 l
- );if
' H$ v4 T* d! f5 u - (if (and flag* Y' T, g$ b2 m
- (= 1 (logand 1 eflag))
/ ?1 S- [9 L4 O X - (not (or (<= 0 (distof (get_tile "poly_wid")))
1 C. q6 v- {! H2 h - (= "" (get_tile "poly_wid"))
4 H" D0 }3 K( V$ E+ b* B - );or
7 \% j, y3 U! L* q2 i - );not
3 K; f4 y$ }) o- L - );and, b; `" a8 _3 E# ]
- (progn( o* U( D6 Y1 `4 g [. O0 \3 H
- (set_tile "error" "Invalid width."): Z6 z7 V6 f1 u3 r# h% L0 D+ W- S
- (mode_tile "poly_wid" 2)( M* e% t [* Q, C/ Z7 R% `2 k
- (setq flag nil), g4 D- Z% h# Z0 t* k
- );progn then8 ?; |3 ~% p9 y
- );if ) K p! _3 L. P9 e+ p% ~, O
- (if (and flag2 j9 X: a6 F) R
- (= 1 (logand 1 eflag)), F# ~* a$ K- w, j0 a4 ~% n( ^
- (not (or (distof (get_tile "poly_elev")) D' m" F) \( [6 p! `
- (= "" (get_tile "poly_elev")); R5 c K: `! C
- );or
( L, [4 o$ B9 ~# X - );not+ h! C; D1 R1 ?5 u8 M/ ]* h& S3 S) R
- );and
5 C0 R( o4 B; t4 m$ k/ v; z - (progn# g+ `: M- ~" g7 W8 B2 n* C7 r
- (set_tile "error" "Invalid elevation.")
& Y- Y) z' W! ^& N. G - (mode_tile "poly_elev" 2)
$ R" g4 s8 y1 d$ Y* O% ]- b - (setq flag nil). f7 [" M' s# j. Z' H( M
- );progn then+ P+ j8 u" }8 K1 ]
- );if 0 {9 n- M3 @6 J7 B
- (if flag
5 \6 W7 _1 k( z& |8 ?3 N - (done_dialog 1)( m# ~2 i0 Q+ D+ X) h, _/ \& J
- );if
5 `& Q% V" f* L/ f# m% `8 ~ - );defun test-main-ok; U2 v3 P" R0 Z# E
- 1 J# c/ t+ d q+ p
- ;; N |6 s* l$ E0 E
- ;; A color function used by getlayer.- ]/ Z2 K0 R* R4 y
- ;;
3 ?. u* o' P& R% r - (defun colorname (colnum)
5 S" n) A# \- Z k& O; Z2 O5 J6 S0 c - (setq cn (abs colnum))
2 y: T4 A! w( Y& P - (cond ((= cn 1) "red")
# W6 t$ x; i+ [ - ((= cn 2) "yellow")
' z, c; j! p3 J0 p* j - ((= cn 3) "green")
0 u% I, l) J) K# F" e3 e - ((= cn 4) "cyan")
0 u) _- x; x3 B - ((= cn 5) "blue"); S: D# u. M1 W( I4 e& {( g
- ((= cn 6) "magenta")3 g4 _# D3 b% u2 `6 _+ ~6 T0 s4 w
- ((= cn 7) "white")$ f, L3 {6 C8 ~9 T# O' f' \/ y
- (T (itoa cn))! f0 H% h7 ]( |$ b% O
- )% u9 Y2 i# G) ~ u; S
- );defun
6 u9 n( a, A# W5 H4 P& ~
. E% V: a: O, X- ;;; Construct layer and ltype lists and initialize all
, u8 I9 _4 i# q - ;;; program variables:
h/ I. o- B% O9 t - ( m2 i& S# f/ M" P# R
- ; (makelaylists) ; layer list - laynmlst# j- F( w3 s+ j5 m6 t
% t3 A {: c1 X8 ~+ @" x( U
* ]' Y3 |. a+ ^0 G0 N8 a- (makeltlists) ; linetype lists - ltnmlst, mdashlist, h) A. d$ \, O! J$ t6 I
9 j o4 x- k( ~& V# ?- ;; Find the property values of the selection set.$ i. X9 s" C& k) Z% k" i
- ;; (getprops ss) returns a list of properties from- n- a2 Z' ^# q0 L0 A$ n5 H5 Y
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
4 x- G0 P4 k( \( d9 Y9 L8 ? - , |) D8 `6 }; v. r
- (setq proplist (getprops ss));@rk interesting things happen here
* h* b* C- ?# P2 F- p
2 Q6 I0 Y( X8 p5 S+ ?% G$ l- (setq2 I1 h1 D1 j, R" O: G
- ecolor (car proplist)$ u' o5 W! { ?( M
- eltype (nth 1 proplist)6 z- m; Y0 Y( \" ^/ {. E5 j! ]8 Q
- elayer (nth 2 proplist)( f: }" M$ L% Y. i9 M5 F
- ethickness (nth 3 proplist)
; O* e) u, [9 Q2 D - eltscale (nth 4 proplist)- r4 p1 j3 a# t$ P
- ewidth (nth 5 proplist)
, e5 x8 ]3 A. r, x - eelevation (nth 6 proplist)9 I6 A$ ~8 }- \3 i) g" B) {$ L' ]
- eheight (nth 7 proplist)3 O7 d' X1 p; }) S$ q3 D
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.4 h8 i2 O" L2 `$ F9 Z
- eflag (nth 8 proplist)
, ^ n# a3 [, {/ `4 A* `6 O0 J8 ^ - estyle (nth 9 proplist)
/ \/ P$ o+ o1 A5 [% d) G- G - poly_ss (nth 10 proplist)& e: b1 q7 l* [7 A. Y0 q
- txt_ss (nth 11 proplist)
9 t8 t/ Q/ m3 d. L- Q5 U" q" d d - );setq
2 ?! m6 C& w$ I" }; O
# o+ I: F8 V+ |$ c- ;; Find index of linetype, and layer lists
' Z7 }2 @' \6 ~$ i; ?1 m - (cond
7 J! Q. g! r2 E, u2 U1 |2 k5 ~' E - ((= eltype "Varies") (setq lt-idx nil))
( U" A6 Z2 k) I/ J& L- } - ((= eltype "BYLAYER")
; O( {% U' p/ b. d4 u6 O+ L - (setq lt-idx (getindex "BYLAYER" ltnmlst)))- I# ?( x) `3 Z, o4 a% `
- ((= eltype "BYBLOCK")
5 J( _9 a$ O) L5 ` - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
- N7 w* m( f( q% v: ]: H d - (T (setq lt-idx (getindex eltype ltnmlst)))
6 x% _, V/ x4 @$ Z. S - )* b# A9 p% h% M$ M$ j D& @( o7 `
- (if (= elayer "Varies")
4 X. R+ m- \. g) K2 ]2 {6 z - (setq lay-idx nil)
" n; U5 y! M( h - (setq lay-idx (getindex elayer laynmlst)), q, c E+ p$ d
- );if
! `! b. u; t! D# K+ c0 W - (if (= ethickness "")
# l% e. g5 a0 v |7 Y3 J - (setq ethickness nil)
# l7 L3 \* r7 z0 R - );if
, Y, _7 n1 I1 u" r/ G! b2 y/ y9 M( B - (if (= eltscale "")
1 r% c. V( F! R# J - (setq eltscale nil)
3 B: h; h( [+ ~. }/ Z/ y9 p+ q - );if
9 M4 F3 Q) f6 M) P- Y) L! T3 D - 3 q) b* L7 @$ V- ]* F
- );defun ddchprop2_init ; end (ddchprop2_init)
8 L$ s; e, T8 T3 T+ G
* _2 Z4 X: V6 z3 Q- ;;; (ddchprop2_select)8 I3 B8 }5 C" C& I$ R Y
- ;;;$ T! T) R/ G; \& r4 U
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:
* j4 M& z+ q% ?" i3 F u - ;;;7 D+ ^6 H' K+ Z7 K) o
- ;;; 1 - Autoselected.5 ?9 r4 j* ^8 J5 P1 C8 S: A ^9 Z
- ;;; 2 - Prompted for./ P( s: y/ W$ V1 n8 I1 ~
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
% @1 `/ C6 J, _' ~& x0 {8 E - ;;;
7 I! {& x4 U; ] - ;;; The (ddchprop2_select) function also sets the value of the
Q; H5 s" S% _$ V* W. z' m. i - ;;; global symbol AI_SELTYPE to one of the above three values to
1 j/ I7 m- J# X& W S - ;;; indicate the method thru which the entity was aquired.* B% ~5 v+ I0 w( T5 |( j2 J5 P
- 8 M/ n$ Y: j# o7 U0 b! V
$ T: @- T. T6 j4 i3 N- (defun ddchprop2_select ( / )( [" [* }* h8 f
! S: G7 M+ @/ \$ o- ) Q. E v+ C4 z/ n2 f! C9 f* r
- ;returns only entities in ss that are in the current space. $ ^5 c9 ^# h* C
- (defun ss_in_current_space ( ss / a cur_space ss2)* E" F( b7 Q U8 N4 M) e# Q
- / x5 J- }/ { b5 x# J. n; R% r3 f h
- (if ss
; C+ t+ i; R5 l/ A - (progn, |: N( W+ n( d" a: X4 X6 T, ]
- (if (and (equal (getvar "tilemode") 0); h0 J7 p7 G) {0 O" |5 z% a F
- (equal (getvar "cvport") 1)
7 v5 Z5 D+ M" N; N! s6 O - );and 0 k( o0 N% u! X6 k/ u& b! ]
- (setq cur_space 1);then paper space is where we are.5 Z3 D# A" G6 A+ f0 N/ k3 d
- (setq cur_space 0);else model space.
" n* v9 y' ]1 e& m9 t1 u& B - );if
; P9 t% j8 Y3 r' A8 E# q T6 O - (command "_.select" ss "")
$ @. f8 V* E8 V2 }1 }& r' j - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
9 A( K: I( m% u- v/ |( n - (cond ;;;;;tell the user what's going on.- L- @- b0 D5 I! s$ T4 @
- ((not ss2) (princ "\nNo objects found in current space."))
i$ H; \& ?! \7 p. E8 v p - ((not (equal (sslength ss) (sslength ss2)))7 [' K: A% |1 L/ b- b8 v! m
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))9 c' V& {! U I- H
- " object(s) were not in current space."
! @8 G; b8 a' T1 h1 X; K7 ~8 o& c - )5 f" N S( k8 k8 F, m& z
- )
9 Z! Q- l; N, t - )
, ?5 k8 e9 n+ c+ u/ | - );cond h; ^3 b. \6 q8 P
- );progn then5 M0 m) U* [% e) k* D7 C# P# C
- );if % l+ M. {8 l: ~: b( T
- ss2- @2 z) A% M c2 I
- );defun ss_in_current_space
: A' G% }5 ]9 I2 P
* \, m, S! z# t {
* T/ s3 n& {# _+ z8 \1 M- ;;;begin the work of ddchprop2_select
, Q1 ~2 u' W P, ?' a4 d - ( S9 i+ |+ P, K7 Y
- ;; temporarily restore original highlight setting.
/ Z" ]' V9 d' a$ v% S/ X9 k6 t3 _$ B" Y - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))2 f) x+ S; s0 X! Y
- (cond
% |. P7 U) }7 K+ l - ((and ss - G3 Q3 r# ^0 W/ m7 Y6 X
- (eq (type ss) 'pickset)5 ?5 _7 u* l7 B# n2 O2 `5 w( m
- ) ; selection set passed to
! s: w( W; |* w/ y - (cond ; (ddchprop2) as argument
* k `( ]- z. d( ?8 W - ((not (zerop (sslength ss))) ; If not empty, then
9 x* f. w* {+ A& C4 Z - (setq ai_seltype 3) ; then return pickset.3 I# v0 A5 e9 e! j
- (ai_return ss)& J7 K& S' \ ^
- )
+ U/ w5 F! M. u# Q* \9 L - );cond close
, c7 X- x4 W1 K) ^- E0 f - );cond #12 ^2 d/ V2 S! o) ]9 [; ^) L) |
- ((setq ss (ai_aselect))) ; Use current selection
0 s7 F( |2 d! D% d% n1 ` - ; set or prompt for objects$ e' j; Y+ l8 `3 k% R
- (T (princ "\nNothing selected.")
" k2 I7 S4 A- d; T - (ai_return nil): C' V: {/ k; R& {* H. r1 ?/ u
- )5 x5 H; Z: X2 a8 Q
- );cond close# B) J9 A2 M( v
- (b_restore_sysvars). f; r: O: r7 t+ f
- " L4 a& p; D4 D7 g( i% D- N* N
- ;(if ss% |1 H+ A/ Y9 z& H
- ; (setq ss (ss_remove_locked ss)) ! p; M3 q& p" S4 `- S* O7 V+ P& ^
- ;);if$ [+ i+ z `5 c- Y. H- L# {3 f+ ~
- (if ss. q# t8 f6 u8 ]. Z- c& J
- (setq ss (ss_in_current_space ss))
. s/ T: P9 @ @( \1 y; J - );if3 E% F+ U- d' ~+ p4 O
- X; t: I3 e9 I/ J6 O& W% b- ss/ P/ X( t. Q0 N" Z% f
- );defun ddchprop2_select% Z6 T- w6 i" O( n
6 \& U- \& J |' `! ]3 {- 6 E3 |8 a. P1 T0 a! |5 e: I
- ;;; Define command function.: C+ l. I. B0 p3 f) s
- (defun C:CCH ()
9 k1 n! s0 A* l0 p0 `: n- | - (ddchprop2 nil)
% {# n( a. g" ]# _9 a: _) l6 a - (princ)
3 B( T) G; I, I0 ?7 k4 y- M+ j - );defun6 o. I" w" V+ b5 b( W
- , Y% z/ o2 W5 P9 o% k5 @% h
( F& ]1 l+ r- k" s0 G- ;;; Main program function - callable as a subroutine.
; }1 U+ J; x0 M1 |4 H" B. |& B. E+ b - ;;;
2 R$ Z% p: b o' F( T$ Q - ;;; (ddchprop2 <pickset> )
- {9 E, A0 ?7 ~) q3 Z" r3 P% I - ;;;7 {! m% ? T3 a$ f+ s6 Q8 E
- ;;; <pickset> is the selection set of objects to be changed.
$ s. X9 L: _; j' G+ P, t6 ] - ;;;4 O* i- X2 V$ [ ^* D
- ;;; If <pickset> is nil, then the current selection set is
+ \, p: u; h; h - ;;; aquired, if one exists. Otherwise, the user is prompted }& A: h& @/ u+ g+ i/ B; I
- ;;; to select the objects to be changed.
& V. b/ G3 T, E: T `% k - ;;;
6 i$ ^9 b9 {' @8 q" C8 P# i4 D - ;;; Before (ddchprop2) can be called as a subroutine, it must1 |( R6 \+ b% M; ?. h
- ;;; be loaded first. It is up to the calling application to
; R7 r) T* v5 K1 Y7 I - ;;; first determine this, and load it if necessary.
' s5 f/ z$ Z0 J M- e
" N3 ?& G4 i1 C' t% a- (defun ddchprop2 (ss /
& n. t+ ^# t$ d1 {* u* Z - 0 z7 Z: s5 u& `
- a
) V: ]* ^8 @7 R+ ]! ~; w/ m/ Y - add-mdash6 U+ g$ L0 A& n, J6 V8 L
- assoclist& [, S5 G# N# s6 J' [
- bit-709 D% N7 _3 M2 `4 ], g
- boxlength
: U1 | [: y3 Y) p: a% ~! c2 C! y% J - bylayer-lt4 ?5 Z/ B9 O/ ^
- bylayer_col
3 W! Y( `7 z) C8 i: \5 m8 k1 W - bylayer_lt
; @% h/ F( ]% P6 J - call_chp2
^, @: Z; e& s/ N' g" m2 {9 j - chk-col9 ]+ ~3 v; N/ r7 t! T6 [
- ;chk-etype ;var removed by rk . _7 D3 q4 E X( m+ N" Z; j. ^
- chk-lay % h |( J* w4 t+ z' X% n( I4 \4 l
- chk-lt$ F0 ~$ A" v$ |. ~( ~
- chk-lts ;var added by rk
. t2 g5 \3 g2 j1 v# [( J1 e8 C+ { - chk-th
7 f0 B" T9 z/ x/ Q3 z5 {9 J8 v - cmd
, b2 M) h' Y5 j; v" _8 |3 R2 j - cmdecho. _) P9 r1 Y- p+ Y- i! Y9 F# {9 `1 [
- cn7 q' S/ N- S n6 u
- cnum) v6 a2 g) c* U) |3 ^7 B
- col-idx: l8 Y, ?( z' n$ s, N1 B9 J2 c; `
- col_def
: N3 U. s8 {& M- S& h8 U0 M5 ? - col_tile, ~1 c! O. o" y% m
- colname8 d! e$ i5 U3 ^2 j F: U2 F
- colnum
! _: M: x$ m3 I% Y - color# J9 U! K3 Z: r* W+ p6 O W7 N
- colorname) P; z2 {. _1 b% }
- cvpname
! _+ R1 m3 Z) k+ e - dash
5 X1 @5 s! S) Y' e3 l - dashdata
, Z1 o; f5 i/ v9 ? J% N3 {' ? - dashlist
9 d! Q: ]" P$ m; H - dashsize
, @5 F$ C9 H" q1 i& h O9 r - dcl_id
* d4 h1 _3 X$ Y( G7 P5 Q - ddchprop-err. m5 }* g! a6 \! o2 r0 U
- drawpattern
, }; W: I' j. | o+ w U. w - ecolor$ T" y' \: ?4 u
- eelevation
: ]- i n# i+ P - eflag2 G4 z( l. ^2 z- ]7 l' \
- eheight- }2 u( V0 p# {. n$ P! n: u
- elayer
' S) R3 W4 l+ ] - elevation* u& Y) M" e" r" ~. C% s3 @! o
- elist
, Y+ t0 I! ~/ Y. L4 b+ ^ - eltscale
$ \+ q, a& c6 j$ x1 x - eltype3 J2 ~5 \: r. T. W( g
- en
( P% l B" s2 D# n, ? - ename
- w0 z! N- w, L! q - ESTYLE ;var added by rk
2 W$ x0 i7 S& w. X - ethickness& E5 e) Z Z3 |6 J7 c
- ;etype ;var removed by rk
( P( z4 C/ H# j- }: t0 q+ Y! _ - ewidth
' w' j- [6 d5 x# n5 q8 G2 N - fchk
: J; a1 d7 e6 d - frozth
6 z# x9 G4 ^+ k" J - fx
. Z& ?7 \( f7 K0 b - getcolor
Z% }) o9 ]5 k; |" I; ]2 G% I- Y4 Z - GETELEVATION ;function added by rk# q9 m* ?7 t! ?5 T9 }. Q1 H
- GETHEIGHT ;function added by rk8 Q% ^/ k- V0 v
- getindex3 k% f a; q q- p+ N
- getlayer
9 \' r# B& Z( X/ }. E) W - ;get_locked_layers ;function added and then removed by rk
0 f' C2 q. [- y6 ?6 }; ^ - getltype7 `# j1 Q( \; t3 J+ ^
- getprops
8 I+ ^2 M3 x0 b; A1 e7 v- v- m - getscale ;function added by rk/ I! _9 ~% l( H3 A* }
- GETSTYLE ;function added by rk* |% Z- x! \- L
- getthickness5 @( Z6 }# B4 J* b# d/ h
- GETWIDTH ;function added by rk
* H4 I& K1 [$ C - globals7 H3 z6 l M k/ i
- HAIR_STYLE_LIST ;var added by rk
+ v" J4 R# i4 ]0 |) U9 n - height$ d3 B+ C. ? k4 k6 O0 t, b
- index
( K9 b( p3 {& l6 G - item
& s2 \0 F/ n% _' j& [- A - item15 ? V, f. A+ L; @ S# m5 B8 d
- item2; m8 B& N! J x
- itemlist
% r# H: r( d, Q# i3 K - lay-idx
8 n- J* \4 G7 ~ - layedit_act+ o) z' Y: Y Q* [5 w
- layer( \4 r0 Q6 z. ^$ R
- layinfo
: @; I4 F N2 p' `4 w - laylist
$ W3 ]* O0 v! N- l* t) g - laylist_act2 Y3 O# z' k$ I( ^; |1 x2 e
- layname
1 j. F5 s3 @; s& i - laynmlst3 J2 }- m$ x: `( Y( o+ W
- layvalue
) a; o0 F2 K* d - linetype
$ H. {" K* j1 ^6 ] - list1
; v! Q. |- @ i- u7 x5 j- c - longlist d- {; f8 b7 R
- lt-idx
" X" x* v# w7 F, Y! ^ - ltabstr
& T* ?6 h K2 S0 r5 p) b) v - ltedit_act0 T" r+ d0 g1 y( \5 `, d0 C) J
- ltidx* R7 E, Z0 \/ F; n1 R8 T/ r F
- ltlist+ b/ \+ w; ^6 [' Q! h B# r
- ltlist1
F; L6 j& O. K: _6 @ - ltlist_act
) u% A" t6 A1 o- s - ltname
7 B1 u0 r$ ?' D5 ^. w. z. b0 ]9 D4 e - ltnmlst; V5 r( Y) n( T8 v; t
- ltvalue
3 B' f* v5 L' Z& B. {% X2 H - ltype
! X: j' V3 k) A$ d/ @1 H - m
- R% Q- z5 |% S! ?5 s - makelaylists5 A; v A M' c8 a; B# H7 g
- makeltlists
% `0 K: n$ L- W/ w - match-col
E' o5 M# t+ r( D+ j( G& H - ;match-etype ;function removed by rk
, J6 F U; F' q/ j+ I) W - match-in0 b3 A- N: M0 o( A4 i& I3 ^1 R+ m% [
- match-lay9 {/ O9 u3 G3 [3 n4 P0 G2 g( B: `
- match-lt
- s4 x7 N8 {- N5 n% `) O - match-lts
+ l8 z5 _! M% E3 V* | - match-th) J/ L: O# c1 j; L
- match_col7 [! P3 [$ c0 B1 A0 d- Q
- mdashlist$ F8 L1 M8 L s; Q$ b6 D+ V
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk* J+ H8 o8 x4 k, B/ y1 ^$ z/ b, P
- n( `& r( Z1 ^" b6 L
- name
2 P5 T: }$ [: U3 q1 U8 L - ncolor
' E5 F: F/ W5 t7 _% l7 U( Q8 k2 n - nlayer% k1 e7 L, ~0 ?' _9 T4 [ C
- nltype
1 `6 l! P1 E0 c - nthickness" J1 H& P. t. O' [. |2 T S
- off1 n! A5 \3 S' B4 @- x
- old-idx
7 A2 G$ o, t3 ]8 i$ ] - olderr
" `% ~. S1 w9 b( C7 ^. L( D' ]: h - on' B2 M) s# A0 O6 \! n
- onoff
2 S o* s d# ^/ u - patlist
: r% x& D; @, e- a2 j - pattern4 {( Q8 M8 U& `" I+ ?* [# u
- PL_WIDTH_GETTER ;function added by rk! N3 Q- h) i D7 P6 c3 L" `3 c
- POLY_SS ;var added by rk
# ~# u, e9 H$ }1 z- Y - ;POSITION ;function added by rk and then moved to ac_bonus.lsp c$ y" i4 H0 U
- proplist
% ?9 b: g% D K% \ - reset-lay5 Z+ I5 I9 ] F4 I
- reset-lt6 }% ~: r% c# ~9 A7 E5 n
- s
9 O# P. K) }. a - selset
6 |9 [) W" n( c4 p, W& P - set_col_tile3 S1 F. O' U* T/ q6 q9 c5 _
- sortlist- I& B7 F/ M4 L* X6 D2 z/ C6 U
- ss' G) b8 L6 D- a6 [
- ss_in_current_space ;function add by rk.
' ^; x) s# T, X% @) N - ss-index6 q8 i% p9 I/ A- E/ U& |1 E
- ss-length) o! {* c7 i. Z" V, J ?7 y+ A) o1 t
- ;ss_remove_locked ;function added and then removed by rk.
1 i# ?/ t2 P, `; V - sslen- }+ i$ x9 Q2 m- I( [" a
- temp_color
3 K W5 y. K) y. u+ x9 @ - templist
, N& e! M) U7 P$ R/ u) y - test-main-ok0 V% T$ }; B/ ]) E$ y) `! M
- test-ok6 V% d$ a" B6 F: o6 A) K8 h# t5 C
- testidx0 n$ K3 `0 |5 H$ L
- testlay
+ S# `6 g4 ?! K' r$ ?1 V - th-value" U! H2 L9 d: U& x8 X* f c9 d
- thickness
( {! c! A3 K' q- S - tile$ d- ?( d' {: C# V
- tile_rect
, h/ ]5 R6 X' a) @4 t, i7 Y" Z - tilemode0 p- i# j8 C8 F$ c( ~* {# \5 J4 \
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
* S( W7 Q4 t3 U1 w - TXT_SS ;var added by rk
& Q/ v: }6 w; r$ x5 Q+ I2 ~ - ;undo_init ;removed by rk.7 W/ ^7 f8 S8 T
- vi
8 X" ~. `1 O) f3 u2 s - vpf8 r& s+ W/ B, ]! s; U* u
- vpldata
^+ S$ ^+ w9 O! y. ]! z, \ - vpn0 M- x6 _0 ~; Y5 B% M
- which_tiles
8 ~# s; O" x5 t2 ]! w# a: B - width
" r* r* O1 {+ I8 o3 {7 ~ - x1 X; ~) w/ K( V' I5 _% r& V$ l4 Z
- x1! l& j& {+ [4 t: w
- x2# F$ o9 S4 C8 E* w; B( `6 i
- xdlist- v" b5 f. i& Y9 b
- y9 R( \& M/ T% z6 L. r
- y1# ^# R e; V8 g; S
- y2
1 U8 m4 h: l9 M4 X U9 e - )7 l1 F/ t& h F% J6 {2 R! x4 b
- 6 N7 J. q$ j8 j6 m1 _3 t
- (if (and (not init_bonus_error) ) k5 l% H2 a# p( Z1 R; y0 L% N
- (equal -1 (load "ac_bonus.lsp" -1))
' g: v! y, P# g( X+ { O - );and
' T; b' H8 c( c9 @$ }7 M; [ - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))9 S# `( b; E( B
- );if9 ^3 K& ^$ C/ H
- (init_bonus_error (list+ P: w, S4 J T( T3 V
- (list "cmdecho" 0
. t, R. T& v* A8 R6 ]$ M( G - "highlight" 0
. p9 d. w, Q l4 U4 B; X - "regenmode" 1
8 M/ L, C! v6 I6 |+ h: o; E - "ucsicon" 0
( Z! f: \, ]3 s8 `* y - ) " @1 F2 k/ \/ M. x3 x
- T ;flag. True means use undo for error clean up.
' U/ k- o5 y' | - );list
9 P; O5 U! O6 D0 Y8 D9 A6 A - );init_bonus_error* d5 u8 `* [ ?7 ~$ E0 a; D7 i
8 S" a- n& a# {8 r# N* \7 o- (cond
) B9 Q- P) _0 x% Y- W - ( (not (ai_notrans))) ; Not transparent?& N, m" I" l1 d6 U# x+ Y
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?: Q& x# P5 [; W _
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?/ a6 V3 W3 B) {( t
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?3 \- D8 a8 c# Y& H( a, \; |
- (t
, Z* C" x( w6 L4 d$ F! x - ;(ai_undo_push)
" l; C* t0 o6 c Q% q1 b - (ddchprop2_init) ; Everything's cool,
, [* S8 l4 W# Q: N* ^; e$ J+ y - (call_chp2) ; so proceed!
3 n, J6 Y. O; y5 E - ;(ai_undo_pop)
y; g7 m$ B8 e0 C0 x& ~' S - )
& Q0 I' P4 Y- T/ z; D6 O - );cond close+ ~3 a' O# |" S c/ ]* o
- 3 H8 h. B1 ~; e6 h' w
- (restore_old_error)$ Z! O* h" h7 [" _7 S. q1 n7 C! l
- + I" {( I; n ~# S
- (princ)
2 j, N& l1 B% G$ y0 i - );defun ddchprop20 @# q8 _+ t C' R: T
4 ?/ o# M1 d% |9 r; Q; s- ;;;----------------------------------------------------------------------------( A1 s2 o1 \' C0 V
- ; z' f v, N8 T* E+ C9 B- D/ l+ @: R
- (princ " EXCHPROP loaded.")$ b& |! G, u! v. R' \$ n: p
- (princ): s6 b; R9 v2 E& q
- 1 c. @' B1 \( |4 \- I
- ;;;---------------------------------------------------------------------------- s, ?9 E2 ` o: x5 x' H
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
" W1 [6 E! [$ H7 H - ;;;----------------------------------------------------------------------------
% j. M1 @" Q" J8 E0 H7 p K( A/ J) p5 E - $ C3 o) ]* c) |1 ~, z7 z7 P
- ; Next available MSG number is 24
; c K6 [, {% H( L9 ^9 K7 R - ; MODULE_ID DDCOLOR_LSP_% S( u# R) ^, ^3 ~( l- t- [
- ;;;# L9 U! z# ^7 c$ s% f; s
- ;;; ddcolor.lsp
) P" P4 |) f' v- D% `$ Q$ J - ;;;
. d/ C) v8 B7 i3 P4 x8 G - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc./ m- `1 h6 D% T3 C0 r6 d+ I
- ;;;
0 G. L1 `* `2 p; K0 U4 b p9 o - ;;; Permission to use, copy, modify, and distribute this software
" B$ F1 ^! d/ u. w6 ?& m - ;;; for any purpose and without fee is hereby granted, provided: e0 x$ d+ f8 ?% T# v
- ;;; that the above copyright notice appears in all copies and
& E" k( m# j, _ - ;;; that both that copyright notice and the limited warranty and
$ i1 S. E8 H4 G& K - ;;; restricted rights notice below appear in all supporting2 W9 e7 h. Q& {1 l$ g5 H3 b
- ;;; documentation.) n1 q# l; T& ]
- ;;;" q1 @3 w* O3 [# c
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
- L" q5 W+ e+ a7 c2 k - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF5 ] W! e: u* x& Z$ \/ _7 [$ |
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
8 _& T' `- R% X p2 i) ~- U - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
& _1 x. k; c/ p4 d - ;;; UNINTERRUPTED OR ERROR FREE.
* A) [1 w7 V6 j* y* }5 L& m: O - ;;;
& I: l6 t; f# x F9 A. @ p& S - ;;; Use, duplication, or disclosure by the U.S. Government is subject to" I0 ?$ ]4 i: J3 w- f
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
n+ ~. D! o7 `1 y6 V - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) , B0 O0 Z/ F9 ?, [: m
- ;;; (Rights in Technical Data and Computer Software), as applicable.
. C& Z4 D, l; L( O. ` - ;;;/ J' @% _# b- ^# b
- ;;;.
5 P8 Q( v4 ?; G' R: p. K - ;;;
$ Z: T+ B3 i: l) q1 S* J- [ n - ;;;----------------------------------------------------------------------------! U8 A, M; ?) S4 V
- ;;; DESCRIPTION, \$ A! H4 y) q/ P4 j
- ;;;
* t# `2 r4 V' b+ W - ;;; Chromatic Pallete style color selection dialog.) p" c% d! h+ a9 x; N% R
- ;;; / ]" B0 c6 E" e! X) M
- ;;; Globals:, ~' s+ B: w6 p( R
- ;;; ; J3 H" {* \# n' z4 [
- ;;; chroma_color - Integer color index. The last value selected
2 Y, ]3 q) m; n' ~% X7 C' H. Z k - ;;; by the user in chroma dialog. It is not cleared or reset# f4 \# J4 k4 J4 H+ u
- ;;; by a cancel. Only used for communication between callback
3 ^2 L: ^' d! A! i - ;;; functions and the (chroma) funciton.2 j' i. a' h' f: l% q
- ;;; / q2 e7 ?8 m+ m* C# U
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.9 B' g z3 |2 J1 D% e8 h
- ;;;
7 b* C& j$ \5 L - ;;;2 C' Q& W, r& H0 C. U. h0 z
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma - h. N* d$ N% Y8 l8 J! I
- ;;; pallete style color selector.
0 x7 @6 J5 y2 `5 B- I" w E - ;;;, U1 h; ~: e1 h, i2 K4 @' J5 k4 D
- ;;; ===========================================================================
1 L- c8 B! y: d1 g& \1 ? - ;;; ===================== load-time error checking ============================
; W2 f5 p9 R8 t2 c; c) i4 P6 W' H; G - ;;;: c" D/ v2 U3 I
. A7 c3 a+ _: |2 n: A# @- (defun ai_abort (app msg)6 c. e! P/ l, C) Z% h3 D$ Y) Q
- (defun *error* (s)! c9 V8 a$ K" _& w' i4 ~+ L2 l+ J
- (if old_error (setq *error* old_error))
* x, c- \# n; ]# V% z1 O1 h2 @ - (princ)( P+ Z4 t; U2 J1 u7 ?/ o0 Z$ \
- )
. \' K: F. l# |8 Z% |( n" e1 m9 l - (if msg4 L/ p0 M( z; Q' Z6 k4 p
- (alert (strcat " Application error: "
* q6 Y+ o4 ^* V - app, |" m; x1 W1 n# f! C
- " \n\n "
7 E% |- z; u2 l - msg
7 i1 C% E; ?( i/ i8 y! v- C - " \n"
9 b- u* O e6 |& ~ - )
. G9 V( A x# A) c5 w4 P' r - )
: x& _# m6 m& L# K) h - )
2 B* k' K& J+ i. n6 A' W; B3 ?( F - (exit), ^2 e# n- i- u3 Y9 y
- )
3 o/ @+ l2 I% K1 u% U7 _
+ k9 e& A( j- V4 i- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,' V! Y( }" ^, V2 w& I
- ;;; and then try to load it.
" z1 X! y2 C* \. X9 ] - ;;;
1 S. X# W2 G9 A4 U' c2 r - ;;; If it can't be found or it can't be loaded, then abort the
) c8 m" Z, q8 C/ }7 y& Y- y - ;;; loading of this file immediately, preserving the (autoload)& m1 r. N9 V3 c' C2 P6 C
- ;;; stub function.
, l3 S) o/ l% h! M) r; l - * ~% V% C% k" w# r& k( b
- (cond
& T% {( l- w7 w1 Z' Q% e& O - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.9 G% T- e' N* O0 u- D1 X( H' g
7 X* N. R! b& o- j2 E, ^) H. W- i- ( (not (findfile "ai_utils.lsp")) ; find it5 u D9 G: I% v
- (ai_abort "DDCOLOR"
9 S9 S0 L! I8 ]8 y7 i - (strcat "Can't locate file AI_UTILS.LSP."
; w( s* u' \; N+ B - "\n Check support directory.")))& |& W. w! H' a0 B6 B! t
, w! p+ g j3 Y$ o5 [- ( (eq "failed" (load "ai_utils" "failed")) ; load it
/ p2 ^/ h2 k. S; b, ?9 w - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))! G0 s2 T. J! c2 b& S
- )
# {: o4 }. l# p8 B0 ?. O
, {8 ]# O/ f' u0 C! x o! q! L" I1 y- l- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP6 k; V- M, S- k3 J/ ~
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses8 T& i7 @2 k; p* ]
- ) ; ai_abort's alert box dialog.' ^ W/ U! K% w* {
' A! H: e3 I5 I3 }9 E2 T. r: \4 N- ;;; ==================== end load-time operations ===========================
& ?+ `) p& L8 r7 N& }) z - 6 @5 Q/ i; o; d5 W; Y0 H" B
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)' Y7 i7 d! ?; ~8 d! e: Y, p+ ?( P
-
6 K1 U* a% D- Y& o2 [% ^" U* M; v - ;; Main Color function, called by setup code., _" b+ E: s0 n# @
- (defun ddcolor_main()
8 x- u/ g' h1 v# f! h - 7 T+ V$ R$ f% U6 j
- (graphscr)
% q8 P. f! L7 O) `! N) J - . r+ K8 G8 T% ^ m- L( `- Z
- ;; Get the color of the current layer, for possible BYLAYER color swatch.
' `; a+ O f1 m' X$ H6 M2 S - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))* i/ o5 Y2 b( b
- 7 x' _. c" I' X h' _: ` O
- ;; Call the dialog here...! B. R- I, p* ^
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
" h+ A6 @9 I( A( g1 c6 Z# w; H
0 I$ x" [% I" ?# W- (if clr
9 Z5 _2 q3 z+ ~ - (setvar "CECOLOR" (citocs clr)))
9 w; T7 a" h0 T8 X E0 B1 V+ x8 ?3 \ - )
& u$ @2 {! X# K0 j* w - 0 q; i8 U( o* y0 W. W+ _" C
- ;;;
7 S( R2 Q; z2 Y u- _ - ;;; CSTOCI -- Color string to color index+ I4 B) Q4 m: n
- ;;; Convert an arbitrary case string into a color index.
% L8 H9 w. T! u7 j3 ^3 S8 Z, I - ;;; Returns nil if string is not a valid color.
) q/ H1 y( q) b - ;;;; L5 ?+ p6 p7 O; {0 O
- (defun cstoci (str)$ @9 ~- V' Z8 s5 x
- (setq str (strcase str))
! y- B' B! Y4 \% F - (cond
4 t9 J2 ~7 ^$ m3 M# C - ((= str "RED") 1)
9 X7 \# P. H( |4 |1 O" U - ((= str "YELLOW") 2)
' U+ z# J+ _! M& _! N) \ - ((= str "GREEN") 3)
5 z% ^# y3 Z' B! f7 O - ((= str "CYAN") 4)
9 f! Y Z5 A# @% V/ U2 b - ((= str "BLUE") 5)
9 ]9 Z4 f4 a' x- ~9 Q0 V1 v# _8 [ - ((= str "MAGENTA") 6)5 s8 U8 h- [% ^8 y: ?& s
- ((= str "WHITE") 7)
5 ]) X; M" Q" d& Q: j8 L8 q& R - ((= str "BYLAYER") 256)+ t& S$ O( i/ z9 p ~% O* B V
- ((= str "BYBLOCK") 0). l' o. c+ T; |" J5 X* T
- ((= str "BY LAYER") 256)% W# p7 `4 s9 @, _, X+ L
- ((= str "BY BLOCK") 0)2 W. ?! D3 n5 j& ]1 k" l! w
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))" L6 Q5 B6 a! M) C7 Z# J& J3 q
- (nil))5 S K, f' a, r- |$ n/ a2 }3 K
- )
, L3 m* Z8 W" f- M9 | - " `& B* x- ]' _6 E6 k
- / e) l% ~' R7 h8 u8 V
- ;;;( f5 R* ?1 A( L2 Z
- ;;; CITOCS -- Convert color index into standard color name.
1 l& Y/ l l# U! G" K - ;;; Will return the standard and logical color names as text
0 V" H# g4 ~ e$ [ - ;;; strings. Returns nil for out-of-range color indicies.( C' T; G8 _4 N( G7 e: q C; i
- ;;;0 V; s9 [6 I" ^1 v
- (defun citocs(i) A4 |- z5 t3 V% i w, N- B
- (cond2 c( d6 ~! t- K+ }- q+ f7 a# b8 Q
- ((= i 0) "BYBLOCK")1 O9 g$ Z- ~! N. i. X
- ((= i 1) "red")
' m( G5 w: q7 E! x) ^ - ((= i 2) "yellow")/ K6 p0 q' d& F2 F9 \9 n7 E
- ((= i 3) "green")3 v5 h1 G0 H1 k9 O
- ((= i 4) "cyan")8 a: [- T: v; k6 e
- ((= i 5) "blue")4 o$ T# b8 S% x5 ^5 C# z/ f
- ((= i 6) "magenta")1 `) Y( H! s5 u% M2 r( v! z! M9 \+ p
- ((= i 7) "white")
) Q' ?7 u, K) V$ R8 {. U - ((= i 256) "BYLAYER")
% U* ?7 X l' p* y" J) R; ? - ((and (< 0 i) (> 256 i)) (itoa i))
8 I' l' z8 P9 C - (nil))5 m5 V! }+ N l# i$ H
- ), M2 |$ D6 c0 F+ g
6 a: p; S6 w& A- ;; Start of ddcolor: O' N9 d# }+ L$ X1 _
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho: f9 _* e9 O& R2 e! ?; q) H
- old_error *error* ; save current error function4 [- n/ j3 o: f3 X2 |2 L9 ]
- *error* ai_error ; new error function
+ O' C8 J+ C& A* y - )% G+ p0 F- j; a+ ~& X, B& ^( s
- , w* e1 l6 F; }4 A" ^6 |# V
- (setvar "cmdecho" 0)
8 O4 k5 |+ n1 Q5 T! b2 x - 4 ?9 `$ o' m. V" u3 v/ J5 O
- (cond8 r! E) u1 N( W. f$ i
- ( (not (ai_trans))) ; transparent OK' J8 P* w# c) G5 C, u5 d+ v" w
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?$ W7 G: ^4 m; H1 a7 @
- , y- r8 \1 @# U9 h# M1 h
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
0 y2 z4 z1 C5 E0 } - (/= 8 (logand 8 (getvar "cmdactive")))
1 v( T1 a; I6 _# H - )2 J3 J. U2 T7 d' o( l7 k5 w
- (ai_undo_push)2 K: h4 j: q, {4 q6 `' a
- )! H7 E% I4 p* q% i- x" x. |( d) `
7 e7 y8 p' w: R7 f4 S+ G- (ddcolor_main) ; proceed!
& d: \/ [' v- h; M0 w4 b
' j( u( P. d+ V6 o3 W% }3 @" U- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
* u9 A% c5 r9 f6 v9 t7 ^ - (/= 8 (logand 8 (getvar "cmdactive")))
0 _% m% k( i% m, T - ), X& ]- P% }/ a8 f5 S# W# C
- (ai_undo_pop)
, `& e& Y# |9 K3 L. L7 E5 G - )9 p& p' U3 Z8 N o
- )4 r7 o7 u. Z% W
- )
9 e P$ L G7 M2 P, g - : n; A) j5 b# n, ?: w$ `* ^. r& L
- (setq *error* old_error) * _) ^' u) K. o3 x
- (setvar "cmdecho" old_cmd)
4 t) U2 i" u" _0 E! u; I) H9 @- E - (princ). f. I# S5 D, U \2 g! G- }9 V5 M
, p8 C t; G8 [: K; u* G: i: s, n1 B- )
% `. U1 x" \4 \
9 ?' a( v/ g# i# j- ;;;----------------------------------------------------------------------------
; a& Z0 \3 y, A4 o2 ]
1 o9 i- B0 E* B- (princ " DDCOLOR loaded. ")- R. T: Z3 W# A) `; E- K% p
- (princ)" S1 R% Z+ D8 L9 `8 b7 K* z7 H
- ( ?& S0 _- _ Y! v' f8 R7 c
- ;;;--------------------------------------------------------------------------; o7 o) y$ `7 Q
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
3 e0 F B! j6 h# y4 l7 W - ;;;--------------------------------------------------------------------------;5 T& ~" q& p* |
- ;;; ssx.lsp5 W7 `" R6 n* M0 ~ v
- ;;; Copyright (C) 1990 by Autodesk, Inc.
- ^( _: c% o k - ;;; Copyright (C) 1991 by Control Systems, Inc.+ T- o1 @4 U2 b7 M: U& d$ {- }
- ;;;
- _4 E' E7 ^' o+ A - ;;; Permission to use, copy, modify, and distribute this software and its: L+ x4 k7 a! B7 S+ i+ l& u
- ;;; documentation for any purpose and without fee is hereby granted.2 m$ r4 v1 F1 N/ M0 W5 i, v
- ;;;
* j) R3 I `0 Z8 X - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
, k" s9 P: H* Y' J - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
1 Z I+ q3 D# a; V - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
* n2 \# h2 Q6 b9 E - ;;;
1 Z' A4 s$ d1 h( b; `! o' s - ;;; Larry Knott Version 2.0 7/18/88
5 p( X, n" J6 z- h - ;;; Carl Bethea & Jan S. Yoder Version 3.0
" s, C* c' a5 t$ e - ;;; Enhancements to (ssx).* W- D9 }% _& h- g$ r
- ;;; 15 March 1990
2 h& F* A* {& u9 v3 F - ;;;
8 c6 U, I& r3 G$ y k - ;;; ARTIST Software, Inc Version 4.0 December 19911 i5 [/ ^, M* a L# b
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,- R+ V i9 J6 b( t
- ;;; use Flexicon menus: ^! D; C3 S! C! r. y5 B
- ;;;1 }# x- _2 p; I
- ;;;--------------------------------------------------------------------------;
7 D: e1 A z7 V0 d& M$ w4 B - ;;; DESCRIPTION
/ J5 {( D7 |; V; Q7 j, k0 j+ e - ;;; SSX.LSP
( x) m, Y% p6 n - ;;;
+ _. N* F0 N0 y" e - ;;; "(SSX)" - Easy SSGET filter routine.
8 [4 H) @* G1 H R. ` - ;;;
: M) t+ b- x" L - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
* w1 K, g) ~$ Z9 R( O4 U' p - ;;; to create a "previous" selection set or type "(SSX)" in response to
2 n5 S6 g/ t- B; U$ D: ^8 C' b4 e B - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
1 o7 n) E) l; m# j2 Q - ;;; entities and "(R)" to remove entities from a selection set during 6 ?/ ]" l- {. p
- ;;; object selection. More than one filter criteria can be used at a " S( v! k% t+ \ ?, G
- ;;; time. , a7 @% y- m; ]% P2 w. L7 [, z
- ;;; 9 o4 D/ b4 a/ V9 o; v5 P* `* t
- ;;; SSX returns a selection set either exactly like a selected
! i+ S! p0 y& O5 ]" d3 [ - ;;; entity or, by adjusting the filter list, similar to it.
3 s" ]* J* I) |: Y - ;;;
: `+ d) \( T( r1 A' A- Q2 g" P; g2 W - ;;; The initial prompt is this:
1 R% O" ?" g- n: Q - ;;;
2 b& S z, q+ s( R& @2 z& } - ;;; Command: ssx
9 u# g9 Y' m1 e0 c! c9 s - ;;; Select object/<None>: (RETURN)
! J3 o' L. ?, z1 {0 W - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: " D! _8 l- o) C U
- ;;;
% q& T7 O: Q7 g - ;;; Pressing RETURN at the initial prompt gives you a null selection 1 O; L; b0 F$ {# i \
- ;;; mechanism just as (ssx) did in Release 10, but you may select an
' h- M& X0 o& _7 I/ R2 s( y - ;;; entity if you desire. If you do so, then the list of valid types ' Q" r& i: H* i2 l" d3 f+ L" G. ~
- ;;; allowed by (ssget "x") are presented on the command line.5 t9 _4 D8 I& f
- ;;; 4 b! ?5 [( q8 Y% A
- ;;; Select object/<None>: (a LINE selected)
5 w( g( K: d2 }# [4 F, M" D9 { - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 0 s' B; w! W2 I* n
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
. L3 a/ j* \6 d. B - ;;; . Y8 x2 Y( ?7 t$ x% I1 ?7 n& {7 G1 x6 ?
- ;;; At this point any of these filters may be removed by selecting the $ t- B; h0 M2 J. H
- ;;; option keyword, then pressing RETURN.+ k: b+ ~7 i% B6 |8 F
- ;;; + g* e! ~0 ]) h# m+ I
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
1 j3 f: J6 a/ v7 I5 r, L% R - ;;; ; ^' F- P. D6 w+ a: g! b) [; P
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))8 B' @4 j. v/ q5 D6 \: H R( O
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
) ~" }; b8 y' I - ;;;
0 h9 \( _: u) }* T0 j - ;;; If an item exists in the filter list and you elect to add a new item, * t* x( }% U7 L% o P
- ;;; the old value is overwritten by the new value, as you can have only 6 w2 I/ n, E( c, S- ]3 Y, b! C! ~- ]
- ;;; one of each type in a single (ssget "x") call.. B: w$ ^$ ~; a, j5 j# l
- ;;;
& ^1 s) m; n+ o: ^: r+ f9 |1 W3 @- T& t - ;;;--------------------------------------------------------------------------;
+ w# V+ N/ x2 c( W6 ~, n - ;;; ?7 _4 F0 O9 u% {$ v$ j! E1 V
- ;;; Find the dotted pairs that are valid filters for ssget
2 _ O6 {2 ]' t' Y - ;;; in entity named "ent".
- c( p9 {+ r5 r. l5 k* C - ;;;1 H7 d: `: b- D: A
- ;;; ssx_fe == SSX_Find_Entity
7 }9 `$ X' a w7 O9 X - ;;;
4 c/ h4 B: X$ Z# h* E( r - (defun ssx_fe (/ x data fltr ent)
) f/ X# C5 u7 t+ Q+ w. C# b P) l( d - (if (and (= flexvar 1)(/= t2 "Pick"))
% b4 I! R2 G9 T2 }$ P* n - (setq ent nil)! j3 \$ ], }& |) [5 A9 a) [
- (setq ent (car (entsel "\nSelect object/<None>: ")))
% i! g$ M: S' v- K0 Z - )
7 U( X% d. o6 ?! l5 _ - (if ent" U4 a$ `* E d H
- (progn3 K% X4 |; o2 |7 [; P2 \5 J' A
- (setq data (entget ent))% {6 c" g( N' Z$ k# P
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
9 Q" w& w; @! ~ - (if (assoc x data)+ U3 V5 m4 J/ W" D: z: G
- (setq fltr
0 Y7 J( y# G: ]6 K+ R3 c# a1 l - (cons (assoc x data) fltr)3 [6 B' J) b# S' d( f8 x- [4 l
- )# }* _) X) ~5 D8 `; h
- )
: k3 k' |! i% Y J& Z) J - )
- ]+ P- f5 C. L) x" m, P - (reverse fltr)+ H8 i# Q: d7 n% y4 R2 `
- )
) s- h9 @( v5 S( ~# P+ ~, ~6 q+ T - ) / N9 a/ b$ M) X; k
- )3 V: @( l3 ^& x4 t; v$ z$ J3 n
- ;;;% K$ Y) [/ G4 q( H7 L0 [
- ;;; Remove "element" from "alist".# ~# D; P0 f) k( J9 A
- ;;;
2 w- J" m) o4 M' a* J+ g% ]1 m0 t - ;;; ssx_re == SSX_Remove_Element
& }1 N" F2 z, K: m" ` - ;;;
% l6 c, z; T% H& g! Y; l - (defun ssx_re (element alist)$ L, @, A5 Q' S9 y9 W
- (append
! g; ^, N, ?6 g" A$ q w/ v. | - (reverse (cdr (member element (reverse alist))))
6 ?0 v, c# k5 M7 \3 }6 M" l; u+ k - (cdr (member element alist))
) p& D# H% G4 D4 c6 T; D/ {1 j6 k, M - )8 B- c; j6 L; Y3 T% w. _; Z: F
- )
# N7 S4 q) d% \ x8 s4 l - ;;;7 c) F) ?, E' ]! `% e, e$ c
- ;;; INTERNAL ERROR HANDLER * i5 R' K3 h3 f9 ]# Q
- ;;;
6 U; W8 j# R4 a6 {2 n7 Z1 a - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
; M* n1 P j' x, r" M6 i- E# N - ; while this command is active...
5 R$ V. A% X8 J# _7 }7 s( r - (if (/= s "Function cancelled")
& P" A- V: d& Y; c( U+ ~ - (princ (strcat "\nError: " s))
8 m) C" k& N7 c/ A4 i+ A% @ - )
0 D& C& y" T* ?2 | - (if olderr (setq *error* olderr)) ; Restore old *error* handler
. @$ H8 q Z8 t4 f: S4 d# g% y& }6 J - (setq flexvar 0). O; x. W% V1 y3 p/ b& J
- (princ); @( ~, c! a ~$ |6 Y: \
- )
( `, v4 T' G0 X4 O- z F - ;;;
/ ~2 e& T% @0 ~' i4 H, q - ;;; Flexicon call routine* Y. o3 Y4 A$ j0 ?7 U l
- ;;;1 X8 o1 G a6 b& q9 N- B
- (defun flexmnu (a)/ B. T) X3 @$ o
- (if (= flexvar 1). V- E" d1 L3 J- w& W
- (command "FLEXICON" (strcat "FLEX" a))2 e/ p+ i1 a2 z% Y, j
- )
4 Y8 v( O* j% F) _: v - )" J+ o. C' P1 s9 I# H+ \
- 7 D3 d" f0 U3 R' f7 F! X
- ;;;
; z3 V5 p2 u: i6 H - ;;; Get the filtered sel-set.
1 W3 U2 ]9 R) u6 g4 c - ;;;% ^& K Y, h( v
- ;;;
8 I6 ~) Y5 L2 X/ [ - (defun ssx (/ olderr)% v) z! L: |9 f& w# a5 c% W9 B, n+ b
- (gc) ; close any sel-sets ! x7 D4 p% r+ s2 c/ P6 C: L, b
- (setq olderr *error*
+ p2 i4 M# D# k; a. ] - *error* ssx_er
2 I+ w3 v5 V9 J$ V - )- @' \* }; ]# b- S B% ?
- (setq fltr (ssx_fe))
+ ~6 U! u3 p9 h& ^% J - (ssx_gf fltr)
`0 R+ ^$ c3 b( { - (if (= flexvar 1)" L5 z' N3 N0 r! {6 ?8 ~% Q1 f
- (progn- F2 A5 m& o1 D7 y( {
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")6 p( w* Q- C( g# |4 I# ], e
- (flexmnu "EDIT")
1 c& L2 k+ `/ W. \# i9 {. Y6 v: y( X3 v - )/ N! E9 P4 J6 A M' s: r
- (command "p")8 ]) a( x$ V. B
- )/ y3 g: Q0 G8 o" L; I6 S
- (princ)
2 Y* A4 X8 `, }$ D; u; A7 \ - )% y5 m, p# Y# Z! f4 N0 c
- ;;;
( p; S; P9 L( j9 P - ;;; Build the filter list up by picking, selecting an item to add,1 u: `: F) i" b0 O$ A% h" K
- ;;; or remove an item from the list by selecting it and pressing RETURN.9 H2 l( |% z5 T) n7 F8 G
- ;;;
7 s& Y# O( v- q- C% m0 z* l - ;;; ssx_gf == SSX_Get_Filters
7 p" s6 I1 _* d& \6 ?& h6 o" A$ e - ;;;
) X% p6 U* N) H9 N3 v# O - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
/ [: ?$ ~4 p. v E- Y8 L - (while
$ i9 |( Y$ H& P! U& N - (progn
1 ~* _( G8 h% X& L, E4 D _2 h - (flexmnu "SSX")9 |2 U/ q5 B0 J% T$ @+ x! o X
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
$ m( r7 J0 \5 R - (initget % ^1 ]- P; s! @1 b" O4 ]7 R* d7 i
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
% c* K6 Y) [# W( F& L; E, N - (setq t1 (getkword (strcat$ l: U ]. {1 A! r( [
- "\n>>Block name/Color/Entity/Flag/"0 h& x5 i- h* a4 X
- "LAyer/LType/Pick/Style/Thickness/Vector: "))) 4 P: j7 N0 P! P) R( A. X
- )* h0 ~2 R4 X) ~( d7 ]# Y& ~4 Y
- (setq t26 p- T9 x. C$ w& P
- (cond
8 W. j; H" v I$ r; f3 x5 { - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
( n8 w" p7 }$ W, \& [! m - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
- W5 F' w& m/ l' O) z' v N9 V - ((eq t1 "LType") 6) ((eq t1 "Style") 7)7 {1 K3 d3 m5 e6 x4 V# P
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)3 s+ p3 ]% s2 Q7 T
- ((eq t1 "Vector") 210)
, |# }" e# s: C3 e; s; e" ^ - (T t1)
+ A+ _; @4 `" _4 B/ m6 c6 Q2 S - )' X% }4 z% G# l6 u
- )
, z2 Z. k) e0 d8 H! U9 l4 A% f - (setq t3' z o% {# P! F
- (cond
4 c5 I4 {) s9 E% w) d - ((= t2 2)2 T5 p( |4 F; z* |* q
- (if (= flexvar gtads 1)
% o7 S' |* N8 D) y3 H - (progn. D- P7 z# ?4 B2 I# E( o" I, a
- (prompt "\n>>Block name to add/<RETURN to remove>: ")* T( V3 g& S) e: S
- (gttable "BLOCK")
* z) ~2 T% O: G5 `# L6 i0 q4 f2 K - )
' x( j' Z% {6 j" m$ o - (getstring "\n>>Block name to add/<RETURN to remove>: ")& X9 e# p7 G" C4 A" s
- )
$ R0 K1 V- i' s) O3 ^! R - )* l2 n6 f8 c- T/ B" G2 M
- ((= t2 62) (initget 4 "?")
' k+ ^5 n! P. `! H - (cond
% B3 ]1 I. _, w- ]8 y. l - ((or (eq (setq t3 (getint
: c/ p# H& [7 a1 s - "\n>>Color number to add/?/<RETURN to remove>: ")) "?") ) S3 y+ [+ q" n$ h
- (> t3 256))$ F1 j# m8 ]4 h3 ~2 X
- (ssx_pc) ; Print color values.) \0 n/ c3 C& H( f5 S2 i
- nil
) ~6 N" i1 U: h - )- k$ ]# Z# \! I+ M3 m
- (T
; x9 }" U. _) z% {- y - t3 ; Return t3.
7 I$ f- L( q+ p( R' q - )
( W+ ^. q# m: Z - )/ _) L& J( b, L8 V) c
- )
- t: J: R- @5 w9 T - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
) \5 ^5 ^, m y- m9 B - ((= t2 8)
. M/ z/ R- ?: O( d - (if (= flexvar gtads 1)
' d' q; v2 a) g3 D0 \/ ^0 V - (progn
! O0 f9 w9 k6 k- x: t. M - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
j3 O; V% I3 P+ v+ U - (gttable "LAYER")
1 V3 S0 j2 a0 I" X8 X8 O" w - )9 {! r& f9 }) ` B, C4 g/ ^
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")& F; ~+ a0 b' [# K7 S/ w1 W
- )
t' ~6 H( m0 H0 |, k U: V - )8 N/ x2 `; B* _9 u9 e( `
- ((= t2 6) 5 g# g: F8 ?' L
- (if (= flexvar gtads 1): C6 J/ b Q7 I8 ?1 ] E& a
- (progn, |. w, I" n1 K( a; Q) ~. F, h7 U; ?
- (prompt "\n>>Linetype name to add/<RETURN to remove>: "), Y$ T- K5 s0 E" Z- F- [# w
- (gttable "LTYPE")- R+ P9 `3 ]) f, ?2 O3 O2 Y
- )9 K+ e0 K, D n2 C4 Y7 e8 |5 j
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")+ K' m# S8 U) S9 Z( f9 t9 M
- )2 T/ S6 C$ `# A, j9 p. G
- )
S5 b- B' _2 \4 p- I9 X; Y4 `$ S - ((= t2 7) 9 a5 ?) H9 G$ S& q$ Z: V, V- G
- (if (= flexvar gtads 1)" ]) W$ J$ ^8 a5 z3 A+ r
- (progn+ z9 b4 {1 K- y/ I( t) T( A
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")8 C9 @4 d- w( f% B" O0 ?
- (gttable "STYLE"), |+ ^' e3 T, I: B6 J Q4 R3 w) D1 k
- )' k9 `. y1 J: t- G& D3 B, M5 W2 q
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")0 m. h4 S+ w y9 d- S' T8 S9 M
- )
2 w- i B3 L$ A- t8 K/ V! e; }' i - )1 }5 I3 ^3 n' D+ X! ~7 p& G1 z- `
- ((= t2 39)7 J3 k, j# C2 d( x/ G s) f
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
3 O I6 t9 B/ f4 b - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
) I" t% o4 d2 c: t O2 M - )
6 j; P9 @7 \% _/ [5 q/ V - ((= t2 66) (if (assoc 66 f1) nil 1))( x5 f; F7 K5 J! u
- ((= t2 210) 3 q" c9 `' ^4 f1 G0 O$ S
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")( G- @! ~7 L# Q% h3 h
- )+ g2 L- j9 `# Q9 F4 W \
- (T nil)
& R+ Z, v: E1 X# z. ]6 H - )
3 L) _: b' ]2 _1 G - )
8 ], S z6 S7 a) V/ D - (cond: @2 h& H) ?; d
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
; |' [7 x2 T, G. Q7 R9 K$ O - ((and f1 (assoc t2 f1)) ; already in the list
, o- Q8 Z+ }" U5 f - (if (and t3 (/= t3 ""))
. W( Y! x) q: Q- ]9 L - ;; Replace with a new value... # ~: i6 d0 h. o. d9 g
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) , F' V/ A- S) T( r! e# ?
- ;; Remove it from filter list...
7 n1 b$ A4 m. }( T; c! N - (setq f1 (ssx_re (assoc t2 f1) f1)) 6 |7 [5 C! u- O
- ) 9 v- J7 X7 K/ Z7 e
- )
1 `; u! l) n F& r3 Y: d - ((and t3 (/= t3 ""))
& m+ ]6 E! f7 v% p - (setq f1 (cons (cons t2 t3) f1))
( [9 I. C" x% Z; P - )
: W3 K% [' [0 i3 O# T - (T nil)
% k+ V$ G/ x1 D9 ^ - )
2 v1 c, f) G9 F+ o! D" h/ U5 m8 z - )
3 _# s$ S1 Y- v& { - (if f1 (setq f2 (ssget "x" f1)))
) N+ z7 u7 ?7 C8 x: _ U$ B. X7 ^; `! M. z - (setq *error* olderr)$ [2 `8 C2 L( w A
- (if (and f1 f2) 9 p; a( D7 y& h! ~6 w0 U% t4 D# Y0 J
- (progn/ z9 C7 P6 }3 P r) M$ P
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
& D4 D3 j5 i1 ^& Q4 u+ p - f2
# ]( J* d/ k% v" u0 d" I a - ), X9 ?9 M" `7 Z' s: Y5 h
- (progn (princ "\n0 found.") (prin1))
& Z% J6 N) ~% ]/ @; [ - )
& M! l* T8 z R5 q - )2 j: i) r# M# \. p
- ;;;: |+ @: n$ U% x% j J+ n" O
- ;;; Print the standard color assignments.7 t: W$ D7 q& p) I' A
- ;;;
3 c% ?3 [0 v( q. W n* p1 W - ;;;
3 J8 Q0 d/ n$ E* f) a: \ - (defun ssx_pc ()/ ~3 C$ w$ _, T! |
- (if textpage (textpage) (textscr))
* r; W1 B# y$ N2 U+ i - (princ "\n ")
. P6 d4 i0 L( K3 D1 x - (princ "\n Color number | Standard meaning ")3 N& m5 X/ f5 f. O: f7 |4 h! |6 Z
- (princ "\n ________________|____________________")
, X- \- c( B; O - (princ "\n | "). t: N* t! B( d! J5 H
- (princ "\n 0 | <BYBLOCK> ")
- B7 j! {- a. T: C - (princ "\n 1 | Red ")
0 p9 l) K* U- F) p7 |) c - (princ "\n 2 | Yellow ") \- x5 B8 C7 p9 ]: b3 {7 Q
- (princ "\n 3 | Green ") y( I3 c) G; w2 |& M( c
- (princ "\n 4 | Cyan ")
8 u; ^7 S! J2 e0 O - (princ "\n 5 | Blue ")
/ [$ L9 r( E2 j2 |; b) h - (princ "\n 6 | Magenta ")! \8 b+ n" C* n* f1 _' n3 l) A
- (princ "\n 7 | White ")
8 H5 J( ]5 Z! q - (princ "\n 8...255 | -Varies- ")0 b# g! E& @6 L
- (princ "\n 256 | <BYLAYER> "); I6 v5 H( j% f q, W' ?
- (princ "\n \n\n\n"): E% s6 W# d. i4 D0 j, }/ C
- )' u0 Y, h6 R9 c5 o
- ;;;, ^9 I4 W8 G5 g' T1 D
- ;;; C: function definition." b- u; Q3 T9 [5 Y, d9 v# Q
- ;;;
# m% U' t! F8 _+ i7 w! \ - (defun c:ssx () (ssx)(princ))
, `+ o# K& \# s0 L) B- S - (princ "\n\tType \"ssx\" at a Command: prompt or ")2 \3 v- D5 r6 A6 y5 P5 {7 s
- (princ "\n\t(ssx) at any object selection prompt. ")
q2 j+ H& y0 J& ^ |, O; @) @: N; e - (princ)4 o; W) t$ Z4 c8 k
; Z) m9 h d8 E, R& u' G5 A- ;;;--------------------------------------------------------------------------;0 j0 b$ P/ T- K% m- y; s" g
- ;;;--------------------------------------------------------------------------;: E* F8 E' m {3 C
- ;;;--------------------------------------------------------------------------;0 Z: z" W$ h* k, O# c1 |9 U
- (defun S::STARTUP ()
: w& D8 V& T. o2 A. F' {6 c% I! C! v - (setvar "cmdecho" 0)
9 n/ R$ @3 T2 {2 E% A3 ?" c& C0 O) y* s - (setvar "cmdecho" 1)
3 N+ J" q/ c& G: u - (setvar "LTSCALE" 10)8 r( v) a! S Z4 c: c; r) v
. _7 Z& z* X( X2 I/ C- ;(command "_load" "chenKH.fas"); T! h- @. B' ~7 |
- ;(command "_load" "ctcot.fas")* s9 v* n1 S( T4 x$ U( Y
- ;(command "_load" "damdoc.fas")
3 ^! ^! T( i6 o m$ Q1 \9 z - ;(command "_load" "ghichu.fas"): n% p1 |; N, Q8 x. |
- ;(command "_load" "hamtutao.lsp") Q# d& i6 z( h: Q$ q% g3 o+ E8 [
- ;(command "_load" "KHOITAO.fas")* ]2 }/ i( m) m/ @, h I
- ;(command "_load" "KHthep.fas")
, M" O9 \! ` @ - ;(command "_load" "mbmong.dcl")- {" @& ?& \4 p4 t6 R) c
- ;(command "_load" "mbmong.fas")
: l* S5 |7 r9 p; X+ f: A! U - ;(command "_load" "mccot.fas")
2 M7 }$ K4 a0 p: `! ?# ? - ;(command "_load" "mcdam.fas")- z. l5 P7 \& C6 o
- ;(command "_load" "mcmong1.dcl")( K4 r" k6 ?4 G) ^2 m
- ;(command "_load" "mcmong1.fas")
& _4 ^) p1 c3 ~0 h. J. d! h - ;(command "_load" "mcmong2.dcl")+ C5 F9 N+ |# ]. A0 h# l
- ;(command "_load" "mcmong2.fas")
+ {$ m9 `, Y% R# `% E5 g - ;(command "_load" "mcmong3.dcl")' J7 f$ x) c3 q
- ;(command "_load" "mcmong3.fas")
' R% D1 `2 u( ?/ }7 w! Z) R7 \ - ;(command "_load" "mcsan.fas")0 l) m8 u ^0 D' [& r: J, R! y' z
- ;(command "_load" "thepdai.fas")
H8 E y; d4 T& ~ - ;(command "_load" "thepdoc.fas")
- U/ d8 c# F3 q; z9 u - ;(command "_load" "thepmb.fas")
: C9 J4 Q* U2 s* u - ;(command "_load" "thepphbo.fas") h/ c6 t6 ^2 l3 f
- (command "_script" "thongso.scr")
& n3 y* ]3 Q) F r0 M* N0 F6 ?, p! E - ;(command "_load" "thongso1.dcl")
" q* s# h \0 c( E# q7 b - ;(command "_load" "thongso1.fas")
6 [0 l9 r$ R5 C - ;(command "_load" "thongso2.dcl"), J9 m0 v7 f1 F5 f8 `3 U9 n6 z
- ;(command "_load" "thongso2.fas")' Z2 |# j' ^( E" R8 _, }, D. Z8 [' s
- ;(command "_load" "tietdien.fas")
w6 {1 E* T4 r$ H" b1 h - ;(command "_load" "vehan.fas")/ A/ t5 _0 ~3 m& ]
- (command "_load" "phamDuy782006_TKT.lsp")
; D- ^2 t( f0 L6 L% Y - (command "_load" "phamduy782006ganhtd.lsp"); S1 m, F0 C2 N3 x4 h
- (command "_load" "phamduy782006ganhtds.lsp")
/ A: f/ X& b3 Q2 s7 e/ Z+ j+ i - (command "_load" "phamduy782006htd.dcl")
6 i: G) @7 ^7 J3 { - (princ)
+ I. t( R% j( }' c' G - )
) c9 \: N) _* {% @2 x; A( } - , s E0 r h4 V; f7 P" |6 I4 Y
- ;; Silent load.
3 I" l3 U) T1 K1 U9 {7 Y - (princ)/ [; e) p, Y3 j
w4 h4 N, \# U' T O2 J7 e
9 D7 \, i- j3 W0 T/ C" r6 P7 B( `/ u- ;; Silent load for the Express Tools.
; H" `5 H$ j2 X+ `; M - ;; Altering this line will affect Express Tools functionality+ ?* J& A2 X* W3 D4 Z+ N, m
- (load "acettest.fas" (princ)). |; ~# }' m" Q1 I! p- q5 x
- �32
Sao chép mã , g7 j& t7 F/ V/ }& A
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ$ z1 s# ?2 p" {$ y4 S0 o
|
|