|
|
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 |
- ********************************************************************************4 ~9 M! W" y+ d! O+ e
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *. f" N9 A' a* }9 @/ F5 U* u
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *$ x; J7 N$ K9 Q, H9 ?9 ]
- * Suu tam & Soan *+ K# F6 q. u. N- K) `5 o
- ********************************************************************************( |" E1 D* b- O
- C0 j$ y3 d; W: S: x- ; Next available MSG number is 104# d* K7 q1 ^( Q' x' k. z2 v7 Z
- ; MODULE_ID ACAD2000doc_LSP_- w7 a* y" O7 V+ S3 W: _4 p4 o
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000! e& T. f+ Q: G
- ;;;
6 s, J; Q+ a- o, F2 G3 C: C - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.) U- i. b9 q1 C% y' ~7 @9 j: t
- ;;;
. [- s. w1 u8 E& G- q. S - ;;; Permission to use, copy, modify, and distribute this software$ `7 Z y6 w1 F/ }' O
- ;;; for any purpose and without fee is hereby granted, provided0 v& ]4 f9 f" u0 G$ R1 Y
- ;;; that the above copyright notice appears in all copies and
I! s" C7 x/ v0 r+ K- {. k. \ - ;;; that both that copyright notice and the limited warranty and& {- `( \" B9 _$ s
- ;;; restricted rights notice below appear in all supporting
2 j. a! k( ?* |( e! O! U2 V M8 R - ;;; documentation.& w) C+ V& ^/ v
- ;;;+ ?# ~5 a1 U" t: s0 I5 D, h+ \
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.2 {# M+ E+ \7 F% p. D4 h8 O" s8 k
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
' E6 e: N- B6 D" W+ i" _ - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
+ E' u% ]: _3 b+ |1 c* M+ c - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE. y, M8 V9 ~; b& `; w! N- w
- ;;; UNINTERRUPTED OR ERROR FREE.
3 z; S2 b) x8 m/ Z% Q" Q* i2 B - ;;;
- J' J3 n3 O; H- X( i! i7 d7 w - ;;; Use, duplication, or disclosure by the U.S. Government is subject to$ R) H' Y* l3 q, ^8 y
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer# Y/ n" v# I; a* B* U+ @% G
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 1 i' ?7 T4 W3 t/ |/ [4 z- ?
- ;;; (Rights in Technical Data and Computer Software), as applicable.7 c# s O* k0 E7 S/ l$ ]
- ;;;+ b/ f" b- V* P+ f1 _+ p
- ;;;. ]- {6 I6 P( o$ |, @
- ;;;
* h1 O. y3 @5 y( h6 o4 Z) r - ;;; Note:
/ E7 G9 r' S1 \1 g4 w- M - ;;; This file is loaded automatically by AutoCAD every time 7 ~" L2 L: q; m* a* \
- ;;; a drawing is opened. It establishes an autoloader and
R! X4 n0 d- C5 v9 F( L8 ~, W9 _ - ;;; other utility functions.3 `' @ j' C5 h2 y
- ;;;
% ?$ {7 i" G, {) i& d1 A - ;;; Globalization Note: 6 h- a$ n# y- ^
- ;;; We do not support autoloading applications by the native / K& L' K4 A" y! Z$ c/ y: p
- ;;; language command call (e.g. with the leading underscore' G5 _9 I! z6 J, u( O+ i! N
- ;;; mechanism.)
$ N7 l8 D% s( U3 L3 { ^ - 0 Z' Y5 Q( W e' ~1 z
- " H3 l( {9 H% Z: o$ U3 @
- ;;;===== Raster Image Support for Clipboard Paste Special =====
+ a' I0 X8 K$ ~9 Y& ~) S0 j+ b - ;;
9 X2 b2 h% {8 E' o( r# M - ;; IMAGEFILE
$ ~# X) M; h1 H5 ~) M+ k" |/ y4 S - ;;- `# @& I( e$ t8 p3 {
- ;; Allow the IMAGE command to accept an image file name without
: b$ k8 p; d( n: ]. t2 u - ;; presenting the file dialog, even if filedia is on.8 x$ a9 k" |1 X" A, g
- ;; Example: (imagefile "c:/images/house.bmp")
0 Y6 ~5 x+ k$ Q# S - ;;
! e0 i- ?! `! u - (defun imagefile (filename / filedia-save cmdecho-save). V2 N, q* z& k0 e
- (setq filedia-save (getvar "FILEDIA"))
3 J: T$ f- M0 Z: s: j' Z H - (setq cmdecho-save (getvar "CMDECHO"))& M3 @# ?2 _3 ]5 ]1 G3 [
- (setvar "FILEDIA" 0)* G$ T4 E" _, {, [0 L0 X. F0 V3 q
- (setvar "CMDECHO" 0) p$ R% a% O7 A
- (command "_.-image" "_attach" filename)' e, i" l. ^" J& ~4 A/ g
- (setvar "FILEDIA" filedia-save)) j% v6 M0 H( Q. Y" U- l
- (setvar "CMDECHO" cmdecho-save)8 }- J% C+ v2 @- c, B% V G
- (princ); D4 @9 J& j7 V3 n
- )
7 s" x0 ~; b/ l - 2 L* j9 y7 L- X. o
- (defun c:zx () (command "zoom" ".5x")); q% t, O, I. o" @
- (defun c:zz () (command "zoom" "p"))2 y1 k' \. Z5 `' O2 o
- (defun c:za () (command "zoom" "a"))6 N: I" ~! t5 }" Q4 `7 m
- (defun c:zd () (command "zoom" "d"))
; R& W. _7 y" W5 Y - (defun c:ze () (command "zoom" "e"))2 ]: D' g m2 s/ a* B$ J
- (defun c:zr () (command "zoom" "" ""))
4 a0 F; i+ i, O - (defun c:vv () (command "ucs" "v"))/ ]* ^, J( o. G- R, G2 @ f
- (defun c:co () (ssget) (command "copy" "p" "" "m"))
N5 C2 j1 h7 d$ T6 S Y2 N - (defun c:c () (command "circle"))
, B( u" l$ s1 ?/ N* W( Z% { - (defun c:rt () (command "rotate"))
/ Y- w7 o1 o3 I/ t/ n5 g - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))& Y7 {( H8 F- y, v$ c: U% ^
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
* l2 q: F6 Z, p" K$ G5 Q J: d - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
( m' X5 ]9 I% A - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45")); F; v! B9 }( H
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
+ `+ Y4 s, K# @# P* _. n T - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
9 Q# ?1 v+ z# b. `) P - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
4 h9 @& R3 [& z/ \; N6 o6 U - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))$ e, S8 Y9 I$ x1 y+ G/ P
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))& Z4 x) z; c- ?/ c2 }, ~
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))' ]& E5 J8 d$ I4 _# O
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))) w' }6 v' Q- r/ J9 i. {8 @0 v
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))3 n% d( Q% r: l6 t+ p
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
& [6 r) m9 ~% G& J. `' e
0 R! |& n0 e: N: ~" \9 Q- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
1 ^% Q/ n1 b% s, L/ a' H7 l - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)$ T2 s9 H' a8 R& _7 ]: ]0 [2 i, }
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)3 J% E6 t& C. x5 H, p- n
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ): a+ w ^) _' P, O
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
x* T3 U7 J A - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
- _0 X$ R* b- y- `- }! ]5 ~. E5 u - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))# ~8 v# t+ X: ]" z- O
- % [% |. y# b8 }, d
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))/ I: }4 @+ O) w9 |& e8 M
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
. F/ n7 U9 _* w. h - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
# j B, T- k' N- j8 X - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))8 e2 B' q0 y, B2 d4 Y
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))% j* s1 O: ]: q6 e6 |& G$ g
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))1 w/ @/ x( z7 _, W: ~
6 k% Y' N/ E) A1 J1 X; F- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
1 D* U2 [6 c* p% ~
/ ?4 V% y2 B. N$ e+ e; ~9 o- ;free lisp by cadviet,cd2k447 k1 P3 b; S) ?+ F% O8 `* K
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538307 l- j2 \# P& X0 j
- (defun c:FTEXT (/ ent tstyle )$ p' x2 |) W; B/ X. X6 } r# G
- (command "undo" "be")
* c/ R/ _$ P! o8 L+ P: Q' _7 D$ J - (setq ent (entsel "\n Pick text :"))$ Y9 j! v M, {, K$ |7 v0 m
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))6 V9 t2 o* o0 Y- Q+ m' Q
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")& K5 z; B+ ]0 E$ s* Q: _2 v
- (setvar "TEXTSTYLE" Tstyle)# k3 h9 f9 q/ t7 d1 x- ^6 {
- (command "undo" "end")
0 R3 p& Y: K; g* _( c - )
' y% _' c9 l& w0 a - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)# t/ w0 A5 P1 v w3 b
- ; B1 C6 X; S7 m1 w' T$ ?. E! I
- ;free lisp by cadviet,cd2k44
* p" K0 m- D* n# d8 { - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830" C- f! _3 \0 p. u: P. L* r5 p$ W
- (defun c:Fvnh (/ ent tstyle )8 W1 B) i# J7 w9 c8 T
- (command "undo" "be")
# U- O9 K- i6 G* F2 s4 R; J - (setq ent (entsel "\n Pick text :"))
8 R; j+ X# G1 C/ }1 n0 h3 x# M( l - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))& J* p; V$ z4 a% J0 K. Q+ G- C
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
* h% l c$ h2 d, g. W D$ B - (setvar "TEXTSTYLE" Tstyle)
% i$ A, d0 x/ C' R4 @ - (command "undo" "end")
2 @3 s( C8 @1 {. J& R - ); k8 } F5 {8 \/ O- C5 D/ |- {
- - Q7 b: I2 V [* j% K; S4 F2 Q
- ;free lisp by cadviet,cd2k44
0 E, U# i6 j+ J# o5 \ - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
4 ?% l, ?" p5 d/ J3 {' C9 C - (defun c:Chbg (/ ent tstyle )
$ z! f+ R, @; S* M1 s$ s7 L% o" k, p - (command "undo" "be")
5 [' ~, U: W0 Y7 Z+ I0 R7 B - (setq ent (entsel "\n Pick text :"))1 Q! u# p/ H7 ?/ D! \* V
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))' f4 ?+ }8 J+ W+ x8 N h. X+ B6 Z' J, B
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
7 j. s, Q* j! g3 r u0 T% p - (setvar "TEXTSTYLE" Tstyle)- G5 _* k m L, l+ O
- (command "undo" "end")/ T0 P- A0 Z" G4 v; u5 n' N
- )
8 |$ U; X& L0 l3 E! K& J6 h
; k Y- |9 S& M& l8 C& |- ;free lisp by cadviet,cd2k44* G- G& G8 L+ p$ c6 z9 P
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830. d9 x( S0 L6 q( _- g$ ~
- (defun c:Chsm (/ ent tstyle ) m; x1 C, R. P! j; u+ n# Q* r
- (command "undo" "be")4 ~! ]4 z& Z( J4 x' ?
- (setq ent (entsel "\n Pick text :"))8 v9 Z* `4 c L9 A4 w- L
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
8 \# f! I- e8 ~# M$ W - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
2 A) \! x7 f6 W - (setvar "TEXTSTYLE" Tstyle)
6 j* |5 \$ f+ z - (command "undo" "end")
+ ~* K; D! B# U x - ) z2 @. h, z. D3 a3 O7 P9 \3 n
# i% h9 h; }+ d x- ;free lisp by cadviet,cd2k44. D# C: V6 O' C0 ?1 x& N
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
# C, q4 }+ _5 D/ |/ O7 s4 O - (defun c:Fttf (/ ent tstyle )
; k8 p: m- O% d; v - (command "undo" "be")
! c) D% {( X0 S1 N8 s- Q - (setq ent (entsel "\n Pick text :"))
) x7 d1 c1 O) G7 _: Q - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
4 @1 S( X' x0 a - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
- \/ v$ h* K8 W! y" H8 D - (setvar "TEXTSTYLE" Tstyle)
! O( Q0 c0 Y) e/ `, v X; }$ Q - (command "undo" "end")1 q8 f- ^; I& ^2 Z: ?4 }
- )$ m% |+ G& V& j. U
% E- o( B, ]/ Z- ;;; ============================================+ C* E6 t6 }" L e
- ;;;( n3 J6 @5 T1 k, b& z$ ?! y9 b
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000! r, a6 N6 z5 s( G1 v
- ;;;
9 J. V& O: V ^ i2 _% j# P* N - ;;; ============================================2 z4 J( D; n- ?' a6 O5 g
0 u+ z! ?' Q* y# W) h- v- ;;; ============================================. L' ^: R7 k& s
- ;;;
, |' F7 L- V& u+ S+ G" D& S - ;;; CREATING FROM AUTOCAD2000) }% G# K: C" o0 E+ G
- ;;;
4 |+ I4 _9 P+ D4 z$ Y - ;;; ============================================+ p1 Z- w# f+ \, p ~
* f& L6 E+ ]& s) I: U- (setvar "INSUNITS"4)- y$ b4 A& _8 ^9 K! c
- (setvar "ANGBASE"0)
9 R! h3 X6 ]' S3 W" f4 x" j0 B - (setvar "ANGDIR"0); s8 X2 e1 s# \5 X0 R
- (setvar "AUNITS"0)# T" R) k$ a" L0 u" x
- (setvar "AUPREC"8)* E2 u' F# V4 M& `7 P; T* m$ o$ \, G
- (setvar "LUNITS"2)( ]0 i0 G. F" R( ?$ U8 d8 X( V v
- (setvar "LUPREC"8)5 w* S" z) k; r' G& u6 `( s
- (setvar "ACADLSPASDOC"1) + c5 _6 F7 |7 b1 O+ X" I1 \% M
- (setvar "pickbox"5)
' S# g- ~" V% D5 W; ^+ u0 n - (setvar "blipmode"0); F# i P4 H+ a0 u1 d9 }, @: [
- (setvar "mirrtext"0)! n0 l; e+ p' t2 B6 S( _% Y
- (setvar "cursorsize"100)' l3 X1 G8 p" Q: Y5 y
- (setvar "ZOOMFACTOR"75)+ H, a! l9 y1 ~; E) D% O
- (setvar "LTSCALE" 10)
' j* A# \6 ]+ i/ B - (setvar "lwunits"1)! g& ]% n) Z- m! i
- (setvar "DIMBLK" "Closed")+ k8 o# v$ r$ V. W" ]+ i/ D
- (setvar "DIMGAP"0.0693)
* a0 C0 P) l- i! t - (setvar "DIMASZ"0.20)
, x( q c( N, [9 \ - (setvar "DIMCEN"0.2)
/ g1 X, O: S+ g& }: l - (setvar "DIMDLI"0.1)1 r/ b& l8 h3 ~: b: M
- (setvar "DIMEXE"0.0693)1 C; V$ @! n, N/ I! N @0 l
- (setvar "DIMEXO"0.25)
% x9 O1 \6 y! V/ n, r2 i - (setvar "DIMDEC"0)
8 S: n. K- h; ? - (setvar "DIMTIX" 1)
, V; B# R/ C# z - (setvar "DIMTXT" 0.099) `& ~3 e. s7 m7 B2 x! q
- (setvar "DIMCLRT" 7) `* c6 j0 n8 D; P+ o. v
- (setvar "DIMTVP" 1)0 N( \; g0 O; [. z/ m! U8 M
- (setvar "DIMJUST" 0)
! |. q/ I2 e6 A' w - (setvar "DIMTIH" 0)3 C+ o2 q% @1 U
- (setvar "DIMTOFL" 1)0 l3 E7 b8 t1 x, @) d$ v
- (setvar "DIMSCALE" 1111.1111)
' y5 M0 q3 c* j1 k; A9 { w
- x" Y) E: J+ }+ c3 }7 z
$ G2 [! x: ~) ^: m" Q* C5 f- 2 i& q( _2 E5 o- ]! ~
- (defun c:zp () (command "'.zoom" "p"))
: h7 i0 z6 i; v4 V" P. ]. }" t - (defun c:zz () (command "'.zoom" "p")): P% w; q0 ^6 g+ e! _0 }' ]* S, g' v
- (defun c:ze () (command "'.zoom" "e"))
* j* E- ?; O [ - (defun c:za () (command "'.zoom" "a"))
p% w0 X# U- A0 m4 S - (defun c:zd () (command "'.zoom" "d"))9 E3 C ~* P# ]. J- A8 ?
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
5 ^7 ^' [. n+ H- N7 x" F - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
) `( I( i) y/ b j/ d - (defun c:de () (command "ddedit")(princ))
" y" C. v0 c' j' ^" N; t. |! U - (defun c:dda () (command "Dimaligned"))
# @2 O4 i' Q0 C% D$ J- v - (defun c:ddb () (command "Dimabaseline"))3 a d" U+ Z7 a- K: Q t1 h$ I
- (defun c:ddc () (command "Dimcontinue"))5 E. w% k: J4 n7 o# r, ~
- (defun c:dde () (command "Dimtedit"))% K p9 ]% y. t$ {9 m, s
- (defun c:ddf () (command "Ddattdef"))' h; ] e3 @& e" T
- (defun c:ddi () (command "Dimdiameter"))* b* c- b! W- c$ C$ i9 r
- (defun c:ddl () (command "Dimlinear"))
" a3 w. a$ u% M- C" n* P; ?" Y - (defun c:ddn () (command "Dimangular"))
( V; ]/ B2 U2 x9 N - (defun c:ddo () (command "Dimordinate"))
1 J N$ v4 f6 [) O- h - (defun c:ddr () (command "Dimradius")): x( M8 M* [" i' x
- (defun c:dds () (command "Dimstyle"))$ g2 E; b4 Y% H
& Y9 F" s* u8 ` l) |% @) ], q3 m; N- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)4 s5 i: c7 z0 j- @" y
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)2 v: Y2 ?# d1 S s$ B& H/ E+ [
- (defun c:UU () (command "dim1""update""all"))
0 S) t3 l3 {! u8 x# k6 e- [ - (defun c:ded() (command "dim1""tedit"))' l# m2 u2 e2 I4 Y8 ?# ]7 Y
- (defun c:da () (command "dim1""ali"))
% R2 P5 B. d% z. Z6 ]0 K9 E d) G - (defun c:dll() (command "dim1""l"))/ @0 [' z' }+ `9 t$ r$ t2 q1 [
- (defun c:dan() (command "dim1""an"))
9 @* q2 V5 c* O8 U - (defun c:d1 () (command "dim1""ra")) U: |% [* c1 P. _, P3 h# g( d& |
- (defun c:n () (command "dim1""new"))
" x4 t. U" ~8 u4 `' B - $ l" w; {* H# Z* b+ U% G! Z
- (DEFUN C:PE () (COMMAND "PEDIT"))1 O; C' M' c8 {5 U3 @% p
- (DEFUN C:PL () (COMMAND "PLINE"))
& H0 [+ E+ {- T5 z - (defun c:dd () (command "dist")(princ))) ]$ ]: s; l0 k7 k9 n8 I' W
- (defun c:w () (command "pedit" pause "w" "au")(princ))9 {. s% M" Q( S9 g) I
- (defun c:pg () (command "polygon" "polygon")) a7 e5 _" ]* H2 q3 F& h$ b) T, ?. C6 C
- (defun c:el () (command "ellipse"))
) y3 O+ A0 o2 t: A; t: Q& z - (defun c:xe () (command "explode"))# Q* f" q' O% X
- (defun c:eex () (command "extrude"))7 d# s) s4 H! h) P) F) k9 ~4 Z
- (defun c:xg () (command "xline""a"))
1 ?" Q5 l* T3 ?8 Z, V5 F - (defun c:xh () (command "xline""h"))$ Z! v Z, j3 @! I
- (defun c:xv () (command "xline""v"))
! l" I8 `1 x; q' u/ L4 m
3 O7 v6 t8 v( g8 A# A- (defun c:oc () (command "osnap""cen"))
6 O( d2 J f$ o - (defun c:od () (command "osnap""nod"))
% B- k# [4 I# [/ a; _' Y - (defun c:oe () (command "osnap""end"))
) e8 F# e) Z: p2 Q. m; Q0 { - (defun c:oi () (command "osnap""int"))
& T' V0 p& B1 | - (defun c:or () (command "osnap""per"))
% j$ D$ v- C/ c+ c6 s1 y* N3 Q - (defun c:on () (command "osnap""none"))
# _: L$ h/ p1 S( x/ u, p - (defun c:oq () (command "osnap""qua"))4 \0 a2 c2 B# z& j
- (defun c:om () (command "osnap""mid"))8 D R, v9 F$ b1 W8 J: a8 Q0 ^+ b0 D
- (defun c:ot () (command "osnap""tan"))0 m- F6 [& ^+ \& _) Y9 n
- (defun c:oin () (command "osnap""ins"))
0 v( a- a7 Q; N3 t. _3 a - (defun c:oa () (command "osnap""nea"))
3 H* W! X2 q5 {) j) T7 g& {0 W - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))' k8 I& H" D5 C$ {- ^* q! U3 G( b6 Z
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))3 u/ z. b4 `* b( C
- ;(defun c:nn () (command "new" "y" ))
1 J; G3 r- X& y! `! c. l - 3 r, f6 _' {. n
- (defun c:/ () (command "limits"))7 `: F. d3 Q4 D: v
- (defun c:`1 () (command "region"))
4 \6 V5 e u, Z: [$ ^ - (defun c:`2 () (command "subtract"))
5 W! V1 Y# I/ j9 B$ E; ? - (defun c:`3 () (command "union"))
i& Z: W2 B; l7 f \# @ ~ - (defun c:`4 () (command "intersect"))/ K ]$ y* L" W# n& X4 K, S
- (defun c:`c () (command "cal"))
( V/ i, |8 g" Q- c' ~2 l) U9 w - (defun c:`g () (command "Polygon"))
% d& @7 i* O5 g5 d: x: f0 t* D
( }0 q# [8 K, ^0 B" b& n- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
0 Y+ C+ Z& O: J; N8 n4 H6 X+ W - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ)): u- c- D, V& j- `" @
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)" b. |2 Z- `6 s* k2 n6 O
7 ~) Q p0 Q5 Y7 J+ I7 S- (defun c:ddm () (command "ddlmodes" pause))
) B; u) A; i- o2 _* k
; Q2 T6 H& {2 o7 A4 p6 ]- (defun c:sha () (command "shade" pause))
8 x: Z8 {7 O K2 x. _0 z, S
6 r' v2 g- W( G5 [- (defun c:sr1 () (command "surftab1" "p" "" pause))1 I# {, R* [! B' c
- (defun c:sr2 () (command "surftab2" "p" "" pause))
9 {& z% n7 o$ t. i# @
# _- B3 `$ {" e- ?& O' k" p# U- (defun c:ad () (command "audit""y"))
4 J' ^ {! R# p9 Y( Q l/ d$ N - (defun c:q () (command "quit"))
* r$ l, q, k. Q4 l" J' S2 _ - 5 Y* T) G7 J" @% ^
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))2 o0 U, W- I5 u
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))% a* c0 K: B+ O$ b6 d3 E' v9 y/ J
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))! I% z7 l8 ^6 {' U5 h- @. G
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))8 Q* D. k$ L. _/ e
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
" j, z) Q7 L% f, r, D9 H+ F0 e* p- } - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
3 o( K/ q* n7 n% ~1 J - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
& Z% q: d: a( s l2 B- O - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))* e7 e6 Q+ d0 G" u6 Y
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
; M, o: Y) ?7 } I: x' l/ |0 J
# E' S3 k" ~$ ^. h2 l+ e, t- (defun c:u3 () (command "ucs""3"))& P( c' b# q- z
- (defun c:ue () (command "ucs""o""end"))
, P, l8 A4 w7 i1 ] - (defun c:ui () (command "ucs""o""int"))& ?/ {! B2 W+ ]) N5 `, `
- (defun c:um () (command "ucs""o""mid"))
/ T8 C1 X& [ b8 |1 k, T - (defun c:uc () (command "ucs""o""cen"))
* ]8 l6 [; I5 g! Y - (defun c:uq () (command "ucs""o""qua"))
* P7 c$ h& h/ i# z - (defun c:3s () (command "ucs""3"))& X& ]4 L& j. m' G$ c! ^
- (defun c:sx () (command "ucs""s"))) T% [3 R$ u; V& D' X7 v1 y( N
- (defun c:sf () (command "ucs""o")), t2 B" T: s2 k" D4 W" w
- (defun c:sz () (command "ucs""p"))% h" l8 Z: b* F0 @' V
- (defun c:sr () (command "ucs""r"))0 ?- z7 |# d, F6 C3 I
- (defun c:sw () (command "ucs""w"))- e. P6 F% |6 I3 U+ R
- (defun c:fv () (command "ucs""v"))
1 V. `% w+ ]/ D - (defun c:ux () (command "ucs""x")); A7 E8 C: u- l& L: X
- (defun c:uux () (command "ucs""x""90"))
0 d. f9 C: F3 d' O ~ - (defun c:xxu () (command "ucs""x""-90"))
6 _7 L8 J& R% p. p/ O7 t' w - (defun c:uy () (command "ucs""y"))
# v6 }7 r2 U' f: H3 H$ U: w - (defun c:uuy () (command "ucs""y""90"))
: I; Y6 Y& H! F9 N/ S" [ - (defun c:yyu () (command "ucs""y""-90")) ]9 h5 f! ~1 x2 I
- (defun c:uz () (command "ucs""z"))
# P: ^! I3 E- o( I, I3 t - (defun c:uuz () (command "ucs""z""90"))! e/ ^# f p9 G, w8 l% F# l
- (defun c:zzu () (command "ucs""z""-90"))5 s8 m) s: y' c
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)
# y8 U) p! l' m/ ] - (defun c:ucm () (command "ucsman" ))(princ)& T# ]* L2 ~! E$ u3 M! ]
' k" O; q1 v' a4 v. i- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
; [; t' g- ]- a" r - (defun c:sd () (command "vpoint""_non""1,-1,1"))7 l* N# P4 j; N
- (defun c:se () (command "vpoint""_non""1,1,1"))6 f# w1 b! T& }1 Q! ?
- (defun c:sq () (command "vpoint""_non""-1,1,1")): o2 B: `& ^# r6 ?; {8 R
- (defun c:vc () (command "plan"""))7 s3 }3 }" ^. ]$ E1 N
- (defun c:vd () (command "dview""all"))# ]. N) O: W- S$ ~0 E, l
% Q+ S1 Y: G& A) r5 m% p8 w- (defun c:TT0 () (command "tilemode""0"))) `; k F0 [" K% G% y( J% |$ p' ` }
- (defun c:TT1 () (command "tilemode""1"))
1 ^" J6 ^4 ~ o* u R
' ?. F2 |/ i# [( V' y4 F- (defun c:vt () (command "vpoint""_non""0,0,1"))
' |! o5 n' e8 y3 c9 c' P - (defun c:vb () (command "vpoint""_non""0,0,-1"))6 m2 q- |0 G6 v- A
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
$ u# C6 C& K/ {. W$ r - (defun c:vr () (command "vpoint""_non""1,0,0"))
3 d: S5 K$ A, X" G6 f/ L5 L$ b - (defun c:vf () (command "vpoint""_non""0,-1,0"))
9 A% |4 {+ A" [' M F - (defun c:vk () (command "vpoint""_non""0,1,0"))- s3 v3 \. b( C
- ' y" b& u, p d9 M4 p
- (DEFUN C:MM () (COMMAND "MIRROR"))
0 }0 f. z2 U; s$ G* z2 E - (DEFUN C:MP () (COMMAND "MOVE" "P"))
& v2 f: b, L2 B4 V9 G* y
- i' \* ]' E8 D- (defun c:mee (/ a) V5 ?7 X/ t0 e+ i5 l; P
- (setq a (ssget))(command "move"a"""end"pause"end")). C4 l+ ^8 x! c' c4 ]$ C) r8 o$ v
- (defun c:mc (/ a)) {1 M! `5 g- ~2 }6 r9 `: ~" J
- (setq a (ssget))(command "move"a"""cen"pause"cen")). p5 A1 g- b# e6 K4 q3 n M% |
- (defun c:cc (/ a). p, O C3 h1 ~
- (setq a (ssget))(command "copy"a"""m"))3 N: l! i# f& @' ^( O$ [; c
- (defun c:ce (/ a)4 e9 I8 f/ E8 e4 O3 H
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))
, i4 \( B2 f2 X3 ?7 M - (defun c:cn (/ a)) [- ? J; o7 N9 ^
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen")) \) r U6 { t, B i- C
- (defun c:tl ()(command "trim""l"""))
( V3 h: M" i m4 m: I i - (defun c:tf (/ a)
/ o3 L8 I5 C; A1 A% Q - (setq a (ssget))(command "trim"a"""f"))
) V8 h" a8 Z- |3 |2 K! _ - (defun c:el ()(command "extend""l"""))
8 g, H' f( M% Y3 a$ ^) ]2 q5 Y - (defun c:ef (/ a)
8 g' ?/ P( B! ^) A - (setq a (ssget))(command "extend"a"""f"))7 U3 w8 ]- ?, O6 v% E& ^' w
/ n7 H( u: A/ r2 h- }: X
/ R8 `/ C7 |) B, F5 @- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))1 ^% Y- F3 H8 F8 ]: z
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
; S h7 h6 b) y* Q9 ^ - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))- g1 Q! ~+ j) W1 y. H0 J7 N+ b
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))5 U- @, F9 w* v/ [- E! \
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))5 g3 K, j5 t6 Z/ D" w6 p4 O% T
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
0 ~8 Y# M1 d1 [$ N - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))5 h. }2 t) I/ S, p
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
2 M; {" w# H' f5 B3 n - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))3 j* o$ D2 L4 } T1 W. q- V
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
. I3 ^, m3 b8 X- S. @6 l | - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
) R* y+ l4 H3 y7 C1 }& O - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
" D+ {6 a! w A6 Y2 n& B - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))- L9 x9 Z v* [/ I) M, X1 o
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))4 j$ f3 y* Z1 a/ l. D
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
3 {$ m- k, F9 p2 b - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
2 b/ d" B, ~9 i1 w - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
( w8 g8 m0 P7 r4 H( f, t
. B& ~) q! Z. o' Q8 {- (defun c:mla () (command "-mledit""av"))
& ]# X q5 A$ n G' p& @: d$ R' N, d - (defun c:mlc () (command "-mledit""mc"))
n5 _- W; i& C# x$ N! n) M, { - (defun c:mld () (command "-mledit""dv"))
9 A% X r3 l9 r" N0 k+ d - (defun c:mle () (command "mline""end"pause"end"))
?3 q6 i1 h) O, C$ i& r - (defun c:mli () (command "-mledit""ca""int"pause"int"))
$ w4 v2 S4 }0 F: O0 V7 x - (defun c:mlj () (command "-mledit""cj"))
; W6 ]0 u/ \# `0 y q- R2 ]" _ - (defun c:mlt () (command "-mledit""mt"))+ ]! `' Z' I+ y
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))
3 q& ^1 O# C1 S2 e6 @ - (defun c:mlw () (command "-mledit""wa"))5 k/ l( \* B( s) e' ]8 g
- / r0 g: l1 u5 M8 q" @, x: k
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))% R$ E# H- c7 F( [0 V! c. Q
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))& W3 q0 [& T( [+ K
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))7 H0 T! k6 E8 I6 E
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
6 ]6 j* j7 f2 s1 M' i - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))* U8 |) Z* ^6 M+ A+ q0 L5 S
- / q/ }% P3 E% @9 V5 m; [8 x
- (defun c:p0 () (command "pline""""w""0""0"))+ W0 ~0 b4 Q$ z1 c$ h3 M, K; {
- (defun c:ot () (command "offset""t"))
9 R( d3 [( A4 E9 N; M: u, D+ W - (defun c:t () (command "mtext"pause"j""bl""h"pause))9 j8 d* d0 y: c" ]3 g6 X
- (defun c:uo () (command "ucs""ob"pause))
% K9 S2 m& X& X0 q7 ~ - (defun c:f0 () (command "fillet""r""0"))
/ y3 y/ z$ D, ]7 R7 @6 l, Z8 G - (defun c:fr () (command "fillet""r")) g. T6 `8 i! C/ N
% Z$ P1 P$ |8 R8 ?: @5 T- ;CHAMFER
; l! W* G) ]; @$ N) _; x) ~ - (defun c:cf () (command "chamfer"))9 _% M2 x( K/ |1 h/ y
- (defun c:cfd () (command "chamfer" "d"))
+ N. [ S5 ~2 l! d4 n1 s, h - (defun c:cf0 () (command "chamfer" "d" "0" ""))0 m2 l, ~( X/ M* B2 F# c3 z" i
- 9 V& {" C, W" F; A. _
- ;FILLET3 r8 Q# K) n- x$ F% C6 X
- (defun c:f () (command "fillet"))
+ F' \+ u6 f- m c: B J% w8 f- x+ J - (defun c:fr () (command "fillet" "r")), V0 w, l7 c4 x) H% t- R
- (defun c:f0 () (command "fillet" "r" "0"))! D2 \! ~* T0 B: e1 w
. E0 |/ Z% Q, A# F3 z5 A0 T- (defun c:OO () (command "oops"))6 R, }" ?; J, ^$ E4 `) G
- (defun c:dln () (command "dimlinear"))
: E# b/ e3 Z" T* c1 g, q; w - (defun c:dan () (command "dimaligned"))# V# V2 K! H @8 h- }6 v
- (defun c:ddc () (command "dimcontinue"))# V, y. E+ i: P# B1 R: ?" T
- $ X6 h/ w" {* }1 D
- (defun c:sc () (command "scale" "auto"))
, R2 K5 _ H8 r8 w+ a5 f - (DEFUN C:XO () (COMMAND "snapang")): v9 f- d$ ^. K( b, G ^* {, Q4 e5 s
- (defun c:cc (/ a)% U4 P+ E/ A6 J* ?. h7 ?
- (setq a (ssget))(command "copy"a"""m"))& `. @7 x N ^% l8 D
0 H7 ]* k& _- Q' A- (defun c:PJ (/ a)7 A2 a' O: X; I/ O
- (setq a (ssget))(command "pedit"a"""j""all""y"))
: }7 k I$ v- |: t - (defun c:JJ (/ a)
P" s. S+ { B: X3 _$ o - (setq a (ssget))(command "pedit"a"""j""y"))
9 J8 ~$ p* e; r, I* L - (defun c:TN (/ a)3 x9 D+ W2 S( k* l
- (setq a (ssget))(command "change"a"""p""T")). L) X* m2 c4 y9 r4 T
4 R+ S, U2 \: V, c$ V2 E3 k- 1 s$ d( e3 v+ X# r
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
9 w: ]7 @- u, y5 [9 {/ ]
- k, v6 M @" c; G8 s- (defun C:IB ()(setvar"cmdecho"1)3 c8 a) N3 P" a( P
- (setq pt(cadr(entsel"\nSelect Block:")))8 ^+ @; M9 ^" W/ z; d
- (setq e1(ssget pt)) 1 g# k/ s! K- c0 J0 m; W7 r0 ]
- (setq e2 (entget (ssname e1 0)))
* m P# @. \* ?) ?0 `( L. w1 d - (setq blname (cdr(assoc 2 e2)))
5 U6 u; Y2 p* P( u0 _9 O% d- D4 t4 v - (setq oer *error* *error* err2)(command ".insert" blname))' F8 |, z2 \" z( G- g& K
- 0 A5 @0 V& U/ j7 N' O, G5 M3 ]
- (defun c:II ()( z. h7 m, Y+ x. [$ K. ?
- (setvar "cmdecho" 0)
* I* M& C( ]! } - (setq olderr *error* *error* myerror)
1 T$ @0 K. O4 @' S% ?$ v C - (prompt "\nSelect objects: ")
6 _, S) `& m, a" c - (command "select" "au" pause)( C" H7 { N' J- r u
- (setq sstxt (ssget "p")
+ E. x$ B8 L# d7 C( j& F - sslen (sslength sstxt)
; I% C$ |; R( [- `" S/ c - ctr 01 a t; q |- I1 z
- )( d6 r0 S% U* ?0 }% O7 y I! M
- (command ".undo" "mark")2 X% M% X. t4 g" q
- (while (< ctr sslen)& h6 \7 K f3 J% q
- (setq listxt (entget (ssname sstxt ctr))1 V) ]' A* T) G2 y W8 b
- txttxt (cdr (assoc 1 listxt))
) i% u1 E4 o7 }# T) M, {* P/ s - enttxt (cdr (assoc 0 listxt))
) F4 J+ ~: ^- {7 ] - )
3 g- _* W8 R. g+ s - (if (= enttxt "TEXT")
3 q* r" u2 y: M5 z - (progn
% @7 y# H+ @# K4 a6 [6 v8 S3 z9 I - (setq testxt (substr txttxt 1 3)), s2 R' u" ~/ r! s8 b' w
- (if (or (= testxt "%%C") (= testxt "%%C"))
8 F/ G6 p) t2 X0 X7 |# }' K0 K - (setq newtxt (substr txttxt 4))" W+ R+ K! n+ R
- (setq newtxt (strcat "%%C" txttxt))
! k' R2 M$ ?; C - )7 V3 [1 P, {( B9 A' p7 T; ^8 B( [+ f
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
/ o/ s$ x7 ^4 }3 U( S( J9 i - (entmod listxt)$ q0 }' d' `8 M" z- G
- )+ ^2 n, L& y1 u0 X6 |& D
- )
$ d8 D! V E- R0 T$ C/ b- `7 F - (setq ctr (1+ ctr))
! Q) B1 K) V% @, c# F) I - )
& l/ ?5 t4 {# }0 A - (setq *error* olderr), E: Y# a2 b Y( ~ n2 G c" H0 Y
- (setvar "cmdecho" 1)
! h1 H/ a/ X; _- {1 q - (princ)
# [+ G* Z# H$ ` C2 N* b2 ~ - )
- \7 ?# T3 I% F0 V" m8 P) c/ m p, z - % [6 f# C' i7 `) j7 B- R
- (defun c:DG ()
" r/ D4 H! p6 u" o' c8 h - (setvar "cmdecho" 0)
7 [7 K+ v! F) ` G- Q0 D4 R - (setq olderr *error* *error* myerror), o; J7 X( U2 a. Y- ]
- (prompt "\nSelect objects: ")9 f S3 j4 a' S+ r7 H0 I
- (command "select" "au" pause)
/ O) L3 d3 L' z0 n - (setq sstxt (ssget "p")
- Z' Z8 e# ~- A- `5 b0 A% u9 L( T - sslen (sslength sstxt)1 Q. ?# z6 K- F {/ n9 J0 j; ?
- ctr 0
! [- A% y9 E& a! |& _ - )
4 K1 s* e; K! p+ q - (command ".undo" "mark")
$ W' q. v& E: n! K1 ]1 I1 ] - (while (< ctr sslen)
* j1 r$ {5 {$ s/ ?9 Z - (setq listxt (entget (ssname sstxt ctr))
* i& n+ Z' i, X! J' L9 L - txttxt (cdr (assoc 1 listxt))6 ?$ ]9 U- f% C. A$ Z% c8 A4 Z& Y
- enttxt (cdr (assoc 0 listxt))4 {. L0 B( L5 L* F
- )# u r) L/ J+ K* W; g& a0 G6 w
- (if (= enttxt "TEXT")
' d/ y3 C/ N3 s! E - (progn
( L) ]( [: i# a& m! R - (setq testxt (substr txttxt 1 3))! X7 k# r3 x2 D' K8 ^
- (if (or (= testxt "%%d") (= testxt "%%d"))
5 e, g7 @* R( G - (setq newtxt (substr txttxt 4))5 g6 o7 [% V3 O+ `
- (setq newtxt (strcat txttxt "%%dC" ))8 B2 X, L: ~; O2 v3 Z$ [4 F; Z( \
- )
5 A) l$ a! Y$ y3 l* u - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
. P) B1 [( @6 _ N - (entmod listxt)
% z8 F! I9 k! ^$ o6 I) ~7 n - )
7 y9 s; k X! c3 z8 A6 \2 b - )+ D: ^* D/ C) ~* F
- (setq ctr (1+ ctr))
8 K; o9 l; u/ ~3 F - )+ U1 t3 w: Y' @+ L v
- (setq *error* olderr)
9 v( w; I8 n8 s v2 O) t8 @ - (setvar "cmdecho" 1)
6 W/ ~' s0 Y2 p+ O: q% R5 P - (princ)+ ?+ T, ^( [1 c5 t* i6 ?: A5 \$ |8 L
- )7 c3 y/ Q4 k' u# q v# N
; I* ]& } I5 g7 n& T% u6 N- (defun c:PI ()
: M" W. K: P$ e5 v6 h7 k7 b; R - (setvar "cmdecho" 0)0 j0 B" C& b3 ~7 G
- (setq olderr *error* *error* myerror)
- ~0 C, Y; r: a8 f - (prompt "\nSelect objects: ")8 m0 o2 ?% c( P$ \0 O! q1 N
- (command "select" "au" pause)
1 q4 C, L7 R* z* m - (setq sstxt (ssget "p"): M4 e1 }+ ^! E+ B L3 j+ W
- sslen (sslength sstxt)0 V/ J3 H, n6 a
- ctr 0* s: w$ ~" V6 ~5 | Q- V: C
- )+ f" G0 |* B2 Y
- (command ".undo" "mark")
3 q9 P" C9 y6 E- s/ h* G5 ]7 P - (while (< ctr sslen)
+ |8 S( Z/ x5 N2 k; B3 W G" N - (setq listxt (entget (ssname sstxt ctr))
5 ^ @ ?) q {0 M: m7 I) j" q - txttxt (cdr (assoc 1 listxt))9 v7 O3 K; O& t$ S1 ?5 z
- enttxt (cdr (assoc 0 listxt))" l' b* x' g/ U! R/ u; p) x
- )
$ T. S% [+ G& k x# N3 T" f - (if (= enttxt "TEXT")9 T+ b9 n+ f1 t" a3 V' j
- (progn
u7 N1 _8 K0 D% }2 @8 w4 g" R - (setq testxt (substr txttxt 1 3))
0 ?2 O4 i; T" y, J - (if (or (= testxt "%%p") (= testxt "%%p"))
8 s' C* S; b; z, q5 a1 W3 r6 W- I - (setq newtxt (substr txttxt 4))
! r& J( W- t' ]/ c: q+ j* f/ L# M3 f - (setq newtxt (strcat "%%p" txttxt))$ L' w4 Z" z9 _3 U7 N7 C
- )
0 v, J( U& q v; u4 d - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)) d. c7 H: ~7 w y% x4 ~
- (entmod listxt)
+ C; w$ y: S- k) T - )
$ |* I3 D1 S% t! F0 L. N, M - ) {8 v0 F3 z& E# I1 v5 Z
- (setq ctr (1+ ctr))
( E3 M! P k. ]. F6 N - )
6 E2 E, X H2 j7 V7 _2 L( k - (setq *error* olderr)
. l+ A* @; M& l) Y" y+ S) n0 G2 { - (setvar "cmdecho" 1)
* Y. s4 ?. J0 w- U - (princ)
2 y. [2 ^6 d9 K3 O - )
, G! L |) h; `1 V% J I" M" S - 5 W# R! W$ b! }4 K: f' ]: k8 q2 @5 F
- (Defun c:CB (/ a)4 e& N: {+ t8 u( N7 h/ C
- (setq olderr *error* *error* myerror)
0 W- S Q! _* v7 S# \ - (setq ocmd (getvar "cmdecho"))
i6 ]# b k; d6 ?% Q& n - (setq oblp (getvar "blipmode"))
/ Q7 \8 `$ k( A: j2 V! T1 d% ^/ f - (setvar "cmdecho" 0)
& J+ W; s. c6 E - (setq a (ssget))# Y% E- G4 d, e" n; U" Y
- (command "CHPROP" a "" "C" "bylayer" "")
5 h5 z& {7 n# {0 M/ ` - (setvar "cmdecho" ocmd)( U! K) X7 l+ S8 z
- (setvar "blipmode" oblp)0 U0 I! ?& M, Q' ?& r
- (setq *error* olderr)
% G" h* u9 s8 @$ q, o" D( Z4 ^ - (princ), |, l% a/ ?4 ^, ~8 f8 `
- ), K3 J" s# d! s& U# a- u
7 T/ W4 I9 W$ @: ~2 w6 q- (defun c:LCC (/ co43 obj23 la23)/ z" M7 A6 ]. p ^6 [7 v
- (setvar "cmdecho" 0)
. a+ c0 d! G# F2 M% _7 `, p - (setq co43 (getstring "\nNew color : "))
5 ]) D4 E$ V' C - (setq obj23 (car (entsel "\nPick object on desired layer: ")))
3 r, L4 |0 O' ?# G/ E0 E* r2 w - (if obj23 (progn% }- w' V2 n# ~$ f- i: n) ~
- (setq obj23 (entget obj23))2 u0 b \3 D+ w: T- a5 _
- (setq la23 (cdr (assoc 8 obj23))); L; _0 I8 @0 b+ G& F$ Q1 w- `
- (command "layer" "c" co43 la23 "")
/ c+ C: \7 `" W7 w - )8 l2 ~% ^. d3 ]0 W. u( }* N7 R
- )
[ I+ P/ [: v6 D& Q* p6 ~$ Q - (prompt (strcat "\nLayer has changed..." la23))
- l( K) i! o8 N# Z% T - (setvar "cmdecho" 1): Q% Q% ]7 q9 [
- (princ)9 A1 T3 N& L8 _ |6 R+ ~
- )
/ k2 Y8 M" {3 X" @& ] - / P) z* B) L% R+ |4 |' e0 M; H4 ^
- (Defun c:RP (/ a)* _+ X [! h/ C, g- k
- (setq olderr *error* *error* myerror)
7 @2 j5 |, n" t, B4 z - (setq ocmd (getvar "cmdecho"))# N- h! w7 C2 G- F
- (setq oblp (getvar "blipmode"))
) R+ M1 c5 }- {% ?8 g - (setvar "cmdecho" 0)
7 g" E4 j. \7 W0 ^" O - (prompt (strcat "\nUSE: Delete object(s) belonging to"
, }9 h$ ] I/ s. `2 ^0 |0 I2 e - " the layer of the entity picked...!"))
6 M6 i0 p+ u4 s - (setq a (entsel "\nPick the entity with the desired layer to delete: "))# n' x0 E; `" z, c) P' J) t. }
- (if (/= a nil)
6 v* E4 `. y/ ]" `9 s" ? - (progn (setq a (cdr (assoc 8 (entget (car a )))))1 z& O' N. S; l
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
8 f' E" A! [+ J - (prompt "\nNo entity selected!"))4 I8 w0 b6 F# p6 p$ o b
- (setvar "cmdecho" ocmd)
) x; X. B* ^. Q9 M; \7 a - (setvar "blipmode" oblp)
! q& R9 Q0 g& u$ g' G6 m - (setq *error* olderr)# o4 \* h5 }4 I
- (princ)- Z* E$ ^& ~0 e1 N1 n, F: m
- )
6 H. Q% b; M% ] - . ~( W3 |" ]: O+ ~
- (DEFUN C:WL(/ SSET NET SSL M)
. h/ O: ~. A- T# o - (PRINC "\nSelect lines :")
/ g6 {* k; Y) r' N - (SETQ SSET (SSGET)): W3 y# d5 Q/ j! D! Z1 n8 }% T
- (IF (/= NIL SSET) (PROGN
/ r$ O6 [9 R2 a% O' H" o8 e7 O - (SETQ SSL (SSLENGTH SSET))
- }3 {1 p& Y0 L* |# K( a7 C: l0 I - (INITGET 4)
7 H; h. e5 A8 p- ?' y - (SETQ NET (GETREAL "New width : "))
1 C" q3 C5 t# U: ~/ X- G - (IF (/= NIL NET)
6 N4 [5 ^/ G3 M- y r5 X - (WHILE (> SSL 0)
+ e* v) l: @4 h" c. ?7 }" A, m; M - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))4 A [( ^" `) a0 w; S
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
5 }0 r n; i3 h! D3 r5 e - (COMMAND "PEDIT" M "Y" "W" NET "")
) M, F& m& T7 Z0 v5 G - ) ) x8 r$ I) E- e0 k5 Y# z1 R
- )
; w. A% `( H7 t% r; @ - )))$ h8 B4 T$ E/ K8 x- ~
- (PRINC)9 g0 w# K! n z2 {) F
- )
% x& u1 u0 `- q: H" G; s - & Y/ o( ]* m6 \$ {
- (defun C:MML ()
k: [! \. b- M/ \# i( S- R5 _! s - (princ "\nSelect objects to move to another Layer.")
; P' g' m& _( J) J, z C4 N - (setq ss (ssget))
# l; l9 Z& w9 s0 F$ E6 |( Z% M }1 B- y - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
5 ?, U" X- q7 Q" K" ]9 H5 c, F - (setq counter 0)# D' h) i! _6 w' I0 b
- (prompt "Moving to layer.....")(princ ul1)
9 B3 s! g0 M8 N. T E. Q - (setq e (ssname ss counter)): y `* w+ r/ C. R; m: P
- (setq l (cdr (assoc 8 (entget e))))
- z- [' H% F% f2 C - (setq S (ssget "X" (list (cons 8 l))))" ]! D1 F1 k) R" W
- (command "CHANGE" ss "" "P" "LA" UL1 "")& ]( [2 J# A2 A
- (setq counter (+ counter 1))
- B1 a% A/ v/ ~ - (princ)- ]3 n5 h: g: [/ z
- ) & }( d7 e% D$ j3 b" e4 S
& r8 i- Z% |; ]# n1 j! n9 i) E- ;;; ================================ GHI CHU ============================
% D8 ` f. d% s1 l, n - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
2 h8 `9 M( v7 w. o) L# ]/ ]* @ - ;;; =======================Thuong Dung Font Romant.vnh===================5 \9 o# O2 \ [; u/ }* \8 R
- * Q( f% y% U& P7 C
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)! k5 H4 f# _% J/ [. E3 M% u
- (setq oer *error* *error* err2)
9 @' Q2 {1 ~1 o& _3 ?, N9 r% e% p7 U - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
4 j& S0 h t t9 l4 Y1 ] - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
' x5 n$ { @2 J - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p")), |2 H2 @% X7 W5 a" v7 o
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))7 Y% l5 y; F. s T3 b3 G# G0 c
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
. o6 z* |0 U# j* u! @3 z' B4 h, O - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))- X7 @5 c! X6 ?
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
% b* b5 A' j+ J# {+ z' Z& ~7 R - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))% ]# [1 z3 n V' V) f5 @
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
1 I! g! U3 W% F2 [; s# U( x - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))' D5 p; M" U& K4 W5 R: h$ N! f3 {
7 x. v& u* n; ?. |. b' M# r- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
3 g" |' c# _) @0 _3 m* d - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
3 E# l \+ d4 I$ r2 z - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
9 t2 \1 z2 S8 L) a; Y, E% N - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))" g( L) ^2 g$ |: v, J
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
( h3 K# K; @, e. O* ` - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
* n- D6 U) m$ b* G( [ - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
. }8 u9 i- b6 s4 q1 X3 U) G, d - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
. u4 b1 p7 m D1 e2 o* z - : Z p! d2 w( a! h0 i( @
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))5 ?/ p# G* G/ L: T* t
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))( E( D- h3 q. w& Y2 r% Q! Z
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))+ k) @9 R5 N5 q. B9 B
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))) V' {1 }- ?' |/ Y
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))5 V; D' |! H: g. I6 }
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))$ ~: U1 f; _ R5 t2 T
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
- R3 O: X z4 [# F# V- M. c4 |3 L( J - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))$ K4 F+ L. x8 x5 t7 t) h, B
- (setq pta (getpoint% M% l# L) r4 O6 i
- "\nPick first corner. : "))' n* K/ g* ^) c$ U/ n* o& i
- (setq ptb (getcorner pta
; r* F3 W9 i; h! O @3 ` - "\nPick second corner. : "))4 s# t3 u$ f9 x" l% d8 z
- (setq ptc (list (car ptb)(cadr pta)))5 S1 u6 ]! n+ g1 r9 S+ [
- (setq ptd (list (car pta)(cadr ptb)))' U/ {0 a( b2 A) o9 J
- (setq ang (angle pta ptb))* O& [# ^( b5 i/ S* C$ H0 j" \6 x
- (setq d1 (/(distance pta ptb) 2))( ?4 Q6 j# H X# i: d, t
- (setq cp (polar pta (- ang (dtr 0)) d1))0 n. C% A! l8 ~: u0 S/ i! g
- (setq X (distance pta ptc))
( N* f& [3 _5 L) {- s - (setq Y (distance pta ptd))
/ D/ J% L6 F- e1 Q* k$ `5 b z - (setq X1 (rtos x 2 1)) N B4 M+ V. H. A; e3 K6 t
- (setq Y1 (rtos y 2 1))/ u1 z. t+ B( u. m4 N* I" c
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
2 s3 m* c! x; @- S: ^) e - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
8 ^' s2 ]8 d: P; } - (defun dtr (angg)7 _* [) N2 T5 X5 G' ~. h% Y# D
- (* pi (/ angg 180.0)))
1 Z- T7 g: }6 ?
' T; O. V# D% X+ J/ E* W$ h: `- (defun c:WS (/ pta ptb rmsz pl1)
4 N5 s t& ^$ b& B: C - (setq oer *error* *error* err2)1 A5 y5 d6 x7 s! d j0 S
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")8 D/ H2 d D& y( D
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective.")). Y4 f! B. D' k0 m& u/ ?
- ( ] A5 x8 c4 I3 ]# a$ o! t# t
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
+ H3 f+ X2 Q6 ?, u E# \ - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))2 h3 _& H7 a5 z. }. c. v; t/ g
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))6 C, H4 t# o7 ?- Q1 ^, b
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))9 t- Z0 B. X0 a7 f. ^ Q/ K
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
* s D/ A9 r4 j- r/ L8 y: Q - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))1 W# r1 g, m, c; Z& z0 W' y# k
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
/ `8 d6 {1 A/ N3 k+ j$ u5 I - 8 r8 r) L+ j* ~) M- Z
- (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"))
: I& k& I" i4 X8 K5 \ v- O - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
, s0 Q* P5 M& `3 \% T - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
E4 c; `8 k1 \) N3 V- y - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
2 j6 k" x) H$ [. U9 U8 b" M - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
# h9 e; Q, g: y+ I% N - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100"))
# S4 ?; \% L5 H0 ^% [. v - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
, q# f- L4 O9 ?* | - (setq pta (getpoint
4 G( r8 M' @" O* ~+ \6 z* \ - "\nPick first corner. : "))
6 ^% Y, @" m/ K/ D7 f+ H - (setq ptb (getcorner pta
7 D1 S, ]2 ~0 P% ? - "\nPick second corner. : "))
# _' {7 ^; L# g9 J9 y+ g. A - (setq ptc (list (car ptb)(cadr pta)))
8 y" ]% I% T/ K3 v# x$ G8 V: f& z) C - (setq ptd (list (car pta)(cadr ptb)))
9 a4 Z7 h8 n u. t% L8 i - (setq ang (angle pta ptb))
# H0 P! x' h/ B v+ D - (setq d1 (/(distance pta ptb) 2))) @" \. B H$ ^7 J/ G' I
- (setq cp (polar pta (- ang (dtr 0)) d1))$ S0 o7 b5 m+ v6 j; s9 I& a; B8 E) u
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
; h& |8 d; _* F% @5 E( z$ R' @ - (defun dtr (angg)) P. d% ~3 r9 p: x0 j
- (* pi (/ angg 180.0)))/ Z- U% w1 D1 d: F/ W( l! f5 u
- 9 \' h7 x$ {: k, J- D3 G
- ;;; ================================ GHI CHU ============================3 b. l) f$ [& {" V4 B8 `6 n
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
& H5 L( U0 [. B, y - ;;; =======================Thuong Dung Font Romant.vnh===================
( Z8 u- i/ @8 @3 b8 @
9 i, F y4 k O+ n4 M- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)" N4 V8 ?; n8 \9 C* j% y6 l
- (setq oer *error* *error* err2)) H2 d8 ?+ _8 k% p# |
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
1 E* H# _8 c) d( L - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
4 U6 N) G9 T; H+ Y' X; P - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))8 B; g: ^6 o) ], ~: p7 U
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))8 s& a6 _1 Y$ {9 Q
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))4 G: O1 O. d$ w0 Z$ V
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
& y) c1 C5 u7 o. D. A, b; c - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
( ?7 p8 w- z n - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))1 a9 ?3 Y1 h' g- U) k7 }) C
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))- y: D! i- I/ p U( Z) V
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
7 t" U! P1 `) O2 t% j2 o4 D - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))) d" i9 U( R" Z) G" S
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))) l$ h( x: x0 Z `6 U, ?( D
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
8 u( i. @- ^( P+ W( w - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc")). J# e- h$ w. Y! r
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))" Q x+ @% B4 t2 y4 @" x* n5 N3 f( J
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))- K; ^) c, k, [ ~3 |( ?3 h
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))* k: J- U7 l$ u+ {) V. z
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
- s% ^8 S0 g9 C% c - (setq pta (getpoint# i M& X. y3 l- s4 }* {. k8 ^
- "\nPick first corner. : "))3 @0 S( j8 {" O- w& _* N% R9 t2 k& E
- (setq ptb (getcorner pta% `( ~* S8 u4 \
- "\nPick second corner. : "))1 d. E7 }7 `, d; X
- (setq ptc (list (car ptb)(cadr pta)))
- K6 X3 ]4 w8 [( h - (setq ptd (list (car pta)(cadr ptb)))
. _# L& \2 R( u) @ S' K - (setq ang (angle pta ptb))* ~' U# W. M' ~: Z$ _
- (setq d1 (/(distance pta ptb) 2))
, A) ?: U+ U9 L# ^5 M0 }) W - (setq cp (polar pta (- ang (dtr 0)) d1))
8 A1 a2 a @0 k4 P7 O3 G - (setq X (distance pta ptc))
6 H: {# v) U: L; h0 F - (setq Y (distance pta ptd))2 x. i! g7 V& |9 _
- (setq X1 (rtos x 2 1))
5 T& u1 |, Z2 ` \+ {+ B1 V - (setq Y1 (rtos y 2 1))1 d9 @: P- J$ y) g9 V
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))3 d0 N5 |8 t/ W$ L
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
. k# K o! D' R& g$ W1 T) R - (defun dtr (angg), b: u ~! D2 W- m* |
- (* pi (/ angg 180.0)))
9 l- B; j# u! v0 t4 J7 c- l
4 ~4 z4 l2 K. I) y" [' c) E* C0 H- ;;; ================================ GHI CHU ============================
* J( O# }3 g! j5 t( r# Z6 m1 s - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
; @& w+ X1 u9 _! @; b - ;;; =======================Thuong Dung Font Romant.vnh===================7 @7 w& {+ S- G- V, _$ h
- * B- _" n2 l0 I$ l8 {6 Z
- (defun c:GS (/ a b c d)7 _, s9 T$ R; ]. l) x9 E1 |- b
- (graphscr)
7 m" Y- N m! f3 d) R0 O' ~% i - (prompt "\nSelect text to set style....")4 e. D1 [3 n2 ^$ l
- (setq a (entsel))+ }+ d( V; C) T" B4 [
- (setq b (entget (car a))): j9 S! k) ]9 o4 V7 l* ?6 k3 x1 u
- (setq c (cdr (assoc 7 b))): z) F; ^' t) \' c- t
- (setq d (cdr (assoc 40 b)))' a" |) j. ^2 F2 n* P1 J+ h
- (command "style" c "" d "" "" "" ""))
5 `- C% S% f, a+ H - (princ "\nType GS to set text style.")
* H) s5 h6 p8 k+ _5 \1 t - 0 {! F) v7 k5 B# Q
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
) {% G$ K- ]% }* @; {1 k - (setq olderr *error* *error* myerror)
+ A) {( \& H+ M8 S3 J - (setq ocmd (getvar "cmdecho"))
' H9 r8 a8 |5 ^( T - (setq oblp (getvar "blipmode"))
8 R" E; s: ~2 e8 ]- `0 g - (setvar "cmdecho" 0)
) b6 K' D4 L# ?; \2 Z4 y& A% I - (initget 1) ;3D point can't be null
2 [- J: q, j6 n+ K( y' U/ u! v% Q - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))/ [5 a$ R; L3 j3 F! E* I* I6 A
- (setvar "ORTHOMODE" 1)' ^% D4 O7 _1 T: e! i, m
- (initget 7) ;Length can't be 0, neg, or null
' Y, m) A" P- L) a3 C8 ]; r" b - (Setq l (getdist pt1 "\nLength: "))! S* A- r5 {/ l
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
! m; |# g8 K1 P, T5 J* s0 W - (grdraw pt1 pt2 2)) P7 m- ?- r; s
- (initget 7 "Square") ;Width can't be 0, neg, or null
8 M0 d7 h8 ?! N& ` - (setq w (getdist pt1 "\nSquare/<Width>: "))/ z2 R% C6 X0 F3 V
- (if (= w "Square") $ L# A, f4 M# ?$ r' I
- (setq w l)
( x- E- X3 ?# ~( M - )
* ?' _3 }, N, \( b- f - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
3 _, @1 E( ?- X0 i - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))8 `8 T' R1 i" ?
- (grdraw pt2 pt3 2)! Q& x6 {: X, d# M
- (grdraw pt3 pt4 2)
8 p' m. i y* O9 W) D3 ~; A( g' E - (grdraw pt4 pt1 2)2 }% u2 d7 A9 T) Y. [0 r6 P3 T
- (setvar "ORTHOMODE" 0); ^# h& W$ ]6 Z
- (command "pline" pt1 pt2 pt3 pt4 "close")) e7 T( D2 ?% ` c& f) }. O4 c
- (setvar "cmdecho" ocmd)1 G, _3 A4 i/ i" X8 @( J
- (setvar "blipmode" oblp)
& m+ I0 T) ^$ w6 i* Q - (setq *error* olderr) ; Restore old *error* handler$ @7 k- o) U- b$ v' m& A
- (princ)4 Q2 M( m9 `9 I& }0 v d
- )4 S" F4 k6 R, ?% a A
- ; E/ }! [( }# S9 f+ x: W
- (defun c:SG (/ ent pt1 pt2 ang)
8 R" y* I! H$ A& c - (setq cmd (getvar "cmdecho"))
/ w! {4 d$ f6 n+ v K& D [5 h/ h - (setvar "cmdecho" 1); ^/ f7 K! j ?3 H) e8 {: |
- (prompt (strcat"\nSnap angle will be set to angle of line"))4 J; ~7 q& n; L+ O+ g
- (setq ent (entget (car (entsel))))% a7 A" A( u7 d: b6 D
- (setq pt1 (cdr (assoc 10 ent)))
' v4 k' I6 ? J6 A+ H/ b - (setq pt2 (cdr (assoc 11 ent)))
6 n3 v/ t6 I, i. o8 Z - (setq ang (angle pt1 pt2))9 d5 A' y/ |" k2 g5 W+ G
- (setq ang (/ (* ang 180.0) pi)), {9 W4 J$ m7 H
- (setvar "cmdecho" 0)
- T: r, }: P+ ~2 H# D - (command "setvar" "snapang" ang)- Q. ~* f, P6 D( r9 i6 ^3 f
- (setvar "cmdecho" cmd)( h. v+ ?( g2 I8 Y' f! g
- )
3 [2 v( V) [$ l4 Q
2 E1 ~, |2 \) ^; Y; w% ?- (defun C:TG ()
; n1 ?# j( B1 J, q. @& J; u+ p& A - (initget "Increase New")
) \/ X' n- [: t% n* q7 |9 N% H4 Z - (setq ans (getkword "Increase/<New>: "))7 l% O3 d7 ~# t9 [
- (modang)( H7 C+ X* |& `2 @5 X; V% @
- )
4 o& Q. Q4 U, C/ @0 y - (defun modang (/ ang ss ca e na ssl)1 i% N2 ] A6 g5 v3 Z" J
- (if (= ans "Increase")
; N( k/ [) P- l0 B - (princ "\nIncrease angle for text by: ")
6 ?$ W4 G0 k- q0 e/ z - (princ "\nNew angle for text: ")
* u( Z1 j4 C, I: U7 | - )
+ T7 ~7 y/ F9 U! t% X3 ^- s z - (setq ang (getreal))
* [2 Q9 U) ^$ j2 Z+ X! Q - (setq ang (* (/ ang 180) pi))8 f! n! o3 R9 J
- (setq ss (ssget))- _6 ]' O6 _3 h4 R3 A* G
- (setq ca 0 ssl (sslength ss))
9 V! l7 {( U n3 q. y9 H - (while (< ca ssl)2 X; M6 I9 v* x5 W$ z% v+ `
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))5 l/ ]& |3 a: R: ?& l
- (progn5 ~# X( ^5 p$ @7 r
- (if (= ans "Increase"); d% O2 T, g2 ?" D$ A; e
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))# b" W/ i9 C$ T- \, o# A
- (setq na (cons 50 ang))
- u6 u1 S" k. C# Y! g8 V+ a, @ - )
! h3 @& U( d! j/ @# Y. B - (setq e (subst na (assoc 50 e) e))8 l1 U7 a% n4 `, D* Q
- (entmod e)
8 {" A2 `: ~" `# ~ - (setq ca (1+ ca))* x1 |3 s/ {6 ^7 v7 }+ R W3 V
- )
0 a+ V+ Y1 O2 [ - )
, C9 n0 l0 L8 ?6 O. e# Q) ?5 j - )- W2 m- h/ S' c& N5 ^/ v
- (terpri)
7 j- m) B( f2 s2 h& F9 D6 |% b) f - )- d, p4 A% n7 r
- 8 D8 H$ o, b6 q# ]
- " J" t! F6 S- k) I, T$ E
- (defun c:WL ()
J X ?3 `) j: D7 O9 F& p - (setvar "cmdecho" 0); r( x' b% t# B. ~% X) s" {8 d0 ?
- (setq a 1)- y" h: _+ F1 @# q& z( ?
- (prompt "\nSelect Polylines to change: ")
) k9 J1 D) b6 J M4 U! r) C$ v - (while (/= a nil)
/ k. Z; ~3 m% t8 E, I5 { - (progn5 O+ X, x" ~! L$ ]0 O* A+ I! P0 K
- (setq a (entsel))
- k: O5 v2 b! b& F) X; z - (if (/= a nil)& [! y, H1 H2 C+ o% @+ P$ ~
- (progn
7 a7 t& F5 o% ?' y) \7 @0 Z - (setq b (entget (car a)))
+ g8 C- X$ i+ C$ P - (setq c (cdr (assoc 40 b)))4 x" [8 H& m1 r$ \
- (princ c)
( i/ E& E- v$ f, @ - (command "pedit"a"w""lw""")
4 l% y; `1 H7 \( B4 z - ))))
. x$ ~# ~2 Y: h/ h3 K# y) k4 u - (princ)
8 ]3 }- b! X1 U$ v" o) w - )2 I6 w& u4 W: B- I7 ^5 b" I$ b
& j7 ?, m6 H3 d4 u. n7 h6 i- ;;; ================================ TEXT FIT ============================; J/ w' r# @3 g2 ~. k$ g
! ~$ M$ C7 h; Y9 i- (Defun c:FT ( ). n/ _$ _) H( j/ M# S
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
4 |6 s- D+ @7 z/ [( p' O! O - (Defun LL-xyz (arg) (CAR (TextBox arg)) )& e% _9 q# y A; q1 ?
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
?! q) I: K) q" z \ - (Defun LL-y (arg) (CADAR (TextBox arg)) )
( U! ~6 P# f5 F - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )8 P( p8 j+ x- r) E Q
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
) k0 v% u, t: t, O - Textent (If ename (EntGet ename)) ) 5 U1 f6 g# M: A6 h! L6 o" @# X- ^
- (If (= (CDR (Assoc 0 textent)) "TEXT"); ]: E! g0 X3 n5 N* W, }/ O" d
- (Progn (initget 0 "Start")
/ K9 R- Q0 R' y6 O- n: l - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
G& ~( |4 ^1 n3 O& G! H - (setsnapang Textent) ;set snap along text entity! z3 j& h( m& e6 B/ W% n" m, Z
- (setvar "ORTHOMODE" 1) ;drag along the text
" V% O( S0 v% j3 _5 V5 x, L$ V - (setq
6 ^6 C; v! B% t; Q- ` - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") ). R3 L4 J( I2 `3 M" s$ u
- (setvar "snapang" 0)0 L4 F' I5 R* A$ r) ~( a) k: W
- (cond
$ l F: o2 R+ h, e8 E! I% J - ((= (type TMP) 'STR) ;;new starting point to be selected
' m- ?! V& o! K4 ~4 F4 S9 y' t - (setq Start (getpoint "\nPick new starting point: "))
. ]. u9 {8 L' O7 ~6 g - (if Start (progn+ u. p7 V5 [9 V# u1 g8 a
- (command "_UCS" "_E" (cdr (assoc -1 textent)))1 _- X% ?1 |, E+ p
- (setvar "ORTHOMODE" 1)+ D. J6 b$ @1 K5 v$ T* b
- (setq NewPt
+ f3 o( d# @8 Q! `2 |7 z - (if Start, f5 {% B$ H9 h+ v, V5 s. i0 u7 m
- (getpoint (trans Start 0 1) " ending point: ") nil ) )& Y9 Y8 G2 \8 D. A
- (if NewPt (setq NewPt (trans NewPt 1 0)))( w1 i+ R7 ^' q1 `& t
- (setvar "ORTHOMODE" 0)
! H9 G2 K+ k0 w: C) Y% ?) ` - (command "_UCS" "_W") ) ) )3 o- e+ j" h4 J; q2 W# C
- ((not (null TMP)) ;;new ending point selected/ t) c; Z2 \7 v" I5 h: P
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
) t9 d2 D6 l! c" s& ^. f - (t (setq Start nil NewPt nil) ) )9 J' Y( ?7 {* T8 ~2 Z! x# q
- (if (and Start NewPt) (progn
" b4 C+ k! L0 K! l- b - (setq Val (Assoc 41 Textent) ;;current width factor0 F% \5 t6 w3 i1 B D" U$ l
- Val (if Val (cdr Val) 1.0) LTC_%
+ [$ A; Q- F. ~ m8 e$ R - (* (/ (Distance Start NewPt) NewEnd ) Val )4 U/ s1 h! x+ Y4 t" ?; U4 L$ o4 i
- textent (Subst (cons 41 LTC_%)6 `3 W; o+ P/ P! }; S& S
- (assoc 41 textent) textent)4 u7 ?- r8 d) A; j
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
) m, r, r- b+ B" l8 ` - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )/ U) F% _9 g: m2 f" a- B. @/ t
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))5 A' h5 S9 [4 x2 o; b5 Z, X
# Y% n4 I. a V6 Z- t; z" u9 Z' q3 g- ;=====================================================================
+ i3 R s! C3 p- l9 i/ C6 ` - ;=========================COPY + ROTATE ==============================: V: C; Y( {1 D2 G
- ;=====================================================================* L8 R: S8 n' z7 U* E! j
- [- }# l% H% G+ Z! p
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
; W% p. Q$ |- o: f+ A - (setq olderr *error*
$ z" l; M+ N, L - *error* croerr)! ?/ X. m4 m$ j3 o* W
- (setq cm (getvar "cmdecho"))
* h* }( |8 h( f* x1 _ - (setvar "cmdecho" 0)' Q5 R0 s0 |4 `# Q& F1 u
- (setq loop t)
8 E$ g6 i# u; [ - (while (not (setq ss1 (ssget))))
9 F i" F; |2 t* v' G q: X - (initget 1 "Multiple")% g8 v- L/ _; w* g0 ]
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
$ N, z' D- J2 _- m: F H - (if (= bp "Multiple")
7 }. X6 H- |# h) t0 r- {* [- k - (progn4 X; @3 U- q# }
- (setq bp (getpoint "\nBase point: "))
) @4 o2 Q7 G' B - (setq mult t)
$ J% y! t9 u7 S3 Q3 c - )
% ]& M& T* h5 P0 p& m- {+ ^ - )' T% ^/ u* A3 G3 c
- (while loop- x) ?% D0 X) f* Y- A
- (setq loop mult)
% F; M. G5 l: T+ }( o5 X. h. j - (setq lent (lastent))! v& h3 O5 `% S& H
- (command ".copy" ss1 "" bp bp)
3 ]+ U4 w0 S. E$ n - (setq ss2 (lss lent))
, v& I, c0 G6 t* k) ~5 f& J! U) P - (setq lp1 (getvar "lastpoint"))5 q5 H$ J1 J- w; s* T# z2 r
- (prompt "\nSecond point of displacement: ")
_$ r6 b0 |7 n- r- |, W - (command ".move" ss2 "" bp pause)8 k8 j4 e" B$ ?8 p+ J
- (setq lp2 (getvar "lastpoint"))
' [- m. x- W5 B: E - (redss ss1); ~! T7 _" }3 Q/ M
- (if (and (not mult)
8 H7 X/ ?% G2 D3 p2 w* u+ P - (= (distance lp1 lp2) 0)
0 i# h, [& c" f5 ^2 h B, H! O - )
2 E/ F" `2 Q) H- v3 e5 g! C; | - (setq lp2 (getpoint "\nRotation Point: "))
$ z! D2 q( N+ |! @) Z+ t - )! p& |! a d8 l% i. ? w
- (if mult, t: m, w2 T7 Q0 j
- (prompt "\nRotation angle ")
# D+ z+ ]; g/ R0 t$ n S0 C - (prompt "\nReference/<Rotation angle>: ")
$ o7 M2 y" r+ b- K2 T0 n) c - )! J& J, V% t$ K$ }$ z/ w
- (command ".rotate" ss2 "" lp2 pause)
- f. O' b+ q9 O2 ~0 w9 p$ | - )
+ P/ M8 q2 }# N3 I1 v8 M8 @ - (setvar "CMDECHO" cm), r1 s' _+ J9 ^+ [7 z& N
- (setq *error* olderr): F+ P( V5 m% s& O- k7 x G3 G2 G' {
- (princ)
) {- V" t5 I9 [! e- @3 t! Q! Z% I# E - )7 S6 _/ g2 p# Y& ?
- (princ)
# x" n+ E' r$ L E9 y6 x - (defun croerr (s) 1 B r5 B' k6 n8 w( x
- (if (/= s "Function cancelled") " _- W) Z/ I; A7 K* a- @9 r2 K
- (princ (strcat "\nError: " s))
0 m1 D4 w3 T; w, n- V - )
$ e, `4 c, R6 O; H. ~) D - (setq S nil)
4 X7 W' Q2 ~$ X8 l! q, J - (setvar "CMDECHO" cm)2 ^) G: G" H9 H
- (setq *error* olderr)) L$ d& L* T) ^: e D
- (princ)8 V) w: W: ~1 b$ Q* P# f0 R) l, h! o+ [
- )/ [8 j. G2 B Y O
- (defun lastent (/ a b)8 z! [" e; k6 Q" ?
- (if (setq a (entlast))
! F% p5 ~# L, a - (while (setq b (entnext a))
: B" U3 U6 Q w0 Z: R& R2 Y - (setq a b)
6 D/ t. a8 o( O ^$ q+ S* F - )0 p2 r$ `# c0 N4 v7 H
- )+ d3 F% ?' I- h7 u
- a
L3 f# ^$ G( T# M; U! d - )
s1 C+ {5 {6 q. ^8 l8 M: F" A G5 ^ - (defun redss (ss / en i)
5 z% ^# q& w* N - (setq i 0), V' A9 P: c) v) F8 M
- (while (setq en (ssname ss i))- \4 D5 ]8 _: `8 L y$ |
- (redraw en 1)+ m' Q2 y3 w3 a/ Z$ { j9 D' a) _5 L
- (setq i (1+ i))
( f4 |5 x: Y0 ]; O1 g0 O f& x - )' u: T" x7 B* A6 V" F* b
- )
- ]4 P/ @7 q7 U C( ` f' Q6 G; V - (defun lss (en / sels ed)
! t4 e& `8 D! f9 n8 e3 K. ?/ U - (setq sels (ssadd))* h8 G% y* R2 l* p% h, N) B
- (while (/= en nil)
9 ~- m! U/ l0 {; O2 M/ M. m - (if (setq en (entnext en)) (setq ed (entget en)))
& w6 q# `. L/ U' P7 v5 Y - (if (/= en nil) (setq sels (ssadd en sels)))
- D7 s, Y# a; Q8 E6 o. i. } - (if (or (= (cdr (assoc 0 ed)) "Polyline")( D9 ~6 y5 g- X( k! D2 u
- (= (cdr (assoc 0 ed)) "Insert")# l' ]" R& J4 I1 {( s9 s6 Z
- )
# S: s* H- q: U% U9 o! n* W2 J+ F - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))3 X- Q$ [; ~3 F# I3 f$ O7 x
- )& y7 j! t: `8 J+ A! N
- )9 D- Y! u: |! {
- sels
2 `3 ]7 ~$ F$ o& T J" k8 z - )
$ M8 P5 @5 A* n1 ^$ w* c; g- C3 v
' a' L* T8 O; x9 }3 z- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
* e) u0 D; K& f4 w- K
1 f6 a6 X8 x( G! |- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
% g* C n: G- k3 t/ }& i - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
$ I6 ~* F& y8 Q+ F7 f# Z7 _- \ - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
- j( i3 }; M0 y. V, h! l - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
# r* A9 t1 H4 u$ v/ J* A7 l - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
4 ~% Z; E3 P/ g# z - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
3 O2 D' x/ \, d( h$ U z# a: } - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" "")); Z9 V Y; n: I3 g, E7 E- M) t
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))( [% E; A- ]0 V I* m
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))( R p# c6 `9 n, l# o2 r& D
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))8 T4 T ~' e% R r
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))0 g5 ]7 F+ L9 o' j/ p6 R
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))7 Y1 O% P0 j& ?6 Z: A1 h
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))4 J( i: J. O6 p9 m6 Q
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))* }9 Y! n% y; e1 W
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
6 I- h, R( K, J0 q: s' C. d. k v- B5 J/ J/ K - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))- \" q0 r/ s: Q# ]
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
* P1 B# \7 J! h+ a, k' z - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))0 O" G3 t3 ^! k+ d. n9 ?
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))3 X( Z! O% l" v, l
" D# }& J) o, B( N& R0 N- z- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
3 i* b: a1 x6 n - " m3 @# _( \8 |' H: q! T
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
" [, M6 D& f# b+ v; t' W
# | c) L l& k+ Z L- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")! u; @* h+ K2 f1 V8 Q6 _& m
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")2 d4 H# X. W' x% f4 D1 P$ n
- 5 y1 k( }# T$ [1 k+ L* p
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===/ j- V2 w' i. @7 S8 t9 |* k2 R0 M
- / \) ^ K! e. |3 @
- ;(DEFUN C:netxuatanh ()% v2 z) Y6 g% i, O' J5 E' n" j
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
7 k; k( ~! F9 `9 T6 a% W - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
9 k; J+ l4 K# r% v+ k5 |& y5 J - "M" "MANH" "C" "9" "" "Lw" "0.5" ""% ~2 C- E: ]% t0 Y# e
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""2 s0 t' s [. w4 H5 i/ X
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""
, E" G2 p8 j" D* C - "M" "THAY" "C" "7" "" "Lw" "0.7" "") C. b) j3 ^' v9 _$ v; R) p
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
1 p( O9 |* ? W7 k - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""' H: c$ U* _, Z1 O
- "M" "COT" "C" "2" "" "Lw" "2" ""
9 w5 E+ X" N. P- k0 @0 t p - "M" "Defpoints" "C" "7" ""
" r' }9 {4 Z1 t - "M" "0" "C" "3" "" "Lw" "0.5" ""
, o: }6 V2 l0 [2 ]3 R }; N - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
4 T: ]% y* c- G( U; f; t - ; "M" "2" "C" "31" "" "Lw" "0.5" ""( o3 U8 ? {- c& }9 d! @2 W
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""' N6 N& [! t6 m9 ?
- ; "M" "4" "C" "4" "" "Lw" "0.8" "" U5 b% W. d% f
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""
: q: W3 ~$ @; U! B3 a0 m' H- F7 K - ; "M" "7" "C" "7" "" "Lw" "0.4" ""
- Q. h/ d1 d6 x, U i0 {: p1 G - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
" P9 p! [. |6 S+ s+ A% @/ Q - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
! T& `' ~0 k' n& V - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
6 H* P* L; k' H0 T$ R - "M" "KE" "C" "8" "" "Lw" "0.3" ""
$ [$ N+ l6 O: ]8 _ - "M" "KT" "C" "9" "" "Lw" "0.35" ""& u, w3 m, k b1 @3 N* i
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""7 L$ u; U5 V7 F9 H/ L B) C
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
) t/ [& D F1 {" B% k - "M" "TBD" "C" "2" "" "Lw" "0.8" ""
U- J6 N L1 V. A - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""6 X3 L8 Z) h, n( K
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""+ s, n& ?/ B7 W: R) I0 A
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
- `0 y( B4 ~! G/ l# ~ - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
, `2 a o6 z: P" L: t6 N4 s - "M" "CUA" "C" "6" "" "Lw" "0.5" "" a3 T; H' p" G! y$ H& c: K7 A
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" "") t' G: E: v: j e7 E5 P
- ( x I& a" ]& j7 H* d0 a
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===( J0 s8 z$ r% O+ \& ^; T) h
- % G, G( q Z7 g7 }! f
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""8 h% B( M# L+ A% L( Y' P/ ^1 C
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
1 G% t. e/ C; f" m! g7 h - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
& y" f7 k* P" ?! ^4 Z2 n1 {" g; @ - ; "M" "250" "C" "250" "" "Lw" "0.35" ""
3 i1 \1 {2 g1 p4 D: }* p - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""* A6 x8 }4 v7 V3 l4 p
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
# k# e. ]4 f4 c# Q2 S6 h
" y( h, z* j/ v- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
8 T; W- Y- f$ f - ;===================================30|04|2024==============================" j5 \# O, Y( f5 H" H# d
- 2 B$ S( W* s" \" W$ t- k
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
% @9 O: g1 Q' E' g - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )0 o8 u) G5 Q$ I4 ]
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" ); N# ~! d% k7 N) a
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )4 w7 x7 d3 n$ R; z D N9 d# h2 Z) E
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" ). ]+ Y6 _, M4 Q% c2 `+ X
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
" q7 ?3 B% [7 V9 n' p7 K - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
2 _4 @: ]9 U8 Q - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )8 w( V4 F. d% m: N, Y3 u; R9 D* P
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )# N& o( e( p' y. _% ^
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)1 {: ]" @& b) A4 X1 B
' i# f+ }6 [6 ]: X! C- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
7 X5 W3 k) s9 d1 z: w3 T - ;===================================17|10|2024===================================
5 W" ?/ r2 t# O" o3 c" i! G - 9 e- J! N8 W* ]
- (Command "DIMTXSTY" "ROMANT-DIM" )
5 F% t, V7 x/ \4 }' D/ h& H! g* v - (Command "DIMBLK" "" "Closed" )
$ J9 Q$ @" f! T. D3 q8 t m; T! Q/ k - ; t) G$ S7 a; j2 R. r0 G
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
8 l0 |* N5 n5 y6 A2 } - ;===================================17|10|2024===================================
. S$ K* ?: T8 |2 a- m7 I! t! X% m - 3 i! [% a, a X2 K4 g; a
- ;(Command "-units" "2" "8" "1" "8" "" "N")
' U! y4 G. w' @$ k% l8 | - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)& Q3 H$ I9 r$ l2 e3 ?4 S7 S
2 o' M" v; }! e/ p5 H% K! O: h; w- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
+ p2 M: z* _8 n( X) K" c; Y - ;===================================17|10|2024===================================
% d' g3 q) b: e3 Q" ? - : v6 M* _1 o; t- H/ J% u
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
3 ]0 P7 Y. Z8 D s2 W - . Y2 G' T# A* u. }3 g( Z
- ;======================== DAT NET IN & TI LE BAN VE =============================
4 W2 a1 a% y. p, z! x - " ~, ~' }9 e+ O# \+ e
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
7 c) x* W9 d% c8 \ - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
" ^, ?2 v' w4 z2 }3 e - ;=============================11|07|2025==============================
0 K% Z, q6 E& r2 A0 W l9 \/ M - ;Ti Le Ban Ve - 1 : 100" R! Q2 R. [* q! m1 J6 Q
- (Defun c:kta4 ()! [- W2 W1 T6 j1 @! ^
- (setq mv_sc 100);Ti le ban ve6 s: t6 b6 ?2 \2 N" I) \
- (setq x4 297)% A( e1 L* B( U: q/ M" Q7 m
- (setq y4 210)
8 \. \ | U c - (setq x4 (* mv_sc x4) + u. b3 x8 `" s; c1 G1 M I
- y4 (* mv_sc y4) )2 t2 ]* O g+ O% \6 G/ K
- (command
: M; O! l* z! j& J, e& j - "LIMITS" "0,0" (list x4 y4). s: }4 X) b& a' l4 x
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
" d1 i; S. |$ @( ?, H2 W I* W# y. A - ;Khung CHU NHAT Chinh * O0 G: V, `1 k# F. }! w8 E5 f4 ^
- "RECTANG" "500,500" "@28700,20000"5 b) J% u( P6 _. X" B& H
- "RECTANG" "700,700" "@28300,19600"3 {6 T( ]3 n" l6 g
- ;Khung Ten Chung
% H! B9 C, R4 y" s1 x, N2 I; c- w) e - "RECTANG" "700,700" "@8000,1250"
4 G- M+ N! Q+ w; C: P3 M) ?) E3 _ - "RECTANG" "700,700" "@17300,2500"
$ n! u$ {/ M2 H- O5 c# f - ;Ten Ban Ve% l# g6 q6 t- b
- "RECTANG" "18000,700" "@11000,1250"
# r/ I0 J3 ]1 z2 i, }6 v- e0 g1 F9 l - "RECTANG" "18000,700" "@11000,2500"5 o6 L" h* `1 v$ C+ m0 D$ o
- ;Khung Ti Le + Ngay Thang Nam) @1 ]& [- d2 D# v
- "RECTANG" "22500,700" "@2000,2500"
; @* _9 k8 }- ^6 M - ;Khung CHU TRI
" y6 o# a/ b+ g - "RECTANG" "8700,700" "@3800,2500"
. Y. m* W; B) L: X9 L - "ZOOM" "_a" )); g* ?( y: g, s m9 {; e
- ;=====================================================================8 D1 i" ?5 X5 K g. E
- ;Ti Le Ban Ve - 1 : 1006 ?* X* s9 C! O x9 H. w+ }1 E- @
- (Defun c:kt4a ()
( M1 @& K& }' A) W! z - (setq mv_sc 100);Ti le ban ve
+ \+ @/ P5 G m' g2 h - (setq x4 297)
t: P3 R% T+ B4 | - (setq y4 210)5 i* w# |9 P% A) p* R" Z7 T |4 M
- (setq x4 (* mv_sc x4)
5 w5 X9 F& ?6 Q8 T9 [ - y4 (* mv_sc y4) )
+ b, ^2 w- m3 ^0 B3 H: ^ - (command 3 W. A! u2 }; }3 t n
- "LIMITS" "0,0" (list x4 y4)
0 x! k& G- n7 t" O# J - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
4 y" f e' R+ Q2 v% n% n - ;Khung CHU NHAT Chinh
, C* j6 H& I2 J4 O9 j - "RECTANG" "2000,500" "@27200,20000"
% G( V* m& d8 N) ]; k/ C- Q - "RECTANG" "2200,700" "@26800,19600"' e$ r9 O( G! h( S( k5 ]) |8 @
- ;Khung Ten Chung# n' t6 ~& K% J8 ~0 K& p
- "RECTANG" "2200,700" "@6500,1250"4 t4 S! C4 j- T& j6 V
- "RECTANG" "2200,700" "@15800,2500"
9 ~' K7 m8 B l) C3 Y* m3 c' g( p - ;Ten Ban Ve% F- |1 ~) J# G+ ^: V3 f- e
- "RECTANG" "18000,700" "@11000,1250"
" T0 R8 M8 e1 ]& i - "RECTANG" "18000,700" "@11000,2500"! L/ E: [$ E& d @
- ;Khung Ti Le + Ngay Thang Nam
1 k* R$ b9 f- p4 `7 O$ q* A - "RECTANG" "22500,700" "@2000,2500"/ z; D+ S& y f
- ;Khung CHU TRI) u# K# I* d2 O( _. O3 n
- "RECTANG" "8700,700" "@3800,2500"
9 F- }, v) ]$ A) Y6 V# x - "ZOOM" "_a" ))
8 E7 X3 x; @3 {( i - & W3 d1 A8 u6 J( `0 f" Y$ ?! F
- ;;; ============================GHI CHU Khung Ten========================" m" J8 _( s$ f3 A2 ^* w/ X
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
; [: l9 E% F9 H+ q% G - ;;; =======================Thuong Dung Font Romant.vnh===================4 S7 C: ?9 ~# ~& _
- 6 Y( c% ?5 w* b
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
) ^9 y: l3 b) o# T - (setq oer *error* *error* err2)
5 n5 B$ ^, K/ ?/ A - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
; q" ?4 B( i3 z a$ S2 G* j - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
9 r5 L, m% V7 @9 \$ e; l* s - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))0 n- [" a9 w, h G" d
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))4 N; l+ H0 z8 s! G& I% Z
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))0 P; \+ d5 \3 J6 r% S( b) P
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))+ j) K# h) o3 h7 Z$ u6 g
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))* ]& ^: l4 D4 v8 y9 L4 N* l4 k: a- X
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
; s7 z1 x; B: l- o0 F* f0 P E - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))2 x# [0 o1 t: r
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
+ ^; }( H3 {( `$ Y \ - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))' C" V! m# O0 Z* Z0 f2 q
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
7 ^1 H: o' I( D# s0 \9 F - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))" @8 j+ v. ?; k0 }7 M; b' u
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
" i3 C+ ?" Z" u# m - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
+ R, P% j5 u5 Y4 W7 ] - (setq pta (getpoint
" }- q& b- ]* p8 S6 Z; C; w - "\nPick first corner. : "))& R& o8 v! n/ d! L; A8 B6 a) m
- (setq ptb (getcorner pta! L7 u& ~+ Z3 A
- "\nPick second corner. : "))
: m, M4 ]5 J; w/ w* B2 D- N - (setq ptc (list (car ptb)(cadr pta)))5 M3 K# V- q% N; n, c3 N& B
- (setq ptd (list (car pta)(cadr ptb)))
# o, ? n4 [ S. t0 Y0 W - (setq ang (angle pta ptb))
# k* ?7 G: m( T3 w( A$ b( ]. W - (setq d1 (/(distance pta ptb) 2)). R7 s- |/ X0 K2 H ~8 W
- (setq cp (polar pta (- ang (dtr 0)) d1)), m9 ?7 a5 M3 N
- (setq X (distance pta ptc))
9 d3 _+ [. v; G; u$ t2 Z - (setq Y (distance pta ptd))8 M& R3 ?2 P/ A# d6 H4 r! N
- (setq X1 (rtos x 2 1))" ^5 Z: }- v/ g$ V. y1 u
- (setq Y1 (rtos y 2 1))
+ d" N3 K' \; ?" e: A - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
! {8 v) A; Z, \# G- y: n - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
: S' V3 L+ g+ f2 K! E - (defun dtr (angg)8 c1 n3 f2 [4 F# ^! J
- (* pi (/ angg 180.0))): f+ k8 m X% @; i. s) i
3 y& D8 y+ ~1 j; G" N. O- P3 Y- ;=====================================================================# \1 J( V$ s: Y Q |; Y
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
( g$ P/ Z5 v! v# d- H# z2 l! D% D7 M" t - ;===================================================================== J- q6 Z2 d, }8 Z7 r
- 2 z/ m" O5 ]- a+ Y) [1 P R
- (Defun c:a6 ()
0 p5 q: e' g0 o2 E8 a& S% A9 p5 P - (setq mv_sc 100);Ti le ban ve' N) U5 R9 v0 V6 c" Q* {
- (setq x4 74.25)
/ Z3 {4 q6 N ]5 G, `9 X) ]) h7 j - (setq y4 52.5)
" m' y* l8 W4 C9 Q. L6 i' t - (setq x4 (* mv_sc x4) , \2 ~. e8 O( C$ @$ A
- y4 (* mv_sc y4) )
8 A, [* E0 e0 w, F - (command ( e" `8 ?" E" w( P. d1 r
- "LIMITS" "0,0" (list x4 y4)
- H5 F) }, D. L& L: x& u* [. q - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
& \6 R- z: w# U4 Y+ ]" _, q - "RECTANG" "125,125" "@7175,5000"
$ K: \. `1 ?$ o6 V - "RECTANG" "175,175" "@7075,4900"
% f* D, ?5 H: }! g - "ZOOM" "_a" ))
1 @/ a0 n @1 C: r - ;=====================================================================' P; B4 n+ q/ L) s
- (Defun c:a5 ()" M* ?! a# {' S+ [" F- A. e# _
- (setq mv_sc 100);Ti le ban ve
0 }5 a) p+ }* B. q - (setq x4 147.5)
3 ]8 b! z4 D' q- ?. k - (setq y4 104)
2 } m' p9 P1 r: y - (setq x4 (* mv_sc x4) 6 h2 R8 g* l" m; S2 P9 i w* S
- y4 (* mv_sc y4) )
4 H7 M, F& n! L8 Y" H - (command 1 A% y3 h5 h/ U, o' k. B
- "LIMITS" "0,0" (list x4 y4)
- ~3 {3 ~( v3 ]' N& } - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"# Z: U1 k5 a; H9 Y8 ]
- "RECTANG" "250,250" "@14350,10000"* c. ]1 [3 d8 x5 v3 r ?
- "RECTANG" "350,350" "@14150,9800"" V! ^/ _% M: y* E' H3 o
- "ZOOM" "_a" ))
, z1 o; ~! V% X) L - ;=====================================================================% t% c( k2 {2 L- |( @
- (Defun c:a4 (). G C& {+ q; d) w) R
- (setq mv_sc 100);Ti le ban ve7 h7 B. u9 s" ^7 _0 f
- (setq x4 297)
0 `: c! g B7 w0 B/ n$ a7 _ - (setq y4 210)) F# g2 f1 m/ l0 k( ^$ h3 |
- (setq x4 (* mv_sc x4)
+ }7 C9 ^, |- e6 I - y4 (* mv_sc y4) )
4 t J+ W6 c: ^6 T/ E - (command
+ g3 ^; H- p9 C; O: n1 ] - "LIMITS" "0,0" (list x4 y4)! a8 |! |7 [! j% L- I) K
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"0 u/ j v+ ?3 d2 z
- "RECTANG" "500,500" "@28700,20000"
# u4 Q" x. V+ t% W7 E# X - "RECTANG" "700,700" "@28300,19600"
L' r K/ I/ U) \# ~ - "ZOOM" "_a" ))
7 R, |2 n3 B6 W5 J! V4 f4 P, ~ - ;=====================================================================7 ]! i4 H! v8 l8 j; J. Z0 d* b
- (Defun c:a3 ()
9 ^; I; q9 ~# u8 m: o - (setq mv_sc 100)
- H7 f9 b8 @3 O. n5 a0 E: w$ S% Q1 J8 b - (setq x3 420). A2 Z$ Y! F9 @* ~% H1 ?# u+ \
- (setq y3 297)3 X& c# Z* G0 R; s# e2 j: K
- (setq x3 (* mv_sc x3)
, M* j2 u: {- H - y3 (* mv_sc y3) ). H5 j/ m$ \; V% Q2 Q
- (command 5 b$ f6 @: g8 T
- "LIMITS" "0,0" (list x3 y3)( y3 ]& X# Q3 ~7 q; X* n. f- U" q
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"* b5 h/ F7 ]4 U( O
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
" B' u! h$ p6 y - "RECTANG" "990,990" "@40024.28571429,27720"7 d3 \) Z9 t) Q; E7 A& A4 X
- "ZOOM" "_a" )): K6 f- Z, h: l. b; q. v
- ;=====================================================================) c6 m( T K% h. j5 P% H/ R$ c2 y
- (Defun c:a2 ()7 ~2 r; e7 \# c8 ^6 M0 r% \
- (setq mv_sc 100)
4 E. c2 K8 j; b! H# w - (setq x2 594)
1 z4 F+ a+ ?$ M - (setq y2 420)
3 P$ q& N9 l0 u K - (setq x2 (* mv_sc x2)
& ^6 P B) r' y - y2 (* mv_sc y2) )
( w# G$ ]4 u l8 m/ o, ^ - (command
0 {. u8 L: f3 I/ \* h - "LIMITS" "0,0" (list x2 y2)# R! x4 b, O4 H: p
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
/ c! Q) c# p$ n* r. `% c - "RECTANG" "1000,1000" "@57400,40000"; u0 r) ]2 a6 x: g: i0 y
- "RECTANG" "1400,1400" "@56600,39200"
! y7 X8 ?; Z& U3 P6 m - "ZOOM" "_a" )), z. K! z& e* e% L; n
- ;=====================================================================
# j F1 [) {) p - (Defun c:a1 ()
+ C2 u7 F& Z, O- I% r: o$ m5 | - (setq mv_sc 100)
8 w0 b5 L# R( p - (setq x1 840)
4 D$ e9 k9 A) ` N$ l - (setq y1 594)7 }8 r0 A+ g% L4 Y2 L7 N; B
- (setq x1 (* mv_sc x1)
& Y; s$ q" i3 V - y1 (* mv_sc y1) )
, `1 Z1 [) F$ f, S( ` - (command 5 l2 J& M; J4 d! ~' e; I
- "LIMITS" "0,0" (list x1 y1)
* _- C2 o( b2 s$ `; r* x8 ~. Z' y/ b - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"' m: @* p+ C3 S- h
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
% z+ b/ j* a1 g# [2 V5 W! N( c - "RECTANG" "1980,1980" "@80048.57142857,55440" d6 |4 `9 ]- ?$ J; f
- "ZOOM" "_a" ))" l" R4 u+ j! b
- ;=====================================================================
' H0 N- U1 o- O( T: I9 F: v - (Defun c:a0 ()
" f' E/ b. q- C( ] - (setq mv_sc 100)
3 s8 w4 G G% v! e3 f - (setq x0 1188)
1 p$ T- g% P! X+ v - (setq y0 840)& e& R- {- c. C- ^1 l
- (setq x0 (* mv_sc x0)
! x6 p! O6 p5 W - y0 (* mv_sc y0) )
$ K2 f0 X' Q8 e8 z3 N; h - (command $ \9 x% |5 l3 o7 ]/ X
- "LIMITS" "0,0" (list x0 y0)
& e; u! `6 F8 P - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
; ?: k) p4 G6 n) l% z; u, S5 w9 D - "RECTANG" "2000,2000" "@114800,80000"
- ~8 s( c6 Z' E( G' A - "RECTANG" "2800,2800" "@113200,78400"7 N* I" i4 B- I2 _5 Y9 g
- "ZOOM" "_a" ))
0 U9 c2 N! v0 T2 d6 V8 p9 @
4 w8 Z3 \4 h- ]& Q" r. [- ;=====================================================================
( w& j- T9 y- z9 p" L2 {. J - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
P* F7 ]. S" o3 }: z- \0 N. L3 } - ;=====================================================================4 _- d; \8 R. v& {, j+ `
3 W+ O8 _% x. j) w- N' Z+ d- (Defun c:6a ()7 o9 m4 g; ]3 `' f2 A
- (setq mv_sc 100);Ti le ban ve
% v) t& d* r# W$ C: ? - (setq x4 74.25)& C+ W( u4 W/ J; O0 u" k) J* m
- (setq y4 52.5)" n! N, V. W% Y1 v
- (setq x4 (* mv_sc x4)
8 [# Y: j- G+ k% Z' \/ i - y4 (* mv_sc y4) )) d& @# }& |) P4 c& `
- (command
0 e5 b$ _; o, b - "LIMITS" "0,0" (list x4 y4)
5 B' J$ ^5 U5 J; {) b# F( d - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
1 l; Q- I. t7 i; k( V! T - "RECTANG" "505,125" "@6800,5000"
4 ^0 a# W' w f7 l N' |) u - "RECTANG" "555,175" "@6700,4900"" P' r: W2 D0 u6 U1 t
- "ZOOM" "_a" ))
. ^; R) I5 i; r. G+ ~ - ;=====================================================================8 ?2 H( y8 Q9 z; o5 F- Z+ L- L
- (Defun c:5a ()# S1 w: }3 P' u' B% \
- (setq mv_sc 100);Ti le ban ve
6 O- g2 F7 ?+ p: T/ R. G - (setq x4 148.5)
- z6 J. Z/ A9 u# W) _5 p) | - (setq y4 105)
" Q& Z/ ]5 Y; i `0 r7 q - (setq x4 (* mv_sc x4) ( E x- h6 C9 x5 e% ^7 J6 l
- y4 (* mv_sc y4) )
8 N# Q9 s2 y* C; `/ L: S3 p6 ? - (command - N+ m# k( I1 s
- "LIMITS" "0,0" (list x4 y4)( g) q5 i: m! ?, T) L$ Z) _- \7 x
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
$ `+ F! c) F; |6 E @2 P - "RECTANG" "1000,250" "@13600,10000"% W. R$ {* r5 [8 n5 u
- "RECTANG" "1100,350" "@13400,9800"4 j9 V) P! B+ ]5 a: D1 Q
- "ZOOM" "_a" ))9 O3 X- U+ ?1 C1 P: e+ n3 E( O
- ;=====================================================================) E+ X V; X1 W6 t+ _: O1 l
- (Defun c:4a () x' h# l9 b! V; L% _, ^ N9 ~+ L
- (setq mv_sc 100);Ti le ban ve r/ {5 H: S: C$ \5 B: l
- (setq x4 297)2 w% k a% V& {2 a
- (setq y4 210)
( X/ c0 n& V! z# ]5 g8 B! s - (setq x4 (* mv_sc x4) ) U9 |% `3 l: V, `$ ~6 l
- y4 (* mv_sc y4) )
5 T+ s ~; n) P: y - (command
% Z O. l* @" c; a1 E ^! l - "LIMITS" "0,0" (list x4 y4)/ b& `. t+ [- D5 N# P
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"7 ~6 Y) E- l& h' b2 T, R5 I+ e9 H
- "RECTANG" "2000,500" "@27200,20000"5 ~2 W7 q3 |; z+ E9 _
- "RECTANG" "2200,700" "@26800,19600"$ |' }# q% H% L$ g- ~, L
- "ZOOM" "_a" ))
6 D: |9 C; C! W6 D" n6 [5 g. L - ;=====================================================================
: ^5 @( Q" j8 a- O. S, j u7 P$ m3 G - (Defun c:3a ()+ _! B8 b- F7 j" k8 a3 l+ j! c
- (setq mv_sc 100)! Q' L5 i, y* l4 t
- (setq x3 420.0428571429)
/ w0 ]4 [8 F$ S' O - (setq y3 297)
5 f3 R4 d% K x. J+ Q - (setq x3 (* mv_sc x3) , I. J0 \: l) L: I$ T
- y3 (* mv_sc y3) )
- y, L3 F# V9 a: g2 H8 `' O - (command
" d3 M( [3 t1 _* S - "LIMITS" "0,0" (list x3 y3)$ a" Y( d* z, S( _$ j, \
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"; k, d6 Y* t" [4 n: l- }8 {
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"( C" `( u' A9 B/ Z
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
! d1 F" ]: e) ? - "ZOOM" "_a" ))$ [. p# W @* J4 l' m) |! K
- ;=====================================================================
( O' m% g9 @0 u - (Defun c:2a ()
# p6 s6 H. w+ J - (setq mv_sc 100)
. Y/ @' }) j8 o. O- \* x - (setq x2 594)
6 p0 Z7 Y- T6 U* n! v1 l0 w - (setq y2 420); n9 c) R0 h5 G+ `% S
- (setq x2 (* mv_sc x2)
5 n4 w0 u# t; |/ l" j0 b4 W - y2 (* mv_sc y2) )# F1 L: i" ?0 O- a5 A; s& ^
- (command
) t) Q( k% ]5 u - "LIMITS" "0,0" (list x2 y2)
- o, S8 v* L* y6 F9 T0 P - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
6 N# Y& _1 a3 e0 p2 a/ P4 b - "RECTANG" "4000,1000" "@54400,40000"
, _4 L1 ]6 ~, P - "RECTANG" "4400,1400" "@53600,39200"% q+ `# x- I: L$ z& H8 s, X
- "ZOOM" "_a" ))
$ g! X, S# m2 y - ;=====================================================================
7 C5 }# i" W4 M t$ E1 w. k - (Defun c:1a ()
& G; T/ m& R. { y1 { - (setq mv_sc 100)
0 q4 N7 E" r, S) ]/ B- w) W - (setq x1 840.0857142857)
8 y( K. d1 u+ [! v/ o I - (setq y1 594)
: e6 o4 Z3 z3 h* f$ t - (setq x1 (* mv_sc x1)
2 `1 B, S- W: h: `' S N( N - y1 (* mv_sc y1) )
0 k, @8 l- w4 j$ T' l5 n4 v - (command
* A$ v5 V# B* j: R. n - "LIMITS" "0,0" (list x1 y1)/ K9 j0 }5 b- n: R) v
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
! D9 c- F% V2 e- d% y0 B6 I+ e - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
9 O5 v+ M8 L0 R) c/ l1 Y# Q" L% O# _ - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
) Z% b: n8 |; q. M - "ZOOM" "_a" ))
% o3 n5 H* j4 i0 l+ q- w - ;=====================================================================: g! P& v* y% B2 F5 Y
- (Defun c:0a ()) k+ M" S. g& [/ p9 g1 I3 y
- (setq mv_sc 100)3 }3 K2 ?! s* k, m% ]
- (setq x0 1188)
% U3 x6 D6 h- K: i0 t! R - (setq y0 840)
% p1 a- M) R5 X; z7 v - (setq x0 (* mv_sc x0)
& n4 v% G$ P7 A) R- q1 w5 v$ c - y0 (* mv_sc y0) )' a& W V K* E. y' W) B
- (command
! \" g) W$ `% U9 e - "LIMITS" "0,0" (list x0 y0)
+ D$ J( g8 T# t: p9 A - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C" l9 N) M; I0 B1 r, y
- "RECTANG" "8000,2000" "@108800,80000"6 i2 d7 I, _! s& X8 B" y
- "RECTANG" "8800,2800" "@107200,78400"
) j( w- }" |) g& H% Y( e1 r - "ZOOM" "_a" ))
- S7 e1 r0 z) m! l6 N
V7 o$ A% g, y" f( c. B. V- ;=====================================================================% |: Y/ r, j5 }8 g# Y+ l
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================6 f, D J; A; D3 z) {
- ;=====================================================================' [0 r$ s' ?# N
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)0 K' j. l5 ~3 j: W
- (command "undo" "be")
9 \. a) I1 |; N7 w - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))6 V) T/ _( u/ r }2 R5 ^2 q( J B
- (setvar "CMDECHO" 0)
3 _; H& p! {# k- H - (setq a (getpoint "\n chon diem chen :"))/ I0 B. S& \# a* F
- (if (not TL) (setq TL 1.00))
) X* T; j9 u& o - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:"))), R; [) P+ s6 \) h% t9 B; d
- (if TL1 (setq TL TL1))6 l! ~ g+ Y9 A- j/ [ Q" _9 l) Q
- (setvar "osmode" 0)
c- S2 W- w; ?! p1 i# x3 K - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))/ U* C1 ]! }( t$ N$ [/ j
- (initget "0 1 2 3 4")4 ?: g# d" N, Z1 l( G
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
8 K$ g# Z! |) E+ D) X; d% w - (if (= kho "0")
9 T3 z. E b; H' Q& r% h! z - (progn
7 }0 m' p5 ?/ H: ?+ a, h0 U/ z - (setq b (polar a 0 (* TL 1189)))
! D' r7 z8 c2 |+ D - (setq c (polar b (/ pi 2) (* TL 841)))
9 ]# \7 v7 E+ ?+ O# m - (setq d (polar a (/ pi 2) (* TL 841)))
) J+ z" d; ~1 R' S - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
+ \! T9 U5 F0 ~0 D* T" {; a - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))! q1 ]6 X0 P$ |8 H/ q1 [
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
7 h/ a) U b/ p - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))" U5 ~6 y9 q7 W1 {. s; V+ c
- (command "Pline" e f g h "c")
5 s. g! [" H) } - (command "change" "last" "" "properties" "layer" "0" ""): n# b. t) d; n8 ?& \; o4 c* j
- (setvar "cecolor" "4")* T4 l% g) x% d5 o7 O
- (command "Pline" a b c d "c")
! A5 R; F: q: \$ c' V# `9 x - (command "change" "last" "" "properties" "layer" "defpoints" "")))
% b+ J. A _8 a+ f - (if (= kho "1")
. w& x) }# ~3 J1 `9 O- @ - (progn/ J4 o5 v( G5 c* @- z, ~7 @/ z
- (setq b (polar a 0 (* TL 841)))
6 G, a; A" h( P - (setq c (polar b (/ pi 2) (* TL 594))). _2 K' O* a7 T: m* j
- (setq d (polar a (/ pi 2) (* TL 594)))
& e& E- n' c8 E, n, t6 K" K: k - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))9 h. A. M' K# O$ F6 o
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))
' K2 z, P | Z* E" G) W5 a# N - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
2 a8 R* B6 M0 w' Q1 T) ~+ u - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24)))). G: o) A& y+ `+ c- q, |8 M
- (command "Pline" e f g h "c") : U5 W% L3 V8 L7 j' \8 T
- (command "change" "last" "" "properties" "layer" "0" "")) ?9 N! x" J% ?5 R, O ]
- (setvar "cecolor" "4"), K e" ]) k7 H, i/ s9 \
- (command "Pline" a b c d "c")$ B. X% o' J* c: s
- (command "change" "last" "" "properties" "layer" "defpoints" "")))6 t5 S8 }3 ^+ h4 I z9 `( [. c# a
- (if (= kho "2")
- d) J5 J& e' ^3 L7 F6 } - (progn
1 O* @' @* s4 C) a) s4 s3 s - (setq b (polar a 0 (* TL 594)))& H0 l7 V1 ?' q3 R3 V! ]; {
- (setq c (polar b (/ pi 2) (* TL 420)))
, @ |! b' z* ~ ? - (setq d (polar a (/ pi 2) (* TL 420)))# ^) r. W o' O+ g4 z0 @
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))2 t. x6 U: U3 @
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))$ z; `& ?! D' l4 X0 A
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))1 O9 C" E* g6 T; c4 `6 M
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))2 U5 v) `, ?8 @
- (command "Pline" e f g h "c") ! g5 l' s2 T( M. u" u0 d/ `7 r5 l
- (command "change" "last" "" "properties" "layer" "0" "")
! j6 B5 \" F& O, N4 E! D - (setvar "cecolor" "4")
; A! p4 A7 L. D& ^% K - (command "Pline" a b c d "c")
. L0 n* v5 M4 Z" X - (command "change" "last" "" "properties" "layer" "defpoints" "")))
, V- s, B) ^6 z o. N, K+ g - (if (= kho "3")
6 {2 c- \( m" H+ q/ o& i# k - (progn
. F* ?4 w5 g. c) _ - (setq b (polar a 0 (* tl 420)))
5 e, N6 F$ f/ D* j7 T, e - (setq c (polar b (/ pi 2) (* TL 297)))
* [8 k9 m1 V4 x! P3 H" v: l! M( B - (setq d (polar a (/ pi 2) (* TL 297))) q! `+ i7 c, P( x$ D$ E0 N
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
( c" E) b- s& Q* p. A - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
: q* j! L; L' q5 S4 G7 ?- y( l - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
' L% s+ b; v' V7 e+ M/ F) c - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))$ ^. Z$ G3 i+ W; i- N! D
- (command "Pline" e f g h "c")
. [. f O( a( K; C, c5 a; |( Y - (command "change" "last" "" "properties" "layer" "0" "")& l5 Q" _8 T- c
- (setvar "cecolor" "4")2 c2 h% |9 f: c, j
- (command "Pline" a b c d "c")
; M7 t* y" s$ G( o5 I - (command "change" "last" "" "properties" "layer" "defpoints" "")))) H. L8 ~3 r/ f: }0 ^( x
- (if (= kho "4")" i) P( i/ v8 m& M
- (progn
; O: ~, @, X6 K4 }; X - (setq b (polar a 0 (* TL 297)))
: k( {0 s2 S2 k' S5 j, _# c R - (setq c (polar b (/ pi 2) (* TL 210)))/ K+ l0 L; N, {+ M
- (setq d (polar a (/ pi 2) (* TL 210)))1 B+ q4 T/ u2 L: |$ k6 A4 C
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
- F8 L8 N1 f# }- Q6 b% [$ Z - (setq f (polar e 0 (- (* TL 297) (* TL 18))))% u; t& @/ F/ A& d
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18)))). z9 }- R5 n5 [% p+ J
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))$ u0 Y# Y4 Q+ e# ]; n" l
- (command "Pline" e f g h "c") 7 a, g; H9 `7 p& w: H8 E4 ?- a/ C
- (command "change" "last" "" "properties" "layer" "0" "")
$ z, L: s- W! U- C5 Z - (setvar "cecolor" "4")
) E9 T1 ]( x' m& b1 I' u# ` - (command "Pline" a b c d "c")' a) y1 |; n: y7 D
- (command "change" "last" "" "properties" "layer" "defpoints" "")))# j1 k; V$ u& s3 ~$ b. b, z! k! N
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
+ A% R/ t4 m5 j$ o, G - (command "undo" "e")
$ I8 R9 a% h0 x% A c: N - (princ))- b0 c& V% K) K6 D7 D5 ^& |
- ;=====================================================================! S6 E" j( R- p+ R, d
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
) p% }/ @% b% T+ O2 S1 A - ;=====================================================================1 S0 o- C0 X% P8 ^ V
- 6 G; c5 a+ d% f6 w2 J+ B# f% R9 L2 `
- ;=====================================================================
' r6 k1 n% r8 r0 `0 P. i9 K - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================' n9 h+ {. m2 r' ?5 t" w. G
- ;=====================================================================
& a" |% h) W! s5 N- x& N
7 O. |9 Z2 f w" `- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
; A7 L$ K9 B4 A1 w/ l" h - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
& s% A! |( C: y; @9 R - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
% x" G" \. T% Y3 l - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""0 N/ Y9 T7 N6 m
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""/ s/ X- V# V: t; d1 [
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
/ b3 _# f! C, A3 }1 h - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""2 c+ v4 ^ Y& o2 g$ t$ j
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
( ~# E9 I0 A, m- M& F, m - "M" "COT" "C" "1" "" "Lw" "0.3" ""
) V# X3 ?# n+ Z: `( N) r - "M" "Defpoints" "C" "7" """ S: s; u. a" z
- "M" "0" "C" "3" "" "Lw" "0.12" ""/ ]- F) l4 r+ K. v. h( O+ M: o8 k
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
$ H1 D) B5 X7 L: F+ x - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""& H) F: u/ d5 h. h: T
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
( R. n* `0 v6 K" {. Y0 S1 K - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
4 Q6 v0 D" q8 O7 n" c: g+ X5 a1 E5 p" @ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""! X7 A* L' a. @( |0 Z, p
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
/ A y3 u! U$ r! U. p3 s" g2 N - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
O* ?! f/ \% g4 X* e - "M" "DIM" "C" "1" "" "Lw" "0.2" ""7 c) y# S) p& A) b" ~
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""# w! x$ J; I8 z8 e" T7 i+ J8 z
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""! v9 O8 n! M, k2 e. K( r
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""' ]. R' x5 N' I6 r" u' I5 p
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
1 f7 Y/ U/ M9 x9 T& j" Z - "M" "Defpoints" "C" "7" ""
Q& `2 _* s4 R - "M" "0" "C" "3" "" "Lw" "0.2" ""
- [( Y K( ?/ N - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
# i9 ?/ G! T, R' Y - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
8 z( d5 g P( o+ i. S5 u - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
' V# A" s) e& m; h: Y& E3 O8 L - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""4 t6 u* q) U9 l4 S; v
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
* j& ?! f* k4 @- x* {) C0 } - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
$ F8 u5 ~( a* A9 @6 _& W - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
: ]& B$ L6 N9 I$ o+ Z2 C - "M" "DIM" "C" "1" "" "Lw" "0.25" ""
- G$ m x- `' [8 p" l - "M" "THAY" "C" "7" "" "Lw" "0.35" ""( q& m' T8 _3 K5 m3 }
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""6 _* T$ A8 x% e& S9 O
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""7 Q7 d( }( m9 I- ~1 A
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
% d. b- j: ~$ H, N2 ? - "M" "Defpoints" "C" "7" ""
! c3 V0 S" S" N& @* f" Y5 [2 i- I - "M" "0" "C" "3" "" "Lw" "0.25" ""+ J3 ~6 ?7 ^7 g# Q% v3 r3 B+ G$ ?5 c
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""* T4 T+ `- F$ R1 Y
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
# _ q W( g; E2 Q7 c* ] - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
; V) [$ _% d* W4 \ - - _' I3 J! L$ P/ ?$ ]
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
( H9 ?7 e! G/ p; W - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""9 z- a8 t$ P0 K" R9 ~0 W
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
, [. Q5 E9 g1 k( T5 A3 U- Y - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""( m* }) I# c! c6 U4 p$ g
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
V4 i* B, T- ~$ M$ p' ]3 D: ^ - "M" "THAY" "C" "7" "" "Lw" "0.4" ""! f8 j5 ]: Q5 o+ ^9 s; t* M4 f
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
4 t* O2 Y: L% F/ f1 g; F+ z6 h - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""9 I3 ?8 O: @, i( ^$ `, ^. `/ r: V& Y
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
! |) r' t: R$ K' j% r: P* ]1 J. ` A) Z - "M" "Defpoints" "C" "7" """ O2 `/ f' I, K8 S
- "M" "0" "C" "3" "" "Lw" "0.25" ""
2 e% g& P& Y, Z" R - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
# B' @. \) y$ W; i9 h - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""7 |( E$ S. ]8 {5 F$ p
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)& e, n {+ ?6 Z- ^
- . U' z- x6 E: U3 O& P" Q
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""& W0 ^# n, b' \/ g! S
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
. V: q; e+ U6 m! U4 v3 M - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
! H, s2 b8 @: z5 @/ j - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""1 F/ \! Z- I9 I
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""7 ^0 X7 K, I( p* Y+ V7 s
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""+ @& ~- c3 {) a; _! X1 Z
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
7 H* h$ s" d2 g( G, r4 @5 x - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""! h- y+ B8 u2 J2 o
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
) q& y- y: p; n% u3 [" B2 h$ E - "M" "Defpoints" "C" "7" ""
" @+ l+ l' \& W8 G: V3 h - "M" "0" "C" "3" "" "Lw" "0.35" ""
' J- f* }+ S* U4 e$ _- }/ G% t - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
4 j# D, a( h$ x3 p! { - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""# }# ]8 b# U p# `
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))3 a* n; O* Z( g) R) K, C
- . U. {+ o. J0 x) a. o3 C& p% J
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""/ \6 c, M% ?) ^8 F
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
# g; x, q3 C. H: v! b1 G \ - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
& G: ~& `# D# v4 Z' k. O - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
! p& w T: o% T3 z - "M" "DIM" "C" "1" "" "Lw" "0.35" ""6 H* `* |: {% T! H- B+ j3 J1 S
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
8 h) J: Q- l" N, Y - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""! p/ p; x( G+ v( I4 Z
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""6 I+ u3 L* N# x3 D
- "M" "COT" "C" "1" "" "Lw" "0.85" ""+ m1 f0 c" S* W1 b
- "M" "Defpoints" "C" "7" ""
3 h' I8 [9 ]$ I - "M" "0" "C" "3" "" "Lw" "0.35" ""* i4 v' P: C: ^: c4 e
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
( h$ n5 V+ X8 b4 \, J - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
+ c& ^6 Q" E r: D- o - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))5 i5 ^8 O! u }0 Y( \4 H
-
% s: E, R% u# I1 c7 z" H% S8 y - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""% y% B( E* f2 ~& i
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""* N* j# c3 w' i" `8 h5 `/ g& `
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""( |- s3 ]2 \4 Q1 Z* b% Q# v5 c6 \6 q: N2 ~
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""% b/ `6 ]7 T9 ^- Y! d1 s& z9 [
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
7 f/ Y" [2 s3 g3 x( d - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
p1 F* r, x9 A0 v: B. p - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
6 S# r4 s( A5 N# c3 l - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""' Y) N0 h `; X+ C& J ~3 H6 F
- "M" "COT" "C" "1" "" "Lw" "0.1" ""' I; P6 ?* `. f0 X+ d) W
- "M" "Defpoints" "C" "7" ""% y6 |8 U+ C F; j
- "M" "0" "C" "3" "" "Lw" "0.5" ""
$ s( Y, y0 U8 X+ A6 o1 ~0 }- Y - "M" "CUA" "C" "6" "" "Lw" "0.5" ""7 i! w. V' }5 y3 c e% S
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""9 Q# ^# ~: r5 T4 r5 L" x
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))* R- V m* l4 @2 E) Q" k" A
- (DEFUN C:O () (COMMAND "OFFSET"))1 C5 D g' {( b* B
- (defun c:s1 () (command "surftab1"))
+ h' A7 k8 x# r - (defun c:s2 () (command "surftab2"))1 H% x$ B+ J: M2 W, {" w2 j6 ~* M, P6 Z
- (defun c:ep () (command "explode"))6 z: ^& K' o1 |9 \' Y! J
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
4 g8 n3 H! ^9 k# [6 e- ` - (DEFUN C:QV () (COMMAND "QSAVE"))
! r5 D' S8 c: J9 G( H - (DEFUN C:S () (COMMAND "STRETCH" "C")); f8 B+ f1 R/ x( T* \; y; ~
& \- O/ o3 K3 J$ f- ;************************** CAT DIM **************************9 }4 p# S; E; i
- k0 J: o+ A9 q; ]' O+ ]- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I+ e0 ~1 f& Y k- t' M+ I' Z2 C
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11), [0 X6 h+ q4 M8 ?
- (SETQ CMD (GETVAR "CMDECHO"))
5 \5 G& C: M3 e. E" ` O$ Y - (SETQ OSM (GETVAR "OSMODE"))' {5 v! Q) O' ]% b: V! ^! D C2 k- ~
- (SETQ OLDERR *error*
" x+ V9 I: @' l0 H - *error* myerror)) u$ s; E5 r) L) J- U
- (PRINC "Please select dimension object!")
8 F2 K+ ? u' w8 ?$ F$ A - (SETQ SS (SSGET)), R' H- D( E5 E
- (SETVAR "CMDECHO" 0)
2 A5 c- F5 b6 Y" ]$ G - (SETQ PT (GETPOINT "Point to trim or extend:")), ~5 X G+ w) m1 S& T
- (SETQ PT (TRANS PT 1 0))
; q+ x* W) B: l8 ?7 g) g& K - (COMMAND "UCS" "W")
# R, X$ y1 I8 z$ p. p4 k F9 i: K3 N - (SETQ LTH (SSLENGTH SS))% _! H" Z! Y3 I8 G! S5 n9 e; `
- (SETQ DEM 0)
/ n. b4 Z0 k, [" @ - (WHILE (< DEM LTH)
% V+ H; W w6 ], R% r; A - (PROGN) K) T6 n4 N+ r9 ]1 L
- (SETQ DS (ENTGET (SSNAME SS DEM))) X, R& G) s/ G' d% Z! `/ Z
- (SETQ KDL (CDR (ASSOC 0 DS))). z; c6 n7 ~8 r3 }
- (IF (= "DIMENSION" KDL)$ h+ P5 }0 l& z3 R, M1 I
- (PROGN6 [9 M! D8 u, i7 h5 U
- (SETQ PT10 (CDR (ASSOC 10 DS)))
?, ]. d% Y( W. m3 p U - (SETQ PT11 (CDR (ASSOC 11 DS)))7 l z) L) r- f+ A) F! |: M
- (SETQ PT13 (CDR (ASSOC 13 DS)))! P4 |6 ?6 J2 E. _
- (SETQ PT14 (CDR (ASSOC 14 DS)))
) G; U8 f0 _6 ~; D% L - (SETQ N70 (CDR (ASSOC 70 DS)))7 i3 F# O) m% E0 M. `: v; y) v& J
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
& b# M6 v4 R/ }/ B - (PROGN
$ f2 j) p$ c. n! f& a; F7 [ - (SETQ GOCY (ANGLE PT10 PT14))
9 Y# J: A; R1 c9 | - (SETQ GOCX (+ GOCY (/ PI 2)))
8 Q8 J! d9 ?7 X4 E0 ]! Y. Z - )- l7 |0 h: W5 g
- )! U+ H$ N- _% i! `7 Z7 [& K
- (SETVAR "OSMODE" 0)6 A- D0 ^3 _6 e2 g) @
- (SETQ PTI (POLAR PT GOCX 2))
" R! k( y# t$ B0 f) w1 v ^ - (SETQ PT13I (POLAR PT13 GOCY 2))- }4 q" a3 _* ^- k/ D" Q
- (SETQ PT14I (POLAR PT14 GOCY 2))
( v4 c. I( P4 ? - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
0 Q6 P5 j, @$ v8 i* { - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
$ K9 l% j0 {, @& U - (SETQ O13 (ASSOC 13 DS))) ^( v" ~9 E- w5 R' M. u J) q8 L
- (SETQ O14 (ASSOC 14 DS))5 |# U0 [: `3 o) I) u# K# W; I8 c0 o
- (SETQ N13 (CONS 13 PT13N))1 S& Y- t. w. s I
- (SETQ N14 (CONS 14 PT14N))' _& K" x1 |) I" Z
- (SETQ DS (SUBST N13 O13 DS))
$ a2 f9 k: O7 e4 N* B' l/ e - (SETQ DS (SUBST N14 O14 DS))
; @/ ^3 Z, p- j; Y - (ENTMOD DS)
5 s4 d& a r9 x! B - )8 M9 r1 w1 _9 ~
- )
: _: Q7 H8 K4 ^2 J3 [# T - (SETQ DEM (+ DEM 1))2 @! z5 ^1 V9 }8 k
- )
2 z- `: W; v( g5 n `% y& N - )
* N0 h0 Q* r' E D$ k - (COMMAND "UCS" "P")
+ ~) e+ H. o# x0 j& ?7 ?, J' k - (SETVAR "CMDECHO" CMD)
) s& }' G$ e6 M& k+ @& n+ n - (SETVAR "OSMODE" OSM)
6 b8 g9 h' V I% V* d" ` - (setq *error* OLDERR) ; Restore old *error* handler" h% O( ?7 S) w- E. G+ R, z" C
- (PRINC)5 @8 K" ?4 G7 f2 r
- )# }/ s/ m; b0 j T5 i
( a& D1 T3 [- A6 n+ v' M% _: L- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI( \( r d/ G6 i: S R! \3 M+ `
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
+ v# s4 ~. ^& F# A9 z6 p - (SETQ CMD (GETVAR "CMDECHO"))
' J5 d z# T2 ^& T! p - (SETQ OSM (GETVAR "OSMODE"))
! {. o# B% v6 M - (SETQ OLDERR *error*1 f, k) r5 l. I$ e( s3 S
- *error* myerror)" O$ a: L! Q7 _; y [ X; E
- (PRINC "Please select dimension object!")7 E0 n8 b* N" t5 e! k" ] |) A
- (SETQ SS (SSGET))) K9 \$ m2 _' {" a! }* Q
- (SETVAR "CMDECHO" 0)! s3 x) ^; B6 S
- (SETQ PT (GETPOINT "Point to trim or extend:"))
% g6 r6 J( a; Y4 y M - (SETQ PT (TRANS PT 1 0)) T" |/ D5 ~# Y( `
- (COMMAND "UCS" "W")
+ y5 t- q+ b0 K7 a( y% l - (SETQ LTH (SSLENGTH SS))
4 \* \8 R! o) U3 }; C( K9 K2 T - (SETQ DEM 0)
3 R) V6 t6 R3 \: O, n - (WHILE (< DEM LTH)
2 p7 k$ L, F: B% y6 U - (PROGN4 h2 |+ Y9 t% B S- R
- (SETQ DS (ENTGET (SSNAME SS DEM)))
7 w/ g1 k9 L; X' n+ z$ B - (SETQ KDL (CDR (ASSOC 0 DS)))
7 ?. u/ f/ h* f/ B! D - (IF (= "DIMENSION" KDL)6 X. J" b! a, n; A' X2 g
- (PROGN
2 a8 w0 P; k4 n - (SETQ PT13 (CDR (ASSOC 13 DS))); p1 j i6 d" m
- (SETQ PT14 (CDR (ASSOC 14 DS)))
# E7 Q |$ v1 B9 @2 _ - (SETQ PT10 (CDR (ASSOC 10 DS)))1 _- X: v) f2 v
- (SETQ PT11 (CDR (ASSOC 11 DS)))
4 I: _+ `% o5 m( e' t. q- b+ z) `3 H - (SETQ N70 (CDR (ASSOC 70 DS)))6 S& g7 Z9 u& o
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))- }7 X+ ?6 [7 @ Z: t
- (PROGN9 @# z r% f' V- U5 j' l) K l
- (SETQ GOCY (ANGLE PT10 PT14))$ m# ~4 Y4 y7 Q
- (SETQ GOCX (+ GOCY (/ PI 2)))4 Q* x1 q* {5 ~: M7 x& V; I8 Z
- )
' N' r: O) G; U& p% f% ~# \ - )
5 A& z) K0 Q2 K4 x/ s, { {& v" g - (SETVAR "OSMODE" 0)
/ J( b5 [* @. T) C# e1 s - (SETQ PTI (POLAR PT GOCX 2))
2 N* n& v: X& c - (SETQ PT10I (POLAR PT10 GOCY 2))4 N, K4 R! w0 x9 m3 G" f% R# l, ]
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))8 f7 ?! A2 d6 _. ^* l- B' K3 Y
- (SETQ KC (DISTANCE PT10 PT10N))
6 C5 u, F8 | r* u; i' a) P - (SETQ O10 (ASSOC 10 DS))
' D* o2 W; C' i8 _- e/ k - (SETQ N10 (CONS 10 PT10N))
& G% ?1 U; ~+ }) D! h' _4 R - (SETQ DS (SUBST N10 O10 DS))& z3 V8 r/ h9 ]
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))# B9 ?1 z1 [5 ?/ a. F
- (SETQ O11 (ASSOC 11 DS))4 Y' Y1 d0 ^# F" Y
- (SETQ N11 (CONS 11 PT11N))
* M; L$ t7 x5 ~6 T+ A - (SETQ DS (SUBST N11 O11 DS))
% {- _5 Y5 n; H$ T# H - (ENTMOD DS)* A/ U; g8 p" D4 C/ \
- )
2 \8 g% {( I: ^: j6 A - )
8 |5 j( V3 w8 }# A/ E h$ s - (SETQ DEM (+ DEM 1))' u, U6 { E) d
- )$ `6 m3 P( b" |2 N# @2 H+ z+ Y! I/ |
- )
; D! z7 Y0 d4 r( s" b - (COMMAND "UCS" "P")# m x7 O2 ^1 @# g
- (SETVAR "CMDECHO" CMD)
+ U8 ]$ l8 j0 V6 D: b* G - (SETVAR "OSMODE" OSM)
& Q# t+ m0 c8 z4 h8 _( q; @0 h, Z - (setq *error* OLDERR)
0 H1 @! r& N$ {1 k. s - (PRINC)
& X; w5 f- c& r! |: L - )! ]" r; N' C# E" {# Q. m
- : s D% b+ v: E7 ^
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================2 H* G6 Z3 a/ u% o% z# G
2 Y- T5 t; p4 Q/ ~6 G; {- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
+ d" ~5 B" y$ @, [% j7 y7 b! v1 W - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
L2 ^$ z* @8 S2 A' T* v- |: S - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt5 l) ]9 r/ F6 |1 ?: z, m
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))). h& v1 r9 h6 C7 w
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")0 f0 q6 h- z: \ U) Q0 o# x4 e
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
* I) ^/ R5 V( B. E8 v - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))7 Q% N& m, e& w; T
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)); `7 d' X& D) _0 [( @
5 U, I# n# @ k( [; W4 ~- ;;; ================ CHEN COT (TUU) =================- B$ |+ I# \! n! @ {
+ |2 l' ?0 B, u" z$ G4 I- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")# w" k6 i/ p* e( d; X6 {0 f
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
C" w: ?9 B, f - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt8 N; b; U1 Z5 o! O W$ V! F
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
1 j: ]: ~, H( g/ n3 E - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
8 r" _" _# p# |, X - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
3 j2 ?/ d. ~* q! Z - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
, o; z& b+ v, U1 Q: | - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))4 G* v2 {0 |) E6 c1 b
" Q6 K! @- X4 p- ;;; ================ CHEN KY HIEU THEP (TP) =================
2 c5 D0 A5 Q: [5 j/ Q# a
+ R- R* S) V3 H, B- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
3 I: L# i6 Y# B" o - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
5 O/ _; F$ q5 x) W7 E - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
& v2 Q4 s; r/ n+ a, j - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
8 W1 e" F8 h U7 ~1 R - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
; y" V( x* h0 ] - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
; d6 g: `$ l' y. h - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))2 r' u1 d1 I) h' T
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))" l$ s2 l4 a, a2 L' r
- Z' `2 k; x. j' P: K8 ]- ;=========================== TAM TUONG (TAM) =================================
) L! e, O2 Z- G7 ] - + e) s% l, @8 D6 y# P
- (defun c:tam(/ data_m)
5 O: V" x0 P7 Z; z( ~- x+ } M - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))( V6 ~% P4 R$ D6 \* {/ `5 b, h x3 R
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
0 T+ X7 f2 i0 T( t - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)/ b' `4 x1 H# L. k& H, O
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
$ G. ?9 X1 q) O% Z* n. h4 @ - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
/ E8 h7 x0 }+ h& `3 ` - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
1 }6 ^( n0 g/ R5 s" g - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if2 x" X; e x) ^8 W
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)& K/ C6 J6 C- M" Q6 i
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)( H. Q% `: d" E# Q' H' q
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
/ N( C, q4 p' y: J, G0 U% N& s* } - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
& f, _2 `6 G% ]; z/ ?' l B6 a/ S - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
6 |2 }& i; Z* n/ n$ j6 u - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
1 @+ N, d& r/ V& ]! j g& {. L - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
5 e0 m. R2 O% R u0 F - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
# }0 l4 i, M, w/ w - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget. y# r2 H" B; q* H' x) H$ f8 A
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
( s: Q8 R9 X& @( W - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
M* ~5 h: L& Y" { - / T. i( F+ e5 D0 Y6 a# m2 T/ ^
- ;============ GHI CHU PHI (T1) ================# A: e4 A( B" r- I
- 3 f0 |% ~" o7 r- \
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))% Y8 k' k+ @- Q1 ?, y
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
6 s1 d5 S- {9 ]- z1 ~1 a' O$ O0 }0 w - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
8 y1 H$ i6 W q: I. r6 h2 k - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
3 D" L0 ?1 W- t- J6 L - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))# }2 {& O4 L2 v/ R, F/ T6 ^
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
5 b( [$ W+ W3 E, L3 Z4 s - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
2 v5 Z8 W2 D0 Z& E - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )$ ^/ t# x: u0 a. P) P$ y
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")& ^" L& V0 H6 v& T3 O
- (command "ddedit" pause))" N8 V4 u- W( a8 F( d
a+ V6 E3 `/ P( s M) \3 Z- ;;; ========================== Join (J) =================
2 V9 T0 a, q% X. j9 M1 q
7 d( ^1 K8 S1 {- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
( w, D, x& P$ @ - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))7 U" _9 Z9 y7 Y: M8 q+ I1 M
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
- h6 @3 }7 m9 [& [6 r - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")- J) _/ O0 ?3 B9 v( P0 U
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
& {) |% o0 }6 c6 B4 \% c: Z - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt "")). \0 ?0 i1 u& h: G
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) " j! z8 p- S; x G1 m! t8 B
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))6 l( Z* t! T: \4 m: r2 D& C
- (setq *error* m:err m:err nil)(princ))
3 r) C+ X5 ]2 j, ?0 V( V$ C - & ^0 l5 U' o$ \6 e! b
- ;=====================================================================6 b( F! y6 e( J" ?
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
* X& q+ Z% n4 G- {8 i - ;=====================================================================
# X# Y5 ?: n8 L- @% T - 3 G& H* D, S. W/ m4 {1 T
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old). \5 V* y, v2 A# L; ^% A# S
- (setq old (getvar "OSMODE")) * N2 Y! X0 c- }! b' P K$ w
, ?% g* g: ~" U! \- (setq p1 (getpoint "\nStart point:")) p# s6 }, {+ V7 q. ~2 v( Q; |) X
- (setq p2 (getpoint p1 "\nEnd point:")) U+ V6 N8 R) h! y
- (setq side (getpoint p2 "\nOpen side"))
& ]8 z( g# o$ W
' N0 Z/ P7 y$ X9 j- (setq dis (distance p1 p2))) v8 |$ G% s$ C8 O6 N _! ~4 U
- (setq ang (angle p1 p2))1 \" y8 J0 x+ F# k& O- @8 ^3 h6 l
- (if (< ang (angle p1 side))$ Y* _! C B, m7 A
- (setq angside (/ pi 2) )/ J5 n! G; Y6 X' a- m
- (setq angside (- (/ pi 2)))5 p' m. K8 b( M6 q
- )9 n( H3 ?" D1 G
- (if (>= (- (angle p1 side) ang) pi)& W0 a. H7 E- s
- (setq angside (- (/ pi 2)))
- r4 ^4 f/ \" R, K - )- i ~2 \ n( l. j* w
- (if (>= (- ANG (angle p1 side) ) pi)8 l, o" V- m- Q5 @) E- A
- (setq angside (/ pi 2))
+ I. m' q( Y# H# U: P! }) I6 \4 t. D - )$ c' r: L9 j) D8 Q3 _0 b
3 `5 O/ i8 m2 v- (setq p3 (polar p2 (+ ang angside) dis) )4 \* z4 O6 }: R
- (setq p4 (polar p1 (+ ang angside) dis) )
3 E+ A2 H9 e5 g4 I) N3 Z - (setq wid (/ dis 15))
$ I, W5 u& J" V( ^, d* f9 \$ R
8 b T' [: K* X! m; @. m" u- (setvar "OSMODE" 0)
8 d* \1 L! i+ h6 c: B - ( E* N! L% k3 T6 h
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 , M; J/ A& D! j+ h8 S( ^% r/ f
- (polar p2 (+ ang pi) wid) : }9 u: c- i x
- (polar p3 (+ ang pi) wid)
' g" |$ A* \5 J( Y+ H2 y4 f6 p/ X9 B - ""): `* B/ g3 H% J N
- ) j$ ~/ l3 a: J5 Q* Q
- (setvar "OSMODE" old)4 S& [) z: Y, z( K/ M
- (princ)+ ?2 A8 N! o. u9 K/ b
- )8 a8 J+ d* K# |
- a+ ]! ?4 S+ K1 M
- ;=====================================================================
) ]6 y4 q7 g# r8 B, T
. ^3 Z" Q) ~* S9 e- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)& }5 K2 U; O/ V9 |
- (defun cua1 (pt1 pt2)
# A% q$ b! [6 g! v o2 f - (setq p1 pt1- ]1 |; r6 v( z& w; O
- p2 pt2)$ Q* Q1 ?# |1 T; t2 W. D" Q
* Y1 M0 q8 n& H; b$ K- (setq ang (angle p1 p2))3 A9 D# \2 g9 c" k
- (if (< ang (angle p1 side))
v" R' B; e1 M" D- f r8 Y - (setq angside (/ pi 2) ), z3 P/ g6 g/ M; m7 N, L) s7 c& m
- (setq angside (- (/ pi 2)))) n. _ B5 y! {: G) G' y
- )4 Z* H* t( \7 \/ d& d
- (if (>= (- (angle p1 side) ang) pi): G& B7 k s# A
- (setq angside (- (/ pi 2)))4 ^% {; e P9 K- z- V
- )) I- ]1 Z* Z" F4 q
- (if (>= (- ANG (angle p1 side) ) pi)
3 o, L% V" ]3 K: E5 { - (setq angside (/ pi 2))7 ^3 l5 N+ t, ]. a
- )
z) H; C, c t0 s0 f - ( w# ` L- F* E/ k: E
- (setq p3 (polar p2 (+ ang angside) dis) )- v# D, n- F( j, ]0 y7 V) A
- (setq p4 (polar p1 (+ ang angside) dis) )" y! \% e, h- u& w* k7 C
- (setq wid (/ dis 15))) v6 J: \ F3 @4 j9 F
* |- _( Y/ L8 x3 F7 x1 a- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
$ Q- F& ~# t3 r L! z- D8 t2 H, Z - (polar p2 (+ ang pi) wid)
% Y, @: K- K& }& x- n* w+ \% ~) z8 X - (polar p3 (+ ang pi) wid)
2 ?; L, J& @* X: j* _1 ]7 S. k - "")
& F+ O. E" c @ - )
. |, |1 Z: w5 M# U* p7 g) A- O - ;=====================================================================1 _8 n- R8 q% W( ?
- (setq old (getvar "OSMODE")) 6 f! ?: @7 C8 f4 _ j2 U4 B8 Y5 z
2 \: z3 ?6 ~1 O/ d, Q0 L; P g- (setq p1 (getpoint "\nStart point:"))
8 R" |( e5 g, b0 z - (setq p2 (getpoint p1 "\nEnd point:"))3 I4 S/ V' R8 B' U. D4 B+ d- d
- (setq side (getpoint p2 "\nOpen side")), o1 ]6 s7 F4 R1 `9 t( V
1 C0 N+ \& o* ?4 O4 r/ l6 g- (setq dis (distance p1 p2))
4 ^% M& ]4 c3 G. `2 \ - (setq dis (/ dis 2))
. A) b% J- V1 A4 \ - ( S8 O0 o0 A, |' G% T8 E9 p. b. ?7 H
- (setvar "OSMODE" 0), r& {& f; Z2 ]4 M" K' r
- R7 M; r2 N1 b8 O/ r# \- (setq p1 (polar p1 (angle p1 p2) dis))% u2 A T+ y* ^* g& h
- (cua1 p1 p2) % N z& c1 O: ^2 K
4 J+ ]! \7 t5 G. s" ]- (setq ang (+ ang pi))4 G6 n$ N' w% B9 v5 ^
- (setq p2 (polar p1 ang dis))" L# I) L) G1 Q1 {* n% T
- ; (setq side (polar p1 () dis))
% E* @% I3 m# e5 W - (cua1 p1 p2)
6 |- ~; {0 j6 A) X' a$ x
) ?; f" Z1 {% X2 T# _% { L- (setvar "OSMODE" old)
/ s- I3 w! K6 y - (princ)
7 \6 w$ A4 S0 r& i7 ^+ X& X) b - )6 o0 l# A4 U+ Y' T) \& ~& s
- 9 w2 ^ f2 [7 ]+ i6 n2 f
- ;=====================================================================
% P0 ^' K0 N) p; |6 b/ V8 ?7 Y3 n - ;"Glue" text strings. All adopt first's properties./ u# t' a+ N) ~+ G& y9 M' I1 l' b
- ; Author:
0 V0 l% m: B' K' d9 K - ; Henry C. Francis
, S+ {6 p: d7 s( w - ; 425 N. Ashe St.7 G% V9 W0 a$ |' j7 d3 Q x+ {/ k/ @
- ; Southern Pines, NC 28387' i3 t- b- h9 W: G! | F6 J
- ; http://www.pinehurst.net/~pfrancis0 Q+ F4 B( k- _$ D6 z
- ; e-mail hfrancis@pinehurst.net4 d! X: n& {9 J( v) G q8 O# _& K
- ; All rights reserved.
7 `; ?* A( n4 Z: y% F - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)3 t0 O& D, m! {0 o( L ~
- (while3 s$ u2 `) F: W5 b4 Y' x6 f0 K* l. I
- (not
$ b3 t1 f; U# l' y* H - (and
+ M. k5 h8 }3 u; O - (setq ename1 (car(entsel "\nSelect first text string to join: ")))% t; v; { ^' j- z; M& c- j8 ]( B
- (setq ent1 (entget ename1))9 {" _; l" Q% S% d. w. U8 \& l
- (eq(cdr(assoc 0 ent1))"TEXT")
+ a. N% ]5 O0 Q4 z7 K - );and
_) p$ F- [5 R: P8 H8 X+ |( t3 \ - );not: z9 N, @% } M" Q1 ]
- );while
1 c" B7 B4 F$ o( C" m - (setq old1 (cdr(assoc 1 ent1)))
. a+ m" X0 v3 b8 L& M - (while; f4 s+ x* U' o7 E
- (not
6 p! Y, U6 L: e8 V2 k - (and; P! b# L. q" A m$ b t0 [
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))! G+ H( t# E \/ Y( d$ O6 R
- (setq ent2 (entget ename2))0 C# ?: x' U+ N
- (eq(cdr(assoc 0 ent2))"TEXT")+ i% K! I% c8 l* j9 f
- (not(eq ename1 ename2))' A% J. s& Q' M
- );and
) K# K) _* ?0 S3 }1 M- @ - );not
7 @$ @5 I- o5 b6 x+ i. p- h; |: D0 q+ L - );while
. a; J! o+ x/ n$ Q - (setq old2 (cdr(assoc 1 ent2))). R& H6 M, F$ i8 W' [4 b; G0 b
- (setq new1 (strcat old1 " " old2)
& \2 X2 W% G. p - ent1& D3 u- L* C# u4 q. N+ n2 X
- (subst (cons 1 new1); V0 \$ e) n+ Z2 g( O
- (assoc 1 ent1)( | A* {8 a7 \+ R$ s& f: ?) N2 E
- ent1)
2 J- P3 f8 l! m. S& H7 L; d - );setq
+ g4 n! K+ @ n0 w - (entmod ent1)/ f T1 [1 Q! J) J
- (entdel ename2): Z! b' e# S7 a8 G* z1 `# T9 ^
- (princ)
; b. h; w9 T3 y) V: }& C - );defun
9 v+ y" z& U* H( H6 S0 V) N
* g4 ^7 B, Q1 e& O$ A2 \/ u- ;=====================================================================& i, K5 S5 |1 j$ j4 B B
' Z9 l/ M7 \: p0 O- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)# e. s% W8 `$ u6 f" O
# A# Z3 h% H2 K& Q- (defun nterr (s)1 ~' p9 g8 [& v1 G
- (command "_.UCS" "" "_.UNDO" "E")3 O0 E8 z# T- h) q5 W
- (setvar "cmdecho" 1)9 k6 ~7 J9 y; N, u a; e: H7 e7 A6 x5 ?
- (setvar "blipmode" 0)# m. o( d( C0 M8 m& N+ m$ x& `' o
- (setq *error* olderr)) e4 [ D+ b0 {! f8 F
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
% p7 u2 W- D+ ~+ u8 R& I - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
# m& l8 n6 E( U+ {: t - (princ)
6 i& Q+ e2 a$ A: g" q3 n - )1 y8 K& x' E* F
/ ]+ S; Z( Q/ O1 O a- (defun tim_in (dt / p01 p02 ktra)% _# O+ v8 A( \
- (setq p01 (cdr (assoc 10 (entget dt))))% C# _; p) l* K" }% v) X* D
- (setq p02 (cdr (assoc 11 (entget dt))))
. {: U @8 G0 v, ?: n - (setq ktra T)
7 f( {; ^# x% @ ?# R. ^; u - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
/ ?; m* V$ R& V$ p - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))" F) G4 v' S+ @/ Y9 g; o
- (setq ktra nil)+ j! B a$ o9 K8 W
- )
9 E8 P" ~4 O- d( w. j1 @ - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
+ `! X* X( R8 X( m9 R - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
9 [4 F, F8 G! T7 g0 F- D - (setq ktra nil)
& W& M' y* ?& Q9 g/ P2 i - )! H' q5 l* g& V2 y
- ktra# ]0 Q' B5 }9 E) z. K
- )
. l2 j3 y3 Z% \ g
' ] I' ?8 M2 x& T4 U- (defun timdt (dt1 dt2 / p01 p02)
% h2 o/ M' V7 F8 J: C% X - (setq p01 (cdr (assoc 10 (entget dt2))))
5 t3 g1 E+ x& [! B - (setq p02 (cdr (assoc 11 (entget dt2))))
4 k+ R, I( X Q4 l% m- q - (setvar "ucsicon" 0)& S* D' a3 |2 U1 u
- (command "_.UCS" "E" dt1)0 P! C( B( z0 V. F* R; T% G3 V3 t9 E
- (setq p01 (trans p01 0 1)). D9 h+ C* i# ?
- (setq p02 (trans p02 0 1))
; S! i5 D* d1 P: j* F2 V1 R9 t5 {, p - (command "_.UCS" "")* x. K, L/ f& l) m8 g1 W
- (setvar "ucsicon" 1)
5 N6 J; _0 I n) ]" e b - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
6 r: p% U! n* t, f& H: M - T+ Y. d, u0 d% X7 @; z' d' c% @
- nil8 l; ^' A. @, J6 o7 w" m
- )
. L3 b. F6 H- X k - )
, X& _* N& i }6 g - ) d7 p, i9 B: o7 L* ]$ e$ s' I
- (defun tim_out (dt / p01 p02 kt)
+ N* u1 h7 k9 h$ O - (setq p01 (cdr (assoc 10 (entget dt))))
L- Q M! t9 \3 I& t* i - (setq p02 (cdr (assoc 11 (entget dt))))
2 p3 Z5 X a- j. v( S0 r - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
/ c, H5 U3 x! N F7 v - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))) U0 e: Y. r9 h- }! k
- (setq kt p02)
' K) H l: t; \' k - )/ c# g/ ^9 T$ X/ u3 z" p' q1 L
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) / [. ?* ^! e+ M. ~8 [
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))9 t0 w( H2 G; O! @) T4 Y
- (setq kt p01)" m' i. Z8 f" s2 U) D
- ); {% K W% H7 q: q5 N
- kt
# A; d4 F7 R% _/ { - )% ^" s, K7 H" R/ n6 R! N. Q2 `6 M
- q8 K- M# p: b4 W; ?/ S
- (setvar "cmdecho" 0)
; X j' J1 Z, ^6 s - (setq olderr *error* *error* nterr)
+ \( z* E( @& m. p6 q A" d - (command "_.UNDO" "G" "_.UCS" "")- X7 F0 @* l: U! _! `: Z" P
- (while (null ss1)) l ]( Q5 U$ q$ N* |
- (princ "\nChon tuong muon noi...")
3 [( f& \; A9 r$ u4 S6 A - (initget 1)5 v! y+ P+ N! ~0 S+ c5 i' i; s
- (setq g1 (getpoint "\n>Goc thu nhat:"))& C, J4 ^* R* K$ f
- (initget (+ 1 32))
- v6 t/ g/ u& U" W2 D - (setq g2 (getcorner g1 "\n>Goc thu hai:"))' O' D6 k- Y* H
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))8 o; B5 O0 l! F' x( i$ m( c. v" E
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))6 d- R p5 t/ V. ~
- )
. |1 M8 e. a4 {; O0 Z4 h9 j -
1 G9 i( E; p% i6 B# y - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
0 G/ ~) i; v( l/ J4 m - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))2 G* \6 t' @8 k& m
- g1 temp)# \4 b8 R+ ~8 ^; B2 K
- (setq ss1 (ssget "w" g1 g2))$ d7 d3 Y5 M& H! R9 e7 O c
- (if ss1 (command "_.ERASE" ss1 ""))
" E; b8 @' g( \% z6 G - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))4 s( r) i5 j# c3 Q) |! {7 M5 N9 E
- # e( k+ l/ i7 _! A* B4 s) G4 J
- (setvar "blipmode" 0)9 ]& z, H# g, l$ T9 P2 Z
- (setq i 0 l (sslength ss1))6 u- A3 K+ W) a* V: Y6 M
- (while (< i l)
) }/ m- m: Q7 N4 Y - (if (tim_in (ssname ss1 i))
' _6 G2 b6 F) I ]* C - (progn 3 S" d @- \! ~2 P) @0 N
- (ssdel (ssname ss1 i) ss1). n" k' \; k6 K1 L- L0 ^
- (setq i 0 l (1- l))
% D3 P. J8 i9 L4 h6 e- u; H, M4 N1 O - ) $ a2 l. ]2 d \
- (setq i (1+ i))
" N- J& P3 T* {* F' H( T - )/ S1 F% a/ {0 k
- )
" j9 x5 h6 O/ A) a - (setq l (sslength ss1))
4 b- @9 D% S% O9 x$ Y/ M H% ~ - (while (>= l 2)' [+ o" _2 t# _* |3 V& r% K
- (setq e1 (ssname ss1 0))! y, ?1 D$ i& t- Y7 p0 P9 L6 a
- (ssdel e1 ss1)
1 s# ]1 F) @6 n - (setq e2 nil i 0 l (sslength ss1))! }* j' H7 f+ L T( n% X1 L
- (while (< i l)
8 @6 s1 M& e0 ?+ e$ L9 W" u3 V - (if (timdt e1 (ssname ss1 i))2 m" m" T; V3 \3 d7 T5 O! |
- (progn
M t2 B8 U& ^ - (setq e2 (ssname ss1 i))) u1 ]- m7 L- i% }& J& V4 S W
- (setq dd (tim_out e1)): O2 B' U8 G M/ B8 d1 K: F( g, P
- (setq dc (tim_out e2))2 U! Q7 q G3 k( q$ |7 z; y
- )
3 ?- G) R7 k/ X& l3 I9 B - )
; W/ f1 J1 g; p2 A/ ~0 f3 E - (setq i (1+ i)). G3 z+ y4 j2 `/ D
- )( g6 }1 q. U( {# l5 Y- t6 u$ U
- (if e2 (progn
4 p0 X* ~) W( Z8 l5 {$ s" B- R - (ssdel e2 ss1)
; l( W8 |. q: R. U - (command "_.ERASE" e2 "")
, F& t/ G; t I( H - (setq temp (entget e1)); X1 Q! F% v6 n3 r6 u7 s3 s
- (setq old (assoc 10 temp))
6 `# d' f( h. e2 i; d" J - (setq new (cons 10 dd))/ L. Y2 B* [1 N! ]$ U
- (setq temp (subst new old temp))# Z# n2 C' t+ R5 g
- (entmod temp)
K0 v3 C/ T5 ~ - (setq temp (entget e1))
8 B5 B' `. M ^4 ?) E3 k - (setq old (assoc 11 temp)), _2 u' d* J1 x: c- K8 e) X
- (setq new (cons 11 dc))* d% I6 X# G; A& O2 e
- (setq temp (subst new old temp))
9 G! |0 h9 s1 O# D# J - (entmod temp)+ p. g/ N: z7 e2 B, }% A# L6 G
- (redraw e1)
' c3 A1 B' }. e# `, M& U8 l: r - (setq l (sslength ss1))
: T M) U' E) B5 m- e# F - )
0 n# ?0 H+ e/ }+ E1 f - )
3 e. H/ V. b2 R% B" x$ o* L! t - )3 {+ y, h& K- ?. r7 ~
7 m; H( l( y: G; P6 P( T( \4 C- (command "_.UCS" "" "_.UNDO" "E"), g( a: }3 L o: G e) t6 H- U# v
- (setvar "cmdecho" 1)
$ ?9 W- C0 k/ W5 x2 Y - (setvar "blipmode" 0)$ `! o3 ]0 E( n# a
- (setq *error* olderr)7 \- e' L+ @9 o+ J( ^. u
- (princ)1 j6 ^$ d, s/ p& ~
- )' [, E' t: f4 d) `/ S
- ;*********************************************************************! B) }1 _2 d; m: B# N4 a. Y) n
- (defun ketthuc ()$ s0 |& ~7 m! r5 }/ _9 J
- (setvar "cmdecho" luuecho)
) U% Z! v% G( U" O) Z - (setq *error* luu
" `2 x ^* m( z' @$ ? - luu nil
# \# S/ \1 ~: X" O7 m6 P% Z7 A - luuecho nil @! o4 R3 a" j+ s) l
- );setq
1 m6 y4 i+ a4 ^- p8 A m6 @ - (princ)2 Q$ b0 B8 o/ j. Z! b; q/ g4 ^
- )
: z+ W) l% s9 Y7 y1 j" S - ;*********************************************************************+ i5 Y, y2 ^' w# X, y/ g; Z
- (defun modau ()
9 V! ~" p- E$ a4 ?% H" f - (setq luu *error
5 P7 N' g, J2 }; k3 K' c" N - luuecho (getvar "cmdecho")' \* l0 q/ {3 R. M- m
- *error (ketthuc)
% S; U% O5 n: O( A% i+ { n5 w8 ] - )7 T4 R( K+ G% D( t% M! u* Z% O k. C
- )) H; h5 L! `" `' z% H$ e+ g) K
- ;*********************************************************************
& F8 I! y0 ^6 d; j - (defun xulytext (text / kytu ma sokt luusokt lui )2 J9 A3 p% |( W
- (setq kytu (substr text (strlen text))
; O r5 b' l3 i - ma (ascii kytu)5 O. V, n; o6 l- i8 k: |6 V; |4 x
- sokt (read kytu) ) N. H( O: w/ H) h- j8 l1 x& h
- lui 1' H: d0 I4 I" r0 I- ^2 H
- )
$ m. w: c- k) j8 R* `, W - (if (numberp sokt)+ M- k) R6 V5 o4 v
- (progn5 ?0 a( ^* K* m, P9 r2 D+ O
- (setq luusokt (1+ sokt))
) i7 ]- t3 i: j1 r! W6 o - (if (and (numberp sokt)
* t- @; r. h9 q. ^ - (> (strlen text) 1)
) U# ~3 ~# i2 }5 A" i6 X - )
, z# E- b& y$ u- E) E* c% |& Z - (progn
7 Y" [! Q. H, f/ _3 D9 G$ ~ - (setq kytu (substr text (1- (strlen text)))2 q% A2 |: q5 q# d- z+ u. `4 \
- sokt (read kytu) 3 J% r; v% C6 s" I
- )4 [) v3 k9 K5 Z9 m) N6 O) K
- (if (numberp sokt)
4 C- a; |! W! M! N5 r - (setq luusokt (1+ sokt)
* A. A1 `3 |& E {! I - lui 2 B: T8 J8 L% @
5 C# Y/ b% G9 o! d- ): _+ C% c2 A# E* a0 m+ g
- )" F: ^/ c7 r" P! j
- );progn % P! [( a0 |$ _1 B# d( H" b
- )- j9 T0 k* R5 @8 O" j1 J, z% Q
- (if (= luusokt 100) (setq luusokt 0))
/ s8 p: |+ V4 l- p - (setq kytu (rtos luusokt 2 0)7 a- |6 O$ ~6 A8 p) _, w! r% ?
- & p# K0 U( l1 s& z% t( z
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)6 W8 J' o/ |2 A3 j, f
- )8 v) B+ s7 h* X# G4 Q. Y* M2 O' J4 I
- );progn + ?' \; G8 j8 d% g
- (if (or (= kytu "z")
9 `8 U! B4 O' H7 x - (= kytu "Z")
) K( }# S* J- s0 r0 ]' o - )
" T1 c+ X4 i- f8 q# T6 v; Y7 _ - (setq text (strcat text "0")1 s- w% k2 c( ] U0 E4 ]/ e$ R
- textxl "0"
/ e B) `3 ^8 A2 A# P. X7 e, Z - ); U, N, {4 D2 B6 x
- (setq ma (1+ ma)
: }' X3 u) ]1 P5 o ^: Y) C - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
4 U* q5 Y2 o R" ] - )
* Y9 V. a( G- R1 `: C( K - );if) Z: y: o- A/ ], g3 Z$ c* T
- );if" |9 n' }/ J, @) e/ ]3 P
- )
" j- X7 m) |3 i6 A5 b& D - ;*********************************************************************
& a/ U* K. l* E8 a d- H1 ]/ P ? - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle) y3 ~( n. O/ e" {. w
- ;Neu doi tuong la text thi tiep tuc
, }) }7 R2 {* a3 s4 M7 k5 I4 p8 z - (setq doituong (entget tendoituong)( P8 J% y' S5 a% T* d; \8 K
- kieu (cdr (assoc 0 doituong))2 l2 }5 u. x) y. q% @6 K9 G
- canle (cdr (assoc 72 doituong)); b* R! l. H/ e- L, F. W
- ) ) Q2 ?& I- u* h1 o3 s" C( b Z
- (if (or (= kieu "TEXT")6 v1 y. F ?. B, j* z4 o& m
- (= kieu "MTEXT")
2 D1 c/ {- B5 C; U1 W - )
* v g$ W7 Z Y" N: G3 t - (progn0 u! z" V( D+ l2 W9 U* ~+ v
- (setq textxl (xulytext textxl)9 v: ~1 Z* w, ]$ k
- text (cons 1 textxl)5 f+ N/ ~$ {" W& p" i8 h
- vitri10 (cdr (assoc 10 doituong))( a6 \" z& F9 d0 S: P' I Q9 c1 }
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
1 m2 x$ R2 Y0 Q1 X - vitri10 (cons 10 vitri10)2 j& T5 r* n- h* k2 v2 n! W
- vitri11 (cdr (assoc 11 doituong))
5 v7 ]6 C& V$ ~8 [ - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
' s4 S+ q$ Z4 q7 _" Q" T - vitri11 (cons 11 vitri11)9 Y% N7 K1 H5 s
- dem 0
9 l5 R$ E% c# [. [* V - dsach nil* q6 z( V3 B+ X- f- L+ z4 }- w; g$ J: V
- )
5 p: k& g* r+ H - (foreach tam doituong5 a: F1 L$ J" z0 a5 x
- (cond
% U' y& o5 P+ T% P- W - ((= (car tam) 1) (setq dsach (append dsach (list text))))8 D8 B4 F. A# } D2 J
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))/ ~) J# j! l9 s* z! X% C
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))- d, ^) a3 J" O, ^
- ((setq dsach (append dsach (list tam))))- `' h: p* [8 a4 u/ k2 Y5 m
- )3 Y" { z4 A$ q- X; _0 P( k
- )
7 [3 s. |9 O& e, z/ {* n$ A9 ^. g - (entmake dsach): ~8 q/ I$ v7 U, e1 N& s
- );progn/ p" Y9 N0 y$ K5 M. ^
- );if
$ Q( f6 m' G8 E' G% L) X3 y ] - );- Q# ~' S4 |- M2 r
- ;*********************************************************************
, V% E% r4 }0 @# k - ;sao doi tuong cu sang vi tri moi
7 _' X7 |, \4 z2 X
) u. E" p8 s+ l7 v7 I- (defun copy_dt (tendoituong )
. e: C& O: G+ |1 G- F - (command "copy" tendoituong "" goc toi )9 B* ^$ B$ {* x+ q9 m
- );defun2 l+ O- t2 J6 }) @: K
0 g, g7 X' w; V; b- ;*********************************************************************+ B& ?# w, B ?) f
- & ^1 {8 o! H6 Z) C5 j2 k
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
( ` Q) \( r) {7 J7 Z* ^6 u - ; Khoi dau cua chuong trinh$ r/ e7 p: }; W" n
- (princ "\nCopy Inteligent...\n")
9 |+ t1 O. G, @ - (setq luuecho (getvar "cmdecho")
. h2 O& n4 S& k ] - luu *error*
# E8 p& @$ ?$ n3 A1 w - *error* ketthuc
' o. N E8 a2 d6 Q - cumdt (ssget)+ ^, x- W: w6 T! z9 z0 C3 v9 u
- dodai (sslength cumdt)/ _* Y; L2 x3 l" ?& j
- goc (getpoint "\nSelect base point:")
/ ~$ a1 }" @# e2 q( I - thoat nil+ z. h8 t0 D" _6 n& S
- dem 0
8 E( k4 V7 B+ ^% ^0 B - textxl nil/ ?! m5 B3 a3 C$ D9 A! p4 Y$ K
- );
|5 l" |1 q- S7 J! \ - (setvar "cmdecho" 0)
& B- c' G% Q2 ~4 H% l+ M' z - ; Loc ra duoc ong text de xu ly
* N9 K; _; ], w; C - (while (and (= thoat nil)
5 V6 O4 L1 w. u& h# G x5 f7 L, N4 ]$ v - (< dem dodai)
7 E# g0 S: E) ?1 D - )& `9 e$ W! d) T9 G! [( V* z2 w
- (setq ten (ssname cumdt dem)+ `9 w0 \/ a6 d$ @* }
- dem (1+ dem). t; j! @6 X4 R
- doituong (entget ten)' v* ~" |" X2 y
- kieu (cdr (assoc 0 doituong)) 8 C) Q2 H+ S- N1 ~
- )& c$ ]( L! W/ v! b5 b7 ~
- ' }: ]7 S7 M9 I) S- B% N
- (if (or (= kieu "TEXT"): A9 ]# B& ^1 a6 x& v, y" b
- (= kieu "MTEXT")
) m1 Z3 [+ j/ a9 \ - ), j6 C: m6 D7 m% u9 u! m6 l6 S
- (setq thoat T3 ?. O# T- c+ ]" `
- textxl (cdr (assoc 1 doituong)) ) Q7 A, U1 v5 y
- ) \" B. r, ]$ t$ m
- )
& @; S$ h* `) |) |8 n3 Y/ g - );
Z; ^3 E8 f% X, O" Y$ ` - (while T
$ m, d2 L: y+ H3 ~/ P! |/ \( J - (setq toi (getpoint "\nSelect next point: " goc)
; [. b% Y+ a- ?1 \ - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
: F1 K F2 h( a7 O" | - dem 0
+ d. o/ D7 I k4 [! v8 | - )9 g7 X5 K8 X! Z6 Q; I) }
- (while (< dem dodai)) n( ]8 l/ G- r3 F0 N
- (setq ten (ssname cumdt dem)
+ a2 p/ ] W! Q8 h+ N; v) U - dem (1+ dem)
6 z8 r. f3 [7 s- A8 Y - doituong (entget ten)0 F0 V# R2 x! x( t+ C" a- N
- kieu (cdr (assoc 0 doituong))
5 ~' _- @! V# ]5 Z/ o4 S1 e+ D - )% {4 G2 G9 _. k5 r
- / Y1 l( t9 S% X: ~9 ?) Q
- (if (or (= kieu "TEXT"); j9 P/ c3 l# e) j7 c4 ~2 z# L
- (= kieu "MTEXT")
+ ~# A) p0 n& ^% \4 o - ); E) Q8 M) x$ a2 F
- (doitext ten). i; v, _+ w; b; ]" l( H8 P
- (copy_dt ten)
! c j( d/ x: ]6 d. a' V& Z/ G
4 x" D4 Y/ @& _: z! {6 L1 H3 k4 U8 Z- );if
5 m) k% l" Q+ z# S' m1 k - )
! L/ {! K" I0 U* S - );while5 [ h) i6 }+ F) n) ~
- (ketthuc)
* w% N1 I% \% M) T+ E3 n, J5 P* n - );defun" b* O, E# \9 C1 g' f
- (princ "Type \"DG\" to start")" I# V/ k7 m1 N+ X' L6 S$ y
- ;Note: bien toan cuc: textxl vitrilech
1 k4 V0 K3 @3 |6 X9 ~8 Z
1 l* g- r' R ?- ;=====================================================================
+ x& B8 @0 J3 c6 w$ d& I! O - ;;; PLJOINFUZZ.LSP b% E' I& H2 {6 c& M/ m
- ;;; Joins lines, arcs and polylines using a fuzz distance
$ Q0 O% c- N. G+ e& h9 I - ;;; If only one object is selected it tries to join to all objects that are possible3 o: x D: m7 j/ z& O
- ;;; By Jimmy Bergmark4 @) o7 E) C+ J3 C
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved5 e9 L) y2 V. |, Y- K" M
- ;;; Website: www.jtbworld.com
( R6 y1 b' n5 ~1 V - ;;; E-mail: info@jtbworld.com; s8 ?8 t+ }8 a; U" z+ ~$ q& c+ B! _
- ;;; Tested on AutoCAD 2002,2004 and 2005
) s. Y w" }# }& m1 F5 ^ - ;;; Latest revision made 2004-11-118 H! J' r0 R- L$ ~/ K4 a4 Q( U
- ;;; Minor code cosmetic change made 2004-11-13
% I; j& Y0 n* h& o# C( L( A - ;;; Bug corrected 2004-12-23
; F/ R1 D" V$ o7 Q
% [4 q3 I7 o) h4 b: B: H- Q8 {9 n% ` R+ C- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf. p- Z) i# o- T& x0 Q$ A% x8 m
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)' Q5 n( ~6 z" A4 _% ^8 @6 \
- (setq oldcmdecho (getvar "cmdecho"))
1 N# a& O' e# k7 n2 B) R- u - (setq oldpeditaccept (getvar "PEDITACCEPT"))' r4 ?0 T- z. a( F4 @
- (setvar "cmdecho" 0)5 Y7 M- ^: [; |0 M9 g
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
6 K5 q% g0 z# A& V1 ?2 z - (if A2k4 (setvar "PEDITACCEPT" 0))& l7 I1 v( h1 c; _! p. m
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
4 \$ F; J" Z) I4 v g. U( p - (princ "\nSelect object to join: ")/ b* A6 l1 c: D1 j
- (setq ss1 (ssget okObjects))
( \2 q& W7 w% F; G3 S - (setq fuzz (getdist "\nFuzz distance <0>: "))' v7 V) p! P9 H! s" p
- (if (= fuzz nil) (setq fuzz 0)) C0 n( F+ s: T% [, J" ?
- (if (/= ss1 nil). Y. L" b+ }0 e! o" S7 o" V
- (progn5 W" g5 N p# {# T1 o8 T& L# |# i9 n/ Y
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))4 n+ j+ i4 J, X8 @( N
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects))). } u" f' ]' u5 z$ l
- (if (member objType '("LINE" "ARC")); c: N% \9 k; J- o* I
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
+ v. L* a w9 V, q# Y; c - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")6 u1 C4 c5 F! m0 l& N; u+ I2 L2 N
- )( L+ f/ V5 ?0 @/ k3 r, P, e
- )
/ m, u" R5 V( Z, n9 d - )
' h R; \6 O3 \$ n5 b - (setvar "cmdecho" oldcmdecho)% P- o+ y% d. d$ z, M& H8 t; U
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
# H+ ~& \+ R6 @0 X! s! o9 {+ M - (princ)5 I3 a4 t+ L; m7 d9 }( G
- )
; H; Z) s, `. S3 j5 F - # Y$ y- |( h, v" u& W4 h
- ;===========================VE CAO TRINH===========================
1 Y8 L; ~1 J. r; Y0 l/ f - 0 x- g2 Z" p( u1 R i; L
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL2 E2 z2 H/ N9 Y7 ]3 b1 Z0 U
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)4 N/ X8 k7 S2 y* W" ^$ X
- (SETQ OLDERR *error*7 J3 o3 \9 x- c2 ^. X
- *error* loisb)
4 u+ _; j: L% ` - (command "layer" "m" "dim" "c" "" """")
) e5 Q7 } r& y2 d" l) W - (SETQ CMD (GETVAR "CMDECHO"))
; G3 }: ?) G: A) U( O: @/ Q( Q! U - (SETQ NBC (GETVAR "CLAYER"))
. }* s8 ?' V0 J. [ - (SETQ OSM (GETVAR "OSMODE"))- s8 z( t2 V5 O( u
- (SETVAR "CMDECHO" 0)
U& W% f b2 Y- p: Q& [9 i - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))0 M+ {/ z9 v) k. z
- (SETQ TX (GETSTRING "\nCao trinh:"))0 a1 ~; s ~- D2 P: ~+ k% V* t! _4 _
- (SETQ FCH (SUBSTR TX 1 1))
. h! o4 U8 v# h9 l7 G: Y. n+ q% f' O - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
7 m- `& Z- {* U) l9 I" k4 H - (SETQ CRST (GETVAR "TEXTSTYLE"))" ?9 x, `# N8 ~0 _+ J
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))$ A& r5 e* K1 ^
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
' q' M1 y9 N/ \4 j; b7 @. k; [ - (SETQ STR (RTOS TSIZE 2))2 j1 z8 {. o, [& j* P% T R
- (SETQ PRMT (STRCAT "\nText height <" STR ">:")). P/ ~' Y- \: k0 ?: m J
- (IF (= RSIZE 0)
7 U/ t' I2 Y2 _ - (PROGN, Z( A/ C/ v, a
- (INITGET 4)( R& L. {7 h. [3 k2 n- k. W
- (SETQ TSIZE (GETREAL PRMT))
6 R, x8 K: W9 w8 | - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
( R, w+ H; }# ?+ N7 D; V - (SETVAR "TEXTSIZE" TSIZE))* J7 c& b) w' U7 }& H$ K6 `
- )
) u; z5 H# \, T& Q2 ~ - )
: |& E6 \7 g& m# _- b* J - (PRINC)7 d+ U% ?5 A" g1 u+ Q$ j5 Y
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
8 ~" ~/ Y$ \4 t% [ - (SETVAR "OSMODE" 0)( B! j b: t# L4 t
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
6 m1 Y/ I+ q6 O5 |; \* }; O - (SETQ NPI (/ PI 2))
9 x0 M: N! N% l - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))0 i9 V) ~# Q- o% u) V
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))4 U2 o+ n9 b- ^: Q
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))5 C) w1 ~9 S$ j" D+ |, k8 ]
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
: a* U4 q1 [+ q - (SETQ PT6 (POLAR PT2 NPI TL))9 h3 n% v+ m0 b6 S* q- ]' m- G
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
, O: z, h/ B t+ T. g \+ v - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
" W; p8 E: m. S0 x - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
3 Z! ~ k% b9 p& E, r# s+ M - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
- S4 t) J& Q6 i - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
/ r9 w$ v5 h5 y8 j - (COMMAND "COLOR" "7" "")! Y$ W/ [% b' w/ d- K; Y
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")+ I; F) k5 }1 } ?& q0 F8 g7 l
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))" c2 f: Q2 j6 i& I6 w: q( ?4 ?& {
- (COMMAND "COLOR" "BYLAYER" "")5 [; i) V1 m( _1 X- B) v5 v
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")0 R. R q7 z# E* v6 O H5 m: D0 e
- (COMMAND "COLOR" "BYLAYER" "")- v# @* l2 [" [+ m
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
: N3 C8 P, {5 I! E3 g4 d9 Y - (SETVAR "CLAYER" "0")1 n3 H( L' p) f9 _8 ~ z8 S
- (command "ddedit" pause)- K* L2 v# E0 w) n! o) J3 `
- (COMMAND "COLOR" "BYLAYER" "")
' R- o. V, ?# a) ^+ p- @& }; ]+ } - (SETVAR "CMDECHO" CMD)5 h" O! I6 G+ h- \& ?' C- `- S
- (SETVAR "CLAYER" NBC)
/ R3 n- x2 ]. g7 k - (SETVAR "OSMODE" OSM)8 m# ~- a* C$ v3 W/ s
- (PRINC)
7 N" J" k6 W' s3 L$ }- F. @1 d, c - ); c* j: S9 A) g$ T1 z5 y) e, `
- + I I; _* x. X) ^& f
- ;;; =========================== VE NET CAT CHEO (GC) =============================
! l& R& _6 v4 j3 e' w -
1 o7 a. E" E& M. R - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
9 {; U+ i! x% [/ F8 ^ Q - (setq x (getvar "osmode")): M- R# |7 I2 @4 _0 Y# F' C
- (setq p1 (getpoint "First point : ")* [9 h0 C& U: |8 J. m: T
- p2 (getpoint p1 "Second point : "))& S( {5 M5 a; } o" G
- (setq l (distance p1 p2))
0 }4 O# u' I; h! Q J - (setq p11 (polar p1 (angle p2 p1) (/ l 5))
4 x7 c8 Y: M- ` - p12 (polar p2 (angle p1 p2) (/ l 5)))
* I" c0 k. x% f - (setq ang (angle p1 p2))
. r% n1 t+ @: j/ ?: t4 R3 C - (setq p3 (polar p1 ang (/ l 2.5))1 K3 ]6 k& }# ^* M6 I h! W7 b
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))- c2 [% q8 W+ j. {
- p5 (polar p3 ang (/ l 5))$ y9 q, F f8 e b
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
/ z; z# x* ^, q2 w" z) Z8 D - (setvar "osmode" 0)" |9 t. n0 I' O7 m5 v3 g2 Q+ f* k
- (command "pline" p11 p3 p4 p6 p5 p12 "")% O# z9 A7 t- w& K* N0 K
- (setvar "osmode" x)& h a1 d6 B1 I* |1 w; d% U
- )
) ~& S$ h. ~2 |# @/ s% \ - ;----------------------------------------------------------------------------------( Z; s# A( w# j. w
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6- j( w P O$ r5 F% t) T
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
/ A$ a2 e* n6 V* b2 ^0 o" {0 i- D - (setq ps1 (getpoint "\Chon diem thu nhat: "))
0 \+ y, G$ F7 w: z7 s' n - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: ")): J+ ~# j$ h& {/ f4 Y, {
- (setq sb 50.0 sh 200.0 se 20.0)
5 b8 ]( b& ~2 p$ e - (setq ang (angle ps1 ps2))
: m3 E5 ^! L; o/ \0 O3 V2 B" t4 V - (setq pf1 (polar ps1 ang (- 0.0 se)))
& g' c- M* I# x0 h m - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
! r" y) U# n3 A8 G* D4 | - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))- I6 {3 O! Q3 L( z
- (setq pf5 (polar pf2 ang sb))
6 B; z2 k9 V9 g( H - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))4 {* p0 }3 b# q# ?8 r0 A" p8 b
- (setq pf6 (polar ps2 ang se))* ]$ P% x% S1 B' ?( C. C
- (setvar "OSMODE" 0)( }: e- i: `. B/ t L5 R; m
- (setvar "BLIPMODE" 0)
X( Z2 l3 S' e& _/ Y( }6 { - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
( d7 V2 J) ?; Q - (setvar "OSMODE" 703)' d8 P7 o" F- r
- (princ) )* R- U* W; l* X( @6 O
- ;----------------------------------------------------------------------------------
6 b, f/ c% i( B - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
: g4 b, A$ K2 S0 E6 i - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
; S5 `4 S/ k, Y - (setq ps1 (getpoint "\Chon diem thu nhat: "))- o, ]; d6 w8 `7 v; y) A- }
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))) D- G+ E6 Q1 |# m7 o
- (setq sb 100.0 sh 150.0 se 20.0)0 I1 Y6 y8 o. j# t I$ T
- (setq ang (angle ps1 ps2))( b$ |4 ~9 h" r& ?4 u$ i' Z& l
- (setq pf1 (polar ps1 ang (- 0.0 se)))8 _7 ?4 [# I$ e, y' \2 F5 f
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))! R" U$ f& T' j8 g- k
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
" Q& x) @+ j3 Z( r. s$ f - (setq pf5 (polar pf2 ang sb))3 v) w- A: A. o9 f; _' f0 c7 u
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))- v. v" ?, B8 t8 v" g( w
- (setq pf6 (polar ps2 ang se))$ o' y0 y. m1 v; S7 C2 }
- (setvar "OSMODE" 0)
6 ]7 j! W3 E) L! [2 p5 c - (setvar "BLIPMODE" 0)
: g% j6 u/ Q& l l! x- I0 K; v - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
. t* M5 E8 Q3 R0 f! M' ?* ~4 _ - (setvar "OSMODE" 703)0 K$ S; @: n; p& w/ U
- (princ) )+ T; I: O, U/ T9 w7 V- [
- ;----------------------------------------------------------------------------------' L4 p* K, H7 A
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf67 F2 w8 W5 K5 y" F& J
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))1 E+ B, [. f7 T# x7 @
- (setq ps1 (getpoint "\Chon diem thu nhat: "))3 J6 ^9 k0 t% u! s$ b" B
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))1 P" i/ \2 g, d' I
- (setq sb 100.0 sh 250.0 se 20.0)$ O1 O# L. ]7 Z4 V3 S
- (setq ang (angle ps1 ps2))
* T: t4 \4 o' [ j5 A - (setq pf1 (polar ps1 ang (- 0.0 se))). M6 G1 w$ r/ ~% W- G; H! X
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
+ w: W% m& }/ C - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
9 k5 a! U4 p$ f6 [, W7 H* o7 [/ b - (setq pf5 (polar pf2 ang sb))
( Q9 p+ V$ _* d; X - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
5 i! ~, x5 a3 I$ ]1 F - (setq pf6 (polar ps2 ang se))
5 G8 X5 R0 s& i( S4 P' G - (setvar "OSMODE" 0)$ |/ f$ Z1 ?3 a$ }7 {# r
- (setvar "BLIPMODE" 0)
. `3 D, P- x( y) |! L1 g/ j - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
) z: M+ x; V/ W& F' t6 J) a" }8 ^ - (setvar "OSMODE" 703)
2 O$ b6 x: m! r - (princ) )
$ T9 e& W) v9 |: W" R; J& T) t - " E0 p3 X4 J6 \! O7 A" G% _
- ;==================================================================================! v, R" A" v- U2 L# U
- (defun c:ang (/ ent pt1 pt2 ang)
8 h& @/ O) I1 B - (setq cmd (getvar "cmdecho"))2 ~0 L- H" z6 B: s+ b
- (setvar "cmdecho" 1)
4 Y/ x* C5 \2 v: z, ^9 U7 c - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
9 c3 q4 K# i2 N. j6 }7 k - (setq ent (entsel "\nChon duong thang:"))* S* ]4 m9 p5 I, ?
- (if ent ; Q. R3 p% N8 Q, u
- (progn
/ S0 _4 t3 e6 X/ [0 \ - (setq ent (entget (car ent)))
; [& B; J7 _" t - (setq pt1 (cdr (assoc 10 ent)))
% R9 b/ M0 [4 r6 x2 r1 g; N - (setq pt2 (cdr (assoc 11 ent)))
3 O% [" Y: Q8 O! L% h - (setq ang (angle pt1 pt2))
0 C2 C! ?$ H0 n! X! W - (setq ang (/ (* ang 180.0) pi))7 e' m$ ^5 }; S3 \, Q! @- G
- (setvar "cmdecho" 0)
) q# J% i8 e6 R7 k9 K; I) z/ K - (command "setvar" "snapang" ang)
# O `: t( |* E5 \. {3 t$ z - (princ "\nGoc cua truc toa do moi : ")0 f# Q% l0 A; ~* r, a
- (princ ang)& [# t4 K1 [% Y/ e0 I( x1 B
- )+ O' [8 U# w4 Z) d+ } ~
- )
4 b: j- E( x k - (setvar "cmdecho" cmd)* k7 ~ z: ]: e \8 `, y7 L
- (princ): G# S* e8 G" e5 a- k% x
- )
: z5 C$ ?) n! P4 P$ j8 q4 j - ;==================================================================================
8 e4 v) ?$ L' K2 R# N2 E - ;============================== KY HIEU DOI XUNG ============================== d$ {( I$ k5 q) [- T
- ;==================================================================================; ] c9 `9 g, U8 ~6 @0 N
) k" }5 ^5 F( u9 Q4 [! Q/ W4 ?- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9) e/ \ ]& P% d2 I( L
- SZ G45 G135 G90 G180 SS loi)
8 W# P) ~$ J( v* F' k; _0 h' B - (defun loi (s): I+ ^# A/ ]7 G
- (if (= s "Function cancelled")2 x J' |0 h9 {% ~0 V$ B3 A, j2 j
- (princ)
# g% `; m1 x2 a/ o" q1 ?9 F$ \0 P" d - (princ (strcat "Error:" s))
0 U; \* Z1 K6 { - )
: Y' M; J d3 \" o3 s% l6 F - (SETVAR "CMDECHO" CMD)
- |! A6 O3 _4 K6 Q* e& P O - (SETVAR "OSMODE" OSM)
* a5 L! A5 ]. |& N' C, y4 C - (SETQ *error* OLDERR)
/ x3 z3 ?5 i4 ^/ g1 S1 Z9 f) R6 o - (PRINC), R: k- x- i; k [! f i) o6 e
- )
/ Z3 Q& K8 |5 |" b, K, L - (SETQ CMD (GETVAR "CMDECHO"))
6 T) x0 f! X% g( M$ H5 d0 r - (SETQ OSM (GETVAR "OSMODE"))1 s& G8 B" I) L6 }3 h3 n
- (SETVAR "CMDECHO" 0)" N) I/ x0 x8 e. q
- (SETQ OLDERR *error*
- J9 m3 }/ e3 t+ j/ {2 D - *error* loi)
8 _* u6 ?- b* c0 U9 [ - (SETQ SZ (GETREAL "Size <1>:"))5 h9 }% U+ ]" S* c, U4 |
- (IF (= SZ nil) (SETQ SZ 100))
$ G y7 F( i* t% c; K9 j* t! r - (SETQ G45 (/ PI 4))
& A C: z# v7 O# I - (SETQ G135 (* 3 (/ PI 4)))
" H3 [; Q" n& q% V - (SETQ G90 (- G45 (/ PI 2)))" r7 W) X3 G% [4 H- G. J
- (SETQ G180 (+ G135 (/ PI 2)))1 p$ T' c7 [: B, n
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
# E3 Q6 r/ z u# x" k/ A8 g9 ^4 o - (SETVAR "OSMODE" 0)
( n; [" n% `$ x - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
5 L+ r4 C$ q0 e( z - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
w5 o0 U2 q7 t+ o - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
( P; n$ g: G$ o% [) j6 y - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
) M* F+ ?& h' \* V1 T - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
5 {3 @) M, f, A4 W' E5 D" A - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))7 f" D/ f( ~/ U
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))1 B4 ]$ v# v) e
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
7 `9 l; Z3 {! }; E - (PRINC "\nGoc quay:")6 ~+ ? X' g- }; R; i ?( Y
- (SETQ SS (SSADD))
; ?' }( W8 A3 q( S% a% K# Z - (command "layer" "m" "Dim" "c" "" """")
' G5 T2 R! ^$ p' A6 q8 Q - (COMMAND "COLOR" "1" "")
% X, X$ D. C% D3 M2 K, z. |# e - (COMMAND "LINE" PT8 PT2 "")
8 V; v' I) K4 L3 D- j - (SETQ SS (SSADD (ENTLAST) SS))
% d9 [, K- Z1 n5 M! y! c) g - (COMMAND "LINE" PT9 PT5 "")
, m; z% I8 m& ^# L - (SETQ SS (SSADD (ENTLAST) SS))
7 s5 A l7 j; m$ f& a d - (COMMAND "COLOR" "1" "")
5 Y/ Q- q- I5 O4 W2 a - (COMMAND "SOLID" PT2 PT3 PT4 "" "")
9 w6 i& M) c5 I4 i* p - (SETQ SS (SSADD (ENTLAST) SS))
+ f) J& E4 L, E, u# I - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
8 Y0 H- s. o7 r( ]; _* k - (SETQ SS (SSADD (ENTLAST) SS))5 Y6 p: M; V5 [6 G
- (COMMAND "ROTATE" SS "" PT1 PAUSE)0 R5 Y9 Y3 Z+ F F4 C
- (COMMAND "COLOR" "BYLAYER" "")9 w3 F# b1 g8 X" R' H: H
- (SETVAR "CMDECHO" CMD)
0 W- i3 Q2 j D, s1 n. S - (SETVAR "OSMODE" OSM)
8 J$ a0 b1 n n c2 i. s# ?3 V - (SETQ *error* OLDERR)
' j+ O3 D. }- h6 R# ` - (PRINC)
7 J. N8 ?/ K+ L% L: L. C; h - )" X% }6 T; m; {* k1 q; n" J
- - L( | V7 o; |2 t
- ;==================================================================================
* p8 S" K5 k% }4 w+ e; ?. K& p" T - ;================================= KY HIEU TRUC ===============================1 N4 D- A9 q7 Y1 l" N
- ;==================================================================================; v& R6 Y. M: J# H' b
- 4 o+ ?& |0 K" y* x. B
- (defun C:vetruc ()$ h ?7 P* L, A, W& L6 l
- (setq bk (getvar "USERR3"))5 \% l/ y! t3 C# u1 L# i) }
- (if (= bk 0)
1 R* T$ X5 a5 k1 p4 `, } - (progn# X- u5 F( b$ j( ~- q
- (setq cont "1"), k6 e. w' c* y8 _" n% W$ B
- (setvar "USERR3" 1)' B+ t) w, |# p* S+ E
- )
0 }! J# H9 H6 J; F6 F - (setq cont (rtos bk))6 P' t s0 m6 @: N! B' W9 \' R6 g" U
- )- _& n4 k+ g2 M* E% D% H7 W
- (setq pt1 (getpoint "\n Nhap diem dat:"))4 x' d: u9 J; c3 u( p% V$ b" s
- (command "layer" "m" "Dim" "c" "" """")4 d* _4 ]5 b( ^) m5 v8 p
- (command "osnap" "")$ P. C- M" s6 [0 ^5 _8 @
- (COMMAND "COLOR" "7" "")
- M' o; W8 p, f/ b - (command "circle" pt1 150 "")
0 @( ], c$ |2 |$ h2 S9 V; T - (setq pt2 (polar pt1 0 150))
b, I: y& B/ b0 X( N - (setq pt3 (polar pt1 (/ pi 1) 150))
" t* T) n) a1 Y! p9 B' v! Y - (setq pt4 (polar pt1 0 300))1 Y+ X6 w% v1 E# Y6 K
- (setq pt5 (polar pt1 (/ pi 1) 300))
9 x( S- x+ D; Y - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
; @2 I/ q7 L/ A - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300)), ^6 }- ^. K) Q& T! x3 B
- (setq pt8 (polar pt1 (/ pi 2) 150))9 n" G% J' t- z# \& o5 J
- (setq pt9 (polar pt1 (/ pi 2) 300)), d! E! H- l5 ]) o$ z9 R
- (setq pt10 (polar pt1 0 150))4 t' X, R. V7 v8 w/ Z
- (setq pt11 (polar pt1 (/ pi 4) 150))9 s, G+ }* ?, L; V5 Y' U' V/ x* z
- (COMMAND "COLOR" "BYLAYER" ""). v- U X4 R4 i7 H2 P. T
- (command "line" pt2 pt4 "")5 O9 @* B( |& L3 s3 F
- (command "line" pt6 pt7 ""). u$ J% O9 M$ j/ Z6 }
- (command "line" pt3 pt5 "")7 p0 ~+ |# T5 |2 J4 m9 e9 l9 |: u
- (command "line" pt8 pt9 "")& v* J `8 Y5 j/ F+ u. v5 u
- (setq dk (strcat "\n Size:<"cont">"))5 L4 [0 p. [! |! p2 W' I1 D& K
- (setq bk (getreal dk))
" i3 p, T `# H8 @1 |- @$ c- S - (if (= bk nil)8 @4 U& ^/ W$ G4 C# c* H1 u
- (progn( h& d+ f G" X0 C( U2 q, `) f- X
- (setq bk (getvar "USERR3"))% U& f. U- K# B
- ). G7 t. R; @7 G$ B0 V4 n# ~
- (setvar "USERR3" bk)5 x! R" K3 c# u+ B2 v6 d
- )# Z. j* m# `) l) m2 }- P5 z
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")" p7 x& \2 \" j; l
- (COMMAND "COLOR" "7" "")
) f. U, S2 e$ P3 H5 t - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")3 l& I9 Q; F4 N* h" v# R0 s
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") 2 Z, i! ^! t$ J1 U8 e4 t3 K
- (COMMAND "COLOR" "BYLAYER" "")- @% @2 `7 Z7 D4 `3 i( L
- ). e' T- w9 _' c. j9 m
% N( O' `/ |+ b9 e% C' i9 Q; \- ;=====================================================================
4 N* T; d/ j+ S* Y% n1 }. }8 Z9 b# }" b - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)! |* c" O8 m5 z4 Q, l' A* l- I9 ?
- ;5 {& }3 \/ G8 T- v! v: `' b
- ;Jeffery P Sanders
' T& X3 E$ Z- ?% y - ;
* }8 n7 M4 b \, d' a. w6 o - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
, K- J: L6 u7 ^' O& X+ X) p - (setvar "cmdecho" 0)
- N5 W P, S5 ~4 Y! ^ - (if(setq en(entsel))- C1 e& R- X+ O
- (progn `8 Z9 X0 \( I5 J9 q S4 [% l0 a
- (setq enlist(entget(car en)))
' L9 Q6 f$ q5 @+ u; n - (if(= "TEXT"(cdr(assoc 0 enlist)))
: ? ?2 x9 X* U% f/ d1 n - (progn8 L3 `/ Y1 f- |; [
- (setq tx(cdr(assoc 1 enlist))
6 g9 v5 e; ^+ W$ m+ | - newtx "" cnt(strlen tx)
! k% M, ^' B* b) z6 _. D - note "\n...CASE Reversed. \n "
" P3 Y% e' D* K% [' D - )3 \6 K. }" ~& V7 M* g! e
- (while (> cnt 0): c" e! R2 h0 S# B
- (setq tp(substr tx cnt 1))8 e. M4 m/ S: D9 S; R/ {5 d
- (setq asc(ascii tp))2 \1 V) @! a, }
- (if (> asc 96)
( Q5 A/ i7 m1 w- G- i$ l0 _ - (setq tp(strcase tp))" J- F) Y0 F4 y% M! R
- (setq tp(strcase tp T))
, p( G# P2 u9 z& Q6 | - )& v: `7 F. H% J- o4 A$ s* ?8 z" j5 S8 X
- (setq newtx(strcat tp newtx))
) j0 P6 a/ H* R0 s" s - (setq cnt(- cnt 1))/ U( X+ j4 f( f3 u, C1 j
- )
8 C, {8 q) E4 [# G' p - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))3 M$ G. z4 ^4 M6 E' }; {
- (entmod enlist)
$ F3 ?, @6 u/ A7 O; [4 ?" N$ o" Z! z - )
3 u$ i9 S' u# V7 t - (setq note "\n....Text Only Please. \n ")
i- i m0 y$ H- [+ c( L: N - )4 `# r$ Y& n, m& R# E/ s9 n; u
- )) i) Y; B. U. }3 Q
- (setq note "\n....Nothing Selected. \n ")
7 k2 r: N4 [" O - )
; e: x# U9 n/ B1 L/ Y& q - (setvar "cmdecho" 1)6 K6 M! }% u, e+ ]4 t/ K
- (princ note)
" E8 K% G% `* H" ~& K! V1 y- B - (princ)
, x, {- x- y4 Q1 k9 ` - )
; Y6 v3 f6 {/ b4 g. Q( }5 {* K4 x8 F - 1 y1 d% \5 p& H, J1 B6 K1 _0 E
- ;=====================================================================
! y+ B J T( h7 K - ;==================== NEW TEXT STYLE UPDATE ==========================
T* t$ _$ b4 o* B6 A, h, X! \ - ;=====================================================================
6 S$ D( n5 ]% s$ U' b: [8 R4 t9 i
, ]: `" m" K4 N: X2 i% H- (defun c:nS (/ tdt ssdt sodt index)9 t: ]4 ^1 @: Q0 z0 N* V2 \8 v9 V2 U
- (defun ObjName (ssdt /)- n. ]0 e# c1 u' F+ Y" X6 A6 Q7 P
- (cdr (assoc '0 (entget ssdt)))& G: D# {* w0 D k$ N% w y
- ). I2 @" Z: N& Y1 `, n# I- h4 P
- (defun MoPL (ssdt /)
4 V0 f s3 z! J/ h8 o$ T - (= (cdr (assoc '70 (entget ssdt))) 0)
$ \3 X+ U8 m1 w8 X' m! `* u) Y - )
1 ^' c& R. }) M: p9 f - (defun NoiPL (ssdt /)0 X, p+ C$ q/ K5 h
- (if (MoPL ssdt)2 A6 ]- R) G7 I1 \" ]
- (command ".PEDIT" ssdt "J" "All" "" "X")
2 v- E2 r$ X+ N) | C - )
: C, g4 ?8 h8 P - )
8 H6 v, f! Q0 L+ ?/ C1 a+ U - (defun NoiLC (ssdt /)
: ]9 P5 ?- K7 [. V8 r5 w, t, J; M - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")1 U, X/ o! O" i! B, g. i: `% Y
- )! f/ c. m( H- F, f( X0 X! w$ \; r
- (setq
) k1 k9 U2 `; R0 z - tdt (ssget)6 A5 N. H/ N: l7 x- i0 ?6 J
- sodt (sslength tdt)
* [) K% U, v4 y - index 0
3 s- P3 a0 P$ ]' ?8 T) P - )6 s) B* I$ r3 ?4 W( @
- (repeat sodt
2 w* W/ \/ P8 ], o2 s - (setq' z9 W4 k4 W9 ]6 {) I6 Y5 B$ C
- ssdt (ssname tdt index)
D$ \5 b' N6 s, m/ ~; d( f - index (1+ index)
5 [. {$ R. _+ k$ R5 |! ]7 a* |8 D - )
5 A2 M( C* q- ?. c) f$ c - (if (or (= (Objname ssdt) "LWPOLYLINE") O! y6 f# m! N9 w6 o- H; a3 h5 w. {% H
- (= (Objname ssdt) "POLYLINE")
I; O2 Y4 ]# I. f/ R T$ N" v - )
6 @6 _' ]& [2 p - (NoiPL ssdt)
4 z5 W ~7 I* @) \/ } - )
) z8 A6 Y; B) Q - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
, R# w6 o C) `. S9 f - (NoiLC ssdt)
5 U# i% e$ G6 U- w - )# p9 N v, n7 w% B/ p: t
- )& p7 z1 b: q0 H
- (princ)
1 p9 ?/ ^! w( i; U7 r# W - )
3 ~. y" e0 S m6 k - # {1 e& z3 \+ H
- ;=====================================================================
" J8 h5 \$ w, N9 M3 |2 { - ;;; AREAM.LSP
- u& U0 p! K- W - ;;; Function: Calculates the total area of selected objects
9 g( `3 K$ s5 X1 Y3 r! z - ;;; By Jimmy Bergmark% P, o& Y. O8 i4 a/ i( v: e9 m
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
0 G" Y4 K7 w7 a! n" {3 f - ;;; Tested on AutoCAD 20003 a m: X0 ~" ^1 S- g
- 2 x$ l. L. f* |/ S4 Z. X
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area), f- g1 c0 s& h9 c& _
- (defun errexit (s)/ r2 E3 q( r V7 G q
- (restore)' p. {) x1 \1 N) b* r
- )
. q7 ~$ l6 ^9 _) o
( V$ j5 {& [3 @& u9 U8 k- (defun undox ()" t1 a3 t" K0 I3 B9 Z2 v" p
- (command "._undo" "_E")1 H; N9 X9 K8 x: I1 Y% Q8 g
- (setvar "cmdecho" oldcmdecho)1 b; v S& l+ G4 X( `6 ^/ P6 Y
- (setq *error* olderr)
( q$ y. D8 B& j( a, v V - (princ)
* f; m) V! x/ o p4 [( v* p; e1 q - )
5 ?; ^7 H, W5 e' ] - 6 x: ~( r: a; P1 l9 k# }" `
- (setq olderr *error*7 c* v0 A0 I) k3 v, O S
- restore undox( @; h" D" F0 e, J& O$ k9 h
- *error* errexit
& o5 A2 M6 i+ f9 [ - )
$ w0 ~, t/ N: w4 x* L - (setq oldcmdecho (getvar "cmdecho")). U: g1 P# Y9 h/ W7 a7 _6 i
- (setvar "cmdecho" 0)8 k( I9 z: e5 n/ n7 M5 z
- (command "._UNDO" "_BE")
1 p% ?* H9 Y8 d; N" N4 H) z; S9 p, B - (if (setq ss1 (ssget '((-4 . "<OR")- V0 x" m% e i. v- K% N& Q
- (0 . "POLYLINE")
/ B8 B9 r& t8 E& O# B: S - (0 . "LWPOLYLINE")
u; L$ c) A U; ?7 D% V( ? - (0 . "CIRCLE")
* w Q2 ^2 _" y7 @8 P# @4 g - (0 . "ELLIPSE")' D d1 F$ E& J
- (0 . "SPLINE")
: W, n: {5 n0 v5 b" i1 g - (0 . "REGION")
& ]+ k5 w0 J' V. G1 ~ - (-4 . "OR>")" {3 ^6 C5 Q n
- )( I' H( L5 q9 @, D/ `1 t
- )& }0 w0 T% T$ m8 X, Y* K
- ), T# S9 J1 i$ L, T" |* a* }( E
- (progn8 _! u! F/ }' \3 Y7 v
- (setq nr 0)- Y$ ~+ \, ~0 ]( H8 |
- (setq tot_area 0.0)* v! T! q5 i' d# R- F" {# q
- (setq en (ssname ss1 nr))
# S% G4 W4 {9 }% y5 S) R( w" _9 B - (while en
3 F# q; X+ U: `# k `" h - (command "._area" "_O" en)
( V4 _( N) H, i0 }! n' L5 i - (setq tot_area (+ tot_area (getvar "area")))
- l# }: I2 E/ U, z3 D* k1 I3 ? - (setq nr (1+ nr))
0 f- s3 F4 M0 l2 ^4 C - (setq en (ssname ss1 nr))# s! E) C: j* ^
- )% G: @2 e9 d6 O6 M9 }, J
- (princ "\nTotal Area = ")
7 Z1 z$ }, q$ d - (princ tot_area)" z/ O1 W: g: @
- )5 w) d* g+ ]- t. Z
- )
4 e# c" R) t& l - (restore)
# z8 U' M/ M+ n- }7 c2 y5 r. l - )4 t2 K/ d2 k8 Z, \
- % ~0 i: u0 L q' G0 P" X
- ;=====================================================================
- F, F. r, y& Y } - ;;; By Jimmy Bergmark$ I& h' w( R$ X t9 V f
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved5 v( t6 F, I$ ^2 ^' S& n7 ^: r6 `! n
- ;;;
/ T w8 b9 ]$ h5 k& [+ k8 m - ;;; Created: 2008-03-31
7 E( Q0 J2 H- y; e$ w# w - ;;;8 v: {, C1 y- y5 Q/ u# C
- ;;; Convert Attribute definitions to mtext7 b9 T: M$ d" D- k5 o- E; L
- ;;;: n `: S& ]# |' h5 E; g
- 1 T0 O- J3 z8 V7 A" X
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space); e6 M/ U2 X. h! J
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
- d" f! Y8 m) |/ N - blkcnt 0
5 T1 }" |; k+ g - )& U7 X( A7 m' J8 L' |1 B! x
- 4 |- i9 L% }9 r0 q4 U. q% p- u* Y
- (if eset1* u2 D0 j/ `# P6 J
- (while (<= blkcnt (- (sslength eset1) 1))
+ y$ L+ c+ O T6 t/ x8 q - (setq en (ssname eset1 blkcnt)
; o" b. ?( v( q - enlist (entget en)
: d2 V9 C) E2 e: S/ m0 o - ht (cdr (assoc 40 enlist)) ~5 M5 W, l- F8 C2 y5 [. n
- pnt (assoc 10 enlist)9 j1 ]7 j" S1 O7 k$ h
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)% }$ d. N. P; D+ C& V9 @
- space (cdr (assoc 67 enlist))3 i) W* W! z3 b6 t0 r# E6 H
- )
9 M! }1 e; H' G2 T; i; ]) h, |3 i/ m - (setq vl (list3 b% p C9 z; B' k3 F
- (cons 0 "MTEXT")
# c5 b2 _8 ?7 A) m; u$ f - (cons 100 "AcDbEntity")
/ L6 F& m/ Z4 a. G; A0 [/ F; \ - (cons 100 "AcDbMText"). n. k8 W9 R4 o9 O) S& i
- (assoc 7 enlist)- K; r2 |# R7 D
- (assoc 8 enlist)
2 E# `9 Q3 a% w: d: y - pnt
3 K+ c+ v0 p) g" }) u `4 A - (assoc 40 enlist)
3 z: x! Y, {# i, R - (cond ((assoc 62 enlist))6 }* v# M7 d& D' J6 S* S Z
- ((cons 62 256))
2 n) y% E2 P, }9 ?2 b, @7 ~ - )
3 N: [) ?. q9 h% P/ ] - (cons 1 (cdr (assoc 2 enlist)))/ o$ P7 O3 R* T( t
- (if (= space nil)# e& j! G: l) x2 A
- (cons 67 0), @" _: k1 L4 N5 `, U
- (cons 67 space)/ t3 M/ ?* N2 x, c
- )/ ?, Y1 y# p n8 \0 `3 W
- )
9 ~, ~" `4 [4 Q$ I - )( h; U2 M# j; j& h2 b
- (entdel en)0 l( Q, [4 S J# r
- (entmake vl)
' }' ]5 a' R y2 W/ A" p - (setq blkcnt (1+ blkcnt))+ x, _* d/ Q. `) [
- )
0 O4 @" c& X6 e$ \' f% X% O c - )* o" e) L1 z4 z' r' }% ^6 i
- )0 B0 U: i4 A W* z! q
+ @! @4 r8 z- M+ ~2 m* N& n; T- ;=====================================================================& t+ u2 R% R y @5 [0 [
- i! s: T- e C" d
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
( S8 @. ^; ^& M' `/ |1 f - ; Khoi dau cua chuong trinh# [! g3 @" m5 J9 q
- (princ "\nCopy Inteligent...\n")
& h6 J" y8 A+ x; M - (setq luuecho (getvar "cmdecho"); B: l( [0 A9 `. u* J/ X
- luu *error*# t/ x3 B$ Q9 y) P8 K5 ^* P
- *error* ketthuc% d! }$ l; M w& b! o0 F" x' K
- cumdt (ssget)( J' ~+ w3 e- t; g7 C. m; c9 |
- dodai (sslength cumdt)
( C0 F! b9 r( l7 I - goc (getpoint "\nSelect base point:")0 S i3 L$ i/ _$ [ O( D# i
- thoat nil! s& D$ Q7 S4 j0 f# ^5 [
- dem 0" J. a. }3 r( v2 G+ @9 C3 K
- textxl nil' X O" ?* X- p! [- I# Y
- );# q: i' a% G& R1 O7 j# }, p `
- (setvar "cmdecho" 0)! l7 e9 k$ D4 C
- ; Loc ra duoc ong text de xu ly% d' `2 |9 a1 D3 O$ s/ c% J% ]! c
- (while (and (= thoat nil)! I5 |2 N' k( \# b2 j# ~) o$ b1 F
- (< dem dodai), D$ |! Z/ H/ Q
- )+ N% p# ~( ?% Z" K
- (setq ten (ssname cumdt dem)
( G3 ]/ I$ O1 ?3 A5 x4 {% l7 c* k3 z" v; U - dem (1+ dem)
0 B' z" Y8 W- C6 M+ g- j( o- ~, w - doituong (entget ten): L" I: M5 f) G2 J5 M
- kieu (cdr (assoc 0 doituong)) " c5 j3 j& t l+ s, `' L, V0 d
- )
' `8 ]+ [7 G/ e1 j - $ o9 r Y1 F$ x
- (if (or (= kieu "TEXT")
* K! i; w( l s9 s! v$ R4 }7 S8 l - (= kieu "MTEXT")
, r) n. P* N& q4 \; N" ^5 ^8 e - )6 l- e1 G9 b3 w6 {
- (setq thoat T
' l( S) i, \' Q/ y# \4 | - textxl (cdr (assoc 1 doituong)) k) H7 d0 H4 ~3 I! s# Z
- )
|* n; n% P) z& T - )6 T- L/ Z# i3 \! Z: f3 o% L6 ?6 @
- );5 a }' a/ ?5 V' i1 o4 K7 \+ X. H
- (while T
1 J0 T# j4 p' ~9 A" d - (setq toi (getpoint "\nSelect next point: " goc)
* ]8 x" ?7 p0 s2 v1 T - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
/ I* ^5 v4 {! \, |: \ - dem 0
2 Y# B) r6 y( t" n; c - )3 q, g! d! d( h& m. x+ C
- (while (< dem dodai)3 S+ y r2 l0 s4 D
- (setq ten (ssname cumdt dem)9 h& I! ~, Z% B+ S! G0 }
- dem (1+ dem)- z- L, H! o0 ?+ ?3 F3 G
- doituong (entget ten)
' x B$ @/ e: d" N b: Q% x$ g% y - kieu (cdr (assoc 0 doituong)) ]6 \; n' X! t$ V6 A; k
- )9 e3 f* x# u; v' Q5 M8 S
- 9 C. n- ~( U4 h- m7 g
- (if (or (= kieu "TEXT")
* n: C& ^! S8 a0 `; b2 O - (= kieu "MTEXT") 1 }) ^" Z" E: f1 c
- )
" i, v6 \4 e Z9 D9 Q3 V1 r, G1 ?7 c - (doitext ten)+ ^: b5 L( A% a& k
- (copy_dt ten)/ c( X0 g0 i1 I* `7 A/ C4 s
8 q7 z" W" _& H7 C4 i2 C) h- );if# c( r- u; E8 }- L4 A( A
- )& m; `7 q8 g! v# |+ k. H
- );while6 W8 l2 q a0 L/ z
- (ketthuc)* L J; J. \6 ^ `4 v1 i% T
- );defun
- ~: w4 l8 M9 i1 `/ i - (princ)
9 [/ X9 v M. ~
2 K( R R! F& n# ~* C- ;=====================================================================
+ d2 z4 G3 ]- c0 G/ u* {4 z' y5 V% y9 E - ;;; By Jimmy Bergmark2 e4 @$ R0 z' \6 h& ]2 F' S
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
* ?1 T( Y& s, Q9 x0 N b - ;;;+ B9 ]3 ^5 H$ i; R
- ;;; Created: 2008-03-31
6 V& S; D/ E, {+ Y# N1 h - ;;;/ _) {" ~" F8 T
- ;;; Convert Attribute definitions to text9 {( {) }6 I/ Z9 q6 F" \& _/ k
- ;;;
9 f1 |6 M! y: [3 |+ B% v - 6 w Z: a7 J8 B" ?) c; h
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)9 b ]7 s% F( U& Q+ B% ]) m3 Y8 V7 B5 ]3 m
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))3 z: r. J& b ?# S! U! r% S
- blkcnt 0$ m5 e* f5 y' V$ B/ h, t* a! [
- )
1 K9 P& t* Y: l0 K* ?$ i - 4 [! s P7 D. ]5 G5 w; A( z
- (if eset1
% K+ ] u9 w8 w7 a - (while (<= blkcnt (- (sslength eset1) 1))
7 p/ |, G- V4 c1 p6 J - (setq en (ssname eset1 blkcnt)
; D: ]- D3 ^& v - enlist (entget en)% q# u- L! J* K+ W; Y" r6 @
- space (cdr (assoc 67 enlist)). i( {" _. O; v# L% F) w! p
- )
N, {* h" I9 l) m7 p - (setq vl (list3 O) o8 Z) E6 s
- (cons 0 "TEXT")
. t+ V8 E/ c1 I( q. j6 z% L9 Q - (cons 100 "AcDbEntity") U, e3 X0 {8 w/ Q# G. y! @
- (cons 100 "AcDbText")8 H- b) l# A7 J
- (assoc 7 enlist)
: M' D/ _# J8 L - (assoc 8 enlist)" b) m) W, X+ W _$ ]
- (assoc 10 enlist)1 ^+ e5 t( @. C; L! r# u
- (assoc 40 enlist)" b4 _- N! X7 I M3 b- w; q
- (cond ((assoc 62 enlist))
2 b& t9 X" S% M. V - ((cons 62 256))& Y2 C8 ~ S$ H7 E8 f
- ) k2 m# Y3 x& h# \! {+ T
- (cons 1 (cdr (assoc 2 enlist)))
1 J1 C: ?& t5 {* e7 p! w - (if (= space nil)8 H, R( l/ j" L
- (cons 67 0)
' X1 o% W" L8 v# Q - (cons 67 space)% w6 x% _' {' Z7 ~3 A t$ \2 z
- )1 {2 U" C4 Y) J% J+ a% ] x
- )2 t6 }7 G* g% u% R
- )
8 _# @, c" d" z6 d$ j* I - (entdel en)
6 N# r0 F0 j9 q/ J - (entmake vl)
) ?$ W2 k) h Y& c - (setq blkcnt (1+ blkcnt))" S2 Y9 K8 O5 M& y/ I1 e4 a
- )
6 K: m; u S+ X' C6 s8 r - )
' a9 b, m; i, ~ - )2 s5 k1 O% @6 U: H4 K' D/ |- _
- ;=====================================================================+ S7 d. b3 s6 j
- ;============================ Doi Truc ===============================6 |/ ^: u3 N) v$ q
- ;=====================================================================' Q2 z5 K w% Z8 V& n/ _
6 [6 ?) O) h# A8 n3 m- Z- ;=====================================================================
" _3 i, F$ t" `: z8 G9 \ - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============7 m4 C2 B3 s0 P0 t9 O! ?: B U; q2 {
- ;=====================================================================* D) O: `$ ]+ V1 ?8 L! U
- (defun c:ga1 ()5 q' }" d# Z$ T
- (setq a (getpoint "\nChon diem: ")): m' L9 S1 A+ S
- (setq b (getpoint a"\nChon diem: "))
/ Q& ]' Q! X, w L0 z - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( ]; a5 ~) k+ L
- (command ".circle" c a)
5 ~+ V2 w: ^6 q9 a* c - (command ".line" a c "")
, {5 U- E8 M; K$ e: T - (command ".array" "last" "" "p" c "1" "" "")
* a/ X u2 B0 h! i0 l, n0 b. A - (princ))# v& n9 z0 z% L5 O1 C
- 6 P4 q9 [" o$ [5 r
- (defun c:ga3 ()
9 W3 i- ?. z4 T# k - (setq a (getpoint "\nChon diem: "))+ K* J" q0 [4 n2 F' W4 [: C% V9 H
- (setq b (getpoint a"\nChon diem: "))
& U/ @9 K; Z& t5 T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ t3 l# \& l0 U4 ]4 ~3 @# b - (command ".circle" c a)1 k8 J( j, t2 g% a( b% T6 q( v
- (command ".line" a c "")' \! X. D: C& N5 R+ m2 Y
- (command ".array" "last" "" "p" c "3" "" "")$ o, P6 f C" m+ u; H
- (princ))
$ Y) P* j3 ^$ k) w
+ e* Q) o- o1 s C. h: _3 s1 T0 t- (defun c:ga5 ()
5 K2 z5 o3 e/ p" j# O" `, v - (setq a (getpoint "\nChon diem: "))
& y2 u0 G5 l9 u - (setq b (getpoint a"\nChon diem: "))
9 k4 N) ]% S1 ]8 z4 ~ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) a" ^$ E, I! F4 i) B
- (command ".circle" c a)
6 U/ p" d @# Y5 q0 g# M - (command ".line" a c "")4 W9 q* p9 q; t' M2 g0 F! l/ r
- (command ".array" "last" "" "p" c "5" "" "")- U1 O; L# f! [; C1 p/ r
- (princ))
/ T7 e1 y1 G5 s+ h* b- [2 n) p/ Z
% l! [: {7 V7 I8 n8 @2 j+ }- (defun c:ga7 ()
( l/ G4 `9 k/ ?* i& M1 X6 b - (setq a (getpoint "\nChon diem: "))
0 s6 A* L8 d. o - (setq b (getpoint a"\nChon diem: ")). X: e9 }, B& i6 G- Z6 z, J/ V
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% ?; f4 ^5 `2 C, F, f+ O5 }
- (command ".circle" c a)
! v( b1 Z( R2 S# T+ l. z: s, v0 O - (command ".line" a c "")' f2 L. ?) X) g3 a- H
- (command ".array" "last" "" "p" c "7" "" "")
0 ^+ M, B# O, P( Q$ n - (princ))
' R6 r: q4 V( v5 e9 k - : f! A) R8 N$ ^3 e
- (defun c:ga9 ()7 q. l- Q/ b% e, m
- (setq a (getpoint "\nChon diem: "))
, I/ B: Z+ l. _/ _) n- Q - (setq b (getpoint a"\nChon diem: "))7 n! H. o) y# V
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# v6 K8 F5 Q/ o- q# x% l- [ - (command ".circle" c a)# |, g" w: m# D- W$ ~- i
- (command ".line" a c ""); t4 u- v/ m- F5 j3 z
- (command ".array" "last" "" "p" c "9" "" "")# r3 c0 _1 W, V+ w; b5 `3 x" _
- (princ))+ O3 s( B# J, N* S$ H1 L) |# Y) M5 F2 U
# \( ? P F9 b9 Z# a8 v- (defun c:ga11 ()
$ a+ q5 [" P7 Y, B0 C% m - (setq a (getpoint "\nChon diem: "))
! z* k" Y5 B& `2 ?& M - (setq b (getpoint a"\nChon diem: "))
$ R# x; z, Y, ]9 s( Z) E N7 | - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* v/ [$ Q9 y+ \6 g& H; |
- (command ".circle" c a); f4 u: x9 ^! }0 w" B6 j
- (command ".line" a c "")' |7 A; U1 G2 n4 A O
- (command ".array" "last" "" "p" c "11" "" "")" P: p7 B/ N/ V( D0 ~: R. [
- (princ))
! f- p' q+ i4 P) S. I, }/ p - * O- L1 Q' j! K+ Q4 Y
- (defun c:ga13 (): Q0 r. i1 k' j c5 [ q, X
- (setq a (getpoint "\nChon diem: ")), L9 o, y2 B: z% T# d
- (setq b (getpoint a"\nChon diem: "))
: Z4 T& I5 F# W* y" f& M7 ?+ s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; e! U: W. s2 a) H% c* Z; D8 _ - (command ".circle" c a)
8 _6 t e) W a N$ c$ W0 ^/ f - (command ".line" a c "")" m2 O2 ]' a, @7 P
- (command ".array" "last" "" "p" c "13" "" "")3 H" O9 k) e$ N
- (princ))+ k$ E Z' t, o4 T' G% K
6 n2 T% F3 G; S, W ]- (defun c:ga15 ()
: Y+ w+ }9 v, A* Q - (setq a (getpoint "\nChon diem: "))
# E$ t3 C" ]1 `" A& l' m$ U2 } - (setq b (getpoint a"\nChon diem: "))" }. u) E9 I! h# t% S
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ S$ a1 R8 f; |6 k1 ^
- (command ".circle" c a)6 D# k( l- ]2 o3 B" \2 r
- (command ".line" a c "")
( k' T+ o5 Q' a5 R' _ - (command ".array" "last" "" "p" c "15" "" "")! b; z; M6 C# n7 I; x/ N0 X4 M2 H
- (princ))3 [$ f. }) k% I, o* R+ y _
- 7 s8 y3 ?2 Z5 G1 H1 [0 r( q& Y
- (defun c:ga17 ()
' U/ M2 w1 {( L+ B& y: r6 S - (setq a (getpoint "\nChon diem: "))
$ `6 ?! {1 L# |' q, g - (setq b (getpoint a"\nChon diem: "))
Y/ B" q1 n& i$ f/ q/ G' q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" |6 {' K9 o% G1 F
- (command ".circle" c a)4 E. T8 x2 J. ^
- (command ".line" a c "")
! l' @6 }8 t) H H9 ^ - (command ".array" "last" "" "p" c "17" "" "")
& t, N7 \ R' ?$ v$ x5 X - (princ))
7 I9 d+ }. g) Q) K+ s
4 Z. ^1 U! ]4 X9 ?7 d- (defun c:ga19 ()
# h* S2 ^. \( t" W- i - (setq a (getpoint "\nChon diem: "))( v) u0 O$ ^9 O$ o7 c* L
- (setq b (getpoint a"\nChon diem: "))
3 k: c3 N! W4 i - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# L5 y& J7 e$ t0 D1 ^# ^ - (command ".circle" c a)# t' H* P; w) d2 z
- (command ".line" a c "")8 J/ \# ?( \$ h- I3 B7 `
- (command ".array" "last" "" "p" c "19" "" "")
# r$ N2 m0 z+ K9 D( f$ g - (princ))
: f* o( Z- k" J% w O0 O0 p
6 J! x" o x) |# k( ~, _0 I1 u- ;=====================================================================
, P1 ?/ o6 S0 a, L! F - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============1 ~% o% U$ b6 W
- ;=====================================================================" g0 Q8 E3 f' M* k# K- q$ x' I- G& s9 _
- (defun c:ga2 ()( U+ W; I- T9 l8 E% z& M
- (setq a (getpoint "\nChon diem: "))
9 j! E; q" M4 f/ C9 N) l+ m, s" A - (setq b (getpoint a"\nChon diem: "))
9 N# ? U- h% J/ ] - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 \$ i ?9 ?1 X' m! Q - (command ".line" a c "")4 ]3 d5 o, o! x6 l0 W* c3 g
- (command ".array" "last" "" "p" c "2" "" "")2 C& f) ]0 u. c7 r, }
- (command ".circle" c a)
6 }% K; d4 _2 |7 v; j - (princ))1 U8 D8 V; ^, Z% X) b
& N- A& |& e; H& R8 }$ m. r- (defun c:ga4 ()2 h; M" @3 ]- [" a3 g% A7 R
- (setq a (getpoint "\nChon diem: "))
: [7 u1 v5 T ^6 C5 [* w - (setq b (getpoint a"\nChon diem: "))- R+ S' r, t& ~, J0 V" v
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); @8 T& Z; U( b" w; u
- (command ".line" a c "")
. C; P1 J- g+ U - (command ".array" "last" "" "p" c "4" "" "")
. q( }; d0 s; {& Z) J - (command ".circle" c a)2 |" X/ v$ i3 ~$ d2 h) X
- (princ))- I' |9 M/ R8 o, y5 J* Z
4 e4 }1 r2 A3 d* n- (defun c:ga6 ()3 G) f9 H- Z# [/ ?9 |9 o
- (setq a (getpoint "\nChon diem: "))* L& J6 r- o' w! |/ ~8 J. B
- (setq b (getpoint a"\nChon diem: ")): C7 T. q8 e, f& F4 @' f# n4 a
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& T" l* B2 [4 C% X8 d. D
- (command ".line" a c "")8 K% @! s7 K& K6 h
- (command ".array" "last" "" "p" c "6" "" "")) {) E8 W# D0 _7 o
- (command ".circle" c a)
1 O' j. C9 D' V7 g0 H - (princ))
4 c8 M% L2 u+ f+ a$ K
G8 v- I/ M* l; B0 r2 W- (defun c:ga8 ()
$ z6 _ B8 J) J: f6 J' ~ - (setq a (getpoint "\nChon diem: ")) h9 z9 t$ h( Q
- (setq b (getpoint a"\nChon diem: ")), v, `' H* g5 N' J
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& m! \- V% {+ I G! A - (command ".line" a c "")0 A6 i1 D* j6 v. R8 j
- (command ".array" "last" "" "p" c "8" "" "")
9 Y! P: g$ B, x( d" ] - (command ".circle" c a)/ I3 j& S$ \ g& L. a" b; \
- (princ))
5 v- [9 n) i. L" f8 Y - % y! H" l1 u6 u! Y1 L& G
- (defun c:ga10 ()
" A) q8 A5 R7 a! h1 ^. c* e- U0 O - (setq a (getpoint "\nChon diem: "))
. i# o8 P) W% u - (setq b (getpoint a"\nChon diem: "))
& {. }; ~1 H$ q1 q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' N; Z: l6 s8 e3 t6 b# E
- (command ".line" a c "")
2 t* ]& p7 G: \6 P% [: T - (command ".array" "last" "" "p" c "10" "" ""): ^/ p3 @8 I0 c& B; B1 p
- (command ".circle" c a)
: C. q, L6 p2 [) m* n& ?/ N - (princ))
+ X! [9 |1 g+ `1 C' t! W- w1 [( j - , ]7 \' f' C6 G6 y# b$ H
- (defun c:ga12 ()
5 @! r. Z8 n- |, D - (setq a (getpoint "\nChon diem: "))* P1 ?- k' U& D" ~# K8 N* S! j1 [
- (setq b (getpoint a"\nChon diem: ")); Z- f: Q2 |7 Y8 F+ U# n/ J6 a' A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) t! \; J6 W Q8 G( x0 m! x
- (command ".line" a c "")+ T) J0 O! p# q* H6 B+ q* m
- (command ".array" "last" "" "p" c "12" "" "")% u# G3 f2 h: R6 |
- (command ".circle" c a)
: i! E6 G& q# T1 ] - (princ))
3 V9 Z/ {7 j8 i Q1 j5 `' L - ; }2 u C, \& c0 ]
- (defun c:ga14 ()
" U. i0 R$ m# E/ J - (setq a (getpoint "\nChon diem: "))$ L0 z: m! @' t5 g
- (setq b (getpoint a"\nChon diem: "))
8 F% R- W" m% i6 ?4 H8 } - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
K! f+ R2 n, t3 [. \: J. w - (command ".line" a c "")
" T+ t, Q9 {8 w; a% D. z7 l# W - (command ".array" "last" "" "p" c "14" "" "")" |3 Z/ p! x" c" m
- (command ".circle" c a)
: F% ]% V5 X: v1 A0 n - (princ))7 \+ D, c8 r( S* [9 S
( w0 \" w7 t( m. `4 T- (defun c:ga16 ()
) J: ?* C3 l# {8 |+ T5 ? - (setq a (getpoint "\nChon diem: "))
+ q- N4 @; y: Z& x - (setq b (getpoint a"\nChon diem: "))
/ E7 {6 _: X: l/ v9 m( R- o - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 X+ P5 i0 a1 z' a/ { - (command ".line" a c "")
0 M+ ]9 E: Y6 E7 | - (command ".array" "last" "" "p" c "16" "" "")
c& M2 |: X% J8 Z - (command ".circle" c a)
2 f% z! y0 x: }) G. m+ @! ?9 s - (princ))( h5 j2 Z4 f) W+ v
9 ?* Y" [) N2 j! }+ r8 E- (defun c:ga18 ()
0 @% R" K: X) j8 O* b - (setq a (getpoint "\nChon diem: ")): d% ?2 f1 C& D \
- (setq b (getpoint a"\nChon diem: ")): Z" B0 [# P2 k, K4 u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 D, [& |$ _2 ^
- (command ".line" a c "")- @. {/ B1 _1 x1 |0 J* D* M
- (command ".array" "last" "" "p" c "18" "" "")( Y! h5 F7 E0 x; \7 Y! y
- (command ".circle" c a)
! k: L: X' j1 B- ` - (princ))
o/ z! g! g; }& k( g; ~7 D - ( R c( g1 Z$ }* e/ `4 y
- (defun c:ga20 ()
0 U6 q- Q; k/ {! H# R: W - (setq a (getpoint "\nChon diem: "))
1 Y3 O& s l# a - (setq b (getpoint a"\nChon diem: "))
8 B: D1 R8 Y8 A5 I: T& o - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% P% L9 n; S6 M5 h4 b
- (command ".line" a c ""): N" U; q+ S" {+ g# ^$ s' V1 G
- (command ".array" "last" "" "p" c "20" "" "")
& S0 D: O" h# N4 Q( c( X - (command ".circle" c a), D8 O, c; O) {/ t, O' I
- (princ))
* X5 g# @9 s+ ~
; V, u$ p# n: q& _- ;=====================================================================+ O# _0 E) H/ @( I6 Z1 s' X
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============9 H+ D$ J/ p3 Z
- ;========================== 06-11-2016 ~ 18h00 =======================: S% k' j/ c6 J0 u l/ ?# x( l
- ;=====================================================================
M- w$ `% s6 T- _ - (defun c:ga ()
1 W6 A7 i5 ]0 {0 p) y7 {9 k2 z - (setq a (getpoint "\nChon diem: "))
) p" f. |) [' C, w1 @9 V( D - (setq b (getpoint a"\nChon diem: "))0 c6 F) K) d* }/ L( A0 Y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 [0 X1 O, L$ {1 _) I% A - (command ".circle" c a)/ ^- T+ j. \1 ~ [, m
- (command ".line" a c "")) B$ u: `3 y# j7 I; p+ U8 b
- (command ".array" "last" "" "p" c "NUM" "" ""); C! W5 c9 p ~2 j- ^0 |
- (princ))
1 ]" D* x6 F! S& {' c1 A - 8 W7 |+ K+ L/ P3 @5 s) u4 A
- ;=====================================================================: b/ D0 a8 t1 ~% I' d
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
7 l- B% I# _) V - ;========================== 06-11-2016 ~ 18h40 =======================
( `% R# W0 l/ A1 P" U - ;=====================================================================
# i( z8 d* \0 Q) e6 W, Q - # B( @& P) ]% Q; f& [
- (defun c:hoathi ()# o: b- Q. O1 w1 Y$ ]5 N: s
- (setq a (getpoint "\nChon diem: "))
0 o+ D& g3 }7 O4 w, d8 o$ ~ - (setq b (getpoint a"\nChon diem: "))4 z4 @- n! w# _& [% _
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 ~& L8 H; C7 g" j/ p
- (command ".line" a c "")1 E" S2 k; S/ N0 `
- (command ".array" "last" "" "p" c "NUM" "" "")
" c& F4 x# E: V- i - (princ))* z/ N+ B; F! p4 q! t9 q! w( T, z
3 Y2 L$ x; V" a* \. x8 M, N7 k3 _- ;===================================================================== ~: x; F. X3 L0 m5 ?
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
) k' d4 W7 c* t& S* M F - ;========================== 03-11-2024 ~ 19h33 =======================
# v( s3 B& [' S) t - ;=====================================================================$ ?& G) {. _% ]2 O0 e: Z( \# j% [+ V
/ |3 D2 a* L. `5 |! ^. S- (defun c:cung ()
0 B$ G. u+ R" V( H4 m5 x D - (setq a (getpoint "\nChon diem: "))3 E! ]! p6 P& g! `, ?/ [
- (setq b (getpoint a"\nChon diem: "))
; C1 G1 z5 b, c4 s - (setq c (getpoint a"\nChon diem: ")) G+ Z" A* s$ Y; k7 V
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 X$ F! h0 c2 r2 L0 f5 v
- (command ".arc" a b c "")
0 i2 t9 o4 h9 Q- S& Q L6 F$ s# h - (command ".array" "last" "" "p" c "NUM" "" "")$ p9 E+ v; e1 \, A" A
- (princ))
8 `7 u2 y0 ~ D( n6 B) L0 P- `+ U - 8 q, v6 m" V5 C8 f, H& Q- M
- ;=====================================================================
" L+ i. M0 _7 b5 d! I) F1 P - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============+ C5 t: x, ?) f5 n# o2 o5 K
- ;========================== 03-11-2024 ~ 20h02 =======================1 T5 g, ~$ s* k
- ;=====================================================================
8 C7 P3 Q _) `: o* I h9 M/ c* g - . h& J( t! @ z+ z$ D' x" Y6 z1 K# h
- (defun c:hecloic ()
3 F( E. {2 H7 x' S - (setq a (getpoint "\nChon diem: "))
3 T/ W L* a3 _ T6 l - (setq b (getpoint a"\nChon diem: multi "))
1 }) Y9 X x( ?" G8 u - (setq c (getpoint a"\nChon diem: "))(princ)2 I) ]: x, [; ]9 k1 j0 Q
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' D* I2 H* ]: F& B; M - (command ".arc" a b c "")1 j# G8 U5 {; w8 A
- (command ".array" "last" "" "p" c "NUM" "" "")' e# A$ ]# L4 n, X+ r5 X3 s3 E
- (princ))
* [8 p5 v1 i( t" @0 F( B) C
& w. w8 K/ R+ ^0 h& w- ;=====================================================================$ G1 L' N) o& H
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
# h4 |5 a! L3 X3 S4 d0 Y6 N - ;========================== 03-11-2024 ~ 19h38 =======================- H: b; y# j: z6 t( E8 c
- ;=====================================================================
; j h9 [4 S" R9 z" K- d - 3 r! { ]: ]" b
- (defun c:gay ()
+ N9 U6 i* q8 ` - (setq a (getpoint "\nChon diem: "))
4 m5 E5 s5 d1 t2 G - (setq b (getpoint a"\nChon diem: "))
* _4 y0 @7 D( i - (setq c (getpoint a"\nChon diem: "))(princ)
$ i! g5 ]5 p' ~7 Q: n2 s8 p - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! I9 |& n) A6 z+ t* z' q! C - (command ".pline" a b c "")
$ E; }3 G" D8 u6 F+ C8 a+ o) q* y& ~) a - (command ".array" "last" "" "p" c "NUM" "" "")- @- h+ \4 s! t6 O3 O
- (princ))
% @5 a9 `" `8 P( f2 v$ [
, {; b3 Y" X+ O* o# X- ;=====================================================================0 @$ G( C# }4 }3 K: I
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============# ]9 x5 ^6 G$ N! Y
- ;========================== 03-11-2024 ~ 20h02 =======================" K# e; q- _$ O/ b% d% s4 H+ k5 m2 |
- ;=====================================================================
8 @9 E t1 v, p% U - 0 x: Y& z$ n' D6 t7 c7 s
- (defun c:hecloit (); O d" K4 f, s' C! m2 r" {
- (setq a (getpoint "\nChon diem: "))
. y$ ]( J8 F; u4 Z$ Q; _+ w) u - (setq b (getpoint a"\nChon diem: multi "))
/ \7 ?4 _- }2 [ - (setq c (getpoint a"\nChon diem: "))(princ)1 w! a+ u4 }( Q: L8 S
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' e" T0 i3 h9 e S - (command ".pline" a b c "")+ u4 |6 u. u) p, Y( Y
- (command ".array" "last" "" "p" c "NUM" "" "")
% o) `- _; O" t- m% A1 n Y5 J - (princ))) h. j& F) C; M9 D
- + t" g7 i; m- v0 I# j
- # b; T* B9 e' o8 o
- ;;; ============================ Merge Hatch ============================= D4 V) d6 S) s" v" E7 J+ O0 M
- 6 Z+ E' E; k) e# O
- (defun c:mh (/ ss entht sl i dt dtht)
" c$ W: I1 i8 [/ K c" o6 z0 f, ^% q' V - 3 e, @0 w" z, I/ W8 ~. X
- (princ "\nMerge Hatch - free lisp from CADViet.com")! _! m, T2 g) a+ Q( r
- 5 U" Y: P9 N' @$ h
- (setq
1 x& L: a5 [+ ]; G - ss (ssget '((0 . "HATCH")))# _/ A( i7 o( k+ C4 Q+ x; I% E
- sl (if ss
( i7 ~* L' m: L" K, L& y - (sslength ss)
7 B7 V* e0 D! Q - 0& q5 v, m8 P/ W- u, C( w! q
- )% l3 u5 O7 i. E9 \( b
- i 0/ m( X1 k9 ^: V+ C
- l 03 T& d, c$ _2 Z
- ). l0 ^; d, \% X
" x2 y2 b: y' G) k- (repeat sl$ z- n: k/ e+ B$ ]9 y$ F% j' ?
- (setq
6 \# ]5 I. A0 D! m - entht (ssname ss i)' l5 G( A8 X/ M. b8 y6 F
- dtht (getbdata entht)
2 c/ V. P9 l( G: x+ T8 P+ ] - dt (append dt dtht)+ n8 j/ W! B& n u, t
- l (+ l (cdr (assoc 91 (entget entht))))
, ~# q/ V9 [& Y% w$ P- z+ \ - i (1+ i)
) U. l2 r! b/ {* r& |+ y' P - )
) ^& s4 Y# q7 X8 M - )* y' v- L" w- ]% |! u n- m
- - z2 B a- w e" b) d# } R# A
- (setq ent (ssname ss 0)! I7 j2 |( f0 |
- ss (ssdel ent ss)2 l& I7 c7 B" l& H8 z ?
- tt (entget ent)/ l) y' C9 x1 s! O
- duoi (member (assoc 75 tt) tt)
7 p N& c" f# N% G! z - dau (reverse (member (assoc 91 tt) (reverse tt)))8 }; L- Z. [8 Y9 D) ^+ d$ y0 I& ]# J5 E% {* z
- tt (append dau dt duoi)
* ?$ d! A$ G+ v1 p - tt (subst (cons 91 l) (assoc 91 tt) tt)
4 A2 I5 v. H9 O, ?. {$ ^8 y - )8 d7 T/ D( B; j' ~' _8 ^5 Q" O
- (entmod tt); _4 [; ]+ x) d2 u9 W
. w% o: I" L e( j* R- (command ".erase" ss "")
5 I- g. u% z" L' J& m - (princ)! c/ y8 m3 }2 S6 a s
- )+ A% c( F _6 B( g- E/ K/ S
- ' z/ c. R0 G) ]. r2 @3 J
- (defun getbdata (ent)
4 u+ I0 _$ I3 Q0 D& T: c - (setq tt (entget ent)
! q ~% P o: @; ? - tt (cdr (member (assoc 75 tt) (reverse tt)))
9 D) n2 n* o d7 z/ L - tt (cdr (member (assoc 91 tt) (reverse tt)))
% t' y$ _! G' _# I - )
* R- Y# P% U L1 q( s" y - )
( P# d6 _' [) s$ a+ P! x
' @+ _% l. a- S* B
" I2 r7 i, e9 p% C0 \- (princ)
/ }1 d# y9 G; \1 D& M- w - 8 [1 {0 T$ z* Q$ @3 o' _% B
- ;;; =========================== CAC LENH LAYER ==============================1 \5 Z8 I- s: k7 ?# @
- ;;; =========================== Layer hien hanh =============================
: S0 |8 V# f$ }5 e3 l/ V - . _" i8 F* [' P1 Q) X/ V
- (defun layset (/ LAY) (setvar "cmdecho" 0)% t1 |4 N( `& B5 L3 @
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
" C$ u! f! a" L9 U/ q' ]- J - (if LAY (progn
" T' Z1 z! x5 |1 c$ [5 z - (setq LAY (cdr (assoc 8 (entget (car LAY)))))0 z9 u0 U$ F' s) e
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
2 T% U* G. g$ o0 M, x1 B - (progn
Y% F* G) Z0 `0 k/ U% h9 n# }9 f7 v - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) / m" v6 U8 b* ~
- (progn
' y/ J& z4 N9 e* g - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )* S& R, `! ^" x- r
- (defun c:LLL () (layset))(defun c:LAYSET () (layset)). z# X; |5 [7 e, F' k# t
- 1 C) ]5 y5 H) I- L2 Y
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
0 R; r1 |% a' J% c/ [% X5 X - ! B) i6 `9 B7 R% [
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
- j& b/ e% n) A' ^( l/ Q4 s# c - (if (not (setq SS (ssget "i")))1 r/ O5 z. O% h+ T- v* t" P+ s1 l8 `- n
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: "), q* X: S8 H5 P' Q1 d' ?
- (setq SS (ssget)) ) )* |0 b. T* P) [2 }
- (if SS (progn
+ a" C/ F4 `" I2 S7 C - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
2 e4 h: Q Y" I2 l6 I; K' Q1 u - (if (> (getvar "cmdactive") 0) ) q! M2 L7 d8 O
- (progn2 y5 J2 A& D; Q. R4 D
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
5 x4 k: K7 g, G' a8 X& `- x; y - (setq SS nil) ) (if (> CNT 0)
7 a7 f8 n1 Z& u& m( ? - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
2 A# U+ s% l% y* j) R8 ? - (if SS (progn. _. P5 E( M4 O# U' N
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
5 \5 ]5 l+ w* B V- O% G& N3 a( Y - (if (= (sslength SS) 1)
Y0 Y H8 d/ w - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
/ a, \9 ]* X' S) @; C( j. p# \ - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end# t0 l' A3 _) v* l; A8 t% ?5 t
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))9 g# d) k. |! s
- 2 s7 ]- k8 P& I6 u/ T; U* [! o
- ;;; =========================== Layer Iso ===================================
6 `' Z0 G' Z5 ^7 d
. y& E3 B5 [3 i7 F2 }, d F+ g- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
f7 o" v* p/ \' ]5 ?! y - (if (not (setq SS (ssget "i"))) (progn6 }5 X% z3 r _! {' Q
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
# p3 _* e- ^; l1 q - (setq SS (ssget)) ) )
' p6 T! \- C+ v& P5 g - (if SS (progn (setq CNT 0). E8 i$ u! d O% s9 \3 m
- (while (setq LAY (ssname SS CNT))
w5 s% l- `9 E& |6 r0 ^ - (setq LAY (cdr (assoc 8 (entget LAY))))) R5 N5 W Y0 B3 g7 F
- (if (not (member LAY LAYLST))7 v! r# x. [! k( L) l
- (setq LAYLST (cons LAY LAYLST)) )
, c/ A6 W0 l% C - (setq CNT (1+ CNT)) )4 b# e% M) @* _& X% j+ V* u0 h
- (if (member (getvar "CLAYER") LAYLST)% M. P# A2 w; X- z
- (setq LAY (getvar "CLAYER")). p. r# \ L. |& D8 ?' L1 Y
- (setvar "CLAYER" (setq LAY (last LAYLST))) )3 S" z) ^. J& h7 X, |3 K) G
- (command "_.LAYER" "_OFF" "*" "_Y")
+ \3 U( a5 C" I8 V9 h! t2 Q - (foreach VAL LAYLST (command "_ON" VAL))
8 i& T; Z! N9 t! P7 i - (command "") (if (= (length LAYLST) 1)
! m" P% ~& C% o2 R2 ?6 d; I - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))6 U' S, ~, K/ ~2 _3 U8 Z7 g. F
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "8 A' P4 W) M8 \" L$ b8 e
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )& p6 `. }4 c/ S+ w2 Z7 q
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))) ~$ s% E! g' J& M
) k6 l! v1 u9 E. H7 Q- ;;; ========================= Layer Match ==================================5 j4 l5 i# M* c' A/ [! b
, J+ [1 E' A& k1 ?2 p- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)* O. G, [5 V2 q) u& p P; ? o
- (setvar "cmdecho" 0)/ K9 T% K+ V5 M% o
- (if (not (setq SS (ssget "i"))) (progn
2 F9 {" A9 `' F0 b6 L b+ w - (prompt "\nChon doi tuong muon thay doi Layer : ")8 F% G @6 p; w2 E7 w
- (setq SS (ssget)) ) ): I6 D( b1 i* U% H
- (if SS (progn
- y6 `! U# B& ]% F. x% `0 { - (setq CNT (sslength SS))9 B! a+ j) Y) o! D5 K
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") 7 e R! Q- C! O! k; m5 Y1 z( k
- (if (> (getvar "cmdactive") 0) (progn
& d/ i1 P% i5 w! Q0 U; v - (command "0,0" "0,0") (setq SS (ssget "p")( l- u& m, {* ~+ I( Y4 O! A
- CNT (- CNT (sslength SS)) ) )
" X0 Q+ W4 P' G9 m - (setq SS nil) ) (if (> CNT 0)
: A) D! s/ Q5 @ i - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
# Q( |) t# E1 T7 O, y. s0 \ - (if SS (progn
; v/ ~8 d3 K$ b8 V4 J$ _ - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )! I" {0 U2 j& m) W
- (while LOOP (cond( ~" Q/ R1 h- R. M' g9 f8 Y
- ((not LAY)/ t. x [" c" P" M7 d3 B' T* p
- (prompt "\nKhong chon doi tuong.")
& r5 t2 h% o# J% ` - (prompt "\nSu dung layer hien hanh? <Y> "), F/ V" \! G1 e1 A, o+ O
- (setq ANS (strcase (getstring)))
2 S2 `7 V% G8 c | - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
* k! v4 Z3 z+ S9 _) M& i* w - (setq LAY (getvar "clayer") LOOP nil ) ) )# l$ ]9 I5 i" B
- ((listp LAY) (setq LOOP nil) )1 m. m7 M+ Q q
- ((= LAY "Ten")- r n: @- E2 V: l
- (setq LAY (getstring "\n>Nhap ten layer: "))
1 e& W* `+ n2 A% \ - (cond
# n3 w3 v$ X+ c - ((tblsearch "LAYER" LAY) (setq LOOP nil) )" j/ W* v# w3 c. H H7 M8 v1 c
- ((/= LAY "")# j8 S% K1 u0 y% k, N Q4 ^
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
, T5 M& a% a- k8 E- h* F) N - (setq ANS (strcase (getstring)))4 _. K7 E8 y9 J% S; w3 `0 Y) q
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
' f% M2 \1 T9 W1 r- w4 V - (progn- S5 `$ @8 @- v7 x
- (command "_.LAYER" "NEW" LAY "")6 M# A6 H1 Y- ^: L( `
- (setq LOOP nil) )* O2 G- i6 x+ f g% G
- (prompt "\nLoi ten layer.") ) ) ) ) )
/ v7 \4 E2 v/ L, | - (if LOOP (progn (initget "Ten")5 X' g$ o: s- [& z' Y" [5 G; F: }
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
* J9 O1 o# Z3 m+ _ - (if (listp LAY). b. Z T9 G' @, ?- M+ K5 r4 H3 {& X
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
9 H! ~7 _: \, C. A4 o2 j9 g - (command "_.chprop" SS "" "_la" LAY "")
( z: d$ G g( F6 D! w( o, E - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )) s8 _: X8 A0 C$ b% }3 ~4 f
- (if (= LAY (getvar "clayer"))# P( l5 g2 @9 `9 X# a
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
0 n% i" ^8 B8 V% l1 Z" M: U - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))2 W: z. b5 O9 V2 _9 ~( F
' U9 _# q* x7 N7 ?1 e! q- ;;; ============================ Layer OFF =================================
+ i6 m4 ?6 z/ z3 q' ?9 y" Z( q
3 u; v4 b; K7 L$ y. v. E+ }- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE); u; H) N; t& [, a* J) E
- (SETQ SSET (SSGET))
3 d* L$ G9 _9 v4 b$ ? - (IF (/= NIL SSET)
/ M& y2 m n* I' ^$ ^ - (PROGN
1 \5 u; ?# R1 X/ y% n - (SETQ SSL (SSLENGTH SSET))7 J6 i2 C) e4 s' z
- (SETQ LAY "")
1 ]6 ~$ h# x0 ]; |9 ^7 L( `3 q2 f - (SETQ I 0)
' ?; _0 ~: b9 Q& h( o: t7 i - (SETQ MODE 0) X! Y& o3 i! s& A2 O
- (WHILE (< I SSL)# j9 T9 ]% R4 I$ {0 }: f; p
- (SETQ ENT (ENTGET (SSNAME SSET I)))/ C7 u( @2 O* f) [8 E6 ^3 v' m
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )' e U- t( z2 u+ z) ^' Z1 R N8 M" Y3 f
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
7 v; f! o$ |/ G- |! H% n - (SETQ I (+ I 1))7 N& I" f+ p5 Y4 o6 g' D: G
- )
4 h; f" a) ?% F3 _$ }0 K" C. G - (COMMAND "LAYER" "OFF" LAY "")
% p. \- j' D$ G, x6 C2 P+ E - (IF (= MODE 1) (COMMAND "") )
Z- w1 _% |: S/ S! J8 I# T% w# k - )' V4 {# r" l( N) A, H
- ). ~# m; d# Z! {" R( E" c$ i
- (PRINC)1 j* a4 t" J1 N8 c2 y
- ); E! q5 c3 q2 @# D/ ?3 F6 ~% y1 D
- 3 k9 B- n5 u6 a6 Q
- ;;; ================================ Layer ON ==============================, Q/ Q: ^' T, h! M
, c% ]: Q0 T& c" D- (Defun LAYON () (setvar "cmdecho" 0)8 a$ e* X6 }% G
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")* o& Q2 ? ^7 {
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))5 E+ _. U" A; z. R: E B+ _
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
: H7 @' j* {2 t6 D9 L - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
4 O, v# [! O; T! f4 v - ) F1 X7 f( `4 Q0 N! O. o
- ;;; ============================== Layer Freeze ===========================, X$ W! H0 O! M: k5 C9 C( Z
- , _ A0 U( K5 K" ~9 N- v# U* q
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) 3 I9 I1 U3 ]4 y3 ^
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET)), w) v& W7 S5 M+ w6 q
- (IF (/= NIL SSET) (PROGN
$ |5 l- E; I1 w - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
8 N: j3 I6 v {- d; P4 o0 a - (WHILE (< I SSL)$ f! a* K5 w i, S
- (SETQ ENT (ENTGET (SSNAME SSET I)))
4 U+ A& b" I) z, O7 d; W3 z! v* w - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
7 \9 ~ d+ J* {& _: r - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
( Q/ w; C7 d# Q2 u s - (COMMAND "LAYER" "FREEZE" LAY "")
" K! ?5 L% U( r - (IF (= MODE 1) (COMMAND ""))))
# K" M; [: h7 T. x' F$ [ - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)/ h6 ?, T- K1 C# `6 T7 }7 ^0 u
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
( R a0 B% w7 X - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
* L; M% o" c1 j& o7 t, { - - E% P& M3 ?4 ~' R0 }" Y. G
- ;;; ============================== Layer Thaw ===============================
( g2 s' B0 Q& P( B - " ?7 o& [; e" A% I) ~" P
- (Defun LAYTHW ()' s6 X0 \+ l( k
- (setvar "cmdecho" 0); N+ B( F9 G' H; S4 |2 F: s$ l
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0"), ^( e( G k8 t- y% P! J5 G
- (Command "_.LAYER" "_THAW" LAY "")
- A& W! e) d* V/ j - (princ (strcat "\n Layer : " LAY " da THAW."))
8 t9 z" u( Z y8 s - (princ) )
5 M, D" \; t4 h - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
# k4 ]5 y" X H3 F
6 |5 V* N( [0 a, N2 F3 `" F, |- ;;; ============================== Layer Lock ==============================5 a, X( h# }9 C0 r3 c9 P
! ?! I" F6 y s7 x9 U8 B- (Defun LAYLCK (/ LAY)
F/ E+ a, @" H6 r/ A" l1 v - (setvar "cmdecho" 0)7 W. ?% {* V. _) @7 t5 p2 A
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
9 q5 E9 W6 L/ ^" [- v) C; [( l - (if LAY
: L q7 N2 q: z3 `. q1 k - (progn! S; T6 `( s& u* @5 ]2 n/ x
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
8 S- Z* L, K, Y) H; [ X0 |. v - (Command "_.LAYER" "_LOCK" LAY "")
9 L$ l0 p6 q* b - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
( X, i- g; l+ u o8 P# x - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))1 f$ R, ], j M# A/ N) q$ W; m
- 5 l$ S1 K! F2 F' T8 m
- ;;; ============================== Layer UnLock ==============================( [# {: B/ b9 H: H7 g6 t
- / `9 |" |' U- }$ ^( O, Q4 w$ D
- (Defun LAYULK (/ LAY): m4 U6 K3 v4 V" `2 U# u; y, Z
- (setvar "cmdecho" 0)) p) k" @3 L6 v& M3 J# B+ J7 o# Q
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: ")): L1 }' K+ B+ \: ]- _: |; u l
- (if LAY
, N6 h+ v) `$ y. P - (progn
3 J# D$ C# k6 Y1 h+ O8 E. ? - (setq LAY (cdr (assoc 8 (entget (car LAY)))))- S4 k K7 ^! } m k% o
- (Command "_.LAYER" "_UNLOCK" LAY "")
! P5 V& H5 ^" a; b( S! B8 f1 A4 R - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )- L, ~8 Z% n$ j' D/ z8 |' |
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))/ H5 g3 }& j+ W4 O8 c" H
- E7 u- L6 {- _- y" [( K
- ;;;===================== Delete all objects of Layer ========================
8 \+ e8 B# z2 U - 0 l" p" _0 }3 I) V% S
- (defun DELAYER (/ ocmd L S) + V, G' e6 I6 W7 |! T, Q
- (setq ocmd (getvar "CMDECHO")), T5 S6 F0 d; P- \
- (setvar "CMDECHO" 0)* ]' M2 I4 i. Q9 f, n) C( H
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))
- O( w' i3 {/ H0 @* t - (setq S (ssget "X" (list (cons 8 L)))) ( }% @( I2 t1 n# w7 k4 A
- (if S 0 M$ i- q! Y1 O
- (command "ERASE" S "") 3 w; w$ q4 e; }" G/ j& v' c( B
- (princ "Layer empty or not a valid layer name.") ) ! _1 f) s: \2 t8 ~7 o8 u% h. n
- (setq S nil) 9 A/ r2 u8 S+ Y8 x( I) e3 W2 k* K& d
- (setvar "CMDECHO" ocmd)
$ s' p4 u) S$ K7 _0 \3 \ - (princ) ) & G) i, j# l' K1 V, [# R
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))* m( P- z/ _6 K( @ ^5 s) X
! t2 X: l) |; | B; q, i& l- ;;; ========================= HET CAC LENH LAYER ===========================9 Q6 H! x/ m8 l, F9 p% c8 t
- & Y0 N0 e4 f& U" ~1 q8 N0 |7 F
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================$ V$ V6 F S2 @$ a2 y% z' _) O
: U0 ^& F; u9 i( S6 |- (Defun C:EET (). l) X1 c P: g3 f/ B6 X1 t! i* U
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)8 z4 z% o9 b4 R) Q! c6 o
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
0 X9 Z4 s& I8 F2 F# K. @* ]+ e j - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
" i+ W9 A3 o, Q1 S0 v0 ? - (Setq I -1)& t5 u/ V1 P/ l/ I' c9 X
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
, G* x+ Q4 I: _/ q R' ? - (Repeat LEN
- u& M' x9 D7 Z - (Setq I (1+ I))
6 E5 [0 q) `2 L/ Q! b* x, N7 _ - (Command (List(SSname SS I) SIDE)) ) (Command "")
4 N/ o/ u! V# f( I0 I - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
9 \& }- L# M' z7 Q; P
7 `& ?/ d V" P* j1 s$ Q8 U- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
+ u1 X$ W' `' u
6 h. x: ?1 j- ]3 |! W+ L- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
% S# _; e/ K: I- L* a - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
% z1 r' S3 ~3 B - (setvar "osmode" os)4 L7 k$ _( }, _) S7 m0 S
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))8 b6 @; x3 Q! Y; _# k6 `
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))' \! s& e8 f6 ]" u% M; G2 ?
- " } a& `' O! x) ^
- ;; ================ Change width of polylines =========================0 u% m) x2 R1 N6 y+ Q! i' ?0 |
- / I: A4 ^7 w7 h5 ]8 u
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)9 L- E2 L( H; o& u* w- U1 j
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !") : n. b4 Q, y ]8 A$ f3 V
- (setq b (ssget)) 1 v) u" F2 x8 z8 p8 Y
- (setq sophantu (sslength b))
; W! C% U* `' h: o - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))+ _4 i2 F1 {/ K2 r: j# C6 U
- (princ "\nDo rong polyline <")
8 E! e! ~) t3 f. d5 U+ T: ] - (princ ha:wid)- Z% R6 z$ o& D
- (princ ">: ")9 A" z D' p* U4 \ T: v
- (initget 4)
+ m F% [! S( `' f* g& V - (setq ha:wid (getdist))
7 y! n2 `% e& \: a$ V5 ~" i - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
! g2 o" K& K5 F( j) v" y4 X8 ? - (setvar "tracewid" ha:wid); k) s- U# {( [7 b4 Z; O
- (setvar "cmdecho" 0)
# @" Q' C$ p2 d7 r1 C - (setq sodem 0)
! x$ ` @7 I( Y0 n' B0 d. j - (repeat sophantu/ c( ~; ]5 p6 E/ g' L
- (setq a (ssname b sodem))
" p- G6 a& [- U* `0 \" V8 S - (setq list1 (assoc 0 (entget a)))) T" ?# c7 q+ n5 k% I6 b# t4 [
- (cond
; r+ j6 J) c Z# g+ a - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
+ w4 `: I8 L# L4 Q2 |! e - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) R2 s1 U$ |" i3 R6 r: X! h+ y
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ)) o' w9 Y) [. T* s
- (defun c:wp () (wp)) (defun c:pw () (wp))
7 I4 j# m: g w1 f, C# I' N: Q w
/ z' w9 Y$ w4 P1 i! ]( w `- ;; ================ Change radius of circles ==========================' Z( K, s R# \ A3 S" |9 }
- 4 C' l8 C: M+ y
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
' k5 j' f }4 P" D - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))* F+ K% P$ o6 h# q# [
- (IF (/= RD NIL) (PROGN (SETQ I 0)
$ t1 P/ P. R+ }9 Z* ]( k - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
" ` m- U4 V2 A2 Z, F( W' E - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN: f6 P$ O7 q, A8 b* s: |
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )8 H- X5 X2 K8 C) i M- L4 G
: G4 M# t3 [( r, a0 A4 W) v, ]- ;;; ============================== TEXT Hight ===============================
/ J$ h5 S( V" O- s) s3 ^/ s - ' U) y* y7 d/ p6 H
- (defun texthght (/ ent hght)
( {: M* f3 K, W$ k. d - (setvar "cmdecho" 1)
8 Y8 r/ Q. O3 I, ~ y) ? - (prompt (strcat"\nSelect text entity with required text height"))* a! J3 E7 m6 a2 s
- (prompt (strcat"\n."))- ]$ [/ I! J8 D
- (setq ent (entget (car (entsel))))" Z. P6 g8 c: s, J. T! v
- (setq hght (cdr (assoc 40 ent)))& b3 j; x' c8 y: ]1 F/ i* X
- (prompt (strcat"\nText height now set at "))(prin1 hght)
; a# M. q3 e& e" [ - (prompt (strcat"\n.")) . }( ^, p: f; \" s0 ^
- (setvar "cmdecho" 1)& r4 O @9 L! {. A+ u
- (command "DTEXT" PAUSE hght "") )9 Q" ~9 }1 d ]) F: i
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
% W" w" M( c8 K1 z, H7 m) R - % q/ G2 B7 z- z; h
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================/ M# ]2 z! r0 a( q; g$ p4 Y
- * @( t5 j9 p9 D& I2 N2 \0 O
- (defun c:tuu () (setvar "cmdecho" 0)& }, e. o- e% k" j5 Q& c) Q; y/ ?
- (prompt "\nHay chon dong TEXT can gach chan ")
/ [2 L) J3 Z( q/ d I' K - (prompt "\nSelect objects: ")
9 Q% P( q9 E3 W, [7 S, k - (command "select" "au" pause)- x# M) J' k+ j: Q6 n8 ~$ y
- (setq sstxt (ssget "p")6 o# n" J& T/ H4 {. \9 n; Q0 W7 r
- sslen (sslength sstxt)
4 U; S, d# g( w2 |5 p - ctr 0 )
; r8 W- g e6 r& l% i5 c - (command ".undo" "mark")
; \, Y2 z' L1 h4 Q! @4 r: u A4 x8 ^ - (while (< ctr sslen)
, S* x( s0 i0 s, [, l# I - (setq listxt (entget (ssname sstxt ctr))
' P* }; p5 Y& C+ f7 h& Z& k6 ?. P - txttxt (cdr (assoc 1 listxt))
" P9 @* a5 M) U9 L6 A; H - enttxt (cdr (assoc 0 listxt)) )
; S0 n0 Q, n8 Z - (if (= enttxt "TEXT")0 G" w' R! U+ c% x) G1 p) @! t$ S
- (progn( ]- J3 l2 x" _
- (setq testxt (substr txttxt 1 3)): O9 ^6 s; u- e4 g7 W: m; m
- (if (or (= testxt "%%u") (= testxt "%%U"))+ w! p# }* v4 Z- K$ M! U$ f0 O9 s
- (setq newtxt (substr txttxt 4))) N! Y2 B% _3 K ?" b! n. I5 x
- (setq newtxt (strcat "%%u" txttxt)) )+ L7 r) ?( r) [' v) X6 a5 {
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))4 D: s' t/ B+ y2 U! L
- (entmod listxt) ) )
2 H( Q1 x5 Q3 s5 J. U# f - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)). f* n- N7 `3 L; a
- ' g( A1 U# b3 B( x J$ ?, S6 } x
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
* B5 x6 T' ^/ T2 o - " i2 }3 k* X4 Q j4 Z
- (defun c:tob () (setvar "cmdecho" 0). ^; o p9 u% B
- (prompt "\nHay chon dong TEXT can gach tren dau ")" n, o# u3 P& C* Z
- (prompt "\nSelect objects: "), q5 R1 v% W6 I6 I+ I4 @" n
- (command "select" "au" pause)
, U# |/ F/ F( `" ]4 y. b' [ - (setq sstxt (ssget "p")" { ~- N" X) R2 O
- sslen (sslength sstxt)
, x" ^( W4 @( _; b - ctr 0 )
# |) n$ ?0 h a' f# w% \ - (command ".undo" "mark")7 ^' Z" t. T& \: b5 g, V
- (while (< ctr sslen)0 i) m- ~2 `) n% t7 Y) `" h2 f
- (setq listxt (entget (ssname sstxt ctr))
7 c* o2 N$ f4 g7 }1 l$ _; k - txttxt (cdr (assoc 1 listxt))
) U- b5 T; t: i1 S- D) F% J - enttxt (cdr (assoc 0 listxt)) ). y: C" L# J# _; E/ ~) X
- (if (= enttxt "TEXT")6 y$ r& R7 `$ m- p
- (progn0 n/ W( O& h. p3 s& R
- (setq testxt (substr txttxt 1 3))
! k% M1 n& f' Y, H. S) P - (if (or (= testxt "%%o") (= testxt "%%o"))' z. _- ?" X8 ?. ~
- (setq newtxt (substr txttxt 4))* M+ s5 z# }0 L' s3 E' l
- (setq newtxt (strcat "%%o" txttxt)) )2 K; N+ Q0 _. {, q, o
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)) k# k3 D* i$ }( _& J3 ?8 l
- (entmod listxt) ) )0 c0 m& W* o" |, |. q0 {
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)), W. K2 @2 y z. A+ t
3 K# K& M8 h1 j2 Q2 u" x# } I- ;;; ========================== Tim & thay the TEXT ==========================" D, w/ T; j5 {& s, z" E
- : Z! d5 \) c. Z" C* {, B
- (defun frstring (str search replace / str1 str2 index find)9 s; y0 L' P* E b; R
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))7 `2 h+ o/ z* b7 F/ o
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index))); y+ M; Y# D( V, V, @
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))% | k& `( K$ z ^8 p
- (defun hai (/ dial)( S% V- u6 S) S% y5 i
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog
: v$ K+ `3 n& m& o" X2 D% R - (if (not (new_dialog "find" Dial)) (exit)) ;;
! u/ D1 p) G) f7 g - (mode_tile "find" 2); Tao dau nhac tai hop thoai
1 K( F5 h& R# |4 S! f s - (action_tile "find" "(hai1)")$ C, ^9 S; O. w' }3 S. K
- (action_tile "replace" "(hai2)")) ]7 K& V# ?2 e0 W: P6 E
- (action_tile "cancel" "(done_dialog) (exit)")% \% T: e" h) }+ r5 m- f6 e
- (start_dialog)
2 h( c* W9 ^' B9 l, @ - (unload_dialog dial))+ s. |! m% B q+ Y, d
- (defun hai1 () (SETQ str1 (get_tile "find")))
5 {3 b$ `. `7 { - (defun hai2 () (SETQ str2 (get_tile "replace")))3 b9 M: [5 J6 O$ ^' M1 `
- 7 c. E P! {+ R* U# ]' ]# X, O. i9 N3 U
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)0 r+ t2 U- J# G0 _
- (hai)% r! s. d6 L& `8 O
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")+ K8 A9 a) U# d) P+ o2 z- [
- (progn
3 t0 _6 M. V, L, R9 a4 n - (setq taphop (ssget '((0 . "TEXT"))))# ]2 W: b: N s1 t- [- ~' a9 @0 z
- (setq sodem 0)
' j& @$ u5 t$ Y9 [$ d) q4 j - (if taphop
3 d7 E9 g, z1 z$ m r - (progn3 j+ q6 I: p5 P; W
- (Repeat (sslength taphop)
8 Q4 ]5 I- U5 b! H* k# z - (setq a (entget (ssname taphop sodem)))1 y# ?1 g7 z% g. y
- (setq str (cdr (assoc 1 a)))
7 B% V x6 u3 v3 b" O - (setq newstr (frstring str str1 str2))
% Y% `: a5 d2 e& m8 j: Q - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
7 ^. m+ b) [8 H - (entmod a)& Q% _ }8 v# {( @
- (setq sodem (1+ sodem)) ) )# g% Y/ S4 f h/ {. U
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
w6 y& D7 b. V# S2 }, b/ v - 9 ~- ^; M9 A) u+ \
- ;;;============================= CHTEXSTY.LSP =============================
3 {1 l+ j% b1 z+ c& y/ r/ D2 s0 R6 v* @
1 G+ w; K$ l/ E! g$ p9 I2 N6 x- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
3 k# M5 w" K2 A - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))" \& T2 |6 @2 D: j! G0 I5 L! p, S) ]& b
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))9 f' s( V s, N% r1 E& G9 A
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
" _1 e. ?; j" l: C# N& l4 i5 ~ - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
( y. p$ G; D2 _$ z( ~, _ - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C)), P2 g8 R$ `8 q4 k0 E% Z$ k" k( T0 [
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))$ k! E$ C: R1 Q" g
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))! n# N3 D. F+ t
- (Initget 1) (Setq A (Strcase (Getstring8 g0 A* [) g( I) \
- "\nEnter text style to change: "))) (Initget 1). S+ M1 ~! k% N2 P c( Q7 _$ X* c& p
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext)) T" F% Q6 M: K% [+ m
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If& V* t$ F: I5 S5 Z Y
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))* N% F$ N" k5 [ m) h! B) v5 L4 O
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
) v7 L2 o; G( A* Q: g' {' ?; h6 u8 d - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J)), W- a( z1 G5 k! T7 v
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))& _2 R/ o+ }2 I9 b& G
/ h; r$ z7 q' q8 E, q- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
4 [9 X |/ F5 g) E& s# m0 A& f, F9 D# O - (Setq J (Cdr (Assoc 50 A))))
0 w( p5 l/ F; m( e6 l# B K - 1 H- ~/ F z# }; D# z
- ;;; ============================ DRAW CLOUD ============================= H* o' b1 w2 `( X; T* T
- 1 A6 d- W" ^6 s( g; F: z5 c; e
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
; X! V+ c: M( I% T2 T - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
o* B8 \( |; X W( U0 @6 g - (setq la (getvar "clayer"))8 ?$ E6 h& T7 U( b
- (command "layer" "m" "cloud" "c" "5" "" "")* J- l$ I, W5 R- ?0 z; s6 x
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
9 Z2 L3 b2 l: b& {+ L - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
& l! U" Y/ b; R _4 y - (setq cnt 1 ss (ssadd))' _7 n2 B. C! L3 Z) U5 {0 y/ v
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))& ]2 G) b' }2 q+ A
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
: ^; t- w; a, Q5 q. @+ Q+ a5 Y% R - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
7 Z! i6 D& ^, b o" w' U- w1 Y - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)! x3 o$ K5 }( E# c& y" K$ |
- (command "pedit" arc1 "y" "j" ss "" "x")
g+ v2 A3 E; n# g( \: |4 I. t - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)/ w* @+ N7 I! U1 E
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
% R4 a( \+ G; @; O! W, r, [ - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))! |% v# Q8 k* m. y Y9 v
- : _7 j6 d' v5 ]- L0 r
- ;;; ================================ Funtion-Dulieu ========================& m' s6 k( o% u0 C k9 K! q# Q
- ;;; ================================ Funtion-Dulieu ========================
6 y/ ^. a" P7 k, l - ;;; ================================ Funtion-Dulieu ========================$ s) _1 d# q6 F
- # h N6 g" e8 G
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
9 M; s6 b L9 a* h. B& {% k# Z2 _ - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))) S9 x# m% C2 i1 G. K
- (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))
2 t, ]- j6 Z1 O - (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) )# V* o' }5 M: t
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
0 c% g. U0 r* _8 }4 x( [& ^ - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))! R/ y4 y- R/ b/ _, N0 @# ~# I* w
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
8 c( ~ i0 \' J2 u1 I+ B; F - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))' `6 H2 B: X- Q2 ]3 ~' v8 ]) R7 S
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))* E2 f, p- R* `5 M
- (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)))
) }- F4 E" o% F! m - (defun dtr (dtr) (* pi (/ dtr 180.0)))
3 h# p, R4 M2 {, r* q) i- J - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
# m: N+ D+ P( J8 {+ m! l9 C7 f - ! f7 S# F/ N' O2 Z. f* W O
- ;;;==============================PROGRAME===============================2 [8 v' N* O# e
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
& N0 L8 L5 u) K$ z( }- Q - ;;;==============================PROGRAME===============================
* M- F1 K! R/ ?) q D8 G - 8 `! S6 o' F1 ^+ ]. H
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
8 A# z- z1 Q, t4 i - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl0 {+ @- w/ A9 S
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)% ]1 a7 I, a: a+ G% q
- (Setq Oldlis (Entget (Car Chon))
& ]4 S- @4 d4 H% p4 { - Pt10 (Cdr (Assoc 10 Oldlis))
1 ?0 N) n! G7 O( P3 u" d8 ` - Pt13 (Cdr (Assoc 13 Oldlis))
/ a( A1 {5 @3 Z8 R* }& _ - Pt14 (Cdr (Assoc 14 Oldlis))
% n# B. F, f- D: H, } - St (Cdr (Assoc 70 Oldlis)); O; z0 M1 p0 t; _$ v( E+ U
- Dimdefault (Cdr (Assoc 1 Oldlis))
# |7 {! @- Q% r/ q9 K2 d - )
; X7 ?$ n1 f$ W+ o( j9 [ - (Cond
. k: X2 Z9 F( x1 I @7 q - ((Or (= 32 St)(= 0 St)(= 160 St))
- x- Y" P5 A H2 O - (Progn! [( S1 _% j+ |& x
- (Setq Ang (Cdr (Assoc 50 Oldlis))
4 N# l; r1 `7 E0 p d9 w v - Pt (Polar Pt13 Ang 500). v% \2 p; W% Q# j
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt): o/ `3 _, M& ?1 P9 D, v( f
- Dis (Rtos (Distance Pt13 Hc)). u O1 O& \( J. X: _ W! t/ B- T: M
- ). J" T9 z4 H( d( I% b6 [
- )7 q) Q6 l9 x' C8 F- l8 |
- ). c% M* ~( T: ^* F8 g6 n( d
- ((Or (= 33 St)(= 1 St))
( q5 x0 r( ^! l# y( U) D - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
X$ e) U! G% f& A3 P - );;End Cond: Y% w& f/ o2 k# x) g: f6 ~
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
" D8 c5 b8 D3 |& f' v - (Setq Dial (Load_Dialog "Hai.Dcl"))
0 z- \+ {" Z2 z! H6 l; e6 X: [ - (If (Not (New_Dialog "eddim" Dial)) (Exit))
; _5 W0 n0 z7 V6 Z$ b- z0 h - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
, ~+ V0 P& z2 Q5 s7 ^8 K. v, }( D& c* @ - (Set_Tile "text" Dis))3 G1 y% a- b: E8 u
- (Set_Tile "ha:edim" Dimdefault)9 g' E! `7 P% y {9 C5 o
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai! B6 M l% T2 h0 @. [) O1 p
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
; l- Q4 p0 }; o) E! B. } - (Setq State (Start_Dialog))(Unload_Dialog Dial)
4 i. H5 Z w3 o, A1 l: I - (If (And Str (= 3 State))
o3 \1 N. h) J" ]/ Z& j - (Progn
: ?5 w9 k9 z: G$ ^; B$ s - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
* k8 b, S& y9 k+ f( s* J - ). E9 Z F" O3 A1 q# F8 d
- (Defun C:EH (/ Chon Name )
& d0 N5 m" o! |9 u- L, t - (Defun *Error* (Msg)- i1 F; B1 F5 P
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
/ D( Z7 G. |3 H" W+ L* \1 D - (Start_Dialog)(Unload_Dialog Dial). O! @3 S9 I) w5 K9 @
- (Setq *Error* Olderr)(Princ)
% n" s# Q# {- _2 ? - )' s1 p# K8 ?4 t3 u4 b
- (Setq Olderr *Error*): M9 u* U+ z6 [4 _# `! T
- (Setq Chon T)
5 @7 Y( q6 U3 t$ I - (While Chon
( _1 v- h" h" o - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
2 d {! Y4 y) g1 B, v$ c% ~8 e - (If Chon
5 V# U. K2 m! \: [) e - (Progn
7 A* E% C2 n! d: U - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
5 Q- _) d. M2 j& r - (Cond8 h0 p/ u, F5 |. |9 [" v
- ((= Name "INSERT")(Command "Ddatte" Chon))
; v) p. ~0 I. R0 O+ i; U - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))+ Q; X. \9 L( }1 v
- ((= Name "DIMENSION") (Hai_Edim Chon))/ r0 g% z$ g9 b8 T5 l q& {
- )0 D$ t" p" d j# ~
- );End Cond/ Q* O5 n( v/ ~6 W$ f+ R( K" k
- );End Progn
( Q# h4 N p* J5 e* ]2 Z - );End While
; n0 f( J6 O8 N" b - (Setq Olderr *Error*)(Princ). r+ G2 Y8 `- s* ~* j
- );End Program3 o; N( q( F3 c* B V
- 3 L8 w$ H; t( ^ }- V: A
- ;;;====================DDeditDim=====================
$ v3 }# L7 e# K# g0 H* O - ;;;=====================Hai.DCL======================
9 \, ]- D7 S. s: B# G* h - ;;;====================DDeditDim=====================
: ~0 i1 j; [! S# h
* y' E* [, m) Y2 [8 O- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
- W4 n+ Y7 D' A7 h) B1 j1 `, V - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl* d1 s* L' V7 L/ b/ e- x' J7 U
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
5 ]4 } w4 U8 }- v/ X2 I - (Setq Oldlis (Entget (Car Chon))! s2 K k G# n2 d
- Pt10 (Cdr (Assoc 10 Oldlis))
Z# ?; m. ?' W. J& i, J - Pt13 (Cdr (Assoc 13 Oldlis))- f( A8 ~1 T* z8 c" e- y0 d
- Pt14 (Cdr (Assoc 14 Oldlis))
( g7 c, l* e8 X0 H4 I - St (Cdr (Assoc 70 Oldlis))
. |. c4 z/ ~3 \ - Dimdefault (Cdr (Assoc 1 Oldlis))) K2 F0 t9 ^) ]! H/ P1 [* E
- )# m" P: \2 c0 H! M1 y4 h
- (Cond
: b7 T3 Z. y' E! m7 L+ W/ o- P$ o7 ? - ((Or (= 32 St)(= 0 St)(= 160 St))7 G: z [/ v1 _
- (Progn
6 [/ A! X5 |$ K6 k m4 p5 |% I - (Setq Ang (Cdr (Assoc 50 Oldlis))
& ^- k0 X* c- A& O, j - Pt (Polar Pt13 Ang 500)+ e" X- n- K- R2 g) p% W# m9 B
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
]1 A, L2 I2 ~6 t - Dis (Rtos (Distance Pt13 Hc))
) a3 x+ q+ ]# l/ O' M+ k - )* P+ h) N z+ \' P, [6 D
- )
% w# G( b3 }! t. G, N% c' ? \: T! ` - ), r: R' Z. o; U* }' V/ E
- ((Or (= 33 St)(= 1 St))7 x. l& R0 U7 g8 e7 t
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
~/ F$ q$ c. }) a- Y - );;End Cond, b% d' [) A2 A/ o. Z p
- (If (= Dimdefault "") (Setq Dimdefault "<>"))5 i( W, v% E6 E/ K+ b6 Z O7 I3 A
- (Setq Dial (Load_Dialog "Hai.Dcl"))9 P1 J1 \+ b& V: K, u! V5 {2 S
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
; X; ~4 N8 r2 _ [ - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
* z+ k$ e9 m$ L9 ^& ], t" g: w, X - (Set_Tile "text" Dis))% S: R0 B! H) s# ] F: _
- (Set_Tile "ha:edim" Dimdefault). m6 v0 k- J5 ~- W& A: u* F# ?
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
3 i8 A3 V6 @% K) }) B6 j2 @# O - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")3 M+ B. Y+ Q/ ~+ w2 f! f, m1 X
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
; r0 j% T4 O! d% n" a - (If (And Str (= 3 State))/ ~; c$ h% Q* R! |1 k2 d
- (Progn, _" ^- C- L+ j, b7 {* R7 S* V
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))4 {/ m$ ]9 F" O" P! R! R- O2 R4 e3 |$ y
- )
4 ]1 r3 K1 E, q- c- J( Q - (Defun C:EH (/ Chon Name )
# g6 H G0 k9 Z0 j% L0 g
5 ?6 I) {, l8 Z2 Z, P! z% p* P4 C- ;;;********************Du Lieu********************9 [5 ^6 v6 q! [9 w9 l
- ) Y0 P3 ^. b$ z+ T) q
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
' a) M7 ~4 X) y% T - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
- {* t/ k' R# y% h( }8 B, k - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil)) x7 ?2 R+ K4 I( Y* l/ T6 r& _
- (Progn
2 y# L7 G6 B8 p# K! u - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))1 a4 o% K5 f# ]( s" O! C
- (Setq Chon (Ssget Hacat3))
" V& l* i" O$ |& G3 J - (Command "Break" Chon Hacat1 Hacat2)! |; l" v0 [% e, v! t
- )8 V- Q+ @5 n$ h8 Z3 `* Z
- )
& {" m! R& {8 d- k - (Princ)+ B8 F- A# v7 O& Q* P
- )9 c6 |" x6 r2 r, W
- ;;
1 M+ ]: P' i" H - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))$ N* y' d5 _" E( T
- ;;
7 {) R, Q3 Z2 N- i: y% Q0 p7 W7 Y - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
( Z( k+ D& R$ k, Q' q - ;;
- X& p) X% o: C! u - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
: n+ q5 h$ k7 p - ;;" w$ U, g0 q( j& X! F
- (Defun Reinit ()(Setvar "Cmdecho" 1))
' h' L+ O# A. m1 [9 J - ;;- \4 E8 N* X# x9 Y. Q3 Z
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
4 b9 W) [) z' ~% O - ;;1 k3 Z0 h/ y, Q6 K
- ;;Cho 2 Diem Tinh Ra Vec To Phap- b" a) F& @# Z1 D
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))- U% g0 t' P" a5 E
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
' a, Z, a& F3 B+ P( U {9 t5 O6 w8 h - ;;Da Biet 2 Diem Thuoc Duong Thang
3 D- Z- `3 x8 {; }: E2 y - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
) q% T; I% z% e1 x - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
9 u l; o# q1 W0 [1 a - Hc (Inters P1 P2 Dc1 Dc2 Nil)))
4 T; |: ]+ c# g8 N1 T - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
+ b$ V) H' ^6 K% ?8 W! l - ;;Da Biet 2 Diem Thuoc Duong Thang" c7 [6 Q2 X' d, E' E; D
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)7 k) h4 [0 M* G1 N4 Q2 K( P8 f" `
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)* @! [5 Y! W N
- Hc (Inters P1 P2 Dc1 Dc2 Nil))
& P0 C0 N h. F1 V1 A8 R - (Distance Dc1 Hc)
X C3 n8 C% I) V7 V0 q W - )' u8 A2 z4 B% Y9 W+ K& [
- (load "nhapcua.lsp")1 l* I) j: p/ S, A! B
- (Defun *Error* (Msg)
8 h. u/ c: I6 s+ S3 s) } - (Princ "\nerror: ")(Princ Msg)(Princ " ")( I5 G2 n/ N- s3 H
- (Start_Dialog)(Unload_Dialog Dial)
4 R- _9 d" D- q n - (Setq *Error* Olderr)(Princ)8 I* G8 C; A% ^ j9 F' |% g. v' P, C
- )
( p7 b$ B* z1 L! j( N, N - (Setq Olderr *Error*)
; n) q5 g" u9 M - (Setq Chon T)
. S i/ P" r( X1 a1 q" p - (While Chon9 l# ~; P9 a. A/ r) X/ q! H
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
) Q: f, o. o. B3 _2 J8 l1 D. ]) k - (If Chon% h' C4 p& V! C/ m0 E: h
- (Progn
( d9 K& f5 G4 ^" W+ R - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
3 p4 D: b" {& ]' @, {$ p - (Cond9 H- K z B7 J6 ~0 z
- ((= Name "INSERT")(Command "Ddatte" Chon))* l0 |. c! H v- M, b
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))% Y& W0 V; |( V! J7 H2 ]
- ((= Name "DIMENSION") (Hai_Edim Chon))- a% H" q( K/ @, q0 `. H
- )/ |! G$ ?) J* x- L
- );End Cond0 ~! O: W) [' U
- );End Progn: C5 C1 _! A3 b% d
- );End While
, \% F/ _, A0 F - (Setq Olderr *Error*)(Princ)
$ r2 S# x0 k' [- x G* g - );End Program" W# ]" Z2 D t* c
- " [" N9 x7 |. _ F0 c
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
( K; C7 |( y ?$ `0 s - ;====================================Nhapcua.LSP====================================) z+ u3 }4 t' }) Z5 R: B
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================& U, C* b- {& `" K& d
5 l/ k6 p1 m# d& N- : V& B; m+ y. Z+ ?# J
- ! A' I# X) n) b* {9 t: c( ^
- ;*******************;*******************;*******************;*******************# k+ D( _+ @& u. ?4 r) \
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****0 o& H( S( H A$ r+ u7 N% J
- ;*******************;*******************;*******************;*******************
2 p. V0 O- I2 Z8 r
& F# { y1 t. F- ;VE HINH BINH HANH* N, U+ L: F. j3 T) ^1 G$ o
- ; q5 C& u6 y% F e& o, ^
- (defun c:binhhanh (/ p1 p2 p3)* m2 _6 _ w) i
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))+ j- J1 B# s' E0 d: S+ w W
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
0 j9 P6 u' I: u. H1 }" j - (setq om (getvar "osmode")). B5 A/ w* E L, j i( y
- (setvar "osmode" 0)6 I( l( Z+ P9 _: @( ?
- (command "line" p1 p2 "")
: d% B" A$ ^( t8 |) X - (setvar "osmode" om)2 L6 F* l' i8 v& B, ~
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
1 E; J# B; u" I, y2 Y - (setq a (angle p2 p1))0 H" p) i) N Q! \% K
- (setq d (distance p1 p2))
* ^; _( I3 R6 ` - (setq p4 (polar p3 a d))1 p" v4 T/ f; |) B
- (command "OSNAP" "none")
' W) g2 \2 i& S5 p, s - (command "erase" "l" "")0 n) b4 a |! ~% S5 z. z! W6 o
- (command "pline" p1 p2 p3 p4 p1 "")
' T, m- E9 J7 f - (setvar "osmode" om)% E2 j5 J6 i- n7 g1 l! n
- )! w, q5 {) ]& X# y! q1 t" H; s
- / a* B! U& U# B* R
- ;VE LUOI COT. n( H& n3 }2 k
% @ {! E! v' ]6 J# e* b _) e- (defun c:LuoiCot ()
5 K$ l) K3 @/ `+ \3 h6 f1 H - (setq om (getvar "osmode"))3 W0 ] f2 w6 O% p4 y$ j! \
- (setvar "osmode" 0)8 _$ F& T, o' E8 ]5 n* M0 ~6 o2 Q
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
8 h6 Z* ?- i1 w2 i - (setq p0 (getpoint "\n Chon Basic Point:"))4 Z$ g6 A0 P/ ?1 m7 G; K
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))5 c0 N2 Y0 {8 u
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))2 r3 \* U$ W$ f1 g- a4 d3 q
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )* _; Z9 k, v8 ~+ o5 @( K
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )8 h) p# h- T7 @! G& A; H' d* F7 C$ ~3 N
- (command "rectang" p1 p2)
& X7 B0 }" Q% h: f8 |1 E- f - (command "hatch" "solid" "l" "")
8 _8 k# x. y/ h) M6 N- s3 X/ s - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
1 H' k3 s$ a6 l) J, q6 x9 Z - (setq nn (getint "\n So buoc cot phuong ngang : ")), F2 J [' ?; h
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
! c# h; _/ [+ f2 |+ e3 X - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
" w, a+ P9 d2 f5 Y O0 ~- f' W - (command "select" "w" w1 w2 "")
! R$ F# Y0 J6 [4 k9 {1 i - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )0 |! |; _; F, |% O1 i
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) ""). n. \$ U2 [4 p
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
# \1 f O/ i( F; W& C - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))6 n9 A) C% Q/ j
- (command "zoom" "w" w1 w2)5 j1 x# ~' V( x' Y8 O1 P1 A1 Z
- (command "select" "w" w1 w2 "")
) U: V/ a1 `: V& F1 T/ ~ - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
4 y% y& O2 e8 H4 ^ - (setq nd (getint "\n So buoc cot phuong doc : "))
9 h- P& P; N) y+ E9 p - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
3 M! N l0 ]* N3 q) V - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")0 O5 S% Z; Q8 ~. w
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )' J R4 e m3 C- \
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
# Y" K- p7 c+ O9 G; }" e - (command "zoom" "w" w1 w2)
* W: w; v9 y2 J$ x) L9 ~ - (setvar "osmode" om)4 Y+ y& M6 L4 H* r g. g
- )1 Y8 ?% j6 K7 s2 S, \! }1 \
- 1 I$ W; r7 [! T5 ~4 L' h5 M
- ;VE CUA DI
; u7 |. g. x: D) j6 X/ W, f0 U
) F5 P1 o6 e- w0 K- (defun c:cuadi ()
* `/ C% t N% d3 r9 p, F5 Z - (setq om (getvar "osmode"))
1 W0 p5 k! m- ~$ H' { - (setvar "osmode" 0)' U1 K: ]4 `9 G- U8 \/ Z
- 5 p9 E% D2 W! O
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))" k5 W" c! q" B5 u5 ]: u9 G; g
- (setq b (getreal "\n Nhap be rong cua : "))
& `: S, o" g- g( _: [0 ?! Q! H - (setvar "osmode" om)/ |5 _# L4 n5 u2 ?6 H `, v: {
- (while (< 0 1)% P4 k$ P6 J, i) _9 N
- (progn
1 ^; r. k5 s* T - (setq p0 (getpoint "\n Chon Basic Point:"))
. l% q7 b7 I- d2 w' W+ e - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))( P+ @0 v6 \" N5 b2 U4 `9 A0 x- K
- (command "osnap" "none")" y# q1 E# V4 Q( g; S* h
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
r$ l6 }/ r- e' o - (setq a1 (angle p0 p1))
' Z2 F+ d; B9 O/ J; w - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
0 P/ T* a9 v" x6 w+ [ - (setq a2 (angle p0 p2))6 T$ p+ P- i, J% _/ P; E1 a' r1 R, a
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )# w( k7 E" d( y' H' D% j- t" n4 R
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")8 S$ u$ b! u/ c6 W
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi)) j. Z, B6 G: y
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
% k8 U1 ~3 w3 w1 p- A" x0 W/ r - (setvar "osmode" om), U8 P, p4 {( D8 b( m" k
- ))( G! V& v' D- c* T
- )
0 t: L* D. u; i, X# C
( u" `; o: O2 U- ;VE CUA SO. f! L1 K0 i& H0 d
- 4 r! D4 z/ s$ @4 P6 H, B: r
- (defun c:cuaso ()
# D, @6 I x! ` - (setq om (getvar "osmode"))
+ H1 n" q( H3 @) D4 N - (setvar "osmode" 0)
4 e+ E' W& G; G9 Q; N6 @( ?
3 W* ]/ A! F: D# R* k8 `- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
! b) e2 j7 h }1 ^/ \ - (setvar "osmode" om)/ L, W2 a3 P& i8 T
- (while (< 0 1)
3 M+ C4 z ~, f6 X' r& M! h% v - (progn
4 c* E( P, S$ }* b - (setq p0 (getpoint "\n Chon Basic Point:")): e7 [6 i( z' X' ~% {4 A1 s2 N
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:")), J& j5 B* J+ \& B6 q3 c" x/ u
- (command "osnap" "none")/ p8 D/ c9 T. Y- X' F# F2 A
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
o; C E& _3 B! A: v; ? - (setq b (distance p0 p1))
. U2 ], o; p( s# ~! O. f - (if (< b (/ (* hstl 600) tile)) (setq du 50))5 D* f: ]& d+ A E* `) x
- (if (> b (/ (* hstl 600) tile)) (setq du 150))" O" A* O! q0 u4 B J2 }$ g
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))" Y: X+ y3 q0 x2 j/ U
- (setq a1 (angle p0 p1))
2 h1 Y0 L& z* |) J$ e; c - (setq a2 (angle p0 p2))* ], a0 F. x. h9 m/ h2 N5 n, A& R
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
6 X( N: E9 o b8 W6 W B6 P - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
% V' p! H) G5 w7 J9 {0 q4 F( s - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) ): `& S& D. |3 X7 x8 G
- (command "pline" p0 "w" "0" "0" p1 "")* u$ L$ v- x: [1 f1 V9 r- g
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
' [8 y. a$ q9 b. p! u4 _ - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")+ k$ _( p8 K0 d6 b% h0 y
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) . Y) V% K* Q; k$ U2 X! @
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")# [. \$ |7 L4 u; }' L- G( H
- (setvar "osmode" om)! N9 Y5 f3 r0 U3 A
- ))
. j$ f* V) p/ n2 @# B; y - )+ \# D% {6 n. q3 J7 n& L) i$ J, f" P
. l$ _7 {" M( o8 d5 {4 T- ;;;=== General Utility Functions ===+ g4 N1 ^# }3 I) m8 D
- : W2 N% V+ R5 G! Z2 |0 _
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined ( |3 ?9 O: d4 c" g
- ; ADS function. Now it's a simple AutoLISP function that calls the
7 k% \& H7 h7 N/ {3 b4 R - ; built-in function (help). It's only purpose is R12 compatibility. 7 x3 _5 j% [7 V) A7 V$ @6 a
- ; If you are calling it for anything else, you should almost certainly
6 k) ?4 U1 r$ H1 ^6 E( ^( F5 G - ; be calling (help) instead. # z X. }2 j [# L" h# z8 A; _
-
6 ]+ ]9 O, \2 |, q+ k - (defun acad_helpdlg (helpfile topic)0 O$ M- j, R3 ~: K1 w# r2 l; m% g
- (help helpfile topic): s! e0 [% N) `3 i. z7 O$ N
- )
( f1 m* O4 b2 w0 ~
6 h& a5 |: _. k
/ E' p1 }7 T* { H- (defun *merr* (msg)
9 l( j6 g8 k5 p, { - (setq *error* m:err m:err nil)
B- h7 D+ t1 R/ M& r - (princ)7 \1 w8 ?1 i" U5 k7 D
- )
% {- o+ c. Q6 ?8 q. A1 q% g+ ]
/ w. m, N: k" S" _ K- (defun *merrmsg* (msg)
; e9 K" D6 } T) U) U - (princ msg)
! P% p/ t" h7 h* u; [/ j+ C - (setq *error* m:err m:err nil)
2 M( ]& ?1 o2 q% v( Y - (princ)
( O3 a& o. F6 V0 Z" b* F6 M - )+ ?& V1 p, s4 S& w+ N2 k
- 0 w+ I0 |( Y8 k3 D& @+ J7 z2 J
- ;; Loads the indicated ARX app if it isn't already loaded
' C8 Z* h4 L& q* H, x( @. Z - ;; returns nil if no load was necessary, else returns the
p# h' _. z3 [6 E/ E/ ~ - ;; app name if a load occurred.
" }9 q" `) I8 L, R7 T! V) K, |: r - (defun verify_arxapp_loaded (app) 8 H5 O+ p$ @3 P4 x$ t
- (if (not (loadedp app (arx)))$ Z: `: G7 ]( c: C x2 b4 Q
- (arxload app f)
V/ a2 s# T* i) t - )0 z/ @* d- B0 J% g- r
- )
2 F. R* [4 a; c" \% h+ E8 d$ {' t - , h+ O7 v' z2 r
- ;; determines if a given application is loaded...
/ P. @. C5 H$ h* j- f - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....1 Y: c) T& o7 }- ]
- ;;
4 H. U- P! w& l$ U1 {- u2 A/ j y7 B - ;; app is the filename of the application to check (extension is required)0 A$ T) s, T! X3 P1 {7 U* U
- ;; appset is a list of applications, (such as (arx) or (ads)
- Y, l5 x: N p9 s* K) g - ;; 2 O7 h d, Q& A$ E: O0 j0 z
- ;; returns T or nil, depending on whether app is present in the appset. ^( Z$ f7 H1 X
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"5 j7 @. c9 ]3 F: f; e5 w! R9 J3 g
- ;; Also, if appset contains members that contain paths, app will right-match; g8 T* p6 b% o, T2 b9 I" T
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that9 H4 d: E& [$ r
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
4 i' D/ {# L! j& [" V+ q7 S; d$ j - (defun loadedp (app appset)
4 L$ f1 @2 P6 B) `6 l; C; ` - (cond (appset (or # o9 Q( O5 M0 p# X; `1 E
- ;; exactly equal? (ignoring case)
) `# U3 j% r5 G9 K/ b/ z5 ]4 u6 k - (= (strcase (car appset))1 z1 a6 b$ j$ l0 B, Q% a( \( y
- (strcase app))
; W; e$ k# n; k4 D - ;; right-matching? (ignoring case, but assuming that$ M; Z* T U. P- f: w4 C
- ;; it's a complete filename (with a backslash before it)
7 I5 x" J; e- }7 u - (and
0 s, g7 V7 ?& ^" Z! A& O/ o) r - (> (strlen (car appset)) (strlen app))* G( F& N$ l' ?: _2 }! N
- (= (strcase (substr (car appset) + N C% x+ ^+ `; i
- (- (strlen (car appset)) ' `+ T3 U6 w3 }: m
- (strlen app) . ]5 C: s* t4 S* n' Z
- ) $ F5 S V5 v5 \! j: c! ~9 D
- ), q) e- Y+ i/ o1 _1 c
- ) 0 _! z9 _' T# J5 J! f6 H1 {
- (strcase (strcat "\\" app))
" C( [2 I. V8 Z. g1 S$ g$ S - )2 t& {5 Z" E& h3 r0 s' M3 @9 w
- )
# U: ?5 h, c |4 l - ;; no match for this entry in appset, try next one....' F/ t9 x4 x1 _8 R
- (loadedp app (cdr appset)) ))) W% T8 K6 t' g6 Q" N
- )$ g; B$ ~1 d$ p9 v, P0 Y
! I5 T6 \: B% _" _- ~- : y+ T& G$ j" o; l+ z
- ;;; ===== Single-line MText editor =====' N* K/ B3 ?, u6 u4 H
- (defun LispEd (contents / fname dcl state)- K' O# M5 x0 E0 ^5 B
- (if (not (setq fname (getvar "program")))
h! i7 y9 N j0 q4 p: w2 i - (setq fname "acad"), E8 D# c) N- P) |" i3 Q2 k
- )
1 i* j! H/ l, ?; i7 B6 r0 Y - (strcat fname ".dcl")
0 r: \- X( ^" f: M - (setq dcl (load_dialog fname))
& F( b J4 V$ k" l - (if (not (new_dialog "LispEd" dcl)) (exit))
f- k% r2 o) e& B0 y, x, {- ? - (set_tile "contents" contents)6 b- I) E Y: f# P
- (mode_tile "contents" 2)
& k% ?- t4 |% v% h1 Z - (action_tile "contents" "(setq contents $value)")
% d7 P) h2 a, g4 V/ H - (action_tile "accept" "(done_dialog 1)")
1 x; L3 P7 Y3 c& [ v - (action_tile "mtexted" "(done_dialog 2)" )+ a m% Y4 d) P8 S m, N1 G
- (setq state (start_dialog)). h2 Q* m* ~+ B0 S8 v8 K
- (unload_dialog dcl); R, T1 R: X' f9 G: s& \& l
- (cond$ f$ j }: f' p* U1 Y
- ((= state 1) contents)- j/ l! J* P, w& ^1 o+ C/ [
- ((= state 2) -1)
% G2 U3 B5 s* H2 W1 u- D1 o - (t 0)
+ D% a! J* [% `5 L1 i0 M/ Z - )
8 H/ S: _. i! N- }0 Q' Y; z( Q - )* K0 ? M8 Z7 Q- w+ U0 _- {& ^
+ H1 O3 E* @% [- ;;; ===== Discontinued commands =====# ~: P' ?7 Y( Y) E, S* @* j
- (defun c:ddselect(/ cmdecho-save)
; U. C& f/ o. p% Q - (setq cmdecho-save (getvar "CMDECHO"))9 K6 A4 K% K$ X& b# E6 A, T
- (setvar "CMDECHO" 0)
! r8 c7 Q G/ _, Y# Q, |5 t - (command "._+options" 7) C8 X+ W1 Q$ \& Z! @" ^# m
- (setvar "CMDECHO" cmdecho-save)/ T# k2 ~7 } H) T% E C$ Q# O
- (princ)+ B$ `) L. x3 P8 o' K% G
- )# K5 y/ \- c! S! X* V7 \' M0 E
2 ~' m$ l+ [/ @$ N$ a+ w- (defun c:ddgrips(/ cmdecho-save)
6 l% a: J# ?+ S9 R - (setq cmdecho-save (getvar "CMDECHO"))- u4 m$ E8 ]9 ]1 {" ~6 v% ^" p, k+ ^
- (setvar "CMDECHO" 0): X9 N0 l( ]( `( {2 y# q
- (command "._+options" 7)8 H2 D* h% ^( @& K' M. w- W
- (setvar "CMDECHO" cmdecho-save)* d6 q" Q( ], ^7 l& _' C$ J/ E
- (princ)
$ Z y6 v% F( A, y1 f) b* A - )) `" n& K5 X8 L" t- g
+ {! N0 A. R; M, K) E* H! L; L- (defun c:gifin ()
5 I; A! Y6 Y. A l' x - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
& x' l: V+ } o( V - (princ)3 v# ]0 f7 T& |6 X: I& B/ t
- )
! k3 v5 g2 N* M) ], P" f$ ^ - 2 L/ x; g6 U( | I) r! M7 b
- (defun c:pcxin ()
6 z/ B8 O0 y& X$ Q E3 v$ o - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
$ E8 e" ^' `9 Y/ x% l" _7 w- D - (princ)
\8 z L! K5 D5 c3 W' _ - )' j2 K7 s) J4 J) o5 g+ `. n$ k
- " d1 |1 X$ `8 g
- (defun c:tiffin () r k: L6 G2 p0 U ]9 r8 q! S
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
; d, C- r1 ^; ?. C! C- ?3 M: j" \ - (princ)
- M. I7 Z& t8 X: Y5 n - )% N/ i) }& T J
' [- ?; ]" H6 `6 z- (defun c:ddemodes() E9 Q, E- |# l
- (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.")3 D$ K- v v% ?& L
- (princ)7 ]( l! h3 d& ~
- )( p8 Z. p; \2 S9 Z+ M& E, P5 z7 f
c3 ], E2 V6 G$ J6 M8 Y- (defun c:ddrmodes(/ cmdecho-save)0 B) r: F6 O: w/ u) e; Q9 d; e+ [
- (setq cmdecho-save (getvar "CMDECHO"))7 s% I" [% C. l! M/ C6 v7 [' F
- (setvar "CMDECHO" 0)
5 V( a9 \* _' u' x* `2 j+ ^( c - (command "._+dsettings" 0)
8 D) F9 b/ V; N7 L8 p" L, Y. i8 ~ - (setvar "CMDECHO" cmdecho-save)( l- c/ y& e4 n; s* F
- (princ)
" k- p8 L- I: P' j/ a6 ~$ Y - )
& O+ Y- t: c5 j; {; ~/ A3 Q9 H - 1 \% ]9 F" a' I1 y- o/ k7 f0 N
- ;; HPCONFIG. b* z/ L/ b. M" @ G/ v4 Z
- (defun c:hpconfig (/ hlppath)
Z- S$ J$ U$ _" d - (if (not (setq hlppath (findfile "acad.hlp")))
% t3 l7 Z7 L) M: U: w, K* C - (setq hlppath ""))8 ?$ u! N9 o$ D, d; m% R& P# F
- (help hlppath "hpconfig")
6 h$ U9 K, ^1 v5 S2 E8 y' H9 \ - (princ)+ r, b! W8 {8 I3 e# b# w- ^) D
- )" `. W0 M0 K- c S2 x& z9 E
& y+ X) m( `0 D7 Y: o( b- ;; OCECONFIG3 f$ f5 T8 v( K6 |; S8 X
- (defun c:oceconfig (/ hlppath)
& F# r7 [% p/ i7 Y4 B - (if (not (setq hlppath (findfile "acad.hlp")))' `! S8 n- n& n, e8 A
- (setq hlppath ""))6 ?1 w9 W. p8 [4 ~3 e7 ?, D
- (help hlppath "oceconfig")& ?- j9 l6 ?+ b2 G4 v
- (princ). l4 _4 n% N! E
- )
# n0 E$ R5 g( ]1 q& t7 M7 h6 T5 S
% g, C" o" n9 c4 S* L- ;; CCONFIG
: [8 P6 a2 q$ d# U+ k9 p - (defun c:cconfig (/ hlppath)
; J5 \' `0 b1 ?- K - (if (not (setq hlppath (findfile "acad.hlp"))): P* \' v/ I3 f7 H8 [
- (setq hlppath ""))/ d& ?+ Q2 u y" L7 N8 x2 H9 M
- (help hlppath "cconfig")
" @. y) Q: s) E' R+ |3 I - (princ)1 p: z# |. @. Z5 K
- )
; A$ c: B/ i F$ ?; e( ? - . R) {2 |$ w3 @$ f3 Q
- ;;; ===== AutoLoad =====
- h7 V/ b! i4 N% L
$ G1 Z% x! ^- U0 w: Y' v, u- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
8 c Q% }$ O6 ]7 @. N& l+ N - ;;; for the name of a certain appplication <appname>.; [* p z! ?' L, e
- ;;; Returns T if <appname> is loaded.' Y; I- _' _. e( y5 D' m) {- M3 e
- ( E7 j; ~4 x- ~5 v
- (defun ai_AppLoaded (appname apptype)7 f9 l. P0 l$ t) @9 N8 N C
- (apply 'or
2 g; N4 N7 z0 D( h8 e7 w% s - (mapcar
9 C7 H& D# o+ I) z ^0 o ? - '(lambda (j)$ q% Q; w" q/ V% A
- (wcmatch
* s9 P8 g1 O6 u+ |* F9 G1 a1 s - (strcase j T)
, t9 G" l) ~1 h6 n, v' Z - (strcase (strcat "*" appname "*") T)
+ o3 L& I8 }* o - ) 4 {# |1 Z$ H. \
- )' W4 P% | H: n
- (eval (list (read apptype)))' j* J0 \! I% g4 |/ G; Q
- )
4 Z& [/ m. }2 @, |" j6 ^ - )3 P. x2 H) i8 m
- )
9 A5 I3 L/ J; N# ~- n; e+ `2 U - 6 b0 A9 N* q" v& A! q1 F
- ;;
$ o Z$ ?+ O2 Z) D4 W& H - ;; Native Rx commands cannot be called with the "C:" syntax. They must
( v: k, g3 X5 G - ;; be called via (command). Therefore they require their own autoload ! W; P* `4 d8 O4 M+ l
- ;; command.. {) ]3 H# A. O0 F, Z5 P
- 0 r! G& [7 t& C, N l6 B
- (defun autonativeload (app cmdliste / qapp)) w. B! m4 \* i) @
- (setq qapp (strcat "\"" app "\""))
a& d& |2 U2 J% d3 ]' \ - (setq initstring "\nInitializing...")" Q$ X* l, T" u( W# i2 E$ V+ f, g0 Z
- (mapcar2 ]$ r9 p+ o. n1 \ G3 ^, M
- '(lambda (cmd / nom_cmd native_cmd)
( o |$ u. c- e" | - (progn4 {- O. N- w7 f* T
- (setq nom_cmd (strcat "C:" cmd))$ T! C, D8 ]( ~1 |8 T8 [0 |
- (setq native_cmd (strcat "\"_" cmd "\""))
. ]$ |2 f+ V6 [( y m - (if (not (eval (read nom_cmd)))# P+ ~) p& U/ W! i! _5 T0 ^
- (eval
W q2 Q6 `1 o7 m - (read (strcat
$ k+ N/ s' ^8 _7 o1 B3 ~4 O - "(defun " nom_cmd "()"+ m5 z) T/ ~: k/ Z$ z, K" n
- "(setq m:err *error* *error* *merrmsg*)"
/ h) ]( o" D" N9 e - "(if (ai_ffile " qapp ")"
4 A, s, T2 s5 S3 b1 f; \$ ~ - "(progn (princ initstring)"8 d: J: c& f2 s. h' r$ S7 p
- "(_autoarxload " qapp ") (command " native_cmd "))"9 d/ i* S! I/ R9 i Z% F- y! I
- "(ai_nofile " qapp "))"; X% {0 k& a7 D; Q* G6 `& {/ _8 p
- "(setq *error* m:err m:err nil))"
$ R2 K+ b8 l/ G9 p/ ?( @ - ))))))/ y2 {1 U/ d4 N$ Y
- cmdliste)
9 e J7 {2 y% a0 S: M - nil
, d6 ^4 \: ]( p, T9 E! S3 ^8 v - )
+ d! D/ @+ X' E T8 U" y3 b [ - 5 V; [5 }. @* D" _) s' Z9 O
- (defun _autoqload (quoi app cmdliste / qapp symnam)" Q) l* h" ]! ?6 f, k% C+ W& t
- (setq qapp (strcat "\"" app "\""))- E9 o |) d) `4 F1 O, p$ j- Q
- (setq initstring "\nInitializing...")4 J) E) N) _/ l5 o5 g( Z
- (mapcar% ^2 n: V3 I9 q/ ]
- '(lambda (cmd / nom_cmd)
5 _( q4 y. Y2 h: ^ - (progn! F* J& c% Z- a
- (setq nom_cmd (strcat "C:" cmd))5 R7 I# X" o# C6 ]" J, t9 q
- (if (not (eval (read nom_cmd)))3 s1 W; _9 d1 h' d) `
- (eval' [( `- i, {, Y( c
- (read (strcat
; N& v, K) ~9 }9 m6 g - "(defun " nom_cmd "( / rtn)"" Y4 F- G f% n j( B8 e
- "(setq m:err *error* *error* *merrmsg*)"
2 L, S L' l4 @3 N" e5 @- D - "(if (ai_ffile " qapp ")"
- x! a2 o+ L8 O- H; r7 p - "(progn (princ initstring)"& q5 h& P( Q6 o5 p
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
: k: ^8 l2 i. l0 H - "(ai_nofile " qapp "))"0 `6 {7 G; {2 D2 B4 I
- "(setq *error* m:err m:err nil)"
( t, }! t( P N2 e9 C- J9 p5 D - "rtn)"
0 d$ m- M) |* t - ))))))
/ p+ m f$ R! B; C( d - cmdliste)" b4 o. k8 n7 g1 t* |. K2 W8 t
- nil5 {0 m8 |1 d9 ?$ E9 N) H& z. _% A
- )
# k- {0 B5 E! r! _* p. T, R - ^/ V9 Z T% t& g# a7 C
- (defun autoload (app cmdliste)1 _8 I0 o: J0 A+ x2 e ]& s
- (_autoqload "" app cmdliste)
0 I/ I7 V% w: X - )
# B6 G* C% i+ `3 O
' m1 @/ V' m4 [- (defun autoarxload (app cmdliste)
}3 k* }. i1 w8 ]. X - (_autoqload "arx" app cmdliste)
# y3 G) K! l( G1 j) o, H - )
. R8 M$ ]4 S* ~4 a1 A - 2 y/ |; Z4 W! C: U& k$ X
- (defun autoarxacedload (app cmdliste / qapp symnam)* Q) _0 E( y/ b/ T3 t
- (setq qapp (strcat "\"" app "\""))/ k \# L: M* X3 S( Q1 u ^
- (setq initstring "\nInitializing...")
/ i' N, J# ]1 O - (mapcar; p' n& q( ?; J5 y
- '(lambda (cmd / nom_cmd)9 H6 n6 ~( @6 `: z i
- (progn; z/ k( u- n: a2 M" m- s
- (setq nom_cmd (strcat "C:" cmd))5 h* Z" t1 j; L6 x4 F
- (if (not (eval (read nom_cmd)))% t8 P1 q; X# K; N; u9 {
- (eval
" L9 G* ~' j* P - (read (strcat
1 i6 C# } @) m# b/ t, K1 v - "(defun " nom_cmd "( / oldcmdecho)"
7 S: l# J4 J, Y$ m+ C - "(setq m:err *error* *error* *merrmsg*)"
% Z: O$ ?7 H( x9 X: C - "(if (ai_ffile " qapp ")"- a8 w# S) _1 I0 e$ s9 c
- "(progn (princ initstring)"9 O% a- L& F# u- N8 i, Z4 f9 x9 `8 I
- "(_autoarxload " qapp ")"5 y) R5 a: V# O5 x+ W
- "(setq oldcmdecho (getvar \"CMDECHO\"))"9 u" s# u, o4 ~
- "(setvar \"CMDECHO\" 0)"' Q L7 l: Q/ ~+ B( U
- "(command " "\"_" cmd "\"" ")"
8 f% R. x+ j3 h9 ^8 F$ \) ` - "(setvar \"CMDECHO\" oldcmdecho))"
( R9 N, q. k n J6 W$ W# Q# E C - "(ai_nofile " qapp "))"
! q' r0 C7 z. M - "(setq *error* m:err m:err nil)"( w) ~; O' h/ n- ^; f, e4 G- X
- "(princ))"
* x/ x: B6 Q' I( Q) ^1 z. E - ))))))
* b( J7 d; m+ C8 Z( E# M3 |7 C/ P - cmdliste)/ b8 T) L$ E! I. g* J" C+ c
- nil4 {. M& J) [3 s6 H6 }
- )- \( m! K& Y# d9 R, f3 k( Z
b) o T1 u. ]( P- (defun _autoload (app), s! K" _* t, M- G
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)6 n& i% a) D9 N# M5 v: w8 f# |7 H4 w/ J
- (load app)
- D9 T& D e. Z$ V; d - ), Z0 S& Q% V" J$ D4 ?
g& G4 Z$ K- F: ?/ J- (defun _autoarxload (app)6 i0 F. `$ j5 r# b% r2 W9 D* x
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
$ D H8 U4 R; x5 x9 _ - (arxload app)
C& w9 _8 y i4 b# [8 S - )6 z. P, v2 s7 O* r, j6 k# a
- 4 r) Z% F5 r" i- J [, v3 C
- (defun ai_ffile (app). M7 E& U1 a! X
- (or (findfile (strcat app ".lsp"))
4 c* A' `3 P7 v" ]4 ] - (findfile (strcat app ".exp"))
: w* w7 o# r- _4 ~# X+ \5 h+ z - (findfile (strcat app ".exe"))5 [0 b9 U: a% m+ \. {2 N1 v2 l; N9 A0 L
- (findfile (strcat app ".arx"))" w! E; D/ a# E1 m, t# c' k
- (findfile app)
C0 T: u9 ]2 f1 M# R3 J% m - )
6 j7 f) ^' b; Y/ c6 l. ]2 v5 [ - )1 Y _& K5 C! Y$ K, \
- X9 w8 _# Q# \" \9 g9 F
- (defun ai_nofile (filename)9 V9 l; K! p+ T$ U
- (princ
8 \; ^- N `7 [' p# m' S - (strcat "\nThe file "
- N7 x8 I9 E3 O) m - filename3 a4 e+ D7 K- b5 d; \, I+ X& q
- "(.lsp/.exe/.arx) was not found in your search path folders."
8 d; Y3 J' S5 V; a0 h - )) k: v4 w' j2 t n
- )# g9 e) X! g9 M& B% E# |
- (princ "\nCheck the installation of the support files and try again.") l/ s. N" K* G
- (princ)
2 U$ c8 f# u& I7 s/ I: h/ P - )" H9 H7 e, V& _6 O) P [
- ) w5 j0 J4 @; b! n6 y+ [
- 4 y% z% n( v- H
- ;;;===== AutoLoad LISP Applications =====
3 [1 l3 K. K2 Q2 `5 G7 W0 e - ; Set help for those apps with a command line interface+ @* K- K: o' c* {5 E6 }. O
8 t! V r# |, l; k: P0 K$ ]% R- W- (autoload "edge" '("edge"))
( {) r: M8 H' \% g/ S8 q) h; E - (setfunhelp "C:edge" "" "edge")
$ }( w% g8 D. D2 j& h2 y - ' {0 v3 W. U2 _2 M$ [) a
- (autoload "filter" '("filter " "filter"))
/ j" E, K3 F* T! E
' E/ O" U. B x- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
& i) E5 Q$ I' z$ p" I - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")+ l) o9 q& W" V, \6 D" {
- ). ?+ k% z/ G( W+ m; l/ S& Y, P
- (setfunhelp "C:3d" "" "3d")7 n, u8 N: D; {0 i
- (setfunhelp "C:ai_box" "" "3d_box")
3 R6 j' [& K& D# a - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")- D! q# H& D/ F, k: W
- (setfunhelp "C:ai__wedge" "" "3d_wedge")
' {4 B0 @% y& V - (setfunhelp "C:ai_dome" "" "3d_dome")' f9 s% I4 `0 u& ]: H7 j
- (setfunhelp "C:ai_mesh" "" "3d_mesh")7 ^0 d# {6 c8 R \
- (setfunhelp "C:ai_sphere" "" "3d_sphere"). m8 m4 C% E2 v$ k
- (setfunhelp "C:ai_cone" "" "3d_cone")+ Q5 _: }6 @$ f( o
- (setfunhelp "C:ai_torus" "" "3d_torus")
' g9 u/ P$ I+ i+ C E - (setfunhelp "C:ai_dish" "" "3d_dish")
/ E( {; L+ g) l l: ^ - / \& |/ z8 {) V2 ~1 T h
- (autoload "3darray" '("3darray"))
$ b, p) c( |# i t9 L2 P+ Y3 J - (setfunhelp "C:3darray" "" "3darray")
2 O: U! {6 O+ m0 r+ D& n( _& ?& Q
, H% b+ g" P# ^- (autoload "ddvpoint" '("ddvpoint"))4 F. R* ^ ?! w. |3 h+ S7 }% X( Y) y8 v
! |6 h, d4 B& I$ ?$ k% o, W7 @- (autoload "mvsetup" '("mvsetup"))
G9 c' H) G) A+ q6 Q, ?/ w6 M - (setfunhelp "C:mvsetup" "" "mvsetup")
, Z$ A3 |& f( ]& n3 Y9 `
6 A, l" ?: f9 G0 Q) ]- (autoload "ddptype" '("ddptype"))
$ t% C, E0 q: d8 ]: d; W% H# s& H; l - 6 R! q$ N) I$ F* d! C [; m$ i
- (autoload "attredef" '("attredef"))
- H' a8 w" n- |' a) B2 E; b1 n - (setfunhelp "C:attredef" "" "attredef")- b- P+ w0 K- ]+ m. u
- " s C$ q B8 N S3 Z# x0 Q' y
- (autoload "xplode" '("xp" "xplode"))
$ l, T- v4 ~% F2 b - (setfunhelp "C:xplode" "" "xplode")
) D$ W; s* O0 {9 `* u
5 ^/ F* E) ?, c- (autoload "tutorial" '("tutdemo" "tutclear": L* i" H! n$ S. b0 |
- "tutdemo" 8 n0 o& l- ~% F& [3 f
- "tutclear"))% V% k A2 R$ Z$ S" r8 x/ [' i/ Q
- ) R; H+ {4 H% z+ O2 ~! l
- ;;;===== AutoArxLoad Arx Applications =====4 S& d- z4 l" P5 w" e
- ( D3 B; t1 n) x- `
- (autoarxload "geomcal" '("cal" "cal"))
7 C0 e0 S- {5 h/ F' k4 y - + n- h: R% E- s* g+ O7 i! s s
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"/ b, m: p: l# R- u
- "mirror3d" "rotate3d" 1 X7 D7 _1 _2 N5 U
- "align"))1 F f$ i# I% @$ O1 w F
- 0 Z E h! [2 x+ W1 K8 g# ]
4 Y, |- s9 @- U) T- ;;; ===== Double byte character handling functions =====) C+ y* {# u j/ c
- A: R b; U, @' w# r, `
- (defun is_lead_byte(code)4 y& T7 _# w2 m: P5 ~8 J3 w7 ?! L
- (setq asia_cd (getvar "dwgcodepage"))4 l) u, i: q8 Y9 M1 }2 n5 \
- (cond! N, D C! b& N4 S' K6 e
- ( (or (= asia_cd "dos932")
W; `3 X' F% d: G) a0 J0 [$ e - (= asia_cd "ANSI_932")- {2 @3 i ]* T, E! m
- )8 M, @( A9 M. |* J4 Z1 |
- (or (and (<= 129 code) (<= code 159))" v- F2 x" d. |( S4 s6 A' G9 z
- (and (<= 224 code) (<= code 252))7 Y8 n* x' i2 x+ R$ X" P N
- ): u" u$ M' ~6 ^ a4 E; \5 h( d8 F
- )9 Q# {/ \1 H0 \6 z1 ?/ r# z# D
- ( (or (= asia_cd "big5")/ o* G2 g% o8 H, e# U7 P( L
- (= asia_cd "ANSI_950")
6 V. h% ]' J- z. E! _& } - )
# F5 T f2 \" f - (and (<= 129 code) (<= code 254))) r& X5 q2 X+ @/ h6 e0 S
- )
7 h5 V: Y _2 l4 ~7 I- Z - ( (or (= asia_cd "gb2312")
: ~& }/ a5 Z. @- B* @ - (= asia_cd "ANSI_936")* X5 h" _2 ~+ d& i
- )
8 R" A, D. k0 E5 l+ Q - (and (<= 161 code) (<= code 254))( _. {8 R9 C+ e R, M9 S
- )+ p; H/ |9 z D; d) F7 H8 F
- ( (or (= asia_cd "johab")
- D: U; j w% B) d, Q1 W - (= asia_cd "ANSI_1361")
z; K& i v { - )
* c. q( `) w2 ~ C' o+ V - (and (<= 132 code) (<= code 211))
1 J" J$ v3 s. c1 W! W5 F0 D - )
% r3 Z$ \1 k' Z3 A! \ - ( (or (= asia_cd "ksc5601")
/ X$ k% y& o5 c* O0 b - (= asia_cd "ANSI_949") Y$ m" y. n, {2 P# a& ?# z, k
- )
! u( I( _7 S1 m - (and (<= 129 code) (<= code 254))
. ~, Y- w1 Q" u A. [% @+ o1 U6 K. ^ - )
. f- b$ |, X* M - ), o" U$ Y: s, }
- )
6 N+ F! t7 { K9 F# H5 P' Z4 R - ; t* q# d* y& h C( X
- ;;; ====================================================* v; d" E5 L9 D
- 0 }+ ]: f" ]5 f1 w% M# J
/ ]' Z0 t. J: v1 O0 @- ;;;
" g9 j: K, X! C% i; Z - ;;; FITSTR2LEN
5 z( C+ s P. Q! D( `( p - ;;;2 |! J9 v _2 r4 T
- ;;; Truncates the given string to the given length.
% l' L& G$ j. N4 @) X5 m - ;;; This function should be used to fit symbol table names, that
. M% ]8 q: y/ h( w3 [ - ;;; may turn into \U+ sequences into a given size to be displayed% m# P- Z4 N6 w, }
- ;;; inside a dialog box.
1 _1 X3 Z6 P4 `6 l7 v0 ~- Q - ;;;0 d9 r! e' }" p: K1 _
- ;;; Ex: the following string: 6 P7 a+ ~8 l3 `/ ~( B' s
- ;;;9 G# P* t7 s- M
- ;;; "This is a long string that will not fit into a 32 character static text box."
; _) B* j$ A, s - ;;;' B0 J6 A1 A3 Y3 l2 H9 F1 Z( {
- ;;; would display as a 32 character long string as follows:
$ w3 v0 B' `4 Y1 M! R - ;;;* L% r% o" y) A. \7 R4 v
- ;;; "This is a long...tatic text box."
3 d J, `8 a( J* g - ;;;
' k" T2 w1 k* h ^# E5 l
2 V* W( O. V p" R6 ]- (defun fitstr2len (str1 maxlen)
6 \( n' b& {( v3 S( |$ t q- m
1 t* [* H/ ]9 {0 G% o: u- ;;; initialize internals
1 [8 Q6 I+ X2 h* U - (setq tmpstr str1)% N: l/ C2 m) C5 j9 h8 C1 O& r
- (setq len (strlen tmpstr))3 _5 d4 r F% ~/ @) ~; w' _3 ?
- ! X- ]& d, B/ l E! p4 j
- (if (> len maxlen) 7 I' q% u# _. Q# N' p
- (progn- P! B- A9 v5 y) [) S# E" R
- (setq maxlen2 (/ maxlen 2))
2 P7 z" ]3 e. S% E - (if (> maxlen (* maxlen2 2))" q1 q2 T8 }; E. s# w8 o& f1 N
- (setq maxlen2 (- maxlen2 1))3 d* D7 b9 r) P' q6 s6 P7 s' r; m
- )4 `4 r6 p% s! n9 x) i0 ]# Q( c
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))* u8 Z+ [8 ^$ j. g: V
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
. z9 o, y: [9 Z; K - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))( V" F2 A R. x2 W- S% K7 T4 y
- )5 N+ a( M6 J8 _) @3 w: C0 k' s2 M% l
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))$ t ?- Y" {) C* @& J
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))( S% L4 z+ V2 C, t4 y. x# x
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2)))); J8 D7 m2 n m- u7 x5 N# k
- )1 A# s4 `* _# T
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
& d4 P% K7 R! W' v7 Q0 N" D" Z - ) ;;; progn
* ^/ L( M; t, C' z% b/ \1 \2 {* P' a - (setq str2 (strcat tmpstr))' W( n7 B7 U* k
- ) ;;; if5 R+ S ?" w& A+ p
- ) ;;; defun5 A2 b) T" e3 r R: M& M; z2 v
R+ |: ^6 E; s# K8 J# S" q- & y" B" F, \* Y
- ;;;
# |# O+ n" n& P' { - ;;; If the first object in a selection set has an attached URL: m: s7 @% V! u- a
- ;;; Then launch browser and point to the URL.7 {% G. ]9 O2 T' Q. i5 G7 y
- ;;; Called by the Grips Cursor Menu
* _" |8 C8 t& Y6 q8 n - ;;;
. j1 x) D! u s/ N
" v ]+ G9 [- b' H& W/ F; ]4 E- (defun C:gotourl ( / ssurl url i)
! r$ E2 l* p' C& i5 p& ` - (setq m:err *error* *error* *merrmsg* i 0)# @; d2 G+ T) B/ Y
_) i4 c# b/ [3 e c- ; if some objects are not already pickfirst selected, % e" w. W# o- o2 {. N2 s! e6 y
- ; then allow objects to be selected
+ O; O& s* m% g5 i+ c - 9 }) C' O+ b" V% _. ]
- (if (not (setq ssurl (ssget "_I")))+ D9 x! y1 f' {9 P/ r$ N
- (setq ssurl (ssget))
- L2 o- f/ a4 T" O1 u" i" n% z - )
0 g* B+ U' \1 c& Y5 l3 |5 G - 5 I% R+ p/ F9 J' F- H7 g
- ; if geturl LISP command not found then load arx application
4 n- `% J' e2 B! A @ - 8 F; h+ ?7 d7 [( e
- (if (/= (type geturl) 'EXRXSUBR)
0 P* e" |- i3 u - (arxload "dwfout")
0 [/ X2 C8 N a2 v1 O% v5 B - )! u/ R: c1 f% S$ P0 {; [2 q
- 4 |5 ]) c' A+ e! ?- c* I) U8 o; D; v
- ; Search list for first object with an URL. \" L b7 k# j0 i# [5 F
- (while (and (= url nil) (< i (sslength ssurl))) N A3 q6 ~$ Z, j* ^
- (setq url (geturl (ssname ssurl i))
, o' g F# Q+ k" B0 Q3 I9 ^ - i (1+ i))3 Y$ i0 w+ S4 \) p( H
- )& F) Q* V% j l @% g4 ^( g
- 7 i# t: l& n' m0 a4 O
- ; If an URL has be found, open browser and point to URL* O9 Y/ U! Q# J
- (if (= url nil)8 W! d( U* P1 D+ @2 W, N" o
- (alert "No Universal Resource Locator associated with the object.")! W, j1 v) o! T9 G" O3 b( w
- (command "_.browser" url)
- E3 w& `$ M# q* N - )2 H8 \- [- Q0 T3 {) _
, v& U+ ]& L- e [4 {- (setq *error* m:err m:err nil)
- A" y6 ?9 [ z" f0 n) M - (princ)
% l, O) t d. v% |! K( P, C( T$ a5 [
! e& E# U* ~( ]- )( Q5 V$ u( N7 Q, Q3 {& j u! M
- 7 h5 C: a' a$ x9 r( ?
- ;; Used by the import dialog to silently load a 3ds file
6 E' P* L9 |) k/ I( e d - (defun import3ds (filename / filedia_old render)
6 W" E2 V# e9 w( }( m( \9 ~ - ;; Load Render if not loaded0 A' P) h0 m: p6 m
- (setq render (findfile "acRender.arx")) q, m) f+ _+ V, c3 s3 F1 d
- (if render
* | ^7 A1 A9 i& o+ A a+ G - (verify_arxapp_loaded render)
c$ _$ C1 f; J - (quit)
" K$ O3 C0 B j% Z; J9 ]: e - )
0 r5 L6 e3 K) E; a
( z% E% }2 }1 D, f b- ;; Save current filedia & cmdecho setting.3 c# R! }0 Y# \
- (setq filedia-save (getvar "FILEDIA"))
" W6 @" T) B- x- {5 I" Y! {# ^ - (setq cmdecho-save (getvar "CMDECHO"))) K5 r( t7 ?+ L4 R$ V7 A" m% \+ d
- (setvar "FILEDIA" 0); a/ p9 L% |( u) R1 g* [6 C% C
- (setvar "CMDECHO" 0)% V: o/ _( S2 m9 m
- # ]( ?, N+ I) u* J' f
- ;; Call 3DSIN and pass in filename.
! r$ ~6 F7 s, P) }% X( U - (c:3dsin 1 filename)/ z* O0 [% D: o6 W
; ~9 M: {) J( S0 t( d* N/ H- ;; Reset filedia & cmdecho
0 l9 I5 _$ G& D( g/ i7 u, d - (setvar "FILEDIA" filedia-save)
: @8 B5 `, U' A: `6 y - (setvar "CMDECHO" cmdecho-save); T. m* U& S/ o, w; ~5 {
- (princ)
" H9 W4 C* u4 {- F+ P( G" M8 ?# n. q" _ - )
7 { c' L+ R8 s - - T6 t' d/ }- q5 Q/ S- I
- : @' f; ^5 c* m# m M" j5 k! p2 w P4 a5 ]
- ;;;=== Menu Functions ======================================
' `& M: A# }8 h5 n* g- \ - 1 m; e" O* C2 A8 }4 j
- (defun ai_rootmenus ()
' |# s* x+ K( c e+ J- J% N - (setq T_MENU 0)
Z- [# _. q1 a6 }, }6 b0 { - (menucmd "S=S")
2 \0 F ]/ I- L7 l - (menucmd "S=ACAD.S"); i, v" b7 q5 K8 T' P Q
- (princ)+ K) {( j2 s* B# v
- )+ c3 ?2 [+ h# k" V5 D
- 1 {. j$ [1 s1 G& D/ ]; Q2 ^
- (defun c:ai_fms ( / fmsa fmsb)7 y+ N9 l4 h; ]1 A
- (setq m:err *error* *error* *merr*): Z+ b/ e0 L# E5 i5 I
- (ai_undo_push)2 b7 T% |# Y) t6 [# u
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
7 N: j3 F- l6 }4 f - (setq fmsa (vports) fmsb (nth 0 fmsa))4 d, {* w! V% Z" x
- (if (member 1 fmsb)
7 K5 H* R; p" x# v7 | - (if (> (length fmsa) 1)
+ J! B6 X% L; j/ i0 Y% |) N - (command "_.mspace")9 }: |; C# ?; N. ?6 L$ Z! N
- (progn
# Q3 e: y: Z ~4 \5 l - (ai_sysvar '("cmdecho" . 1))8 R& O+ |# w& y7 Q% C k; j
- (command "_.mview")
3 c9 U5 R, Q7 _1 w' X - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
/ C! M9 A- {- W - (command pause)
6 o0 q3 ^% a) S' N# ]: y - )
& ~8 J5 G# U5 L" ? - (ai_sysvar NIL)* p, h( x$ c- q9 R) ]: p
- (command "_.mspace")
3 o2 n( ^2 h7 N& @* x4 ?6 ] - )
9 J6 n. p5 D3 d# N" K) [ - )- T: B" T* i+ w- V0 e& u0 Z0 w
- )
& t& O% `) i" C! ` - (ai_undo_pop)5 A, P/ q1 ]2 {% w9 L! S8 x
- (setq *error* m:err m:err nil)
# v, o4 G* b. @4 R( U# K9 C - (princ)
9 C" }0 _% _8 k/ M6 `5 _ - )! h5 Y2 ]9 }4 c+ P( K6 J
; k! m8 C+ L% `. l- c x# g; P- (defun ai_onoff (var)
9 ]$ S+ s$ p! {' w: @$ V1 h - (setvar var (abs (1- (getvar var))))6 v: n$ m5 f& @9 x8 b
- (princ)2 m4 N3 g9 H1 @6 C1 E/ c: h
- )
/ ?& M( M9 x, t7 p! C( \- d ?
. N2 k# z; I7 Q- D+ [- ;;; go to paper space7 S5 w- Q2 q2 m8 G v5 X
- (defun c:ai_pspace ()( S, H9 K+ J* s5 B: X) S" Q
- (ai_undo_push)
, [! O$ ^, T8 A( i% P - (if (/= 0 (getvar "tilemode"))
9 ~; O7 |/ q* ]5 B) l - (command "_.tilemode" 0)
( w* E4 z4 j4 N' K; w& ? - )
. b5 f5 I) |, W" [1 _& D/ R! N& g - (if (/= 1 (getvar "cvport"))$ @! e8 q) J% d* s' O/ k
- (command "_.pspace"). E$ v4 s, i5 I7 _8 r: o$ R6 I
- )
% k' {2 a9 _) u7 {- q- f - (ai_undo_pop)
/ ]1 b1 j, J9 Q1 @% I# B9 P3 _ - (princ)# g; i" u, N: M# g5 K8 T3 }* ]+ D
- )) G- n$ U" F$ \# [ T3 c
- # r" k6 Z! O g) ]+ b. o
- ;;; go to tilemode 1
- F, W. [/ g' R - (defun c:ai_tilemode1 ()
5 ]3 x! `5 L( H4 ] - (ai_undo_push): H& Z2 a: `. i' T+ \
- (if (/= 1 (getvar "tilemode"))
; U) {% G8 |5 j - (command "_.tilemode" 1)
0 D9 g* |* F* S& k7 Q8 @ o' {/ Q - )
( z' |3 M8 i. F3 h4 O4 R Q; y - (ai_undo_pop); f( c3 W% @( V3 u3 v1 K
- (princ)+ _# z$ ]" L4 F9 t' y$ a0 C
- )
9 S2 w8 n9 x+ K - % Z M% }( T2 V3 z. Z$ a
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered( L, w' @$ z: {# v( g8 f* s- f
- ;;; Toolbar Dimensions/ Align Text/ Centered5 F: |7 s6 [2 A
* m- {* v/ C2 F% z- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)# b% V! `6 Z$ \* O1 p$ T
- (setq ai_sysvar (getvar "cmdecho"))
( s9 S+ B& Y( s - (setvar "cmdecho" 0); M: r- H' U- n: u t/ o- }; Z
- (cond4 D' Y, g1 t! I! c4 A j: _
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))8 e' b: H# @ G5 g
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
% A+ j+ ?$ Q/ K: Y - "_.dimtedit" ai_dim_ss "_h")& c$ y: H8 n/ c* i( O
- )
( R- A1 i5 g9 d% q - (T nil)
0 t' F# {" z& Z5 ^3 e5 c u - )$ K+ b. r" {3 N+ N! R2 h
- (setvar "cmdecho" ai_sysvar)
- `$ ]3 r6 v9 Y1 ` - (princ)9 Y& s( |. @5 l0 @( h/ h
- )
$ E5 `, c% _8 k0 f4 Q1 _3 Q( v6 w - " d7 ]' J+ |3 o/ |) b7 p. a8 u
- ;;; Shortcut menu for Dimension Text Above
' V& w8 E( G7 Y% X- `$ O - ( a- H- M/ S) O, Y5 ~6 z% ~
- (defun c:ai_dim_textabove (/ ss)3 t7 ^% V. L5 ?+ M3 g2 L
- (ai_sysvar '("cmdecho" . 0)) c& _( E8 A) k K! f6 @9 s
- (if (setq ss (ssget "_I"))& `- j( P. Z8 i
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
- R1 [6 D% u8 f+ a - (if (setq ss (ssget))
' q6 C% n" Y6 H! [ - (command "_.dimoverride" "_dimtad" 3 "" ss "") 6 f9 A; J+ Z0 b1 h$ G% q
- )# A% c5 I4 e6 z! M! r6 V
- )
# v7 e2 x: H+ A- ] - (ai_sysvar NIL)
0 e2 {" l5 y2 ]. u0 X( a8 E - (princ)
2 H+ x; v; c# E - ) _# Y3 x/ R1 h; `1 \
- - G: B3 Y" G e3 M2 P) ^
- ;;; Shortcut menu for Dimension Text Center
& |6 H4 q6 ]0 f# X - ; s$ h3 m+ n5 B# g# b
- (defun c:ai_dim_textcenter (/ ss)
# i& `5 z) u: e2 C4 ]9 X - (ai_sysvar '("cmdecho" . 0))
: O: s0 H6 s! M0 C - (if (setq ss (ssget "_I"))0 q2 {) Y- h; Y" z/ n
- (command "_.dimoverride" "_dimtad" 0 "" ss "")9 w6 p) e2 \8 z/ [4 y" U4 }
- (if (setq ss (ssget))) U+ c2 D6 S( ~! }. J3 ?
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
+ ?/ V s$ J5 i/ y% A! S3 T - )7 R/ F8 u( i' I. ?7 m
- )6 _# y2 O: J/ \) j9 E
- (ai_sysvar NIL)
: t, O J5 ~: z6 l: ?; t - (princ)& H0 r: O$ J4 k+ {6 O
- )/ @. A5 D4 w% u4 D
; `' J- Z+ h% O* _# D; `2 c- ;;; Shortcut menu for Dimension Text Home
* J2 A& X7 o. F4 M2 B$ [ - : V+ n5 V8 [% d) v( o" D
- (defun c:ai_dim_texthome (/ ss)
/ S+ K5 ^! |; [* |! P - (ai_sysvar '("cmdecho" . 0))
0 \+ F$ y9 H: |8 X* ]% V3 L: f% z$ I5 Q - (if (setq ss (ssget "_I"))
( t& X2 J7 K% u6 Q - (command "_.dimedit" "_h")/ p# U, @) P2 J3 N
- (if (setq ss (ssget)). u6 X6 u- r" ^% A, ]2 P
- (command "_.dimedit" "_h" ss)
6 u+ b2 m: f+ `. `; W$ u7 l - )/ M2 C: G, s; y1 h
- ). \: A5 h/ n, e4 G% v
- (ai_sysvar NIL)
- c" ] J/ k2 Z, y/ H& C2 W8 [ - (princ)
Q% O- ]! ^7 g( s* M - )
$ }) v5 W' a( M; a - 9 V' m. i+ h/ ~( B& _4 O* b
: f9 D! Y8 W$ G8 _# D& l) S- ;;; Screen menu item for CIRCLE TaTaTan option.8 V; g0 d6 \: {' m' ?
- ;;; first, get points on entities2 N: H0 L* S! P- [' q
- (defun ai_circtanstart()
$ S# ]/ @& ]& Y/ K" n$ G - (setq m:err *error* *error* *merr*)/ j9 Y/ R+ p) ^+ I& M2 q
- (ai_sysvar ! W" O, {# v1 A/ r: Q" h) s* K
- (list '("cmdecho" . 0)# |4 o! O# a I% `: e1 {2 o
- ;; make sure _tan pick for CIRCLE gets same entity9 Z3 m- _+ F& j
- (cons "aperture" (getvar "pickbox")) z6 n' Q& P) V
- )
4 T" _- k( A5 g/ i6 s - )4 @+ B# C& T# s3 b
- ;; prompts are the same as CIRCLE/TTR command option
, A, u! z. o, W - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
6 O; q" ^: f& W/ d/ k, L - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
4 q E L1 i$ ^/ r( F* j4 i - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))2 c8 d, q7 G: _ z6 v. l5 k
- )
@1 c1 L8 _) Q0 V- d - ;;; Command-line version
! |% s- T+ y# s2 E - (defun c:ai_circtan (/ pt1 pt2 pt3)
% @9 @) @( s" j1 { - (ai_circtanstart)" c5 D3 R0 ]$ v; E( j+ I6 M9 S p
! |9 b; ^7 H* A2 Q- (ai_sysvar '("osmode" . 256))
6 ^* \: d* Y7 A+ d: o+ Y - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
2 c; e4 O& B6 }) m4 q7 a -
3 u0 I0 [7 g- E8 G l" g - (ai_sysvar nil)
0 L( p i, ?6 J - (setq *error* m:err m:err nil)
3 B# |- l* ]; p/ W2 E9 E( y - (princ)
9 n5 V3 a; Y/ h - )5 l) |: y' j2 j" t( I9 l$ v
- ;;; Use this if CMDNAMES == CIRCLE7 p' a- g9 \, W' d" }
- (defun ai_circtan (/ pt1 pt2 pt3) }: D5 }$ P+ u$ A
- (ai_circtanstart)
& V$ ~% Q' S1 o
8 I r+ j3 d8 x- I: V3 ]7 o3 X3 k. o- (ai_sysvar '("osmode" . 256))8 }/ @) J T: y0 m; ]8 ]: v, N# `
- (command "_3p" pt1 pt2 pt3)1 ?0 W7 H% q6 C4 g# S
- e+ p0 [6 h" ?
- (ai_sysvar nil)
) D3 T w) |& I! H5 ~ M - (setq *error* m:err m:err nil)4 k! f$ i9 [2 F0 }
- (princ)
* F; r2 U5 S R9 r8 I5 ^$ { - )* g3 S5 w2 A8 W9 f7 b# N
- 1 Q! q5 h2 _- g5 V; A% ?
- 5 L/ c# |/ I. {1 F! Q2 `
+ Q3 T' P- @" U* f4 G5 b& \$ U7 ^: S- ;;; Shortcut menu Deselect All item.
" u" ~' y* f4 R0 S- Y - 0 k8 a* S( Y/ v! ^& q d( {
- (defun ai_deselect ()0 X1 A t: s/ A* W& P, I* C
- (if (= (getvar "cmdecho") 0) ;start if6 F+ m1 k! o/ H; K( J- x
- (command "_.select" "_r" "_all" "")1 T2 p- Q J9 B! h; y: _
- (progn ;start progn for cmdecho 1+ s2 n H5 D8 I U6 F
- (setvar "cmdecho" 0)
0 d5 W* y" p- } - (command "_.select" "_r" "_all" "")
. A9 f' t) W8 r, Z; R- e - (setvar "cmdecho" 1)
3 ?) k6 g$ a5 O; w - ) ;end progn for cmdecho 1- S9 N3 x$ P. O
- ) ;end if Q, p3 L3 R/ ?% c+ p
- (terpri)
% D% g* ~8 W, F - (prompt "Everything has been deselected")
! P* n# I0 k( E# l& k6 J% n - (princ)5 `: L8 U2 ~/ l2 j* @
- )
1 ` f+ h F' M# o5 q
) H* j0 c/ _% U. c/ n4 U% w- ;;; Command version of ai_deselect to be called from the CUI/ q1 n+ x" N U* b% }
- ;;; so it gets properly recorded by the Action Recorder
: e, s0 z6 n9 Z2 l - ;;;6 X" H5 L& Z% F2 q
- (defun c:ai_deselect () f8 z2 i: c( `5 Y* A, Y3 S' C
- (ai_deselect): h9 e$ |0 H0 `1 w# E8 I
- (princ). Z4 a0 M' `* Y P/ {
- )
4 Z: y( b% H5 V4 f/ I5 \ Y
, u- B8 R. y6 y3 E) C- V( L- F- ;;;
: s8 B: f, Q2 V- O' F# A - ;;; Enable Draworder to be called from a menu7 P/ ] w, ~( t j
- ;;; Checks for Pickfirst selected objects5 Y2 ]! q5 M/ d1 d. M& \8 C- `! j
- ;;;% u$ S* \$ Q! @7 q: f
' P f' c" R5 B- (defun ai_draworder (option / ss )
' h$ I$ O& v& U8 e( Z; h( _ - / {( k$ X3 N5 I4 o( i
- (setq m:err *error* *error* *merr*)
, e. P) `2 g' ` a P - (ai_sysvar '("cmdecho" . 0))
5 K7 E, p) R* b; Y6 K1 o - + M2 w; Z( r6 D
- (if (setq ss (ssget "_I"))
4 u3 j5 B) V% t, e) D/ V/ @7 { - (command "_.draworder" option)4 ^' @2 W+ U; w# }( C
- (if (setq ss (ssget))0 k. h2 r8 _# U) H: U
- (command "_.draworder" ss "" option)7 V4 H+ b" G4 S% D
- )
! X! Z9 _% X" v0 P0 c$ V - )
. Y9 R: z$ S3 n4 g" k: S - (ai_sysvar NIL)0 e3 q7 v/ L) o5 Z; u) U
- (setq *error* m:err m:err nil)
1 z7 \; b/ z1 v, }7 O* F, @ - % Z+ G# r1 I7 M4 D! f. q
- (princ)& t: \0 k- u3 }% M+ F5 }4 R# _
- )2 t3 f( ~+ G/ Q; v5 j' D9 F
0 a' H+ [$ Z) w, p9 v# r- ;;; Command version of ai_draworder to be called from the CUI
+ M' R# i9 T9 C( ~/ s - ;;; so it gets properly recorded by the Action Recorder4 j, }$ j9 O. P, T5 `
- ;;;
) k' X+ s, @ |9 \2 p, |/ I& r - (defun c:ai_draworder (). ~: f, R2 F2 O- e6 O8 P
- (initget "Above Under Front Back")
9 x9 s4 z! w: C1 h$ g& _: R+ [ - (ai_draworder (strcat "_" (getkword)))7 x4 ~( C( \( H; p" z/ O& K9 U
- (princ)
% W X9 M4 O9 E @4 F - ) u. h% Y( {2 M' _) p9 X+ t# [2 m* {" C
- . |4 Z1 m7 Y$ |! ]
- (defun c:vlisp ()
0 m. J g$ g6 S5 u* h7 [ - (if (/= nil c:vlide) (c:vlide))
1 c' v5 ~& g! x3 V0 \: y - )
+ h% [7 X% W# c7 L
0 [( b% {8 E" x# F& F1 g* j! b% X- (princ "loaded.")
X/ P" ^/ K3 G; k - # D9 J! O" c% m* V' M6 f* v( J
- ;; Silent load.3 g3 [! E# \7 U4 `# e
- (princ)
& i6 y! k V& N% p8 h) c
. P* m7 n8 j7 g: m' H+ x- ;;;----------------------------------------------------------------------------
5 _; ~8 o8 R. D2 m) v - ;;;+ y. D* N$ ?0 Q I! |# g H1 }
- ;;; DDCHPROP.LSP Version 0.50 t9 d# O$ j$ q9 i8 }7 ~
- ;;;
8 S' s7 C3 {! _- D! c - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.$ E! E1 x' w1 w5 s- o+ c) G: t
- ;;;) Q, t$ t6 M+ K; V( s' u$ L! ]
- ;;; Permission to use, copy, modify, and distribute this software
3 p+ Y/ G9 ]* q4 ^ h) o' y+ }7 j - ;;; for any purpose and without fee is hereby granted, provided
$ m; ? f. Y( c) M - ;;; that the above copyright notice appears in all copies and that
. m7 \- Q* }+ D( c. M - ;;; both that copyright notice and this permission notice appear in5 D% w# A& f. m- _4 n
- ;;; all supporting documentation.9 v( W1 O% n# m4 P# v$ i; J
- ;;;
3 i, D3 [2 U! B! i2 _ - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
1 M- X! m X9 q3 I4 p! H5 D - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
6 U( v' S( H) t( V+ |/ w3 h - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
# x$ z$ ~ q, Y- Q' |4 g* { - ;;;0 _% c6 w, G; i
- ;;; 2 February 1992
9 j K* X C+ j2 d, A0 _ - ;;; # ]8 c; H3 ^% I% H
- ;;;----------------------------------------------------------------------------
- i1 x/ L) F4 y( T- Z( b - ;;; DESCRIPTION. t" ~$ \ k: @# B
- ;;;----------------------------------------------------------------------------* {* ?8 A. i" h% a0 U
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
4 M+ h! D8 n. _+ { - ;;;/ Z3 i( u& N7 e; V x
- ;;; The command looks similar to DDEMODES. The main dialogue has an image
0 z8 U& i/ d5 l4 {7 l$ w - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
6 S. d( O: ]/ J0 s E1 o - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
$ ?; v m- @. A+ L7 Z - ;;; The dialogues are all defined in the DDCHPROP.DCL file.3 R5 _+ [7 a. P5 U- J0 f
- ;;;! e8 |* ]6 ]- P( O( O
- ;;;
5 w) {1 h2 I% \/ Y - ;;;----------------------------------------------------------------------------
- a' h/ X( b- o& Q# v/ l - ;;;----------------------------------------------------------------------------% u6 U* Z, u2 j6 S# A2 e/ d* y
- ;;; Prefixes in command and keyword strings: 9 M% t" K" {2 L$ _4 g
- ;;; "." specifies the built-in AutoCAD command in case it has been
' C( F; s: y! c( R, J - ;;; redefined.% y9 ]6 g2 R2 ?7 C
- ;;; "_" denotes an AutoCAD command or keyword in the native language K) Q2 B9 y, o. Y
- ;;; version, English./ [- [! {/ M% ]
- ;;;----------------------------------------------------------------------------
8 `' }; t" H: a, H) k6 f - ;;;5 e5 f4 F* D/ C2 Y( u) ]0 l, U; J M
- ;;;
1 p4 X/ ~: E, R- }- ^5 ] - ;;; ===========================================================================- Y. C9 X% d# j) E6 T; Z# ^5 t
- ;;; ===================== load-time error checking ============================
; Q( p1 ~( m3 \ `" w - ;;;* T& {9 T, ^4 ]4 r
1 x4 A# y5 _1 A4 x/ @. Z1 F I! M+ c- (defun ai_abort (app msg)
5 u3 G% l! J8 o- v G - (defun *error* (s)
+ ?! ^( ~8 R- h- W( t - (if old_error (setq *error* old_error))! g, @: L: Q& C d. ?* m
- (princ) n4 @6 E) Y Z2 B/ \
- )) Z! B" p& n/ I: S
- (if msg1 g) `. v" q7 g8 S2 d2 W4 N
- (alert (strcat " Application error: "
8 L }: {" ^. h, S# e& w! Z - app0 P: E9 Z' S6 V: g* g( C/ b
- " \n\n "7 | G- ~7 O6 }; w
- msg- l; l/ s0 W: f4 P5 B( @5 J) ~
- " \n"
# w4 i# X1 [* F: r3 C: @6 N* V: Q - )
: I2 W {$ D a9 t& ?: y5 [ F3 _ - )
9 z2 X; E7 O5 f# d5 O - )% J* S I$ @" K9 C' ^$ j3 u
- (exit)9 ]; Y P) F. [* ^3 ~* Z
- )5 t' @# t1 a" Y0 _0 } y, z1 g
- 9 F2 I" e# v5 q) _ U% ]
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
0 ]' K. E0 u+ A - ;;; and then try to load it.
I. ]8 _& m7 e5 u- M4 H - ;;;% k/ J+ i: W7 X" L
- ;;; If it can't be found or it can't be loaded, then abort the
4 P. |5 K2 w! w. i0 { - ;;; loading of this file immediately, preserving the (autoload)
2 c, e- A, j8 y. ?; f: R - ;;; stub function.# u. M9 O+ g3 r9 m2 r4 {' {
/ z$ s l+ s9 m/ ?! f8 H- (cond$ x) g8 R" v1 y Z; r, \
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.7 ]$ I' C$ D5 R
3 ?. b0 Y& X. f( x) o- ( (not (findfile "ai_utils.lsp")) ; find it9 P8 H7 w$ _( x; {
- (ai_abort "DDCHPROP"( b, b1 F( n, V( t6 R6 \! q, Q7 ~
- (strcat "Can't locate file AI_UTILS.LSP."
% E; L4 k- w7 Y/ p - "\n Check support directory.")))9 `/ ?5 F' f" y! ^. D8 q. H8 I, G/ ?
- * u! z% _4 s2 R& ~; ?9 r; {
- ( (eq "failed" (load "ai_utils" "failed")) ; load it/ w- N( L3 F. S
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))+ U" Y# T7 X& B: L
- )
3 O& A# m. P% u) j) D
: y2 Y$ {3 D9 t N& C- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
. |% b) f: e7 r5 X0 m - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses& u# N- }# S* I) _* u$ O
- ) ; ai_abort's alert box dialog.
$ y3 @& ]8 \. i7 s) {# {% W
* H* m0 V( a) {( B" n. D. X q+ y- ;;; ==================== end load-time operations ===========================
! ~1 a( D. B. _( i3 u - 1 j9 e; } d. H' E }9 S
- ;;; Initialize program subroutines and variables.
7 d: L; Q- ^2 M8 c( m5 C% P
/ r5 n6 ~, Z$ k/ c+ e- (defun ddchprop_init ()
8 [5 N8 h# Z7 v+ h$ g# K: c. ]" `. r
! E3 O9 J. g4 T, b5 L) r- ;;, J- p' N0 W7 N
- ;; Define buttons and set values in CHPROP dialogue box
! G/ u4 L( F9 _' H1 L - ;;
* j9 j" s$ m3 F( g+ L - (defun call_chp ()
. h; z$ U- P& T5 Z2 A" G) P - (if (not (new_dialog "ch_prop" dcl_id)) (exit))! u1 |" R$ X% I; m# ]; o
- (set_tile "error" "")4 ~3 m- H4 m" l5 h. M1 ~
- ;; Set initial dialogue tile values
+ V1 L1 g2 {; c - (set_col_tile)
; i* {; ~3 h; W. O3 q5 C# d - (if (= lay-idx nil)$ ^0 t7 R% d. [
- (set_tile "t_layer" "Varies")
% h* N! p7 W& }: A6 ]5 T! K - (set_tile "t_layer" (nth lay-idx laynmlst))
9 y; z) m; `( L. ^ - )" W- M7 y0 e+ s7 ]5 I1 B
- (cond
; X$ J2 U& A* U" ?4 u L9 z% H - ((= lt-idx nil)2 Y; O3 o; h5 X5 _; h* V% P, h
- (set_tile "t_ltype" "Varies")% m' n6 H1 _4 Y' d0 t
- ); S: n+ l8 X+ [5 O" v
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
( v( Q. [( q7 j. V6 i2 g4 t, w3 t - (set_tile "t_ltype" (bylayer_lt))
_- A1 v- e; h, j5 m! q. l - ); S& e: v. h# J, r: C/ r
- (T
7 k$ G$ F. \( l" X. V - (set_tile "t_ltype" (nth lt-idx ltnmlst))) |$ v6 h; c+ S' @3 i2 A
- )
7 w) |; f/ @7 K# E% d8 F - )% ~$ |7 F n+ [0 g- r
- (if (or (= ethickness nil) (= ethickness "Varies"))
4 W( c& |( }- l3 k$ c - (set_tile "eb_thickness" "Varies")( D) r$ o- Q5 q! y
- (set_tile "eb_thickness" (rtos ethickness))" N& U& o+ o/ f! e0 L
- )
$ M% @# e* m& N - ;; Define action for tiles2 ?+ C p9 z/ Y2 Y$ E
- (action_tile "b_color" "(setq ecolor (getcolor))")
& v- a1 O; f! d* r w2 J - (action_tile "show_image" "(setq ecolor (getcolor))")& U; d. J( Z6 x. P& P4 d
- (action_tile "b_name" "(setq elayer (getlayer))")- X6 J7 d b+ ~* G2 J* S' F
- (action_tile "b_line" "(setq eltype (getltype))")+ k4 L/ m2 `$ t, B% x c
- (action_tile "eb_thickness" "(getthickness $value)")
4 u, u' x/ j) D - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")3 t# h8 F( }' E8 y/ ^& V. K4 t% C
- (action_tile "accept" "(test-ok)")
2 l' D; p$ w& }! B+ C/ G" K - (if (= (start_dialog) 1)6 Q% @/ b% L6 ^
- (progn4 f9 p2 h. t) Z7 F" \% |" j: ^3 D
- (command "_.chprop" ss "")
" [& \& A# U: { - (if ecolor
& z: @- T# j" [0 p: \+ h" Q - (progn5 l) c6 ^8 I& e/ z( v, W
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
8 Z% T6 _ _4 [/ S; l0 S - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))( c4 I' s# ~7 Z8 x* j) ~
- (command "_c" ecolor) i3 g9 j3 C: s7 ~# T/ z+ L8 `7 w
- )
% d0 i) ~, v3 X1 c1 @0 q - )+ t3 A* _( y9 z( _
- (if (and (/= eltype "Varies") lt-idx)
' H# l% C5 C0 ~2 X% F( g" W - (command "_lt" eltype)$ e- x5 R5 t( ^$ t
- )
! @. u% y2 Q X! H: e0 X - (if (and (/= elayer "Varies") lay-idx); {7 b$ h! B. K2 x0 `& Q. s1 D
- (command "_la" elayer)6 F; q; u+ |: C( b& _
- )
w$ r4 B' A; u8 H( L - (if (and (/= ethickness "Varies") ethickness)
3 `) c6 e5 x" E% f3 @, o8 p - (command "_t" ethickness)( D s1 n/ q5 j# Z% z4 [5 c
- )
, u# ]* h+ l8 Z) O - (command ""), b$ S& f d) a; k+ |
- )
U0 Z7 r9 \( ~: r - (princ "\nProperties unchanged")! B. i1 c. r+ _. k+ i# P/ O
- )8 ^. K, ]; J+ \6 F
- (princ)- _& j7 t; X# {- W
- )+ O4 ]1 [ |# z2 C$ J8 |
- ;;% x9 _3 s4 y1 K/ B( A* h
- ;; Function to set the Color text tile and swab to the current color value.
7 ]- q' m$ x6 s - ;;' N+ g8 S8 l4 c# U0 Q5 D4 m
- (defun set_col_tile()& V6 W. N. @2 W E4 o8 p# t% c
- (cond
- p% |9 _% w B F c. ~6 U - ((= ecolor nil)6 c1 ~; r" k2 ?% S" b& E
- (set_tile "t_color" "Varies"), f/ ?1 D' Q: A5 Q G: K4 A* T9 w
- (col_tile "show_image" 0 nil)7 q( Q3 T% F% v+ r
- )# O, | W- P* o& g: C
- ((= ecolor 0)
9 o) B0 ^/ }7 m. j7 n4 t - (set_tile "t_color" "BYBLOCK")% @3 P p! j* E; n4 m
- (col_tile "show_image" 0 nil)
) z, ~( L* c2 L, H3 _" I. T. ]" o - )
- M ~5 k' l; T! P3 y9 z - ((= ecolor 1)
5 q; ~ l! r- e, g4 m1 `# Z/ V; T - (set_tile "t_color" "1 red")
9 i2 G$ p' e" W' n - (col_tile "show_image" 1 nil); Y, h1 y' `* A$ @2 C) L
- )2 I& J; R6 f! b
- ((= ecolor 2)( Y' Y) a5 x% W1 r
- (set_tile "t_color" "2 yellow")
6 x/ e9 j1 N9 `" r+ l/ w" o - (col_tile "show_image" 2 nil) x, P0 \0 g+ ^/ N. _# J& B
- )2 K' x4 I* o$ m$ ~
- ((= ecolor 3) m S) _ ^5 u
- (set_tile "t_color" "3 green")) ~+ X; ?% h2 T( `; v
- (col_tile "show_image" 3 nil)
) l2 J% A e. ^- X' e - ): I n! U, z r$ B
- ((= ecolor 4)
l6 m4 C3 g: B - (set_tile "t_color" "4 cyan")' G# d) H6 D# d+ I( R3 c
- (col_tile "show_image" 4 nil)" j9 b, I/ u/ u. ^
- )9 c5 d" e# \& U
- ((= ecolor 5)
4 P( E8 [6 p/ v8 t - (set_tile "t_color" "5 blue")
8 }/ K# M+ H2 p - (col_tile "show_image" 5 nil)6 _. ?" a8 t8 O3 {6 x4 k
- )
2 \* v0 G5 w" A; n9 q/ _ - ((= ecolor 6)
' s7 H' w( D, k, o% h) {. Z' j - (set_tile "t_color" "6 magenta")8 k2 w4 [/ Q4 v& i
- (col_tile "show_image" 6 nil)
$ o; l }/ r4 y" c, s! T - )
. W7 x; H% N/ U6 ]3 o: x6 n - ((= ecolor 7)
$ P: Z( Q- E( y1 d5 b( N - (set_tile "t_color" "7 white")& y9 p6 S5 W% {( L: |% Q% [! J8 M) q
- (col_tile "show_image" 7 nil)
. H/ G: y* P: c$ n% T; p" l. E - )+ c! a6 \" S9 k2 W% Q
- ;; If the color is "BYLAYER", then set the tile to
2 Z% _- t% @! I9 c3 S- q - ;; show it's set By layer, but also indicate the/ @. @/ C7 [5 c( i6 m s% s
- ;; color of the layer - i.e. By layer (red)
4 V9 `7 i- T6 Y/ W! o1 h - ((= ecolor 256)/ e, ` f; o7 C' s/ U* C- A5 L
- (set_tile "t_color" (bylayer_col))1 Q6 _# M. u5 \9 C
- (col_tile "show_image" cn nil). U& @6 V- O- p2 N' y) \, ]% r
- )
2 d' ~8 z0 b; `. n - (T
0 Q: S% C9 C3 x b0 w2 O - (set_tile "t_color" (itoa ecolor))4 t. y. \4 h( J
- (col_tile "show_image" ecolor nil)
' A2 x7 x% e# T- F, a* f - )- x; q/ J' u9 V* @* \
- )* w1 y. r+ y/ c
- )
7 o. p! `: z$ g9 d - ;;
: O% Q& J5 h7 Y - ;; Function to put up the standard color dialogue.
2 E$ ]' I$ P9 D) I - ;;
' |" K8 H: _1 H# } - (defun getcolor(/ col_def lay_clr temp_color) t6 ]8 x( o6 G
- ;; col_def is the default color used when rq_color is called. If ecolor
* j6 j) u1 R! ~' M+ } - ;; is nil (varies) then set it to 1, else use the value of ecolor.
0 l7 n2 E' ^ i4 ^ - (if ecolor9 u, `8 J, v* v0 f
- (setq col_def ecolor). ?8 A; j' h( i
- (setq col_def 1)8 `' [" C$ }: R" ]7 [; `& t- l
- )
( A& z0 b; n0 L' }, k! } -
5 |8 O* X& w' l% H# h - ;; If we're working with a single layer, get its color$ G4 J- r5 I. V0 O T
- ;; for use in the color swatch if the user selects color BYLAYER.- T) x8 |2 U( \5 M5 u; H1 ?9 P2 T
- (if (/= elayer "Varies")
+ ]8 [8 e% F# t- `5 w' U* A5 t - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
. b3 z U3 R4 }0 |* d - (setq lay_clr 0)& G( A* M r) W5 d
- )
; H9 h' M2 M% ]4 [9 o - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
; q1 X; m* T' t; q - (progn7 z S, ]: F3 |
- (setq ecolor temp_color)$ P0 u6 W* h- v9 n% x+ g
- (set_col_tile)% q* i: h, C5 r: v8 C
- ecolor+ r! M( b) }# ~
- )
5 ?. \, W6 ^5 }! A" q - ecolor
9 v5 f- C" ~& ?8 v+ K - ) - N) {& n0 D Q* Z+ Y
- )$ Y- }9 D7 c( s) B
- ;;
+ a( M( [% x3 j+ J) @, s' ?1 N - ;; This function pops a dialogue box consisting of a list box, image tile,
3 L. |/ o* _. k2 n" g9 }1 c - ;; and edit box to allow the user to select or type a linetype. It returns
8 M* M" N' N: ~, v- j$ t: x - ;; the linetype selected.
) g' c" e! t/ l0 L/ R - ;;: y- I1 p$ A4 _2 p% G* ]
- (defun getltype (/ old-idx ltname)" n; D: M; U3 e4 {- u( y& {! H* }
- ;; Initialize a dialogue from dialogue file
5 W, }) a4 c0 b$ ^ - (if (not (new_dialog "setltype" dcl_id)) (exit))) U9 r7 Z1 b0 c1 L) l
- (start_list "list_lt")& k, z, K: F9 G. |6 e+ e( X
- (mapcar 'add_list ltnmlst) ; initialize list box2 u9 T% V; Y0 R7 r$ e/ P
- (end_list)
+ n' m1 q0 |/ Y( I' O: J7 f2 T7 E. T; g - (setq old-idx lt-idx); N* k+ z3 U. ]0 N; ?. y
- ;; Show initial ltype in image tile, list box, and edit box
# Y$ F# M- W! _; B" p$ R - (if (/= lt-idx nil)
, X1 E) r, ^/ F$ } - (ltlist_act (itoa lt-idx))4 _$ [/ D1 h. |/ I8 k
- (progn
, D# c& W+ Y4 _8 T - (set_tile "edit_lt" "Varies")6 u( b* a- i1 B" @0 {, C
- (col_tile "show_image" 0 nil)' L1 s; p& _. |
- ), r) j7 Y- v' b8 R8 y6 ~2 M
- )) f. d0 b# Y- W
- (action_tile "list_lt" "(ltlist_act $value)")
5 C6 K; ~0 c Y6 q- I7 E3 o - (action_tile "edit_lt" "(ltedit_act $value)")
' ?0 `* h s* J - (action_tile "accept" "(test-ok)")
1 w1 q* S( ]! \3 J - (action_tile "cancel" "(reset-lt)")
\6 k Y% Z, t - (if (= (start_dialog) 1) ; User pressed OK
, J A- H# D) R( x8 {5 M0 D: T - (cond
" e, o3 j/ _& g# N - ((= lt-idx nil)
" J' [& V! G" f. R( a1 U/ q - (set_tile "t_ltype" "Varies")$ Y6 z# g9 v8 b4 h1 _$ r
- "Varies"
, |0 l) H" T, R2 s' I - )$ F3 `. n% e5 r9 f5 _
- ((= lt-idx 0)! \5 |. o# ^2 @5 F7 V
- (set_tile "t_ltype" (bylayer_lt))" r% s) N/ M# N2 b
- "BYLAYER"
" s% @( u( c4 H# G9 \ - )" N" \3 G6 L0 z" c' p8 ^
- ((= lt-idx 1)+ U* n5 C& O" K# N$ j7 U
- (set_tile "t_ltype" "BYBLOCK")
! H0 v9 B% W& M+ {) ]2 i - "BYBLOCK"& t$ p1 O6 j1 h
- )
' V2 n7 F) ?2 j4 j) M5 P( a - (T . K( G1 K/ z& Y1 O
- (set_tile "t_ltype" ltname) " {) T( Z8 ^* F5 A4 a& w
- ltname! L- M; T8 b* E/ ~
- )) \. y: _# l: M, E3 ^9 D( V! \) C1 v
- )8 _7 f8 T9 F x
- eltype
- S! [5 ~1 C" {4 u2 Z - )# E8 `& l- k" h- s9 p
- )% p5 x" A( j! ?, t5 l8 J
- ;;
6 y$ l# a% n; Y" v: |: C. e - ;; Edit box entries end up here
6 `. Y3 h+ E, ` - ;;7 \' v7 Y: N1 z9 u1 {& U; B7 M1 s0 r& I
- (defun ltedit_act (ltvalue)
$ t3 a$ C6 B2 T% e$ C/ d - ;; If linetype name,is valid, then clear error string, + S3 w4 f5 [$ e8 s( f/ I! T3 ^
- ;; call ltlist_act function, and change focus to list box.( N) Q1 S9 \# z$ ^! J
- ;; Else print error message.
8 o+ E3 ^& f4 C/ G. v# J - (setq ltvalue (strcase ltvalue)); s. e" p, U; o/ L1 u; C1 k9 h2 _0 q
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))) u. V+ r% Q5 l$ {1 H D2 J
- (setq ltvalue "BYLAYER")
7 ]* n: X* W2 o$ C0 L5 o& j - )- ~! ^. T" r! |7 o+ x; G! q
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
+ ~* G; W( P( S! `+ z8 h3 @ - (setq ltvalue "BYBLOCK")
/ A) `4 n. ^" h( | - )
& {" q3 a5 r& A4 X- L" M7 l$ ` - (if (setq lt-idx (getindex ltvalue ltnmlst))# P8 U! m m3 [1 `1 q' X) R
- (progn* ~9 `$ L8 P4 \7 x' l! E! G0 l
- (set_tile "error" "")
3 t; u. F) v% s1 w( _ - (ltlist_act (itoa lt-idx))
1 Y) x9 Z6 B3 z5 O6 p$ o2 t/ d - (mode_tile "list_lt" 2)
~, o$ \5 c9 v( I' e - )4 g( L+ H; {+ L4 j" ]1 C0 B
- (progn$ R) B0 n/ A8 x: S6 [
- (if (/= ltvalue "VARIES")8 A* H! b" {1 ^* B4 }: @
- (set_tile "error" "Invalid linetype.")
; A1 F8 B. u2 G4 N) \# E) n - )
& v7 @2 O Q% i. u4 b8 Q - (setq lt-idx old-idx)+ \% m7 f6 V8 F. Z, G
- ) / y. o. t$ u) P H
- ); u+ \* s* X/ Q2 M
- )
0 x6 n0 i( j/ H2 F$ j( K5 P6 K - ;;6 X' K' \4 r* `* z
- ;; List selections end up here
$ l" J- x5 |8 A- n. t' \! [ - ;;. V; p( G( x8 `* z' x
- (defun ltlist_act (index / dashdata)0 a8 F3 x5 d8 m4 D$ @6 m" R8 i/ U' o
- ;; Update the list box, edit box, and color tile
1 `9 {0 v; V0 A" E0 _9 R0 J - (set_tile "error" "")
& V! |" Z1 e4 w - (setq lt-idx (atoi index))+ C9 k+ L3 F4 D @8 f7 m% r8 H+ @
- (setq ltname (nth lt-idx ltnmlst))+ G5 ?) d, m% R
- (setq dashdata (nth lt-idx mdashlist))4 E b0 C2 \. E
- (col_tile "show_image" 0 dashdata)
\) A: c* m" X J! g1 V - (set_tile "list_lt" (itoa lt-idx))
& Z2 h A- }& q, \ - (set_tile "edit_lt" ltname)
* X9 M1 L/ p; D- F7 T - )
5 Y4 t& q# z- g3 P; x: D - ;;
( C* _. R$ `( A9 e9 C - ;; Reset to original linetype when cancel it selected
( w: x8 ]3 |+ A c5 v - ;;
. H' D8 p) [4 q2 ]$ M1 o' A$ m5 k - (defun reset-lt ()
$ w( e2 T! {# ^ `* y# z! Y+ I3 C - (setq lt-idx old-idx)
: h; H3 [7 K" J1 S( O% V' z - (done_dialog 0)
8 F% u, n0 z H - )
* A, v# z3 e+ X: A - ;;& S' I) t# ^- z+ K
- ;; This function pops a dialogue box consisting of a list box and edit box to 7 [8 y8 a2 \9 @- o9 y3 q0 O
- ;; allow the user to select or type a layer name. It returns the layer name
- Z/ [& g8 f' B/ F - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
6 M% t5 m1 v X3 l1 x0 u, w/ h. u4 s - ;; drawing.; ^( V7 w" e4 y
- ;;2 x; T, d* o* I$ M! D$ @. V' g) g
- (defun getlayer (/ old-idx layname on off frozth linetype colname)* q3 K) S4 j: l: s* x+ S$ b" s
- ;; Load a dialogue from dialogue file
9 A0 Y5 D7 c5 }7 i6 S - (if (not (new_dialog "setlayer" dcl_id)) (exit)). w( y7 Y' E9 e5 y" S) n$ R
- (start_list "list_lay")" V8 V) H7 v9 A. L7 {# ^
- (mapcar 'add_list longlist) ; initialize list box
. h! D5 H3 O* b2 u& ] - (end_list): C8 D9 \ _$ t" m" p- E
- ;; Display current layer, show initial layer name in edit % |: V- E4 J2 }9 p" c$ W% t' `
- ;; box, and highlight list box.! D Z# W# J7 x4 W
- (setq old-idx lay-idx)
4 ~0 k7 Q9 p* |9 V: _# \3 k. i, | - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
* c. H1 R1 d8 q - (set_tile "cur_layer" (getvar "clayer"))
6 Q! p: M S0 o: O, D - (action_tile "list_lay" "(laylist_act $value)")* F7 k4 Z% m0 Y; E5 U9 O, m
- (action_tile "edit_lay" "(layedit_act $value)")2 A9 i0 C9 C V4 z
- (action_tile "accept" "(test-ok)")# J, E/ R3 k$ }( O& z; ^
- (action_tile "cancel" "(reset-lay)")
1 V/ B7 A: _' @5 V( v! c4 S - (if (= (start_dialog) 1) ; User pressed OK7 g& x* J6 I7 J; Q
- (progn6 [" Q8 q5 e) N" @
- (if (= lay-idx nil) (setq layname "Varies"))
5 O. l% `& s9 E; e/ ~ - (set_tile "t_layer" layname)
$ Q1 H# J! y, J; Y( Y0 x - ; If layer or ltype equals bylayer reset their tiles
8 M5 A2 v% I- d/ S8 a - (if (= lt-idx 0)
' e" Q e6 J8 y - (set_tile "t_ltype" (bylayer_lt))
5 O" S4 `8 w; _; a i - )! F4 H" E5 k/ m3 h0 d, M. F8 b
- (if (= ecolor 256)$ P* M3 S# i0 O5 D3 K2 P1 Q
- (progn* c3 p' t$ L$ }2 R4 |+ t
- (set_tile "t_color" (bylayer_col))7 m* Z- o$ h% r
- (col_tile "show_image" cn nil)
7 y. Q) j4 r, m5 i* Y# z& s - )
, g' N8 j" Y+ [( ~" j& g( Y: ?) h - )
$ O3 ^+ y$ z. u, p1 F2 }# c5 g - layname
0 o. ]$ C3 k9 {3 s - )
1 [6 N; R$ t; f1 T - elayer
0 w& q6 L; ]+ ?+ f) j - )2 e1 G3 |8 C4 _9 i% I3 m& ^
- )
+ k7 _: b, M2 T- c# y/ N/ @ - ;;
[4 ], A1 E9 Y - ;; Edit box selections end up here+ V( m, Q4 c1 l# i' R! |
- ;;: F( J5 N1 w. N8 ~( S9 U
- (defun layedit_act (layvalue)4 v X+ B: E. F! u8 \! { N" L
- ;; Convert layer entry to upper case. If layer name is; e" g5 d G3 n; ~+ j" s& `* Y
- ;; valid, clear error string, call (laylist_act) function,
; ~; `$ z# b7 g3 V" ] - ;; and change focus to list box. Else print error message.
) x8 z# x" s- y6 x2 R. b - (setq layvalue (strcase layvalue))
* l7 u e2 [7 v" Y! B9 v" B - (if (setq lay-idx (getindex layvalue laynmlst))" E- n5 V# {3 R# _4 u+ x0 a
- (progn
# J% v0 d! R: S - (set_tile "error" "")8 p" D& a8 r2 u% X
- (laylist_act (itoa lay-idx))
1 [, t4 R3 J1 t - )' ^ U. n2 Y0 p: `, `
- (progn6 S8 v6 ~. z w
- (set_tile "error" "Invalid layer name."): N7 v" o& u4 B8 Y
- (setq lay-idx old-idx)6 x H& J, O/ m* j
- )
0 H2 S/ n: e/ A4 F - )
* s" @4 G- G! |+ {- c2 Q - )0 y" c( U* F& q) Z8 o' i
- ;;
3 `3 \: F l; i" k( p - ;; List entry selections end up here
6 A* A+ V7 Z- R( t9 {" ?3 u - ;;; j! h# \3 o$ w) h8 v
- (defun laylist_act (index / layinfo color dashdata) z* q/ s/ s0 t- l) [
- ;; Update the list box, edit box, and color tile
$ N2 a6 B- i7 ^ - (set_tile "error" "")3 _+ j3 i4 r/ V! J
- (setq lay-idx (atoi index))
% {* }% _$ e2 x( f/ E( S, o3 c* w - (setq layname (nth lay-idx laynmlst)); I' Y8 k8 a$ m
- (setq layinfo (tblsearch "layer" layname))
, O" c" Q+ X9 ?; N1 ^. S9 _& t - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4). {+ d& \7 k2 z& r) h6 r. B
- (set_tile "error" "Cannot change entity to locked layer.")
: c; S1 |0 c% Z, Q$ ~, ]5 J1 F - (progn
( b0 g* m" d+ O3 I5 ^4 p - (setq color (cdr (assoc 62 layinfo)))
- x: w; X; K- S; W: P - (setq color (abs color))
4 _/ g( a4 Y6 m6 n8 a k - (setq colname (colorname color))9 I ] Z$ q+ i3 `/ F
- (set_tile "list_lay" (itoa lay-idx))) b( x8 L3 b; g k h
- (set_tile "edit_lay" layname)
4 d: p1 M, C: i8 Z' x5 K - (mode_tile "list_lay" 2)
$ l) @ e2 ~$ p$ @; j - )5 D; g- z+ x" Q; y5 E6 \6 I' Z
- )
" i+ y/ P! w. s - )3 A% `6 g# S3 [; E
- ;;
& j% D8 I$ B$ f" ~4 z2 k3 r& ] - ;; Reset to original layer when cancel is selected
4 ]# H/ S# C& Q1 w% H' q" o3 y- b - ;;
/ A+ w2 S' x& F# Z5 ~0 n - (defun reset-lay ()+ J4 v3 r M5 O _* a) D
- (setq lay-idx old-idx)
4 S1 n$ V L6 s - (done_dialog 0)
3 _/ H) U i6 W- Z - )
2 u. r R* B$ \/ w, Q+ y - ;;/ t$ |, `6 B8 H- Z: b+ q9 [. }/ g Y
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
# {7 M# \' x3 L2 k - ;; string can't be converted to a real, this routine checks if the first % g2 ^8 [9 N+ n$ u f" a+ B
- ;; character is "0". It also checks to see if the value equals "Varies".
1 J {8 Z7 a: t' p - ;;; _+ R+ `7 \8 S
- (defun getthickness (value)
' c1 }7 a' g& U8 q! J2 | - (setq value (strcase value))5 l* M0 ?, u+ P5 p4 x7 i, ~# Y8 C
- (if (or (= value "VARIES")3 A( [# T* u. i$ l
- (distof value)
; G; f7 {9 f/ T, ?0 ~ - )
( G, V; h0 T9 L5 M' \; Y3 r - (progn
' c7 k7 w0 `, u0 E) g9 G2 U; D - (set_tile "error" "")( t2 }. P( F* k2 h. L6 T
- (if (= value "VARIES")
" I! U: F0 R0 ~- m' c" k - (progn
" S/ f' D# X6 A8 H - (set_tile "eb_thickness" "Varies")
: R# o; _/ F, f0 ^ - (setq ethickness nil)# s4 V/ M3 C- x3 C& ^. R5 o
- )
4 g% H( G* c& x) G7 Y - (progn
; A7 x, ^: v# I" `4 @( f8 V - (setq ethickness (distof value))* D5 P3 C4 [0 L8 _* o
- (set_tile "eb_thickness" (rtos ethickness))
) r& h! S# y" x& s y6 E6 T: M& B0 n% m/ [ - ethickness4 ~2 j3 Q) q' B# e
- )& r, F3 m/ O8 p- ~
- )
{ A6 @/ g: \% k/ J& ~ - ): g& v# M% @* L$ ]1 A
- (progn
$ I8 ?& {2 J1 g* r+ w# T) R H - (set_tile "error" "Invalid thickness.")
5 Z- R, J3 ^& u% ?- y& Y5 a - nil
2 L+ ^/ z. M0 H2 d) i - )
b+ ^4 P ~3 G. L, O- s0 q - )
3 c5 U8 L/ W+ J# P8 { - )! C- A8 b+ f5 |6 _
- ;;5 ]3 c# Y6 f# B$ U9 \ K
- ;; This function make a list called laynmlst which consists of all the layer 1 I, z1 s6 {. a0 n! V
- ;; names in the drawing. It also creates a list called longlist which 3 }6 b& H7 b1 S) R! K
- ;; consists of strings which contain the layer name, color, linetype, etc.
# y# d5 P6 t( g - ;; Longlist is later mapped into the layer listbox. Both are ordered the / T. S8 |, Z* @! `
- ;; same.% d1 u# ~# _' K% Q
- ;;
( o3 e0 s7 w+ }5 N5 | - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname ) p$ D/ T5 X- ?; t8 S% D) z+ L' k" S
- xdlist vpldata sortlist name templist bit-70% P3 W3 _) m5 k: V2 P( A( ]* }& b! `
- )
9 _* n: h1 W6 q4 \; \9 c - (if (= (setq tilemode (getvar "tilemode")) 0)
! _6 `8 w% m) X8 B - (progn
, B) g! l1 [7 _! Q8 e, I& M - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
. e* x* ?0 W9 z* A3 e - (cons 69 (getvar "CVPORT"))
, I8 F6 j) @& k' c4 r: z - )1 M. I5 w7 p. ^+ |+ i
- )
/ S( w% P. l: @- y) L9 l - )
, t7 j5 K7 k% S - (setq cvpname (ssname ss 0))# ?' q# s% @" o; a$ y8 K9 J) [
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))5 p/ i5 C+ J% W/ v' h( V0 y2 T. i
- (setq vpldata (cdadr xdlist))
& Z; Q* n( ^3 H' W - )9 `7 n, U& M& V- D* L# ?4 T
- )
, u4 I. E. q1 q% I( v% g1 a b8 h5 T - (setq sortlist nil)4 S9 X/ O- b& V. |% N
- (setq templist (tblnext "LAYER" T))
% [) L- s( j3 k+ J - (while templist
# Q, ]7 W: Z* p+ ?# X. ? - (setq name (cdr (assoc 2 templist)))3 J1 ?7 @! i8 M$ u' P, X7 o
- (setq sortlist (cons name sortlist))
' w3 c& I# Z& s1 ~6 e! t' r8 A - (setq templist (tblnext "LAYER"))8 z2 n" A4 O' S- w8 v+ E
- )
8 \# l; J- y+ Q# W' I9 T8 c - (if (>= (getvar "maxsort") (length sortlist))0 Q0 N& Q, I8 U9 S" T. F' M
- (setq sortlist (acad_strlsort sortlist))
8 @. t" G, n; k4 v( { - (setq sortlist (reverse sortlist))
[! u; q9 ]+ b3 v - )
0 ?1 @/ j8 Z3 G; ~' ^2 } - (setq laynmlst sortlist)
- i' P! j/ ?( D# y b7 o$ G - (setq longlist nil)( E& g8 n$ |& `. z$ P! U
- (setq layname (car sortlist))
% i! k% K8 M% k3 s6 d' n - (while layname
" a3 R) p3 f+ W8 [8 v. \5 E - (setq laylist (tblsearch "LAYER" layname))) O# A9 N8 D8 `) Q; Z9 x/ L
- (setq color (cdr (assoc 62 laylist)))1 [; B4 r" u4 @1 X8 Q
- (if (minusp color)% y0 h8 d. A6 n- B. R% @( ^
- (setq onoff ".")
) N& h! E' J' z3 w$ S - (setq onoff "On")0 O: L! @5 O" q. g7 G6 E1 `8 q
- )- q" X6 ^/ o& y* q9 a
- (setq color (abs color))3 ?; _9 T. r; D6 E" E
- (setq colname (colorname color))
3 K9 B! v4 N8 c' X4 P" j) c2 [ - (setq bit-70 (cdr (assoc 70 laylist)))3 x, E& O$ c# w+ W- @7 m
- (if (= (logand bit-70 1) 1)4 j- C2 ^8 ]) G- \9 y0 p: f
- (setq frozth "F" fchk laylist)$ K1 X; \* J1 f6 Q2 B) U& C
- (setq frozth ".")7 T s6 j, C7 \7 A9 v# A6 C
- )8 P) z: j% t* ]$ `; M1 E7 g
- (if (= (logand bit-70 2) 2)4 i" E) U* f+ ~2 K! N: I$ c
- (setq vpn "N")
+ M( z; Y0 w% {+ ?( j" j. x" [3 O. F - (setq vpn ".")
+ G0 o8 p5 i" H; a2 l* n - )
3 }3 P$ i7 P3 D" E' t( o6 z1 N - (if (= (logand bit-70 4) 4)9 |- T+ g+ E7 `$ e% }/ C$ }
- (setq lock "L")
3 _0 ?3 C+ H6 r - (setq lock ".")
* j; I, N7 Q' m2 F* M0 M. w - )" g6 Q, u# y$ ^1 ?8 B
- (setq linetype (cdr (assoc 6 laylist)))
3 |0 K) {% O m - (setq layname (substr layname 1 31))
' a2 p8 W$ j: ?9 M - (if (= tilemode 0)
$ a8 [; N3 @( b$ o7 i - (progn( ], Y; W2 [5 o" f2 c T: R
- (if (member (cons 1003 layname) vpldata)
6 y8 `9 J6 E" C) d2 p, v* n& M, Q - (setq vpf "C")
: f( j5 U4 ?; H! m: h% P) ^! }& N9 G+ ~ - (setq vpf ".")) S: n" x O( G) B' \8 M. P8 G
- )" d# a4 H+ o1 @1 g0 ?* w; I
- )4 q' e/ P$ y2 Y8 ~; D: T2 a
- (setq vpf ".")% ~7 b+ X ?; P8 R
- )
{) o! t7 a# F; f - (setq ltabstr (strcat layname "\t"8 K2 B/ r8 M5 w2 F% Y' c
- onoff "\t"5 |7 X6 X0 c+ U/ Y9 g
- frozth "\t"
8 S. J; b$ A+ ~ - lock "\t"
: Z0 A% a* V( x- g - vpf "\t"
; r% |" q' D3 k N' l3 q - vpn "\t"
1 S: z4 W0 Q) A- S9 b - colname "\t"
" E! A8 B, c% F% {% H1 O: M - linetype
$ t$ Z/ x8 P2 @# ]% S { - ): }" f1 f0 T& K8 s+ U
- )0 c' C6 l# H9 M9 G
- (setq longlist (append longlist (list ltabstr)))
) L. Z9 h- O0 H/ O1 L3 |, z - (setq sortlist (cdr sortlist)) @, Q% n' _( B9 G6 _( s# ]
- (setq layname (car sortlist))
' }5 w( Z4 @1 V9 T4 j# D% I - )
2 L5 `' D; V1 T- C - ): G8 l+ i$ o6 w# k y1 A( w, H# P
- ;;
$ A# C. v, O5 G( ~5 Z; o R - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
4 T( C8 p r! W/ W. E+ y& [0 l - ;; linetype names read from the symbol table. Mdashlist is list consisting
3 W C( w7 |) G- G - ;; of lists which define the linetype pattern - numbers that indicate dots,
: U6 v0 O$ r0 E( b% O7 ~- c: P - ;; dashes, and spaces taken from group code 49. The list corresponds to the
* w$ A8 ^. O" D; c$ B+ Z: ?3 o - ;; order of names in ltnmlst.
# c3 o3 m- I2 h - ;;
) c0 `/ ?, W9 H: _* P0 } - (defun makeltlists (/ ltlist ltname)
4 n) E: \) ^$ [5 E/ a - (setq mdashlist nil)* Q% U* a" h! V' ~- {
- (setq ltlist (tblnext "LTYPE" T))/ U: C& b7 Z6 h; v+ N+ T' [5 X. z
- (setq ltname (cdr (assoc 2 ltlist)))4 n7 f) [7 O, {, l
- (setq ltnmlst (list ltname))
5 u7 }4 m* J! ?& e4 X
; A& f0 r( ~( R1 ~$ I+ f5 V1 N- (if (= ltname "CONTINUOUS")
- Y& c, I; V/ v$ h2 L8 r3 R - (setq mdashlist (list "CONT"))
7 [6 X; [+ X/ k/ @1 A7 f8 U - (setq mdashlist
; L9 d9 _1 k! D$ A0 X/ X7 R* @* C - (append mdashlist (list (add-mdash ltlist)))
4 O3 Q, l4 e& H* ^# t - ). r4 Z) u8 h5 s( a! D2 Z1 l; u7 b. ?
- )
( S1 x( u3 \* w: ?0 m; z, R - (while (setq ltlist (tblnext "LTYPE"))
$ D* t" M% L) ] H - (setq ltname (cdr (assoc 2 ltlist))). m! j' ^4 G$ H( ?( F6 d0 S
- (setq ltnmlst (append ltnmlst (list ltname)))
1 Y# A+ s, M3 A: x( |! Q! u2 m - (setq mdashlist
8 K% i2 F5 i) ? - (append mdashlist (list (add-mdash ltlist)))8 U4 b3 V. \) A1 J5 ~3 W3 t; E; s
- )
* p/ U% M& q2 W O/ C- x# z, a4 Z3 A - )1 w- K) K5 f) g. u
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
# d7 G& w3 Z+ @8 }4 Z6 ?0 f+ y0 {) J - (setq mdashlist (cons nil mdashlist))
2 l1 D% @. S e$ `9 @ - (setq ltnmlst (cons "BYLAYER" ltnmlst))
5 M! @ V3 } G' B; [% w2 x7 r) | - (setq mdashlist (cons nil mdashlist))3 s3 s& l7 J3 |% R8 C( f) P& S
- )
2 i1 _$ j7 [! ] - ;;: M2 M& K+ w& o. N1 Y" x
- ;; Get all the group code 49 values for a linetype and put them in a list & w( ~6 m2 ^' ?( _! D W" `
- ;; (pen-up, pen-down info)
. M7 o* v1 A G% p4 i: D, @. a - ;;/ n% a- A# i/ G) I" [
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)$ ]. ]0 V+ h: n7 d
- (setq dashlist nil)7 |7 g3 _, j( R; x, p: ^# x0 }9 p
- (while (setq assoclist (car ltlist1))' Z3 w. B: h" c) w0 z
- (if (= (car assoclist) 49)# X" ~8 I& l* C% v3 e
- (progn* a; G$ F5 B( \: x
- (setq dashsize (cdr assoclist))) N1 N: S% K8 T. |& C2 N
- (setq dashlist (cons dashsize dashlist))
! q- p) H, z% w9 Q6 S# J) P - )9 P& ~/ G9 _7 N' z- Y. l3 }' J* A! W) l
- ) O e% Q) r6 |( Z0 _ @! A3 `0 V
- (setq ltlist1 (cdr ltlist1)); U9 m8 U( c( u6 N
- )
* L J* }7 q* u1 q% L) z& l: G - (setq dashlist (reverse dashlist))
3 J/ i! u& T/ K - )
: D/ d- E4 @# r/ g1 A - ;;
1 a y2 Z5 i& W3 B) Z5 F - ;; Color a tile, draw linetype, and draw a border around it D! ]8 D9 g$ O+ A
- ;;
' P7 B. Y, ^" ]$ z7 T. ? - (defun col_tile (tile color patlist / x y)
& p9 Z( ^7 j* ~0 \9 W$ v - (setq x (dimx_tile tile))
+ H- }6 A+ w1 E - (setq y (dimy_tile tile))
) V0 m1 ~+ y4 T8 d3 d - (start_image tile)
# N Q8 L& r7 N$ ~ - (fill_image 0 0 x y color)
& U) u7 @2 K5 r/ Q - (if (= color 7)8 s) `- c- A% ~6 ?) `+ j: s
- (progn
3 z2 e/ h% C7 _) J8 |* K - (if patlist (drawpattern x (/ y 2) patlist 0))5 ]% z* V) Y) `- z8 \
- (tile_rect 0 0 x y 0), \7 Z1 x0 P; q. \
- )
8 e; v2 R( ? c - (progn7 K0 y5 E, C; @5 \3 [( X5 u
- (if patlist (drawpattern x (/ y 2) patlist 7))
$ [ a) L7 C4 s8 c) y4 q - (tile_rect 0 0 x y 7). a* {: Z4 C1 b( c1 ~4 {1 m) d: s; A
- ): i8 ]" y( N5 H# \/ }. x
- ): e. g1 Y( R5 \
- (end_image)- v/ }' k& r) \' K
- )( s& `/ Q8 n e. U) B' y% Z* [
- ;;- B' ?/ ]9 \6 `* ]
- ;; Draw a border around a tile
0 c: D. e+ y9 }0 X# N7 n - ;;" L/ C8 ?9 H2 T; ^7 i+ Q0 e7 \
- (defun tile_rect (x1 y1 x2 y2 color)
6 S% s2 a* c7 v - (setq x2 (- x2 1))
- w+ }8 ?- j6 |1 q - (setq y2 (- y2 1))0 ?( j9 ]+ {9 B
- (vector_image x1 y1 x2 y1 color)
4 f9 m6 i- T( {8 U - (vector_image x2 y1 x2 y2 color)
% p! e* U9 f3 g) M/ i; x* Q) M - (vector_image x2 y2 x1 y2 color)
& Q5 U4 E1 m8 Q9 { - (vector_image x1 y2 x1 y1 color)
2 l3 E/ h) `6 E5 N5 _ - )9 v, ?5 s& |2 y! q
- ;;; f' `) c2 ^* M% S1 h# h
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image 5 S; P, F r+ _1 f
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a $ n6 O# [6 E! P5 {
- ;; list of numbers that define the linetype, and color is the color of the
# ?6 q: J# x0 d8 [. V/ l( f - ;; tile.4 F9 g% h& Y4 n5 k
- ;;$ |% q, q3 S+ G) C
- (defun drawpattern (boxlength y2 pattern color / x1 x2
% r u+ Y, K3 f7 s7 j7 ?' N - patlist dash)
. l$ C! T8 _8 U) Y* @. L; Q - (setq x1 0 x2 0)
0 |$ ~+ h5 ~2 Z' V, L - (setq patlist pattern)
1 ~* u. B4 V. X) r; A - (if (= patlist "CONT")1 S/ i6 y7 k) ?5 q; F# `
- (progn $ t/ G2 _+ Y g- r& |: i& V, ?! j
- (setq dash boxlength)( r$ Y- p2 A: i( u. J3 T& k6 m X
- (vi)
5 `6 ?% }+ n/ w, ^' ]9 D: E: D3 c6 S - (setq x1 boxlength)
: L0 l; S! Y* W) I& w5 M7 f" Z - )
* a, t% X. {' @1 x& I( L1 l - )
" V& H2 O5 L4 E, F/ t - (while (< x1 boxlength)
: P3 `# N- A# ?3 A4 y - (if (setq dash (car patlist)): W; |* p/ N1 P6 B5 X% M. L" r. M- [
- (progn
9 B+ z& Q9 g9 e! }7 i/ D - (setq dash (fix (* 30 dash)))
) h1 B2 P. S" y; Z - (cond
s# V% z4 f1 I$ ^: }( W ?# G - ((= dash 0)
( U! T" U: N5 }8 S# O, s - (setq dash 1) 3 J6 d) a8 n- ~. ]" K% H3 o7 N
- (vi)+ p2 t5 N7 t1 S) ^! }) I8 W6 k V
- )6 P+ B* E- E% N
- ((> dash 0) ' }2 O' i# U t; j& q5 E
- (vi)2 {1 n1 |. j/ O) j! I
- )
- d0 _) l. f: T" ^3 S I - (T
% s6 o7 b$ P/ R* ]1 e( ^, x& s- X* T% r - (if (< (abs dash) 2) (setq dash 2))+ v% ~, [; \4 n% [) g. C
- (setq x2 (+ x2 (abs dash)))/ a* z0 q1 A. V
- )
- A( j7 V8 L" I7 h - )
" q0 V/ G6 `( `$ h* M1 ^ - (setq patlist (cdr patlist))
4 P7 H9 H/ F1 _$ c - (setq x1 x2)
7 @% F5 C- M1 T: U: B/ f* S - ): b* N& f# s4 u1 _
- (setq patlist pattern)* {6 j6 l( s% j* n9 W2 }& W) a/ z
- )
1 n1 Y) W, c( j& |" g* ]6 ? - )
6 l' ~0 w4 i. {) m; v! H8 n2 s% F* Q- v - ). ~" K9 m4 F4 H3 f: ~. x) p- O
- ;;: c; h) k; s" {/ y( |! B6 {5 P
- ;; Draw a dash or dot in image tile( {2 O6 q' o: P3 U6 J
- ;;, Q9 L* D, T7 F `6 L
- (defun vi ()
- k. O; C) Y; e( R& `3 G - (setq x2 (+ x2 dash))
& }. m3 w1 z, [9 o H# Y - (vector_image x1 y2 x2 y2 color)
$ k% @* U/ r5 k6 U* i* Y - )
3 M( a6 i U) T V5 p* L$ N& V - ;;
2 J) s/ ` ~* V! v - ;; This function takes a selection and returns a list of the color, linetype,
2 ^; x4 M! ?1 A6 Q5 t. J3 V - ;; layer, and thickness properties that are common to every entities in the3 G$ o- K; v8 i; Z
- ;; selection set - (color linetype layer thickness). If all entities do not % H; Y( S2 b: y Y" _
- ;; share the same property value it returns "Varies" in place of the : \) H: T7 S$ G5 K. i) }, v: o9 U5 Y1 G
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
8 S. M% d4 M3 z+ M1 \8 n! S - ;;
5 G5 ^5 n5 W& w2 v9 ]1 S - (defun getprops (selset / sslen elist color ltype layer3 ^) Z* u1 ]) Y: _
- thickness go chk-col chk-lt chk-lay chk-th ctr)) [6 m3 w+ M* n# c X. a: T2 A
- (setq sslen (sslength selset))
3 L# ]$ T2 i) M" J5 M - (setq elist (entget (ssname selset 0)))$ J. [, n( W b- B f3 c- Z
- (setq color (cdr (assoc 62 elist)))
; l J6 N/ t/ C. o- @ - (if (not color) (setq color 256))" I" d* H/ L \
- (setq ltype (cdr (assoc 6 elist)))" \# s2 Z; X2 M$ N Z
- (if (not ltype) (setq ltype "BYLAYER"))
4 k2 s) T3 k/ ^, ^ - (setq layer (cdr (assoc 8 elist)))
6 ?" P, p6 I) |) q) |/ J3 W - (setq thickness (cdr (assoc 39 elist)))4 V) @$ K# u6 }/ r7 T( {
- (if (not thickness) (setq thickness 0))
: K5 r: t1 h/ v& x - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
# B1 q3 X# }8 E
0 H0 x) i/ E8 h$ C- ;; Page through the selection set. When a property
/ z) |6 T1 w) K. r# ]; d6 P - ;; does not match, stop checking for that property.- S. S4 Y$ d& \. L
- ;; If all properties vary, stop paging.- I( y M$ P! X0 @& _0 F* W. `
- , W( P# G/ y/ d2 A9 Y4 ^
- (while (and (> sslen ctr) go)
5 g F m" R) `7 c+ D' I - (setq elist (entget (setq en (ssname selset ctr))))
2 p* F* e5 d0 H8 e' ~3 |+ D" u) H' P - (if chk-col (match-col))4 h8 S) l0 c+ C7 E* p
- (if chk-lt (match-lt))
- G, y& T) M, R' U' f! ? a7 W$ c1 {9 ? - (if chk-lay (match-lay))" Z5 c& l' s3 V% y
- (if chk-th (match-th))' l \: @8 V# x7 i- C! Z/ M
- (setq ctr (1+ ctr))% p: z& ]' Z7 m0 A- @* ~) }1 v
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
8 @% m6 Q* C ~" f - (setq go nil)
+ \$ U; v/ }- ~( Z - )$ t& o7 g# W- z }
- ). N9 F" n' D K9 t5 C& n* I
- (list color ltype layer thickness)5 e4 @+ T: l0 _
- )
/ W- e/ a0 h' J. f7 s/ }6 D% \" P - 1 N8 n& ]' R- h* h# k d
- (defun match-col (/ ncolor)
5 N2 D: W- E: a - (setq ncolor (cdr (assoc 62 elist)))
9 g4 ~" ]6 y% S7 v6 P7 L - (if (not ncolor) (setq ncolor 256))6 g& o/ I* h" T/ q
- (if (/= color ncolor)7 u& C: l* Q$ k: J1 t
- (progn
$ |; `- E. ^2 y T: q/ V4 h. t3 } - (setq chk-col nil)
% E* m5 | |* l) m |7 A - (setq color nil)
: \' }0 r; Y) V& F# d* @" x# I) } - )
( F( F; i5 b& J; g( O0 G - )
) y9 Y0 s' k! d+ P - )9 z- X( E* O8 i9 ]; i# e; u
2 d3 h9 n9 U: \/ Q2 u/ B7 T; b; ]- (defun match-lt (/ nltype)
. y1 C5 _: p' x$ @8 \/ T, s( | - (setq nltype (cdr (assoc 6 elist)))
* Z+ Y M. J. H4 Z7 i. [/ ` - (if (not nltype) (setq nltype "BYLAYER"))
3 @2 L3 b, f! s5 e7 m - (if (/= ltype nltype)
- a, o; M# ?& Z# i& ? - (progn
$ g1 Z, Z# q+ J - (setq chk-lt nil)
4 k9 s0 `7 |- v H8 j9 o- g3 M - (setq ltype "Varies")
- p; k1 ^* U! I4 T - )
. _" n9 d" v6 y3 J8 m6 ]/ G7 P K( N - )
# K, r) y# o7 n - )* J, G: e3 @3 H2 c3 x+ R! I6 z
- 6 |$ N, W* T5 M! G+ F/ Q+ ^8 ~
- (defun match-lay (/ nlayer)
" I3 k; F4 r% o/ B4 o1 S$ L - (setq nlayer (cdr (assoc 8 elist)))- M2 O0 c% E+ s3 Y
- (if (/= layer nlayer)
) h; F% N ~0 B& A* |5 i! M - (progn
* V+ D( k9 |/ D( R - (setq chk-lay nil)
" @% A! x+ U; K6 Z - (setq layer "Varies")1 l9 K U5 B& Y# [6 g" i1 t
- )
( r6 P9 g6 h1 `0 _: p7 x - )8 Y, Z* y% r" U0 o6 O
- )) ?6 ?/ ~* V; `( a% p
- 2 j" j% w! a- }) N
- (defun match-th (/ nthickness)9 u6 z" m7 X4 B0 H
- (setq nthickness (cdr (assoc 39 elist)))
1 Q+ ^ X6 U# U3 j - (if (not nthickness) (setq nthickness 0))
) q# M8 {- G5 Z1 d$ c" t' S3 k1 r - (if (/= thickness nthickness)
% t* s6 ?1 x1 H! R: @6 u9 m - (progn; y v1 b* G4 m o9 N S. y: k c
- (setq chk-th nil)
+ w2 f1 K# Y9 N6 p. T0 I4 w - (setq thickness "Varies")3 x4 k, d8 R) p& v. c) ^7 M
- )
+ U. n4 }5 x" G, _" d5 C' n - )* `+ |4 G6 [& m. N2 m
- )
; T. k0 Q0 J- W0 e8 D u0 F - * }1 a: B7 U; G
- ;;' z) W* Z- G* G" ~! o5 @8 M
- ;; If an item is a member of the list, then return its index number, else
3 ]. U4 q" m- }% ]6 r; ]/ e* ^ - ;; return nil.0 @" F6 G+ H: |
- ;;! x, K& W4 K6 e8 j, W' T
- (defun getindex (item itemlist / m n)
. y6 b- d: W5 l - (setq n (length itemlist))
2 P q; W) O5 L3 r$ q# R7 o! g - (if (> (setq m (length (member item itemlist))) 0)1 a" f. t& `/ j6 _) s1 ?
- (- n m) s5 v6 a" T8 P4 ~ J& i5 R
- nil
9 n' V% k: ]6 c - )
3 `9 G2 S3 K& p; r - )
; A x" O/ Y1 k$ A - ;;
4 @$ `8 j$ x# W) m) C# o - ;; This function is called if the linetype is set "BYLAYER". It finds the 9 b8 D$ G$ R" p8 Y8 E! n
- ;; ltype of the layer so it can be displayed beside the linetype button.
1 C. h7 H; |6 y - ;;% |$ }( p; F2 n. H0 c( v
- (defun bylayer_lt (/ layname layinfo ltype)8 x0 E4 u( E7 f0 X5 b8 @
- (if lay-idx7 l0 N9 h. @2 b; s' u, ^5 a% o; D
- (progn2 T8 ^( w; N/ n" ^) q U) O
- (setq layname (nth lay-idx laynmlst))! r' `! x( r4 F2 ] `
- (setq layinfo (tblsearch "layer" layname))) Y3 G# j6 @+ U# z% F
- (setq ltype (cdr (assoc 6 layinfo)))
' M9 E( T3 ?' ^. R - (strcat "BYLAYER (" ltype ")")
+ h" F1 c e8 ]0 O- Y - )) n3 ]9 k+ }8 l- |! y" C, R) T% N
- "BYLAYER"8 P3 c$ ]* T9 _2 F; g( z
- )2 B& @' Q% l& T
- )) D5 h6 @$ _/ c$ ~
- ;;
3 ?0 Z( j9 O& ]" {5 V, J1 U+ Q& c - ;; This function is called if the color is set "BYLAYER". It finds the - G8 u# y$ E: S( M$ X
- ;; color of the layer so it can be displayed beside the color button.( l2 Z1 `' ]2 ~- i: ]
- ;;( Y O4 M- h3 u; x% X& D
- (defun bylayer_col (/ layname layinfo color)
& J5 g v4 o3 q+ [ - (if lay-idx
( z4 z- W. o6 T - (progn3 S$ ~: ?' j q+ g- {+ l- l7 W5 M
- (setq layname (nth lay-idx laynmlst))
4 G5 g7 s; T8 b5 M7 z. ? - (setq layinfo (tblsearch "layer" layname))
# ?" V/ \) l2 C$ n, s* k& C - (setq color (abs (cdr (assoc 62 layinfo))))) `) R5 R1 K, H( A |& A
- (setq cn color)2 o) o$ s4 o) x
- (strcat "BYLAYER (" (colorname color) ")"), _; ?6 S' ?3 F9 y; a
- )
/ I( C7 V- a `& g* i - (progn
9 Q# w# w( M v0 u2 ?5 n3 a- W - (setq cn 0)2 A' l6 \* H; C1 h
- "BYLAYER"
% ]+ L+ s- ~+ H) P - )
/ ~; f9 D4 |' U3 w2 ` - )
+ X) S, U4 j: ], X% I' T( i2 B - )
0 M4 H3 d4 b& V1 s# {9 |2 }- @* b - ;;7 g8 S2 e8 x9 f. R: i. L
- ;; If there is no error message, then close the dialogue' Z _* b/ _- @, H% k) F
- ;;" f9 c. w, K; P5 v' B$ i
- ;; If there is an error message, then set focus to the tile9 g, T; v9 c+ u/ a: h
- ;; that's associated with the error message./ g. }5 q! ~$ }3 ~: i
- ;;3 m# H3 l: a* y6 q+ P
- (defun test-ok ( / errtile)% A" b& ~1 S5 n7 ?
- (setq errtile (get_tile "error"))
( A% M: }" T5 ?0 X3 d3 ^) q" t) | - (cond
9 |. W. k0 S& N% V( D - ( (= errtile "")+ t2 m: B+ N; g
- (done_dialog 1))
3 o& B3 E- M* l$ b - ( (= errtile "Invalid thickness.")
7 h( d g. f% U1 l: Q2 s: j - (mode_tile "eb_thickness" 2))
; D h1 C F; S2 ?! P/ z - )* M! F: ~7 j! B+ x1 |: z' W" [
- )
e% h% }$ n: a/ d - ;;
. d- d: u# V: ^) Z6 Y4 ] - ;; A color function used by getlayer.+ X8 h3 a9 I) N) @ w& a, S6 d
- ;;
4 c( b& [. I' q8 v9 Q( {5 w5 c - (defun colorname (colnum)
( q5 ?, g2 ]* R% n( ] - (setq cn (abs colnum))
# }0 P; x% g! Q1 _ - (cond ((= cn 1) "red")% `/ w* n5 m- o0 `) |
- ((= cn 2) "yellow")' {1 {. P8 q S; d$ T' m# m
- ((= cn 3) "green")" m+ \% t5 Z! x7 z: R
- ((= cn 4) "cyan")6 e& j2 j6 c6 y9 {- z+ k2 v
- ((= cn 5) "blue"): e( |" e" K, J+ J
- ((= cn 6) "magenta")% q( q8 [% u6 }( u- k+ F
- ((= cn 7) "white"); u9 k" L$ b }
- (T (itoa cn))9 w% B$ O x; v
- )( L( N2 s8 a% [; y2 E* _
- )
% U k. M; M) L
' Q4 c# J/ Q+ E# } w# w- ;;; Construct layer and ltype lists and initialize all
3 q6 q+ C7 |. B% H& K" [" b - ;;; program variables:7 ? ~: L5 ` F
7 c5 m. I; i- T3 o' W s& y- (makelaylists) ; layer list - laynmlst8 l5 B: w' O2 u* e
- (makeltlists) ; linetype lists - ltnmlst, mdashlist1 W. R7 l$ R/ T3 v" Q
- ;; Find the property values of the selection set.
4 s; t4 c% G# I3 u M+ r: Z - ;; (getprops ss) returns a list of properties from
" @& o) B. |! E* J - ;; a selection set - (color ltype layer thickness).
) _2 O2 Y. z) k4 G - (setq proplist (getprops ss))
6 U. j9 ~) ~0 A" A - (setq ecolor (car proplist))' v9 {! a# n% A9 w4 G5 n
- (setq eltype (cadr proplist))
: h, \6 T2 U- |( t- X - (setq elayer (caddr proplist))
+ |; M4 ]& Z C* ?0 @ - (setq ethickness (cadddr proplist))
4 w: a; T2 p2 t) Z8 q - ;; Find index of linetype, and layer lists9 n, H" {% o& S1 k) e% T* C8 r5 D
- (cond' [/ `7 ]7 E9 @& s4 ]. I
- ((= eltype "Varies") (setq lt-idx nil))
3 b+ C4 s8 z" c) B - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
; a. U; D% Y' \ - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))* f3 k- S2 a8 m& S$ x' @1 g" T3 \
- (T (setq lt-idx (getindex eltype ltnmlst)))3 Y- s8 V3 y* X) i5 F. O
- )
' y- r$ {4 D3 z4 p: I - (if (= elayer "Varies")
! M0 V* J/ A C7 w3 m - (setq lay-idx nil)
5 o: s2 C- E7 F0 w+ x - (setq lay-idx (getindex elayer laynmlst))2 }* q4 Z- y; b: ~( w
- )
, h, R* ?9 U- P0 z - (if (= ethickness "Varies")
9 w* q1 u, V+ d' [+ |0 }# C6 @ - (setq ethickness nil)) V1 {# A) s- J3 ], q
- )
. R5 s6 w1 |2 b! t
3 M, Q( c* s& k) p% D8 T- ) ; end (ddchprop_init)$ R* W7 u- ^9 Z3 d3 ~& [6 e: Z% y
& L* ?6 I: i3 Z3 G% D- ;;; (ddchprop_select)
9 H( G X# a; `& \: G - ;;; x5 A! ^9 n9 R$ l
- ;;; Aquires selection set for DDCHPROP, in one of three ways:, F7 a2 T/ S. e* L7 \5 |3 A
- ;;;( P! [9 o# h. M& o/ y u
- ;;; 1 - Autoselected.
3 b; N8 P2 C& c3 d# L - ;;; 2 - Prompted for.. |+ h7 o$ l5 \4 j
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )' {5 G. D$ P2 f7 [( e
- ;;;( a4 m/ ], T5 b9 H7 |/ C! W# o- M
- ;;; The (ddchprop_select) function also sets the value of the
0 d! X% V$ j( p4 q) l" `* v - ;;; global symbol AI_SELTYPE to one of the above three values to
% l* g* {/ x" x) \! u2 M - ;;; indicate the method thru which the entity was aquired.) E, A6 @+ Z* i" ]- _, L# J1 U9 g
- : }4 y% u+ H8 @# B
, a c/ u$ }8 q# r" p* n- (defun ddchprop_select ()' g5 u2 B5 \8 w- O3 _
- (cond
% v0 T/ q- Q8 x0 V; C5 y - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
7 I: V" X+ M4 w0 n9 z3 H - (cond ; (ddchprop) as argument
8 c) a% E$ V8 {/ ?1 e; _ - ( (not (zerop (sslength ss))) ; If not empty, then$ C# q# e# K& Y0 o7 W& T& B
- (setq ai_seltype 3) ; then return pickset.$ X: {+ g u4 K e% ]1 W6 E
- (ai_return ss))))
; q! w4 @2 ^7 k6 V1 T
1 ^" r7 s4 u/ y$ H5 s. K2 s R- ( (ai_aselect)) ; Use current selection
* }6 K% v4 m/ Q2 n2 t" ?3 _+ n - ; set or prompt for objects2 v; H+ Z- F1 s) x/ a
- ; ?- i) M ?7 m8 K* F% }: b
- (t (princ "\nNothing selected.")
2 _: m( n/ ~) S b3 O - (ai_return nil))5 ^- i) O% \9 |, ?
- )
) S- m6 Q* T3 d! \ - )( I7 b3 F* Y# H0 s" b) b) s- e$ W
- - x' T2 f; ~6 I% \
- ;;; Define command function.
0 t' P8 a' a* Q - + ?4 R: u( h6 e/ T0 q' m$ T
- (defun C:CH ()
4 x( P+ R0 f0 f h6 D; g) Y9 k - (ddchprop nil)2 i! U5 S" x' u0 R8 o& q
- (princ)
, a) q% {* i& g' y8 P0 Z* @ - )0 h8 n# e5 B& }. ]/ S: q
6 A+ ]1 G! o$ w9 y: P- p6 _- 1 V# [; W' } E8 `3 ]" f
- ;;; Main program function - callable as a subroutine.
3 }+ u0 E5 M+ u# Y2 q% L7 j - ;;;
: s4 y8 e1 ^5 h( L: J, V5 Y - ;;; (ddchprop <pickset> )
% ]: q4 w, _( y3 `+ q& n - ;;;# z& G7 B( K* V! Y' L
- ;;; <pickset> is the selection set of objects to be changed.
; {7 e* g2 N. ]0 `: u" s7 ]3 ~" N - ;;;, R [- k# s; x+ d) j5 P( `
- ;;; If <pickset> is nil, then the current selection set is- W, H( ~; e/ @$ I$ F: ~
- ;;; aquired, if one exists. Otherwise, the user is prompted6 `# [. @, q- {9 c q/ |
- ;;; to select the objects to be changed.5 R; @6 V. T5 ~: ~( T
- ;;;: B. C0 w) T( P6 ~! l, o# |* n& f
- ;;; Before (ddchprop) can be called as a subroutine, it must4 M. }" b# ?- p5 L; ^
- ;;; be loaded first. It is up to the calling application to* x$ L Z& u# z* F% _- o) v+ b9 _
- ;;; first determine this, and load it if necessary.$ E5 X% k" l f1 x
- ) d, P1 {0 S1 V) {) I- }0 g" A' x9 c7 s
- (defun ddchprop (ss /
! ]: z5 o1 M5 [% w/ U, ^ - , e) o/ b" N& R7 O+ K9 N7 ^
- add-mdash ecolor ltedit_act s
* K8 Z: K0 y; H+ I. @$ e - assoclist elayer ltidx selset
$ K9 \/ N0 U6 `2 d& c- w. T/ a# Q - bit-70 elist ltlist set_col_tile
0 u' N m' P) n9 f2 ? - boxlength eltype ltlist14 j _/ M. r4 C5 o( a
- bylayer-lt en ltlist_act sortlist1 }. ~+ e6 u8 P9 c
- bylayer_col ethickness ltname
! X3 w& m' ]* K - bylayer_lt fchk ltnmlst sslen
( j6 G2 c5 P- S" B' b0 e - call_chp frozth ltvalue templist
5 k; \; r x8 [( n4 _* ?. _0 L - chk-col getcolor ltype temp_color
' \2 ]' [+ h K$ u% r - chk-lay getindex m test-ok ?) H) e3 B0 f6 C
- chk-lt getlayer makelaylists testidx
7 M; {; q0 m: X- l - chk-th getltype makeltlists testlay4 `+ D3 l4 ]0 R/ h
- cmd getprops match-col th-value' j; P1 Z0 i/ @/ j: b
- cmdecho getthickness match-in thickness7 a% t# i# Q, V7 O
- cn globals match-lay tile: k' D) p, N$ t" e* W
- cnum go match-lt tilemode
$ R4 W4 m9 p( _! Y, Q: Y8 B( j# t( F. { - col-idx index match-th tile_rect# h% g" B; C6 \
- colname item match_col vi; E% j) c, z% }9 s7 _# [
- colnum item1 mdashlist vpf' P9 \) m5 `- Z4 g5 X
- color item2 n vpldata
$ ?4 z# |9 Z' R - colorname itemlist name vpn
4 K5 _0 f' @2 t$ W" U" f" ?* L - col_def lay-idx ncolor x
' s' x8 {4 I$ U% d7 G - col_tile layedit_act nlayer x1& j& r$ I8 `& j9 I
- ctr layer nltype x2
. R$ x [) E: i( s$ f2 z - cvpname layinfo nthickness xdlist
+ l& ~6 [1 u. k- V$ }1 ^+ h& `# M - dash laylist off y
* v5 L; _3 n7 } - dashdata laylist_act old-idx y1) }5 b# V6 m5 H: j: J* _+ o) [
- dashlist layname olderr y2
7 [( s) M7 Q% a6 s) i! F& u - dashsize laynmlst on undo_init% ~& [' u5 G' G
- dcl_id layvalue onoff. m' S. r9 h# f# N7 g
- linetype patlist" g1 J; N" E" ?
- ddchprop-err list1 pattern
, m$ r$ E. @0 _% S! K$ O5 [5 P0 |$ ^ - longlist proplist
8 e) [, p% n% W: \) E$ s - lt-idx reset-lay) y# H5 E5 o. \8 ?
- drawpattern ltabstr reset-lt
9 F& n) d! S M" O& q7 i: {! a - )
6 P. z- n3 g8 Q: N5 T6 J7 v& n - 0 n+ I7 w' w9 N, Q" U
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho+ I& X3 O U8 ~+ C) L( J" [. _
- old_error *error* ; save current error function
" ^6 J! G& O9 ?! Y, r7 W* K+ \ - *error* ai_error ; new error function3 d% ~: v' L) C) B* ], f
- )( s/ S# ^! H V( p* f
" l; q3 a& K" _& D- (setvar "cmdecho" 0)
2 H5 B% j+ ?+ e+ h6 L$ t - & q8 ` h8 y, T& k
- (cond
) G4 J u" ]8 }5 C - ( (not (ai_notrans))) ; Not transparent?
2 B' Q4 \2 n! _2 y - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
# K$ F! V, K7 W9 Q9 ^+ }5 W - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
' w1 c M5 S1 [2 _" g. z/ r - ( (not (setq ss (ddchprop_select)))) ; objects to modify?: r+ N! R0 x8 Q% v- t* R- C6 h
: J$ ~% I7 A3 s9 C. Q* Y4 F2 `- (t (ai_undo_push)8 ?( V: L+ d8 u- R0 z7 i
- (ddchprop_init) ; Everything's cool,2 ~1 [7 g& i v9 H( A
- (call_chp) ; so proceed!8 V* n7 X9 H. m
- (ai_undo_pop): h2 [6 K; y, x+ K
- )" ]" A' b5 P- L4 B3 s/ n0 f
- )5 c) U& Z$ M+ k2 A$ i4 Y7 d6 `
- 8 q7 `6 S, n/ m# J2 @! ~
- (setq *error* old_error)
# G3 E2 F& M. b! y* ^ - (setvar "cmdecho" old_cmd)
" O) r w/ W3 Z. q$ _! @. l7 d% M - (princ)- E" ^* N1 j1 d, F: Z- Y* k& p" t
- )
. g* o. a0 w! \0 v6 y: q) C - 3 I, ]9 S: D: v3 H% r# J
- ;;;----------------------------------------------------------------------------# f5 ]' u6 y7 \5 y& U: V
) H$ _! R* |7 }- (princ " DDCHPROP loaded.") u. p2 P$ c8 }. D% @
- (princ)
% x; F* K% F# q+ A5 }7 A# s' l
' J9 _: h# X8 P" N# t- ;;;---------------------------------------------------------------------------- T4 _9 ~, [" o( X5 i: P0 }
- # [! y& U1 s( k0 I
- ;--------------------------------ddmodify.lsp----------------------------------* m/ R' |; z1 N a+ e( C. p" e
- ; Next available MSG number is 1111 i4 b& s. t( ~8 d' ]
- ; MODULE_ID DDMODIFY_LSP_
% h4 h- K' Z* @! m - ;;;----------------------------------------------------------------------------! ~7 z$ f6 B. u. ^
- ;;; DDMODIFY.LSP3 j! d; {% m: Z: n7 A
- ;;;/ e" W+ G. m# U w2 C( \
- ;;; Copyright 1997 by Autodesk, Inc.2 c$ q, W" s9 `
- ;;;0 _2 a7 D; \* L: ~
- ;;; Permission to use, copy, modify, and distribute this software
0 r' _) c8 w1 m! m( d( ]% D2 n - ;;; for any purpose and without fee is hereby granted, provided
- q% ~- ?5 g% r5 |( G5 R - ;;; that the above copyright notice appears in all copies and
/ b0 R5 C5 S1 \# G5 H# l - ;;; that both that copyright notice and the limited warranty and
/ \2 G% E, S9 U$ f* D h( j" \ - ;;; restricted rights notice below appear in all supporting& z6 j' U6 o3 |/ @- |
- ;;; documentation.! ~, F8 L) t2 N" f {3 v7 c
- ;;;& _4 m3 F& B v( e1 ~, Z- x
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." a0 i. _5 T; F4 {
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF- v0 }0 j: T) ~/ r/ g- N m
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.+ G2 r) |! t4 B2 o6 s: P0 y8 r
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE: c% }" e* A6 U2 [0 R; k8 K
- ;;; UNINTERRUPTED OR ERROR FREE.2 B0 k, Z% r! s& z& g0 `
- ;;;
3 k! m+ M: Y2 ^$ Y' O0 ` - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
- F: v: G/ s7 O - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
% p- \/ v& s3 b4 @) i; i - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii): S. r* q' e" v6 j; K
- ;;; (Rights in Technical Data and Computer Software), as applicable.' }% j; Z0 X) @9 P
- ;;;0 _6 c% r% B" o4 L1 f5 ?8 w0 V7 X
- ;;;.
$ Q* t- e2 r; ?. U - ;;;
+ I/ T* b: g0 Z* @! G4 N - ;;;----------------------------------------------------------------------------# n# c1 u+ a e: g+ O b
- ;;; DESCRIPTION1 _6 u; k2 s Z a4 }
- ;;;9 P p* b6 ^1 h2 Z9 ?% u$ {8 R3 j
- ;;; This function allows the user to get a listing comparable to the LIST8 [/ j4 j8 z( Y0 C* q8 O9 v, |
- ;;; command for most objects. In addition, most object fields in the2 s: s# F+ J3 x" b
- ;;; dialogue box are editable. Points can be specified dynamically by9 x' f0 }+ J d+ b0 o1 i
- ;;; temporarily dismissing the dialogue box. Each object has a unique
: T# W# u' k) N7 J4 j - ;;; dialogue. E5 H& m' M( Q: i; U0 K
- ;;;4 l, }' S0 n8 @4 U
- ;;; Naming conventions9 p) b3 G: i) K$ s
- ;;; Long function and widget names may use an underscore "_"
( R7 v+ s: I- M/ |8 r- g$ _" a - ;;; in their names to make them easier to read, long variable
0 ]0 n% @! ?8 M+ ?/ R. ?, ]& h/ V - ;;; names use a dash "-".
# K) |3 e, j3 t7 L# ]6 P+ G2 c - ;;;----------------------------------------------------------------------------
6 ?% O4 }3 F/ P* Y5 N' t - ;;;----------------------------------------------------------------------------
- ~* {- @' a" Q4 A' W D - ;;; Prefixes in command and keyword strings:
- d, M4 b6 u9 s! e - ;;; "." specifies the built-in AutoCAD command in case it has been
$ _7 c% h0 ~' F - ;;; redefined.
. z% V F3 e" J- ?- n2 v - ;;; "_" denotes an AutoCAD command or keyword in the native language
* S1 J# l# P2 ^; u) S8 W) y - ;;; version, English.
" v+ \6 S3 f" _ q* ?9 A - ;;;----------------------------------------------------------------------------0 l5 g# B) K( j" Z
- ;;;9 w$ A7 e) N8 H. A o4 z
- ;;; Avoid (gc)s on load to improve load time.5 o! [$ Y! c3 |) @9 v$ T
- ;;;
# X6 E' f: m5 e3 p - (defun do_alloc (/ old_allod new_alloc)
* _) `: s. I; C+ x! Z - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
D, z& c+ C& X* u, g - (expand (1+ (/ 17000 new_alloc)))
/ A( H, f1 E4 D: B - (alloc old_alloc)
7 A, h" a8 X& W) K - )
0 q4 O2 M0 N2 M& I3 I1 ]6 o5 W2 c - (do_alloc)0 q. C" z# X; F4 a+ K
- (setq do_alloc nil)8 V! s: R: Y9 u9 o, t
- $ K" @' Y$ ?2 R5 C, h2 l! W& D- ~
- ;;;
: U2 }7 y3 s4 F; [3 b+ O# o S3 n2 z - ;;;# t& s* ]! X+ S3 `
- ;;; ===========================================================================) P3 w( w2 x. |, y' I
- ;;; ===================== load-time error checking ============================* v% K# M. {, L0 B) g7 [
- * p7 S+ ?( ^+ {$ \
- (defun ai_abort (app msg)) h' I# P. F; [. r
- (defun *error* (s)* Z' O) u' x2 @& N l# u: a
- (if old_error (setq *error* old_error))$ V9 W" w" i. b' j/ Y8 f- ]) E% e z
- (princ)
% k5 m$ O; W. g1 ^, q - )
" q( A! T1 u* D( ]2 t - (if msg3 D. d, N3 \( ^3 H7 B
- (alert (strcat " Application error: "
) u9 N- S3 A" [. @" \0 A - app) y9 G" o0 t: M" i$ |# L) n% ]
- " \n\n "- S5 y7 g2 ]1 Z+ @9 F* j/ `
- msg
3 U6 j d+ |7 u9 t8 n# |. q% [$ H3 D - " \n"
+ Z2 d* P& f4 M1 R6 l7 K' t3 ~% S - )
+ D5 ~6 w0 [( N8 K% K$ K0 j - )
$ u! D3 K5 {& Q# X. G; A0 _( m) m - )
& d2 g$ l4 Q o: O: K* l6 ` - (exit)
7 W8 {2 j6 }5 x& E/ b9 L - )" ?5 R* {- r9 m1 I9 I: [7 r
% G c1 l8 f$ @- V# d- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,# a4 F* A" ~" C8 {# W$ j
- ;;; and then try to load it. If it can't be found or can't be; X: d6 i6 M! C" Q; w! |1 I" C
- ;;; loaded, then abort the loading of this file immediately.4 y `8 n! q6 P: L
- & y: Z4 X+ ^( l) e% }% g8 r" L# X
- (cond
; c- @+ Y6 i1 I4 _9 q" n - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
" X# F1 R0 h* l. I& z9 e, N! H - 0 U* ^6 J, T- d- T% w! F
- ( (not (findfile "ai_utils.lsp")) ; find it3 C, ~) \9 l6 K G; O }" Z! w
- (ai_abort "DDMODIFY"
9 E2 U; i) |% f6 w - (strcat "Can't locate file AI_UTILS.LSP."& O5 V" {1 P. @; T4 F
- "\n Check support directory.")))& T2 c3 I! p, Q" K" L9 J _
- ; b4 `' I- P: j7 f& T
- ( (eq "failed" (load "ai_utils" "failed")) ; load it( E0 J5 ~: g- i/ ^) U
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP")). E( G. n Y" e8 [: Q5 [
- )" _2 C: `, \1 o c% C
# X7 W" z' b! D: A) t- ?- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
" V6 d/ G) {( N; E) N- _ - ;;; be assumed that all functions defined therein are available.
* {) u7 V/ o/ A+ r# V& i
) }6 c5 L/ E) [6 g) ?5 w' k6 G3 S- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
1 d; ?7 V+ ?, k" v/ v - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
4 o1 n/ z8 F O - ;;; does not abort the running application itself (so that it can
; f2 @! L. m" M ~' S: ~. M) \) E5 h - ;;; also be called from within the command without also stopping9 I9 G0 x8 M: g4 E
- ;;; an AutoCAD command currently in progress).1 z- k3 W. x& B; N# \# z K
- ! I6 _0 G3 E u; b0 ^: N
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
, L* @# h3 ^2 s; @ - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses5 F% g; a/ A6 i2 Z! { b8 S6 H
- ) ; ai_abort's alert box dialog.
/ Z! B6 ]6 I' P7 u/ u4 T
; Y9 F2 c; d; [- ;;; ==================== end load-time operations ===========================" r, e9 b7 }7 @6 p) J
5 r( S t2 k8 p8 ?" p1 `: v- ;;; global variables
: ]# u+ z' J+ x! h7 ?' @8 k - . w. B7 A2 p1 b, s
- (setq hatch-elist nil)5 N* C! U- {3 T0 k8 K4 G
6 O$ ^ h) Z+ R: H) `- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
( [6 U5 x! H$ n7 _ - ;;; assumed to be available.
! S# |2 X A7 W4 ?( P0 F
$ ~/ X) U0 L4 Z% ]# Z0 W- ;;; Define and encapsulate all subroutines that are declared) `& n- |( O- t4 `: C
- ;;; locals of the (ddmodify) function.
. e9 n* |: I9 h - 4 \" |6 o: D# A, V( }! I. _
- (defun ddmodify_init ()
: Y. t- X: M. x7 n: Z, `" I - ;;
! A! _) s7 k: x- f1 B - ;; These three functions modify the enitity list for common properties. Since+ {. H7 b* [ H5 p' `# S! _4 K
- ;; color, ltype, and thickness are absent from the object list when they are
; A0 ^7 z; R) W: I+ J - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
" y0 `! _6 |: b5 M7 x! v; w8 m - ;; SUBST is not possible.
+ m2 E$ p+ T3 d" k- Q0 M - ;;4 F+ f+ v; W4 Y( @$ ~
- (defun modify_properties ()
- G" C1 S8 U: E+ X$ h - (emod ecolor 62)
4 X2 k( G+ ^6 r8 ]1 f - (emod eltype 6)9 I# w# G- X2 b% h% l& v, d: g& R
- (emod ethickness 39)
5 ~+ W; @. o7 v - (emod eltscale 48)' {5 ^9 O5 A; B# T
- (tempmod elayer 8 nil)
* n$ N+ T3 r, f - )+ p7 g6 d* q' Z) F2 ]
- ;;! U* `9 v5 M: i; K9 C
- ;; This function is used for modifying common properties of the ACIS
" ]# T! n" D- L! s, v: l5 q+ ] - ;; based geometry objects. Thickness is not valid for these objects9 u/ Y, U# m6 }
- ;; so it is left out.
v3 p. Q9 M; ~* r! o+ ^6 Y. M - ;;, [0 s; ]$ Z) w0 W
- (defun modify_prop_geom ()3 t+ k2 ?+ Z/ W# ?% i" T2 j
- (emod ecolor 62)* h$ p4 A! K8 O4 v9 s ?
- (emod eltype 6)9 j- C* y9 E+ d
- (emod eltscale 48)5 F; B$ t3 @/ G4 [1 ] N
- (tempmod elayer 8 nil)
; I+ P a5 a# C: B0 T) p - )
% X5 z" V/ K% W4 Q% k! P4 `
& A4 x6 e( J t y1 m9 u p- (defun emod (value bit)1 m8 P4 f$ s' i! J1 q, B1 ~: B
- (if (= bit 62)
/ }; J$ ?1 o; R3 F; d/ L) n - (progn& X/ X' Y+ |9 p; Z3 ~
- (if (or (= value "BYLAYER")
8 G, H9 {8 c, v" s0 V4 m3 l3 i - (= value "BYLAYER")) (setq value 256))& I# z: R. a2 F) S6 K
- (if (or (= value "BYBLOCK"): K4 z5 T/ T, H. E; E# ]5 _' o
- (= value "BYBLOCK")) (setq value 0))
+ f. H/ x: ~7 ~! F, I; p# q+ ^ - )
' i# h: G* K* H2 N" U1 _ - )
3 K) Q1 d& F* K) l7 R3 P0 |9 x+ R - (if (setq oldlist (cdr (assoc bit elist)))
8 b, _ E' k& e" l+ q: T. ^/ y% j - (tempmod value bit nil)
- |; @/ t' ^! K& Q" U7 x8 q+ T9 O- B - (setq elist (append elist (list (cons bit value))))
. N( J* v! o# K& }! }% ] v! v# w - )
8 m; C/ }6 Z0 J P% |$ J- D; B - )2 M1 I8 E* U3 X7 ]1 T, f( w: @2 J
- ;;
$ K6 Z: d# k+ _# s9 Y - ;; Resets object list to original values. Called when the dialogue or- w8 N5 N$ e x$ i5 A3 T) {8 Y( T% C
- ;; function is cancelled.
2 D+ p; \ D( u9 {3 w. g, F - ;;# j! i3 F" z, s. J4 }6 A' L
- (defun reset ()$ X, P6 R3 Q% h
- (setq elist old-elist
4 `6 }) o9 y0 G5 e - ecolor (cdr (assoc 62 old-elist))
5 ~4 ^) \. E! ^( s: b - ethickness (cdr (assoc 39 old-elist))
; q% c; z. D( g6 k+ {% Z - eltype (cdr (assoc 6 old-elist))
+ l3 R9 c4 i" s: O3 s( N( [ - elayer (cdr (assoc 8 old-elist))
& i; v. w H/ X - eltscale (cdr (assoc 48 old-elist))
5 F; }7 F9 U# E4 t! s$ Q - )2 ~! K! j8 U% U' l
- (if (not ecolor) (setq ecolor "BYLAYER"))
4 H8 V% u% B' a) z9 l# ^ - (if (not eltype) (setq eltype "BYLAYER"))4 V R0 p3 d' Q5 s; M
- (if (not ethickness) (setq ethickness 0))
, R! M# @; j, `4 P/ I - (if (not eltscale) (setq eltscale 1))! F2 O+ |* b( M! p3 x
- (modify_properties)5 ^, n3 {, U5 S4 r4 e
- (setq reset_flag t)
( N( Y5 o8 ^" F7 y7 ~* a/ G - (entmod elist)
. e7 f: g5 u) w - )% ?' |" N9 X) e
- ;;
; v% B+ |4 V" r! m: v* \0 K - ;; Modify object when dialogue is temporarily dismissed to reflect latest9 N- p6 ^. ?. |6 R3 B, g- ^& v
- ;; settings of dialogue. It converts the point from current UCS coordinates to$ s! j: J3 d6 |7 A( J- V. q
- ;; the proper object coordinates (world or object).
# N7 @; C8 Q6 ` - ;;5 d. `$ s$ O5 V0 X1 A1 U
- ;; Arguments: value - in current UCS coordinates0 u. v/ I1 S% k& E9 A5 K8 k
- ;; bit - object code (i.e. 10 for start point)
# P7 ^% i9 ^# }% T: |2 G - ;; ptype - point type 0=world 1=planar
) X* J- |; ]! u) R. S - ;;
( T; p/ {3 M! W9 N( R7 p" T - (defun tempmod (value bit ptype / newpoint)6 C5 b0 v: t# J2 b0 M
- (cond6 z1 B3 s, y4 Y
- ((= ptype 1) (setq value (trans value 1 ename)))6 r1 c H0 p) S( }& x
- ((= ptype 0) (setq value (trans value 1 0)))
. s3 X3 ^$ `7 d! D5 n2 E; G - )
, \1 _. y) g1 c. a$ W( G0 [# } - (setq elist (subst (cons bit value)
2 A) C7 h2 K3 W# v0 }( z - (assoc bit elist): {6 N1 }& s f& f! r9 ~
- elist
0 c) t# ~) _5 ]3 O3 c+ W' z! m( Q7 Z - )' i7 z+ g6 Q0 o# x! \' N5 \
- ). ^4 @& @: T+ @
- )- e1 m% p$ T- Y; a/ Q
- ;;0 G3 q9 S! K0 a3 x0 H
- ;; The following functions are called after a dialogue has been temporarily
9 A+ P* i9 G" e* v- R! D - ;; dismissed and the user is selecting a point. If a point is selected the
: |0 i6 F7 @7 K, s" k2 D. A - ;; object list is modified and new X,Y,Z values set. If no point is selected& u7 ]; M2 d5 P# J* D i& p
- ;; (null response), then the point is reset back to its previous values.
9 M5 P( n) h' C. V' s4 F% _ - ;;
5 I1 b9 { ^9 K! l$ B i5 l6 s - (defun ver_pt1 (ptype); \6 d2 o9 |( S' l
- (if pt1
. T, m6 d! |; u - (progn, k" z% g: i3 A r
- (tempmod pt1 10 ptype)
; J( c0 [" G. K* K( c" @7 [9 W - (entmod elist)
" @% f V5 l) Z$ p6 X) B4 \ - )
; V$ l8 y6 [8 i3 `# O- O. O - (setq pt1 (list x1 y1 z1))
* H, U6 B; I S, g' o6 m - )( Q4 [% E d0 t* R
- )
( W7 ~6 \" D# {" o0 ]: E' q0 c - 1 i$ v: f! C! V
- ; (move_pt1 <ptype> )- _6 l8 N* t4 E4 I" \
- ;
' r; m% \4 O) H! ]9 K - ; Called in liew of (ver_pt1) to translate block insertions which
6 F/ J# E ] K9 a( k - ; might have variable attributes attached to them. If the distance
: ^) e# H0 N/ l) R5 [% E; [7 T - ; the block is to be moved is < 1e-6, the move is deferred.' w! Z1 Y3 R1 a1 s, j
u2 }) t% s4 y9 z( M; q/ Y- (defun move_pt1 (ptype / basept hi)
8 Y7 }" O" }5 G0 d+ a" [4 f3 i - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
$ [6 [& g0 N {% ^* c% B4 o - (cond
: ~ ~" k0 C# R- d - ( (not pt1)
' x' c) M* v& ~5 m - (setq pt1 (list x1 y1 z1)))
% Y8 L/ R. _8 D - ' ?9 f; M7 q4 }6 x' T4 [
- ( (> 1e-6 (distance pt1 basept))); b; ?$ d! e* S. M9 x
- ; z: Y9 b7 s$ T; }' p" a! _( `& \; ?
- (t (tempmod pt1 10 ptype)+ @7 |0 w3 z6 P3 m
- (setq hi (getvar "highlight"))5 s8 N4 G4 H+ T9 L
- (setvar "highlight" 0). e* W9 C6 X5 z7 M
- (command "._move" ename "" basept pt1)
6 X g a; f7 q$ k2 ^ - (setvar "highlight" hi))( O# K, o! D) V1 z+ I1 v
- )
8 O' j% s1 P+ s - )2 |4 L5 H0 R: C7 N
2 V% [4 i9 @9 f' g6 J3 H- (defun ver_pt2 (ptype)8 o9 T' k* X2 X9 k) ^
- (if pt2
& f2 a1 v/ C0 p% {5 Q. Z% D/ d5 m2 Z - (progn* {2 Z9 @: |- H8 x4 S
- (tempmod pt2 11 ptype)! d8 S. D9 E5 v: f8 K. X; z, }
- (entmod elist)
( X$ T; `4 j+ Z1 s1 C* K/ \ - )1 g0 I3 t) L0 g. Z
- (setq pt2 (list x2 y2 z2))
s+ e5 ^: [7 G6 I3 R - )
: U) Z6 u; y I c - )
0 i9 o' ~& U9 t4 w
3 c! c" P8 g( R) ?& W- (defun ver_pt3 (ptype)* N; d/ D$ V+ y& n0 y1 F
- (if pt3
6 [1 _/ _, A# L - (progn
. H8 }' F/ ^) v1 L; e9 P2 s - (tempmod pt3 12 ptype)
/ F0 L& L! _! N- j0 V# C5 V - (entmod elist)
8 q/ [, L- G' |! ?9 | x* e - )4 I# H3 v! V% P( f
- (setq pt3 (list x3 y3 z3))
. S+ h; ?3 _5 K, I) |1 Y4 E0 O# b - )9 [2 ]5 C: w) o2 [( J- E2 Z& ?
- )
`& E. G: K- c - ) S4 |! n6 R; t& }+ G
- (defun ver_pt4 (ptype)
2 D& t7 Y" R" U: d( T* Y; n: u - (if pt4
/ i: `) [4 ^0 ~6 c+ @2 Y3 B; B - (progn
: ~7 D/ I3 @3 F6 A$ ^. v - (tempmod pt4 13 ptype)
4 [3 ?, a5 M0 E2 v" y - (entmod elist)9 M' @) _: z0 O5 n0 P
- )5 h4 g% ?3 [' `9 m. d
- (setq pt4 (list x4 y4 z4))
2 n/ D. i; Y$ g - )
( L7 n! }' h9 i% i& @( `( b+ ?" G - ). L1 [6 Y3 x9 l0 ]: |* f
- ;; Xline/Ray
, l' A* a7 T2 k - (defun ver_xline_pt1(). q% N. z) y9 E7 ?. \
- (if xline_pt1
8 s: N$ u0 ?: i! V3 [ - (progn( s( M5 ]$ m: L9 c0 {; F
- ;; convert to WCS.2 b$ I0 C7 e. m% R6 u
- (setq value (trans xline_pt1 1 0))
! S- s- u Z% `2 r7 d b$ S - (setq elist (subst (cons 10 value)
4 J( {; t1 U* e7 D. r7 k5 C( ? - (assoc 10 elist)/ T, E! J1 w( l' Z& n4 o( A
- elist
1 z, H/ ^6 K' o( c - )* m: t3 ~; P. r! Y
- )! V/ S/ v' X7 h1 C2 `+ _( b
- )
" w! G! M3 r' H! c$ R - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
, \6 @: I5 v5 b9 S1 W) o1 f& M - )& `4 P' w4 u; ?( m8 {$ r
- )
% a0 ^( w" u. g: r/ k
- b Q4 P& p. W" M$ U; W- (defun ver_xline_pt2()
. O$ m3 B V! m1 { - (if xline_pt2& D: G+ @& f/ G3 f
- (progn
# O W- x) }" F8 w9 R3 j4 Y - ;;2 V( O* ^! q: p
- ;; Calculate new Direction Vector WCS
: ?" Y0 k( B& a6 r - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
8 o8 V* O$ P. w3 w - (setq temp_dir (trans xline_pt2 1 0))
; P0 i, `# m" E5 i/ R - (setq temp_dir_x (car temp_dir))" J4 c. P2 O; i) W# g2 E
- (setq temp_dir_y (cadr temp_dir))* ?) c8 o& E: n
- (setq temp_dir_z (caddr temp_dir))
: V9 P3 A; v" m' g3 Z% ?$ D3 X
9 c+ t" C1 `" T) ]- P6 s- (setq temp_xline_pt1 (trans xline_pt1 1 0))1 ~9 ~6 Q( f- ?" L6 y$ Q2 [
- (setq temp_xline_x1 (car temp_xline_pt1)). R. v& {) F% V% ~$ w- v1 S
- (setq temp_xline_y1 (cadr temp_xline_pt1))
& m3 H0 ^2 S$ R( Q - (setq temp_xline_z1 (caddr temp_xline_pt1))
: O7 ?3 E9 U& }) @4 ~" M0 L. _( z1 M( m - 3 H0 v% B9 b2 [0 d, P
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
% t* b7 J: r% _7 f" ~8 M - (expt (- temp_dir_y temp_xline_y1) 2)
0 e" \6 p8 Q2 H) D+ j - (expt (- temp_dir_z temp_xline_z1) 2)
5 S( J/ L J5 r9 v3 ~ - )))0 G$ K5 o1 K7 Q; }
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
. X0 k& y& v; D - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
; E3 k# V5 f0 S9 s( [/ R5 R - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
0 S- u- Q' O, p1 J& B - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
p( E7 `7 f5 R9 [3 E3 i - (assoc 11 elist)0 d1 l; B) Y [' m# l
- elist
5 T) H. @1 v9 h. r: T- b; s$ f) Z - )+ N7 j$ p, D8 l. x# ?1 ^9 e) g
- )$ K A% ^( h K7 K1 X6 q6 U5 e
- (entmod elist)
$ H) x b/ S; A - (setq xline_x2 (car xline_pt2))
8 t$ U# C1 `* B" M3 Z; o - (setq xline_y2 (cadr xline_pt2))
( `( H$ Z% t0 z% E - (setq xline_z2 (caddr xline_pt2))! Y: z! d1 {# Z# X
! \& K3 V- ` B: S3 N2 W
4 w- l4 o6 m5 _% X# g- )2 r5 k5 v# H+ E
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
. n& R- S. [/ @# s& X - ) Q' `3 ~5 ~4 h& o% B* n3 r
- )! h. q* ~, X+ }9 {/ X3 _9 n
- ; T+ U1 X3 U, o7 `1 l/ b. O
- ;;
* h9 v; P/ W. @ z7 u - ;; Common properties for all objects. B6 ^" W9 w7 y v D/ ^8 S
- ;;8 D/ N- Q3 p% j* F6 p. {
- (defun set_tile_props ()
/ z* H% c5 r# l6 x$ O2 O) Q1 u$ K - (set_tile "error" ""). x; W7 x) i: ~/ {
- (setcolor)
+ t7 |+ c! i! ?/ s0 m8 H' s/ Q - (cond
4 Y" O( x( F; z- B) Y* T7 d - ((= eltype "BYLAYER")
6 f4 c% C# t& W3 Y - (set_tile "t_ltype" (bylayer_lt)))4 {8 W" L: U- K/ Y, j, h! G0 I
- ((= eltype "BYBLOCK")# S+ ]* Q* ]0 ^6 g
- (set_tile "t_ltype" "BYBLOCK"))
- ^& r. z7 C" v& k" d6 H - (T (set_tile "t_ltype" eltype))
r3 d& b; J7 k3 q4 _7 Z - )
+ b8 @1 Y6 l5 P$ {% J; i+ f, L* D - (set_tile "t_layer" elayer). @. w) E( V8 L% }/ p; c
- (set_tile "eb_thickness" (ai_rtos ethickness))
' X0 N' o: ?) a7 l" w - (set_tile "eb_ltscale" (ai_rtos eltscale)). E: T& E" ^5 E4 S* p
- (setq which_tiles (ai_common_state etype))( s0 p& @5 w- t/ `- Z# B
- ;; Disable tiles if need be...
, ]/ `9 v9 c5 ^+ w( b
: f1 t; O( x4 v% g. b6 z1 V+ f6 ^- ;; Layer Button and Text Field
$ A. R c8 h$ J5 T - (if (/= 1 (logand 1 which_tiles))2 d$ i# l6 C5 v5 m, ?; h
- (progn
I$ W" ^( J* Y - (mode_tile "t_layer" 1): c% r$ G$ I( y! c# \/ _
- (mode_tile "b_name" 1)' e0 x& ?$ q; f+ f% A2 ]
- )# |- a' x9 m' F
- )
( u( g0 Y6 s/ a: B4 s4 o - ;; Color Button and Text Field/ ]. M" E2 d( q) a7 b% k
- (if (/= 2 (logand 2 which_tiles)). ?1 D) ~. M' L1 p, v
- (progn: @$ u# A: A. K9 n1 J z
- (mode_tile "t_color" 1)4 o) w( [* Q/ n5 g0 x
- (mode_tile "b_color" 1): {& m' F% F4 {; K8 s7 u
- (mode_tile "show_image" 1)3 c. \9 p: Q# o# `
- )
7 R' ]" p0 ^" j$ i" T" w6 ^ - )
, H3 J. L+ J) ?! J9 u- [& f3 Z - ;; Linetype Button and Text Field3 u( g) F% k$ q' W/ D* \
- (if (/= 4 (logand 4 which_tiles))$ O/ G; G8 d4 }$ u( _ R( e( S* F2 X" f
- (progn# s O+ ?+ u; D8 {# t- `
- (mode_tile "t_ltype" 1)$ a& m. |* P0 g
- (mode_tile "b_line" 1)
8 s$ [( D6 z+ C8 t% X0 z6 B y - )9 ^6 T* o+ Q7 T) U$ J6 G
- )
9 P+ d5 ^% n4 N: c - ;; Linetype Scale Edit Field
0 r0 B" {7 A7 w8 U! p - (if (/= 8 (logand 8 which_tiles))
! Y" M- l4 ?/ z9 h3 | - (progn. h' c/ x o& x
- (mode_tile "eb_ltscale" 1)
/ q; A( O0 T5 f% E - ), m/ D+ u' V3 k) M6 g
- )
7 V V8 H& P7 c - ;; Thickness Edit Field.9 i7 H2 ^& Y0 Q. N" ]1 F! w5 J
- (if (/= 16 (logand 16 which_tiles))/ Q4 w; [" n3 T# n
- (progn
& U) S7 u" \* Y3 H - (mode_tile "eb_thickness" 1)
' [8 |3 v1 I- B& t - )
; ^( |# l6 M, L% h, k - )
: T" x- M8 D+ M! U9 D" W' x U - )! m' d; \4 `' V" z. P/ {
- ;;
/ e: T& {7 B7 k+ g. _ - ;; XYZ Point values for all enitites
! E1 O1 g" `- X" s( X. t - ;;
* Z N; U! A4 M0 x: A$ H - (defun set_tile_pt1 (ptype)
9 [2 t/ D" u8 D N5 Y( D( R' B - (if (= ptype 0)) H* G/ j# n1 L) J
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))& S) [8 i3 k* N% T0 w9 t& M
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
4 `- L9 k8 b1 [3 a' @5 g7 F$ {2 ?+ ] - )9 h2 F, g, a" }+ T4 C' m9 l- [ ]
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))7 ]2 r* M" k. g' D/ o( S* T
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
3 m& I3 z( y) V2 Y9 Q; R9 J6 v! K5 d - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))0 b% _6 _" n; f
- )) p1 \5 E k7 [1 d& u
- (defun set_tile_pt2 (ptype)
- I1 a3 @/ A; F( e0 Z; W' \! |; c7 f - (if (= ptype 0)6 B, S# [( c5 r4 ]
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))5 I- V1 z% U) ^# l1 z: a$ S4 B
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))' d1 V. Y, z* O; |" \- l% ]5 a6 }$ X
- )
; C/ U) |$ u8 e. x - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
* ?; D" s+ b) i+ D2 F - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
. J; i T2 B: C2 m- ] - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))8 Z2 p( c1 m$ B
- )* P$ @0 l5 @+ o& s4 E. ^
- (defun set_tile_pt3 (ptype)
, M9 n; u8 I; A' T9 Y5 D - (if (= ptype 0)$ d3 c, O- c. T
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
2 [) P) x% ~7 e$ U/ K: H - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
. s+ b* g8 I7 V - )
& g* ?/ ]" b% Z/ \ - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
. B, w) G* \( M7 ?) D. ^8 W9 _* U - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
0 G6 G# \$ V8 _4 B3 c! u+ x, ? - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
& ~$ ` g! q( n0 S6 F: d) d - )! z, a0 }+ v, Q7 d
- (defun set_tile_pt4 (ptype): @0 W+ C0 W, F/ Z+ T+ P; s, u
- (if (= ptype 0)6 {3 s" R) V; P5 A8 `/ W( {* b( W9 q
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))1 V* M: {$ ?$ O' B$ j' `: Q1 Z* w
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))) w1 w- W0 X. Q
- )
# F) X `+ ~1 e7 p' i - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
, r6 m2 H8 b# y6 I' o - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
/ [+ s4 t# \0 }5 I/ T. X4 p( J - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))6 o6 a' H5 p m( ^2 E
- )
9 ^0 X/ ] j- X& J7 o4 E - ;;0 M+ F, X" Z- s
- ;; Xline/Ray
2 C: n1 D }/ c, u- q( ~ - ;;
" e9 k5 M8 t; a, t( n - (defun set_tile_xline_pt1 ()0 L) F6 [& S/ [1 g: I* h( B
- * k3 H- L$ }- V7 E5 h/ I6 e
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
% k" I0 z/ i; y
" t! {! m! n2 ~& @- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
0 \7 t) P" B! a7 K$ @ - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
- A4 g# [2 j$ ~4 K - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))) G$ }$ `; T0 j9 v. Q, N
- )
- j. y5 t/ w9 O7 |8 u! w- P - (defun set_tile_dirv ()& }2 F0 i# i @2 v2 P, F9 _) |
- ;; Convert 11 group to local UCS (displacement)
# l' L0 q/ v& y% f. n b - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))# t d' X3 r& J4 t3 d! v
- ( z$ a) V7 a: }2 F+ r% \( m( l- ^
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
2 j3 A5 `1 p! f& W5 n+ N/ A - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))! {: t% `& m, {- d
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))" j1 Z8 P3 k# q' l+ X) v% g
- )
/ V1 }/ w. T$ T- f - (defun set_tile_xline_pt2 ()
, i* p- ]# C$ |" u3 f: M - (if (not xline_pt2)9 U1 H* {4 z8 {
- ;; Initial second point is Root Point + Direction Vector
) \% K% \3 |' @! F1 x e% | - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
7 Y; {8 J6 m" u+ d2 l; W. ]; d - )
$ o/ R0 G. _1 J: @ - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))& O$ U/ r; P4 o6 B! I" I
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))( B i' M* X1 X! h2 _; A$ X
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))7 O, V& A7 @" a0 V# v X9 J
- )
7 h9 p) [7 `. {% P# v1 ]
2 `$ V+ L' F1 i/ P- ;;9 W/ c+ i! @. y8 d0 r
- ;; Handle for all objects
$ V9 L( z' Q9 c ] w7 w - ;;$ j+ z5 e8 j6 B
- (defun set_tile_handle ()5 O G9 J0 K: v
- (if (setq hand (cdr (assoc 5 elist)))
6 l" O8 V5 i8 v7 ]& i - (set_tile "Handle" hand)1 J9 H7 p9 i! C8 k6 e6 A. _6 i# q
- (set_tile "Handle" "None")/ Q' t9 M: H* z5 D9 s- v+ ^2 v
- )
, C0 h' i) \4 n0 j; n5 ]7 C - )6 v& r5 f' R8 ]9 p8 b3 h2 L
- ;;
) a' e; g: A% F! k8 M5 [6 g& ] - ;; Radius for ARC and CIRCLE! L5 L: V5 d8 }6 ~! q
- ;;) r6 l6 ^6 p$ i0 q: e- J: C+ P
- (defun set_tile_rad ()
$ d. H" N# I4 B. l& Y8 m - (setq radius (cdr (assoc 40 elist)))
) c- J: j) V( z) ^ - (set_tile "radius" (ai_rtos radius))2 I3 Y" S/ x j; l6 m! _4 f1 {
- )
5 ^. s6 e: r( v! _/ g4 } L - ;;! Y: t/ P$ O# X; Y* Z, j5 Z O+ D
- ;; Start angle for ARC
/ d, }: o4 s+ C- n$ M- [. T4 | - ;;" B+ p7 ~, o% R/ U4 V
- (defun set_tile_stang ()
% V; x+ i3 p5 }1 G$ X - (setq st_ang (cdr (assoc 50 elist)))
" N. Q5 }! M! ?! X, e9 p7 a - (set_tile "st_ang" (ai_angtos st_ang))4 l R3 R$ e2 K
- )
3 h, W1 J: _2 p1 ~) l7 r - ;;
3 p* l0 z- D2 W) J% y% O - ;; End angle for ARC
- i; p' |: v! V1 a# i* F7 x - ;;) ?1 {, c2 L" M% ~5 ?
- (defun set_tile_endang ()
. T2 A( y' f4 i' }% ?# P& E- c - (setq end_ang (cdr (assoc 51 elist))) S/ _# I4 s1 V$ }# F
- (set_tile "end_ang" (ai_angtos end_ang)): D! a9 I+ h1 A5 R
- )& T( r7 ?+ t7 ~' E2 }1 X' |: p
- ;;
5 b( k( E, C9 {# k1 Z+ o, R - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes9 q1 M; I: i1 O. O& u
- ;;" E2 f7 o. G& D5 N' y
- (defun set_tile_rot ()
7 u2 H# U# B% |$ U - (setq rot (cdr (assoc 50 elist)))
" t! A Q) H. F2 Q1 c - (set_tile "rot" (ai_angtos rot))
& d8 t. |" r7 t. e7 O - )
+ ~. k2 G6 C) m+ W: x/ U. D - ;;
4 n0 ~0 M2 Q; `$ N f% o: Q - ;; Height - Text, Attributes and Shapes1 _7 i) {# B& l% {: j+ W# j
- ;;
: O/ C6 s* T7 R9 `5 @ - (defun set_tile_hght ()) f+ h+ v& q, o1 @; B
- (setq hght (cdr (assoc 40 elist)))
1 d- ]3 |3 s0 L2 y" J" a2 v6 F+ k - (set_tile "hght" (ai_rtos hght))9 `, M- m2 R& R1 N3 L1 i0 y' q; B$ b
- )
% m3 Z* j0 W3 ]% l, v - ;;2 o* d: F+ H; F; P/ {
- ;; Width Factor - Text, Attributes and Shapes. w1 v5 K! K& a9 t6 a, n' f
- ;;
8 \5 v6 H1 Y7 I* w% @ T - (defun set_tile_wid ()
4 |& |! T2 F" }7 a - (setq wid (cdr (assoc 41 elist)))
* j( V+ j1 C. j( | - (set_tile "wid" (ai_rtos wid))
' i! X! x# c P - )$ z4 n0 i6 `1 H' }
- ;;# C/ ~ C# N5 b+ b6 E
- ;; Obliquing Angle - Text, Attributes and Shapes9 f- s' z6 ~$ h* _
- ;;
* L! n( l4 c& E% \- P8 @ - (defun set_tile_obl ()1 S4 Z5 F @' E1 E4 g0 j9 y* k
- (setq obl (cdr (assoc 51 elist)))2 p* m6 ^0 r7 i3 k9 N
- (set_tile "obl" (ai_angtos obl))- E- \" m' O: W# ~9 q9 ]
- )) V) {/ |, t8 h- Z
- ;;
2 S# D% I& ~* G( w0 k - ;; Text string
4 S+ z! x! H# C+ x8 v- D; B - ;;8 c. H: z; Z& W" E$ p
- (defun set_tile_text ()" r* s# D U% k; K, V
- (setq text (cdr (assoc 1 elist)))' Y( f! M/ Q$ K% {
- (set_tile "t_string" text)
( t, r. e- C3 g( [0 U! I) Z d - )5 V( @4 _$ p4 m) Q0 x. d
- ;;9 k( G0 Y" _, j( {- @
- ;; Attribute Tag3 Z9 K! n7 t/ J3 a* R N% C
- ;;: K* C1 k! K/ H4 K- y' ]! \
- (defun set_tile_tag () R4 n" n# N9 `! b/ H6 U' w9 N
- (if (= etype "ATTDEF")
8 H* k/ k8 T4 ]0 \ - (progn3 f% a* F9 y' k
- (setq attag (cdr (assoc 2 elist)))9 f/ C/ Q$ E5 w6 L/ m
- (set_tile "tag" attag)
+ k( ~- N. \1 v8 H - )' E2 s. D; F# w5 ~# {( @
- )
1 W1 ^* j: m2 d4 b - )
1 G3 N* F4 Z! y9 `5 S' o4 y: @3 ` - ;;" c7 }( _ V3 C1 B) m2 f6 c
- ;; Attribute Definition
% m |( w! H5 X - ;;
1 ~! G( f0 J! ]) Q' Z* y @ - (defun set_tile_prompt ()
' p4 E4 N3 c+ C( ^ - (if (= etype "ATTDEF")
1 f; ^' h+ b( t8 A2 i8 S1 X" B - (progn' H0 d3 g) r+ X2 F2 z& O6 p
- (setq atprompt (cdr (assoc 3 elist)))
5 W0 F, V* r. i - (set_tile "prompt" atprompt)0 c# U/ k) @, M0 F. Z5 A" }
- )# D9 g# d8 D! I/ f/ f5 j, `! d
- )
3 E4 Z, e9 k/ i$ l - )
1 q; M' ?! T: I' ?9 `* E - ;;* `( \' p% i1 A3 R2 ?
- ;; Justification setting for Attributes and Text. Initializes8 j: f; H$ m- s
- ;; popup list box1 X: g, J3 m2 h! T, n
- ;;4 Z; @8 r: V8 ^' \6 `
- (defun set_tile_just ()
; m7 s6 \2 ]4 d' V; ~0 U3 P - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
4 V+ K& A1 u7 J+ z8 ? - (setq va (cdr (assoc 73 elist))) ; vertical alignment
* C! _7 Q% u+ S& j9 n3 S* ~/ v - (setq ha-prev ha)
" C, P4 j$ J2 ` - (if (= etype "ATTDEF")
+ y( E; e( F( M) ~7 l5 v3 s - (setq va (cdr (assoc 74 elist))) ; vertical alignment
9 B0 a$ k4 q6 k - )
% h/ u! W" v. X4 H0 M1 s - (setq jlist- \6 H1 D& h) Y- w
- (list "Left" "Center" "Right"
. j# B5 {6 t8 A! W; I1 ? - "Aligned" "Middle" "Fit"; L2 T5 u+ n" b( Q6 V5 v) d
- "Top left" "Top center" "Top right"
5 @# c7 z/ P4 @ - "Middle left" "Middle center" "Middle right"
! q. I0 k. U: }& O* U; G - "Bottom left" "Bottom center" "Bottom right"
/ ?4 S7 e, d3 z P1 D - )/ T' z. g9 t' y- [9 y
- )# @" D! ]& {2 p% ^2 {3 w
- (start_list "popup_just")7 i' A/ t% C5 p7 j4 M
- (mapcar 'add_list jlist)
9 t7 z" ~" q/ i+ q2 N4 W - (end_list)
$ x9 O& C* P4 N - (set_just_idx)/ K, ^/ C8 l* Z3 q1 q, d
- (set_tile "popup_just" (jlist_act just-idx))8 ?5 s7 w& c( Y b7 K; H( |4 F# t
- )
: F9 l& A2 N4 i, f# J- s- Q7 L - ;;+ b* C) O" x* ^. |0 w
- ;; Style setting for Attributes and Text. Reads symbol table for popup list% T- r7 Q% q$ m5 \) J6 t5 O
- ;; box.
6 f+ [9 f0 l' x! [4 g - ;;
( ` }' y. o& T( A+ |+ p2 i - (defun set_tile_style (/ sname style-idx tlist)- `. _9 N5 p7 y% v# K
- (setq tlist (tblnext "STYLE" T)
" A) W* o9 Y- A - slist nil)+ Q$ W4 X$ o- E G" f
- (while tlist4 [1 j% D: ~! Z x; y. ]
- (setq sname (cdr (assoc 2 tlist)))( _2 {- s9 l# ?' j
- (if (and (/= sname "")- r# a) v" Z0 Z
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))7 h, [9 n+ e( M& e# t
- (setq slist (cons sname slist)))
1 }# H( J. ] D - (setq tlist (tblnext "STYLE")))
5 p, Z* A6 h5 ~& ]( z' B - (if (>= (getvar "maxsort") (length slist))
0 |. Q" ~% f; T, I - (setq slist (acad_strlsort slist)) ; alphabetize style list% L) [; n& _) K& Z: Z- D" h
- (setq slist (reverse slist))) ; or reverse it to put it in DB order1 D) p7 i; X2 Q$ Z( @ [+ i
# M7 L( @3 Q4 `5 w# V, Z$ {& L) [# B3 h- (start_list "style")
/ @1 I/ ~% }$ X7 U: |: o; N - (mapcar 'add_list slist)
1 ^4 d4 O' k; k. a) O - (end_list)$ n* A- S0 g- C0 r# L% d
- (setq tstyle (cdr (assoc 7 elist)))
$ {% a( Z" v' Q" L5 `4 k - (setq style-idx (getindex tstyle slist))
; y& }7 w: Z6 R3 K6 p1 {) ^ - (set_tile "style" (itoa style-idx))
9 s" V$ ?2 ^& r( b. ] - )9 D7 l1 c; |7 e
- ;;5 V; M. ]$ ~5 x2 e# h
- ;; Text and Attribute setting - upside-down, backwards3 C n' V% l: b5 }: H; K( y2 \0 O
- ;;
V( @- v0 u v - (defun set_tile_bk-up ()6 D5 S, C' w8 B4 T% {: {
- (setq bk-up (cdr (assoc 71 elist))) G1 i! P/ V+ P- Q; Z
- (if (= (logand bk-up 2) 2)/ u, a( Y# k8 J+ J. i: G
- (set_tile "bkwd" (itoa (setq bkwd 1)))
' r0 r& W& i' O& C - (set_tile "bkwd" (itoa (setq bkwd 0)))5 P9 ?4 f: @0 z
- )
* L5 `1 R: Z. |2 q# J0 t6 P; z9 _# k - (if (= (logand bk-up 4) 4)1 c1 B% y1 f3 g6 {# I$ a4 e
- (set_tile "upsd" (itoa (setq upsd 1)))( [% j" c4 v( i" D
- (set_tile "upsd" (itoa (setq upsd 0)))' k& O0 K% S! L% k$ E. t! L8 U
- )
" V, \3 k0 d# \5 I: V6 T3 H/ u - )
2 \$ D( v/ d. f" K5 } - ;;2 C) o; H4 I$ `% N: j/ T( L- J. \% ]( s
- ;; Attribute setting - invisible, constant, verify, preset4 ?# l1 \- o; F S- f+ a2 f! E
- ;;
/ h. s4 E6 j/ `% C% ~ - (defun set_tile_icvp ()
! C. @# A1 I- I( G - (if (not (setq icvp (cdr (assoc 70 elist))))6 X; }1 P3 ]+ w$ S! l
- (setq icvp 0)
5 C; |; R3 z5 ^. ^2 M1 B+ ^ b - ); E, w* o1 x# r" H& f- x- b
- (if (= (logand icvp 1) 1)
9 K. Q, @6 Z9 s. i3 U% |) _2 n* n. y - (set_tile "inv" (itoa (setq inv 1)))1 N' m, @. q! {' `
- (set_tile "inv" (itoa (setq inv 0)))
n/ K8 W7 z( I - )1 S; R3 p' X6 N4 d
- (if (= (logand icvp 2) 2), x, V y7 k) [' r) k/ s1 N
- (set_tile "con" (itoa (setq con 1)))0 v8 v* I9 ]+ a: {' v2 z
- (set_tile "con" (itoa (setq con 0)))
% t2 b3 ^4 q: D9 C9 E - )
; `8 R- R' m* g7 u; B! `( V - (if (= (logand icvp 4) 4)6 [! \! [' c/ _, d
- (set_tile "ver" (itoa (setq vfy 1)))
$ B: A/ {8 \0 l5 j0 L& T* t - (set_tile "ver" (itoa (setq vfy 0)))
# a- `$ e# v( b; H3 ]* [7 g) p - )4 W) J |6 q0 m3 C" H1 x7 Z
- (if (= (logand icvp 8) 8)
( V/ R4 V% _* a0 w1 Y7 J$ x1 k - (set_tile "pre" (itoa (setq pre 1)))6 G) v2 b4 C( C: e7 K
- (set_tile "pre" (itoa (setq pre 0)))" n3 d, q/ m' w! t3 Y' w1 d
- )
+ b1 Y: Z' A5 f9 X' r - )
. p3 p! H* ?1 z8 q* f: k - ;;
8 ^. R/ W: s, A. A: _' u+ i - ;; Scale factors for block insertions" u! P" j% {; ?1 f2 y+ f) f
- ;;
: {; {) J2 f6 d3 j$ A3 S- o - (defun set_tile_scale (/ temp)( Y: `4 y2 N0 n2 i
- (setq temp (getvar "LUNITS"))
& U4 L- m7 ]. ]$ @ - (setvar "LUNITS" 2)' i: \& O6 n0 H! E
- (setq xscale (cdr (assoc 41 elist)))! b3 w; `7 e8 e* F" ~
- (set_tile "xscale" (ai_rtos xscale))9 Z8 G( Y4 P0 Z% |
- (setq yscale (cdr (assoc 42 elist)))
e! U3 X& p- Q ~ - (set_tile "yscale" (ai_rtos yscale))
( `2 t! ^) U7 C. L - (setq zscale (cdr (assoc 43 elist)))% a* I) q$ H* n$ G
- (set_tile "zscale" (ai_rtos zscale))# ?& A* T: D" A& O1 B
- (setvar "LUNITS" temp)
5 V7 @$ {+ g6 _8 B6 \ - )( u3 A9 d) m/ S
- ;;7 D1 o5 c1 K5 e/ _4 J. s% V& w
- ;; Rows and columns for block insertions! m7 Z( q5 h1 @9 [
- ;;
% c! |' l1 v7 v8 W - (defun set_tile_rc ()
: Z! u5 ]$ h$ k3 G/ S3 } - (setq columns (cdr (assoc 70 elist)))
+ [2 M9 R: @$ C) [1 D! d$ `6 \$ D - (set_tile "columns" (itoa columns ))7 v/ O9 L5 h% u8 J/ q) B
- (setq rows (cdr (assoc 71 elist)))
5 j& v- T1 v8 f+ _* x - (set_tile "rows" (itoa rows))2 g( v! |5 v6 E2 U) P, F# ^
- (setq col-sp (cdr (assoc 44 elist)))
, ?: q- E! {! B. E% T - (set_tile "col_sp" (ai_rtos col-sp))
. Q+ Z& h* q% x/ q - (setq row-sp (cdr (assoc 45 elist)))6 N$ o8 h0 I1 T0 g
- (set_tile "row_sp" (ai_rtos row-sp))
8 v; y6 V: v' P/ E' ^6 P - (if (/= hasclip T)
1 ~% B$ |% N) v - (mode_tile "xcliponoff" 1)" u; W( ?) e0 M3 M4 a7 i
- (set_tile "xcliponoff" (itoa xcliponoff))
- ~, C p1 f4 P* E" p. C& w - )& P; c% k- k/ b B- T
- )0 q3 S) l0 S, W& H' s7 h2 \
- ;;
) A5 {/ M/ I0 h8 Q - ;; Invisible edges for 3DFACE
) n* ~# _5 e: N; k - ;;
7 E1 r6 @8 Z% J9 \& `# q6 ^9 d - (defun set_tile_edges ()
f% J4 P: D! d$ E+ C - (setq f-vis (cdr (assoc 70 elist)))4 v- n, e' p5 b l( i R, A
- (if (= (logand f-vis 1) 1)
$ T* @. c$ f7 w) ~* U" ]# L - (set_tile "edge_1" (setq edge1 "0"))9 {+ ~8 n8 y: R& b7 c! r3 r
- (set_tile "edge_1" (setq edge1 "1"))) U+ g4 H$ ~- n$ U Y. A! Q/ U9 q' `
- )8 D. _ r4 u" T- }/ \" J
- (if (= (logand f-vis 2) 2)
) ~; m9 r$ S+ _" h - (set_tile "edge_2" (setq edge2 "0")). ^3 Z0 _1 c) K3 A# z( x, O
- (set_tile "edge_2" (setq edge2 "1"))! I3 X2 d/ p# V* q) V2 Z9 p `2 E
- ); H' Y1 K4 q0 f9 u7 ?# J3 A
- (if (= (logand f-vis 4) 4)
. ~* F- P# N; H# R. a - (set_tile "edge_3" (setq edge3 "0"))' d9 }) s( Y- J3 e; z1 p' n
- (set_tile "edge_3" (setq edge3 "1"))( n6 }' `/ ]7 _/ w
- ): j5 Y6 L$ `) l8 P3 `& b
- (if (= (logand f-vis 8) 8)& [2 t% C8 e/ `6 {: s
- (set_tile "edge_4" (setq edge4 "0"))& U( ~8 V8 ?. y! Z8 ~* C3 U
- (set_tile "edge_4" (setq edge4 "1"))
8 {' L$ h0 S+ V* q0 f/ f' [5 h - )& u% a: ^" E2 P {, w( x6 C) Y
- )2 q3 A! W6 ^6 C( {2 a& p
- ;;! H P, s$ f4 ` A( k
- ;; XYZ Point values for polyline vertex
1 l/ P# N3 [8 j: l4 f - ;;
' I/ O W1 ]1 R v1 T% ? - (defun set_tile_vpt (ptype)$ l P e% Q! k# ?: I# F
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
$ w2 ]: ~5 x1 z7 V: ^1 J7 J - (progn, F5 r5 \9 F$ _
- ;; ctr is 1 based, vertices are zero based.) d$ \5 w1 J# D L: E Z
- (setq vpt (cdr (getLwVert (- ctr 1))))4 K! p7 N9 q, T( Z
- (set_tile "xtext" (rtos (setq x1 (car vpt))))) U: Y3 w. G+ u" |( o
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
1 S+ t+ W# E* ?8 j; W3 R, F - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
& z( F6 q& ?4 l - )0 _) i* n8 u- }5 b
- (progn
) ?" Q: A. q& w7 T. t) S - (if (= ptype 0)
6 g; H7 h" v3 P# } Z - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))! p: _, L8 O8 F* e0 j* _
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
' Z0 s# {% P3 z9 N/ A8 D - )2 K. L3 L: _: W$ {9 v* r. G
; ?* O, G. l( y' P3 d# T) O- (set_tile "xtext" (rtos (setq x1 (car vpt)))); l9 h& o0 T3 T" @* I0 K/ Q+ \
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))2 `" W' T9 V* x; |3 l( ?
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))6 m2 F$ @' ~1 x6 n* ]$ k6 Z
- )
4 o$ L. U, v* s J' t0 y - )+ p# `# m# }, Z. t, c/ D+ G- \1 ]
- & U( C. X6 c+ Y( C, v$ J( i: g2 @( M$ R/ h
- ). v7 S. o4 r2 E6 S! V
- ;; This is the equivalent to doing an entnext on the heavy weight$ q- }+ A. }! y5 s, }; Q
- ;; polylines. The hard coded '4' below allow stepping over the
, }; q7 K& u& n3 V2 G9 h; ?% |9 k - ;; 40 41 and 42 group code information. The while loop finds the
: }3 N, N3 P* g$ y% [+ G - ;; first vertex which will be used as the starting assoc in the
7 {0 y0 J& A2 W" t. r8 H" a - ;; call to nth.
( K- N% {0 t9 {& | - ;;
; D8 k6 u3 W" c5 P- j% C- V" o - (defun getLwVert (tmpctr / count tmp)
8 F3 k! @- `. p& t- B - (setq count 0)
/ F+ }7 F% `' z4 o - (while (/= (car (nth count vlist)) 10)
6 Z6 i7 U2 m, k+ u$ m! [ - (setq count (+ count 1)): e1 Z2 B* G) |5 ~
- )
, h, t" V% R& ?* f0 R - ;; If the counter reaches the number of vertices,
4 m. j! H& H: Z: Y |. r/ v - ;; reset ctr and tmpctr to zero again., Z, } c7 Y' p) c, C1 e
- (if (= tmpctr (cdr (assoc 90 vlist))); ~0 g. k: m& w4 i- M# a3 i
- (progn
2 S: J& R0 y+ v9 ^- Y; o, Y - (setq ctr 0)
- B \* N6 h! c" D# B0 X4 p+ P - (setq tmpctr 0)
5 l9 D) V( `( ?1 Y* Q - )6 ~3 j" q. V- l+ o) k, N- I
- )
$ A/ t" F1 R! {- ^* G - (setq tmp (nth (+ count (* tmpctr 4)) vlist)). }7 d6 C" }5 U: J
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
7 N% ]: `. s! ^2 X - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
: N6 r, j4 W) g8 R+ ^ - (setq tmp (cons 10 pt1))+ }+ U2 U# d0 _+ L) H
- (setq tmp tmp)/ o3 Z2 ~' N! d6 i
- )1 A& u6 w h7 q/ \/ p
- ;;
! n; ^! r( J/ {( h4 q5 z M - ;; Set tiles for Spline properties. If the spline is rational then we) _ B+ z& z- V: [; z3 r
- ;; need to display the weight values of the control points, so set: l! |& h H5 B$ b$ `: J: @
- ;; flag to 1.6 P1 [( b* ]( [
- ;; 1 = rational spline' u& @& v/ \( P7 R m) a
- ;; 0 = non-rational spline
, j7 A2 E" }6 L0 J C# ]! w - ;;
7 T8 q6 ~0 S, C$ _: d - (defun set_tile_spline_props ()
8 M8 Q3 f* A# q: ` - (setq rational_spl_flag 0) ;; initialize rational spline flag
) |9 J& ~7 w9 q) B4 e8 i - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))" V) |8 X, V0 T3 J' X) b5 A
- (setq bit70 (cdr (assoc 70 elist)))
" V# R7 E, O9 Z: V1 r/ ]6 n4 C - (if (= (logand bit70 1) 1)
% U/ |! U( g0 t* H/ J* \ - (set_tile "SpProp4" "Closed")
/ g& n8 @+ ]- ^3 o8 Y( S4 ` - (set_tile "SpProp4" " ")$ Z. D# N6 D- z8 R3 j
- ). D h9 {- q% z$ b. c4 E
- (if (= (logand bit70 2) 2)
3 T8 |3 `! A8 i* b# w - (set_tile "SpProp3" "Periodic")! K: ] `3 L+ z) U- @) _/ u
- (set_tile "SpProp3" "Non-Periodic")) G1 A+ B, [0 z2 O% j! b3 Z
- ); C* q- Z4 q% W; z$ N+ w
- (if (= (logand bit70 4) 4)
) h$ P6 g7 b' ?" k$ { - (progn4 z7 t8 n3 O w. f/ A& r
- (set_tile "SpProp2" "Rational")
( g+ Q" \) ~7 q+ @0 G' A" T2 k - (setq rational_spl_flag 1) ;; this is a rational spline- Y) @: [$ _% ~5 O
- )! n% m9 S8 J+ H3 h
- (set_tile "SpProp2" "Non-Rational")& s4 O" t6 D1 x5 Q, [, H, t
- )
# r% o5 \1 e4 ~2 q9 F - (if (= (logand bit70 8) 8)$ D+ B- r% G! o1 e3 \; @9 x
- (set_tile "SpProp1" "Planar")
: U" u/ H( h, D0 K* T - (set_tile "SpProp1" "Non-Planar")
8 b- H7 l* S: ]6 I7 X% ~; Z - )
& j, l9 T& D3 V2 [1 q2 T y - (if (= (logand bit70 16) 16)
2 H3 _: ^( G" t - (set_tile "SpProp5" "Linear")
) T( W& i1 r$ e4 ^* l A9 j - (set_tile "SpProp5" " ")& u$ ?$ y! Y% h
- )
- q' ?, v |6 ?/ }( I) O - )
' ^$ x3 W( z8 \5 I2 d - ;;
$ c6 Z; T7 \- N9 p+ z - ;; XYZ Point values for spline points
) H% f' K: |6 c$ I; m# K - ;; Need to account for WCS/UCS2 B) I; T1 j2 T3 ~3 M6 Y3 d
- ;;6 `- {* l# J5 Y- Z4 M! u. {% ^; g
- (defun set_tile_cntl_pt ()
+ w4 @. ~- X/ |' x$ A1 Y - (setq cntl-pt (cdr (assoc 10 elist)))
* R- t6 U( z6 ?& k1 | - (set_tile "xtext" (rtos (setq x1 (car cntl-pt)))); u$ P4 O' `3 d @/ _
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))* T' k2 I) ?7 m( n' d# @
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
$ n' l$ S+ K7 q- d `& f* X - (if (= rational_spl_flag 1) ;; if rational spline& f6 t2 D. A) d& n L+ Y
- (progn ;; show weight. o* B* E% v# E% e9 z& `* W3 \
- (setq weight (cdr (assoc 41 elist)))
; G; f* C7 h' K+ j - (set_tile "weight" (rtos weight))* `& i6 P; j* b7 H0 _# A+ S
- ) ;; else% G7 X" x T3 h2 x5 Q
- (mode_tile "weight_text" 1) ;; disable weight field" X3 m2 T3 [8 [0 W6 q0 |3 {1 j: A
- )
" x& v1 C8 m$ x6 ^3 q, R) u2 S - )
8 r* v6 i% T0 |3 ]4 U - ;;: [+ K- y- y) w
- ;; XYZ Point values for spline points
c+ B$ H* h3 T5 {8 _5 W) g - ;; Need to account for WCS/UCS$ l0 \$ u" b( S) I4 I- L N! I; b! j
- ;;
; c" J) s0 k/ k# a - (defun set_tile_data_pt ()3 q3 e' d' ^4 |: y
- (if (not (assoc 11 elist))9 m U: s, i6 b8 F) b+ y
- (mode_tile "data_pts" 1)9 q5 Q% l: |. A+ d# C
- (progn
, e# h! I3 h* w1 A) O - (setq data-pt (cdr (assoc 11 elist)))
# Z: M: v; d1 B( [% I+ v - ;; display points with current precision.* ^" j0 ~# }; E, w, j% X
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
* Q$ ?$ B$ f7 a - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
, A* c L$ W$ n; U7 Z( X - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
5 u) ^" L3 a/ W: }& {+ m- |6 W. I+ \ - )
$ Q7 M8 ~' V( p# z - )9 `9 L% O" T+ A& T @" o, I0 h |4 t
- )
; D' j" E3 Z8 z6 u7 n5 P3 S - ;;
9 t% \! N. M4 z. m2 C: D - ;; Fit curve, fit spline, or smooth spline surface setting) S5 j( l8 o. {0 b/ o5 w
- ;;' ^" K6 n' D% l+ u y9 h
- (defun set_tile_fitsmooth ()
6 C- ^2 q5 D' m' A - (cond- B7 n# ^0 V$ |# m. P
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")+ C, b V$ i) m; k
- (set_tile "none" "1")
3 J- r" K/ h9 Q9 q7 K2 } - )0 }, @0 L- b7 u/ h3 H% O
- ((= (logand bit70 4) 4)
; E* d3 q( V: s3 @, U - (cond
) b7 r1 a1 D/ J% c# l5 m+ L) J! Y5 ]$ { - ((= bit75 0)* {/ R2 ?% f5 s/ g
- (set_tile "none" "1")
8 |( r: A; {* x5 M M1 L7 l - (setq spltype 0)+ {) Q" T5 x5 b& Y1 Y6 ]
- ) I v/ g5 K: e- q( N+ g2 P
- ((= bit75 5)# ^* A2 q& `5 W
- (set_tile "quad" "1")' h6 c6 r# F4 e7 q
- (setq spltype 5)
% k* A4 L, N5 Y- [! s( P - )$ j8 u: s" n( a( z
- ((= bit75 6): F: m0 r- h+ ]5 R) G( V- E2 o
- (set_tile "cubic" "1")+ `6 h6 F7 p& D, O$ ^( @& M
- (setq spltype 6)' z( Q# R8 v. a$ X
- )) R1 ] x5 n A4 A5 x
- ((= bit75 8)8 @6 |- t, R6 D2 O! o
- (set_tile "bezier" "1")9 V+ ?+ X$ Y! d
- (setq spltype 8)1 L, x3 q: A* s5 K, I8 o
- )1 y, i! M( l0 m' f* M3 Y4 s
- )0 P' e0 X/ y: `5 Z: d9 T/ o
- )% K, T: P9 ~7 J$ Z0 r
- ((= (logand bit70 2) 2)2 ?- n: l6 m- _# n. u
- (set_tile "fit" "1")
1 U& k* u9 {$ `/ ?& u$ q9 f - (setq spltype 1)
1 R: C! m+ P$ I- ?$ y1 p5 O) v( C - )
2 S0 B6 R0 u _) L! ]( y: q0 Y4 ^: n# G - (T (set_tile "none" "1"))
' h1 U X, u: V8 z2 n2 J - )
6 l8 \. r) F) m5 Z7 G4 S - ): n6 W* R2 q' B+ ?9 i
- ;;! k3 }5 k$ W! T" q. m% z; a
- ;; Closed or Open mesh and polyline setting
9 O4 N: L: r" C1 q, Z - ;;
7 q3 @, l. \% u6 |! P3 N - (defun set_tile_closed ()
?, L0 O3 d2 k, Z - (if (= pltype "3D mesh")
0 H8 o: L& C- G$ o' q+ Z- J3 V - (progn
4 @9 X" y; @, H: I% |( ~. ]& b- I - (if (= (logand bit70 32) 32)
. }( W( S" o7 ^+ k8 V6 z - (set_tile "closedn" (setq closedn "1"))
' w" R7 P7 B% }( ~5 P0 K+ H$ P - (set_tile "closedn" (setq closedn "0"))
9 _: @; p* F$ ^8 v0 u3 h( i) Q9 l0 U - )
. s$ _4 i& [( \) X' U - (if (= (logand bit70 1) 1)) B2 r! f' g$ U+ ]
- (set_tile "closedm" (setq closed "1"))
6 ~8 K& M3 t: X7 q ?) |* l - (set_tile "closedm" (setq closed "0"))
5 T4 w- ]7 m' l* s - )8 D3 l7 D: t2 ], w$ {& y# Z7 M( V" `
- (setq old-closedm closedm old-closedn closedn)
! b/ e) Y3 _% f+ a2 w - )# @, p$ \1 U5 A
- )! A0 ~/ T3 m- T
- (if (or (= pltype "2D polyline"), ^4 F: ?$ l- X
- (= pltype "3D polyline")7 L2 O0 y i2 C! {7 W
- )! `4 L" E: M' u ^8 t! p) B
- (progn
& A$ |7 Y+ D. l( M - (if (= (logand bit70 1) 1)9 U2 t6 y8 q7 F
- (set_tile "closed" (setq closed "1")) ~: z1 X3 b; a3 Q6 x1 g# }
- (set_tile "closed" (setq closed "0"))
! N+ x% c/ w7 ?% W9 H/ V$ d; f - )7 N. F% x0 n. [) b% H. j- R0 U& t
- (setq old-closed closed)- L5 n* P. a* S: r3 X
- )
( q4 c/ }4 O' w) o5 B1 Y - )
# W5 `3 j0 r# N1 P3 Q8 i# w9 [ - ). `6 I: x! u. G: m- _/ V; e
- ;; Set common action tiles
/ O, O9 e* l/ e! w' W$ ?/ N) \ - ;;
& s2 M/ F0 G& Q8 j* {0 p, z5 y - ;; Defines action to be taken when pressing various widgets. It is called
/ ^, i5 W6 }6 E. F - ;; for every object dialogue. Not all widgets exist for each object dialogue,
6 t# F# x3 m9 j; T+ O - ;; but defining an action for a non-existent widget does no harm.; w7 g5 i2 F" u
- (defun set_action_tiles ()
/ j1 P6 m- k) }' l7 T$ W/ L - (action_tile "cancel" "(dismiss_dialog 0)")+ V* e; y# g/ i6 e
- (action_tile "accept" "(dismiss_dialog 1)")0 k, o8 i& N* i! n; u4 g" D
- (action_tile "help" "(help \"\" help_entry)")
$ l5 H% w5 {* P; `4 _ - (action_tile "b_color" "(getcolor)")4 p. u$ g m# w( O" v% ~
- (action_tile "show_image" "(getcolor)")1 Y# F* L1 r) }9 X2 ]
- (action_tile "b_name" "(setq elayer (getlayer))")
& e. ~7 V& W2 w7 e( G - (action_tile "b_line" "(setq eltype (getltype))")
e/ C0 N7 A* q( x J: H3 z, g2 D' Y - (action_tile "eb_thickness" "(getthickness $value)")% Q8 c0 N" `8 I6 E
- (action_tile "eb_ltscale" "(getltscale $value)")/ N( R( f: i. b! s
2 e; G+ t5 @5 J- (action_tile "pick_1" "(dismiss_dialog 3)")7 x+ o7 q, _$ V( y# a$ i- A
- (action_tile "pick_2" "(dismiss_dialog 4)")1 }# [3 @" `8 |2 z- N; e4 |
- (action_tile "pick_3" "(dismiss_dialog 5)")3 B+ Y$ x7 l0 i
- (action_tile "pick_4" "(dismiss_dialog 6)")
* C( e# h1 g( b! E - (action_tile "x1_pt" "(ver_x1 $value)")
/ W+ E y8 s# l$ A" L) l - (action_tile "y1_pt" "(ver_y1 $value)")
0 K8 T; w0 p/ z8 I" Q+ `; I - (action_tile "z1_pt" "(ver_z1 $value)")5 [- K9 J" X' S
- (action_tile "x2_pt" "(ver_x2 $value)"): x; B' C; I5 B) y
- (action_tile "y2_pt" "(ver_y2 $value)")5 W6 _8 k4 W }6 u4 t( {2 s
- (action_tile "z2_pt" "(ver_z2 $value)")
5 n. g3 X4 B' }) E9 a1 c - (action_tile "x3_pt" "(ver_x3 $value)")9 ^3 d# X- w# f) ^1 n E
- (action_tile "y3_pt" "(ver_y3 $value)")
$ \9 u2 c$ v0 i k3 S: t1 K' x- C - (action_tile "z3_pt" "(ver_z3 $value)")6 i+ I2 f( [9 o
- (action_tile "x4_pt" "(ver_x4 $value)")
9 C3 e1 R' S1 o9 a; W5 y& \" u$ h - (action_tile "y4_pt" "(ver_y4 $value)")1 | h3 g7 G3 {" i) R5 O
- (action_tile "z4_pt" "(ver_4 $value)")
& o+ s, V) w8 J# Q' m3 \
7 m2 V7 Q s& W+ {6 `" F- ;; Action tiles for Xline & Ray! Z0 ^: f/ c7 r. N7 V. ^+ U6 B
- (action_tile "xline_x1" "(ver_xline_x1 $value)")7 p# k& Y, L8 ?6 S9 a4 @
- (action_tile "xline_y1" "(ver_xline_y1 $value)")
6 H" m' C! L9 _ - (action_tile "xline_z1" "(ver_xline_z1 $value)")
2 J, [, y, w6 v - (action_tile "xline_x2" "(ver_xline_x2 $value)")
3 |; b# n( t/ K# z - (action_tile "xline_y2" "(ver_xline_y2 $value)")
' g9 v W& y6 L9 O* O0 n0 W, ? - (action_tile "xline_z2" "(ver_xline_z2 $value)")
{7 ]' @$ Q* H0 Z8 p1 J8 d
: a# ]+ e* k- Y! v& w1 ^7 n8 ]( T- (action_tile "edge_1" "(setq edge1 $value)")
. N$ f6 c5 y) Q& b n! L - (action_tile "edge_2" "(setq edge2 $value)")
2 V2 J& r( X0 X4 s& h/ M+ y3 C) r& J - (action_tile "edge_3" "(setq edge3 $value)")
* t4 r7 D5 V; z( [ - (action_tile "edge_4" "(setq edge4 $value)")
0 R% G9 f4 Z0 a& }/ x) T7 c# u
, W% s9 D7 x1 g8 e0 t9 Y. i- (action_tile "radius" "(ver_rad $value)"). E. Z( P% p& H) T- m6 \
- (action_tile "st_ang" "(ver_ang1 $value)")
' _/ v: q$ q; C4 s; X j) b$ r - (action_tile "end_ang" "(ver_ang2 $value)")
; o) ]7 }: ^! v6 t! ? b( v - (action_tile "end_eang" "(ver_eang $value)")
; R9 L$ a' e8 ^! j! d - (action_tile "minrad" "(ver_minrad $value)")6 D- @( m& w8 c. `! ^1 S
- (action_tile "majrad" "(ver_majrad $value)")
- a/ e* ]. T/ Q! A
( Y- y. V, B' E! ^7 ~3 B& _1 j- (action_tile "xscale" "(ver_xscl $value)")
) V5 o7 j* Q- Y: a, f - (action_tile "yscale" "(ver_yscl $value)")+ q# q' `* c7 H3 j" m* B1 U6 ]
- (action_tile "zscale" "(ver_zscl $value)")
9 H# ~5 h5 {; d0 x3 }3 B# n - (action_tile "rot" "(ver_rot $value)")$ u. i6 w' D4 Z7 d8 }7 V7 y
- (action_tile "columns" "(ver_col $value)")
7 W) x+ }' }7 J6 u1 f7 t - (action_tile "rows" "(ver_row $value)")- d' U) A/ ?2 g3 f
- (action_tile "col_sp" "(ver_colsp $value)")
3 \2 q; O* N6 _ - (action_tile "row_sp" "(ver_rowsp $value)")# X4 b+ X* n( }* u* i
- / I5 g, A# b7 U- ^1 L
- (action_tile "hght" "(ver_hght $value)")* z( u& b$ s, f2 R V
- (action_tile "wid" "(ver_wid $value)")
+ u. a1 s# y7 V3 b# p - (action_tile "obl" "(ver_obl $value)")* c$ f+ Y7 T0 c. e
- (action_tile "style" "(style_act $value)")/ K V; G- ]. Z
( ]. j: u- X8 ]3 R" m- (action_tile "t_string" "(ddgettext)")
3 n$ M( ]. U- T9 S% n, @ - (action_tile "tag" "(ver_tag)")
M) |4 }) L. A* o0 U3 E - (action_tile "prompt" "(ddgetprompt)") \" S M7 I, C% b6 o
- (action_tile "bkwd" "(setq bkwd (atoi $value))")5 h& k8 G5 j7 I% l) Z: k" y
- (action_tile "upsd" "(setq upsd (atoi $value))")+ k* Z# W& B- R$ Q4 f" N/ M
- (action_tile "inv" "(setq inv (atoi $value))")& s( h' T9 z1 c- e
- (action_tile "con" "(setq con (atoi $value))"): t' W. M# N( @( f
- (action_tile "ver" "(setq vfy (atoi $value))")/ |* ~( `% P& [* @8 ]# C+ d
- (action_tile "pre" "(setq pre (atoi $value))")
9 Y* R: L F5 s5 p6 I, f; V7 z% J - (action_tile "popup_just" "(jlist_act $value)")7 d0 ~# z5 ^5 a( O
- 0 i O( C+ S4 G
- (action_tile "closed" "(setq closed $value)")) r4 K% S( G7 a8 _1 u/ _0 j* I
- (action_tile "ltgen" "(setq ltgen $value)")
- [* s# }# q) W - (action_tile "closedm" "(setq closedm $value)"), d1 p* S! Q% S, p
- (action_tile "closedn" "(setq closedn $value)")
/ [+ ^: M- @/ ~+ v1 s' [" ?* @' O - (action_tile "next_v" "(next_vertex)")% G7 s4 j( L" z
- (action_tile "xcliponoff" "(setq xcliponoff $value)")% t# C% O: {! t0 B3 ]$ S
X! L+ O! q: ]* r/ R- (action_tile "next_cntlpt" "(next_cntl_pt)")
! e: G0 B4 J! z, }* [$ J% g( i7 O - (action_tile "next_datapt" "(next_data_pt)"). C, [6 w; I/ j2 D* G3 X ]
1 ?5 W5 F9 y6 w$ T% t& t- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))"). H1 s/ J. T3 U* o6 Q1 E
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")) Q8 i7 b5 P1 p1 ` O
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")2 \3 `- |) R0 w% }* T
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
7 h; Y! G" f; Y P- p0 D - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))"); X! m! A5 t& [( V
- 1 `9 X4 S( W6 b
- (action_tile "u" "(ver_u $value)")+ S% S$ }9 r) R6 Z
- (action_tile "v" "(ver_v $value)")
, J D* b$ Z6 y: R9 t3 F( ]6 @/ V. o - )
& J( I( C: N) p- `$ |1 C
6 w( d3 u% N+ f# e) ?0 _5 O- (defun ddgettext()4 v3 u8 q1 F) ]1 e6 s
- (setq text (get_tile "t_string")): z4 q W- Q* t1 z
- )8 m2 }3 q) F5 a0 J$ R- @
7 Y% M* s, r! H/ r) X n6 Y- (defun ddgetprompt()# L& A7 B7 ^' s" _8 P! U
- (setq atprompt (get_tile "prompt"))
1 V4 |5 K2 m. A9 t - )* `; v% G! Z! o: z& G
; P3 d6 a9 b& ^# k" x. z" t- ;; As OW doesn't support disabling of individual radio buttons within& i3 G% `/ X8 t, ~' V% t
- ;; clusters, a check must be performed as to the legitimacy of the8 y$ I0 P1 z; ~1 ?, n) w# ?; P
- ;; button pushed and reset if necessary.
P) u1 Z+ |- h+ Y# T; D6 a - (defun radio_gaga (pushed)2 |+ d5 _* y7 B7 O
- (cond
( I, A% }" c- ` - ((and (= pltype "3D polyline")
0 Q9 ^, C% I, ]4 O - (or (= pushed "fit")
9 K; @' |6 ^# v- S - (= pushed "bezier")
1 r' q* _1 `8 ^: m7 ~4 e - )
1 M, ?; w2 l9 B - )
- o! L, G! i$ R3 d. V7 q: e - (set_tile "none" "1")# u5 `- U8 `/ p0 u
- nil
; P) X L! Y* k' ]0 [& q% x' L( I - )3 u ]/ F) `' u: p
- ((and (= pltype "3D mesh")
* d/ D, {7 E( Z: V( }+ j) C- b8 a - (= "fit" pushed)8 H& }" Z6 [: j6 Z& |7 ?
- )
- }9 n! y- y1 Q, b) a - (set_tile "none" "1")
& p, p% k, G, _1 K0 n - nil
: W5 E, p$ S- k3 @/ n - )1 H4 Q# F( U" g
- ((= pltype "Polyface mesh")
; k3 E' @& f" z! v3 l - (set_tile "none" "1")
! h. R3 ~2 Q. N" T - nil( G' k$ C- E- O/ U) d( m9 B
- )8 }$ F9 z" l- H s9 q
- ((and (= pltype "2D polyline")
v! H6 k+ Y! N - (= "bezier" pushed)
" K w% }: l: _ - )
. p! @% p; C8 f* t) ~ - (set_tile "none" "1")+ i# G. P/ x7 H. b: a! [0 q: P4 y
- nil
5 d2 _4 x. M0 H# m8 ^* J2 o - ): u/ l; W6 |# J+ Q! i
- (T)/ s0 w8 K% [9 V! |9 W
- )( y. O0 W. z5 |" ], _" q$ g7 G
- )
) A, } x: @: |; x: p$ g8 M4 Z+ B - ;;; R$ J2 p: K. P" o: ~2 e
- (defun set_uv (type_n)
7 u, o* M, `5 K* ?! c& \ - (setq spltype type_n)! d' t. S- N2 t \ O- A
- (if (= pltype "3D mesh")
- T B9 [* l% V; p) @- E- o+ K* ~) f - (if (= spltype 0)
% `/ I+ J P3 ^$ n - (progn
* {1 J! l( f r+ s* ~, o - (set_tile "u" (itoa (setq u 0)))% _0 C T! y5 s5 W
- (set_tile "v" (itoa (setq v 0)))& R- I7 p+ O: m3 K, {8 q0 _0 R. V
- )# A7 [& k2 Q9 {. Z' s& r0 w
- (progn
4 Y4 ~8 \& q8 G5 w" ? - (if (= u 0)% l7 }' b: |! ?1 o! \% U
- (set_tile "u" (itoa (setq u (getvar "surfu"))))2 }# `# k2 f% W
- )
; \2 Y9 k6 Q$ \; v/ s - (if (= v 0)
& `: T V: a# p - (set_tile "v" (itoa (setq v (getvar "surfv"))))
% u1 \! R: J/ {# a4 | - )
$ Q9 h+ L4 J* g* J/ m- t" ~ - )( `6 ^) K! G; V( G }6 F6 r& N
- )4 t) b. j' J Y4 c
- )% S! X6 l1 W: n( H: A! { `
- )( `& Y9 W6 e! U- a
i' V( V! |% B. Z" C; h
" ?3 Z$ Q1 }' H$ \; G$ x- ;;
* `" C1 g( T+ J; W& z - ;; Verification functions7 q7 S+ J0 ]0 Q, ^1 x
- ;;8 R9 R" @- }+ X' Q- ~$ n
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or
! C+ | m# t& Y0 H2 B5 r! @4 W - ;; distance value, the tile name, and the previous value as arguments.
' p! |( ~8 O) h" g) _7 z0 } - ;; If the distance is valid, it returns the distance and resets the tile.- w1 ]: E( E" A: ^# O9 I7 `: F1 g( e
- ;; Otherwise, it returns the previous value, sets the error tile and keeps
4 T! `0 K! a* `! N" ?3 L0 \ - ;; focus on the tile. Shifting focus to the tile with invalid value can6 g4 J3 E1 F! \7 z
- ;; trigger a callback from another tile whose value is valid. In order
, z& ~4 Z. }2 V/ L+ [+ Z* |; K/ h2 e - ;; to keep the error message from being cleared by this secondary callback,- g% B1 _) V* l
- ;; the variable errchk is set and checked. The last-tile variable is set
4 m$ [( B% j( M; `3 `2 E" Q - ;; and checked to ensure the error message is properly cleared when the
7 [. D l; q5 B, ^1 V - ;; user corrects the value and hits return.' T Z! W8 T$ g% b& F
- ;;
8 p- p# q9 d4 ?( p, z8 B - (defun verify_d (tile value old-value / coord valid errmsg)
) c# P' p% ^. [1 b3 @ t) s4 d/ E& Q% W4 X - (setq valid nil errmsg "Invalid input value.")- [9 X3 [! i0 j! E! Y3 |) `
- (if (setq coord (distof value))$ m( k; z- K( P! j/ R/ P3 x
- (progn; z; [! U+ |* j; W
- (cond: j! i( f% ?6 P& B$ c/ ~) k% g
- ((or (= tile "radius")
l9 P' g4 H/ \; X - (= tile "hght"). r4 m! _+ z+ h: I% j; T* P
- (= tile "wid")
, B" U( m% k+ B a2 y7 \ - (= tile "majrad")0 d7 ?: R3 t) d7 P9 I' H
- (= tile "minrad")
6 T; j J; V9 h1 h/ @ - (= tile "eb_ltscale")
% l0 L. Z6 I8 ^- F* E+ w& g - ); @: E* e% Z1 {) U8 q
- (if (> coord 0)" E/ q$ V/ R$ G* k
- (setq valid T)0 k$ @5 q! x$ A# R4 q
- (setq errmsg "Value must be positive and nonzero.")
: B" {5 D( w! y4 @0 d; q( ? - ), M) F, D7 A5 f6 x z3 ?) d7 Q
- )1 P5 E+ z) }+ m8 y* h
- ((or (= tile "xscale")
1 L, d; V- |$ A2 m4 R - (= tile "yscale")1 e! ~7 a ]3 i+ C0 F
- (= tile "zscale")4 T0 j( U1 z. t; U8 k) j' r
- )+ o2 u3 D( o3 G+ `/ f! P
- (if (/= coord 0)' V n: y: e; W1 Z! | q: ]# C
- (setq valid T)
3 a$ g; [' W A2 J - (setq errmsg "Value must be nonzero.")
4 W6 h* Z( s- }" H" S) u/ W0 W( T! O - )% D* v. c$ o8 u8 m3 e
- )8 V! N2 p3 Z: v% S* b
- (T (setq valid T))
/ C) W5 f; L x9 \5 O - )
) k' A5 T# C9 c% x - )7 e( [3 T A3 g% G, y% {
- (setq valid nil)
N- e0 v0 f1 F; _/ C: S+ @ - )
! V9 b( H7 K$ G/ G' c - (if valid8 @6 }; Q2 X* B
- (progn
5 r7 y6 g" {' \6 ? - (if (or (= errchk 0) (= tile last-tile))0 ?/ c7 a1 v5 h* K) s
- (set_tile "error" "")
& O1 t( N9 p! s0 L2 C - )
5 R9 P+ i0 s/ M* b% } - (set_tile tile (ai_rtos coord))& X5 |! i4 X. u) i
- (setq errchk 0)
" A* m( r" O& I6 D7 \4 Q* P3 m - (setq last-tile tile)6 Q% K' h7 y% p" w. _( ]4 k. c
- coord8 L% [: |- A* C5 e7 ~( _2 m+ }
- )
% [+ Q* G+ R! w. N2 T M4 l - (progn( ?6 ?/ `5 y+ \8 J& X5 W% K
- (mode_tile tile 2) ; Move focus to offending field
; [. S6 A: i$ F- W l# g$ l - (mode_tile tile 3) ; Select offending text$ B# z8 u6 A* c# ^$ Q
- (set_tile "error" errmsg)7 F+ S* v# ^7 g. L5 {
- (setq errchk 1)
" X) ~8 a0 G8 {7 P; c% m& L0 u+ F6 S - (setq last-tile tile)5 x- }4 w) L4 }4 `: @2 v
- old-value8 f+ P4 b: G& l- d
- ), J( L& m; W. D; s) G
- )! ~4 }6 O2 z6 X# O
- ); h8 `7 i; g4 R5 f7 h
- ;; Function for Xline coord edit box checking.8 }. ~$ ?' M# X- ~
- (defun verify_xline (tile value old-value / coord valid errmsg): o) ~( G$ K$ {* w
- (setq valid nil errmsg "Invalid input value.")3 ]# ]& a. w6 t: ^: X0 e/ x
- (if (setq coord (distof value))7 o: d Y3 Z7 U7 k$ b2 p* F4 Z
- (setq valid T)* A" S( ^+ H; ` f! ?* C% x
- (setq valid nil). h( u2 S' p8 X: N9 K/ C$ D4 n9 _
- )
/ W( |, T9 `1 V8 G - (if (and coord
8 M' U, r2 H* e1 L* u3 k7 } - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
! y; h. W- b& Y, \, ]* K - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
4 V* }7 G* W" |- |% T- K/ S - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )8 q Q% X1 H& F" h: M& Y% X
- )( W& d+ R! r0 ~" P; {4 I- y3 z
- )
% o4 y% C, [0 Z; D - (progn
+ p$ m1 K, w7 T# {! S( C - (setq errmsg! N# [# S K9 |+ [2 ~9 z% k! Q
- "The Root point and the Second point cannot be equal.") I8 v4 j8 C' u
- (setq valid nil)3 {7 A* e% U1 _! H# {0 N0 ^
- )
: G: P' \' J( Y4 R: `- w - )
' q! n N7 A; X* n) B2 I5 j2 p - (if valid+ _6 v/ l' _- z1 m$ ]4 Y6 p3 j. d
- (progn( M* U- p- ?: v# |4 L9 ?
- (if (or (= errchk 0) (= tile last-tile))4 z( |3 Q( q8 Y% O" S
- (set_tile "error" "")
& ^7 U. p% o2 E0 y- P0 G - )
# [8 r2 e" e1 z, a' A - (set_tile tile (ai_rtos coord))" A0 a* B; Q8 t
- (setq errchk 0)% a' I2 q$ _# `! H6 B7 X: p, V
- (setq last-tile tile)
5 Z7 h/ X$ n0 E9 q - coord
4 Q* D; p8 f) E - )
?1 G2 [& [$ |5 @ - (progn
# J! V7 D. L; D. r# b3 D( d( ]9 ] - (mode_tile tile 2) ; Move focus to offending field
3 }5 Z: ^9 m6 u, f# o7 b6 f - (mode_tile tile 3) ; Select offending text
% V/ W$ u' v& c8 _. s) D - (set_tile "error" errmsg)
: r2 T& B$ l' M, s) |1 U& L - (setq errchk 1)7 j3 k; x% P- ^$ J
- (setq last-tile tile)
4 y, B3 t# w6 T( B# e3 Z4 h - old-value) {& d) U# v) T
- ), s" ^" [/ g0 [- u9 s, v7 @
- )
3 J/ V% k0 h' W2 X- D% n - )
% w) y! A* X8 j7 G
4 @9 J0 {/ }9 c: ~- ;;
. {. e6 W B3 N0 c# W& _ - ;; Verify angle function. This takes an angle and a tile name as arguments.7 f, t# U* ?3 ^4 g: ~) V; T: t
- ;; If the angle is valid, it returns the angle and resets the tile.8 v! M3 F* o e! o
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
5 H7 ]0 T0 C: J ~5 r/ I - ;;
/ p+ W7 _. o3 f) X - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)* P, k9 }* G2 K/ a1 ~
- (setq valid nil2 C8 e2 V! K8 \. o+ E `. w# w3 g% D
- errmsg "Illegal input value."
" Z7 i9 o4 a0 g! Z7 c" W - )2 N; \+ b9 s1 q5 v" k& H
- (if (setq ang (angtof value))
2 `: d# b. X. }7 [: v2 S# H3 u - (cond
9 A+ P7 C* M5 m$ h - ((= tile "obl") ; Restrict obliquing angle
$ W1 W0 k9 n5 ^4 C; ? - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001)). t4 m3 D* e6 \% T. v+ C
- (if (or (<= ang oblqmax)
3 {1 X3 X$ o' B6 S - (>= ang (- (* 2.0 PI) oblqmax)) X0 R6 I t9 u1 B( t: s
- ), H) b: [. I- s2 r
- (setq valid T)4 e: ?) I: i* I; L
- (setq errmsg
. ?; Z6 m |0 t) K$ a, i9 ~6 t - "Value must be between -85 and +85 degrees.")6 u6 v0 U' N" {1 R/ I; D( @
- )
6 b' J! y8 n }8 N0 o; v( R, n$ }( _ - )* z7 |, A6 m) U$ f8 L. q
- (T (setq valid T)) ; Other angles not restricted$ v! [3 a5 \ ?" ?
- )% v; s, x& W: ]* ?/ z5 B
- (setq valid nil) ; Invalid angle input
' o% l! `- M" m- }* O5 ~ - )) q1 ^) Q# `( f9 k$ j2 Y
- (if valid; w- g% D( J# y0 A4 Y& v& H
- (progn4 d; x6 W) Z: k% [. ~2 A& f7 {
- (if (or (= errchk 0) (= tile last-tile))
9 y% s! K+ ^5 P - (set_tile "error" "")
6 }' N4 E5 m0 |9 s$ K$ O% |7 V - )
) O' w! X) Z8 e, C7 Z- X% Q) n - (set_tile tile (ai_angtos ang))5 W _) e. l+ B0 M
- (setq errchk 0)
J; K% |2 V9 x/ o - (setq last-tile tile)4 I" c4 z% B# H# v" m* T. P
- ang
* v3 A/ j% Z8 Z2 O, V N# \ - )" E, G& q) \( _4 s7 ]
- (progn
1 s/ o' j* Q3 {% H5 X7 y - (mode_tile tile 2) ; Move focus to offending field7 ^6 O4 F- z# V% p$ E* x
- (mode_tile tile 3) ; Select offending text
+ P8 _5 A; }6 M$ ]) p - (setq last-tile tile)
# a8 ~- Y# Y- H" p5 v; d" L - (setq errchk 1)% l! l7 F/ @8 L4 _7 ]4 r
- (set_tile "error" errmsg)2 X# W( M' ^2 G9 ^: s
- old-value
% [2 \ B. U j+ e; M: u) r - )! \$ D6 v3 t' \# J. Y2 e
- )$ {/ ?4 Z" u) v, |; h* m7 ?
- )4 |3 v. |9 P& W& k4 F6 T- ]
- ;;
& R. W* T. e5 c4 m; O - ;; Verify angle function. This takes an angle and a tile name as arguments.5 \: }# }0 }/ ]1 Y# C
- ;; If the angle is valid, it returns the angle and resets the tile.# o. X! U( }2 _% f, d; }( c
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
6 h, O; f# `+ a% f8 O5 g - ;; This function is specifically for the end angle of the ellipse object. If" T- c% @+ L7 A( _) k$ X; ]
- ;; the end angle resolves to zero then we want to display it as 360.
! Z! A5 s' v, L: o; [ - ;;
9 J3 J i$ o1 I- j8 j w+ s - (defun verify_ae (tile value old-value / ang tempend)
5 G. s# C' A3 Q - (if (setq ang (angtof value))
. H! e8 g# c: i. |' b - (progn0 x$ N3 P2 y3 d: C# S- Q
- (if (or (= errchk 0) (= tile last-tile))& F7 _4 d: q) x; t8 s- H5 @- R
- (set_tile "error" "")$ n+ \, z* ?0 W
- )
- |: w9 z+ o& I. q6 j - (setq tempend (ai_angtos ang))3 N3 N v4 _+ {
- (if (= tempend "0")' v% ` F1 l- H% O1 [
- (set_tile tile "360")$ P; r/ U* ~+ z7 \7 {6 b Y) J
- (set_tile tile tempend)
- q3 f! a) h" p7 ` - )6 j8 i5 J5 `8 v& `( a( F
- (setq errchk 0)
# @+ g, Q i* z% S' r! D# i6 t - (setq last-tile tile)5 N9 W6 h7 W! F) S/ }- d9 n3 O
- ang
/ d2 }# E2 J7 Z1 ]1 S- @0 [ - )) Q) K9 Q; u3 I* Z6 E
- (progn
% ^$ P5 X0 U4 a2 I" j4 m* z# k' ? - (mode_tile tile 2) ; Move focus to offending field; W6 |/ M' O5 o! a5 n8 W$ I
- (mode_tile tile 3) ; Select offending text7 v ^) D9 I$ k
- (setq last-tile tile)
. H u+ `# D; T0 S( U0 ]/ T b - (setq errchk 1)+ f/ |4 \! w4 ~6 N3 I: [
- (set_tile "error" "Illegal input value.")4 P. S; S. g% |: U! `: P
- old-value
9 f+ t, O/ e! T% \ - )& }8 ?+ O8 e% {3 @. |
- ). Q- J* N% ]( m$ x! d/ k
- )
3 `3 y2 Y. o) x" x% H& } - ;;" W2 F$ O: M9 ?% s
- ;; Verify integer function. This takes an integer and a tile name as
9 s: |7 E* s8 B' {4 ~ - ;; arguments. If the integer is valid, it returns the integer and resets the) y ?$ ?. [( Z4 ^, F! v
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile., s2 \4 q1 P3 o1 s
- ;;
$ H, z3 `" x6 Z/ y8 Z - (defun verify_i (tile value old-value / int valid errmsg)
$ A* n7 c! u9 |: s, V - (setq valid nil)# U6 h' ] X; d/ |. s
- (setq errmsg "Value must be an integer.")/ {6 ^: |- O9 D7 S
- (setq int (atoi value))
2 Q& i7 c2 p( p) H - (if (setq intchk (distof value))
8 B; [, f' ~9 z a# o - (cond
6 n. v% `0 r' x/ G' C( O - ((or (= tile "columns") (= tile "rows")), J: p4 B S( H
- (if (and (= int intchk)
& Q L ?% Q6 h# x! a9 ? - (>= int 0); S- G& q6 ~. n/ C; E. k' H; z K g
- (<= int 32767)1 }) d& r v; K3 _3 l0 k2 R
- )+ `* s" a' Z4 F8 e9 O& H8 O1 g" Y
- (setq valid T)# j3 }. j5 e2 N- Y
- (setq errmsg "Value must be an integer between 0 and 32767.") \* R9 ^9 N8 }6 Z
- )
9 d! L1 f$ O; J& M8 j+ A* w; s5 {' O - )
9 n0 v0 v; ]" g - ((and (or (= tile "u") (= tile "v")))$ b! D5 C' k" ^$ n5 \2 T/ u
- (if (and (= int intchk)
& S( B: f0 B- q, G6 W. l# ?4 { - (>= int 0)
) E- h9 W5 h! n/ J - (< int 201)- s* f- ~) \% r' ]/ m$ C! M' P; G
- )
# ]7 |6 y, K- ~- _) e; ^: r - (setq valid T)2 G3 n1 d' t1 i) {" N
- (setq errmsg "Value must be an integer between 0 and 200.")4 W: n" r. o$ j- d# y
- )
, I( j! u5 q+ ]2 h6 a - )
% U1 U% ?0 z% ^" l2 V* H - )
0 I1 Z+ U- S& ]" \6 o0 O - )
: v8 G- U% ^, \ - (if valid
. K+ W; ]2 @; E' g+ s3 W' P - (progn; G* x1 i2 a, W: S2 [$ S; x3 ^
- (if (or (= errchk 0) (= tile last-tile))
$ T6 Z4 y4 I/ b - (set_tile "error" "")9 P2 s+ Q/ P( @
- )
& z+ N& [, z7 j, L3 J - (set_tile tile (itoa int))
% x' c1 {( F# N* { - (setq errchk 0)
6 x. n+ B# a( U j* R# ^4 y - (setq last-tile tile)
/ e- }0 Q q1 z$ s0 j) Q; g - int6 i B/ Y3 F. e7 u! B5 E& o( C
- )
V# r( D- b- h* H3 i - (progn0 A6 i: ^! E2 f. T
- (mode_tile tile 2) ; Move focus to offending field( B. |2 ~3 R6 j: L7 E! _ N
- (mode_tile tile 3) ; Select offending text7 }$ ?& l9 c4 b
- (set_tile "error" errmsg)
: {% U( o) P9 d, V - (setq errchk 1)
2 n+ u; I; \- P6 j' Z - (setq last-tile tile): N0 v# c! |2 Y, l' w! L, E, y
- old-value
) ~* m* O: q. H* o' r2 w/ S2 I/ E - )
6 T5 k6 f$ R4 ]' N1 K - ) L1 A/ p0 Y2 a& V, L: q! W s
- ) W$ ?4 x4 |- ?8 I
- ;;# A+ N" S+ G$ C0 W
- ;; Functions that verify tile values for integers" F: z$ \. j" w. Y, l6 r$ o
- ;;
8 x1 t% U4 B1 c% v( t! p' \. L/ s - (defun ver_col (value)( R) x. Q. y, _( K; a
- (setq columns (verify_i "columns" value columns))( c+ s" F+ u" w$ z+ `
- )
# |- B8 U8 v* }' ?8 e0 p5 l# J9 ~8 I - (defun ver_row (value)
% v' o5 v# a! p( z! }" J; J - (setq rows (verify_i "rows" value rows))
+ g7 B8 c" a# S, B - )8 |3 @, p/ e+ A5 A* `
- (defun ver_u (value)& d h3 a) E" I/ k' \
- (setq u (verify_i "u" value u))" v/ i, S! F7 I0 f
- )
s$ [% ~) y. _ z: [% _8 G+ Z - (defun ver_v (value)
/ x6 v7 w. \9 o4 P- S - (setq v (verify_i "v" value v)). ^, l; s( E: N9 m
- )
7 c, A0 k$ Q3 ?, z# k P0 } - ;;
2 ], M* \8 _& z" L' B' p' M ] - ;; Functions that verify tile values for reals9 u# D+ u. M' v4 c
- ;;' o: b: Y1 {! \$ o, T
- (defun ver_x1 (value); ?9 `$ [$ W& v7 E. [. g
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))0 [& ]# J: x H" O" T; B1 w
- )
* E7 H- @0 a( p- `7 K - (defun ver_y1 (value)
7 ]2 g! U6 x! P `9 b! [ r - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))& |9 _5 Z( k+ }: x
- )
4 w4 b; ~6 L0 a - (defun ver_z1 (value)
& J `1 |3 @# ~0 D* F. ] - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))9 {; p/ y! z, K* f' s- x9 C0 _
- )1 [6 ], \ }4 G. N
- (defun ver_x2 (value)/ I! e& e! h0 Z
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
+ a8 e& b2 J% L0 I; B - )
8 y3 X% a# a6 a0 f2 L8 s% U - (defun ver_y2 (value)
i* A* o! i. ]. g0 b5 Q$ K R - (if (setq y2 (verify_d "y2_pt" value y2)) (calc)): p" @! v% t5 l2 @8 j
- )* w. B) K' }( _4 g9 x% x3 E' `
- (defun ver_z2 (value)) i7 K- n/ \9 j/ z2 H
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))3 `/ K) }: F1 y
- ); d' l0 y! O' h" d7 d" a* u& |* {
- (defun ver_x3 (value)) {5 v* ~. ]5 m3 M, r) R5 K8 `
- (setq x3 (verify_d "x3_pt" value x3))9 w$ t. B. y w- l' Y6 G
- )( D3 ]3 q+ @3 T% j6 O+ Q# a
- (defun ver_y3 (value); Y$ m- P% X* r
- (setq y3 (verify_d "y3_pt" value y3))) o/ ?+ d' F. \
- )" ^6 P l( u8 L& R
- (defun ver_z3 (value)
. I' @7 \. H% I' k - (setq z3 (verify_d "z3_pt" value z3))8 f6 @( w$ t( C0 R# O
- )
" f; `$ I$ V- [ - (defun ver_x4 (value)
/ d8 B0 p! `$ }" d" d3 j - (setq x4 (verify_d "x4_pt" value x4))( O7 u# q) a# e: `9 ]* J' d
- )* h1 Y2 Y/ x5 Y0 e! D6 X4 Q
- (defun ver_y4 (value)6 P* U8 Z2 g$ X" h& {
- (setq y4 (verify_d "y4_pt" value y4))
# _0 `; y0 C" p - )9 _$ {+ N' k& _5 ~. J
- (defun ver_4 (value)
. ?+ o0 x3 @+ f: C8 W5 H( o - (setq z4 (verify_d "z4_pt" value z4))
4 V- x' m6 ~! \3 H - )
+ m% ~- S, u! V9 j - (defun ver_xscl (value)
( f' ~+ W, f3 q( |* t - (setq xscale (verify_d "xscale" value xscale)); N; s0 u% g: o4 m3 K5 S. k. l
- )
1 _1 [& t% x' ]1 Z5 z) h4 g5 {! [+ k - (defun ver_yscl (value)
6 \! e2 l. f% X! [) q: _ - (setq yscale (verify_d "yscale" value yscale))
/ M p0 C! q/ M" u) W1 G; U - )
; \) I5 T8 ^. O) o. H" Y5 ^ - (defun ver_zscl (value)
" [* q, B# H, s) U3 l- e8 B. k, u - (setq zscale (verify_d "zscale" value zscale))
V" J# E) Y3 H) A7 p- |7 F0 @2 l - )
7 `" }1 l: I9 G3 }. A7 ` - (defun ver_colsp (value)$ O! o* C3 G0 \0 O# H a: f
- (setq col-sp (verify_d "col_sp" value col-sp))( {! `% Z# g0 q- a8 G
- )
. H% {7 e2 i3 ?! V$ j - (defun ver_rowsp (value). D+ n0 w9 p; h5 @$ B7 B" u5 _0 j" {
- (setq row-sp (verify_d "row_sp" value row-sp))
8 U+ E4 O' r, r+ _" v - )
$ D2 y: B. @$ \ - (defun xclip ()% O* T. t/ R8 b; z, ?
- (setq xclipmode t)3 J0 L- L, @( F
- (if (= xcliponoff "1")
. L3 }$ |/ s+ J+ O - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")% \+ x/ q* O D( ?2 `
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off") ]6 s4 K5 g7 S8 ^7 I4 c5 e
- )+ q+ D' w9 z+ q& ^ X8 H
- )
# [4 o. Y6 L/ C2 [5 e6 F - (defun ver_rad (value)1 _ O" n3 D( v4 N8 J/ M
- (if (setq radius (verify_d "radius" value radius))! _. ]. S5 g' U( K
- (calc)
* C. `9 `4 [; `, F - )
1 a& }3 t4 _- K9 {8 M7 t, j- W) ] - )3 J8 e# ~* F% Q0 `, @) B
- (defun ver_majrad (value)
8 @ e. f9 q$ x3 }6 d - (if (setq majrad (verify_d "majrad" value majrad))* F+ v! A! b( O: j K" ?& p$ P4 E
- (ell_calc_newval "majrad")! h# H1 ?) ?/ \& }, {% a# j
- )- I7 j, P7 M/ U9 D
- )
/ X9 \; i O8 z% p - (defun ver_minrad (value)9 ^ v% j; y2 C0 ~. }- s
- (if (setq minrad (verify_d "minrad" value minrad))
0 u( g$ F2 S8 j# _: e5 L: i y - (ell_calc_newval "minrad")
7 z0 @$ O( `6 k E9 Y! `$ E - )" I9 q5 \ f* }; b# d5 U$ u" e' T
- )
6 e/ U+ x: |2 i9 V: P+ { - (defun ver_hght (value)
& p% q3 y L! C, I - (setq hght (verify_d "hght" value hght))
4 S% Q. X- k' s# O - )
6 A A$ W: E9 ?! C - (defun ver_wid (value)
4 I. p( T" F! ~7 j1 }7 \4 ] - (setq wid (verify_d "wid" value wid))
& m, R7 b5 E/ S% |0 q - )
( } `6 e9 n2 o. @ - (defun ver_xline_x1 (value / temp): |+ J" M7 r/ E
- (setq temp xline_x1)& K) H; E% D3 d0 P2 f5 u1 F/ E
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
8 [" T% z: v0 _8 |3 D* Z - (if (/= temp xline_x1)% O( @0 I- s; ]' j4 Q0 \" Z) S: g; q
- (progn (modify_xline 0) (set_tile_dirv) )
9 C, L( B; T9 C& ~ k - )
]. W( p: b6 P8 ^) R2 _ - )$ w9 L% G& h9 `: z+ g' \
- (defun ver_xline_y1 (value / temp)3 K0 `! W. b) \
- (setq temp xline_y1), F9 D8 p6 k7 ^! i0 S* ?
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
8 H- A& ^! g- ^" j; ` - (if (/= temp xline_y1)7 C+ [/ `. @; h- T8 F
- (progn (modify_xline 0) (set_tile_dirv) )( q6 o' j' D0 |' U3 p
- )
]8 k) Z1 u2 ~% d4 w! g: F - )
1 o: t# J' ?# b$ `* T2 A - (defun ver_xline_z1 (value / temp)! O" E0 Q y) S; t. U
- (setq temp xline_z1)2 h2 ]& A, g0 i" _# |2 R
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
) k0 v' H: C; T' q: o& ]! w - (if (/= temp xline_z1); `) n) D) w( G
- (progn (modify_xline 0) (set_tile_dirv) )' @' Q: u8 k) v0 F6 ?( y5 B$ g
- )
4 t$ q( @5 c. p7 ?2 g - )# h6 m1 Y) y! W# ^- H4 |
- (defun ver_xline_x2 (value / temp)0 W2 ?' V$ e2 {- Z8 M: a
- (setq temp xline_x2)
( z5 t4 }) A0 t% q- S( L) [ - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
& J( W# x; G5 v6 ]7 S - (if (/= temp xline_x2). w# e$ b1 T3 a6 `4 N1 N
- (progn (modify_xline 0) (set_tile_dirv))7 K$ u2 `3 F1 Z# @- `+ B# H
- )" C2 |4 j6 M- ~ O
- )
4 o" j5 O+ X# s9 X7 m$ n' S, H - (defun ver_xline_y2 (value / temp), q# s) G5 p4 j. ^) z8 l1 k7 Q
- (setq temp xline_y2)9 L+ I2 J9 [; y. s6 P% J
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
1 H8 d" v( B5 l) v! i5 f; ~ - (if (/= temp xline_y2)! [( C' o2 q2 ^2 L; |" A2 o3 G
- (progn (modify_xline 0) (set_tile_dirv) )/ Z; v, i, f9 s$ t5 K5 W- \
- )
I& d; k* [9 G - )7 O4 [5 r2 ?" g& n" c5 t" y
- (defun ver_xline_z2 (value / temp)
6 T; e0 p6 s9 J* h( Y+ d6 g7 [+ ~; V - (setq temp xline_z2)
( [9 `( n9 }( S( a G) } O; O - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))4 B3 x/ b. h Y( _3 Q4 P2 b& }
- (if (/= temp xline_z2)2 J: z4 p$ N) h/ G/ W' A
- (progn (modify_xline 0) (set_tile_dirv) )
- j0 E" h" j! i& {8 K' C - )3 \& E. Z* G8 H) U6 l
- )
$ ~% p" q( Y3 ^7 u+ ~ - ;;6 c6 L2 w" y7 c( |
- ;; Functions that verify tile values for angles. J% x; c0 i" u# f* Y+ [2 G
- ;;
% @" E" v& v `, K' x6 G - (defun ver_ang1 (value)
% m9 f3 Y5 b9 Z( D" I8 x: `$ F - (if (setq st_ang (verify_a "st_ang" value st_ang)). M; E0 j0 C: G, q/ V
- (calc)
0 o1 U. _( y. S9 [$ E' { - )
+ I: E# q: C5 _) ]( y: k/ d4 {. Y - )7 t! n; b: V3 r% A$ M* \2 n
- (defun ver_ang2 (value)
; E$ v+ |7 c* z7 J/ {0 b - (if (setq end_ang (verify_a "end_ang" value end_ang))
- z0 G- H% u& r& |! D - (calc)
, S3 g: o( t$ N; W - )- `) R0 L$ ^) r
- )
# D) ~. z! l1 |) U. o' r - ;;4 K" m# l, Z1 O+ h( X, }
- ;; Verify tile value for ellipse end angle. Handled slightly
. P; z a; r6 m4 z( l - ;; differently than the other angles.
1 B% _% Q5 G8 l' n - ;;
8 j* r# o' v! t1 O: M% I - (defun ver_eang (value)- X( u6 m3 Z! s B6 N B( N7 l' e
- (setq end_eang (verify_ae "end_eang" value end_eang))
# B ? r1 d- V; S8 m$ { \ - )
$ z: c! Y. J' x ^/ b - (defun ver_rot (value)6 I1 K9 ^9 O# T: I; R; i2 T
- (setq rot (verify_a "rot" value rot))
# c6 O. u8 Y& W/ s/ H - )
# ^7 x$ y* s; M. L - (defun ver_obl (value)
5 Y+ I' D$ u) H! Z - (setq obl (verify_a "obl" value obl))
, V, B7 P! i# N% M1 U - )
* E+ _+ l& I5 u1 w) o6 X1 K - ;;4 b, V7 N! S3 B6 d# `
- ;; Function that verifies attribute tag field for null string,
2 S, M) W% j3 L5 M0 o5 F - ;; or a string that contains one or more spaces. Tile value$ F3 ]. _1 u3 w4 s3 N7 v7 b- ]
- ;; is also converted to upper-case as well.9 M* r0 Y4 }" m/ R0 a/ P" m% L {
- ;;
2 r, W) { r0 J* Y - ;;: G( P" |: i8 Q f) q( ^9 O0 z/ G
- (defun ver_tag ( / tval)
q' \! A$ T! t/ V8 z/ y - (setq tagval (get_tile "tag"))3 {; B" b. e6 {5 g
- (set_tile "error" "")
: e/ z# L4 |: X4 f3 T, b& L5 M - (cond
- B7 K; P; j/ e/ q5 b - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval)))): {- U6 l4 l1 j! q4 u$ I; D9 ]
- (wcmatch tval "* *"))
4 b5 ~% C% U$ ~' j5 c! Q" R- D - (set_tile "error" "Invalid attribute tag.")
# Y4 @+ n3 {2 u( m - (mode_tile "tag" 2)) S# n- k7 F3 Q! j$ ^' d, R
- (mode_tile "tag" 3))# X' u e5 U% o6 g' d$ j
- (t (set_tile "error" "")
* i5 i( D3 A! @/ E - (set_tile "tag" tval)2 R3 P& U8 ^7 W! t
- (setq attag tval)))
3 c" @5 [7 ?) M7 u$ Z - )- [, h0 T Q$ |
- ;;
/ A0 G' ^2 y' I+ b0 k - ;; Calculation functions
2 _- Q. Q! h" J1 \ - ;;; h# }1 f8 w: r! @4 N; h
- (defun calc ()
! t7 t- }0 ~9 z7 J - (if (= etype "LINE") (line_calc))) \8 E/ s1 j! G% {/ {0 ~
- (if (= etype "ARC") (arc_calc))3 j3 K6 O# `4 b9 v( U5 I
- (if (= etype "CIRCLE") (cir_calc))
4 q3 J/ v3 j3 O3 T2 |0 C* L' M - )
% W. _3 l/ D7 e5 I* Z1 I: Z - ;;
' Z" k' e0 H# J$ f8 ^6 _ - ;; Calculation functions for lines, arcs, and circles
/ d) @; c; \, p1 z N4 A - ;;5 b, \' r: e6 [5 P3 ^
- (defun line_calc ()) s* V. a- y4 }2 s. }4 V/ L* G
- (setq stpt (list x1 y1 z1))
* J6 `) w% C3 _ - (setq endpt (list x2 y2 z2))
9 l" M4 ?# f5 o, @0 I - (set_tile "delta_x" (rtos (- x2 x1)))( `$ o k9 E- o' `9 K
- (set_tile "delta_y" (rtos (- y2 y1)))' s. L+ V$ m# c: w5 {8 t
- (set_tile "delta_z" (rtos (- z2 z1)))
! a; Y3 W) p5 Y0 A4 M - (set_tile "l_length" (rtos (distance stpt endpt)))% _# t& P" P: K
- (set_tile "l_angle" (angtos (angle stpt endpt)))) T6 N0 @5 h. `" Y" m3 `3 B2 j
- )6 n) m# S- X# H. W
- 7 M3 T2 r @+ M) m6 S! p' {2 w
- (defun cir_calc ( / area units)4 K3 O- x2 X! m! f0 V1 O
- (setq radtest radius)
L3 z: R1 I( ?7 e5 u- G W( A - (set_tile "Dia" (rtos (* 2 radius)))' D! b" b5 ^: I
- (set_tile "Circum" (rtos (* 2 pi radius)))7 x6 w6 |0 ^% i! {( p
- (setq area (* pi (* radius radius)))
1 f: ~) t9 W- C) ~* `4 C9 ] - (setq units (getvar "LUNITS"))8 ?# U$ z1 u1 R5 s7 c. L% }9 f
- (if (or (= units 3) (= units 4))- @& d6 c3 v1 g* h! @. v" k. L
- (progn
7 n; z- W/ r! C, [ - (setq area (/ area 144.0))
8 [( o1 ^( h( Y - (set_tile "Area" (strcat (rtos area 2) " square ft"))2 U2 {9 ?+ B' J; r7 ~. i$ b. O
- )2 E& w! m. D" }& [8 s
- (set_tile "Area" (rtos area))
" |5 H# ?+ Q/ ` - )
* ^8 h q4 H" k5 R: h3 R4 R+ Z( l - )
) I: G% B3 ^4 h: V+ c - , B. l0 A. R8 V' s9 x" g
- (defun arc_calc (): x c9 V0 b4 b- {8 p$ O
- (setq totang (- end_ang st_ang))
" I7 K8 _5 d6 c9 m$ t - (while (< totang 0)
: j$ Q Z9 q: a4 j; g - (setq totang (+ totang (* 2 pi))) H; \( N9 M, O: [
- )
1 `% u5 ?4 l( m4 q; W) r. n1 u. X. W - (while (> totang (* 2 pi))
* m& k( @" ?: n2 E - (setq totang (- totang (* 2 pi)))
' \4 c2 p9 p: L - )
. o/ X3 @8 V( G! G1 V$ T0 z - (set_tile "tot_angle" (angtos totang))8 g. F# F) q& B% U: |
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
9 H! t7 l4 x; x5 d8 M! { - (set_tile "arclen" (rtos arclen))& z& j. G' q9 ?6 k: V1 q
- )- u, M! r9 I& n- M* X3 }4 H
- ;;
$ d4 \; Y/ m6 o( l" q1 _: ~6 b& w( t - ;; Calculate the major radius, minor radius, major axis direction.
) c: S( ~! K5 U$ G* ` - ;; Get radius ratio. Convert Start, end parameters to start and end# }3 _' ~2 j, g
- ;; angles. Save Major Radius value in "old_majrad" in case the user
- R7 z3 ^4 Y; b) J) G7 I& F - ;; chooses to input a new Major Radius value later. It's needed to
9 p. n0 G1 I' W% z" j" q8 b! r \ - ;; calculate a new Major Axis Vector value.0 z( X8 e m& _7 {9 j8 d, X
- ;;7 J/ _7 _2 E) P- H* H: G5 g& Y8 `- H7 X
- (defun ell_calc ()* {3 q g, I- a( o3 c, N. B8 N
- ;; Get major radius from the major axis vector.3 n$ J1 E4 l: ^4 G: ]+ _
- (setq majaxis (cdr (assoc 11 elist)))
" d$ t+ g3 t5 ` p: C8 q - (setq xx (car majaxis))
# \% I3 d0 _# ]8 T - (setq yy (cadr majaxis))1 o; [" ?/ p( D% J6 A
- (setq zz (caddr majaxis))# e q: {: {# P1 s" M' x, ^
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
6 Y {: V7 J! \8 Z! i9 Z6 h - (set_tile "majrad" (ai_rtos majrad))
5 n/ ]+ C& Z9 } P6 y C - (setq old_majrad majrad)
! J0 `+ s: e# v- J: [ - ;; Get radius ratio
3 K9 ?: K% D0 F! B1 M0 N; N - (setq rrat (cdr (assoc 40 elist)))" ?4 C w3 ^1 H
- (set_tile "rratio" (rtos rrat)); @" {4 w+ b% `
- ;; Calculate minor radius
) I I/ W7 P6 }4 g6 e2 { - (setq minrad (* majrad rrat))$ K$ r, N; g; t9 V9 t3 S6 y$ s0 G
- (set_tile "minrad" (ai_rtos minrad))
4 y$ l, v7 B. j: P' l - ;; display major axis vector2 ~% o1 ~; Z! C ~: J4 U5 ^
- (set_tile "Majraddirx" (rtos xx))
' G5 ^- r1 C; T s. V! y - (set_tile "Majraddiry" (rtos yy))
# [9 d$ l; z7 G( H+ y; x - (set_tile "Majraddirz" (rtos zz))4 h% \6 j9 A. ^) W+ } s
9 u$ C$ }2 `! E. j- ;; Convert start parm to start angle
! A- ^1 D5 R4 y6 m1 T - (setq stparm (cdr (assoc 41 elist)))
& e% k0 e& j- g2 G* T- S1 p" a% i - (setq vecx (cos stparm))
( E9 h' H% Q, ?& o( ~9 t - (setq vecy (sin stparm))
' q% f' B! Z- z5 h& ~$ t - (setq st_ang (atan (* rrat vecy) vecx))
( I( ?: E0 g3 k+ P" j# _( \; q$ J/ o - (setq tempst_ang (ai_angtos st_ang))
' N, t$ D; p) f# B. n( `+ h& k - (set_tile "st_ang" tempst_ang)
( X( H( P9 W3 }8 t& r - ;; Convert end parm to end angle. If end angle evaluates to 07 o, ~5 C; Y I2 N
- ;; degrees then display it as 360 degrees.
& ~0 m$ l4 u. C; y - (setq endparm (cdr (assoc 42 elist)))
4 r) {; w# t( l. f' H5 q - (setq evecx (cos endparm))" l. i9 v, {& a* n( { b4 a; R% |
- (setq evecy (sin endparm))) N0 {& q; u! y* K# f% n. i' e
- (setq end_eang (atan (* rrat evecy) evecx))
) n1 b2 P7 u5 A; L. [% _ - (setq tempend_eang (ai_angtos end_eang))1 I$ s, g9 R. ~; F) @
- (if (= tempend_eang "0")
+ _6 T# C; k- Q X: m - (set_tile "end_eang" "360"): m# }% n/ s$ |$ h( r: G
- (set_tile "end_eang" tempend_eang)
5 I0 r _8 `: p9 v. ~0 n - )
- W7 P( `. F! w1 u# h - ;; Get area of the ellipse.0 Q1 _: m+ `, l$ M* V0 n
- (ell_calc_area)
; T6 Y: v0 s5 l - ), Q2 ^, h* t' V. j
- ;; Calculate area of ellipse. If it is an arc then: R2 V% }) J$ J- k0 e
- ;; grey out area display.2 c8 L# \( M* ]$ E, w4 o8 I
- ;;6 L5 V( Q' S! d4 U& C
- (defun ell_calc_area ( / area units)
0 j# x) b) L- `' W* `% H - (if (and (= tempst_ang "0") (= tempend_eang "0"))
0 Y& v0 Y, Z3 q/ B - (progn) s# u6 C/ U" P8 T
- (setq area (* pi majrad minrad))
" y% N6 f: G5 D; A, o. N8 P4 O - (setq units (getvar "LUNITS"))5 F" w8 b# \! K; `4 r! }
- (if (or (= units 3) (= units 4))
) a5 R0 K; C% {2 S - (progn
7 s1 r& c4 V7 o& k9 K - (setq area (/ area 144.0))6 S' O5 p( d) r
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
/ T$ Y Y) q' N - ): E7 b6 j0 [/ n2 z
- (set_tile "Area" (rtos area))
9 V" J" [( I \8 m - )
* W1 l+ [7 h/ b D5 m1 K1 I- K - )
9 _+ L( Q) ?" o- b9 N1 g+ l - (mode_tile "Area_text" 1): w0 Q2 S8 b4 m7 \$ `3 V
- )5 M1 ^+ [& `/ b9 ^7 S+ \8 l
- )
- E- b/ v' C- o& O4 ] - ;;
" S0 `) w+ v d+ k# z - ;; Calculate new values for ELLIPSE8 O1 c8 J! Q# I+ ~$ R8 Y$ `2 E
- ;; Minor Radius, Area
& C, i8 s$ b0 u$ [4 r' Y - ;;" o% c" F5 P3 q8 W. I0 y- B& g
- (defun ell_calc_newval (ell_tile)
: F& f* D1 q: m6 E; H - (if (= ell_tile "majrad")
# A$ L! D+ D9 @ - (progn
5 }9 g( w7 ]: F - (setq rrat (/ minrad majrad)); c* w# ~, {( Q ^' w
- (set_tile "rratio" (rtos rrat))
0 @ s5 M3 Y; F; x! h - (ell_calc_area)
+ R/ ^- I) H* H - )
; F% n: T; m1 \$ M w! E - )
( B# ^# Z% j+ E$ |# W, d - (if (= ell_tile "minrad")
3 z- R7 F2 Q0 ~3 ]: e7 m+ s, ^' e - (progn
7 o0 u9 H- a% q; m - (setq rrat (/ minrad majrad))
6 ~% h& t* |; K$ Y4 y - (set_tile "rratio" (rtos rrat))
+ q( ]- ]$ F3 c! z - (ell_calc_area)
& ?2 L/ Q, ] X* I! c6 o - )
. l$ A% R, t4 f* w+ N0 O$ v - )# ?& h( Y. H. p3 h# k8 A
- )
" u2 ]4 i# D" E. X7 B& y$ a. k* R - 6 p# r. ]# Y% A) c8 E$ V9 F
- (defun set_dimen_props (/ loop a stl txstyname)3 x3 ?; {* ?3 h# g. C
5 T" M( J. `. ?" c- (setq stname (cdr (assoc 3 elist)) ; get style name# v0 \5 @! B. \' t
- stl (tblnext "DIMSTYLE" T)
* Q, J1 N' t5 e) m/ A, X$ p - stlist nil)2 j9 w/ M" a' X6 h4 t$ E
- ;; Get all style names and list them in alphabetical order
: I9 l/ z6 Q' j! H6 F - (while stl
+ K0 e% X* j% \, n, _) L8 ? - (setq sname (cdr (assoc 2 stl)))
/ [/ I. @5 V( y B8 h _ - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)' l' o8 ?" k& {# e( Q9 L- |+ k" W
- (setq stlist (cons sname stlist)))
* f5 |. _1 j% B" U; Q7 z. q) g2 Q - (setq stl (tblnext "DIMSTYLE")))
3 o9 o0 e5 c5 k) l! P& c6 X* P) @
' [% R' A1 U U# L1 _- (setq len (length stlist)
4 i+ F* F, f1 A' o3 _8 R" B - loop 0
* _8 {$ @7 m9 A6 u2 s+ a8 v - dimsty stname% R6 @8 Y! O% u9 S
- )( a' B' v+ ^ w3 R' Q# _
" M; J L2 E6 E7 Z4 F& S- ;; alphabetize style list, depending on maxsort2 B! S( }) }2 N# ]9 t$ `2 ~: n
- (if (>= (getvar "maxsort") len)0 f5 g0 j" ]# U F( q
- (setq stlist (acad_strlsort stlist))) I; x& q+ ?0 ]: I" A' o
- (setq stlist (reverse stlist))). U8 n& |4 Q4 v5 D" G
5 ^ | o/ c, X- ; *UNNAMED style (dimsty = nil at this point) is replaced with2 [5 m5 S; ^& l8 t. A7 t
- ; the current style. After R13, we require dimensiosn to have a
- ?# N7 Q$ F l4 S. f - ; dimstyle, so we plug any holes where we find them.5 q: X8 s" i+ Q& U+ V$ e
- (if (null dimsty)$ F* K9 i6 F d( [2 M
- (setq dimsty (getvar "dimstyle"))8 N, J0 m& m" b/ z& U
- )1 R; Q) N, Z* T" t; ~: t
- ; Show the styles in combo box, L3 e. ]% F3 b8 x* R4 t
- (start_list "mod_style" 2)6 `! b2 M& n" V$ P% j
- (while (< loop len)
0 D9 t( m2 s! [/ ?$ q - (add_list (nth loop stlist))) f7 Y; ?) B( l' V( |
- (setq loop (1+ loop))7 S* P+ M7 t1 \6 G* ?
- )
~% Z I' {+ X& h3 t4 J
$ E' g: |/ K* u+ g$ b- (end_list)
: P: S8 t1 H5 J/ B- [6 b4 U - * z$ T6 T# R3 S# B2 l1 H
- ; Hilight the style name of the selected entity( h* S V7 |) {/ i$ A
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
: q0 D B" `& s, Q - (setq loop (1- loop))
6 \+ i m5 h- I% V6 p - )" r% q; K- {, p# U7 l) }
- (set_tile "mod_style" (itoa loop))
6 D. w: f! F j - + a/ ]( c z( Z) a2 \; \* B
- ; The following is the list dimvars. It must be sorted in the same
% U' J6 K9 p* R - ; order as the resfub returned from DDIM (ADS module).
4 r! Q9 D {: p, u - . t% p' _! g a
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
R! Q2 h j; U! b' M/ L2 {9 H - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"6 {5 ^( N2 o6 I, z+ P3 h
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
5 {/ E+ A# p$ j* }8 D; B - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"8 d' b1 [6 u! m3 G8 a! i
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"( |4 l' M1 w8 g l% F5 Q, T+ @7 u( P. S
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
/ n2 Z3 C. z f1 r( x4 x2 c - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
: L, { c8 N. Z. ^+ z& X - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
A9 L% ` ^5 j. }! b - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit", a }" E6 [) W
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
# C1 g) X$ j! _1 t: ^0 K7 z9 z - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"5 K) M( {/ j- h* ]1 _" _
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"3 v1 c3 ]1 n) c' g- A
- "dimtxsty"9 v1 W: P1 Z3 n: O7 u7 T3 X
- ))
0 y% @: f/ d* ?1 B% {1 ] - (progn
/ }% H7 i- R. U( b2 R - (setq sv_dvlist (ddimen_getostate dimsty)9 o$ ?6 L/ M8 E4 B7 \
- txstyname (assoc 340 sv_dvlist); v, N: _1 C2 {) N* e
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))! m# [ `( f+ S7 n( N/ ]1 W
- txstyname sv_dvlist)$ a3 p/ ?, y% [0 _( R) C) u6 Q0 s0 R, n
- dimlist sv_dvlist
( A! `) O5 K* K - )
; U/ a$ C2 j0 a, a2 m, K - )( v# q. F: d; q: w
- (if (= dimtype "DDLEADER")
+ h0 d! u; i/ C" Q% P; N7 y; k' g g3 } - (mode_tile "mod_format" 1)9 _) v1 b: y3 n' ^0 u" V4 h; A
- )
/ ~$ v$ D3 i2 G- C - (action_tile "mod_style" "(setq dimsty (ddimen_style))")& s( j0 N6 J+ r$ D/ ?
- (action_tile "mod_text" "(done_dialog 4)")' {& P: k. R# x' Z8 o4 f4 U3 Y
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
6 Z& j1 ?9 V6 T* _! j# S - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
* k3 ^0 Q5 I, H. [" R B - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
5 E0 q. T3 ?& I, a5 b/ \5 R9 o; w - (action_tile "accept" "(done_dialog 1)"): D" P/ u7 X, ]! o- c
- )
. n( d+ I1 M* ?( n" a) l - ;;0 C. \7 W+ F; k7 r, j" r
- ;; Get dimvars that have been restored.
( r# j8 q! ~5 ], |& \ - ;;1 H. g+ Z) B' z$ g' u0 R$ K
- (defun ddimen_getvars (/ elm dvlist dv i)
# b: e5 m* v) \; z/ ~2 q5 l - (setq i 3
* q$ t* P# g4 c' R4 `$ Y2 n1 K - dvlist (list (cons 0 "DIMSTYLE")
( q' H/ n8 Q/ b2 | - (cons 2 (getvar "dimstyle")) (cons 70 0))
% x) T+ Q, t" r - )5 k6 F, k% y3 w1 d1 n
- (while (setq dv (nth i dimtbl))0 C$ ]2 e; B7 l
- (setq elm (getvar dv)# [- A+ F* p2 @' g; G
- dvlist (append dvlist (list (cons dv elm)))
/ k* F. P8 @! `, l4 v3 Y; ] - i (1+ i)7 o' u9 D0 @" p8 [9 ^
- )! K+ R* B2 E; i. {$ P
- )
- z/ R3 S4 X( B0 ?. q% | - dvlist
1 ]" \$ s" y) J3 q' j - )' {+ e4 T1 e3 P, l1 M
+ c5 }. ^( F+ z( F9 n* |5 U- ;;$ @5 ~$ j( E+ M4 f, T4 W
- ;; Get the original states of dimvars. This is for DIMENSION entities.
9 H4 K$ @: z/ }4 m, F - ;;
. G; |3 A* U1 j) c7 \ - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
8 |! w' c/ g" @$ p - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
' R* J) e) Q; [/ _/ y$ [, e - dvvars (ddimen_getvars) ; Get dimvars for that entity
; s$ v5 |0 w( R @! J - i 1, V/ t6 t+ I; w2 z: M w! H6 T) ^4 f
- )" C' l3 C! O+ ~* _; }
- # O5 K3 J x e
- ; Create a list that contains values of the selected entity.# H1 Q1 ] D" m$ \
- ' s5 Z6 c" z, H. _( g8 K4 W
- (while (setq elm (nth i dvlist))
/ \; X! ?& I# h+ v1 v- X - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)2 y# n8 U! y; Q' F% R& s/ \: E0 i: p8 G! u
- i (1+ i)
1 }$ ?( W1 T# z - )
) r$ L% N& H0 h4 S - ). J/ h7 k; E' T3 ?: w4 d- y6 h
- dvlist
* [9 |" y2 U0 k* V, B( ~ - )
9 p. \: h7 q3 ?* \/ J) A
) }/ N7 ^6 B* w, |, l5 _- ;;+ U0 U7 v- I2 |# [
- ;; Restores dimvars of the selected enity.
5 C- n% U7 \6 `/ @ D& E - ;;
J. [; |5 |% M9 p. W! h - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)$ T' g e2 E! J8 Q/ s
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values") z7 }9 Q+ J6 h0 w* c$ m
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
5 O, }' |4 A3 w8 k) a5 R3 A - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"& N3 h! @- q5 W4 x2 j
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"( K' @' w, [( ~4 I/ S
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
( j6 x8 s$ D, l! [( E - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
2 k7 ] G! e' ~- v - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"9 z3 {, \- d0 P Y1 e
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"7 h+ W1 E, b, |" Z" @
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"4 P; ]# H! U$ x P
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
4 s! x s& @ r- P; c - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"+ u. S L: _1 r' m
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
2 y( J# x* z* R& c - "dimtxsty": L* u7 g1 e+ a2 j) l6 u+ {
- ))
, z# o$ s7 W0 L/ v - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
5 k- q0 n4 a; a4 z( ] - (progn
) _4 H$ A! E- Q% t( C - (setq en (cdr (assoc -1 elist)))
4 v; T/ e1 i( I* j$ s! \ - (command "_.dimstyle" "" "" en)8 F$ D8 G: ~; y! w* R2 ?* V/ u
- )
! l- O o' ^, H0 A - dimsvcurset
9 c+ b6 `; z% y1 A( _- _ - )$ [7 h1 L: o! q5 ~& z* D
- ;;) }9 S. S, O8 m- J1 }
- ;; Modify Leader
# D% t* F6 A' b3 m- b: U - ;; H+ _4 p/ A( `$ z/ M
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl; [% S j* q6 v: A; C8 ]
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
5 f* {8 J; H; X0 [5 O# t. J - dimtype dimsvcurset): A# J1 Z& K& b0 F+ @+ @) W7 W
- (setq dimtype "DDLEADER"- _ G: d8 J: `) x( Z2 h: f' f
- dimsvcurset (ddimen_dimsty_restore)" y- o# `$ P5 E' s0 x
- )5 @4 b, h- @* z+ V6 h
- (if (not (new_dialog "ddleader" dcl_id)) (exit)): ]" M. |( [. x& S$ W. F
- ;; Set initial tile values
& ]! j* K D, C# f0 }# X+ r - (set_tile_props)8 u1 |& s* C1 _& y3 `! {
- (set_dimen_props)
4 O: t6 D9 d/ i/ F: I - (set_tile_handle)" A* Y" e0 d6 z! j! g/ A
- ;; Define action for tiles; s9 V, a L: T& F# a
- (set_action_tiles)& ?% O% q; j! C7 w$ _ l* }7 t
- (mode_tile "mod_text" 1)
" P) x) {: a J. n& H - ' K- e- z8 F2 |8 p6 }$ e7 A% ~
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
" y. x) M6 U( O4 [9 C4 u: { - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
3 m$ _ D+ C5 Z6 Q1 p3 { - ;; Get ARROW and TYPE.9 P0 [, O% W$ E1 ]
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
. O+ N, h' T& }3 L. `, I: ` - (if (= 1 (logand (cdr (assoc '72 elist))))
, K2 {0 B) Q7 C( w w( G+ y" a - (set_tile "s-s" "spline")
- J9 g/ m% O+ B2 X- c - (set_tile "s-s" "straight"); l4 V! s t: S
- )
% @! @% |9 p& ?! A/ J8 j( r5 K0 f - ;; Start the dialogue.
- Y3 U( ], a6 S$ v" M - (setq dialog-state (start_dialog))
, C2 q9 a- z1 E& y - (if (= dialog-state 1); U- @2 ~ J. e8 g
- (progn
) e2 s" C; F" l/ ~. ? - ;; update the style1 N( x6 q4 I8 t: J9 D) |
- (if (/= dimsty stname)5 E6 f3 b( @* v8 t4 Y3 a
- (progn5 `% m* d6 Q: o2 T" j2 T
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case; q5 B8 d) O( e: M, R5 w
- ; doesn't have it.
1 q- a6 g6 L& k9 \$ G0 p& A0 [6 t - (if (null (assoc 3 elist)). P5 R$ R0 o* X7 v) {% C1 o: j
- (setq elist (append elist (list (cons 3 dimsty))))
0 ^: B$ k" x/ T9 K E( t5 u - ; else just replace it.( U1 Z. e3 C% C1 f6 `$ k( d
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))7 s, Z' p6 l0 V% ~( b) n$ G
- )
% N' M z* H; K - ; refresh sv_dvlist with new dimstyle.# j, _; W8 B. }" N b/ q) ?: w
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 ~' D- s' M5 P- L, ]7 Z
- )" ?" a* _# m( Y
- )
3 T/ M( [! Q+ h - (if (not (null dimlist)) ; attempted to change dimvars
2 R1 D6 f1 `0 M8 _; ?/ S7 P6 b! X - (ddimen_complist sv_dvlist dimlist dimtbl)
/ N3 ]( E2 A5 A. W* y - )
1 G+ U6 w" J. p6 @) C* s& @) K - ;; update for ARROW.
# L$ A# Q. b) e - (if (= "1" arrow)4 k( }4 J9 ]8 n5 t+ T
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))+ s. d/ i9 B, J$ E# C( P! H
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist)), n7 |6 Y8 _' H6 \" C
- )
4 t! P$ n7 i0 p( k; _9 r/ V - ;; update the TYPE.7 T: @0 E9 Z$ ~' \, M! j+ @
- (if (= "spline" leadtype)
0 o/ B4 b3 J$ e1 Q9 h0 b" |( E7 X - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))1 x6 x% E/ b, _0 L6 W' ]6 X
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
1 `/ Y) Y* A( r7 H8 o1 s - )
5 I$ `3 s' j4 ^8 ]3 c - (modify_prop_geom)& m" G% X. I5 G' o# S4 _
- ;; update the Color
5 V/ O: p( E( c* t1 U8 ]! w - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
8 Z. _% o" ~8 M3 D( F) J - (entmod elist)+ o" N+ y- N" g3 S
- ): @' K8 l4 }* K- h4 I3 ]4 a
- )
- P6 P( u6 w6 a( J - (ddimen_setvars dimsvcurset) ; Prepare to exit
; u7 S$ ^& H! T: E( T* i" c - )
( k! S/ v0 v7 B/ ?8 F( _ - 7 [* | @) f( h$ i$ W
- ;;" L, t* l6 R2 S' W
- ;; Get dimvars of a dimstyle with overrides.; v+ ]# \9 F8 d( T
- ;;% c4 p( d1 n, Y/ A' {0 T
- # _' \8 d0 U _$ j
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)7 J# c0 u( W9 G" u' F5 J/ S
- $ w& i" J; y( P6 E+ x
- ;; Get override information for the specified entity.
% ~. h# s" i" [! {, h - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
* U" ?2 \; {- F/ _% ?' r# K( n - ;; must obtain override information through this tedious operation.
# {* N1 A- Z/ o# B3 w& i8 w" z - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
( j# h0 r6 {1 e8 |' z - dvlist (tblsearch "dimstyle" dimsty)) S+ o* ^) u2 k' P' Q& l% q
- i 24 T$ p% u. b. F0 ?- y7 d. r
- )
! q; L4 `$ q( V( X+ c+ m. ]# ^ - ' v! o" G7 U) P& R
- ; Update the list with overrides if overrides exist.% B8 |! }2 ^- d+ s+ I7 ]6 L( Y
: Y4 a( y! A0 e! F% b& m& z- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
- R- [: z8 c6 r$ Z, r, j& X - (progn
8 m; ~* `) o! ?+ b - (while (setq elm (cdr (nth i dimovr)))% `6 M2 `3 } y" g
- (progn
% ]% d, D3 a3 k5 p4 A: I4 x - (if (or (= elm "{") (= elm "}"))
* p+ x; Y+ _; G1 j - (setq i (1+ i))
1 N! Q, x+ v- f! @ - (progn! q2 L4 L7 B9 X4 d5 D& o7 u
- (if (or (and (< 180 elm)& C5 o) i, A# z3 s
- (< elm 190)! U, S. h- h" E7 C$ ^
- )
: c+ y4 M S4 l8 s$ R- ?& R - (and (< 80 elm)
, p, e* O- m2 k; _4 v+ r - (< elm 90), W) U$ R f7 U) u" j+ ?
- )
! _0 d# A& c* I/ u1 y. Y - )+ {2 D r' y) h3 a& V
- (setq elm (- elm 10))' ?4 k) D8 W: l( D0 P+ r( E
- )
& F' R/ C4 ] w- b. h$ Y - (setq i (1+ i)
, t: Y( ]- Z: ]1 S" ~3 D - elm (cons elm (cdr (nth i dimovr)))
# A! V* A. o+ \. |6 l1 q" l - dvlist (subst elm (assoc (car elm) dvlist) dvlist)$ r( q; V7 I: N5 a# O* _! S
- i (1+ i)
) d5 y" N3 s J! L! J7 Z7 c. p - )! z9 |3 z# F0 Z5 C8 B. y
- )/ [0 p, ~4 ^ t: N: s% |4 x8 E. ?
- )
/ v" M( {. q9 e) p& g# x2 K% _ - )
7 Z8 X8 v5 O* g' [' N - )
L9 q6 \% A. j9 Q - )
6 e% `2 S0 Y* V; H8 R0 G% i9 ~ - )5 ~. P8 s/ \. @1 I
- dvlist
$ |" R7 S6 n6 S! g! J - )
3 P, ~. X, ^+ X' F1 W
3 Z9 M7 [9 i, h% |- ;;( j8 f3 t1 O; _; |# v: U) b
- ;; Modify POINT" z: O5 R# \* b
- ;;
7 _0 ~% Z& _; j - (defun modify_point ()$ M. H7 E# P; z' z; p4 B
- (modify_properties)
1 b0 [9 f/ v& h2 e' G, a# L" V8 |$ k - (setq pt1 (list x1 y1 z1))
+ @7 y1 b' G' i2 w. x4 H- C - (tempmod pt1 10 0)
6 S; U3 d1 S- y- f. l1 D - (entmod elist)( t& I/ @3 u2 [* R, S! H" X/ ~7 T
- )" z. z/ B6 b6 m/ i% e/ A) G
- 3 e7 e+ J+ E* q9 e6 C, h! b
- (defun ddpoint ()8 ~5 V( ^6 C: c0 V- ]3 J# S$ @
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
3 h' z$ \/ |2 F+ w6 m" W. i4 c - ;; Set initial tile values* p3 _$ e. @6 G
- (set_tile_props)$ d* d. T$ w7 s: w6 G
- (set_tile_handle)% P( S y3 R5 Z1 f) a9 z2 z
- (set_tile_pt1 0)
, Y$ D: G& Z: \: y7 r - ;; Define action for tiles) E- y/ W( q! U4 ?
- (set_action_tiles)* p/ @# a' b- h) x4 B& L! I# W
- (setq dialog-state (start_dialog))$ l6 U4 p8 o, f' B) G" q2 ?
- (if (= dialog-state 0)
8 j, ]' \! Q' n - (reset)
4 n+ P0 c" G- ~, k; P: i! A, Y2 g - )2 X" \8 Q2 g/ g- a0 E! `4 ]& q
- (if (= dialog-state 3)7 l& C: ]' B$ h1 j2 \
- (progn
! D* E5 V7 M& U. h( v! y7 Z - (modify_point)
* \+ w( d# `% Q9 W0 q% { - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))7 t* Z4 W7 u- T- y
- (ver_pt1 0)
+ A2 d8 a( D3 ^# z5 y: `: y - (ddpoint)7 I5 ~- B; d# C1 h9 I8 X
- )( E, K" ]$ C& O0 R0 y
- )
7 T. T- j: O4 c) h; H( C - (if (= dialog-state 1); s& Y5 _2 y& h, t3 i
- (modify_point)5 D% J; I Y6 W+ ]) [; c
- )
; @# `$ Q+ k% ?( E - )
+ k; L0 \0 P b/ j' W4 ] - ;;
* {4 T, y$ _2 Y) f - ;; Modify LINE) d- p! c# W% ?4 ?
- ;;
4 t! z* M) h9 y( |4 m5 c - (defun modify_line ()
. |9 ?0 Y* J7 y7 M+ ]# b- a - (modify_properties)
4 M! w* _6 `, o& D - (setq pt1 (list x1 y1 z1))' \% W5 l" _6 |% M
- (setq pt2 (list x2 y2 z2))
) j0 T4 d' Q1 Q- w - (tempmod pt1 10 0)
8 Y$ }) y& e, d - (tempmod pt2 11 0), Q$ R* I0 P7 }: `9 n* U
- (entmod elist)- N$ I/ W7 d- R0 g
- )/ t; R4 ]' k; p2 v% }" n, W, O
- (defun ddline ()
& G2 e- T) A" A1 H! ~: o$ I- o - (if (not (new_dialog "ddline" dcl_id)) (exit))
8 z! h9 f4 o" z0 e - ;; Set initial tile values
9 c/ V5 J0 N, x) A% w - (set_tile_props)# R4 h$ w. i- _5 y8 R$ T0 m; u8 M4 B
- (set_tile_handle)
5 I; d* O9 a) A1 u - (set_tile_pt1 0)
% R9 n+ D2 j/ f+ K; g5 A/ M - (set_tile_pt2 0)/ C4 H) |! w! B
- (line_calc)
$ J6 H! B+ I8 D; `/ I# d) | - ;; Define action for tiles
# j0 ^; s' \' o' ]. c - (set_action_tiles)
) o! g* o2 A4 G& p4 \! ^! B B ~ - (setq dialog-state (start_dialog))
. |5 J! J" v% k - (if (= dialog-state 0)
^4 D5 D; {$ s, a( { - (reset)
! {& \/ J8 S9 T0 p4 X* ^ - ); d8 N- G ~ r; J5 n* Q
- (if (= dialog-state 3)
m8 T0 P% X( `+ J- Q- h' w2 d - (progn
- g" }' X5 V6 Y - (modify_line)
) u6 K* G/ Z- S1 p* Z - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))8 t0 O: I0 M2 }8 ~! K
- (ver_pt1 0)
9 {7 Y9 {4 [4 c - (ddline)" I$ e6 {3 j# k, |$ t
- ). ~& y/ f3 ~0 E4 n
- )# N/ H& W# C. ?$ _6 C" f- j
- (if (= dialog-state 4)4 \- q% `# b& L
- (progn9 i) O9 H$ ]1 M* |* i) }
- (modify_line)9 i/ Q U1 S4 p6 v5 o8 w' C
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
( `0 R8 w: w. X9 ^ - (ver_pt2 0), v- G6 w" q" A: W3 r5 P
- (ddline)* N+ f9 _. U4 M
- )4 r' p6 F. b. L2 V3 U: b+ N0 G
- )* j0 Y8 l( g& v
- (if (= dialog-state 1)
: j( [# l) B0 w! L$ E/ | - (modify_line)# |8 k9 |! G; s9 t; y0 K
- ): V8 X: `# I7 A9 h: e6 p+ g
- )9 x1 u; h. g S+ }4 U% G
- ;;1 x3 ]* v2 ]; S+ V! ]* Z; y
- ;; Modify MLine
/ w5 @+ e5 |) Q! K; | - ;;4 Z: }! e- w g+ B" X. D3 W- J! w* _
- (defun modify_mline ()
* |) u2 _! S% i( i - (modify_properties)
1 @ x$ X# s' V( l+ a4 l - (entmod elist)) F/ M/ e3 t" L3 E M7 G3 b$ A
- )7 m* o* j1 h; g+ h; m
- (defun ddmline ()2 W% Q5 O; f R! x# d- e
- (if (not (new_dialog "ddmline" dcl_id)) (exit))" E9 k. I2 u: D% H4 E# o; @
- ;; Set initial tile values8 h- q U# j, y: b$ Q
- (set_tile_props)
4 {5 C% r& m+ t* g; } - (set_tile_handle)- ?/ O5 I3 B8 Z F
- ;; Set mline style text field.
; B* F7 i; `* i) y9 n - (set_tile "ml_style" (cdr (assoc '2 elist))), H, p; C$ m8 k, p6 o
3 W( T. J5 c8 H5 R+ C! N M @- ;; Define action for tiles/ {8 Z3 J) f3 j# L
- (set_action_tiles)0 m" q; s( \. b+ a( D! `" t6 L
- (action_tile "ml_edit" "(done_dialog 3)")
) n: J. {& E$ @) p8 [ - (setq dialog-state (start_dialog))
6 B% p! Q% p$ \1 j - ;; Dialog cancelled, reset to original values.
# }8 i9 g( o( w, B% E - (if (= dialog-state 0)
% ]+ j4 Q9 Y/ o1 q: D9 i' c - (reset)! y; \: r5 B" f# c1 b8 A
- )5 K' H( ~. c% l6 }6 k
- ;; Dialog OKed, update the mline.
5 X2 @, I E7 s- |( l" _5 ? - (if (= dialog-state 1)8 G; W( ]! S9 {+ Q
- (modify_mline)7 ~( @# n9 N8 V& D9 Z
- )
f h. L4 D) c0 l - ;; Edit Mline, call MLEDIT.
9 X, x# s4 ~' \; ] - (if (= dialog-state 3)
+ }4 L6 l5 B! t. i* J4 S4 j - (progn# ^3 y7 w0 r s6 E/ ]3 G# A
- (modify_mline). J. h+ f( c; n/ C
- (command "_mledit")
0 h! C# Q; x9 \- l - (ddmline)
( U# s$ H0 ?7 `1 r- f3 a - )- D/ F% n5 I0 g! ]& w
- )
$ [8 o: G8 N' L; ]7 _ e4 p2 Q - ), d# I0 O) ]' M1 i$ x6 k
- ;;
5 [+ [) }/ g2 h2 |! R( s - ;; Modify Xline5 N5 C( e9 b. e7 z" Z/ G0 p
- ;;
) Z L+ ~7 i5 `6 X - (defun modify_xline (flag)0 V) I! |/ a4 u
- (modify_prop_geom)
% a& D5 i& A4 B4 j( | - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))! F8 ?+ I6 W1 z1 ~: N
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
4 Z# M! p8 `2 H4 L9 a" I' S" n - ;; Update the Root point.
6 V' p7 ? x9 Q3 S. b: ^* n9 X+ ` - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
4 _7 @: O8 p# ^ e4 t' W( W' l - (assoc 10 elist)
# }! d* A' R5 T5 f - elist5 E+ l' E5 h; A/ E
- ). Y/ j& M0 J4 i4 K
- )2 Q- |0 q: M6 o( ]. d2 ~! g
- ;;
3 C+ r, e5 \; D! n - ;; Calculate new Direction Vector WCS! n# d& ^* n0 x5 ~$ r6 r( S) g( y
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))$ u+ A0 X. W" l
2 t9 _2 L9 w- x# X( S. K- (setq temp_dir (trans xline_pt2 1 0))( E# t' N( \- t
- (setq temp_dir_x (car temp_dir)), m4 [* f: h- ], p0 v( N; S
- (setq temp_dir_y (cadr temp_dir))# Q% Q# F6 i7 T+ t G5 _+ V1 I
- (setq temp_dir_z (caddr temp_dir))) }$ g- d' e6 Z. F
1 B! _' a: k' |& _ y& U- (setq temp_xline_pt1 (trans xline_pt1 1 0))6 b# S* D4 [* ]5 X' o$ I; X( R
- (setq temp_xline_x1 (car temp_xline_pt1))+ ^+ g' j7 q- f+ A- Q
- (setq temp_xline_y1 (cadr temp_xline_pt1))
2 D0 ` t, ]% s. ?: B5 n" a - (setq temp_xline_z1 (caddr temp_xline_pt1))
5 _9 R+ T8 a7 k7 V* z7 {
; f5 ?! p0 v0 N) ^- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2): M2 J5 M1 ?: K. y n- S% U
- (expt (- temp_dir_y temp_xline_y1) 2)3 R4 A! \$ e: e$ R& H
- (expt (- temp_dir_z temp_xline_z1) 2)
o4 _5 m. _! v/ s7 B - )))7 I5 s: F, T$ Z9 @4 U9 U
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))" G9 \: I% b9 [% v9 [0 x
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
2 h/ v, r8 w; F7 C7 I( r8 { - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
+ {$ g' B- ^6 N. d - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))5 B* Z) \$ G* V" b& U0 f
- (assoc 11 elist)5 t1 l$ v/ [% ^. Z* t9 `, ~/ ?
- elist
! X+ p# N0 @% u Z - )
; e# s7 A7 B5 { ~ - )/ [' J7 |1 s* z$ @0 L2 ?; \
- (if (= 1 flag)4 [ M9 O! Y4 H
- (entmod elist)& p* }/ E, W# X0 i
- )
+ Z% ^. B# h+ Q, v9 g. Y - )
& E9 J- P4 j5 f+ t: l - " W) M# r" c$ A: Y" E. \: C
- (defun ddxline ()
" S, g; H! l4 D! |, ]( F - (if (= etype "XLINE")
; b" B/ I. m; y+ g+ s$ } - (if (not (new_dialog "ddxline" dcl_id)) (exit))
7 M# E0 w* f$ d7 W - (if (not (new_dialog "ddray" dcl_id)) (exit))9 }' w3 r5 V" a
- )
% l3 t# b* X. r S! r - ;; Set initial tile values; f8 Y4 O; H: w2 w0 a, R. a
- (set_tile_props)/ ~( E# u* i5 }
- (set_tile_handle)
+ O/ Y9 l, t+ @/ n$ i1 o7 Q$ D - (set_tile_xline_pt1)
; b3 ?) { @& P7 v1 p8 a3 k - ;; Convert to UCS and post Direction vector.9 s+ D, T0 O2 w4 C
- (set_tile_dirv)
& u2 Y1 h7 ]* u9 }) p: O. a - ;; Calculate second point by adding Root Point + Direction Vector.6 |6 d/ B& w0 B
- (set_tile_xline_pt2)( N" S l N1 `7 J4 k9 t: H! H. z
- ;; Define action for tiles' t! h: ?* Y; |$ Q, p E' ?
- (set_action_tiles)
. F4 Q2 z& W0 w% Z" f+ [5 {2 @ - (setq dialog-state (start_dialog))
9 Z9 ?+ _! r' r5 H) j - (if (= dialog-state 0)( V7 O0 L% V$ O/ D
- (reset)1 o6 B6 o8 S- u6 C( \: N$ W$ R
- )
; O$ l6 O) @4 k x, f* R* G - (if (= dialog-state 3)
0 m/ r& H: B0 h - (progn
6 x5 J& I. r; y# r y! z - (modify_xline 1)6 _2 h, T1 A5 K' f+ w) n* ^% {
- (while (equal xline_pt2
1 i, e* F' X+ Q; f% g `+ M - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
2 Y& B3 K* ~4 l+ M, u - (princ "The Root point cannot equal the Second point."): D+ A5 [/ y& F( Z
- )
5 v4 p' F" X0 m. S% B - (ver_xline_pt1)5 ^0 E6 T7 G8 x2 k' I
- (ver_xline_pt2)
- c, S( S; d& I. m8 X. M - (princ)" w$ b8 h9 y7 S7 Q7 v
- (ddxline)
% e. L1 B# W( l9 i6 f8 \ - )
, Y/ z+ o$ r% N: H$ e9 ?# C - )
/ l! o( ]( b( e& ?* z- b! M+ i - (if (= dialog-state 4)4 }6 d$ ~! ~) C- l7 s
- (progn2 E+ e: O$ D) U# a8 Y
- (modify_xline 1)
# o' l- Q- V0 K - (while (equal xline_pt1
( R$ l1 z4 O+ V: Q9 w& D - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
- N) E. W; e! \% P' v( a1 M# V/ o - (princ "The Second point cannot equal the Root point.")
9 V+ ?( ]8 @ P* `! {7 M$ _ - )& S5 W% i" w7 W% ~4 P3 V0 |! O
- (ver_xline_pt2)
7 H/ a2 L" X2 i1 L$ y+ ~ - (princ)3 s1 e& M. D: h! F3 q, o }7 c
- (ddxline)3 n. d1 m) N7 g! F/ ~2 b+ {4 V
- )
( A5 Q( B5 N! b - )! x5 m- L) n, T: u, _$ P2 S- X
- (if (= dialog-state 1)
" @* Y" t' f1 }" Q - (modify_xline 1)
9 e! x' r6 W' ^0 B# x! { - )
6 o2 V" `4 ~# d/ v: l2 @ - )
/ g) E7 N1 E' f* c5 w - ;;
) I2 V4 E4 S8 ~* I1 m" U: ` - ;; Modify ELLIPSE0 a5 K& i5 R4 v
- ;;; n. Z% j n! z5 `1 h- z h
- (defun modify_ellipse (), `5 M C) {6 F# }
- (modify_prop_geom)
* ^3 `( ?& {* P - ;; Update Ellipse Center Point value.( V3 a9 ~2 L6 J
- (setq pt1 (list x1 y1 z1))
3 j3 f, g! S# |: S- ], H+ f - (tempmod pt1 10 1)
% g% e7 V; H k8 L - ;; Update Start Parameter value.
: y0 m/ E$ L& h \! g) ?3 B+ X - (setq y_val (sin st_ang))
5 g( y; q* ^2 U: S2 Q! Z {* ^ - (setq x_val (* rrat (cos st_ang)))
3 o$ Y; L/ s% T- D' i7 H - (setq stparm (atan y_val x_val))- G' s7 ]# n1 } |1 C1 p( X" x; z: u
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
: i2 i! d4 N& G% ~2 @' G - ;; Update End Parameter value. Normalize it, if it's less than
/ h- x* l$ e/ }5 |# n$ h - ;; the start parameter.
2 U& W( [& L; W# o) m - (setq y_eval (sin end_eang))
5 R& @7 I0 {6 t: P9 a4 }" T - (setq x_eval (* rrat (cos end_eang)))
- \2 o; {1 T% a" S+ \4 D - (setq endparm (atan y_eval x_eval))* B- U3 S; C& I* Y
- (setq diffparm (- endparm stparm))0 |7 Y9 p: e; V( f* s( F% H
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
+ Z0 l. b7 O9 O# b. K - ;; Since zero length arcs are not allowed - construct the full, }: ~3 P) F$ j; K( K l1 u+ O* }% a' I
- ;; ellipse in this case.+ o0 a0 Z5 s6 z0 e! C& f/ e) @( k N, H
- (if (<= (* diffparm diffparm) 1.0e-12)
- V! u6 E# {) A& z1 I$ {1 j" e - (setq endparm (+ stparm (* 2 pi)))
: C( B5 D% y% e# @5 @ - )
8 l0 m+ g) p, P4 P" U0 _ - (if (<= endparm stparm)
, k7 P" ^+ Z W5 R8 j! K - (setq endparm (+ endparm (* 2 pi)))
6 d2 B6 M7 t2 `6 z: Q# } - )% x8 X! U" b' m# M
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
7 K, l2 R2 Q ]# g5 [ - ;; Calculate the Major Axis Vector by first calculating9 ^! {- l( R; L7 Q
- ;; a unit vector using the old Major Radius value. Then
! a5 w7 z4 d, O) b2 }. z+ L - ;; Multiplying that by the (possibly) new Major Radius3 k, M3 T5 R1 K0 b/ x0 F( [/ S* I
- ;; value to get the new Major Axis Vector value.
+ Q5 t7 g8 t5 X* ]. j$ e. F - (setq unitxx (/ xx old_majrad))1 I1 @* n1 {: \0 e- f* A1 M
- (setq unityy (/ yy old_majrad)), ^5 y9 Y8 X. G6 t0 B# g
- (setq unitzz (/ zz old_majrad))
7 S7 F& L. f+ n( k - (setq newvecxx (* unitxx majrad))/ _5 U6 \. Y0 B0 E9 q' D
- (setq newvecyy (* unityy majrad))
* s) |6 ?) [* u3 C1 P, g* K: O - (setq newveczz (* unitzz majrad))
8 ]8 E7 [4 t5 _) _ - (setq newmajaxis (list newvecxx newvecyy newveczz))" r4 A# t6 h9 |1 R
- ;; Update Major Axis Vector value
6 k2 z0 s3 g* j- a' z& ?' v - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))# \4 t- B0 U) r; r6 M
- ;; Update Radius Ratio value4 u0 v" L; E* D3 R+ l q, y
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))* Q' Z8 v3 {0 _; J
- (entmod elist)
8 S) N' B- ]1 U7 |7 V R+ ? - )7 I: q5 W% s8 l" i6 D k
- 6 g- S* c+ n- `6 k8 c k9 j! q
- (defun ddellipse ()8 P, s5 v2 k; g( W# u
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))
3 N( w5 N7 s9 Q5 [9 Z4 x5 U - ;; Set initial tile values
o& O4 E4 z, L# X7 A# y0 k, Q - (set_tile_props)9 W5 s* p6 t" p( ^: c
- (set_tile_handle). c6 t5 \& _2 t# K, K0 N6 l9 v6 ?
- (set_tile_pt1 1)
' J. J' v: q6 w! @+ c3 R' Y - (ell_calc)" \5 K1 v1 u) z6 v6 D" m
- ;; Define action for tiles4 {8 C; A& h9 R' ~$ }" k
- (set_action_tiles)4 p, A6 S" G& h
- (setq dialog-state (start_dialog))4 N. K/ v6 W/ T! q
- (if (= dialog-state 0)
0 P1 a. U$ @" u! C. D - (reset)0 A* z- `) K9 M
- )
6 ^) U% U4 C4 k4 i - (if (= dialog-state 1)) H0 {- i# W/ s& l! Y: b
- (modify_ellipse), e! p) V# b% k( Z# e
- ). @# \* a7 Y$ Z* V
- (if (= dialog-state 3)
+ k& X2 ~& [# C: n - (progn
; b. @. G+ b( a% M; C) U3 y - (modify_ellipse)" [0 n4 Q ~1 I8 _3 n
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
; D+ ?) ]- y# i" @0 N. s! z0 V - (ver_pt1 1): `4 `, q8 i2 V5 q# z# ^
- (ddellipse)
# L0 }/ F/ ~6 S0 c. s7 F+ Y9 \ - )
- q* a& O0 {/ e( V7 q0 [) a" d' i - )6 s6 [2 d( m. ^! a% V
- )
5 ?) t4 P/ D4 k - ;;
6 o9 D" ]' A$ j3 l5 `# F - ;; Modify REGION
# I- B+ B' @- _4 T! [7 y: I9 B - ;; c6 l% o- e# ?9 Z4 @
- (defun modify_region ()1 G1 \! O1 b5 ]! `
- (modify_prop_geom)% k! c' B* @+ R4 F) {
- (entmod elist)5 s0 M- @" E! b4 v3 E
- )
# {) ]% j$ F4 P3 j - ) H7 o% H" x: J6 ?
- (defun ddregion ()
' f7 _3 j' C3 i' N; O$ F) o7 q: t - (if (not (new_dialog "ddregion" dcl_id)) (exit))! n2 p6 u8 R( Q- h; c/ E$ y8 m
- ;; Set initial tile values
3 _. T5 E0 E3 y7 G* C - (set_tile_props)- G$ T6 Y$ X* v) B' L8 R: e* c
- (set_tile_handle)) S9 i9 G8 ^7 N# t, p& m
- ;; Define action for tiles
, w# @" ~ L) y: ]' ]! ` - (set_action_tiles) u6 C# t t/ K! g3 {5 O, N- j4 R
- (setq dialog-state (start_dialog))7 B. v& |' g% Z7 T
- (if (= dialog-state 0)
* i3 q+ G9 }% j, N! o% [! H - (reset)8 [+ Y3 e1 F, _( @! m
- )0 \' d! A$ j n* A7 [' Z7 O: ]& j2 n
- (if (= dialog-state 1): @4 z, j. R% u( |8 R/ Y
- (modify_region)
4 x) Y+ Z D9 ?: N8 n - )
- K. [- l" P$ ^) K' a8 X d$ O - ), a3 G' Z5 C8 l- p% n
- ;; k/ b) N$ c: q2 ^
- ;; Modify 3DSOLID
0 h# [: d6 A( j; \! G/ Z1 X* E - ;;
& z& R3 p4 C! _ - (defun modify_3dsolid ()
* F& I6 D2 W* o- Q) Q1 B# ]7 } - (modify_prop_geom)+ W5 y9 t: d2 G
- (entmod elist)
% m+ x) Q! Z" T8 C5 s( |- H- Z+ a) \: G - )) Y+ i8 |' j) t" F0 Y. X
- % h) M/ n( ]+ O9 `
- (defun dd3dsolid ()5 F' T* W" l0 ?1 }. z+ b
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))! E3 I/ U% i' k: e
- ;; Set initial tile values& b3 }# O1 l" [2 |! W$ g: q4 q. a
- (set_tile_props)$ _' M/ E1 P- C9 ^/ V& H. B
- (set_tile_handle)' n! h/ R3 _& a! S9 N! X3 v
- ;; Define action for tiles
+ x" T$ J( _! _# V( I4 i$ @5 Q - (set_action_tiles)( {2 ]9 u, m- g7 ~4 s/ \. [& m
- (setq dialog-state (start_dialog)), O8 A6 L5 A3 |. D9 |
- (if (= dialog-state 0)3 B- ]1 `% N) |$ v) \+ s; v
- (reset)0 z. U$ x; a; H7 z$ x/ C
- )
m/ w# c- s0 w8 L2 X2 Q - (if (= dialog-state 1)
4 X4 `3 `. q% g; P - (modify_3dsolid)! |5 K5 b, ~' l5 ]9 y+ K/ g
- )
0 U: A m( Y1 ]* v0 s - )
* f! e1 K; G$ f3 S5 l# Q - ;;
% t& P0 b; r3 W9 `5 [4 Q - ;; Modify AcDbHatch
; y3 V* M% e" ~. v - ;;
, `& U' S% s" U7 B% w' i - (defun modify_hatch ()0 e' e7 F' N% s% g* L
- (modify_prop_geom)4 G) s& h3 m: T, N: ?9 r
- (entmod elist)- ]8 [- f' h2 t9 e) ~3 C- h
- )
( y: d2 ?6 o' M) }$ P% i3 l* k" { - 9 E6 t( {+ V( C! l r' U
- (defun ddnewhatch ()
* T; t$ p- s, K) D# s4 ^ - (if (equal hatch-elist nil)
+ Q8 c! u2 L2 @: [" ] - (setq hatch-elist old-elist)
* U. y0 [3 `; r7 g! A0 p1 E9 V' G( T - ), e1 A! k0 A8 \8 ]
- $ h' \0 U5 B2 z$ V6 F f/ g9 u& h! |
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
9 X! M: b1 U( r6 d( E/ N - & ^" U% F( F% p2 C
- ;; disable the thickness tile9 @! n- M/ T' n8 ] r, S
- (mode_tile "eb_thickness" 1)
6 n$ B- O F. n" e7 T6 |: ?. m - (mode_tile "e_thickness" 1)0 A2 [. X+ r2 x' _, P
- . l3 j# K6 d( h3 H0 W. |: |
- (setq help_entry "modify_associative_hatch_dialog")
7 r& B7 b1 j& ~: Q( n' u - (set_tile_props)3 k Z) a- z! y, a$ Q
- (set_tile_handle): }4 Q# B- N7 t
- & U2 D& q6 f3 y; j/ O
- ;; Define action for tiles
4 L0 ]% H# [$ R6 D - (set_action_tiles)
% \6 Q6 v8 L: m - (action_tile "b_hatch" "(done_dialog 2)")9 s# h/ \$ I1 Z7 A0 N8 m g Z8 \0 Y
- (setq dialog-state (start_dialog))
9 V B. P' m3 F - (cond
) Q9 Z: ?3 m! Z' r0 A$ Y" e3 {5 K - ( (eq dialog-state 0)
& X1 T! h" B4 s6 P) p! z9 _( q B7 y - (setq old-elist hatch-elist)
, w" Y1 u( E) R5 o- Q - (setq hatch-elist nil): g$ F! y R2 _# r5 D
- (if (= (checkforlockedlayer ename) nil)
) ?( t3 }+ N8 y - (reset)
2 } g: T8 [9 p7 q - (progn ;;; special handling for locked layer reset6 R* e3 W" ~! Z7 s- U/ K9 K+ R
- ;; unlock the layer# s$ v% }& i" @" s0 a" K7 J
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))' v, X$ ^9 |; U8 |5 c6 G
- (command "_.-LAYER" "_Unlock" layername "")
* {2 d, X# A* R) z - ;; reset modifiction
. }! B, o# Z+ E8 W# p9 G - (reset)1 g( F7 E+ R! [* Y- C* M0 H5 s5 G1 e; O
- ;; lock the layer again3 x$ W' Z3 C0 b6 `' P, Y
- (command "_.-LAYER" "_Lock" layername "")
}! F7 h/ ?# w9 L: a - )' k- A. S1 {# r0 A( g
- )
& X6 f( t4 q. z1 {# R0 d- J - nil ;;; makes (ddnewhatch) return nil for Cancel
, L# W% l0 S. u - )# S t( j. Q' i5 k1 |/ E9 {
- ( (eq dialog-state 1)
0 l8 P ? W. W9 _: l# _% g; y5 a - (setq hatch-elist nil)
9 _1 J* d! e0 r$ P6 i' Z: c( x - (modify_hatch)% F( `3 j/ b X7 k: T9 y1 ~& O' L
- T ;;; makes (ddnewhatch) return T for Ok& y3 ~* p- [0 f K/ V6 C- V1 d0 t
- )
5 g- _$ }; k& h( v2 O, x' Z - ( (eq dialog-state 2)
6 F3 Z7 h# `( v; }! D0 [5 {; ~* t
1 L: O( ~0 q9 c: U6 t- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
, ?6 n. ]0 M5 `8 p3 Z - 4
, O$ C( A7 K% \3 { - )
' P5 w6 J- C5 X7 D1 o/ Z - ;;; new selected layer is on a locked layer! V& S: Q/ B$ M! Q" T1 v
- ;;; we can simply modify the hatch properties
# V- |: K7 [+ H4 S8 u: b2 t - (modify_hatch)
; j! y- b8 B! j3 t - (progn6 c0 n u: P1 ?, K
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))1 K* B3 c9 v2 \0 }/ e
- 4
2 S4 Y' ]5 q: c9 U - )
8 _8 }) g) {0 @, g w$ V- { - ;;; We changed the layer previously and now the hatch lies on a locked layer./ r6 f/ A* Q6 D D: C* d7 G
- ;;; We have to unlock the layer forethat we can update the hatch properties.
4 @9 L) z8 M. N8 S* n: i - ;;; If we don't do that (entmod) fails to update to the new layer.: [; U8 M9 I, U% e, T/ N
- (progn4 @* G- L" T' i- f6 X
- (setq layername (cdr (assoc 8 (cdr elist)))). x [# \8 R" A2 m1 {7 {+ i( H
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer- B' X9 @. o! G0 z- K& ]
- (modify_hatch) ;;; update the properties
( t {: U# ^; y1 I9 P5 A - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again! k6 e) w* c5 Z$ k9 e0 K9 j
- )
( d" }0 l1 g7 ]* d# i6 f1 V - ;;; All other cases we simply update the properties/ k" x( u7 V; l) _
- (modify_hatch)
% T5 d2 `4 t8 e) U3 a5 e5 e1 P& E - )
1 m) j! X- R1 w: w! g - )/ d8 ~' Z3 n) W6 I; @3 Y
- ) 2 h: B: }' B2 G8 h- y# Z
- (if (= (checkforlockedlayer ename) nil)
: u3 ~ U+ X" B - (command "_hatchedit" ename)
; |: N, }0 X1 C9 [ - (alert ;|MSG111|;"The hatch object is on a locked layer.")
# b* p p& I3 J- [; u0 b9 A - )% Y5 C% R# A( {( M
- (ddmodify ename), ~9 ~/ v) i2 b4 \7 d, ], b9 V
- )
, }# o! R) [$ A. A9 ?- `, K - )! v/ c9 i8 V% n8 [7 k- R, K9 V
- )# ?$ P$ h- a6 W3 G
- ;;
9 m+ x7 i: w* _! F* Q& P: Y. `# S - ;; Modify BODY
. C$ g Z4 V" n3 c. p - ;;0 k6 M' ?. X) C( M: R _& ^2 d3 n+ c
- (defun modify_body ()
# U( N* r+ v- R" a! Z: B - (modify_prop_geom)2 R) z+ ~2 E6 p& ?7 j8 [, I- ^
- (entmod elist)
' v& W1 k4 z, ?7 R8 ~+ } - )# b7 k/ e2 K6 O; K7 u x
- ; ]. U- g5 I6 e
- (defun ddbody ()0 |0 V! A8 s% T5 f4 t5 g, D, ]
- (if (not (new_dialog "ddbody" dcl_id)) (exit))' J; J; g* E! Y$ n+ j4 f* _3 C
- ;; Set initial tile values
" u( \3 z8 ^4 H6 ~$ [! A$ ^) o$ ]1 u - (set_tile_props)
7 n6 \3 s6 h4 _$ N9 c+ d - (set_tile_handle)! K& ~/ t0 d) H6 P( S, M4 G0 \& s! T
- ;; Define action for tiles
8 ?" F3 R9 U2 j2 s - (set_action_tiles)! L$ D" X" ^1 S7 _, V. D* Q# n
- (setq dialog-state (start_dialog))) D/ \+ J, \! H8 w5 K* F
- (if (= dialog-state 0)
1 [+ \ W: A) w: `( l( ~ - (reset)
' y/ ?5 Y$ T3 c+ V1 R' O5 _ - )# b: S0 i+ P& [3 d$ C* B, m* g
- (if (= dialog-state 1)6 h( z$ i0 `$ n/ { A% W
- (modify_body)5 e( m( i, T6 Y- z9 Q
- )7 M- D2 x6 b+ c3 k, g; E- K
- )
) [( z: Q( D5 R - ;;
% z6 h$ V* L% Z - ;; Modify CIRCLE
$ O* D: e" u4 G! J - ;;
1 T/ U* y. M( N% c9 @ - (defun modify_circle ()" G! N; a+ @8 _7 k2 V3 I
- (modify_properties)3 ^; x F; J8 d
- (setq pt1 (list x1 y1 z1))
5 p4 l5 F4 A2 ~- n - (tempmod pt1 10 1)
! r2 t1 o+ l" o% A* o - (tempmod radius 40 nil)4 J6 e/ ~" Q+ E" @4 W
- (entmod elist), ]; V: r T. M1 g! [
- )
4 \- ? W/ l3 E, N6 U& V
7 ? U h+ u+ Q+ a6 j! V4 M! W- (defun ddcircle ()
* Q4 Z% J( F' v4 `& x3 {0 u - (if (not (new_dialog "ddcircle" dcl_id)) (exit))
8 r: `; t1 h" y5 B - ;; Set initial tile values
5 P* u! U. N! U" I+ O6 ` - (set_tile_props)6 G* \2 h) d0 P
- (set_tile_handle)
9 i3 J3 i& D5 V$ Y% o4 n& C q - (set_tile_pt1 1)- d% H& b; z' E" A% y
- (set_tile_rad)
' Y) U% x% ~! `6 q4 A - (cir_calc). M5 |7 Q' b) R) k2 i* f
- ;; Define action for tiles
6 U7 l7 z7 H3 J$ L% w; X9 F" S% K, D - (set_action_tiles)& c+ m! Q9 L3 |: a8 W" y% L0 E
- (set_tile_pt1 1)
6 O8 a( c% g" `" l' \# [ - (setq dialog-state (start_dialog))
2 w, a' o3 f; ^/ u - (if (= dialog-state 0)
5 H7 m% q" ?1 C9 a; m3 `/ } - (reset)
/ L6 `. u% T: N& { - )
& b+ Z: q+ y9 |3 i3 I+ { - (if (= dialog-state 1)
, f# q3 _7 K9 x* s3 M4 \8 v( ?: b - (modify_circle)/ X( ?# m# ?) g3 X% Q
- ). B# H; z9 k% m. P' p
- (if (= dialog-state 3)/ [* q1 u: U- P" g% Y" E* p$ Q
- (progn/ v9 C i3 E/ |0 ?$ k; m/ p
- (modify_circle)' F; k" }- V, g! y0 R9 y: ]
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))0 y8 `% u+ L- C
- (ver_pt1 1)
+ a( |- Y& }) C0 x - (ddcircle)
" M# G2 b6 f4 r- R* T+ d) s8 W2 ^ - )
( a; m- t( l& Y5 R2 h( T" x - )7 K7 S/ U4 e) E) F0 g
- )
- X' c: N0 S" Z - ;;
. D' J C5 l; @9 k5 S% E+ R. K - ;; Modify ARC
& b% J K" y. d0 a {/ v - ;;! l, R4 b" J0 t! C" h( V& J
- (defun modify_arc ()
$ I+ g1 H# G7 N$ @0 u$ }. x - (modify_properties)6 y) Z9 p) ~1 `
- (setq pt1 (list x1 y1 z1))
1 ~; r8 u; U) N - (tempmod pt1 10 1)5 k: q; l9 A* F% u
- (tempmod radius 40 nil)& q; c3 Q2 K! w/ e4 b+ ^ \
- (tempmod st_ang 50 nil)3 b, s8 `* N2 b) X1 }! |, U
- (tempmod end_ang 51 nil)% `& V' G R; Z0 b9 R
- (entmod elist)
' J1 P. \" P9 C# z1 h - )
7 @; ]& K; L" P$ r - (defun ddarc ()# z9 X9 E/ |/ _- v
- (if (not (new_dialog "ddarc" dcl_id)) (exit))
- _' m! { Z( ?2 |, Q' L6 | - ;; Set initial tile values
- |7 l" t* j6 M7 J- L+ E - (set_tile_props)
& U, ^, S/ |) M2 H$ P - (set_tile_handle)3 ^8 ]4 S" c- \' A- X* {, ^
- (set_tile_pt1 1)
5 T) S8 N' ^/ w$ ]8 ]* W - (set_tile_rad)
$ W" E" ~! w9 n1 u5 x4 b - (set_tile_stang)4 ~! i" d# c0 }7 e2 F# a
- (set_tile_endang)
; g; z( C; O, c* |8 \. j, L - (arc_calc)7 S, h, r, d9 v9 v" X+ O2 ?1 d
- ;; Define action for tiles
+ X0 o0 k4 |5 f9 @- C - (set_action_tiles)
/ q) K# K# n8 I - (setq dialog-state (start_dialog))
$ a/ E$ S1 h& p, _9 |, U' J' a - (if (= dialog-state 0): N1 H" N; Z: v; v- V6 w/ m4 A
- (reset)
2 F6 b5 J6 F$ s/ T - )" J9 y( x% T6 Q$ }3 ]7 N
- (if (= dialog-state 1)
) @8 E7 \6 q) u' B - (modify_arc)% j n* t3 [3 y! ? m$ p
- )2 R6 P' g* r+ ]3 f, v8 o0 v
- (if (= dialog-state 3)
: B' D( a3 [3 x% [ - (progn
7 ^0 n, P; i* ^0 m - (modify_arc)# q; d" J# K' W4 N) }0 \
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
: V. s3 V7 F0 u5 C7 f8 y - (ver_pt1 1)
: Y) t+ ?/ H' }! t6 W# H# L/ l1 | - (ddarc)
, ]9 [1 V" k# b8 _& d - )
+ s7 i: |- H) ]5 V/ V" k - )
. V( j. v) z8 l2 ]# \4 | - )
# g. R) r5 d c+ h - ;;
; J# J2 V, y7 \& \% H - ;; Modify SOLID or TRACE$ [0 ~0 `9 g$ u: h6 `
- ;; Note the Z value of the object is determined by the Z value of the fourth g- e3 a5 M$ l- P, F! `
- ;; point - code 13. Changing the point values of a solid or trace from a UCS
5 f& z" r9 C8 I) t5 D" l - ;; that is nonplanar to the UCS the object was created may confuse the user.
2 j5 d/ V0 {+ A( s F5 u - (defun modify_solid ()
5 j( A$ J: e4 O' U/ j0 F/ Q! ? - (modify_properties)
3 t- Y' j" U' f. P: _ - (setq pt1 (list x1 y1 z4)): E U! d9 L j8 q
- (setq pt2 (list x2 y2 z4))
: m6 @9 ~7 Y; E2 t/ ]/ X. _ - (setq pt3 (list x3 y3 z4))
6 q+ e7 ~; I* ^6 b( |2 \4 i& o* G" M - (setq pt4 (list x4 y4 z4))& Q( ?6 F- [+ c* R
- (tempmod pt1 10 1)+ O; l" [5 h C& i8 Q0 _0 `
- (tempmod pt2 11 1)
( U- Y5 R N) c9 P+ x7 u# V - (tempmod pt3 12 1)
" l. i9 P) ?: o$ F% P' d A; Y - (tempmod pt4 13 1)0 R, V# I" I9 Y4 d
- (entmod elist): U; E0 T b \) b. i' o3 b+ H
- )& E/ ^- \4 U# P3 w; B
- : Q* T+ e+ I* j4 s7 Y d0 N
- (defun ddsolid ()
' [( \) k# A' M L - (if (= etype "SOLID")
, @/ H; `) s. h! h9 }: B8 f! N' H& c$ C - (if (not (new_dialog "ddsolid" dcl_id)) (exit))7 @% I! y0 h% u, F
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))
$ x R* ^) ]7 ^, m$ J7 h! c: d" f, c - )
; ]0 e% p6 A- d. P/ z$ {* e# u - ;; Set initial tile values* ~7 `9 \1 o1 ]7 o( f, w
- (set_tile_props)# i2 q7 P. [# N& E8 f/ o
- (set_tile_handle); k" V# \3 Y$ B. o
- (set_tile_pt1 1)8 w) Z# Y. ]- M' x1 U2 O$ D
- (set_tile_pt2 1)
/ s/ z. K. ^0 X! f- {8 ~( A0 V - (set_tile_pt3 1)6 `* F2 b/ v& U# I/ H7 z: X- M
- (set_tile_pt4 1)
! v4 K1 @9 G, P" h6 a/ e' \ - ;; Define action for tiles; p6 t! T9 h' q5 g j
- (set_action_tiles)# c4 [' n* M; D1 \
- (setq dialog-state (start_dialog))
( \; h }5 f7 H8 N9 B+ ~+ o. q - (if (= dialog-state 0)5 B' k" N1 g8 o g
- (reset)
& G: U$ z' w! }( v - )
" U& I7 H7 @# q8 A8 Z - (if (= dialog-state 1)! p% e G+ n4 B$ D! _% k
- (modify_solid)+ H& Y- J% ~- r% E/ x5 @' R
- )3 h4 T1 l( }$ `# @1 p9 _
- (if (= dialog-state 3)9 O: E f+ e+ c+ C* Y8 p
- (progn
& o8 g9 X4 V; V - (modify_solid)
* R4 F9 _: q* J3 H/ Y% [# [ - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))) w- Q# r a" ^( m
- (ver_pt1 1)
1 E' g6 `; D+ c. c( l - (ddsolid)
4 ]& o4 L2 K$ \0 ?4 b - ): E6 w$ O5 I! N6 r+ J' _
- )/ N, T+ m2 w5 u0 e: m% M
- (if (= dialog-state 4)
9 \7 z* u5 R! m& w" [9 }5 e! C - (progn
* v" k3 B* [; A* F6 o - (modify_solid)( F6 G9 ]7 l6 \$ Q i( M
- (entmod elist)* f; u& L* m$ q- b ]
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
% F+ _% B0 P/ F. B" h% N - (ver_pt2 1)( z* @. h% J# j$ Z6 |
- (ddsolid)( Z) P1 R- ~ q/ y
- )$ @2 q0 f' x H, W' w
- )
) I h4 L, ^& _3 g - (if (= dialog-state 5)% X! E: ?5 j |. N
- (progn
V/ _+ X0 N( ~ @7 I. L - (modify_solid)/ b2 T, z2 u h! S3 z4 d. c
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
1 }! T% L/ i5 O0 |( p6 c5 @4 Z. w% ^ - (ver_pt3 1)1 q9 O c4 j1 t5 U8 R5 t
- (ddsolid)
, [# j8 \( T7 H! \+ C9 F - )' W3 A! i; k% [3 v; i3 N" V O
- )
3 A+ v# W: X- ^ - (if (= dialog-state 6)" T; Q l3 @* E: x* j* v" m
- (progn' E/ u1 n% `; |! J
- (modify_solid)
' Y* A2 j5 k: C7 s) r - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
1 f! ~3 ~+ ~, o" e( C - (ver_pt4 1)
* P! ]7 y& I$ m6 T, P+ X - (ddsolid)
& ^- |; o& h, Q- G6 D2 m [ - )4 ]9 Q7 V2 m# E# m5 B
- )) G: p, C; v0 P% V* z: B; R
- )) L: C2 j+ ~6 u3 h' ?' d3 Z
- ;;0 _# Y& J; q3 `2 l: K5 N6 u: ]
- ;; Modify 3DFACE
0 j) A+ J. I: t* M% @+ s0 ]4 g - ;;
$ p4 ^$ H" t m' Q( ^ X# z9 e. d1 X - ;; Check visibility of edges
9 T' v: c, W1 e) I) t - ;;
2 {: A5 \3 S x9 k6 u1 Z1 z; I3 C - (defun edgetest (/ bit1 bit2 bit3 bit4)
) f/ \" a9 B, }8 @# ] - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
P0 g1 g$ ^2 c/ { - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))( l8 j- O# e! |; F6 g
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
! _6 s6 o4 m/ I# \: d% V! d! p - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
b5 d* t4 V) P8 ?* g! o - (+ bit1 bit2 bit3 bit4)
2 N( v# D7 a s. X) @0 y* D0 D - )( b8 e% n4 j9 }% i1 k
! ]1 W% ^3 p. `$ _7 I- (defun modify_3dface ()
7 g* g( c* y* |+ u* q - (modify_properties): y& K" m' N+ f3 @# ?
- (setq pt1 (list x1 y1 z1)). { @4 @3 U# s4 i
- (setq pt2 (list x2 y2 z2))
9 `* V: w& C7 Q6 _- M# _9 P' i - (setq pt3 (list x3 y3 z3))5 J& ?) N$ I, m' u* t3 _' ^' o9 Y% l
- (setq pt4 (list x4 y4 z4))
; ^% j' k" N/ T; x$ m2 }& j( f+ { - (tempmod pt1 10 0)
" h6 a Q0 A0 _) ] - (tempmod pt2 11 0)) D' w0 ^! I p
- (tempmod pt3 12 0)1 t! t3 c# z8 ?6 a
- (tempmod pt4 13 0)
3 e, p k, @3 `' I: |) [0 S - (tempmod (edgetest) 70 nil)
' d! r* d. Y& ] - (entmod elist)
0 v! V3 `8 r5 f7 \ V; Q- A9 q) z - )
8 X% V# }& Q& T: L4 U% R' @8 H - 4 T/ L2 o5 l& V/ y" {
- (defun dd3dface ()4 K8 B: x( J8 b, N
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))
% A V5 F. o6 H3 W" r+ ^ - (set_tile_props)6 c9 n$ \3 s+ C+ \3 O7 y8 ]
- (set_tile_handle)) @" H+ d, y0 \
- (set_tile_pt1 0) @% p. O% t! s' G9 O( l
- (set_tile_pt2 0)
6 e' N W8 T/ x2 c2 z# e+ [ - (set_tile_pt3 0)! s% B7 L0 ~7 z) R/ y, [9 r
- (set_tile_pt4 0), ~8 O [! ]: W5 Z- |! H& B
- (set_tile_edges)' w; E7 @( y' P! M6 Q' k
- ;; Define action for tiles
: f% o4 x0 B& j/ j - (set_action_tiles)) o4 w5 p$ p1 M% B h; J
- (setq dialog-state (start_dialog))$ e4 O, t+ [& h& `5 Y& V% o: d
- (if (= dialog-state 0)1 e, A* Y; T7 W9 _' i$ o( H, a
- (reset)
5 O N5 v0 i; ]/ r# ] - )+ @: d+ f- `5 c$ \& {* q7 L5 b; ^1 J
- (if (= dialog-state 1)
! Y0 o4 O- ^$ G0 D# Q7 H2 w3 d - (modify_3dface)
4 o# [ b8 g y! w( I1 M - )
2 G; O, b0 ~' ? - (if (= dialog-state 3)- q: @; x: j, _9 D8 b
- (progn
) c4 h; j6 _: c% @# G$ X! A, D - (modify_3dface)( a- r( Q4 }7 v D
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
0 }. ?7 P1 T* L' D - (ver_pt1 0)& K' a1 D, `: H( Y4 G3 M; ^
- (dd3dface)
1 F) [; u+ H, B) v+ t, |1 q - )
w3 c) R5 {7 y6 E - )
5 O: R2 J' T; c* M - (if (= dialog-state 4)
) }/ r7 ~( g- n0 V2 o( d2 Q5 o - (progn9 ]+ `% c* U5 P
- (modify_3dface)
' [. o0 T. s6 {: `# a - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
b* J- F- E3 d0 ` - (ver_pt2 0)" }; ~+ e" j9 }* W9 p
- (dd3dface)
- ]; ?, k! R+ b7 K5 U+ n( D - )# F- \1 f5 C0 f3 H+ {/ S8 m
- )
" v E+ U1 s6 U5 Q; f( B: |/ U - (if (= dialog-state 5)
/ C, B' ^# e- d - (progn
5 c- \* Q$ E7 Z/ G h' C - (modify_3dface)
3 A- L1 `0 t1 x2 d. R, H - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
: ^: `5 z4 Y5 B4 u5 R, ]1 l/ M+ a - (ver_pt3 0)
, q* \3 C# D# I5 m2 c' |( v8 D - (dd3dface)
7 a$ y& D- A$ _- s- k - )' @. Z! @" v5 W+ P0 h
- )/ t5 |9 B8 Z. a6 F B3 u- K
- (if (= dialog-state 6)
( V6 c& B( C; t6 I; B* x, y2 a - (progn: c8 h c! C2 q: B1 e; K
- (modify_3dface)/ u+ }* W: x; @, b
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: ")). D7 k# Z% a! L$ t6 ?
- (ver_pt4 0)
0 N4 Q7 |; G* o/ s# l# w1 C( D3 z - (dd3dface)
" l, T# K% `0 Y1 Q% j4 {4 D$ e - )8 @5 m+ Z; c, T* k4 a: d
- )
: c/ d' {4 \4 b+ C; }" M+ d - )
4 T' f" i3 K5 @1 k& v( i: \ - # v, S- X" R; W# B( e5 [# @
- ;;2 B) H, h3 Y3 ^+ M
- ;; Image functions1 p) o% e1 l. A, B
- ;;( V' u+ {+ R$ v- u
- (defun image_scale (/ upixel en n userscale temp). x! T9 O) ]2 V K" g, m/ H- l
- ;; Calculate the size of an image pixel in AutoCAD units4 i: n! L N/ n9 `! Y* Y
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
3 o; P& P1 D3 t8 n) M6 F
7 F+ |0 G) X/ Y- ;; Retrieve the user scale# J' W9 r% S5 w1 A, E
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))# D0 O# `4 t; S3 p+ q8 K* @
- $ d1 S+ V O9 @3 k8 D% `% D. K4 I% Y
- ;; Next, extract the image units and pixel resolution
, e! n" o) ]7 Y! `, _$ @ - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
; H1 [4 f; h! X3 T, w - (setq image:scale (* (cadr (assoc 13 elist)) upixel))1 r( v$ }' a6 _3 @4 C" b- ~0 j
- (progn
! R$ K6 x6 m" F" ]* f0 T - ;; Convert the user scale to the proper word& v6 }) J0 q e6 j4 D6 e
- (setq n (cdr (assoc 72 en)))
# R# R( z. V7 t1 q$ F7 b - (setq temp (getvar "LUNITS"))5 L( T5 G# H5 q6 w* l: _8 d# r$ x
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
" e+ h& G2 D4 R \9 S& g% h - (if (= n 1) (setq userscale "Millimeter"))
/ l2 ~" y0 i; v Y) j& n - (if (= n 2) (setq userscale "Centimeter"))3 A, j) t& w7 E `- y+ ^+ `
- (if (= n 3) (setq userscale "Meter"))& V# b+ w" l) V$ x; [# G
- (if (= n 4) (setq userscale "Kilometer"))" K# c6 c; T1 `( n9 n
- (if (= n 5) (setq userscale "Inch"))$ N7 d' G7 k1 o ?" z
- (if (= n 6) (setq userscale "Foot"))" r2 s3 U |) n# k. }. _# q
- (if (= n 7) (setq userscale "Yard"))5 }3 {" z# P* p" }0 B: I$ C1 X1 }6 ~
- (if (= n 8) (setq userscale "Mile"))
' _* v. p$ v% p8 q! r+ _0 K - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
; r; B, ^% {. T2 V* x4 |9 P ` - )0 w2 M5 t! j" c( [* b
- )
7 n" S1 A7 t0 S9 n - )9 d9 a1 N/ t5 c2 b. ]
- 6 |( T$ e) @# f
- ;;
1 d% {" @0 d% B$ ?3 q7 y - ;; Scale factors for block insertions: M8 |2 p" B( l4 u' F! N
- ;;8 @; j& n }0 U# A
- (defun image_set_tile_scale (/ temp)
# W: m# u* E; _- y" o - (setq temp (getvar "LUNITS"))
, a; m% C d+ n! ^* u7 f - (setvar "LUNITS" 2): A1 G/ D9 |4 b+ \- k
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
* A" `3 e& e' x# m! j8 ^ - (set_tile "wid" (ai_rtos (* image:width image:mult)))
# `; a2 T7 G1 l4 @" X - (set_tile "hght" (ai_rtos (* image:height image:mult)))( _6 R2 M" G( A, v1 V$ K
- (setvar "LUNITS" temp)# S) O. K# x4 F% @1 v
- )
6 Y- n! I, w% _' R Y K
+ F1 v. j: ^+ ]& w$ f( x- ;;; M$ ~% `1 D8 @& U! j( q5 a* V
- ;; Set the scale, width and height values appropriately.; i7 o! k8 s, I Q. m9 \
- ;;3 j! k x; ]& M3 _7 U; s
- (defun image_update (field value / orig_value new_value mult)
+ Z0 m# O1 E7 T. d+ {; I - (if (= field "xscale")
, F6 F o& H* ]5 m7 g% b$ Q$ j - (setq orig_value image:scale)& [ M3 @' L+ y9 g& x" m6 b4 z3 B
- )* H7 O) A+ B* J9 p+ @0 J$ v9 s
- (if (= field "wid")# {4 |; e8 r: A$ }. o2 Q7 F
- (setq orig_value image:width)4 c" U5 S) N9 G# ^1 [
- )
3 u; T# f. N" n. H - (if (= field "hght")6 N" O9 l$ {% V6 }
- (setq orig_value image:height)
( L6 x- ~ |' \1 u# W( ` - )
( z# ~' Q8 B8 i - (setq new_value (verify_d field value (* image:mult orig_value))): c; [0 b& j, r- S( _& W
- (if (/= new_value old_value)
# J, P- X6 `9 d' K( g% k - ;; Make sure the user has entered a sufficiently large value
. N* R: `0 N- n - (if new_value9 ?, o/ T' x9 s( P3 c8 ^( G( u3 V
- (progn
7 Y) X/ Q8 ?/ w/ {2 `7 O - (if (< new_value 1e-8)
* l, U' N) @2 R. v - (setq mult image:mult)$ x- D/ N9 K8 N4 b+ [
- (setq mult (/ new_value orig_value))
, R6 y* [: w: L0 b% e. ?* R - )
* X* b, B. o/ u5 [: ?! W, O - (setq image:mult mult)
/ R# e; g2 z: h& }2 a - (image_set_tile_scale)
( [$ M O, i' D. z6 W2 { - )
1 R+ f( D+ o% Y8 _- W - )9 [: ~# J- a# g! n- v+ n
- )
! O1 K% b" J0 O2 F. K3 Z: J - ) N, ?4 T! \* A/ F* F) U; P
- : P4 z4 r6 O p. H f# V' e {
- (defun image_disp_opt (bit)
. q8 X, W5 _" S0 `8 w) d6 i8 f - (setq image:options (Boole 6 image:options bit))+ d" Q1 p4 ]7 ^4 T5 `7 u
- )# ?$ G+ _0 d+ V' M+ Z3 V7 U/ H7 @. J
7 Z6 @! A, \& y; U# E- (defun image_modify ()
! [4 u4 s) n0 Z: \, q; s$ [ - (modify_properties)+ W: s- S8 b L0 _( e% s9 n5 g
- (setq pt1 (list x1 y1 z1))
2 _4 O, F! l' `' M7 } - (tempmod pt1 10 0)6 U% `2 T0 y# I( c) F- x& g2 B6 R
- (entmod elist)/ w6 I) H* P2 L- s
- )8 [9 z% R2 V8 m( P! u
- ' C' j: _, s: `9 Y$ B( y9 S; f2 W) E
- (defun image_clean_variables ()
9 d+ \4 O5 v% g2 h) Y - ;; Clean up global variables used here
, D$ O$ c" z8 ~) C# S$ J. v - (setq image:scale nil)
: G: g7 M6 l' k, V5 S& C) ~ - (setq image:angle nil)- W/ }7 M: ^" a1 ^* }
- (setq image:width nil)
: y3 g* z0 Q# V4 f( D - (setq image:height nil)- r% ?; ^0 T& u' M8 t
- (setq image:options nil)
2 u6 \ w: j9 J: |8 d( i3 b - (setq image:oname nil)& `: B% `- V* v" Z
- (setq image:olist nil)
) H. S5 _0 k/ C# t7 c0 B - (setq image:mult nil)
% Q) i! G6 x$ k5 Q - (setq st_ang nil)" {' j4 K6 v/ f
- )& R' _* s6 m/ v# s' ~
6 o: T& o1 f9 l( d8 k- (defun image_scale_vector (v1 value), u4 Z; l! j7 _% E3 z; [
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))8 }! Z4 A. I# F0 e3 n
- )% p# [4 J9 ^; p0 V8 H! C
- 0 v7 z4 X1 Y% K) q' O! W
- (defun image_cross_product (v1 v2 / vx vy vz)4 y( y7 u: F7 n+ Z7 k
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1)))): l m$ r- S9 x6 M6 \
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
, S3 u% [) V, I; R& ?3 o - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))$ ^* h% P+ j3 ]3 Y7 H$ ]
- (list vx vy vz)5 d& F7 r5 A- `6 K
- )
! p5 _- G3 i: }% ^+ i4 G% ` - , X. K( L' a, H3 n8 ?
- (defun image_dot_product (v1 v2)
5 x+ X$ V$ S' v1 t. r - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
t2 }) c. m! B# |: }. q - )
3 M* a+ S( U# y1 @ - ' i* b1 ~0 W) Q! }
- (defun image_add_vector (v1 v2)
* D+ d2 O3 ^) E; W2 o - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
! c7 _1 {( k9 I) b" a0 n8 ~- X - )
' j z: W! b: t8 P% b$ X3 A - ! z& a: F1 E1 g3 }8 h
- (defun image_subtract_vector (v1 v2)
$ D1 @$ _% ^+ _" y; q - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))8 Y( H/ W& r& ?% d
- )6 p$ t5 u! K- C! E, U$ V1 p
- }1 Z n* _' J: S' ?% w( x0 N- (defun image_normalize_vector (v1)$ _2 \- v2 `. N
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
$ R. d; p2 l$ X$ l7 d - )1 ~* E j5 v0 e% B: C! L
- 1 C0 c7 @5 L0 w5 P4 n. M
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
0 o9 k t3 { k6 O& ^5 j - ;; Normalize the axis
3 F' h+ J2 w" f - (setq axis (image_normalize_vector axis))
; ], ^" d5 \" g; y5 r% w - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))! Q% A# v/ J! q" ]2 J# O
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))7 \0 d. r, C4 Q- x# Y
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
* N. H5 N# H8 Z - (setq in_rot_plane9 O0 C s ^7 q1 z7 J0 U: \6 s
- (image_add_vector
- w* i. s% L6 X% T - (image_scale_vector axis_x_in_rot_plane (cos angle))* h5 \$ ^ M2 z& W& }7 i& u
- (image_scale_vector axis_y_in_rot_plane (sin angle))
8 b& L S5 `# y& n8 D( U$ ~9 N' u - )/ h" }5 L' Z4 a$ R0 Q! r ?* M
- )
' N7 u+ K" a+ H* U1 z - (image_add_vector along_axis in_rot_plane)9 S) e2 X- J7 W5 n
- )
( l ~2 X8 h! L& k) R& d - }. p: D4 l6 H3 [( U, Z8 J
- ;;3 V! \! T Z: f6 C
- ;; Calculate current rotation angle if appropriate.0 [, Z3 O3 b8 h' b+ f6 {$ K! s
- ;; If not, grey out the rotation field.- e, W0 Y: n) S& r( V
- ;;$ T/ u$ q2 K# v
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
3 Z! p: n8 @8 M$ M. i9 }4 u - ;; Determine if image normal is codirectional with
" @. K3 V! _8 F( |$ {7 k' |% T - ;; the current UCS Z-vector.
. W4 d# @0 v# {. p( G - ;;+ S. T; @; V; ]2 V
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
+ h# Y! c3 M3 [& } - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
' _/ r, M' L2 {! k - (setq zlength (* (last normal) (last normal)))0 e% O+ D' d( f g- i& I
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
2 x, s$ e7 K! A* t- _ - ;;! a- J6 a7 @' q3 Y
- ;; cos(.0001)^2" K) U5 ^+ G0 t5 O; Z2 q7 R
- ;; Tolerance = --------------% m7 w8 ~0 p* C6 Z3 o
- ;; sin(.0001)^2
, ^0 X7 \$ t! V) S& R6 m - ;;
& ]& B, }+ t: V( r) y( a - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))6 }4 M: }& _: p) {% D. F+ N
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))4 Y/ q1 c2 l; L2 n; ^! k
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))4 `7 G7 v: A! A3 w
- (progn
% E2 z2 H9 r, H8 s - (mode_tile "st_ang" 1). F- l; U1 ~- [
- (setq image:angle 0)
; s4 u* E' g7 r) N - )
% w5 o1 ~ j# t3 `7 y - )
2 H" j% V# p. H# h# i - )! q/ L6 B. G1 |' N
; y9 h5 k0 S4 j0 J5 u1 s5 e- ;;: U! b c8 ~( d' i; P) J
- ;; Modify Image0 g3 X8 U, p. W
- ;;
7 f, ~0 x/ H P( N6 o - (defun modify_image (/ u_vector v_vector z_vector)! F/ ] }* [/ ]% i/ K( V" M0 ~
- (modify_properties)0 ?$ e/ n8 z5 Q3 @3 y4 K$ E
- (setq pt1 (list x1 y1 z1))
8 J# }' z8 r) F% q. c/ I% r - (tempmod pt1 10 0)" D& X7 s6 }% o& E r
- ;; Make display option changes to image
/ }2 q" [. s5 b( C2 \ - (emod image:options 70)4 N5 |% r! f& W) m$ B/ A2 @
- ;; Get the u and v vectors# v- m6 q' J8 _7 _; ]* U# D& z5 v4 l9 T
- (setq u_vector (cdr (assoc 11 elist)))
& `* b$ D3 M% p+ x* _: ^2 {& w$ h1 w - (setq v_vector (cdr (assoc 12 elist)))3 s6 U% P( [' v+ k# t+ i
- & {3 n' Q* V$ ~& d" k/ d' {
- ;; Make scale changes to the vectors
& o* _4 i4 M4 R0 t - (if (/= image:mult 1); `8 L; z# w: @7 \! [1 ~/ l* n
- (progn- b9 L! i/ A2 V+ x9 E& |" P2 I
- (setq u_vector (image_scale_vector u_vector image:mult))
! R6 P- ^# ^. Y: P/ y" k - (setq v_vector (image_scale_vector v_vector image:mult))6 r9 r. ?' J( A& G
- )
: s, s, d" C: F" H% _7 X5 W - )
2 h7 Y3 F( k( ^! o1 V: I - ;; Rotate the vectors
) f0 A9 e- f {# W4 F7 p7 d: U - (setq st_ang (- st_ang image:angle))) J: f* {3 o8 i
- (if (/= st_ang 0)
$ P5 m) B+ \3 M; z - (progn
+ B# k7 X# E4 L( W( n* q% Y s - (setq z_vector
6 C8 i p& j. m/ _" k; p2 U' X - (image_cross_product
( s$ q- V7 x3 P$ s3 }$ I* _ - (image_normalize_vector u_vector)
5 P/ J: X9 Z V: L( o7 K$ g) n' ] - (image_normalize_vector v_vector). y. W6 l" a1 {. q: Z7 Z
- )
- a4 m' w0 y+ o. P+ _ - )& {6 q: {4 t5 Y4 K
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))* M1 {1 _8 C: o$ c( `+ p
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
0 Z f5 J b' ^# ?% d - )
5 w# g5 J, N. F, M - )
/ M7 L9 x. v1 Q( A% Q6 P - (emod u_vector 11)
% D( x' q) L1 D5 Y A# r - (emod v_vector 12): e, P& M( u! c9 c
- (entmod elist)
$ g( m! I6 p+ u/ m8 q - )2 N3 f, F1 s( u+ { }8 S, [) c
- 0 q# w3 M5 i* ~0 l$ C+ B' x$ l! f
- ;;
5 \$ T; y" O: u9 H, F) D - ;; Run imageadjust on given entity, working around possible
+ \; x8 L7 ~ B. C0 ~ w1 o2 g+ u# T - ;; re-entrancy problems& I7 A; m8 U) k- t6 ]1 `( w
- ;;
5 }( [' v& T. o/ i - (defun image_adjust (ename)
* B. N& D# R# }& ^+ D$ P/ g - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
( e$ s1 @/ M+ O$ u4 V2 E( f - (imageadjust ename)3 M) k* Z, }# t- L$ H
- )( X" Q) `8 R5 b$ f( B
- $ h/ a; X; b6 c* n2 i& b! Q
- (defun ddimage ()
+ V6 L0 h: I H9 i; N$ K* H - (if (not (new_dialog "ddimage" dcl_id)) (exit))
" v* Q9 v- A0 d2 W( ?
9 A" k$ P- a9 Y' t9 A& u4 q- ;; Grey out the thickness field.. M$ m+ h2 O6 h+ r& U$ T8 H) F% f# F6 s
- (mode_tile "b_thickness" 1)
% p' {1 b6 U' ^; w( t7 b0 G4 } - (mode_tile "eb_thickness" 1)
6 S0 G; G8 O( J! Q$ h - 8 c# A: B4 ]* X7 e6 D# t% _
- ;; Get the associated def object.: J( n, h8 M. X. p
- (setq image:oname (cdr (assoc 340 elist))), M# B. M0 j/ n* b4 S8 x' N2 p5 y
- (setq image:olist (entget image:oname))/ A; M' _; Z, h' z) `) r
- * l+ ^6 y0 i, D3 `. u8 d: ]
- ;; Set initial tile values
6 c8 z S& t) f) U& h - (set_tile_props)
0 A; k: j- H/ Q - (set_tile_handle)
- b: s; n! C. y( I# \ - (set_tile_pt1 0)
6 Z! A& l8 L& e% k - (setq image:scale (image_scale))
4 p. g) C+ [2 S - (setq st_ang (image_rotation))6 A: W) y" I$ q3 y- Q
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))- O" z5 t$ K6 y% N& y$ \
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))% y, B1 P" p- B7 g# p: V2 J' U
- (setq image:options (cdr (assoc 70 elist)))3 Q6 [8 a4 d5 a! Z9 O% t
2 v4 K( m$ v7 ~; s. C% r- ;; Record the last multiplier for use in image_update function% v, L8 G7 d' H/ [$ y8 U( d0 _3 ]% v
- (setq image:mult 1)
& P7 D a% y' i' v - ; W9 ~0 _* w, k8 y3 j
- ;; Retrieve the image name
- c" D. r( s, ~ - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
+ w9 o- {$ s! C* ?; v - (setq flag 0), H9 } ]0 q$ C2 D8 \
- (foreach n fn
. Q( i* C9 _8 z6 C+ i/ u - (if (= flag 1)
5 S( z! ]( k7 [- K - (progn
3 b0 R, u: s8 ]' B2 Z" c - ;; Display the image name+ g: [1 v( I0 O# R' ?& m6 j8 u
- (set_tile "image_name" (cdr n))4 C0 A- a- J0 z. _0 m2 j5 b" {
- (setq flag 2)9 B& f2 I2 U( P7 f# g
- )7 O h; ~# k6 ^- y* n- R
- )
5 n9 f d1 H) D+ T" h- L* [- ` - (if (= flag 0)
h4 @+ y0 k2 @ - (if (equal (cdr n) image:oname) (setq flag 1))' _. M: c6 M c5 W: c+ U" y/ ]
- )
# G8 f) k( F ^/ S x1 A - ) h( [% m, | h4 \7 D# j
- ' y) x+ Q N m5 ~3 I# V
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
% Y$ N* k; H8 f7 C9 K - (set_tile "st_ang" (ai_angtos image:angle))
3 j4 t4 j9 }6 m/ p4 `2 Y3 O. Y+ P - (image_set_tile_scale)
- w6 |- D( N6 R
2 k3 G5 G2 s8 V/ D* ^4 v. D- ;; Check the appropriate boxes
4 s& E$ ~/ s' q7 f, s - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
j) J* C6 ^+ B - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
$ m. i; [9 r0 h - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
+ w9 m6 n7 B4 z* q - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))( ^1 A' v! l, R
- 9 L* h) `; V3 R
- ;; Define action for tiles5 c; K |* A% E( w. N
- (set_action_tiles)
+ j8 m; y* O/ s# l$ {$ X) J - (action_tile "xscale" "(image_update \"xscale\" $value)")
1 W+ p6 u( m: y" d- B0 a4 I - (action_tile "st_ang" "(ver_ang1 $value)")$ `- w1 C2 z9 g$ L
- (action_tile "wid" "(image_update \"wid\" $value)")6 V. V$ D7 ?' [- u+ |3 U5 Z
- (action_tile "hght" "(image_update \"hght\" $value)")
9 g. P) H: T P0 D' {5 A - (action_tile "image_show" "(image_disp_opt 1)")
5 T$ `6 a3 Q$ |/ j8 l( B' U - (action_tile "image_non_ortho" "(image_disp_opt 2)")
% F l2 }" D3 B+ ^8 ^% Z - (action_tile "image_clipped" "(image_disp_opt 4)")
8 c* G& }2 c& l - (action_tile "image_transparency" "(image_disp_opt 8)")4 S* z. O* k) b$ [
- (action_tile "image_adjust" "(done_dialog 4)")
, l1 y3 l4 [/ Q0 U, l
: x( N2 T. o$ }) @+ ]( I9 m- (setq dialog-state (start_dialog))
( p7 ]2 b- d! f. X& b Q/ [8 _ - (if (= dialog-state 0)
$ _* o t& w2 j3 N. ~$ b7 v - (progn9 V" Z: C3 G) }" M
- (reset)
9 s5 [! C7 g% @+ _ w Y% z7 U - (image_clean_variables)$ `" f; `8 I0 `5 w0 Y
- )
, T. ?! P7 E2 r: z; ~% ^' K+ c8 m - ); S h5 ]' O/ j1 _$ e! }7 k
- (if (= dialog-state 1)
0 ^& @# t Z V9 C' c% W. R - (progn$ t `8 K; M7 X6 Y- ?4 {+ i; @
- (modify_image)
6 p! @/ Z3 Y1 p7 _; q. y+ p - (image_clean_variables)& H( f7 Z* j1 \4 h; m( ^9 ~) N
- )
( o$ L0 t" c* W# C. K9 b - )( T8 b0 K" W, L7 T
- (if (= dialog-state 3): a2 I0 f: q# S3 D& [& f
- (progn
8 e2 H$ v- f3 s8 G T: f# p - (modify_image)8 a8 Y; f+ b9 Q1 f- D
- (image_clean_variables)! k) M( k% l$ f6 F( Q; _
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))# M2 a! s' Y4 G4 N- b1 d9 \3 L" G! f
- (ver_pt1 0)
3 f5 H. ]; J+ H$ \, E- s* a - (ddimage)
2 M) ?6 ?7 c: ^$ `, | a6 A - )
. Z: I3 m% b2 w6 u, ` - )# C4 u B" Z- @/ `+ D& R7 I
- (if (= dialog-state 4)3 o0 b+ @) L+ ?& g- V# ^' G9 F. N
- (progn
$ K. x" \+ P& q9 X - (modify_image)
) f5 R$ L" s+ h6 P - (image_adjust ename)) z6 L, v* t1 ~/ o
- (setq elist (entget ename))
8 l+ ?8 Z' ~+ @4 r( U* W9 z" x - (ddimage)
7 @1 c3 M; Z6 I7 c4 |; A - )& f( b5 }9 q4 F7 y% Y
- )
( O0 X$ o% H Y' S# Z - )
$ H9 h T6 d6 F( S) C7 {
5 N9 n& T A% B- z T. X( u% t- ;;7 u- L0 u1 i/ g0 y/ U* t6 ?
- ;; Modify BLOCK (and its Attributes, if any): n U" ]" M4 c4 G; B v
- ;;
6 t G! m; r* w4 d( e" s - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr& M2 A) v- F6 x7 u5 b
- new_wid old_wid old_rot scaling old_scale
1 K% d- x' M; t% j - xdelta ydelta zdelta xbase ybase zbase ipos)" C; c! _% P- G h! b, a' v. r
- (modify_properties)
) ?$ r1 B$ Q$ g) z" u, O7 B$ ^; x
9 j& A% q' |" H$ X @. M- ;; First, translate and scale the Attributes, if there are any.
+ i! x0 A$ ]) O _ - (setq old_rot (cdr (assoc 50 elist)), z1 p# a; P y4 F5 F( o" b
- old_scale (list (cdr (assoc 41 elist))
% d0 g# E5 u6 J6 Q - (cdr (assoc 42 elist))/ F+ M, X" W( i
- (cdr (assoc 43 elist))
: e3 C: Y; z- F: b! }0 c - )
9 a7 [* f" |8 t3 P - scaling (or (/= xscale (car old_scale))
7 S5 P1 w. J& Q3 g" Y" ]6 L: D - (/= yscale (cadr old_scale))
' f8 Y1 Z) w v' Q6 Q/ G- a+ Q O- O - (/= zscale (caddr old_scale))8 [: n4 z" ^& r' t
- )
* u. T* x% U$ T5 [& r" \ - attr nil ; No Attributes modified yet1 V1 [7 @* G$ P* @% u
- )
0 v, b1 V" f" `% t& X: F8 @ - (if scaling; Z; O, ?! U* N% w. F+ l
- (progn
1 L: G. I7 e- F4 ?3 E! { - (setq xdelta (/ xscale (car old_scale))
- |* L: t6 Y$ d# g) e( E+ } - ydelta (/ yscale (cadr old_scale))! Z/ @5 R' Y/ N r/ W
- zdelta (/ zscale (caddr old_scale))
3 I, n& s8 {3 a! C - ipos (cdr (assoc 10 elist))/ ]4 k/ @' S1 g. _. F
- xbase (car ipos)3 T/ O' H* q6 p% R0 Q* G. t
- ybase (cadr ipos)
/ X( h5 k! I0 S5 K - zbase (caddr ipos)
, r. G3 u: E3 p. E' S - en2 (entnext ename) ; First Attribute& U7 R8 f! H: r/ M, u/ I' v+ h
- )3 j) d1 G2 C7 S- P( a1 p& [: F
- 5 k( R2 ]( [4 @0 p3 k
- ; If the Block is rotated, temporarily un-rotate it, along$ I) _& Q1 M( w/ X
- ; with all its Attributes, so the scaling/translation of the
+ p5 @7 c5 V) E - ; Attributes won't have to take the Block rotation into account. Y5 ^. O7 k) l2 X, q
- (if (/= old_rot 0.0)
o: d3 n' s+ b I7 | - (progn
7 |3 q7 C8 g/ ~ - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))! x; J/ J8 S3 o9 U
- (setq old_rot 0.0& D: f6 f `1 V, B! Y7 x
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)2 k* ? G9 \; s+ U) s. F
- ): `' X% ?1 S1 @/ a+ O7 b- u
- ); R2 L: n6 S# @+ d2 _- u# b
- )
( w( J. Q( C- @/ ` - 4 n5 m& ^2 V; _" Z G: ^
- (while en2
/ d- L4 A* w3 X - (setq el (entget en2))
; s2 J0 c# w! d) G- @ - (if (= (cdr (assoc 0 el)) "ATTRIB")' ~/ ` Z. I. T$ [, n& ]
- (progn4 M3 i2 a8 E) f& f1 s
- (setq old_hgt (cdr (assoc 40 el)) ; Height
' \- V! ~2 E$ I, q2 l2 g! t' A% ` - old_wid (cdr (assoc 41 el)) ; Width-factor8 s9 i- }2 k L
- oldp1 (cdr (assoc 10 el)) ; Generation start point
' c4 t* x9 N V% M+ W. ~; r1 ? - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt2 [+ B' [6 R: u# n
- ha (cdr (assoc 72 el)) ; Horizontal alignment
+ U1 e( f+ V' {# r, f - va (cdr (assoc 74 el)) ; Vertical alignment% k1 u* E7 l& p' x9 f% w; [
- , R6 _" o% V4 [. G7 ?/ s0 q
- ; Translate gen. start point; [% o& X, u6 P/ o
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))- a3 ~+ R% l8 g. b/ e; F. D9 o
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))+ G% h/ {5 y: s8 l
- (+ zbase (* zdelta (- (caddr oldp1) zbase))). v# n3 j c# b3 o+ i$ u& q* l9 c
- )
& O" B$ h- k) n4 [5 Q2 q# _ - el (subst (cons 10 p1) (assoc 10 el) el)
8 I! s6 t" x$ I3 O' q0 @( D - )
! k& L; Q8 c5 o - 3 S, b' X0 U: Z& p5 v" `& N
- ; Translate alignment pt similarly, if present and applicable& H) d1 Q3 B" E& }& m! r
- (if (and oldp2 (or (/= ha 0)( G, f6 Y. |6 l$ l
- (/= va 0)# k- o( P; p" @& g9 f2 y
- )& N. ]7 C$ R3 R( w
- )
% f. V, o( R6 ~7 p7 c/ ~- g - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))* W0 z% J+ ^- B6 t: U, t
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))) ~" m5 j2 ^ c: E3 W
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))
/ X" z- i& Y& A- ` - ): W# R, H. N# v
- el (subst (cons 11 p2) (assoc 11 el) el)
9 |3 h% U/ g( P& g$ Z# S* I - )
6 [* B' Y* \, N$ r5 U - )
; i) f+ f% N7 o! Z2 K% O* q
' @9 c m+ B; w( Y7 ], s: c- ; Each Attribute's height and width-factor were computed+ C: c4 h0 y$ O7 B3 f T0 a% \
- ; based on the Block's scale factors. Adjust them now,/ @3 u/ n# q, O+ b( f, g/ u
- ; by first reducing to values for 1x1 scale...3 e' j2 w; \: U( P% f
- (setq new_hgt (/ old_hgt (cadr old_scale))
4 x3 \. z5 F* o3 }9 k3 G3 ~/ @5 p - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
" @3 D9 l: X/ m& ~ - )
% p9 M2 z: S! m' y' A - ; ...and then rescaling.* h/ ^& \5 G3 J" b% @
- (setq new_hgt (* new_hgt yscale)8 T3 l8 Y7 o$ K: T$ V" {3 A
- new_wid (* new_wid (/ xscale yscale))7 Y5 H+ g0 E2 q. I6 b4 `, D, B* \6 L# J% |
- )1 f9 y/ F' q1 b J# |, {, e
- (if (/= new_hgt old_hgt)( h* E/ [) |8 I/ n# f
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
. p6 Y% K0 p% O" T( W - )% a8 P3 \: W K" z' c. |. q
- (if (/= new_wid old_wid); d. i: i* q! x) R
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
; o4 c) ^5 b2 ]; H/ f% ?& M - )* @; o" D& i4 x9 i. O2 I5 {; Q- I
- (entmod el)& t$ X6 D% U2 v8 l9 A
- (setq attr T ; At least one Attribute modified
9 R& _% C6 P( ? M - en2 (entnext en2) ; Next Attribute
6 O1 f" S: t/ z* ]$ G6 m: w* E" Z - )5 R2 d# y8 \8 I7 Z* `
- )
! b& i( ?* U3 C* j5 Y - (setq en2 nil) ; No more attributes
$ r# j. L7 M% P7 k0 j2 @5 j4 W4 b - )
( U# A1 x+ T5 e+ ~. X" ~: _7 _/ _. [! ~ - )3 f' z) M2 }# j2 P1 e
- ): e( A; L8 q& `: ?5 {
- )
( B: d8 _+ S9 T) M- f& v
/ Y! a. J% S& R$ ]6 o- (setq pt1 (list x1 y1 z1))
7 X) g, W; j' u/ v0 Z/ K+ t, ~ - (tempmod xscale 41 nil)7 [; L/ U( ?* a# f( }
- (tempmod yscale 42 nil)
& O5 U" L: ]+ @ - (tempmod zscale 43 nil)$ G7 p- n" C. g
- (tempmod col-sp 44 nil)
2 V0 N8 T2 e" Z' Q4 _% a) b: V1 [ - (tempmod row-sp 45 nil)2 ]9 ]" L+ O/ I# z7 p' B
- (tempmod columns 70 nil)9 N7 A+ P/ F7 K- A, r/ D; b' K
- (tempmod rows 71 nil)
: l: o6 y7 P) y3 x - (if (= xclipmode nil)
- g- r2 n1 s, g( X: I+ D - (entmod elist)2 X7 i1 V. h) b
- (setq xclipmode nil)
+ Z, ^6 ] F: ]4 T. n k, s - )
' j. z; E; h; I/ \8 B: n - (move_pt1 1)
4 l [3 C4 l9 s R. s3 A - 9 h) e; I3 N% j" b/ q W( k
- ;; Now do the rotation with the ROTATE command.$ I2 W3 Y- n, A4 N
- (if (/= old_rot rot)) N2 w, q* D4 @5 c6 ~ T" \
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))- |2 K$ D7 ]0 Q
- (if attr ; Else, if attributes were modified,* s+ D8 V% L3 c0 j r9 E
- (entupd ename) ; just regen to force attrib display
/ p3 ?+ i( V: U, i9 U; W3 J - )' ] `' v+ `) U+ D1 W, D
- )) [* O# W! y' }5 n$ L% s
- (setq elist (entget ename))* g, h% c$ N, D* e2 t' X' L
- )
- j, v* b( f) \* ^" ^; h# M - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
5 J; B: H3 _( d6 E0 L - (setq newhatch 0)
/ i. U8 `7 E% T - (setq blkname (cdr (assoc 2 elist))); n+ ~+ o2 {# w( m3 _
- (setq blklist (tblsearch "block" blkname))
( i4 I6 g$ A/ g, p+ L. c0 o - (setq blktype (cdr (assoc 70 blklist)))
e* [6 k& C. _+ l2 w4 G& O - (setq xcliponoff 0)1 P9 l/ }, [& |3 [
- (if (or (= blktype 0)(= blktype 36))! o( i$ t4 w$ p6 e
- (progn
8 x" q. x0 v" {$ ?' I2 l- q - (setq xcliponoff (xclipon elist))
* m7 m; a- p8 D# P - (setq temp_xclip xcliponoff)
, W) |2 N% R0 V- l- _$ a* L - )
1 D, J' C/ o' l* \. Y - )
+ A( z7 m1 T* i1 S2 I& ~ - (if (= (logand blktype 4) 4)
- e, G1 M8 v6 l: C+ X - (progn: Y( v+ W. d- j3 y: U
- (setq xrefpath (cdr (assoc 1 blklist)))# ^# d& X: a2 a N5 \' O: |; G8 E
- (setq help_entry "modify_External_Reference_dialog")$ L% N! W& S6 |' \4 Q6 H! n: B
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
/ w0 Y$ q/ r2 F X' N D - (set_tile "Bl_name" blkname)( G4 e( g) ]" |/ F5 ^6 { S$ r
- (set_tile "path" xrefpath): @. f1 P" `( _! e9 H& ?
- )
& P' r9 m7 a8 G. Q/ T; |& z' ~) V - (progn
( d, j( t- q: k% }+ O - ;; Get program name for use as Xdata app name! V/ ~2 s! N) g1 v. k
- (if (not (setq program (getvar "program")))7 S( X; f' k W) S
- (setq program "acad")
. `( L3 s5 k' @7 B3 a& P8 m - )
% ` p$ G, A/ U) @ C7 a - (if (and (setq temp (assoc -3 (entget ename (list program))))9 ^8 a- g+ Y; J
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
0 }" N! g. a8 ]7 |0 t* V8 @, Q - (assoc 1005 (cdadr temp))# ?6 |" H( [6 f# }
- )4 d5 \5 A, g- G, `# w, ~
- (progn
4 u$ u4 `1 `3 p9 h. ^7 G- q - (setq newhatch 1), J5 E& H$ Z7 m) A' x# S
- (setq help_entry "modify_Hatch_dialog") c9 x: M; y% V# B: n9 I3 X2 o' \
- ;;; convert the object into a new hatch( V/ u: O! M6 D x' @( M7 H9 T
- (ai_undo_on) ;; enable undo
( u7 ]8 B9 C! i& V) m" }, X - (COMMAND "_.UNDO" "_Mark")
1 u7 |* Y! p8 R9 t, a9 b. m - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")4 `5 q' Q, ]% D1 p6 E* r, J. _) P5 i
- ;;; suppress nasty message from convert command2 U. B3 ^; t" `# g- M3 ~
- (princ "\r \r")
+ ?& t$ C+ i/ d% p5 w& K: f - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
) k1 w, q1 N! f; S& k/ a1 |! q7 V0 i - (setq old-elist elist)! O6 X0 M- ^0 A/ k: [! |. ^/ B0 b
- ;;; If we have cancelled ddmodify) V& _( F Y2 {1 M' M5 J
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
/ D2 e8 f4 g- M- v! V: `2 o" B. v" h - (command "_.UNDO" "_Back"); ?6 M3 e3 P0 X! V; y# d% B h* Y
- )
5 o% [: L" h$ D5 O - (ai_undo_off) ;; restore undo state2 U% t: O: n' s1 x( U
- )
0 `% M; }8 }+ m/ T" L! X - (progn
6 x5 H9 C/ }3 L - (if (not (new_dialog "ddblock" dcl_id)) (exit))
- Z! N" z8 K8 [' u& o% ^ - (if ( = "*" (substr blkname 1 1))
, v! `+ C( n2 w. T, e - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))% E: B6 c" N: Z3 d- w( Q5 Z2 ]* z2 i
- (set_tile "Bl_name" blkname): G; ]$ G+ O7 Q* \3 F
- )
1 G. @ E) a Y - (setq help_entry "modify_Block_Insertion_dialog")! j, h/ G) g. i5 A/ D/ V+ s
- )9 ?# |$ b/ f A# O- p
- )( l- m8 f! o9 l) e& i8 k3 |& b9 N
- )
: Q. T( S0 C' c5 F4 v1 `. K# X - )
# d- g/ A; ^9 t2 | - (if (= newhatch 0)
6 i7 e3 E0 t f/ u& A6 { - (progn6 ?8 e% }% i$ ? D
- (set_tile_props)
- S) |" p4 o) D8 [- s6 @ - (set_tile_handle)4 c: z2 V% S. G$ B, X9 C# w5 ]
- (set_tile_pt1 1)3 Q b" j( w, e1 U X S$ x
- (set_tile_rot)6 O q1 i. X9 Z0 c3 Y
- (set_tile_scale)/ e3 O# p" \5 k) f
- (set_tile_rc)" c q/ b3 V) F
- (if (= (logand blktype 1) 1)- l* p8 W1 r- M% S! c$ L
- (progn, Z6 C s0 y6 t* d
- (mode_tile "xscale" 1)
8 S' V# k0 {$ h- |6 m( S - (mode_tile "yscale" 1)
$ K9 D) W; d2 ~0 J - (mode_tile "zscale" 1)* Z/ Y9 O1 d* e4 C: V ^! r, r
- (mode_tile "rot" 1)
9 T2 x& z3 ?2 G- o - (mode_tile "columns" 1)
8 S, W5 R* P2 x- \8 r - (mode_tile "rows" 1)" \; V& v; E: S/ W: x7 {$ ?# T& R
- (mode_tile "col_sp" 1)
3 g; ~' u7 u7 Q( @% A6 r - (mode_tile "row_sp" 1)6 `7 I4 u" f* X2 {- q4 Y- ]
- )1 ?( g$ e7 Z$ e6 P+ F2 |
- ); S& s. y6 f; f3 ~ M! r
- ;; Define action for tiles
' q: d1 V8 F5 C M) W - (set_action_tiles)
1 F; y, Y8 F, f9 O/ |. k - (setq dialog-state (start_dialog))& Y2 K& _( G; a0 ^
- (cond0 e5 f, C4 a9 ^% F9 [
- ( (eq dialog-state 0)
/ j2 v9 F' t3 e - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
, ~& @% V2 h4 W5 i3 M2 |5 o - (move_pt1 1)7 l6 d" {' o) m0 l9 W
- (reset))1 Y, A5 g" H1 L' D9 |
- ( (eq dialog-state 1)
- D' t% Y# [# w1 e1 {8 D - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
5 }. _5 |; d9 g* t - (xclip)
+ _$ ~4 [' U% P2 k( M* D - )
% o% ~% }* G H, N8 t1 N0 ` - (modify_block))( Y' V" a3 ^/ o& k
- ( (eq dialog-state 3): S0 J7 f) u: S2 H d3 Q
- (modify_block)
; ]( D \- @2 o. l+ } - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
2 O. t; P" Q. ?4 V& K - (move_pt1 1)
) q3 D t |5 x5 F - (ddblock))+ z' \) ^4 \; r# c. l
- ( (eq dialog-state 4)5 P- V F5 h( t$ ~: m
- (modify_block)
' S: x: v4 v( `+ z3 `# ^ - ;; Get current handle.
# [* c4 n3 I6 [1 A, d - (setq hand (cdr (assoc 5 elist)))
; n+ F0 m# G3 \4 k+ s: q - (command "_hatchedit" ename)
' d+ m9 B! T' O1 ^" `) l9 G - ;; If OK in hatchedit, a *new* entity is created and the old one0 k+ t* @) |' U% d
- ;; is deleted. So if the old one exists, it must have been a( r9 j+ _' ~" v) i# o- e
- ;; so rest the entity.
4 A/ S8 A M, l& S' K - (if (entget (handent hand)) (reset))
1 w( E) F' V, _ - )
/ J3 b. K/ M- s9 Z# P. `! ~6 [ - )
2 J4 [& m0 m3 g - )
& C8 i6 K" A+ V - )
1 F0 Z8 o- f+ f0 V1 L5 S - )6 r( X9 S7 J/ N
- ;;
; }7 F4 f& M" C0 X6 K; w( I" X& {, W - ;; Modify SHAPE
. P$ f- }: { a3 t ]2 W- K" o) S - ;;- V( P: e/ ^, Z9 W+ ?; _
- (defun modify_shape ()
. c/ ^( j& r. X2 I - (modify_properties)
( A$ d/ \5 |& R - (setq pt1 (list x1 y1 z1))" K2 A# H' h: t- ? R! `
- (tempmod pt1 10 1) ]# G' B6 w! P" C d
- (tempmod hght 40 nil) g I( z# _6 i+ A0 W0 E# ]
- (tempmod wid 41 nil)
" |8 F1 [- I2 [7 H; r) c% m - (tempmod rot 50 nil)
# Z& p, N! c/ @( i$ ?) W, u+ [/ z - (tempmod obl 51 nil)- N- N* J) R+ D3 G. [; y
- (entmod elist)* T2 h$ {$ W$ M$ k
- )
) ^+ Z$ I3 K0 p' V
) W* y; O4 Z5 u, ]- (defun ddshape ()
& D, U5 ^" q9 a1 p2 c ^! j) d3 ` - (if (not (new_dialog "ddshape" dcl_id)) (exit)) T8 v8 f! X% A: Z- O* R
- (set_tile_props)$ i$ k; W7 @; K0 @, |
- (set_tile_handle)1 u$ b: c7 L& B4 z, Y
- (set_tile_pt1 1). E; A+ o2 {; w+ a. h* n/ s( I! e
- (set_tile_rot)
& H3 T- A' J& H' Z* U - (set_tile_hght)
: {6 H$ V: C; n1 C3 ? - (set_tile_wid) S3 e8 p, X" W$ s* }
- (set_tile_obl)3 g: J: W. h+ T6 Z* K; D
- (set_tile "sh_name" (cdr (assoc 2 elist)))
& f" G" g" L/ f$ @- t1 u - ;; Define action for tiles
% p6 o8 ^) d3 G$ H: @& C: H; S - (set_action_tiles)
) S9 c4 P) ]7 _# J - (setq dialog-state (start_dialog))
2 w7 {$ \+ F# A) E, q6 [5 ?" I - (if (= dialog-state 0): E! a! j7 o5 s1 K4 O
- (reset)2 x& h/ c4 ]5 y( x) T2 i( |
- )
2 Z6 o/ }0 a' T4 [) h9 R# j - (if (= dialog-state 1)# T6 Q& l2 z5 E$ S
- (modify_shape)
0 w7 o* x! P$ y, X& {) w3 f) B - )) `! z' I8 ]5 p$ B
- (if (= dialog-state 3)# a3 K7 L" W2 L+ A4 m% z; P0 A
- (progn( _- E( S! d& M4 C
- (modify_shape)- o- p; R2 R- S, ?# k
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))( I8 q3 M" n) b+ d: D. t6 L
- (ver_pt1 1)
3 d8 `) Z4 |' I; P) T - (ddshape)
x: `: S$ v* |8 g. O - )7 z6 V1 ?1 f5 w* s
- )8 S# x# f& k& y# t/ k2 l
- )0 |4 j9 I! M1 R7 ^- g- ^0 S
- ;;
8 C2 v: y0 Q. a' N/ e2 o. i+ R - ;; Modify TEXT or ATTDEF2 ~0 j5 G! J4 l$ ?% Q
- ;;) H2 n5 y+ b Z4 b% N: H% R- K
- ;; Set bit code for upside-down and backwards setting
$ \9 b* O' j5 o; y1 g5 C - ;;3 M% Q. c# ~7 e& V+ r( V6 b
- (defun code_71 ()
" E+ [8 Z n4 o# k! d# S+ R - (cond ((and (= bkwd "0") (= upsd "0")) 0)
5 K& l" f2 I# V# V( m0 N1 H - ((and (= bkwd "1") (= upsd "0")) 2)' j1 E# }! p( Q7 T
- ((and (= bkwd "0") (= upsd "1")) 4)! ~0 _- U" \. ` G
- ((and (= bkwd "1") (= upsd "1")) 6)
* @( ]1 ~' W* _ M4 b% o - )$ P; q, B# l( A
- )- |' \5 S: s4 t: U
- ;;
7 X/ u) k4 V1 d# F" Y$ V1 } - ;; Style action. Reset widget values to style defaults
) Q* @. c. k; `- u- H' E' E( x - ;;! h, {( q1 p. M9 Q' e# U" Y
- (defun style_act (index / style-list)+ p# X$ X0 i2 b% O9 K6 P
- (setq style-idx (atoi index))$ j( o, E+ z% r4 L* m" b
- (setq tstyle (nth style-idx slist))! O3 B1 f5 N8 V
- (setq style-idx (itoa style-idx))
9 k+ Z6 n- ^& f$ W5 F; C - (set_tile "style" style-idx)
1 X; P5 e3 T9 i2 w0 i - (setq style-list (tblsearch "style" tstyle))
8 E7 H; _ Y0 ~6 G' l/ `5 Y - (setq shght (cdr (assoc 40 style-list)))8 A5 R2 D7 T4 i' z2 Q
- (if (/= shght 0)( N+ t, D% C+ @- z, b
- (progn! R/ s0 t2 `9 ^ B
- (setq hght shght)
% A, b, V. g/ w+ Q - (set_tile "hght" (ai_rtos hght))- T7 J, S- B4 _6 g
- )
3 z ?" W" N# a- f0 b5 J( o - )
) n2 g7 p; Q6 U! F$ K0 ? - (setq wid (cdr (assoc 41 style-list)))
0 t: F2 `7 [, o( @) J' U, E - (set_tile "wid" (ai_rtos wid))
. z* n0 p' L& j - (setq obl (cdr (assoc 50 style-list)))
( h- K3 ]1 r& m% e - (set_tile "obl" (ai_angtos obl))
. B2 t5 \' O: i9 k. G. L - (setq bk-up (cdr (assoc 71 style-list)))* t8 S" G) W J/ p2 Q6 t3 b. d- y
- (if (= (logand bk-up 2) 2) s9 ?. e' ?( `' C" x
- (set_tile "bkwd" (itoa (setq bkwd 1)))
$ M6 J& F) i* `( v1 I9 i/ n5 u - (set_tile "bkwd" (itoa (setq bkwd 0)))( z, R2 Z( Q: h0 F$ g- Q) n
- )
& b& j; P( M: m0 ^0 E8 E! q - (if (= (logand bk-up 4) 4)
; }$ { Y1 U' O4 b! s - (set_tile "upsd" (itoa (setq upsd 1)))
# ?& @; w: [! O1 `3 | - (set_tile "upsd" (itoa (setq upsd 0)))$ B# D0 k1 c6 K) y X
- )
) |( d9 c+ W0 S8 F5 T - )" ]9 c) v' k' S7 t9 f* s9 q
- ;;
' C& |2 v. Z, E: \' v - ;; Justification action. Set vertical and horizontal alignment variables, j- {( u" Z; b+ `5 ]' g3 I) l0 S/ A
- ;; grey out rotation and height if alignment = "aligned", grey out rotation+ N/ b0 w$ p" R7 ~# w1 V3 x
- ;; if alignment = "fit".
) |) Q$ i U- c& ?/ Y( C% o9 i - ;;
# [5 X! ?9 i! s9 d5 Z - (defun jlist_act (index / templist)
( z5 F0 U/ R4 L - (setq just-idx (atoi index))
, T2 H! h% f' C: \, ^ m: e - (cond D0 D" M- a! J" J4 T
- ((= just-idx 0) (setq va 0 ha 0))
/ s2 f$ r2 t8 P' t, W# H - ((= just-idx 1) (setq va 0 ha 1))
' s" q$ n& ]/ c$ u - ((= just-idx 2) (setq va 0 ha 2))
1 ~% b. G9 r) }, G - ((= just-idx 3) (setq va 0 ha 3))5 l% `( M" R8 T* Y( U/ W* {
- ((= just-idx 4) (setq va 0 ha 4))! g( B% Z1 |; Z, ]( p ^
- ((= just-idx 5) (setq va 0 ha 5))# b" W, c$ C* ~: w
- ((= just-idx 6) (setq va 3 ha 0))
( j% Z- z! T# j2 A' l - ((= just-idx 7) (setq va 3 ha 1))
( J9 G( E) O* e6 X9 R* ] - ((= just-idx 8) (setq va 3 ha 2))
3 j7 `# a }7 h0 y6 e - ((= just-idx 9) (setq va 2 ha 0))3 Q* T& i4 a5 v$ d- o; l. i2 L
- ((= just-idx 10) (setq va 2 ha 1))
2 i P6 r8 T# k/ v: H' r - ((= just-idx 11) (setq va 2 ha 2))2 ^- b' M* @7 z& E
- ((= just-idx 12) (setq va 1 ha 0))8 |$ }' m5 ?" ~) D. l
- ((= just-idx 13) (setq va 1 ha 1))
$ N# U4 f1 I# r, l4 G3 g- V - ((= just-idx 14) (setq va 1 ha 2))
' p8 ]9 l5 G9 {$ e# ? - )! g7 E4 u- O9 }
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text4 K2 _; l. @" b) G2 c
- (mode_tile "rot" 1)
1 N: d$ ~6 }! V2 ]. u - (mode_tile "rot" 0)2 a) y* d) R, D+ f& V
- )
0 b- I! h8 P2 j3 G- w8 h, K - (if (= ha 3) ; If Aligned text
' X; W1 Y' v; v2 x0 X; c; v. O5 f; A - (mode_tile "hght" 1)
1 ^) A1 a g: R: | - (mode_tile "hght" 0)
; `& `+ }" q) |7 R& ]& d - )+ |( Y( |, ^6 L+ K3 H& _
- (if (= ha 5) ; If Fit text7 Q( x- Q2 m" U2 i, T: n. P/ A
- (mode_tile "wid" 1)
8 D! r8 @ o/ {6 X8 A5 O - (mode_tile "wid" 0)" I( ]. h }/ a8 g0 C
- )
! y* E$ R: M& Z3 B - ;; Reset rotation and height if changing from aligned.' l0 c+ O+ K- z w; [
- (if (and (= ha-prev 3) (/= ha 3))
& B6 W4 @$ [# w, x. \1 X {1 k6 B - (progn- F+ Z, y+ l3 Y% y) X: s5 U7 F
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
; j! @1 u: Q: f1 x& U0 {2 ]0 { - (set_tile "hght" (ai_rtos (setq hght 1.0)))
* l' s' Y& I2 D9 z, `! V, |0 _ - )
) R/ k0 h8 N1 P- a2 {4 P6 m$ p - )" @- H( k% W4 D' {! X7 _" ?# n
- 5 g1 @/ K. }5 x2 L4 _7 n* g. B8 l# i
- ;; Reset rotation and width if changing from fit.; s: K4 S5 h7 {7 r s& T8 `
- (if (and (= ha-prev 5) (/= ha 5))
+ g( C" e; s; z/ | - (progn
h! k" B/ f9 X+ A6 `+ s - (set_tile "rot" (ai_angtos (setq rot 0.0))): [8 m" H5 p: [8 E
- (set_tile "wid" (ai_rtos (setq wid 1.0)))
p4 @8 |* |7 s$ q# ^& V - )# X% P& O/ R) S$ x
- )0 o9 J; q% s I0 r1 g, x
- 8 h' L4 r. t- w+ Y) \7 |- L
- (setq ha-prev ha) ; update ha-prev for next time6 R8 X, s1 ` n
- (setq just-idx (itoa just-idx))" v, j u! }7 n7 c+ K+ j
- )' C0 i( j& f1 ~! ]7 U8 g
- ;;; j( D. ?5 k, z. W8 ` T# U1 D
- ;; Set intitial alignment setting based on vertical and horizontal alignment9 D W# c+ v% s
- ;; bit codes.
5 v# H& K n" s9 q1 R3 _; S4 J" n - ;;
; L5 k K% C# ]# h - (defun set_just_idx ()' ?5 l" @( m/ {$ M
- (cond4 A- i6 s9 }' Q H# X! @
- ((= ha 0) ; Horiz alignment = Left
, I( ?$ q" u) R, f8 p$ ` - (cond) Y% i6 i: e+ L
- ((= va 0) (setq just-idx "0"))
6 {1 q3 d/ x2 ?5 P+ `: b - ((= va 1) (setq just-idx "12"))# ]- ^6 W" j' d7 i
- ((= va 2) (setq just-idx "9"))
, c/ P8 G0 U e7 f" _ E3 o* V/ u - ((= va 3) (setq just-idx "6"))6 J; B4 l$ R/ ~; K) x% R
- )
/ k9 x3 P$ w8 {1 N8 d5 o4 } - )& G: ]; ]2 Y. }- K! I/ {6 T
- ((= ha 1) ; Horiz alignment = Center
9 D+ t- h1 _6 U: e( h* G4 l7 F - (cond
$ E, { t! v9 v3 Y - ((= va 0) (setq just-idx "1"))- O# x5 R) K& P' U3 Q. E
- ((= va 1) (setq just-idx "13"))
2 U5 {( n2 [( Q5 h! g - ((= va 2) (setq just-idx "10"))9 A- i, |# ~5 T4 ?6 K7 A9 c
- ((= va 3) (setq just-idx "7"))
+ Z, c6 r2 Y+ T* r* Q8 d) t - )+ {1 K! F; h' p* V, N E1 H
- )
" S6 S* {* y) | - ((= ha 2) ; Horiz alignment = Right+ e4 {9 e# T6 \9 D' q2 `
- (cond" n' }7 d+ _, A ~& u1 f* z
- ((= va 0) (setq just-idx "2"))
3 M3 y. e& r& b - ((= va 1) (setq just-idx "14"))
; y% r" o' R& r! T% h7 E: w0 Q - ((= va 2) (setq just-idx "11"))
0 W5 Z, y& M9 q3 \ - ((= va 3) (setq just-idx "8"))- U; r% y/ z N. \2 `" y' A
- )( A& C! \1 ]: D8 [3 x& A/ D0 f( O
- )! |2 D% v; S+ C: {& P
- ((= ha 3) (setq just-idx "3")) ; Aligned; W7 `# D! h. T
- ((= ha 4) (setq just-idx "4")) ; Middle/ |) ^/ ^" l+ f. R1 g+ }1 W
- ((= ha 5) (setq just-idx "5")) ; Fit
: @8 O6 o: C8 h' b4 o0 j3 l$ C" i - (T (setq just-idx "0"))
2 {3 U: K" `, _) p" S! S, L. M" Q - )
0 [# R2 a* L/ E* R6 v" I1 K9 L6 z' | - just-idx
6 L7 d) p1 j' J& ~' }3 V - )5 g) f7 m+ z; |/ b# I2 i
- , k3 ]. F( l1 m
- (defun modify_text ()
. S( ~- y' d/ f - ;; insertion point- ?8 H9 _$ b& [
- (setq showpt (list x1 y1 z1)). y* [4 z/ |% y* c% L& j
- (setq bit-10 (trans showpt 1 ename))+ _$ w1 [8 V, I. D/ @3 L
- ;; alignment point# A5 t; b( N2 Z% v* v$ q
- ;; for 'Aligned' or 'Fit', alignment point must be different8 B' }- f5 J1 a! m
- ;; for all others, use insertion point
# y. M) ^& O* k% N! Y3 [" ]1 X4 x - ;; (ACAD will recompute insertion point)
% V E$ R4 K' J8 I: o) W! P4 { - (if (or (= ha 3) (= ha 5))2 Z# D2 S* P5 I8 @) ]; S, V. d
- (progn
8 }) {: A$ Y5 U; [& M. q - ;; if no alignment point, fabricate one# h! q2 m4 s+ R2 ?
- (if (not alipt)
# A+ [: n/ e" t5 H - ;; add text width to insertion point
7 i* e4 f. ^7 T; ^6 {0 `9 |; m, \ - (setq alipt* N+ s7 N8 l. e9 N# a
- (list (+ (car showpt) (car (cadr (textbox elist))))
2 |# s# @" U3 T% r% k* `* Z - (cadr showpt)
/ |. Z) F ]5 h7 L: c - (caddr showpt)! N2 d; C# w" S. L- n9 H. t
- )' w# G( {! V( D t1 h
- )
0 g3 M8 M/ g, [ z* d: L. [ - )
# O( t$ y' l) w) y1 B2 D6 d - (setq bit-11 (trans alipt 1 ename))- A. J2 _) e4 Z& P( r3 ]& R5 O; p% X+ S
- ): Q# I7 J! E. N' Y
- (setq bit-11 bit-10)
2 R$ P( O2 l' ^1 i) m7 N; G - )
3 E4 z# A! P6 a( }6 L) m6 b$ [ - (modify_properties); X/ w7 N/ L) p. i% ]! `
- (tempmod tstyle 7 nil)7 e5 m% [! F) @$ _) e5 \
- (tempmod bit-10 10 nil)
' F4 S- v6 ~. ^* n2 H- A; F8 @" o - (tempmod bit-11 11 nil)
+ z6 q4 o6 ^2 y; P - (tempmod text 1 nil)
1 I0 u2 k( y# G$ E/ m8 |; ` - (tempmod hght 40 nil)4 I3 @$ q' a* r. e) ~
- (tempmod wid 41 nil)# S& @+ B5 R+ B) \$ ?, D$ l" X
- (tempmod rot 50 nil)
) D' y9 Y G4 k8 B - (tempmod obl 51 nil)
6 ?6 U4 m5 h7 X - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
. T7 [3 A% W% m1 f - (tempmod bk-up 71 nil)
0 s/ _+ z: t. \4 Q' X; o; J& F4 w - (tempmod ha 72 nil)( _3 a9 p X8 J
- ;; Attdefs use 74, text 732 a: q e; j& d$ A
- (if (= etype "ATTDEF")
3 u2 i; J9 s0 ~2 T - (progn
* ]5 x& r8 N' h+ ?9 e - (tempmod attag 2 nil)
v1 X+ V; d' n# W7 R, r5 S - (tempmod atprompt 3 nil)
6 |# F+ [7 ]: |- ] t - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))7 D7 c, }) ]) X
- (tempmod icvp 70 nil)
& G1 o: O6 W M6 l, f - (tempmod va 74 nil) j) v$ |0 U8 p' u
- )
9 f. `: A. O, t+ U: t2 Q! E - (tempmod va 73 nil), Y* O/ x/ `1 x2 {7 A, b* p
- )
, ~% u& N; h* z( u7 C9 E - (entmod elist); h0 b5 ~- s) \. R
- )
2 j' {! c' T' D8 R; A/ h; l+ Y - 0 b0 \1 E" {! E+ `) O
- (defun ddtext (/ 2ndpt slist i)
6 V' @) u0 `+ \$ J1 J3 }; ^ - (if (= etype "TEXT"); F2 H) @- |+ c$ K- R, j7 h) \4 r
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
9 s- ?" s7 j3 b - (if (not (new_dialog "ddattdef" dcl_id)) (exit))- j% z5 y! u/ i# R9 U ^6 {; ]
- )3 A: E2 [( s3 z8 K
- (set_tile_props)
7 w* R; y G! A! c; k/ ^ - (set_tile_handle)
4 y$ P2 v0 D( n' y* t) Z - (set_tile_text)
7 w' N: V6 x/ y# _ - (set_tile_tag)
" Q J8 b- L( k0 x' e, l Z% ?0 A - (set_tile_prompt)) ~% R9 e( G4 O; B0 g& V
- (set_tile_hght)2 E+ ^1 j0 [8 m. H- j, n5 P- g
- (set_tile_wid)
9 j& f: _2 Q& p& C% b* W) z# O - (set_tile_rot)- ]! p' k D; O; `" Z
- (set_tile_obl)2 C) Y* n3 H: j Y
- (set_tile_bk-up)5 \4 z* r* {8 X
- (set_tile_icvp)5 i- S1 s. X2 K4 l
- (set_tile_style)
) e* S" c+ Y4 b- ~7 U: r - (set_tile_just)) J8 z! y. t2 f( M3 A
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))3 v/ m' }+ j5 n8 w9 u% I7 D6 F( ~
- (if (not (assoc 11 elist))
H5 X. J( n G - (progn (setq pt2 pt1)
8 L: j9 ?5 }5 e. C# F - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))2 V" f$ v% g+ ^0 B% h
- )
4 M+ _9 m# H: j0 r$ A& T - ;;(trans '(0.0 0.0 0.0) ename 1))( {/ S) _5 A% n
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1)): t. u$ |( n, H. B% {4 i; k
- )9 {! m( }4 [, q
- (if (or (and (= ha 0) (= va 0))
- O' _/ Q* ~' O5 M9 R! M - (= ha 3)9 A: {) W5 \! ~' a# R, O% W
- (= ha 5), U- C7 i* K. E2 h. B
- )& y( l+ F/ Z, K2 _
- (setq showpt pt1)+ s; V$ {1 |% S. Y; |
- (setq showpt pt2)
& h) C% O, m/ k' m - )
+ u1 y$ y3 O x - (if (or (= ha 3) (= ha 5))& d$ I* @4 O% D2 X5 T
- (setq alipt pt2)
* T* h) y: G2 A9 M9 r - (setq alipt nil)
' s, R* L# G, P: y* P - )
. X5 H. O1 I: Z - % t) m' R& v0 X; ~" p, z+ ^
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))- Z" k9 E |' m) w* K
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
7 i2 Q8 X9 |. i - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
1 k: H7 }3 D8 |: C) H1 o* q) N2 j - , u# S8 g: q- v0 c8 X; Q, r
- ;; Define action for tiles( I9 H! y+ u: R4 W
- (set_action_tiles)- y, t: V* U3 W" g* J" r
- ;; Set focus initially to the text edit box.5 s q9 a% ~/ ~
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
2 ^4 z2 G3 N+ \/ |/ l$ R0 L+ } - (setq dialog-state (start_dialog))
6 U3 J) d7 A/ |% z2 l: n& ~: b& D - (if (= dialog-state 0)
0 Y/ d9 L' n1 {8 b3 i" x - (reset)9 w3 w5 ]. b9 z7 l' v
- )/ O3 ~( }( Y1 P1 e/ l
- (if (= dialog-state 1)
& r7 K3 S, f' j- |8 R% d - (modify_text)$ w- O) V) ~& K! U
- )* A1 X1 G D n- S5 f
- (if (= dialog-state 3). x! C' p! m4 U4 M' o
- (progn
" u( b9 U# g3 t: }! h6 m% U' k - (modify_text): t+ a# m" p4 _6 X$ o" b
- (if (or (= ha 3) (= ha 5))9 {9 t4 o; c) c8 C# }. |) ~ q! m
- (progn
$ I8 N# G1 ~9 U- v" O3 H" m6 k - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))) C. w, n9 B- V
- (if (not showpt)8 P; H+ i1 B: a" r2 }; t
- (setq showpt (list x1 y1 z1))
7 H: n" f% ~* P0 C - ): N8 l" [7 @7 _3 [- ^5 c
- (setq 2ndpt (getpoint showpt "\nSecond point: "))( }( B( @" u/ J; W; z: ?
- (if 2ndpt
2 _# K5 j/ ^7 N: B - (progn
5 ^' R+ u3 f$ S% Q - (setq alipt 2ndpt)$ l' M2 X& i* n& H
- (tempmod showpt 10 1)" N6 ?* R% s- h0 v; D
- (tempmod alipt 11 1)
0 o& V' O: k' l$ d2 D* u - (entmod elist)2 g# x2 e3 E! X6 C
- )
1 p; g( U' M- U/ F - ). j8 r1 V" v# [) u; \* R" L9 K6 l
- (setq elist (entget ename))* V7 h% Z# O' y* J1 T4 [2 x
- )
9 x7 h: o. X' g( w% W - (progn0 f4 d T! f' g% Q
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
, x/ m. l+ w- ~' E4 L, `/ ^ - (if showpt1 _/ [' R M. g3 u5 L
- (progn
1 P# I: y! N' l6 j - (if (and (= ha 0) (= va 0))! S* f* w0 C/ H% a0 J! F( c4 e! x
- (tempmod showpt 10 1)
( f/ W) @ r2 j: T9 Q. i* X0 X - (tempmod showpt 11 1)
0 s# o: p$ y6 [# v - )7 G- b6 T$ J4 P! H; X( d2 [1 B
- (entmod elist)
# z3 y8 f' J' n# \' \% I' |) ~ - )
1 I# F# j! n& Y - (setq showpt (list x1 y1 z1))
; \' [( G6 e" X4 f, J( l - )( `; p! `8 S" P* j6 {
- )
" s3 `0 m/ w& v - )
2 \$ i. F0 h- @# ], u4 { - (ddtext)
4 z: f+ N- J* B0 B, t - )
# W* d. ]" D! V1 t' B - )7 U6 Q5 u6 h% _: I! D2 {
- )
: G2 O+ q) h9 r3 p' I" _ - 1 A; P( E& _! u0 l; M
- ;;
- P: r+ P7 y# z, t C5 I: n. N - ;; Modify MTEXT
7 R3 p! s+ \% B9 z - ;;
# X6 ?' D6 b: Q* U - (defun modify_mtext (); u! p6 h; k7 L) G" A. ?
- (modify_properties)
|8 i) S) T1 z" j - (setq pt1 (list x1 y1 z1))6 J2 W; v" `7 j& k- v
- (tempmod pt1 10 0)
3 |: J- v1 J* e, E - (tempmod text 1 nil)3 s7 @* j2 }' @6 B" u1 V; w
- (tempmod tstyle 7 nil)
Y3 V8 \% s0 W - (tempmod just-idx 71 nil)
0 h, C+ _; d2 C6 y - (cond
E- P# Z5 B1 D* W7 s/ ? - ((= dir-idx 0) (setq dir-idx 1))1 n0 h+ j0 @9 k! _9 q, f |
- ((= dir-idx 1) (setq dir-idx 3))3 q6 c I/ A$ H
- ((= dir-idx 2) (setq dir-idx 5))& l8 @2 X( J: l4 P: X. r% q# l
- (T (setq dir-idx 1))- d2 [/ f ?1 v w, X$ X
- ): s. q: |4 s8 n+ w7 e$ N7 h
- (tempmod dir-idx 72 nil)# o& t& x4 j& R, t
- (tempmod hght 40 nil)
6 u! ]( _( u/ y. i - (tempmod wid 41 nil)
. W! _0 h. J; ^. _$ t - (tempmod rot 50 nil)
" R- N! j4 [. Q+ o' J( ?0 L M - (entmod elist)9 c3 K k) f, b3 [- R+ j" T' t
- )2 @9 ]3 U, H8 U) O( x) Y
" q6 E4 ^6 l( x2 J T: k- ;; Set MText text style
3 V( Y% u$ c4 Q U6 K p/ X - (defun MText_style (index / style-list)7 D; p9 p6 _/ f
- (setq style-idx (atoi index))
) X" D! B" t4 s3 n5 z: B - (setq tstyle (nth style-idx slist))
7 D) l' t9 s; ]8 a* r1 c' Q3 r - (setq style-idx (itoa style-idx))
9 n; @7 _% C4 Y/ H - (set_tile "style" style-idx)
, |3 s) N6 A' K9 E - (setq style-list (tblsearch "style" tstyle))0 T" c W3 W) ~/ c1 S5 u6 e
- (setq shght (cdr (assoc 40 style-list)))
* Q: {9 Z- r2 z U X7 W% T' t! X - (if (/= shght 0)
1 A+ m8 U8 v1 \9 ` - (progn% S1 W2 _* C N q0 C; U
- (setq hght shght)
3 y" i f% V8 V7 V - (set_tile "hght" (ai_rtos hght))5 @/ k+ s+ y& b' \. P* h4 _6 _
- )& G. s( U) @+ X/ N. B2 C4 C% Q5 h
- )
# L$ R+ B# n2 }5 S2 P$ n( z - )
B* N7 P6 V) T( `# v7 R" Z
7 P7 k0 @0 d. P* Y/ Y$ k. T' Y- h- ;; Run DDEDIT on given entity, working around possible re-entrancy9 F& B# d8 ?1 c3 ~- t
- ;; problems with MTEXTED/ N& I' \& ~: \+ C1 ^6 j2 e' o
- (defun safe_ddedit (ename / orgMTextEd work)1 h d+ f$ a2 l3 C1 c! e) ^
- (setq orgMTextEd (getvar "MTEXTED"))5 H, j* J3 Q5 t }; L
- (setq work orgMTextEd)
, R( P3 y3 X1 a& n. Z G G$ y - (if (= ":" (substr work 1 1))
9 l" J7 J: z/ J | - (progn
0 m1 o q2 z6 U - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1))) Q) P- ^: j# C1 I5 m+ ]
- (setq work (substr work 2))
# U, W+ W. F6 x, ~7 Y- a' N8 K - )
7 F+ i6 ^# P5 Q5 u5 _; F; ^& s - (if (= "#" (substr work 1 1))( @6 T4 S+ u% m' G
- (setq work (substr work 2))
0 M, c3 o9 u) |6 i: e6 Z - )
% f' U% e8 c1 b& N1 A, Y - (setvar "MTEXTED" work)3 X Y2 X8 ^( o$ H8 G [
- )
& ?0 S( }) X" z' Q - )1 F# C: J; L4 N
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...( e$ C1 o4 V/ O: v2 I+ s; V* e+ v
- (command "_DDEDIT" ename "")
$ P7 H* K1 K2 \3 l% D - (setvar "MTEXTED" orgMTextEd): k( L+ g; O# B j6 F9 T
- )) f3 ?+ \" I" I3 r. ^
; y1 @: T) s3 _3 k% V- ;; Verify MText object width3 I+ @1 I/ L$ b" P. d1 x( i$ D- R) C! p
- (defun ver_MtextWidth (value)
3 }& D5 i, ], N - (setq value (distof value))
$ `' K/ V5 V6 l/ d - (set_tile "MTextWidth" (ai_rtos value))
$ Y$ e, L9 ]/ `$ l+ K8 v - (set_tile "error" ""): ~1 q3 y$ L5 j0 A
- (if (< value 0.0)
2 ^% L, Y" u- J R' z0 M9 h, ~ - (set_tile "error" "Value must be zero or positive.")
# c1 _( r5 f. O - (setq wid value). I; _6 Z& c( o% }9 o
- )
( G% w) C E- V - )
' D7 b I1 J* X! _
% F. a' F5 S# o' F- (defun ddmtext ( / gc3)
; h8 w. S( ]3 \3 J# V! Y - ;; Get dialog' q8 O [, N' i# M
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
( e; \+ `" f3 E( \1 s* N5 y - - R3 g& x; F# G/ ^
- ;; Load list boxes% T5 t' I- U8 b4 C0 \. S( t
- (start_list "MTextJustify"): t, W- G4 T, A- ^) u: e+ D8 G
- (mapcar 'add_list '(
* [5 S! n5 d- }" O - "Top Left"
* q- ~! e6 h! s& K6 @ - "Top Center"7 r/ v* W6 W, S h
- "Top Right"
& H: J1 I6 C& e; y: r' q5 M6 K3 |9 i; E - "Middle Left"
, w" T; A F3 q7 a ?0 |( X2 M - "Middle Center"' s& C3 @: I& w
- "Middle Right"5 a: s# |$ S2 E
- "Bottom Left"+ ~. n% x: p/ w6 I8 m$ y& D& q1 X* ?; N
- "Bottom Center"
1 z% q! v9 ]0 K. H# h - "Bottom Right"
- N; e; V: B2 Z" o) H8 m$ W! \ - )
' [9 a$ V/ k9 y3 x3 d" @" r1 Z - )0 o) p% A: S* w2 j$ h% d9 m
- (end_list) o1 X J6 _6 T9 K% c* N. K6 r
" x- `+ W9 Y4 B. e- (start_list "MTextDirection")
; ^8 N, {8 t3 @. r - (mapcar 'add_list '(
$ a# ?5 r; i3 H* w. ? - "Horizontal"
7 k! a' |; u$ @6 k - "Vertical"1 U$ @% T7 D) m# G3 O- {
- "By Style"
$ @; y; m( c: w) A - )
( p. X5 `9 \( }$ {5 n - )6 D0 {" u" {5 M* [+ M
- (end_list)
& b' L$ j1 _' w' c/ _9 a9 H
( y) c4 e! d4 f Y9 |5 d9 y9 `/ @/ H- ;; Set initial tile values5 W3 s. i5 w: v5 M! K/ \
- (set_tile_props)
8 S( a/ {. X8 C G+ b - (set_tile_handle)/ J- Y0 s# E; c) [# O. K k# s w
- (set_tile_pt1 0)" w' v8 k# K7 k' J! ~" W
- (set_tile_style)
9 H* ~/ ^8 }, C5 E - (setq just-idx (cdr (assoc 71 elist)))8 u; k3 t& d) k& W9 O
- (set_tile "MTextJustify" (itoa (1- just-idx)))) _" M5 p9 L5 {- j n' @" q
- (setq dir-idx (cdr (assoc 72 elist)))
% s; I( d) m1 a8 q) a" z - (cond r: `" U2 p V) |8 @$ n4 m! g
- ((= dir-idx 1) (setq dir-idx 0))
" d" ^( U1 s B+ V+ w2 k - ((= dir-idx 2) (setq dir-idx 0))
) {) m. Q8 W# q6 W# ^8 j6 C L* a - ((= dir-idx 3) (setq dir-idx 1))6 q4 A# K0 g. Q! p5 ?, U
- ((= dir-idx 4) (setq dir-idx 1))
+ u* |: t: |! ^) Q - ((= dir-idx 5) (setq dir-idx 2))
: E9 \. s2 l8 C' c: c - (T (setq dir-idx 0))
3 \, |0 _- S0 u. G* x7 ~ - )
/ V3 h1 G' k1 K1 V# p' H% P3 \% U2 i - (set_tile "MTextDirection" (itoa dir-idx))
$ K( T( T6 D) Y4 u3 r - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))5 @' D7 D. {; M+ k. c
- (set_tile_hght)4 K. `* i. u$ u: X
- (set_tile_rot)' N: ]3 ]* Q: J0 |9 u7 x& i9 h
- 2 p5 X! \; g& d5 @( u# z" |0 I
- ;; Set edit box, disable if too long
6 o+ Z7 p1 D+ h9 b - (setq gc3 (cdr (assoc 3 elist))9 t3 w- M( T! ~1 A( ?6 `- z& f
- text (cdr (assoc 1 elist)))0 R% K' Q& o/ X' d v* N! H3 `
- (if gc3 N0 R% p Z( F7 H4 V6 |7 w
- (progn ;; Text is over 250 chars, disable edit tile
; `9 H! G. r( g7 P0 R3 b - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))8 x% _/ d8 U* N' X2 ~
- (mode_tile "t_string" 1)4 P0 }" X# G1 ?$ w) I. y" P6 I( N
- )
; H( c2 ?8 ?7 _8 l8 Z6 G - (if (> (strlen text) 80) e- A4 u8 b) X: D8 |' C
- (progn ;; Still too big6 `4 r9 e# Q) l/ W; B$ H* \
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
9 `2 _5 }% F& x - (mode_tile "t_string" 1)
& V& D5 o$ p, C( `# K* Y - ) `4 h" L2 P6 R+ N# A; [2 @* l
- (set_tile "t_string" text)
, `! h3 c" k/ \' q* J% I - )
5 h( A& r! O/ V- q. I' P3 l - )
, `- | G3 s6 g ^5 Y
2 p$ T7 j7 z# v$ A" z; m- ;; Define action for tiles
7 |2 Z! C& {+ { - (set_action_tiles): A6 E; i# {6 G) j
- (action_tile "style" "(MText_style $value)")# W/ F0 O2 s, b( L' d3 g# K" `
- (action_tile "MTextWidth" "(ver_MtextWidth $value)"); p' ~6 S$ `/ A: v4 t% u& `' X
- (action_tile "MTextEdit" "(done_dialog 4)")
& y+ U$ q+ k( X9 k - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
' G) B4 n! h- B' z- M - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
* _/ M- h, i3 c0 M
- l+ ^: t+ V8 v2 m' E q$ w- ;; Set initial focus to text edit box.
% n% t" U7 L/ i+ G! d8 o3 E" h5 _ - (mode_tile "t_string" 2)5 f' y& Y5 s1 M# H1 n
0 |. ~! r$ P0 H7 G+ N& l- ;; Run the dialog
5 I9 Q- @& G; x+ ]8 e& {# [ - (setq dialog-state (start_dialog))3 O9 X; ~* W, c0 Y/ A
- (cond' B5 d, ^9 k9 H
- ;; Cancelled - restore saved data
( \2 G- z$ F: ~% j! F4 }( V - ((= dialog-state 0) (reset))
/ G; P* {$ [. X* E; b - ;; OK - save new data( h2 H6 d5 t0 E( |5 V; x
- ((= dialog-state 1) (modify_mtext))
4 G. t e6 P8 r3 V - ;; Pick new insertion point+ Q# b+ H* l; b; }! @
- ((= dialog-state 3)
: R/ u5 ^$ g7 w, g; b5 V& f - (modify_mtext)2 `9 w- l+ _. H) l9 f J' T* l; M/ m7 Y
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))# d$ T6 A: o3 j' N$ X% ^/ C
- (ver_pt1 0)
' G, K( K N% G: I; g' F - (ddmtext)2 Q- n y, k- ]" f# `+ ]
- ), D0 v9 O. U- ^( u$ H5 t
- ;; Run full editor' W' p6 f# i6 a9 r
- ((= dialog-state 4)
1 L" N( ]/ D4 E; I2 ] - (modify_mtext)
& `/ T( r* B9 o F* g7 n - (safe_ddedit ename)
6 U6 T8 E6 t R8 D! E- y - (setq elist (entget ename))3 M+ O ?5 X2 h9 [5 M( P1 T: @
- (ddmtext)
) p0 D& y# P5 a6 ~0 E% `- ?! P - )2 z/ \. k, ^' o, b7 F2 ^, }) W
- (T nil)
3 A4 t$ J D7 J+ G8 B( O# R - )
$ u$ X+ x, G0 N& }* ]* W* H - )
) y9 X0 ~' B1 b8 m, C% X; t( E - e* x3 p, C' A- e
- ;;
, ?7 B& m. s1 Z* T6 @ - ;; Modify VIEWPORT) r: P3 C9 x% S
- ;;
- ?. Z. d7 w# g9 w [& g - % v3 c8 _ G% X% j4 Z0 x4 @
- (defun ddvport () D/ M. @* l% ^4 m
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
" v" X6 v6 d: n4 l" [ - (set_tile_props)3 V+ m: G# U" F- v1 I& m
- (set_tile_handle)
* C6 t; v( @( M - (setq vpt (cdr (assoc 10 elist)))
' D) F4 k8 `" Y% Q: d* | - (set_tile "xtext" (rtos (setq x1 (car vpt))))
" i4 @4 K& y) E; ^- ]4 t; T+ y4 P - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
4 @# @. P. U, d8 g: D5 r$ E - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
, Z5 u% _# z/ o' s# `/ R - (setq wid (cdr (assoc 40 elist)))
3 b/ w) |& R# i: P5 y( q - (set_tile "wid" (rtos wid))
8 e5 D- K# O7 h9 B+ ^ - (setq hght (cdr (assoc 41 elist)))
( c% V1 d# q& A- O9 m - (set_tile "hght" (rtos hght))
) l6 i" E! Q0 v; y1 O+ r' V - (setq vpid (cdr (assoc 69 elist))), c3 R7 y' |+ W" [4 W( z9 ?
- (set_tile "vpid" (itoa vpid))
- f f) Q: C: U7 e$ ^ - (setq on-off (cdr (assoc 68 elist)))1 k1 M; w7 J j2 z/ z0 F% D
- (cond
Y3 C/ v5 Z t4 Q3 o( j* x* G8 H - ((= on-off 0) (set_tile "on-off" "OFF"))
; {9 Z$ m+ A; f1 U- ~& W - ((> on-off 0) (set_tile "on-off" "ON and Active"))8 j7 m( ~2 q8 D* ]
- (T (set_tile "on-off" "ON and Inactive"))
: W$ P8 \/ c* O5 ?: T" E3 z - )
& C" `( S0 L1 w9 O+ ~
" Q' F3 D7 W, |- F5 q- ;; Define action for tiles% P: f( N) i) R
- (set_action_tiles)( x2 Z& |% S9 b2 Q1 E. }8 }8 V
5 {) M. }- {" S6 B' W- (setq dialog-state (start_dialog))
" e* b3 ?) z. y O/ z6 \" K3 @ - (if (= dialog-state 0)
- Z0 d7 B% x5 V+ O* n5 {+ G; t - (reset)- l2 [( J: n+ K0 k u$ l0 J0 n* C
- )
. N+ t1 D5 N# ]; l$ K0 j - (if (= dialog-state 1)
9 O' n: h& \% K5 x2 U/ H8 M4 d: i - (progn
; i6 E5 Z5 f7 g - (if (= ecolor 0) (setq ecolor "BYBLOCK")): O( u' t. l- g7 Y% U
- (if (= ecolor 256) (setq ecolor "BYLAYER"))
7 C# M* @+ w' d8 Q - (command "_.chprop" ename ""
" F9 l0 X* w$ F5 {3 [8 O$ v - "_la" elayer
( l6 F- a0 W$ l) U - "_c" ecolor ""3 [' U* v! F8 n% V O
- )! v9 f1 `# e! Y, k6 U; \6 w
- )% w6 f9 W: F, z$ v3 o! R
- )
: o2 a" }2 h; ]! { - )
3 B5 J+ X/ Q' `+ { - ;;
! Z$ @1 q. k' R0 ` - ;; Modify POLYLINE
, X$ N/ e9 e- i# a - ;;+ G2 V. ~. I3 L; c5 o+ W
- (defun modify_polyline ()
N0 c; T" o! t, {7 f - (modify_properties)
+ Q/ U% u% W* p: s# z - (if (= ltgen "1")
2 x: ~6 V7 }3 j1 U) N% }' s - (if (/= (logand bit70 128) 128)
: _: b4 k4 z! f L% Q - (setq bit70 (+ bit70 128))
6 x0 d2 e7 W; I - )
5 H) l( Q! V- u1 n! y3 R7 I - )
8 s- ~7 j3 k! v' u: h7 `( Q: ?, z; x - (if (= ltgen "0")* M- R# B% Z8 d; U3 J. q
- (if (= (logand bit70 128) 128)
& l0 Y* T1 D. ~9 [ - (setq bit70 (- bit70 128))* f* h. \, o8 Y
- )
) G: r2 v) ^! |2 Q* s - )& H7 z8 S, S$ U7 j2 f
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))$ F$ b0 H0 U! P: A, b
- (entmod elist)
5 C. b/ ?& F& X. G% c6 Z5 F% \ - ;; Added to take care of updating Vertex information for color
6 _( l8 k u ?; F) S1 z% }7 l - ;; and linetype.
+ o! ^( \+ S4 d/ ? - (setq save-ename ename save-elist elist)
7 A9 g, g/ T. f" ]) V! B - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")3 C0 O3 |5 u2 k* x) H, o/ z5 J
- (progn. r! d( X2 V$ O
- (emod ecolor 62)
; V, a) T6 r# g, I& [9 i& Z - (emod eltype 6)
- a6 r# S2 ?9 `+ Q - (emod eltscale 48)
, _) Z" c5 r t: P( |. c' V - (entmod elist)
* i4 W; _: e$ m5 s( ` - )7 f) X' L- ]# r% {" L4 a7 @: r8 j- M
- (progn- a4 k4 w, }- g$ g; O: J8 @
- (setq ename (entnext save-ename))& ?/ H, l" p) {# H
- (setq elist (entget ename))' t; l3 B" \( Q# I7 U0 U, s: M* x, W
" T! [8 d9 W( w) K9 p+ m- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
8 P8 ]3 h9 a* l3 Z U/ s' Q9 | - (emod ecolor 62)
# e3 _ l0 D& F- W4 ~ - (emod eltype 6) M1 c' y' K# y: ]
- (emod eltscale 48)% S; p5 M! y3 R3 ?3 [
- (entmod elist). Q* t0 F3 Y7 }7 X
- (setq ename (entnext ename))
3 ~$ I7 ~) ~$ D8 R - (setq elist (entget ename))
; F! z" I4 O$ ~' w - )- Q! l8 T# V1 ~# W' ]5 s% f
- )
' @9 Q* @! `: I# t7 o3 s( j I, M - )
# q: F6 t% {$ c7 m8 v8 A+ V) |7 A - ;; Update the SEQEND
$ y8 O& X* ~3 E - (if (= (cdr (assoc 0 elist)) "SEQEND")
% N9 ?/ u( V2 X$ P6 ? V2 Y2 w - (progn+ V1 o* J+ s) e3 K, D1 y( F
- (emod ecolor 62)5 ?- k6 `' y1 B: X$ H3 v
- (emod eltype 6)
7 [: i0 E; a/ @' ^( l9 c( | - (emod eltscale 48)2 K; ^( S" `2 E2 S+ C# c' M) ^
- (entmod elist)& _/ E5 h" X, W% Y, z
- )2 D6 l) d- G7 O
- )
; A! k# {8 R; u M+ X - ;; Go back to header.
; F3 q+ i) v H3 N |( d - (setq ename save-ename elist save-elist)
5 D) _& ~# }2 l3 c* h
; z. X( F9 k7 P/ @7 |3 G7 q/ o9 J7 A1 t- (entupd ename)
- N0 U2 T/ ~$ x4 r4 ~; c) I - )
* I' }* k& L% C, l- u
6 g2 i8 p6 w8 L0 C- ;; Increment vertex. Set tile values to next vertex
0 V- E4 [2 ]9 Y# ~) s. { - ;;7 b( K8 ` r" T( |- b
- (defun next_vertex ()
2 J% t: d& P, A4 o7 |' p, ^3 m - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")9 P6 w. U" T+ a' s6 Q' m" h5 }: X
- (progn
8 | X+ l: ^& W - ;; If the counter reaches the number of vertices,5 y! C3 r0 I/ S" J5 S
- ;; roll it over to zero again.
+ N. s* N( x- }( ]) `2 H - (if (= ctr (cdr (assoc 90 vlist)))
5 A/ ~' r7 Y4 J0 ] X - (setq ctr 0)4 W8 h; j4 [7 L
- )2 @0 c" J- ], D* Z2 e2 k/ U; y+ E
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
1 D4 I$ l7 d) z$ r& i2 R+ U - (set_tile_vpt pointype)
* E" M0 i+ d* S$ e4 a - )
5 c4 Q6 c9 F/ P! z9 _9 o - (progn
5 S- k" I3 g7 i1 _ U1 G1 G) F - (setq vname (entnext vname)); l' o1 E/ |- W; ?9 H3 n. N& m6 R
- (setq vlist (entget vname))
: q3 g; x2 k; m( G2 D0 L, y - (if (= (cdr (assoc 0 vlist)) "VERTEX")1 D% H' O+ ?5 q
- (progn6 |( y' B" |) x, @2 `
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
6 _4 ?- G. x1 E3 G - (set_tile_vpt pointype). a& `- k! L9 ~7 E9 `
- )8 D: G& j7 B5 ]1 |) z- p
- (progn
. }4 ]; F' g2 i0 _0 k$ u - (setq vname (entnext ename))# b4 C; R+ S! T+ z
- (setq vlist (entget vname))
: {6 n3 L& V8 A( s - (set_tile_vpt pointype), B, H) g6 g/ ~2 @5 _7 C5 j
- (set_tile "ctr" (itoa (setq ctr 1)))
8 e* ]8 ]7 k9 T! V1 \" `4 _ - )9 F9 z/ Y9 E8 }( m! }1 C0 X; @
- )
2 V; k9 c* g' p. p - )! O+ j# s6 L9 i$ W2 L
- )
7 K3 [# Y7 b) C; k1 s5 S+ Y - )
( m! i/ c* Q' Q$ }: |2 V
. [) _: l/ a* X- (defun ddpline (/ oldecho); Z e: J( @$ g
- (if (not (new_dialog "ddpline" dcl_id)) (exit))/ S1 h G* N* b6 U/ w- B$ g% e. N3 B
- (set_tile_props)
) ]3 N1 f8 K; W( m - (set_tile_handle)6 D" ?- [6 I. B! g; u
- (setq bit70 (cdr (assoc 70 elist))). s. B) u0 E! s$ g
- (setq bit75 (cdr (assoc 75 elist)))# @. G6 I! l+ k
- (cond
' @) `5 A; j! k! `' F; } - ((= (logand bit70 8) 8) ; 3DPOLY$ d# S$ {8 D( P$ i& f
- (set_tile "ptype" (setq pltype "3D polyline"))* J5 P/ c! H" }
- (setq pointype 0) ; WCS or ECS point values" p( C, H k5 L3 q6 u7 R
- (mode_tile "fit" 1)5 a5 a+ W, E1 k4 @1 l
- (mode_tile "mesh" 1)# e) H2 K+ Z6 y! [7 ?( ~4 B* S
- (mode_tile "bezier" 1)
( P5 S w+ Z; u. U- F$ o, J - (mode_tile "ltgen" 1)1 P2 R* d: T; X7 ]1 k8 \
- (set_tile "none" "1")
- o m7 C, X! F2 P5 v1 J7 V - (set_tile_closed)
" Q8 _' N( ` L- U - (set_tile_fitsmooth)7 P7 G( A- L; ~9 q3 v) @; Y
- )
" I' y( O& I! M3 Z; e2 G! P6 g - ((= (logand bit70 16) 16) ; 3DMESH
" S+ E3 C5 `# s7 p3 h2 U0 p; {% ] - (set_tile "ptype" (setq pltype "3D mesh"))
' j, W7 J$ n7 ?; s, H8 n u - (setq pointype 0)6 P2 R( q9 R' g
- (mode_tile "pline" 1)
3 W, S; N6 x2 v! P+ y+ \5 W - (mode_tile "fit" 1): N; n; J P+ Y7 n# F8 c3 N/ ~
- (mode_tile "ltgen" 1). v6 }# N/ J* ]
- (setq m (1- (cdr (assoc 71 elist))))" P6 A/ s( j/ h# S
- (setq n (1-(cdr (assoc 72 elist)))) H& R$ O0 _3 @
- (setq u (1- (cdr (assoc 73 elist))))
+ E4 E5 Z: C0 W0 v& I$ s$ _- @) [+ l - (if (< u 0) (setq u 0)) ~# F: l3 k% |9 i; z
- (setq v (1- (cdr (assoc 74 elist))))- S7 c9 R. {' ~# c! I
- (if (< v 0) (setq v 0))# O3 a0 D: L5 G3 F& y" H
- (set_tile "m" (itoa m))
# B8 ]2 F2 @+ o0 G/ C( G C - (set_tile "n" (itoa n))
! Q y, z9 G- B - (set_tile "u" (itoa u))+ t' [3 D. Q* y$ ?# X
- (set_tile "v" (itoa v))$ H" g0 l( Y7 W
- (set_tile_closed)
2 p3 @3 w+ c% l7 I - (set_tile_fitsmooth)" Z; [& ~; T- X8 Z* T/ w+ k
- )3 n( ~5 ]( Y* Z+ \* c" ~# A3 v
- ((= (logand bit70 64) 64) ; POLYFACE MESH+ v$ h* s4 B$ b( z
- (set_tile "ptype" (setq pltype "Polyface mesh"))
7 I! {( J' U. ~1 W; e - (setq pointype 0)9 S B$ ]% d; t& r8 ?: z* i( l
- (mode_tile "f-s" 1)- j2 [1 y1 t* C7 U+ Y
- (mode_tile "mesh" 1)
i: j% U s8 `: i# e9 h - (mode_tile "pline" 1)
% r, w0 I! s- t* x; ]7 ~0 M - )+ E y9 w" K+ A; O3 Z
- (T ; 2D POLYLINE
( @) r1 N I$ s# h. d6 U8 w. Q - (set_tile "ptype" (setq pltype "2D polyline"))( f4 I; {) K, n2 ]
- (setq pointype 1)% I8 \; P: m8 s. { C
- (mode_tile "bezier" 1)
?& n c8 B8 N) a - (mode_tile "mesh" 1)6 I. Q1 `* X; h( R% J! ^2 @! x" a
- (if (= (logand bit70 128) 128), E) N) {7 M. V0 J4 L# u0 D
- (set_tile "ltgen" (setq ltgen "1"))
% Z' u& v& m! ? b3 M8 h/ y - )
( l/ U1 I) o& Z1 {# E& B) \ - (set_tile_closed)* A7 G3 J: r9 }3 o6 O. |
- (set_tile_fitsmooth)5 o% o# }& s; B2 R: u; P: A# c4 @
- )
# `$ N7 W( x! ?- k$ x: q5 W' F+ g - )6 d- p- t3 e* ~: C# g& g1 T
8 P- g" F5 A X! C0 b- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
& W4 c: x7 W7 k6 q4 @( _ - (progn
4 O+ ~$ w1 z) N( U' r, { - (if (not next) (setq vname ename))0 x! D! [ }5 x" `9 L/ M, `% V: |
- (setq next T)' F( W" m4 z' p$ g" O$ i5 C2 q
- (set_tile "ctr" (itoa (setq ctr 1))), d; s! e) G u! b: `/ C0 R
- (setq vlist (entget ename))4 | T1 n' Q5 s. q# X8 s! c0 I
- )
& Z7 F$ O- J$ ]9 D1 A - (progn
3 U, T7 r) g; ^4 w" e7 l - (if (not next) (setq vname (entnext ename)))$ u! D( F% k- V) G1 P
- (setq next T)
7 h# {% N& j! A - (set_tile "ctr" (itoa (setq ctr 1))); u- k) U- a" k" Q: L
- (setq vlist (entget vname))+ i" _* z% n/ r' s. I1 w
- )2 {+ C3 B$ r Y6 n3 X; s9 a1 G
- )
/ \* H" M9 _9 G% J3 k0 B) R - (set_tile_vpt pointype)
, K* S) r" I$ O+ o6 W) Q - ;; Define action for tiles
/ l' f$ T4 b: L+ i - (set_action_tiles)
, ]" f" s1 W9 V# ` - (setq dialog-state (start_dialog))
& ^! l% C5 g3 e% F! o j4 ] - 0 _ y* B' i) ]% E4 j+ [
- (if (= dialog-state 0)) M. R4 S8 D) t6 i! U
- (reset)/ A' Q% o: X. @
- )8 Q. D1 X( s2 j" Q' |
- (if (= dialog-state 1)7 ?" F1 E" J4 u& T" _
- (progn7 v. u, e" Q- X7 M, m7 H3 F
- (modify_polyline)
2 b- w. D7 q' d j- v Y( } - (if (or (= pltype "2D polyline") I( T, S8 s) H' v/ Z- r' T
- (= pltype "3D polyline")
7 r- _' l; B# X' v2 y - )6 q% s0 p: G9 E8 R$ Y; C2 r
- (progn
" B k, c0 D, | - (command "_.pedit" ename)0 n8 O. K X2 `& v8 h
- (if (= spltype 0) (command "_d"))
+ O% Z+ ?1 S9 E6 { - (if (= spltype 1) (command "_f"))8 q; c# P3 R: ?/ K) b1 E
- (if (or (= spltype 5)
% x: _( @5 Y, l+ K/ u. ^# O( } - (= spltype 6) K q7 ]" h4 }: Q8 p
- )) n: N2 r% L8 ]) P
- (progn
5 c1 P) |% \& M1 o J) E h - (setvar "splinetype" spltype)$ I: T4 A0 p( \/ ~8 O
- (command "_s"): M* V- V" a/ [7 N
- )
5 F/ R, w2 l% S, h- \+ M - )
. U W6 F0 c+ x+ a - (if (= closed "0")
3 Q5 h, T& C* C0 O( V - (command "_o"). J; c* m4 }/ v: y
- (command "_c")$ s+ q8 x7 w# y4 @, J. Z
- )
, ]( V! p0 }5 S0 U6 V# o - (command "")
, j" v. |" \8 p
, S/ @* z( q. i5 [" U- W- (if (= spltype 0)( Y( T, K4 [9 N+ u p
- (progn
! \% B, L- ^; w* O2 E. P. q3 h - (setq oldecho (getvar "cmdecho"))
* P1 {, N' G- r0 T9 J - (command "_cmdecho" 0)9 a# l9 B+ e' F: L: m X$ W- X
- (command "_convertpoly" "_light" ename "")) j/ P3 Z$ s/ c. \* V7 |
- (command "_cmdecho" oldecho)# N# z9 p H1 E9 [+ M
- )$ A0 Z% F7 X p+ X$ f5 r% g0 Y
- )
3 `7 z1 I6 Y' U* ]/ C, k1 a2 M - )
0 g* q; G9 k( F# @ - )8 I2 h/ ^( G6 O3 {! h
- (if (= pltype "3D mesh")
1 a+ F8 Q+ V0 M& S - (progn0 h% O _9 X7 K; u
- (command "_.pedit" ename)7 K1 U% P* T7 _3 {* U
- (if (= spltype 0) (command "_d"))
, u* A. C6 M. d9 W9 X - (if (or (= spltype 5)8 n* f# D) A( ^7 G: A
- (= spltype 6)0 m, |% [ ?' s7 S* [# H
- (= spltype 8)! b/ `' B. j% b
- )( |# ]' Q* M& @, V3 y. Z* Z
- (progn
1 m# a* l" z& G8 D6 Q7 R - (setvar "surftype" spltype)
- Q9 J3 h' H( ^3 f t8 s - (setvar "surfu" u)
/ s& _8 X, P) \4 `. p& X - (setvar "surfv" v)
S& {9 z, M, a: ?4 C6 ? - (command "_s"): D, x3 `( g5 g" b' r4 w
- )
' _0 }) o7 l% Q - ); N3 a" h2 ^9 K3 r$ L Y
- (if (/= closedm old-closedm)
4 y" v) O" f4 T" W - (command "_m")# l; x1 D7 z- R9 ? Q0 Z: z
- )1 {& \$ O8 a+ v$ F) r4 C8 a7 \9 a1 V
- (if (/= closedn old-closedn)
4 X% x% v' E7 g. w) M - (command "_n")' i8 U6 F: R' D2 ?/ O C) Q
- )
- O6 L+ x1 q: j+ N Z4 D - (command "")
2 l$ o& k# Z0 D6 d6 I - )
5 d: k9 h4 {: p8 j0 P3 p- X; i/ _7 B - )0 Q$ ]# [9 O C) `7 E- ^( p$ H f
- )
) p. z o/ i2 p) @6 N! D: T u - )# {* s4 o0 `/ I( ~, H# H
- )
9 b4 ]" J, G" d2 j3 y5 W - ;;; p3 O9 D |/ h9 m* s) p# a
- ;; All the spline data is contained in a single elist. We must do some, v9 {0 J& M0 F, G; G$ L
- ;; tricky list processing to loop through the elist in order to display
0 s9 u6 @! b- G& }# ^ - ;; all of the control points. P$ I2 H7 B5 E, n5 u# c
- ;;
& }: ~2 C1 m' A$ N6 G; `% B - ;; The structure of the elist is different for rational and non-rational7 \' s1 q/ p0 z' i0 [
- ;; splines. Therefore, we check the rational spline flag.
& b% \ l- s+ N! ]- E% h - ;;$ ~! u+ u" G; e3 S7 Y5 U
- (defun next_cntl_pt ()
; m8 ?' D1 U- X9 _1 b4 P - (setq elem-no 0) ;; elem-no = element counter# a; j! k8 K) K1 x3 J8 ?& v
- (if (= first-10-time 1) ;; If first time, find location of first- I, u- D e7 {" C7 u1 B. b
- (foreach list_item elist ;; cntl point element in elist
& t s. u; e) z9 X0 q - (progn S5 u0 T: W; z a' Y, H. V
- (setq elem-no (+ 1 elem-no)), B! t5 o0 O+ f1 W: R
- (if (= (car list_item) 10)
8 r4 L) s% k+ P5 L B3 n - (progn
4 o5 _/ e/ M- A( b( N( }3 A+ w$ y - (if (= first-10-time 1)
# k T3 f! |6 M2 a - (progn
# ]0 f& `, D; D7 v$ T# B - (setq first-10-rec (- elem-no 1))2 l" B7 L" f' g1 u( e4 G4 l9 O. P
- (setq first-10-time 0)) F% T3 d/ z) n
- (if (= rational_spl_flag 1) ;; if rational
* g; D0 F* U8 @! O2 G7 ` - (setq cur-10-rec (+ elem-no 1))5 P9 k6 J! b2 H$ c# w
- (setq cur-10-rec elem-no)0 I; a! _7 ]2 S9 L% i. E
- )
8 ?6 Z) w: t8 E - )) o5 ^. o( Z) B. a, O& L/ { U
- )
% _/ v1 I- Y" H1 G& K% m - )! I2 u0 w- D( j! v7 r% E/ N" E
- )
# C, I1 y& Z" X% L6 u+ C - )( G$ U. Y. g6 `9 s$ m" k. Q! Q
- )- A# |) i9 N- W9 n
- )1 P- }. l% w& B" y# S
- ;; Now we know the location of the first "10" record; it's stored
$ [0 K# X0 z6 g3 F- x1 {4 W0 ? - ;; in first-10-rec. The first 10 record was already displayed when) T0 G% b) k7 } W# W$ f
- ;; the dialog first came up so let's display the second one when' [# w" j3 h) t- y# |* m" H
- ;; the user presses the "next" button (the first time through).1 S* O8 b" N; u; \* w9 L/ S
- ;;
5 e7 C5 m" m! l. p+ f e - (setq temprec (nth cur-10-rec elist))4 u5 ]/ d4 i! e" n0 A7 i; C
- ;;# R/ j! ~9 ^( f( d2 h: c+ D: Z
- (if (= (car temprec) 10) ;; if 10 record' M; }0 r$ B. ?' E% O$ N/ A; x
- (progn& u2 |3 x& x/ c
- (if (= rational_spl_flag 1) ;; if rational spline+ Q% g2 W( Z9 I, b* X1 p/ [! Q" D
- (progn
. i& p6 d/ S& T: u - (setq tempweight (nth (+ cur-10-rec 1) elist))9 [6 ]& n8 I5 G( E
- (setq cur-10-rec (+ 2 cur-10-rec))9 p# ~# n' e, T; y L4 K1 M8 z) D
- )
5 d6 t6 ?6 w+ @! q - (progn ;; else
- D/ v* h( P/ I* D* @% @ - (setq cur-10-rec (+ 1 cur-10-rec))
; t8 z$ d" x( d1 F" H. | - )
2 n) T6 B! s* o' t+ q* L - )- [' f5 M( W/ t; ?! O5 ~0 }# j
- ) ;; end if rational spline
9 n) E* @9 Q, m: p; ~- W6 A - (progn ;; else reset counters( K3 |) v0 L% m1 W* S0 A
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec5 T' z: d4 ]5 c' A
- (setq tempweight (nth (+ first-10-rec 1) elist))
/ w) C% x1 l: q' m - (setq cntl-pt-indicator 0)
" G4 E4 R+ @% o5 [: Z/ E4 w - (if (= rational_spl_flag 1) ;; if rational
2 N# d- g5 S! q8 s8 ^9 V - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
9 {# v. s+ B/ n - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec5 n' R# x* F. ]6 m4 |! Y1 b
- )& C) m; v7 ^* v5 X! m
- )( S7 ^$ Z1 W' t6 b. K
- ) ;; end if 10 record6 ]9 X- H9 [: u( i' x' l
- 9 \* W) C5 T, {6 A, X8 ?0 A* {7 b
- ;; Display cntl point, weight and ctr. Increment ctr.1 r5 X1 N. c$ c U5 I
- (setq cntl-pt (cdr temprec))
/ U9 L) y1 r: x$ u - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))) G. p H/ m7 a: ]* g5 @
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
8 Q& ~6 D: K/ c* B" A - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
5 Y3 o: b" T9 ^9 B9 J - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
5 `! R" ]% n6 Y8 T6 o - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
$ J2 b; { n4 h8 L - (if (= rational_spl_flag 1) ;; if rational
+ b/ r. h e t' ` R3 e) c - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght' k# f3 W- K' m8 P* _7 p o' E
- (mode_tile "weight_text" 1) ;; disable wght# q1 N9 I& P+ O# M9 C: n! \
- )
5 v. p' y2 `/ Q7 @ - )
: N4 [- L2 i$ { - ;; \2 v7 E: R3 G
- ;; All the spline info is contained in a single elist. We must do some, C6 g8 M8 Y# f) z7 Z
- ;; tricky list processing to loop through the elist in order to display
; ?1 c; H7 i$ F9 T - ;; all of the user data points.
& ^3 V& }9 N; e1 h% F9 A$ N* S - ;;
( o/ a& k1 P7 ~* j1 U9 K) z - (defun next_data_pt ()
4 P" O7 ?) N6 N% w3 q - (setq elem-no 0) ;; elem-no = element counter
" ~5 M5 l- {' {; ] - (if (= first-11-time 1) ;; If first time, find location of first
5 H% L4 |$ x' w; Z6 p' ]; c+ ? - (foreach list_item elist ;; data point element in elist+ f* {2 U p0 d9 p, D/ V
- (progn( p9 ?% m9 k" {: L3 @* ^6 R) \
- (setq elem-no (+ 1 elem-no))
, A2 `0 _' ^- Z - (if (= (car list_item) 11)5 m+ T2 U# g2 {$ r2 k
- (progn8 U6 F. h% ~% x2 a+ b
- (if (= first-11-time 1)' U" z# R) Z" C; G6 Y; ^9 Q
- (progn) k( c( ^$ Y5 Q) ^
- (setq first-11-rec (- elem-no 1))
k: g7 U$ N# e# |0 d$ b: z) t - (setq cur-11-rec elem-no)6 q! ~4 ~! s G2 K0 t
- (setq first-11-time 0)
3 A" b2 X1 A+ j# G - )
/ W# e3 B4 d, T2 c0 r' m - )# @% J- @4 P: a4 K5 k2 G
- )
) ^/ n3 N, _ k: g/ z - )3 ?) U* n6 y6 e) h) a6 T
- )
6 \& f, U" ^( i9 I. f - )1 X6 u% _ O, g5 S
- )
% \- ?4 a, s3 J( ^! X - (setq temprec (nth cur-11-rec elist)) C; n- n1 a; q) t% e8 E( d
- ;; If it's not a DXF "11" element then we've gone past the last
& H$ \' r5 s* ]6 q3 k% b7 o( f - ;; "11" element. Go back to first "11" element. Reset counters. k/ s# V$ T% X% U
- (if (= (car temprec) 11)
$ g) R5 l& H h, [3 k# p - (setq data-pt (cdr temprec))7 K. C9 \' r% o! K: W+ g. Y
- (progn ;; else
7 g P4 }* U% x8 H5 B' O" y" s - (setq data-pt (cdr (nth first-11-rec elist)))7 A) I& ^; A7 t1 W
- (setq cur-11-rec first-11-rec)
1 A X# f% ?* s) ?8 D9 @- _ - (setq data-pt-indicator 0)+ N! k# e6 N) z! I- C0 X1 ]' \
- ). t$ J" `) o" \- v4 e1 m
- )
% d! a3 a G" s* s - ;; Display data point and ctr. Increment counters.: d) r; m7 Y+ t- ?5 B
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
- R8 K$ m b- o |$ l7 p - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
" a8 N4 g9 N. F1 ? d B4 r - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))' y2 D8 ^ r3 g! P/ x, D
- (setq data-pt-indicator (+ 1 data-pt-indicator))! D8 @& `# K& b. I- E/ [/ D$ t3 q
- (set_tile "data_ctr" (itoa data-pt-indicator))* g% m* j% {1 X2 V0 ~" I
- (setq cur-11-rec (+ 1 cur-11-rec))
0 x4 g7 M5 B" T0 n @ - )
; N) P4 X! V2 L9 Y- k: m w - ;;
- k' I2 w1 ^+ I7 U4 \4 x9 i" B - ;; Modify SPLINE
7 c5 l4 l! L) z' _' L - ;;/ n! D# V2 W: n! `4 I& ?1 e
- (defun modify_spline ()
; \- N I% t4 n* L2 j, d9 V" m - (modify_prop_geom)
: m }$ W9 @8 n5 Z - (entmod elist)
: C' ^# ]; g' D: ~ o" Z# W - )- e" u/ l7 z7 z5 }3 L. I+ B
- ( I5 C( i2 Y# ]5 Q: T1 _
- (defun ddspline (): y5 l" C" [* X+ e( Q- m
- (if (not (new_dialog "ddspline" dcl_id)) (exit))
6 J9 `# v9 v/ b0 o - (set_tile_props)
0 s) x: F& }& f/ A5 k* c* _. W - (set_tile_handle)
/ K% N. p. p7 ^' q - (set_tile_spline_props)6 q, f7 Y. Q: r1 `
- ;; Display first control point
' S2 Q# c0 I, ~ - (set_tile_cntl_pt)
8 u9 h1 ~1 [( \. B" @4 r - ;; Display first data point: m: s) c G$ Q. P5 \9 O
- (set_tile_data_pt)- |* D# Q+ s; X4 i. C1 J
- 5 P; ^& b6 d2 S
- ;; Initialize flags to indicate first time through the dialog.
@6 q8 b7 e, Q4 k* ]" U - ;; For control points and user data points the "next" buttons
8 S; P6 q4 W* d* P7 ] - ;; in the dialog call the appropriate functions.) y- E% @# q! m; Z$ {7 O
- (setq first-10-time 1)
~. K- D4 W2 O5 f - (setq first-11-time 1)5 L. `; W* n8 R3 O
- ;; initialize control point number counter, A4 ?0 A0 Y' o
- (setq cntl-pt-indicator 1)
' }4 F; o0 V6 q - (setq data-pt-indicator 1)! |: s- `0 D4 i4 T6 y& n! i& f$ i; X
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
7 Z9 x `+ t# E" d# m - (set_tile "data_ctr" (itoa data-pt-indicator))7 G4 W/ r% _; n' I9 ?
- (set_action_tiles)
( B, [/ B4 M* [ - (setq dialog-state (start_dialog))
) L2 v7 ~6 H4 O- s3 r - : C# C4 N5 R3 j6 T0 L# F3 R! ~
- (if (= dialog-state 0)
/ A# }5 F% x% d6 ?. w( A, ~ - (reset)$ e& x0 T" m7 B
- )
3 @# d# {6 ^# g0 N, q, @0 a" t - (if (= dialog-state 1)# ^8 R i5 }2 s E3 @ F
- (modify_spline)
- n# V G+ n- M7 T% I8 E, ^ - )
6 H$ h$ G0 K& u& U z$ C# A - )
* H4 _8 r: \# Q" P: K - + V0 p+ k9 `/ M
- ;;
! [8 G$ N$ b; A" t, x+ r - ;; Modify DIMENSION
. ?0 A3 \, M c# h$ [; L - ;;/ f& A1 R* Y' M0 _
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl- n7 g" V2 S! Y3 y
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist2 d8 N+ W* } G4 J+ f
- dimtype dimsvcurset)% i J6 `( ?- v2 h8 D
- (setq dimtype "DDIMEN"
+ d3 G1 A3 S8 {* S" h8 U+ X - dimsvcurset (ddimen_dimsty_restore)& g y, b% f _& h
- )# F ~- C( a% F$ | R
- (if (not (new_dialog "ddimen" dcl_id)) (exit))3 j* S* n1 L# [$ \* z2 q1 l" k
- (set_tile_props)
- c% {5 e* V# v( u) `1 k - (set_dimen_props)
+ S8 z* q( P: B% G" q. F - (setq dimtext (cdr (assoc 1 elist)))
1 W! C$ E9 F4 ^3 X/ { M - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext)); f" @7 U) b$ x v! E0 k3 S* u: ]- U0 |
- (set_tile_handle)
/ V$ S) s0 _5 J5 d' b - ;; Define action for tiles* _+ U& A0 \+ ~8 L0 R# `* T
- (set_action_tiles)+ {# t0 _, g0 Q5 i( v
- ! E4 v6 s# k3 S1 S' ]. `9 ^' \
- ;; Set initial focus to text edit box.
3 b7 J3 V1 g* d1 a2 N - (mode_tile "t_string" 2)& a1 R8 X# Y2 V, y- v- @
# D U& q9 E3 [) B4 L" H6 R k- (setq dialog-state (start_dialog))2 L/ X/ l" X' N- A/ N9 b
- (if (= dialog-state 0)
) l/ x8 v" o# D p2 p - (if (= ddimmt 1)
- ]/ ^2 c) s9 W/ R, ] - (reset)* ?/ z4 k' W/ k Y' D" h, ~$ J
- )
) v: i8 _1 K/ A2 x l - )
Q; F& }4 \9 F( b0 `/ M: | - (if (= dialog-state 1)0 M; ^5 S: o3 U, T! F: d8 W
- (progn6 ]1 U. M5 w" p& }. E1 D. ^+ _" U3 p9 [
- (if (/= dimsty stname)
2 r& Y$ p0 | Q7 r8 Y - (progn* i) w2 h( b, W0 R1 F6 J
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case& N: `4 U3 q Q% i& }* F! X8 p
- ; doesn't have it.6 ~; K+ b4 n# S! c* ~5 b
- (if (null (assoc 3 elist))
! i/ @/ D p: k; G( K9 a - (setq elist (append elist (list (cons 3 dimsty))))
* X: t; |8 I: [0 t U, [ - ; else just replace it.
) O5 _" l, F: t' }' q& T* s) K6 u - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))# F7 ?# L8 c* i% P {
- ): j+ d. p. S5 V; K' Z1 Q' z2 |
- ; refresh sv_dvlist with new dimstyle.1 Z x1 R( T9 Q
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 ?, l# ?- g' A/ u( c
- )
, E7 ^& A9 O& [; L0 \8 j( f i - )
( o* v0 M" T, Z - (if (not (null dimlist)) ; attempted to change dimvars: G; c. A3 x% n
- (ddimen_complist sv_dvlist dimlist dimtbl)) r, p& c3 r G# w0 F
- )- j5 V- @1 B" l6 u8 }2 r, q& I
- ; Modify dimension text+ L: ~" R% A. i5 H( i. v
- (if (/= dimtext text)
" ~( x7 C9 E Z - (progn
5 E4 D# l* U! ^. s - (setq dimtext (if (= text "<>") "" text)). s1 Q( X3 G+ ]- w0 |
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
2 U6 m( a7 i9 J+ [' r" r3 |! l% D - ) K+ k1 R: _! b6 g' F
- )
' H# h. d R7 O) ` - (modify_properties)
6 n) Q7 P+ ]! d( ?, e/ p - (entmod elist); x# x8 l: S+ J3 H
- )
' f/ A, P; ?& z! y, s - )
7 I( f* Q; B6 H5 A7 c$ h4 g7 @& x - (if (= dialog-state 4)
/ L. d4 ~0 k$ p! r: {, p - (progn
6 p; X! @3 [+ J- d* N, B( F0 n - (setq ddimmt 1)! D% P' v2 W/ I+ H6 P
- (if (/= dimsty stname)$ E6 b5 F. b" o) L: k+ U7 ]! f
- (progn/ T. Q* R3 Z/ _4 x2 d
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case1 t, f8 R, o& W% z- Q
- ; doesn't have it.
/ M [, b* N/ {& d% M - (if (null (assoc 3 elist))
- X: k% d4 E1 W* Q- G, Y - (setq elist (append elist (list (cons 3 dimsty))))% S; k: k. l% | l5 n
- ; else just replace it.
. [( q! z3 o- K - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))3 H4 S; G5 X& {" N( X8 v" k7 |
- )
) Z: U4 p6 M3 f3 _ - ; refresh sv_dvlist with new dimstyle.
- J ^" k" ], C) i - (setq sv_dvlist (tblsearch "dimstyle" dimsty))4 t: M2 C* F" m. V
- )
) ^) f; G/ ?- ?& b3 S9 X7 u" K - )
1 E- H* L3 ?0 O. {: j - (if (not (null dimlist)) ; attempted to change dimvars7 [1 w0 H* ]! `/ C, X- C
- (ddimen_complist sv_dvlist dimlist dimtbl)
3 l* Q' Q0 \! ~, C* I - ). P& c1 Z7 \) _1 R
- ; Modify dimension text6 j2 K. a7 O! b& S W
- (if (/= dimtext text)
7 A/ V* c! ]* n, d' }* N; ]# i - (progn% P+ E/ i L) I6 D- p9 S
- (setq dimtext (if (= text "<>") "" text))8 n# ~8 b' m0 q! X5 y: k4 n8 u
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
! a) z J% N* T( h - )2 T+ y5 m! W- w
- )
, ?; p2 ^3 }7 u1 T - (modify_properties)
9 a, Q" m4 E3 Q x* d2 W* v5 d - (entmod elist)
" }# C3 V* `+ J, ^0 Z - (safe_ddedit ename)
; ^# x, t+ }4 f. P - (setq elist (entget ename))
, C/ X6 |4 d( m. [% S3 F; m - (ddimen)# A( P# s) j. Y8 l" c0 R4 v* ?/ m
- )4 x: O' I1 p" D! Z7 w( n
- ) M+ \" l3 T. N/ n
- (ddimen_setvars dimsvcurset) ; Prepare to exit! s) I% t4 S0 M( G& A; ~9 @
- )
9 \+ ?! ?7 R( S0 U$ V' l
* f$ \1 U) O$ o( G) U- ;;
! n$ v5 n! I( `, k. X - ;; Modify TOLERANCE
6 j$ Y7 e' J2 P$ i8 H/ i - ;;" O3 Q5 k7 D+ X b ~( U( T
- (defun ddtolerance (/ a stname n dimtbl
% t _9 S' c& l5 x4 o3 }# A - dimsty dimlist dimovr sv_dvlist stlist dimtype
6 d7 [6 Z; y1 k, L1 Y4 w - dimsvcurset)
* \, u4 F2 O( C8 Q- c - (setq dimtype "DDTOLERANCE"4 z) z/ L" B; P2 P A
- dimsvcurset (ddimen_dimsty_restore)* [& h# s3 v) ~
- )' G8 a1 F# g& }2 I
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))9 D2 X. b/ C$ O1 l. ~! ?; d
- (set_tile_props)( ]3 d) H5 O" Y O8 i
- (set_dimen_props). v' S2 J4 i2 {! m# @! n
- (set_tile_handle)
2 j, E% w, u$ {9 i% K* g - (set_action_tiles)1 O4 E2 K) G$ g% q, M3 F2 N7 p
- (setq dialog-state (start_dialog))
2 O5 a' N) ~! G - (if (= dialog-state 0)
* Z' y1 L M; R, C, h6 X - (if (= ddimmt 1)
' N5 X5 A! j$ b. A2 n' K - (reset)
) r8 A9 P: K" h; z8 w9 y/ W8 z6 O& J - )& p2 c; U2 ~6 A- f5 S8 W6 |
- )5 h. r2 S& m9 X9 s9 a4 U% m
- (if (= dialog-state 1)! x) l1 j4 d) l- I& C: O5 s
- (progn
' n- k7 `/ U7 u" e+ K, I- ?7 f - (if (/= dimsty stname)
9 I8 Y& y4 o L5 ? - (progn$ L e9 S0 i3 ]( R+ G2 `! s5 W; P
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
/ f6 t7 r3 v. i3 r) E - ; doesn't have it.+ W$ Q, x. ^ `5 N F
- (if (null (assoc 3 elist))) I: v$ z7 v& m* Y# u
- (setq elist (append elist (list (cons 3 dimsty))))
* f- _1 s, ]; h3 d9 p* L4 ]% s - ; else just replace it.% v' h/ c4 {5 e7 Y. m# o
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))3 M2 w: D+ k" ?
- )" W# M+ w0 V/ e/ r2 H/ T& y
- ; refresh sv_dvlist with new dimstyle.
& W& o5 W7 P& j - (setq sv_dvlist (tblsearch "dimstyle" dimsty))- d% ?/ z+ |% A/ H, W L" o
- )
+ ?% V+ Q6 e! U8 A - )9 X; p2 c! w3 A9 {1 w
- (if (not (null dimlist)) ; attempted to change dimvars4 I, W+ u0 ~5 x1 e
- (ddimen_complist sv_dvlist dimlist dimtbl)
O6 \4 \8 K/ z) S2 C/ d; J+ x - )
+ h" F3 V" L0 B" j& G$ B6 i - (modify_prop_geom)
) h& _4 l3 K. m. V, ]$ P - (entmod elist), [( W; i' x4 T/ [/ S/ h. }$ M
- ), x( O0 j5 y5 I3 n' F( O9 s# S
- )+ i$ [. m! z7 w- @3 r% H; V
- (if (= dialog-state 4)2 \) f* [6 X) t" y% n& d
- (progn* H9 I; K) H: d0 l8 F, h2 v
- (setq ddimmt 1)7 c( d5 A% l+ {( Y7 o; w/ o
- (if (/= dimsty stname)
! {, p- M5 p9 J& y7 | - (progn
$ a# R6 v% k, B/ M& a6 B/ a1 z - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
& Q9 G& u! g$ U; W - ; doesn't have it.
$ B* s$ Y. s- C' k - (if (null (assoc 3 elist))# c: O% y2 s0 K, \% K5 v
- (setq elist (append elist (list (cons 3 dimsty))))
/ m. Z4 I9 V) k4 t6 Z4 y; o4 { - ; else just replace it.
/ {$ `; O+ `2 E, _" p8 ` V. z - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)); k% o! B5 H3 b8 a6 ]. a
- )4 _+ S/ I* i* y2 n7 l
- ; refresh sv_dvlist with new dimstyle.
$ u8 a. @$ ~" x* h6 i - (setq sv_dvlist (tblsearch "dimstyle" dimsty))# s/ G% V; t6 O5 f$ Z
- )( V5 C5 K4 S6 Z) G8 i
- )" s( A) I1 \+ `3 C
- (if (not (null dimlist)) ; attempted to change dimvars9 e5 y0 L- L* L4 r, ]9 m) w
- (ddimen_complist sv_dvlist dimlist dimtbl)* L( O5 G0 W, }. a' G' J0 R
- )5 U0 A( a7 T1 y0 u$ z; k3 O( I8 R/ ~
- (modify_properties)
/ R) r$ o4 c5 M' D9 k - (entmod elist)
% n" j. F" `) P, [5 E& \4 l1 }) b - (safe_ddedit ename)
, M' X$ U1 `: U6 R - (setq elist (entget ename))! Y& r9 O [' `- W& U! ]# k+ c/ V) J
- (ddtolerance)$ |8 r6 @1 p; G
- )
; A1 `% K# S8 T+ o0 X/ X: s - )
0 A+ _# Q( ^. L+ ` - (ddimen_setvars dimsvcurset) ; Prepare to exit
6 P. O0 a1 d8 h9 B6 t9 z, j - )
! r, m, a/ ^6 _. A! r
2 i; ]3 H! {4 o+ G' B: s! u- ;;
U" D L/ V! B - ;; ddimen_dlg - jump to ADS ddim module! W. r5 ]) Q% W! k1 F
- ;;
* S+ t# }! ^, j) w/ b9 `- r3 I
/ W9 j- _: d; H3 Q9 p- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
, k. ~+ E7 \; ]1 W, [1 q8 v8 F - 0 Q [, P+ ^2 }! j9 u
- ; Jump to DDIM with overrides if any.
/ \8 {2 y1 `2 {" X) [ - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
0 K. z/ y4 _5 i# F1 W4 l [8 I - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
5 D2 B( A, _6 V/ Z0 f! \* Z4 l! L K L - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
8 n# n, _7 h/ o3 J2 F - )& m. e! _8 D1 Z2 s1 y
- )
! y0 t' r9 ?1 L# |0 z
8 Y; P0 }2 S! K8 i. P" \, D4 ?- ;;! F* N1 Q+ \( h. }7 S
- ;; Dimension variables updated are stored as overrides.& k8 S }# f: h+ ?9 c' k5 z+ c$ y
- ;;+ l$ n( s6 t! a6 d: h3 J
% L! H) v7 b; }# X. ^+ \% ?- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar! Q/ ~- X S4 z" r1 N
- dv dime commandIssued)
7 c3 _" i: ?3 s w$ e( C7 ] - 9 k m- L; [# T+ s8 ~6 W
- ; Here we skip the following first three items: P% V- a9 P8 h5 h+ z9 ~
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)9 e/ a7 O; R% k
- ;
! C$ v A& |& H. \2 q7 x5 p$ q - ; The list comparison immediately begins with dimvar.6 d6 N) L$ K4 F- b! ]1 e
- ;
+ p& v) X6 Q: b' j$ ^& a8 f- p - ; dimolist - original states of dimvars
+ J$ ]7 ?! m) h* @5 J - ; dimnlist - new dimvar list which is of the resbuf's
5 ~$ e8 \- I: a4 g8 a# N - ; dime - entity name for the dimension0 J5 O5 j% ~! J* A* K* w- M
- ; odvar - value of dimvar for the dimolist
1 e, ?" d# J9 W* h- N( e& N - ; ndvar - value of dimvar for the dimnlist
+ K4 |* W! y) z$ ] - 2 ]* ?, F1 g F) J
- (setq i 3: I& _; ]+ [8 @4 Z: G4 n
- dime (cdr (assoc -1 elist))
9 W3 o$ Y) u8 v) K - )( ^8 P! |- w; l2 Q0 I4 N
- (while (setq odvar (cdr (nth i dimolist)))
6 z7 T: G) p7 F: W2 G3 ^* ^6 g - (progn
! |- K' g$ h. | - (setq ndvar (cdr (nth i dimnlist)))
* f/ @! `' A W+ Z6 F - (setq dv (nth i dimtbl)); w2 E: F6 Z$ Y5 W& O8 _
- (if (eq dv "dimtxsty")- q0 G" p T; c* q% v' M
- (setq odvar (cdr (assoc 2 (entget odvar)))
$ g$ j, l% Z% O" _ - ndvar (cdr (assoc 2 (entget ndvar)))
1 m( j! O1 |/ `# N) _ - )1 i( Q, E. p( n: x7 |) K8 c
- )
3 t0 ?3 r3 E1 t' b) q, m* N
3 K% g; q9 @+ b4 |- ;
# t5 l5 o" w! I - ; In order for DIMOVERRRIDE to operate correctly with string
- z: o1 d( F( n: y2 d - ; based dimvars, we must pass "." versus NULL strings.
5 H4 ?' o( o+ O& L - ; In this case ndvar is the new dimvar value the user wishes
7 E W4 X0 h1 T - ; to update on selected dimensions.
% f% Z' L# h* `- m( Q* @/ r - ;
/ l" }* S0 D: {( ^- n4 m% ~ - (if (/= ndvar odvar)
N& G% ]1 `2 s1 r! d6 G9 ? - (if (= 'STR (type ndvar))
- g* T0 H1 c7 R1 _/ H5 S: B - (if (= ndvar "")
7 I7 r) a! f% o! w1 q" e4 G/ k - (setq ndvar "."))))
7 O X# B- y8 q, o9 p - $ X' ?! f w% ?/ }' a
- (if (/= ndvar odvar)( k7 A' q9 x' t# K/ I2 ^
- (progn
! ^' |2 c5 M* Q% [ - (setq dv (strcat "_" dv))
( Z4 r6 w: \3 K" d- r7 s - ;
8 H+ o+ `0 i" @2 l - ; Start the dimoverride command K1 f! c: x$ Y# [# m
- ;
/ Z0 L8 w( C" P4 {. S/ _1 |: w - (if (not commandIssued)
8 o: X1 ~3 F. e' ^ - (progn
' \$ z; g) V( r3 m* x# N+ L - (command "_.dimoverride")
: X. J9 I1 k- ]8 | - (setq commandIssued "T")/ F0 `: _" y% {3 M+ m2 M2 D
- ), A! o! M7 O% t4 M
- ); b9 i' _; U0 i0 p2 s x1 i
- ;% B: |/ s0 z& v
- ; Issue dim overrides
& f2 ^# B- r8 @: R' E5 f2 Z - ;
/ M+ F4 a- ]- v. l' V - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
9 M/ [- X+ W0 h) h4 m7 A& y. \) ] - (or (= ndvar 0) (= ndvar 256))
* X, R# n0 W' u8 M+ ?7 H& \ - )
+ \9 f. }, O4 u; t8 ]( x; @# t) F2 B k - (progn
, ~4 X# C; [: \7 N b! H - (if (= 0 ndvar) (command dv "BYBLOCK"))
, _5 L" H I, ?( M& {; N - (if (= 256 ndvar) (command dv "BYLAYER"))2 f; [+ ^+ V H4 y' p, \% d
- )
% ~, P" l. l4 L* e: i7 I - (command dv ndvar)$ }% {* D2 u: n8 F6 [
- )! n s& ~1 X' l7 s: A
- )$ C B3 J1 `& d3 G) C! z
- ); I1 z5 c0 I( ~* D# m; \
- (setq i (1+ i))
0 Y: y6 W& x; s# \! @+ o9 s1 C) s% m - )
3 B# {+ z' V x8 I. `1 S& i - )" l9 f0 ~9 b" f0 _
- ;
$ d, l$ M, y I% _0 T - ; Select Entity and terminate command0 C" f1 M4 O y5 V9 s
- ;) R# R4 c0 i) j1 J! `1 n
- (if commandIssued2 b# K# W" g% z' q
- (command "" dime "")) a# X* {! C& g1 E' x: S9 h
- )
! U# ]9 g* A8 O- e" B/ Y; |0 ^ - )! A9 ~6 o! Q- Q* T! Z: A
- * l' J# v9 `( G, T3 t/ a0 p: {, ~
- ;;
" E; c9 R! P2 U2 r* ]5 H4 J - ;; Get style name currently selected style name.$ [% h2 w9 {& g0 c/ r
- ;;
3 n; {/ Q' o* B9 \+ H; g( M
! G! D; _0 W( u% g- (defun ddimen_style (/ dimsty)
: L& b f) d2 U( D2 P/ q - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)" h" Q2 m- d, E* s2 G" @
- dimlist (ddimen_getdimvars dimsty)( A. W5 V0 B( T, ] O: t
- )
2 M. T1 _/ o3 w5 M3 h7 D% w \ - dimsty
t1 d1 `4 q; j% |9 u! c* W2 y$ y7 ? - )( w* ? D$ s* }2 q$ Q- Y( s# n
3 C, T* q* V5 j* a+ H1 k- ;;9 r; h- W: L8 r" Q5 d
- ;; Set dimvars8 N( N Q9 O v7 D5 G+ Y, ~* `
- ;;
3 N0 r0 t# a5 n: z, t4 ]7 J - (defun ddimen_setvars (dimsvcurset / dv i)
3 l: v" F v4 g5 ]" e - (setq dv (cdr (nth 1 dimsvcurset)))
# z3 C1 C. `7 b5 y; @' E - (command "_.dimstyle" "" dv)& r* ^- z/ A p. F: @8 H
- (setq i 3)4 i: v: L# S9 a$ \
- (while (setq dv (nth i dimsvcurset))
$ K6 a ~% i! |1 A( Z - (progn
. ?% g/ b9 ]! r4 f - (setvar (car dv) (cdr dv))
( e# z# ]+ J7 n0 l - (setq i (1+ i))) s ^& [, `& E. u4 `# U
- )* Q5 r9 a X! Z/ O3 r0 ]. ]
- )! P/ |' X) W+ [4 t4 h+ M
- )# w# o- B/ O- Q ]
- ;;# ^* T* I8 ? q, x% P* s
- ;; End-of-dimension9 Y1 X$ K" M4 K
- ;; ==================! M2 j) j. S% v, S: u1 s' x: R
) d6 o# I% ^& Z! R" f7 w2 h f x3 x- ;;
6 ^$ j+ \" I- F, O* Z! h6 ? - ;; Sub-dialogues for properties. Common to all object dialogues5 {) ]4 C4 _5 Y. N4 N% ^$ k
- ;;, Z" {( @/ G1 d0 J2 N6 J& l
- ;; This function pops a dialogue box consisting of a list box,image tile, and3 N. A9 J( u' e% n) O# M
- ;; edit box to allow the user to select or type a color number. It returns
3 _3 \. C" x6 b S \. ]5 \3 { - ;; the color number selected.2 [9 Z7 ]6 f7 b0 O$ P q
- (defun getcolor (/ old-idx colorno cname lay_clr)
% y' q3 F5 E& |+ i. i - (if (= (get_tile "error") "")' R$ B3 ]' f4 h) D) G
- (progn' @6 P( w: i; {9 o7 ]
- ;; Get the color associated with this object's layer, for use* v6 a( Q9 R7 E8 s9 h
- ;; in the color swatch if the user selects color BYLAYER.5 ^0 ~- d7 ^# T4 a" M) @; m2 G
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))). {" t$ g8 H; Q0 p
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))5 x7 T; Z( G' N4 }. c
- (progn5 u1 w$ h) }$ |6 V" ?, d; R
- (setq ecolor temp_color). @! o6 |* z2 H+ l7 @0 x! V
- (setcolor)
6 Z! l9 ? {: j! e5 S - )8 K/ z; q0 Z5 Z" M3 G( ^* [9 _ P
- (setq testcolor temp_color)
# \" {3 i! M, F$ S' u/ f - )
9 f. W( D4 u7 q - )
9 n7 V5 k( L$ o - ). E7 {9 r& w z. O) g/ g: Q9 H
- ecolor% U( ]2 x$ ^; b4 {; y
- )
3 T" U% C f5 s( ?5 @ - ;;
; }& M# q$ E6 A& a1 A3 f - ;; Function to set the color tiles.
4 j, @" g5 S/ x" ^0 x1 j& @ - (defun setcolor()! k+ _( s5 N3 q: Z" X# V
- (cond
" P! l6 H- G7 L! K - ((= 0 ecolor)
( d3 S+ @& p! K* _2 ?: | - (set_tile "t_color" "BYBLOCK")% O) P4 ^4 A+ o* Z Y1 G. d
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white" s" H" ?1 ]: ~
- )
4 Q" e% ?5 M5 }$ B - ((= 1 ecolor)& M1 A5 g$ d4 w( v; v
- (set_tile "t_color" "1 red")
# s0 r5 T O6 ?9 \2 R( O - (col_tile "show_image" 1 nil), \% X1 l+ U5 q- g3 p' P( L
- )
3 g# J5 m8 ]1 z/ u3 \* K - ((= 2 ecolor)0 Z- h/ O+ N# ?2 q) N; J
- (set_tile "t_color" "2 yellow")
- v4 j' s; K2 T/ ?$ [: S# ~6 E - (col_tile "show_image" 2 nil)
. P% m2 q5 E- _& h/ F - )
$ ]" `0 ]0 N4 j$ X - ((= 3 ecolor)
, n( }3 ^4 o0 z, d( T* @3 O7 z - (set_tile "t_color" "3 green")
Z7 ^/ C7 {7 [" u5 f' I - (col_tile "show_image" 3 nil)
8 ~0 s; S' s/ w- \. V4 A( J6 I4 r - )" k$ a4 ~& \" G8 f( ^0 h; u
- ((= 4 ecolor)
v- c i& N+ Y/ m - (set_tile "t_color" "4 cyan")
4 B) {- S5 C: ?# l' F - (col_tile "show_image" 4 nil). p/ M' @1 P4 I( t
- )
' S4 _9 U! f) r7 V - ((= 5 ecolor)
- w! G, V6 p7 v$ H - (set_tile "t_color" "5 blue")
( s" D! G" E! ^5 J7 p* _ - (col_tile "show_image" 5 nil)/ @/ ^* d; n6 U ]" A4 ], n
- )
2 `: i& E3 {( }7 m3 N- m5 k - ((= 6 ecolor)
4 [) J' g9 U x% i+ ]: y* E; \' I& ] - (set_tile "t_color" "6 magenta")
8 k. y+ |; c" ~" H, {; K9 m9 g3 [9 ` - (col_tile "show_image" 6 nil)+ w. R3 d! n) d @
- )
5 _2 k+ H1 |% q) L& P$ \! K - ((= 7 ecolor)
! N& |; g+ Y% @ - (set_tile "t_color" "7 white")
$ s4 T/ i$ R: h1 z# v2 m - (col_tile "show_image" 7 nil), z- @0 l' U* V) E0 p9 F0 v
- )
n. z* _0 E# m - ((= 256 ecolor)
* G3 l8 h/ q( I& }: W+ { - (set_tile "t_color" "BYLAYER"); ]: a. |/ S T. K2 w
- (col_tile "show_image" (bylayer_col) nil)
' u8 q# g2 `7 H$ i8 Q+ O9 }/ V - ). c7 r! _" {+ Z L: D
- (T
0 q' Q! L z4 E0 ^$ H" l$ B8 K - (set_tile "t_color" (itoa ecolor))
0 ?5 e+ b* l& s - (col_tile "show_image" ecolor nil)
- P' r1 c3 b# r" |! f% [3 I - )- n; }- m* x2 M3 D s1 G; V
- )
' C! i o% {; }) X. w - )
# F( H( W% L# f) o3 j5 f - ;;* m C% r: Z g- \1 R
- ;; This function pops a dialogue box consisting of a list box, image tile, and, L% L& K2 H# M3 l; e
- ;; edit box to allow the user to select or type a linetype. It returns the
5 b& ~+ v* T. n* [ - ;; linetype selected.5 Q- w0 \! z( |8 S' B
- ;;& k% S- e. G. R/ L% N6 i) m. `. j
- (defun getltype (/ old-idx ltname)$ R' Z7 E- p+ m L7 L' o
- (if (not lt-idx); D7 L* q: r4 ~6 C n
- (progn
) W. x6 |* j. F! j0 p+ ?+ C - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist! z$ y) G0 V6 L( f
- (cond9 ?' {9 D6 F9 b
- ((= eltype "BYLAYER"); j V2 W. W+ y" H2 D4 H
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
' V5 ], w- x( K& v" b8 ?- M5 e - ((= eltype "BYBLOCK")
* Y+ Z% s8 N r# k0 t. l9 M4 }9 A: W - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
0 k Q& \6 O* o6 u* O - (T (setq lt-idx (getindex eltype ltnmlst)))
- r& V( s: G1 f& z! x - )
) f6 w" Z7 L8 z# o - )
* P) C7 _# ^, H$ D" l - )
# P* s$ d2 ^- Z5 t% r5 t - 9 O: P+ L8 O$ @. _
- (if (= (get_tile "error") "")
; [3 U7 `& A F& ?, v: S - (progn
$ p5 [! M9 m# ~( o- A8 B( r: T% a - (if (not (new_dialog "setltype" dcl_id)) (exit))
]9 ]8 V! C" F - (start_list "list_lt") h5 `- l4 U8 U3 G
- (mapcar 'add_list ltnmlst) ; initialize list box
* |9 a# u1 _* @ - (end_list): ~5 y. W& b% @% t
- (setq old-idx lt-idx)
3 u; w5 ~4 D) V - (ltlist_act (itoa lt-idx))
+ v$ V+ ?0 G* O" K) Y! f' A! p4 A
7 d" D5 k7 C' p$ M# K- (action_tile "list_lt" "(ltlist_act $value)")7 e8 D8 v8 m% v2 R
- (action_tile "edit_lt" "(ltedit_act $value)")+ e8 f6 E% ~, V7 ?: w9 u) P9 Q# @3 g( f, k
- (action_tile "accept" "(test_ok)")# n% X/ z* w9 u# O# R4 l
- (action_tile "cancel" "(reset_lt)")% B A/ f. v% \0 k
- - {* X) s( \# B3 G3 M5 K' r0 J7 y
- (if (= (start_dialog) 1) ; User pressed OK" y. Y" Y" Z0 Q( f8 c) d
- (cond
" Y8 _* u( I7 M2 v - ((= lt-idx 0)
' {* Y5 k" F5 N$ I0 e0 M: H8 K% r; y9 [ - (set_tile "t_ltype" (bylayer_lt))
1 E; q; q# G9 C W - "BYLAYER"0 Z$ ~4 f' e8 H$ b/ U
- )
- O( V- c* [& z7 X, M9 z# | - ((= lt-idx 1)
9 R7 x) M7 B2 w1 J/ x# k3 y - (set_tile "t_ltype" "BYBLOCK")
; }: Q' R5 T7 k - "BYBLOCK"8 w F& O5 c2 Q" V: ~2 m
- )! l- t3 S0 \& A5 \5 L: D
- (T (set_tile "t_ltype" ltname) ltname)2 z8 o- E+ s& c9 s M( F
- )) ]" n# t$ N8 B2 C0 G
- eltype
* [) k! V$ V! a, }3 K# f2 g - ), K3 i z; U4 s1 O
- ); v" \5 ]9 \6 G: K4 ^
- eltype
- J. L$ i3 [9 \ - )! W, { C6 q0 \2 i8 Y6 O; ?
- ): m* {) ]+ _* J6 C1 f3 g
- ;;; [8 |3 y% b9 \! L9 u. I9 V% [
- ;; Edit box entries end up here/ l) d0 I6 J2 Z3 K4 y0 X% P7 L" [5 Y9 f
- (defun ltedit_act (ltvalue)9 T0 x& L& x) l, Y+ }- \" }
- (setq ltvalue (xstrcase ltvalue))/ s9 i' I* K2 M. _; b
- (if (or (= ltvalue "BYLAYER")* X" X/ A- C5 Q3 d4 `
- (= ltvalue "BY LAYER"))
6 G0 ?$ `: l6 O8 |' n5 l1 J - (setq ltvalue "BYLAYER")8 P; X$ _7 B% N8 a4 n, _
- )) `' O8 ]8 _; h" N( F4 Q
- (if (or (= ltvalue "BYBLOCK")
) h1 q: y, g" g - (= ltvalue "BY BLOCK"))+ p' p+ s' v2 E/ n( K8 B& g
- (setq ltvalue "BYBLOCK")
1 }/ x1 e V$ A - ), R r( Q) y6 e4 Y( m
- (if (setq lt-idx (getindex ltvalue ltnmlst)). m7 ^. ~3 n8 m6 g5 k1 W! u
- (progn
9 z; @- T: s o% ?& z9 h - (set_tile "error" "") y2 T" ?5 ]7 ?# _. k
- (ltlist_act (itoa lt-idx))) s: ]& h7 i; m$ G: f
- )1 l" D1 O# k! |. {; g
- (progn
) V! s& N! C# |; L - (set_tile "error" "Invalid linetype.")4 t& w5 p3 a* Q4 F C' P
- (setq lt-idx old-idx)
0 O* |, @3 i: H- E; D s - ;; (mode_tile "edit_lt" 2)+ E4 h8 z' G9 O+ R6 _& u
- ;; (mode_tile "edit_lt" 3)9 q: ]# Q- G- b
- )# D' y" x& X( g: Y; [) k
- )# x& ^9 K8 y7 q1 P
- )
/ M6 F8 _8 `1 y3 w. P$ ` - ;;5 |0 o2 G0 _. v
- ;; List selections end up here. Update the list box, edit box, and color
# X. s" s& {5 h - ;; tile.1 C$ ^$ W" |- q& ^" F- m
- ;;
$ ~ l3 y* M# a& a- i$ s* \; |6 R - (defun ltlist_act (index / dashdata)* A8 T& n# r& U
- (set_tile "error" "")) k) @* Y) s0 o% ~# a+ r, C
- (setq lt-idx (atoi index))7 |) w- t! b4 A7 K5 K
- (setq ltname (nth lt-idx ltnmlst))+ x# k/ F2 ?- @( q1 ^% F1 n# _ I# ?
- (setq dashdata (nth lt-idx mdashlist))
& L% p( A: z% d7 g1 f. o - (col_tile "show_image" 0 dashdata)
7 q) L4 `# U* c - (set_tile "list_lt" (itoa lt-idx))5 N9 B c9 N- _2 ?9 E; B
- (set_tile "edit_lt" ltname)) R/ |! _ g- t l+ m$ v6 C; ~
- )
* y0 d% x, ?0 ]2 h' C" \/ q - ;;
$ `" e' F& ^3 b0 _6 T( B7 u2 ] - ;; Reset to original linetype when cancel it selected, Q7 i3 O$ V7 T
- ;;2 C" H+ R) s' [9 s! A% a/ w
- (defun reset_lt ()0 G( [8 @) x# F3 k: o! {( `
- (setq lt-idx old-idx)
+ z ^& w/ } i$ S1 j# `2 @ m - (done_dialog 0)/ ]( y* x" D* R& B' G4 V0 G1 n$ U3 q
- )9 `4 R* i# m6 N6 Z( p7 \
- ;;- A7 A" ]1 ]; H) N, d' ] O% X6 \
- ;; This function pops a dialogue box consisting of a list box,image tile, and
9 l* Q) \8 P U" x - ;; edit box to allow the user to select or type a layer name. It returns the
$ u }; w( u/ K! Z$ y2 A) m* Z" y( I - ;; layer name selected. It also has a button to find the status (On, Off,; X7 V ?+ t4 [ }
- ;; Frozen, etc.) of any layer selected.
0 a3 J6 _# J6 F9 `7 c) a - ;;
$ Z% S' s+ Z3 R4 x - (defun getlayer (/ old-idx layname on off frozth linetype)
! c) d7 t4 J; H% f - ;; Create layer list the first time the layer
9 e6 H: x, ]- M) w. w$ y6 ]; {9 ] - ;; dialogue is called.6 T* A0 f% O4 M
- (if (not lay-idx) \9 Q. V, |: E
- (progn; {: y( X6 t) O
- (make_lay_lists)/ i4 U7 X) P; C; q8 @4 x# ?* C
- (setq lay-idx (getindex elayer laynmlst))
: a, {4 z6 V& ?+ r! i8 P3 i, |6 e - )
0 P" Z2 f) f: F3 L' _ - )
: `5 `1 ?1 ]/ ?9 g
" E4 k- G V1 M: R5 n# J) _) Y- (if (= (get_tile "error") "")7 c1 j# w) t0 R4 _$ ^# R0 q
- (progn3 Q8 \1 e) W9 m% U w
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
/ n7 |3 h# f, j; A; g - (set_tile "cur_layer" (getvar "clayer"))+ T$ G* e m/ q; `( l5 H' {. s# B
- (start_list "list_lay")5 Y R! @' C# U4 V, a! Q" L
- (mapcar 'add_list laynmlst) ; initialize list box
/ J9 b- W7 u- V( O+ F - (end_list)
! k! v" [/ P. E0 y - (setq old-idx lay-idx)
# A: j$ \" y' q$ V - (laylist_act (itoa lay-idx))% n5 d4 _( K) \. N; y, k
- (action_tile "list_lay" "(laylist_act $value)")0 J7 f9 C L* r, L( a+ j% F. u
- (action_tile "edit_lay" "(layedit_act $value)")
) a. U9 {& h3 K" [ - (action_tile "accept" "(test_ok)")
, N0 m5 x1 m' B/ A3 Y3 A - (action_tile "cancel" "(reset_lay)")2 ]* }+ c, ]( T& V1 A# H
- (if (= (start_dialog) 1) ; User pressed OK
$ x3 a6 g! U6 n2 Y$ `7 i. S - (progn
4 b/ Z4 t$ \7 x# X1 G3 \% D. i - (set_tile "t_layer" layname)- N$ F" t$ _8 }
- (setq elayer layname)
2 O4 h$ w" i* d- W/ F3 \ - ;; If layer equals bylayer reset color tile
3 K* p5 i9 E g, R$ k - (if (= ecolor 256)
0 J3 V: ]- k! _! ] - (col_tile "show_image" (bylayer_col) nil)" V: F; a* |" ~
- )
( P$ Z: n0 S4 n - layname
& `9 Z0 d/ j9 f) V+ Z - ), N2 ?& a# |, k
- elayer% s8 R* |+ D- T) M5 D
- )
, q% j. D, B$ x% h2 a# b w2 A - )
6 L0 _, ~: N* G - elayer& m/ `" l Z7 a8 S
- ): i' _2 x* e/ m% v% t8 |
- )$ N9 [7 O2 G3 v/ \
- ;;
, g% x9 O* b, p3 Q - ;; Edit box selections end up here. Convert layer entry to upper case. If5 O! o6 y, [) |# j* }" }9 L
- ;; layer name is valid, clear error string, call (laylist_act) function.
' T; l ^' J5 V1 V( g - ;; Else print error message.
' J* ?1 a' E8 y9 s3 }0 m9 v! O - ;;2 F7 R6 l* v2 _
- (defun layedit_act (layvalue)( G3 C: @% P( ^: h& {
- (setq layvalue (xstrcase layvalue))
# O/ R1 n8 Q0 \. F - (if (setq lay-idx (getindex layvalue laynmlst))- e3 g5 J% A+ e; I
- (progn6 J) G- z1 M( v+ p$ K
- (set_tile "error" "")
% |/ Y9 }; t' j# C! e - (laylist_act (itoa lay-idx))5 r" f f! |- h
- )
; l6 h- }6 V4 Z! H- m$ l+ @7 f - (progn+ B$ f e. ]' ~. L
- (set_tile "error" "Invalid layer name.")
! \, n5 y. v$ _9 I0 V0 L& A - ;; (mode_tile "edit_lay" 2)
# z6 C0 T( |9 E9 i7 j) d - ;; (mode_tile "edit_lay" 3)) N: X( g% ^. u& m8 J9 ]1 k
- (setq lay-idx old-idx)
: r4 I5 m z. ]5 w# {9 J# P - )
( k& C' e; q" f V - )
/ l2 H5 J8 Q" v - )) v5 @& j3 U$ h1 m
- ;;
0 A9 }7 p5 v! M; G' u4 v% W8 A - ;; List entry selections end up here.
* `$ ^ w( n9 d! B7 K - ;;/ B5 W# `: v7 [6 u1 \- D
- (defun laylist_act (index / layinfo color dashdata)
, |& b* [8 D7 Y( y - ;; Update the list box, edit box, and color tile.
* E1 i. P/ J# I - (set_tile "error" ""). P" x7 M3 y5 ^$ `( k8 f8 k
- (setq lay-idx (atoi index))$ ~; J0 p1 F" h
- (setq layname (nth lay-idx laynmlst)); G# t1 l2 x6 g; m3 f; b
- (setq layinfo (tblsearch "layer" layname))
6 `4 v$ h$ q2 f8 c1 V' T - (setq color (cdr (assoc 62 layinfo)))$ J5 J' y- l0 Y$ s6 Q0 a- A5 Z$ ]
- (setq color (abs color))
* f7 R. w. {. c4 J: \$ s - (setq colname (colorname color))
1 G, m) ~3 M$ d - (set_tile "list_lay" (itoa lay-idx))
1 E% n1 u# r" k- f0 K7 \ - (set_tile "edit_lay" layname): S x9 D/ u4 q7 c, C
- ). W9 z1 i& q; c0 c9 h
- ;;& v4 [$ k) i+ n0 N; ^* _; w6 d
- ;; Reset to original layer when cancel is selected.
& |+ a) r4 v3 z0 n; } - ;;6 t/ g/ b8 N3 L3 Y, [7 Z8 [! c$ b
- (defun reset_lay ()
9 W+ U# X8 Q, h% r+ G' B' c - (setq lay-idx old-idx)/ I8 V6 L8 p E) ~1 r4 r3 ^
- (done_dialog 0)
# O5 p8 k. ~% b! s/ ~9 [) \. \8 b - )
$ @' V) p% z( [" n; o& X7 U- K! N - ;;
) D$ @8 } A) ]" O n1 s( ~ - ;; Checks validity of thickness from edit box.: U' @ r; U% @2 `0 m9 d
- (defun getthickness (value)$ V/ ~% w) H' f: E$ ^! u' v: \7 x
- (setq ethickness (verify_d "eb_thickness" value ethickness)): w7 H6 a6 ^6 W+ e& N1 [
- )4 Q- j( R# a8 T! A
- ;;+ W- \) S4 v2 I; k, w
- ;; Copy of (getthickness) for ltscale. If more, make this function9 h/ [. L/ H! A' v7 I
- ;; generic.
$ B4 a1 m/ {1 \! n+ J - (defun getltscale (value)% r- r1 Y$ t6 |) u. M. q! Y
- (setq eltscale (verify_d "eb_ltscale" value eltscale)); T8 ~9 h: F# U
- )9 k" D# T: X% E$ A5 G9 u; K' F
- ;;
. @6 x7 t' ~% R! y# t - ;; This function makes a list called laynmlst which consists of all the layer
0 I) R# O" q3 F) y0 ~ - ;; names in the drawing. It also creates a list called longlist which
5 U1 a/ ~" Y+ i - ;; consists of strings which contain the layer name, color, linetype, etc./ M0 e" V0 q1 B! a* z. y8 U# W
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
: o% I5 }* }' t: b( k - ;; same.0 w$ B. A5 \7 P
- ;;
: D- k1 ?0 B% M+ ^5 M( q2 q - (defun make_lay_lists (/ layname sortlist name templist layer_number)
Y5 H8 y+ l1 H8 [ - (setq sortlist nil) B, S0 C- A, X$ V2 P' W& U
- (setq templist (tblnext "LAYER" T))
x, S) ^8 h% u/ f. i - (setq layer_number 1) m) k9 _ F! J- m" [; l& h
- (while templist
$ \, d( H6 r6 L - ;; No xref dependent layers, please.2 W: b/ n5 i! X+ {2 v1 F7 O
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
+ B7 d Y8 _- P" l3 x( P - (progn0 k, D. X; g4 _: ^5 ~ g/ q# }
- (setq name (cdr (assoc 2 templist)))
p( k5 I0 `7 x. ^ - (setq sortlist (cons name sortlist))" f0 W8 H6 g+ \7 ^2 C; M; h6 g! O! N: N
- )( k! ]! u Y4 K2 @
- )
2 q9 O7 N# [2 Y; q7 r2 A) f7 G* { - ; Get the next layer.
( Z8 P( r9 p0 M' X# [, |" a - (setq templist (tblnext "LAYER"))
, L7 x+ |& w! ]7 } - ;; Not dead message...2 X, F) a- Y* E' A+ ~
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0))). H+ P T8 z6 }4 G# g; p* i+ V
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
4 q; A" a3 F: U" C - )/ ^7 U. p& \4 q& L; h
- (setq layer_number (1+ layer_number))
* }2 x" d P; W- ]5 R1 C - )2 z* s8 L6 h8 l
- (set_tile "error" "")/ h7 h; N3 t" [: F
- (if (>= (getvar "maxsort") (length sortlist))
, q7 l7 g/ B. v( m7 M# B! |* x - (progn
1 n, E @' L6 h- }; H - (if (> layer_number 50)$ C! S" q. \1 A
- (set_tile "error" "Sorting...")
# C* R! c) @$ a# C! ` - )
; b" J* j' b; f1 a, H! E' r; b$ ^' p - (setq sortlist (acad_strlsort sortlist))
8 y y% A& Q7 i$ U0 B% `7 c3 q - )( D, I2 a, j* A; l, j0 ~( B! T- ]
- (setq sortlist (reverse sortlist))- R; i3 V' b: P t8 @, m
- )
! I% _0 X6 q2 S+ k' X - (set_tile "error" "")% P1 }* D, W3 |1 L; P) [
- (setq laynmlst sortlist)
: e. r6 F9 \8 _9 f& B+ @8 Z - )3 a, }2 k6 \: T7 I$ b
- ;;
5 n5 U) l% q! t2 }9 W W- k! D - ;; This function makes 2 list - ltnmlst & mdashlist.
, h( L* V. J* x* m9 a6 U8 `- x( O6 b - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
8 C9 T) h" U I5 o) h/ D0 l - ;; is list consisting of lists which define the linetype pattern - numbers6 |+ R4 s+ }6 F5 I) q, W
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list
! k. R1 ?" c! K" {# n - ;; corresponds to the order of names in ltnmlst.8 {" d: x2 z& w) h; H( @4 W
- ;;/ K6 @" l, _6 X; m& n/ J
- (defun make_lt_lists (/ ltlist ltname)
( q% p8 E$ L; G7 |$ P - (setq mdashlist nil)* `6 J" u9 C! F( n5 p; e
- (setq sortlist nil)
) S+ o* C" e) L0 ?, @8 e! t& B3 `% w - (setq ltype_number 1)
9 G$ d9 P4 p, `8 u& g - (setq ltlist (tblnext "LTYPE" T))
( \8 o: O$ k1 e$ |. I - ;;(setq ltname (cdr (assoc 2 ltlist)))
- u" G, z% @- B4 l! ? - ;;(setq ltnmlst (list ltname)), K9 t+ T8 a) R5 @: f5 t
- (while ltlist& @) \+ {1 [* P' K) i# d
- ;; No xref dependent linetypes, please.+ z3 X1 \) I8 r1 D. u
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)* r, s8 l6 O( g& m' d. K7 M
- (progn0 h+ j- T; [; m' |( Z8 H) S
- (setq ltname (cdr (assoc 2 ltlist)))
4 F! M5 N6 ^$ C6 {7 B - (setq sortlist (cons ltname sortlist))0 K& f6 D/ k4 h' n
- )4 I8 W" }9 C' ?8 V2 w! r" G
- )
% k: U, c2 l& t" f d - ;; Get the next linetype.
& A% P0 D6 _" R6 T1 j" W - (setq ltlist (tblnext "LTYPE"))
; N1 |( J% V* h; w: I - , o( t4 z8 a: t9 X2 C/ K. E4 ]
- ;; Not dead message...% n. {) g4 I# d( \/ j# }
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
" Z' X6 D+ R p: w3 h# R" v - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
2 C! D) _1 ^) I! s# o/ i# K - )2 K. j! V: g$ r
- (setq ltype_number (1+ ltype_number))
7 Q( F o# f( X& F t
3 o. _* N0 m: y/ ]- )
* }6 M/ U. l% a: L/ a% J8 T - % q+ J9 N5 F& O0 L
- ;; Remove Collecting message.. d; o' n2 C$ r* d1 m8 q
- (set_tile "error" "")3 `8 N) S. [) j7 X4 z) E
- 8 J- ?# n# n$ H
- ;; Sort based on maxsort./ N) p% e" x5 {: G7 S
- (if (>= (getvar "maxsort") (length sortlist))
b9 c8 ~3 A g, l) Q" {$ n( `) r: v - (progn
! {! Q( f6 [; V5 a5 b - (if (> ltype_number 50)
n4 m3 `* A! r4 ?8 _; [ - (set_tile "error" "Sorting...")" P4 N' ?0 l/ w, E K6 r; V
- )! E8 J' R: R0 k ?' f0 |( M! P
- (setq sortlist (acad_strlsort sortlist))
! {( L! D& P1 ?8 w) m, R# p) x - )
3 b8 Y6 ~$ N7 i8 j! g W - (setq sortlist (reverse sortlist))* d; h! u$ j$ N6 e1 @ G5 D
- )
/ p. D* B1 B ? K - (set_tile "error" "")
$ G0 S! C) U! ~8 k/ z) B - (setq ltnmlst sortlist)
) m0 q0 i5 w8 Z i# z' b
( x. e; \% h2 A. C' c- (foreach ltname ltnmlst' Q9 m* q1 @' {5 p1 Z8 C) _$ A
- (setq ltlist (tblsearch "LTYPE" ltname))5 Q3 a+ N- i) G
- (if (= ltname "CONTINUOUS")
n s, B& h3 Q5 A - (setq mdashlist (append mdashlist (list "CONT")))
) `5 u! } ?) }2 Q - (setq mdashlist
' x4 ?1 z! q' a- N - (append mdashlist (list (add_mdash ltlist)))
6 h3 ^, F+ E: n& ]; d3 _( f1 _ - )
9 n/ z( f1 h! f# d) N! X; o5 z - )1 j" w9 {1 K1 |! h0 T, M# q0 l
- )
3 `/ B6 t% o1 T9 Q - (setq ltnmlst (cons "BYBLOCK" ltnmlst))$ }% t, v% Z) D
- (setq mdashlist (cons nil mdashlist))
2 {3 W) \7 v4 H3 G9 G2 r - (setq ltnmlst (cons "BYLAYER" ltnmlst))7 a1 _0 x( n! K# M
- (setq mdashlist (cons nil mdashlist))
7 p7 a; R/ t% S7 R8 w( x1 p1 J - )
+ `6 W. w+ W0 G' Q" R - ;;
" h6 U% p- Z% A- r! ~ - ;; Get all the group code 49 values for a linetype and put them in a list
" W1 X% ~' u4 q' p! y" _2 C - ;; (pen-up, pen-down info).
" f5 y. ?8 \ x& ?- N. ~6 v% } - ;;! h+ E6 ?" v7 x5 p
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
5 l7 x R; L& E6 U2 m - (setq dashlist nil)
2 W5 T b" J% [3 J) M/ i - (while (setq assoclist (car ltlist1))
: {( b4 n$ F) J9 V- Z1 t8 x - (if (= (car assoclist) 49)2 N# L2 l( [' N; u
- (progn6 a. \+ `1 z+ A6 A
- (setq dashsize (cdr assoclist))
4 E& ]! Y2 \& k. D t# A; X - (setq dashlist (cons dashsize dashlist))
9 b/ h' E6 H- n0 q1 I& V | - )
' M# p& ]$ b" G8 K - )
6 ?9 l7 b2 \# x+ r - (setq ltlist1 (cdr ltlist1))7 Z. L7 r5 [) [6 X, J O4 W# U# T
- )1 D9 y8 j4 G- c+ ~+ v
- (setq dashlist (reverse dashlist))
# `. c, ^) E) { - )/ u" V# [# l4 L. i5 y: l+ k
- ;;' _( x5 Q+ r4 I9 ^' L3 f9 p/ I' t+ I
- ;; Color a tile, draw linetype, and draw a border around it' ~. Q1 F) {$ ?; V! O: Y/ r2 z
- ;; s4 ]: J* A6 X2 L, y, X4 ?3 B
- (defun col_tile (tile color patlist / x y)
4 w- }8 J3 j' W4 b$ Z2 C - (setq x (dimx_tile tile))
" v9 T" w: ?$ L+ W - (setq y (dimy_tile tile))4 t7 |1 n7 U6 k/ {
- (start_image tile)
! q: s. Y4 C4 M P9 h; L! I9 C - (fill_image 0 0 x y color)
n& f: _' j" j' d( |" W. Q. V - (if (= color 7)6 W. E: [7 F* k @/ m' ]
- (progn
9 |- M1 ~1 g; \# e. m' a0 e - (if patlist (drawpattern x (/ y 2) patlist 0)), u m7 `7 w( y: s4 X
- (tile_rect 0 0 x y 0)! Z* [( Z" [# A! d1 U
- )6 S" g& \$ [' b7 p: m: r2 R
- (progn
. Z% U- C& i6 l - (if patlist (drawpattern x (/ y 2) patlist 7))
3 i" r6 A$ E. U, V6 ^( y& X - (tile_rect 0 0 x y 7). T/ d% [ }1 B
- )
' r$ |7 j" G$ z. `9 i - )
8 P$ ~, d' N1 U# R - (end_image)
; y6 x$ q% F0 B T. E - )
% R9 h: |6 i# E0 [' ]" @ - ;;) j5 G3 B1 K/ {6 U o2 s5 I. ~
- ;; Draw a border around a tile: D5 a5 ?- O* i/ s1 Q/ v5 Q( Y
- ;;
( D3 Y1 P, s1 A5 p7 ?( y, W! z - (defun tile_rect (x1 y1 x2 y2 color)$ `( [/ A, ]; Z0 R9 y' P3 P: T
- (setq x2 (- x2 1))! m' l/ p( l$ e) Z- Y% z& ~5 d
- (setq y2 (- y2 1))% S' z0 O8 n2 ?" o
- (vector_image x1 y1 x2 y1 color)* o, h$ Z+ _& m; ^7 w
- (vector_image x2 y1 x2 y2 color)$ U# x7 |/ O$ {' b9 a& K4 D
- (vector_image x2 y2 x1 y2 color)
3 ]( K" X4 M/ N% A7 y1 \ - (vector_image x1 y2 x1 y1 color)
- ~0 r% S" l3 y/ c' H - )" l0 V& G' j; _8 |5 |0 c1 W) s8 ]
- ;;
$ `6 I1 Z3 r$ _* w( p' e - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
. D' w9 ^5 J! t2 I$ a - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
& Z+ V0 J8 ? c. W0 f - ;; list of numbers that define the linetype, and color is the color of the
5 M+ C" M" ?2 a8 V% F/ b* ] - ;; tile.4 f$ J5 w) [3 r) e& o; |' v
- ;;* m" X1 E, S& Y! T
- (defun drawpattern (boxlength y2 pattern color / x1 x2* o; ?9 d/ H5 |( J( H
- patlist dash); }) a9 q! X# r6 U
- (setq x1 0 x2 0)8 n( [& `* o: J/ c& |8 f
- (setq patlist pattern)
& r; L! y: h. y+ w* g) c2 v6 A- b - (setq fx 30)$ a# u8 |- g& H5 t( P& D
- (if (= patlist "CONT"). Z# x+ v) D* c5 _
- (progn (setq dash boxlength)
! G5 E) A7 | ~ B. A+ T9 Z* ?; }) h - (vi)+ ~. _+ M& z$ a. U8 }$ G
- (setq x1 boxlength)9 L7 q: h8 X$ d- p. [8 G
- )' z+ Y5 i; @4 e2 Y
- (foreach dash patlist. r# e8 N; h5 t6 U
- (if (> (abs dash) 2.5)4 ]$ `# O4 S* m7 W7 A( _- u1 k+ l! X
- (setq fx 2)5 f4 J( w8 N% x- F% M9 C* t/ J
- )
& M/ q% |( U v/ S - )
; n/ E9 D/ K- U2 D' } - )( e$ n2 G1 G O3 U& E
- (while (< x1 boxlength)5 N. v7 F" B& D
- (if (setq dash (car patlist))1 F9 d! {8 ?# M4 p# U
- (progn
; W1 R# Q5 ^, s( t1 `8 w - (setq dash (fix (* fx dash)))
% V1 E* E1 t$ R$ V/ U - (cond
; I) _+ {7 a* p! y - ((= dash 0) (setq dash 1) (vi))1 ]; m& w. V; W( a, ]" Q
- ((> dash 0) (vi))
0 S/ |! \$ T( g3 b/ L - (T+ o( n& g3 a1 M, c
- (if (< (abs dash) 2)
5 l% x* B, B. O* P; E - (setq dash 2)
# s3 F4 T/ u; F+ i - )
& @) T' G( s( d - (setq x2 (+ x2 (abs dash)))
1 F' C' F. A# |6 y* @, p! k - )8 N' D' X3 N# e/ m3 v1 T
- )7 ~1 v6 N9 F9 i8 G" j {" ]
- (setq patlist (cdr patlist))
8 j: J+ F+ ?5 S' P - (setq x1 x2)/ W: c, @, ]. ]" J0 @1 [& T3 A$ A
- )$ J9 I: J; i9 j. R8 T X
- (setq patlist pattern)
3 f. d6 p. E/ h# Q: D. ? - )9 c. Z4 |) U/ M, W O
- )3 w4 W9 Y5 Y/ W8 P; R8 U x
- )
, y! {9 X8 N2 u - ;;
- V U7 R& D* P+ W6 v6 p - ;; Determain state of xclip
% a n1 ~7 S! O1 Q$ _ - ;; Returns the group 71 value of the spacial filter dictionary.
) u% c! I1 y5 u. h: b5 j' e - ;; If the entity doesn't have a spacial filter dictionary, this
6 j; P* U9 |) z9 T1 e( ^. L - ;; returns 0. If it does it will return 0 or 1 depending on the' d- N$ B! t1 q0 \
- ;; current setting of the state of the clipping visibility./ t; L1 a5 m4 K8 g
- ;;8 |! C' B/ S' B( o- \
- (defun xclipon(elist)
0 P+ H5 `0 ^. b8 Z+ ]' |/ L - (setq hasclip T)
2 }; P/ n# |) T - (if (/= (assoc 360 elist) nil)
& c; X9 d/ y: u - (progn
% a) d% D9 g6 w; D$ K - (setq tmp (entget(cdr(assoc 360 elist))))5 n( V9 g4 `8 ^! l: h( J
- (if (/= nil (assoc 360 tmp))2 _7 o- M* A5 L* W3 t
- (progn
! i9 K7 O# p% F. `* n j - (setq tmp (entget(cdr(assoc 360 tmp))))7 |! o% W4 H+ N% |9 D2 Q
- (if (/= nil (assoc 360 tmp))- ~6 A8 h) d! _$ X
- (progn
( X1 \7 d2 y! u% C* `( ] - (setq tmp (entget(cdr(assoc 360 tmp))))
- ?. ]. x& d1 P+ \! g3 X6 x) O - (if (/= nil (assoc 71 tmp))
6 f3 Q4 V( V" a: V8 V5 W - (cdr(assoc 71 tmp)); S! L! a6 r! Q# t5 i2 n! k7 m7 l
- (progn 9 u4 z: w! _4 I/ f }
- (setq hasclip nil)
' e4 x9 i: w* x4 j* j( H - (eval 0)0 p3 N; K- c" P" t" A+ S" I0 @
- )! R) |$ Y4 u* ^. ?; g+ N
- )! C8 P3 H( L1 g( o: d. O5 X3 n
- )
$ f' z P- x6 K+ o1 ~; w+ I - (progn
, W) o6 ^) F. A( x - (setq hasclip nil): k: S! x( q' q
- (eval 0)
: P5 [$ q0 @& d( z+ i, B - )
! J6 y, l% O/ Z3 J5 L# [4 Z3 z! m - )4 |7 A, _( k( E/ x& m; Y
- )
2 ~+ P! b& R4 v9 ]$ ~ K2 K: a8 x - (progn
* E& Z. `/ p; [( k- o - (setq hasclip nil)8 [1 F; W2 h7 k. i8 E8 h" r9 z) b" |
- (eval 0)6 B- L" p8 I2 |) w- n/ t) T
- )
9 n2 {7 N" r- k/ J4 F - )
; N7 N1 G+ T; f' P - )( C+ t7 g9 l, j Z. r5 f
- (progn 3 C# r0 l, G _3 f0 R/ b
- (setq hasclip nil)5 w9 t. X; H% d# Y v* U j1 t
- (eval 0)
8 [9 h. a0 }& z1 J1 u - )
2 W2 h: ?' k+ V# A3 F6 l - )3 c" g9 ~; }) T
- )
) g* r0 x* j- U7 m& _5 G - ;;
) A a% s2 I- S c4 r$ C: T - ;; Draw a dash or dot in image tile
$ c2 l" z/ ~6 Y& f7 _" { - ;;
. L) G5 B& p& B, I - (defun vi ()
# ^. b! u6 t. M' j8 T' D% C - (setq x2 (+ x2 dash))
, G& T8 |8 o6 h" ~ - (vector_image x1 y2 x2 y2 color)3 h4 r$ c3 R5 V9 u: j; k6 g
- )
- c9 r# [9 Z. b2 G& A4 I - ;;
- C* q2 z2 [% J( r/ w - ;; If an item is a member of the list, then return its index number, else
$ P3 b3 R: K2 b, x; b" o - ;; return nil.& K- D% H2 K& Z8 _ v; v! d }
- ;;
$ J' ?" Q: o. w% y6 T( L& j - (defun getindex (item itemlist / m n)7 t; F, B1 q l2 z2 \7 w4 Q# i
- (setq n (length itemlist))
/ E( L5 ^) C+ I% S' \) p - (if (> (setq m (length (member item itemlist))) 0)
" s' Y! E$ M* y - (- n m)- ] ~7 n) ~6 U& `
- nil+ d: Z, E$ G2 d& y) z* o! M
- )
% {: v9 i- P2 l - )
8 x. t6 z* |5 G( c' O! G* A6 @$ j5 C - ;;
4 i0 l7 ?* w' t: K2 O- r# i# [ - ;; This function is called if the linetype is set "BYLAYER". It finds the
( S4 P6 L/ @. w2 [" t6 \ - ;; ltype of the layer so it can be displayed beside the linetype button.$ ~' ~0 K& E$ {" a F; g/ | _
- ;;
8 k* A; W2 J. u {3 i \/ N- K - (defun bylayer_lt (/ layname layinfo ltype)- r, A/ Y0 p% Z H
- (if lay-idx
" }' c3 }7 T& @0 G$ e% a - (progn
& w0 T, E! z1 V7 H - (setq layname (nth lay-idx laynmlst))
2 e6 z6 ?% R: x" N7 s/ m( Z: I# h - (setq layinfo (tblsearch "layer" layname))4 S: [4 ^/ c+ e8 M# O" X7 }
- (setq ltype (cdr (assoc 6 layinfo)))8 R9 c8 r8 p- g# a* U% F; I
- "BYLAYER"
) ?0 W5 O w5 ~: b7 M8 ] - )# G3 ]+ l5 {) ]; F
- "BYLAYER"9 m4 `" H' O8 ^! [
- )
5 i0 G, \/ E& s; g - )+ [: E5 b* { V$ r% r" A* h7 m. h# ]
- ;;+ S, D' O' i: w& L# R
- ;; This function is called if the color is set "BYLAYER". It finds the color
" T! ^+ l- f5 `$ b- [ - ;; of the layer so it can be displayed beside the color button.
- {$ h* }4 G' D7 w- x9 N - ;;4 L! Y% [$ w, I7 J0 t: f5 v
- (defun bylayer_col (/ layname layinfo color)
" |: t1 B+ l( p! [ - (setq layinfo (tblsearch "layer" elayer))
) P4 D, }- U7 S4 ^0 J, ] - (setq color (abs (cdr (assoc 62 layinfo))))/ y/ C y8 c2 ?) p1 s8 v/ L2 C F
- )% T8 P0 G5 \ C8 E
- ;;9 e7 D4 ^" m) a% X( l
- ;; Used to set the color name in layer subdialogue.9 \( w9 a0 n. J' p# Y6 [
- ;;1 k6 Y" m# x! _4 \' A
- (defun colorname (colnum / cn)
3 d1 l, q$ @: T4 X0 [. e. x, a - (setq cn (abs colnum))" b' q+ t' C& C3 V+ a5 V8 A( K
- (cond ((= cn 1) "red")# _- k* r# m' K3 G# d6 C. z+ @
- ((= cn 2) "yellow")* d: v" ^( I: O$ O
- ((= cn 3) "green")8 o- Z) [& E% N4 A ^
- ((= cn 4) "cyan"), H, i% R& k7 j3 o2 {4 l
- ((= cn 5) "blue")
0 [1 j/ U+ S) m, X \' b; b* p - ((= cn 6) "magenta")
0 I, h+ Q- F t5 w- M- l - ((= cn 7) "white")
8 O/ H3 |1 C8 u* H* I0 ~4 c/ x - (T (itoa cn))* ^' a, e6 }, x( F8 ? G5 ]9 ]
- )4 h X; p# E: ?. I
- )% q7 x; o" O. G0 v8 Y
- ;;
1 |% Q* _& Q! F0 T U - ;; If their is no error message, then close the dialogue.( P! W' J1 v5 i' R. X0 H/ f! |
- ;;
- X% g& j3 Y! T! c! D$ K% Z) p - (defun dismiss_dialog (action)2 m4 l3 l# b& V$ e6 O" P, y" w2 F6 d
- (if (= action 0)0 A2 J& W! d- \# v+ C0 L! p
- (done_dialog 0)! ^% }; Q7 o& ~7 j( A
- (if (= (get_tile "error") "")
) S0 l" C) w9 j, P5 ? - (done_dialog action)1 e2 j5 q; f$ Q( x- p/ y0 x* n
- )3 A7 D5 N) _" v% g7 R+ s5 M
- )9 G) I" m3 b- N. j- f9 p3 U3 @
- )0 _- X8 ?; w& }* H. I
- " d( J3 d; c- t% J/ N; F* ?
- (defun test_ok ()
' Z- ?4 |, j, F. s/ \! | - (if (= (get_tile "error") "")% \0 Y" M% [; a
- (done_dialog 1)
! d* F1 R1 i1 q# |& U - )+ N8 b M/ |$ g
- ). ~ l! \3 ?- R( O. R4 u
- v3 r3 E$ z! e% ^, t$ ` o8 `# A- (defun cancel ()1 O- t7 @4 n+ u
- (done_dialog 0)0 I& E0 K+ q5 G& P
- )
- a2 U% w* T! J4 z( P! k# Z" K/ O | - 0 a4 G( p( I9 P G- _
- ;;; =======================================================================/ Z3 j4 p* U7 n+ M* y( `$ j
- ;;; SETUP layer and linetype lists for application, and initialize all, M& Y% K8 A s( F* W3 E) `) W# y
- ;;; program variables.9 _7 A9 C6 ~3 o4 X
; P, g8 @4 j; X: n; ?0 h" O, N% T- (setq elist (entget ename)
! x) m7 U, F3 h N - old-elist elist
; G6 @, K" ?7 j% p* ^ - modlist elist8 w! q3 G5 M% @: u+ u
- etype (strcase (cdr (assoc 0 elist)))
9 t- S! n& v' k" i7 a! p - ecolor (cdr (assoc 62 elist))5 ~. d6 O) i4 |$ _
- elayer (cdr (assoc 8 elist))
. x" B: Z6 B, o - eltscale (cdr (assoc 48 elist))
0 y+ @$ Y+ i& [/ c* g. x - ethickness (cdr (assoc 39 elist))3 ^ Q$ j* W8 `1 l6 i7 \# F! A
- eltype (cdr (assoc 6 elist))5 L4 Z8 q- l; M
- ). N; D" z( T e, e
- (if (= (assoc 210 elist) nil)7 N8 T: `0 M: r
- (setq extru (list 0.0 0.0 1.0))" x8 S$ h, p1 ]$ a9 m! {
- (setq extru (cdr (assoc 210 elist))): j. B6 H# F- T6 n7 E# i) c
- ); s. Q6 \! o. N, }9 z' u
6 P. `9 W: S; W/ y- (if (not ecolor) (setq ecolor 256))) n5 X5 o% F# e: s- k# @& n
- (if (not eltype) (setq eltype "BYLAYER"))
% N$ t4 F, E0 y( t" C3 { - (if (not ethickness) (setq ethickness 0))" ~# E) i) z0 W% D4 c9 c7 B
- (if (not eltscale) (setq eltscale 1))! ?4 o4 M: E$ G8 |" v L$ [
- ) ; end ddmodify_init
0 @" w d( s8 {- N$ T - - F. r, r7 [$ L/ e3 e
- ;;; --------------------------------------------------------------------------
1 M4 Y6 T, c2 n8 O8 E - ;;; Function: DDMODIFY_SELECT
+ d: v9 H/ M$ b% x- r - ;;;
, z, ?' N- f( v8 ?1 i - ;;; Object aquisition function.2 r% E9 N! @; t( h3 J) G1 }; [/ H
- ;;;
9 `- v, k7 b, a - ;;; (ddmodify_select) v) \% `' @) M2 j( Y: y7 I( ^
- ;;;
1 R8 a) S: r% Y3 Q, @: c - ;;; Obtains object to be modified, in one of three ways:
4 `0 a' c* a0 Z' A {" y - ;;;7 E# z! R- J9 G7 |0 x/ |' @
- ;;; 1 - Autoselected.
. {8 D) H' c4 [" ^* y - ;;; 2 - Prompted for.
- D5 D6 f- ~; u7 [ @4 t - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )) J2 }0 K& i4 v" e* v
- ;;;
" D$ b3 L# {/ J6 ^: g - ;;; The (ddmodify_select) function also sets the value of the
/ X, a9 h) c$ T3 l! g) P' Q% L8 [ - ;;; global symbol AI_SELTYPE to one of the above three values to
, L" ^" q& E+ W% n' ?+ p - ;;; indicate the method thru which the object was aquired.
f& n* D+ U! D) M$ M7 ^4 C - ;;;
# }5 Q. S2 Q6 w) d/ n- \; G) d9 f - ;;; This value can be useful to applications that want to RESTORE: L. C6 T" C0 B/ H f9 @' `/ d7 E
- ;;; an object that was autoselected to its previous selected state! }) i( x+ P/ d' l9 S6 n+ A
- ;;; when they terminate, although there doesn't appear to be any9 s C6 _2 t2 I D
- ;;; way to do this right now.% S' w: q6 O4 g) d+ ]/ c) m9 ]0 x
- 3 W! A: O! O( R
- (defun ddmodify_select ()7 ?, i. v4 s& o8 _
- (cond
5 p( `+ P" C, x! ~" W3 a9 o5 a - ( ename ; (ddmodify) was called4 _$ ?8 I3 W. \4 z; f4 ~4 E5 Z7 u2 A3 t
- (cond ; with an <ename> argument% K; n- X; B0 R( X
- ( (entget ename) ; If object is non-deleted
( O, v) O+ _6 p$ v! ? - (setq ai_seltype 3) ; then return its ename.
* U2 A. ~8 `- K } - (ai_return ename))))1 }$ D$ @ Q) O+ @
, @ z1 S' _3 G1 s5 r- ;; return auto-selected , see ai_utils.lsp8 R+ V& f1 }9 q0 m. n& t" B
- ( (ai_autossget1 "\nSelect one object to modify: "))
_$ O/ ~8 U1 t/ Q
) P& L8 k3 t9 m& c w4 u5 E0 f1 e- (t (princ "\nNothing selected.")$ r( g( [$ J. H7 @8 N
- (ai_return nil))
0 [' s- c2 F0 x* [$ y1 ? - ), P+ @! C. o# [3 v+ } C8 i
- )
+ o2 J" u1 \4 e* r& l& p' _ - & t' ^8 n# |1 P! @9 D
- ;;; ============= Command line interface function =======================
" }$ ?* J# m9 F* N/ q - 9 n+ x. d9 b! \; G! ~) h Z
- (defun C:MMO ()
$ t$ K) D8 s+ ^4 ^, ^1 y% c' g6 L* n - (ddmodify nil)2 r- t9 A9 ?2 y
- (princ)+ w/ J* Y3 H7 V' V3 a+ S) T/ h
- )
* @2 s# T. [: R2 `# a6 e h, W9 W - 7 F* G% ~8 w8 \: [: f' U
- ;;; ================== (ddmodify) - Main program ========================0 }6 R6 U/ z& V6 x8 C5 v
- ;;;8 G% y# \" Z. i
- ;;; (ddmodify <ename> )0 Z( r$ s k5 x; R) i- `
- ;;; s- f$ [7 n4 {( w" V
- ;;; Main program function, callable as a subroutine.
) T) r5 n" h1 K4 P7 W) G8 X; J& T- x! C - ;;;
* `! V3 F; t J/ J) o9 p - ;;; <ename> = object name of the object to modify.
) U! j# T; ~' P- S( i$ a - ;;;
0 ~0 d8 \' G# g4 n( `' B - ;;; If <ename> is nil, then user is prompted to select1 l" D7 h, s# R* N* v1 g+ _
- ;;; the object interactively.1 Z) {9 D+ A0 y" _3 l
- ;;;
( @3 z' E' A+ }2 O T% y - ;;; Before (ddmodify) can be called as a subroutine, it must
7 G; k" w0 W( ~: K6 g! v - ;;; be loaded first. It is up to the calling application to
* u1 W0 \, b4 g3 H/ B4 L - ;;; first determine this, and load it if necessary.
' y- Z" P# {4 @% p; {( e! K
|' [# O( B, {0 h- 0 f" q p' V- S" M
- (defun ddmodify (ename /
/ e6 V) v7 k) c2 I - 2ndpt ell_calc_area move_pt1 templist
! P8 W a* y: w7 o% J - add_mdash ell_tile n tempmod7 j/ M* J( T1 T7 d3 J9 V
- alipt eltscale name tempst_ang- ~% x. V# l$ n2 ?3 z
- ang eltype newpoint test_ok
6 p& o/ F) Z4 K# \' p0 n. [ - arc_calc emod next text
9 e. t0 g! @1 D1 s+ |! i0 }0 s - arclen end_ang next_vertex th-value
/ W0 \" `2 t2 L- A6 L+ c - assoclist endpt obl tile8 Z" z5 {; M, X( V9 H
- atprompt errchk off tile_rect Z0 x) E& |) Q2 Q3 i% h
- attag ethickness old_majrad tilemode2 j [4 h& b3 N. E4 u( |$ D
- attprompt etype old-closed totang
( B' C6 e y: X# } S0 U c4 l$ E - bit extru old-closedm tstyle
: @( q5 ^' G; J' | - bit1 fchk old-closedn u
+ Z7 p8 A2 b. w9 N0 W - bit-10 first-10-rec old-elist undo_init$ i/ p& Q( Q5 y
- bit-11 first-10-time olderr upsd' x }$ }# ^5 H) X! z: d, S
- bit2 first-11-rec old-fit v, j& s$ Y1 n9 s4 F" W/ F
- bit3 first-11-time old-idx va
7 \5 e; Q" ?% D. W1 ` s - bit4 fit oldlist value8 s7 s) k5 p# S. x, w0 n
- bit70 frozth old-spltype ver_4# ?7 e9 [8 l/ T+ z
- bit-70 f-vis old-u ver_ang1
6 x3 x: T5 V( c% [ - bit75 fx old-v ver_ang2
% I" Z$ A0 O. ~; N4 | - bk-up get_color on ver_col- B) m; D$ M) q' N+ @5 u" n) t1 q7 d
- bkwd getcolor onoff ver_colsp
) V% E# S9 Y" m+ J - boxlength getindex on-off ver_eangle
; h6 |) y" W }! p2 _* g - bylayer_col getlayer patlist ver_hght( Z/ w" m4 p; c( k: t. H
- bylayer_lt getltype pattern ver_majrad
! E- r+ ] U3 w3 @ - calc getthickness pltype ver_obl
: S5 h' ]4 @1 y1 H, i6 W - cancel globals polytype ver_pt1$ t2 A$ p; m6 I% J( z( h+ L) R
- cir_calc ha pre ver_pt24 y! [( B; b* j( L& y5 m& q
- closed ha-prev proplist ver_pt3
/ x$ ~+ o' [! o - closedm help_entry pt ver_pt4
5 X2 H+ T. K j+ t; r2 N! Z - closedn hght pt1 ver_rad
3 k' [0 u2 a2 w - cmd icvp pt1_eq_pt2 ver_rot! k% r" m; N1 P) T* g
- cn image_add_vector pt2 ver_row- l" E7 [1 Y4 ^+ f) d# y3 j% j
- cname image_clean_variables pt3 ver_rowsp' G b5 }) b. c* V
- cntl-pt-indicator image_cross_product pt4 ver_tag
* M% C2 g" M+ E" u% N - code_71 image_disp_opt ptype ver_u
' D! n9 G1 d5 _8 W+ m& l$ U - col_tile image_dot_product radius ver_v5 y0 Z9 `# Q" x3 f. Q
- col-idx image_normalize_vector rational_spl_flag ver_wid; @+ C* O& [7 |# L, z( v4 Z3 k
- colname image_rotate_vector reset ver_x1
/ e. _/ R. K I7 Z h9 f8 V5 H - colnmlst image_scale reset_flag ver_x2$ s7 ]' s& r0 |3 m3 I
- colnolst image_scale_vector reset_lay ver_x37 N* m, p E% n+ u3 ^* ]: \
- colnum image_update reset_lt ver_x4
: J9 e1 `% d0 Z - color index reset_uv ver_xline_pt1' T" d7 ^+ ^% Z& H
- colorname inv rot ver_xline_pt23 ]& x6 q( c x. z3 ~ V- f
- colorno item rows ver_xline_x1
' A( M# c5 ]9 j4 n2 \ - col-sp item1 row-sp ver_xline_x27 i* S6 g: M6 |+ ?# @% `8 P; ^
- columns item2 rrat ver_xline_y1
9 a; x# A' ` t0 P# S - con itemlist s ver_xline_y26 ?1 Y Q9 }4 Z% R/ _4 h$ _
- coord jlist set_action_tiles ver_xline_z14 U7 l% o$ l* u( z
- ctr jlist_act set_just_idx ver_xline_z2
% C- B7 L- M" \- ] - cur-10-rec just-idx set_tile_bk-up ver_xscl
) r( a% G1 [+ ?- @ - cur-11-rec layedit_act set_tile_cntl_pt ver_y1 Z0 ~; q4 M1 s: `
- cvpname lay-idx set_tile_data_pt ver_y2( _& D& `3 t4 e7 W6 f. Y& w
- dash layinfo set_tile_dirv ver_y3 C& `2 _5 y) W" f/ M6 h' Q' q
- dashdata laylist set_tile_edges ver_y4
$ e% G5 M% \% \9 ?) A - dashlist laylist_act set_tile_endang ver_yscl2 r$ y' l+ H# {
- dashsize layname set_tile_hght ver_z1. b2 E+ n0 Y( G' A( n! ]9 T( X, t" I
- data-pt-indicator laynmlst set_tile_icvp ver_z2& c9 S1 _( d( c, _" N! }# ~
- dcl_id layvalue set_tile_just ver_z3
& k( Z5 {2 V) t/ i% Z - dd3dface line_calc set_tile_obl ver_zscl
/ @$ D8 o4 o8 h9 @9 O# F - dd3dsolid linetype set_tile_prompt verify_a, | `1 Y! p. n3 m/ e
- ddarc list1 set_tile_props verify_d7 q% g" F; c S3 r P
- ddblock longlist set_tile_pt1 verify_i
1 X9 u& y- C8 Z ]' c- K - ddbody ltabstr set_tile_pt2 verify_xline+ ~' r5 o/ @$ N0 w
- ddcircle ltedit_act set_tile_pt3 vfy/ Z, \* l' Y5 N$ e/ m
- ddellipse ltidx set_tile_pt4 vi" t% ^, K/ _# c
- ddgetprompt lt-idx set_tile_rad vlist1 u# [" Q2 f( H' s! i
- ddgettext ltlist set_tile_rc vname
, A* J# Y) \; H$ l6 ~0 p1 B - ddimage ltlist_act set_tile_rot vpf
* K2 ?& A+ Q: A/ f! r7 u+ F R+ O: y - ddimen ltlist1 set_tile_scale vpid
0 j) C* g/ t/ l! J6 B2 j - ddleader ltname set_tile_spline_props vpldata" k4 s9 H! _! t4 l7 ^% M" i
- ddline ltnmlst set_tile_stang vpn
$ r! k3 X+ o0 f) |6 j1 ^6 p! ^ - ddlist ltvalue set_tile_style vpt
: i% n t3 V: a2 t2 d - ddmline ltype set_tile_tag which_tiles
* }7 r _+ O- Y* _! @ - ddmodify_err m set_tile_text wid3 @- Z. O, L2 M/ Z" o
- ddmtext majrad set_tile_vpt x
( g. Z/ i- }3 v9 o! H - ddpline make_lay_lists set_tile_wid x1, r1 d _, x* n+ p
- ddpoint make_lt_lists set_tile_xline_pt1 x2! s) E* w3 Y' n7 ~% `
- ddray mdashlist set_tile_xline_pt2 x3& u/ w+ M- `6 p5 a, C4 n) P
- ddregion minrad setcolor x42 x c: x8 H: T& @7 @
- ddshape modify_3dface shght xdlist
" R5 @ j3 d- q0 u$ X' ` - ddsolid modify_3dsolid showpt xline_pt1
& n) { o: T+ S$ A0 F3 s - ddspline modify_arc size xline_pt2
5 l) v0 K5 e1 e7 q `# k7 P - ddtext modify_block slist xline_x12 {, |: U8 n* V; B' c/ e8 ?; R! l
- ddvport modify_body sname xline_x2( s' C2 t. `" F& A2 @0 D' m% l* j. z
- ddxline modify_circle sortlist xline_y1
5 W |7 p/ j0 P - denom modify_ellipse spltype xline_y2, J$ C" _0 e: W
- dialog-state modify_image ss xline_z1
+ I) v# F' e" z9 C- A) J - dir_pt modify_line st_ang xline_z2% G- w6 ^) v0 ^
- dir_ptx modify_mline stpt xscale( ~) S) d9 `# |! u; N7 C
- dir_pty modify_mtext style_act xx
# R( ? t. _, n3 R - dir_ptz modify_point style-idx y
# b8 ?# m5 ^7 U* U+ k - dismiss_dialog modify_polyline style-list y19 U# D: f6 V' ^ u" }2 D
- drawpattern modify_prop_geom tagval y2* c# u5 W" v, q& R. ?
- echo modify_properties temp y33 h4 Q A( O" U. f
- ecolor modify_ray temp_color y4; \% }! q% Y5 ^5 M
- edge1 modify_region temp_dir_x yscale: N0 R j" r! L! M) ]% \$ J
- edge2 modify_shape temp_dir_y yy5 n& r. \: I, |
- edge3 modify_solid temp_dir_z z1& i/ G- f, \- Y' B& O
- edge4 modify_spline temp_xline_pt1 z2- `7 j; K9 d4 ]9 o; B( @- o' {
- edgetest modify_text temp_xline_x1 z3/ I+ e0 \% }# T& `# z3 L
- elayer modify_vport temp_xline_y1 z4
% ~0 x9 a. ?- [, S$ h: W) [ - elist modify_xline temp_xline_z1 zscale! E# F5 D! b9 u
- ell_calc modlist tempend_eang zz+ ~4 s; b- G1 { ~# _* ?$ d
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
1 Z6 i; G s T1 ]: K5 ]1 q3 p - MText_style" `" m6 z5 S( D
- )6 E+ |2 f3 ^) k2 B! Q3 @! \
/ i* S+ {9 s D+ t- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho6 N+ h. C6 S4 z% W1 o. n2 R
- old_error *error* ; save current error function, N0 _- {5 i* @$ b
- *error* ai_error ; new error function' r& Q' W- a& U: m9 I+ P$ D
- )- \! W) X* ]/ v: D! C u# B
8 w) [% a' I" Q3 t9 i- J! Q. ~4 {) M- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
# v+ ^" O0 _; Y6 a% a - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
+ K: B% v i) t# j - (setvar "pickstyle" new_pickstyle) ; bit and set to new value9 D+ @. S; j" M3 R/ Y! C% u
1 D* a2 N& i+ x6 a- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)! g, c2 K' K& u
- (t 1)))
/ K0 H" J9 W) ^0 i/ {# ?: @" @6 Y - (cond) p0 j: z0 e& f7 n u4 s6 a
- ( (not (ai_notrans))) ; Not transparent?
2 m: _3 u) P+ R% E% E' ?6 n - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?; K" H2 r1 z( r C5 Z( E7 D
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
: Z" o# h: j* P) {0 o; k, P - ( (not (setq ename (ddmodify_select)))) ; object to modify?
0 r$ @9 l; v8 ]8 v - 6 w. t) M/ y; ~ c% z
- (t (ai_undo_push)4 b# l4 f/ X" L0 e+ m4 M7 ^/ s
- (ddmodify_init) ; everything okay, proceed.
i2 R2 K! _* l( P - (cond# J; q5 [5 H8 i. z/ O& J6 C
- ((= etype "LEADER")2 W4 S S- B- V* G) `0 i% f
- (setq help_entry "modify_Leader_dialog")
$ W$ L- ` N0 | - (ddleader)- q8 ~' l( x- o+ N G9 I
- )
- r- Z, ^, Y) V; I+ ]2 z: J2 x5 b - ((= etype "ARC")
) w9 O% G3 N3 R3 o* p - (setq help_entry "modify_Arc_dialog")$ r# A x* n$ L$ ^* A
- (ddarc)
K) {" M U4 t - )8 G `9 E1 H3 z: t
- ((= etype "ATTDEF")
# b( `' T! g) s v2 M - (setq help_entry "modify_Attribute_Definition_dialog")% M# v3 l$ a+ m) F
- (ddtext)' u- E8 w5 O+ w, l) ?
- )- p+ ]$ Q( S( z v9 P1 B
- ((= etype "CIRCLE")6 p9 n a$ A1 s# H
- (setq help_entry "modify_Circle_dialog")0 l: m( z" w& t# i' U
- (ddcircle)* N' x( U) {" L3 C! [
- ) N$ h# z: m7 k# b) q+ ?
- ((= etype "ELLIPSE")
" @# h% u2 y9 O& q, j# e - (setq help_entry "modify_Ellipse_dialog")8 m( A& I# U' @' }2 ~ N% `
- (ddellipse)6 L# f" y2 L$ @+ r% Z
- ), V5 E& [! l" a" V( B. b
- ((= etype "3DSOLID"): I$ ?. g5 v- v& s, T
- (setq help_entry "modify_3d_Solid_dialog")/ p( s4 x# z/ `1 O* }" i
- (dd3dsolid)+ [/ {, ^: W/ }" l" h5 r- ]- f, q- N7 j
- )- l( \! W& b9 `: x+ V9 {% u/ B
- ((= etype "BODY")% ^: z& c. K' {# s. k
- (setq help_entry "modify_Body_dialog")6 _( X& H( U8 V3 w4 E+ R) |
- (ddbody)3 a4 _8 ~1 W5 [1 i+ S9 s) k
- )
( k; A6 g6 a9 ]' M! _: \ - ((= etype "REGION")
/ s4 d6 ?5 _( c" T. m. N& x& N - (setq help_entry "modify_Region_dialog")
' j! A3 j( q4 G# k0 _! M) _6 D - (ddregion)
/ x# L0 i2 w C5 \& F) D; C - )
1 W* _; W0 K7 ?9 R; Z - ((= etype "HATCH")3 M6 V" a1 n6 B4 ?4 I
- (setq help_entry "modify_Hatch_dialog")
3 K3 \# ]) ^, q9 x/ k - (ddnewhatch)
$ T5 T# ~7 O& q9 k" `5 n - )
7 `/ j7 y6 ]8 p: d6 G - ((= etype "SPLINE")
0 f0 h/ o% ^2 o) h- v3 b - (setq help_entry "modify_Spline_dialog")$ L4 ]# P6 ]; F+ t/ R3 T3 ]: o
- (ddspline)
# u, W4 ]* |9 G( L7 {4 L9 R- [; v) i1 S - )
. |7 X" G8 X% B$ t% V - ((= etype "INSERT") ; see ddblock for help_entry! G% E; s L7 t9 U! D5 U& A
- (ddblock)) p/ T0 }# H* R6 L' C: l2 b
- )
/ D" L# v( }. q- O+ f# v) b- T - ((= etype "LINE")3 {7 O, S4 U' E6 F1 N
- (setq help_entry "modify_Line_dialog")
1 X, C" h& q6 q$ P$ K/ a - (ddline)
9 Y4 A# ^7 v* v. c; ? - )
7 B1 C+ `4 ?3 }: g - ((= etype "MLINE")* _! E" b5 }7 j) M) [8 z; h& {0 {
- (setq help_entry "modify_multiLine_dialog"). R( a8 k- J1 R
- (ddmline)) q1 j7 z* ]' i: J+ ?
- )2 ~+ o# r+ C9 ^ k5 D
- ((= etype "RAY")
' y; g& m6 v* A K4 r8 s - (setq help_entry "modify_Ray_dialog")
" g6 ?2 ~6 Q k- w - (ddxline)6 Z$ B7 o0 R' D9 O
- )8 g7 l: {/ D1 h4 q1 Y6 W$ U5 ~9 u
- ((= etype "XLINE")3 ~; u2 C1 K! J2 ^- k' x
- (setq help_entry "modify_Xline_dialog")
( B* Z& s- F- P4 W; z7 F - (ddxline), T& I6 q5 P( O2 _
- ), H* w- [1 J) Z( j2 ]9 o/ h
- ((= etype "POINT")
: Q% [* P+ T" t" c - (setq help_entry "modify_Point_dialog")4 D5 ~5 k! I: v% y3 L& U! D
- (ddpoint)4 `9 e7 F% o4 d' e6 g3 P' ]
- )7 u9 v, j% }5 J( D
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))7 |9 { v/ A! R
- (setq help_entry "modify_Polyline_dialog")
' O9 Y) y# ~1 t7 r* f2 n2 x - ;; If a 2D pline, check to see if it is planar to the current
5 y' F5 O/ f& ~$ B$ P1 P - ;; UCS, reject if not. To see if the pline is parallel,7 [$ w9 W& ~- i M/ O" K
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)
. ~1 O! F6 A3 Z' t R$ R, z6 l* N- Q - ;; and then converted to the current UCS and checked to see if
4 ^& }+ G M1 c3 ?& p% } - ;; it is equal to (0,0,1).
" b6 a: ^, m4 z - ' H+ }, t" \# N% r7 d, r9 ~5 x
- ;; Incase the 210 is default and not in the dxf list.
, O/ q J Z) `, y9 w - (if (= (assoc 210 (entget ename)) nil)8 Y) S/ m$ Q7 v1 A7 O$ W
- (ddpline)
" q4 M0 f- p! I7 ]" o - (progn0 X" ^$ G( @" {8 H$ p- g
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename))))), x( T. f$ Z& C
- (not (equal '(0.0 0.0 1.0)# S9 m+ x; X- _& s" w* \% ~# c: ^( j
- (trans (mapcar '+
# n; S5 n& r# j - (cdr (assoc 210 (entget ename))); \+ \1 [ w* H8 Q- d/ ~
- (trans '(0.0 0.0 0.0) 1 0)* V( K& ^6 {6 S+ ]' U* q) C8 G
- )
4 i' t8 X8 j9 r- {$ }2 R, i5 M& d - 0 1
R) | m4 Y0 S$ q" `# h: G- Q - ); q0 N5 y9 m* P$ }' J
- 0.0000000001 ; fuzz
4 v5 @5 x k0 q% }4 S3 ~ - )
@2 k: V: V. ?, ?! P# g+ H# I - )
3 Q' p/ T0 i; O5 _ - )
a Z# }% }' Y, u; ` - (princ "\nThe 2D Polyline is not parallel to the current UCS.")
3 O) D6 r) g+ g* U1 c - (ddpline)
5 `& ]: y) [) o* ?! r2 L; _7 m4 Q - )# S3 w9 B: s9 j+ ~6 l9 z# I6 u! ~
- )
4 O1 _0 a! K2 X9 {8 c0 J5 F% e - )$ W" K2 f5 M+ A% P- R8 W
- )
# e3 i, z8 \0 r" j - " I9 D9 b, d# n. b0 F: F
- ((= etype "SHAPE")% c4 v/ u0 U/ U5 W4 I
- (setq help_entry "modify_Shape_dialog")4 X+ `2 d8 c, e( l- p3 d O
- (ddshape)2 ~1 H& F# v% O' Q
- )! i* H- Q0 s) N% H; ]
- ((= etype "SOLID")* q2 Z- \' q+ C
- (setq help_entry "modify_Solid_dialog")/ `$ K/ P% b7 r4 o$ K
- (ddsolid)% ~# f$ Q/ N2 w$ ]
- )8 D( a8 l+ _0 y( J! ^$ P
- ((= etype "TEXT")
! b2 B- k, a F! u - (setq help_entry "modify_Text_dialog")
2 t( {7 r2 y8 o& K0 `. J2 e# X& R - (ddtext)
8 Q' G4 l- p/ U/ k - )
% g9 \) Q+ S, S! V& b - ((= etype "MTEXT")" q1 d- K0 i! m( j3 t' B: _
- (setq help_entry "modify_MText_dialog")7 ^( K+ ~7 E- Z" M. I( D
- (ddmtext)
+ ?8 f* O+ O1 z9 I8 o, B( W8 U - )
6 c; x/ z' ]" u9 T; \ - ((= etype "TRACE")
+ f9 i; L4 r% g- w. W% ]) } D7 A2 Q - (setq help_entry "modify_Trace_dialog"). d6 R) F# f& C1 R0 S3 U9 Y
- (ddsolid)* g" O7 n0 T! c* g
- )
. s5 J* l, Z M4 p' l6 ]; E- ~ - ((= etype "VIEWPORT")
2 S; Y6 T3 }2 e4 q. D2 K - (setq help_entry "modify_Viewport_dialog")" y' Y9 n1 N& F' S% v/ z
- (ddvport)- s( _, ^+ M" t0 Y- z
- )
: T F8 O, e- x" ~, z - ((= etype "IMAGE")8 v4 ?+ i" p- E' m' _ r- C
- (setq help_entry "modify_Image_dialog"). P& {8 w! r% T* ~$ O0 Q
- (ddimage) y8 u- _# b. h! q P( H* G7 n
- ): Z! b2 C; C7 ~+ r5 G0 P0 @
- ((= etype "3DFACE")
0 {9 q+ s. y- T - (setq help_entry "modify_3D_Face_dialog")( { w) L5 I9 V1 y2 {- F% l; B
- (dd3dface)
) d; _' t( E! h2 l - )
3 E7 _ a" F2 l! {$ L, I& i - ((= etype "DIMENSION")
% b7 x( m( i# |6 Q4 ?" |; }1 f8 t. ] - (setq help_entry "modify_Dimension_dialog")
% T3 S4 R2 f% [. F - (ddimen)9 j3 G; I& Y: V% G; D- |. _
- )% n- ]6 F P# {8 R- h
- ((= etype "TOLERANCE")
: w4 O2 {9 ^& r" w5 N4 @ - (setq help_entry "modify_Tolerance_dialog")
- a! _, M0 ^. j" u( U - (ddtolerance)) h, B0 S6 u% d' z, w! D8 A/ E8 |
- )0 C Y, N% y: y3 b
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.9 \: n5 @5 |( ^
- ;; This allows DDMODIFY to work on any custom object or any new object type/ ?2 k* ^% o$ M
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.( z0 F9 a4 h9 H1 K
- (t4 k" N5 r+ }6 U. y) ?
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
. c8 s, f2 e+ Z; z - (princ (strcat "No dialog support for object type: " etype ".")))4 _) z/ J% T. T* H$ z8 |7 G' w
- (progn
3 [" K ?2 a2 A! g# a9 K - (setq tempss (ssadd ename))+ {+ r, L+ Y: p" k/ H: g
- (ddchprop tempss)
9 a7 c7 E; |9 D; e9 R) y. q5 a+ b# B - (setq tempss nil)
7 P+ I9 J! b. C3 w8 j- a+ W - )& |) j8 X3 [ ]3 m9 f
- )) ^1 V! a; l, }7 p- A% d1 l% P
- )
. e) ]/ p: s0 u {5 v" H* g - ;; Previous fall-through condition.6 }( k; Q/ z" z/ u
- ;; (t (princ (strcat "No dialog support for object type: "
6 u. J5 Y( q9 G( J3 g/ K- q h - ;; etype "."
; v, s% ]% y& ]$ ?- \6 H* g. D - ;; )
9 ?3 |6 s7 }9 f( m7 o. t - ;; )
0 P7 M0 h; I+ q" `% m! I# I - ;; )
: N x/ a* g# n# L - ;; )4 f) {7 u5 j1 P& b7 v9 t
- (ai_undo_pop)
& A# {( S* _9 m - ): N9 `* [/ O/ i7 H1 ]
- )
4 O1 w; \, X; l5 R, L7 w* n; E
9 D& W- ?$ _# r4 u, n& q- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle- R/ I9 k# F1 K) S
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back: @% q( G, a/ a3 E" P$ `8 ?. K
- ) ; to what we started with
+ x. _, a9 t4 _0 B- U) n6 n
# Q' G1 Q: d( G# T9 F7 Y+ W8 \* h- (setq *error* old_error)
" s, F. ]' B+ ?& D$ {0 s% Y8 ^ - (setvar "cmdecho" old_cmd)
3 ]) @& ^. R' | - (if (not reset_flag) ; if object was modified, then
; s2 ^5 _2 ^( c) r0 U8 K' g - (ai_return ename) ; return it's ename to caller( K$ t3 A* I1 I4 S; e9 P* Z- H
- )
+ V8 E( M8 z* F4 f) Q+ l$ h - )& f$ {( C- y2 X! o9 f
$ r5 Y$ I* J) { |* ~7 [- (defun checkForLockedLayer (ename)
9 Y5 @4 N) n7 u# }, g - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
- v/ @# h, k4 Z0 P/ {; w - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
/ L4 y& J) z- Q - (if (= layerflag 4)
6 Z4 B% T1 p" j; `! C( o - T
; m7 E2 s. ?, C - nil
4 a& U, L; T: r& f; ^. i; A - )
( ~' }) j0 m [8 [ - ). R! y$ e, ^0 i# {
- $ l5 s& z- Y0 Y: Q9 c1 U8 Z0 b7 L& l4 F
- (princ " DDMODIFY loaded. ")
- `( k3 V! [7 M" f( R2 T - (princ)
# c* a; o4 J. h: ]2 w, o7 u1 \# h - ;;;???;;;---------------------------------------------------------------------------------------7 V9 E* v. ^* C% a) [$ T
) |2 k0 a. c. c3 m# B- ; Next available MSG number is 8 ( b8 B3 }2 f) y
- ; MODULE_ID DDUCSP_LSP_
( G" z2 `8 l b' l W% n( Z/ b - ;;;
& K) _; R6 ^% p! N+ I0 ? - ;;; dducsp.lsp) ^6 K2 T- S2 ]' d7 I9 b
- ;;;+ H" `6 C$ B. N* T
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
3 _# ?. z p6 N& h- m - ;;;4 o$ G+ @8 ^& r( [* k* ~
- ;;; Permission to use, copy, modify, and distribute this software7 G3 h. p* k, k) K4 X, T) }, v
- ;;; for any purpose and without fee is hereby granted, provided
8 g6 ]$ K1 }8 M - ;;; that the above copyright notice appears in all copies and+ J$ W$ q% C, m
- ;;; that both that copyright notice and the limited warranty and2 j ]2 B2 W' J5 S) h
- ;;; restricted rights notice below appear in all supporting. [. ^$ j$ _7 s
- ;;; documentation.
# [& }5 U9 e) ~0 N! g) G$ G, G - ;;;
* j2 h$ |* `! O, S% A - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
5 q3 ~6 m0 j; Z - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF/ X7 H' N& H! p7 x2 b) {7 S5 s
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.$ F* V/ i4 c1 C! V: b+ R
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
: G" S+ k0 s8 `9 r9 K4 _/ u B - ;;; UNINTERRUPTED OR ERROR FREE.2 W! ?4 _6 J4 I. M" e! t s$ t
- ;;;
0 ]& k& U9 g, D7 T8 K# s - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 E. P3 w. y, Y3 J' V6 m - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer( |5 {/ Z+ b" ^5 t' p, {/ l
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) {3 M3 E. F* a; S5 d$ U
- ;;; (Rights in Technical Data and Computer Software), as applicable.
$ n; \% M* z5 x+ D* j) A; M - ;;;. q4 ]( p$ _8 L; C0 O6 \; W
- ;;;.
* ^$ K( l) F8 X - ;;; C:DDUCSP - User Coordinate System presets dialogue. ^# W2 {" E2 e9 }7 u2 i6 F
- ;;; & F: R; x/ a$ G1 s5 E
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
9 n9 Z% A! D4 b+ K( ]4 G - ;;; slide images are in ACAD.SLB.5 }" J) e. K$ F% Y, x; V& K7 t% V
- ;;;
: q9 d% M n% r4 w# y - ;;; ===========================================================================1 S2 m( A4 h0 d1 |
- ;;; ===================== load-time error checking ============================: ]% [5 o' E `" t/ L
- ;;;/ B5 T+ ^2 c' A8 j l" }
- 5 E" P/ U# B( P' R0 v; R5 ?0 [
- (defun ai_abort (app msg)% I) A" V9 M* q/ L1 d, a9 W* o
- (defun *error* (s)
( \* g7 t6 P {; |- F, v - (if old_error (setq *error* old_error))
1 }" |) c* \0 V8 ` - (princ)( j8 B8 _+ W' e, q' w
- ), ^' U: U( t6 @
- (if msg2 ?/ Q4 Q1 E. O1 @
- (alert (strcat " Application error: "' a$ }7 L( ~3 s" I" ~
- app
8 n* \; `9 \8 w% T - " \n\n "3 F9 N% T8 \. s9 m0 t6 M
- msg$ d" i9 v- [0 B2 a! m6 h4 C
- " \n"
@/ o) N2 V u# f- w - ); j4 ?/ Y( {- q' C2 a3 K/ R9 B# }
- )
# ^' ?6 Z; k% ^& h* A9 C5 w& { - )' T; G2 M$ q* L2 l1 R j
- (exit)
# n' A& }' i2 D; p0 b, H" b - )
/ {* D" m) R* L+ {5 H
- Z6 a+ j4 ^- N% l* E3 j* C- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
; u7 U8 [& G; I3 u$ n' a - ;;; and then try to load it.
: v, ]* g2 X, @% b4 Z - ;;;. [* u; l& g- y* D- _7 P
- ;;; If it can't be found or it can't be loaded, then abort the
! s% r% E. i* M4 Y# i$ k6 G$ d - ;;; loading of this file immediately, preserving the (autoload)+ P' K1 G5 e, P' `* N
- ;;; stub function.
. O7 y3 g9 r1 n* u, w" O - {" ~' v! `! s' t: p+ h
- (cond
( @, v* t" e- T- ]5 x) y0 z - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.: g& D! O& N3 R4 Z0 e
- 3 O0 }; X* K! U- B8 i2 ~
- ( (not (findfile "ai_utils.lsp")) ; find it
, z% C! b; W* a! H3 Y - (ai_abort "DDUCSP"- [7 i4 {3 r, i
- (strcat "Can't locate file AI_UTILS.LSP."
7 l6 N9 c6 b# X$ j6 l+ b - "\n Check support directory.")))
5 O: l6 D, H1 h7 Z, _. A3 y v1 r - . `( V3 c1 H' V" J! m( z8 T
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
. M: ~ m! H5 y9 U - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))6 m/ |- p! t5 `/ y
- )+ F* K: M2 n" j- r+ D) d; D7 r
- 6 I# A$ y$ G; Q) U$ p) G/ ^3 B8 h
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
7 g6 v$ h1 }2 M9 z1 ] - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
& m# P% ?4 O' H+ A* O4 Y - ) ; ai_abort's alert box dialog.
4 b: ]1 I8 E1 X1 d: z* Z1 Z6 a
9 ]8 m/ [ D. \2 w- ;;; ==================== end load-time operations ===========================
( ]- f, `; f5 O/ d3 V7 ]
9 ?& d! r3 ~" Q+ `- (defun ai_ucsp_start ( / program)
9 b, ^6 r* \% S2 l" | - ;; Get program name; g6 @$ e* l) f4 `3 I5 \& Z% ?
- (if (not (setq program (getvar "program")))6 U3 |; W- k' R4 |3 u5 a. w+ s
- (setq program "acad")
3 R c0 x* O& r3 Z% _$ g+ T5 N - )! J0 w, Y3 \3 N1 t. b& W) M
- (foreach v0 '("world" "left" "cview" "top" "front"
7 u5 b! ?. E( ]( x - "bottom" "back" "right" "prev")6 V- f6 j7 J2 T1 A' a
- (start_image (strcat "ucsp_" v0))4 f/ B6 x. K4 q% P( Q
- (slide_image
, \2 \+ h" Y, L! U; t0 A - 0 0, L! d; f. t! W. u4 ^. [
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)% D: h, Q% h4 G0 b( A
- (strcat program "(u-" v0 ")")* w! }( \! P' p4 P: Y1 B9 F7 D
- ). x: m; k: w1 O2 x! q+ d8 i
- (end_image)3 n$ {- A. \3 T. B8 ]$ H3 P
- )
9 h- V0 j1 u, F& B; N/ T; J; b( N% I - ). n9 k4 a2 d7 ?. U Z" W( ]7 d; H* z
- / n; [6 C; s8 e
- (defun ai_ucsp_set ()
* G; v$ m7 D0 M |/ D7 x - (if ai_ucsp_sv4 b8 I; I9 t4 i7 f4 Y H
- (command "_.UCS" "_V")6 s- q& Z0 ~( L( k1 N/ H! F" p
- (if ai_ucsp_prevs6 n5 ?- |1 M; h4 Q
- (command "_.UCS" "_P")
' ^6 \) [6 N# w8 A0 ?( d' ` - (if ai_ucsp_chg
7 f4 E j3 I8 r s" i9 s2 v9 \ - (progn0 B: i* T" L, q8 b- Z& c2 o
- (if (/= ai_ucsp_a "*")
4 W: C) M; \$ S) ^ - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))% }0 M1 S% n' T9 _$ D+ ]
- )3 e: u" e- [4 O& C- B1 {9 x# R
- (if (< ai_ucsp_pick 6)
" u+ F% P2 s; P - (setq ai_ucsp_set0 "@")
9 |2 p, s- F+ U - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")) H, x8 P1 s1 u0 u# p0 g: n
- )
( a3 }* A7 ^4 |/ e! i! G' D - (cond ((= ai_ucsp_pick 0)* u% M: V' U) y$ R7 |/ e
- (setq ai_ucsp_set1 "0,-1,0"+ O9 i f& ?! D& y/ T
- ai_ucsp_set2 "0,0,1"
" @& S, x! {$ p' S/ h - )
2 _% \2 U1 n3 l( w. x - )
1 s `. N# J9 O: |7 v - ((= ai_ucsp_pick 2)
- z' H- W* d1 [ _ M/ q* X6 x5 u* R3 ? - (setq ai_ucsp_set1 "1,0,0"
: ^" D! y( J+ ]+ N( u, c# S9 C - ai_ucsp_set2 "0,0,1"5 m/ j+ t: w5 F4 P
- )
; l8 i s! _5 A. {7 [2 K2 e4 w* g - )
7 m' D$ D# _) r A# N* N, h( n - ((= ai_ucsp_pick 3)5 q% O4 G! ~$ U, ~4 o# F& q
- (setq ai_ucsp_set1 "1,0,0"
! X( H0 }/ W% b# X9 L6 H c - ai_ucsp_set2 "0,-1,0"4 ~ h; t, B& H4 F; j) B
- )' M: `6 P! F( R; f; m6 a
- ); ]' i8 f0 }) u
- ((= ai_ucsp_pick 4)
) H9 Y+ V' D: s% |8 t/ y0 s2 b2 }/ d- g - (setq ai_ucsp_set1 "-1,0,0"
" b9 m5 g* j+ ]0 ~, W9 a - ai_ucsp_set2 "0,0,1". h% t9 h; ~* P w* U
- )1 C: F$ S3 `2 Y5 x& U+ t, ~; Z
- )
! A* Y& ?" a+ k - ((= ai_ucsp_pick 5)( S# r. j6 ~7 w* c- M
- (setq ai_ucsp_set1 "0,1,0"
% @% b; B4 w7 b5 |; X, q" t - ai_ucsp_set2 "0,0,1"
3 o: s: B4 Z' K; ?7 H. G2 a( ~ - )$ ?, e& g0 @9 a! ~
- )+ }$ C: D5 V7 ~& G x
- (T
: R O5 a; m8 N: o - (setq ai_ucsp_set1 "1,0,0". _1 B, e& W" m6 |, g
- ai_ucsp_set2 "0,1,0"! N) W8 Z/ T8 w7 j+ F3 D: }; ]) k
- )
_% `. m2 B# H8 P; O0 O4 o - )% p6 @$ w. U; {; e" S: h7 A: `& v
- )! m# T( `5 g* z1 T. h6 k
- (command "_.UCS" "_3P" ai_ucsp_set0 & N% T+ N! m' Q! z3 q: m
- (strcat ai_ucsp_a ai_ucsp_set1) 4 q9 `. F A- C2 ^- T
- (strcat ai_ucsp_a ai_ucsp_set2)( g, J# O2 T0 c: y/ E" D) O7 E5 f, P3 M
- ) ( a6 I! \* p) w
- )
. a9 `+ P4 u E# m - )
" z: p1 X5 A" X7 `. E+ D, p6 U - )
' k: f* P2 @# b4 t3 R8 n - )! {0 Z# B+ t2 y& m
- )
* s8 z+ t1 J f1 t0 _6 i( x
, K% f9 R2 D( e* j) ~; g( S8 [- (defun ai_ucsp_p (val currtile)8 [* U& {7 x5 ~6 _; A
- (mode_tile ai_ucsp_currtile 4)
# l2 [% ^; Z5 K- A7 V - (setq ai_ucsp_pick val
- h O$ W1 `' j - ai_ucsp_sv nil; m r3 Y# B/ k. w/ }
- ai_ucsp_currtile currtile
- v, e% \9 d1 r; w - )6 H& W: A$ [9 n# H# R; \7 T+ B# D
- (if (/= val 1)
4 \9 ^! g* X( a' q2 q - (setq ai_ucsp_chg T)+ \8 F" Y; L: L
- ) ^5 j4 R7 r- _
- (mode_tile ai_ucsp_currtile 4)5 ^4 `3 k" w# E
- )
i5 \' {9 V6 ~# ]
( C1 f: Y& U* G1 N; w- (defun ai_ucsp_swcs ()) Q' A$ q9 l3 ~. }$ G
- (mode_tile ai_ucsp_currtile 4)
! ~( g L* x- T# B) ~, a - (set_tile "ucsp_a_wcs" "1")5 Z7 o. S4 N0 u- d
- (setq ai_ucsp_pick 6' P. a7 y8 ]9 @3 }* b/ t( f
- ai_ucsp_sv nil
$ i& e4 V: Q: i( D2 D - ai_ucsp_currtile "ucsp_world"
3 v8 p: W f, ~$ `2 x: d% A - )
- v) `# J0 j# m1 L - (if (/= 1 (getvar "WORLDUCS"))
7 l' f( X- t1 O1 f/ M - (setq ai_ucsp_chg T)
) T+ f+ L$ l+ b, P4 q! J2 ? - (setq ai_ucsp_chg nil)
. d5 a* O% q( ?2 ]2 ^ - )4 J, C1 R- d5 g
- (mode_tile ai_ucsp_currtile 4)$ j5 G- O0 U! k
- )
& `! `8 ~5 l T
" A; s3 R1 f; i: n- (defun ai_ucsp_cview ()5 w3 a, @2 _: ]& Y, f/ G5 u
- (mode_tile ai_ucsp_currtile 4)
/ p+ \1 s3 a8 ~8 _! I; c8 [ - (setq ai_ucsp_sv T
) Z6 @+ v% [- k0 R7 M7 d! Y - ai_ucsp_chg nil$ R* X+ I( z- l3 s1 K0 s+ i
- ai_ucsp_currtile "ucsp_cview"
+ K. s U0 r: u9 }/ Z" w# f+ U - )
& u& ~* O8 U0 p: V& U, | - (set_tile "ucsp_a_wcs" "1")/ }$ ~3 O2 M6 S6 Z# {
- (mode_tile ai_ucsp_currtile 4)
0 c1 w- h, K5 S: K6 ~/ ~. m; a5 F - )
8 f5 Z$ a& g# Q
% ?$ Z1 Z# O, ~& {& v- (defun ai_ucsp_rucs (typ)! k5 w) z w/ Z& }4 T
- (setq ai_ucsp_a typ)
; N* W: U, ]7 _' D) q7 [ - (mode_tile ai_ucsp_currtile 2)0 g" D4 P) f# V+ ~' }
- )# H$ X& Z2 [7 A5 F% R7 n7 G% I$ Y
. s9 @# L. L! t, ^ _* e0 n+ |- (defun ai_ucsp_prev ()
+ H+ A; O4 D! Q& \ - (mode_tile ai_ucsp_currtile 4)
( a0 }2 f/ s8 Z9 i& | - (setq ai_ucsp_prevs T
0 r4 ?5 M9 Y% Q# x - ai_ucsp_currtile "ucsp_prev"' S2 r$ F- t* F/ |# L* C$ s
- )
" h! }3 Z' ]2 Z/ Y- X9 C0 P - (mode_tile ai_ucsp_currtile 4)" r0 e; i! V6 s/ T
- )
% D" A" @# M- P - 7 M* Z+ i/ E; R2 a8 w/ w
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
) u6 v1 O( v/ u, k; F - (if (not (new_dialog "dducsp" dcl_id))
. j9 F& ~8 v& g9 ?5 k' f- F* S, a - (exit)
! v6 S/ l6 M" K! p W2 T% { - )
, I. h l4 o- L8 c9 L - 9 N4 P+ `8 X% C1 g; @" v6 r
- (ai_ucsp_start)
! _4 |; s# m* n3 o, a - (setq ai_ucsp_a "@"
- t( Z3 D G% T% a, q1 z - ai_ucsp_pick 2
$ K0 ]1 w9 z' r) a9 h - ai_ucsp_currtile "ucsp_top"
% S; H; E" P; R+ X. Q8 J+ v - )
6 s+ G" E2 J' y, E, V, V3 Z { - (if (= 1 (getvar "WORLDUCS"))
9 E% P1 K/ D6 V5 ~4 }2 U p - (progn
6 L) y" _4 e; \: j - (set_tile "ucsp_a_wcs" "1")( @) H. [; B2 i! a& G$ h
- (setq ai_ucsp_currtile "ucsp_world")
6 f; {. M) L; L% Z! ]' W - )
1 `! K2 r9 J! ]# \" E' k2 g0 q - (set_tile "ucsp_r_ucs" "1")0 n' r: f) F' R8 c) h* h/ t
- )
# A% B! t! t K1 H) a+ x6 X - (mode_tile ai_ucsp_currtile 2)
& S J' F7 E' H; R! u; L5 u( L3 d. f. X - (mode_tile ai_ucsp_currtile 4)
# ^& k' L1 j- i2 g. N+ P - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
3 B) N0 R0 ?2 U - (action_tile "ucsp_cview" "(ai_ucsp_cview)")
3 S, u0 w+ U- v6 \- K" O4 k - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
: N1 `+ ^3 |' v, i5 G% Q) r - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")2 t$ @% v K! ~ h4 R9 u G1 o. m
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
5 s$ P4 I: s3 F& Y9 F! { - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
$ i& z7 X6 ]; `# {' T. I - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
5 [, @& l* I$ E: ?7 w6 |2 Y4 e" u - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
3 C+ n9 P% T; K+ j! c# K5 k' T - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
" e( s1 S' W s$ ^, d2 H5 o - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")& I r$ n i* x
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
5 M2 o) Y/ Y4 C# K$ W - (action_tile "accept" "(done_dialog 1)")& t1 H& U9 \, [1 l7 P
- (action_tile "cancel" "(done_dialog 0)")
, ` V. K3 j0 y8 J - (action_tile "help" "(help \"\" \"DDUCSP\")")3 q. h3 r/ Y3 D
- (if (= (start_dialog) 1)6 ?) D# g7 D. \3 C3 w
- (ai_ucsp_set)
3 |7 W+ J9 R t6 o - )$ _( I/ X1 G2 i- d9 o3 {, T
- )2 n+ {8 Q$ l% L6 G7 h# b7 Y ^
3 n1 O: E3 }$ E$ Y; N: @- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs ! _4 B& k0 D# g: _1 {
- ai_ucsp_sw undo_init)
; T4 K, g" }8 f: A& B9 _ - " W3 \+ R% q* e) E) g8 H: \0 Z
- ;; Set up error function.
& f3 a5 @+ f; l3 {" A% F - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho8 }/ c" F u2 r$ p: l9 Q5 Y
- old_error *error* ; save current error function
( V! N6 h, x" V( y - *error* ai_error ; new error function
5 V6 \0 ^6 i9 Y4 k - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
; t2 m- h$ L- ~7 M4 j - )
3 P3 U4 N; n+ e, q2 H- d ` - . }8 L5 o; B& e/ {/ i# [
- (setvar "CMDECHO" 0)
+ y% [: a, k% W- x; V1 R- g
$ I0 U; B- }8 w: C- (cond1 e7 q2 K1 ~& ~9 ~
- ( (not (ai_notrans))) ; transparent not OK
) U- n) [' L# w, k - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
# q3 \( w3 M2 w2 r- r- {' I" i9 K" Y. ` - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?( K" M0 x$ g& N) j+ L; l
- (T (ai_undo_push)
: O; u) T. i$ h# s) J - (setvar "OSMODE" 0)
8 M' [1 v/ z8 v5 m8 n8 u4 D - (ai_ucsp_main)( u) G9 o( A3 O" @
- (setvar "OSMODE" old_osmode)0 {# L0 a5 ^' z- |: Z
- (ai_undo_pop): [5 Q) v1 O0 Y) d: a* b
- )! w) X1 j) ~- c3 W+ X+ y5 t8 X: O
- )
% A% N9 q0 B3 v8 l6 A0 J, z
0 e& C$ E& Y. Y: Q* e- (setq *error* old_error) M( o' n9 ~# G9 @) o) Z
- (setvar "cmdecho" old_cmd)
) H+ @6 ^! F7 S* _* r% a - * O9 ]& U0 i: }! a
- (princ)# I, P: ?9 ]. e& P2 e
- )
1 P. q) c" B! C) D; q - / Z+ p9 b8 d0 T2 e$ \& m
- (princ " DDUCSP loaded. ")7 H5 v; `+ ?+ x. M
- (princ). w0 O$ Y5 C# Z) C! m; G* z
- 0 L" M8 z( l! U A+ H/ s
- ;;;???;;;---------------------------------------------------------------------------------------# l0 r9 b3 `. Z! r3 { P
3 t% j; O# ]6 p9 t- ;;;----------------------------------------------------------------------------
: K' w0 e% U( }- L - ;;;2 F7 P$ A0 A+ M q" `2 |
- ;;; EXCHPROP.LSP . V; X( Y |; y3 ~: L
- ;;; Polyline and text modification capabilities added by
5 }4 K9 x' Q5 y/ v9 G6 s - ;;; Randy Kintzley
* D' C# x, a% {) Y9 O0 M/ `6 F: f - ;;;
; D7 O9 K. a8 j; r& O7 O. V) y - ;;; Copyright (C) 1997 by Autodesk, Inc.
1 d6 y4 Z3 G0 Y$ b/ g - ;;;5 ]0 E' u% c1 O8 t
- ;;; Permission to use, copy, modify, and distribute this software
0 ^% ~0 r& l8 P, I, { - ;;; for any purpose and without fee is hereby granted, provided
\( V3 l* s/ u6 ^* w - ;;; that the above copyright notice appears in all copies and
$ b% D6 S! K" ^2 n; {4 p+ X - ;;; that both that copyright notice and the limited warranty and
3 n* P: K( w2 _3 y& T - ;;; restricted rights notice below appear in all supporting
- g2 F& n9 T. E& j( l. @* I& | - ;;; documentation.- P5 U5 O) f! w( u
- ;;;
% ~, f( E/ D* m4 B" `$ O7 q - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
, }# i2 O1 }7 o2 q" w! Q - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF: I4 [$ q/ W$ V8 V$ r
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
, c1 f$ L9 A1 N( e+ P - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
3 r# o! c& R9 }8 f& {) K5 }/ X - ;;; UNINTERRUPTED OR ERROR FREE.# x4 @( [- [; w, p8 b
- ;;; @5 }8 w' O6 W- [ p( Y2 j7 A
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
. O8 e9 z2 {- M/ h% k - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
$ b5 _/ A( I. l5 I2 m- f6 e2 M# x - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
- z$ r& P. n' Z: j" P, g! ~ L - ;;; (Rights in Technical Data and Computer Software), as applicable.
/ o/ X1 p- A1 e, Q- T7 |. h - ;;;
) _& ^( Z7 l6 C1 t. Q8 Z2 i8 r - ;;;.
" ~) n+ \4 Y3 ?- m" L8 g - ;;; 28 February 1997 @) ^" |9 {* o
- ;;;7 P' [; Q2 M. D" `* t! s
- ;;;
' g# ^7 B& x4 r. O* ?" ~ - ;;;----------------------------------------------------------------------------( b3 D) h# b3 Z$ K
- ;;; DESCRIPTION2 l1 n" J7 Q$ [; r
- ;;;----------------------------------------------------------------------------
* D+ {- W; W0 O) A1 D0 T8 { - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This 1 X, }6 U% }1 S" ]" b4 F
- ;;; command gives the user the abilitie to change several characteristics
9 K' `, @# w) D9 M1 ]9 R- r - ;;; of selected polyline and text objects.
/ [& N( B8 ^ d$ z3 k0 k2 B& d - ;;; The style and height of selectected text objects can be modified
5 V( ]/ u# k. |& e. H - ;;; (including text, mtext and attribute definitions) as well as, width and
4 x7 [# \3 U$ ~$ F4 S* v - ;;; elevation characteristics of selected polylines (includes lightweight and
- \8 j" \( f' ?7 x3 x3 r5 V7 `5 Z - ;;; traditional polylines.)4 c8 v( Y; E0 G2 M7 ]
- ;;;----------------------------------------------------------------------------
8 u. l4 D: Y+ e! u$ J: { - ;;;----------------------------------------------------------------------------* g& ]( R; w/ z" L2 o
- ;;; Prefixes in command and keyword strings:1 J3 _" B7 ?: C& F- T
- ;;; "." specifies the built-in AutoCAD command in case it has been! N) _5 n" ^7 t: }3 D U- a
- ;;; redefined.5 w' {: S; F- d$ j. {
- ;;; "_" denotes an AutoCAD command or keyword in the native language
4 X+ H- w, i$ z( T - ;;; version, English.
* G5 _# f; U4 Z' o4 P5 A - ;;;----------------------------------------------------------------------------
' [+ @- r- L) o/ g5 ? - ;;;' u, X0 Z% L/ _+ x! Y
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;: R; H& P3 }! g; e8 E
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;* G) @9 h8 C% S: M, ]8 b* w
- ;Functions created as result of loading file: exchprop.lsp
, R1 q. W; }& P' s6 t# Y* C - ; DDCHPROP2+ C4 m* X* S# \
- ; DDCHPROP2_INIT/ C, {. \( u' [5 E
- ; DDCHPROP2_SELECT) H U% h2 r! }& i. g0 o. n8 P
- ;) r4 L }4 ]& a, K6 h7 O
- ;Variables created as result of loading file: exchprop.lsp
7 B! B, G: x4 z& ^5 l - ; OLD_ALLOC8 g" |$ o! p# o* N4 U! w
- ;
* D9 m2 j, p, K" j4 E# U, P" ~ - ;Functions created as a result of executing the commands in: exchprop.lsp
# Q6 H! M, g! d t: f - ;
: L @ S9 O$ @# w6 G8 W- {) v5 q - ;Variables created as a result of executing the commands in: exchprop.lsp" p& h- k# L4 N; u( Z" _8 R
- ; AI_SELTYPE
8 v' z4 S: o0 y - ; BONUS_ALIVE) U3 O- @) J( q0 `1 @
- ; BONUS_OLD_ERROR; y* b" G# k, ~- ?: U. I$ @
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;% f; d9 ^' N" E
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ Q) u- S( R A& ~1 Z
$ E V" N3 m) f7 I4 `4 P1 O- ;;;
$ b# g3 b# \' l8 A9 s, p1 `8 G - ;;; Avoid (gc)s on load to improve load time.
6 ^ o) \- T* u1 m, j! N - ;;;
4 J" u) x6 x# e2 C) s - (defun do_alloc (/ old_allod new_alloc)
/ o# [5 p$ H( D& o: r: S& t" r - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
( G2 Y4 m b. P - (expand (1+ (/ 4750 new_alloc)))9 M* L0 j T1 H, m! k" t7 n8 q
- (alloc old_alloc)
( }: M! [/ ?/ j2 } - );defun
i3 d. h" n. n( ` - , y3 J, T0 k- i! n) F. J4 c
- ;runs at load time - rk
% u. t3 B T: [0 A - (do_alloc)7 Z" p; `% p' T9 R8 G
- (setq do_alloc nil)
& e+ b+ S# m5 p - ;;;% H n, D' }' g5 p+ }* W
- ;;; ===========================================================================
' T0 F5 }2 g1 E: u" @ - ;;; ===================== load-time error checking ============================( S: N! @. o% T' a+ s, w
- ;;;
# e: @4 \- y& ]3 ]# [) N" w2 Y
0 Y2 ~3 x' _/ d; s3 k' X4 ~- (defun ai_abort (app msg)
1 \* L- Q5 a: d7 g# s3 U7 E - (defun *error* (s)
% E# u. Z8 ^) C0 c8 W6 d+ R - (if old_error (setq *error* old_error))
9 F4 ~8 |" `* W; ~! F - (princ)
0 e; N7 k4 \7 Q" n) L& f - );defun* i& ?4 R8 m6 B+ `% F, K
- (if msg
+ i. e0 x! ^; |5 _/ Q' a0 K - (alert (strcat " Application error: "" ~# X2 d, r# ]: e0 ~/ y
- app
% l" H+ P3 q! L% v( ~ - " \n\n "' i$ b s4 h6 v( P o' E
- msg9 _1 D4 `: q a1 i( e- z
- " \n"4 ~# H+ K G5 f' {8 ]
- )
0 [* T9 |& I% V# ]" j0 k& w - );alert) b2 L* f8 U0 I5 v; z8 ^, t& `; N
- );if7 Y4 s8 S- {$ Q5 f9 P3 ~ g
- ;(*error* msg)
" z- r. ]$ o; r! l3 W4 X - (exit)4 v) x3 a; t5 h$ a1 l
- );defun ai_abort
9 m3 k8 i: a( M( w: J0 t2 ?
$ w$ q2 y- `' n* P. X- M+ F" Y C- ;runs at load time - rk) x: ^$ k& T, y! I3 d# Q
- ;(if (and *error* ;added the if wrapper around this - rk.2 u3 ^- I1 [* e U
- ; (not old_error)
$ f& N4 o4 A0 T$ v; F0 n - ; );and
( |+ q, } a, z& d. s - ; (setq old_error *error*);setq: q8 e" U# x. U6 A' R$ b0 ?
- ;);if: N* A& N& }" x: W( b \
( m/ ^* x. w! ^" o- - H/ r3 U* l0 V7 a0 M% s
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
U6 j. v' w P% v0 [ D& n - ;;; and then try to load it.' o% ?% v8 q7 c5 V' ~
- ;;;+ Z# `$ f! D& r
- ;;; If it can't be found or it can't be loaded, then abort the% T% H8 a1 K/ g" V. q v& K0 j0 \
- ;;; loading of this file immediately, preserving the (autoload)
7 ~" j0 [9 X/ f# L" [9 y9 _ - ;;; stub function.
; v& L: e* _, U ]. P$ W* @ - 1 t- n8 e3 g: S) j! a, X0 q) I3 J# ^
- ;runs at load time - rk. p6 i: c& x& N6 [, w" e6 ~
- (cond' H' s) `7 l! m% W& T
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
, N3 `( w0 w0 y& w, U) W( ^ - ( (not (findfile "ai_utils.lsp")) ; find it) e6 ?4 Q* C) z. Q' `5 {
- (ai_abort "EXCHPROP"
" a7 s7 I# F5 H" O) u) a6 F/ ?7 C - (strcat "Can't locate file AI_UTILS.LSP."/ T4 x) [2 k3 x: y! E
- "\n Check support directory.")+ _" g4 B: T" x
- );ai_abort! z& ~+ ^1 E' [0 X9 n
- )3 O' ~5 Y$ G8 O P' A# R, [6 o) @
- ( (eq "failed" (load "ai_utils" "failed")) ; load it- k, W8 G4 a, g" B3 s
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
" O! h$ F5 \' }$ ] - )+ C; f1 R( v7 X$ _) K$ ~7 i
- );cond close
: K8 u- i" ~. j8 |2 j$ l5 k, e0 | - ( b* s8 X- o( t9 [1 u: n- j A: Z
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP1 M: c# O) P% S- I
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses. ?0 n8 N, e( U
- );if ; ai_abort's alert box dialog.
1 O6 _) w' c& k - 7 U& h& \5 r2 a
- ;;; ==================== end load-time operations ===========================2 g% X8 P' P* n5 }5 e
- / N U9 a/ ]9 D4 h t* D0 N
- ;;; Initialize program subroutines and variables.
# i7 z! Z; P9 X- f; ~7 N0 W - $ g' i$ ~- S2 V% Q" U/ \) f. y* g
- (defun ddchprop2_init()) j# k$ }1 g& S
$ H" W( e$ T. O5 I1 e- , p: o0 r9 R7 g0 C
- 3 E, d3 o2 C. l* B# r1 ?* n
- ;;2 Q6 Y4 R6 t5 @5 a3 t. O
- ;; Define buttons and set values in CHPROP dialogue box4 G8 r* T5 x( q$ f3 z0 ^% V8 V
- ;;, _) X& g3 K5 `% M- h
- (defun call_chp2 (/ cmdact p1 p2)7 C6 P: c/ x4 D: I# F2 X2 j# V! a
- r9 S- S, u0 G' [' z5 L+ m
- (if (not (new_dialog "ch_prop" dcl_id))
$ Y1 A9 ? a; g5 m) \ - (exit)
. r/ g0 b0 ^7 P1 [ - ), N( g! f( j6 @. `+ B' R
- 2 B* d* A4 `: p& C6 ^
- (set_tile "error" "")
: d) A% J+ p9 V8 W( r - ;; Set initial dialogue tile values
1 ^4 g$ A/ B+ \& q: I/ w - (set_col_tile)
" f( I3 X/ Z- ], O5 z7 M8 k0 @ - (set_tile "t_layer" elayer)/ {- _8 a C! g
) f' e* K6 O0 y" X- S2 E+ c- (cond
* R3 I- Q5 a9 J | R* A - ((= lt-idx nil)# i7 q, j2 `% U4 b
- (set_tile "t_ltype" "Varies"). N; v7 P# i+ c* w' y* z" E: {
- )
" |2 Q$ |: B& L! A - ((= lt-idx 0) ; set tile "By layer & layer linetype"
; q. _" A6 q2 y* W - (set_tile "t_ltype" (bylayer_lt))! z$ q: r- Y ^" M
- )& r9 I B, B7 @# H/ u" t
- (T& S; T5 F& E( v) l) @# B2 m( E
- (set_tile "t_ltype" (nth lt-idx ltnmlst))% W( V9 h7 K3 `5 N
- )3 {, [ q6 [7 H' x/ Z
- )
9 ?4 f/ i9 t* c) g - ) k' K# z2 C6 n: ?
- (if (or (= ethickness nil)
# i, g. m. J) d4 H: X% U - (= ethickness "")- B9 E* ^0 ~( W/ t# b
- (= ethickness "Varies")
+ W5 S) m$ J$ \/ h% N - );or- b) H, b- o+ f# [" ^ g
- (set_tile "eb_thickness" "")/ _1 L2 v6 u: j, u, c; {
- (set_tile "eb_thickness" (ai_rtos ethickness))
0 i$ g7 Q& O2 d, s - );if V' P4 _* ]2 z j1 m6 b
- (if (or (= eltscale nil)4 D1 n: U, P+ K8 ~4 [# u M; U
- (= eltscale "")+ }$ L" u- [, \3 _; |
- (= eltscale "Varies")
, N2 f! A; b j -
: N# Q3 ^, Z& h4 T) E. Z - )
6 E6 w% p9 I" G ?5 Q' @/ B - (set_tile "eb_ltscale" "")
7 w' W. @( ]0 F @. U1 V9 V! U) ~- g - (set_tile "eb_ltscale" (ai_rtos eltscale))
4 B6 l4 B, M4 x& K/ v& o - )
2 n: s+ Q+ H, F c( n - (if) w" \& s/ A6 I1 [* J% h% _9 E$ D7 z% \
- (numberp ewidth)& `+ g1 @/ `6 t; Y' A
- (set_tile "poly_wid" (ai_rtos ewidth))
3 X A/ i* Q5 u* r X# t: n$ Z9 R - (set_tile "poly_wid" ewidth)
; C4 K4 b9 X" c; {3 m! Z: z - )
( Z' [; ~: }0 i, f - (if
7 f0 ~- m3 n& M9 | - (numberp eelevation)- S& W& K- f3 t2 S" v
- (set_tile "poly_elev" (ai_rtos eelevation))9 h5 Q' L% O/ v! Y/ ]. z. g
- (set_tile "poly_elev" eelevation)' Y) S6 Q* v6 t/ @
- )5 m) N) Y7 {6 d; h+ }; i
- (if1 i4 T# Q$ m# k: ~$ o# d4 o5 s* P( N* e
- (numberp eheight)
! J% l& I! [# o1 s/ X+ T2 u - (set_tile "text_hgt" (ai_rtos eheight))
5 e0 [- |8 _7 Q( L% p! G( y2 _ - (set_tile "text_hgt" eheight)2 U! e4 E8 Z% O
- )+ |* p/ v6 @* D. c- P
- (if (not estyle)+ T+ }; G0 V& n+ z+ ?) S- O
- (setq estyle "")
K3 ]! C6 n G5 g. c" ~- Y& _/ H - );if
' A3 Y/ {4 \! a' B& b, N- @ - (setq hair_style_list (tnlist '("style" 16)));setq
& m3 R" C) F' P1 |; o! b - (if (not (member estyle hair_style_list))
9 v; y: {- w+ f5 S - (setq hair_style_list (append hair_style_list (list estyle)));setq, u+ N5 z/ U) ]8 E7 w" ^# K- m
- );if
" a% |0 f* w* H' N# h, H0 F7 D
' A2 ~) H: _# ~2 X6 Y: R2 ?+ w- (setq hair_style_list (acad_strlsort hair_style_list));setq
- ?& z+ K" M n$ T3 ]- x9 K' m - (mpoplst "text_style" hair_style_list)
# h: q7 N( j- j: A2 u$ ^ - (set_tile "text_style"
. O8 Q' \$ `6 D4 j - (itoa (position estyle hair_style_list))
! m. M, j6 Z7 q' b. |" J - );set_tile - n! j+ {# G$ P7 h; T6 }: z/ T# ~9 n
# |0 ~. |3 a/ G# S- ;; Disable tiles if need be... ;@RK
- k" z5 k9 W3 R; N - (setq a 0) q b1 Y1 L2 w. @- x) ]1 l) {9 k
- (while ( < a (sslength ss))
( W4 I, m N* S: l' E5 B! ` - (setq which_tiles
z J3 i' u' G4 g9 n; G4 p - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
+ d$ M i+ q6 G5 |! s, v - 7 g6 y8 L; q, r7 x
- ;; If all fields are enabled, don't bother checking anymore.
a/ N! F2 X; b9 \ - (if (/= which_tiles (logior 1 2 4 8 16))
! @/ L4 r% c3 a. x1 O. C - (setq a (1+ a))% s9 s) Q% t% @0 u' [6 Q8 o; E
- (setq a (sslength ss))1 `- j7 l; W/ ]" l# Q$ }
- ): L, s& U& f D
- )# G/ S- d5 e7 G4 S
- ;; Layer Button and Text Field+ w, ]8 p% o! U! R1 z& M1 ]- d
- 5 p" k: o. ?1 `- \" V6 t. v
- (if (/= 1 (logand 1 which_tiles))( V/ j% b6 l& f4 j" x8 V o
- (progn
3 V0 u9 v: [+ w2 w& { - (mode_tile "t_layer" 1)
& D0 ~6 x6 L) P2 I7 g F - (mode_tile "b_name" 1)
; F6 T5 w, V) d: g- d - )- P8 {3 b! _/ ~0 p6 _* i
- )
) C8 l) y# t; a$ L* q
& t/ A. Q* P8 f- ;; Color Button and Text Field
B r ?- v' `) [) z* |9 I - (if (/= 2 (logand 2 which_tiles)) Q+ {3 C$ j$ {" o
- (progn
/ ^/ }/ P" M' L C$ h - (mode_tile "t_color" 1)! D: v& e" G8 N- h4 z ^; [+ `6 i
- (mode_tile "b_color" 1)" U6 C3 ^8 v H
- (mode_tile "show_image" 1)
# n- {- B3 i% K& Q% C( D' D+ n - )
5 |. O3 f) X$ o2 m) q* g+ e- o* F - )" f. @+ d+ @5 W! G# D
- ;; Linetype Button and Text Field
# L$ R4 t& G+ E - (if (/= 4 (logand 4 which_tiles))
# V: ]7 c& g; R& A - (progn0 o: N& \9 l+ m; M
- (mode_tile "t_ltype" 1)
. r: L( V' J' R$ c3 p, a) @ - (mode_tile "b_line" 1)4 y- \6 }( T' l* l7 r
- )
% n: V" B$ y& z: a/ a1 K - )8 A7 Y4 [* X# E. q, n, i
- ;; Linetype Scale Edit Field
. B, {& A0 M" F! d8 d7 O - (if (/= 8 (logand 8 which_tiles))9 Y' R8 T* D$ _" n% L, d
- (progn) a# _% D0 x8 T
- (mode_tile "eb_ltscale" 1)
: {9 a3 u6 Q3 G4 v$ }7 z3 p( | - )
5 S1 y2 g% ]1 q - ): Q4 Z( u0 J8 s& R. @
- ;; Thickness Edit Field.* U8 W0 b3 I; M% A( k: K1 F
- (if (/= 16 (logand 16 which_tiles))+ |: P: Z4 x+ y
- (progn5 C+ g" M4 J! L1 E
- (mode_tile "eb_thickness" 1)
. S5 x9 C) S9 d - )
% V; `3 Q) y8 c7 v( I) R9 P* @. g b: r* p - )& F a7 Y2 z2 d- E7 d5 I6 K
- ' Q- g) r2 A# [8 @% r
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
5 V$ R W" g7 j. R' |/ ?/ w - (if (not (= 2 (logand 2 eflag)))
5 }0 l5 N+ r6 p0 U/ b - (progn
) M, H3 w8 u3 _( [ - (mode_tile "text_hgt" 1)& E1 A* H }5 O9 ~) u" f
- (mode_tile "text_style" 1)
P( V+ \# g/ t) T - );progn
5 n' b" c9 n8 P - );if
& {2 S8 E# T7 A - (if (not (= 1 (logand 1 eflag)))" e7 B8 r! [" h9 e5 N9 ]# E: }6 x
- (progn / u7 N. U, a0 h6 K: U& Y6 L
- (mode_tile "poly_wid" 1)7 p) h( o5 B( U1 Y5 h6 Q- p
- (mode_tile "poly_elev" 1)
. X$ y; O5 b( e/ ?5 q1 Q; x - );progn then disable polyline fields- v- P$ e5 G5 A; _
- );if
" |0 l6 l- D; {' m# l - . m, x! Q5 R7 d7 E5 X; ?& R8 B
- ;; Define action for tiles
2 @7 [* M) z/ F( g8 z( X - (action_tile "b_color" "(setq ecolor (getcolor))")
; H' O- v: Y, Y8 G/ u - (action_tile "show_image" "(setq ecolor (getcolor))")
! \3 a( J, ~7 g" y6 U% _1 ^ _. Q - (action_tile "b_name" "(setq elayer (getlayer))")- B1 @$ ~. C; k! u
- (action_tile "b_line" "(setq eltype (getltype))")
" w# }3 f% D3 K& c - (action_tile "eb_ltscale" "(getscale $value)")2 _' I# s' m. j; Q8 [
- (action_tile "eb_thickness" "(getthickness $value)")5 x2 E+ I* ~" ?( c" K3 F; ]8 Q# f
- (action_tile "poly_wid" "(getwidth $value)")! Y' I1 k$ h8 L
- (action_tile "poly_elev" "(getelevation $value)")
: p- J* v. N: c$ H1 x/ V - (action_tile "text_hgt" "(getheight $value)")
3 M8 r. H$ N' m' d - (action_tile "text_style" "(getstyle $value hair_style_list)")
) b( Q, {/ c+ R) v - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
; J% H9 Y( E' N# p. G4 |* { - (action_tile "accept" "(test-main-ok)") _$ u/ _' o2 q) D
- 4 Z, G: D" T8 m- o
- (if (= (start_dialog) 1)- b( [, ~" Y. F( J0 p) H
- (progn' q7 C5 Y8 w: T+ R$ q4 t
- ; Update special properties for polyline and text selection-sets.: f3 J n8 K6 _0 `0 c- ]
-
! Q2 C4 r1 }2 y0 e: \* h0 O: A - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
" u/ h2 {; r* M9 M; h& F% [ - (or ewidth! G! H6 C8 [% M$ G5 V9 o% U. y* x0 C) f
- eelevation F" F! c; F+ ?2 @6 C
- );or/ [+ X1 ]5 u. i
- );and# w& p8 x" q Q' S! _7 J2 i: `
- (progn
0 o1 b! X; o( F) ? - (setq ss-index 0
" Z8 x# M1 o: y1 P) ?6 a7 W( u - ss-length (sslength poly_ss)3 Q, y i9 ?; |4 R# U9 y
- );setq
6 {' i" W0 A! m - (while (< ss-index ss-length)& d2 W9 |' i' @) |
- (setq ename (ssname poly_ss ss-index); c9 }* A2 u* T2 S, ]: l' y* }
- elist (entget ename)+ J4 ^2 _* }3 Q# _& C
- );setq
/ P# N2 @7 c( x* H" \ - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp d4 K: t8 E% |( A) U; H
- (if ewidth 3 N: B7 c! {% i, V5 s
- (command "_.pedit" ename "_W" ewidth "_x")
8 U: ?' K# [& w2 U) V - );if
9 y# P1 p/ a7 D( n2 N8 w - (if eelevation % }9 \+ H. S3 Y7 s, s
- (progn
0 b5 b: Q0 [" Y1 n$ R+ ^- V, h; a( | - (setq p2 (list 0.0 0.0 eelevation));setq
% _! Z: D" K) @- O+ O3 u0 c - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
( N; i l. W# _) U - (setq p1 (list 0.0 0.0
' W: L1 F# I" e: z$ h - (caddr (cdr (assoc 10 elist)))( |) ?& w7 ^& x8 V: h
- );list
; s2 ]* n8 I8 B! g; B2 q. W - );setq' i4 a) c' v& x5 C/ L7 e5 y
- (progn; q# N, E c+ ]; {& Z& X* m0 \
- (if (assoc 38 elist)
: V+ I( s$ H" {+ e' X2 Q - (setq p1 (list 0.0 0.04 Z# X# e1 F9 k% `; \
- (cdr (assoc 38 elist))
! H( c; F* H# b - );list
5 T1 Q0 [; W5 I8 u% y8 r - );setq
6 |" ]& m; _1 O* e2 Q6 G* j! }1 M - (setq p1 '(0.0 0.0 0.0))9 p9 H6 }; G% R/ l) v
- );if
4 F7 J2 j) _& L) [ - );progn ! @( z) l; U3 \
- );if5 U; Q; p) j" Z/ c. W" W
- (command "_.move" ename "" p1 p2)
8 a5 e7 e( W9 b7 t6 Y2 n+ S - );progn then change the elevation of the polyline/ i( U8 w$ B. U8 |0 e' b6 k* N
- );if
) s6 g! ^ z/ k, s# \. d6 ` - (command "_.ucs" "_p")
3 d8 Y" L, k6 G& o$ t - (setq ss-index (1+ ss-index))
1 G( ]& y' {9 Y* O$ Q - );while) Q+ s) O; V8 f* [, z
- );progn then polylines are in the selset$ k+ Q# g# V- F1 m
- );if5 P7 u- e$ a( L% u2 q& X
- (if (and (= 2 (logand 2 eflag)) ; text0 X7 `6 D5 x8 }3 \! e8 [
- (or eheight . C# D0 A4 Z& t5 x
- estyle
$ K1 K, b- B x! g% ?( j" c1 C1 M - );or
/ h% ]% B% G7 m! ^ - );and
' u& n" z% d& K8 P' N) a( N3 | - (progn
) g. u2 G! h# y! b$ N - (setq ss-index 0 ss-length (sslength txt_ss))
. z% V9 M# n0 ^! }9 r; ? - (while& p- L& @, \! L" }
- (< ss-index ss-length)
1 D; {0 t2 M, A! y6 f) i+ Y1 l - (setq elist (entget (setq ename (ssname txt_ss ss-index))))
6 ?9 S& I* Y3 @' F1 T - (if (numberp eheight)
0 m: e' _4 y3 q; r0 t( ^ - (setq elist (subst (cons 40 eheight)9 C+ M2 _! v& h! K/ c* X1 i
- (assoc 40 elist)
! I& f1 x7 p: j - elist/ X! g+ ^3 [6 d0 G, b' c- W
- );subst1 A! |0 e# W! B7 i, J% G
- );setq; B* t+ B1 S8 ~/ s" r
- );if9 `: @5 w4 Z* s" P6 y% n
- (if (and estyle ;(not (equal estyle "")); U$ H7 t s1 Q
- (not (equal estyle (cdr (assoc 7 elist))))
( W. T0 ^& y, h - );and2 p( X6 t' x+ \3 s/ E- P
- (progn , R! z3 k' y Y9 A' b; u
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt # m5 O( \ T' D
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
}6 l9 C$ h4 t8 B - ; (setq elist (fix_mtext_fonts estyle 2 r# s" ^% I# Y: k1 H
- ; elist
$ b1 s" ]/ p t0 a - ; )3 B c |8 n& y
- ; );setq then
3 q# d0 o a8 q0 o - (setq elist (subst (cons 7 estyle) @) ~, G" h# b3 V
- (assoc 7 elist)1 G0 d6 H; S2 P( L6 `+ _0 s: c
- elist
0 Q5 h: I5 I. `$ G - );subst
6 s1 i5 w4 A5 C: ?. [/ ? - );setq else8 c9 ?9 u2 Q% c; A7 E6 M' s; E
- ;);if
$ l5 k+ S- ~( p/ t/ {* O* |. d - );progn9 C$ Q! x4 O B
- );if1 E* k! }2 o, E, l& m
- (entmod elist)- G% f* _5 r3 u2 b& F: R
- (setq ss-index (1+ ss-index))
8 \1 C% a5 ^5 W- O7 _! N M; r - );while' d, a! c, C* M0 L& f' t1 S
- );progn then
3 \( \. l: ]/ h- e6 h - );if
" ^& w0 ?! f* w3 o$ @4 I - 8 J7 u9 d" j: z5 X
- (setq cmdact (getvar "cmdactive")): l& J4 S- k% ?. [) I4 L$ R" v
- (command "_.chprop" ss "")
8 Z0 M2 t. F; U8 ^ - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
3 T8 b8 [( ] w1 ` Y: t - (progn
9 [ r U: K- k( L - (if ecolor
; A9 O, Y5 p6 q O O, i - (progn
/ D9 ^8 Z( h: x G7 F - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))0 v) \0 e" z; o4 D! F \( L
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
; F' P" p. F+ C: Y; O6 E4 n - (command "_c" ecolor)" u& b( n) M* @/ ^
- );progn then- y r* h4 O9 Y- t) J' ^9 C* p8 j |" R
- )" v1 X" `2 R& G) A0 i( g# g
- (if (and lt-idx
' R8 ^7 \. `5 _: U3 H - (/= eltype ;|MSG0|;"Varies")2 v5 o! q& n) [: n3 z
- )
% w) a1 T3 ^, \( b, j+ W, e - (command "_lt" eltype)8 M$ `# Y1 v5 R' ~ N
- )$ G& ^7 @, M2 s; Y' z
- (if (and lay-idx % h6 T! g7 L; Q+ m Z
- (/= elayer ;|MSG0|;"Varies")
9 C4 }4 E. T8 m& e p+ l& d W- ~ - )
9 d. Q4 f- p; u/ Q! n - (command "_la" elayer)
1 N; J, g' }# x0 M8 e0 ?" X, J: H* i - )
& f5 Z: e E. F5 v. z, y i% s - (if (and ethickness * E8 G: d$ Y3 {4 a2 S
- (/= ethickness "")* b& d9 \( H0 h v2 E( ]- y; l
- (/= ethickness "Varies")
$ e4 V1 L) R* t# X* D0 W1 z - )& y; \3 v/ ?8 S5 s
- (command "_t" ethickness)! t& Z& V7 J- \' s$ o8 ]
- )
+ J t& q- H2 B - (if (and eltscale (/= eltscale ""))
+ t% d1 V% j" z- @: o+ x - (command "_lts" eltscale)
- f$ r8 _6 M8 l4 T6 u# I; a4 b: K - );if
& |# `; N, A, a, q# L; x; D - (command ""). [5 K& ?2 V( Y
- )
" S7 z8 `* H5 S% V - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set- M( y( D9 L, j6 y& o2 o$ f
- )
3 h9 u, `! ]2 b8 B- _ - ( n" i# n9 r% g3 x2 ]1 c
- );progn then OK was picked in the dialog.: R0 s9 P' ^# N
- " ]* |0 A) k: }1 J" `: c) t4 E4 Y
- ;; Fred GERBER - 25-AUG-94. X; w* h2 U- F. R9 k( C
- ;; Don't print the "Properties unchanged" message when the user cancels) C# e, D' g+ V$ {! O g* |
- ;; the dialog because he knows that already (otherwise he would have' h4 m: ^: b' M' K- t4 R- }4 I! U
- ;; hit the "OK" button). Display the message only if CHPROP fails for4 L# k$ _" ]$ g0 w" z1 o& h+ R
- ;; some reason, because it is not the expected behavior of the command.2 ?# p4 r u; | Q: B9 c6 P5 r
- ;;
7 D) [4 `9 J, Y9 O s' Q5 { - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")' [* h0 w7 q7 m! D+ x- P
- );if4 ^& i& ~' J( ~/ a1 I! i% d
- (princ)/ ^# C8 u' ^1 Y8 b5 j5 e
- );defun call_chp2) F3 h2 c& p. M( _+ U1 W; D1 M
- ;;1 q/ M) Q& v8 w. Y/ f0 h
- ;; Function to set the Color text tile and swab to the current color value.
" j8 y2 h7 Q1 I - ;;
% ~. I0 Z; Q% C; e" l - (defun set_col_tile()# ]7 k2 C, ~# [. S! W: C
- (cond
# m, q* x* m: D- B( Q5 n6 ?* B - ((= ecolor nil)
/ O# |+ e6 \" l/ i - (set_tile "t_color" "Varies")# S" c: E* y+ S# [- C6 ~$ w
- (col_tile "show_image" 0 nil)
- D8 o2 _ A6 b3 s - )
& f+ P2 X* X# |9 Y& w$ M/ ^ - ((= ecolor 0)
+ `& H4 C8 v0 o2 c- c# a - (set_tile "t_color" "BYBLOCK")5 S: x* h* X$ a+ D, l5 D6 v
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
6 u$ K4 V4 n- g' d2 w - )
8 j G* x4 c/ }" K/ i5 Q5 z3 M s - ((= ecolor 1) R, h' I8 l* H+ J3 a* }
- (set_tile "t_color" "1 red")- N* y# k' f( ]& `2 c7 S
- (col_tile "show_image" 1 nil)
0 t5 X. N# S" \ - )
' _0 |4 J% j V - ((= ecolor 2)
9 @& I1 y" \ Q$ e/ i" o - (set_tile "t_color" "2 yellow")
, h- J. L2 h8 I: ]3 S3 L - (col_tile "show_image" 2 nil)
$ s$ m5 n+ u _- W" d" u - )% `5 u7 s9 x/ d. w' j; p
- ((= ecolor 3)
3 M% @2 q: B6 `8 e" F3 I: ^5 H+ n: g - (set_tile "t_color" "3 green")
7 o& c9 j7 K& p1 x& p - (col_tile "show_image" 3 nil)" [7 g5 O' z! O- L, r, @9 i8 z% U
- )* X0 C3 k, A% r$ g1 K
- ((= ecolor 4)
& Q7 M2 ~9 J/ Z* l- }3 R8 s+ k$ g! l - (set_tile "t_color" "4 cyan")0 G- {- {5 K' R, o
- (col_tile "show_image" 4 nil)! i% j% l5 J: q9 K7 ]9 k" a
- )
4 y2 F/ ^; p( W - ((= ecolor 5)- n( `% Y. e9 M i$ s
- (set_tile "t_color" "5 blue")
: ~4 l$ T2 n2 T! i& I - (col_tile "show_image" 5 nil)
( O4 c# J2 G; X5 g6 |# r. j! d8 k - )6 u2 N- b& u8 G6 k
- ((= ecolor 6)
# N! _6 M+ S" {, {1 o; o+ h - (set_tile "t_color" "6 magenta")
( d) ?& T- R9 I! P - (col_tile "show_image" 6 nil)
. ], Z% [6 k' N9 f$ r& n - )
, m+ `* ^* D: l3 R8 K9 U - ((= ecolor 7)& m$ q$ u1 |0 Y( h" ~) ]
- (set_tile "t_color" "7 white")2 u5 C7 s2 L7 @# S5 c( g2 M/ V4 O
- (col_tile "show_image" 7 nil)7 T, k4 H. D0 Q0 D/ I( |$ O# \. B
- )
6 C2 z: E( p* x' g0 v - ;; If the color is "BYLAYER", then set the tile to
+ _8 \' ~% b9 L9 I; Y/ R/ r3 L8 W - ;; show it's set By layer, but also indicate the
- n. i6 W9 j+ S g2 J - ;; color of the layer - i.e. By layer (red) ]8 F: {' h: T: O2 D7 h: B
- ((= ecolor 256)
$ k1 @/ h" M0 H - (set_tile "t_color" (bylayer_col))
% \0 b% ]* T2 r4 b3 D; k f - (col_tile "show_image" cn nil)
v) |. E- r+ H& G - )
9 ^, \- A8 z4 `$ Z - (T( k3 z* o$ }7 ^3 C$ P" u( a
- (set_tile "t_color" (itoa ecolor))6 S. Z) T- P( M# J! r) @) h3 S
- (col_tile "show_image" ecolor nil)5 p& j+ P# \" ~' y) S) I
- )
" m+ l! r0 O% ?' I# @3 K6 M - )" g! M9 D4 ?: p, K- m
- )4 h; U. t6 r7 O; j8 x
- ;;# ^" l `0 V3 t' h$ j" i4 O
- ;; Function to put up the standard color dialogue. T x% x" H3 y: Q1 I% x
- ;;
, m8 u, J* }: u; \' ?; } - (defun getcolor(/ col_def lay_clr temp_color)1 G( B. |& V: `7 z9 s
- ;; col_def is the default color used when rq_color is called. If ecolor% s( K: Q% L9 J3 Q, D3 }
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
2 \. u0 f. q7 q* g* w2 `7 _. ] - (if ecolor
- T7 e- a: V: O# y - (setq col_def ecolor)
. o& f9 }7 t- I- H& X. b8 I - (setq col_def 1)
8 K: ^, b( O: J: V) R - )
+ f7 n7 r T1 \! k {; {/ T& ~7 }
! F6 O" U, o Z5 q& }5 \; w% X- ;; If we're working with a single layer, get its color
) N1 ]1 f9 Y. z: G - ;; for use in the color swatch if the user selects color BYLAYER.6 @: e8 Y+ ~% G- _& o0 q
- (if (/= elayer ;|MSG0|;"Varies")! g4 L e: T+ E
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))7 b( u1 l ]; p9 Q( Q
- (setq lay_clr 0)
, I5 G$ a, ~- ^ - )* y& V5 P) y! v p* `; A* B9 E
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))) A; T# q3 I0 S1 g0 x. G6 b+ Q) R/ Z
- (progn. \ [1 _2 ?- C, F
- (setq ecolor temp_color)) ]1 @! h& _6 R% T9 H4 Z
- (set_col_tile), ~1 K+ ~, {# f. N2 F5 u
- ecolor' K$ K5 I4 z. }9 A1 S. b
- )/ l7 Z$ A5 {# W G8 J
- ecolor6 _% |! c* F/ U7 E
- )
% J8 b0 L" ^7 |. |- t4 u - )
) {4 i |! T9 ~) h' @* g- E - ;;
3 U ]# _! F, x+ j) y - ;; This function pops a dialogue box consisting of a list box, image tile,
/ Z/ X5 ~, O3 X# B( M - ;; and edit box to allow the user to select or type a linetype. It returns
) V* U1 b( }1 K, T - ;; the linetype selected.
+ P3 p. W2 @+ q - ;;
& q, w) m7 t3 | - (defun getltype (/ old-idx ltname)/ D, j4 |( ` v# }, a4 y& x
- ;; Initialize a dialogue from dialogue file
. d+ A4 i% A5 ` - (if (not (new_dialog "setltype" dcl_id)) (exit))
$ o; }& g+ [% g' B3 C - (start_list "list_lt")* N* v: {4 {" k/ u9 W! t( f% {' h
- (mapcar 'add_list ltnmlst) ; initialize list box# q/ z2 |+ e2 [3 K/ F
- (end_list)/ v/ h6 t8 I1 k6 e
- (setq old-idx lt-idx)
; e: n& y0 F' I' F Z - ;; Show initial ltype in image tile, list box, and edit box
- i- y, ~, D2 W( E2 I. i - (if (/= lt-idx nil)
9 A! ~- H$ C4 m( Z - (ltlist_act (itoa lt-idx))/ A0 v% l0 p' d* {
- (progn
! l) ^: _* T9 c, x$ R& i - (set_tile "edit_lt" "")8 ]/ D4 k. y( I1 T. T; s
- (col_tile "show_image" 0 nil)" Y B2 v; n; r4 Z) e3 c
- );progn else
; S+ ?* T/ \# K: ~ - );if
1 e' h& y7 J3 R. y% D- i9 J - (action_tile "list_lt" "(ltlist_act $value)")
; i( @# [7 W" n" v5 L$ A - (action_tile "edit_lt" "(ltedit_act)")
& i- L* o- r) H3 l0 e+ K H' {+ t - (action_tile "accept" "(test-ok)")
, F* F S3 _. ^ - (action_tile "cancel" "(reset-lt)") ?% D r3 t9 l5 x+ M
- (if (= (start_dialog) 1) ; User pressed OK
0 h" ^) [/ a1 L8 Q5 t3 I+ g - (cond
- A& l4 \6 l) E - ((or (= lt-idx nil)
/ Q3 w& N: L' G9 D6 s# `1 k - (= lt-idx (1- (length ltnmlst)))$ |6 S }9 Q( O, T w" C* i
- );or
5 ^! B4 M; ]) P: v$ P+ a - (set_tile "t_ltype" "Varies")# n) D9 ^( T" T( M
- ;|MSG0|;"Varies"" o, Z r' e# `# z8 M" w F
- )% K9 v* O% Q# E+ f
- ((= lt-idx 0)
2 x, S `; t' ]1 ^7 O, D" A5 j - (set_tile "t_ltype" (bylayer_lt))
. b, {2 ?; |5 p r$ R0 `1 f0 j1 e - ;|MSG0|;"BYLAYER") \) c( R- R: k+ T, o# w: K
- )
' J) ^$ B: _( A9 _" N - ((= lt-idx 1)
! u$ P/ ?: n0 m" m. ` - (set_tile "t_ltype" "BYBLOCK")3 a8 Z% L) @1 }5 b
- ;|MSG0|;"BYBLOCK"# b$ {! l( L" O: K- m
- )* i1 g, U$ F. w
- (T
) X& h& s/ ]$ A+ e# [; f - (set_tile "t_ltype" ltname)
3 K* R3 d1 ~8 v" I8 M5 n - ltname
0 J4 D& {. W% A+ `$ l - ), M5 ^4 `' z" T1 r
- );cond then8 g! ~# C' H6 |5 [5 U
- eltype
$ P$ x" }2 {# D - );if
! j$ m+ _2 ]( I7 l8 L/ x W - );defun5 Q& @( w- g3 ?/ Z& m3 q* ~3 q1 D
- ;;
5 y4 x. X/ o! P& @ - ;; Edit box entries end up here$ l, V5 W6 |- g# A+ [ o
- ;;
& o& H5 n5 ~% j ?8 z: z - (defun ltedit_act ( / flag)
$ O6 q p% S: i4 i( g& V- c - ;; If linetype name,is valid, then clear error string,
$ H0 y4 C E% u8 d. K - ;; call ltlist_act function, and change focus to list box.
" b8 I) ]' h) |3 O/ [2 | - ;; Else print error message.& x1 }1 v& G2 ]( X
-
# J. I6 c0 L |! v9 _! U - (setq ltvalue (xstrcase (get_tile "edit_lt"))). U5 n. c. o6 p: M
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")
8 N! v1 @& R) K1 N1 U' x% n - (= ltvalue "BY LAYER")/ W. |" c1 ~6 D3 z1 P/ `+ m2 L
- )- M. l% T& p! z/ l( A
- (setq ltvalue "BYLAYER")
% ~0 C# f1 A; _- D4 ^ - )5 k; B$ k/ e: D$ Q
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")& V# \6 j5 A$ Y
- (= ltvalue "BY BLOCK")
- a% Z6 B' \0 t' t: W0 _ - )2 S; U# [" i. N Q4 t7 l/ ]
- (setq ltvalue "BYBLOCK")3 E5 l; G+ T; R& l5 V# ^
- )( v0 o4 W( F# x' ^1 m
- (if (setq lt-idx (getindex ltvalue ltnmlst))
; U/ J% l4 P% u3 r) t1 c - (progn
' d! t; w. K3 _' K - (set_tile "error" "")
( B" o5 ^. Y; t& g0 F. M; q - (ltlist_act (itoa lt-idx))7 `' o& z! u7 ]2 s5 ^- s- N! m
- ;(mode_tile "list_lt" 2)
6 N0 ^+ v# i. f - );progn then; R; r1 a8 g$ Z2 Z0 `
- (progn* j$ ]3 M- e8 Z0 C
- (if (/= ltvalue "")
. V7 X {# h/ Q; k `) b0 c - (progn
1 r8 @7 a; [# i) g/ t; d - (set_tile "error" "Invalid linetype.")
) X8 \3 l; N1 _ - (setq flag T)
. k- j0 g% w% P% Y - );progn; ?) C3 w3 c4 K m6 g5 q2 v( |
- )
6 L% ?8 A% p2 o8 |) r& n2 |- W: w - (setq lt-idx old-idx)+ k; j& L' D; H. e# R
- );progn else
F4 c3 [& N) ^ - );if# {3 ^% ~9 F6 R7 t+ O
- (if (and (not flag) ;added so a return will take you out of the dialog.
- F; L- ]1 o# [, n - (= $reason 1)
9 l5 b: u+ [% ^, D% w3 U9 ]1 N b1 Q - );and9 [* d. s @2 h7 M' w6 p
- (done_dialog 1) . }8 A4 ]/ a T9 l# D3 k4 J
- );if
+ K& K Y |# I - );defun ltedit_act
% `# c% n" N+ S0 L3 p* L - ;;: }' F) b+ s; `6 K5 e6 n
- ;; List selections end up here+ N* K: a0 n& p
- ;;9 n; E" @ j$ [, F9 q. [
- (defun ltlist_act (index / dashdata)
0 o2 {" y: u: Z7 t. W' Z$ X - ;; Update the list box, edit box, and color tile
! W# n% O" g- C% ^8 E - (set_tile "error" "")* a8 n" h' b" v% F# l5 ~
- (setq lt-idx (atoi index))
% `% Q- e$ n; { - (setq ltname (nth lt-idx ltnmlst))1 C4 x: u1 f9 v* U2 h; @
- (setq dashdata (nth lt-idx mdashlist)) C% ]0 c% {$ N$ x" o) w
- (col_tile "show_image" 0 dashdata)
/ ^( ?7 Y9 N) u# Z - (set_tile "list_lt" (itoa lt-idx))3 J( k" A. @# n
- (set_tile "edit_lt" ltname)) g0 K: u# z. g# i; o6 e
- )
" W% x1 ^, m% c! [/ o6 G - ;;
4 k) e( h8 J# w# Q - ;; Reset to original linetype when cancel it selected& e2 E6 `' i1 A
- ;;
* z1 J6 S5 ]5 B0 w0 D* G; t - (defun reset-lt ()6 |4 Y6 ~" F t _, l$ E P
- (setq lt-idx old-idx)# r: g& T7 G7 B7 u$ t0 u
- (done_dialog 0)
3 l# f; m9 S: [; R& m) m o5 C - )
0 U2 z, |. R# ]% I6 i - ;;
% @4 p( \$ G# D - ;; This function pops a dialogue box consisting of a list box and edit box to
! {( {6 L+ S' p; f [* y - ;; allow the user to select or type a layer name. It returns the layer name
, ?$ @, e+ \- M2 ~7 l - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the3 q. \7 q0 [* r2 T+ V+ b
- ;; drawing.
& D v0 ?5 m1 H. U1 X0 F - ;;5 K- |$ j$ }- _
- (defun getlayer (/ old-idx layname on off frozth linetype colname)# C3 N3 M+ [. g4 @
- ;; Create layer list the first time the layer
4 }' A' h5 S2 E - ;; dialogue is called.
( p3 o9 G) J: X- v" E - (if (not lay-idx)
" z4 \( ^3 N0 ~8 E) G - (progn8 v# ?+ [8 f# A; ?2 n
- (makelaylists) ; layer list - laynmlst
- c9 t' g. C$ e% V u1 F, ~ - ;rk
/ e# Y4 x8 B) T3 s5 v4 }" P9 I3 [' c - (setq lay-idx (getindex elayer laynmlst))( J" i7 \6 L9 O- `8 _9 Y
- );progn! T0 c( f* W# f4 b$ D
- );if' J* N$ @7 s# a) B0 d6 [) v* T5 m
3 f5 w8 o9 |" \: H! E! F9 K- ;; Load a dialogue from dialogue file- Z' h( C5 } Y4 B+ e l
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
4 F4 ^ ^+ G, x+ V, V/ Y: y - (start_list "list_lay")
# U, @% l1 T2 k/ R - (mapcar 'add_list longlist) ; initialize list box
* |6 N' _3 q |! f( I/ f - (end_list)9 K: \* D; I+ A- J, z
- ;; Display current layer, show initial layer name in edit3 Z* u7 ^' s( V# C, A+ I& c. O
- ;; box, and highlight list box.# ~+ M4 Z4 G3 i+ R' p3 R# ^# h" \2 A
- (setq old-idx lay-idx)
4 Z- w% P- v& u0 e2 ~3 D* A - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))$ V% x; R& `& ^* F$ X$ t r
- (set_tile "cur_layer" (getvar "clayer"))+ ~6 ^2 Y/ n: W1 o+ {& A
- (action_tile "list_lay" "(laylist_act $value)")
/ Q# E) _. Y$ u: ?5 _ - (action_tile "edit_lay" "(layedit_act)")3 i: c" _6 ]/ z: b( h; U Q7 e& Z
- (action_tile "accept" "(test-ok)")& R$ Q+ d+ d; @7 A$ }% m
- (action_tile "cancel" "(reset-lay)")
6 ? S- D( H( E; a8 b E9 Y$ t% E - (if (= (start_dialog) 1) ; User pressed OK
2 E$ b. _, Z# U. g g8 V - (progn
, ]7 }" g/ a- A+ ?; H - (if (or (= lay-idx nil), X6 v/ U' z5 ^
- (= lay-idx (1- (length laynmlst)))5 H& k( a: O0 M0 R$ ^
- );or; _' J/ q: E4 [$ I9 \3 K! g! F E q
- (progn; Q* u1 \# n k' \* t% e
- (setq lay-idx nil) 2 O% h, v. f4 N" w6 ?/ E3 I
- (setq layname ;|MSG0|;"VARIES"): F' Q( z, G$ N7 o
- (set_tile "t_layer" "Varies")
, ? ~( N3 z- |8 ~1 n6 i - (setq layname "")1 f8 z$ n4 m) U5 ]; h0 ~
- );progn7 ?$ @) \% y- d' Q
- (set_tile "t_layer" layname)9 P! [3 h" m9 ~
- );if# \1 ?2 l' W2 A- s; Q& L& ]( L
- ; If layer or ltype equals bylayer reset their tiles
' ]3 Q8 f" t7 F1 B4 N1 f" {+ } - (if (= lt-idx 0)4 k0 n6 B P# s+ ^6 v4 y
- (set_tile "t_ltype" (bylayer_lt))
6 V1 Z6 a: ] q8 ^6 d) J - );if; F0 ?' P( o, V3 H- j% b' E) f3 R* m
- (if (= ecolor 256). I! Z+ }1 t% n, G
- (progn+ c: ~/ B) a# ^5 X5 a( E* j6 s
- (set_tile "t_color" (bylayer_col))
- D* s) }3 P: C: \1 }' V - (col_tile "show_image" cn nil)7 K% L- E# J; M. Z6 l- r
- )
. Y* R3 E: N+ j3 e6 L( T F; E - );if
& f5 _# Q% x9 k, q9 b* z, G - layname
% K- B& [% t* B1 K - );progn+ `. A% q$ q3 ]- ?; I; o" O% `
- elayer0 j2 t0 a c3 s6 L' h/ T
- );if
8 f p* W5 v; H; W - )
3 S& A, d! x+ z7 a; {, V# Y - ;;
& u) d1 z O* X) G& B. ]* p7 D - ;; Edit box selections end up here- Z7 B8 R% f- G7 C& [1 b
- ;;
g$ O& F: z. T - (defun layedit_act()* c! Y. ~6 |$ ^( V* c! |% w) U
- ;; Convert layer entry to upper case. If layer name is% |9 U* O6 j U6 B$ B
- ;; valid, clear error string, call (laylist_act) function,- o: L( J* |: M; C
- ;; and change focus to list box. Else print error message.; p3 k/ T [/ C8 f5 z8 Z
- (setq layvalue (xstrcase (get_tile "edit_lay")))
% @( X+ v8 U' l2 Q8 z - (if (setq lay-idx (getindex layvalue laynmlst)): g: `+ a! V: L2 D+ ^$ w0 E5 c3 U5 M
- (progn; d- j: c9 P/ L- b |0 ~' }% A
- (set_tile "error" "")
+ Y9 c( ~# S% {% D& s3 | - (laylist_act (itoa lay-idx))7 g1 G8 O9 x" V
- )/ M& c5 r7 J1 g2 ]2 t5 a
- (progn' w' l( H; h" }; \0 t3 ]& f8 u
- (set_tile "error" "Invalid layer name.")- e, S2 E$ W+ v+ n$ G/ U
- (mode_tile "edit_lay" 2)
! T9 G" {$ i* N - (setq lay-idx old-idx)
# b2 ~, v* S* ]6 b7 W0 g; P - )
' ?' q( v5 Q2 f& }. V' S - );if/ |1 p9 \8 p( \9 z" R
- );defun
" n4 C$ e6 J/ l3 t$ ^* } - ;;7 P2 c0 b; y S0 k6 ^
- ;; List entry selections end up here
- J) c8 A6 R( Q9 q# { - ;;
+ N) C% |7 h5 O, V$ c. m7 n - (defun laylist_act (index / layinfo color dashdata)
) o4 T q' x, }7 C( f - ;; Update the list box, edit box, and color tile
1 H( R( c6 P7 r3 I4 C- q# P3 f - (set_tile "error" "")
" P4 i* x/ c7 k/ Z6 n* u - (setq lay-idx (atoi index))% z6 ^) ?$ ^3 ]; |8 t
- (if (not (equal lay-idx (1- (length laynmlst))))
' W. @' Y% [5 |2 e- t7 E- E - (progn 5 `- O, K5 A9 e% [/ m8 B+ c% o
- (setq layname (nth lay-idx laynmlst)) K7 b9 b/ k% j9 e/ e" M6 G
- (setq layinfo (tblsearch "layer" layname)). \; l; Q- l! M! O
- (setq color (cdr (assoc 62 layinfo)))' \& m# T( Y! {$ E
- (setq color (abs color))0 C' F4 Y/ F5 w# B
- (setq colname (colorname color))
2 i* Z E( z+ E) V9 r. Q7 i! ` - (set_tile "list_lay" (itoa lay-idx))
0 m- L; R% n, c$ e% S% U7 }8 s - (set_tile "edit_lay" layname)
' B+ N' Z3 T- K - ;(mode_tile "list_lay" 2); T3 J R; q7 N
- );progn then 2 ^9 z9 h, Q4 |5 C% f" ?
- (set_tile "edit_lay" "") ; f; K& U1 d5 m" O
- );if 8 i- J/ x6 e- h+ O7 @4 C
- );defun laylist_act
( D4 R# c( c" w( }) G+ F+ k - ;;8 p u$ i4 B9 M
- ;; Reset to original layer when cancel is selected7 R) d$ W# J% H- d7 ^# \
- ;;
7 x3 b a6 [$ O8 f) ^: O: _( O - (defun reset-lay ()" g( G# h9 ?- v( S. z
- (setq lay-idx old-idx)2 x# s. U* i5 o- e6 n( i2 f
- (done_dialog 0)
1 c( \. w! I# R( S+ H - )
8 r& ]7 j- I( C8 o y8 n
" y7 U9 h7 x4 K, e6 b- ;; Checks validity of linetype scale from edit box. It checks to
% ] x1 F) o7 x& w% { - ;; see if the value equals "Varies"./ i6 v S2 j/ C& t
7 g6 Y3 A9 N' z1 ^4 U) ?- (defun getscale (value / rval)
; [6 ~2 {' X( X& V0 W - (setq value (strcase value)
. f; b3 v- H) i1 C: X) A, m - rval (distof value)
; v% r v& ]% i9 F; c |4 r - );setq/ w, B {# r4 j4 n. v
- (if (or (= value "")
; K8 ^4 Q! I& ?' L - (> rval 0.0)
( ?8 x% P" q& g5 _( o) G9 E* | - )+ {! J3 I$ j U" O2 S4 g' D8 k
- (progn
% [! S: B- @- n# E7 ^3 H9 ^: j4 Z - (set_tile "error" "")
# ~9 j# P3 |. _ - (if (= value "")
( `4 \0 |( b% I9 Y" F; X8 ~ - (progn5 D; Z' z' U: f4 T* g1 T
- (set_tile "eb_ltscale" "")/ {- @$ q. m% c, P, b
- (setq eltscale nil)
% Y f, _1 J* v" J0 j8 N# W- L( H - );progn then0 H' o/ h6 p( E$ c
- (progn
1 z3 e1 Z. Z0 S) l: Z! S - (setq eltscale (distof value))# c7 e! @5 _ {1 [7 o: M" y
- (set_tile "eb_ltscale" (ai_rtos eltscale)). R" d+ m t1 G: m( B5 c- L6 m
- eltscale! r, {' O7 Q- s( s+ `1 V
- );progn else
1 o0 N5 K1 p% R8 l - );if
, S- T* g" f8 t5 B3 t - );progn" h8 r: A' f6 x2 ~3 z8 Q8 C2 O
- (progn" _" R6 B& N6 Z6 M
- (set_tile "error" "Invalid ltscale.")
, p0 D# Z0 q! ^5 P3 u; ~ - nil! u Q' E" D# _( R1 C
- );progn else4 k' |8 w1 C u4 _0 a
- );if. e( x1 K: t$ s! _5 z# O: |( Y
- );defun
0 s8 r- k: P8 X. F3 a' h - ;;% U( t9 ^2 Q/ |0 w# ^9 K0 v) q% Q3 q
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a O' r* {4 e3 u# |3 Q
- ;; string can't be converted to a real, this routine checks if the first
1 v" f* o3 w( `/ J - ;; character is "0". It also checks to see if the value equals "Varies".. |. |/ f5 L. a$ e0 h) b1 F
- ;;
, O9 E% Q% |2 w" J$ R! ^3 O - (defun getthickness (value)
$ ^2 P3 Q& `7 W - (setq value (strcase value))6 H4 h% [ M. M K- s2 S( m
- (if (or (= value "")
2 v* _9 k# `0 K. m6 h - (distof value)* K# L( P" o C- p$ w1 h' [0 \
- );or
; z2 N# d' I' n2 U1 X# G4 P% Z - (progn8 g. t. [. `' N, f/ h9 \7 n7 Q
- (set_tile "error" "")' s5 ~2 e$ v+ c8 Z; f1 x0 a
- (if (= value "")) u- m0 s! _# \
- (progn
4 n+ F6 C4 U% ^: Q - (set_tile "eb_thickness" "")
5 `7 O/ Q8 O9 b$ J( Z9 b* v - (setq ethickness nil)6 I7 y$ b, H! L$ O/ \
- );progn) R; t ] a- a# c! t2 p
- (progn
/ R! {: U$ M2 n W( Z) X; v - (setq ethickness (distof value))2 ?) p9 c' A3 w5 n4 o: ?" o! F& a
- (set_tile "eb_thickness" (ai_rtos ethickness))
) Y2 [6 f" s: o - ethickness: `$ `4 B, A% t/ T, I4 }. k
- );progn; i+ o, b, J4 v$ m
- );if' l7 h+ [& x; L- n" t, V% a
- );progn: i4 m, e* U0 |1 x
- (progn
: _) s! D. W; y/ ] - (set_tile "error" "Invalid thickness.")
5 ?" b$ w3 n/ t+ }3 a, O* K( F - nil
; G5 ^" } i+ O- Q F8 t$ {" y - );progn( N- a# D* f7 Y: U/ E# G
- );if
8 e8 j6 Z3 O& W6 r+ O9 z - );defun
6 o1 L) a/ A' }! U+ C - ;;
+ l+ T6 i" b6 {+ [) O! S& ^ - ;; Checks validity of polyline elevation from edit box." j6 m |. f$ m% l5 l- j! t* {
- ;;# D0 s! I, z( _! |2 I) b
- (defun getelevation (value)
$ C& i6 z' x' w) S - (setq value (strcase value))
; b" p0 W0 X5 s) g4 o9 g4 u5 b - (if (or (= value "")
) |5 O" r% _! w' C: ~% W% ~ e - (distof value)
2 L9 a5 b- a f/ ] - )
/ }% x! r& _" }0 _1 c; K - (progn1 G9 G, q- H$ s- {
- (set_tile "error" "")) H, x9 E1 Z9 E0 W/ F6 p' B. f: M! u
- (if (= value "")
+ {. @% B. a5 E2 b: ^. p8 k \) b* E - (progn" ]3 c4 A, I/ I0 B
- (set_tile "poly_elev" "")
& d6 f, m' T1 s, ~" \ - (setq eelevation nil)
3 a7 ~5 N: Y/ i, \0 S - );progn6 j. T4 {9 L& ]) g
- (progn
( ^8 X& g! H3 E* z1 L! W8 A - (setq eelevation (distof value))9 {/ g0 B6 ~' g% t* o$ }
- (set_tile "poly_elev" (ai_rtos eelevation))
; ?! P7 w+ g5 [ ] - eelevation6 c# R& q& R* l/ n/ u
- );progn# V# f3 {8 v' v0 B- f& H
- );if" v- y' M$ W( m3 z* ^) X4 R
- );progn
+ Q8 v5 ~ A: r" p5 t - (progn) m. g4 `' P* F* y) B
- (set_tile "error" "Invalid elevation.")9 v; B% Y# J" o; V
- nil
( r0 e# b3 E' D2 e - );progn p6 w; z" A0 I
- );if
$ V) L8 y; S; D3 a* B0 a! B - );defun
3 \) n5 R% C% @ - ;;
1 T% H5 W9 {; a4 Z5 ?$ b - ;; Checks validity of polyline width from edit box.
, x7 W5 Y7 h+ \3 u, |( } - ;;" H, t' Q4 d, }; V2 i! \+ `- V
- (defun getwidth (value / rval)
5 M8 O6 I- a$ O) Y$ N - (setq value (strcase value)
. _3 e+ @" ]6 E5 O( N - rval (distof value)3 I3 Y! P5 d% m8 t
- )9 ^8 p7 K# Z( l# I7 ^* E
- (if (or (= value "")4 ?0 `9 o+ W. b/ v
- (>= rval 0.0)
& Z" [# g5 N0 Q& Z+ R" d1 C. p( ? - )
/ O* B4 O8 U3 F3 W, k- g; s7 l+ Q - (progn8 x% ^2 Z O0 w A& _% X
- (set_tile "error" "")
& z$ ^5 q' ]' C# d) \ - (if (= value "")
4 \. z! k0 B2 h w# _5 A. s - (progn
7 y5 ?" \2 `5 D1 W+ V1 e5 }* u - (set_tile "poly_wid" "")
$ Q3 ^ U9 o/ T" T6 B8 \% K( U1 e - (setq ewidth nil)
# l3 [0 m1 n) z - );progn% x i, t# c3 Y3 N1 i2 s2 G; X
- (progn! E6 X, \% b4 L) e2 P) [; L
- (setq ewidth (distof value))* t! i5 }% O5 v4 A3 o/ |# s
- (set_tile "poly_wid" (ai_rtos ewidth))/ g: {* C" Q+ _5 x$ |# H( Y, L
- ;width
+ m6 C' b0 {0 b0 M r! U8 z - );progn
/ H& h2 E5 \ k; |( d* M - );if& n2 @, d v+ D7 Q- p* w0 W0 j. c
- );progn
! u2 z& t" O, j - (progn
, f; S6 r! k0 [2 p1 U - (set_tile "error" "Invalid width.")
& O; k t. |9 `4 A1 e% w. l) t - ;(setq ewidth nil)- ?- ^' `7 t% z
- nil
. T8 [' {7 x( Y& G8 c% A# ~1 H* C6 x - );progn
% s/ O9 z z& L; G) m - );if
5 g- \6 S1 ]; P4 V8 a2 r! J3 q - );defun, e8 T5 V& X5 r" y
- ;;
' k$ n. \7 N. M) k- t2 B - ;; Checks validity of text height from edit box.
4 |" U- p5 D+ M& C! X' A9 k6 E - ;;* r: V- C) N" \" Y- M
- (defun getheight (value / rval)
5 v. d ]) V. ?, \ - (setq value (strcase value)- ~: W* q; K g, i2 N( T% f
- rval (distof value)
- V( b. B, m& Q# m4 r) w - )
5 \: L) y0 K# S8 ]: W0 }/ l- z4 c0 g - (if (or (= value "")( d" i; _/ k: l' a% I% i- _4 i3 o
- (> rval 0.0)
1 I& _3 y4 c2 [* f4 E$ F8 b - )( ]+ T1 z4 J- ?5 a
- (progn" w5 e/ i+ O6 b+ S" a# V
- (set_tile "error" "")+ b- i4 U3 t+ Z9 C
- (if (= value ""); D; D5 v4 a# Q5 _( z/ ~* ]
- (progn
2 a8 } X2 k g5 z - (set_tile "text_hgt" "")
7 p- w& c% E" z3 _- h: t6 \ - (setq eheight nil)
- A- [0 j' b4 h" T - );progn
- |6 p+ K0 P" V } - (progn
$ k$ {# v7 C* @, g) F; y6 S2 \ - (setq eheight (distof value))' ]1 y0 c. q5 m. \
- (set_tile "text_hgt" (ai_rtos eheight))8 ^% q% j; T# S# S7 n8 \( |( t
- eheight& |7 p" Q. S9 G( U" n3 D9 y' C1 N; c
- );progn
% @& H; I" I! S3 B - );if
9 U7 b6 f* E/ d% ]( d - );progn
+ D- F3 |1 t* j ?9 g - (progn1 u# j3 `4 g2 P1 M2 u
- (set_tile "error" "Invalid height.")* p0 f W& \" [9 K+ i
- nil% f6 i4 y/ @2 P7 H! N; ~
- );progn
, E) |9 a+ W) l, _( S9 L% y6 a& ^ - );if( D2 V4 d) _# U
- );defun
1 D8 x5 o3 }! e
. ]* Y) q2 P' F, @7 ]- (defun getstyle (value lst / rval)
: r7 c- C$ c# R - ;(setq value (strcase value))
& c8 Y, B6 s, v - (set_tile "error" "")
- d: n' k, B0 @+ w1 G, J - (setq estyle (nth (atoi value) lst))
% h1 Z4 _2 X$ W6 d0 Z! A" `" h - (if (equal estyle "")
+ ~ e# z! Z3 U+ d" z9 o/ y - (setq estyle nil)
# S* d2 i6 \# U: ] - );if. c8 U, U' {; B1 t* l9 |
-
s5 N) \& h* y/ R! K - );defun getstyle3 E7 M: `: B" R7 H% E! O4 e- ~
* g2 o# k k% k0 ~0 L' ^$ F: `- ;;
5 u: l( { n, m2 \6 _3 I! k - ;; This function make a list called laynmlst which consists of all the layer
/ g |: P: P( K. C( {' Q% D - ;; names in the drawing. It also creates a list called longlist which( q J& r6 s# X: U
- ;; consists of strings which contain the layer name, color, linetype, etc.% J! x R1 b, z1 c$ G7 Z" A
- ;; Longlist is later mapped into the layer listbox. Both are ordered the: ]3 _, {; j* m2 c) g* g
- ;; same.
- Q2 y. o' N) z, g2 {# ? - ;;
% g. V$ d) Y% x$ y - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname8 L+ b8 C# s0 p) Z; Y
- xdlist vpldata sortlist name templist bit-70; J/ R5 I+ E9 \
- layer_number: v7 n7 H! _. e! P2 A: b) Q! m
- )
' E" x- e! C' U5 n/ h% w, ^ - (if (= (setq tilemode (getvar "tilemode")) 0)
; ~( G( r/ k+ Y - (progn
5 D8 e% l) t7 C7 G: l0 { - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT"); ^4 ^/ g& l$ x) f! F& \
- (cons 69 (getvar "CVPORT")) a! ~. |8 E( V1 U2 H6 Z
- )4 A+ @8 j2 x5 N8 ?( D k: w( Y# W$ a
- )9 S; j% Z' S! X2 N9 J1 p: r- S
- )
' | U! V1 z8 n - (setq cvpname (ssname ss 0))1 _+ @+ Q0 ?8 {" j
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
- U! l9 L; I$ k. v! u1 S - (setq vpldata (cdadr xdlist))& W9 S: T. W1 m6 R0 o) [
- )2 A$ p3 ]0 Q$ k' j
- )( J$ \1 b5 G* p5 K, i/ f- P3 l: X
- (setq sortlist nil)8 x+ x* m8 c# c- F
- (setq templist (tblnext "LAYER" T))
$ |# P/ z4 P+ V. U+ {! [% c% p - (setq layer_number 1)
" @# H2 f+ B3 b: ~ - (while templist
u; t3 o$ |& h3 G, I3 N2 R1 W - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))& G. q+ Z; ]2 Z3 a! z
- (progn
}9 K9 @% o8 j: J - (setq name (cdr (assoc 2 templist))): h+ M) Z. b. l; T5 B) R
- (setq sortlist (cons name sortlist))
9 C3 D+ g |& h$ x - ;; Not dead message...5 }( d9 p0 `( J7 D7 @3 F
- (setq layer_number (1+ layer_number))* B5 {! m: L# U8 E
- );progn
+ C) ]2 ?. O1 P! y; r - );if" z8 F# n! w/ ]) q5 Z: Z
- (setq templist (tblnext "LAYER"))
) f, j) ^/ T C- C - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))1 G g3 t; Q( k% o) t. O0 m; l5 p
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
5 L, O# _/ n7 r- }8 T - );if
! v: H; i) Y8 k1 e+ w$ B; G' [$ o' B - )
$ `2 ^. }3 N4 n0 N* E - (set_tile "error" ""). o& a, ?: @. I9 }7 ]) f5 v
- (if (>= (getvar "maxsort") (length sortlist)); }3 k% V& W) n$ {; r
- (progn5 w V4 K$ A( X* q/ w; s( Q
- (if (> layer_number 50); Y% n0 u8 M; M5 C
- (set_tile "error" "Sorting...")
( }- f+ G6 I1 S, S2 i - )& z6 u I' n# p; H9 r a/ g
- (setq sortlist (acad_strlsort sortlist))
+ r6 X; ~2 r* x# N9 B0 Z" n - )
3 W2 J7 w7 f ^& _+ N - (setq sortlist (reverse sortlist))
0 _4 b) W; P) w, J4 c0 ]( V - )
3 K y2 R/ |& i1 H. m, S$ f; ] - (set_tile "error" "")
8 z+ U2 a: d3 [9 B - (setq laynmlst sortlist)- [7 E/ Q/ A$ }
- ;rk
5 q/ L: B( Z6 }. i& ?" ?6 r; z - (setq laynmlst (append laynmlst (list "")))
3 y& h+ X; d/ P; ~5 W% S - W% _; ?% {+ p T: J) @1 y7 L( B4 p
- (setq longlist nil)
6 _6 P3 f" d [ - (setq layname (car sortlist))# }/ R4 S* H$ z8 U( l- @) X% Y
- (setq layer_number 1)
W' n+ L) y5 J" o) s# ? - (while layname" c1 K- j5 x! e: Y+ o* X2 C
- (if (= (/ layer_number 50.0)
8 k( k9 }) k3 J6 q- _5 R! l# R - (fix (/ layer_number 50.0))
! z/ v+ \ m5 z* C$ w, X; i - )
) c' @, e. e2 |& F - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
3 d2 B/ k( d) d; ?0 G3 E - );if
4 }9 A, L9 Y$ {" z9 F1 F# A0 W - (setq layer_number (1+ layer_number))
4 e( O+ g3 f e$ M$ I - (setq laylist (tblsearch "LAYER" layname))
' T& ]7 g" r" h! ~1 N" t0 V - (setq color (cdr (assoc 62 laylist)))$ x* L' U: G( L( t( u& _
- (if (minusp color)7 B) l4 i7 |1 n
- (setq onoff ".")
) ~ _+ m3 H0 ~) v/ R - (setq onoff "On")) S( {' Y: @+ V$ X6 h* p- e
- ) p" q$ `' R. K0 A$ @
- (setq color (abs color))7 Q% {4 U& F- D7 I& Z
- (setq colname (colorname color))
P& }3 Z; [& \7 X - (setq bit-70 (cdr (assoc 70 laylist)))
! r) D* ?* V7 l8 Q& M. ]) R - (if (= (logand bit-70 1) 1)
. k: Z ^3 k% _( E' W4 ~$ l - (setq frozth "F" fchk laylist)
" Q( ^6 j7 O2 X6 u( T - (setq frozth ".")4 P# |6 J! u9 z3 g) Z5 _1 C6 c
- )1 n: a) y' ]( ~9 G& J
- (if (= (logand bit-70 2) 2)9 f7 s% `3 A0 o2 z5 q# W
- (setq vpn "N")
$ F( i/ m' k) x% z3 {$ v0 U6 j - (setq vpn ".")
+ f" A p- v2 J+ _& | - )- {. J6 d+ a' z4 u7 b* Z/ x t# X2 m
- (if (= (logand bit-70 4) 4)1 `) M) `* A: y3 q) t
- (setq lock "L")
# Y" |+ L( L7 B5 A+ v/ c% T - (setq lock ".")
3 \# U A% r+ w1 {9 Y6 V9 X - )
; e0 J1 O) b# I p1 w7 \6 e5 |8 U9 c - (setq linetype (cdr (assoc 6 laylist)))
/ T z2 c- a. k+ J" m" P3 n - (setq layname (substr layname 1 31))6 i9 C$ o2 G; |( S
- (if (= tilemode 0)
/ u; }: v; v; f - (progn* A) {; n: X( g" y0 D* @! O
- (if (member (cons 1003 layname) vpldata)
$ x3 u8 t) R- U - (setq vpf "C")
0 c/ `7 C) x4 |5 i6 r4 o7 d - (setq vpf ".")
4 s) ]! O- o* n/ o0 s - )
5 |0 i4 R' M- o; j1 B3 H! X8 h - )
/ f& ]8 S# M n' {% d$ B/ G - (setq vpf ".")$ J/ z' J- \3 M; m
- )) Y; p8 O) k5 n: m( x
- (setq ltabstr (strcat layname "\t"6 f' F: V' i! j8 l ]- F& y
- onoff "\t") T- O; B" } ]8 A6 v9 c
- frozth "\t"
( b/ ?5 m, ^8 {0 P" D - lock "\t"0 p6 B* p, Y3 X* F q c7 x
- vpf "\t"
# i: `! t! m: V* Z' p0 I - vpn "\t"
4 M2 h" q2 G! Y6 y5 p - colname "\t"
* Z: e* C3 d+ H- y! i - linetype
N2 h6 y& ?8 b7 Z& ? - )8 e) F, Y8 o! W. ]$ a$ ]; g
- )0 ]9 ~1 }- l2 L' d' A0 |8 n
- (setq longlist (append longlist (list ltabstr)))
3 B2 p9 ?! ^8 v0 U - (setq sortlist (cdr sortlist))
; w0 R' q5 Q0 y& s - (setq layname (car sortlist))
1 o9 A( L) S5 \) R1 q0 {7 s - );while9 @$ V% f6 t; l' e
- (setq longlist (append longlist (list "")))
9 p; @6 q7 Q: o6 E5 K; P3 N5 P6 l - (set_tile "error" "")9 a. d5 ?( @5 |' I9 b4 E
- )
# i6 G* Z6 U( [! z - ;;
3 V7 O( n4 F; @* v - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of) I0 r, O2 ]3 `
- ;; linetype names read from the symbol table. Mdashlist is list consisting/ v( [' d8 ?- S; u/ ]# L4 V- k# k9 S9 F
- ;; of lists which define the linetype pattern - numbers that indicate dots,
' Z. b5 Y9 p1 d, W2 e8 s: n - ;; dashes, and spaces taken from group code 49. The list corresponds to the
9 L& F, P& M5 { - ;; order of names in ltnmlst.
' q- ~3 m: x r3 z5 }; {4 j( D - ;;
' z) T" l5 Y0 B - (defun makeltlists (/ ltlist ltname)
: K- u- o; Z' K+ X& d: T7 m" ^ - (setq mdashlist nil) w9 f3 e1 E, c2 o
- (setq ltlist (tblnext "LTYPE" T))# \7 A1 |& ~) m; A
- (setq ltname (cdr (assoc 2 ltlist)))
# N1 p6 a$ A% |3 [1 f/ p - (setq ltnmlst (list ltname))8 F( |& V( q( o5 `4 Z S m$ F% w
- (while (setq ltlist (tblnext "LTYPE"))
0 K: g) f4 b9 T! r+ O r; s - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
# {% P6 G- J {8 ]3 Q/ H+ E - (progn
0 @7 b0 P7 H ~$ v) R' S - (setq ltname (cdr (assoc 2 ltlist)))
) M& t% r- n- _3 L - (setq ltnmlst (append ltnmlst (list ltname)))
$ X" w% F' r! V+ d - );progn
3 T% C; Q" A' |& @6 U3 Z1 V - );if
6 Q5 ~! G5 n( P4 ]- m# ?2 L( X - );while
# r5 f) `8 E0 R6 D9 \; j* u7 c - (setq ltnmlst (acad_strlsort ltnmlst))
/ t+ G$ ]' p5 ]' m- Y - (setq ltnmlst (append ltnmlst (list "")));add by rk - r o! }8 z& U6 n, a) l% _& G/ v; {
- (foreach ltname ltnmlst$ [1 Y7 o- {, X9 f5 {: v6 r
- (setq ltlist (tblsearch "LTYPE" ltname))# H4 ] P; M5 \1 U* b
- (if (= ltname "CONTINUOUS")
2 q3 j1 Z$ s( f0 E& X5 } - (setq mdashlist (append mdashlist (list "CONT")))2 l& \- s0 B2 M5 H+ [3 O
- (setq mdashlist" k/ B8 f8 x' K. v
- (append mdashlist (list (add-mdash ltlist)))/ b' B9 g# f! p0 V& C
- ). k9 s8 N+ @0 \ i
- )
7 a5 p5 z5 X2 W' T# r$ v6 h' ^- A - )8 S( h" a0 b4 k7 U# C( b, _* K
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
' \0 T6 x) q4 o' s1 @. t4 s- C - (setq mdashlist (cons nil mdashlist))7 ^2 X. c- d% Y' O
- (setq ltnmlst (cons "BYLAYER" ltnmlst))4 ^* K# d& d: P3 k) k _# E; i
- (setq mdashlist (cons nil mdashlist))1 b" {; x E" F7 g+ E( o3 a$ ?/ T
- ): o. o& r; M6 e( r0 i' f
- ;;
) |9 k: g! M! A. N* R0 K; W- r - ;; Get all the group code 49 values for a linetype and put them in a list
% k% O$ M# y% @1 l0 i8 P - ;; (pen-up, pen-down info)
3 p) O8 t |% X% J- D5 r1 y - ;;
3 }4 V8 |0 ?" T - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
* r4 E; p5 m2 x; `& l, v/ _ - (setq dashlist nil)
2 A; u* F! ?! Q1 l( } - (while (setq assoclist (car ltlist1))
9 g: J: P6 A: L - (if (= (car assoclist) 49)0 ^! z8 \8 c# D& u6 g$ S
- (progn9 F% v5 e3 L/ p t, |
- (setq dashsize (cdr assoclist))
4 @7 H8 \) l8 a6 r - (setq dashlist (cons dashsize dashlist))
, M. V! Y8 t$ }. B# t6 o8 G - )5 S0 d, _3 L8 Y- r- k' g3 d4 z
- )
* a" i: V7 C. l, p2 H4 G- j' r - (setq ltlist1 (cdr ltlist1))
& O6 a0 `% D! Y* p0 V% N2 X$ m - )
" ^2 c) ^. c3 d4 y2 Z7 ]: [ - (setq dashlist (reverse dashlist))
$ Z6 r$ |# {4 Q - )' ]& c( d8 C" D9 m6 n/ T
- ;; R0 R0 U: P- y8 U; T0 T
- ;; Color a tile, draw linetype, and draw a border around it' C! H- P6 U. \, H
- ;;
, ^# I. f! W5 @1 h: ?* Z1 ` - (defun col_tile (tile color patlist / x y). u1 U: |2 ^( y% i3 ]
- (setq x (dimx_tile tile))
* E) d. q W% @/ ]8 Q9 A - (setq y (dimy_tile tile))
6 G4 p5 ]. X% \ - (start_image tile)2 n Q1 w' [! k' S
- (fill_image 0 0 x y color)
9 ~' H7 m2 J* m3 D! }" M' L - (if (= color 7)
& F8 M- P0 v' b3 v% e) @3 \2 U - (progn) R# u9 g0 P# S
- (if patlist (drawpattern x (/ y 2) patlist 0))2 y) O- Y; m9 G
- (tile_rect 0 0 x y 0), f" g* }8 g/ `6 d
- )
, F2 w5 \6 ^& _% P+ z# U - (progn4 k4 V% J4 ~0 l u) S' G, ~
- (if patlist (drawpattern x (/ y 2) patlist 7))
' y( `; j9 c+ {& ` - (tile_rect 0 0 x y 7): J8 R8 x. c0 Y: R4 L4 M9 n
- )
4 x* V# U# J* T$ d9 J - ) r* {9 ?7 ~1 R$ n
- (end_image)4 t0 m2 {( a! t$ O) P, K3 j
- )2 P5 {0 H I8 J0 u( z' l
- ;;
( }6 @3 u3 V2 i' g - ;; Draw a border around a tile5 I2 D5 b& J; W+ n5 g' s
- ;;
" z7 g( g1 |, @4 n' f t - (defun tile_rect (x1 y1 x2 y2 color)3 G5 {8 d6 r" e. _# H0 y/ e
- (setq x2 (- x2 1))
4 A5 S* Q* h$ }4 Q: N - (setq y2 (- y2 1)). L n4 z' `4 Q3 i9 P
- (vector_image x1 y1 x2 y1 color)
/ \+ R3 h: E3 @. V+ w - (vector_image x2 y1 x2 y2 color)
# A" p% R2 Q2 t; `; ] - (vector_image x2 y2 x1 y2 color)
9 {" S1 ^# r2 d - (vector_image x1 y2 x1 y1 color)
2 F, X% @8 A# _9 N3 Q - )+ @" {0 g; F$ N
- ;;
4 c6 q& ?3 ^5 I* r' L6 O - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
{# E; a3 A: ]: f - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
# F# n+ ^8 T- T( b6 T - ;; list of numbers that define the linetype, and color is the color of the
& p' U3 r1 A* `! Y7 e. Y - ;; tile., E7 Z2 x1 Z0 ?4 x: c+ c0 n
- ;;
8 U# U9 ^0 }% l% X5 u - (defun drawpattern (boxlength y2 pattern color / x1 x24 E5 ?( o6 a, e3 a
- patlist dash)8 {; ?: j* g4 M) ~( G7 J3 B0 N
- (setq x1 0 x2 0)( h0 P- v# G1 Q7 O8 t3 O
- (setq patlist pattern) v+ d( @2 V, g+ ]% |
- (setq fx 30)
$ n. U0 y8 D8 J% _& _% {7 D - (if (= patlist "CONT")! ]# _! y' ^# a4 J# x
- (progn7 J( s( m( h0 _% Y" M
- (setq dash boxlength)
8 `8 j2 {4 k5 @- L5 a8 l9 H - (vi)
1 e2 K" F9 i0 q `& U5 M! r - (setq x1 boxlength)) s" a2 c& T$ s: q- {
- )# v2 a, y/ D/ [
- (foreach dash patlist
5 |3 _" E. p' G( t& W+ B - (if (> (abs dash) 2.5)
* F! R+ F5 w) ]: ` - (setq fx 2)
% R! K; ~2 j5 n+ p6 R - )
! R# d2 `0 u3 n. k9 Y. Z4 a - ), i B, Y) I* b- a' W
- )3 e0 a" y4 S+ W
- (while (< x1 boxlength). R5 k6 W4 m: u, |* c6 o7 O9 p
- (if (setq dash (car patlist))9 h# I9 E+ w6 a
- (progn
" K$ Q9 r6 r6 m+ d$ \2 ~2 Z; U, l - (setq dash (fix (* fx dash)))3 M& X% [, W% D: W) u& T0 C0 k; i
- (cond( g4 s- U# V3 A5 ?8 r
- ((= dash 0)9 V/ |9 C) t: e. _- F
- (setq dash 1)6 C4 R! L9 V3 \( X) C( J1 \+ ~
- (vi)9 s; } n+ Y5 H6 S( D( b; a
- )
: B# R+ I0 T0 O4 y8 \ t+ n) @ - ((> dash 0): y0 } d8 P4 c+ s. r7 a
- (vi)( L: T+ s+ [ p" m& B; k
- ), U9 X1 L+ l$ r4 `. i# t
- (T* }9 s$ `' C4 ^
- (if (< (abs dash) 2) (setq dash 2)); d) @$ _7 t% n2 L: S* b- D s
- (setq x2 (+ x2 (abs dash)))
* c9 C2 d0 O% F: Q2 i" ^1 ?) N - )
) z ?$ W( Q9 [6 k9 z - )
& P% N! ]( T: O) h - (setq patlist (cdr patlist))0 X! X7 W- h( B" o: h
- (setq x1 x2)1 w; j2 v$ d9 R# T, Y/ s; l, V
- )& j0 \) j7 V% U2 Z7 N5 I& \/ V% |
- (setq patlist pattern)
/ g9 m8 e+ N; }9 o f - )3 p/ ^! ^+ M, ~$ d5 X: G
- )
6 k N- i2 {& K; f O) N3 q# c - )
+ b$ Y- T, c3 }6 Q5 i& s - ;;
! D1 J( @7 E/ L1 E% } - ;; Draw a dash or dot in image tile
: D6 E9 i+ X: l- e2 [; ^- R - ;;4 G( q! A/ a N+ P
- (defun vi ()
7 a8 t( w& o# k3 n3 A+ b - (setq x2 (+ x2 dash))0 \4 X6 n( }, u( r- ~3 z
- (vector_image x1 y2 x2 y2 color)
1 }. @, R/ g R# P- U1 [' [. @ - )
) O7 Z1 s3 K' h, n: r. h - + o5 ] @* X, i. V, ~7 h Q/ l& f
- ;; This function takes a selection and returns a list of the color,
! d, G) ?2 G$ U - ;; linetype, layer, linetype scale, and thickness properties that7 y# U& U" C' m
- ;; are common to every entities in the selection set - (color
. v+ g; [) ?, J - ;; linetype layer thickness). If all entities do not share the same
" f# M# ]- U; r - ;; property value it returns "Varies" in place of the property* Q" \) p/ x* \" u; T, g
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
7 I: z' u& b" o) S2 k" ~# p - ;; The last item in the return list is an integer flag for the
9 a. g9 K: v7 R' f! l - ;; homegenity of the selection-set object types.* h$ v$ U' T3 u V$ c
- ;; 1 = All polylines% Q; x, ~0 j/ j+ F- S7 {
- ;; 2 = All text or mtext or attdef, or a combination of the three
# H$ Z6 v8 E- s. T - ;; -1 = Any other mix of objects, y4 L9 K5 b& c- w
# p; X! o8 t) p# g% X! ?! V1 b- (defun getprops (selset / sslen elist color ltype layer ltscale thickness$ X+ h# v7 P" q! w
- width elevation height go ctr $ y. e" R" R: ?+ `' I; o4 x
- eflag
9 }3 M& u! Z7 l" J/ w6 Z9 T& C - etype temp
# c6 ^7 u0 w+ u) g - txt_ss ;;;;rk 11:24 AM 1/30/975 g1 M) e4 z- z4 R2 T: U
- tmp , K! K* u4 ~* _7 G2 B6 E
- poly_ss
" y8 `4 F! ]% L6 C) P0 T - style* }( S! C1 K8 Q q: h4 }8 K
- )6 v, N2 u8 u5 {8 b& C! j
- 0 b. u2 g6 j, v* B
+ Q+ E1 f& w9 y/ e \5 R- (setq sslen (sslength selset)
% r3 {( ]: L+ W4 O5 e - elist (entget (ssname selset 0))" l2 v+ d$ \$ k# I" v
- etype (strcase (cdr (assoc 0 elist)))0 ~5 Z+ K/ X) c" t
- color (cdr (assoc 62 elist))
0 f* S, G- c5 B! Y: i - ltype (cdr (assoc 6 elist))
& b* i2 K) _$ z6 @& R/ p7 Z - layer (cdr (assoc 8 elist))
/ ]& _ T6 k5 q - thickness (cdr (assoc 39 elist)) @, f9 \* Q$ V3 A
- ltscale (cdr (assoc 48 elist))
6 x( A S/ o2 f" u' @6 ]4 c - );setq( S. W3 q" \8 G; s |, o- a
- 2 s1 n& [( \7 @) ~. n5 m5 p, x
- (if (not color) (setq color 256))
6 x' R9 d- z5 e' \9 g% ?1 f - (if (not ltype) (setq ltype "BYLAYER"))) D9 }! W3 ?1 q; a8 P' U, C" l
- (if (not thickness) (setq thickness 0))
+ r" ~9 W! d1 Z5 ~; V5 a - (if (not ltscale) (setq ltscale 1))
% @' g; d, m% Z$ O" s) J% K/ F5 V6 b
3 Y. H N1 i/ L3 I" G- (if (not width) (setq width ""))
+ M: g9 v! r1 z3 o - (if (not elevation) (setq elevation ""))
t4 L) \4 @5 E. ~* n - (if (not height) (setq height "")) s" |: A4 c$ i3 T- A' g$ ^
6 S/ U- J6 [. L: I/ G* }- (setq go T - F4 F4 K9 |. ?4 ]1 Y! K& P/ _+ D
- chk-col T / k9 }) M5 {* K# u& U1 o/ l
- chk-lt T
2 }8 [7 K7 D3 f `* e5 Z' N - chk-lay T
+ j* i) I" F- N% O7 C - chk-lts T
. e9 K& {: z3 N8 k - chk-th T
+ ^1 e3 t- j+ M- h% G - ctr 0
) f3 W* r& t5 c! s+ f; y1 K - );setq2 c" C+ E) c0 h. y
- / T2 l+ j* \, i! K$ ^6 l
- ;; Page through the selection set. When a property1 A9 w6 Q1 V Y( l- Q' i- L8 e# }
- ;; does not match, stop checking for that property.
9 d7 p# J/ Z8 N: W4 Y7 _4 g - ;; When the selection set is not homogenous, stop checking.* w2 s, j7 d, W8 i1 U# ]
- ;; If all properties vary and the set is not a type 1
0 C- W! X) o9 s& _ - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.& f: U; ^( h7 n, P6 M, r5 N- L' l5 I
9 }- J# b' Z$ S3 A6 C9 Z! G& ?- ;Lets set the eflag so we know if the selection set includes any
$ k# g! u( [0 o! Z _% Z* m - ;combination of polylines, lwpolylines, text, mtext or attdefs.
2 b+ K# H3 P0 a1 D
" E. Y8 U1 [' B1 s! i, B& `6 Z( k- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
' p" Q& H7 j7 J! H. p3 m3 ~0 P% u - (setq eflag 0). i9 g8 w7 N6 O
- (if (setq poly_ss
! m. r t8 J' i) Z$ x - (ssget "P" (list '(0 . "*POLYLINE")
( w% `" k- N5 T2 ^ - '(-4 . "<AND") + R# }6 Q' A" p
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
( v8 J7 P& T, F! g - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")4 l9 p7 X" k3 g! ~( k
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")" F7 w3 P! @! S: K$ x: P3 r/ @" T
- '(-4 . "AND>") . A" p* r* r4 Z$ l, @- ]1 m
- );list! @' N5 ~% U+ g6 G& V6 t
- );ssget get 2d polylines (legacy and lw)
4 H: b: i, V% S0 {# V5 j/ w# O - );setq* f% \. V8 P X$ v8 S
- (progn
* W0 x* v( j1 d6 N/ j5 c - (setq eflag (+ eflag 1))
8 z/ \0 m8 x, M1 Z -
- m' `, e: x; M. F) B. I# T7 Q' A - (setq tmp (entget (ssname poly_ss 0)));setq
" b5 V9 H7 k) I: k" J' `! A. x - & a2 ~) V; X. P3 i; ~7 E4 s. m
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
9 I3 c! l# P' c. [- d6 q - (setq elevation (last (cdr (assoc 10 tmp))))
' O4 B" A9 Y7 e, B% u9 d* B - (setq elevation (cdr (assoc 38 tmp)))
1 z* Y$ E. {- q0 [- f; t - );if! V' L; C4 O& g' o1 |
- (if (not elevation)
L0 @6 _: R. c9 q - (setq elevation 0.0);setq) m# [; \% o/ q0 O5 ]
- );if0 \( b! t; S9 Q M& \
- 3 \8 G( x2 y, K6 Q& Q. b$ n
- (setq tmp (ssget "P"
: ?* i* t" N" l: _1 N' I. u - (list
/ N$ J; F) b, K& }4 H: ` - '(-4 . "<OR"), V% h$ R# Q7 p2 V: l X, Z
- '(-4 . "<AND")
- ]6 u5 A4 L( R' `" O' B2 B, f - '(0 . "LWPOLYLINE")- `( W* B! o6 m& L3 b: Y5 e$ q
- (cons 38 elevation)
7 X! U- ?- F5 x! O - '(-4 . "AND>")5 X5 s* p% l( j! [7 Y
- '(-4 . "<AND")% }2 m# u* l; {, _( h
- '(0 . "POLYLINE"); Z. v: W3 o& ]. M0 ~, H2 `
- '(-4 . "*,*,=") \6 Q6 h8 e$ j( ]- g' [. j: z
- (cons 10 (list 1.0 1.0 elevation))
4 o! l% F' r- |) K+ ^& L% Q - '(-4 . "AND>") 6 r" O( T0 f% A7 r# ^2 q; i% @
- '(-4 . "OR>")* e' O& S9 t2 }, g2 i1 ~
- );list$ k7 X* R3 _( N# j9 Q8 u( Y# I; }
- );ssget6 x6 n/ z- s5 Q: P9 y
- );setq0 a" r( b& V( Q/ H
/ ?. T5 P2 T0 V* M) l- `" c# e- (if (and tmp & [) M+ g! E' d5 C$ |2 ?
- (equal (sslength tmp) (sslength poly_ss))& S& N. Z3 r$ G, c9 q1 I
- );and# N& o* N( G4 g% s1 j5 a9 f
- (setq elevation (ai_rtos elevation));setq
, x5 Z+ b1 f2 x - (setq elevation "")8 u w5 i. z4 O8 w! z4 R4 V" x8 _8 z
- );if* T: b' u. S1 \; ` z6 J
- . V3 f/ e# ]8 ^: t
- (setq width (pl_width_getter poly_ss));setq
( ^# y% V. l2 D( _# w* U( ]* U - ) [( G$ z1 T' K8 g$ o V' p
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
* L8 r4 I! V0 q( X& o! f - );if
; l4 M% F2 d" h% G, o6 C9 s+ e - (command "_.select" selset "")
$ T% v7 o5 e6 w; X0 ~ - 5 K. }$ {( R- L/ ?+ T
- (if (setq txt_ss ) J5 a% R8 C# d# ?0 [4 w9 X# m
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") : m5 `" A$ d. S: p* u8 ]* j) K
- (0 . "ATTDEF") (-4 . "OR>"))1 {- u g+ c$ h0 H+ m
- ) 8 \) ~' x# w, q2 v( z, [0 B
- );setq( s& H2 a) t% I3 ]- C
- (progn
~7 X3 Q% L5 k+ E% x! z1 G; z - (setq eflag (+ eflag 2))
* J$ d+ j$ J1 t8 N - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
1 d/ m: u! x: f5 k& R& b - tmp (ssget "P" (list (cons 40 height)))
& [+ P! x# V: m; Q4 h+ t - );setq
, e+ w; j, o8 }1 [ - (if (and tmp
# m1 |5 p- f& r/ R - (equal (sslength txt_ss) (sslength tmp)) + P9 O' U, {$ g+ g% z1 U; h
- );and
& g" F6 _& V: x+ n) W8 x7 g - (setq height (ai_rtos height));setq ;@rk need to translate from float . }+ {. |1 [5 q1 T8 Z( F/ F( u
- ;to string and back again easily
% d7 n* C ]+ d4 r) z% z" S - (setq height "");setq else the height varies
0 @" f; j1 J! U2 `9 v - );if
* x" Y6 p! ^1 B - (command "_.select" txt_ss "")
1 G0 @% K0 {# U9 h& ^1 N; A - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))2 f- ~) X& G! G- a5 _! }# ?
- tmp (ssget "P" (list (cons 7 style)))
! z0 q+ @. j; x0 B. x2 m0 S1 {# ], q* r - );setq
$ Z5 u' ~0 |. M: A. e - (if (not (and tmp
, b8 @9 u! G8 g9 u* p, R - (equal (sslength txt_ss) (sslength tmp)) 6 v/ r# l9 i& o# q& i( }/ b
- );and, h/ V [2 Q% H3 a( C2 {
- );not! ^. B4 w6 q2 T! Q" ?$ \# S
- (setq style "");setq then the style varies
/ T; U4 h5 Q) q! [! |/ n) N - );if
2 T1 B% B. V U3 s9 b/ l1 h - );progn the text type objects are in the selection set
1 ]! X7 N* Q+ E" I# [- |8 ^ - );if
6 E" Y! _+ \( X8 M1 q3 ^" H5 e$ K - (command "_.select" selset "")
1 E8 ?- ?9 i; u L0 G7 k# | -
6 F6 O8 S0 `8 c S1 O1 H - (while (and (> sslen ctr) # u- L) g4 p; d m# i5 {( t
- go' X, f; |) Z% Q' O; h
- );and
' t- N( z1 `7 k; v9 ^ - (setq elist (entget (setq en (ssname selset ctr))))
/ C0 p. r7 Z$ } F - " s/ S/ ^! O$ y! K" i. ?4 F% g
- (if chk-col (match-col))3 U% E7 A1 h/ D1 z$ P! ~2 I* x
- (if chk-lt (match-lt))
7 {5 e) A1 N& c1 S- Y7 Q - (if chk-lay (match-lay))9 [" y: P3 _ `0 J
- (if chk-lts (match-lts)). b; F* g4 b7 N- ~7 ~2 \; g: L/ T
- (if chk-th (match-th))
7 S" z q& {/ [# `( H! h - + g+ N: H9 C3 L$ c3 t! t/ m
- ;(if chk-etype (match-etype))
2 T# Y2 d5 `% [8 C) C - 0 }( P+ v( b3 r- Z, u; x$ b0 r( M
- (setq ctr (1+ ctr))
" E/ b$ w& y1 Z/ H! B! e/ R" h7 p - (if (and (not chk-col)
' a, t, J! o S8 `- U9 w - (not chk-lt)/ o& v- q" N! F! c
- (not chk-lay)4 A- A3 t! n* i
- (not chk-lts)
6 H$ [5 @9 @+ W/ m2 J) W - (not chk-th)
0 H3 p0 W# @1 y' e& Z1 ^$ P$ r - ;(not chk-etype)/ d0 I5 \* ~4 R
- );and( x( `, E. m, M- M, Y
- (setq go nil)
/ _( r( r4 t d2 k( B L- g - );if! _2 k* F3 U% U/ D( P
- );while$ j2 C8 F( f/ V# W- K5 A" d$ E6 P4 n
-
2 {; w+ w3 q, @( v7 S; D - (list color ltype layer thickness ltscale
2 O- Q( P' t6 y+ C3 \5 }( x - width elevation height eflag ; N5 f3 v; d3 d' D3 z
- style poly_ss txt_ss. j4 J9 |' W: {2 U7 T) _8 ~: s. F: Z8 `
- )- E' `. A% [, Z( |/ \* t5 ^
- );defun getprops
8 R+ s! B4 \/ X) I4 o2 P5 }
. F8 B$ V) M/ g6 x: p1 ?- ; This is a speedy little routine to tell whether the polylines in
. b7 s1 d0 \5 z- t' s J/ M - ;the selection set argument are of varying width or a constant value.
- \/ K' Z; u9 n& H) |, u - ;Looping through the vertex's has to be done for old polylines when
7 T0 k) o/ }* _) P, _" E7 y - ;the polyline header has width values of 0.0. Basically, in this case, $ g2 l& [5 s3 e) P3 u
- ;information in the polyline entity header is abmiguous. Width values
2 E8 K& S# f" N% `# B, C( ]0 f& |7 ^ - ;of 0.0 in the header entity could mean the polyline has a constant
! B# O/ @0 f0 K6 }$ m" o% @2 t6 t - ;width of 0.0 or it could mean that the polyline has vertex's of varying ! p+ E* V A# h7 d V$ M
- ;width.
' B) o' e. ~4 ^$ q/ W - ;
2 y! E0 d, r2 Y( m, n - ; It's all in wrist. Err a.., I mean it's all in the 'if'
, a: n5 X9 k) c" d+ _+ X/ J" q - ;;
. p& \) c; R' g) v8 C" k - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)" |, b" A% b5 W6 D" _8 i m" r5 ?+ k
! T0 A k; e j; A! X6 V- (if ss & |- `% A, h7 F4 ~! S3 w
- (command "_.select" ss "")9 @ k5 d& C6 d- l6 g
- );if
3 m/ N, R" s, ?' | - (setq width ""0 s/ h6 |$ A8 n* A9 I7 i5 e# d
- flag nil* Y( `# h$ Z; x
- flag2 nil
$ G* Z1 i* o% g$ r {( e - );setq
h; b8 Q% K5 i# ^ - (if (not
- |2 @# i1 s% A& `3 O9 [+ I% k. K! C - (and ss5 o! \/ p% u+ ~
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq. g- i3 h& e. ^8 k
- (setq na (ssname ss2 0)
' p- |8 Q4 h7 p2 j$ g. X( j/ R - width (cdr (assoc 43 (entget na)))
. V! P- g! X/ Q! i& I# e3 D, y - );setq
! z( x" P6 x# A/ M/ D: V( x) w - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")6 D& z9 Z8 ~- ]
- (cons 43 width)4 h( D' Q) H. y* J
- );list4 n! {* J) L4 ~# k/ l3 A- s+ v
- );ssget. j6 @ V1 P/ f5 D- }
- );setq% z8 N$ |/ P) e; y
- (setq flag T)
% z! k) L- l7 q3 \6 B7 w - (equal (sslength ss2) (sslength ss3))
. s+ c( w& |" l9 B( h3 J - );and
1 u) ~9 |5 o: o- l1 c; w - );not
; L8 K1 X5 T% t, S8 D6 V - (progn
. y% ]: F) N4 g$ U& U! f - (if flag
7 ~; H: |7 \9 U& E4 W# N8 Q6 S - (setq width nil) / _* t$ \: [3 j
- );if
! l' c6 J; e7 @0 B+ P2 d+ T - );progn
* Q* l2 W7 E" o h; m" o - );if ' U# r( g% [ i, m+ b! w
-
* r6 v9 B* p. B0 {2 O3 f" R. a - (if (not
, z7 H& o6 `6 C' n% l - (and 3 b# r$ O$ J/ E6 X) ^
- ss
* ]& y! Z' g$ `5 s6 Y - (progn (command "_.select" ss "") ; Z% l: Y( K# e9 g" t1 `5 z
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq0 y, h6 T# ^* W; T* W
- )
Y) ^$ P R7 l; E" W - (setq na (ssname ss2 0)
, z, O, s5 \0 M! n9 i7 B - e1 (entget na)
$ Y7 _/ L! K( _8 A - width_a (cdr (assoc 40 e1))
4 v0 m6 V8 ]2 c1 v4 M' b4 R8 { - width_b (cdr (assoc 41 e1))0 H8 b# y1 T9 L; v* z' ^1 }
- );setq8 t( s O7 M& l N* r3 }
- (equal width_a width_b)% z- z. M' a" ~
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
9 q8 \9 e: f$ |$ B) x5 w4 S: n - (cons 40 width_a)
9 q0 j* K( h/ @9 ]! U - (cons 41 width_b)8 K2 g8 g, m/ E$ ]! J( @
- );list! ?) ?4 U2 @& K% e' e* |6 J" f
- );ssget
3 p6 x1 q5 X5 l( J* n1 @& K - );setq1 ^ B) ^ L1 I0 a
- (setq flag2 T)/ n- R5 O( Z. w# N# g7 ^* u
- (equal (sslength ss2) (sslength ss3))
, D8 X' m0 V: o/ W* o6 X2 K5 H - );and : R( \; l& {" W, W8 r3 j, \' [
- );not 7 f4 z, |& ?. d: E) m9 X
- (progn+ Z; |/ H( D0 f6 k& X5 |
- (if flag2
/ i5 n& g$ s: x - (setq width nil);setq
* T9 F R# m# ~3 E" [ h8 _ - );if( |5 ]" O* j9 e8 L; x1 `
- );progn then
' i" }% p; w1 I; D, r - (progn
% W8 a; H2 ~6 U. E - (if (or (equal width "")& _( w+ d. s5 T# H4 m d* e
- (not flag)) s, O$ t3 ]$ t1 Q. A
- );or+ D4 i* j: Y6 y% \. d
- (setq width width_a)
: r& m: `- [' @3 o5 h) p4 I - (progn. b3 H# l- U* F1 t( C9 k7 H
- (if (not (equal width width_a))& B5 @/ O3 }8 }9 E$ X
- (setq width "")
; H- j* }, O, o - );if
9 b6 o6 `- `# j3 @0 \8 S6 S - );progn0 {0 c u; i$ s! T
- );if5 Z; w9 i5 e* X w' P* F
- );progn- S3 S h! @% U( T; j
- );if( P9 f% w0 T3 _# y" b+ k3 u
-
( ~0 Z" B7 a1 l1 C1 ?7 d w
1 s8 T" x$ e: ]' F- ;now for the special handling for old polylines
/ @9 K. q; g9 m0 N$ Y2 ^# r4 w - (if (and width 3 C, q$ ]2 f8 I* p7 F3 C
- (equal width 0.0)
, K2 Y' z. e- q2 @1 e( Y2 r - flag2
& m) j1 v7 J# z9 v - );and 2 e- L2 _/ t5 J, G& c
- (progn
; g- k! L0 \9 a& G -
. T8 a6 x) V1 H9 I) ]" l+ g, W - (setq n 0);setq
) t0 M+ ~( k* {, [! i3 y - (while (and (equal width 0.0)) a8 b: E/ T. _" }
- (< n (sslength ss3))9 Q# L& k5 q6 O9 p
- );and
" J. j7 R- ]1 h - (setq flag nil5 ~. [- j8 C( a7 E) D; C
- na (ssname ss3 n)$ K+ F4 o2 m' t
- na (entnext na)
3 H6 C% g$ ^* b2 ]) { } - e1 (entget na)$ h" J7 x8 P# x0 s% Z
- );setq0 s. Z! c' p! S# D1 e$ n
- (while (not flag)
0 o" L8 x1 S! p+ t7 S. B3 k - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
5 Y6 C2 x( g9 R3 |* I( \0 x# \6 D - (not (equal (cdr (assoc 40 e1)) 0.0))
; @7 `, h c+ D' b2 N% H - (not (equal (cdr (assoc 41 e1)) 0.0))
% P6 R5 I* k" b z - );or5 |. [1 O1 P) u7 P9 D1 X0 b
- (progn
" ?1 C: D% C- U/ L" g. n/ \ - (setq flag T);
5 \/ l: Z# |/ m) F - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
' f8 O/ P* x5 o [! E - (setq width nil) ( p* J- Z5 y4 U2 A4 V. A
- );if
+ ~8 n& a5 d! P& C+ T* G& F* I% x9 l6 ] - );progn then jump out of the loop* C* E; k9 d% Q Q# t( T0 l4 [
- (setq na (entnext na)
1 i: G6 F# ]/ q" _4 k - e1 (entget na)! W! k" ]. N+ Y! W/ g. q( f" l- d
- );setq 1 ? y$ P; U# c* W; C
- );if 2 N7 i! T @4 D2 Z
- );while) \' u, |0 p$ r: w( L' a3 E
- (setq n (+ n 1));setq
y: L, k+ U3 [- t# _ - );while
2 T# q' n$ d7 X5 e4 b& m - ! z% V/ X) g& r% a2 S9 K' M
- );progn then it's a legacy 3 ?1 g$ A3 [( o! |4 O8 h
- );if ;legacy polylines that may have varying widths 2 V: Z4 V- Y/ K* g( {
- : R- h* F5 q6 O4 [0 i
- (if (not width)* u5 R8 D0 d" U3 n9 p8 o' ^
- (setq width "");setq2 }1 T+ j+ n! _7 O' C
- );if
. I, W6 I0 F1 B* f. X - (if (not (equal 'STR (type width)))9 n: i2 l1 A! c3 y3 y
- (setq width (ai_rtos width));setq 5 x: K, @4 N2 Q; u7 D
- );if 1 {4 H5 @: R _' o# |
- 0 R6 I/ V0 c2 B) f V
- width
1 }. o: e" q' P }, U [$ e3 } - );defun pl_width_getter
7 ~1 i. b2 O3 y, A8 s: i. t( ?. f
4 S" \. V: _+ Y q-
, N8 g1 \: c; Z$ @ - (defun match-col (/ ncolor)
; d! V" ?; X8 G5 k! P7 j; U2 G - (setq ncolor (cdr (assoc 62 elist)))( I! p4 t6 W/ D" K m" E! A
- (if (not ncolor) (setq ncolor 256))
$ L5 m0 t+ g& }) p% \. c" [6 s% | - (if (/= color ncolor)5 L% A6 Y5 z! p! X, M8 z' ~
- (progn5 N( r# w7 C* S1 B6 m' r# F! j/ Y5 p( f
- (setq chk-col nil)3 n/ U9 g+ t1 [& F
- (setq color nil)
# Z6 [- s. L* o1 I. U, Z - )
( i+ U6 l- }2 {5 H$ g0 L5 U& Q - )0 o) o; S4 A) O* Y8 L4 D* ~% C8 J
- )7 k% @ @ _; O; t3 @9 i! s+ {* P. l
- # B* {$ Y$ _$ S7 Q
- (defun match-lt (/ nltype); J# o l% s9 f: _- [
- (setq nltype (cdr (assoc 6 elist)))
# g; D6 N' U$ P - (if (not nltype) (setq nltype "BYLAYER"))# a( N) v! o! J, C
- (if (/= ltype nltype)- H9 u$ d# M3 y, s8 ?8 v, U
- (progn- O( | f8 ~/ T, f/ c
- (setq chk-lt nil), a" O0 [0 z; a; W
- (setq ltype ;|MSG0|;"Varies")7 m; B! j; [+ b7 i x
- ) S. V$ L! D; ]+ P
- )
' l$ `6 O) A2 w0 ~3 S - )! t1 o7 [/ @" p) W* b
0 K3 {. P, f+ o: o8 `2 M; B) d& |- (defun match-lay (/ nlayer)
$ d# z" }- m, z5 w: E - (setq nlayer (cdr (assoc 8 elist)))
5 g7 Z6 n' W, B9 ]: E5 l; ]; {9 ^; q - (if (/= layer nlayer)& M$ I5 o9 f0 @0 D% m5 x& s; u) ?
- (progn1 _' x, ^- x& A+ l
- (setq chk-lay nil)
; _8 [3 z# O. J' b7 l2 }% q8 b - (setq layer ;|MSG0|;"Varies")
( v; V6 U3 W$ G8 w. i+ z/ a - )
2 }: T: A) d$ T0 r - )
6 l! y% j9 D% S - ), z* w3 L6 W7 O
- 8 D8 R8 h5 X; @: l, h8 j0 q
- (defun match-th (/ nthickness)
/ y* A8 z- O4 N0 N! j - (setq nthickness (cdr (assoc 39 elist)))
5 o4 b$ q4 R5 w- V5 T7 n' K! U - (if (not nthickness) (setq nthickness 0))
* u7 [/ Z9 j( ]9 n9 r1 M) \ - (if (/= thickness nthickness)
4 o* t6 X: K4 Y: k3 ]! Y2 _) y - (progn1 a: O# M- `6 q0 W
- (setq chk-th nil)+ E7 j( K9 m% d0 P, Z0 |, _
- (setq thickness ;|MSG0|;"Varies")$ s* |! M- g9 D3 @
- )
1 N% g, m9 |! l _( w - )
7 ?1 F, o' e2 q) K2 o. [6 ] - )
+ H% I) e2 A7 X/ Y0 s# Z8 S! p$ @3 t - - I: ]& [' E; b( _ ~, F
- (defun match-lts (/ nltscale) N: `& f& g' ]4 l
- (setq nltscale (cdr (assoc 48 elist)))
' v; P( X3 q2 `* d7 b. F5 Z. X& x - (if (not nltscale) (setq nltscale 1))
( r7 ]# f2 s5 [. A1 P - (if (/= ltscale nltscale); F# J2 T H. j/ [
- (progn! i8 v" I* P. V! H) F2 q" l
- (setq chk-lts nil)
" ?% w) O" V/ c* I0 ? - (setq ltscale ;|MSG0|;"Varies")
4 ]. k! S! y' ]. x- Y; ~ - )) o& I6 K7 M6 |* l7 X% i! ]9 ?% t
- )6 l* ^, H$ k z* T% Y- R( U5 K
- )
+ H) v$ d; I [* H
9 i0 U5 x/ I+ L/ g- ;;7 @; \2 B: ^) w, m
- ;; If an item is a member of the list, then return its index number, else0 F, E: w( l1 S
- ;; return nil.
* Z( L6 H: Y# S/ ^' s/ L& S - ;;
; O( L! K& r& k6 ]8 f. J - (defun getindex (item itemlist / m n)! h0 p0 F1 L$ E8 H' G
- (setq n (length itemlist))7 k4 T/ m3 U+ `* T" R2 N1 R; i
- (if (> (setq m (length (member item itemlist))) 0)
! Y/ U' N3 S) i& {7 Q. E) H - (- n m)* {+ ^( A* c* z/ \; @0 s/ J5 H
- nil7 P) P. `7 Z8 T$ Y9 i6 n
- )
7 F$ i/ I5 T* Q8 W/ y - )
) V: {; i8 U" y; d- Y% D! | - ;;
. [) V( M$ s3 m/ r2 {7 M% V/ B# T - ;; This function is called if the linetype is set "BYLAYER". It finds the2 T- a( ~# P, R2 E
- ;; ltype of the layer so it can be displayed beside the linetype button.
6 b) ~2 T, u0 M4 {! M1 g+ V% N% d - ;;8 K, f1 k6 C8 U8 y
- (defun bylayer_lt (/ layname layinfo ltype)
( m1 C/ x) ?0 x) d - (if lay-idx3 w L) b/ t1 ^! J: q6 H
- (progn
! Q* d: }! B4 S C - (setq layname (nth lay-idx laynmlst))- o3 e+ ~$ O/ I! ]& @
- (setq layinfo (tblsearch "layer" layname))
2 n; Q/ [$ ~1 j- H8 G - (setq ltype (cdr (assoc 6 layinfo)))
, ]1 v, z3 c Y% f - (strcat "BYLAYER" " (" ltype ")")( d6 Q( A. M; ]* O v% N- N6 F
- )
# a0 J# N3 m; H* B* a5 _1 m' V - "BYLAYER"' W/ S$ B+ O: v4 v6 _& c
- )/ K! \2 T. i" O% ~
- )( M8 f4 {: b" m; F$ } _
- ;;: z, U% e g. `
- ;; This function is called if the color is set "BYLAYER". It finds the
+ `9 D" X5 R+ r" Q0 w. R; D - ;; color of the layer so it can be displayed beside the color button.- l& ?+ _1 j( W1 L; W+ D. O; Y
- ;;, ?+ y) B& W& o7 I3 U4 n
- (defun bylayer_col (/ layname layinfo color)# i; h; l/ E; z: K1 |4 O
- (if lay-idx
, J4 ?1 M3 _& M/ Q7 d# X; I - (progn
4 N- x7 S0 n0 j. ]! I - (setq layname (nth lay-idx laynmlst))1 |/ b4 _8 @% a7 m' Y6 `% w
- (setq layinfo (tblsearch "layer" layname))" c+ d h) i+ e- t$ x$ C* ?
- (setq color (abs (cdr (assoc 62 layinfo))))
5 B% q* _) X6 Y8 T* g4 p - (setq cn color)1 t1 X( P m9 s" P
- (strcat "BYLAYER" " (" (colorname color) ")")' S. Z! b9 q! i
- )
+ v% k# p% d/ b/ p5 D5 r2 }6 ?. w - (progn1 }4 j$ \) M( f$ W1 ?
- (setq layname elayer)
- Y1 O6 M5 P+ G0 O2 V) P! H - (if (and (/= elayer "")5 Q: Z+ ]" |* @- E" h
- (/= elayer "Varies")
% X, o" r3 R$ s; F+ K, U; R - );and
" G5 q+ m: }3 j* y$ V0 g" z - (progn+ m8 H s! G8 \# y& Z" C1 t
- (setq layinfo (tblsearch "layer" elayer))2 l/ [" N5 h, y
- (setq color (abs (cdr (assoc 62 layinfo))))
; n$ m/ {. e2 N- U( U$ i3 `& s' b2 O - (setq cn color)) w* k* y% q2 ?
- (strcat "BYLAYER" " (" (colorname color) ")")
7 j3 x, `- i( s( d - )
# Q Q% r7 i t x9 Y8 ] - (progn
; _1 Y q8 l- I6 p( K% C2 s - (setq cn 0)
# h8 j7 s* X8 r9 d - "BYLAYER"
6 o Z' L6 E! _; S$ |& o - )0 S' ?( l4 d% S6 E
- );if
; {' Y( k6 |6 ~; M s3 T* | - );progn/ q: ?/ O8 m& v: V: A) ~3 H1 e
- );if
/ E- V! V' B, H5 G1 I - )
, k8 C4 _6 E) g9 z/ i - ;;* C' Q R/ y9 u) t
- ;; If there is no error message, then close the dialogue0 n5 u* K- v* V a
- ;;
9 t& I9 K. z/ j9 v5 P6 q( B' S - ;; If there is an error message, then set focus to the tile, D% T9 n3 E6 E+ V* L
- ;; that's associated with the error message.
6 `/ i+ ~9 u& U& S! W/ b - ;;
2 [* I' v+ I1 b" T* J" ~ - (defun test-ok ( / errtile)6 I* g, [ T* N' I% Y& X
- (setq errtile (get_tile "error"))4 Q Q( A( o) x+ E" r1 H5 h
- (cond
2 H3 f6 P! m3 C( | - ( (= errtile ""); v2 x% P; h! a: j W$ Y
- (done_dialog 1))2 D. @) A5 J/ ]
- ( (= errtile "Invalid thickness.")2 R9 B. b4 N$ `* Y9 {% B6 i
- (mode_tile "eb_thickness" 2))' m6 I2 D5 N" i/ _7 m) P3 f5 H: ?
- )0 |; @7 z" c: x% d9 X& E2 O! S
- )
% k7 M2 z. ^0 ~ d8 y2 [3 H! R: L - ;;
! h1 T }- @2 L" G# S3 P% i - ;; OK in main dialogue.
9 o9 Y5 L7 M; v/ @1 Y - ;;$ e6 D G% p: Z6 Y3 i, R3 A* e
- (defun test-main-ok ( / flag)
# E7 M B" e1 E/ y2 ] - (setq flag T) 4 M% K1 l* Q9 X. U2 b9 P- y
- (if (not (or (distof (get_tile "eb_thickness"))
0 S- |: @' [4 e - (= "" (get_tile "eb_thickness"))
7 U4 |( X( Z8 z: q v2 b9 s - );or
, x) n: ?0 q u7 W& z - );not! a2 E5 L$ A) r- S& a% ~
- (progn
* \! C4 R3 A& e) b. y - (set_tile "error" "Invalid thickness."); W7 U, Q( L7 F9 U
- (mode_tile "eb_thickness" 2)
' b, w3 S" o0 O( m" \, i: \. L - (setq flag nil);setq: C0 b) z) \, y8 I2 d: M
- );progn4 T7 e* F& F. M1 L' L$ b1 K8 w; G
- );if0 b$ m! k4 `: @) x
- (if (and flag; ^! \$ o! T" }& F5 \" g
- (not (or (< 0 (distof (get_tile "eb_ltscale")))6 n7 e0 [$ P! d' H
- (= "" (get_tile "eb_ltscale"))6 c: j+ K. c8 Q) Q* ?
- );or ; ~ D% h* E6 O- ~; q) b, q4 y5 F
- );not2 T4 `' \& e8 i6 s1 | c
- );and 6 `0 {9 h$ v- B* C' Y. U
- (progn* T' v1 P3 z- F+ z
- (set_tile "error" "Invalid ltscale.")0 l( e! `5 V7 j& r' Q& J
- (mode_tile "eb_ltscale" 2)
7 t! r- T; ?& r) Y9 \9 S+ u6 K - (setq flag nil); ( [# O) g* g+ l+ a* M
- );progn then" n9 B0 u8 w4 L- E
- );if F! i( C' j, D& Q5 z$ l
- (if (and flag' j" ~: Q* p2 u) E! h3 Q
- ; Don't test the tile's value unless it's enabled.+ H0 U2 h( }% i9 X
- ; We're not set up for the display-only value! m% `2 T0 D, r* t/ \* x% y6 }1 a& l
- ; of "" here in the error handler.* ^6 K% \0 u, _' Y
- (= 2 (logand 2 eflag))
& H: f. g) E! J - (not (or (< 0 (distof (get_tile "text_hgt")))
2 `# m: \0 U& X. t; J2 m' z - (= "" (get_tile "text_hgt"))
/ B/ @4 b* G8 F& Y* G6 D - );or: }+ `9 A, }6 c9 B$ c
- );not
! ^+ D5 N0 F$ N7 V$ `% F+ ? - );and9 b6 I) R! z% d% @! Z* G
- (progn
1 h5 }- v5 Y! O( v( } - (set_tile "error" "Invalid height.")8 |& W* F* ]- Z: u' X+ H) H3 l) H
- (mode_tile "text_hgt" 2)# _! {$ f' ] N
- (setq flag nil);6 \* R, h& a8 \1 r8 V' V
- );progn then
; Q( A* t6 f1 {5 s- X - );if
7 {0 ]) n" z0 p - (if (and flag
+ Q$ E) T* a# G G1 f3 p - (= 1 (logand 1 eflag))$ a* k9 O& r1 E9 i0 K5 P
- (not (or (<= 0 (distof (get_tile "poly_wid")))
' g: C5 _ M* O' k - (= "" (get_tile "poly_wid"))
% y, \! N' q( l, s, E% e! ~# ~ d& T - );or
7 L$ c) Y, m! P - );not( M' ]5 n0 E1 q& G9 r& E
- );and
w E6 J0 l: k - (progn9 t: P% _" j+ i) m X) H7 b2 o
- (set_tile "error" "Invalid width.")
, T6 q9 K% T0 r/ k- [ - (mode_tile "poly_wid" 2)- H) D0 O& n* ?+ I T/ p
- (setq flag nil)1 Z! ]3 Q. Z8 U3 a- K/ b
- );progn then
% x# ]$ L2 w/ c3 j Q - );if 5 `* r& ~5 \% S* f _* s: H2 f
- (if (and flag
. [/ @& S/ s: Y2 K' d ~ - (= 1 (logand 1 eflag))
& L) _" g0 m' e9 U4 N1 I* M3 z - (not (or (distof (get_tile "poly_elev"))* y+ h' G# a3 E: ]9 A5 w2 A
- (= "" (get_tile "poly_elev")). @ c6 A0 H6 g6 c1 p( c9 \9 }
- );or
$ Y2 a8 y8 F3 C6 |9 I/ \2 q - );not
0 D% D' O2 J7 S1 ]6 _ _, M - );and- e4 J& b8 @: E( _! h
- (progn4 y9 e) p/ v' r/ o( P
- (set_tile "error" "Invalid elevation.")
4 ~2 p/ Y" Y+ |) [" e! d - (mode_tile "poly_elev" 2), N4 c2 B+ e( u D; W% I j* D8 B
- (setq flag nil)- R; U' G' F& i* Y
- );progn then
4 H9 S0 f7 g# w8 J" b - );if
( _! I' |: E) d- _2 _8 y& u - (if flag 9 s3 ]! w. c/ B3 U# U1 S
- (done_dialog 1)
) t7 u# k6 V: w( R6 A - );if! x% N4 y# @) }
- );defun test-main-ok
) L. P+ \- O3 d0 W - : p6 W; T% F5 p% n8 H
- ;;
* p# V7 _! L2 Z: B4 O7 A8 f - ;; A color function used by getlayer.4 C+ D7 E2 b) ?) h; A
- ;;
& _* D1 n" b& j - (defun colorname (colnum)+ w, f1 g; p4 Q4 Z
- (setq cn (abs colnum))/ O. ]" o a, [; e$ M9 f4 V
- (cond ((= cn 1) "red")
3 V* b7 z( A6 y1 L# y) W% I - ((= cn 2) "yellow")
; U$ H+ s! _) t9 f+ S4 o' B( H B - ((= cn 3) "green")
. f" ~6 Y, P5 S1 Q6 D, C' J - ((= cn 4) "cyan")/ j5 U" D2 d& E; }1 g; L
- ((= cn 5) "blue")* o/ x3 a( D9 O. s1 Z* [; m9 Q
- ((= cn 6) "magenta")& Y2 c4 T6 R5 R0 x h; t
- ((= cn 7) "white")
4 N6 J2 W- U) T8 A - (T (itoa cn))* f9 z7 L, |$ m: w$ ]
- )
8 w; b- Y3 V4 u: @ - );defun
7 ]8 u. N! S! N9 X& G3 @
+ Z G0 Z: j" E: c* D- ;;; Construct layer and ltype lists and initialize all
* z4 n% X5 u8 N1 f - ;;; program variables:2 Q! E$ z7 `9 r; C1 b
- . M3 ?: L8 {& u; C1 W- o
- ; (makelaylists) ; layer list - laynmlst
1 j; o! T7 J4 f5 ~
* A, U, }1 t4 n
% A7 Y* w& h! |" A- (makeltlists) ; linetype lists - ltnmlst, mdashlist% F {2 a7 D1 l: o8 t
- ! k( g8 T7 x3 F% h% p7 V& x
- ;; Find the property values of the selection set.
3 r4 Z0 M3 t/ K) K0 r6 Q - ;; (getprops ss) returns a list of properties from
% ]2 {9 `2 Y6 @3 `( m6 w( G L - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).3 t: V. _8 g1 Q6 N8 H9 S
; Y1 z0 n! ?9 k' s5 M/ s) N- (setq proplist (getprops ss));@rk interesting things happen here- r3 Y7 W% V* t+ M, o Y
- ) H! z X& |6 ~
- (setq
, v' A& d" o8 s3 H2 I q/ A s - ecolor (car proplist)
- d% L8 b) x; }' [7 q - eltype (nth 1 proplist)" J0 z, E; \/ n- B) Z0 z( Y
- elayer (nth 2 proplist)& [8 q% S/ ~% P) u
- ethickness (nth 3 proplist)4 w, L5 g- o8 v/ O& {$ G3 Z5 {0 |, M* W
- eltscale (nth 4 proplist)
/ V9 G. H0 G! |* @ - ewidth (nth 5 proplist)% ~" z, V. [+ T" s5 N
- eelevation (nth 6 proplist). L( o r4 h' \/ p$ e2 x
- eheight (nth 7 proplist)
# a+ Z% ~7 j' n6 q, A - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
1 X* c' J3 B+ Q! {8 B9 i+ m - eflag (nth 8 proplist)% ?' X3 b, L/ R/ P& [
- estyle (nth 9 proplist) J) _$ B3 d5 k7 _7 N1 z
- poly_ss (nth 10 proplist)
7 m0 H0 ]4 Z! h4 P) f - txt_ss (nth 11 proplist)4 t- u" L4 j1 ]3 l7 q- F
- );setq" N5 X) H9 K( X; ?3 h9 C
+ x5 F6 G% u: Y- ;; Find index of linetype, and layer lists
# P% M! X, R: _6 F - (cond! z+ j* a# B( J& b
- ((= eltype "Varies") (setq lt-idx nil)) R8 }4 D: k6 {/ i9 h
- ((= eltype "BYLAYER")( \( s. j, J9 `6 Z- X, t9 v
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
; [1 {1 d; z% l4 t" e5 W9 B5 K - ((= eltype "BYBLOCK")1 I' s% r' s6 g) X8 u3 X
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
+ N; F* Z/ h1 k( {3 r1 H1 Y - (T (setq lt-idx (getindex eltype ltnmlst)))
* {8 r1 ~% ^6 W& Q - )
! |; L+ {6 b, y6 _ - (if (= elayer "Varies")
+ ^0 W* c, m; t% H3 t - (setq lay-idx nil)
" c- i' W j' ]; p1 ~. v - (setq lay-idx (getindex elayer laynmlst))
) p3 a: f- ~0 s! o9 D( p/ N5 A$ O/ B - );if
& R0 x! [" E) t8 b5 m# E' R - (if (= ethickness "")2 u2 Z. U3 e3 t* Q9 w( X
- (setq ethickness nil)2 I4 T% F1 ? X2 G9 ]4 u- g- |
- );if
; ~1 H" J/ |/ {! z% b9 O% i - (if (= eltscale ""), L6 n- |9 O1 S. J
- (setq eltscale nil)# z% _8 R8 Z4 l2 u9 Y& l
- );if6 {5 @8 F* l" t6 j+ M
- ) ^5 O# P0 J1 a! e! _/ b3 m
- );defun ddchprop2_init ; end (ddchprop2_init)
$ R" W9 j- V5 V% S5 w - . g5 d( l, a3 \( a7 a0 ?
- ;;; (ddchprop2_select); i# l) ]- J! ~; C ^
- ;;;/ b0 J! E( N9 T0 U$ U
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:
3 H. A* ` ]5 O! d5 D# ` - ;;;9 u8 d; n2 |7 F2 N
- ;;; 1 - Autoselected.
- G) \7 K# j. \9 F/ \9 j - ;;; 2 - Prompted for.! N2 G# ? R, Z2 K2 E% m
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
P; T* I/ Q* F% h0 M$ | - ;;;
8 t( w1 T7 c6 G" a& J7 c - ;;; The (ddchprop2_select) function also sets the value of the
! k7 s |$ I& @7 x' U - ;;; global symbol AI_SELTYPE to one of the above three values to
0 M4 G5 ~( R% L2 c - ;;; indicate the method thru which the entity was aquired.
+ X" F- c4 V, O1 S+ g/ b* Z
@4 B+ m8 ~/ @. b& R( ~6 @
. ^2 M# R4 B+ B! U+ b# k- (defun ddchprop2_select ( / )
' c" q" v. ~- G% J J, |: p
% T; y- T; B0 H6 s* } }-
$ [5 L w0 f0 J( t! D - ;returns only entities in ss that are in the current space. + p* g/ v' C# m
- (defun ss_in_current_space ( ss / a cur_space ss2)
5 ~: B" o, ^) ^, o3 {$ P( I
- M* ?* O( _5 w7 y- (if ss
" a( G4 U2 n, F4 x - (progn
& X! t, k- S7 d+ a* X) @0 G - (if (and (equal (getvar "tilemode") 0)
6 d9 D X- C/ [; n- J% ?$ f+ T - (equal (getvar "cvport") 1)
/ ^( Q1 k" o, V1 j# e - );and
% F; o$ \0 @- j. F/ R$ g - (setq cur_space 1);then paper space is where we are.2 M+ M6 D; h! D& R/ P' I
- (setq cur_space 0);else model space.
. B8 p% y8 k! f" B3 k - );if4 T4 D1 U$ W; f" l; X; _# P" q- K
- (command "_.select" ss "")9 o' \# O7 ?4 O; p
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
" [8 D4 X" w: L6 A& D& I: d - (cond ;;;;;tell the user what's going on.
/ N* G3 }( d. i U - ((not ss2) (princ "\nNo objects found in current space."))+ Z/ V( V' G5 f. _
- ((not (equal (sslength ss) (sslength ss2)))+ o% p2 s7 e) D, v
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
1 S, K% D; L0 O1 ~0 u - " object(s) were not in current space."
2 M* U/ I) }: D2 N. ? - )
1 v! _6 d y* R% H& l - )
7 U' Z! c X/ d% u - ) % u' ?" _& f% k& N; o% x
- );cond ' U" `; h8 _! S9 _! P% v' ~
- );progn then" p5 ?; X4 G" o4 y7 K
- );if
; w% ^9 e, \+ Q5 A; t- W - ss2
6 \" ~/ d2 m9 W/ m! y9 U - );defun ss_in_current_space
! L9 x# H3 _0 Y* A - 4 j8 y4 t) E' X% J8 Z) }
- # v+ |6 Z& c) U7 [; l
- ;;;begin the work of ddchprop2_select
. m- m6 X9 s) m9 m5 S -
! v7 p% y4 h4 l8 F1 C, m - ;; temporarily restore original highlight setting.' t$ j& f% Y" v$ w- Y6 B& ?0 C2 i( s- v
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
9 {! O! S5 ^. h. X) D7 s - (cond
/ h5 c; |) }/ K0 N: ? E - ((and ss V, [6 {) Y* @
- (eq (type ss) 'pickset)0 q. ?3 T6 c2 Y8 {+ ~: P3 m2 T
- ) ; selection set passed to% a/ x+ m" `/ `6 \
- (cond ; (ddchprop2) as argument9 I; e# X/ X! @
- ((not (zerop (sslength ss))) ; If not empty, then2 |" {6 R% p5 ]: d/ Q$ O
- (setq ai_seltype 3) ; then return pickset.
' p) | N- g) _. P) \ t - (ai_return ss)
0 O3 ?# V3 F7 F( _0 h( u. | - )
5 B P! i8 `, Q! D, D) N - );cond close2 \; s: L' P6 c* ]
- );cond #1
$ B& v' C3 t: Q& u+ i8 ` - ((setq ss (ai_aselect))) ; Use current selection
0 ^& C+ d! u! r( ?- K$ w - ; set or prompt for objects
) i# J, [+ g4 s) S+ Q - (T (princ "\nNothing selected.")" n9 V/ }. S: Z
- (ai_return nil)0 R$ C2 m x. g' I! ^
- )
+ x2 e3 Y: H2 {$ w( D% V - );cond close
- B) ^* @0 W5 _3 _' y7 r+ I* j - (b_restore_sysvars)
5 y6 B' z1 Z2 ~/ v6 R
- j7 S( c% H/ u; R8 L4 z3 q- ;(if ss& b; v, F7 s4 _5 T* b
- ; (setq ss (ss_remove_locked ss)) 7 k. z: a5 x3 v {3 y
- ;);if Y+ r ?( z: W) f, B; G* p
- (if ss
s+ r: ^0 v D% i7 L+ L - (setq ss (ss_in_current_space ss)) 4 L' V, J8 W! U( R" a; w' A, }6 O
- );if
/ M) B r( H) |
! d# |9 r. e b+ \- ss2 D6 ^8 Q, s) {% _' F4 M) r$ X! O
- );defun ddchprop2_select
, |2 h L- L4 M: E# J! P( g
0 M' p( D* G! |& l9 k- x% i& d- 7 K+ N' G3 a6 t5 Q9 T
- ;;; Define command function.( U8 S9 e1 b6 \; w" H$ G1 K
- (defun C:CCH ()
8 S5 n. I6 Q5 \( T' v/ r - (ddchprop2 nil)" S7 W8 L0 o6 c4 d( n9 \
- (princ)7 k% A1 r1 B) ~) T/ v* c, v9 f
- );defun
# y3 M9 l" m* ?+ d5 D0 \
; Q% f" c& n* h- O' L1 t4 K
1 }, g( D7 n8 N$ v0 p6 d- ;;; Main program function - callable as a subroutine.
* l: v" T" @1 ]5 f" k7 } - ;;;# ~2 Z4 A b/ @) g
- ;;; (ddchprop2 <pickset> )1 l! ^1 i* P3 V# L; k
- ;;;0 D: n/ g# |" I
- ;;; <pickset> is the selection set of objects to be changed.! R( X; g, X! U, `8 P+ b
- ;;;% J# V( b9 t: f7 d) G, s
- ;;; If <pickset> is nil, then the current selection set is
! k( v/ @2 k9 F; g1 y8 W - ;;; aquired, if one exists. Otherwise, the user is prompted
6 [6 |/ h; v Y4 A# t) X - ;;; to select the objects to be changed., W1 P" l0 A3 Z5 X# ~
- ;;;$ A0 S) b C A& x
- ;;; Before (ddchprop2) can be called as a subroutine, it must
, Q4 o9 [5 q0 K8 r5 o; `' x+ y: L - ;;; be loaded first. It is up to the calling application to
# ?, X- b# G& x7 B( y - ;;; first determine this, and load it if necessary.8 U# ]: q1 \' }( W/ I
- 9 W R5 S" G) b& s
- (defun ddchprop2 (ss /3 E- J0 _1 z" t& m( Q7 D9 ]* o
- % s4 ~: K' o* A- i
- a* m/ P7 q* q. F3 A2 e9 A
- add-mdash: F2 M" e) ~1 b& [0 Z" v
- assoclist
9 l8 X9 U; E3 O1 I7 q# { - bit-70+ g9 C1 g& E4 K. M9 m
- boxlength
! W" E6 s A" I& T# I - bylayer-lt5 p* C$ `0 `0 S ~/ H; U
- bylayer_col
. w# {* _* m; N4 W2 h7 O - bylayer_lt
x! i9 q% A2 O. ?8 U' F! T3 x1 u - call_chp2 ~, L& Q' j3 k
- chk-col
& r2 N- V! Y3 u% K& I' ? ^ - ;chk-etype ;var removed by rk
7 e5 K* S8 R( [: `/ N% G. _4 X' d - chk-lay
6 [. x2 F' A" ~3 z& H' |3 z - chk-lt. k: X4 l/ U2 @) W9 }
- chk-lts ;var added by rk
: }1 U' i7 A% i V' f - chk-th' W0 v8 |3 j% b* L& y4 q3 N9 r
- cmd/ J7 Y) N4 i- X- Y
- cmdecho
! m7 E1 t/ |9 _ P2 F+ S - cn" K0 C/ M0 s4 q4 W" D
- cnum0 G+ |. d2 B; m* q) h% l2 B
- col-idx5 @/ l" m" a1 D. U7 s3 V
- col_def
$ `0 O8 q1 B3 ~* P% |! _! v( V - col_tile# u" X/ w. e' `3 `% C2 b( W
- colname3 ]) y" `* E% U. x9 G9 o4 H: r' g, J |
- colnum
/ q; S/ B" r$ [) C - color
- N1 ^+ S0 S1 R+ v8 w& ]. G: l - colorname' x- J. i h8 ^0 S. a
- cvpname/ S S1 t- e% f) D$ g' ~$ x
- dash
5 {5 @' w" }: E6 x# g! R! S - dashdata
' K- p/ C; x" [ y' A: v - dashlist D# K3 _7 G& H8 [4 L& s. d5 Y
- dashsize6 u& N* \4 Z7 u7 Q4 Z# F6 @2 w
- dcl_id/ n9 f! c6 y& ~
- ddchprop-err
2 a, }( Q# r2 k3 b* J! V+ l8 B& ] - drawpattern
' Y1 P- Q2 o, N$ Q- P2 I) k, f - ecolor
# r0 B" k4 k- N" z - eelevation# _" X! W/ E* a4 n0 j
- eflag; r! Z( `, n& c
- eheight
9 t- `, P& u. [% [ f6 f# u8 d/ ?% E - elayer% \5 R+ L2 ^0 D) K
- elevation
8 G* W1 @& b ^9 j1 J( r - elist5 S; d* C0 _# y0 i- {
- eltscale
7 r$ a6 \6 O0 Y6 J! h% v* L* L - eltype
- M' Z& K% _ n* d- M - en0 J! h, x2 X* c0 W9 Q4 A0 _4 n
- ename
/ Q" c' t+ A5 M. `# v% [' ~ - ESTYLE ;var added by rk8 Z. l8 y5 A' w8 s- B
- ethickness( F1 b# F4 U0 U$ A2 v1 t
- ;etype ;var removed by rk
5 z: k% j% U( Y& H7 i5 | - ewidth
# \- W% N! \6 `: g - fchk
5 p1 @3 \+ E! J; s - frozth$ U) Y' M: D1 C# R. T
- fx# @5 D" ` e$ T% a+ [
- getcolor( d: y9 Z+ F0 N& Y% s0 }1 O) x- m$ F
- GETELEVATION ;function added by rk( m( @& \* a" H) |' v: O
- GETHEIGHT ;function added by rk
( }4 m0 w4 q% U- t, n8 H+ O2 Z3 g# m - getindex
; `: ~( ]4 J7 T d+ o$ ^. N - getlayer
* g$ f3 V# @3 H' z/ c - ;get_locked_layers ;function added and then removed by rk 9 Z# X: ?# b& p* I7 S$ q
- getltype
, _- l4 x( z2 c3 j - getprops
# R' {7 x: J- l9 E - getscale ;function added by rk6 l8 k3 s; [! p7 |, Z( {9 V
- GETSTYLE ;function added by rk
; _6 n' K a4 q0 ^ - getthickness+ a Y" Q% v, c
- GETWIDTH ;function added by rk
7 q% z3 a" g1 k% y - globals0 @. z* k0 {5 Y
- HAIR_STYLE_LIST ;var added by rk
+ p5 T2 \1 |% A6 [' p+ i6 o# G - height
R4 R" f1 b+ x - index
( f; q _$ ^0 B9 \; C - item
X# H# |. C8 r% g - item1( N" m1 V$ v4 [9 f# g
- item2# ?$ m* @! e, O
- itemlist0 {+ k6 B$ E1 u6 H) |; p- G
- lay-idx. l' V6 w% R/ T5 b
- layedit_act
, E- j; Q$ k9 }: z! C% D) A - layer; i# C/ Z# c3 J4 ]3 X0 S
- layinfo! x: b7 o! I" w
- laylist
. |0 @- U1 L. d3 H: p- u, Q - laylist_act
. ~, {; m( k; W6 `* ` - layname
1 Y/ i5 G: B6 z2 i/ k( _ - laynmlst
9 B$ V- G( A; d, t3 `9 V - layvalue
& V# _" ^# O5 D' E# l- C1 S - linetype
5 b. p/ S0 u4 ?# i( C! R3 D8 q - list19 u5 e9 Y9 ~% i
- longlist9 ?' ]' D1 O0 g, G& [! X$ F
- lt-idx
& \" g2 K- J5 B - ltabstr$ h. P9 u" z0 y/ `# ?
- ltedit_act
! {0 ~2 e) o9 x/ U/ j2 j - ltidx9 u; D2 c6 X, N1 ]
- ltlist3 F* J- ]& p& F9 ]3 q, \
- ltlist1
+ l0 {/ s8 _2 n - ltlist_act, N8 F1 a' K/ F" z. V9 A
- ltname
# s' |& H& M, F% Y8 | - ltnmlst! l; E$ G; i; E8 R- X8 Z! N
- ltvalue
0 h9 v+ Z2 v3 o& |& s - ltype
- l- n' e1 i+ Y3 m2 a! x - m
; G J. z, V: Y1 g2 F0 H - makelaylists* E) R4 j1 Y7 `; x+ s; e
- makeltlists
1 P; } y( E" h6 A( w6 x7 q - match-col
o; T& r" d, Y0 q - ;match-etype ;function removed by rk
# l3 [) U1 q4 W0 d' y9 ~/ c - match-in- }. Q0 M, y+ w/ A8 g' h0 Z4 Z
- match-lay
! |5 M, ?' q0 S" |6 V - match-lt
( O% M) r( K) L( l/ X- x2 @ - match-lts
( Q' U# d# g/ D/ u& c" J - match-th1 W ?9 c, z) Q4 S
- match_col# v' C# j/ O2 T: p$ u
- mdashlist& k" M3 m- a* R
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk. `8 R9 _- G, Q! j. F/ Z
- n* J& A+ H" w \0 c4 T% X
- name, ^4 `: n( A& Q
- ncolor
# N5 o& M, H8 ~. I2 n4 L* k4 y - nlayer
( Y4 l7 h$ T" U0 ^- O& Y7 I3 \- ]6 \ - nltype
; r* `7 _" {: f6 I+ j8 b - nthickness
, z* w) m7 g" G% C - off
# }+ T7 b" ~* K6 G: b5 ] - old-idx7 S8 J2 U5 m2 R# E% r( J4 R
- olderr# C9 k1 y9 m. v8 K% B4 D
- on& x9 `& P* q5 w2 n9 [/ {: q
- onoff% J, \8 a Q: Z2 x
- patlist4 c. {7 v, r! r9 p5 K1 P/ a
- pattern
$ U) ]" ]$ H5 Q1 c6 ` - PL_WIDTH_GETTER ;function added by rk
( a- V5 ^( l' _" B* Y6 V) G# l - POLY_SS ;var added by rk3 R$ ?, {! h0 t" S
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp+ G) j7 J1 Z: k) j. J
- proplist! B% X/ v- \+ k! A$ \3 @
- reset-lay0 z! t, `; \" n% b5 S" y' q8 b
- reset-lt
/ s* v1 Q* j- H9 x+ m h1 } - s
5 F4 U: {, f1 O# {9 u - selset
$ w7 \" V) z. Z- ^- d) Q+ D - set_col_tile& t {- v3 w2 X+ J
- sortlist
& f$ n0 I {/ b4 Q I - ss
% c: E( A) H+ r3 {; M2 I& E" ` - ss_in_current_space ;function add by rk.- T2 c8 {$ ~) E% c b/ i/ l& E
- ss-index+ F0 }9 M9 n" A$ J, _7 Z, ]! ?9 Y
- ss-length- ?( m; L+ q) m! `+ F
- ;ss_remove_locked ;function added and then removed by rk.$ G3 {, b, D8 ?
- sslen$ L; `0 L( r0 j# A9 ?
- temp_color
2 x. j! [% f% X: a, M - templist
2 B# V5 J& [9 |( s: [ - test-main-ok6 x- b. J) t1 m! Z2 U
- test-ok0 A) n6 q3 Z* j; s* Y
- testidx
" N4 j/ N; s# [( y! h - testlay) y3 B' i* p ]! U- q+ F- c6 x
- th-value6 ~' D4 X2 T2 \( B) w
- thickness
& P( d) r5 D1 V1 W1 L. s - tile3 S2 c) @3 v5 F5 k' L6 R
- tile_rect2 p, V8 n0 r7 V/ p
- tilemode1 W# ]2 L: K5 p a4 \ [# E( o
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk7 ^! G. }% X5 [7 Y0 ?7 n
- TXT_SS ;var added by rk- D% f* i/ f4 m. T% ]0 V
- ;undo_init ;removed by rk.
( D- e6 r+ C& K1 C( x - vi/ r' J) c6 z: j+ E' s M# L
- vpf4 V2 f! T2 ]" p% @: k; @* p
- vpldata
% d: V% M& [* p3 \; |% e - vpn
8 e+ ]. e3 ?1 C - which_tiles' j& T, l- q% ~" X
- width+ p5 V* C8 H7 k0 H0 N: j
- x) x2 q7 q" T; b m
- x1
# w! B. i7 L: ?. Y6 L( a - x2
& F4 l0 q1 L" \3 j% L - xdlist+ q$ h; ^0 c `# l# _
- y A1 ]3 Z* e3 l
- y1
' `; Z( F6 v/ s - y2
5 h# @6 X" e# G; R; F+ m - )
8 v+ y9 I; ^ X6 I; ?
) m- {* @+ M" Y* P4 U8 r$ x- (if (and (not init_bonus_error)
7 H4 a5 S# |2 @7 Y - (equal -1 (load "ac_bonus.lsp" -1)) * U- h: T. _6 I3 T- {% [
- );and
# U' R- s2 j# S% d. _7 O* O - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
* k4 m+ n$ p0 l% z. A0 b) _8 B - );if& ?( j9 W4 {# E7 Z( Z; b
- (init_bonus_error (list
) A# }- L3 f2 E# D" f1 ^ - (list "cmdecho" 0
! I7 H* u5 ]! q1 p/ Y: d6 t, P8 G+ E$ Y - "highlight" 0: p7 e3 Z, |" n2 R! u% A. _
- "regenmode" 12 X5 v/ F A8 j' B7 P ^' v
- "ucsicon" 0
1 ?2 }! K& y: v/ O1 o4 B+ a - ) ) x4 t. {, b) D
- T ;flag. True means use undo for error clean up.
: P6 S5 C: T0 \. @ - );list
1 [; D B$ p" @4 u - );init_bonus_error% n& ]$ N) Z8 `0 n; l/ m! o Z; m
1 Z0 [6 s' L- W! c- (cond
( h3 `1 Z4 k% Q. U+ u - ( (not (ai_notrans))) ; Not transparent?
4 P9 w$ w7 K# t2 a9 K8 h - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?3 S! g4 P$ L+ G+ P1 Z$ b
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?* O3 L# S+ [1 m
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?7 y# e& V+ ]/ @ m; \8 D# D6 x
- (t
9 A" p% p w V - ;(ai_undo_push)
' [/ }6 e- m. Y5 g - (ddchprop2_init) ; Everything's cool,
) L: N2 Q ~6 [5 O - (call_chp2) ; so proceed!& f. g, G6 v: O
- ;(ai_undo_pop)& A/ h! w! I5 a% B
- )! q; {4 N+ |8 @; `% W# l
- );cond close
/ Z) E0 ~$ B/ v0 _! o2 @1 K - # j. ?8 M" L- H6 k: I, @
- (restore_old_error)
; ]4 v9 w2 y% T$ ~3 ?5 V
& W M6 e) E5 y! c- (princ) i3 V2 L% c, c ~/ y( Q' b
- );defun ddchprop2* m! }' Q, d' \, D( N+ z! a1 D) `! s
- 7 Y3 w" V- A) n. s6 |) i" O
- ;;;----------------------------------------------------------------------------
) p1 j" n( u* ?, z - " q/ H- a6 P3 F% h! \
- (princ " EXCHPROP loaded."), p. d! j. }+ z5 p& M6 @
- (princ)
2 E$ h( r2 p: j- O* f' g' p - ; {) o* P0 j# P2 P
- ;;;----------------------------------------------------------------------------
. ^4 Z6 L+ \ l! ~5 G - ;;;---------------------------------DDCOLOR_LSP--------------------------------
3 }' O, p1 }2 @* S2 Y+ `7 y' Q - ;;;----------------------------------------------------------------------------6 z6 g1 k4 @' n7 X/ ~8 j! n
8 L) }# N& n; W$ C- ; Next available MSG number is 24
3 q$ m2 e) D: j9 R0 I. _ - ; MODULE_ID DDCOLOR_LSP_( ^- z/ A0 K3 T/ q% x
- ;;;2 k5 Q- ^& j U" G8 e
- ;;; ddcolor.lsp
' l0 t0 T1 G0 n d/ v. `4 ~8 j; { - ;;; 2 A; m# N: u9 z# u9 t) {% w
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.& c% u! y- d6 D( p1 P! c: o, l
- ;;;
3 r9 d% j# I* S$ U' ~, Q - ;;; Permission to use, copy, modify, and distribute this software7 m) A6 p0 w) h& p2 M7 K
- ;;; for any purpose and without fee is hereby granted, provided& F2 ^- a; k' Z2 J3 M
- ;;; that the above copyright notice appears in all copies and. L! a- d- f& i/ C
- ;;; that both that copyright notice and the limited warranty and
6 L* a4 }, b3 y% W2 h - ;;; restricted rights notice below appear in all supporting! P9 {. f' Z2 T, b
- ;;; documentation., Z4 q9 s5 J' t5 E( l) h
- ;;;
# |8 W+ q* k) y* s- M0 Q2 m - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
! _7 u* j& o% J - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
( h( \1 K8 n+ V$ r: z2 K5 s - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.. ?1 w2 r9 N# J5 n( o- f% j$ b7 K5 w7 g h
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
# E. q4 k8 ~5 H6 g M - ;;; UNINTERRUPTED OR ERROR FREE.
3 k' e, B; W! e - ;;;
& ^" M& L) d* [* U - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
8 D9 \( ?* A% y - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
2 S5 A9 r' ?5 X( g# _6 h - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ; a2 v; m7 u' P! W/ C: J
- ;;; (Rights in Technical Data and Computer Software), as applicable.7 n% \, q W" d, O2 s
- ;;;
* P) B. x* e% e; f+ V' l - ;;;.
( J0 h4 y( K$ N; ?0 \: p. R - ;;;
+ d& p" w; ?! i& V' y5 M# q - ;;;----------------------------------------------------------------------------! h. N" G/ h: c# O" c/ `2 \9 A+ S
- ;;; DESCRIPTION
0 G Q/ V1 ~$ D: G - ;;; ( @% P8 D4 w! M' S
- ;;; Chromatic Pallete style color selection dialog.
1 Z4 w, e( z$ I% D P G+ {8 V! ] - ;;; : @5 H& A8 P. E' }. U! W; S
- ;;; Globals:# w# ~( h& N' w6 y* ~
- ;;;
8 N" ?6 I3 W6 O+ V( A' o% m! w' D - ;;; chroma_color - Integer color index. The last value selected
9 o$ H _+ Q% w% U - ;;; by the user in chroma dialog. It is not cleared or reset
: M) A, x" |( D1 ^ - ;;; by a cancel. Only used for communication between callback
1 S' d- n+ B& l( q' } - ;;; functions and the (chroma) funciton.& B7 R+ A2 j7 \1 _- A
- ;;;
8 j% ~- x( E3 Z+ q1 w# }6 c - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
5 H- g+ b% u6 C# ]1 D" b4 Q - ;;;
# C4 X* W5 {8 N* f. G - ;;;/ R# Y" \# ~6 o, T5 v# Q0 E
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma $ n5 L) V1 s7 S$ a
- ;;; pallete style color selector. [5 \+ p0 }( ]/ C# m
- ;;;2 [1 g. ^0 Q+ H: E; V/ e( P
- ;;; ===========================================================================1 h d3 S+ R$ Z# a
- ;;; ===================== load-time error checking ============================- l) k9 U* l" ?8 L/ I& W# N' {
- ;;;( X J1 a9 M! ]2 A8 Q6 X6 b
( `. W5 T! q2 s+ @- (defun ai_abort (app msg)& D% ~8 j- W r
- (defun *error* (s)" t# Y K. w X8 i3 w, T. d; J
- (if old_error (setq *error* old_error))# y6 f+ [. D" C. |
- (princ)
( N. @4 R; a) O - )+ S2 T p: [; Q+ v7 V; |
- (if msg. Y/ ]6 D. _" ]+ h5 _" Z, S$ T
- (alert (strcat " Application error: "
8 `3 r1 h+ X0 w- z2 n- T9 A - app6 i+ }1 Q: K' l3 a4 o) j
- " \n\n "$ q! Y0 \# B9 r* F
- msg
$ F9 n. N. C1 n2 { - " \n"( B( I# [2 h- B8 b k
- ) f( c: g" a# ^! F& o+ s$ u
- )
: g ?. }7 h# w! x. A" m7 ?/ O: c1 D - )
$ @" b: v' v5 Q5 e - (exit)- O2 _3 p3 A Z. z0 H" P: p
- )1 d) g o+ E& }9 j/ P: ?2 h8 D
0 ~! b! l8 ?5 A7 G: t- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,4 V; Y% @. h% a) Y# c
- ;;; and then try to load it.1 X! x( _% b/ C- W( s
- ;;;: c3 q( E" ~1 L
- ;;; If it can't be found or it can't be loaded, then abort the
/ @/ k) E9 \* E2 s; T# | - ;;; loading of this file immediately, preserving the (autoload)
- J9 j5 E* C4 e4 |6 E2 F - ;;; stub function.; k5 X0 R, c, o
, m. Y$ o) G ^1 R% V- (cond
2 f T6 B+ A9 L# D6 [/ V7 y - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded./ ?: @3 \" o) ` w, h c& |
. y1 y. v1 R6 m: N- ( (not (findfile "ai_utils.lsp")) ; find it
3 x3 a; ^; j2 T8 M. e0 J+ R - (ai_abort "DDCOLOR"
5 Q4 G2 P X6 J7 @ - (strcat "Can't locate file AI_UTILS.LSP."
* U% ^3 ^: h4 e: J1 Q2 v" I - "\n Check support directory.")))# x/ ^0 [$ M& j: i# |, b
- % h0 ~ E. x1 r0 x) N
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
: L t7 y/ z" u {1 Q) W6 a - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
7 v6 F8 O- q4 r: D - )
3 Q2 e; u) g9 K2 s - $ J7 }1 m# c1 D3 T m
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP; n/ V- h. X7 D) S. h
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses3 {9 A# m; _* i0 E h. n
- ) ; ai_abort's alert box dialog.
( [6 ]4 M9 q+ k4 X$ q6 Y
" n" B" l* Y I+ z* W2 I9 E- ;;; ==================== end load-time operations ===========================; z/ `2 ?# F& F1 @- u9 Q& R
+ X6 k2 C5 ]5 g) I: R- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
! s V0 J; ]5 y+ c8 z -
) u d9 ~' m9 M" J1 o, d - ;; Main Color function, called by setup code.
! L7 Q( I3 i# d - (defun ddcolor_main()
3 k* D8 C8 S/ P! [$ h5 _ - ) i6 n) i# v1 x- L4 n% J2 a
- (graphscr)' e6 u+ B1 O: [: `; m
- 1 O. y6 G. V; y
- ;; Get the color of the current layer, for possible BYLAYER color swatch.& t4 p# X& j1 L: ]
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
$ d8 H6 Z5 w2 f/ z; y! B
6 k; d0 w- F1 r" h8 L- ;; Call the dialog here...
( z( S1 d, I$ k1 ]) k) f! x - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))2 R* j, o8 m. u
- N4 D* P* k; Z7 Y7 q; B* O- (if clr
4 ?2 Y" q* ~. T9 }7 z- E, { - (setvar "CECOLOR" (citocs clr)))2 L# I: C- u$ p: x) V4 Y, w) G
- )
/ S4 l# F; i7 P' S4 R( ~: m u
( R) w2 a/ p5 h5 n9 R$ Y& R- ;;;
& d2 R8 x# Q y - ;;; CSTOCI -- Color string to color index8 ^ S' U: g0 O0 T0 v
- ;;; Convert an arbitrary case string into a color index.
- C s: W4 a& ]3 ^ - ;;; Returns nil if string is not a valid color.1 K& H# B8 W6 c
- ;;;
- V4 v: g3 S$ S, [ - (defun cstoci (str)0 ~$ P) r9 F- n+ Z1 a8 u7 q
- (setq str (strcase str))
o1 z& ~# C. G! @ D7 _' S - (cond
) S# a% |* ?' ^$ [; A - ((= str "RED") 1)
7 k5 e, p8 v, P6 C/ j4 V - ((= str "YELLOW") 2)' J6 R' N+ Z" H0 E- h: K
- ((= str "GREEN") 3)* @9 r" E! X: I0 B- {
- ((= str "CYAN") 4)
3 O+ p) \% p' Y5 { - ((= str "BLUE") 5)) a* z+ B4 T% E1 M
- ((= str "MAGENTA") 6)
0 ?6 {$ s4 \4 Q$ \ - ((= str "WHITE") 7)
0 ?1 y. S6 _ H+ a' F - ((= str "BYLAYER") 256)
" D; G, ]; P8 z9 S - ((= str "BYBLOCK") 0). K- f8 ?; h6 J" p h! ^% q$ H
- ((= str "BY LAYER") 256)
& k/ i/ g. s. u: {% l: Q - ((= str "BY BLOCK") 0)* \$ [ u# P8 `) _' e3 [+ ?, f
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))* N! d' w2 r* X8 | P$ Z/ b
- (nil))2 p6 i* z9 c" u" @- G( H- b) s
- )' C! |0 p4 [0 A+ j7 j# S" I
* t6 v. e* B- a- ( c* O, v* I- E
- ;;;
! b# ~5 A! g# Q: T P- Y! L - ;;; CITOCS -- Convert color index into standard color name.
' O8 H' Z' X8 G2 l9 Q2 D- u - ;;; Will return the standard and logical color names as text* {- h5 w$ U& W8 q
- ;;; strings. Returns nil for out-of-range color indicies.
; e7 P. w* x4 Y; i - ;;;
4 y3 S- C! E2 A+ q - (defun citocs(i): S# V& g$ B" K
- (cond
4 f4 x. D* P+ @: v* H; F - ((= i 0) "BYBLOCK")2 P& l' R& W0 [, k- ^: u+ g
- ((= i 1) "red")0 N# t1 e# x) J) S
- ((= i 2) "yellow")
3 S' {8 ?' O3 e+ _2 ~' T - ((= i 3) "green")' c* n- [& [" L
- ((= i 4) "cyan")- I. t. V. H/ r! e
- ((= i 5) "blue")9 c7 |! P6 z6 J7 W3 h N8 e
- ((= i 6) "magenta")
$ y" I0 b" K I$ m9 t: ] - ((= i 7) "white")- y' {- Z. a6 @/ F1 R1 ~! k% o
- ((= i 256) "BYLAYER")
5 _2 t, o ]" d+ d - ((and (< 0 i) (> 256 i)) (itoa i))
0 u2 b# Q7 [3 ~( M" m9 W- c* U - (nil)) V, O, @7 C' O T1 A% Z2 `
- )
7 b0 _) I% t; { a6 ~ - " e8 D* G( G4 I7 f
- ;; Start of ddcolor6 S Y* Q# l. M- e( Y- s$ m
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho! u L; ~1 ~9 Z! k' ^, W" ^
- old_error *error* ; save current error function
2 U8 I0 T2 d6 g- w. _& N - *error* ai_error ; new error function! M8 U4 u/ T0 e- H3 D( n% h4 Q2 n
- )
6 G- `2 R" d7 C6 J5 v: f# O - 9 R, @& z& N+ i- F e) b7 S1 `4 f: K
- (setvar "cmdecho" 0)/ p& ]- s3 ^7 P! D. J- C
# k+ ]+ P' r( W- (cond
* P- E- o% M9 j) E% `" z) N! G8 l3 q - ( (not (ai_trans))) ; transparent OK
# A H' ~+ H6 [/ Q/ u1 V - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
- p7 ?- l/ l Q0 M+ Y
, F1 j1 I8 x l+ p9 W- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
! W& x) D3 S/ t* e# I0 E- m - (/= 8 (logand 8 (getvar "cmdactive")))
8 e. K; _/ X0 _: N! \ - )" Y/ H" @5 R7 N9 q9 @: b& B
- (ai_undo_push)6 `" D" t9 @4 ~6 i) D
- )
0 l& y# M. \9 Y$ m4 P% n1 @- t/ V
. d* r- w) T1 l' N* ^3 t- (ddcolor_main) ; proceed!8 x' c$ S8 J* v# Z/ H6 a f2 a
; x/ ~2 r9 d$ H d% `- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
! _* p9 q! B+ Z" e- h - (/= 8 (logand 8 (getvar "cmdactive")))
8 @- a2 d' A+ u3 U/ B, k2 R - )7 U) g3 m, P0 }4 `, D- ?' t
- (ai_undo_pop)3 h( P6 F$ v. R- r Z6 w. e
- )$ N% l% q( _+ p) q
- )* [# w |" C% \. D o
- )
* v% x% c- [2 C& A3 y
$ o( P$ K) n8 o- l7 N- (setq *error* old_error)
$ j( s/ r, C& l0 X2 e! {2 Z - (setvar "cmdecho" old_cmd)5 M6 b, c& Q }
- (princ)
& j4 u. Q% _7 O
. i& B8 a9 p+ D8 { Z" c7 Q" Y' K- )
$ C' ?) p2 `% T8 x2 t# G - . x( V, E- d( t+ h% J1 o
- ;;;----------------------------------------------------------------------------
6 N1 X% o7 o# j1 ?' E1 n( Q/ | - 2 d- Q2 v \$ m# [( o- R* T/ h
- (princ " DDCOLOR loaded. ")% a# I5 U% k3 o! g4 ?! r9 B2 p5 ~+ d
- (princ)! e+ z" W' }# f8 ?% F6 |
- 7 C4 F$ ~$ p0 l
- ;;;--------------------------------------------------------------------------;; A2 Q/ _( V6 M7 p, ]6 b& u
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
7 ]4 Z0 h8 V+ x* ]% _1 R% Y - ;;;--------------------------------------------------------------------------;% h' P$ \4 l% t5 g5 v
- ;;; ssx.lsp/ _- g# m$ w; I; N' W
- ;;; Copyright (C) 1990 by Autodesk, Inc.- R; k+ r$ G3 z# ?
- ;;; Copyright (C) 1991 by Control Systems, Inc.+ m# ?; }2 R: @# T" n7 K# X6 f
- ;;;
1 u1 R9 T' |1 l - ;;; Permission to use, copy, modify, and distribute this software and its
6 r4 B% y! F6 p- K* ] - ;;; documentation for any purpose and without fee is hereby granted., g& K5 d6 j6 C+ ~- s0 q' R7 Q
- ;;;
: e. t: C9 I t) m6 S: ^) F4 i - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.% P8 S. e/ C' o/ K5 [) y- z2 M
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
6 J0 D$ L: O8 L& b - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.5 Y+ H4 X/ G6 p4 f
- ;;;
/ |. w) L2 {0 C - ;;; Larry Knott Version 2.0 7/18/88
) d9 p! g) O) h1 F! P2 ]* V1 b - ;;; Carl Bethea & Jan S. Yoder Version 3.0! z, I# P3 b7 ]9 k. d2 C# s. z
- ;;; Enhancements to (ssx).
) w( f: `- h E - ;;; 15 March 1990
5 C+ U. |4 ^$ C1 O3 P - ;;;; o6 Z# m' e' o" C$ j# }7 R$ g( h
- ;;; ARTIST Software, Inc Version 4.0 December 1991+ ^8 I; y5 i1 Q% w
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
' j" G7 {1 W3 k" y5 z& o' _! i - ;;; use Flexicon menus/ Y! y+ g& G: b9 }; K. ]# ]) g* ~) ?/ C
- ;;;5 C+ G N6 Y# Y9 G) h( g* C
- ;;;--------------------------------------------------------------------------;2 ~" Z- A4 V2 ~/ C$ K) ~
- ;;; DESCRIPTION- r' Z' B. ?& j& _) J R
- ;;; SSX.LSP
1 x* l3 x1 j( a4 M2 H: {6 b0 `8 O - ;;; ' t& {( c& j* G
- ;;; "(SSX)" - Easy SSGET filter routine. , l$ Q K* Q' K0 L( j
- ;;; 0 i2 Q( D6 W( C4 s
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
: ~8 d( |# h8 B6 u0 T8 L \ - ;;; to create a "previous" selection set or type "(SSX)" in response to
( W. G, j; U E5 [$ r, _2 j$ O - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
! s0 E% ?2 e% p2 i - ;;; entities and "(R)" to remove entities from a selection set during
/ Y) l' ^2 C( ^) K; J - ;;; object selection. More than one filter criteria can be used at a
, {9 `6 `9 E# J1 x6 V - ;;; time. / P7 u% X3 i' ^) y# {1 j
- ;;; 0 X! b3 ~& T9 T& X2 i/ H
- ;;; SSX returns a selection set either exactly like a selected
: C4 G A; [7 M2 C. ` - ;;; entity or, by adjusting the filter list, similar to it.
+ w9 M7 r% L# D- g$ u4 ~ - ;;;! C# W5 B& G" u2 _6 s2 D* ~7 L! M
- ;;; The initial prompt is this:/ x" k) ]5 ~0 c2 D( |! q
- ;;;
" V1 E& B% }' ^: S - ;;; Command: ssx2 N7 X7 l/ ^& G$ H7 P- }: m
- ;;; Select object/<None>: (RETURN)% F8 s' ~- k# Q, J+ y
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ( D2 `) P; b9 K9 y/ v4 s0 B
- ;;;
6 d0 @7 X% Y0 J9 u; L$ n0 L - ;;; Pressing RETURN at the initial prompt gives you a null selection 4 S5 w9 l) e8 G$ G: [6 c; x1 O
- ;;; mechanism just as (ssx) did in Release 10, but you may select an z, n4 i" S9 A; U7 o
- ;;; entity if you desire. If you do so, then the list of valid types 4 x& Q+ U, Y _; r
- ;;; allowed by (ssget "x") are presented on the command line.
+ W0 N2 O* Z+ k A$ ~( D - ;;;
/ l+ n5 }2 Q& ?3 u - ;;; Select object/<None>: (a LINE selected)
: W9 H- I2 z+ @. q4 ^6 r$ ^ - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) * b. S# `+ p, @! w5 P4 ]
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
* \! `0 d5 f3 @( D2 ~7 | l - ;;;
2 n, p# t# ^" ~2 L6 o Z - ;;; At this point any of these filters may be removed by selecting the 0 p$ G; [0 B; ]5 O
- ;;; option keyword, then pressing RETURN.. {) |$ f. t% j! O& B
- ;;; ) p1 j, \2 U5 k9 V$ `
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
4 Y$ A1 V0 ~$ K; |' a- S - ;;; 7 ^& z' @3 B7 j$ V
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)). E; \% s" [3 J
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 3 Y h- d- M& c- ?: Y. F a* D
- ;;;
/ B& E7 F" z$ M$ P8 \& D' J - ;;; If an item exists in the filter list and you elect to add a new item, / V X0 O3 t7 ~6 E5 Z
- ;;; the old value is overwritten by the new value, as you can have only 8 a0 P* m/ \, a. I- S
- ;;; one of each type in a single (ssget "x") call.
w) @; l, G' \2 ^5 [ - ;;;" U: S" w1 F. u4 ^+ v* W" j) w F
- ;;;--------------------------------------------------------------------------;
2 N+ @$ }8 ?' o' y2 C* {# L- a4 f, y - ;;;# f9 Q& H' }/ d5 n
- ;;; Find the dotted pairs that are valid filters for ssget9 F0 O! E6 \8 i! o
- ;;; in entity named "ent". Y: I1 Z& s" N# p
- ;;;
1 O& b) c1 O) O' [! b - ;;; ssx_fe == SSX_Find_Entity
. m, K, F* p' Y- a/ q' u - ;;;
6 T& q- t* |/ H9 ~ - (defun ssx_fe (/ x data fltr ent), B- |& E+ k, J0 m
- (if (and (= flexvar 1)(/= t2 "Pick"))
' k1 P- d3 g9 {7 c l - (setq ent nil); N( A! ~7 O/ ?4 H# b
- (setq ent (car (entsel "\nSelect object/<None>: ")))
, U6 t; x0 a9 Y: H - )
: t5 e; q v% u7 r6 N' [ - (if ent
6 f O; v) O$ ?4 r* z5 M - (progn
, W9 j+ @" V% \' o; J - (setq data (entget ent))8 E f# n2 r2 Z4 ?
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
( l# D& Q( o) V+ q - (if (assoc x data)" g) C, y$ a+ Z
- (setq fltr
: C( f) \! p* ?2 f - (cons (assoc x data) fltr)
! c3 r' v. Y+ N - )6 z& j9 h8 @* B4 r7 s
- )
) u" [$ k, S4 y" t - )
" U) G' o8 @6 ?; y8 ? - (reverse fltr)
# N2 ^5 l, \% ~ - )
) `8 c6 ^1 o. B5 q- w# P$ H - ) 5 g3 \; ^9 M3 i0 i, [
- )
2 y/ u0 @1 @6 j4 K8 Z" R - ;;;
! ~( b- \# o/ N. I8 t - ;;; Remove "element" from "alist".$ l8 Z6 H$ J4 m/ h- U g- }/ c
- ;;;
8 ^) J, E t8 }5 {) ~* \$ D, Q1 T - ;;; ssx_re == SSX_Remove_Element
1 p& V- g7 j2 P2 {, }: [& E - ;;;: C8 R1 q) K. w. s2 B" ~7 R# ?
- (defun ssx_re (element alist)
1 l& l2 A9 q6 G9 }6 i2 o+ x0 u: k - (append
b' p1 x2 N* X - (reverse (cdr (member element (reverse alist))))
5 S4 G7 Y* P' p* M0 U/ l/ L- P. p - (cdr (member element alist)) 9 {8 f& q7 T K
- )) J& h: V( [0 I6 O3 S1 v5 E V6 i
- )0 I0 T+ `; u* I
- ;;;( R- _0 y/ S7 t9 D- k2 j: l1 C, ]( N
- ;;; INTERNAL ERROR HANDLER
7 m, c6 A' ~* t/ C/ U& S - ;;;. P) A1 o0 ^9 `) w' K5 i5 S
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs3 n* ]1 A$ I' i" S
- ; while this command is active... A( c6 O. `6 ~9 G
- (if (/= s "Function cancelled")
9 ]8 u! z6 `- f Z; P - (princ (strcat "\nError: " s))
" J. K S: y! D, w - )
: k2 t7 b7 j6 C; V - (if olderr (setq *error* olderr)) ; Restore old *error* handler
8 d8 n7 n9 b( X7 g1 e z. B - (setq flexvar 0)- a# ~: {& `. l% c
- (princ)
2 Z% S4 A/ f2 y6 p5 G - )
! T7 N0 u# i/ A" r+ v* R; m - ;;;1 U6 \+ D0 R% ~& Z# {
- ;;; Flexicon call routine
k* X# ^: c y8 z' H - ;;;0 a! W' C z2 s9 O# I y3 i, }# n W" d
- (defun flexmnu (a)
9 p$ F3 I7 U% w - (if (= flexvar 1)
% ]5 a. P5 c* Q# Q4 Q2 [: g, L- z - (command "FLEXICON" (strcat "FLEX" a))
! h$ r7 ^; S1 N& n# v, p - )5 N. }% v( Y8 Q" H% S* W% o& ]
- )
4 G- ^4 p4 \8 y! u/ P( _$ v: l - / P L: K6 M0 A
- ;;;
6 z0 n' V* v6 E' y$ o+ q9 z4 D - ;;; Get the filtered sel-set.
% R0 |) S% q; K7 c& C - ;;; t3 y# ?; K: X; `& ^& j6 ^- ?
- ;;;
' n! T% `: z( p# O2 n - (defun ssx (/ olderr)
6 ^$ \7 ]1 S6 f. R, y; L. s - (gc) ; close any sel-sets
9 p/ i# F$ S+ G$ Q1 \ - (setq olderr *error* % [* _8 |3 f: } w$ p0 O
- *error* ssx_er
3 |3 M& B, U5 T1 ~ - )
) L/ J1 D. j+ [! i( \* m - (setq fltr (ssx_fe))
' @4 ^' Z. t1 z/ h! I% V6 R e - (ssx_gf fltr)
3 a! }2 t, P+ k$ d - (if (= flexvar 1)
0 K& ^; U6 d0 V' l9 K - (progn) }8 K9 v. {0 S8 q5 z( e& _: `& A
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
6 a. w' K# I- N5 W% k - (flexmnu "EDIT")& K, G- K/ a$ k0 _
- )+ c3 J; G) |7 S& n& T& W2 U
- (command "p")
h, y. r4 t6 @3 |# n8 s - )
& b, B% ?5 t: p8 ?0 n - (princ)
" P5 a0 l5 K4 z0 v* F- p - )
: Y$ T% a; a, V, ?5 @3 P$ O7 z - ;;;
1 J9 W0 T# c1 o( T - ;;; Build the filter list up by picking, selecting an item to add,
: P# X& p/ R( ^* d7 x0 N - ;;; or remove an item from the list by selecting it and pressing RETURN.
& Z. I7 l# q' m9 G+ ^ - ;;;. y4 o! p* O' b. [1 B/ T! ?* M
- ;;; ssx_gf == SSX_Get_Filters, G8 E* S: U8 m! q
- ;;;# i+ y/ M* e* D: x
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2). {; j6 W! O/ n2 _- g
- (while . }) s" S8 }8 P
- (progn- V# g4 e$ y9 {3 }. P8 \
- (flexmnu "SSX")( Q! }& i; U# F3 X
- (cond (f1 (prompt "\nFilter: ") (prin1 f1))): ^6 f3 d+ |' X- _
- (initget
0 t! ~1 @7 b! f5 R - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector"), G( F9 k! G8 R; s5 C- \2 M
- (setq t1 (getkword (strcat5 P" N8 N6 y' B8 D" \9 _2 _
- "\n>>Block name/Color/Entity/Flag/"
& A6 F: Z- s, J* u; x- @ - "LAyer/LType/Pick/Style/Thickness/Vector: "))) 2 Y5 Q, S9 G, h4 E
- )
c# p. K! p" V% y3 I p1 G - (setq t2
9 v( J- P, {% y4 h2 L* { o - (cond
0 R! q" c& r5 ? - ((eq t1 "Block") 2) ((eq t1 "Color") 62)+ m& z4 ?" V) d: o) D
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)1 T$ z1 [) h& d% J4 ?, @% z, n" Q
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)' S1 n0 b0 ]% z2 N0 }* o
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
2 d. y. j. K: E9 G9 Q/ {: C - ((eq t1 "Vector") 210)
2 N/ T: t8 Z# ^2 @0 H$ K - (T t1)7 K; {% i' z; O9 B' v
- )) P1 [* B8 Q9 l* ^9 G
- )
{- s: f" u# {' O, _) { - (setq t3& V9 |! a+ f" j8 ^5 O' B d
- (cond; _; s+ o! W- l% B! [
- ((= t2 2)
+ \! a6 l0 o7 T( n6 p9 I# Z - (if (= flexvar gtads 1)* {9 L. Z4 K7 T$ M9 b
- (progn2 b0 f+ b3 Z& N& Z+ ^% i
- (prompt "\n>>Block name to add/<RETURN to remove>: "): ~/ k* e6 d% ~3 {" w- ^& q- r
- (gttable "BLOCK")
' D* P" c0 m# h- k& Q - )
4 y6 b& G# w2 c - (getstring "\n>>Block name to add/<RETURN to remove>: ")
# N) B" d0 v, x, c - )% j9 e7 M1 Q3 x9 i( d% P) z8 ?- v
- )
/ Y- w' X6 V z+ Q3 z - ((= t2 62) (initget 4 "?")
/ t7 o6 J* h" A - (cond
2 G5 R* q) e7 F" X; R8 u0 ?8 O, a - ((or (eq (setq t3 (getint
# P9 a: }) A# D4 I" {1 ^: @" P - "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
# o7 F7 {) {) F - (> t3 256))
1 u+ Q5 ~) ^- j K3 f9 V+ N4 z - (ssx_pc) ; Print color values.
' d" s9 M% W8 B9 c P' \! R - nil- P2 G0 t3 U+ C( Q
- )
: n1 e' ?0 R5 o) ]4 M - (T
; P" n5 f2 _* M1 ?- M c - t3 ; Return t3.( K3 k( ?) A( @) \' D
- )- V' A+ L7 J+ R( `1 z2 j) ~! c
- )' p; B+ r! B% D$ R0 C' f+ E
- )
+ @6 O- ^/ P: |6 d9 _+ \ - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))! Z2 x d9 s1 o/ y( W. D4 \ Y
- ((= t2 8)% [0 d# I' B. F! T
- (if (= flexvar gtads 1)
. t1 |* U7 G N- k+ F - (progn
, C# k/ s, [: x - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
# P/ @, }" V7 p' `' G8 R; | - (gttable "LAYER")
* ]: o* ?! [4 n7 s - ). p/ [) k8 [; c# \
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")5 u+ Q' O. F0 C4 ?) M7 `
- )
3 p& {9 |" K" {8 Y2 X5 _" E R( [ - )
3 d' [9 e# q) v - ((= t2 6) , [ e+ N/ h0 X/ d2 Z
- (if (= flexvar gtads 1)
: d& g- \4 }( P" E" ^ Z5 f - (progn3 E3 ]7 g2 \- q! p! P: {. b
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
5 A' ]0 C" D5 F8 q v; w# q - (gttable "LTYPE")
( C6 i- c& e; |, h* e' A - )
: N8 B+ _4 W+ e" p) |$ k - (getstring "\n>>Linetype name to add/<RETURN to remove>: "): X8 }: H9 ^+ s- f* Q4 a
- )+ s+ A$ i+ M) d" n
- )
2 k& D; J% C& b0 g# f3 z - ((= t2 7)
; u! K! i; D9 @$ a4 m - (if (= flexvar gtads 1)
; Q2 D% a$ P4 }, p0 P - (progn) z2 e6 ~& o5 k% c e3 x
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")# d( I9 I8 E2 f% m- V% l/ N
- (gttable "STYLE")/ X5 ^9 c7 M' \7 N: H! ]
- )
9 y4 f; O% T; G! f% \5 r, b - (getstring "\n>>Text style name to add/<RETURN to remove>: ") H. K; g: H. f$ T* A; c0 d
- ); ^' n6 B4 y! u8 ?- }
- )5 E, l5 h A* q7 }1 l M( M
- ((= t2 39)
+ x6 e# [: x: p8 h- Z - (prompt "\n>>Thickness to add/<RETURN to remove>: ")2 {7 i' t5 X! c: w+ \6 _7 u
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))2 p( o# J) E3 i1 X
- )5 ^5 n4 ]- D% ~/ G
- ((= t2 66) (if (assoc 66 f1) nil 1))
9 L/ {9 B& l; V; J h - ((= t2 210) 0 s/ q. ^8 {. P) ]" w. E0 V
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
* |- Y1 @: x' ?9 ~ - )
: G' s3 S) y' N- {+ J4 v5 \; d - (T nil)0 z+ B, g- {; i# p. Q% {( U8 H
- )7 @/ N8 Q. | a! O% K) \* ] Y
- ): J0 t i. z7 J1 I' B3 r0 o3 K
- (cond
/ x0 a# m. w0 w; [ - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity$ s! ?( J f# b) X) g5 w6 b
- ((and f1 (assoc t2 f1)) ; already in the list
3 _' v d7 ?" y* D% | - (if (and t3 (/= t3 ""))
# G2 \* l, P. _- x& @" d - ;; Replace with a new value...
8 P# W9 x. ^! b7 { - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
, F) e' L5 y2 M5 g - ;; Remove it from filter list...
+ y% X4 k; }- D) u - (setq f1 (ssx_re (assoc t2 f1) f1))
; b9 B; p7 G+ C/ B6 l1 q: [9 y - ) }' A6 b5 w3 G2 u" _ j }. f
- )
" Q. `' ^9 e7 T" f$ x - ((and t3 (/= t3 ""))
, `; I9 N! v& X: l1 e - (setq f1 (cons (cons t2 t3) f1)): l/ _8 P/ \" W4 U- I4 N4 i
- )
& P4 k% \7 y6 G2 L- l) ?) z( I0 u$ R - (T nil)
/ S) T$ p" R+ _7 ~6 y' q, d9 _ - )8 b. M0 T! S$ R" o" O8 C& I- {! g% e
- )
' M+ u: v7 D. k, e- L - (if f1 (setq f2 (ssget "x" f1)))
* Y/ w" m) Y0 g" s: P. T - (setq *error* olderr)
) Q2 e) S7 G; c - (if (and f1 f2) 8 k: X) c. z! D3 m! `
- (progn& G* g) q) U3 ~2 e; G5 Z$ n6 t
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
. b# a- k+ k+ t) X) |+ |# c! F; s: H - f2
5 M/ B! C& R, Q, \% _0 l( w - )4 t5 |1 l6 R/ p$ n. h
- (progn (princ "\n0 found.") (prin1))
6 Z0 a: T8 u1 p0 s; H7 `, I) b$ C) P - )
, Q. D+ U, P% o( m/ G( G - )" M/ b* R$ R$ |) W; {" V7 [
- ;;;
# H8 D- w. }) Q& M - ;;; Print the standard color assignments.
7 |& V/ h& H! V- d" \5 ?7 N - ;;;
; V5 R, b' v" u( I - ;;;$ S* m( t! u3 B
- (defun ssx_pc ()$ z" P5 y m; v% [
- (if textpage (textpage) (textscr))/ Y5 o% j d& {0 ~/ K3 v9 k
- (princ "\n ")8 O# i) f, Y: o6 Q8 _
- (princ "\n Color number | Standard meaning ")* X# {0 F- n& D* Q
- (princ "\n ________________|____________________")4 [, }; K" E$ v ?4 f' K
- (princ "\n | ")
/ l9 T# S1 Y# y* g% q/ u, ~5 ^ - (princ "\n 0 | <BYBLOCK> ")4 Z( u. R; N% ~
- (princ "\n 1 | Red ")5 @$ h0 \& i/ v6 i, x% a& C7 _/ B& @$ C
- (princ "\n 2 | Yellow ")0 y1 A$ j& y1 b$ a# G' x
- (princ "\n 3 | Green ")2 Q a/ |& E1 Y1 L9 K+ P
- (princ "\n 4 | Cyan ")
" O" E4 m8 t8 Q - (princ "\n 5 | Blue ")! l$ P5 W: K6 M1 T
- (princ "\n 6 | Magenta ")
( v/ o7 C. X8 P2 V. t/ C9 p: B - (princ "\n 7 | White "); m, E( [; Z3 A, N$ A, ~7 q. o
- (princ "\n 8...255 | -Varies- ")# D3 b9 L# T. B/ H6 @; R9 u' R
- (princ "\n 256 | <BYLAYER> ")! l0 j8 R. Z3 h5 e/ K
- (princ "\n \n\n\n") B) k3 y7 g; _
- )( w I' W* u; d9 P1 [) [$ Y/ K
- ;;;9 w0 A' m* X N6 n. A, J3 P% a. K5 { v! N
- ;;; C: function definition.6 `. F- r( s! l6 U3 V
- ;;;
+ b! e% l# m1 v( A& v( n3 E - (defun c:ssx () (ssx)(princ))3 X$ t& P- P" Y0 Y) K7 ?! _
- (princ "\n\tType \"ssx\" at a Command: prompt or ")$ [3 }5 N b( r R: q
- (princ "\n\t(ssx) at any object selection prompt. ")
) n, q: o# F2 c' N, Y2 ?# F2 ^9 U0 I" ] - (princ)
& Z; q6 j$ G( V& d8 Y/ W
8 u$ Q3 ?' H7 _( C% E; ]6 r+ @ G- ;;;--------------------------------------------------------------------------;
c( {+ [/ a) `. @: H - ;;;--------------------------------------------------------------------------;
$ ^1 K; c1 N2 h V4 Y6 c( q, w - ;;;--------------------------------------------------------------------------;
. |8 T" z0 c( w9 I' C( N0 [$ F+ x - (defun S::STARTUP ()9 `5 x5 Q( `% H! q
- (setvar "cmdecho" 0)4 T. ]* f7 m. h6 C
- (setvar "cmdecho" 1)8 C! ~' p9 P) @+ N* I
- (setvar "LTSCALE" 10)$ i& T2 a& O4 E
; V- h" A, B; l7 k2 d- ;(command "_load" "chenKH.fas")" f9 G* ^, `3 u% s
- ;(command "_load" "ctcot.fas"). g- H6 W, E$ p! n
- ;(command "_load" "damdoc.fas")
" v% t3 E' j7 g - ;(command "_load" "ghichu.fas"): |2 m" R3 G8 ]$ ?
- ;(command "_load" "hamtutao.lsp")
2 y: r' N. R* C" E - ;(command "_load" "KHOITAO.fas")
" T) M: N8 W7 G' q2 G - ;(command "_load" "KHthep.fas")4 ?) v# X7 l3 J: r0 h
- ;(command "_load" "mbmong.dcl")
' x. C, Z: o9 v! g' B$ H - ;(command "_load" "mbmong.fas")" r/ u. c- `* M1 X) w
- ;(command "_load" "mccot.fas")
1 g0 ` p6 Z' F1 w$ w6 R - ;(command "_load" "mcdam.fas")
1 j o; V' T- \' F ^* g) b - ;(command "_load" "mcmong1.dcl")
`+ _& G" Q4 d. i" v. b - ;(command "_load" "mcmong1.fas")
, C* W& G+ t3 G4 ~4 q' l - ;(command "_load" "mcmong2.dcl")! T% a, B0 H9 U4 r: `- L: P- v
- ;(command "_load" "mcmong2.fas")
0 {; H" \8 [6 o3 O3 V7 N! D& V - ;(command "_load" "mcmong3.dcl")
& B9 X5 f% w- s$ e& [ - ;(command "_load" "mcmong3.fas")' F8 C1 C) }) }' y, N+ n* c
- ;(command "_load" "mcsan.fas")& M2 v, H2 s7 a" U# H' ]
- ;(command "_load" "thepdai.fas")" W3 O0 j+ h% I. I# h
- ;(command "_load" "thepdoc.fas")+ x, i( t5 w- s, [% ?7 x; n0 H
- ;(command "_load" "thepmb.fas")3 M# [+ i8 w. M7 |
- ;(command "_load" "thepphbo.fas")& a3 ]# x, }& u1 F
- (command "_script" "thongso.scr")
1 e; i1 M# V8 j' `, J - ;(command "_load" "thongso1.dcl")0 e1 t4 ]2 @6 ^, P) k7 s% J( C
- ;(command "_load" "thongso1.fas")
% g! I- W# Y2 t9 g) S& B3 ?/ n5 q, v - ;(command "_load" "thongso2.dcl") l3 B3 m- I |/ S$ b/ _% k( G, o
- ;(command "_load" "thongso2.fas")
|, }8 w( P$ r T$ c - ;(command "_load" "tietdien.fas")- f% T2 C. ^! v
- ;(command "_load" "vehan.fas")
3 S; x2 n- h2 z0 ^# h6 j, `# q - (command "_load" "phamDuy782006_TKT.lsp")
! J2 M5 g( W" B, R/ a& X# X - (command "_load" "phamduy782006ganhtd.lsp")
. p+ `4 L! E u; J - (command "_load" "phamduy782006ganhtds.lsp")
" }+ S1 ^( r% [. E5 W - (command "_load" "phamduy782006htd.dcl")
5 W% q% s/ X7 Q7 N! Z& H% e4 T - (princ)
( X5 q2 v+ b6 ^( M3 g - ), n9 b4 n& v4 j* ?
, \0 `. x( U4 o% v# ]- ], ?- ;; Silent load. x i' t. q2 @* S
- (princ). |3 a5 t" Q9 B7 Z$ `& w
- ( m" C% l2 p% K+ O. ~4 M! ?- {
- ! E- O& y0 C6 ~9 R
- ;; Silent load for the Express Tools.: ~# f2 z4 }9 f4 j" f0 ]7 d; P
- ;; Altering this line will affect Express Tools functionality( w6 V8 Z# B P, u" v/ |! X8 d$ T- I
- (load "acettest.fas" (princ)) O3 y2 N! h# K- e0 s4 L
- �32
Sao chép mã
, h) g p- ?3 K' R0 p% [00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
( a4 I! o, I& |$ Q" [! M" a$ z7 Z* Q* W% F |
|