|
|
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 |
- ********************************************************************************( j% N K2 M9 k6 t# K- O
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
5 k6 h* b' R; I - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
7 [4 _' B [8 _" h4 d - * Suu tam & Soan *
9 N4 `$ n3 u L2 ]' G& Z, Z - ********************************************************************************
" Y" Y$ t: W8 o z3 v5 x - 5 v% R1 ]$ F' y
- ; Next available MSG number is 1049 C% f( O4 V# z; F7 {( X2 i b
- ; MODULE_ID ACAD2000doc_LSP_4 V$ T0 {* W" k; C
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000/ v7 h9 i' Q2 K. d, B) z* T
- ;;;5 ^# R; ]/ Z/ D( d
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.) F% o y% }/ x/ W3 I S* d& J
- ;;;
, m2 j0 Y0 z1 P, y: ^ - ;;; Permission to use, copy, modify, and distribute this software. ~: l9 D% Q0 i8 U0 i( G6 i7 i" _
- ;;; for any purpose and without fee is hereby granted, provided0 J( O Z2 Y& c: C/ z3 c
- ;;; that the above copyright notice appears in all copies and! E+ S/ G% F0 D! ]* S; J% u
- ;;; that both that copyright notice and the limited warranty and
5 F$ A' r$ c1 W$ A - ;;; restricted rights notice below appear in all supporting
$ e9 a) @0 k; _0 Q! r - ;;; documentation.
0 n1 d% h7 ?% D e; l8 `2 S - ;;;2 D) X3 K J7 a1 q; E& x" Y
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
6 `+ ~2 A1 D1 w8 ] - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
) F# B$ M; j3 j( ~8 U+ d% n+ E - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.( ]# T5 y) Q' t
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE4 _) i7 T5 P5 e
- ;;; UNINTERRUPTED OR ERROR FREE.% Y; ?4 A9 j9 z# R# v
- ;;;% M' M5 L2 _: N9 Q
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 `! a' `. q( I" p# F/ l/ H+ W - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer: C" |! s0 I3 E2 S3 k8 X4 ?, H8 p
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
3 N( n% T7 D p9 j3 ]: E' p - ;;; (Rights in Technical Data and Computer Software), as applicable.
) K; v( P0 f& C0 I - ;;;
: O) z( P* b* r# ^4 _ - ;;;.
6 g/ M0 X2 p4 l' t% p - ;;;
. `7 W. |2 C: K+ C# i: u - ;;; Note:) O w; h0 v; H0 l: M" V
- ;;; This file is loaded automatically by AutoCAD every time
: T& C8 ? `& K - ;;; a drawing is opened. It establishes an autoloader and
5 F" V" J) u+ {# k, }; q) h: u - ;;; other utility functions.
# e. h5 s8 l0 t" R - ;;;
0 u/ V( e1 D+ R - ;;; Globalization Note: % d8 s# `( C( g! G
- ;;; We do not support autoloading applications by the native 9 l% V. }; ?7 g+ v
- ;;; language command call (e.g. with the leading underscore
1 J+ C. a/ a* A7 q7 U4 c5 a0 A - ;;; mechanism.)7 w8 p6 u& ^: R2 B
- . k( n2 j" _- q- \* w' m- y3 r
/ ^. H) S3 u+ V6 v; X9 x! E- ;;;===== Raster Image Support for Clipboard Paste Special =====& V" Q& H1 j9 G. e5 L. m8 ^
- ;;4 x8 p3 r! n, O9 X
- ;; IMAGEFILE3 v* k, F$ }- U$ y6 f
- ;;
7 l2 M" W C6 t" | - ;; Allow the IMAGE command to accept an image file name without7 t0 n/ }% S% ]# t
- ;; presenting the file dialog, even if filedia is on.
5 j1 g1 M1 M* ~$ o - ;; Example: (imagefile "c:/images/house.bmp")
# g, d9 S& W& P% N; K - ;;+ }8 h& b! f, j4 r% e8 O6 Z
- (defun imagefile (filename / filedia-save cmdecho-save)
5 v1 `8 G7 `' w, h - (setq filedia-save (getvar "FILEDIA")), O j/ N- O3 c5 P# x6 |
- (setq cmdecho-save (getvar "CMDECHO"))
$ c8 t5 N. N k - (setvar "FILEDIA" 0)+ g$ A3 \" W; K0 T' w
- (setvar "CMDECHO" 0)# Q |8 V( d8 E0 X7 k% J! V5 I
- (command "_.-image" "_attach" filename)
6 D5 b9 E% z$ f0 t# N0 @$ ~$ N5 c - (setvar "FILEDIA" filedia-save)
. ^( g# j0 I5 H/ E5 r" a2 M - (setvar "CMDECHO" cmdecho-save)6 x4 A7 s" Z# a$ ~9 {9 n
- (princ)% y! h) P0 g4 _/ X5 ~' @* T& m2 W, t/ u
- )$ `) j. E0 [6 U
# |7 d9 a8 q! Z0 g- (defun c:zx () (command "zoom" ".5x"))9 Q6 a D' N) s/ R* `9 Q" d8 R
- (defun c:zz () (command "zoom" "p"))
' F" f1 ~6 A4 _" R/ r* I - (defun c:za () (command "zoom" "a"))
* ]$ \- g0 Y- q! Z5 ? - (defun c:zd () (command "zoom" "d"))
" c4 k6 c7 p8 `, n+ w - (defun c:ze () (command "zoom" "e"))
V* d1 H. u7 U3 U* ? - (defun c:zr () (command "zoom" "" ""))% L% v p; d9 f" u" v
- (defun c:vv () (command "ucs" "v"))/ `1 p2 M H. D e9 w
- (defun c:co () (ssget) (command "copy" "p" "" "m"))
2 p8 x6 J4 G8 s3 x& w8 |" C i - (defun c:c () (command "circle"))3 P4 D5 t. L/ ~7 l% O; |8 c
- (defun c:rt () (command "rotate"))
( S! x3 F% w; Y$ R/ { - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
" h) Q+ M1 d, _% T/ N j# X - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
3 O+ j. H2 X# H& M+ T% Z* a - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))8 B# \5 b z0 g
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
0 a2 v( a1 j! {8 Z. ^ - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
( f0 g. s% t6 F- M- v, m" t - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
1 t7 Z; C" i0 m. j) r" v) b - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
' U/ H4 e0 Z0 }0 B - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
7 M; z& m0 p( |1 |& p; Y" x7 f - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
' _. O7 [& M! Q$ u4 N$ X/ S - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))1 }9 m( o" H$ Z" T$ I1 V
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))7 j. n# _+ K, y: k9 R" H
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
8 L8 z1 w& }5 c" N K# l - (defun c:fd () (command "find" "p" "" )(princ))(princ)5 U7 P3 L+ t# x; G' z: A4 U; I
- $ V! J+ I) f2 |- s8 V
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
) c0 ]6 E. b) o - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)) _1 b& Y! m) a# j+ V
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
' ?2 D" f; n3 g0 \: {3 I - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
% y9 z4 J1 }& a# G - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
6 q9 Z9 n. _, Z4 r0 y" `8 | - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))! d6 d. E6 z- d1 {& |( l
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))4 Q' M6 y, \& }9 F2 R( z
- # q! f7 C2 b. r1 o" C( z
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
6 L0 G9 N4 X$ ]( i9 N5 [& L - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))+ q; L+ R7 Y' x# m0 U, u, J
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))* _. _, F! [: x" Y H
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))- e6 Q! z5 ~1 c; B' z
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n")): \8 L! Z* i" u, |
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n")) u! X4 f! i; T- b
- / e. v4 n! U( |: J/ i
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
6 O5 w8 O7 E6 g9 r6 c
k2 `5 |" v n5 U- ;free lisp by cadviet,cd2k441 l& j) }& r5 N% @
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830; H6 g9 p' o. \9 G' L) k; ?
- (defun c:FTEXT (/ ent tstyle ); O4 _0 T# I" \. I4 M5 R
- (command "undo" "be")% P! Y& E0 G. a# D2 M
- (setq ent (entsel "\n Pick text :"))/ d% j' U: E, N0 `* d. Z
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))0 J$ O5 r8 K' J5 b3 B; w. u2 N/ B# D
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")4 [* Y: x; t. O2 g
- (setvar "TEXTSTYLE" Tstyle)- E: o$ N: ~7 b
- (command "undo" "end")3 @6 t& i& i$ i$ K- m" L2 F: N
- )
) Z- r. r1 t# y- H% b$ @! d6 _ - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet), ]1 Z1 S1 E0 G; Z
: P! V- N+ V4 }4 ^* a3 ~- ;free lisp by cadviet,cd2k442 E3 ]7 i; v$ Q6 u
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
0 B, K1 L4 i) U - (defun c:Fvnh (/ ent tstyle )
7 i: x5 R2 f8 S - (command "undo" "be")- e! z) ^+ p2 r" j* O0 h
- (setq ent (entsel "\n Pick text :"))3 { K0 F: ^% U& ^
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
" r" u1 D: v. q( T - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n"). [) s& r; a* g
- (setvar "TEXTSTYLE" Tstyle)& D7 S" c9 G& \0 Q4 H8 j
- (command "undo" "end")
1 h: t6 c' |8 p, s) B" U - )
% h( `, Z3 { `3 E: b - 0 |, @. O+ y3 N7 y3 S. J$ ~% i9 r
- ;free lisp by cadviet,cd2k440 ~# G( ? _& W) ?4 o0 h% ~
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830" s2 m" j8 T/ p+ q
- (defun c:Chbg (/ ent tstyle )& M M B+ {9 W$ s5 P
- (command "undo" "be")7 h( k3 e4 e& { n( Y: H% ~; X
- (setq ent (entsel "\n Pick text :"))
+ t. M8 a! L3 K! Y ~ - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
7 W v; l: s/ t( m - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
. h* N/ Q+ s6 t4 n; L - (setvar "TEXTSTYLE" Tstyle)
$ O1 d# V' P2 h9 B) J - (command "undo" "end")
, E% O Q4 @, k$ v' ] - )
2 t+ j' T/ r: g, F M) i! G - " }7 P1 G# }, n+ a, y5 `; O1 G6 y
- ;free lisp by cadviet,cd2k44
1 S3 t6 h3 B1 M) U& {, j1 y& n - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
" ]9 _# x! j Z% ] - (defun c:Chsm (/ ent tstyle )' K b2 k% Z e/ ^
- (command "undo" "be")) Y" w* B/ Y1 _( A9 d, \+ |' k
- (setq ent (entsel "\n Pick text :"))
9 C7 n$ M C i: m, `. G - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
' ?0 x2 O( o# @ n# P$ p3 P - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
% ?7 ]1 P! }' D5 n, l - (setvar "TEXTSTYLE" Tstyle)
6 ?; v/ ]# A8 ?- h. B7 `; S$ ] - (command "undo" "end")7 T* Y2 K5 w$ |: _+ r
- ); l A9 d4 H1 ^- z# N
- 4 r- ~+ _+ C- ?" J: H
- ;free lisp by cadviet,cd2k449 {1 i3 q# b4 c7 E! a
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538300 Q6 x( ]' \+ S' d# D
- (defun c:Fttf (/ ent tstyle )
3 _( @! b& P9 U; Y - (command "undo" "be")
! f3 r" e+ s' e" Q7 s E) o - (setq ent (entsel "\n Pick text :"))
: e9 `% t8 K7 ~& _) M - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))1 Q; `5 O' P; Y$ L: A5 M9 H6 u
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
+ o; D. v0 x7 } - (setvar "TEXTSTYLE" Tstyle)$ k7 X# G; P5 K( |! J; ^
- (command "undo" "end")
2 ~) ]5 y- e# L& t - )
+ z' Y. {* M# {0 e7 k8 Z) b: C - , h9 J, B) F0 _; L0 `. l
- ;;; ============================================% d' G" A; }9 z' K
- ;;;7 P' k3 Q0 ?/ P
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
" Y5 S! P4 v3 z- j- P2 m - ;;;9 V. w6 w) u1 G
- ;;; ============================================5 z# _' o: C% |( s! J" i' x
$ Y7 {1 a2 l1 ^. y" |- ;;; ============================================
( p8 J$ x" J! a1 r; r- ` - ;;;9 I: Q/ F7 C3 q7 ?
- ;;; CREATING FROM AUTOCAD20002 m% |2 f% G/ k. [6 ~
- ;;;6 s C: ~1 U, F% H0 ]+ S$ b! ~: [/ J! e
- ;;; ============================================+ W, i: Q+ P5 P$ [. e* d
9 M8 R! A4 ]5 y0 s8 G- (setvar "INSUNITS"4)$ T2 f: I+ [) [' k. G
- (setvar "ANGBASE"0)2 H, ]5 W8 g, ?5 r
- (setvar "ANGDIR"0)* s' ]2 s8 z8 y* m) o
- (setvar "AUNITS"0)
- {6 X: ^ f) T+ x - (setvar "AUPREC"8)
5 e6 M) I3 h3 K - (setvar "LUNITS"2)9 Y! l A Y- q" D8 {1 s* F
- (setvar "LUPREC"8)$ V1 N% T5 h5 o6 P6 g0 ~
- (setvar "ACADLSPASDOC"1) 0 z( G5 k& T0 [; {
- (setvar "pickbox"5)0 _$ q# J, a5 r: T
- (setvar "blipmode"0)6 }" N7 ]! {( E8 q( f% O0 o( U
- (setvar "mirrtext"0)
% U: ]: x$ M: K4 n7 V9 U# X - (setvar "cursorsize"100)
8 X( S6 x* h( C! X& w9 L1 k - (setvar "ZOOMFACTOR"75). z" z) ]! b/ Q5 A- A, K
- (setvar "LTSCALE" 10)
. k; H* ]3 k6 T- Z - (setvar "lwunits"1)
* w4 ?: _4 x$ E4 `7 O& T - (setvar "DIMBLK" "Closed"). C* r4 p1 Q. c6 B
- (setvar "DIMGAP"0.0693)
) G. m& m# g( h - (setvar "DIMASZ"0.20)8 E, E. t+ |+ N, _0 w; h
- (setvar "DIMCEN"0.2)
% U/ V, n2 u) g& y% b) U - (setvar "DIMDLI"0.1)
\$ P$ l" D- l/ g; W9 d; [ - (setvar "DIMEXE"0.0693)
) T5 @1 `, ~- T3 g/ ` I - (setvar "DIMEXO"0.25)
: l! F. X8 X6 Q, i2 [0 W - (setvar "DIMDEC"0)
( Y: P' }% M- {3 X - (setvar "DIMTIX" 1)6 H0 b' k G- r! g- r: e
- (setvar "DIMTXT" 0.099)) K5 n7 I: A& Z5 u( x. b0 }
- (setvar "DIMCLRT" 7)
9 T* U2 G" y& B; B0 H$ L+ ?) E - (setvar "DIMTVP" 1)# }: y$ ?4 ?' Q4 o
- (setvar "DIMJUST" 0), b; A% Y8 e, {, K7 F
- (setvar "DIMTIH" 0)$ c5 \7 b* u* g9 a) ^8 L* I3 Q. N
- (setvar "DIMTOFL" 1)9 U- y4 F/ o& S: E' B/ ]( D
- (setvar "DIMSCALE" 1111.1111)
N: T5 Q8 {5 [ s. W/ ? w - 8 P6 i! \# K' T1 L
- - O+ E8 I( y4 Q# b% y4 n
- / I2 C6 [" H; ?( f( c9 j4 J A G4 a
- (defun c:zp () (command "'.zoom" "p"))
- w& f" C" ^" C - (defun c:zz () (command "'.zoom" "p"))1 T3 A) t) R5 K) S) A
- (defun c:ze () (command "'.zoom" "e")) D* C, r- H0 T4 }0 z% |/ N6 P: q
- (defun c:za () (command "'.zoom" "a"))
5 P, J$ d7 D: m$ r - (defun c:zd () (command "'.zoom" "d"))! F' j; m7 r/ ]/ f* C+ y2 m
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))+ J& S) w, \: n( W) i o) K
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
# y+ J5 ]7 w/ V0 Q - (defun c:de () (command "ddedit")(princ))1 {; K" _& l5 x/ Z
- (defun c:dda () (command "Dimaligned"))4 s, U% y& I+ _) W+ n
- (defun c:ddb () (command "Dimabaseline"))
* C. L' |, M5 j+ `- J( B7 ?# ^' P: G - (defun c:ddc () (command "Dimcontinue"))
9 f" B9 V3 `9 {1 e - (defun c:dde () (command "Dimtedit"))
4 i" X4 Y( i0 `! Z" p - (defun c:ddf () (command "Ddattdef"))
4 d$ Y" _! B7 Z0 C4 J C1 D - (defun c:ddi () (command "Dimdiameter"))
' @6 p$ x/ X# b& M% ] - (defun c:ddl () (command "Dimlinear"))3 Q- K& Q2 ?2 W1 x0 m7 k3 Z! }* D U
- (defun c:ddn () (command "Dimangular"))
" d! z5 A, \( _# |' h - (defun c:ddo () (command "Dimordinate"))
1 E0 Q6 E7 |6 {- K# o8 w - (defun c:ddr () (command "Dimradius"))
6 X. G3 s' h, P% D' i - (defun c:dds () (command "Dimstyle"))
^* O' ]1 A! u5 F' V - : x) ?$ l8 C s0 A
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
8 A! y3 D! }6 x7 R4 [ - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
. W3 b$ b6 Y6 ?4 u1 K8 c2 f - (defun c:UU () (command "dim1""update""all"))8 H8 w4 Y2 e2 m; q$ I$ E3 S: M, z
- (defun c:ded() (command "dim1""tedit"))& \; z5 \5 [: g" C5 M% r
- (defun c:da () (command "dim1""ali"))
( F9 U0 D& J1 @7 ^3 ]5 w- n) Y - (defun c:dll() (command "dim1""l"))
* s# f/ _. L y6 S1 W7 _+ Q$ ] - (defun c:dan() (command "dim1""an"))
3 e% g2 O3 H1 v - (defun c:d1 () (command "dim1""ra"))4 p# Q7 C3 t& @- t$ {7 z
- (defun c:n () (command "dim1""new"))
2 L: j+ j9 I; Q1 L2 }5 t* { - ) ?7 |5 s% d% b" j) |$ G
- (DEFUN C:PE () (COMMAND "PEDIT"))1 @ h7 d5 A2 P
- (DEFUN C:PL () (COMMAND "PLINE"))
6 Z* X E/ Y" ~. t2 T8 C - (defun c:dd () (command "dist")(princ)), n' I l# \( l+ [; f" U
- (defun c:w () (command "pedit" pause "w" "au")(princ))
- V4 r3 d5 I) S t' p5 r - (defun c:pg () (command "polygon" "polygon"))0 }$ B# M) @) u# N, P) |
- (defun c:el () (command "ellipse"))
: G. W4 Q' L$ A- [7 q; P" T - (defun c:xe () (command "explode"))
& }1 ` A: ?# a; U - (defun c:eex () (command "extrude"))
4 J2 Y, x6 v) s7 c6 Z - (defun c:xg () (command "xline""a"))
; Y$ I( {, C* }; }/ X2 F! T- ? - (defun c:xh () (command "xline""h"))+ N ?# K7 \# E6 {4 Q6 N* \* @
- (defun c:xv () (command "xline""v"))- x' m# G6 |: n8 k, M, N+ |
) q* _* G. t& h, ~$ M5 k- (defun c:oc () (command "osnap""cen"))8 r) V1 i: B# u" {0 ~0 F
- (defun c:od () (command "osnap""nod"))6 V5 H/ S3 D! |& s A1 M, d
- (defun c:oe () (command "osnap""end"))
/ Y0 @7 e' K: \! k J5 H5 ? - (defun c:oi () (command "osnap""int"))
+ i: K C1 ]/ ?$ J# E4 k - (defun c:or () (command "osnap""per"))& ^7 T# t# u: G. I5 `& b
- (defun c:on () (command "osnap""none"))* b6 }9 ~9 _+ p; G, P2 d3 H3 F
- (defun c:oq () (command "osnap""qua")) E0 Q* x; T$ ^; B, y+ Z: m7 e7 p
- (defun c:om () (command "osnap""mid"))* ]/ i! h# e- h& P; P
- (defun c:ot () (command "osnap""tan"))9 ~$ A* G5 i: Q
- (defun c:oin () (command "osnap""ins"))
$ }+ D6 O# r- \4 |3 z0 s" U - (defun c:oa () (command "osnap""nea"))& W- ]6 E0 O9 ]9 i% p m6 c
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
% U1 Q& O- h C5 }# n& m4 s - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))9 D0 K8 d+ r+ Q) b
- ;(defun c:nn () (command "new" "y" )) I7 D* q0 I' l4 Y3 F
% D3 W5 ]# I' \" @0 x7 \- (defun c:/ () (command "limits"))
: E# x* S# `: C1 ^' A - (defun c:`1 () (command "region"))3 L9 L# `. D v4 w3 Y% A- ^
- (defun c:`2 () (command "subtract"))
0 h4 f B4 h5 A$ c+ @ - (defun c:`3 () (command "union"))
7 p; O; Q- s5 i - (defun c:`4 () (command "intersect"))
5 N, a+ v( T: c; V6 q2 Y - (defun c:`c () (command "cal"))
( S) {! _6 u# A) T' Q7 X - (defun c:`g () (command "Polygon"))8 I; C& ^9 j4 [, m( l2 u1 _4 `
- 3 }( T( N/ N, J0 _4 ]7 ?! O. f7 a
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))' J2 t$ h( A2 {! v& g
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))8 k7 x9 c4 k. J6 g! l6 Q6 E: ~& `
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)8 d x% |, F6 M
" `+ ]) x* [; V: u# e- (defun c:ddm () (command "ddlmodes" pause))% x3 S5 v1 P- s' [" J" `, I# t
+ E: @* e9 s& B, i1 n0 m- (defun c:sha () (command "shade" pause))
; x/ c& |5 T1 t2 l6 {
% i( B3 T6 Q; `1 j, B2 v- (defun c:sr1 () (command "surftab1" "p" "" pause))0 H* j5 R* I% a9 }. k( R! L
- (defun c:sr2 () (command "surftab2" "p" "" pause))
9 f! P7 {% t7 G, A* b - % T, I- ~6 ]& a B# j
- (defun c:ad () (command "audit""y"))8 _/ B0 m$ f$ R% P
- (defun c:q () (command "quit")) w g& o; {6 H
+ z. |- ~8 o; u- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
7 p8 k6 k: d/ ]! K" J9 u9 g& o. | - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))( E' e- E5 s/ Y
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
" y2 @# b& D; x% Y% O0 t5 H( v - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
; K: w5 @: o1 q8 Q( j, Z - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
; M& n; |5 q- Z) I; ` - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))9 W3 }5 y/ l c8 S
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
; Q- x1 E/ }' P. Z2 u9 K' Q! z - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))$ I2 _: T" q5 l6 k1 y
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))" I) u. P. d9 p6 @4 t
- ( X- V8 U' E% R
- (defun c:u3 () (command "ucs""3"))' M6 q& h6 L$ D" N$ ~: q
- (defun c:ue () (command "ucs""o""end"))+ J3 |1 b1 G- r/ P
- (defun c:ui () (command "ucs""o""int"))5 u9 y$ d' J9 T, e% m
- (defun c:um () (command "ucs""o""mid"))6 x# z" z# [$ V- `0 }' d
- (defun c:uc () (command "ucs""o""cen"))0 e2 u+ ^0 `9 ]; L- A7 b
- (defun c:uq () (command "ucs""o""qua")). {' H5 z8 c$ k1 y/ S
- (defun c:3s () (command "ucs""3"))+ n8 l- t3 {+ Y0 a, l* A. {
- (defun c:sx () (command "ucs""s"))
. d8 t. [ o5 o7 ^* w# ~2 `8 y - (defun c:sf () (command "ucs""o")): c0 z( ^6 I6 I) p
- (defun c:sz () (command "ucs""p"))+ R9 P3 f. ~ N+ P3 _$ B
- (defun c:sr () (command "ucs""r"))3 e) ^5 [& d& C6 r& z% W8 |# ~/ b
- (defun c:sw () (command "ucs""w"))0 c5 x O: n' z) Z
- (defun c:fv () (command "ucs""v"))( P" X/ ~) D3 X$ B9 `# Q+ H% c
- (defun c:ux () (command "ucs""x"))/ P. r6 l- y: m2 a0 m* ]8 |9 S
- (defun c:uux () (command "ucs""x""90")) e0 U& o) g: K8 {" ?% m8 `: u
- (defun c:xxu () (command "ucs""x""-90"))
0 ?# U1 y; G$ V5 S0 s - (defun c:uy () (command "ucs""y"))
: c6 x0 f' i2 t8 b - (defun c:uuy () (command "ucs""y""90")): L7 ?- I% u o4 A; o
- (defun c:yyu () (command "ucs""y""-90"))
5 F* U+ h4 r$ M- Y - (defun c:uz () (command "ucs""z"))0 n0 {9 y0 T8 V0 |/ [- Y7 A# u) j
- (defun c:uuz () (command "ucs""z""90"))
& Q' ~) u: }* f. w" R) Z - (defun c:zzu () (command "ucs""z""-90"))
# @ `5 g# j8 A* w3 V" @, e: A& n - (defun c:uci () (command "ucsicon" "Properties" ))(princ)
: v! W6 u* ^9 _/ m& Q3 ] - (defun c:ucm () (command "ucsman" ))(princ)
3 Z' o: X- L# j - 4 I( \' I( e ?/ J2 s
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
" I& C" |% i4 h - (defun c:sd () (command "vpoint""_non""1,-1,1"))
6 n3 @( k" X5 W3 i% y( H4 h4 X - (defun c:se () (command "vpoint""_non""1,1,1"))
. a/ ^" X% a3 h/ o - (defun c:sq () (command "vpoint""_non""-1,1,1"))
: Y) `/ [. O* W* S, K2 I" j - (defun c:vc () (command "plan"""))
y4 |7 d) U; ?$ M; {( T: n' V6 O - (defun c:vd () (command "dview""all"))
. R& T! g6 ^4 j
% W, r- y) b1 W$ Q3 t! i- (defun c:TT0 () (command "tilemode""0"))
' ]& J3 g0 T5 j6 F" d$ B' u5 Y - (defun c:TT1 () (command "tilemode""1"))
* a, o B$ V# l0 s8 a% G - ' \0 ?3 ], b7 ]9 ~0 x
- (defun c:vt () (command "vpoint""_non""0,0,1"))$ v# o; B1 Y' ^
- (defun c:vb () (command "vpoint""_non""0,0,-1"))
! B u6 ~/ t* @9 ^ r4 O" g - (defun c:vl () (command "vpoint""_non""-1,0,0"))
8 A- X% p. a% ^. d* s - (defun c:vr () (command "vpoint""_non""1,0,0"))1 u7 b9 a" ?8 R' s7 O6 Y
- (defun c:vf () (command "vpoint""_non""0,-1,0"))+ Y; g# v* R3 h0 {8 y$ \
- (defun c:vk () (command "vpoint""_non""0,1,0"))
& F1 D% h! f7 f' } R - ' h5 d( Q. |9 \2 b. A
- (DEFUN C:MM () (COMMAND "MIRROR"))3 \; D; H' e6 D" _
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
! ?3 d5 e# \1 N! t1 X5 d% L - 1 k! N4 C8 ~! @; ?# ~. I
- (defun c:mee (/ a)
0 h& A. E; s. s- Z* X: h - (setq a (ssget))(command "move"a"""end"pause"end"))
8 Z8 c/ b0 q3 n, ] - (defun c:mc (/ a)9 P% x; `" k! W; B8 ^* v
- (setq a (ssget))(command "move"a"""cen"pause"cen"))& M: k+ V& B" A7 r3 ~
- (defun c:cc (/ a)4 ~7 }; d9 I! D
- (setq a (ssget))(command "copy"a"""m"))
T! F j. } B; k" n! ?, R( E - (defun c:ce (/ a)
% T; o5 V9 R/ }! u9 I. {- |$ K* E7 J - (setq a (ssget))(command "copy"a"""m""end"pause"end")) M0 |* |, A) N
- (defun c:cn (/ a), r# B, X7 I- J/ [3 J- i. f2 O2 O
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
2 A% @& L! Y/ _/ n - (defun c:tl ()(command "trim""l"""))
. }1 \8 @5 u0 S: Z6 U - (defun c:tf (/ a)
, ^3 o7 B4 }# }" N! I% m - (setq a (ssget))(command "trim"a"""f"))
. P3 p+ y X/ ~* I. F2 D - (defun c:el ()(command "extend""l"""))% i& b# Y; Y; j9 n
- (defun c:ef (/ a)
. E5 a; Z5 E" L: N - (setq a (ssget))(command "extend"a"""f"))4 L0 Z5 x9 Z) W+ x& O
0 D! a' ^ J/ z- " A3 w& N: k! l" L2 M4 F
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
6 h) z. A( S& u6 [! b0 B - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))& l: h0 R8 c; w1 ]
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
; p' C" b8 K" g4 Q$ ^, I4 a - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))2 F x7 p$ c+ _/ y4 R4 w) i7 m; N
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))6 r/ S* d2 M+ Y
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600")); {) J; { L3 _$ P! G }
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700")): l! y2 h' c4 }: m# V
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))+ r2 w& K& D* `
- (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
& R+ g2 p1 y5 v7 f+ X1 ^- { - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))) `6 L) @- l9 q
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))$ J ?$ m/ ]" } h
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))6 }' b+ Z) E5 V- p G
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))" a% T: w: `" D W
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
' |: o) F$ I; b! D - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))6 G m8 p, H" A) A4 _ |& s3 j
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))2 N, n, A0 L, g* L
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))( s+ `+ v" v( f$ p7 ?* y. H7 B
5 Z0 P. K3 |; F6 v* [( w7 ?8 ^9 m- (defun c:mla () (command "-mledit""av"))) ^; Q% I- z9 w# k+ b& @9 X
- (defun c:mlc () (command "-mledit""mc"))' s% R, A; z8 y4 ?/ E0 R) M: l
- (defun c:mld () (command "-mledit""dv"))
V" G' W; k) q3 V. _- u - (defun c:mle () (command "mline""end"pause"end"))
7 ^' e! N9 \- m6 j9 u - (defun c:mli () (command "-mledit""ca""int"pause"int"))
! y, Y5 z) J$ @! D | - (defun c:mlj () (command "-mledit""cj"))7 r4 ~6 k9 ^* E& h. o# a1 ^9 ]$ q4 e
- (defun c:mlt () (command "-mledit""mt"))# v# d6 M) m* `" ]& t
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))
/ x! \% G; c9 U/ @1 e3 [' n( O - (defun c:mlw () (command "-mledit""wa"))* q5 `4 ^" U/ N, w# T+ A
6 k9 [- {& z9 \# c( C4 a, m- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))& ^/ P6 _4 L! `& `# k% X: T
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))! W" j, D% T% K2 r" l( Y
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))$ e( {4 O. J8 C" B7 ^- \ Y
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))3 E5 Z7 m+ D" s' W* }! B+ d# L
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
1 p7 A/ E; a: a. v1 h
/ W! E T1 l5 X% C/ K% _+ {- (defun c:p0 () (command "pline""""w""0""0"))- `' R) H/ v# J6 }7 T
- (defun c:ot () (command "offset""t")); O* ~+ G; R* n8 O: H, n
- (defun c:t () (command "mtext"pause"j""bl""h"pause))8 L+ h+ a- A9 N" |
- (defun c:uo () (command "ucs""ob"pause))
8 R0 y! s5 v3 r/ h+ u5 t$ f3 y W - (defun c:f0 () (command "fillet""r""0"))
0 E) u- ?" `9 B% @7 A/ s m6 B - (defun c:fr () (command "fillet""r"))6 C; F, P# D$ X: l7 O% B0 e
- ; ^0 g" N$ U6 @& H
- ;CHAMFER! U) L8 L/ R" `
- (defun c:cf () (command "chamfer"))( y3 h4 b- Y. O
- (defun c:cfd () (command "chamfer" "d"))
4 [1 }: O/ J+ Q7 N: d, W: E' o$ b - (defun c:cf0 () (command "chamfer" "d" "0" ""))8 ^7 H |7 H0 v% E
, I& x, y5 V3 o/ I/ j- ;FILLET% p# q# g( I0 V
- (defun c:f () (command "fillet"))4 Z0 A0 i9 H0 T5 o, B
- (defun c:fr () (command "fillet" "r"))
8 Y U) P9 \) W- ~ - (defun c:f0 () (command "fillet" "r" "0"))
. ], @3 A L) {# m( c+ J7 b - / M/ P Z& A$ ?8 \. q8 Y
- (defun c:OO () (command "oops"))* n- @# E# d) f) f/ B
- (defun c:dln () (command "dimlinear"))3 }7 ~; D& |8 f a0 r: K
- (defun c:dan () (command "dimaligned"))
0 w4 `4 J# c, G, c1 D% B+ U. H3 @ - (defun c:ddc () (command "dimcontinue"))* K6 j/ u7 E) T( Z0 n
5 I" Q' \3 O: n6 Z- (defun c:sc () (command "scale" "auto"))
0 ]' B" E; V# y - (DEFUN C:XO () (COMMAND "snapang"))4 Y- J1 i, A2 A! g* U0 L
- (defun c:cc (/ a)- f Q8 v6 S! J/ L' L% y
- (setq a (ssget))(command "copy"a"""m"))
% q. k, `, [2 x$ e9 A5 F8 Y - 2 W; a6 H2 n2 Z* w2 S
- (defun c:PJ (/ a)
* Z1 H# H7 Y* D - (setq a (ssget))(command "pedit"a"""j""all""y"))0 j+ b! e0 a' W" Y
- (defun c:JJ (/ a). D1 k% z1 {, E3 R/ i# ?/ g/ ?
- (setq a (ssget))(command "pedit"a"""j""y"))
/ s) ~% O% w0 V% `7 u9 u1 W - (defun c:TN (/ a)8 P0 F* ~; Q& u0 A7 Z5 C
- (setq a (ssget))(command "change"a"""p""T"))0 e& {. A/ ^4 D+ u3 @
4 U: ^/ w8 ^: O; Q5 Q7 p
3 n* Z( C- U2 c, H: D# o7 q5 _& {- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================; k+ u" e. W: ~5 \3 v
- 2 F1 R0 @: S/ H8 a
- (defun C:IB ()(setvar"cmdecho"1)
; T" `5 U+ ~- q% V; {7 D - (setq pt(cadr(entsel"\nSelect Block:")))
* W/ N! J7 q" L - (setq e1(ssget pt))
' J8 I: c1 A1 G6 e - (setq e2 (entget (ssname e1 0)))
4 C0 a, ?! P6 j9 F - (setq blname (cdr(assoc 2 e2)))* J$ O3 m+ ~ @. t+ `, s2 [' p
- (setq oer *error* *error* err2)(command ".insert" blname))
8 Y0 ~9 }8 H; v - : J& O, k9 k: p# J* W" ?- T
- (defun c:II ()8 q4 F! F# X7 l$ a+ _6 ^. X' y- R
- (setvar "cmdecho" 0)
8 B& L* D2 {# u, G8 @5 @ - (setq olderr *error* *error* myerror)0 y( Y; ]' T* E3 S8 d, R
- (prompt "\nSelect objects: ")
( j( C, Q, O! Q$ D - (command "select" "au" pause)- s I7 \2 R9 O9 T" ~' J
- (setq sstxt (ssget "p")3 N- w8 T# W, f: s2 p) f
- sslen (sslength sstxt)- t& {' y! ~6 ^/ ^8 ?. L* q' |
- ctr 0/ G7 i/ W. h0 ?) [; H0 G- L
- )7 o6 e8 ~5 y9 u+ A4 W3 _
- (command ".undo" "mark")
, T, r i `) H( w - (while (< ctr sslen) N' ~- G! C0 t- v
- (setq listxt (entget (ssname sstxt ctr))
, P/ u, ?5 P4 E3 n) O" z - txttxt (cdr (assoc 1 listxt))! d6 U4 [0 A$ [) g/ J
- enttxt (cdr (assoc 0 listxt))
1 I4 M6 b8 Z$ P, _& e( z! d" ? - )
, q- N& c a6 y H - (if (= enttxt "TEXT")
! R) ~; ]$ N% ~4 D' g% z - (progn
! L3 u2 u e4 r( P: B' Z - (setq testxt (substr txttxt 1 3))
/ b; [! k/ @+ z - (if (or (= testxt "%%C") (= testxt "%%C"))3 A5 F; ^1 y; D
- (setq newtxt (substr txttxt 4))/ [& M% F; \" X/ P
- (setq newtxt (strcat "%%C" txttxt))
# j& u& t% b. ? - )+ O7 b7 r$ V' P! l* [
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 W; x1 B6 ^" V; W
- (entmod listxt)
* ^$ Z7 s; `8 p3 R+ g& _2 L - )) g* n+ E, e& d1 o
- )- q' B9 ?; d7 _; J
- (setq ctr (1+ ctr))
9 Q! s: Z' s L2 a1 z3 D - )) u! `$ f4 R2 z
- (setq *error* olderr)
; `! o* ]. D/ p! b C& [5 D: m7 ]9 q0 _ - (setvar "cmdecho" 1)
' c4 N" J$ A3 ?1 E - (princ)
; T1 {* f8 \1 K& D2 Q7 J - )
% Q- P9 p" d8 B; d* t. V& D
# z! ~- F8 y% @; I- o, q- (defun c:DG ()
! G! Z3 F% j2 M4 A, w* o7 Z - (setvar "cmdecho" 0)
3 s' r+ A% b- E9 S: d% { - (setq olderr *error* *error* myerror), f1 ?& ]# H9 d3 b1 y! ^% y) P8 n4 w
- (prompt "\nSelect objects: "). c" T+ o2 S+ [$ I3 d
- (command "select" "au" pause); v1 o1 f1 k+ P, S
- (setq sstxt (ssget "p")
+ M( F9 n6 H- M: E& @# v* S' N" x - sslen (sslength sstxt)
* L$ e, T; a. m5 H8 W* n - ctr 0& b/ B* e" Y/ v3 M. }
- )
) H% U0 y) L: m- @- Y - (command ".undo" "mark")
' ]0 Z6 k. D7 ^3 k$ C2 n- r - (while (< ctr sslen)/ D. L6 |$ C0 @% A2 Q6 {
- (setq listxt (entget (ssname sstxt ctr))8 m( _( l3 M" e1 W' y/ g4 ~7 W5 l
- txttxt (cdr (assoc 1 listxt))
! ]- l! g ]7 n& @4 b6 p$ ~: G E - enttxt (cdr (assoc 0 listxt))$ L! u5 j6 a6 s: m) _; `
- )4 X6 _2 N; i1 V9 {$ e* m4 p/ m
- (if (= enttxt "TEXT")
( ?3 V& T; i0 O) Z/ g( w - (progn0 E6 h: [% p) @$ n8 w' z
- (setq testxt (substr txttxt 1 3))% n% C+ d0 p+ n5 r
- (if (or (= testxt "%%d") (= testxt "%%d"))0 v" m, @ i; |/ S) D
- (setq newtxt (substr txttxt 4))
, I+ l* Z5 O9 H* ?5 n0 P - (setq newtxt (strcat txttxt "%%dC" ))8 Y4 }1 _: ]6 ~ t1 E) q
- )
2 y& S: a+ P& ?4 L; F* t - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
! G7 \0 p5 i3 t' H" m; ~ - (entmod listxt)
6 q- G: w9 n% z7 Y8 P' Q( m) K - )
6 y. l* A5 o& @. ^8 l8 `9 t& F0 a3 \ - )
2 ] y( @& m, U0 | - (setq ctr (1+ ctr))
' m" w. a5 \% [ - )
! v; H% a4 B$ g$ l; ~ - (setq *error* olderr)- D/ t4 C! i F/ u* A- f. b- \
- (setvar "cmdecho" 1)% O6 j. X- e+ H4 W
- (princ)( A5 i* T2 O6 d4 k* {0 y
- )
* j* R$ q2 @/ D) J. Z' o - ; q0 o( P, Y0 I4 c' G5 `* X9 F
- (defun c:PI ()
* J$ `8 B2 ?6 e' s6 s$ ` - (setvar "cmdecho" 0)8 q7 c, M7 h6 t' S7 P/ I
- (setq olderr *error* *error* myerror)/ S" x6 _: L/ x5 E/ b
- (prompt "\nSelect objects: ") ^" c$ p$ \- c: T, X9 z6 t
- (command "select" "au" pause)
( M* d5 Y% D- ~! [- } - (setq sstxt (ssget "p")
5 W% }0 S* k7 y$ i& V7 X6 X - sslen (sslength sstxt)$ @- ~+ P7 h7 t2 L l; N
- ctr 0
" D* M- R# ~% s - )
6 N5 k6 n* B( w - (command ".undo" "mark")7 F- R' z, e# j$ [; t& |9 `0 K
- (while (< ctr sslen)5 J0 S6 |7 Y+ q p5 E9 ^; l/ O; @. a
- (setq listxt (entget (ssname sstxt ctr))
8 v$ K0 C2 N1 a - txttxt (cdr (assoc 1 listxt))
# y- ^4 T4 R) |& O - enttxt (cdr (assoc 0 listxt)): Z/ Y7 g% W7 T& g2 X
- )
8 h+ k: M, X5 p( X - (if (= enttxt "TEXT")) @& q5 a% ^1 p; [# {6 Y) z
- (progn
+ H! O9 x7 h7 d q( \9 q, e - (setq testxt (substr txttxt 1 3))
! u, X& L" D" S - (if (or (= testxt "%%p") (= testxt "%%p"))
6 @ n, ^- [7 s' x5 s - (setq newtxt (substr txttxt 4))4 C0 g5 Q( {. `% B
- (setq newtxt (strcat "%%p" txttxt)): A6 J* y8 e* e- x0 }
- )" S% l$ U- L- _ ~# \ g0 Y8 q, z/ w
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
* ^1 q. \5 Y( V. L0 D. k, { - (entmod listxt)
* z* m4 Z/ m0 g' {* z" ^; h) N - )
4 h$ U3 ~, n% Y - )6 P4 A- g" `( ^7 O% j( O( {( G
- (setq ctr (1+ ctr)): y% J6 M3 e; U" [" l
- )
# X% `$ t( I% O/ p - (setq *error* olderr)
" U9 }- \" J; _3 d, C9 p; ~" { - (setvar "cmdecho" 1)
# j( Q- d5 N* T' a g k - (princ)5 W2 q6 e7 i$ b+ S9 F9 O4 ?& m K
- )- J; C% e6 e. h; B* n) x5 k
; p$ O' Y4 l# S- (Defun c:CB (/ a)( B! A* z0 v4 e! T- j: P) s
- (setq olderr *error* *error* myerror)* q" ^* l. k/ Q( G3 d) }
- (setq ocmd (getvar "cmdecho"))6 `+ ?3 m/ I8 k- U5 A2 T! U3 s
- (setq oblp (getvar "blipmode"))* L9 p9 @0 _! X0 R' t f; n) w
- (setvar "cmdecho" 0)' w$ {9 }. \; v# U: b; ^; V6 Z
- (setq a (ssget))
$ v# D: n; E; t6 s - (command "CHPROP" a "" "C" "bylayer" "")' S8 C) a$ V/ T/ u
- (setvar "cmdecho" ocmd)
! Q# r! V& ]5 Z$ s - (setvar "blipmode" oblp); m& c1 Y' r+ b% d& N+ w A# J
- (setq *error* olderr)3 }% n* ^) K7 {( r1 n1 ]
- (princ)! B8 F: `- F) i- u
- )3 H: X2 c# `) G, W% A* I
8 M" `9 q/ H5 r3 J. s3 V4 @- (defun c:LCC (/ co43 obj23 la23)
$ N/ ]; h8 g7 S3 Z0 f - (setvar "cmdecho" 0)4 u" r5 b- B8 v: B
- (setq co43 (getstring "\nNew color : "))
4 ?8 U$ F& M8 X - (setq obj23 (car (entsel "\nPick object on desired layer: ")))2 L, B I0 N. N
- (if obj23 (progn
# Z7 }% A8 n8 k" _ w7 k - (setq obj23 (entget obj23))! [$ y F8 z! k- P( [9 r" A
- (setq la23 (cdr (assoc 8 obj23)))8 V' T0 j& ]3 B* S8 ]
- (command "layer" "c" co43 la23 "")
5 h0 n+ N5 Q" e2 @, o - ); T7 W) E. l/ M' a8 T0 ]1 x
- )% d- e; I, V) f, t/ m
- (prompt (strcat "\nLayer has changed..." la23)): x) @4 [1 S/ T: X' m
- (setvar "cmdecho" 1)
& y* _4 g- A- S: u- v: L - (princ)
4 s, \5 l9 c6 Q& s- x0 f* {: I - )
1 w$ r$ H2 a0 V. f; e9 F$ B& B! N - # c5 \& |' j d
- (Defun c:RP (/ a)# l( P& R' C. c8 x. O
- (setq olderr *error* *error* myerror)
9 C# M1 Z( @) v0 ?6 P - (setq ocmd (getvar "cmdecho"))2 N9 A9 r2 X1 M2 I( t5 `" u
- (setq oblp (getvar "blipmode"))8 Y2 ^1 [, q q! W/ C1 L5 p
- (setvar "cmdecho" 0)
) P$ q3 X8 d/ h" W, g- v. x - (prompt (strcat "\nUSE: Delete object(s) belonging to"
3 M7 \& q" d. x - " the layer of the entity picked...!"))3 n$ \; _" H7 `6 Q
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))
3 {' l% {) H6 |2 v4 V - (if (/= a nil)3 M) M- C% Y* M6 H/ x- V" y
- (progn (setq a (cdr (assoc 8 (entget (car a )))))& _, k8 W. S0 K5 M% R7 }
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
% _& P" I9 d; p. T+ I' ] - (prompt "\nNo entity selected!"))
$ ~* t1 Q' _# b# Y) P - (setvar "cmdecho" ocmd)
9 ]) x. B8 {# [/ ^) r- Q+ p3 b& ? - (setvar "blipmode" oblp)
. P2 F* s3 I6 s z - (setq *error* olderr)% G* G* ]7 l/ j6 }, L) K9 r
- (princ)# B0 f! T3 O- F2 F) i$ E1 J" N) D
- )
g- X0 K% F5 T+ b# L - / F$ z* l, g8 P& B4 S1 i' K
- (DEFUN C:WL(/ SSET NET SSL M)4 m: i$ Q- p2 }( B
- (PRINC "\nSelect lines :")/ q- s+ U: F* Q
- (SETQ SSET (SSGET))3 e& q3 L( j4 l) \; @( [1 J
- (IF (/= NIL SSET) (PROGN' C) H; }' I: K6 i
- (SETQ SSL (SSLENGTH SSET))
! K* e5 C, A ?; F# A% R7 A4 m - (INITGET 4)/ `3 {; N( r6 V/ `7 ~
- (SETQ NET (GETREAL "New width : "))
0 k& S7 l" [# m. ?( z4 t4 d3 m& t - (IF (/= NIL NET)6 z; l: z5 ?8 h2 z
- (WHILE (> SSL 0)
6 s( L* o* B. u9 s, P& r: H - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
3 _1 R, I; U) Z - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") - n- [7 ]9 i- B6 I
- (COMMAND "PEDIT" M "Y" "W" NET "")
. u! Q' K h& A7 f' H - ) + r* {8 W( g1 ^9 J5 d2 W9 R% c
- )
/ B1 v+ p" d3 B, w! [5 l, W: v, U - )))( `0 {6 D& x, K
- (PRINC); z8 `. V. p U# T8 J+ Z
- )& A% f! e0 i* U9 t( }. t- _# k F
- 7 l' C4 j' o0 v4 Z/ s, @
- (defun C:MML ()
* b. F" s# m1 O6 L B8 Q - (princ "\nSelect objects to move to another Layer.")% P" }% y0 s" K- u6 O! R
- (setq ss (ssget))
* |- ^! M' N) R+ e - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
2 m7 m& b0 @' P- [4 a/ \+ I: Y - (setq counter 0)7 x5 o7 D W( B8 p, f5 S
- (prompt "Moving to layer.....")(princ ul1) |- I' O6 n# p1 b
- (setq e (ssname ss counter))
{8 s3 e% d0 o - (setq l (cdr (assoc 8 (entget e)))), S* }# O& j2 Y1 f
- (setq S (ssget "X" (list (cons 8 l)))); z4 Z. O. m0 b5 K/ z
- (command "CHANGE" ss "" "P" "LA" UL1 ""); }1 Z! z2 n& G( x7 _5 ~
- (setq counter (+ counter 1))
0 X0 j2 ^$ z* O3 {7 Q3 Y5 K& q - (princ)8 i! \; @. r( d: O) K) N4 A
- )
, q! x! g/ N. @! x$ B, y
+ b$ m' E0 @0 s K- ;;; ================================ GHI CHU ============================6 ?0 A' W2 R9 E& v
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========3 I+ O& V% p) i% V( m. _+ t( p
- ;;; =======================Thuong Dung Font Romant.vnh===================
, t( x- S! d1 u& Z m0 T0 K& u! m - 6 X7 f, O. {0 q, _1 o8 G; O
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)+ b$ {( e8 r5 x+ b+ A) m0 v
- (setq oer *error* *error* err2)# D$ v) s. m* c* U* u! Z0 B4 h
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
$ R* @/ Z5 j7 [' G0 a8 V/ B - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))6 ~7 L! c( b/ s' s3 m
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))8 d6 O1 `) O' G& j. a9 q6 s
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))" \: G' D/ H. i: J3 v2 x$ C
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
5 [9 y* O7 A' W' W) L/ l: a - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
' r7 k/ D4 }5 `2 O - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))" e- q7 C0 p# E
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))- U3 m7 W3 J- U% j8 x" z% n
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
* l" V! m( z% e3 h L# { - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
' S z4 m0 v3 ^2 u7 x" n# {
$ Y# ]+ ~& s1 a3 a/ m0 p/ z# ^- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")), ~9 Z- c' C5 B6 ]) n* @1 m
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
& u% ^4 a; z9 b. Z: |3 g - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
& V' q/ e- `' T - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
( F- V: s* ^1 q) T, j$ R - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
: U2 u" J0 F" C0 C" q - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))7 V$ U* M7 Y E* _2 ]* S
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
& M. y a3 Q. C. L0 f6 e - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
4 k; T" g6 L2 d. P - 5 K/ R* I$ z- @3 y
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
1 m! y: s& M6 Y; {' D$ b - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))1 Q/ L% k! n& M1 y/ F6 Z V Z5 T! X7 ?
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))/ X* J8 B: h- y
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))* W4 y/ `% k8 e9 e% j# x
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))/ o. r0 j* s% E% W: @
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN")): `* M' ~/ H w- H5 z& {- R
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
* p7 E% @; Z1 I( V4 D1 S - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
+ q, h$ i6 a4 Z( I% b8 a- s - (setq pta (getpoint% a& Q: T' v3 u8 A i; u2 T
- "\nPick first corner. : ")) G- x) R. }9 \' `" L6 a# u
- (setq ptb (getcorner pta
3 {0 T* n& X% A3 Z. p2 J3 k# D - "\nPick second corner. : "))
* s" e) D* \! D! X, p4 d6 _+ l7 E, a - (setq ptc (list (car ptb)(cadr pta)))
0 s7 \8 F8 q, f) n- d - (setq ptd (list (car pta)(cadr ptb)))
% h: I5 {9 ]! q# x' g - (setq ang (angle pta ptb))
3 ? ~. A* I# T4 v - (setq d1 (/(distance pta ptb) 2))
. I! Y7 D* @4 q5 F - (setq cp (polar pta (- ang (dtr 0)) d1))
+ D" n* x4 H' C+ r0 F - (setq X (distance pta ptc))# B g. B( Q" E
- (setq Y (distance pta ptd))( d# ?& A m) a
- (setq X1 (rtos x 2 1))
1 w+ R. I/ b. c& j1 n - (setq Y1 (rtos y 2 1))
' S7 @( C2 j* Y! u& x& W7 z - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
0 ~& d O+ r: i2 M% |1 P$ Y& l C8 H - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))% A; n# H+ {: e# i9 e/ U* f
- (defun dtr (angg)
2 B/ K9 @) R. z( x$ r - (* pi (/ angg 180.0)))9 r# ~. z' K+ \9 i
0 C2 Y6 i' a! ^" g6 Y8 M- (defun c:WS (/ pta ptb rmsz pl1)0 j" B q( p$ _% f5 m7 g9 |
- (setq oer *error* *error* err2)
9 x9 u3 _1 D3 g% ^% z - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")$ A( S8 W4 J4 |" a
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))& D3 ?7 q8 u7 s+ G) n9 S
; @5 K% {/ A1 N5 U2 z; m% |- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
. z6 }+ F6 _- x1 U! w5 V( x - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
( ~+ w# P9 ]# Q& Y1 x! o) [ - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))# w+ Z- ]. X1 R8 G; ]
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
! L- Z, s# {9 x5 r - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))6 h/ n7 A- {- m' h+ l
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
5 o2 j4 E* U9 ^. z/ A7 x7 W0 e - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
1 `* @$ }: ~5 h: Q2 k; E
: }) O8 j" P3 l( W$ u$ {- (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"))
9 @+ a4 W/ p, {9 E( ~3 } - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
0 z. B& @5 `" D - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))* [$ V/ m. @7 x
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))2 H, Z' f& V0 p+ w+ E
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
7 I- y+ l1 R9 C, M: t. i* `+ u - (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"))5 P! V- s7 e5 ~' g
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))8 T" R ?5 W) k7 B8 v* e
- (setq pta (getpoint8 x) h5 p& @8 n3 P
- "\nPick first corner. : "))
& ]9 a: _' `# \) c: F - (setq ptb (getcorner pta6 J/ `# Y M% @2 e }
- "\nPick second corner. : "))
' J+ S: H4 X, V; U1 f, `5 ^% ` - (setq ptc (list (car ptb)(cadr pta)))
7 t" {2 R- C9 w: r+ L& \# f2 X - (setq ptd (list (car pta)(cadr ptb)))8 e# L3 w0 v1 L
- (setq ang (angle pta ptb))4 w A# j1 A: a4 n4 K% R
- (setq d1 (/(distance pta ptb) 2))
! h: H) U/ Z. Q# J0 A, U+ \ - (setq cp (polar pta (- ang (dtr 0)) d1))
( |: g: `7 e2 v( f - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
- J% e3 _ f0 \" r/ X! j - (defun dtr (angg)2 N" _$ I8 w( m _: r$ h
- (* pi (/ angg 180.0)))
4 G+ M5 v T; H& P: P - ; z0 i: t+ I% p
- ;;; ================================ GHI CHU ============================
* S0 F: T z2 T2 B5 H0 @' @ - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
6 ~& E4 H n- C3 {: A" W - ;;; =======================Thuong Dung Font Romant.vnh===================
' }7 z- c `4 i- B) B - 2 n- [0 a: |7 n G& Q
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
- W( P2 W0 m( \0 ~ - (setq oer *error* *error* err2)
' O! r( T& o# ^. p5 \9 h - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
4 k5 I# ?( i/ d$ D3 k; ?/ \ - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
. e1 ~4 H0 M/ k7 S - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))2 `! a6 I1 p+ M- W
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
- a/ |9 q# j8 a4 } D& `- P - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))( B3 {+ b: Q: s( b2 q# p
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c")). }( R2 ~8 y) y3 n4 u9 U6 A) y6 E
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))* D9 l7 ^5 z6 `; a* r
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
+ \( D- v7 Y; z- P - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))3 a: c/ ?2 d/ w+ a N
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))1 e) ?- f* K) x0 R |3 s& R9 }' Z
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))1 C% k7 R7 e" F4 f! ^- G# s. k
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))- w" ]2 ?1 j1 l+ B2 s
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))$ `) Z, z+ K' p4 b! |
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))" @* z. X& o2 m" i# C0 C8 f5 [
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))' N$ g @- o, K# x
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n")): s+ K- O# V9 r, A1 n$ ?2 G
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
0 n Q4 i0 s1 z) { - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) 4 b5 {# P0 k* G3 }. U* _3 j8 C
- (setq pta (getpoint
! Y& v& T: G" L" @ - "\nPick first corner. : ")): _9 Q l7 {- }1 r. Z- i
- (setq ptb (getcorner pta; G$ @: a! q) m5 z; v' ]- {# s4 j: M
- "\nPick second corner. : "))
% j! O$ L' U6 \ n( L; o$ } - (setq ptc (list (car ptb)(cadr pta)))( Q8 F& r5 r" @5 ]' B
- (setq ptd (list (car pta)(cadr ptb)))
7 \! j; p* Y7 v7 R - (setq ang (angle pta ptb))
+ K- o7 X" o; B q; Y; S) g# |. F - (setq d1 (/(distance pta ptb) 2))
' K( q+ e- Z2 f) }$ J( I @0 S. }& v/ J - (setq cp (polar pta (- ang (dtr 0)) d1)); ?$ E! g3 G$ f! x, ]
- (setq X (distance pta ptc))
% o3 |7 |6 H( q2 t1 P) b1 [5 E - (setq Y (distance pta ptd))
9 ^0 i# b/ s! f% x* t7 f - (setq X1 (rtos x 2 1))
5 P' i% l5 h- V: q6 J - (setq Y1 (rtos y 2 1))8 w; ^+ e1 t# u" O" [" c V5 t8 y
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))/ w; v. w4 k \( c! `7 D7 F
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
/ C3 `2 ?8 F _4 v |' a) t) ~ - (defun dtr (angg)
" g7 {) J/ p2 \( @6 B& P - (* pi (/ angg 180.0)))# x) d/ C. w9 s. w
- - w4 ?- X8 w: k' `5 d
- ;;; ================================ GHI CHU ============================! L6 D6 u4 p: W- F% W. u) e
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
8 x+ X2 q v+ i - ;;; =======================Thuong Dung Font Romant.vnh===================9 m/ M( x5 v/ j6 H; G
- 4 @6 b% Q }; E9 V! f7 j6 {
- (defun c:GS (/ a b c d)
: K# ` o6 |$ A/ a, t - (graphscr)$ Y1 D( L8 N" i% O( A
- (prompt "\nSelect text to set style....")
- x: m& p7 h9 R, c, A - (setq a (entsel)). F! W1 ]; Y" N
- (setq b (entget (car a)))
# J( p: K" x" I% a0 M8 n - (setq c (cdr (assoc 7 b)))* N/ v+ M, u# i- n1 E
- (setq d (cdr (assoc 40 b)))2 m' x8 L- d3 Q
- (command "style" c "" d "" "" "" ""))0 n$ n$ z! T* g8 ~' `* p
- (princ "\nType GS to set text style.")7 e( ?" |: `6 C! t+ p
( {% l8 z6 W1 [4 ~* v5 \& L) C* j- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
' ]; V; |7 d. H% P n* R - (setq olderr *error* *error* myerror)
D5 q7 q% _" n" _# M% c - (setq ocmd (getvar "cmdecho"))6 y |4 l3 ~1 E. ^
- (setq oblp (getvar "blipmode"))% r3 Q0 W# \9 y3 q
- (setvar "cmdecho" 0)
' `, ~" m0 K8 r; A - (initget 1) ;3D point can't be null3 G! C5 J, a" t6 C* u% _! b4 r) c) I
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))8 q$ q5 t; k8 H8 g: C2 q
- (setvar "ORTHOMODE" 1)
7 D) ^! p6 s3 k - (initget 7) ;Length can't be 0, neg, or null
4 C7 Q, o9 E6 R$ p9 O - (Setq l (getdist pt1 "\nLength: "))# c$ g1 B `$ Z9 f; A- H0 R
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1))), m- T. K6 T# @. ]6 e; B. w/ F
- (grdraw pt1 pt2 2)! e* j3 i* z/ E) a# M& M1 _# i8 y
- (initget 7 "Square") ;Width can't be 0, neg, or null
8 j; e5 p q" \6 N, s - (setq w (getdist pt1 "\nSquare/<Width>: ")), f3 L5 y& s1 |1 B
- (if (= w "Square")
" f# w% L+ W4 |' H! e8 R& H d" A - (setq w l)
. a, s+ X7 A, k: @+ t6 O" C - )
7 n( M8 T4 ^ ]- z) ?5 F! [5 @0 T) ` - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))* e" i" M, Z4 N( ]
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
9 c$ t* g; f4 n; T4 D' @$ u* ? - (grdraw pt2 pt3 2)
8 J0 T/ \' J+ t/ D - (grdraw pt3 pt4 2)
8 e! Z% S7 X$ h% z( d - (grdraw pt4 pt1 2)+ a# N7 ^. B% X. W3 m) j
- (setvar "ORTHOMODE" 0)
" k; D Y H/ }2 p; G5 ^0 e4 W - (command "pline" pt1 pt2 pt3 pt4 "close")
' O/ P- F+ a+ ]1 S7 P. s - (setvar "cmdecho" ocmd)* n U! O$ u8 J) Y
- (setvar "blipmode" oblp)
; g! U7 \+ U5 N! e - (setq *error* olderr) ; Restore old *error* handler
- Y! d* K7 |5 s1 f- D: T8 ?2 A4 D - (princ)
9 j v# `4 a" B+ r) l, K - )! D/ ]6 j" I U
0 D0 O+ t5 f1 N/ |2 c- (defun c:SG (/ ent pt1 pt2 ang)) Y' I5 G; m' W% q; q, I
- (setq cmd (getvar "cmdecho"))
: _- b3 t# ]2 i% I( W - (setvar "cmdecho" 1)0 n! Z/ Z- I2 w/ v8 l. ?
- (prompt (strcat"\nSnap angle will be set to angle of line"))/ k0 \7 e, Z8 [* n( z1 E
- (setq ent (entget (car (entsel))))* v# B* o3 j3 l, u; `9 Z7 Y) \
- (setq pt1 (cdr (assoc 10 ent)))
4 W/ |( A7 x3 z1 g! `2 `+ ^3 V# C - (setq pt2 (cdr (assoc 11 ent)))
8 O# |# F. c/ W% {, B - (setq ang (angle pt1 pt2))& b5 g. ?" O. x' V6 J
- (setq ang (/ (* ang 180.0) pi))9 O% V7 d( x' ?8 \, X* x
- (setvar "cmdecho" 0). B3 l$ e. I- @6 o- z
- (command "setvar" "snapang" ang)/ V* P! o0 }& Y7 ?( H& @2 W
- (setvar "cmdecho" cmd)
' X# [: ?' g6 M+ d4 ~ - )
8 c: {( k2 R3 W! `5 x - * _7 C2 E; E' W$ f% _# M6 q
- (defun C:TG ()
8 ^8 D1 y; w- k6 W8 ]9 w$ ], Q - (initget "Increase New")
+ E Y; b& f7 L4 J' N' F7 Y - (setq ans (getkword "Increase/<New>: "))
( n6 l& z* w; N* G) @7 G4 U - (modang)2 R- p+ _' P% Z4 f" o
- )
! T4 R0 T* P. y8 A# X8 S* S& d - (defun modang (/ ang ss ca e na ssl) J$ k, D# Z6 V9 Z4 o9 `
- (if (= ans "Increase")
) s5 v) ^8 e/ y5 X$ T2 p* g d - (princ "\nIncrease angle for text by: ")$ b) ^; q/ p5 @
- (princ "\nNew angle for text: ")
. k) n% h3 r/ n0 j - )
" a, S1 O$ S+ Q# v# c - (setq ang (getreal)): ^ x. l4 |6 M2 D0 P% c+ t
- (setq ang (* (/ ang 180) pi))
8 Y e7 P1 Z% X% Z% ?7 ], e - (setq ss (ssget))
1 @& ?' d6 E1 P - (setq ca 0 ssl (sslength ss))
C( n0 |3 `& n6 v% } - (while (< ca ssl)
9 W/ E0 F* w% y% W. G - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))2 u. h. z7 e' R" ~
- (progn
. L1 v8 M }9 R3 l. ~ - (if (= ans "Increase")) f' Y7 Q- E" B( g! y4 J, W
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
0 j$ c6 {2 @# r# S - (setq na (cons 50 ang))3 {0 k. [, h7 H* p( U) u
- )
+ j7 m/ D, C: m" | - (setq e (subst na (assoc 50 e) e))) @3 k! g$ E3 ]; y7 b$ A) W
- (entmod e)
1 ]. W% @/ q/ T) ^1 s - (setq ca (1+ ca))
. |8 v5 K+ A. m - )5 b9 p# R- _8 F. y. A; q
- )
( b x1 L% C: L+ W. R2 } - )
( O1 t1 K4 U2 J, v f - (terpri)
5 w( O/ ~4 I ]# \ - )1 A/ J7 W2 n, F0 m
- ) z9 r& ]& Y9 K) u
- 5 J5 S" \5 D& r
- (defun c:WL ()* y3 d. k3 ^0 m
- (setvar "cmdecho" 0)
, L9 U5 P- |$ t {# S$ P; P - (setq a 1)
4 `- v* z" ?# d7 g( z( v - (prompt "\nSelect Polylines to change: ")6 j: C: U$ K7 ?
- (while (/= a nil)
" _6 @; h: }$ g, a1 _' j - (progn
7 z% v& Y+ S' |/ Z. U. v - (setq a (entsel))( I4 ~7 v+ m5 k/ h: D
- (if (/= a nil)
& K8 `; ?- f7 u Z4 h - (progn
2 f5 k9 s/ U" X4 W - (setq b (entget (car a)))/ K" b3 s N3 u7 ?% |0 K
- (setq c (cdr (assoc 40 b)))' B' [% u& @1 A. Y% B; M) a
- (princ c); j/ r' {" O' j9 L. | [4 p- @8 o6 r
- (command "pedit"a"w""lw""")
" h1 n9 x) l3 Z3 | - )))) & ^! R; A( l- D3 a
- (princ)! u2 J) L& B% N
- ) h. ` w3 v/ e9 G0 y
, g0 _% A) Z( }/ l. h8 t: q- ;;; ================================ TEXT FIT ============================4 Y, I. j8 K) {) Y6 J" v. n
- ! I* ^! H: V! h9 J9 M& a5 ~% d6 W
- (Defun c:FT ( )
4 \0 d) n; i$ X& ? - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )# Q; _" n" `8 L5 D7 a
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )+ I3 G/ p$ l! i# N' [( O
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
5 D& L- T- u) e" Y: Q- ] - (Defun LL-y (arg) (CADAR (TextBox arg)) )
! Y# `4 r" `5 A4 c/ W - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
5 f2 }4 X$ c! }2 k - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
5 `( F. G% B7 F& Q4 b - Textent (If ename (EntGet ename)) )
) d4 X( f8 @0 X. q - (If (= (CDR (Assoc 0 textent)) "TEXT")& b# r. a' v5 W& v
- (Progn (initget 0 "Start")
' a* x8 R9 ?) N5 e - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) ), b2 g$ i7 J, O6 `" O$ I
- (setsnapang Textent) ;set snap along text entity( ^, @0 c0 E* k) Z9 C: G: I5 g4 u+ U
- (setvar "ORTHOMODE" 1) ;drag along the text
1 u, J% m8 t3 E. X' z) D - (setq
. y. X% z* c) S# R - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )) z6 I3 z+ j7 }7 c; P" |
- (setvar "snapang" 0)
, f5 Z, }! U5 H - (cond& v* l# V; |4 q$ j" ^* O% |
- ((= (type TMP) 'STR) ;;new starting point to be selected
! e" t% L; A# k% v, [ - (setq Start (getpoint "\nPick new starting point: "))0 L5 D$ L9 k: A' W( e3 N
- (if Start (progn
4 l2 j, u2 s. X. g! q - (command "_UCS" "_E" (cdr (assoc -1 textent)))0 ^; z, Y) D1 [% N
- (setvar "ORTHOMODE" 1), d: h. {6 q, G. x7 W z7 w/ I
- (setq NewPt( M0 T6 \4 `! \$ A* H$ L) y3 x
- (if Start
) r% R* \2 \% I: \( ^$ `( Z; J - (getpoint (trans Start 0 1) " ending point: ") nil ) )
' r; M D5 B ] - (if NewPt (setq NewPt (trans NewPt 1 0)))
! o' F8 M' R7 p1 s, _& f - (setvar "ORTHOMODE" 0)
" T) \, o9 z2 U" P b - (command "_UCS" "_W") ) ) )
* [- [; X; L0 ^ @7 E) a - ((not (null TMP)) ;;new ending point selected1 E5 Z3 V6 G( Z
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )2 \3 ?# N9 I4 D0 c3 o% ?, s* G# f0 j8 P) J
- (t (setq Start nil NewPt nil) ) )5 K2 x6 X( W5 y6 _
- (if (and Start NewPt) (progn0 v' v' |' K: w( B N( V4 E
- (setq Val (Assoc 41 Textent) ;;current width factor [, b$ z' s0 N, R: {4 K
- Val (if Val (cdr Val) 1.0) LTC_% ! m5 K( H) V1 p7 I6 {0 Z
- (* (/ (Distance Start NewPt) NewEnd ) Val )' \# |2 w* ]& o+ {( s7 b/ w
- textent (Subst (cons 41 LTC_%)' {2 i$ m& ]+ o: L
- (assoc 41 textent) textent)
/ I/ F; J& Y* |5 v" c - textent (subst (cons 10 Start) (assoc 10 textent) textent)/ E6 a% _4 V j4 @* i
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
& z( Y+ K6 K9 [$ a4 S2 n( i$ y - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
! |, ?7 N; u- Y* R- P# c - + B, g: g0 Q( V/ P
- ;=====================================================================
4 X" U, y$ N# p! i, T6 F& Q; { - ;=========================COPY + ROTATE ==============================
7 b% u$ Y+ L* u0 `7 J% G; n& g - ;=====================================================================
, U! B$ `/ r8 V% F
6 v5 z# |) L1 k) H( P( s8 v3 H- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
0 J9 \; k2 X% U- `4 z+ [" Y - (setq olderr *error*9 \: B$ z2 S5 {7 [( q
- *error* croerr)
N i1 q C; ?% r* x0 f - (setq cm (getvar "cmdecho"))+ ?; j6 F* \' ]& ~
- (setvar "cmdecho" 0); D% e- }0 a0 r/ i/ x, Z
- (setq loop t)+ {; [3 C2 |9 h7 x& V' x
- (while (not (setq ss1 (ssget))))
2 c1 |0 @& f6 _* E0 }* i; K - (initget 1 "Multiple"), N! @9 N( V7 c
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
! a7 B# t/ M, u8 z" s& W - (if (= bp "Multiple")
. W# E ]) f# O - (progn# A6 s z& w2 g* X3 b, F( S* M& u
- (setq bp (getpoint "\nBase point: "))6 c8 W! _& m W6 {8 s- M& `
- (setq mult t)8 o" T Q2 A" Q4 i1 [, [
- )
" a0 L6 L4 r; W" Z - )
& _3 l+ t$ c' N - (while loop
: J% p3 ^4 e. [) L' h! s) F, n - (setq loop mult)
l0 A- |# t9 e% I7 b9 b - (setq lent (lastent))( H( y+ g- B. X6 a5 k0 h1 e
- (command ".copy" ss1 "" bp bp), w( J4 O6 n% U% V
- (setq ss2 (lss lent))
0 g2 o3 j' Z' i# @ ^# W - (setq lp1 (getvar "lastpoint"))5 j8 _8 G/ M l
- (prompt "\nSecond point of displacement: ")
6 G# f' Z7 B; A9 ?# I - (command ".move" ss2 "" bp pause)
0 W' l9 O. F3 i- w/ H0 i, P - (setq lp2 (getvar "lastpoint"))
5 D5 a- Y( ?: _2 Q, c4 B - (redss ss1)& I" G7 k3 u, Y9 ?5 n" z
- (if (and (not mult)
# c$ N: I: }# r8 V6 p: F* f: y - (= (distance lp1 lp2) 0)
4 _% E" I( ~) {" F$ G/ [ - )& l, q& n8 \+ W3 C
- (setq lp2 (getpoint "\nRotation Point: "))
3 C& f; y* L E; @+ A - )
5 P) K2 Z& O0 ?1 K8 [+ P7 K) {2 P - (if mult
5 d& V) u) Q% `, P; f% [9 c - (prompt "\nRotation angle ")
% F& L" u# w! H! H. R - (prompt "\nReference/<Rotation angle>: ")8 Y8 X; C! l; @) W
- )
# [+ e8 a* X6 U- a4 A - (command ".rotate" ss2 "" lp2 pause)
' p( v7 _ `: q8 O/ K# d4 }9 { - )+ P$ k K2 \9 m
- (setvar "CMDECHO" cm); z' D7 X7 g6 z- O; I* H
- (setq *error* olderr), e- d" O8 f3 k) w6 z
- (princ)
. W- ]1 m' v5 w$ ^" r$ D) m# J - )
" x: n1 G2 V8 C D# C8 [$ K. v p3 A/ V0 x - (princ); o. p; c2 ~: a! x* K; ] P5 o
- (defun croerr (s)
. i* v8 a# |' y2 _8 r; T7 V I - (if (/= s "Function cancelled")
6 v1 d0 {% h# p$ ], Y4 A5 P+ g6 X - (princ (strcat "\nError: " s))
; {& w/ N7 C. C* b - ) 8 E5 ~: m0 J, A0 [3 `
- (setq S nil)
9 y, s5 L0 f5 W9 X% o; i - (setvar "CMDECHO" cm)
# y5 y+ c. c, u W - (setq *error* olderr)6 ?! V& a% n/ k& q" {" \* ~
- (princ)' B6 Y$ o3 L# N8 n8 X
- )
9 d0 }$ l2 h+ M S, ^ - (defun lastent (/ a b)
+ q7 G( @; R @+ q) Q' [" }, N3 X - (if (setq a (entlast))) {% N8 E$ Q, B( k) L
- (while (setq b (entnext a))
4 Q: `0 s4 o+ K - (setq a b)- w* [: y' H5 Z' s: _9 n. u! k
- )
1 d) @9 g" X- j$ O( G- y- c - )- l" b& b/ e9 v, r* v+ X
- a& G. f8 I1 r9 i
- )( k; S, e1 t$ W+ O8 W
- (defun redss (ss / en i)
- d! T4 {/ t M/ L - (setq i 0)
6 D A! n; P. L: P - (while (setq en (ssname ss i))
c9 I: k0 n3 c7 L - (redraw en 1)
. \, U }# h, a) D+ ^8 n! Y - (setq i (1+ i))
. L4 b( ^- @* @ S; d' x8 @# }- d - )# `) O; K3 [4 |5 z, a9 x& V4 S
- )
- C$ G, j: T; x4 a* V - (defun lss (en / sels ed)
* M7 v9 v: G }/ {4 i. ?4 | - (setq sels (ssadd))% `' w' i) x& `1 u$ j
- (while (/= en nil)
2 J1 q) N+ ]0 h% f - (if (setq en (entnext en)) (setq ed (entget en)))
, U9 O& [4 K( s9 r - (if (/= en nil) (setq sels (ssadd en sels)))
7 M( B" F" i6 s - (if (or (= (cdr (assoc 0 ed)) "Polyline")2 J' F8 x z& W2 u0 O- x
- (= (cdr (assoc 0 ed)) "Insert")
+ U; }& T0 j# Y1 g0 o7 b# r( ` - )- n5 Z5 Z; V7 W0 W! \( C( V
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))7 `9 `, U$ N& a! ~4 g: d
- )
5 b% D' t8 w% O$ R, _% `+ D - )
+ X( i: e" Q6 N3 I' w0 E - sels X2 H6 R# [" I& c7 _
- )
" g! E& q- |# h) K& v% E - 0 F. T0 j: C$ |( H5 _
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================) ~$ D! R0 s, Z9 }. ]; C
: X8 e5 S( L" ]$ d- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
8 h' X7 G5 j9 D: ^' R$ x( {; D W - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))2 u/ c8 z0 ]8 m/ t1 r1 c C
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
# M' h% r, }5 E9 [% I' R - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
3 w* l: o% [) H8 c" F3 ~' R/ `/ X3 y - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
2 X* @* I8 k1 \ - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
5 |# c) o: L3 N$ Z - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
( e X& T% @( Z* t - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))" x; p2 D+ J0 u$ k
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" "")); o b3 G2 b) t9 m$ g+ R
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
$ t# k; m- @% ?% n - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))0 O4 j, O) u# J/ N0 t+ Y
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
8 a2 v# v% K' \* q+ Q4 W0 N - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
) g) S5 D, S0 Q, ]4 F - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))6 H# Q1 L, I6 b' b) J, r
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
: z* J' z5 z5 _% ?# { - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))' {0 y7 n' V+ j: {2 w A6 [& n
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
# v1 S0 B# U) }( u - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
' D7 C- q: P& j7 O$ I: H - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" "")) b0 d/ F5 \" h2 B
) Y" u: A) Q& w. e; V- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
2 B8 j$ Q* i7 X: R2 f" c1 L
4 B+ a3 J+ z( C& A$ x M- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
$ m' u, r$ k. W8 W9 [
9 y \% v+ z( r. h5 n' `6 z- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
5 X% ^# _" P4 L R( Q" m - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")' w, L3 ~- X+ ]
$ R- \, m- b0 Z$ N0 U8 \6 @- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
5 ~, E2 h2 C2 {" z2 {% o - 3 S5 |0 U2 e. L, l2 P) `1 B
- ;(DEFUN C:netxuatanh (). h# `2 L X/ k1 M
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""5 H4 a7 |9 @" d3 z" R/ {9 b7 I$ Z
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
. x* e$ c$ D; C. {" H. p; w7 y - "M" "MANH" "C" "9" "" "Lw" "0.5" ""
9 w9 ^% S* l9 [ - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
( z- U: O2 b1 B, d - "M" "DIM" "C" "1" "" "Lw" "0.6" ""' W. e, O( P# C5 e5 p# ]
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""5 y4 z6 _5 O( s
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""$ }8 |8 r- C q8 K
- "M" "HATCH" "C" "5" "" "Lw" "0.35" """ E' J& M- T7 N2 q: M4 M: M
- "M" "COT" "C" "2" "" "Lw" "2" ""( A# J$ P; e0 W( }3 m2 B2 @' ]0 w+ y
- "M" "Defpoints" "C" "7" "". g- j% i" A8 K% N& t' n; W. o
- "M" "0" "C" "3" "" "Lw" "0.5" ""3 \" \: b3 P+ ~- {% m) _5 @1 |
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""6 f2 l9 t( w$ @0 v) R9 g6 N
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""
3 z" z5 z9 @, H5 u( ]; i& }2 j - ; "M" "3" "C" "8" "" "Lw" "0.35" ""0 }, O' z1 T5 Y$ Z; {( A
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""* |' M- A( g& v. P( f1 E
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""
, _ O- ?* e( Q6 j0 _" w, [ - ; "M" "7" "C" "7" "" "Lw" "0.4" ""
k/ b5 }7 E \( h! C2 M - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
, D5 R/ s5 a. p$ [+ Q8 j; k7 `* X - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
6 R% h! Q0 {) _, j# u - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""2 u0 v- X7 u. _
- "M" "KE" "C" "8" "" "Lw" "0.3" ""
9 ` u. G. G/ n; Q; F& s- H0 G! [ - "M" "KT" "C" "9" "" "Lw" "0.35" ""( g! [ Y( Y- v) y% c
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""7 ]: \! ?3 N- I. h
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
" k3 Y" \! n1 E - "M" "TBD" "C" "2" "" "Lw" "0.8" ""! u- a/ x, t1 U
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""4 w. h/ O- ?/ e3 o4 O
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""; g1 j! l2 I/ y: C R8 v) k
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
" O3 x# B" K8 z7 [1 a& Z8 a - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""( X, y$ k: B+ T# w( r# g3 T9 q+ `1 m
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""2 l6 g3 ~" u9 |! p3 Z
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""' ^+ i& M- i7 B
6 s) {+ L/ o6 Q- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===' `3 z* L/ y7 t
- L8 c1 v3 V3 M
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""+ L: ]2 g5 X$ X8 R
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
) \' a9 B; u5 r- p& B - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
4 P# F5 \& ^( B* ^4 s - ; "M" "250" "C" "250" "" "Lw" "0.35" "": W. T# t+ u) h. e
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""1 u# `, R$ |1 B1 _) [4 ]
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
3 R# r- `( A* e- [" V% | - ^: O; [ n* p, ]* K
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======3 `% u, B4 Z0 X+ |, M/ f, o; \% o
- ;===================================30|04|2024==============================
0 f! L! {1 C; a) j" r o+ l- o' I - & C9 w6 U# ?; d w
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )8 f" q. H: } J% D; q% q/ u# r$ k
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )6 V# `3 K, c: r7 t" @1 S
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )" V7 y7 T; p3 X( P1 M; v% V
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
5 I8 A6 c$ _4 m0 r - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
9 t; O7 B# B! f - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )+ N& V0 J! z' \5 j* i5 Q
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
4 g% h F- n3 I" h - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
0 J7 @; q/ c4 }9 C5 Z: g - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
1 y. Z% K' u: d6 w! h - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ); `7 E* K' | h6 B) c
7 j$ M2 X5 R$ {) v- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
& u; \. Z u7 q* m1 I - ;===================================17|10|2024===================================
7 K# @5 w9 Y8 f& p - & O5 t6 L- W; {& {$ y1 f5 F1 O
- (Command "DIMTXSTY" "ROMANT-DIM" )
6 B7 H" N c: n2 S9 |8 {; V3 x% Q3 V - (Command "DIMBLK" "" "Closed" )
2 Y g2 p0 ^6 O7 I8 p
* f6 A" I" c/ X1 E5 M: D- z: O2 N9 s- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
# Q% E3 { `6 z - ;===================================17|10|2024===================================7 U, A! i/ A* @5 i( g
) E% ?1 z) V6 W% F' s: \, ^7 l- ;(Command "-units" "2" "8" "1" "8" "" "N")
. S5 F0 ]8 t3 d6 O4 [' ] - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
4 ?0 \: Y4 p0 ?* N0 I, M6 n b# V
% b! L, p# _8 g% C- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
: X3 Y" J8 ?) R' O. I5 I - ;===================================17|10|2024===================================
- b* ?) c. l, g+ `( m6 o - . E! E# N- O* @. ~' c/ P- U9 o
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
' t& P9 u* W& A8 T
/ _/ t: @1 q' t+ H4 T4 b- J" G- ;======================== DAT NET IN & TI LE BAN VE =============================; U9 c. X4 P& B
2 S) ?0 h# C7 C- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
. v/ x R# V+ h - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================6 \5 d; f0 b5 t4 p
- ;=============================11|07|2025==============================! H& u1 _1 u) o$ A' Z$ X/ Y- v
- ;Ti Le Ban Ve - 1 : 100; V* B4 M& L9 p7 P8 s+ d( G& I
- (Defun c:kta4 ()8 T$ ~2 Z! ?% \% x
- (setq mv_sc 100);Ti le ban ve
2 ^# p6 S7 o: I7 e: W) o6 a - (setq x4 297)
@, T- r- {. M) k& w* |/ z - (setq y4 210)6 E7 `- x" v0 A" ]
- (setq x4 (* mv_sc x4)
$ w" P% m1 h$ J2 O2 a) `( C: u - y4 (* mv_sc y4) )
5 q0 W' }5 O- ^- H! L" i - (command : q0 F/ U, M4 Q
- "LIMITS" "0,0" (list x4 y4)
8 F v+ u" z2 ~, B: \, m' H( A - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"7 J: k+ T( u" r8 t; |/ r8 L
- ;Khung CHU NHAT Chinh 2 q* d- M( F8 t8 R( \
- "RECTANG" "500,500" "@28700,20000") m+ N4 {' j; A* e0 }
- "RECTANG" "700,700" "@28300,19600"
: t( ] P% o, T5 n& ^% T. h; \( S - ;Khung Ten Chung3 C) r$ T) V. ?
- "RECTANG" "700,700" "@8000,1250"
) i: Z. r/ J! M7 v$ Y - "RECTANG" "700,700" "@17300,2500"7 s) a% V4 a2 i# W0 c a
- ;Ten Ban Ve
$ y2 C$ ^3 G Z0 y4 m( T h( R - "RECTANG" "18000,700" "@11000,1250"
# `! R) Z0 o: e3 a - "RECTANG" "18000,700" "@11000,2500"
0 u4 C4 y0 O' J/ a, g' Y - ;Khung Ti Le + Ngay Thang Nam
4 j8 `; K! c. P! Y) j% j+ q4 ~ - "RECTANG" "22500,700" "@2000,2500"
4 {6 `+ n! d3 b - ;Khung CHU TRI
8 W' S! `# x" h - "RECTANG" "8700,700" "@3800,2500"
7 J: U' d9 O" j) x - "ZOOM" "_a" ))
0 Y* G; s$ F8 a X - ;=====================================================================0 w5 h3 D$ d' U% a9 n
- ;Ti Le Ban Ve - 1 : 100# { P, @$ v; d( L
- (Defun c:kt4a ()
/ V7 q( w+ D$ U0 V/ ` - (setq mv_sc 100);Ti le ban ve5 v/ W4 y" r7 z8 w6 P0 t* e$ R, d S2 G
- (setq x4 297)# C% {- t4 r. D3 O
- (setq y4 210)- Q2 R1 e" {7 Z; e! r
- (setq x4 (* mv_sc x4) 2 \/ k. v5 p+ t
- y4 (* mv_sc y4) )
# K8 Z7 t% L0 E( } - (command ' @" y/ E! s- b
- "LIMITS" "0,0" (list x4 y4)
8 ^8 ?2 A# l! x; b - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"$ e- t0 Y `2 U8 r/ K2 ^8 t) F L
- ;Khung CHU NHAT Chinh
$ E- w+ K* e2 [+ V" I0 a - "RECTANG" "2000,500" "@27200,20000"
8 _- e4 P/ m8 Q - "RECTANG" "2200,700" "@26800,19600"9 k) H0 R5 C' E9 s/ ^) t
- ;Khung Ten Chung
! A& k! }3 W$ b - "RECTANG" "2200,700" "@6500,1250"
+ v+ q; D4 w* _6 |6 s4 v/ c - "RECTANG" "2200,700" "@15800,2500"
. B4 @. U, u- m8 e/ w - ;Ten Ban Ve N% V7 z, X1 |; e
- "RECTANG" "18000,700" "@11000,1250"5 c" ~1 p& c! ~4 X1 y( S# i' J
- "RECTANG" "18000,700" "@11000,2500"
2 l: d6 |$ ?3 P. _5 K - ;Khung Ti Le + Ngay Thang Nam' q. D+ m" p. g/ Z% Y4 Y
- "RECTANG" "22500,700" "@2000,2500": @5 D4 i! c4 O8 b3 l9 r6 C6 B
- ;Khung CHU TRI% A% W l/ |0 [5 Z" b. t% ^
- "RECTANG" "8700,700" "@3800,2500"
; k* c4 j( A- i8 r* ]( w6 J) E - "ZOOM" "_a" ))# k/ [1 `, H, d9 }5 O
# E7 S; E) |% Q, S6 H- ;;; ============================GHI CHU Khung Ten========================
; ? K+ B; \: W* b* ~. B - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========' A V& u/ ?* z* w6 S
- ;;; =======================Thuong Dung Font Romant.vnh===================
9 j: h7 g1 Y8 }3 e, u
8 p5 q/ i. B+ f8 r; j- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
V/ T6 k, y3 R+ j - (setq oer *error* *error* err2)
% a1 D3 H. [/ P8 t - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")1 g5 a4 V, ~2 i4 k
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). ")), k- s; Z Z9 a" q4 U" i: J
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
6 ^9 W& t J. F( h7 @ - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
: k9 T4 C8 l8 w+ T! _ - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
& k9 h7 K: [6 h( P2 M% [ - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :")) l+ z' P% q8 s J
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
: @# K& u8 y/ m- |9 u - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
+ n- N4 E |1 M, ?' p - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :")): i8 x$ |% N/ o3 B h& q
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
- U3 [; n& X' S/ n1 s* l9 @& K - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
: U0 Z9 _: B9 z# j - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :")). C4 W, Y# M$ _' _2 e
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
' K3 ]+ e' C+ @" |1 U. R6 i. K - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
' M$ g4 L! P2 C - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
% t4 ]* q8 [1 v& } ^. C% w! R - (setq pta (getpoint- d( l+ T! w! g! Z( E4 n/ G9 C
- "\nPick first corner. : "))3 q8 e% ` k+ s5 X; B. T5 m2 D
- (setq ptb (getcorner pta7 k, k$ n8 I3 }9 y$ q# l
- "\nPick second corner. : "))
7 v- u5 H$ O* C) s - (setq ptc (list (car ptb)(cadr pta)))' i9 N$ I- W, x
- (setq ptd (list (car pta)(cadr ptb)))+ n0 {1 y0 z, N" G8 H* g7 A
- (setq ang (angle pta ptb))4 o$ s; I+ D8 Q- V r( c" \
- (setq d1 (/(distance pta ptb) 2)); Z% a: Z) P3 V" C/ n7 ]9 V5 @
- (setq cp (polar pta (- ang (dtr 0)) d1))) W' i0 q' K( d# p& J0 t
- (setq X (distance pta ptc))8 ]! q% C6 g) T7 o
- (setq Y (distance pta ptd))0 O3 O9 j# x8 Y9 j7 s! w
- (setq X1 (rtos x 2 1))
- B$ e6 j; a+ m1 }3 Y+ g - (setq Y1 (rtos y 2 1))3 `9 }* N+ V1 f9 S
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))$ J7 @; X8 s4 W6 b# |
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
% d9 A$ P. n4 T$ d+ U4 @# b - (defun dtr (angg); Z8 k* g3 k$ r* q( C
- (* pi (/ angg 180.0)))
. g, c5 R M# F4 `( P: `% s - 2 H7 P, T: N0 i' o2 c+ X- u
- ;=====================================================================
9 D Z9 D% s3 z. p I2 }7 i - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
6 D" L2 @# g4 ]2 m - ;=====================================================================1 m; R- j; b' I' P: @) v/ x, b
$ l3 V, h j, U( b$ y, ]- (Defun c:a6 (). L# i1 @: d. Y3 G7 B) }8 `
- (setq mv_sc 100);Ti le ban ve
I; i7 N% \2 L9 d U9 j3 O - (setq x4 74.25)/ I) `2 V: A& [# I
- (setq y4 52.5)
! z' D. C2 v' a' j2 k0 ^ - (setq x4 (* mv_sc x4) & }/ Z: U0 }' e) {. { b: j
- y4 (* mv_sc y4) )
6 _: P& d% G! B( t7 n4 x3 d - (command ; n% c( w2 D: g: E3 k
- "LIMITS" "0,0" (list x4 y4)4 f' V9 z( Z% J& Z9 B9 d' i- v1 X: L
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
3 P* w1 g4 M" I6 s# K - "RECTANG" "125,125" "@7175,5000"% F7 d6 O6 X3 U, J0 M& o$ M
- "RECTANG" "175,175" "@7075,4900"/ A0 `- O+ S- e
- "ZOOM" "_a" )). Z' m+ j9 W5 K6 P: p, d: K
- ;=====================================================================
3 A k6 W/ o+ Z - (Defun c:a5 ()
- m! D6 ^5 T, V - (setq mv_sc 100);Ti le ban ve" M3 r: F, a5 w% i; P( K
- (setq x4 147.5)
0 K$ c% Y6 B" ?+ Q: C - (setq y4 104)
4 q7 B, S& H6 @3 c# f - (setq x4 (* mv_sc x4) ( P! ~, c! P3 q. l& E
- y4 (* mv_sc y4) )
1 K! w: B3 Y7 B* l" } - (command , Y. v3 S# ?0 f6 l6 S
- "LIMITS" "0,0" (list x4 y4)
4 f- H' J" u" u, C - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"8 f f# w3 y1 k; h- h: C
- "RECTANG" "250,250" "@14350,10000"6 S o! u! O& \- }5 i6 j6 ]# _) C+ X
- "RECTANG" "350,350" "@14150,9800"
& L" t2 s* V# Y" T - "ZOOM" "_a" ))+ T" w. D: n( A
- ;=====================================================================
+ u6 }8 _; ?3 M- i* F- n3 M - (Defun c:a4 ()
( q" N* j c9 h: h5 x, b, ^+ O - (setq mv_sc 100);Ti le ban ve
: C" ^, q0 j: l! X7 [6 q# z" T - (setq x4 297)6 L8 Y' k U7 |" \
- (setq y4 210)
% G- X$ t9 m! P" D9 D; I - (setq x4 (* mv_sc x4) - s2 U, Q8 d8 L! L
- y4 (* mv_sc y4) )# c" s- D5 v# |
- (command
; \. K4 m/ {# y7 o5 u0 l - "LIMITS" "0,0" (list x4 y4)
/ S5 }, L4 D4 [1 u- n& N - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
" p% x5 I t3 D/ L - "RECTANG" "500,500" "@28700,20000"5 g ~! o) Z G$ h- o8 _7 l: ^6 m! i
- "RECTANG" "700,700" "@28300,19600"
( o: u, q/ s9 A) F2 M* z - "ZOOM" "_a" )). t7 Q8 N+ K' T% x5 r4 {
- ;=====================================================================
& k6 D7 u2 o" T6 Y: _3 v - (Defun c:a3 ()
: O/ @) ~7 J1 ?- w4 L2 Y, b$ A - (setq mv_sc 100)
- u- P0 N0 u, v' x) t2 B) x - (setq x3 420)/ t/ L, M2 S9 t; D! d
- (setq y3 297)
1 E& ?* e' E6 U \/ o& R# p w - (setq x3 (* mv_sc x3)
! m" e2 l" H! _( T# ~* u - y3 (* mv_sc y3) )
& P- ^. _0 o# K q1 a - (command
! `' ]1 f4 P; g% g! {* { - "LIMITS" "0,0" (list x3 y3)( Y3 q8 c! i/ E
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
& ?! C4 O- A) W5 a, v - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"8 l4 c) k) ]; E+ a8 r
- "RECTANG" "990,990" "@40024.28571429,27720"% r' N( C' `. v
- "ZOOM" "_a" ))
, ^- m# r" g6 z$ B+ k, e% { - ;=====================================================================. X+ ]* Z+ s! i6 o8 T
- (Defun c:a2 ()
X- N% q3 B) o: y - (setq mv_sc 100)
) n5 R3 L* A3 ^ - (setq x2 594)
, c5 t3 o2 S8 \& U) P! F - (setq y2 420)
; V1 P1 k( ~8 [$ [3 T - (setq x2 (* mv_sc x2) , T: W- {. x& p. t. P7 i5 z
- y2 (* mv_sc y2) )0 J; I- ~, X P! e$ O
- (command + K; z0 h0 g$ t! @
- "LIMITS" "0,0" (list x2 y2)
& @) l1 l' P4 [ h. ]" E - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"" G# C, y7 f9 F' c( N M7 y# i
- "RECTANG" "1000,1000" "@57400,40000"
- D, x) H1 z5 i! x! N, Q/ y% d" f+ Q - "RECTANG" "1400,1400" "@56600,39200"
6 m+ E X: K V% B5 ?) t( E) c - "ZOOM" "_a" ))
9 D" J% e& I8 d( E* t/ s' C! c, z - ;=====================================================================
' [2 w9 W0 \/ K$ B: z* Q0 Z- Q - (Defun c:a1 () N% `# R0 B. p9 ^- ]! }4 g
- (setq mv_sc 100)
( T, o! V- D3 a2 E0 H - (setq x1 840)) X6 _ u0 g$ r& i0 e4 O
- (setq y1 594)
. a- i1 o( e% h$ J" [. B0 Z0 _ - (setq x1 (* mv_sc x1)
0 I/ o2 @; J$ [+ P - y1 (* mv_sc y1) )3 K/ E9 n9 A: l- B$ k
- (command - K5 s5 K2 e4 G9 `
- "LIMITS" "0,0" (list x1 y1)
: e$ Z; s' z) w% l+ X - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
* z9 [, k* L$ p) S @6 \5 B8 c - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
7 C4 T7 F2 Z. G4 _5 _ - "RECTANG" "1980,1980" "@80048.57142857,55440"
$ `8 I6 Z2 A/ V" h3 y7 W5 F - "ZOOM" "_a" ))1 z8 G9 o0 C; m( N1 O" G$ O" {
- ;=====================================================================
5 w) c% O, i M+ x( d; T5 E - (Defun c:a0 ()4 W/ Y# V2 {) W: Q
- (setq mv_sc 100)
3 w- R) s Y: N% H' v; @( [" C - (setq x0 1188)
& F6 X' \. b" \- v- h - (setq y0 840)" H! l- ~# K( h! O2 h0 w# D
- (setq x0 (* mv_sc x0) $ N' V8 A6 h" g2 H4 [# T. ?, `
- y0 (* mv_sc y0) )
2 V' R' p' U, S- K; f" V. y5 t8 f - (command
3 N5 b, l/ S, u5 k - "LIMITS" "0,0" (list x0 y0)
9 K$ T1 j. t @9 P, x) M { - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
8 t0 k9 J/ Y, `5 f0 h d" g. ` - "RECTANG" "2000,2000" "@114800,80000": H9 I- I( s4 e9 _8 ~% Y6 `2 k
- "RECTANG" "2800,2800" "@113200,78400"
; d8 z0 |' F ~% v2 I% z5 @ - "ZOOM" "_a" ))
$ O& s4 @8 M- @- F. P! X
6 E( P: k5 ^$ V) t, z- ;=====================================================================
! _) P# ^. C. j9 K2 I) E6 d - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
7 `* d0 e9 `% F% S+ M - ;=====================================================================: i' s$ q9 a' B8 [
; G% F# e; c2 ~6 \/ g- (Defun c:6a ()
8 W4 c/ V" [0 |8 X q0 S - (setq mv_sc 100);Ti le ban ve' L& v' u7 |" x$ N; m7 _4 j
- (setq x4 74.25)! @0 K0 T ~) I; a( E1 R
- (setq y4 52.5)' j2 f0 O v- h0 l# _8 n9 v. L$ N
- (setq x4 (* mv_sc x4) + j K7 i! v ^8 g# y8 j% E
- y4 (* mv_sc y4) )( I4 X* Y2 E3 [/ w
- (command
/ E( ~, [! N/ {( G/ d0 Q- M2 D9 O - "LIMITS" "0,0" (list x4 y4)* p4 y8 A6 |9 `- T* ?' q5 ?
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"( {- |/ E) {9 J) o
- "RECTANG" "505,125" "@6800,5000"6 f; L; n: a9 S3 E
- "RECTANG" "555,175" "@6700,4900"
5 }3 |; W& y. x6 z s$ t2 ]. A5 P* r% X! o - "ZOOM" "_a" ))
' W0 Z- e1 {6 f$ `3 X2 u4 V - ;=====================================================================
2 O, u( ?% }. h* ?$ _# x - (Defun c:5a ()$ o2 \- [3 { ]
- (setq mv_sc 100);Ti le ban ve: T$ B6 g3 `8 m! ~' z/ L' M1 _
- (setq x4 148.5)4 u1 I' X% U+ I) o+ \
- (setq y4 105)
: a- u6 o3 O! y, r' D2 w - (setq x4 (* mv_sc x4)
' o: q2 e) G& U* ]+ `' r, {3 q. Y - y4 (* mv_sc y4) )9 K/ g1 q( T" I* w+ m: \+ D: v
- (command & F: ]- {8 w" p- `( S
- "LIMITS" "0,0" (list x4 y4)% h; H$ e! @* Q$ j: l/ `' ^
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"* Z5 U5 z; U0 u* V0 Y$ l
- "RECTANG" "1000,250" "@13600,10000" n' G) {* ~; [
- "RECTANG" "1100,350" "@13400,9800"7 q6 d1 z5 f9 X$ M0 t
- "ZOOM" "_a" ))
' P; ?' C1 p9 x - ;=====================================================================
% Z& g* ^( \5 G - (Defun c:4a ()
- C5 Y0 H, Y3 ?. o3 o - (setq mv_sc 100);Ti le ban ve( f* W( u3 T( @; d, Z: u* y
- (setq x4 297)1 V" u8 B8 I+ u+ G/ Z4 s8 U) B- u. Q
- (setq y4 210)
: d, X5 |* n) U9 b - (setq x4 (* mv_sc x4)
; x; Q+ m t8 i% j) e - y4 (* mv_sc y4) )5 _. H' d2 {9 u) x! T, T
- (command
3 c p4 V2 J& M( [. z6 C, Q - "LIMITS" "0,0" (list x4 y4)& d# U' J3 J5 Q/ W+ F4 C$ }$ k& b B& N
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"$ T- H2 P9 L7 [
- "RECTANG" "2000,500" "@27200,20000"
7 p5 S$ a* o* u+ s - "RECTANG" "2200,700" "@26800,19600"
% ^- g1 O+ v# S - "ZOOM" "_a" ))
9 W) E Q+ v8 m% M8 @# w - ;=====================================================================
& I+ a" N4 D8 H) Q5 M - (Defun c:3a ()! t6 S# y' G% h2 L: r0 w
- (setq mv_sc 100)5 u0 l/ Q$ B* j, ]) l
- (setq x3 420.0428571429)/ x+ x9 h/ e1 {* w K
- (setq y3 297)
) h% ~' a! @+ E# L2 j7 Z/ x1 ]. P - (setq x3 (* mv_sc x3)
) |2 H/ m/ U& l5 h }+ h - y3 (* mv_sc y3) ). L# L3 D1 V! z3 V4 U8 F
- (command
+ G" F0 Z' [8 F& ` - "LIMITS" "0,0" (list x3 y3)& J: l3 b) j- f1 f0 b J
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
4 @) ~( @" F# T2 Y+ d - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
( W: H- {/ q, x# A0 {* A+ g% I L$ Y - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"6 B* S8 x; j. J/ I
- "ZOOM" "_a" ))
1 X/ W+ i* }2 A8 l f5 K5 ]/ @ - ;=====================================================================$ ~: T% T$ P% J; m6 K
- (Defun c:2a ()5 m1 t7 k+ a; o3 }
- (setq mv_sc 100)
" V0 S* Z X2 \6 m2 k - (setq x2 594)- H% ~: o) K- z( s
- (setq y2 420); T( P% l% t* B: `$ E1 w
- (setq x2 (* mv_sc x2)
! Y& I Y- J; v - y2 (* mv_sc y2) )4 O/ u3 U5 A5 X) d' v/ m; [5 k- c
- (command
( Q7 Q+ g& x5 m" i- F# D4 ] - "LIMITS" "0,0" (list x2 y2), `) L2 C" \; k, Z
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
2 G* C. @; I/ i1 U8 m8 u - "RECTANG" "4000,1000" "@54400,40000"
% j5 D! U- T# Z8 E! M - "RECTANG" "4400,1400" "@53600,39200"( u) S* e4 e* C. u7 C8 S$ q
- "ZOOM" "_a" ))5 S( l2 i; S6 L* s- Q
- ;=====================================================================
2 K$ K1 {+ A5 u. ?8 ^& i" e. i - (Defun c:1a ()7 C( _+ l2 Z+ D- _3 {* l
- (setq mv_sc 100)
. L7 w0 @4 W# i/ `; J - (setq x1 840.0857142857)
, g% D' w' }' {$ n - (setq y1 594)
" G0 O) A) @; s0 I - (setq x1 (* mv_sc x1)
2 k0 w% r# A/ [3 L - y1 (* mv_sc y1) )
* U8 i' i2 T- J - (command 9 r4 D! P* u0 o/ J
- "LIMITS" "0,0" (list x1 y1)
1 x0 u% Y6 S) n' O+ ^ - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
* x5 k6 s9 {# b; D- Q2 E - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
0 g' ~6 K6 e/ R, r5 }' F8 E5 G - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"7 j; ~( Y& m( {
- "ZOOM" "_a" ))3 ]) b7 T# h& G
- ;=====================================================================+ n4 v3 @+ m v0 W
- (Defun c:0a ()$ \0 u' k/ G2 v" K6 y( x0 C
- (setq mv_sc 100)
* }8 B* |# `) I4 ]2 p - (setq x0 1188)* `: E" N! b" F% Z- r7 E# b
- (setq y0 840)
& E9 t9 L4 i7 x u - (setq x0 (* mv_sc x0)
% _* v5 Q* [- F# ^+ e) g1 y/ x - y0 (* mv_sc y0) )) r* y( T" O4 W6 o' o5 ^
- (command
* g% J: O6 L+ p) ~7 q. z - "LIMITS" "0,0" (list x0 y0)
* a9 X: G1 @ c9 l+ Y" _9 m - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
?; R& ~* y8 G - "RECTANG" "8000,2000" "@108800,80000"
" G# A2 n$ `8 U" h) F - "RECTANG" "8800,2800" "@107200,78400"& Q+ d' ] C1 c5 t& c& H4 h
- "ZOOM" "_a" ))
2 d7 A; H: ~6 }: p - $ Y, p! @4 u3 o
- ;=====================================================================' w8 R( _: I3 B* V; N3 S/ u
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
5 N9 o- R" O& j - ;=====================================================================9 x/ q7 z% n" L' V) j( x
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
6 j; Z' y) a, y2 N7 I8 i4 F - (command "undo" "be")
: Q3 Q# O/ [8 s) `) A! t - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))% e2 q9 Y# w9 n+ K4 j! B/ u! V
- (setvar "CMDECHO" 0)/ h1 p- F6 f4 @* y5 U
- (setq a (getpoint "\n chon diem chen :"))
' h) y/ Q4 H7 E3 t3 W - (if (not TL) (setq TL 1.00))2 x( ~! m7 C" y0 m
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
4 v' N, M$ G3 R& J - (if TL1 (setq TL TL1)) r& j0 D ]4 x, R7 B, c: ]
- (setvar "osmode" 0)
. X( r, h! m6 `% w" M9 m J( ^, [3 D - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))( m: T' x+ `, n2 s$ s& a
- (initget "0 1 2 3 4")
+ B, Y$ O# k4 V' Q+ b! O- h) C! X - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
3 [, ?; V3 _1 m! y/ `' E - (if (= kho "0"): p9 m: | E0 e7 |, q0 i# F
- (progn9 \1 p# h9 i4 m7 ^( J
- (setq b (polar a 0 (* TL 1189)))
+ n* S+ p B4 y. P6 T, W2 s5 k! X - (setq c (polar b (/ pi 2) (* TL 841)))
( |$ d- u8 i* o7 d9 j; h - (setq d (polar a (/ pi 2) (* TL 841)))- W {$ l* I5 d& M# r1 U- ?
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12))))). w9 u' P2 y6 E$ Z; r& v
- (setq f (polar e 0 (- (* TL 1189) (* TL 24)))); M: C8 [8 w* L$ |
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
1 X. ]2 _2 _& P7 C, q' E - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
( |. Q7 D" C: f% B+ |, m7 D8 X1 a+ ? - (command "Pline" e f g h "c")
E' l N; l+ ]( N) @! G; @ - (command "change" "last" "" "properties" "layer" "0" ""). p1 v0 O& t* c3 K: k
- (setvar "cecolor" "4")3 [/ ]2 R+ E) H2 r5 ~
- (command "Pline" a b c d "c")! k. L8 Q. `8 {1 K! R3 p4 W z2 l
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) 1 t& z+ @6 l: Y. j' p
- (if (= kho "1")
7 q1 [' i. {6 f' C0 x8 t J3 i - (progn
" J3 M: I2 v2 r. r0 F - (setq b (polar a 0 (* TL 841)))
: l, W; p6 T6 l5 [9 ~4 M# Z - (setq c (polar b (/ pi 2) (* TL 594))). B2 N- u0 j2 L3 C& }
- (setq d (polar a (/ pi 2) (* TL 594)))4 x9 P( W0 E) y% Z% |$ G& s+ j
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))$ w( G E) f, W$ L; f% X
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))$ T& m o1 I, y$ G1 N
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))" S( v' ]0 G' ^# P
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
. x; |( u3 L7 o8 _3 ?, l0 c% D" H q - (command "Pline" e f g h "c") ( }0 [: Q1 ]# r) w5 v: ^/ g
- (command "change" "last" "" "properties" "layer" "0" "")
5 [# t! ]% B' v& k% D8 ^ - (setvar "cecolor" "4")
; I2 Z' l8 } d+ E - (command "Pline" a b c d "c")
0 i; i1 Y" E I8 [/ G5 t4 w - (command "change" "last" "" "properties" "layer" "defpoints" "")))+ n8 Y" l! o: c3 E
- (if (= kho "2")
! Q0 A2 ]( O$ }4 t+ e1 U - (progn
- b! R3 }+ {* u) c2 i8 H - (setq b (polar a 0 (* TL 594)))
+ A z {4 \% B+ e% D- i) ] - (setq c (polar b (/ pi 2) (* TL 420)))
8 y# ~) j7 l& k: x! c# Q - (setq d (polar a (/ pi 2) (* TL 420)))
/ ^( R$ V2 g& a - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
+ ]# l( Y* \) l" M - (setq f (polar e 0 (- (* TL 594) (* TL 20)))). c% \, G+ T! S7 [
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
! V$ z7 x, i! C+ {! |1 l - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
: `6 Z7 X( @) q4 F/ N. ` - (command "Pline" e f g h "c")
/ N- i6 K( I+ G0 F( P - (command "change" "last" "" "properties" "layer" "0" "")
' L% m2 |7 P' l" u d0 N" Z - (setvar "cecolor" "4")0 @/ E! o1 A* D* r. h/ F
- (command "Pline" a b c d "c")
, x4 ]0 r1 d# z. @0 A. M% h, i - (command "change" "last" "" "properties" "layer" "defpoints" "")))
$ c! m1 u8 Z2 A - (if (= kho "3")- J0 O, c# g; y) B0 ~$ m
- (progn
2 b( ~' c6 ]7 Y - (setq b (polar a 0 (* tl 420)))) C) x: d1 ?, p: V. h
- (setq c (polar b (/ pi 2) (* TL 297)))) S8 Y- S. { H9 e! S
- (setq d (polar a (/ pi 2) (* TL 297)))# N4 e0 I! D" @/ h
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))6 ^) V' p$ W" \( u8 m9 k
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
# }+ ~( y0 z5 }+ r/ I8 s/ t - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))* ]+ c- i |, k8 ]
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
1 Q G0 C3 O: f2 \: h; f/ { - (command "Pline" e f g h "c")
* {, b5 Y; \) ?8 D - (command "change" "last" "" "properties" "layer" "0" "")
& C% B$ _# t! X - (setvar "cecolor" "4")& p* \" T' t0 S7 Y) d8 t8 b; V
- (command "Pline" a b c d "c")
, M* [1 J9 M9 N4 ~5 \& R+ M. h3 w - (command "change" "last" "" "properties" "layer" "defpoints" "")))& @. ^ W) m q0 v l0 m3 W/ {* R
- (if (= kho "4")
5 ^' y7 ?$ x: s" Y5 v3 F - (progn
0 x8 \9 Y% S- `) o6 r" N2 L% z8 c - (setq b (polar a 0 (* TL 297)))
5 d, J6 H9 T U2 m" K* ~ - (setq c (polar b (/ pi 2) (* TL 210)))
# H% b g2 j9 O4 N: ?+ Y# a - (setq d (polar a (/ pi 2) (* TL 210)))
0 e( B6 c. a( e - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))- I4 [# o& b6 M) ^' t
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
: x! R6 S2 g0 ?! o - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
. A8 c+ X$ Y$ B' N7 x - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
& o3 B: N& C+ J7 Q2 n2 {% `2 l - (command "Pline" e f g h "c") 4 V( \* C( z' p# M( ~! g9 q& H
- (command "change" "last" "" "properties" "layer" "0" ""). }+ r& @* G" Q* i
- (setvar "cecolor" "4") G+ A G) \1 A* V- i
- (command "Pline" a b c d "c")3 ?# z; J! z L3 d7 p' P0 ~; r Z
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
" Z8 Q; o" j/ y8 U; m7 R2 P9 ?5 J - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
2 a9 ~1 S- \5 z9 I/ I - (command "undo" "e")# W% E8 s( t; M6 O1 ?
- (princ))& f) z, D4 h( ~
- ;=====================================================================
n+ d$ {, r/ M/ {9 l$ Q' l5 G - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================! W% Q5 |. d& P8 u$ A) q
- ;=====================================================================: N6 Y8 A j# J7 g0 v0 g
- 3 o2 p+ E3 d4 ?. O* ^! L8 f% A
- ;=====================================================================
) w; Q8 X: V. S H - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
& I; A: j# Z" x `7 \- G - ;=====================================================================
7 l# g7 j) H6 }; W* }; q - - o5 I. j7 @" y0 k9 u* n! j
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""5 \% q7 T5 A6 L1 M
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
3 n9 j; O7 q4 ^ - "M" "MANH" "C" "9" "" "Lw" "0.1" ""5 q# A& t* _, L5 ]8 S1 f
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
6 F3 W; c [2 i& t3 j( s - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
& l0 _! F! E D' E5 u - "M" "THAY" "C" "7" "" "Lw" "0.2" "" i. j$ l8 P. z2 d6 ]) V3 N- T
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""5 k% ?$ R; e1 s
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""4 P( X: W E1 B3 _4 h& c
- "M" "COT" "C" "1" "" "Lw" "0.3" ""7 v; _% C& O, Z" l" v
- "M" "Defpoints" "C" "7" ""6 V7 a! k4 \1 ~$ ]6 F6 Q( V
- "M" "0" "C" "3" "" "Lw" "0.12" ""
+ O9 Z4 B" g2 S( J1 Q - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
7 B' `( k$ b* r+ m/ Y- R - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
8 I0 `/ J5 l' T, l% V - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))% U; U4 M0 y* }( p7 |
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
% l: @3 L4 f3 `; ^, g' [ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""6 B$ G' X- p2 [$ \7 b; Z% h
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
/ h* b. z- p ]8 i3 W o - "M" "TEXT" "C" "7" "" "Lw" "0.12" "": e" W0 W/ P1 E' B4 b( r' x
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""
' y" g# x% B: q3 L - "M" "THAY" "C" "7" "" "Lw" "0.2" ""! i y2 W3 n4 H
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
! |! |5 E5 F$ T# j `/ b - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
- Z2 m2 B, d: H9 E# y! ]+ j - "M" "COT" "C" "1" "" "Lw" "0.4" ""
0 `6 y. g" }( V+ q/ W - "M" "Defpoints" "C" "7" ""
( y4 W: U" l; y( V - "M" "0" "C" "3" "" "Lw" "0.2" "". R5 L! D3 x3 Z/ ]
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
0 l( M1 x) `) s w; d; Z1 s/ [8 w - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""8 w2 Q4 b4 O: ]: e" H2 k8 L# Z
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
7 C; ]) D. P( F; ^( h - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""2 w3 E3 J W% T3 q
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""6 n( j8 l9 Q- M6 |$ C0 ^. m# J
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""
# ~. V; x& ^' `, f - "M" "TEXT" "C" "7" "" "Lw" "0.2" "". K8 r2 w: G: g
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
* [/ g# ]9 a% F7 c( ? - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
& _4 j& o) ^# |9 G5 n6 g - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
- N7 m2 K$ e8 i+ x# V$ r/ m - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
: n+ `* R# J5 J7 [6 J/ r3 k8 I - "M" "COT" "C" "1" "" "Lw" "0.6" ""
8 w3 V& L5 Z3 x% _$ }7 n; z# N - "M" "Defpoints" "C" "7" ""
1 Z; J9 Z+ ?) p5 i4 ]+ n - "M" "0" "C" "3" "" "Lw" "0.25" ""
# v8 S$ K% ?* T" R - "M" "CUA" "C" "6" "" "Lw" "0.25" ""; w# A2 e: f7 F+ b6 p
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""2 J( Q6 h7 b* x5 @' u: m5 K
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))& O% y7 M x4 M0 |% ~8 O; E0 O
-
3 u3 o$ W$ r+ H& p. R - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" "") L, g- }, A' c7 B2 T1 s. D
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""7 `$ m0 t2 f* {0 h' `" S _6 D. V) X
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""8 ~2 I4 ]0 \* V2 M( A* b
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
4 G1 h2 a1 i3 {% i- T6 v - "M" "DIM" "C" "1" "" "Lw" "0.35" "", U+ A) J# Q) R/ }: \( B5 o
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""# Z: @' ~+ F6 W' W
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""$ Z/ u- T' i; C7 L5 k; z
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""( C* E7 [+ E9 C/ D! p M
- "M" "COT" "C" "1" "" "Lw" "0.7" ""# h9 h. U( W9 B# i+ h
- "M" "Defpoints" "C" "7" ""
! ?- ~; x- M( a! y b& H5 `. u2 q* D - "M" "0" "C" "3" "" "Lw" "0.25" ""1 w6 I" l: [# ]* }
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""* H; C" J. ^6 {: C
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""+ |3 v/ R+ ?9 Z8 J& ?
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
6 Z# e% f3 B) G4 ^3 g& n
2 c* B7 J9 h" v1 W' Z$ V: \/ y) F- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""+ o+ b* N& K# L0 w$ F, l
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""+ }/ y. z O7 \8 B. S0 R c3 _; m0 u
- "M" "MANH" "C" "9" "" "Lw" "0.25" "", @9 ~! {' i5 J) x6 d5 E
- "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
$ K' ?0 q/ z7 T1 a/ M# }" a - "M" "DIM" "C" "1" "" "Lw" "0.3" ""2 u: N. F9 h" @
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
" y `) |% S; t. v1 }% K1 J - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""% F. I) | ~8 c T2 T% w# f
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
3 k! Y; {9 T- @3 h5 j - "M" "COT" "C" "1" "" "Lw" "0.7" "". n+ Y" T& `* ~4 B+ E
- "M" "Defpoints" "C" "7" ""
5 k' e% C4 }3 z1 a& M9 o - "M" "0" "C" "3" "" "Lw" "0.35" """ |8 K }3 G- r/ Y
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
- O" k0 Q3 C) O4 q5 d4 d - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""! r- X1 q N, y$ W
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))5 |' e! p$ r& }$ M) F, @! ~, d
- 9 E0 f8 ^: P: [" H2 q% |7 q
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
5 u/ P: N; q& W8 k6 A8 G8 m - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""' M p2 K( B3 F& d0 B: L! e- T
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""& X1 U& e4 Y. m
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
1 ] G9 z$ d) R A - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
9 p1 E: i9 k% Z0 r# t: f0 N - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
# R. F, ]' ]& N0 d% _" A% s - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
I: R+ O8 P+ b/ J5 v0 M& w$ h - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
. s: l+ G/ Z8 i+ _$ M2 V - "M" "COT" "C" "1" "" "Lw" "0.85" ""
: z% y5 c: r7 T% n5 O - "M" "Defpoints" "C" "7" ""
$ w; ^: L5 [: b/ Z - "M" "0" "C" "3" "" "Lw" "0.35" ""5 U5 l# J, i7 c3 X$ S" s2 F2 [$ q
- "M" "CUA" "C" "6" "" "Lw" "0.4" """ n! `* e3 `# E& E' H( b
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
* J2 Z5 d# Z7 z) _8 W, J% a - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
" I% j- H7 e5 H$ \2 ?. d -
: p. a- P! \) }4 `8 O - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
4 J4 S, D8 {* i( f3 n) G5 }+ n! T - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""4 y" w! c1 |5 L3 G2 M
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""' u6 j, }0 p1 g
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
3 k) H1 ?. B7 d/ B! D4 g* N* v - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
: V" z4 Z [7 A$ o - "M" "THAY" "C" "7" "" "Lw" "0.5" ""* b7 H: t, b5 U; Z* i
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
. C4 C5 O" |, {+ `) }, d - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""5 E& ~6 a9 W" m- }0 v: Z4 l3 O
- "M" "COT" "C" "1" "" "Lw" "0.1" ""- i- y N5 G' E5 y" q- Z- L
- "M" "Defpoints" "C" "7" ""& O \! O9 Q; p2 w: d+ ~6 E" B
- "M" "0" "C" "3" "" "Lw" "0.5" ""4 M( y6 @) Z( W& x
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
/ R6 z9 ]% @, L; E. @. H - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""2 e' B9 j/ D* |! b8 e& w
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
$ _ k5 r4 x9 ? - (DEFUN C:O () (COMMAND "OFFSET"))
1 T; [" o' ^1 L% M% w! T - (defun c:s1 () (command "surftab1")), u' ?7 w% Z, c
- (defun c:s2 () (command "surftab2"))
% F( f' U1 [2 M% m+ p0 Z - (defun c:ep () (command "explode"))
3 X6 ]( t I. J& X8 h% i* p4 F( K: f - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
2 v( Q: |$ t6 G - (DEFUN C:QV () (COMMAND "QSAVE"))7 n8 x' n U7 P9 [6 Z
- (DEFUN C:S () (COMMAND "STRETCH" "C"))5 a2 r6 ?1 {, _5 i1 x/ R9 a) G
- 8 t' E6 ^* b# R" q1 F6 L
- ;************************** CAT DIM **************************/ E- F% `" V' r" m B
& q- v+ d' i" {- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I0 E/ o `; R9 L8 i
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
2 W1 l8 k( j5 }( k9 R/ W9 y9 Y - (SETQ CMD (GETVAR "CMDECHO"))
# V9 F8 `1 v. T% @# d) H; n - (SETQ OSM (GETVAR "OSMODE")); W: w1 {9 i7 p2 Z9 b' a
- (SETQ OLDERR *error*( p- w9 x7 W1 ^" }' F2 Q% f
- *error* myerror)
* t. l. l* ^1 l8 @$ b' y - (PRINC "Please select dimension object!")
' B& z0 g7 K% M! u' x& n. f - (SETQ SS (SSGET))) y$ ?" j1 Z) c0 P- e" O5 u* m) j
- (SETVAR "CMDECHO" 0)
- X3 D% b( ~1 E4 l3 q - (SETQ PT (GETPOINT "Point to trim or extend:"))
. W* k8 R* J8 }' Q$ C - (SETQ PT (TRANS PT 1 0))
" n4 t3 A' Z6 |& s i2 |9 O# y0 O - (COMMAND "UCS" "W") p% R( L6 n* @2 k
- (SETQ LTH (SSLENGTH SS))9 I" N' l$ h+ l: _0 v7 s: q
- (SETQ DEM 0)
' y# _8 X; d) v) h' e& P& s - (WHILE (< DEM LTH)& l& ^5 F9 ~3 |- s, R
- (PROGN
& b; ~7 v1 k# F/ N - (SETQ DS (ENTGET (SSNAME SS DEM)))
9 Z5 y1 w' u3 g7 x* d7 S - (SETQ KDL (CDR (ASSOC 0 DS)))
* H. b- X7 v/ n" A3 ?# E9 H! ^1 o - (IF (= "DIMENSION" KDL)
\. O+ g$ ?# x4 j; v - (PROGN
% t% r' s& B( O& a' w - (SETQ PT10 (CDR (ASSOC 10 DS)))2 Y8 [1 A& f. l: Q* p) j. Z2 L
- (SETQ PT11 (CDR (ASSOC 11 DS)))
+ Y q) N+ ^9 b1 ^2 G9 A! q - (SETQ PT13 (CDR (ASSOC 13 DS)))
( j8 d# a8 l8 ` - (SETQ PT14 (CDR (ASSOC 14 DS)))9 o$ S n3 L3 o( Z6 _& f7 U3 l8 S
- (SETQ N70 (CDR (ASSOC 70 DS)))
! E3 P" K3 x- \ - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
$ O$ V+ P7 M( |* { - (PROGN! p3 m$ U5 {! s& B, J0 Z4 w! T
- (SETQ GOCY (ANGLE PT10 PT14))0 L* t# F" {! y J& a# U( m8 I
- (SETQ GOCX (+ GOCY (/ PI 2)))1 f u1 {8 x0 R/ v3 A
- )9 C9 `, O: o! }+ o+ `
- )2 o3 U5 e4 z% j0 d6 l2 M
- (SETVAR "OSMODE" 0)
6 q. N+ U1 g [1 y" c - (SETQ PTI (POLAR PT GOCX 2)); A1 s% a; d, L; ~
- (SETQ PT13I (POLAR PT13 GOCY 2))9 Q- V# R, M0 b6 }
- (SETQ PT14I (POLAR PT14 GOCY 2))
E1 g- M; T" X$ e, b1 z; S+ {- M - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
]$ D# A3 |' t9 K7 k$ j - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))9 h. a0 `; ]0 g& c1 u) c
- (SETQ O13 (ASSOC 13 DS))
0 F& u f' A: F r+ ?4 l; B - (SETQ O14 (ASSOC 14 DS))1 h$ ]* H0 f% q4 z; m! W9 K+ a
- (SETQ N13 (CONS 13 PT13N))) N8 g) S) C. F* ^ ]: L
- (SETQ N14 (CONS 14 PT14N))9 i7 ?( ^# W; I# ]4 `9 Z
- (SETQ DS (SUBST N13 O13 DS)). D. a9 ^% Y( v: h
- (SETQ DS (SUBST N14 O14 DS))
$ ?2 P; P* m0 X8 L3 t6 \% p# U - (ENTMOD DS)* @# t( d4 V. A; E+ x: r) a
- )" E! H/ J5 e- C# h8 D
- )
, N L7 ^, a7 N. |" W - (SETQ DEM (+ DEM 1))
# z0 e* q- F4 ~1 h6 W Q' d7 R8 ] - )
% b& N# M* R. H0 i- i - )0 _) `8 u2 }/ \ f
- (COMMAND "UCS" "P")
. s- R y, a! p0 f2 P, G - (SETVAR "CMDECHO" CMD)5 L: ~2 u; |- S9 B
- (SETVAR "OSMODE" OSM)* L1 g* q# k$ j/ s( J0 H6 G
- (setq *error* OLDERR) ; Restore old *error* handler1 D/ k6 Q0 k* ~' E9 [* z, v2 M
- (PRINC)
( @( d" e( w" I3 `7 [: t - )
$ x1 H4 W# X% }
7 V5 H* k0 y0 F( w* }& P, n- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
) \4 p' x, p: X6 N- [ - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)" |8 |1 x) ?7 E; M& @ O# T/ f
- (SETQ CMD (GETVAR "CMDECHO"))/ q$ F {$ {4 E, B) a3 \
- (SETQ OSM (GETVAR "OSMODE"))/ P: I- B# d1 @* V* r* ]
- (SETQ OLDERR *error*
0 x. z1 ?6 L5 H7 w2 H. f: i" e y2 E - *error* myerror)6 a) ^6 u0 ]7 s$ j6 ~5 B. S6 n
- (PRINC "Please select dimension object!")
% M" b8 B4 ]; r: i6 J" R - (SETQ SS (SSGET))
# R( A3 i$ r# x Y+ q# q - (SETVAR "CMDECHO" 0)- {% F7 ^) g9 ^ j0 J
- (SETQ PT (GETPOINT "Point to trim or extend:"))3 R3 G5 x7 _2 \* k: g
- (SETQ PT (TRANS PT 1 0))
$ `2 \1 G, `/ ?" |( I2 l: \1 y - (COMMAND "UCS" "W")! o; r: X& `/ M
- (SETQ LTH (SSLENGTH SS))
, ~3 M6 e# [1 B9 T( c - (SETQ DEM 0)
# j4 x+ Y6 o2 y s* k - (WHILE (< DEM LTH)
1 [9 l8 k; h/ m" x - (PROGN! I* [0 f/ J) M, l. y0 R/ h
- (SETQ DS (ENTGET (SSNAME SS DEM)))
" p$ l8 q- t9 A4 b/ D8 v - (SETQ KDL (CDR (ASSOC 0 DS)))
. p) R0 W* [1 V l% ]. Y - (IF (= "DIMENSION" KDL)% I: [$ g4 t7 p5 p: L8 J6 J
- (PROGN
, N U8 A& n+ R3 ^- B+ h+ f - (SETQ PT13 (CDR (ASSOC 13 DS)))3 W4 ?( Z0 I4 G) W7 t; k
- (SETQ PT14 (CDR (ASSOC 14 DS)))6 H' c' L9 @7 x( v1 v% p( }3 D- H: ?3 H. n
- (SETQ PT10 (CDR (ASSOC 10 DS)))* `9 ?+ j) W k7 ]
- (SETQ PT11 (CDR (ASSOC 11 DS)))0 O7 M0 B) x3 D! d9 v7 E
- (SETQ N70 (CDR (ASSOC 70 DS)))
1 N, s2 a- x6 a - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
, Z( q, y& t5 r5 c }4 b/ n - (PROGN6 ^$ Z6 L4 Z( o( z. {. V; m5 ^7 V
- (SETQ GOCY (ANGLE PT10 PT14))2 O6 d; @+ e" @* h
- (SETQ GOCX (+ GOCY (/ PI 2)))' ~" j6 [, J/ c7 A, K1 U
- )( E3 a f: _4 J8 w+ y2 `
- )* A3 Q: c1 c$ w0 ^1 h
- (SETVAR "OSMODE" 0)
4 Z$ R# _& V+ f5 k4 s1 ] - (SETQ PTI (POLAR PT GOCX 2))
- B2 L W+ L3 Y4 F; n* s - (SETQ PT10I (POLAR PT10 GOCY 2))
- l/ t( ?9 q' y3 C& N# n - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL)) w5 E8 D% f+ W5 z! T2 u: M6 x: w4 p
- (SETQ KC (DISTANCE PT10 PT10N)): C" T1 k: k0 ?# }/ B
- (SETQ O10 (ASSOC 10 DS))
- j8 C, J/ _) ?+ P - (SETQ N10 (CONS 10 PT10N))
; ^! J8 F# [- g% f8 F$ T( v - (SETQ DS (SUBST N10 O10 DS))
L2 F9 x' G& V/ Y/ E, Q* t - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
2 C2 {! }" o* X, M- h* y* T7 P3 y! _ - (SETQ O11 (ASSOC 11 DS))" x7 h+ t, m* z8 B/ k/ G# V* \
- (SETQ N11 (CONS 11 PT11N))
- U+ {7 y" F! n - (SETQ DS (SUBST N11 O11 DS))
& ]. L- }- _; _& w1 U& K - (ENTMOD DS)
- P/ a' O* {9 }, g& Q7 x+ q - )
2 a% S' V4 ^) `' |7 \+ I5 \2 s - )
! E: b, r: g. b8 { _7 N - (SETQ DEM (+ DEM 1))" {5 V0 h) h+ d( }- z
- )
" r" |: y) R7 i+ B: W& }9 E - )
2 ]# x; R, k ` - (COMMAND "UCS" "P")$ @, n8 {, l8 N: g" v$ w+ m( r
- (SETVAR "CMDECHO" CMD)
, Z0 F2 v5 x1 V - (SETVAR "OSMODE" OSM)4 `0 Z1 a. ^/ O) g; O# Z7 D
- (setq *error* OLDERR): e D5 X0 B. l( B7 h/ E& h% |
- (PRINC)
3 m& K# ~% l; |9 s5 s - )8 I1 d3 q+ \3 R; t
- _3 g: W! J$ w& q/ L1 X
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
9 D7 r3 b" L0 C, r1 b6 r
6 ?% o$ O% ^ \% ^- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ") p5 {- b( i. N% v* j" ^
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"). I5 K4 S% ?& W# h! Q2 g
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt2 ~& V) d# A) c( I" Y
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
@/ q/ {/ O6 g* y m7 \* v - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
/ `7 O3 T7 Q7 H9 w0 H/ W2 | - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))2 a' e7 f9 j# v! d) n
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
V+ v$ ~7 t; K q - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))# _- _1 v1 i6 N9 C" c h3 t
- 4 s% ^# J/ F, u) _! p( R; C9 e
- ;;; ================ CHEN COT (TUU) =================
% o% k6 d! L( x2 c" N) x - 9 G$ }+ Z T$ B
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
/ W. G+ P. a) R# w g - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
4 U K) S9 }9 N- T4 F" R. w* N0 ] - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
5 v- g4 o0 N, Q7 |3 Y - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))) k9 G, `6 I% k- m" t* A0 C) r- l
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
% }0 B1 ~: k+ b4 T' `7 } - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))1 h/ d6 j4 J6 L0 q' u
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
/ w; @6 o: T1 \ - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))% c2 u6 H& G A" C: W1 K7 c# C: E
- " V$ E9 g( r, \$ [% s7 E
- ;;; ================ CHEN KY HIEU THEP (TP) =================# z0 a9 m" C# w5 J
% H* _5 K1 C+ \. w, S! A- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
/ g2 t/ t) N% N+ r7 `- V - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
/ g. c# n; ^7 |( P6 c+ k! \ j - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt" l' B$ c3 q7 k& v+ }0 e6 P p
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))3 F! I9 I; x" e/ D
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
2 r9 A2 [ X; ^3 E6 u+ P - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))5 O7 [) S4 o3 z9 Y/ K/ s
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))$ T: ]% M9 J& p! h" c7 [% }
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
7 v& g3 z, `6 ~) r" O - 7 j4 r4 I6 A. `7 f J
- ;=========================== TAM TUONG (TAM) =================================+ L6 L) E( \0 O' m
- & N* v5 O; H9 m5 J3 P# O
- (defun c:tam(/ data_m)
9 H" C E4 s2 f" i+ g' \' c7 q - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
6 g3 z- S5 J" k' h5 A& V- g* m. z - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i)); z* @' H* z2 }$ L% q v
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
2 z- H# X3 P7 v1 d$ o: a4 z, }; f% z, J - (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset# ]* v7 }" _! _/ n: w) q+ `7 \
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
2 [/ ?: i3 T6 @: u- K - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)# u- }0 ^7 Q: I0 S9 t
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if% O; R% @ O9 V3 \
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)5 q1 m( J3 D2 I! E
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)3 D9 ^" {. w6 X8 b" {+ `' {* F2 e+ Y0 e
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
9 t' W7 L8 ^0 W7 Z0 b- c - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<- W8 m: A4 E4 {; Y8 F3 N
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)! _' N# E5 w+ g |
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
& W* l, `3 S* X7 j2 p2 I! r# X - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
' Y+ C+ A' `4 {, M& J1 {9 j - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
2 ~ E: L, [, M( n - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
0 t9 e( m* i% V8 H( g* b - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
+ l# ^1 h2 D( h - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
( @0 }, H6 e5 u5 N# r1 c9 @ - 4 H9 L& ]+ z( r
- ;============ GHI CHU PHI (T1) ================
! W+ s) r+ Q u. e$ d
, G. h: K/ ]4 C% N; c$ C- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
8 W, Y! a& P# z% O0 m: q9 a4 H8 ] - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D38 V6 I4 e+ k {* e
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)2 x5 C* ~& C. y7 n# u/ T4 V
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
2 L7 P7 T# P$ ?6 F; \% N - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
1 f8 E( P8 @# o1 L, C* i5 I - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
0 h& z: \6 |1 R$ U' A% q# o - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1); A4 ?7 @7 @* h4 O
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )) A; D% O: m, K& ^. L
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
' E# f9 {# E" k% x, E& ^* }+ m8 q - (command "ddedit" pause))3 W$ S# G k$ R( r) X
- ( I! [+ b4 W& ~* a
- ;;; ========================== Join (J) =================
' s6 n: u$ ?& r+ O4 W4 R* W6 `
: h: w( `" x4 {$ x- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))/ }( ~1 s# D6 n
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))( {; g. [; h c2 `
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
, K' M' c [+ n9 ]4 v. k - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
5 V7 u: \. o5 ]% C8 f$ a - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))7 \0 D; {9 D* W% j" |5 V0 r7 n F
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
( |3 u4 M- s' k5 w+ y- X+ T, M - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) & Q* h3 Q/ j& n6 v& P% ~/ m
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" "")))))): k) W% t$ b1 L2 ~4 o6 G* C
- (setq *error* m:err m:err nil)(princ))
" i& l* q- {7 I+ k
1 G+ s) I3 n- d* G- ;=====================================================================+ Q2 L. h4 p( z+ w% i0 \' h
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
5 u' k P8 \! x# z8 B - ;=====================================================================
3 D. Y5 i) t2 H$ ?
/ [* M& B& a( g$ }6 e a: F- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)9 g+ k* J: X# \
- (setq old (getvar "OSMODE")) 5 U2 O/ x# k2 q: f' o( U. `5 O
0 W/ j* X! i( ]/ T; Z- (setq p1 (getpoint "\nStart point:"))! k+ v* q( f/ [, Z4 P% H
- (setq p2 (getpoint p1 "\nEnd point:"))
: ?! A; N; p' c, \) W L - (setq side (getpoint p2 "\nOpen side"))
+ k. q0 u. O. F, o - / I3 W: x, X+ u
- (setq dis (distance p1 p2))
8 `* W9 t- L2 E2 B! u R7 q z# q) D - (setq ang (angle p1 p2))0 H3 y+ D0 @7 w
- (if (< ang (angle p1 side))
$ x: r- S J, m: o# t" n z - (setq angside (/ pi 2) ); p3 E5 I& c1 T* P7 e3 F6 V+ t7 ^. n
- (setq angside (- (/ pi 2)))& n: Q# q- d C. X, C- Y! R
- )8 q! w3 a5 H. ~; y7 I9 D
- (if (>= (- (angle p1 side) ang) pi)
6 ^. v+ R. q6 H - (setq angside (- (/ pi 2))). x3 L% W! y' n
- )
; Y0 C1 \% U7 q0 ] - (if (>= (- ANG (angle p1 side) ) pi)- @. ^* b) \ K
- (setq angside (/ pi 2))* n8 _5 `: R+ Y
- )
* A8 ~. v' o7 ^9 b
. f1 R! Z1 R" Z3 w' n- (setq p3 (polar p2 (+ ang angside) dis) )2 B& C! [9 ?9 \3 a2 f
- (setq p4 (polar p1 (+ ang angside) dis) )
4 e$ A# R* a, o( j$ }$ j( x2 ^ - (setq wid (/ dis 15))# a# W$ X8 u7 @- s; y. f
2 {6 Y' u9 Q$ Q ?( X6 k/ ?- (setvar "OSMODE" 0). N# ]' E: O* j0 H6 S9 ^0 n- a
, |' u4 w4 i1 j% \3 M. H- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ' [+ I" h2 m# e# @* i
- (polar p2 (+ ang pi) wid) " w% ^. `, w# X5 y+ b
- (polar p3 (+ ang pi) wid) ) j/ x. I$ L# K; l4 \4 I
- "")
+ X a @) x, s2 o ~$ w) y - - f7 k& f/ _0 ]" F- ~/ l
- (setvar "OSMODE" old)
# O' R- f1 a. |! L$ f8 Q$ d - (princ)
7 ?( a# X4 `. _- b5 v6 i$ X - )
5 ?6 R v; _1 b) J1 b7 K$ S - 9 p: [& ^: \, J: O* \7 r
- ;=====================================================================% [/ m2 f9 P9 f$ J! `+ U/ q _
- % f% T' e3 P6 W! s& w$ W
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
# g8 L7 ^' n; l - (defun cua1 (pt1 pt2)) E1 ~) L! n" i3 Y6 H7 V! }- Q
- (setq p1 pt1
! `! w; v t+ s) m' g8 Y9 I( L - p2 pt2)5 V% R8 b2 K% L$ |% z
& o0 k- F o" ~ o, e, I- (setq ang (angle p1 p2))
, g( R% o b+ t- ]( S. r/ B0 D - (if (< ang (angle p1 side))$ c7 `/ X2 W0 m8 D! `& ` [1 a$ l
- (setq angside (/ pi 2) )
( Y5 t" ]; N1 H' A - (setq angside (- (/ pi 2)))
# M+ r- D* {2 B) @7 z - )
/ N& m( O: `5 o1 ^ - (if (>= (- (angle p1 side) ang) pi)
5 ?# A8 \" t" h0 Z0 h9 K7 w: [8 U3 w4 j - (setq angside (- (/ pi 2)))
' P! \; a- `# W& \+ X/ P! h4 ]4 Y - )' h5 H. T. x$ W# O3 q, y6 J
- (if (>= (- ANG (angle p1 side) ) pi)! c% C M. c- n! ^: p
- (setq angside (/ pi 2))! @2 n4 w1 J4 e& M1 e, E
- )
: H" l- K- _! [8 m0 h6 i1 U
2 @6 W1 D: X8 [+ `5 |2 B: G8 z: X d- (setq p3 (polar p2 (+ ang angside) dis) )
4 Z! `! R: @, _+ R5 }: b: _9 K# M - (setq p4 (polar p1 (+ ang angside) dis) )
; L( u1 l# j r& |9 @1 [! E - (setq wid (/ dis 15))
& d' b q7 y* c4 Z, v! @ - * q) E- }+ `6 B: @" T; g- X' F& A% I
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
0 E" o# O/ i: T) u* m* A - (polar p2 (+ ang pi) wid)
7 L, L! V- n# x' ?6 ^& F) ~ - (polar p3 (+ ang pi) wid)
' n' U9 j9 o! |2 c1 Q8 h - "")$ C2 a5 { y( ]( M+ T; `& Q$ d
- )
: L1 V" W$ ~3 I0 k( z& W - ;=====================================================================( R" {6 M/ @, J+ U6 Q* R
- (setq old (getvar "OSMODE")) : q; `, k* j: K$ u) u p2 t
- 4 i- ]5 ^% C" P% [* g/ a( O* U$ q, [
- (setq p1 (getpoint "\nStart point:"))
) o3 l( Q1 ?- g - (setq p2 (getpoint p1 "\nEnd point:"))
* S% ]" |7 c7 m9 n, i$ _ - (setq side (getpoint p2 "\nOpen side"))
5 y/ D. @& _+ b( i. z - 6 q- ~8 L' @4 \3 y) I; S
- (setq dis (distance p1 p2))
0 j) F% W# H2 v7 [4 c6 V - (setq dis (/ dis 2))8 n" o5 o5 w, S% ^5 ?
- 0 g* Y1 `& [% F2 Y4 a
- (setvar "OSMODE" 0)
4 D9 g( \$ R6 w2 x - ' L8 N9 I. e/ k* [
- (setq p1 (polar p1 (angle p1 p2) dis))$ c; o& f" i2 W K6 \
- (cua1 p1 p2) & `, r3 z8 u c3 c& O1 ?
0 w! Z; }3 i3 G/ D4 [; z- (setq ang (+ ang pi))
4 c6 X& z& f4 w* i - (setq p2 (polar p1 ang dis))
m& A4 E% B( l - ; (setq side (polar p1 () dis))
, N0 O( O& a; a" V/ o# V - (cua1 p1 p2) ' A) [" s1 y2 Z8 X) v3 G0 [
6 ?0 ^% [9 \3 u, ^$ z O' p5 R$ ?- (setvar "OSMODE" old)! f! E5 l, p$ y8 e% g7 u) M, F
- (princ)* R5 {! Z) ~% L: j' ?1 m
- )
1 @! q- b% j9 f, ?/ ?2 a3 ~0 G - % \0 F Z$ C+ P& N
- ;=====================================================================( u3 }* o7 B- M- `2 ^5 J* G! Y
- ;"Glue" text strings. All adopt first's properties." y5 n9 Q e) Q, N
- ; Author:
; s1 ~, T- |2 q7 o - ; Henry C. Francis
E+ B; I" Y& M: m: | - ; 425 N. Ashe St.
% b/ p0 e ?: u - ; Southern Pines, NC 28387
& z& C& I4 B6 V: D8 i G - ; http://www.pinehurst.net/~pfrancis
6 S8 ]5 S7 f; o$ F - ; e-mail hfrancis@pinehurst.net
2 R% h& [/ G- c4 m, W/ C+ N - ; All rights reserved.
; ~' W; l' N0 n0 E3 U% N - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
7 J2 @( w6 T/ X' Y" x - (while
: I; _5 K' ~$ K9 F9 ?% ^: c o - (not0 h6 c g, o! p: \" G! T2 {
- (and
: f* X* R% {9 }2 a z3 B0 j9 ]2 [ - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
! l( a$ m+ l$ I* w' u5 f2 ^, [ - (setq ent1 (entget ename1))8 W4 e# c& U6 w, B" d8 u5 s6 s
- (eq(cdr(assoc 0 ent1))"TEXT")
O) n B3 ~3 q' d. \ - );and7 @7 f8 L, y- L) i" G" f, d
- );not, f1 l2 l$ Z% }2 u+ Y3 ?2 A) w
- );while3 Y8 Q: x8 p# ?6 m
- (setq old1 (cdr(assoc 1 ent1)))
( t7 m( U, c! m: H/ y - (while
, f) Q. z: F# s6 N8 O - (not- L9 F# R* t3 }7 E: J
- (and5 m0 C7 }: n1 e% L, y6 Z
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))1 a- q" \& y9 g
- (setq ent2 (entget ename2))
4 ?$ L2 p4 [/ j3 x0 c S - (eq(cdr(assoc 0 ent2))"TEXT")4 `8 n: ^8 N& I$ i* V! `% a+ J: B( p
- (not(eq ename1 ename2))8 g: c7 ~8 ^: s: m7 L/ h
- );and
+ K: b- Z/ P$ k! b3 g* B$ V - );not% Z8 g( T; I0 w9 O! K9 d
- );while
2 ], v8 U6 U& e r8 t" ^. n - (setq old2 (cdr(assoc 1 ent2)))
7 C+ y# V5 m/ V7 S2 F - (setq new1 (strcat old1 " " old2)
. h9 ^' U6 b; S# \ - ent1) f1 j6 C4 f% G g" E! ]; A8 M+ d
- (subst (cons 1 new1)
- a$ j. v7 d# m8 m% M* W2 `2 x - (assoc 1 ent1)
5 t2 M$ j, S! Z% q - ent1)
4 K& e! o. e2 ^" D9 M - );setq
9 t4 M0 U- r, W, z8 M" _- P - (entmod ent1)- Y$ ?% @; e+ {( Y5 l9 E! ?: m
- (entdel ename2)
* U6 z9 ]& r3 H; F, o9 L - (princ)
+ L% R. e, @6 f, _3 {' E+ l- q - );defun1 D }9 |( }1 I/ {; [# O8 a- x; ?
- 2 a2 P G# E' L2 I
- ;===================================================================== t; c# D: C, r( j
- ' c+ t3 s$ Q1 v
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc). D- ~. I$ e+ i3 \9 V7 s- I3 ?
- 6 p: e% a9 [9 Q( b1 }3 H1 p
- (defun nterr (s)8 ?4 P, ]# T9 G" K% T2 i& Q
- (command "_.UCS" "" "_.UNDO" "E")( ]$ |9 `/ t0 Z) c& p
- (setvar "cmdecho" 1)
1 N# _" v$ M% U - (setvar "blipmode" 0), c+ C) h) n) T
- (setq *error* olderr)3 J. ?; ~. N" k! r8 P" R& C
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil g: y5 v/ Q8 H5 _+ L7 y: F- h, D
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)) I% ]; n' j" H. A
- (princ)
1 ^& t8 Z- B( J- _0 ^ - )
8 q7 t, B; X2 V$ b
7 p: h! l7 g4 t% b- (defun tim_in (dt / p01 p02 ktra)' Y/ {; c2 o U* L' V+ i; B$ h
- (setq p01 (cdr (assoc 10 (entget dt))))/ W, ] ?6 l. t* m
- (setq p02 (cdr (assoc 11 (entget dt))))/ I0 i/ T+ o; S. o( @& {
- (setq ktra T)
; n- {! c* j& M, X - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) # z8 ]( n3 O/ w, O% b! |
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
9 B* J6 c1 K, A - (setq ktra nil)9 C' P5 I! ~% b! M' N
- )
0 {1 [3 ]' U s; N4 ?1 M - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
2 j1 r! Y. ?% m* F/ w0 F - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))$ t1 U' Z7 Q% a$ ]/ H7 m
- (setq ktra nil)
' m( a& O/ C5 g - ) P a9 w5 v: \
- ktra! M3 J& e: U$ C, t: x" s
- )" z! y6 r, v8 G; x$ ~
( M8 B) P0 I0 U2 G! y- (defun timdt (dt1 dt2 / p01 p02)
% [" W f) }7 d5 N" f - (setq p01 (cdr (assoc 10 (entget dt2)))). v0 _: ~8 Y1 a1 ]+ j6 ^
- (setq p02 (cdr (assoc 11 (entget dt2))))
0 k4 ?/ m( ~+ q - (setvar "ucsicon" 0)- R( {% Y' u6 Z. I
- (command "_.UCS" "E" dt1)
! P% d! z; q7 w5 `+ X/ t/ U+ m, ]- x - (setq p01 (trans p01 0 1))
3 z* V$ s" u1 N/ B - (setq p02 (trans p02 0 1))
9 X# D1 ^' G& n/ X" R - (command "_.UCS" "")3 |; p: V0 G0 g( x
- (setvar "ucsicon" 1)
' Y A2 ]' F1 R4 h/ ] - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))) d0 b9 m9 E; a; Y: u* S
- T( J; T& `5 |/ E2 g: i
- nil
! Y' C; |* X. o+ h4 h - )8 n7 q! z, ?; K9 O4 ?* K* q5 O
- )
( ^% N, u3 b" o# A- H/ z4 u& p: g - % }# B- I6 x2 {/ o9 w0 |4 u9 N
- (defun tim_out (dt / p01 p02 kt)
. V/ ~/ Q$ N9 e. d# e3 u - (setq p01 (cdr (assoc 10 (entget dt))))
' O8 ~. i6 O T0 q$ g, N5 B - (setq p02 (cdr (assoc 11 (entget dt)))). b D% K# ]3 ^+ A/ a
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
; K9 ?% y7 C8 z - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
9 O+ f5 I; {, Q2 c) ~( i q# n - (setq kt p02)
; G# U$ u: s# U- N& t# X) U7 } - )
& ~/ \7 y# W7 M3 W" x - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
! z: k! j! d: k1 M! I$ t - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))% z/ A) K* Z" p
- (setq kt p01)0 f6 p2 Z& {* o# Q6 e. E. u) E. N
- )9 S# |* P0 \+ Q, x- J
- kt
. V5 F2 Q3 ^/ y! d% u - )
/ B* q$ B# l8 l% @- I - $ s1 A5 @# w7 u3 C# D
- (setvar "cmdecho" 0)
& c) O+ P9 O. q6 O5 I) M' v9 A9 G - (setq olderr *error* *error* nterr)
4 \' }& U; Q! X( l0 c4 s - (command "_.UNDO" "G" "_.UCS" "")+ L* Y+ a% V1 j3 U( |
- (while (null ss1)
. k* O5 z( `) s3 Y# q$ I - (princ "\nChon tuong muon noi...")( r2 h% j" C2 P% ]. U* \
- (initget 1)2 u$ ?. f1 y8 I; D4 o0 o" ?4 b
- (setq g1 (getpoint "\n>Goc thu nhat:"))
2 @ K# Z% |# x3 c. _ - (initget (+ 1 32))
" _6 B- S! q, @ - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
7 _ M2 A1 S) v5 n f1 j9 O - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE")))) H% v+ j( R M4 ~& g% @" ~
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))' ^! W$ n; C9 u$ F* K
- )* d) q1 _2 ^/ R8 B$ u3 d$ o4 z( w
-
) @1 L. i/ ?& Z% _9 p - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
5 H/ j( {% _6 i+ B - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
3 U& A8 ^* t, W. u# j* ~ - g1 temp)
9 l* F' ~# {- S# h/ y# e I; l. I; l - (setq ss1 (ssget "w" g1 g2))+ ?) I! K" k& }4 Z: r# S9 `! V. G
- (if ss1 (command "_.ERASE" ss1 ""))! G$ ]( Z2 O3 \
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
. r" g+ L* `( B3 y6 |: ? - ) [3 A2 \5 E! N$ e' M \6 L6 t
- (setvar "blipmode" 0)
e0 H7 `- L7 n0 ?0 @" ] - (setq i 0 l (sslength ss1))
: Q5 w0 E0 z' n1 K9 f/ w% E, c - (while (< i l)
; n6 Y4 o7 e- I) p& [ - (if (tim_in (ssname ss1 i))# D$ j6 G |9 x; \ e% G* N8 l. \5 e4 I
- (progn
) ^2 x* D2 ^8 i8 [$ _- T - (ssdel (ssname ss1 i) ss1)
) v9 Y+ k# X8 u - (setq i 0 l (1- l))
/ a8 f! @* z: p; k - ) / b. z- n5 T. \5 L; \+ c" A$ m
- (setq i (1+ i))# W: L: R- D: @# v% {, {; C
- )# q4 [. L. s+ O/ Y+ r1 R
- ) V7 W4 R1 U' i, J# [: V
- (setq l (sslength ss1))8 p- U; n0 W6 s$ O5 Z
- (while (>= l 2)
9 @5 w% ?) q6 W; g- L. ^! K) v - (setq e1 (ssname ss1 0))
; B! D7 D, u: w, A8 n - (ssdel e1 ss1)2 |0 t% J! b; ?' d. Z
- (setq e2 nil i 0 l (sslength ss1)). q. p9 e& ~5 m9 `% F) k
- (while (< i l)
6 H+ M6 d/ b: u; ` - (if (timdt e1 (ssname ss1 i))
# E& h9 K2 j' n7 R* R0 V( m - (progn
& w, s: S: R! b - (setq e2 (ssname ss1 i))7 e3 w3 t s1 H; @( @6 M- c4 N
- (setq dd (tim_out e1))1 _" u$ ^9 b' y: s( r
- (setq dc (tim_out e2))
& }5 z% l+ F b" ^- N0 d( q - )
& f5 e) Q% @5 e* V J( f - )" ]! f9 g. E1 A5 W
- (setq i (1+ i))# N: ^$ O4 } J% s( n x# E. j+ A& z
- ): O5 \2 i; t6 k) G# ^9 V
- (if e2 (progn+ z* c# V4 I1 J/ H/ F3 l" |
- (ssdel e2 ss1)
# i0 U K8 A8 ? - (command "_.ERASE" e2 "")
7 c9 |7 X% z$ x - (setq temp (entget e1))8 R* m7 N* s) N9 w- R: \
- (setq old (assoc 10 temp))
% @8 p! V& O; q - (setq new (cons 10 dd))4 J7 _. M6 h% l/ B( t3 i+ U8 R
- (setq temp (subst new old temp))) o4 k7 t+ }3 V$ V- m
- (entmod temp)5 _- \3 c5 V3 ]' A6 ] \
- (setq temp (entget e1))1 F9 P& ?5 b6 L- I( r8 S
- (setq old (assoc 11 temp))% M" l7 V1 R7 K2 Y+ _
- (setq new (cons 11 dc))
( v& I& Z8 g# i+ g5 B - (setq temp (subst new old temp))
' }! k( ^) B9 M - (entmod temp)! v6 z% @9 c; E
- (redraw e1)
1 a' L3 j- a ?/ ^ - (setq l (sslength ss1))
2 }+ d3 c. R9 J7 x! e' l, N" ]% q8 x - )9 d+ @( b* y: H8 ?$ a
- )7 a. _+ q( o3 }9 ]/ ~) @
- )
3 v' c$ A6 N1 G* R& e# l7 n
6 ^/ Z4 h$ l8 H% O) M3 l- (command "_.UCS" "" "_.UNDO" "E")
$ V9 u; X R% g4 c) U - (setvar "cmdecho" 1)
/ m4 t* X" w6 G: M$ `0 d$ k) _ - (setvar "blipmode" 0)
# ?/ \( a! B* ^5 W8 L( t - (setq *error* olderr)
# _ j% r. p5 _+ G - (princ)" {4 t# O/ G% a
- )1 R# Y( [4 m! z- w( q/ ^5 W
- ;*********************************************************************
3 {! ?! r# i- z - (defun ketthuc ()
3 c* y5 t4 g# B, I# {# G - (setvar "cmdecho" luuecho)
N$ I3 R# C o. P - (setq *error* luu
' d2 @. n" U) U( | - luu nil
# i1 ~) M; j" K7 u; m - luuecho nil; d" V$ G3 i+ z; O0 N9 g0 B/ ]
- );setq
% D' l+ e, r" A0 c) L, N$ S8 o - (princ)% d8 u Y2 Z3 \; W
- )
# H9 B1 K# x) \6 A4 ~/ U7 v - ;*********************************************************************
( n9 B+ a0 |: S: [" P, f" R - (defun modau ()
( s6 D9 ?" z: r' v6 f' K6 d - (setq luu *error9 |! c! R4 C2 O
- luuecho (getvar "cmdecho")2 C; V. C: F5 g0 e0 X4 o$ \6 S3 m
- *error (ketthuc)
& X3 J/ h r" q - )* a7 @9 ^# w9 G( A$ }3 {
- )
7 e& L% O Y% t6 X" g. s$ O - ;*********************************************************************
* C& }6 E) S: l! ?$ D, v c - (defun xulytext (text / kytu ma sokt luusokt lui )
r# U8 _2 j0 d0 Y - (setq kytu (substr text (strlen text))
3 o i; P4 n1 z, k7 L% \2 Z- d - ma (ascii kytu). ~0 ?# ^; P2 D% p* ^# u v
- sokt (read kytu) ) O7 u& A4 ~8 O' K5 D$ c* M
- lui 14 Z* j0 m1 u$ o: B/ y; O0 }3 i8 w
- )
7 p! v; \$ U1 Y - (if (numberp sokt), n* W# v b1 a! ^
- (progn
; ]) v% o: [# P - (setq luusokt (1+ sokt)): J7 _2 d- v7 Y8 }. Z6 i5 ?$ f3 E
- (if (and (numberp sokt)
5 |4 c6 q$ t$ G$ j* c - (> (strlen text) 1), n: V- C8 B% e3 o' D
- ) " h9 J& F" Y$ l2 F( k
- (progn$ x/ K4 d1 @3 P, J
- (setq kytu (substr text (1- (strlen text)))" m9 V, A/ e) r0 [% E# V- b4 K `
- sokt (read kytu) " q+ R( E2 |4 H+ b
- )4 t- o: R# E) y* {' {1 i% U9 z
- (if (numberp sokt)
) b. g0 ?1 a! T* U - (setq luusokt (1+ sokt)) _5 Y Y1 O: h9 N2 A; v
- lui 2* n* @# p" L' d3 k( j1 l' x
- ' i: a# v& o) Z% f
- ), T5 u2 Q* M8 @7 `# w6 x/ {
- )/ I2 _0 v& M/ i$ K R! L
- );progn . N- E* H# a+ X/ g- k6 \
- )
1 Y! q# l$ R w) a0 i; A - (if (= luusokt 100) (setq luusokt 0))) h# T+ A" r. s$ p q/ N0 E3 B
- (setq kytu (rtos luusokt 2 0)- }0 d5 I! Y$ e$ R0 {
- 2 t7 G- d( p" E( C/ f! M% d
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)* L+ l# x0 B! g: ^, C" l
- )
7 R: D0 H. J& u1 _" d8 D8 | - );progn
: [7 E" h( Y9 N f7 }' Q0 ]1 t3 b - (if (or (= kytu "z"): |/ `* _) F! v% q
- (= kytu "Z")
: ]2 Q0 V4 M4 }' |& L9 o+ ^ - )% O3 f: Z4 Y8 d1 B4 \
- (setq text (strcat text "0")* z0 p" `8 S1 d
- textxl "0"2 v% i1 k" s$ Z- z' @- k
- )
" L# E/ d4 M2 H% V - (setq ma (1+ ma)4 O) c6 L, T- Q+ t0 R
- text (strcat (substr text 1 (1- (strlen text))) (chr ma)); V. f# o" P0 T* m# W7 O5 [( G+ f9 r
- )' F( o" f- |+ q4 X4 i
- );if
1 Y! L% T- t" [4 T, i% O# u - );if8 ?& \4 d+ ~7 [5 \( }% o
- )9 s$ L. h8 ?& E/ X# E- G1 J
- ;*********************************************************************
6 Q$ V) w$ i0 i- G& R$ Y - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)% r- v. N% m3 }1 l5 d" h
- ;Neu doi tuong la text thi tiep tuc6 }4 {7 U, }) W8 `% f0 Z
- (setq doituong (entget tendoituong)
: \+ Q8 L( B0 e9 @' Z8 X - kieu (cdr (assoc 0 doituong))
7 Z. d3 P0 e3 B9 o4 e* v5 ^ - canle (cdr (assoc 72 doituong))/ o# }2 {: n( y y0 V
- )
# t1 f* K* S. w& L( ] - (if (or (= kieu "TEXT")
2 ?9 n' n, ~/ i: d2 R9 U3 h" L - (= kieu "MTEXT")
7 _* E& d! v; D - )
# L( N! f# |1 E7 [* t8 z - (progn
$ H5 o6 I8 v1 n" X( l; N - (setq textxl (xulytext textxl)
( P& ^* R" z/ G) g& n2 b9 l - text (cons 1 textxl)
9 z+ q. G: o% M - vitri10 (cdr (assoc 10 doituong))- s [; |+ ?1 Z- M7 \! C
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech))), W( S; A$ u6 F" ^$ K) {2 l- ?
- vitri10 (cons 10 vitri10)
8 M0 B0 H8 I1 c ]7 v - vitri11 (cdr (assoc 11 doituong))
% }/ ]0 `1 |0 G* l; M/ T - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
( T+ r2 F V: t - vitri11 (cons 11 vitri11)5 S$ T* O% v- @) ^: j7 l
- dem 0
4 Y& ~0 w$ R. e0 C; l/ `) a, | - dsach nil
/ T" W' e- P7 @) Q% _1 f - )
( |0 _4 L& t. {( h! T( L2 V - (foreach tam doituong# \& }$ D' N+ u* r7 i: f$ F8 Z
- (cond
' c' e' S* L( V6 w7 C6 `2 y( z - ((= (car tam) 1) (setq dsach (append dsach (list text))))
8 J1 L: \! d" k% u1 w! ~8 ^ - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
8 q. ^0 m2 D6 n4 a0 i - ((= (car tam) 11) (setq dsach (append dsach (list vitri11)))): i0 n4 m9 D! t8 C8 P+ h2 m
- ((setq dsach (append dsach (list tam))))+ ]# p$ g ]" f1 W
- )% m( V7 k5 g0 X( m$ \
- )
/ }" L' a7 ?7 O - (entmake dsach)3 d$ T9 F0 ^5 ^8 g+ }3 K, F
- );progn( r1 ?9 A( H. @$ x9 a3 P' f: D% @, e
- );if. l% a6 d' C; `( r
- );
; }2 V4 k2 `& J. i+ P5 f+ ]1 n6 a9 z; x7 t - ;*********************************************************************. y7 B% Z2 P3 l# K0 A
- ;sao doi tuong cu sang vi tri moi- u/ {% x, ]! {1 W1 ~8 _
- ! G+ b3 V, J' h. |. l
- (defun copy_dt (tendoituong )) X( C% b" a2 g9 D/ ^
- (command "copy" tendoituong "" goc toi )
6 d, ]8 M: G+ a! H4 m0 u - );defun7 S5 J8 n1 e; B m
8 ^% o/ V0 t, I/ ^, v* C- ;*********************************************************************) T9 w) A4 f m/ E% M
- : N5 ?7 W; C* i3 J
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
6 x# e# x, \! c' o" V - ; Khoi dau cua chuong trinh9 w- z0 p# @0 k) h
- (princ "\nCopy Inteligent...\n")
5 d& d! Z& D3 f5 G - (setq luuecho (getvar "cmdecho")" t1 l, u* P: @7 ^; L/ v m" V
- luu *error*8 p6 h& g* z- u, M C. j
- *error* ketthuc
, j9 d& ]( N+ x3 R - cumdt (ssget); D' A' d" a; u9 j& \# _) F4 I
- dodai (sslength cumdt)& X0 G3 ~" }# d+ Z
- goc (getpoint "\nSelect base point:"). P0 F/ @9 l P& z
- thoat nil+ ` [3 D% V1 W) ?4 ]0 i
- dem 06 N' l; K/ ?* S3 K7 F/ J
- textxl nil
$ ~% O/ d# f5 R/ R: g; t' [& W+ e - );
1 f! A, }. t; Z* [: D( i4 O2 V - (setvar "cmdecho" 0)- t) [" A% A) d+ r9 S( ?
- ; Loc ra duoc ong text de xu ly- F$ g: q7 E. r! e. K
- (while (and (= thoat nil)1 r1 Q9 `1 m& L! ~, {) {& D* J+ i6 w# l
- (< dem dodai)
& [1 T' l) c* r. n; {" R - )
3 c' I" }$ b/ [" j! A - (setq ten (ssname cumdt dem)1 ^- f, `4 ~0 V/ j1 r$ f. ]9 h
- dem (1+ dem)( V. R( K# m; X1 F
- doituong (entget ten)/ H5 A/ W: v" v; {' h. @
- kieu (cdr (assoc 0 doituong))
/ H/ D; \1 O9 g/ D3 w; ~ - )
6 v- s) J. z1 n3 s/ K - ( P0 G: D- S# |+ I/ r( a' g
- (if (or (= kieu "TEXT")# R) \7 W2 k8 s+ {% N8 J! S
- (= kieu "MTEXT") 6 C7 F M6 S- Y) L& k9 P- n
- )
4 ?0 h5 @5 O5 O$ h - (setq thoat T
! S8 ]5 r! ?9 n - textxl (cdr (assoc 1 doituong)) 7 Q5 U7 Y- U- |$ ^* ^
- )9 A9 b8 j4 L( V; S& w7 p2 X6 ?
- )" V5 M# T) L1 `& x( i1 k) L
- );
% H7 [9 |$ v; g) Q0 c - (while T ' u! H6 K8 f- M3 t" P* O; o
- (setq toi (getpoint "\nSelect next point: " goc)/ m3 J& j: S8 C' Y& r
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
" s9 X) c: x: u, n2 ? - dem 0: l- l! Q m, z; n
- )
9 e0 E: \) n8 w7 N! k5 s" I - (while (< dem dodai)% o z4 L/ j4 d% M/ ]
- (setq ten (ssname cumdt dem)
8 L, }$ Q& [9 C6 e4 e; W5 S - dem (1+ dem)
( i V' N4 k# P0 h. ?6 z - doituong (entget ten)
( V1 ^& K1 m: t/ u7 D - kieu (cdr (assoc 0 doituong)) , ~( ^. a& i7 R0 o
- )
) |+ X) P1 ?8 Y0 [9 y9 b& a; r/ C
! `) }3 {1 V' B- U( R6 x+ v. C- m- (if (or (= kieu "TEXT")6 |9 m0 D3 v1 I! K5 [
- (= kieu "MTEXT")
* n. W9 g, C* W6 `7 L$ o0 Y! e) T - )
* F+ v- s8 T8 `# Z - (doitext ten)
; M$ ]6 d- e, l+ |/ D* u G0 O( O/ a - (copy_dt ten)
+ ^! ?& R9 N1 {8 Q8 }/ _
7 y! h* j$ c, z% F- );if7 K2 a6 y0 l% K
- )+ N7 v8 q6 m# ^% f
- );while. @1 w( z3 T! q t
- (ketthuc)
/ V1 z* G7 C" d+ e8 q; M/ } - );defun
- q( r& [& ?# F# H - (princ "Type \"DG\" to start")$ U7 K) p7 Y6 a4 B" a. v
- ;Note: bien toan cuc: textxl vitrilech) Q: V* A+ X7 b) f1 [3 N7 H. s
- 9 P& Y( y* U- H% O { p* t
- ;===================================================================== X" @8 u+ _3 V7 G% J9 A% P
- ;;; PLJOINFUZZ.LSP9 T- L( W8 _# p% a* c) [8 `
- ;;; Joins lines, arcs and polylines using a fuzz distance. u5 {+ s. `, o8 ~7 K
- ;;; If only one object is selected it tries to join to all objects that are possible
( Y3 N, L# d: G - ;;; By Jimmy Bergmark
5 V! E! e! K+ @2 I2 m - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved& ^; j1 p+ ?! U$ V* k5 F3 q
- ;;; Website: www.jtbworld.com
( p) R ~2 W( Y0 r- M - ;;; E-mail: info@jtbworld.com; }( d) ]0 e0 L ]$ G4 P* H+ x3 F
- ;;; Tested on AutoCAD 2002,2004 and 2005/ ?9 ^) u# u5 }. J% }1 n5 Z( d
- ;;; Latest revision made 2004-11-11
- h/ F9 E$ w& e - ;;; Minor code cosmetic change made 2004-11-13
& X9 j, b" R2 u. b' l# I, H - ;;; Bug corrected 2004-12-238 e" z! |% D; X7 S4 p
! [( _3 R& W& o: p6 J9 m# t3 J- D5 F- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
8 C( J* {0 S! M, G - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)4 p. W { t u; J, x
- (setq oldcmdecho (getvar "cmdecho"))9 M/ _! z _4 Q8 w' |6 ^
- (setq oldpeditaccept (getvar "PEDITACCEPT"))6 a( F& t- A/ v' U9 t0 i' s+ U
- (setvar "cmdecho" 0)
& a: K1 j- I; }: k$ W - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))1 j' i6 Y' @$ T$ r3 f" h5 g
- (if A2k4 (setvar "PEDITACCEPT" 0))" @. x4 s/ N, I! L, F% D: w
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
8 [2 [. a: @0 }9 T& K& ?- o - (princ "\nSelect object to join: ")
0 E! M# L6 M$ q: e* i3 u- M - (setq ss1 (ssget okObjects))! q) @9 b: A% T4 m
- (setq fuzz (getdist "\nFuzz distance <0>: "))
: ] q# N1 Q# L; ^ r - (if (= fuzz nil) (setq fuzz 0))
* F' o' m8 @# o - (if (/= ss1 nil)' {. C/ r8 N% g5 {8 z
- (progn
} e |9 w0 l' ]: ` - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
4 ~) _4 F7 E8 f - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects))) b- p. |; X! i8 L6 ]* @/ _
- (if (member objType '("LINE" "ARC"))- L" R# `$ F" ~$ g i9 @0 R7 E
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
3 Z! U6 b8 K/ A! o5 H- U - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")1 S# B& B0 t2 c- h
- )
3 n) g) _2 P2 W6 H- K' o - )9 Q+ [/ F, R$ Z
- )
5 O; W p' O. B' @, y - (setvar "cmdecho" oldcmdecho)7 C% H" p9 G0 b& x
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
5 q! _% Y" r/ M0 G/ z( M - (princ)
8 F+ k) P# V4 e, k8 [- K& T7 @ - )
' `; k1 `0 F. I, r! i1 L
* Z% Z' b3 h$ w y( V* y- ;===========================VE CAO TRINH===========================. a( A" E& ^- z7 l6 @3 x C1 C! D
$ b4 S! i# O9 N4 V7 T- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL) h- f; M0 F5 U% u7 G7 _
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)4 z# A5 y* H0 n* U. L5 b
- (SETQ OLDERR *error*- n) I% |! S- i3 @6 K
- *error* loisb)
$ O- R! N& r* v, M1 q" Y - (command "layer" "m" "dim" "c" "" """")% e5 g/ B( X# q# u' \
- (SETQ CMD (GETVAR "CMDECHO"))% M) U' T1 L0 }6 @8 |5 m/ {
- (SETQ NBC (GETVAR "CLAYER"))
3 R6 E) S% i" j4 }' |: X2 }: D L7 Z: q - (SETQ OSM (GETVAR "OSMODE"))% l! }) |3 u; l4 j) r% J3 o% [7 `: @
- (SETVAR "CMDECHO" 0)
# _; x# ?2 q1 U3 ~ - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))3 V- x+ {" e+ ^- J
- (SETQ TX (GETSTRING "\nCao trinh:"))" y0 W2 Z8 I. ], v& I
- (SETQ FCH (SUBSTR TX 1 1))
3 r# `1 ?3 J2 {. m* O, C - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
$ u3 m" p- {0 v0 x# F# b. T8 r - (SETQ CRST (GETVAR "TEXTSTYLE"))
* w9 i% X! M4 ?4 w) ]! ` - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
( |# x" \4 C; b6 F" A3 g6 y - (SETQ TSIZE (GETVAR "TEXTSIZE"))8 ]0 e' F- w ^; k3 V+ {
- (SETQ STR (RTOS TSIZE 2))
& e$ H8 n$ t, F7 E - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
" j" t( `' _- i) S. a: |( `- J - (IF (= RSIZE 0)
0 a) n" G' K: B& i# ]# p% H" G - (PROGN' y: z' m/ I* Q- Q
- (INITGET 4) M: J5 H. u* A8 @; |8 }
- (SETQ TSIZE (GETREAL PRMT))5 z3 u! I, Q8 W2 k( K( X
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE")), d- @% k8 S3 w7 b% [) n" M; Y- q5 D
- (SETVAR "TEXTSIZE" TSIZE))
+ C3 p/ C0 K9 Z; {+ s - )) D* j, t8 y2 F6 ]4 R/ o ]1 O5 x8 s
- )
" U$ Q8 j7 F" m5 Y+ v3 V$ V - (PRINC)
4 R# F" [1 e* ~' G0 D9 u. f: d; N - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
$ \! m2 g4 k+ H5 W+ B n - (SETVAR "OSMODE" 0). i" B! n h1 j9 |% |/ E9 Z
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
6 S8 w+ U" H: F% f - (SETQ NPI (/ PI 2)) [2 Z8 y" \2 m4 s
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))" l& }5 l6 m! n: `+ j, y
- (SETQ PT2 (POLAR PT4 PI (* 2 TL))): }1 {% l& g8 {" x" g
- (SETQ PT3 (POLAR PT4 0 (* 2 TL))): v6 y9 \7 h; I! ^
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
( v D) A9 ^( \( u( {) K - (SETQ PT6 (POLAR PT2 NPI TL))* d6 f" X( r- s* H
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))1 _8 v9 m0 E: P
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))# o5 {2 J: X! C" I! H
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
/ D* }% j9 u4 Q5 E& k/ i* }# Z - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
2 C) y- V7 w2 x6 _. s, O9 k- A - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))" K% v. V- m9 [# V( g
- (COMMAND "COLOR" "7" "")" ^) d8 Y4 N9 F5 L3 Z& z8 |* A
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
1 F1 g7 D4 |6 v - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX)) i8 s6 `/ [ [6 g: d
- (COMMAND "COLOR" "BYLAYER" "")
( Y. o% q$ E( n' Z - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
; W7 ^% }' q1 ?0 X - (COMMAND "COLOR" "BYLAYER" "")8 c5 g3 Y# L( X& ^7 d2 r% i8 q
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
* P$ ?3 P* ~8 R! V4 g5 p! r) Y2 D+ c - (SETVAR "CLAYER" "0")! T7 s: W( Q6 A6 U
- (command "ddedit" pause)
# b4 B; A% P2 F6 q - (COMMAND "COLOR" "BYLAYER" "")- n, E% {6 |% b; ~ J( c. C, V
- (SETVAR "CMDECHO" CMD)
" Q* n% _) K1 j5 Q0 ?- d - (SETVAR "CLAYER" NBC)
- F' i( y# ?) | - (SETVAR "OSMODE" OSM)
- i4 _- R8 X' {: H6 g& n: y; G - (PRINC)& I4 N2 S8 _, J" @/ L) ]; _) {
- )
' A; o, c+ U- B$ `1 O( U
9 d c% W2 I5 K0 E- ;;; =========================== VE NET CAT CHEO (GC) =============================: D1 H7 k) q: q# r
- 9 F' c% \) s1 W& T, j. m3 H2 \
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang): T8 T+ `3 o8 \- q( w
- (setq x (getvar "osmode"))4 H9 T# S) o3 `- X8 W2 e
- (setq p1 (getpoint "First point : ")
3 y+ W, N: S; r6 r- b- {. E - p2 (getpoint p1 "Second point : "))
8 S7 w. R: {$ q! n" I! s6 }: k - (setq l (distance p1 p2))6 u+ U2 b0 C3 P* N7 a
- (setq p11 (polar p1 (angle p2 p1) (/ l 5)), I$ L" o" d/ G+ e: U2 x
- p12 (polar p2 (angle p1 p2) (/ l 5))). x! ]9 b9 R1 a+ v6 u& G0 _
- (setq ang (angle p1 p2))
2 z6 b; {. W4 E1 ?# y0 v5 J4 f - (setq p3 (polar p1 ang (/ l 2.5))$ c) S( K5 O4 @8 y" B
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
2 i4 W* H" j. f, F8 l! |5 c - p5 (polar p3 ang (/ l 5))
6 o" F7 c; \3 s' l8 [1 \( p - p6 (polar p5 (- ang (/ pi 2)) (/ l 5))) v$ ? z" ]/ B
- (setvar "osmode" 0)2 u4 a( V' {# P7 `) _+ S. s
- (command "pline" p11 p3 p4 p6 p5 p12 ""), o/ s8 q0 b, D% ~" K7 Q
- (setvar "osmode" x)" N! h' \8 p/ s" X+ q
- )" s9 r! x, D+ H0 E9 C
- ;----------------------------------------------------------------------------------0 V. Y9 i, N& J" ~7 }/ K& g3 n. r
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
, E. e" v( O" F$ h: Y" K; t, j. O - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))6 L1 _* D$ F2 }- c8 K! w
- (setq ps1 (getpoint "\Chon diem thu nhat: "))8 a2 d1 d7 A4 ?2 I% ~
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))8 l( R0 u. L7 d+ Y( l
- (setq sb 50.0 sh 200.0 se 20.0)
- T* W5 N! z a) r' R% A# _ - (setq ang (angle ps1 ps2))& n( S/ r3 a- E8 Y& ?
- (setq pf1 (polar ps1 ang (- 0.0 se)))
! h, L# k) x4 Z7 r5 e, Z - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))& G" T+ q- o5 W4 j. z' z* n
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))% e$ ]( Y( J4 k$ o, d* C
- (setq pf5 (polar pf2 ang sb))+ `6 `: b% m" ]% v& c( L# h9 c
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
& B S- ^& l! g$ e6 J4 ]( m - (setq pf6 (polar ps2 ang se))
0 L) N5 j! m& F: c! x - (setvar "OSMODE" 0)
; M: F8 c3 T0 J W- B% c) J - (setvar "BLIPMODE" 0)0 M- t: d! O) M% j* F) _* y. X- [7 N2 V
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
" s! b: F: T; ~, c* w - (setvar "OSMODE" 703)
6 E7 V: `9 @( H$ s - (princ) )
6 f4 x9 C( Z2 R: u& Y& v7 f - ;----------------------------------------------------------------------------------2 o! y- o2 e5 T5 C
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
: Q+ g2 r8 O1 L5 A- g. |* j - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))# ~- A2 C7 C2 p' |
- (setq ps1 (getpoint "\Chon diem thu nhat: "))! G0 p1 D* R9 `& E) u
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
/ d% K7 i+ T8 c- p3 v3 ? - (setq sb 100.0 sh 150.0 se 20.0); m: C0 Y) x8 J+ D$ d5 E
- (setq ang (angle ps1 ps2))
- y; p8 O# b" m; p3 N# B - (setq pf1 (polar ps1 ang (- 0.0 se)))$ Q5 K5 f {, w( ^: o8 K+ J! T
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))7 D$ B$ x5 L9 r* d! X. \1 b( |
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
/ \: o1 P2 [& W) I4 b# V - (setq pf5 (polar pf2 ang sb))( V* { R* [& O8 V8 o; G, |
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
6 j2 m1 ^( K- n0 B- l+ a$ p# o. g0 j - (setq pf6 (polar ps2 ang se))" _* O' T9 V8 l" V' X
- (setvar "OSMODE" 0)
9 [) X+ e+ p8 i - (setvar "BLIPMODE" 0)
% h4 a7 i0 A, `7 p- O/ _ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
; p" w% C9 e$ l$ t, C# @ - (setvar "OSMODE" 703)
8 x3 i1 p' Q3 {& Q - (princ) )- x( E. u0 X7 H* z ~& ]! I
- ;----------------------------------------------------------------------------------
0 N0 l* [+ y, W! \ - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6/ s. c$ E% ^+ A; t. M
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))+ d! y% b7 x8 O- b% j0 a8 \/ ^
- (setq ps1 (getpoint "\Chon diem thu nhat: "))( ?1 Q; d$ b: w- Y% I1 l- i
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
0 }2 c3 h2 F6 U9 P! J - (setq sb 100.0 sh 250.0 se 20.0)6 R+ N& d( a# z
- (setq ang (angle ps1 ps2)) f0 F | s2 q& {8 u
- (setq pf1 (polar ps1 ang (- 0.0 se)))" w# u3 n7 k; g
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
4 Z$ x% ~4 b: Z - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
1 ~* ?$ i7 Z: z" L - (setq pf5 (polar pf2 ang sb))
) o* i7 r/ M6 @; r - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
6 j# {9 D8 N+ [ - (setq pf6 (polar ps2 ang se))
! l6 M+ o# W4 H' g8 {& Y- { - (setvar "OSMODE" 0)
6 _2 ` z+ Y8 }9 e) W+ W& \ - (setvar "BLIPMODE" 0) K; K4 B; V# T7 _8 v# R2 W0 T
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")6 T* D& p; z' D; b' X7 ~/ o
- (setvar "OSMODE" 703)% A; y0 Q5 Z. S/ x; U# H: s
- (princ) )9 h1 \4 ~9 }" d
$ O; k- I! Y' j6 m) m- ;==================================================================================
" J; ]2 K" {5 @4 R% V% s6 s9 C% a - (defun c:ang (/ ent pt1 pt2 ang)8 L$ O& l6 [4 D) t x7 f5 N* D( N
- (setq cmd (getvar "cmdecho"))
( {) t2 u4 Q7 \- U - (setvar "cmdecho" 1)
% H1 m3 U, p% h# _ - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
t) O, _) l9 y. r3 f, n, b9 H; r, d - (setq ent (entsel "\nChon duong thang:"))6 I" b4 `5 o! l9 c6 a" X5 ? a4 c
- (if ent
5 @: g, [+ i, M h. M - (progn
0 B- s u+ m5 Q# q: v - (setq ent (entget (car ent))); u3 M8 q+ y1 ]
- (setq pt1 (cdr (assoc 10 ent)))
" s' t" u" ]/ I - (setq pt2 (cdr (assoc 11 ent)))) q6 l( Q6 P$ @3 U& B
- (setq ang (angle pt1 pt2))6 V! j& J/ N" @+ \* f
- (setq ang (/ (* ang 180.0) pi))
z3 ?/ H7 f0 c8 \" ~; ~# ^ - (setvar "cmdecho" 0)
c6 F) v+ V4 C' F K4 S' ? - (command "setvar" "snapang" ang)
" |0 ^3 y/ C* @! v8 h1 ~/ l - (princ "\nGoc cua truc toa do moi : "): t3 v: }5 W! g; r1 q. r! h, u
- (princ ang) w6 s: T3 b7 Y9 M; p" |5 v" W" @
- )( n) i& u& t; N3 ?9 `) \7 y9 _
- )% t* H9 F- r1 K' M: s8 x2 d
- (setvar "cmdecho" cmd)
* ^ @4 q+ d, c* v; C* }, z - (princ)5 d) E; d7 o3 l9 ^5 e
- )# \4 U) [% i |4 @
- ;==================================================================================8 ]% q1 m5 w# c! ^: W1 ]
- ;============================== KY HIEU DOI XUNG ==============================
0 s3 W; y: o$ q @" @. o7 ~& a8 Z - ;==================================================================================
7 \1 t0 b: }, k. \ k4 k3 M) }1 L
" M6 \# v# _3 O/ l* H5 J7 i' q1 ]' F! s) s- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
; u5 o) M. R: m j: q. h v/ k - SZ G45 G135 G90 G180 SS loi)
$ c8 C6 B" \) D3 q& p+ m2 i - (defun loi (s)7 q- H% h2 w, E4 D4 ^0 p$ c
- (if (= s "Function cancelled")
' H7 Z0 I1 d0 N2 v - (princ)- |3 l1 `& e- V9 E) k, b1 ]4 ?
- (princ (strcat "Error:" s))- ]) ~6 H' D4 M; o# K
- )
4 [* r4 h5 b2 H8 Q - (SETVAR "CMDECHO" CMD)4 }# s) e9 d$ \7 C* F1 h1 j
- (SETVAR "OSMODE" OSM)
" c& |* v1 j( A- { - (SETQ *error* OLDERR)
9 J& V& H6 X/ V- P- t. f. B+ Q - (PRINC)$ X$ M2 R7 \3 B7 W5 Q/ V
- )
5 D0 u( i3 @( X$ X8 z* N+ l" g8 b - (SETQ CMD (GETVAR "CMDECHO"))
1 E! X5 n" ]" y4 j% e - (SETQ OSM (GETVAR "OSMODE"))- \6 J& `, p) F8 E
- (SETVAR "CMDECHO" 0)4 }6 ^- [/ Z) O6 g/ p) Z, _. }
- (SETQ OLDERR *error*: f" V8 t9 s3 L) Y: {4 U! a9 ~+ i8 e
- *error* loi)
* _' q% S& F; [3 Z" g - (SETQ SZ (GETREAL "Size <1>:"))
. l& k. F/ r8 g- } - (IF (= SZ nil) (SETQ SZ 100))" S7 Z; P% j' h* X
- (SETQ G45 (/ PI 4))$ m) J# r# P4 O$ m2 F
- (SETQ G135 (* 3 (/ PI 4)))4 h+ X4 P9 k! r$ z
- (SETQ G90 (- G45 (/ PI 2)))4 x- ^* o8 `; R* u, q- U5 k
- (SETQ G180 (+ G135 (/ PI 2)))
/ E2 N! b* w7 i* u1 N - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
# l& w r3 \6 S9 i. _4 F! e - (SETVAR "OSMODE" 0)
/ J0 V, ]0 h2 ]* T, P5 D - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ))): G; d. O3 K( A: u- r( T, V
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))7 K; n; o- l/ o' U3 S4 u! ~
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))) p3 W. X/ t9 \. T" K
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
+ \; ?6 e) `$ y5 c3 ` - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
' Y2 ^! c g2 C! q, {0 r: s7 P* g - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))6 g3 c. @* @5 U3 }5 c0 k
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ))). ?+ J; D: o) R3 v% M8 E
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ))): j- G3 z: c) ]- r
- (PRINC "\nGoc quay:")! C$ F( C1 F+ g# s
- (SETQ SS (SSADD))
, m- G2 a: T. K0 v5 \ - (command "layer" "m" "Dim" "c" "" """")5 F O! J1 F5 I% i7 f4 n' f
- (COMMAND "COLOR" "1" "")
: P! {+ D* |. i+ F( U - (COMMAND "LINE" PT8 PT2 "")
+ ]- O+ n6 g' M; W* O& q1 O - (SETQ SS (SSADD (ENTLAST) SS))
. g8 R# u3 h% `/ M k) I - (COMMAND "LINE" PT9 PT5 "")/ R1 S, j+ q, p, ~, [' A& s A
- (SETQ SS (SSADD (ENTLAST) SS))* ?0 Q5 D( p% v$ z
- (COMMAND "COLOR" "1" "")
1 I8 u7 _+ `( Q6 E - (COMMAND "SOLID" PT2 PT3 PT4 "" "")1 k1 f; R2 F. W( {; @7 v
- (SETQ SS (SSADD (ENTLAST) SS))
( Q+ F4 u: U. i Z1 R - (COMMAND "SOLID" PT5 PT6 PT7 "" "")$ M2 [0 B, ^- g9 P3 y" t2 O
- (SETQ SS (SSADD (ENTLAST) SS)) _- z* q9 D! w& n) c1 B
- (COMMAND "ROTATE" SS "" PT1 PAUSE)
# t7 i/ }7 A1 j- U7 ]+ n) h( Q - (COMMAND "COLOR" "BYLAYER" "")
1 N7 Q Y' j" g/ c& P& O - (SETVAR "CMDECHO" CMD)
* o% L V, {( @; A6 e - (SETVAR "OSMODE" OSM)1 O8 a( j, t% f/ F6 ]
- (SETQ *error* OLDERR): w: m; a( L6 S1 v( p- K
- (PRINC), }! d" c3 ?) v. f% [; d
- )( r3 S3 k9 q- @) O' M, j9 L$ S
' D5 h' D" z. N1 h% d# ?* {- ;==================================================================================. W$ o) ?6 ~ f" w4 m
- ;================================= KY HIEU TRUC ===============================. O' b) k, _5 ]1 r4 b. B) Y
- ;==================================================================================, Y( T; c; U& l( q
- " B A o* j9 v0 S/ Q2 b- `
- (defun C:vetruc () G" d1 l1 p; z, M
- (setq bk (getvar "USERR3")) [' I ]6 l) n! C( d/ N" C8 L
- (if (= bk 0)
6 Q, ^$ \, ], x, [# p: T: W - (progn+ j0 \" d; r) d: K2 e
- (setq cont "1")5 U' n6 w5 R! s$ h, k) U8 L0 \
- (setvar "USERR3" 1)8 m2 R$ r. U& B
- )
- b5 i' Y' i: |7 c/ d: O2 c - (setq cont (rtos bk))
2 F9 }+ q8 A# ~' P8 \ - )4 N4 J+ y/ p1 Z9 I/ S, J: X
- (setq pt1 (getpoint "\n Nhap diem dat:"))
& E# t! R3 Z; U5 E$ R0 C1 Y - (command "layer" "m" "Dim" "c" "" """")
3 K0 x5 I1 ]0 U1 X0 [ - (command "osnap" "")0 H. m8 a6 ]! b" f$ A
- (COMMAND "COLOR" "7" "")
" z% {2 z, E' c: i - (command "circle" pt1 150 "")6 r) |) |. r9 s6 |6 k: V* d
- (setq pt2 (polar pt1 0 150))
: H- h1 |' `" ^( G* g - (setq pt3 (polar pt1 (/ pi 1) 150)) t# Z5 P5 ?! L. G2 y0 U% W0 U0 Z6 H
- (setq pt4 (polar pt1 0 300))2 ]3 L1 G6 L6 w4 G5 U) N/ I; }) |8 V
- (setq pt5 (polar pt1 (/ pi 1) 300))
! n' S$ f+ j" D. s0 a; X/ J" g8 { - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))% t% g9 S5 l* D. l+ O& M$ w
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
& T( W& M. M7 ^! c c# h1 F - (setq pt8 (polar pt1 (/ pi 2) 150))
/ Q4 x4 n2 J$ l5 `* X$ o- R - (setq pt9 (polar pt1 (/ pi 2) 300))& `( b, V, Z7 ]) M& G
- (setq pt10 (polar pt1 0 150))7 I4 S! }* r& G# y- @0 P
- (setq pt11 (polar pt1 (/ pi 4) 150))) |: w2 C: `/ R; a
- (COMMAND "COLOR" "BYLAYER" "")- y+ r" ?6 H: t5 h
- (command "line" pt2 pt4 "")' \. U' y7 v9 K3 w
- (command "line" pt6 pt7 "")8 e" f$ Z8 R" Q6 m
- (command "line" pt3 pt5 "")
& ^- f; P4 |; ~ - (command "line" pt8 pt9 ""). A) X( U- Z- j1 m9 {! M; X
- (setq dk (strcat "\n Size:<"cont">"))
* {5 x r- `% t) H( t& e% u1 } - (setq bk (getreal dk))
H1 A) }" }) @. Z: k6 n Y - (if (= bk nil)/ k u# J2 X8 J% \& G
- (progn
8 L$ N2 `: y: } - (setq bk (getvar "USERR3"))
* ~* s* Q% C/ N# ^7 g - )/ E& a3 D0 o; U: u6 q6 @ c
- (setvar "USERR3" bk)
4 w9 S @$ u$ x* v a" m- X - )) |7 P8 h7 L( G. x! P
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")+ v3 A S9 a: s1 n) d* W
- (COMMAND "COLOR" "7" "")' v. b6 O) n# @0 P- T( r6 D
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
" G2 Y( O0 \3 N' c( n- {, V. C - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") ' f Q0 _6 F- h6 c. O2 k
- (COMMAND "COLOR" "BYLAYER" "")8 |7 ` H. r) S+ q) }1 d
- )
7 h0 E A# j( H1 y
% c/ a, f! S/ H- ;=====================================================================
+ L$ f: _' y/ F1 O# e - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)9 H; }' k, B9 k6 M. H
- ;
* t/ N& E7 d; C$ q! C: ^& G - ;Jeffery P Sanders
2 G& D! f1 U- I - ;
8 ?4 n+ O9 i# n V, b! G+ [6 H% I - (defun C:CA(/ en enlist tx newtx cnt tp asc note)% D' l+ ~* X1 g, w
- (setvar "cmdecho" 0)
$ B+ Y6 b3 `6 J/ [" O$ d$ @$ J" k - (if(setq en(entsel))
2 x7 Z* O2 A3 f - (progn/ K5 v: i7 Z" S" J8 U7 M: D
- (setq enlist(entget(car en)))6 U& M" H# D& C" u3 `& k- B
- (if(= "TEXT"(cdr(assoc 0 enlist)))
3 H" q3 V% o+ Q7 M5 F - (progn
~. d8 J8 A. p2 o( D3 V+ R+ k$ G - (setq tx(cdr(assoc 1 enlist))
. {4 h; @8 J! H7 F - newtx "" cnt(strlen tx)
% w7 J1 d c! t - note "\n...CASE Reversed. \n ". f- E8 f' K; y2 R
- ) B/ k$ q. Q+ E( V/ S
- (while (> cnt 0)
. q* \2 P$ d- @2 A' y: j; Q - (setq tp(substr tx cnt 1))' y1 z! B7 n9 M; h
- (setq asc(ascii tp))
/ X; Z! E; q% @- U3 Z! C& K - (if (> asc 96)
3 }% m% O; |6 A; \; b& d) q H - (setq tp(strcase tp)): l. W+ h! C a: [4 @. m( u! s6 P
- (setq tp(strcase tp T))
* a) A% }9 Z, _, X3 [3 d - )* L8 X2 T, e7 s9 ^9 z
- (setq newtx(strcat tp newtx))& M% C' {8 d) @: h- \8 z
- (setq cnt(- cnt 1)) I5 g$ e+ }: w9 h# G
- )
: h1 l" z7 z0 T# o2 r- l, \# A ? - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
5 ~ v& w7 v) q- C9 C - (entmod enlist)- H6 F. l s/ d( Q6 o6 n$ S
- )+ [0 O2 w' y* b3 _. Q; l& J1 _
- (setq note "\n....Text Only Please. \n ")4 ?5 S7 Q& E, v# ] M" ?- j
- )% i4 ]" t0 r, v# I$ r0 n
- )
! m! ~9 V4 P, p8 H4 x- @0 e, ?7 y% a - (setq note "\n....Nothing Selected. \n ")% \- [& W! C( F
- )- q$ E- A% [+ m$ p$ T2 E
- (setvar "cmdecho" 1)
1 j% b0 V1 g' J - (princ note)) z+ z5 R" m% a1 y/ F/ e
- (princ)
. P$ `. F% r, V8 }! K; }; }! y - ), m0 Y" ~) }# x8 r2 J% p( F
- # h# S) M+ {' D8 @9 Z# [% G
- ;=====================================================================9 M4 C( | Z1 ?! i4 T1 \
- ;==================== NEW TEXT STYLE UPDATE ==========================
2 R2 K5 Y/ X; X! n( b7 |6 k - ;=====================================================================& S% Y- Q" y/ {3 h2 v. T2 n
- 5 c# ?9 i' k* y- h
- (defun c:nS (/ tdt ssdt sodt index)
. k. M$ |) H! E - (defun ObjName (ssdt /)0 Q! ~) ]) X1 ^$ l+ t
- (cdr (assoc '0 (entget ssdt)))
G7 n b! h5 u - )
3 b; v) o2 ~$ s2 b9 b/ Z - (defun MoPL (ssdt /)
# B& U4 H' m( y9 k. t2 j - (= (cdr (assoc '70 (entget ssdt))) 0)
! C, \; I% S* ?# ?- b - )
- s+ |: r+ D# y4 P - (defun NoiPL (ssdt /)
) @8 }% ]! ~/ W - (if (MoPL ssdt)
7 c" f# E) @1 x w; n9 l" O - (command ".PEDIT" ssdt "J" "All" "" "X")
6 a5 W# M ]" ~ - )
8 L; l& Z }. t* [$ q9 H: s, f6 H$ K - )
; R4 R# l. r- q+ \6 W4 s# d - (defun NoiLC (ssdt /): j" j% Y$ D0 ]1 F
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
" i$ d) ~' P- p( ^" \( D - )
) n( P$ `" m! W* s- b; ~ - (setq3 b9 s' e& S& B0 T ^; g: y
- tdt (ssget)
0 o" Y& J1 G6 g" {. j/ r - sodt (sslength tdt)
3 p; m5 z F- b" e7 h - index 0
% e2 M, [' B d3 c0 t5 w - )
' N- J3 `* l. v5 O6 W - (repeat sodt
4 C) Z. v+ L" i! N" r - (setq3 y; W/ b# l* a. M- ~; Y0 g
- ssdt (ssname tdt index)
+ R! }/ ? `. \6 r - index (1+ index)
1 A' |0 g5 ]. `4 @' ^ - )2 O9 a0 p9 _0 e9 u5 R6 [8 s" O; F C" t8 Q
- (if (or (= (Objname ssdt) "LWPOLYLINE")
" f0 Q6 N l& p N - (= (Objname ssdt) "POLYLINE")
1 G" y: w# Z6 T% x& ? - )
# _# G f% t. R H0 M9 _$ O- G+ [2 o - (NoiPL ssdt)7 ]! D1 z$ C& Z
- ): W, Y1 \3 m9 l; U& H5 G F
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
2 L2 R1 \6 a; }/ D' V - (NoiLC ssdt)
4 @) H& ?1 ]: h1 q* g1 o) Q - )
+ v3 c& G4 z( q: i - )
9 m% J6 z7 N( s; @$ ]8 F8 `3 ]5 | - (princ)
0 l! i6 q3 E% O% l - )
* d* e7 x- S3 r$ y7 b
& @) V% m+ z/ A) d0 x- J& e- ;=====================================================================
% n5 H! v1 a1 Q' J1 R$ t - ;;; AREAM.LSP
3 i2 i8 Z0 Z) y$ @) v - ;;; Function: Calculates the total area of selected objects
2 R/ H" O1 C" [5 y: N3 m" K - ;;; By Jimmy Bergmark6 u4 s( u1 D7 t' X7 E
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved1 L& C3 Y: q1 A( D1 @3 Y* e7 ]
- ;;; Tested on AutoCAD 2000+ P1 h& @# c7 @4 c, [& d$ S0 N
7 E9 S1 _" E& d/ l- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
# y! N. i7 z* s4 ?; B% Z$ y0 M - (defun errexit (s)
" R; g! l9 f) k - (restore)9 k, l. }' D5 y) H* ~0 v
- )6 g" a7 ]0 s% x+ M( a' f
- " E% y3 M. e8 q- {/ j% m
- (defun undox ()
6 R# A, M. W; q - (command "._undo" "_E") ?. Y- t2 S4 T- x/ M0 b8 i J
- (setvar "cmdecho" oldcmdecho)" f! I) ~! A! S) v
- (setq *error* olderr)5 ^1 D# r, ^2 Q+ r5 w' z
- (princ)
6 v. j, ^7 R/ z - )
+ M# C# L4 z* ]: i2 [ - 7 A. k0 \! l1 M/ @3 p8 q( F
- (setq olderr *error*' n$ R0 F& e$ C
- restore undox0 d5 @* \) ~7 }* Z, {* c% K
- *error* errexit. g) [$ ?* d6 f" J
- )
! A/ F( r4 g) | - (setq oldcmdecho (getvar "cmdecho"))4 x% T0 M$ o/ b2 t, U" ]/ V2 u2 X6 G
- (setvar "cmdecho" 0)) j* {" D# S2 A6 X, n4 p
- (command "._UNDO" "_BE")8 N1 h/ E X, P' q& Z y
- (if (setq ss1 (ssget '((-4 . "<OR")8 E6 ^% V9 Q, v
- (0 . "POLYLINE")
, z! @! \- d& [ - (0 . "LWPOLYLINE")) k" a% |4 j. Y
- (0 . "CIRCLE")
- M! } y% v6 T! M/ M$ ~ - (0 . "ELLIPSE")
; U. j0 E8 s, x6 H - (0 . "SPLINE")& s6 J1 k1 A2 F5 }
- (0 . "REGION")- }) o/ _4 N" ^: z
- (-4 . "OR>")
! E. Q' ?3 ^. Q- d) \9 B/ m0 g) B2 D" _ - )" d6 }- f0 a7 v; q* d! C* B9 y& p
- )9 j$ `7 O( F+ p' \
- )
" M; Y! s* @* ~4 y' M: { - (progn
' g, R b2 J8 Q& z* O - (setq nr 0)
8 T6 X0 ]5 s0 ?$ O4 @1 R - (setq tot_area 0.0)" f! Q0 F' }% i9 x- Z. q
- (setq en (ssname ss1 nr))
" g: U, |* k4 ] - (while en1 H p1 B& Q7 C0 z' u
- (command "._area" "_O" en)) [. P% `: d* C& k! Z
- (setq tot_area (+ tot_area (getvar "area")))
7 U- R) X2 t6 w0 Y$ ]# R - (setq nr (1+ nr))
$ ^& f( W2 \& Q) r. q: H: f - (setq en (ssname ss1 nr))
% X! Y! j* u0 w) u - )0 M6 ]4 F" A) X! W0 M: S0 K: Z
- (princ "\nTotal Area = ")6 A, Y+ Z0 g1 m: S; c: \& S
- (princ tot_area)6 D% p2 X" O, G
- )2 [* \: w3 t$ U* C- u! _
- )
: ]7 l. [ N! e( x: g* [; u - (restore)
8 X9 a, |* g: x1 F# F: K - )( l4 ]5 z) h( Z9 E* b
- % q2 U4 F) u# w5 h; H. x9 z
- ;=====================================================================2 Y3 ^; M. U8 K* h0 F$ S
- ;;; By Jimmy Bergmark/ J4 B; Q& c% z: C
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved4 e* B4 m( K6 t1 x
- ;;;
0 v" u0 P& [/ k g - ;;; Created: 2008-03-310 {3 |7 h+ I& q, S$ J5 `. Q- @$ `' P
- ;;;/ l& N/ {4 [" E
- ;;; Convert Attribute definitions to mtext0 h1 f+ J2 k& S
- ;;;
3 [# l/ q. C1 x* j6 T/ d+ e
7 h/ _) u% i5 \" w- {- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
8 g+ y1 h: \* v$ c - (setq eset1 (ssget (list (cons 0 "ATTDEF")))$ { ?& k" M. h7 z
- blkcnt 0
1 r, E" l5 n$ D: D - )) u7 a$ C% d B A
- 8 H! s8 K5 j5 X( w% H) q/ E
- (if eset1$ w: S$ \5 e f' `0 z
- (while (<= blkcnt (- (sslength eset1) 1))
7 f4 `4 O3 B) w% q% M - (setq en (ssname eset1 blkcnt)
, G4 M8 A6 M" o. g5 w2 S: x$ k - enlist (entget en): E3 H! R# K; C3 n0 Y% `) N: W/ {
- ht (cdr (assoc 40 enlist))3 b. Y$ i. Q& g$ w' C, ^6 l# d
- pnt (assoc 10 enlist)
2 q8 p' c$ j0 G6 ~" J4 W - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)' F7 V, N, ?: [6 T; S- V
- space (cdr (assoc 67 enlist))* W' j3 ^. u' D
- )
. m P/ G, k" ]9 o - (setq vl (list `: Z _8 q' w9 ]
- (cons 0 "MTEXT")
4 U4 u3 @# x5 q+ ?& h% E - (cons 100 "AcDbEntity")% S! O" z6 B' W: G! J5 }! ]' T# I
- (cons 100 "AcDbMText")7 D0 ^6 Q8 b1 o% V' j" J0 J
- (assoc 7 enlist)) a- j5 r% k2 m4 F( F1 Z# B- V
- (assoc 8 enlist)! @! v2 {" k) L. v% e$ C1 s( K
- pnt
1 Y9 O" q) L* X% K - (assoc 40 enlist)
& S d6 j2 O6 [$ n# g& ~2 W) N - (cond ((assoc 62 enlist))
7 Q) W0 {! t, W/ I# ^) W( }& N - ((cons 62 256))
3 J% H6 j0 h! x - )% {1 T3 U0 \7 m' j1 D
- (cons 1 (cdr (assoc 2 enlist)))/ X/ d* V5 C0 D
- (if (= space nil), } j% P" a/ K# _( n2 R" X' N. C' m
- (cons 67 0)
. ~; o( ]( P8 l) Z9 B - (cons 67 space)
r8 K' v% @* Y# j& i5 v! j/ g - )7 B4 W# W9 z7 z8 [) E. ?( g: a
- )4 _+ x1 O7 M& t" X
- )7 d" @% s7 N) x/ S4 P) A+ p* I" o
- (entdel en)
, T4 i4 p; c: D9 W. i5 |2 L0 w - (entmake vl). B/ @) J) ?# {7 v
- (setq blkcnt (1+ blkcnt))3 G$ F' a: R' L/ u5 M, j
- )0 d. g! f3 A" X4 k2 s
- )
4 M( n" D5 O+ K g, T - )* ~; R5 ?8 P6 ~5 Q Y+ m4 J+ ?
- / y2 e' c2 T% t- }/ A
- ;=====================================================================
' i; y( n9 s8 Y: X# h# y9 V3 B - 6 F/ h7 ~1 o- X2 m- h6 S
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)! g8 u3 g) x7 \4 l; ?
- ; Khoi dau cua chuong trinh
. T( c( |' M3 s% k - (princ "\nCopy Inteligent...\n")
, X% T- U2 P4 A: g) _ - (setq luuecho (getvar "cmdecho")
# F9 A( m& r# c6 H0 ?4 L3 R - luu *error*
/ Y! d$ h" R3 y0 @& H" K6 Y - *error* ketthuc' T W5 e7 m7 p* N# r" f# h
- cumdt (ssget)
6 V, e% c- U1 i% S - dodai (sslength cumdt)
3 i+ Z0 K& n4 u3 p7 D' y - goc (getpoint "\nSelect base point:")- x" C3 s* W: @
- thoat nil8 l e7 |3 U" D& F8 H7 @
- dem 0; P) y# G* q2 F. Y$ ]+ q: ?
- textxl nil
' [& E- Z9 @) L2 \ - );
' i% P( o! v/ @$ _ - (setvar "cmdecho" 0)
& n/ I3 W9 M1 U( g' [0 w' @, T' R" x" z - ; Loc ra duoc ong text de xu ly. p: m! t8 L* ?$ }
- (while (and (= thoat nil)! Z8 S7 Z- D# R: F# B, A
- (< dem dodai)
" y' E* q+ z$ a - )
" r1 m0 E2 T; q. E. i1 u5 e5 Q - (setq ten (ssname cumdt dem)
& X# e. _5 }; e4 U+ H2 N& B% i& H - dem (1+ dem)$ h" f$ d0 V5 l8 a8 z0 B0 z/ v
- doituong (entget ten)! l+ x& z0 t; Q( F& y
- kieu (cdr (assoc 0 doituong)) 3 Z j: }8 b$ i+ o$ m$ z3 \
- )
0 W1 b& F8 b3 E0 M$ D6 Q8 N - & ]0 g- E% W8 C6 \$ p/ S* E! X: c
- (if (or (= kieu "TEXT")5 E2 C- Z! H( |' i
- (= kieu "MTEXT")
" ]( R$ o4 t b0 J* _& h - )
. k9 c5 b" A7 W7 m3 S1 G( S - (setq thoat T$ f7 j' h% H: m. j1 G
- textxl (cdr (assoc 1 doituong)) 0 o8 @$ c9 k# l" W* ~
- )+ E4 H2 k4 Y" B2 K; }
- )" H; Z" j# v3 C4 k- {
- );. |' Y0 ^) q8 K% e7 J
- (while T
) j0 y6 O" X& `. S/ N1 D - (setq toi (getpoint "\nSelect next point: " goc)1 I5 i& @1 M8 |; k- k! e
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
) B) E$ k. |, {5 L1 S5 v - dem 0
2 N# Q- O/ [ `: F; f7 R8 T - )
* }, c2 [& @, j9 W" a - (while (< dem dodai)1 {) ]. \3 L: I$ U6 n7 L% W
- (setq ten (ssname cumdt dem), Y/ w+ |/ e7 p- C* W; u7 P1 @
- dem (1+ dem)! q/ F3 O. h" f! H
- doituong (entget ten)% g; e' x; D4 V
- kieu (cdr (assoc 0 doituong))
; A/ q, R3 c$ M# G7 J8 ? - )) t/ c9 ?& S! M* ^! ?/ o
0 x+ V! y d* R( x- (if (or (= kieu "TEXT")
0 |7 [" t8 E% M5 a# x% D - (= kieu "MTEXT") , S+ d0 }3 e, k% ^* V) _- q% f
- )
& E/ p$ o' e0 ^5 y$ V - (doitext ten)# l$ i' L. U0 |; q; N* k& d' U
- (copy_dt ten)
5 l a3 `0 r$ [5 C6 w
1 T! f! y/ N- R% k0 p: E- );if
- \1 @$ X* O c* e! r5 o- J% H - )! ^2 h( F: c5 }6 s% L/ \9 X/ f
- );while
0 r2 M; K! T: v+ u - (ketthuc)
( V' G' H7 @1 B p& g+ U' K - );defun
1 m' V& U. t, H+ m. t) Y6 p2 d ~ - (princ)7 u/ v/ e5 [# m7 [) n
- 2 N& M N% V7 B6 d
- ;=====================================================================: n5 o- [! t8 t3 K6 n; g% Z
- ;;; By Jimmy Bergmark
! W7 F B/ H2 @ - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
! z1 q7 l! c6 ^2 M/ _* h: g5 a [9 T - ;;;' B. c' E* k0 Q( m+ C( t' d
- ;;; Created: 2008-03-31! _ a/ D' j" T( P5 O% P0 k
- ;;;) ^' f) \# x% q( ~; c7 R5 Z- T+ D. A
- ;;; Convert Attribute definitions to text: h/ C$ {3 H2 v/ e- S
- ;;;
3 t8 b2 O L3 i - ; M- W( K2 ]2 U6 t
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)1 e/ c- ] z5 O* ~; M9 u5 _7 a0 p7 U
- (setq eset1 (ssget (list (cons 0 "ATTDEF"))): W3 `( G w' {
- blkcnt 0( f8 {& I4 z6 o8 P) v* g( Y$ ]
- )
% }3 _" R2 t' f' p$ Y% d: Y
: f. F' a5 o5 x. l4 t! x" q) R- (if eset1
1 F8 @% U, E0 k! W' w - (while (<= blkcnt (- (sslength eset1) 1))
% F- U$ k B1 m5 _$ `. A; l - (setq en (ssname eset1 blkcnt)8 p, Y8 X1 p& S+ q
- enlist (entget en)4 s6 W# M) E! ~ Y/ o3 w u8 y
- space (cdr (assoc 67 enlist))' o0 x% Z5 ?! a
- )
i$ z3 E3 o% [ - (setq vl (list8 @" r4 \+ _6 n4 x: q
- (cons 0 "TEXT")
2 K; l6 e& p' z# X- u1 I& M2 A; e - (cons 100 "AcDbEntity") O0 ~) G4 [6 o/ [2 z0 v# l. x
- (cons 100 "AcDbText")
8 i' `) M5 c* [8 z4 Y+ b - (assoc 7 enlist)) y) \5 N& ?5 i3 ~4 d
- (assoc 8 enlist)9 c8 k- Z* E3 t. t3 w
- (assoc 10 enlist)2 ~+ I; H7 T" m
- (assoc 40 enlist)
6 N& }0 l' X+ D3 b( A U - (cond ((assoc 62 enlist))
* W& o2 E9 k. d4 s1 W - ((cons 62 256))
+ k! r/ \. a" W) `: X8 {8 F - )
7 ]' ?" m' d: j+ m; j* Z - (cons 1 (cdr (assoc 2 enlist)))
5 N$ o, d0 T2 v3 J: L8 l% r - (if (= space nil)
+ ]# f1 K' P0 W" M! p* Q5 p" e - (cons 67 0)
! k h9 \. O* E$ \* W - (cons 67 space)
( Z: \% o: J: W- P6 t) g - )( }% ?* t7 {! E B4 D
- )/ ~& V4 _# A8 X; g
- )4 a$ @( I7 f9 I5 @, a5 {. R
- (entdel en)' I& o1 h- B2 ~
- (entmake vl)
6 z$ J( X( X/ _# I( ?+ }/ Z5 U - (setq blkcnt (1+ blkcnt))
, i7 o9 S# c; l4 W - )$ u6 d8 p$ i) h5 u
- )
) M: I+ ]7 ]; i6 Q' } - )
3 Q. L- K! B3 Q% h1 T) E - ;=====================================================================) v7 I# A2 h9 p( @7 G7 k1 Y
- ;============================ Doi Truc ===============================3 o8 x" J) G# f: g1 N. [' m' I2 i$ f
- ;=====================================================================
" h" a, s6 I+ A# l" ~6 P3 L - 6 Q- U, y/ [: \, Q
- ;=====================================================================
; q" t1 O' T1 e/ ?; Y - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============% V: L' x' U& r c% D1 ~
- ;=====================================================================
6 H- z& j) S: o5 H: a - (defun c:ga1 ()
& V+ y' ^5 X( X2 j - (setq a (getpoint "\nChon diem: "))- T3 k) H2 f8 o" k7 m
- (setq b (getpoint a"\nChon diem: "))
% ~+ d$ K$ Q5 h# S$ D - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); N( A3 N3 R$ e/ I+ [
- (command ".circle" c a)
4 n9 e2 o x7 W& R3 f - (command ".line" a c "")
/ J/ Q% ^) V9 X- d' B; o" x! ~0 ` - (command ".array" "last" "" "p" c "1" "" "")9 O+ e8 |$ w7 W% @' p7 ^
- (princ))* V# \! T# G) @; o
- , R5 A/ z7 j! w1 h! E; M6 q7 S$ N( c
- (defun c:ga3 ()
$ x' v* ^( O- Q$ H - (setq a (getpoint "\nChon diem: "))
5 o+ |5 [: e& w1 q0 A3 O1 P - (setq b (getpoint a"\nChon diem: "))
' \7 M' c- j" J) F6 B7 V& c - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' F7 |& n, D2 V# n# X1 k( T
- (command ".circle" c a)/ p* @ z/ C8 ^3 ^
- (command ".line" a c "")- k8 G! X, P0 n- l c
- (command ".array" "last" "" "p" c "3" "" "")
- C" D0 O8 e" Y; l - (princ))
) ^. g. |4 ^; y" a7 [+ [$ e- J - ) R2 n1 O8 ~) M( `
- (defun c:ga5 (): [4 p5 y |6 g- p
- (setq a (getpoint "\nChon diem: ")) ?* ~$ B: X) {3 H% ~% i
- (setq b (getpoint a"\nChon diem: "))7 L$ J( J& _3 b2 x
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) Y& Y+ q+ v/ G- A4 \
- (command ".circle" c a)
% k. C0 X1 u- Y3 y( n0 k# { - (command ".line" a c "")
8 R* T8 Y* M2 u8 x: E - (command ".array" "last" "" "p" c "5" "" "")
~, k1 p' ^/ b3 e - (princ))# s7 x! E/ D0 e' ~
- ' t8 @' z7 u1 ]3 d2 d5 y( u
- (defun c:ga7 ()! z0 Q2 n- i/ c
- (setq a (getpoint "\nChon diem: "))
! [2 o& k5 P, X# Z+ G: Q. ^ - (setq b (getpoint a"\nChon diem: "))
8 X% n% R& n' I% B. K5 T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ g( k! I2 W3 t* \( S& }
- (command ".circle" c a)/ W+ ] {, z6 v5 |6 f% E8 l3 S
- (command ".line" a c "")$ {$ @& F8 |# D6 {8 k
- (command ".array" "last" "" "p" c "7" "" ""), \ b. U+ Q" g8 u; U. o4 f, h; [
- (princ))
9 Y9 a( W+ k# N - + G: {5 W9 @( r$ y' Y: c; P
- (defun c:ga9 ()
0 I! \% T& [8 x' l - (setq a (getpoint "\nChon diem: ")): q% y+ g5 Q9 u! Y
- (setq b (getpoint a"\nChon diem: "))
: _: ]- e2 }! o" U$ q) b3 I5 o- |8 m# ] - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
b. M& i9 ?7 h( A8 y - (command ".circle" c a)
4 a1 s5 g/ _1 m6 Y - (command ".line" a c "") ]/ h3 p% G& z
- (command ".array" "last" "" "p" c "9" "" ""): p6 @& w2 _) H% |% {
- (princ))% H6 D, H& Q) {4 O0 w0 u; r
/ h, o1 ^9 Z; ?! K+ n; z- (defun c:ga11 ()
2 v- T' J& Z! F6 y - (setq a (getpoint "\nChon diem: "))
* Y8 a7 X+ z" s( L- ]! A - (setq b (getpoint a"\nChon diem: "))
2 W9 s+ l# E3 t! w! w - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; Y/ u H! U5 e( x4 R% m - (command ".circle" c a)
( ~% J7 o6 |; N - (command ".line" a c "")9 `9 w9 J2 H3 [( O
- (command ".array" "last" "" "p" c "11" "" "")
, a: J" y* W2 L - (princ))
/ ^8 J7 t# ?( U0 f% H6 m% r0 S - ! v6 B& g6 }. E7 P) m/ A- s
- (defun c:ga13 ()) L" _' w2 w( l# ^6 o7 g- r) G
- (setq a (getpoint "\nChon diem: "))
/ M2 Q/ O9 \4 I9 f - (setq b (getpoint a"\nChon diem: "))- z. t" D7 g L
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: t7 a& S! {( s - (command ".circle" c a)
- N5 L" T+ W1 U9 n: h8 v - (command ".line" a c "")/ l% v# E2 f6 i; a2 N9 Y
- (command ".array" "last" "" "p" c "13" "" "")# C: R8 M6 r) R5 T8 d. {9 r& r
- (princ))" ]$ @, A; h8 x6 Z# N5 y
- 7 q7 N: b3 t4 f n4 {/ A. v
- (defun c:ga15 ()5 y" O/ `+ R1 A8 q2 u# i; p7 m
- (setq a (getpoint "\nChon diem: "))# e3 G4 u4 P& m
- (setq b (getpoint a"\nChon diem: "))
# C; ~- [" U. G& V" ]: { - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 S+ z2 B+ `0 l7 E - (command ".circle" c a)( F% o+ h3 l; o
- (command ".line" a c "")- j2 m+ Z7 ^0 q+ O
- (command ".array" "last" "" "p" c "15" "" "")8 b3 |: g) l! S3 N, @4 s1 L* h
- (princ))# n }6 r' X- f' ]* h& V
' W- }& ?9 v3 M5 Q$ `- (defun c:ga17 ()
+ I0 \7 `6 Y4 K - (setq a (getpoint "\nChon diem: "))
% z$ c7 ^' r! j' Z* q& ] - (setq b (getpoint a"\nChon diem: "))
( b( A+ g, v' N" H. o( } - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 F M; W8 C+ @3 m; P4 }; n
- (command ".circle" c a)4 {* ?3 a2 l) T" F" [# z" C2 V+ j
- (command ".line" a c ""); U% f" B, U$ d" j4 C. @
- (command ".array" "last" "" "p" c "17" "" "")+ n$ d$ |1 D1 W! I
- (princ))
. N( M0 j9 Z: \8 w# m - , H% j$ W$ Z1 V' n1 n2 T* ~
- (defun c:ga19 ()5 y- I7 b9 R! g. N1 J
- (setq a (getpoint "\nChon diem: "))
; D* M- p9 _8 b4 S% {' s# M' { - (setq b (getpoint a"\nChon diem: "))- {$ B" e4 L, x1 C) A# O5 \
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' m, [6 D& `6 \* ?% `, r0 c% x - (command ".circle" c a)! I# A6 t+ n& N0 {8 Y$ o2 _
- (command ".line" a c ""): F! e( S& x* P
- (command ".array" "last" "" "p" c "19" "" "")
! k) v3 x2 X! F1 ~4 h0 i - (princ))
u/ T+ r% R6 y7 A: C
* F: Y1 ^( A8 h) S8 }0 p- ;=====================================================================# l$ f. d5 Y4 B
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
; S4 n3 B! _ ], Y - ;=====================================================================# r, J# R( B/ |8 g4 I
- (defun c:ga2 ()4 Q2 C. g3 \- \
- (setq a (getpoint "\nChon diem: ")). q5 }. c$ c; l) D i
- (setq b (getpoint a"\nChon diem: "))3 N# [2 _0 {+ x+ E5 U' q H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- G. [3 e5 z% y9 p0 @
- (command ".line" a c "")4 j6 t6 I( F9 v, M7 S& v
- (command ".array" "last" "" "p" c "2" "" "")* H$ }! ~. j4 M0 L, n) D
- (command ".circle" c a)
# c- _( c8 d1 Q+ F- m - (princ))
( t2 F* G2 _" r4 B8 m - ( P2 C, I3 D; w/ @$ L# v: S
- (defun c:ga4 (); r2 i, R/ h% K1 c3 T W' L& S
- (setq a (getpoint "\nChon diem: "))
' l4 ~$ B0 w8 [( ~ - (setq b (getpoint a"\nChon diem: ")). L6 I& B1 _& S! O2 N5 T, h: I1 {
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- [& l; j+ _3 ^+ X- i+ ~& Q - (command ".line" a c ""), \# ~) M8 J6 h& h
- (command ".array" "last" "" "p" c "4" "" ""); r0 _% O8 R7 G( Z! V
- (command ".circle" c a)8 S) ^) i$ }: X; A9 s
- (princ))
" B" b: n) P) y1 j - 3 J: j+ s, ~' C# z: I" `& X
- (defun c:ga6 ()
9 N9 g7 t( L: K+ ]6 B8 r% T* G - (setq a (getpoint "\nChon diem: "))
. N0 `7 |% h4 q - (setq b (getpoint a"\nChon diem: "))
! ~( Q; F1 @( G. P" r - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& n$ O. M. I" D% P; N - (command ".line" a c "")/ p7 f( ]* b; C( p' {
- (command ".array" "last" "" "p" c "6" "" "")
, i) I1 _* J' `6 t* B7 K1 j1 a2 P - (command ".circle" c a)4 q+ B2 v, e) t' i" p
- (princ))
% Q0 x" S7 k2 l. {7 }5 u' u/ k9 z+ `
# [7 Y6 U! U# Q) x9 N( l- (defun c:ga8 ()5 N( ~! J; g" K+ H9 Z$ F
- (setq a (getpoint "\nChon diem: "))
' h; q2 M1 F& S K - (setq b (getpoint a"\nChon diem: "))5 R0 g; R+ w+ }
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 O+ V7 T; Q- z$ q: V+ L: v8 t' B - (command ".line" a c "")
& M( `4 M% L5 j0 t2 _" H0 W - (command ".array" "last" "" "p" c "8" "" "")0 ^+ @. ?( {4 N+ v6 t
- (command ".circle" c a)6 H5 N1 K8 L0 |/ D; F
- (princ))
O& z; {$ O! K* r9 i, t M9 @
. i O/ f2 ^- I; ]- N- (defun c:ga10 ()
. L9 x0 H4 R8 `) r' L9 i - (setq a (getpoint "\nChon diem: "))6 }3 L# D5 _8 [/ f. a! M
- (setq b (getpoint a"\nChon diem: ")), s6 [& `/ f) m
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 j+ H1 U3 R4 H3 T9 E - (command ".line" a c "")! k, Z4 E- P1 j+ N7 L- Q1 m+ t
- (command ".array" "last" "" "p" c "10" "" ""); b2 M$ v9 v# ~/ d
- (command ".circle" c a), r o* [( `. n* }8 ]: z& r' \
- (princ))9 U h6 [5 p9 a
! m; x+ q. K& Z; E- (defun c:ga12 ()5 [0 Q( P% x3 t Q; \( |3 g
- (setq a (getpoint "\nChon diem: "))4 ^! _+ q- N& |
- (setq b (getpoint a"\nChon diem: "))
% [- d- r9 C5 k3 z6 R: ` - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# ]4 n$ k: T' H, D5 \9 |* ^, u# q - (command ".line" a c "")
5 D* X7 B. r m% z% w - (command ".array" "last" "" "p" c "12" "" "")
2 o! ?5 c5 e. d5 ?4 |, E - (command ".circle" c a)3 V9 G6 `2 G3 Q4 L ]
- (princ))6 w* f4 X4 ^% c
- " v4 J& ~9 l/ K6 o
- (defun c:ga14 ()0 r$ k" H5 M, r! k, Q" n
- (setq a (getpoint "\nChon diem: "))8 A6 _* t `* b% F$ }5 `* A& B/ o
- (setq b (getpoint a"\nChon diem: "))
; R% [8 u2 ?2 [/ x: o6 b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ |* S1 o3 U# i+ s" }: M1 u
- (command ".line" a c "")
1 X9 D! L# s' a8 F( y - (command ".array" "last" "" "p" c "14" "" "")" e3 \! h1 g$ ~) ]/ X) g& O
- (command ".circle" c a)6 |* P' U' R4 K5 I' p) C. K
- (princ))* Y( z# Z4 v1 U8 c
- 8 z( c- I5 M; I) @1 H: a3 G
- (defun c:ga16 ()
5 D' ?! b3 u7 M# G! G7 L! I - (setq a (getpoint "\nChon diem: "))
6 [! |# W% K0 u& W - (setq b (getpoint a"\nChon diem: "))
) W7 ^) d+ [/ B' W( f2 } - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 h3 I8 r7 x8 v& l; ~" u
- (command ".line" a c "")
) c# Z* ~2 p D% Z - (command ".array" "last" "" "p" c "16" "" "")$ p6 U f X' n- Q. Q" u, k" |
- (command ".circle" c a). p! Q8 @. R- l- D7 k
- (princ))( k5 G# ~5 ` `( L2 P) c
- o* ?2 A+ F$ n4 m9 R- (defun c:ga18 ()* h% E- r/ R' w! [# z9 j2 N
- (setq a (getpoint "\nChon diem: "))
' R7 |* G* ~( t- v - (setq b (getpoint a"\nChon diem: "))
. k: n& h/ E5 Y3 `% k - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( |7 P% l1 d2 A6 Y' |( v- `
- (command ".line" a c "")
2 E) E$ @( A! |# ?7 {3 T/ t$ o3 ]- k8 G - (command ".array" "last" "" "p" c "18" "" "")4 f/ O; M% y, b/ }/ ~
- (command ".circle" c a)) S# g4 v/ |5 B5 A
- (princ))7 Y/ q4 i- w D6 q! M
- 6 U: h/ A8 ~" P0 y7 H
- (defun c:ga20 ()
- [; y' B6 s! E# T+ S: |8 _ - (setq a (getpoint "\nChon diem: "))
$ I. C* l- ?' W* W1 k. R - (setq b (getpoint a"\nChon diem: "))0 j. @$ D$ e1 y8 A1 F# d) ~6 L% W2 r
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 [' A7 \5 Z: d7 P9 D! h - (command ".line" a c "")
. C( N7 k/ o6 \' `8 |! O+ V5 A - (command ".array" "last" "" "p" c "20" "" "")
& |* v2 v1 C2 X2 }- E - (command ".circle" c a)8 P7 T! N2 w0 t1 B2 I
- (princ))
3 h7 ?7 }$ D2 R' K( X* ? - # @- K; v. l! `% F1 s! W" y6 Y
- ;=====================================================================, G( O# X5 B. H' u& g
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============* j9 P9 m4 ~% D
- ;========================== 06-11-2016 ~ 18h00 =======================
, F. U2 B7 L3 H' E/ t& X. o - ;=====================================================================
t: X* Y) G9 x b: [, n - (defun c:ga ()* f7 C2 O) b" W; U
- (setq a (getpoint "\nChon diem: "))
' C3 F# C0 p U, T9 b# Z- {/ i - (setq b (getpoint a"\nChon diem: "))
! ]0 F! R- U$ M: T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); @. A( Z/ Q6 |5 l9 Q5 j" t) t
- (command ".circle" c a)
! D% f2 ~: ~: K1 n4 x - (command ".line" a c "")1 Z: r' Y, [! r( n8 z
- (command ".array" "last" "" "p" c "NUM" "" "")! D6 o" ^4 ]" f5 s( r8 ^4 q
- (princ))3 p3 D; g( C/ l
- ' W8 a* |3 }3 A
- ;=====================================================================
2 }3 h4 M& j+ K3 [ - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============+ \. A5 {! S0 O' {* ?- I, C
- ;========================== 06-11-2016 ~ 18h40 =======================
$ Z5 S0 L, e7 E: @$ X) n: u% _0 e2 J - ;=====================================================================
7 p2 n/ }3 |: _; @8 q
0 B' s/ u2 s5 K, L5 i- (defun c:hoathi ()
( G% `+ v# x* z) C2 _ R: n, o8 a - (setq a (getpoint "\nChon diem: "))
5 b8 e6 A/ P) {( _; h - (setq b (getpoint a"\nChon diem: "))' P2 O, L A2 \, I, Q
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 M. ]7 o5 O, `: F0 b/ }) m - (command ".line" a c "")$ Y& E M- |4 q+ t0 f1 L2 e) W, W* b
- (command ".array" "last" "" "p" c "NUM" "" "")
1 ?! d# h6 _( A6 A# Y - (princ))
) I# `5 F, `/ r: e- \: _4 y; a+ u' O
; S6 ^6 P+ V- G" t8 q* q! x- ;=====================================================================
( T" E3 i3 i" d) g4 a. r& s - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============" p: x2 Y# n6 b$ Y, p) }4 r( J
- ;========================== 03-11-2024 ~ 19h33 =======================
: M4 z1 M2 g4 f y! U) i - ;=====================================================================% a6 ~/ {! s& D1 N' I( o' q$ L% a4 Q
) l0 h/ F# n4 |6 y* @& _3 {. p- (defun c:cung ()
- t6 g$ V0 D# } - (setq a (getpoint "\nChon diem: "))
0 Z# r* V% t4 f2 ~ - (setq b (getpoint a"\nChon diem: "))
" d8 y! U, I ] - (setq c (getpoint a"\nChon diem: "))1 w6 y0 F' r" @3 K' J
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) s# p1 E; @3 m9 Q* Z2 _7 _) x
- (command ".arc" a b c "")) U# K. ~) V) _ x [, p/ V
- (command ".array" "last" "" "p" c "NUM" "" "")% A0 I" j$ C5 C
- (princ)): n5 }- b7 P( N6 T" N; Q( J
- ( B* r$ P9 }! @; \
- ;=====================================================================4 W) j7 H( x0 |& O3 D: Z
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
6 F/ X. Z& u2 u - ;========================== 03-11-2024 ~ 20h02 =======================
2 b2 w% q# [7 F' i, F) W+ H3 Q. i - ;=====================================================================
1 Y; _. e/ v* u4 w, R6 [- y& L' k
, F. q" x; |/ U6 e& t- (defun c:hecloic ()
0 X. F1 H1 \2 F+ d) h" s - (setq a (getpoint "\nChon diem: "))
1 G2 C& |( L* k7 u3 P1 |9 {) w - (setq b (getpoint a"\nChon diem: multi "))0 s* |: R- k8 ]1 n
- (setq c (getpoint a"\nChon diem: "))(princ)
! v* ]! F; E4 j' o6 f - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 i9 k0 c5 Z4 n- i& F1 s - (command ".arc" a b c "")
# B/ U4 v3 B* I0 o5 Y - (command ".array" "last" "" "p" c "NUM" "" "")
% S. M. A) l$ x, J# b; g - (princ))
# \+ L3 `- B' u6 X9 M8 T9 s3 e3 M
, Z! f) A5 T; A% a( n C% ?& ` ?- ;=====================================================================8 d: E2 B$ o1 C1 o4 y" C
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============4 E! l$ a4 }6 T* t
- ;========================== 03-11-2024 ~ 19h38 =======================' E+ |9 p1 y% m2 Y1 A" O( J
- ;=====================================================================
/ j6 {! V, u* f+ [! ^: v, k
7 S/ b3 k" E' G. V. Y- (defun c:gay ()8 [' m4 t8 S: W* G9 y( z0 b
- (setq a (getpoint "\nChon diem: "))
8 d l" v. Z. I& W$ N3 u9 S3 ? - (setq b (getpoint a"\nChon diem: ")); U+ x* o4 L- P. L
- (setq c (getpoint a"\nChon diem: "))(princ)8 F2 R1 T) d- Q1 v/ x, p
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), R3 I+ r# V# ]
- (command ".pline" a b c "")
1 A5 M, P$ b) l- q; T - (command ".array" "last" "" "p" c "NUM" "" "")1 `9 K8 a! E% x% J% U4 c
- (princ))1 X% K: g) _3 S9 D" K
. C7 c" f! a5 Q& C+ u5 b8 F7 C- ;=====================================================================+ Q* r1 x# w$ D( V
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
) O9 e0 X0 k$ T0 }. W% B2 e- g- n - ;========================== 03-11-2024 ~ 20h02 =======================
0 q- I1 e; Q! F g6 t$ b2 e - ;=====================================================================
- ?. B5 m6 f5 V) k
X7 g' N% p! w* j2 {- (defun c:hecloit ()
9 p5 K8 A( J _ - (setq a (getpoint "\nChon diem: "))* W5 P. H' f7 l+ k4 Y
- (setq b (getpoint a"\nChon diem: multi "))2 k. a; N( Z. b/ q, |) W% Z
- (setq c (getpoint a"\nChon diem: "))(princ): D- j" e8 z. ~' j+ }) [0 `1 Z
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) u( V& f# ?3 \' t2 H1 o6 @: f
- (command ".pline" a b c "")
5 u! j4 q5 v7 S+ h C& B P" i - (command ".array" "last" "" "p" c "NUM" "" "")
0 R( Q, q* n, k& | - (princ))
+ j2 m# F# K9 B
6 I4 E- r8 B0 c2 h: ~- 7 O; {. G( {! A0 c& Y. _
- ;;; ============================ Merge Hatch =============================
! ^9 s/ I( m/ M9 a# i, O
c0 I6 B$ B+ @4 K# b. Z- (defun c:mh (/ ss entht sl i dt dtht)
7 C( p2 ]( ]. i2 }" d& C
2 G8 B- o# e4 j3 I7 m- (princ "\nMerge Hatch - free lisp from CADViet.com")
- _6 G4 t. S9 s3 P
8 l- u# z+ j |. S- \1 d5 L" f- (setq& F8 G& r# V4 p
- ss (ssget '((0 . "HATCH"))): O2 ?5 G7 {; H' J+ m4 B
- sl (if ss& p* i% c# ], A
- (sslength ss)! n6 _9 D0 F ^3 K G) n0 O
- 0
* X' v. {* N' y M' E8 U; [ - )
% ^* Q- \0 R# m' }. }1 h - i 0; g- u' O7 e5 ]$ y5 I0 A( R
- l 0% m2 e( O# c1 X) G% o3 n3 A
- )! J" c, k2 k5 G+ X
% v1 I& {! |! G4 w$ K% O- (repeat sl, T+ u. P% Q v* A' F
- (setq3 x+ C8 c9 {: Q0 X2 |6 Q
- entht (ssname ss i)
' B5 m3 @3 e' S+ v8 ^. k( y, q8 L - dtht (getbdata entht)$ I% Q$ W+ S% {. ^3 K8 n: s( ~
- dt (append dt dtht)8 T" V/ Y% o( B1 n0 _0 b
- l (+ l (cdr (assoc 91 (entget entht))))
h8 Y7 e9 p4 u5 I1 U7 p - i (1+ i)0 {+ P! o7 W& |
- ): q) L$ Y1 `: U2 x$ Z- R
- )" o: L+ @ x; P, x% R, B' K
) }5 i9 I2 p7 j" b( ]; J- (setq ent (ssname ss 0)
; ]. i) l, g0 F& w( z- Q - ss (ssdel ent ss)' x3 q0 F/ e; r- [' v
- tt (entget ent)2 C L7 R& h# ?" G# b& h
- duoi (member (assoc 75 tt) tt)
$ c: u+ M! i! e9 M' J, P5 D! M. M - dau (reverse (member (assoc 91 tt) (reverse tt))), f+ K( Q$ T0 X) {
- tt (append dau dt duoi)
D( `1 z. b; Q/ h: h3 T/ ~$ X3 B2 r - tt (subst (cons 91 l) (assoc 91 tt) tt)
9 j% u8 b6 u; |9 D - ): S0 c+ P# t1 k4 j! n
- (entmod tt)
! g2 f7 X# h- N5 `1 n - & b! \' G; @3 I7 O5 i
- (command ".erase" ss ""). Z) G( I- |) q1 e# E% r
- (princ)
x1 Y; R# P' r1 ] - )" @6 U/ Y7 u8 X+ i5 O: E
$ G" Q( H( }3 b- (defun getbdata (ent)
" L% U0 Z: K6 I( n) I - (setq tt (entget ent)3 C ?, L/ W( Z; J: P7 ?0 E
- tt (cdr (member (assoc 75 tt) (reverse tt)))( L/ [4 C$ a$ o, b- p) u/ P
- tt (cdr (member (assoc 91 tt) (reverse tt)))
! u# T! ^8 x [0 D7 u5 w |6 L* O, E - )* E! k, k* D. k7 _4 ~+ W
- )% I3 X2 X* S6 S
# H. `$ `0 h( W0 {1 R- _- 0 i+ Z8 K9 I! F' v6 d& V& w+ l
- (princ)
* a& D5 M6 |/ }" F3 V6 E- i! o - % a* E- c s" }$ W- t( G
- ;;; =========================== CAC LENH LAYER ==============================8 A: L: ]% N9 @6 c+ [) j
- ;;; =========================== Layer hien hanh =============================
6 \7 e1 H% O0 P1 T" p0 N! I# S1 C
4 n/ Q+ S. _" j8 K1 E( n$ s9 m7 M- (defun layset (/ LAY) (setvar "cmdecho" 0): u4 R K+ w2 P2 q4 ], R0 C
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
- ~ c7 W4 o0 O- Z* C' @ - (if LAY (progn
- l- _4 Z$ G* w8 K# s; T - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
" D" }+ a9 k% l K6 s - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )4 q. o0 r# i& [; E
- (progn
: `# u6 S8 o1 C( y/ y - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
- S+ G: h! s B5 F( P - (progn
1 i7 _* j* ~* ]. ^ - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )' m3 K9 Z. Y1 M$ R& k: e2 [
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))& \5 f! Y& _* c; G3 o/ P1 J6 X
- , Z4 d4 n2 M: P* l( h! v( w
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
$ d+ e/ N: Q+ R: C P+ @
$ ^: x( H- v; c y+ ?- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
: f' G9 a5 D$ M1 X& @ - (if (not (setq SS (ssget "i")))
% {% W% R& L1 K3 m - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
0 ^/ V4 B1 B4 O3 M - (setq SS (ssget)) ) ) e6 r& v: n9 j$ c h
- (if SS (progn
7 i# f5 [, L' O: N: N, z8 h - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") 9 O0 P1 T3 q t0 {9 W
- (if (> (getvar "cmdactive") 0)
, A3 ~0 K2 b' e' u - (progn; B+ @- n( D% y6 T4 g
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) ) g$ `9 ?9 Z; ?4 ?4 b* a
- (setq SS nil) ) (if (> CNT 0)
5 I9 y: h4 ?( @2 `% N& D9 f - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
Y* n( \; e6 v r- Z) x - (if SS (progn
' e- l$ {4 L$ ^# K2 n - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
7 r4 o$ D5 _! n" u r: { - (if (= (sslength SS) 1)% P) E! _' V. Z0 M3 m: J
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
* ^2 Q+ j( _% n3 u/ h2 A7 `4 ~6 ` - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
. H. @. Y4 R! S - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
% [ S9 [$ S5 q: s - 3 n! s2 _% C, [( a0 f: \
- ;;; =========================== Layer Iso ===================================
1 u0 B0 F) R. Q" k) } - 5 S+ ^- O& J. g0 O3 m$ z
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)5 S1 K8 [, m/ }8 l. s
- (if (not (setq SS (ssget "i"))) (progn, A6 n3 P8 O7 N4 Z4 M
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
& P4 {6 S; j; U' L( W9 l* R6 | - (setq SS (ssget)) ) )
+ }) [2 v R7 W - (if SS (progn (setq CNT 0)
: L" y, B. d; j7 v+ z - (while (setq LAY (ssname SS CNT))
) s) o4 g# T5 f% ?. u' j - (setq LAY (cdr (assoc 8 (entget LAY))))- k( ~) ~6 N. S' @5 H+ ~; h) b) y6 T
- (if (not (member LAY LAYLST))3 d6 `7 r8 W* p& @; h, ~4 N
- (setq LAYLST (cons LAY LAYLST)) ), n9 Q# L2 ~" ]- ^4 t& |) Z
- (setq CNT (1+ CNT)) )+ y2 n* _* W, [3 F, Q: ?& r- w
- (if (member (getvar "CLAYER") LAYLST)
) A( b* [- Y6 g! }$ D2 P - (setq LAY (getvar "CLAYER"))! ~# W% r. \( Y& A5 Q
- (setvar "CLAYER" (setq LAY (last LAYLST))) )! _5 O4 L0 Q/ C7 M( E/ q/ }6 I
- (command "_.LAYER" "_OFF" "*" "_Y")
$ P8 r4 e# V9 x0 X5 o7 @& K* W A - (foreach VAL LAYLST (command "_ON" VAL))5 G/ Z! _, T$ y, T/ }2 \
- (command "") (if (= (length LAYLST) 1)$ o" e5 q( p# l
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
% X& I% w0 h8 M7 B - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "/ z0 s1 p. s4 ?. g. B2 s
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
) Q( O4 g. H7 L; d - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso)), y8 `/ K) n) u% K2 V) q) \& V, k
/ @5 l' p2 e" Q. M- ;;; ========================= Layer Match ==================================
; z% U/ l5 P: T - + a- ?3 n K( v% T! k/ v. j
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)1 Z' P$ G6 x. w0 N2 l0 X; j7 k
- (setvar "cmdecho" 0) a6 i$ G' _4 N# D* V
- (if (not (setq SS (ssget "i"))) (progn/ K2 y1 h' i# X" [6 t Y) O1 M
- (prompt "\nChon doi tuong muon thay doi Layer : ")* X0 p6 z V) F
- (setq SS (ssget)) ) )
- R {4 G4 S7 O$ W - (if SS (progn
( y1 P* [1 M. w" z+ f - (setq CNT (sslength SS)): i% G/ R0 e0 A# j5 o' `' M
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
5 T n8 a; X. a7 F" q2 r* { - (if (> (getvar "cmdactive") 0) (progn
1 b$ @- j9 U% G% \( j8 J. { - (command "0,0" "0,0") (setq SS (ssget "p")3 ]1 ^5 Q5 A5 d* G0 z: n5 Y
- CNT (- CNT (sslength SS)) ) )
' Q; q3 m8 ]8 K0 w8 [2 V( C: M( l - (setq SS nil) ) (if (> CNT 0) 9 L+ A0 Y' n! t: R$ y
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )' v" ~3 B: Z/ G4 Z+ L1 d1 K3 A# V. g
- (if SS (progn
* y1 y4 P5 E/ l) M( S; ? - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )& P- b) t. @1 ^" ]9 F6 i
- (while LOOP (cond+ _5 a0 z5 s z
- ((not LAY)
$ }+ M# H' P8 c: Z0 m" |: T$ a - (prompt "\nKhong chon doi tuong.")
8 e! N6 O4 Z/ |) G2 H/ A& \6 F$ @, X - (prompt "\nSu dung layer hien hanh? <Y> ")
: m% Y j6 F/ C# _* Q - (setq ANS (strcase (getstring))). _: h d: q0 _2 n$ U/ w: b5 L
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))# S) i3 {( P/ @$ c& ~+ B
- (setq LAY (getvar "clayer") LOOP nil ) ) )0 b/ f( R7 O, Z D& {6 _
- ((listp LAY) (setq LOOP nil) )( t+ ~7 G* i3 W1 j
- ((= LAY "Ten")
/ _/ U# b7 m) i% U0 x - (setq LAY (getstring "\n>Nhap ten layer: "))! l/ c( Y C" A& g1 n! M- m+ g" z; [
- (cond- ~ c& t# C$ k2 o$ k* F* w
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )! \9 ~( P# t2 f6 Z* Q _! r+ @2 j# {
- ((/= LAY "")
7 r2 N, ]3 M+ s) R- [! o5 G - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")/ I# l0 i& P) I' O2 `. _
- (setq ANS (strcase (getstring)))
2 ?5 l* \) A7 K' V - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))- w9 Y" F( E4 P
- (progn' ~0 W6 ^' o% U( ?0 ?) r- Y4 P9 A
- (command "_.LAYER" "NEW" LAY "")3 X5 b+ K" P% F2 U4 w
- (setq LOOP nil) )
3 s) }! t/ h3 ~# H2 N- _/ o - (prompt "\nLoi ten layer.") ) ) ) ) )
g1 \+ {9 o' W9 q. d% w- H9 y* R - (if LOOP (progn (initget "Ten"), y6 E; m0 z( B2 A, D* r5 z
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
* v$ k3 G7 r7 X) d A% y( ? - (if (listp LAY)
4 { t/ y* j. O% D/ T - (setq LAY (cdr (assoc 8 (entget (car LAY))))) ) R' ^3 ^: `0 ]4 @+ E
- (command "_.chprop" SS "" "_la" LAY "")/ v" _2 D1 `/ V+ n7 q
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )" }% d& V ~4 m. v: y" y
- (if (= LAY (getvar "clayer"))
" X. m9 f/ M V - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
0 S4 D, H. g, e! v - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch)): Z8 L( a! M: a4 O2 L/ x8 y+ E. ^
! [. T5 ~9 v5 y/ t( C- ;;; ============================ Layer OFF =================================. W6 X. E7 l$ f
- ! {1 C S8 O H& H3 X4 i8 L
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
- e- ~# E+ h0 { T/ X+ }( c( u - (SETQ SSET (SSGET)) k- B6 Z4 W9 p) {
- (IF (/= NIL SSET) ' d( C7 P! F1 ~+ j
- (PROGN6 G. N* }+ t# I: I& V- @4 N2 B. n% ^
- (SETQ SSL (SSLENGTH SSET))8 ^+ E/ n( `7 I5 D2 U
- (SETQ LAY "")7 w+ @9 U$ r% T, ~
- (SETQ I 0)+ d$ P; ?9 q: U
- (SETQ MODE 0)
' f, `% ^! W" k! g& X - (WHILE (< I SSL)
( A0 L& o$ U1 N# e+ y/ U - (SETQ ENT (ENTGET (SSNAME SSET I)))
1 x0 T: F) j; H7 @. w. Q - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )2 J; C: \$ t3 X7 }( k! {; R# P
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
& d' U: Y9 l l+ s- u) K - (SETQ I (+ I 1))+ D0 q" V1 |+ \
- )
& r8 {+ S: Z) Z6 R' Z9 e& Y. T" ?# A2 r - (COMMAND "LAYER" "OFF" LAY "")( E: R, _! c; S e
- (IF (= MODE 1) (COMMAND "") )
1 l6 l: _# g- v0 V - )
$ @8 O% W; J' d - )
( y0 F7 Z! Z- l2 P% {9 j) L - (PRINC)0 y m% D( j$ W" l9 L# ~) X
- )$ o6 n5 X. m/ \( E, U0 @, ~6 R& j7 L
- ) a% V3 g+ {4 T, c, K' ~5 l* L: S
- ;;; ================================ Layer ON ============================== @# Y; T% j0 H/ C& Z
- ( O- [ f" L: I$ N; ~
- (Defun LAYON () (setvar "cmdecho" 0)
9 k/ s% J0 I$ D( k6 N - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")7 P) f! b; H/ q+ X
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))( \: c* D+ k& z. s! z1 f& e
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))5 I6 C3 S3 w# N& i W
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
- {3 |1 O+ ^8 ~! p; d0 J! B$ r
! ~( o: q$ ^" K. M6 Q- ;;; ============================== Layer Freeze ===========================
% r& h# ]$ _* n2 ]
9 e1 n5 m; d) Q' o) H- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
7 B0 A& Z% z: w. K" b/ X - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))) w6 g% h' S5 y0 T. E/ f
- (IF (/= NIL SSET) (PROGN
# _! {/ I$ Q; j( N4 W - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) ( e! L* a; r% M5 x \' R
- (WHILE (< I SSL)
$ \2 W& y" H# B: t4 d - (SETQ ENT (ENTGET (SSNAME SSET I)))4 o/ ^9 }! E. a2 N1 x" i6 Q
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ): b; z. B( |) D- {
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))# B7 K9 R* V" d: d; ]
- (COMMAND "LAYER" "FREEZE" LAY "")# X: |' n5 I/ K
- (IF (= MODE 1) (COMMAND ""))))) C% k" G8 G5 V1 O
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
( a: p0 q4 |7 W6 r$ @% w3 \ - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )$ _# E1 H# z- k3 U" B
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
8 G5 z( Q. X& k" }5 M6 f - 5 X \' d! s5 G) ~; {& W! G+ y
- ;;; ============================== Layer Thaw ===============================
0 b2 d/ C5 m" j8 n p- v
) B' ^! `/ D% c7 m* i- (Defun LAYTHW ()
; W: n. D: X2 w, c* v* C: c - (setvar "cmdecho" 0)
4 G# `& U6 h& K+ N) T5 D$ e - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")3 D( V' h" F+ f ]+ T0 A
- (Command "_.LAYER" "_THAW" LAY "")
q# ?7 s7 }8 }+ s$ a* |( B - (princ (strcat "\n Layer : " LAY " da THAW."))
2 @8 R+ x6 i6 c - (princ) ). @ B/ Z8 q5 T: M0 v
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))7 R1 K: V. ^, V! d, O
6 ^' W- b% p. w3 J; I; }- ;;; ============================== Layer Lock ==============================" v- r% y0 W9 o. h' d, o
- 3 r- T+ S; a9 M- ]6 a
- (Defun LAYLCK (/ LAY)8 ^# }+ S. A8 {2 C4 L
- (setvar "cmdecho" 0), d) j' M. y" _* l- V6 p, k
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))! c) s7 _. i5 L/ Z2 F G
- (if LAY+ a7 W E' M- a4 I
- (progn p$ \4 t/ K$ ?7 c. v
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
& V/ s( A: k" @4 q$ Z7 ] - (Command "_.LAYER" "_LOCK" LAY "")
$ D4 p' [+ T" I4 m6 \4 Z2 q0 Q$ i' {3 ~ - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
! l2 O L& v0 k* y( u; Q9 W - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
6 ~. J0 i) ?6 S: j& }0 h - Z7 j& X$ m5 J0 l& c p
- ;;; ============================== Layer UnLock ==============================9 ]! _/ q- A7 j- D- q: n) B2 d
1 C* C4 y$ `7 t% k- (Defun LAYULK (/ LAY); w+ c/ x4 a5 y ]7 j
- (setvar "cmdecho" 0)
: e# }# Y# v, r/ N# j - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: ")), w7 b" f, ^0 |/ j& I% f, r
- (if LAY+ A4 K& N- |1 x. u6 r- ~
- (progn
% S* B5 I3 k& | K- d- V/ d - (setq LAY (cdr (assoc 8 (entget (car LAY)))))9 s# m5 a2 n: ~$ [4 I6 q# I& [$ s& _
- (Command "_.LAYER" "_UNLOCK" LAY "")
# f: M6 l0 \, J* f8 e. e6 L7 M. i - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) ) q, R) _4 i |
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))( ?+ ~' H( K( `% l7 ?& ~7 p6 W* H
. l, v+ S; p0 W6 ~& A n- ;;;===================== Delete all objects of Layer ========================% R% n0 G$ @- J1 w; k+ p$ Y/ P5 _
# @, q. N, ?, P' K/ g8 C3 Y! r- (defun DELAYER (/ ocmd L S)
0 m7 s% i" l) t - (setq ocmd (getvar "CMDECHO"))
' M) k3 O) a+ J5 M% F - (setvar "CMDECHO" 0)- [ X6 p( P7 J& @! l
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))
1 n/ ^+ l: F! E4 W3 _3 U - (setq S (ssget "X" (list (cons 8 L))))
1 e) C; p B8 i7 u - (if S 4 P' L, P7 M# T) w/ c
- (command "ERASE" S "") 2 w+ B" u' M E2 t' o3 v+ h
- (princ "Layer empty or not a valid layer name.") ) 9 w9 Y/ |5 U0 h. o. D9 r" }5 o
- (setq S nil) * Q- S! S# I9 T/ w- ^& r
- (setvar "CMDECHO" ocmd) ( I3 ]1 ?5 E4 }: o, z2 z) K+ V0 i
- (princ) ) 0 z9 }% O7 F& H2 I! h5 N7 {
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
w- t5 U, \8 a. w6 [" p
/ X6 q& [7 v/ K8 p. m# e, x; n- ;;; ========================= HET CAC LENH LAYER ===========================
/ P+ B/ P1 [7 f/ e; M" {% ^
; L, D9 |* M2 n2 ~+ n; I- ;;;====================== EXTEND NHIEU DOI TUONG ===========================9 ?' u1 ~' _0 B$ w) @
- # E+ ~/ c) {. X, r0 h
- (Defun C:EET ()
0 B; s4 ^ G8 G: Y4 s - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)$ d5 c/ L! X8 P* p/ l
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
; a }7 ^; n8 l2 y6 p+ z - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))) }+ H% q) m8 p# M9 @1 m) i" f
- (Setq I -1)
4 s" F. W$ L# N& l7 ^ - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
8 [: @2 L; S" T5 M% A2 N - (Repeat LEN' a6 S2 g' \* D! c4 d, Y& R) S0 Y
- (Setq I (1+ I))8 \& ^' x& t# n C7 l% A
- (Command (List(SSname SS I) SIDE)) ) (Command "") Q+ ?) c1 K( L( P: j
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
/ k* W6 [/ ^/ E# Y5 j# i9 v% O
* p/ ^7 }" I2 K. a- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============; h( l; D6 H" H" d; y! z# e' t- d# ^
- - \- b1 R6 ^6 j5 A1 @9 u9 H7 Y
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)1 A9 C5 ^; e1 `6 ^" t1 u
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))2 u& S( |* p" f# T* V
- (setvar "osmode" os). L; v! l8 ^. I8 d
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :")), M# Q' r( i3 x
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))) a8 q( Y9 q) B5 ~1 v
- " V& n1 \% v0 ~* I4 m2 e7 q- S4 A
- ;; ================ Change width of polylines =========================! u$ c8 Y" }7 K8 |
- & [0 j S1 A! H7 A
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
7 h: j$ C& ]6 s5 M' W' c - (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
$ I& u) X- ^, U8 { p/ d* | - (setq b (ssget))
, m( @/ w& u7 x5 \ - (setq sophantu (sslength b)) & M0 F) z. d8 X& \% E4 Q
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
8 f. U' {) x( s8 B! r3 `9 c - (princ "\nDo rong polyline <")& B& Q [% J! ^
- (princ ha:wid)
) ~' N3 C* e' A5 v% R( Q9 H! m, r/ d - (princ ">: ")4 \* G8 N" W5 Y
- (initget 4)' c2 C* m1 o- d4 M
- (setq ha:wid (getdist))
$ m9 k9 o3 G3 l2 ` - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
& p* y; v2 r: e7 A - (setvar "tracewid" ha:wid)
" b- M* y1 }# N2 ? - (setvar "cmdecho" 0)
+ q7 V) w, k$ Z1 K0 c" j - (setq sodem 0)
" f5 a9 g# J7 }! q) Q" t: R4 K - (repeat sophantu
+ f% X( T( R! z1 ~ - (setq a (ssname b sodem))
! u& t6 w; A8 W; c& t: i - (setq list1 (assoc 0 (entget a)))
; }' t x$ c2 s6 v3 | - (cond
+ c4 L5 G+ g9 L2 q% l - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
' ^5 i! w4 x8 R7 G - (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
- E7 z6 \- [ F- L& ^6 H# C G - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
# ]/ X# \- a. W. e, j3 M& ~ - (defun c:wp () (wp)) (defun c:pw () (wp))
. T y3 e+ Z( W+ H0 v) r - 9 z. K% b" g/ ]9 ^9 f, k! L% g0 B2 Y
- ;; ================ Change radius of circles ==========================
/ B R' s3 P" A3 m0 j" f0 J - * D1 J( x. Q& O8 |" [
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))7 M. ~7 Y8 C( h# ^: e
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
: T% d- E" c4 [2 p - (IF (/= RD NIL) (PROGN (SETQ I 0)1 `$ x: P9 N# y! {# k4 p
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
4 K9 Z# [5 X# |' W* Q2 p - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN- S3 i3 s4 b K1 q5 S- h7 H
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )$ L$ {2 C) d6 C
- 7 R4 B. S H" D5 i
- ;;; ============================== TEXT Hight ===============================
1 ~3 Q) E. R- V- R3 d
8 X% Y f; v+ K3 G/ T) I- Q% t$ \- (defun texthght (/ ent hght)) z; d* m4 A- O% d% Q, ~" _
- (setvar "cmdecho" 1)
8 v0 g+ q$ i6 W - (prompt (strcat"\nSelect text entity with required text height"))( D. g2 M3 h8 _8 V% ~; r/ l
- (prompt (strcat"\n."))
3 B. k V# z8 c - (setq ent (entget (car (entsel))))
9 E7 D$ I: j1 [ - (setq hght (cdr (assoc 40 ent))). k' r, J; B E( x( L
- (prompt (strcat"\nText height now set at "))(prin1 hght)
; M0 n9 U7 G" I, y. K, g7 W% v2 S - (prompt (strcat"\n."))
( i0 A5 s' `" t! }+ i8 I/ i n - (setvar "cmdecho" 1)
5 n2 b. u$ ]0 } - (command "DTEXT" PAUSE hght "") )
3 i4 O5 x7 G7 ]7 N; J/ Y7 w - (defun c:teh () (texthght)) (defun c:texthght () (texthght))4 d( ]0 w( P% M+ ?% A
- * T& s9 z' m4 r* m4 D7 O
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
) s* R, V$ M6 d% E - 0 f, Q+ j S% X+ _6 y! Q2 i2 e, t
- (defun c:tuu () (setvar "cmdecho" 0)/ F# v8 ]! E& R6 U8 G
- (prompt "\nHay chon dong TEXT can gach chan ")$ b9 s* }& }! |0 g
- (prompt "\nSelect objects: ")* I1 B% x' e, l _1 Z6 [! w# w' I
- (command "select" "au" pause)
0 T, G5 K4 [5 v' ^ - (setq sstxt (ssget "p")0 B/ N$ i4 c% F4 o/ D
- sslen (sslength sstxt)
' l; `2 |& }- W$ H0 _- `8 X. k - ctr 0 )
7 x0 F7 R% v7 p' O3 N l - (command ".undo" "mark")1 V' d, h! a" v* R
- (while (< ctr sslen)
0 x& U. S4 ]8 a$ x5 G* Y - (setq listxt (entget (ssname sstxt ctr))0 ]! t7 \1 R, j) ?" v9 }
- txttxt (cdr (assoc 1 listxt))
7 ~' g! ?% y# D2 I8 r4 b5 v+ ^4 A; n - enttxt (cdr (assoc 0 listxt)) )
9 L( [" a+ W) P2 @) ?6 l6 ~ - (if (= enttxt "TEXT"); W7 w% g" m6 {8 e, c
- (progn1 j& i! O, d6 [: O4 V4 a7 c, i
- (setq testxt (substr txttxt 1 3))7 V) ?; B9 @* ^, M/ G' b
- (if (or (= testxt "%%u") (= testxt "%%U"))- O$ p% N% N, D0 k) o0 G
- (setq newtxt (substr txttxt 4))& b9 _! H$ N4 `' b' c+ ?+ I
- (setq newtxt (strcat "%%u" txttxt)) )
# R# v5 T% [# V! e - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))! ?! p; T1 v' G5 Y* p5 R2 E3 `
- (entmod listxt) ) )5 W2 C5 G: H+ q3 q& p. [& S, V5 Q
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
7 x- M8 B- W/ s n" I( Q5 Z
% `: [5 X1 M6 Z5 a1 o- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
6 V0 K! m+ y; l# I8 Q2 c
$ Q$ o; O% P' e: s- (defun c:tob () (setvar "cmdecho" 0)+ B+ f2 q" _% i2 f# V' P J
- (prompt "\nHay chon dong TEXT can gach tren dau ")4 U X# J. l" A9 ^/ I+ e( d' |# M7 ?
- (prompt "\nSelect objects: ")4 m% Q1 ?/ Y1 s1 e3 T
- (command "select" "au" pause)
; {) J8 R, b- l' m - (setq sstxt (ssget "p")
# ?& m- {! w8 h P$ o6 U% u9 c - sslen (sslength sstxt). G- O- f9 z3 |# ?" e# h
- ctr 0 )
' L. g4 N; R6 v. v, w8 \$ e( ]$ ?/ l - (command ".undo" "mark"), j6 e' Q4 M' T0 [
- (while (< ctr sslen)
0 l% t1 W& }- w0 U( g; I W - (setq listxt (entget (ssname sstxt ctr)) h2 a1 ^0 w0 Z1 [
- txttxt (cdr (assoc 1 listxt))
. s: E2 q% J8 S - enttxt (cdr (assoc 0 listxt)) )
2 e- r) m0 \2 _ - (if (= enttxt "TEXT"); v& h0 s# J. R8 ~+ Y
- (progn
7 r) o* q* u- F) v; Y6 M* V - (setq testxt (substr txttxt 1 3))! m# J; ?* b2 x X
- (if (or (= testxt "%%o") (= testxt "%%o"))0 J5 G7 j: z: B/ W7 H
- (setq newtxt (substr txttxt 4))
- q& t# k3 V- { - (setq newtxt (strcat "%%o" txttxt)) )
4 A) T3 f" \, P, ]9 l& V% g5 ` - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))* x+ _) Q0 {7 s5 B3 ]. g; S
- (entmod listxt) ) )! Z$ }! i+ g2 k9 ]( X. F) m
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))6 Q3 i9 i" M0 ~- c
- 8 n7 E; t: u& M+ g- }3 j6 M' @4 ~
- ;;; ========================== Tim & thay the TEXT ==========================9 I$ m& E; @2 ~( S5 o' M. d
- 1 Z+ p" k5 `- r. h
- (defun frstring (str search replace / str1 str2 index find)9 Z/ F3 D9 c5 J' q
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
+ m9 {; m6 X7 } - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))/ _9 X$ A; O/ K4 V, l: [3 M9 G
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
/ w! A D, X" R - (defun hai (/ dial)
4 A; i5 m5 o( C5 ? M. a3 t/ q% t - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
; T6 `7 n+ d' A: R! {3 T# h - (if (not (new_dialog "find" Dial)) (exit)) ;;
' ^" d/ |# _) \8 w7 C - (mode_tile "find" 2); Tao dau nhac tai hop thoai1 K7 R3 d, ~+ M6 ?3 z$ g# I3 Q
- (action_tile "find" "(hai1)")
' O7 U6 u! H8 P p5 M; ]! _) W - (action_tile "replace" "(hai2)")
/ L6 L$ a' Q( d% ~2 _ - (action_tile "cancel" "(done_dialog) (exit)")
: _! i8 V4 X/ i3 ~) w: }6 S - (start_dialog)
% H9 m L0 i: h8 N }$ @- d* R - (unload_dialog dial))8 L9 T- T0 ^! P; L
- (defun hai1 () (SETQ str1 (get_tile "find")))+ S5 G) {! G7 v% g; `
- (defun hai2 () (SETQ str2 (get_tile "replace")))
5 i8 i# h, z- {8 x7 Z" A" ~- E7 j
, ]9 t# z- G% S# G; g) U7 R- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)% v. W- W1 t9 U* s, d
- (hai)
4 Y- }) y6 S) k% @ - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")7 T$ q9 T; Y! y; N- Y1 z5 N+ F
- (progn9 w' I3 x% D: z" t0 G! s
- (setq taphop (ssget '((0 . "TEXT"))))
# c9 p$ x1 N& t8 `7 A$ V: H8 _7 F - (setq sodem 0)
( ~+ F% M3 E/ ^8 g7 f& ] - (if taphop
) r3 A# l6 W# Y3 C - (progn
# n" [7 t2 I- O% A; X- Q1 o8 {$ p - (Repeat (sslength taphop)' w$ b( f1 O3 J
- (setq a (entget (ssname taphop sodem)))+ `2 n- N1 z$ x+ U# S/ P* X
- (setq str (cdr (assoc 1 a))). Z! o1 E1 K8 a
- (setq newstr (frstring str str1 str2))
0 q, ^9 X |" B0 h' l2 F - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
' s5 h5 p3 K6 m# Q8 p - (entmod a)
) |, i$ W6 t# \, H# e3 | - (setq sodem (1+ sodem)) ) )' u0 p# C/ j' P* }+ z8 ^+ F
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
2 Q$ Y/ ]7 \ V* ^& ?/ v
+ i! E9 b* @2 ^! f; S* _# M- ;;;============================= CHTEXSTY.LSP =============================9 e9 c* z/ P" y% g, Z% s
- ) |$ R" U4 X" h% n" f1 y( M4 `
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST "): Z, O: Y; R9 @$ M' M3 S
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))0 M5 ^. w/ b; ?3 ^. y6 s% W/ f
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))5 A# h8 s+ L, J8 Z
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
6 q D" p* e9 T- S4 Y- w0 c# @2 h - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
- e* `5 Q- Z6 h. S# S - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))/ |# [# I& l4 V) _, z# `, s
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J)). c* O, e; }4 x E
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
$ H: d. ~) n0 n' e' f8 m - (Initget 1) (Setq A (Strcase (Getstring2 p7 K# n3 w& d& q! W+ P
- "\nEnter text style to change: "))) (Initget 1)
6 K5 P& u! p/ c8 T3 J& P; t2 u3 M5 _& H - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
# S, w6 T6 ~3 Q. c - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
( B; E# O0 f: T4 H; P6 m9 { - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))# n( ]% M! N1 f3 e5 ~& s$ x
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C)) U+ H2 I1 p; p3 o' z
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))" z1 ?! \6 j4 B9 n! L0 f5 b
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))$ k; u8 S& y$ @+ l
- 5 `3 c! P+ |' s$ U! d3 d& b$ R: M
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
- K2 e! g1 F, G0 g - (Setq J (Cdr (Assoc 50 A))))) ]0 T: I, i2 ~" }! t1 N# L
* y* A/ v6 ^- Q3 w8 e' u5 V- ;;; ============================ DRAW CLOUD =============================
/ ?6 x ]3 d4 Z1 I( x - . ^ w8 M5 b' p- z2 q) M3 V
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)! W! L e% e3 X% ?2 S
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")" ] w5 w- U7 {% F( t7 U+ `% `
- (setq la (getvar "clayer"))9 h# B7 L3 N' U
- (command "layer" "m" "cloud" "c" "5" "" "")
3 F y8 Q0 O, F, y3 W - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
# n$ R3 F' C9 g u - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction...")), s2 X0 X# Y' u; n. H( R8 n
- (setq cnt 1 ss (ssadd)), V: ]7 p0 ?& W& F( | y1 F, W
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))- S) ^, m8 q" i1 V
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))( W. r! C" A/ m% L/ ?1 L. C$ a
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))/ n+ g1 I m& F) q' T
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0): l! V% m' K+ i5 }
- (command "pedit" arc1 "y" "j" ss "" "x")' k- D6 c) b5 f& b
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)4 D- R% X1 F/ V! C
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
v' Z$ j, z. o, r: T- T - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
% X5 a! G$ V6 a6 ?0 I" z6 U% @+ j
! F" t# y. w, I' a x- ;;; ================================ Funtion-Dulieu ========================
4 f7 I5 R6 R% ^9 W - ;;; ================================ Funtion-Dulieu ========================
/ d( E# j2 q+ F8 t1 q - ;;; ================================ Funtion-Dulieu ========================6 {! h F5 D' `& @7 [6 b) } K
+ }" W3 c" h& K- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) ) D3 L0 ^* H$ h5 \$ _2 q
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh")): b. b G8 {0 J
- (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))( E5 l9 N! @9 ~) e* E l- m$ `( R7 H
- (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) )
% |" n( Y1 F$ A - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
+ ~' V( @3 L5 V% `) n9 ~2 t0 E - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0)) O$ v( o, s' W9 a; A* `. H l0 G
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))+ }4 C) N; H1 W" U
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))' D7 B5 b' s6 |: i6 ?' o
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))$ V# @& x- K- J" n2 u0 S& Y3 c
- (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)))
: j8 d; b" A6 I- [2 } - (defun dtr (dtr) (* pi (/ dtr 180.0)))
% {1 |5 F' O" A - (defun rtd (rtd) (* 180.0 (/ rtd pi)))) q$ {! y4 ^; y+ U' |( T
0 p# _5 g+ j! P+ b& @9 G" ?- ;;;==============================PROGRAME===============================8 i' O; y1 @& f U1 l
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
7 k. }6 i0 n8 w* Q! p - ;;;==============================PROGRAME===============================% W. F+ _: F, Z
' O* w5 ]7 T$ v$ Z- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
9 y0 K T+ }9 P: |1 ^2 Q1 v+ u - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
, ^) U( w, c, k& l6 K- B - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)* P" `9 G3 W: \; w& f! `# x
- (Setq Oldlis (Entget (Car Chon))9 ^- S6 v: q$ b! ~% t% H7 E1 m
- Pt10 (Cdr (Assoc 10 Oldlis))
# l# U) x( e1 V( [7 [7 V: F$ P2 y - Pt13 (Cdr (Assoc 13 Oldlis))
8 K$ a' n) y9 N* e* f2 P - Pt14 (Cdr (Assoc 14 Oldlis))9 H7 b7 Z# T1 B- V; N
- St (Cdr (Assoc 70 Oldlis))
8 l( r4 q' j) y2 j8 v/ q% j u - Dimdefault (Cdr (Assoc 1 Oldlis))& Z9 I, Q8 w6 K/ O2 W
- ): V/ W. c6 J6 q( ~
- (Cond
: j0 J( W# ~3 [3 x5 {5 e - ((Or (= 32 St)(= 0 St)(= 160 St))2 O9 p; D+ Y" F/ j% m
- (Progn3 a9 X. [# k7 N- @
- (Setq Ang (Cdr (Assoc 50 Oldlis))3 W2 ~; N, V" [& Y9 b
- Pt (Polar Pt13 Ang 500)
9 ^7 f- a1 _4 o1 a! L - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)$ Z9 S' O1 R0 Z7 ]7 Z5 s
- Dis (Rtos (Distance Pt13 Hc))2 K4 e4 p i& S* K3 A
- )! |+ K7 h+ y) P+ t |
- )( a h, d. b, ]
- )9 Z# r. q, V" } v
- ((Or (= 33 St)(= 1 St))7 U. j# s% p, V0 T! e
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
0 N2 c+ f2 R8 L3 k0 D6 G - );;End Cond
0 r# J7 [6 J6 g4 S# O% g; u - (If (= Dimdefault "") (Setq Dimdefault "<>"))
/ {, \. c* u. g - (Setq Dial (Load_Dialog "Hai.Dcl"))
% T* ?. N4 N \- s( ?0 u - (If (Not (New_Dialog "eddim" Dial)) (Exit))/ _. t7 ?$ r, d4 h: b# E3 o+ `6 s
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))4 p& y( B( j0 [
- (Set_Tile "text" Dis))
/ @2 w5 o# r6 D - (Set_Tile "ha:edim" Dimdefault)" H, G% Q$ S5 I3 P; X+ v
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai/ `3 b; D, [$ e2 Q9 q* ^3 Y: ]
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")) {& m' P5 P- {% k
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
& X4 y% y' J3 K0 f. w - (If (And Str (= 3 State))3 M; d& {5 j6 y7 c3 y
- (Progn. Z* \$ {+ Y1 Y9 N
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))4 s2 {5 l% [: N* w7 E& _
- )3 Q; S& t" P# _; v( c
- (Defun C:EH (/ Chon Name )
7 O! S$ m. B9 J+ Z/ y$ i) ~ - (Defun *Error* (Msg)6 k+ [% K$ i% [
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
- s" E8 V- @ s" R0 n - (Start_Dialog)(Unload_Dialog Dial)
6 }' n2 v* y& R6 e6 j3 z+ I - (Setq *Error* Olderr)(Princ)
: F8 O7 W) h+ l% y - )
# l1 n& ~3 u9 c - (Setq Olderr *Error*)
- q" O: Z O7 J! h - (Setq Chon T) \3 s( m$ p$ y& |7 o5 X8 u
- (While Chon
* \. K6 z+ S7 W$ u - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
9 r, t1 f" y* D6 V3 E# k - (If Chon
' `5 j" ^0 {( P2 Z8 C - (Progn
4 w5 Z) M B, |, o - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
( |* Q1 F" c+ p! d- y" H( u - (Cond
! a3 o2 M/ f2 U( i% K' d - ((= Name "INSERT")(Command "Ddatte" Chon))
1 `, J- z" z* Q4 S; o) t | - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))4 ]. s; G5 { O* E1 V
- ((= Name "DIMENSION") (Hai_Edim Chon))8 ~- S: r: `3 A% `/ K
- )
3 W4 Q! ^: L& W0 D3 | - );End Cond
- E9 D/ {- q X2 R: B& n& W - );End Progn" s( {9 f \* V4 d# }, E7 e! a
- );End While
4 l6 Z2 M& d+ ?1 g7 U& Q4 C- v S; r - (Setq Olderr *Error*)(Princ)
% E: ?6 q! I( [5 A/ B2 j) U4 K6 `3 ~- k& ~ - );End Program
1 _9 c8 R# w( r% o- i& }8 p6 D - + O/ }+ A$ z& b
- ;;;====================DDeditDim=====================% P4 Z- s+ A( N' h) {7 S+ o. {& y
- ;;;=====================Hai.DCL======================0 W! f( m' N2 F% W% k( K) }
- ;;;====================DDeditDim=====================
% x; C! H! ^8 ~: ^' \6 S
7 y! r2 B( i7 H+ {, u% Q: r- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)4 _4 e2 v( z; D: a4 X G9 ?- I
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl! f! k5 g8 @ Y8 M5 O
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
7 p, H! m) Z2 g6 ` - (Setq Oldlis (Entget (Car Chon))
4 k. p7 T v2 c8 [$ M - Pt10 (Cdr (Assoc 10 Oldlis))
/ I( m0 B( r! x) y - Pt13 (Cdr (Assoc 13 Oldlis))
. L3 q9 p1 ]- {+ B$ J0 _ - Pt14 (Cdr (Assoc 14 Oldlis))2 d" n, L# z9 o1 |
- St (Cdr (Assoc 70 Oldlis))
( f9 X' e4 I+ E6 {! l/ G - Dimdefault (Cdr (Assoc 1 Oldlis))% z* P' @# r5 c) p8 ]; O0 D
- )
4 G Q! R2 [- m! E+ O6 { - (Cond
8 R3 O& F* F+ I3 l( E& Z - ((Or (= 32 St)(= 0 St)(= 160 St))) n! @9 q5 X4 @8 T! x" f
- (Progn
* K" P" C* F8 U- H3 u e - (Setq Ang (Cdr (Assoc 50 Oldlis))$ C; ]: J# m- I& r6 G. z
- Pt (Polar Pt13 Ang 500); ]6 N3 U1 K: J& m
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
% R" W1 z8 @' s$ p4 E - Dis (Rtos (Distance Pt13 Hc))
1 `. R3 y5 m8 H3 P% c+ M - )
( y- w. J" W7 g9 B1 z+ s' G - )
( s) K* x _% e( T - )! C. X3 e! b1 B' \' p
- ((Or (= 33 St)(= 1 St))
3 L! L' s+ v$ { c# } - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
7 G( M4 M* T( m9 [ - );;End Cond! @' b( p) R- @- V. I1 v# [
- (If (= Dimdefault "") (Setq Dimdefault "<>"))0 B6 k. ~# P: X) z
- (Setq Dial (Load_Dialog "Hai.Dcl"))
/ v- S! H' v1 s/ a5 C7 W& k - (If (Not (New_Dialog "eddim" Dial)) (Exit))1 R3 ]& x: [/ H% z6 Y8 b* t# ]
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
. L- Y, ?* t& H0 R2 M" m, F - (Set_Tile "text" Dis))
* R0 y y N, {* d. |* x - (Set_Tile "ha:edim" Dimdefault)0 _& E& c# Y. q4 P9 A
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai) I) P+ S, r. |* V) B1 A
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")( S4 B3 p" z# u1 U- |+ t
- (Setq State (Start_Dialog))(Unload_Dialog Dial). ?( J' H" h& C/ K$ _$ m
- (If (And Str (= 3 State))4 ~, J; I6 [5 D: S# F! k8 U
- (Progn
( F% o0 I3 a' _ - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
5 T& j7 s7 `. n2 n) H- q: O' P1 w - )( u Q+ n& C7 V: R6 c" `
- (Defun C:EH (/ Chon Name ). S' C/ H1 r/ }$ v& m7 J) j, I
- & T" L0 P$ T/ N/ _
- ;;;********************Du Lieu********************
* g+ s9 A# R* _) |5 b
# T$ P3 C3 ?7 C5 D2 d- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))/ `% E- }( o/ U9 \
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)% \$ i/ A6 W: @4 E, L
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
3 F, _" Y$ V8 {5 e. e - (Progn
0 {1 Q0 w' I# X5 _7 P9 k - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))( w2 h2 |0 }6 D* T* @8 u2 u* S
- (Setq Chon (Ssget Hacat3))
* i5 F& X! m5 u6 o - (Command "Break" Chon Hacat1 Hacat2)
5 y' K6 U# Y, J' v' J- H - )% J) p0 d( @; w& |" ~1 C
- )
% y5 E5 i1 j! y# ~) Z5 Q @ - (Princ): ^+ s6 \2 M) p {
- )
! p3 p) w$ ?$ ~% z: g3 @- u5 P - ;;
: Z8 m$ a( Z) ~* z0 P5 }( S+ I0 D - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
% ]* f# c8 C8 G6 U - ;;
1 g4 M! `$ r3 x( H% D6 E, l2 m - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))6 _$ r' h' Y2 \1 D/ f
- ;;- \: v5 p( C5 X: |5 A
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
& J- t. h/ R- `& Y( r# A - ;;! I9 F" i* C$ _% `' Y, F( L8 p
- (Defun Reinit ()(Setvar "Cmdecho" 1))
' n9 ~$ s, }4 v# h+ U! O - ;;: |+ J1 }3 w& @
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2))); y8 P$ J; j. c
- ;;
+ b( _# V H) v* e5 a" D - ;;Cho 2 Diem Tinh Ra Vec To Phap2 y# K9 R; w+ b4 _# v6 U
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
1 o8 n& a5 x1 \ - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang$ C1 f5 `- g H1 J0 {
- ;;Da Biet 2 Diem Thuoc Duong Thang
$ p3 R# |3 [4 m, ]- @ - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)$ M* o& e) ]) H4 O0 Z+ g1 f! z! g
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
/ X4 b0 H* m l a* @# K - Hc (Inters P1 P2 Dc1 Dc2 Nil))); C6 G# _! u6 m; |
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang- `) K, Q+ w& } x" j
- ;;Da Biet 2 Diem Thuoc Duong Thang% s, g1 _- b% a& G C! z! z
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
: K/ x# d7 z8 t5 r - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
! L; ^% q! J8 k* E - Hc (Inters P1 P2 Dc1 Dc2 Nil))
( ]5 c5 Q3 V/ f6 v4 Q6 v - (Distance Dc1 Hc)
6 g4 q1 z) Z2 X - )
, h4 Z8 D0 g* Y! E5 X2 d - (load "nhapcua.lsp")2 f" b0 S, M2 \# C
- (Defun *Error* (Msg)
4 R; L: l5 i; H - (Princ "\nerror: ")(Princ Msg)(Princ " "); s$ d7 N. _ B( `; d+ H- C
- (Start_Dialog)(Unload_Dialog Dial)0 b1 v% h: J5 `8 c* U. O# D# k: X, Z
- (Setq *Error* Olderr)(Princ)4 C0 l7 s- ]1 w. p8 e6 v
- )/ w3 i7 N4 U4 a/ G3 h2 n+ @
- (Setq Olderr *Error*)
7 O* i! M& t! e" S - (Setq Chon T)
- C/ ~0 {. h8 ^5 P - (While Chon
9 j3 A. o9 g, h& Y3 y# |7 \; A1 W - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))% x3 H, m4 B( Y4 C
- (If Chon
h1 G# L& j \) P8 a* J; Z* C$ s - (Progn
2 M' S# ~# l' O9 @5 g { - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
, n$ C3 l- F H1 v) {3 U - (Cond
p9 _; S G7 w: P: n - ((= Name "INSERT")(Command "Ddatte" Chon))
' g- l9 s8 x8 l4 i A+ J. G - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))% Q6 m. ^5 a+ N1 H, J
- ((= Name "DIMENSION") (Hai_Edim Chon))
. f. @" X5 |1 g7 l+ P6 p$ s$ J - )
- c) r |& B; K/ N - );End Cond
f- j4 l9 ~# i: Q( ]; J3 r5 o J - );End Progn
% n9 a$ Y9 E4 g - );End While* g) x D5 n5 r9 {, g: T+ W
- (Setq Olderr *Error*)(Princ): g0 c- R3 O. d, |" C/ [
- );End Program9 Y. A& |5 A! s6 j
- 6 j. e' N$ U8 p5 Y6 V9 L
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================$ R. X# \5 V- x4 }/ K
- ;====================================Nhapcua.LSP====================================
8 t, v: Q+ o0 ~4 v# V - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
; D" J6 ~6 ~8 p- i8 [/ P4 c
" \+ U+ E( X5 L# `- 4 i: V' w3 [7 X! U$ }) w9 g
! ?# w7 W' I6 Q0 K2 P! U9 c- ;*******************;*******************;*******************;*******************
5 I5 w2 ?, F1 I, T- X0 A$ k$ C - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
8 y# b5 [7 ~9 X6 | - ;*******************;*******************;*******************;*******************; @* m' g3 X- W9 `3 X0 X0 M
# i, X% G9 [; y5 }5 s4 r% z- ;VE HINH BINH HANH
. D$ d6 q2 r, @
9 x/ [# s, V" C5 \- (defun c:binhhanh (/ p1 p2 p3)9 A* O* D) C+ ~1 `1 b
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))
! c# a9 {# U% I+ `: [9 _. u - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))9 g# i- N" p" U, c/ l
- (setq om (getvar "osmode"))/ P& ^7 M3 v3 x8 k2 S
- (setvar "osmode" 0): @4 w8 s# R& ^& w
- (command "line" p1 p2 "")
1 Z H- _7 P9 ]0 ^2 Z - (setvar "osmode" om)
, s7 d4 p% Q0 h - (setq p3 (getpoint p2 "\n Nhap diem thu ba:")), L& v5 O! y$ H, k9 h4 p. K
- (setq a (angle p2 p1))
# Y/ T+ ~4 B& C - (setq d (distance p1 p2))! @. j% ] {) d/ V+ h
- (setq p4 (polar p3 a d))
. P$ O+ Y' x/ G% n, H, {, V7 ~/ s! n - (command "OSNAP" "none") x8 f+ q& t2 e! m. H
- (command "erase" "l" "") ]7 c3 r2 d/ c. {( ?
- (command "pline" p1 p2 p3 p4 p1 "")
1 E- s/ U9 y: b% Z% B4 l2 n - (setvar "osmode" om)
& t( H/ i- ]6 R6 F; d - )9 ?" u: O" K9 T4 B" V
: Y M0 D" f( N, {. i- ;VE LUOI COT
& C8 i- _7 [' W6 q$ J - 1 [4 h+ R6 x: _$ u
- (defun c:LuoiCot ()
3 I, m$ ?0 ^% V; W' ^. J - (setq om (getvar "osmode"))) c; j4 G- m& f& s" M' F0 F1 {
- (setvar "osmode" 0)+ q$ S) S" [4 ^! V$ R) B
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))% A; S1 |+ s. D( F8 x' I
- (setq p0 (getpoint "\n Chon Basic Point:")), s1 D7 `5 [% i+ X s/ j8 P
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
$ Y" O W! x/ W3 T - (setq dc (getreal "\n Nhap chieu doc cua cot : "))
' D! }# X1 k5 ]% C3 k* y' c) ?; P - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )% H. C' P, G6 E. `( f% l0 G
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
' c4 _/ G5 q: K+ s9 u3 ~ - (command "rectang" p1 p2)
8 G: F' N/ j4 N$ b$ j H+ R - (command "hatch" "solid" "l" "")3 M9 u# C9 G1 N' K* I
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))! Q; Z r m+ w1 \$ U
- (setq nn (getint "\n So buoc cot phuong ngang : "))' d, t; }- G3 O. }% S2 }
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )- {7 b' X, ^5 a6 Y
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ) w! U8 W2 \0 ^/ P
- (command "select" "w" w1 w2 "")
; P. l+ {; ~4 {4 T% z: r6 g3 { - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )$ w* G( e6 o H0 v7 s1 v: j+ Y
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) ""): b7 O: h0 U8 t
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
3 |) k' u3 |& j |( A - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
; Q+ E+ P' L) S: G! d - (command "zoom" "w" w1 w2)
) N# H% B3 b) M! v, P# k. B- J - (command "select" "w" w1 w2 "")
" m) y( g6 B4 Q* S, h- M0 M* E5 d - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))1 e- `) r# x( A2 c3 W% a1 o
- (setq nd (getint "\n So buoc cot phuong doc : "))# g, \6 ?' w/ l
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) ), s& B6 @6 U; k J! |
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")2 o8 e8 b, ~0 E9 e k
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
; c0 Q4 y" \9 @+ A: [7 C- G8 D - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
: I9 ]4 B1 X: Y' `& g. }4 d - (command "zoom" "w" w1 w2)) p5 Q* A' N+ k! D% o' W4 b3 V, _) `
- (setvar "osmode" om)- V) _( _5 Q% b9 H
- )
8 a( O. h9 ?: c) Z# Z# [- q5 E3 t - 3 {1 a4 B+ X. j- P; ]: N
- ;VE CUA DI
( ]$ v" U5 _3 ]8 l( Z, {
- _+ [8 f( c! O; A- (defun c:cuadi ()& w" O& |0 b; B. B8 o* J; g0 K |8 j
- (setq om (getvar "osmode"))
0 X; Z- J7 s" W# F7 \9 s - (setvar "osmode" 0)
7 j4 a1 l- h' g* d+ H* B, P
: g' W. Y" @6 x7 z- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x=")); d, c5 t; f! l# D% \6 M
- (setq b (getreal "\n Nhap be rong cua : "))
2 L. p/ C6 C5 T6 J" ~ - (setvar "osmode" om)
7 K! R6 \5 d' f6 C, u" l* { - (while (< 0 1)
# p3 B5 k" @& v* f# k. t - (progn. C- ?( ^ K% M. }5 j$ S! k
- (setq p0 (getpoint "\n Chon Basic Point:"))
% r: s) W& x. M$ K - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))$ S$ r7 J9 R. [5 ~/ K o5 N
- (command "osnap" "none")
; Y) i0 S" C* W - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
2 ?' B8 t4 V( S& a* X% C% d - (setq a1 (angle p0 p1))
6 F2 W& |, v5 Q$ [2 H6 V5 D - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
2 [6 A" m1 X. u( `8 W& W, j C M - (setq a2 (angle p0 p2))# a- _0 t5 S4 Z% q# [* w
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) ); d1 d; A) ]& o$ e
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 ""); {; [2 L6 G: K" R
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))) K0 D$ o! g/ i$ y5 A2 q
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
& o! F7 V0 t% P3 m0 D, F - (setvar "osmode" om)8 ~: i$ ]& S$ r5 z2 B: B1 ]
- ))8 a3 U* `" A# c* j
- )5 Y. g; A1 V) I( l t
- # m5 P3 m& r% _' m/ N2 ?# f
- ;VE CUA SO$ H5 Z, m7 X1 u: e/ P! k
' Q/ l. w' X( o7 X6 z- (defun c:cuaso ()0 G( F& O0 r: c
- (setq om (getvar "osmode"))
~: `# Q6 H4 r% U - (setvar "osmode" 0)
9 r) U9 x; p- y$ s5 N
/ V2 A: t7 G, P# u' r- u- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
) C. } s( Y# L4 V - (setvar "osmode" om): H* r$ W! N/ a$ Y1 C
- (while (< 0 1)
- j0 D* A( h1 b( i+ V9 Z$ J - (progn
# e/ s' r( g' N - (setq p0 (getpoint "\n Chon Basic Point:"))
& b- ^( N, x4 ]& C - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
! k& p- \. T1 }; f - (command "osnap" "none")2 i* G, `; }: N7 m: u+ c: n+ D
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))7 i9 t9 H4 p' [4 Y$ O$ X5 U
- (setq b (distance p0 p1))
+ n3 Y2 a+ l8 e9 ~) z$ @ - (if (< b (/ (* hstl 600) tile)) (setq du 50))( ^: h+ g, ~1 A, H9 R0 m: Y
- (if (> b (/ (* hstl 600) tile)) (setq du 150))& o) v5 ]( `6 r' T
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))
. b/ r6 R* S; H - (setq a1 (angle p0 p1))* Z% s( ?( b3 y
- (setq a2 (angle p0 p2))+ m' @* u3 f& c
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )% ?1 Y0 W8 N$ Z0 B! S
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )) p [9 |+ s o
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
& v1 _9 T: w2 D( G - (command "pline" p0 "w" "0" "0" p1 "")) y8 G. X* b, L$ [, C* \( g1 a
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
/ s" z5 r! o5 H* \% U C6 _, D - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
+ P5 D2 {. P3 g9 h' ? - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) ! H( M4 w$ m* e' z2 w
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")) }- X$ t! R7 K" m* k) Z; |8 d/ w( \
- (setvar "osmode" om)+ h( P3 Q6 s' a0 o l l. X
- ))
+ Z T* v8 o- }( o* u! Q9 E - )# m* z4 {+ ~ X. n! A2 ~
- f9 O6 E+ q4 i I6 |- ;;;=== General Utility Functions ===
p2 R- D& q' J3 w9 X
( e( L3 H" a$ C' o9 ]7 H- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined ) D7 e! t! e3 g V! X& A
- ; ADS function. Now it's a simple AutoLISP function that calls the
a' ^" U, h: g7 T: Z0 l - ; built-in function (help). It's only purpose is R12 compatibility. + A/ W2 J; [! M
- ; If you are calling it for anything else, you should almost certainly
+ u) Z& W3 n. ]/ u: T- T - ; be calling (help) instead.
6 k4 @6 `. [8 J0 ?) z( ` - 0 N% X1 c* y( I" m
- (defun acad_helpdlg (helpfile topic)
3 F" j9 V8 z7 g# N8 X - (help helpfile topic)
* i( U" [3 e* O- X - )" N5 B6 f0 `. L: K2 i9 Q) h# i
" Y w( M4 ^- D; a- ^! D- 4 L! Z h: @ C! Z) t) y" r
- (defun *merr* (msg)
) d+ r, T6 a% i3 Q - (setq *error* m:err m:err nil)
+ R( B) l4 P0 Y E+ z+ D2 T" j* [ - (princ)
1 N ?/ K4 e* _; A m) C$ [3 ] - )
4 }$ w0 R- S3 {( f, ^& R
; ? S$ Q) ~; h# f- (defun *merrmsg* (msg)
" l" Y& J% U4 t) ?1 Y& i6 x - (princ msg)1 |$ K5 k8 U! F! P& s! S! _
- (setq *error* m:err m:err nil)
: u& O2 o; J8 X - (princ)
- W4 \5 X0 [0 `7 B' @) k5 k - )) o7 i! `/ K9 ~( p! L3 W+ H5 g
1 v# m+ ^: ~ ~0 F+ `- ;; Loads the indicated ARX app if it isn't already loaded
+ o7 b# L& q7 c9 `# f* @" T0 Q4 D" w$ _ - ;; returns nil if no load was necessary, else returns the
" ^2 c8 D U$ N; a9 q8 } - ;; app name if a load occurred./ p8 F% K/ h3 y9 p% y. L
- (defun verify_arxapp_loaded (app) & e7 r O9 j! K# a
- (if (not (loadedp app (arx)))
. [7 M- _& ]# K. y9 W/ K, p+ J - (arxload app f)
0 |% P9 a. ~# j- o& E r - )
; ^3 B7 G: R' Q" Q( p9 Y - )
: Z* ^# j& m* Z ]4 ]" y
0 O9 N( B. [( B- X8 a* H- ;; determines if a given application is loaded...
+ E6 @$ b* W: J* Z1 o8 Q ?% N - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....& f$ G$ C0 p! |; P5 B0 I Z
- ;;
0 ?& B( y! h) \( m - ;; app is the filename of the application to check (extension is required)
6 t% W2 w8 ^2 p2 n - ;; appset is a list of applications, (such as (arx) or (ads)
+ P2 G5 a1 M/ V( l, t" D - ;;
$ \4 n$ C9 p* e# d7 x7 x7 { - ;; returns T or nil, depending on whether app is present in the appset3 U4 u" F# i" u& z/ [
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
6 F, }# T& m" j$ g; W4 k- l- ]4 N& j - ;; Also, if appset contains members that contain paths, app will right-match& P1 N4 D9 N0 L$ l9 k! z5 @1 d; K) n
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
, y$ O- v% M. h9 ?5 a6 M3 V! i: w7 _ - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."9 C: V. K6 ]# o2 [2 N
- (defun loadedp (app appset)
- X1 | U3 h r1 e+ A" Q/ _. l - (cond (appset (or 5 d/ c) U( P5 o8 v% o
- ;; exactly equal? (ignoring case)
. r( d) F% q% d; h" G( T! z+ n" h - (= (strcase (car appset))
6 j7 S" h2 C) l7 V. q/ Z - (strcase app))6 Y9 w3 \1 l/ e4 s' T( {( K
- ;; right-matching? (ignoring case, but assuming that
) F5 x) k; Z0 ^0 [ - ;; it's a complete filename (with a backslash before it)8 z8 H; R) }3 H/ N7 z
- (and + F1 i( e; y% w
- (> (strlen (car appset)) (strlen app))
9 D7 O: a' _/ M - (= (strcase (substr (car appset) , X c7 m( m V6 @ r8 i) Q4 @% q
- (- (strlen (car appset)) & p, P, e$ U7 E2 o: |
- (strlen app) . ]* ^; Z/ A5 U+ u
- ) $ a o4 L8 R. B, P% C% w
- )
8 ^4 O+ [; H/ z5 B4 \ - )
! v1 |: a* i a# N$ H - (strcase (strcat "\\" app))
/ q3 O0 f9 G( u+ B( r, S - )
# @. i# G+ v$ T, j8 _6 M% Y5 U1 R - )4 J! j. M7 P' E/ E
- ;; no match for this entry in appset, try next one....' ^; F2 r- h; [5 W4 I) v
- (loadedp app (cdr appset)) )))5 \/ q) M& q- {# }/ I+ l
- ): C3 |! R$ n! v$ [( s% @- w, a
8 H& u# V8 a5 y% g9 `7 V( g- # o& `5 t; A5 ~" w5 B, Q
- ;;; ===== Single-line MText editor =====( I! F: ]; p- `5 O
- (defun LispEd (contents / fname dcl state)8 k8 g9 k" I9 p" D v. k
- (if (not (setq fname (getvar "program")))
8 Z2 V3 D6 q5 J {$ z x4 q - (setq fname "acad")5 m- E( }/ W$ `. ~* s: k) [
- )
/ x# ~- C- N$ k - (strcat fname ".dcl")
/ s% P" s6 n/ b ]& |5 G1 s. J - (setq dcl (load_dialog fname))
2 `) W; z2 ]6 d0 t% ? - (if (not (new_dialog "LispEd" dcl)) (exit))) {% B( Q, K! Q. h3 R% a( x' Y: C' r
- (set_tile "contents" contents)
" I# B: H, @/ D: c - (mode_tile "contents" 2)% f& J9 |" M6 Y& Q' o+ m5 R5 R
- (action_tile "contents" "(setq contents $value)")
7 C# p6 ]/ q5 Z& [5 } - (action_tile "accept" "(done_dialog 1)")
+ n% I3 l2 e% F u - (action_tile "mtexted" "(done_dialog 2)" )
( o( _; J# n E$ v t- e - (setq state (start_dialog))" J7 n* ^, I8 W; j. A/ d) E
- (unload_dialog dcl)
, ~* l& J' ?5 r2 W! U' ^$ i* g - (cond
$ |' t# Q! z. T/ X; c( n+ i - ((= state 1) contents)- `% P' p$ E5 M4 k1 U; `
- ((= state 2) -1)
1 c% B6 t! S) W. {+ L - (t 0)
) Q. c% {$ r7 E. r/ j0 |6 I, ^ - )/ W; Q( n" i& ?2 z' X! r8 g T
- )) t: R# Y+ z+ t* c, W, s
# M9 \. R, r* W- ;;; ===== Discontinued commands =====) @' e- y& R3 `9 @8 [9 y
- (defun c:ddselect(/ cmdecho-save)
2 E( i, H1 n# ?9 U - (setq cmdecho-save (getvar "CMDECHO")): |/ c K, y" J
- (setvar "CMDECHO" 0)8 j; U, r$ H/ j+ U" O
- (command "._+options" 7)
1 C3 N# J1 ^' Q; Y% F9 I - (setvar "CMDECHO" cmdecho-save)
; W* d" W7 m! }7 i5 G$ p/ c - (princ)
& O8 l& l+ F! V" ]" @& i - )
3 Q. q3 N g: u) l, J - # [& a" [: ~& r8 h. _2 l
- (defun c:ddgrips(/ cmdecho-save)
9 p: _( Z0 |. A6 c6 t3 G5 Z; R - (setq cmdecho-save (getvar "CMDECHO"))
7 I: T3 m2 a' x3 d b - (setvar "CMDECHO" 0)
4 q% x" a9 G9 ~% D; W+ L - (command "._+options" 7)
( Q6 S; R0 v& N - (setvar "CMDECHO" cmdecho-save)- L7 |. V& X3 \7 E- `; G
- (princ)
5 E) s8 ?+ \1 ~/ v5 w - ); K2 \& w/ }, ?- j9 O
- ) v9 [! c, ?- G9 H6 Y6 E0 c
- (defun c:gifin ()
: {4 B& S- b" ?: K4 A3 ^6 ~ - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")- T; Q4 E$ I* [1 ] {7 a
- (princ)
9 n! V2 J M: `& e+ h! f - )
/ w' Q6 F5 H* h- K7 u- o; n' Q
- R5 f/ ~5 u h2 `$ O @ t' P# w- (defun c:pcxin ()" W- I) L1 u0 r2 n% Z8 n( T6 W
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
8 n4 x& G& T# ]3 x+ o - (princ)9 O2 V/ o; N+ J6 l
- )& o0 j8 f( V6 M: n( D
- ' w7 h3 B& J l$ p0 x# a
- (defun c:tiffin (): H3 Q# W% ` v9 E0 S' ^
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")$ O; c, V3 B V& C# X7 h
- (princ)
6 u$ Z, @0 V; Q3 o% U - )' E7 g6 R/ Q: V! {8 J
- 5 U% E4 N( m, W. ^9 J- o l; g+ b
- (defun c:ddemodes()" C* g5 Y% I' h
- (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.") Z1 I0 t. t8 H! t# d: g, w) \
- (princ)/ Q5 o$ V+ U3 |0 W+ A4 t
- )
2 }7 ~) H! M" n( o, v! I, w - ) o$ o. ~2 g: x U
- (defun c:ddrmodes(/ cmdecho-save)( H( M$ J+ s- \ E" D
- (setq cmdecho-save (getvar "CMDECHO"))
- E! {2 T' P) l# r% h% m& S - (setvar "CMDECHO" 0)) m: j2 i* g4 h8 B' Y
- (command "._+dsettings" 0)% p% r% w0 z) u3 K
- (setvar "CMDECHO" cmdecho-save)* |9 X' w# y/ `* Y/ d& s9 g
- (princ)
. g; p9 u- a$ v5 h/ F$ _ - )6 k' E, j. y* ^7 A
- 6 R& {, b) \4 J1 w8 t5 w5 _
- ;; HPCONFIG
* Q/ c' x% O, {: U* k. | - (defun c:hpconfig (/ hlppath)
9 Y- ^, n7 a: C9 C1 g( g - (if (not (setq hlppath (findfile "acad.hlp"))). h/ h! I4 ], G. \7 b5 p
- (setq hlppath ""))0 \, V6 Z, }' P! ]/ U
- (help hlppath "hpconfig")4 s4 F" n, x$ Z4 n O
- (princ)+ W2 Z" \ ?' {" J; Y$ H
- )7 B8 q9 v. ]" T
- 2 \. m) w% I, @" h
- ;; OCECONFIG
- x/ h- b8 v+ M Q9 T - (defun c:oceconfig (/ hlppath)' o2 T: h8 V" U3 y8 n8 Q
- (if (not (setq hlppath (findfile "acad.hlp"))). b6 N, ~: T8 W3 Y1 @' N
- (setq hlppath ""))4 X. H- B3 ^ e& ]1 W
- (help hlppath "oceconfig")
7 t# }1 d" S5 P - (princ)
5 _ f! K% [; k- y0 j. `" U" p8 y# Y - )# T; ?/ D9 K0 w( [' W1 q
- 2 Z2 ~( M, ~' d% Q( ^- f( h
- ;; CCONFIG
' Q9 S0 s; o: r, o7 y: K9 N4 ? - (defun c:cconfig (/ hlppath). i7 J8 P+ _7 L% P) Q9 B
- (if (not (setq hlppath (findfile "acad.hlp"))); L- J8 z( k4 l2 f+ D
- (setq hlppath ""))6 t# K4 N0 y" a" m
- (help hlppath "cconfig")
) Y- y6 w9 \+ Y9 X: P8 X. H - (princ)$ I/ b* U& Q$ U7 J# Q8 d
- )
; E( p! u7 f4 D1 B
: W0 R, }' I, g1 }- ;;; ===== AutoLoad =====( x% \5 I" m6 h: z3 E
- ' _. \ M2 w" O! t/ K# E; x7 j0 e
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
. c) k+ W8 X' G - ;;; for the name of a certain appplication <appname>.- e d; J; {( T3 m+ b! `
- ;;; Returns T if <appname> is loaded.
6 P. ]+ c4 T8 } - ' {/ B/ V0 C1 u
- (defun ai_AppLoaded (appname apptype)
1 H: _4 d. L6 P+ R* O9 b' s8 [5 d - (apply 'or9 V7 t0 O% H8 h' g- [; q
- (mapcar : ?) i! h* S) t! ^8 s
- '(lambda (j)
, I3 H: o6 O! v/ _9 O3 M - (wcmatch( t+ g5 e' f; t$ X3 M6 s+ B' b1 J& }
- (strcase j T)* u! @3 Z5 C+ H
- (strcase (strcat "*" appname "*") T)
* l: D% b( o9 o - ) - J2 L0 s# m& O$ O3 J9 g
- )
9 w( i( m1 @* N' R# J' N - (eval (list (read apptype)))( H9 {* Q! b1 P/ W+ R
- )9 M* a* i7 D5 H" l/ I9 p4 m. ~% R
- )- H% L# O, A' U/ Q) @' N, Q; [; ]
- )
, X( ?4 B6 P3 R; I$ b
; Q5 t# O/ ~! R0 @' B& C$ p' R- ;;
+ T/ K- L( e2 q! L3 R6 q* b - ;; Native Rx commands cannot be called with the "C:" syntax. They must
$ Z9 y* n2 y; w! u# \# u - ;; be called via (command). Therefore they require their own autoload ' c) ]: @% B# ^! [' o: A9 [# w
- ;; command.
) P3 k3 ~ g7 V, q; g! O" i - % Z' f- n% E; y9 b8 H
- (defun autonativeload (app cmdliste / qapp)! x7 U* g2 a% `2 a! m
- (setq qapp (strcat "\"" app "\""))
3 R* s- q' U( }- j - (setq initstring "\nInitializing...")
8 ~4 K* P1 p, [; I2 P; C - (mapcar
( o/ H7 H: r$ L# W. N7 [' z - '(lambda (cmd / nom_cmd native_cmd)3 w3 g- R* t+ A8 {+ T) w
- (progn
3 r3 K+ z) I. w' X% g - (setq nom_cmd (strcat "C:" cmd))7 }/ ~. w, r H
- (setq native_cmd (strcat "\"_" cmd "\""))1 G$ f* A0 u! `- i: a: [- ]0 ~
- (if (not (eval (read nom_cmd)))
% a; k" ^8 |1 `" _- {/ [ - (eval
: m% M$ P6 v1 ` - (read (strcat( b3 `, `2 j& O: f2 p H' k. b4 D
- "(defun " nom_cmd "()"
/ f( O9 z% y% A- ?3 b' I# F - "(setq m:err *error* *error* *merrmsg*)"- w- H3 Z* N- x) V, H. j% C
- "(if (ai_ffile " qapp ")"
1 _6 ?) Q: r0 y$ W: T* ~ - "(progn (princ initstring)": k9 Z' R/ X6 [. n2 P A
- "(_autoarxload " qapp ") (command " native_cmd "))"
$ c0 v, B% H$ r/ c* d4 [- P2 X - "(ai_nofile " qapp "))"
, S k: p# }( f4 D. W - "(setq *error* m:err m:err nil))"
9 p9 y% \6 b$ R0 l - ))))))
3 b* F& E( K6 A. d - cmdliste)) i$ v/ S' U. [6 ]
- nil
7 S1 c3 b4 W% D* J8 N ?, k - )! W5 p7 F6 S1 R
+ j3 H) k! {) L- (defun _autoqload (quoi app cmdliste / qapp symnam)
! Z7 w' l# w5 z1 T- s - (setq qapp (strcat "\"" app "\""))
' `$ a. q/ y, e! L. Y7 R$ ] - (setq initstring "\nInitializing...")
5 d: G. h6 X' c6 b. O3 Q - (mapcar
7 q6 M" ?# Y$ p' ^ - '(lambda (cmd / nom_cmd)
; Y$ l7 A' |* Z( W/ E: ^ - (progn' U5 w3 V5 H e+ b: @+ R4 L
- (setq nom_cmd (strcat "C:" cmd)); N4 R% X2 e9 c' ` }# v& X
- (if (not (eval (read nom_cmd)))# |" {1 d; |9 ~; Q0 Z f V" {
- (eval' h0 H6 h0 _) ?* I
- (read (strcat
7 o8 d6 G! c4 h - "(defun " nom_cmd "( / rtn)"
0 V# {5 B6 N3 Y) X- f- Y8 y - "(setq m:err *error* *error* *merrmsg*)"! a" V% ?0 P' g B# n
- "(if (ai_ffile " qapp ")"
& g' l5 n) t# A3 @% k - "(progn (princ initstring)"
) g4 ~9 T2 H" G3 p. }) d& u7 J5 f - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"5 _5 o4 g' s, N& B2 ~/ V
- "(ai_nofile " qapp "))"
5 t2 H( x; p8 f& d$ r2 t m& V - "(setq *error* m:err m:err nil)"& w" n. O& v" Z1 K9 r
- "rtn)"; v5 s$ J2 [/ A) Z5 s6 c
- )))))); p5 x1 c/ Q7 ?& [. s4 w
- cmdliste), C5 G4 q. G: H! D- f W. z
- nil/ C0 [( p4 X+ r5 X9 l
- )
0 j; a: _/ ?% Q0 h V/ e
& ~+ g8 h2 h. x p. T* r8 M. @- (defun autoload (app cmdliste)" A. f% U7 K5 F9 s
- (_autoqload "" app cmdliste)* ?8 E5 o* g+ d
- )% R) k, U2 ~) l* c$ d
- : H9 d/ s2 }. K3 H5 {
- (defun autoarxload (app cmdliste)& o. u# `' l& D
- (_autoqload "arx" app cmdliste), w) F( }' L) a: X& \+ X
- )7 v, j# e; D' D/ S$ A0 h
- / M2 k* u" a& x
- (defun autoarxacedload (app cmdliste / qapp symnam)
" X8 b, z) [% R; c( a - (setq qapp (strcat "\"" app "\""))& E5 T( x6 r; I3 `) l5 b d( N
- (setq initstring "\nInitializing..."). v3 y' |: \( J
- (mapcar7 c' Y: n4 O2 Y& v1 ]/ R
- '(lambda (cmd / nom_cmd)
/ V1 y* t* |" h. O1 s - (progn9 L! d* c5 |' J! q# F
- (setq nom_cmd (strcat "C:" cmd))
# H- v0 t$ T/ a% { - (if (not (eval (read nom_cmd)))
9 `9 z& w4 a: Q6 `" P - (eval
# L6 E3 m9 J0 X1 o6 ]) r5 W, g/ m - (read (strcat
6 W, K4 K- t9 R. Q9 o: ` - "(defun " nom_cmd "( / oldcmdecho)"* }- M5 u9 Y5 B' v9 w
- "(setq m:err *error* *error* *merrmsg*)"
+ S/ a) t. q' x+ a8 y - "(if (ai_ffile " qapp ")"3 W& w" V' j* j- o
- "(progn (princ initstring)"
9 ^8 t O; g. h' [7 y# A9 l - "(_autoarxload " qapp ")"5 l) P3 @1 m* i/ ^9 K
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
( [0 g8 o9 l& n# m J% N - "(setvar \"CMDECHO\" 0)"" K5 ?0 ^# U( v5 t9 t
- "(command " "\"_" cmd "\"" ")"; R1 U0 o9 g" l3 i+ a
- "(setvar \"CMDECHO\" oldcmdecho))"
. C" [/ h: @. E* R3 x4 d q - "(ai_nofile " qapp "))"
+ c9 K0 b5 m5 W8 B5 b! e - "(setq *error* m:err m:err nil)"- Y# Z8 O8 D, N6 ?# Y
- "(princ))"
5 `. A5 A7 v' n2 X* V$ u& O' A - ))))))/ C8 M+ j1 @& @ M% v) I" o
- cmdliste)* `& P; F% P/ L
- nil
, W8 I* l* ^6 i( G2 G1 k - )
5 b- P$ r- k. m+ A
/ H4 y6 L* d, ~! ?5 D \# `! q- (defun _autoload (app)
. j l d% ~* `0 t( b - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)$ ~/ w9 E* L& e) r# Z5 ]7 F
- (load app); G! [7 V; j2 G+ j8 k" T
- )
( C" ?, k5 ]! X) L - * u1 r. b; X0 n; L4 [- k7 p
- (defun _autoarxload (app)
, `+ P1 p+ x4 g2 z+ ~9 g# A; w - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)4 {0 l: S; |+ y* Z0 K/ j
- (arxload app) }1 u; F# S0 C- n, U3 J' u& _, i
- )7 S8 X4 e& E4 N# F) [7 v2 t
# v0 Q+ U* o8 b. Q( E! v- (defun ai_ffile (app)
( P- ~5 `7 ]' a% e, x3 s4 N! ]3 A) u - (or (findfile (strcat app ".lsp"))) S' T- A3 O1 k7 j5 f: i, v
- (findfile (strcat app ".exp"))" z# [7 J' Q% |, I
- (findfile (strcat app ".exe"))
9 I3 J. C" ~; v7 e* } - (findfile (strcat app ".arx"))% P M5 @7 ?6 Q5 N8 y- M
- (findfile app)
A- f) ~% ^$ O/ }2 G/ Z$ Z - )) e% W; V, a& A' a
- )" y* ^. Z; u0 E
! \, q) c) z) v! K/ ?0 [- (defun ai_nofile (filename): D; I) U0 s: A; Q$ p- a
- (princ
* w' ~5 W' ?# @/ L% N9 D. | - (strcat "\nThe file "
7 K' R: j- J# X; d- ` - filename/ l/ F0 R% A! i8 x
- "(.lsp/.exe/.arx) was not found in your search path folders."
0 ^4 P( s. L& B& A8 X! ^& Y4 N - )* ]8 d" x2 ~4 D! z
- )7 W4 l" {6 Y6 _- V! L
- (princ "\nCheck the installation of the support files and try again.")9 p+ u8 n( o o0 \; c+ t1 C1 k) Y- W- A; I
- (princ)
: B" h/ V2 m8 B6 N3 L1 m1 }2 }2 h - )
0 _, p* o/ l3 q) } K' X8 l - . S: ?. Z7 y3 U( m, V% N
' k$ O: v; k; }; H$ X( o1 g$ c- ;;;===== AutoLoad LISP Applications =====
5 H; O% y1 ^# j* Z: F) L5 p% m - ; Set help for those apps with a command line interface& F# c) L0 ]1 p6 R) F K' Y
2 C5 |6 u: R- t4 a! X" U2 d- (autoload "edge" '("edge"))
/ p* j3 [% H# q! x5 O* m/ c2 o - (setfunhelp "C:edge" "" "edge")
5 d3 [- \" ]0 K7 u, Y( ^ o' q- Z
/ Q6 Z4 {/ S4 Z( D& T- G3 E- (autoload "filter" '("filter " "filter"))
/ N' [9 G4 F1 H3 I - 3 ]( K$ x6 h2 l' L- P% e% K- B! r
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"# H+ b4 v6 z9 L1 }2 S( b4 w3 l
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")8 k7 ]1 |' e! @! H* Q+ i, D3 i
- )
) r- J4 w' \3 o$ [" u - (setfunhelp "C:3d" "" "3d")
" C+ h' K; u5 W, R3 v* X& A7 j - (setfunhelp "C:ai_box" "" "3d_box")4 M+ F9 V6 |/ {! G0 z" q; c
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")' ^5 R+ g1 o, R3 L: ]
- (setfunhelp "C:ai__wedge" "" "3d_wedge")
# C+ N: G4 T1 O& d. ~. [; ^ - (setfunhelp "C:ai_dome" "" "3d_dome")
2 _0 D: d) _2 T* ^9 G1 a7 M4 j - (setfunhelp "C:ai_mesh" "" "3d_mesh")
4 s% }; C$ I5 Y, h; t2 n# Y) @ - (setfunhelp "C:ai_sphere" "" "3d_sphere")
; P) p2 _( Y# l7 ` - (setfunhelp "C:ai_cone" "" "3d_cone")! l, P8 I" ~8 ?5 E
- (setfunhelp "C:ai_torus" "" "3d_torus")+ y) z+ e! x- `
- (setfunhelp "C:ai_dish" "" "3d_dish")
3 ^ v$ h: w; N6 ^& b - & L* ~( L' t& \% H& j; q: W" V1 m
- (autoload "3darray" '("3darray")): q- C. E* U1 E
- (setfunhelp "C:3darray" "" "3darray")5 o- F6 I' {3 C5 c" g/ Q1 M0 g
% q. D5 D. K/ q I- (autoload "ddvpoint" '("ddvpoint"))
[; I+ z' A6 c D$ r4 ] - ; y2 H; e. ?2 D+ V
- (autoload "mvsetup" '("mvsetup")) ?! k c5 d0 U1 w! @' y. q
- (setfunhelp "C:mvsetup" "" "mvsetup")
8 \ z2 ?9 J! S a
7 f$ g+ [) _. p3 T$ m+ `+ D- (autoload "ddptype" '("ddptype"))
/ n! q' W3 O0 w- G% }( X9 T - : l8 w8 C' i0 Y P1 i% [; B
- (autoload "attredef" '("attredef")), e/ C( U" c5 T2 z: S3 W- d& M
- (setfunhelp "C:attredef" "" "attredef")
& D& w. _" b# k) u! P) U, p
! @' K0 O& ^8 W: W8 C4 ` z3 N- (autoload "xplode" '("xp" "xplode"))9 C, @5 Q& p! C6 ~+ l; I# [; ]
- (setfunhelp "C:xplode" "" "xplode")
$ g8 K2 l6 d: ]8 o7 _! x
9 q4 a9 c4 \( [. C; \3 k2 {# h2 [5 J- (autoload "tutorial" '("tutdemo" "tutclear"6 ]7 @$ F7 `! w; E- x7 ]
- "tutdemo"
, }/ H" u- O# B5 r3 E - "tutclear"))" h. v' S3 Z! w" n) i. U4 W- Z
5 X/ Q2 a* o6 L: r- ;;;===== AutoArxLoad Arx Applications =====
+ ^9 a' Y) k6 {" u$ [; x: ~ - * \) B' j0 C4 e
- (autoarxload "geomcal" '("cal" "cal"))% L% n/ ~* R6 f* I1 Y
- . g0 M9 j1 m' Y! V' S3 L3 i
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"+ e: d$ H3 X, k& X
- "mirror3d" "rotate3d"
% n2 Z. O. N' H& Z! ~' n! } - "align"))1 i2 }& h% P0 O; v4 w
- 4 [2 l2 R7 }1 n3 r f% { W# j8 H
- : P! O$ Z. t5 J7 X
- ;;; ===== Double byte character handling functions =====. _9 b& N& k7 G) R0 @! e6 g! ]; Y
, d4 r! _5 r- P- (defun is_lead_byte(code)
5 ]: z% n* R& s y - (setq asia_cd (getvar "dwgcodepage"))
" X6 j4 h& |# N/ j9 D - (cond
1 i4 ?7 X3 P. m+ j- D2 H* w - ( (or (= asia_cd "dos932")
1 f0 V) R a/ y: [1 @' R) a! {8 \ - (= asia_cd "ANSI_932")
& t5 g( Q8 d9 t2 t( s# P6 I - )0 U0 X- u3 ]+ Q( y
- (or (and (<= 129 code) (<= code 159))9 C, W: H1 M, p$ ]5 C7 \' h. x
- (and (<= 224 code) (<= code 252))) c3 c3 H6 A% w: {" z) V( [: y
- )
9 h" ?& e9 F( z - )2 g$ v) p% h e! e& S( O
- ( (or (= asia_cd "big5")- V: n& t* u$ h
- (= asia_cd "ANSI_950")
' j/ R$ @( {) `+ L P6 N6 U - ); P6 v2 v. T. k3 ?2 W
- (and (<= 129 code) (<= code 254))! O# f6 P% _- o2 `
- ): o, p" d/ o& D; j2 p8 ]" o
- ( (or (= asia_cd "gb2312")
* Q. D" Z' E( T - (= asia_cd "ANSI_936")
U8 p2 U' n7 R( ?& O3 K( U& O - )
; k* N" {. o$ ^6 F - (and (<= 161 code) (<= code 254))) ~: ]4 Y* i5 g9 r U6 ]
- )/ R3 D& H* z$ ~- Q+ W4 M
- ( (or (= asia_cd "johab")8 Y7 y# `, s: o& y E
- (= asia_cd "ANSI_1361")6 \* O/ \8 Q! T; X6 ^+ c+ L
- )( }2 u) b5 K1 y, V
- (and (<= 132 code) (<= code 211))
- n' O) m E3 [. O F" g4 A - )
: A5 L" t5 ^9 N1 h5 P- T3 Q$ _! `1 ^ - ( (or (= asia_cd "ksc5601")
; T7 w' j# j& ^, z - (= asia_cd "ANSI_949")
+ ?- H+ h1 X& N b5 w6 n& K - )
. T; X2 E1 K3 \* u5 r4 A; L, e - (and (<= 129 code) (<= code 254))( b) D. Q8 l' ?2 D8 l
- )4 z! r O1 f+ K. i# H; P
- )
: L, `5 X* N' n' @ P - )' z! \$ x: V2 ~4 C0 Z
, ?. C/ o* y1 A: v- ;;; ====================================================( D% D* A* i0 e1 w" H$ F; h; q
* |% S- Z# ^0 }1 T4 K# k: k
& g% d+ E( O9 o1 S/ \- ;;;
& E( Z4 J9 ?3 {% j' m - ;;; FITSTR2LEN! Q1 W/ a2 v$ q3 j# c, s
- ;;;3 {; D6 r: C. L. m s
- ;;; Truncates the given string to the given length. ! [3 F+ P+ O! K9 k. s( S8 L \
- ;;; This function should be used to fit symbol table names, that3 t w+ b0 B" i& S0 k2 m
- ;;; may turn into \U+ sequences into a given size to be displayed, Y. {( k1 }! l
- ;;; inside a dialog box./ i- @- R" d8 U& Z) [
- ;;;2 T6 c9 M# D0 _% n) W5 Q' j
- ;;; Ex: the following string: # C- e# z+ e9 h* a( W
- ;;;* {4 E4 L! T# n) [
- ;;; "This is a long string that will not fit into a 32 character static text box."
6 d W$ z9 p- ^" U# j - ;;;
' y8 p( ?, O, t. i4 ?/ y0 w0 G - ;;; would display as a 32 character long string as follows:1 x% L o& |& h$ X" Z
- ;;;4 E# I. @9 {% A) G9 T
- ;;; "This is a long...tatic text box."
6 r, z9 t9 H" c, q7 p - ;;;
* ]) y4 g2 s! a- r5 r+ F - ! \) v+ L( O+ ?, l9 I( t
- (defun fitstr2len (str1 maxlen)
% l1 V0 Y6 k3 J1 z5 r+ C: ?* {
4 A5 B* F1 @ {' X, Q$ Q- ;;; initialize internals; q1 w7 Q4 I5 ~. e
- (setq tmpstr str1)
6 e- w5 w* g- A6 o+ [3 j - (setq len (strlen tmpstr))+ [ c8 G" R# U5 `% K2 n: p: Y
- ) X5 R3 ?* ~ W+ q1 I' ]
- (if (> len maxlen) 2 Q1 z: |7 ?0 X3 m
- (progn- Z0 s7 F1 b2 C
- (setq maxlen2 (/ maxlen 2))
* Q j0 w0 Q% D' w7 y - (if (> maxlen (* maxlen2 2))
( m: f3 {. ?7 H8 x7 w( T! J - (setq maxlen2 (- maxlen2 1))" Z! z% H7 F( d
- ): I5 a9 m) y; I E; U
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
* ^% q- p) ^/ |; a5 H/ a8 Q - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))& N6 w* b. x3 ~. ?
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
; O/ q/ ?, r7 E2 b# a, w' y - )* F* L: b) G9 p
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
L, U& t- `& O9 M# M0 h4 A; p - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))5 a0 `) @, p; d2 D
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))9 K8 Z8 N- ` }! S+ n' T
- )( [4 z8 q/ a2 I; Q1 F* P) Q
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
J8 A* J+ ~# ^7 O% a) y7 ] - ) ;;; progn% w: F0 ?3 L' O& O
- (setq str2 (strcat tmpstr))* _6 H" p; `/ X+ H
- ) ;;; if6 P( r! t+ f$ D; l" ^
- ) ;;; defun
3 ^+ x" V; R4 O+ x) d6 B
6 A/ g: h, y8 R7 o. N9 s
2 L% q4 [" l3 N( E+ s" U- ;;;- {$ O3 b: J; m% ~
- ;;; If the first object in a selection set has an attached URL& G# Q# u( I$ r5 B6 m
- ;;; Then launch browser and point to the URL.
' B. t. q; B+ g; l4 A- S& ? - ;;; Called by the Grips Cursor Menu4 R. U/ H) P& o" k
- ;;;6 s# i- _# y- O. C& ?* e+ b/ S) c
- 0 W9 O0 l" x* |+ S9 [& k3 m
- (defun C:gotourl ( / ssurl url i)
% w6 c" d+ z8 B6 m3 F& D9 g+ ] - (setq m:err *error* *error* *merrmsg* i 0)1 v. Y5 z# ?" \5 l# \
- ( b! J1 H9 h# l, X+ J1 M
- ; if some objects are not already pickfirst selected, # R% e/ Z. i7 @5 Z: ^$ @
- ; then allow objects to be selected/ o/ S) k" l" o( Y( _
- E8 D7 ?5 ? H8 Q, N: ~; x g8 ^- (if (not (setq ssurl (ssget "_I")))
0 q2 P5 S' t6 Z9 I - (setq ssurl (ssget))
' M% p: P) f( Z$ R& m. H$ h - )# e' Q1 y u P/ Y3 A. ?; M
+ @! H( ?6 z; W% B: X$ y% q- ; if geturl LISP command not found then load arx application
, t' P3 d! V2 M3 k7 M! @
2 |; S( a! [4 `1 ]. G J' C- (if (/= (type geturl) 'EXRXSUBR)% s7 ]( z5 i. l/ _9 m
- (arxload "dwfout")
! b! z, @+ I1 h# Q: [9 c1 f - )* ~ N0 v8 m& Q9 S' j1 u
-
+ [6 ?, A6 {+ l# g6 p - ; Search list for first object with an URL# s, I; S) T- C4 Z2 u( }1 a0 A
- (while (and (= url nil) (< i (sslength ssurl)))
$ R7 b& x' k0 v3 B! P- |" H - (setq url (geturl (ssname ssurl i))1 i& l6 n/ i: C* S
- i (1+ i))' v0 c6 F& D* C, ?. p& s
- )) \" s$ c0 n$ z5 f3 f& N
4 w2 y, i( y) [1 T6 e! u- ; If an URL has be found, open browser and point to URL; j8 ~/ ?/ [% G4 y% D" K4 q
- (if (= url nil)
! B, X8 J) B. N - (alert "No Universal Resource Locator associated with the object.")7 T! k8 v2 n' S, z Y6 W
- (command "_.browser" url)* @, S$ g! V; b+ g$ @; y
- )
' f$ d7 s F7 w" _8 \ - . ?' Y& ^: A! ~5 [0 k
- (setq *error* m:err m:err nil)
0 l1 v' j1 J& g% g! B+ @! w6 } - (princ)0 ]5 [7 Q+ c: _5 _5 X
- % e1 _- F" ~& e4 _1 W* ?( F
- )& w; N: V) t, h
0 _/ i8 S: ?$ m! m8 d- ;; Used by the import dialog to silently load a 3ds file
1 u4 y; R/ D0 ^3 M- Y - (defun import3ds (filename / filedia_old render)/ A V; p. i0 V( j" Z0 v. Y& D
- ;; Load Render if not loaded/ G i1 L7 N! n- y9 K$ u" V! t
- (setq render (findfile "acRender.arx"))' y5 K! O" M; B5 q/ ^2 S6 F: S7 c6 B
- (if render
3 G$ j4 s' [( J" `7 o$ g9 F2 Q& I - (verify_arxapp_loaded render) ) G5 Q% s* m6 x6 X& F2 x+ ]" Z
- (quit)- U' L3 [. h; [ G7 s, T
- )6 L2 u/ o6 I5 x5 J2 f5 a
- ' y% `8 D* O5 {/ i. s! e# Q
- ;; Save current filedia & cmdecho setting.1 `. E- N/ o/ S! ^
- (setq filedia-save (getvar "FILEDIA"))
9 V5 U/ P9 n! p, Q$ N; y9 y; { - (setq cmdecho-save (getvar "CMDECHO"))0 z# B9 k+ B! o; b3 N+ }7 t
- (setvar "FILEDIA" 0)
. k+ h6 R2 [5 ^$ Z$ \$ p9 ` - (setvar "CMDECHO" 0)
. s! J7 a# ^" J, i - 7 L5 c; ^5 ]* w# P" S+ K# M! O
- ;; Call 3DSIN and pass in filename.
: Y) @5 L% I* p+ ~' [5 P/ ? - (c:3dsin 1 filename)' F0 U* O, z0 k$ }8 A1 ?* Z6 V
0 v, P2 f' s9 [2 n0 G7 h" \- ;; Reset filedia & cmdecho* P/ b- n8 @5 m. |
- (setvar "FILEDIA" filedia-save)
+ f. t1 z7 ]% d$ m1 r - (setvar "CMDECHO" cmdecho-save)
1 _4 W7 ~4 j4 g8 w+ {( Z& T - (princ)! M1 B+ K9 B! B4 ]- a4 Z; _ Y
- )3 V, Q0 }) k9 f; B! J. t
* ^' z8 Y5 f; A+ p" [* ?; {- $ ? ?3 F* f1 k* f1 K# P
- ;;;=== Menu Functions ======================================7 ]& f* V/ d% z0 ?
' o ]- P; w( z& K3 }- (defun ai_rootmenus () C) D- j% u" o( `- X2 ?; B" d
- (setq T_MENU 0)' u r7 b. @9 B! c4 K2 P0 o
- (menucmd "S=S")
7 w, k; o, g5 z( @* u/ A3 Q, V - (menucmd "S=ACAD.S")0 }+ H3 ]) c2 L
- (princ)
* g* d% m3 Y" i! F - ): i7 Q/ A# A) d" B% ~) r1 @
3 r/ E6 B, }$ a4 d, U- (defun c:ai_fms ( / fmsa fmsb)
6 P2 E* D& U9 E% J - (setq m:err *error* *error* *merr*) O. ?6 Q/ A' y: R- |$ L, B( q
- (ai_undo_push)# m/ M" }3 a) u2 S' u$ f6 u* X
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0)); G, ~$ k4 M/ F/ ]- Y' ?
- (setq fmsa (vports) fmsb (nth 0 fmsa))
# z7 t" b- A5 w' |6 S - (if (member 1 fmsb)
: \: S7 N# d2 E - (if (> (length fmsa) 1)
2 ^- ]# V, o. W2 Z - (command "_.mspace")
) c2 C9 C+ W/ _ l$ Y - (progn
- r9 X9 w- N+ r9 L$ k9 H% w2 ^; m* C - (ai_sysvar '("cmdecho" . 1))
" ?) t' N* e6 e! O4 ?5 d - (command "_.mview")$ J# Z m% m) j/ _* G8 H, |* `, C
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
& f' L" { i4 E* `# f1 H0 ?2 ^ - (command pause)
- b) {6 V4 \1 Z' P+ S l0 I - )- m; T! F7 C8 Z% Y( u8 q% h, B
- (ai_sysvar NIL)
5 }4 q- V( a* B/ z' L - (command "_.mspace")( L$ T) P* i' y4 {: V9 m. Y+ ^4 a2 K
- )
! X, n- U/ W# p7 | - )
8 K# G/ N. O5 v4 `4 c7 O- q - )
/ d0 r( S& A$ `. t& B$ m! p - (ai_undo_pop)
( c1 J' i* J; } - (setq *error* m:err m:err nil), R5 R9 K. K- L# p( z; l8 y
- (princ)+ P7 e4 K6 @1 c
- )6 w* \2 j% e9 K4 Y
- . E# U% u$ }' h; L
- (defun ai_onoff (var)
`( u" ?# e2 C. o' O, D B$ k9 Z - (setvar var (abs (1- (getvar var))))
/ O! o2 x! W0 A( I0 I - (princ)
9 M- x# N0 j, T! d/ p - )' y' w- s O$ V% X( \5 y8 X
, f% \) R+ ^0 ?! z: x. J- ;;; go to paper space4 `/ u/ C' h8 ~4 P1 Y
- (defun c:ai_pspace ()
, R& C6 A: T+ t9 y - (ai_undo_push)0 W# s, i3 }* F
- (if (/= 0 (getvar "tilemode"))1 _" u* L: _8 k9 I% V9 h8 Y4 H9 T
- (command "_.tilemode" 0)
& O; L g) N! [: E) A( J - )2 V9 l4 Q" Y) { c1 q& M# _
- (if (/= 1 (getvar "cvport"))
2 K8 C7 z/ X" U3 w& z% g7 `6 V$ W - (command "_.pspace")0 ^" w$ ~6 c" Q+ h3 I2 S: g6 q: w' Y
- )
; ^8 [! [4 F4 N5 H; { - (ai_undo_pop)( E# R" I1 F5 A4 o$ H6 M
- (princ)
" g/ W5 L% Y) \+ M% j& A - ) q& R( @% y- J0 a# \; E
- 3 o# p+ x; Y* X1 k6 Z
- ;;; go to tilemode 1
4 \/ T' B) T, l! S1 c8 p - (defun c:ai_tilemode1 ()
6 i: z( n! m" _6 ] - (ai_undo_push)' U" B3 Q& k8 ~
- (if (/= 1 (getvar "tilemode"))
- l3 O& j! k1 N. a" I3 b8 w, | - (command "_.tilemode" 1)" \7 Y4 M" Y# M _( l2 D# `
- )" y; b# I$ p* u- _
- (ai_undo_pop)7 M$ k0 \% K! l* Q X3 I- L% n
- (princ)! T- i0 q% z8 K% e H: A
- )
8 U4 G. D0 v9 @1 F0 S$ k
, B5 g4 H* F7 k3 d) ^- ;;; Pop menu Draw/ Dim/ Align Text/ Centered: G; i: N3 u+ z9 b8 H# O
- ;;; Toolbar Dimensions/ Align Text/ Centered/ A8 ?; ]4 {8 }3 B/ @8 X
7 N" M' }6 n" S+ a7 E* h& \1 r- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
/ X# E/ |2 g# N) E( d' Q$ P* B - (setq ai_sysvar (getvar "cmdecho"))
: `( l; M3 d+ O - (setvar "cmdecho" 0)5 G3 Z7 | N- T5 G
- (cond
; R6 r! L- h$ V6 k8 z3 ^: c) } - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))/ G( R+ H1 f) W6 {0 B& X$ x$ r
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" ( ?6 ~2 X! d7 \& x/ [
- "_.dimtedit" ai_dim_ss "_h")
7 v, c$ [' J( e. A9 Y X - )9 g& ]& E2 p! B0 P3 S8 [! R
- (T nil)' G$ D9 P: L6 D. m' Y) L6 X, @2 s7 ]
- )6 ], c: }9 c) h) K5 P8 Y
- (setvar "cmdecho" ai_sysvar)) q4 z* ~ Q" H- q
- (princ)6 z" h9 N6 M7 U2 _7 g, f
- )
4 D# A5 G1 e7 l( _9 i3 s+ n - , v7 C# p" t: q) m
- ;;; Shortcut menu for Dimension Text Above
7 Q8 K( o$ p/ x! a! ?
" F3 q; Q( {+ c0 D) V$ N2 Y, K- (defun c:ai_dim_textabove (/ ss)
1 G5 S' Q/ P( K0 P+ R2 s - (ai_sysvar '("cmdecho" . 0))
3 }; |+ N& U# j/ U: B% D/ S* Q) G - (if (setq ss (ssget "_I"))
" @+ _( l9 ]- w1 _ - (command "_.dimoverride" "_dimtad" 3 "" ss "")7 `2 D; f$ k* x
- (if (setq ss (ssget))
0 l8 Z5 U% B; `* N4 E1 i0 ` - (command "_.dimoverride" "_dimtad" 3 "" ss "")
2 c; k+ n2 @; t/ E( J/ f: y- T* f - )9 m* N5 o, j3 ~, c2 K) n
- )
0 i) Q$ c1 [8 j1 o$ ^/ { - (ai_sysvar NIL)
6 m3 l7 Y" y* ^" J* j - (princ)5 t0 ]0 v- ~0 m
- )
$ J0 i! `9 a; F5 O7 L - 5 H. _% l' k3 c* g7 [
- ;;; Shortcut menu for Dimension Text Center
: |% z c9 |1 {& T( P - ' x3 F" N8 H& [# y0 A1 X1 {5 t
- (defun c:ai_dim_textcenter (/ ss)7 D1 p4 v# r: s% d
- (ai_sysvar '("cmdecho" . 0))
" u& s& s7 f5 d* l2 a - (if (setq ss (ssget "_I"))
7 a$ ]: b- v5 I - (command "_.dimoverride" "_dimtad" 0 "" ss "")
4 \+ T+ C! \8 w B$ i7 ~7 k - (if (setq ss (ssget))( h' t0 D5 o% u7 ?8 S# c4 |- J
- (command "_.dimoverride" "_dimtad" 0 "" ss "") / D) v% b2 A" s* e
- ), c" ^( a4 ]" f4 Y
- )
; e6 I/ a% ~/ D0 j7 {0 `# l. v! } - (ai_sysvar NIL)
4 q5 a) c% C/ L* d1 U - (princ)& z) A3 b) _' d' G% [+ q5 r8 }
- )$ X3 o- x. C/ y# [$ x
5 E+ x- `: h! j' I. j/ T2 P: R- ;;; Shortcut menu for Dimension Text Home
; a9 l0 r* Q1 A" O: k, {: p - 2 ^# b( {. i/ [. R9 u/ _! B
- (defun c:ai_dim_texthome (/ ss)
( s' Q; Z+ \: U# h( D - (ai_sysvar '("cmdecho" . 0))- i9 f3 j( e7 J, W- N9 U$ }1 `6 i
- (if (setq ss (ssget "_I"))
" ?% T1 J, w# v5 `- t - (command "_.dimedit" "_h")
1 M/ K! c" j+ } - (if (setq ss (ssget))6 }! j. ]) n( M( E8 N+ u: F
- (command "_.dimedit" "_h" ss)
7 K$ N+ s7 h/ V# g - )
" r* H; L) c7 g7 X& b - )
9 p( _- H6 l& R- f( D% ? - (ai_sysvar NIL)& i% O4 \- P3 @$ m
- (princ)4 B5 ~, R* K" Z: _' B+ L
- )
% ~5 o( n& r' E0 d4 | {0 [ g - 4 N1 `$ B! ?+ f
- 2 M1 ]7 X+ g1 \1 t }# ^
- ;;; Screen menu item for CIRCLE TaTaTan option.
, @3 R1 w' O+ W/ F* y - ;;; first, get points on entities
# V; C, p3 f5 c- w9 ~$ v - (defun ai_circtanstart(), F* V* P/ {4 m! V& D
- (setq m:err *error* *error* *merr*)
& C/ ^% B" V c, b. \+ i( O9 o - (ai_sysvar
# A" L# Y; G0 U5 {/ s - (list '("cmdecho" . 0)
, |' ~/ S1 c/ ]! t/ _ - ;; make sure _tan pick for CIRCLE gets same entity
! m, f- S" B, C3 Q6 u - (cons "aperture" (getvar "pickbox"))
, n" `) H+ W* |4 }) ^( _ - )
+ n8 b+ j: t# W$ E: L+ g - )( B \% V5 B& H, e- h
- ;; prompts are the same as CIRCLE/TTR command option4 ]4 a) K6 }+ J+ s) W* S5 q) j2 A/ Y
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
6 h# L) r( L' A0 Y+ ~% ~( F& a - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil)); ]5 V) ~) V1 T0 A% [2 R H( [
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
# \. o" ~/ L( g - )
! m& q( N! Z8 [* z" `1 T - ;;; Command-line version* D0 X2 y+ K2 f1 g
- (defun c:ai_circtan (/ pt1 pt2 pt3)
9 O* f+ G3 }) n* z* ?) | - (ai_circtanstart)& k+ i6 l4 ?/ w% t# l6 i
- 4 G$ u$ b" `" h7 G5 K
- (ai_sysvar '("osmode" . 256))+ u0 J% V9 P# o$ | [
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
: h, x6 U c# T# s2 | - 7 m3 m7 b8 A4 k
- (ai_sysvar nil)
! l9 h. o8 E1 \8 B1 d - (setq *error* m:err m:err nil)
3 e% i( _4 X( g3 J: J - (princ)
* h! S+ }! A1 n - )+ z3 l0 }' w9 |$ W
- ;;; Use this if CMDNAMES == CIRCLE
; N% @5 B7 N5 m8 Z9 a; X - (defun ai_circtan (/ pt1 pt2 pt3)" e- u7 e% R# ~0 p/ E
- (ai_circtanstart); L# M4 F' f- G1 J7 h3 c
- : i" ]8 Q; _# f( a; _' F5 h
- (ai_sysvar '("osmode" . 256))
& @# Z! ]( w, t" a - (command "_3p" pt1 pt2 pt3)
- Y+ f' }+ ?( ]8 R- k - , x2 t) A5 f- V
- (ai_sysvar nil)5 O& F: p! y9 @) v1 X
- (setq *error* m:err m:err nil)
, B, Q' Y2 Q5 M - (princ)
# w. M9 k5 M/ }; [ - )8 Z- w9 x1 m" h- J( C' r$ \9 O) f
- 9 j% i8 S6 q; t) S
- 0 g E3 {9 X9 Y+ G. |) B
- 6 a: E# h8 m( s
- ;;; Shortcut menu Deselect All item.7 `" F2 S9 r3 O L+ a
- $ K" v: }3 v2 ~) r% q1 p7 ?
- (defun ai_deselect ()
" G. L6 @; \3 z2 _$ E9 U+ C - (if (= (getvar "cmdecho") 0) ;start if/ x/ [" ~; T. n" K. b
- (command "_.select" "_r" "_all" "")9 n( X1 x/ M$ ]! O
- (progn ;start progn for cmdecho 1
! w7 F3 K W2 Q3 [1 d y - (setvar "cmdecho" 0)! `5 e# N9 @4 p$ g0 e- x+ D/ A
- (command "_.select" "_r" "_all" "")
* g7 b% ?3 _: m4 Q - (setvar "cmdecho" 1)( |: w% v5 c! D# `
- ) ;end progn for cmdecho 1$ X% g' b/ I9 S/ H
- ) ;end if+ s5 m. l6 D" L9 B% g
- (terpri)
% D7 c7 N: j0 `* m1 g - (prompt "Everything has been deselected")( M) S# ]% |# n% r
- (princ)' O J: Z6 O! s
- )# Y3 |4 I# y V- F- X! N
# j I6 i8 L# {4 V- ;;; Command version of ai_deselect to be called from the CUI
7 G( y3 o9 Y& X7 ^) L5 l - ;;; so it gets properly recorded by the Action Recorder% q; N: g/ v4 k
- ;;; R* b* e# I7 b5 p. f3 |
- (defun c:ai_deselect ()" j/ \! x+ i6 M6 I! `$ L
- (ai_deselect)
' e2 d0 j' r9 L- b M% | - (princ), ~; \5 c) I% P
- )
7 |8 {$ C! w# G: T - ( [' w' F9 U! l
- ;;;- H- ]& r% b G9 J" [
- ;;; Enable Draworder to be called from a menu" ^8 f6 B( D+ m; ~ N/ s% K ?1 M
- ;;; Checks for Pickfirst selected objects
, E0 L l1 j5 s! t, v- {$ O; u4 B - ;;;
6 A/ t1 E! e/ C ]/ f- N - 1 i- n# F1 e+ V1 O1 S
- (defun ai_draworder (option / ss )+ p; c, Y) D$ [" Q) F2 ]
8 ^! _. c# ]# U" s- (setq m:err *error* *error* *merr*)
* u5 @! k5 n- @( D; b, o# T - (ai_sysvar '("cmdecho" . 0))
1 `/ E& D0 I/ n2 w3 A, o% _
% p" |. z, {. C6 l# l7 r+ Z- (if (setq ss (ssget "_I"))# a0 h4 g& M3 d2 P8 d, z
- (command "_.draworder" option)6 v7 a: d2 v% r
- (if (setq ss (ssget))
5 U9 C a- m/ L- s - (command "_.draworder" ss "" option)
$ [* r( q$ X- X% ~+ j& c$ T - ); ^! j9 ^# l1 e; v# n3 h* p
- )
+ \. j+ s- K4 v8 ^$ H5 G - (ai_sysvar NIL)/ r, Q: @6 d, S1 G
- (setq *error* m:err m:err nil)
: ~. M9 ^; T; L6 r. f# t/ ~4 I
, f- i$ o* `1 s% v7 C) Y# b- (princ), `" z( f( P1 c! d
- )9 ~! i' L8 O8 _$ N
. P) C; \- l2 |/ i. }3 U- ;;; Command version of ai_draworder to be called from the CUI( z4 r, a; o& J" H T. |% l
- ;;; so it gets properly recorded by the Action Recorder6 }: U! ~5 O* O6 O u
- ;;;1 e y8 ~- N! E$ v" M$ C7 H: e/ `
- (defun c:ai_draworder ()
* C8 I/ `. n5 x8 ^5 p# ~ - (initget "Above Under Front Back")
' f% N( ?# ]9 O" P- M' b4 Z - (ai_draworder (strcat "_" (getkword)))
, S# S. E U( z/ N' w - (princ)
; J1 t+ N" s4 h0 b3 G7 M - )
% z7 V8 E0 ]+ J3 s9 _ - ( X/ Q& w& \8 }& l H$ {* V
- (defun c:vlisp ()
1 R! J3 _3 B& U4 } - (if (/= nil c:vlide) (c:vlide))
" h8 l/ P0 L6 i# c6 g( i3 n - )/ ^- y4 X: _/ G9 ?9 g$ v
0 I- ?7 \3 e5 L8 V' H& w& y: U- (princ "loaded.")
* I% |* [7 B4 B. z
6 P0 ^9 Z8 } d& _- ;; Silent load.5 s- p# P8 q( }& I5 x& @
- (princ)( F+ r6 I, E# N- W$ j5 }) d3 Y: o( u
- % W8 L) y, d. I6 f
- ;;;----------------------------------------------------------------------------
" l* B: h* b, R, `2 j% S) _/ [' a - ;;;0 s8 A6 H1 W& T. \0 H
- ;;; DDCHPROP.LSP Version 0.5" n% h% G/ B5 T; O# f
- ;;;% o& ^( p$ x: p v& L; x4 p
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.5 \6 P( S' \$ O5 x& D' {: Z
- ;;;
' a( E( h9 N; g/ G - ;;; Permission to use, copy, modify, and distribute this software
3 E+ N0 |) H6 d6 [! G: N - ;;; for any purpose and without fee is hereby granted, provided
) _6 Y* v9 h) k8 C3 f - ;;; that the above copyright notice appears in all copies and that! t- p, m9 I$ y0 i# [- Y8 j# V
- ;;; both that copyright notice and this permission notice appear in
4 Y9 `* A" v# W" f* t w - ;;; all supporting documentation.
$ V7 T; Z/ u: t0 c, g - ;;;* r5 \: Q& L- a+ P* s9 F$ r
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
1 p* C9 ~5 r0 l, ` - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR% ]: V$ E, {' M2 Q* e$ \: X4 U
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
% H" y! F5 S# L - ;;;
, R' l: }# K1 G. a5 l7 E0 E9 L - ;;; 2 February 1992
( X+ Z9 I9 i8 K) }2 i6 d" e, T - ;;;
/ ?) b+ }9 F6 g! `- z- z% l& `8 B - ;;;----------------------------------------------------------------------------! J7 U5 {9 J1 Z6 W
- ;;; DESCRIPTION# C- q9 n1 V' Y. i& V
- ;;;----------------------------------------------------------------------------
, o$ o! T6 Y. }% \ - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
! E6 Y# h9 \, U/ ]8 G; [. W - ;;;$ ^; |* M" I; s/ E
- ;;; The command looks similar to DDEMODES. The main dialogue has an image * ~( Y, o) A G2 |, \
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). o2 {- D: w/ M& U. _& R
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
( F$ [ A) z! O/ M - ;;; The dialogues are all defined in the DDCHPROP.DCL file.
; L9 F g! C8 T, V - ;;;
0 t' Z9 R9 U* c- b - ;;;
7 A# j# U7 M' ^) w - ;;;----------------------------------------------------------------------------
# n; w3 } G( M( x9 R - ;;;----------------------------------------------------------------------------
8 j# x9 w# _; d. q - ;;; Prefixes in command and keyword strings: 3 B p. l% J, ?$ x. `
- ;;; "." specifies the built-in AutoCAD command in case it has been
; D. c. q' f C, ^0 ?+ y2 G0 H* a - ;;; redefined.
2 X8 _" V8 l0 K4 M - ;;; "_" denotes an AutoCAD command or keyword in the native language
- L# p1 b) N. }' h9 `1 S6 | - ;;; version, English.
, g$ Q$ a" K- B) b - ;;;----------------------------------------------------------------------------
% Z& V9 F0 ^$ [5 b2 Z+ G - ;;;/ U1 m; T, t9 v1 i: s5 O7 W0 W
- ;;;" F; C( s7 R8 R6 i( `; X0 r
- ;;; ===========================================================================* m7 c0 K2 X) y' z) r1 f- V
- ;;; ===================== load-time error checking ============================0 J6 k/ L; | t8 D& `
- ;;;
& w# C& h+ J0 F. \# a. Y9 v
2 L6 F0 F# i* L; C7 }5 f7 K- (defun ai_abort (app msg)6 y8 ?" p* J2 @ R0 h5 M
- (defun *error* (s)
( g( q+ x) I& K8 ]& c1 {8 U - (if old_error (setq *error* old_error))0 O! q& a( m n
- (princ)& V( I2 A- h. c) \& O6 D8 O
- )
U$ j1 P, n3 b& J - (if msg
7 v: x5 p$ h5 P/ y; A - (alert (strcat " Application error: "
% I2 N7 k" W7 Y$ d8 w" Z) U - app5 E' p- @( u( A) [/ j; @% Y
- " \n\n "
: ?+ Z# t. A6 G8 c+ e: s - msg! r$ {2 e8 D7 {0 }: B. [
- " \n". v: I6 s/ M1 H* C. @5 b* y
- )- Z3 R2 z- k3 V* ^% j7 N
- ), u7 }3 r- \3 r* F
- )8 v, C8 j3 D+ Z/ R, u+ ^
- (exit)
W" W' c! j( H! r - )
1 X9 j0 o, ?- ]9 x, p4 K5 {
: \8 Y/ e6 W3 t3 e) a, Z; \- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
3 h( R9 X' V8 q2 p3 F" J! \% {6 U1 N/ [ - ;;; and then try to load it./ I/ D: D' Y# i5 ?$ h3 y
- ;;;. Q3 S" ] O3 E Q
- ;;; If it can't be found or it can't be loaded, then abort the
% v$ ]% S* d! Q$ L, C. j( n - ;;; loading of this file immediately, preserving the (autoload)
% u- j3 \; q3 Q+ J9 w# x - ;;; stub function.
% q8 a# M0 n3 U" ?1 I - # t+ x9 J1 f0 O1 i
- (cond' |; ^6 @4 u2 |! N6 m2 J' M9 b8 Q$ J8 J
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded./ v2 v& M+ z0 K& ^0 {" F
- 7 m, r8 k; j9 d4 @
- ( (not (findfile "ai_utils.lsp")) ; find it
; {9 H3 I/ d& Z M+ n+ f - (ai_abort "DDCHPROP"
1 d( w5 ]: K5 D - (strcat "Can't locate file AI_UTILS.LSP."/ z3 I7 R. L: S, d* k' \
- "\n Check support directory.")))- r0 Z, {" B/ ^4 i* \
+ g0 U/ S7 [; o2 M' H# ~) y- t- ( (eq "failed" (load "ai_utils" "failed")) ; load it+ n( G- X; M$ ?/ I5 x: T
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
! L8 o2 n# n9 D2 m) ], m* Q - )
/ b: w/ }: s0 m+ B r1 a - 9 x; E5 W- V( t1 k0 A
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
! w' }$ P( T) `* j% X" r. e7 l# d - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses/ h. \ `# d8 K. B
- ) ; ai_abort's alert box dialog.
# V) i/ U: p3 a$ K, c - # Y' z3 X( G" P( d, m4 E8 j
- ;;; ==================== end load-time operations ===========================
5 n n. @/ ?+ j9 z: Z+ h% y0 K
p. Y( ]( ^1 I+ T- ;;; Initialize program subroutines and variables./ n8 \) P& ^2 m5 p4 ]' e# I
- 2 x6 A- d" s' M7 d& D
- (defun ddchprop_init ()
( L7 M. S+ E8 t% M. q1 T+ e - % }4 ?7 J' u) A* p; p
- ;;
: a& h @ B2 t a - ;; Define buttons and set values in CHPROP dialogue box 5 R5 Y# j3 x) T/ \- a7 z @& O. q3 I
- ;;8 q7 g, S* P2 _+ Q
- (defun call_chp ()# C# {" i, B1 ?7 T D
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))+ O; U& j5 G/ x% B" X
- (set_tile "error" "")! c1 Z1 t3 v) Z
- ;; Set initial dialogue tile values# o) r3 b0 h7 c5 j# y. w4 [( ?/ p
- (set_col_tile)
W; z( E+ {. K+ m6 C - (if (= lay-idx nil)& ]. _. Y: W, x g5 P5 A
- (set_tile "t_layer" "Varies")
$ u6 D9 e7 r) K/ \0 W - (set_tile "t_layer" (nth lay-idx laynmlst))
% I& e7 F% t7 R9 B1 {3 G - )
% L/ k8 B- C- F8 H3 t3 {. U5 `2 \' P - (cond
; p# S! w' O" V - ((= lt-idx nil)( I/ d5 m' \) M1 x9 T! e+ Z2 q
- (set_tile "t_ltype" "Varies")6 q1 a1 w9 r6 { {3 F3 Q
- )
& ` ^' h* C+ Y& b* ? - ((= lt-idx 0) ; set tile "By layer & layer linetype"8 a3 ?/ X7 x: Q, |; j
- (set_tile "t_ltype" (bylayer_lt))* w/ z" s7 z; l4 C
- )4 P9 _4 ?; W z
- (T
# H& Z8 e* {% d. T1 F - (set_tile "t_ltype" (nth lt-idx ltnmlst))9 u4 {& t! h4 Z8 P% _# A! n2 A$ m
- )3 s0 y# u+ T9 P% U8 X$ u: _
- )
/ Y' d; P' M' G) ^) w$ u - (if (or (= ethickness nil) (= ethickness "Varies"))
2 [6 R& C/ W9 }: o% Y6 L0 u5 p4 c - (set_tile "eb_thickness" "Varies")
' A$ |8 R a( M - (set_tile "eb_thickness" (rtos ethickness))& P+ c7 h. U) t
- )0 e" R% r) [8 x- N( m& P: `
- ;; Define action for tiles3 @$ L W2 x" D4 b6 j
- (action_tile "b_color" "(setq ecolor (getcolor))")
$ N/ H2 [: l; o1 [* r6 ]3 w( Y4 }2 p' S - (action_tile "show_image" "(setq ecolor (getcolor))")
' Q* D7 Z( @* }- J - (action_tile "b_name" "(setq elayer (getlayer))")' k, C, S) C" y Y8 C4 b
- (action_tile "b_line" "(setq eltype (getltype))")
, z1 @6 J9 @) d - (action_tile "eb_thickness" "(getthickness $value)")7 s4 ^7 `& z, ^. U# Q
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
g8 X& K! y5 X$ N, R* c4 U- y# ]# p - (action_tile "accept" "(test-ok)")7 _1 }! Z' Z# k4 }2 j
- (if (= (start_dialog) 1)+ v1 {) I* G1 F2 k1 J3 t
- (progn+ O+ J) j. k) O
- (command "_.chprop" ss "")
! _" \' h) o# @2 i - (if ecolor
( L. H M/ p) N6 G# c/ p - (progn, V# X& ^+ k6 k9 B% j
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
# z9 ~9 @- j5 w$ r/ B - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))6 f+ I c) i3 R3 @
- (command "_c" ecolor)
2 } ]( t5 c* B+ x) @6 O, { - )
8 M! @7 X9 r# x9 A. N( b - )* N: H7 P" @" ?" w9 @! }9 ^% s
- (if (and (/= eltype "Varies") lt-idx) W) ?, P8 Y2 k5 n" W
- (command "_lt" eltype)
& i: [* U6 p& Y& f6 R* | - )
; |7 g( Y/ V! y6 ?+ P - (if (and (/= elayer "Varies") lay-idx)
' w2 ]. S( T6 b) c( E - (command "_la" elayer)
( d$ t; z, O" Z - )
8 j% n8 R; N1 w; b - (if (and (/= ethickness "Varies") ethickness)
2 a! f) v) H: v# u5 R* c" e4 c2 l" J6 w/ F - (command "_t" ethickness)& F& v8 r4 w W1 i x
- )
; W, j+ k$ }; L9 r9 ~ - (command "")7 a& g. x4 C% K. m
- )# @4 G; X$ n+ p2 E: @6 @
- (princ "\nProperties unchanged")
r! I6 E. J: n3 x+ P" g% m - ). ^' J6 d) U# A
- (princ)
( z. M; z' x( q& I5 [ - )$ }- v4 k* h& H$ [# t; |/ A
- ;;
- k: N4 r0 g1 S0 w1 p - ;; Function to set the Color text tile and swab to the current color value. a6 T% R% @+ g! T9 ^
- ;;/ {0 R# P; u0 K6 @/ y5 ]3 {0 L
- (defun set_col_tile()
2 s N) \" [* h8 V( A; w - (cond " ^+ E! h' Q$ m5 b; A1 h6 ]5 H- V
- ((= ecolor nil). J# _$ Q5 q0 J( Z( k
- (set_tile "t_color" "Varies")8 y" ~+ d8 q, I2 d9 B7 u7 o4 c' h
- (col_tile "show_image" 0 nil)
! { ]/ Z* J' C, @4 B- d - )% ~$ W2 ^, J1 x$ K3 P9 |+ A! J+ w
- ((= ecolor 0)
* A, [! N6 }7 n - (set_tile "t_color" "BYBLOCK"): N/ J) h: x, |; @
- (col_tile "show_image" 0 nil). n7 j/ G$ K# g! O. s6 m
- )$ |1 ?* {% r" {) h/ N' E
- ((= ecolor 1)
# Y0 ]) z7 q. { - (set_tile "t_color" "1 red")
1 [# h& x& X8 L8 ^9 R - (col_tile "show_image" 1 nil)
3 V' i. N3 N T. v9 G. A - )+ p+ _. \/ n: K- D0 V H7 u
- ((= ecolor 2)
0 g$ [4 n$ f5 @& [* h5 ^8 O) C - (set_tile "t_color" "2 yellow")
1 f. f1 ]' o: H% Z - (col_tile "show_image" 2 nil)
. O. D! Z2 S, n3 i - ). H! {" Y/ ?! A7 N
- ((= ecolor 3)# z" g" @: Q/ Z! A# c
- (set_tile "t_color" "3 green")% z$ m- f% L! @& B1 K
- (col_tile "show_image" 3 nil)
( l: x1 W' o* |5 Z. w0 Q+ x - )
# n9 X1 J0 @; k$ | - ((= ecolor 4)
9 P3 G* }& c9 v/ m" v# U$ |' F5 W - (set_tile "t_color" "4 cyan")
. m+ l' I9 T5 [: A4 x, | - (col_tile "show_image" 4 nil)
* a* d: u6 E5 [, `) O' f- v - )
- p8 E& h/ W2 r9 D# [/ X: i N - ((= ecolor 5)4 |# Z8 [4 L; H* S' k4 ?
- (set_tile "t_color" "5 blue")
; ~3 ^1 J/ g% W; E - (col_tile "show_image" 5 nil)1 c8 l: ?4 E2 C1 l1 M1 C: h3 [) d8 R
- )
& y1 B0 m: Y! ` - ((= ecolor 6)2 P Q3 B; [7 S/ F
- (set_tile "t_color" "6 magenta")' M$ P& k- E) o$ ?
- (col_tile "show_image" 6 nil)9 p+ c: a# k1 _' P
- )0 |+ w1 k. j5 D4 V" W" {/ A- Y
- ((= ecolor 7); t- Q) Q' y* M5 M* P
- (set_tile "t_color" "7 white")
/ ]2 B" E3 i" E5 r. s - (col_tile "show_image" 7 nil)
7 v0 {+ w/ Y/ ~. z - )4 p X" `& r- S: W
- ;; If the color is "BYLAYER", then set the tile to: d$ H! w! D* R* x
- ;; show it's set By layer, but also indicate the% L1 m0 H% T! b3 u( K
- ;; color of the layer - i.e. By layer (red)
; t4 Z ?1 V! V+ W* l/ O/ o6 f - ((= ecolor 256)5 X `$ O* F4 s+ s9 I l6 s
- (set_tile "t_color" (bylayer_col))' K x/ f7 @; B2 N5 t5 q, t5 ~
- (col_tile "show_image" cn nil)8 o# Z" F+ l2 Q4 u0 ]% j& F
- )
: u1 A' Z5 l$ |( m8 y& [; b - (T
' {& i4 o+ ] s1 x, I - (set_tile "t_color" (itoa ecolor))0 _! H( Y6 ~% ~; S8 z) ^1 L4 C$ s
- (col_tile "show_image" ecolor nil). Z, q6 H3 W% ]3 c5 U! g& v
- )
* T0 Y6 r. O6 t; t# u' ]7 H - )3 V" V/ q: ]+ s" Z- }
- )
: H8 c% {! R1 w v8 }. T - ;;" M6 y; Y0 s" X8 D- c4 ~
- ;; Function to put up the standard color dialogue.1 M4 z6 E; l! l( ~" z
- ;;
5 g1 ?9 a1 w8 Y! Q - (defun getcolor(/ col_def lay_clr temp_color)
9 F2 s* I* @( P% g, D - ;; col_def is the default color used when rq_color is called. If ecolor 0 O8 [+ m! K0 w
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
+ L7 f3 s' |6 }0 Z% t - (if ecolor# G* L7 h1 I, M! K7 u F
- (setq col_def ecolor)5 `# K% d, G* q! s( I
- (setq col_def 1)
' @1 s3 ?6 v$ S L' _! M - )
4 u: W8 M; G0 [" v& p# Z - V8 j% f; [& V. g6 p
- ;; If we're working with a single layer, get its color4 u( A% @8 W+ v) I' s1 P6 P$ b" Y
- ;; for use in the color swatch if the user selects color BYLAYER.5 t0 P$ p' A& j! Y" L2 y
- (if (/= elayer "Varies")
& J! T; i2 P5 F4 j' S - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
" I4 M( H$ \ P7 m1 U - (setq lay_clr 0)
, ~4 V. p) J( i - )
" q( \1 u; o$ W% T% N" t* w4 a+ \7 T7 b% ] - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))+ W" T2 b4 U, @, _. h7 b6 R5 D
- (progn4 Z4 X M9 Z# E. |) G! G: F/ u* C
- (setq ecolor temp_color)
4 L) p, D3 A# V, Z6 p' U# U* K - (set_col_tile)
3 f5 T, j$ Z: r" b- o - ecolor
9 R" f+ e2 X/ t# Y9 B - )
7 l3 h: L" L( i: m - ecolor
# v) A% o2 w2 W0 J - )
2 Z3 a) ~$ D3 _# l - )
8 M0 m8 n( N' ?6 c2 R - ;;
" b. A9 p4 H9 w* x/ u1 H) N5 V f7 x - ;; This function pops a dialogue box consisting of a list box, image tile, ( m# @+ F9 ~- C
- ;; and edit box to allow the user to select or type a linetype. It returns
8 \) t, M1 W0 f - ;; the linetype selected.
8 x8 ?! m# y0 W% b5 r& K - ;;
# W; v% { C3 G0 w4 Y" Q1 n - (defun getltype (/ old-idx ltname)
* ~ s6 o) N8 m7 C; _* ], f - ;; Initialize a dialogue from dialogue file
. U2 j; {; {2 C4 v8 u - (if (not (new_dialog "setltype" dcl_id)) (exit)), e* k; t1 G6 y U1 Y0 x$ b% \8 w
- (start_list "list_lt")* F" G4 }6 J: \ t4 K6 d
- (mapcar 'add_list ltnmlst) ; initialize list box
) {' e: s% w# e' b: h1 s! e& S - (end_list)
: n* U3 N0 f k2 s - (setq old-idx lt-idx)( D: P' |6 G. F( O
- ;; Show initial ltype in image tile, list box, and edit box
) t% ~/ z2 r. ^$ _/ Y2 { - (if (/= lt-idx nil)
B5 Y" ^( O! G, E' @6 c - (ltlist_act (itoa lt-idx))3 v9 ~* x2 Z" U& _/ \5 T6 `
- (progn7 k" `) U( C5 @4 Y! M) M7 a r6 y1 y
- (set_tile "edit_lt" "Varies")& E* z, i4 q2 y; G% i3 K
- (col_tile "show_image" 0 nil)$ u/ D$ s& d; ?) t) ~4 }! a4 n
- )3 s9 D: u) L: N1 ~$ ]: e
- )
; d m H2 h! T( ? - (action_tile "list_lt" "(ltlist_act $value)")- B2 N% ]! ]5 L8 s; I1 k
- (action_tile "edit_lt" "(ltedit_act $value)")" O* J1 h0 ?9 D
- (action_tile "accept" "(test-ok)")' h3 T) n9 l7 k, P, ^
- (action_tile "cancel" "(reset-lt)")# F* n+ [+ ]. B7 U
- (if (= (start_dialog) 1) ; User pressed OK
" U& A. K5 V7 X* j& @* ]) S - (cond $ o. {7 x! T1 x" e. Z' v4 t1 }
- ((= lt-idx nil)
0 Y8 ~6 k. T* ]1 f8 T8 q - (set_tile "t_ltype" "Varies")1 P x2 i3 |" P
- "Varies"
% D' }9 s9 T; ^: H - )
* z" N# _7 Q o& U1 a8 F - ((= lt-idx 0)) C$ N- A9 U& f
- (set_tile "t_ltype" (bylayer_lt))
9 G& ]- k5 E/ e: a$ Q7 H1 h - "BYLAYER"4 N- U" S4 I% T
- ): G! l) J( D, s6 g7 [ j
- ((= lt-idx 1): W5 L* T- D2 u! W( v; g
- (set_tile "t_ltype" "BYBLOCK")( Z$ h3 {* f/ Q- t [" g2 Y# N! A& C
- "BYBLOCK", Q# e$ c2 H7 E2 e
- )
1 ?+ G4 o3 l. Q - (T
2 z" [1 S9 o) J - (set_tile "t_ltype" ltname)
i9 q6 g' ]2 | X1 n6 d+ l+ I - ltname
- T0 Z0 V; R, x& F - )
1 Y3 {4 {5 ]# X - )8 O- r; J& d) S0 |
- eltype
+ H, G4 O8 d, W6 A* x9 O1 ]. v+ W - )
0 L0 ?7 m3 C0 Y( v - )/ L5 r, G9 ` g9 Y
- ;;1 P6 b6 \. V: h* T$ c
- ;; Edit box entries end up here, C0 `8 n2 B- e f
- ;;8 |' \8 J1 k) o: o/ ]
- (defun ltedit_act (ltvalue)9 R/ D# G, k( A
- ;; If linetype name,is valid, then clear error string, / e: W4 q, R% i
- ;; call ltlist_act function, and change focus to list box.% \+ {' K5 u4 n) J
- ;; Else print error message.
8 }; p7 ]7 U5 @ - (setq ltvalue (strcase ltvalue))# @! i/ _! }+ ]9 t3 |; n
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
1 g, I# l t+ t - (setq ltvalue "BYLAYER")! u1 F @7 M; K) T8 x, J; O# t
- )# u+ }4 A! ^7 f3 i
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))% y3 D; ]3 j/ A- P( @& M0 e
- (setq ltvalue "BYBLOCK") E' E# [) `+ l0 z' c. w
- )
1 j" z6 U; t$ A0 t - (if (setq lt-idx (getindex ltvalue ltnmlst))( u4 A/ d0 X, q/ \
- (progn3 H2 U0 m( r; `' w' }8 w4 ]
- (set_tile "error" "")5 q4 S$ g: `% O/ z( L
- (ltlist_act (itoa lt-idx))* H( ~) L* D" Y7 k0 b0 [7 s) I
- (mode_tile "list_lt" 2) t- k! J" e) p! ]) ~9 `& A* g
- )6 \0 ^/ C& J& P8 N9 Y
- (progn
+ ?- d6 q, r8 c* K9 I! R- O* P - (if (/= ltvalue "VARIES")' @6 k7 x* @0 l* g4 v
- (set_tile "error" "Invalid linetype.")
' Y' @* |& h( S$ \; e: u( q0 c - )
# @+ f& H3 h- i! u; W - (setq lt-idx old-idx)6 I. o2 \, }. Y% X Y
- )
; K* V& L' p6 z8 ^ ]/ u( A p. L - )/ P; s9 b. F' C6 J5 ?% m
- )
. a8 F, C% ?% i - ;;. N" C+ B- L8 l
- ;; List selections end up here6 Z6 g. J. M/ a) V; n+ H+ M! t4 m
- ;;! \# f v$ a- C5 Z/ F
- (defun ltlist_act (index / dashdata)
& @- d( h8 ~2 o! N: U' V' r1 M7 u - ;; Update the list box, edit box, and color tile# P9 G; B! c1 T7 g9 m R: D
- (set_tile "error" ""); u8 t& `% H4 v7 o9 Z0 Q; {" R
- (setq lt-idx (atoi index))9 K8 \* v# Z: A( t9 J6 Y. K
- (setq ltname (nth lt-idx ltnmlst))* L0 s* k# r: d$ x
- (setq dashdata (nth lt-idx mdashlist))# h% Z. T0 V: n) y* X6 L" e
- (col_tile "show_image" 0 dashdata)
N1 E' T, ?, @, J% Y t4 } - (set_tile "list_lt" (itoa lt-idx))
. X# J8 i: p$ v: E* S - (set_tile "edit_lt" ltname)- w' K& l k0 a5 u
- )
& h( ~, a; C& [# G- e - ;;7 Y0 O- e6 E) Y A- x' d0 m
- ;; Reset to original linetype when cancel it selected! }( H( n: o- E$ C( Q! S
- ;;( @7 [+ h" C7 d$ a* I/ q
- (defun reset-lt ()
% y8 R) q; y3 F! \3 F7 C8 n - (setq lt-idx old-idx)% [% L4 T- V& _! A5 ?6 C
- (done_dialog 0)
* [7 w* @4 W6 K - )
. y6 ?* _( N$ i, l$ U- U6 {6 } - ;;
* @. V+ P: q% p6 O! l3 B5 m" H9 S - ;; This function pops a dialogue box consisting of a list box and edit box to 4 P2 Z! `: O& G$ i: E5 w
- ;; allow the user to select or type a layer name. It returns the layer name ) H. ]6 k r# t5 K. @2 r
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
. |; q0 P" f0 t2 a- l9 J - ;; drawing.6 L- O$ ?9 m" q9 ]7 B/ x. X) h: d1 H; a
- ;;" e; u ~' M/ c/ l& q" h$ e
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
! Y* d, o% m7 r" O3 v+ c. M1 P8 F# V( N - ;; Load a dialogue from dialogue file2 s& M* s# s( i5 U/ e6 P+ ^
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
, O* i6 p, f& ~0 Z - (start_list "list_lay")9 p2 b$ e* h/ z6 M, G3 T9 @8 L( E
- (mapcar 'add_list longlist) ; initialize list box* r" M% {& ?0 Q6 Z
- (end_list)
1 s& R k) i: ^" D0 w" Q) G - ;; Display current layer, show initial layer name in edit
2 v ?4 e: W! \/ g; i* V' X - ;; box, and highlight list box.3 e3 k( S. t9 f8 J" t
- (setq old-idx lay-idx)
' e. W4 c& a" F3 `; t, I: ^+ Q: h - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))! n& y5 m0 e/ T' V; w5 P* F
- (set_tile "cur_layer" (getvar "clayer"))* _3 @3 ]1 r" g& }4 a: ]+ D
- (action_tile "list_lay" "(laylist_act $value)")
- g3 X* K7 P% N9 l: W: B - (action_tile "edit_lay" "(layedit_act $value)")2 Z& E- C6 y4 O4 i- X! \, B
- (action_tile "accept" "(test-ok)")
8 h! k% ~/ o4 C1 A6 Y5 `8 W - (action_tile "cancel" "(reset-lay)"); J2 J L+ r( `8 x. S
- (if (= (start_dialog) 1) ; User pressed OK! p0 `; i% o3 x. Y% O; v+ r
- (progn$ o$ ~) S+ l Q3 C. t
- (if (= lay-idx nil) (setq layname "Varies"))
8 e/ g3 A) s, Q/ k9 h1 D9 y - (set_tile "t_layer" layname)
1 g0 s6 E" x7 P X - ; If layer or ltype equals bylayer reset their tiles
) w" w7 q( q0 l6 i" g - (if (= lt-idx 0)
" m" D+ Z' B1 l. F3 q - (set_tile "t_ltype" (bylayer_lt))
+ g" v8 Y. h; I3 F* O* X - )8 F" G: U! U `
- (if (= ecolor 256)' ^: t- M+ o. U
- (progn
9 O8 M' X* Q; \# \. j - (set_tile "t_color" (bylayer_col))* Q9 b; C4 T; n- X% Y
- (col_tile "show_image" cn nil)
/ o9 {( @. |* `- h9 M - )' p2 y( Q# ?7 `7 a# S0 B
- )
+ D0 A% D2 s, ~2 R; N. _! J - layname F S' t( I; ^# A
- )
, ~& r/ j& K0 ~9 X6 |& b8 } - elayer; Q& J4 ]% G B5 G4 X" _
- )
8 W0 I$ Z, ^0 P+ k7 g - )8 ~$ J( S$ D- B2 K
- ;;% Y F# @0 o: X& b: C
- ;; Edit box selections end up here
8 ?4 k0 x) L, \+ T1 N+ u% J+ v - ;;) R2 r% `4 T& G, }8 Y! q. r
- (defun layedit_act (layvalue)" i6 \) B6 j- q. d
- ;; Convert layer entry to upper case. If layer name is2 C W5 S/ r* i7 r6 v
- ;; valid, clear error string, call (laylist_act) function,: D( n- o% O" d4 O, } H
- ;; and change focus to list box. Else print error message.
0 Z+ M/ v1 h" C1 l- i - (setq layvalue (strcase layvalue)). K8 k$ L) V9 j$ e# N; M: x
- (if (setq lay-idx (getindex layvalue laynmlst))2 @6 u; k% z% n2 D3 O3 ]
- (progn5 o# t2 @& ]4 d% `2 H4 @
- (set_tile "error" "")7 Z- o4 J1 f2 [9 k
- (laylist_act (itoa lay-idx))/ l/ k1 x0 s L$ d/ a
- ): }) ^: i' a' q6 M3 D6 o
- (progn
6 O) V8 v7 y: Q4 q - (set_tile "error" "Invalid layer name.")
& x! O3 b8 q' ]' a+ |" M- u - (setq lay-idx old-idx)& i/ p1 ~0 g( C. W* A9 O
- )
$ ]6 \7 P+ T. d; T% D2 X - )
7 k6 b- g( G7 m& `. w - )
3 V% U4 A- V8 t - ;;! ^2 D1 b) O$ q) W% k
- ;; List entry selections end up here
; Q# b. q, m4 {& g - ;;6 `* j& M8 \0 @4 n [; o$ H
- (defun laylist_act (index / layinfo color dashdata)3 L7 w' h8 J0 t# ?* ^
- ;; Update the list box, edit box, and color tile# C/ p- i" S! O! B8 z$ ?
- (set_tile "error" "")
" U3 k/ e3 d* V8 Z# ?5 \ - (setq lay-idx (atoi index))
5 G& v2 A/ S2 T6 v% |$ E& s+ R - (setq layname (nth lay-idx laynmlst))
& W- h2 b2 r6 _5 {4 K$ k# | - (setq layinfo (tblsearch "layer" layname))6 g6 u4 g0 j5 |% H
- (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
- s1 x" \0 L' Q0 [4 A# Y. M - (set_tile "error" "Cannot change entity to locked layer.")! e1 a T) z; I. e* D
- (progn
7 D1 z' \0 y& n3 }4 R- f5 B - (setq color (cdr (assoc 62 layinfo)))/ o( g+ g T- e$ W& K( J/ n0 Q
- (setq color (abs color))
' T: a9 k2 B/ d( }, Z; K9 Q- [+ s - (setq colname (colorname color))8 F& T+ ?; \1 j/ w
- (set_tile "list_lay" (itoa lay-idx))
: s4 Q. O5 T2 g( m" ~5 D - (set_tile "edit_lay" layname)( {6 @/ v4 n- c) ?& O
- (mode_tile "list_lay" 2)$ Q$ ~4 S) C) i, A# j% I
- )
; @2 D( S3 r; Z$ Y) N5 Y - )" S! J( a# j) q: z1 G! {# t% z
- ) o t/ _. n* b6 h$ _/ E: F
- ;;" k$ ]5 t- s. T
- ;; Reset to original layer when cancel is selected+ R! x. i q+ h) u8 J) r
- ;;( G/ i6 Z' q& c
- (defun reset-lay ()2 h9 v+ L) \& r
- (setq lay-idx old-idx)
- k6 J7 @: x L - (done_dialog 0)
& ^: e% m' C( |, B( w' \( ]8 C - )5 o' V6 \( V# y% t# U. x9 w
- ;;
! X F- B$ o- C# ]& U6 g - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a ' f. K4 K2 M# E; p1 d+ Z% k
- ;; string can't be converted to a real, this routine checks if the first " _9 y9 ]+ {% L- z+ Y% c
- ;; character is "0". It also checks to see if the value equals "Varies".
4 F, b8 ]3 o3 @ I - ;;% V! G# z+ ^$ U8 U
- (defun getthickness (value)- G: A0 s: N) S! j: X
- (setq value (strcase value))
1 E1 d' j. u+ G2 e! a5 c - (if (or (= value "VARIES")
( Y6 _! Q T8 Q3 M7 W - (distof value); j- h( n- X" u: B7 t! \8 d
- )9 v/ [, Y) F8 g3 Y. W9 X3 `
- (progn
+ ? `: S. R% B5 ?/ m - (set_tile "error" "")
+ M3 O3 z8 h+ T; m! [ - (if (= value "VARIES")2 X1 x7 e; O7 g6 R* |7 D
- (progn$ w2 Z% y7 {( p# f- ?
- (set_tile "eb_thickness" "Varies")
0 J( E4 A# t5 j1 e, f - (setq ethickness nil)
, _# b4 ?9 ?5 g/ I J7 z - )
9 _2 _" s2 H8 D3 ~9 U3 @/ _1 n - (progn& r1 Y. e0 o) K) _ Y+ P
- (setq ethickness (distof value))
8 R+ c' Q9 |, J8 e3 Z6 E - (set_tile "eb_thickness" (rtos ethickness))
7 {8 ~5 A! k/ |/ z# O5 e+ U - ethickness
+ k7 s* g" G+ J - )
1 f0 Q3 K4 @* ^/ ` - )
! B" w$ {4 C# O0 T3 Z1 k: l) A - )
7 ?3 C% z- f; a. R. w - (progn
% v' I; X/ q; N5 ]0 t1 _2 i - (set_tile "error" "Invalid thickness.")4 B5 U1 _( R$ S, @% s* E
- nil
" ^4 O# h; ~ R1 T2 Y - )
: `6 v$ E& V8 Q1 \) e/ z - )7 }% D5 W6 I) ]3 q
- )) _5 G( J8 o" G6 f
- ;;, }. V1 L2 F( b! N$ b, r
- ;; This function make a list called laynmlst which consists of all the layer
4 }1 V3 o* w5 @6 K( p2 \! ~ - ;; names in the drawing. It also creates a list called longlist which 8 y8 u8 R" {. o% ]9 p
- ;; consists of strings which contain the layer name, color, linetype, etc. * ~: Q8 p, Y3 g1 J
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
6 j @3 S& E$ ^1 Y0 U6 N! R - ;; same.( c0 P7 }5 B' u/ \3 v' I
- ;;4 i2 B. g. u8 {( `4 \
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname ) m# ?; _6 o4 s2 }1 k, L
- xdlist vpldata sortlist name templist bit-70 ]9 x; X; t* l& p5 R5 ]8 x
- )% P7 L% d! l; I
- (if (= (setq tilemode (getvar "tilemode")) 0)' Y( [ o( u }5 _% d
- (progn) P2 v9 }+ X+ i% e- G
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
6 Y- a" P" G8 w$ }/ W; M - (cons 69 (getvar "CVPORT")). v- k6 Q2 {" p2 N. d C1 a) a
- )
# N" J& _' { U0 ]& r" b! c - )2 o7 u% ^5 Y) i4 ]
- )
; w+ o1 S; o6 @% A0 ? - (setq cvpname (ssname ss 0)): l% g# m0 i" }( R( e) o( t% Q
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
4 u( ^: h% |" p$ A - (setq vpldata (cdadr xdlist))1 t0 N, K7 {4 q6 ~2 n" ~9 @* R
- )& j2 u# {, g2 `
- )" ~! F# G6 E" ~
- (setq sortlist nil)% P8 q+ S1 `5 G8 X
- (setq templist (tblnext "LAYER" T)): W2 i0 j. U) B+ n
- (while templist
2 N, k2 k& A) a2 Z: Y8 a: O1 Z - (setq name (cdr (assoc 2 templist)))4 t9 ^3 `! V& A! F" s( w3 A
- (setq sortlist (cons name sortlist))
. ]5 g- C+ b5 o; E- \! F1 L - (setq templist (tblnext "LAYER"))% t& f% s0 ] F% x6 {! g* P
- )
% M$ A3 t0 j9 W) Z; v& C8 u5 t - (if (>= (getvar "maxsort") (length sortlist))* P! R0 q$ g# P. d+ E9 f% f7 J2 A
- (setq sortlist (acad_strlsort sortlist))
& n# j8 A( ~4 z - (setq sortlist (reverse sortlist)). q Z, E: t7 A: U8 S
- )' e: P) q- M& y# i
- (setq laynmlst sortlist)# ]- y! P2 C% j& |
- (setq longlist nil)
# B' S' u$ p. z- r - (setq layname (car sortlist))3 w1 r1 K5 A3 `9 @( t" D
- (while layname
1 X2 E4 k9 @" `: [% y" z, s - (setq laylist (tblsearch "LAYER" layname))
) [8 ~- G6 G! R6 } - (setq color (cdr (assoc 62 laylist)))/ a5 S3 U8 m& `
- (if (minusp color)4 ]+ F0 D# d/ W7 r+ N
- (setq onoff ".")
) u" g; S' ?: s% y$ c - (setq onoff "On")
2 E* i6 q i6 g" X - )* ]$ b; ]6 T' n3 r# v* }* C
- (setq color (abs color))
2 l1 B4 ~% P# | - (setq colname (colorname color))
\. Q" e7 h* n4 M* Q1 u - (setq bit-70 (cdr (assoc 70 laylist)))
" U) x: [7 L& I - (if (= (logand bit-70 1) 1)
, y; S0 k7 J' h - (setq frozth "F" fchk laylist): [- G$ S. u7 r
- (setq frozth ".") P# l' C/ ]) Y: ^; \2 x
- )6 f5 F* y4 C+ \2 g' Y0 ]7 \+ U
- (if (= (logand bit-70 2) 2) Q. H3 C$ [9 |3 i- M& v0 x: f
- (setq vpn "N"): Y7 H' L1 `( v' }, O. o
- (setq vpn ".")5 ]5 o" w: `. [5 P3 u4 u
- )
" w5 V1 J( ], s7 t; ]5 @% X$ j - (if (= (logand bit-70 4) 4)
5 s0 Z; o0 N' W9 w) W" j: n: n2 y - (setq lock "L")
; o3 D+ W4 d; ] - (setq lock "."): z9 d6 D' z2 Y4 Y$ O9 t* L
- )0 h2 f# i( z0 Z5 r! s; F8 E& M
- (setq linetype (cdr (assoc 6 laylist)))6 S9 Q/ Q# p( o) k
- (setq layname (substr layname 1 31))
" k" f4 l- Z' m2 |' M) k - (if (= tilemode 0)
/ e" a+ E* W0 t4 K0 Z" [* U2 A6 j9 [ - (progn
5 ]# Y1 R+ @1 A5 l8 O6 Q7 d - (if (member (cons 1003 layname) vpldata)
6 D/ A8 h! @- [6 j: o# K - (setq vpf "C"), \$ N9 f5 T8 e( n- K$ b$ E
- (setq vpf ".")
- X- ?- J% [3 [ - )
! b1 g, M( t% C' Y! e( F - ), I2 @2 a, L/ g% G. Q0 }
- (setq vpf ".")& j$ `* [9 k# V' l5 ]# E4 ]
- )
% K: W7 ~; x2 B - (setq ltabstr (strcat layname "\t"
. N/ v* F: D; F1 |1 |9 \* @ - onoff "\t"( C0 I( \# C7 B
- frozth "\t"
3 Z' }3 y2 I+ N. S, C6 g. l - lock "\t"8 Y) c% x" ]* Y) F
- vpf "\t"3 c3 ~ I' Y+ R: H
- vpn "\t"2 Y7 q4 L. T# t/ t2 }2 e. v
- colname "\t"$ p; z6 q1 | ~. A& j
- linetype& E, V% Z3 [; e, j/ y/ z
- )
8 r8 b/ z6 c2 E% m8 x4 h7 n$ R - )$ b& X- [, v5 x& U; e' B
- (setq longlist (append longlist (list ltabstr)))
1 ~/ F2 r9 |% O. t$ ] - (setq sortlist (cdr sortlist))# D5 r5 l5 g' b' O4 T. K
- (setq layname (car sortlist))
* \; o6 z8 R1 G* I R8 O& e - )- ^3 _4 s9 D. v7 o8 y! S j6 c* n
- )- O, Z9 b) s5 ^( s
- ;;
4 C$ i9 \. g( P0 e$ B - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
) R+ H P9 x8 b& d/ |- U - ;; linetype names read from the symbol table. Mdashlist is list consisting
5 }/ c9 Z$ i+ T - ;; of lists which define the linetype pattern - numbers that indicate dots,
$ D9 A( e7 Q( [/ ?* J' j - ;; dashes, and spaces taken from group code 49. The list corresponds to the
1 f% M+ R# E% A+ M$ Y! ]- k4 H - ;; order of names in ltnmlst.7 d0 i+ e/ ~9 T! W, l k* L
- ;;
, M4 p. @0 I3 G+ z3 w) ]* U - (defun makeltlists (/ ltlist ltname)
1 O9 g/ E/ P9 H6 J$ y7 j - (setq mdashlist nil) |/ N2 e# `" ?% O+ ]' z
- (setq ltlist (tblnext "LTYPE" T))4 d6 u' J1 j8 t# }5 w. L5 S
- (setq ltname (cdr (assoc 2 ltlist)))
+ _9 J6 o6 x& t5 I - (setq ltnmlst (list ltname))
3 l, U, m9 o9 B( W" [# Y
D9 M0 L7 ~; ~- (if (= ltname "CONTINUOUS"); x7 K7 S+ b' a& y* \ ]/ L( S' t4 X9 V
- (setq mdashlist (list "CONT"))
. x2 c4 p) \9 d9 D! g* m - (setq mdashlist
3 @7 L8 ~9 b& B! A; ` - (append mdashlist (list (add-mdash ltlist)))$ D7 b$ D0 N9 H. c9 K6 O# m
- )
: c( Y5 ]' x* ]" I: ^9 {0 ]6 E - )6 p5 p$ C0 @) a: R z5 L
- (while (setq ltlist (tblnext "LTYPE"))2 S1 K3 H8 T/ O+ n
- (setq ltname (cdr (assoc 2 ltlist)))+ F, s V" | B. W" I3 O$ L1 A* @
- (setq ltnmlst (append ltnmlst (list ltname)))) [* D9 \2 E1 | D8 U& R5 K
- (setq mdashlist 2 q# M0 ?- R, P% J. r
- (append mdashlist (list (add-mdash ltlist)))
e9 l0 G. b: c4 T2 e% ? - )! W0 _5 j0 b* g5 n) Q' Q' Z
- )
2 T- x, \$ `1 h5 u# x) L, e) g - (setq ltnmlst (cons "BYBLOCK" ltnmlst))! U% m' Q! H4 ^" w
- (setq mdashlist (cons nil mdashlist))
% T( N; N. I. B! Y) ?- P - (setq ltnmlst (cons "BYLAYER" ltnmlst))
+ T! C0 c& Q: l, e3 I1 N - (setq mdashlist (cons nil mdashlist))% |" ~+ g8 U& }9 y, G7 s
- )
" y7 Y! Z1 h# v. i - ;;
, l& \' x# o- [7 h - ;; Get all the group code 49 values for a linetype and put them in a list 8 y8 v& z' I& n( b1 v2 N
- ;; (pen-up, pen-down info)* U4 A. A4 x+ F* q. _
- ;;
$ Y8 n" y, o3 c2 z0 ~4 } - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)* r/ n% k* z- W0 m9 b6 q* d) |: A- m
- (setq dashlist nil)
0 m! v) X l# q/ H+ n d: [: h9 c6 ^8 ] - (while (setq assoclist (car ltlist1))2 l9 \; o6 Z- x% R2 X* e
- (if (= (car assoclist) 49)/ {. Y; v& e' T/ h
- (progn5 i" ~: C) h: \+ d
- (setq dashsize (cdr assoclist)): z b0 R) q1 p+ B1 _4 k* T
- (setq dashlist (cons dashsize dashlist))
; T$ r+ x% w( L* T& G# | - )
+ D# Z4 {, z ^0 y - )* t& s; x/ [ X1 U( Z( B
- (setq ltlist1 (cdr ltlist1))" a; D, t& K4 o( }% J' ]( F" t: ~& k
- )
% R. M J# w! p: u - (setq dashlist (reverse dashlist))0 B& {: K- a' y, ]/ X S8 d5 @) Z" ^
- )& {8 I- n$ Z' u) B: i# t, E3 B3 h1 F+ F5 }
- ;;
6 K' E, S9 J# R1 A2 Y/ [ - ;; Color a tile, draw linetype, and draw a border around it! Q+ Y6 f' l1 T u3 Y1 ^1 r
- ;;1 s2 I" T$ t+ U& u: V
- (defun col_tile (tile color patlist / x y)
" C* b( X9 c4 b s/ w2 k - (setq x (dimx_tile tile))
) l% F/ ~# ~+ c4 m; s - (setq y (dimy_tile tile))
; q( z% G# n9 O% G( L8 B. W - (start_image tile)# E1 k$ Y, l9 e* U
- (fill_image 0 0 x y color)" R4 g. b. l, ]7 z- M; D$ S
- (if (= color 7)0 ]' g9 K V. w" g
- (progn
$ K3 {6 m E' V+ `. T! W2 ] - (if patlist (drawpattern x (/ y 2) patlist 0))
! h( d- v+ [0 Z$ ~$ i - (tile_rect 0 0 x y 0)1 B" F: X3 G/ b: X# F4 L" @
- )
2 c8 H* O7 i" s* S3 M - (progn& V7 t! e- J' c5 l0 h8 I" \( T
- (if patlist (drawpattern x (/ y 2) patlist 7)): C) o) j( k a8 g* b
- (tile_rect 0 0 x y 7)
: \0 L! b7 d! m1 s) P - )
, Y3 p# ~2 S. b. ~, U+ ` - )
9 L. ^) k' J' e - (end_image)
! D8 c) L1 M7 X: k# l5 {4 { ?5 ~- ~3 U- O - )
5 B9 ?) w! ?0 |9 e - ;;5 I% D6 K4 ^; t0 B' z
- ;; Draw a border around a tile
2 c1 K3 M& f5 c. y d7 J - ;;% C1 i0 @ I. r" x9 z% u( A% ]
- (defun tile_rect (x1 y1 x2 y2 color)! x2 W4 o; S- z
- (setq x2 (- x2 1)) B* j$ `. I! ?/ h3 I9 C
- (setq y2 (- y2 1))
& K1 T9 R4 J1 q% D$ c8 O* z - (vector_image x1 y1 x2 y1 color)1 B% P' m$ N- C: q. Y# Z, W0 @: D
- (vector_image x2 y1 x2 y2 color)/ q0 S- _; p7 R9 [) R8 l
- (vector_image x2 y2 x1 y2 color)6 O! W' s5 Y8 ]# C& K5 q1 I; Y
- (vector_image x1 y2 x1 y1 color)
* x M7 P" I6 X" p5 c& z- s - )
" ^0 U: |( l% K/ G9 W- H6 @# l4 L - ;;# J M; ~3 x; y9 N8 C: r
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
6 B4 z5 }" c2 x' C" L/ N/ t0 k - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a . o8 o8 ]! j6 _8 e, o v1 I
- ;; list of numbers that define the linetype, and color is the color of the " `. n1 T8 z5 E. D
- ;; tile.
( I: p; k }# L0 a" v - ;;6 x u$ S* ?% R5 I4 \
- (defun drawpattern (boxlength y2 pattern color / x1 x2
5 S2 |( u2 l, y0 Q6 G2 s8 } - patlist dash)
& w; T7 h# ^2 K - (setq x1 0 x2 0)
6 V8 I& ]8 u& K4 u. i5 R4 d - (setq patlist pattern)
" _* f. P$ d! l. n5 l - (if (= patlist "CONT")
9 B) u) b. S8 h9 a# j" f - (progn . W6 X7 Q5 s: i! V9 _2 f' t- l
- (setq dash boxlength)3 o! d! S1 m3 q. K- M4 v
- (vi)
4 k- S5 u; @( X - (setq x1 boxlength)
1 D1 y+ E* ^. g - )9 l' Z/ ?9 w' `3 E
- )
/ `6 D) S6 X, ~- U8 x - (while (< x1 boxlength)
6 c5 o O1 Q1 b0 F - (if (setq dash (car patlist))' m7 F! x4 `# i U4 Z4 e
- (progn) H$ ]- L/ ^+ P! J
- (setq dash (fix (* 30 dash)))
5 c1 r2 n3 s; W& C9 J - (cond
: t" m5 q% a) |# E% G: S - ((= dash 0)
( s A" H$ w3 f - (setq dash 1) - @/ A4 G; Q3 p$ N' X% S
- (vi)
# m) w0 J! y8 x) `6 p) g - )5 k7 G3 s* _8 f& K5 ~4 p# A
- ((> dash 0)
( U7 I/ J/ y: x: H2 ?- B7 A% W - (vi)
& n$ o, E. g, V9 ? - )& k: R& G( o, a+ t* b+ U
- (T 7 a: f: E" g3 m0 j0 x
- (if (< (abs dash) 2) (setq dash 2)), \8 f8 k7 u$ L& g
- (setq x2 (+ x2 (abs dash)))
* T$ h4 k. X, ]) G+ k( g; y& ~ - )
$ L" W R/ p/ S5 N0 S: i - )* {4 E+ g# ?; M, D7 k& X) ? t. E" z% y
- (setq patlist (cdr patlist))5 |/ y0 J3 v* n+ V6 S3 o5 r
- (setq x1 x2)
9 Y) l" [- Z2 i' h; U- T& X$ d - )- H3 }' B. V; ]; E! q6 b+ k' v
- (setq patlist pattern)
. |& {+ |4 T, M- d Y" ~ - )
0 s1 C7 D' Y5 |" E$ O' ~* f - )' ^3 {; _4 O7 ^1 U- Y
- )
! I4 b! l. S+ _' N) h - ;;& a; y k' O; ~' I
- ;; Draw a dash or dot in image tile L, K/ }' o) u# F* N% Y( ?# S
- ;;/ r% y! I% u5 U6 c
- (defun vi ()
4 u* i9 f& r' y9 p7 L/ F' e( q - (setq x2 (+ x2 dash))
4 g! Z# V3 ? |/ t! z - (vector_image x1 y2 x2 y2 color)7 J2 K1 {9 g/ N, p
- )8 Z; w- t3 s j; W; g) M
- ;; \/ Z- R( [3 }1 t h% A z
- ;; This function takes a selection and returns a list of the color, linetype,
- _; ?! ^0 I( ^3 o - ;; layer, and thickness properties that are common to every entities in the
+ F7 f" w9 y, n! q0 p9 R5 k, F - ;; selection set - (color linetype layer thickness). If all entities do not
5 Z" p a9 k7 `' d5 n2 U5 K/ l - ;; share the same property value it returns "Varies" in place of the
0 D6 g, R- H; ^; H/ H - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
! ]4 C: u! Z( h8 ^% G5 ~ - ;;
4 |8 {+ d: B" K4 r" X/ u - (defun getprops (selset / sslen elist color ltype layer
& ~1 u5 E7 D- t5 ^4 n+ Q - thickness go chk-col chk-lt chk-lay chk-th ctr)* Q! x- Z9 p& T1 _
- (setq sslen (sslength selset))
- t/ N; ?! G% U8 m- v - (setq elist (entget (ssname selset 0))) {1 o2 N- v8 J8 c' l' G2 G
- (setq color (cdr (assoc 62 elist))). x8 @ K% D1 ` m! z
- (if (not color) (setq color 256)): l4 a0 z! C$ u% t; F4 v$ ~
- (setq ltype (cdr (assoc 6 elist)))
( u5 h, v; R! Q( s7 w3 ~ - (if (not ltype) (setq ltype "BYLAYER"))2 e* {2 r" g+ E* A
- (setq layer (cdr (assoc 8 elist)))- n+ R( x+ J, v* D4 d
- (setq thickness (cdr (assoc 39 elist)))
1 m- e& m _4 s7 J - (if (not thickness) (setq thickness 0))
! l4 r$ X. N0 E. y1 C) b7 V - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
& _5 a, [" g( ^- E7 O4 U8 ]
L4 v* ]8 s8 O& S- ;; Page through the selection set. When a property7 P* W* z7 a5 C! d: V; J
- ;; does not match, stop checking for that property.
! Y- J, s: E* Q' p% a4 I* d$ O - ;; If all properties vary, stop paging.6 G* W. R. c( d8 F
- / B8 z1 \, C/ ]( ?& k2 O# s2 K
- (while (and (> sslen ctr) go)
5 y5 L1 e+ U: e! I - (setq elist (entget (setq en (ssname selset ctr))))8 [3 l' `- ~8 M9 {
- (if chk-col (match-col))
) ]( y: j0 `& c1 s - (if chk-lt (match-lt))
& Z2 n! J1 t% s- Z9 u) C* ? - (if chk-lay (match-lay))
& ?1 H' Y# z! b2 ^ - (if chk-th (match-th))
# ]: `9 |" C0 n+ @# ?4 N - (setq ctr (1+ ctr))
W' o$ C% u- \ - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))- q* g( X* m x
- (setq go nil)
% \& D. A: G7 w N' V - )# N: [: m& k I
- )- g3 }) E, g7 E1 S3 V9 i
- (list color ltype layer thickness)' ~$ o; b* z: d5 }) V7 A
- )
! L5 Y) k; Z4 l6 q4 [ - ) G* ?& G) X6 O
- (defun match-col (/ ncolor)
: ^+ I, \$ t, h - (setq ncolor (cdr (assoc 62 elist)))
9 Z, B5 T- J8 B5 ]/ g8 j1 V - (if (not ncolor) (setq ncolor 256))
' k6 X5 K, L/ v5 u( n! ^ - (if (/= color ncolor)
2 p, w% Z* b# Z/ ]! f - (progn3 }5 H5 l7 u$ ~; n3 r: r, a4 K
- (setq chk-col nil)# s* {' u2 v; A2 R
- (setq color nil)) }1 M' h* Y$ o
- ). F5 c5 H! w, K% R0 n4 d3 |
- )
/ D) o% G5 k: r+ Q ^ - )% C: j# B; T7 j4 e
- : u, K" l% U$ I) T
- (defun match-lt (/ nltype)9 T; X/ X4 g3 D% U" @
- (setq nltype (cdr (assoc 6 elist)))( P) b z4 s' w" i5 w0 Y3 G
- (if (not nltype) (setq nltype "BYLAYER"))2 s# U. X! f4 n# |4 E7 l1 l5 r
- (if (/= ltype nltype)
2 E2 Q9 f4 _( ~% H4 W3 C) C - (progn
; r9 B) G- w& G/ V- m4 Y - (setq chk-lt nil)
2 {2 r1 C0 x/ ?2 X- z - (setq ltype "Varies")+ d. s1 g0 c9 r' r9 V
- )! J: l4 U, q3 O- l
- )* `$ D7 W8 N' R5 |+ G* ^5 h x% v
- )$ d6 @* |. b! P Q6 g; i
- f5 a+ E; P6 F x; [9 Q: J7 s! E- (defun match-lay (/ nlayer)2 r1 I s1 l7 i3 `$ W& Q6 ~6 H N- Q
- (setq nlayer (cdr (assoc 8 elist)))
( q4 @9 z J6 V6 v2 d; q) ]) B' n" T - (if (/= layer nlayer)
. u* y3 P S1 L9 {0 @9 N - (progn
; Q: D% T7 B9 N( N, o4 {3 H# |; ]4 m& e7 Z& P - (setq chk-lay nil)
) W% v$ J9 t* [& Y - (setq layer "Varies")
+ V1 q6 }5 R8 _( h - ); l' R4 ?& R' K: c
- )
2 T; V3 O. I, _1 u - )
5 U$ Q/ X2 J( m% b* B) e
$ ^) R, f# {& g( r5 Q( U% N- (defun match-th (/ nthickness)" ~8 F8 E2 G6 h: i* o" G
- (setq nthickness (cdr (assoc 39 elist)))
3 m( W1 I9 q9 \2 k1 X. n' R: d$ ] - (if (not nthickness) (setq nthickness 0))
7 N; G' ^; l* |( ^$ X! M5 q - (if (/= thickness nthickness)0 ~9 m/ w( i6 d7 C
- (progn7 U: N+ k# S+ g8 G b" b# e7 J' f: E
- (setq chk-th nil)' x4 c# u) e2 h" w- O
- (setq thickness "Varies")$ Z! t7 h- m/ F- `& }
- )
* S4 ^1 S. u1 N7 z% I1 p, e! W5 J - ), P8 X1 n x l9 _. Q$ F5 _
- )7 C& y/ X$ V2 q) R1 E
/ Q1 X9 j5 D$ b1 @( T4 `- ;;5 n2 i Z9 C L# h
- ;; If an item is a member of the list, then return its index number, else ( {) k( H& T8 V- S. @1 j
- ;; return nil.
0 k4 h! x$ T7 M6 [ - ;;
4 E" M: _4 `! }6 e4 j - (defun getindex (item itemlist / m n)
. a0 j' y. w1 i& T6 g1 z - (setq n (length itemlist))0 B- a) r7 s6 N$ q
- (if (> (setq m (length (member item itemlist))) 0)6 B* |2 V0 M( C8 l8 Z
- (- n m)' F7 b) ] G1 B! ?- I4 w, B A9 j
- nil+ T; A! U& j0 n) [+ R
- )
6 J7 D$ Z3 m( I! X, N - )6 u( m) `( g! t
- ;;
/ Y& b$ b& c. g* e - ;; This function is called if the linetype is set "BYLAYER". It finds the 9 `9 Y) p r) ^2 m( q* N' i
- ;; ltype of the layer so it can be displayed beside the linetype button.' k' s2 @$ {) L! M3 H3 A
- ;;* p! i8 O! F* g4 C! ^9 C
- (defun bylayer_lt (/ layname layinfo ltype)( `6 U8 x2 j, h2 S" |
- (if lay-idx9 M( Y, ^9 \2 o& e# a2 s
- (progn
1 T, G; }2 K _2 j - (setq layname (nth lay-idx laynmlst))" S R- Y* w' y1 p8 I- }) e9 R" h; J
- (setq layinfo (tblsearch "layer" layname))
. d+ j4 z; s! J) J - (setq ltype (cdr (assoc 6 layinfo)))5 P+ h* j% E' \" s2 h
- (strcat "BYLAYER (" ltype ")")
8 t. j4 }$ M' E! t' y' ] - ). d: g, Y# [/ {' B
- "BYLAYER"7 G" A9 T6 J. s" E9 J9 ?" t, i
- )' p* B6 y' n& ?- U* I( l$ U
- ), w% D/ v% \: w- b0 H2 Q K' g
- ;;
" L& z) x7 B9 V' K& @ - ;; This function is called if the color is set "BYLAYER". It finds the
5 |8 F+ N' o0 o1 s- w% b* f/ S - ;; color of the layer so it can be displayed beside the color button.3 K+ P9 V! j; f6 s4 r) N# p1 {# }
- ;;
* k# _. M9 P6 Q6 d& d" x3 T0 ^ - (defun bylayer_col (/ layname layinfo color)6 L( H G& H% s' ]9 A0 S$ v
- (if lay-idx
+ O, V# u5 p: g) G4 \ - (progn
* r( ^2 V5 \* Y- ~6 z' s4 \ - (setq layname (nth lay-idx laynmlst))
5 [( q9 m; _ h. b8 q! y; |) f' L - (setq layinfo (tblsearch "layer" layname)); c6 X- t- M% P$ T
- (setq color (abs (cdr (assoc 62 layinfo))))$ h+ T5 x2 j: w1 x' H# E
- (setq cn color)
! m2 ?- |& `' y - (strcat "BYLAYER (" (colorname color) ")")
$ Y, A5 [. R* m, X) _8 r2 j( q - )# s# J* P& R) O/ n8 d
- (progn0 j. G2 P, \' a! `- V
- (setq cn 0)
/ a4 V, q+ V/ M - "BYLAYER"" b' M3 k/ ~) e, b8 q" g7 i
- )
6 e' @, N7 J, ?0 w; o. E/ W - ), ` v' p" C. [, P. u4 w
- )0 C6 o) N- l" e& l+ z3 ?: B
- ;;/ T0 n" g7 g- ?) a4 ]" F
- ;; If there is no error message, then close the dialogue5 c+ M( R) v _/ F8 k7 ?
- ;;
# y( r8 }9 Q) S1 C, I" M5 J$ d - ;; If there is an error message, then set focus to the tile) k5 [% ~2 K. S/ E' u
- ;; that's associated with the error message.
$ u6 B$ [7 T7 M - ;;
+ n. ^0 Y5 |0 P - (defun test-ok ( / errtile)1 x, S( Y! z/ [0 P4 Z8 T: x
- (setq errtile (get_tile "error"))2 ~$ }8 e; t7 e
- (cond# p4 B" B2 ^4 l: M+ J) o; b$ L3 l
- ( (= errtile "") f W6 D A" o) m" s
- (done_dialog 1)), H, C' X o" x% U% _" \8 {. E
- ( (= errtile "Invalid thickness.")1 G9 }; B. d2 ?, ?
- (mode_tile "eb_thickness" 2))- h2 s( N0 j, X+ C6 r7 w
- )
0 I$ G% H' N' m- S% m6 ^( G2 ? - )0 d8 y6 t0 i! T
- ;;4 L* V! @ r9 [( A) v
- ;; A color function used by getlayer.7 G1 j! D2 E; Z3 `; {
- ;;: x5 M; s: o: R5 a% H C; z+ N2 i
- (defun colorname (colnum)- n- o* a* T, @6 @- f6 H# E
- (setq cn (abs colnum))
6 H- S5 b1 t: ? - (cond ((= cn 1) "red")
I+ t& d+ u; Y5 X2 P1 z - ((= cn 2) "yellow")
* v7 p7 |5 O& ]8 a& e - ((= cn 3) "green")/ J2 M& E6 ^+ g: c7 G
- ((= cn 4) "cyan")* f; Y# w& w# z+ I$ ?2 v5 K
- ((= cn 5) "blue"): u/ {# l4 B; j$ W6 T0 L
- ((= cn 6) "magenta")
( X' m$ F/ S6 A. n# r1 s - ((= cn 7) "white")
) }6 I$ _7 _$ y" C - (T (itoa cn)): ?. V% T9 C7 x" b
- )
M! ^) E1 A3 d- o4 [: U - )! J3 A4 \ U; L* w3 P" Y
- 6 h( {' r4 A4 Y; ^
- ;;; Construct layer and ltype lists and initialize all
) r- a! l4 L3 p( K, n - ;;; program variables:
) Y* l; L1 t+ b1 c: o# z2 w
5 `) _ {0 d9 Q! g- (makelaylists) ; layer list - laynmlst
6 w7 [% ]; Y+ h5 l; e2 ~1 X( q0 ? - (makeltlists) ; linetype lists - ltnmlst, mdashlist
! @" ^! {( v+ t; s4 D( K - ;; Find the property values of the selection set. c* M4 i0 a2 t2 l
- ;; (getprops ss) returns a list of properties from
6 E- `& H8 v7 j - ;; a selection set - (color ltype layer thickness)." l/ I* u$ \- F: r, K6 j
- (setq proplist (getprops ss)), r& ?! ?4 L; r8 O- Z9 p
- (setq ecolor (car proplist))
# G- o! [1 {# N4 x - (setq eltype (cadr proplist))
- D# a8 I3 ~3 @( `$ z5 V - (setq elayer (caddr proplist))
9 f& k1 J E# X' \2 X% [6 N7 f2 M% n - (setq ethickness (cadddr proplist))
. i$ {" \: Z. L0 F4 ^. g: m& S/ O - ;; Find index of linetype, and layer lists
) X8 T0 n( a4 t/ E - (cond' U# f. e( G) _4 r/ @$ J7 h6 d
- ((= eltype "Varies") (setq lt-idx nil))) ]& o4 Y. E$ x# }. I& M; S/ [ d
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
& y+ E3 m( @# ?8 V0 d, c7 w- ? - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
* Z9 d- n5 T3 O; P, i; Y - (T (setq lt-idx (getindex eltype ltnmlst)))
; o; ^- g3 n" F5 J - )
+ I4 |, M' O' q0 v$ f- A# s; d3 I0 \ - (if (= elayer "Varies")8 f: V2 m% Y; Q$ }
- (setq lay-idx nil)
4 H6 C0 O* k& Q- f$ N& ~* o - (setq lay-idx (getindex elayer laynmlst))
$ s% T& p5 R6 f {9 i - )5 F9 v' {, {9 U
- (if (= ethickness "Varies")
" Y( g+ G5 F9 y8 q3 U1 H$ u0 F - (setq ethickness nil) y8 @2 B3 ?, l# B* A
- )6 K$ B: n7 V8 z% L# t1 p
# Z' u$ U5 ^ ~1 Z5 w7 T* O- ) ; end (ddchprop_init)$ x! r) F- O, u. U
- 5 C# p5 c" ?' ]9 r3 ^, O
- ;;; (ddchprop_select)
/ V: O/ R, y% F0 m( J# {, S( w - ;;;( [9 D; K1 N) r1 @) G T
- ;;; Aquires selection set for DDCHPROP, in one of three ways:
1 s5 M9 W' a- G% V7 M! C( W" b1 A - ;;;
2 S, J8 O9 z3 c2 z1 X+ [5 U - ;;; 1 - Autoselected.3 m8 P' m1 l9 D4 o
- ;;; 2 - Prompted for.
' H% O3 s* o' q - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> ) ?' N! Q; j5 F. |1 ~5 ]0 H
- ;;;
5 w6 j5 C: |2 K" C2 _7 `2 ] R( H - ;;; The (ddchprop_select) function also sets the value of the8 ^& ]& Y: @: @, e8 C; T
- ;;; global symbol AI_SELTYPE to one of the above three values to- L/ z8 i7 e O! L* j) e. R
- ;;; indicate the method thru which the entity was aquired.
1 E" J4 D8 f* Q
) J: r8 V6 l7 U* Y- + i9 o- m% R5 ~& _! d) C3 x
- (defun ddchprop_select ()/ ?% @! }# b: b
- (cond7 H* _# L9 l& N* n8 Q5 P9 B
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to! s" V1 R* B- H* } Q9 d* B) B
- (cond ; (ddchprop) as argument% o; m( x# F0 ?8 n/ v
- ( (not (zerop (sslength ss))) ; If not empty, then
$ e% _- P* D& b1 u1 W4 o - (setq ai_seltype 3) ; then return pickset.
( u% U6 N9 v0 y" W - (ai_return ss))))
K b; J/ ^* X+ _. r$ c% \ - ; k2 w) ~. D0 b1 S9 Z4 ^. f8 J
- ( (ai_aselect)) ; Use current selection
* l g' K* A8 B8 R - ; set or prompt for objects" ~) W. L1 G& `/ H; E
6 v& d( Y" [" @0 z# Z: [- (t (princ "\nNothing selected.")
0 a m# t5 m x' ~7 U, G - (ai_return nil))1 q* ~+ ]" J, x# t
- )
; W( d) \! o" u5 M" ^9 _4 J( F - )/ a4 w) i9 A3 R, ?
- + R1 j- o- ^6 R3 ^* E+ D
- ;;; Define command function.
1 p9 X, `$ G9 v - & h3 N3 \" ~ V$ T1 m
- (defun C:CH ()
9 q6 S E6 i% p - (ddchprop nil)* k0 J8 o' E6 G+ s9 f
- (princ)5 t/ P+ V6 e/ J8 J% H" ?
- ), y, @2 P5 t+ D+ U/ C* _- \
( G8 r, b' P; q: k' C/ R- }- 6 D5 [" e* k% i7 v
- ;;; Main program function - callable as a subroutine.
- M, q1 K, I6 K; y9 O# |+ B - ;;;
5 ~, A* ~ }, v% k! v l - ;;; (ddchprop <pickset> )
2 D0 q" w7 [( U/ y) y7 a( H - ;;;
% @: ]" j. Q$ J- @* b9 b* Y - ;;; <pickset> is the selection set of objects to be changed., C- M* K e0 f# G
- ;;;
- ]7 u0 H$ W `5 m! z1 u - ;;; If <pickset> is nil, then the current selection set is
* C( D8 A& E1 K' }2 M - ;;; aquired, if one exists. Otherwise, the user is prompted
$ R) h) P9 C: F. h3 B - ;;; to select the objects to be changed.- ?4 i& `, g' v7 n5 d$ o
- ;;;
; A# Q2 l: r. A8 C! I) U! p0 `: ] - ;;; Before (ddchprop) can be called as a subroutine, it must4 _4 w( q0 D G& e9 K
- ;;; be loaded first. It is up to the calling application to8 r: C3 @; J# [/ S/ K
- ;;; first determine this, and load it if necessary.7 q' E% l$ `0 Z: E- U( Q
( g$ b9 B4 c9 a% q& ~) t- (defun ddchprop (ss /* @; Z' T7 M+ o7 T- e
- # f3 a8 G- a/ Y4 w/ |/ u
- add-mdash ecolor ltedit_act s6 `' D$ \' ~5 F5 S
- assoclist elayer ltidx selset
' Q3 X7 c% Q" E7 r - bit-70 elist ltlist set_col_tile
% k! J5 K5 _) L8 P- O - boxlength eltype ltlist1
2 E9 L( ?* c: @- k7 a, L2 z - bylayer-lt en ltlist_act sortlist
& h0 R8 g& O/ d7 f1 J - bylayer_col ethickness ltname7 } O: q5 ?6 H# ~5 E, r9 {3 Y, i% g
- bylayer_lt fchk ltnmlst sslen7 T+ R0 \. X/ C
- call_chp frozth ltvalue templist
4 d0 H0 _! r: ?5 S - chk-col getcolor ltype temp_color
( o5 h1 C# B0 |3 ]6 Q( d2 [0 P - chk-lay getindex m test-ok
, E" m, O% i( n, T - chk-lt getlayer makelaylists testidx
# A; h" @$ ~0 l2 M$ O - chk-th getltype makeltlists testlay
& w G1 f8 Z0 Y& d0 Y - cmd getprops match-col th-value7 a+ D8 Y5 h. Q+ Y! h
- cmdecho getthickness match-in thickness
/ h3 g) m& B! l9 C I1 u- r4 b8 q9 C. } - cn globals match-lay tile
3 W) ^& P% ~$ O0 c4 M - cnum go match-lt tilemode
8 C+ x5 b. H; O/ D0 e - col-idx index match-th tile_rect
; \2 T# L5 D G* N2 J - colname item match_col vi& ?* \! T9 H1 Y
- colnum item1 mdashlist vpf
9 @+ H7 ~- M7 V6 ^: ] - color item2 n vpldata
( t0 S$ j# L( Y0 p2 l5 P - colorname itemlist name vpn# ?3 Y3 p3 `' i' U1 w8 ^. @! i1 `
- col_def lay-idx ncolor x, j" H7 Z; S/ ?6 A
- col_tile layedit_act nlayer x1
! t; w2 T. J w - ctr layer nltype x2% ?! W d3 c0 D# I2 M; V3 u* t: E8 @
- cvpname layinfo nthickness xdlist. V3 d* M6 Y% p4 k! n
- dash laylist off y
5 l' a) D9 f# H - dashdata laylist_act old-idx y1
& \* K, m0 V! r) N - dashlist layname olderr y28 B( q8 F5 k. r& r) z& [
- dashsize laynmlst on undo_init4 p# u- p, H* n. Y& A
- dcl_id layvalue onoff6 D# n& @/ ~; U8 {7 x# H; Q
- linetype patlist% b& t% W( }" C0 D: T9 ^
- ddchprop-err list1 pattern
- e' x2 A: v. v+ C, R - longlist proplist
* T$ {2 R7 N1 v# ` S5 L4 d5 I - lt-idx reset-lay0 o( k }3 D! H6 q
- drawpattern ltabstr reset-lt5 B2 ^, L L% m) B$ L) W( d
- )
/ b8 x4 }, z$ ]: Z
, [1 P1 s+ t9 V; r- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho; V$ N8 Z, l6 o6 j9 m
- old_error *error* ; save current error function. y( o( T \& w% ^
- *error* ai_error ; new error function
5 y) |5 p8 V/ ?% H2 p - )
5 b! a) |9 H) b - * ^5 s( b8 z7 f0 Z1 O% r
- (setvar "cmdecho" 0)
3 x2 n9 t1 F+ [. E - ; T* f3 m+ ~' k
- (cond
V- m. k, E1 u( v* v2 n - ( (not (ai_notrans))) ; Not transparent?
+ E- B- x' c x& P9 O3 ` - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
$ s+ v" F+ Y3 \* R6 x7 V - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?' g, R5 R) h+ E; c
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?5 P' V r7 P: {- y' X* M' ?
5 X: B& ]! N' B7 V w' \- (t (ai_undo_push)
$ B3 F& `9 B1 C4 G T - (ddchprop_init) ; Everything's cool,2 W+ {) ^* W+ ~2 r8 j% V* G3 `5 U
- (call_chp) ; so proceed!
/ c+ y( U% Q! S/ ~. U - (ai_undo_pop)
, V- a+ u! ?* y" k F# T ~ - )' _4 i0 {: {- j* W8 J
- )
" x. T/ O4 `. {& E# ^ -
: z/ f5 n, X. u7 W0 y1 J1 a - (setq *error* old_error) 7 L- m3 A$ c6 y0 }6 e4 Q6 O
- (setvar "cmdecho" old_cmd)
9 d# z. E/ F9 _! m - (princ)
0 x5 k8 I2 `& u - )
4 ]& h0 O1 C5 `! v: `& } - . u' M+ e6 I. m9 |$ Q% l
- ;;;----------------------------------------------------------------------------
# k" v' @; b6 D+ c - 0 }4 K% S, m) I: D2 G2 ~$ u8 h. f5 r
- (princ " DDCHPROP loaded.")
7 z3 _/ Q; {4 j - (princ)
' _# p# L* A0 K5 A; Q - 0 ~- I U) ^2 N0 Z
- ;;;----------------------------------------------------------------------------
6 u; s" H; T) `* s2 c - + z- v5 H- U: k0 u+ |) D
- ;--------------------------------ddmodify.lsp----------------------------------
( _* Z1 s! q: w) a: Y8 V2 v - ; Next available MSG number is 111% d% [0 A9 G8 P, [" j- {9 W2 [6 v2 i
- ; MODULE_ID DDMODIFY_LSP_
, {, \% ^7 a. f - ;;;----------------------------------------------------------------------------
# g) _) {# n8 f5 Z9 h4 e( g) w - ;;; DDMODIFY.LSP4 N7 `. [0 G2 q) }
- ;;;
9 L4 O9 {" d$ P y! O2 K2 w5 }! ? - ;;; Copyright 1997 by Autodesk, Inc.
! ]1 W) c% ?7 @$ \) U - ;;;) G Z' [7 k, p( b. T" o1 _ m1 K
- ;;; Permission to use, copy, modify, and distribute this software
( O$ Y6 L' l* b - ;;; for any purpose and without fee is hereby granted, provided i9 L+ Z, \# f+ @5 Y
- ;;; that the above copyright notice appears in all copies and
4 \+ B& R$ v8 J5 H - ;;; that both that copyright notice and the limited warranty and7 p% H- h& D8 Q3 j+ z# L2 P# Y
- ;;; restricted rights notice below appear in all supporting8 h/ G' f8 @6 N% t0 R& Y1 w6 U
- ;;; documentation.% e9 L! P4 o3 B! @! \5 _" {
- ;;;4 |- x3 i( y+ Y9 R4 @
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.: e6 g0 S9 _ a e/ G
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF: C5 S/ m" L" s$ s1 Y5 ?
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
6 Z0 k& @7 M# w8 \ - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE# |; ]* w+ q9 h1 }; W2 f9 N
- ;;; UNINTERRUPTED OR ERROR FREE.! ]% ?2 v& e. ], o8 o6 m2 r
- ;;;" n$ N2 a$ X$ O- j
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
' k" ^5 v X6 h - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer9 y% z: \& c$ k G. [
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
; K0 @4 r: Y/ E - ;;; (Rights in Technical Data and Computer Software), as applicable.$ D4 Z% s' Q. A& {6 ~9 C7 I9 ^
- ;;;! U5 U( Q4 w" [9 E% n7 C
- ;;;.- n4 I1 ?& P9 w5 v
- ;;;
) d0 ?5 m3 R- M - ;;;----------------------------------------------------------------------------
0 g+ |0 y. r' Z2 X( Q - ;;; DESCRIPTION
( m- k3 g/ ?1 @: E - ;;;
1 n$ f2 d; g5 f8 M2 T r5 n( R - ;;; This function allows the user to get a listing comparable to the LIST
5 _$ Y0 Y/ Z! h# x& G2 ?5 M% R6 c - ;;; command for most objects. In addition, most object fields in the
- t7 P( Z* l5 b8 p# Y% X0 K - ;;; dialogue box are editable. Points can be specified dynamically by
* u+ Z% Q0 C. n9 f - ;;; temporarily dismissing the dialogue box. Each object has a unique j+ b7 ^, `( b" k1 p3 b
- ;;; dialogue.
5 C5 o0 y# j& e$ u - ;;;& R$ O8 W7 L+ p8 N" a3 F/ \
- ;;; Naming conventions# L' T; D; U2 D. a0 z
- ;;; Long function and widget names may use an underscore "_" e6 n) Z& v% n5 U7 m+ \/ B$ D
- ;;; in their names to make them easier to read, long variable
- ^4 F& m5 w) Y" M/ B! c - ;;; names use a dash "-".$ b2 g. h% b) k* q0 T% N
- ;;;----------------------------------------------------------------------------
, x! u# m+ Z; X% T) f6 y1 E - ;;;----------------------------------------------------------------------------
4 ]$ ?) [. @5 ^0 w; J9 { - ;;; Prefixes in command and keyword strings:
/ J# s* H% S! m+ X" v - ;;; "." specifies the built-in AutoCAD command in case it has been
9 Z: J4 d% O/ z7 f5 G% p - ;;; redefined.2 R% Y0 o4 B5 [+ M2 C% y
- ;;; "_" denotes an AutoCAD command or keyword in the native language9 J: ~: a. y ]( ?, ~/ @
- ;;; version, English.
# A( B6 {6 ^/ P1 l s' X" X - ;;;----------------------------------------------------------------------------
0 w# U( _4 V* z - ;;;
9 | h5 j$ U* [ - ;;; Avoid (gc)s on load to improve load time.
3 V# k; d0 ]. Q+ A: ^ - ;;;8 f7 \- a( x9 i: {! @. e5 w
- (defun do_alloc (/ old_allod new_alloc). a5 w, S0 W3 b1 L+ X% X
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
! i' u) E+ A6 I/ x) U; Y1 E1 t% _9 C) i - (expand (1+ (/ 17000 new_alloc)))
5 p( N o+ E5 m+ D1 w6 q - (alloc old_alloc)
# q1 K( \' T5 F - )2 s, t: W( T# X) v* f
- (do_alloc)* ?9 d: W" r- Q7 X9 i3 Y" {% X v
- (setq do_alloc nil)9 u0 x$ }) ]6 E
- 1 K! ?# k8 U7 L% j* `* V9 d
- ;;;
, ?3 p$ s" I0 E+ k _ - ;;;
' u' J# A z" u* b* A6 q( U - ;;; ===========================================================================
' C, G) S" F( S1 b5 @- p- g - ;;; ===================== load-time error checking ============================
, N7 F3 u N3 O. y$ o
/ W A1 Y1 k6 L) C5 r1 g- (defun ai_abort (app msg)
) W; u/ n; R0 b, R$ p - (defun *error* (s)0 I( B; Y# ?) x# q
- (if old_error (setq *error* old_error))/ S+ \1 m7 L j8 s/ ~
- (princ)
2 z$ x: X& \! b. x - )
2 C, ~: _8 T8 W% J6 q - (if msg1 i: K( O% B& ?. u5 T! G
- (alert (strcat " Application error: "- U1 c! b7 ~$ M K8 q8 \
- app
6 t+ m- J& r- v, K$ g7 R - " \n\n "
# p* E1 W' l$ s( Q7 l8 n - msg
+ `5 y) \- w2 h: F3 O" v - " \n"
7 q4 z3 V1 M9 f4 E) o. N - )
- }* i) M1 y* ]( y8 V - )1 j# E3 z: |: i, @
- )* \* R$ U* M1 A+ O7 A8 | Z; u
- (exit): J6 c) L. s g8 [
- )
, i7 F% k+ O% D3 d: S0 D1 v - ~( D; T" c3 F. N7 f ]* t
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
0 @; @* Q4 h/ n! d( r - ;;; and then try to load it. If it can't be found or can't be
8 |" u# c( b3 W - ;;; loaded, then abort the loading of this file immediately.
6 W# e: d& I- O5 O9 C% V - " R& N" z+ l+ H2 ~
- (cond2 \4 h1 F4 v, D1 _! y" o3 {
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
# w- r# g. `/ r. p: g3 i( [ - % F8 N! S4 N. X
- ( (not (findfile "ai_utils.lsp")) ; find it$ `8 l! i% D7 ]) l
- (ai_abort "DDMODIFY"2 A4 [% H* |! F0 b
- (strcat "Can't locate file AI_UTILS.LSP."
( M" k9 T' ~1 R6 i+ Q - "\n Check support directory.")))# t' m: m5 |. U. u
- . X* _0 P6 a( {
- ( (eq "failed" (load "ai_utils" "failed")) ; load it* f$ ~$ q5 s3 J, D
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP")). c0 n' S; ^7 }( I
- )
! K, V% |% Z3 K# { - 4 j5 |0 V, [& ]4 I' r
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can' \4 ]: ]* m- p! @- r) S
- ;;; be assumed that all functions defined therein are available.
( n# l+ n! t0 M4 X- v3 o) b5 B/ b
5 B4 }8 M$ g! l# w- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
- ^- d( ~& _9 g4 x9 Z - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
, b' Z- p/ |7 c& D4 _& W - ;;; does not abort the running application itself (so that it can
& j3 a/ m2 N1 O, g - ;;; also be called from within the command without also stopping
. h1 z; _0 n7 X7 u - ;;; an AutoCAD command currently in progress).
& u% B K- |5 F' H2 l# }
+ Q5 I: J9 N/ D3 w4 C( g: g- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP0 h, m1 f( k4 Q1 s9 @8 z& y% X
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses( [8 x. R$ }2 k( g' V5 O$ X `! f3 i
- ) ; ai_abort's alert box dialog.
5 M' h+ Q' v* J# p# E
7 W/ j8 {% P2 r2 A- ;;; ==================== end load-time operations ===========================2 U0 P( V2 k0 a7 Z: [
1 Y4 |7 M! |" R" r$ s9 T G- ;;; global variables) a5 N$ u! {1 |0 i' ?5 x
- $ t3 l# R- L% o3 V
- (setq hatch-elist nil)
4 ~# k- p! H) r5 ]; `2 R
9 J: N3 Q6 A& O2 V- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are l6 J1 n' t! N
- ;;; assumed to be available.1 k" k) Z. E" A
: _. C9 E. [# M4 ]: C- S8 [' ]" c9 S- ;;; Define and encapsulate all subroutines that are declared
. i. ^8 p2 S. e" x3 P) ~ - ;;; locals of the (ddmodify) function.
' y: b& W( n/ T: n! F' ~ - % B7 t' ?# L( a) t, G$ S
- (defun ddmodify_init ()
) L2 c7 R# k) u$ t1 y1 C" s' q - ;;
3 ?; e9 F+ G1 ~2 h - ;; These three functions modify the enitity list for common properties. Since9 R% i% O% K# `$ x' ~# m; w3 W
- ;; color, ltype, and thickness are absent from the object list when they are; U! x) g" F# ?1 B- }5 X# t
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using
4 d% b: j4 l! ]) ^0 A - ;; SUBST is not possible. r0 m7 m: `. Z2 P! Q
- ;;3 M, x" B# n: ^- B7 |
- (defun modify_properties ()) H6 z' V' m0 H. c8 C7 Q! ]" b2 P
- (emod ecolor 62)
W- q, V8 N7 ] - (emod eltype 6)! O. {4 R8 \% f7 o5 w* m# i* M& }9 }
- (emod ethickness 39)
5 l& d1 Y' `3 l1 s" R9 a1 _5 ? - (emod eltscale 48)
% S: Y! f. H! e# M a: \. }! h* A - (tempmod elayer 8 nil)- x2 l6 e2 g6 n$ C9 e, x) N
- )1 H0 z4 P) N x) C* u
- ;; e( C/ s) K8 w3 @; X8 u
- ;; This function is used for modifying common properties of the ACIS
1 ?$ j/ _' F# @0 n) q - ;; based geometry objects. Thickness is not valid for these objects3 q) W$ C, y6 u
- ;; so it is left out.. N5 z0 ]2 `7 K/ ^7 C0 M& w& @& j
- ;;+ s5 C+ |2 b! u
- (defun modify_prop_geom () h+ N1 M: v; [$ ?8 g
- (emod ecolor 62)
6 C8 n, z' @- r# F5 m - (emod eltype 6)# l* X7 F D+ b2 W$ w
- (emod eltscale 48)9 J- s9 r; R, ^; H$ ]2 Z
- (tempmod elayer 8 nil)5 N. ~7 F: s) b4 Y
- )" c, S. \3 c0 F
- / x9 v2 x; I! f& t ~
- (defun emod (value bit)' _4 }9 ?1 v$ t: Z
- (if (= bit 62)( U% Q0 j4 U, t- E" @
- (progn
+ T' Z7 m/ \8 d - (if (or (= value "BYLAYER")! W" [- r" v+ j! K
- (= value "BYLAYER")) (setq value 256))
& o/ \+ y& N, [& O - (if (or (= value "BYBLOCK")+ N; c2 v3 y" e K
- (= value "BYBLOCK")) (setq value 0))
. [; L$ u5 j" v7 l# }4 Q - )- d" n# P6 K) E, R5 h7 o
- )& x& f- a# B4 H% e6 \$ d
- (if (setq oldlist (cdr (assoc bit elist)))
+ I* D( i+ l2 M) }6 {8 P8 T& ^; { - (tempmod value bit nil)
, P& W5 i/ F/ j: u- {2 `% h - (setq elist (append elist (list (cons bit value))))5 h) _- a; Q) c0 Z
- )7 S/ e/ n. a2 K6 a( @ N; G
- )! t: m4 M& L. r) Q0 t# z" O
- ;;
0 L! Q3 r7 `! Q' V6 Q: H& Q2 L - ;; Resets object list to original values. Called when the dialogue or5 ?$ r' D7 X( g! |# j( b* ]
- ;; function is cancelled.. d& c, ^3 `) }! y
- ;;
# G, @" c8 a3 I) |- ? - (defun reset ()
: s4 D1 ?: q- |3 H! M - (setq elist old-elist
. P( g5 c% ?( f( i" k; I0 Q% O - ecolor (cdr (assoc 62 old-elist))9 I, y( T! S9 O3 T; v# }/ R0 y( Y
- ethickness (cdr (assoc 39 old-elist))
2 f9 }: D! U, p+ g& j- I2 \ - eltype (cdr (assoc 6 old-elist)), [9 X8 E0 @: b! f9 o& l
- elayer (cdr (assoc 8 old-elist))5 [( P+ v' V. b- ]* d8 G
- eltscale (cdr (assoc 48 old-elist))
1 ]5 ?# E) J+ f& d - )/ B8 u/ g: ?+ `
- (if (not ecolor) (setq ecolor "BYLAYER"))* N5 _: L. X' X6 [
- (if (not eltype) (setq eltype "BYLAYER"))/ h: O5 z, x1 L+ T( h" [( X
- (if (not ethickness) (setq ethickness 0))
* T4 H g7 L& T& h( ^2 W+ z - (if (not eltscale) (setq eltscale 1))( z5 Q6 u U. b. ^
- (modify_properties), [2 B% A$ h) [5 X, R4 d. ~: L
- (setq reset_flag t)4 X4 A3 N4 b* w9 ]
- (entmod elist)7 `7 B/ m6 B2 i+ w0 H+ M9 d
- )% a) R3 t- J ]* X0 z- t
- ;; K) ^ L2 y* |! n, U- s" j
- ;; Modify object when dialogue is temporarily dismissed to reflect latest9 ~; D6 M; d6 `% m
- ;; settings of dialogue. It converts the point from current UCS coordinates to
. k' `6 M! V- M# E - ;; the proper object coordinates (world or object).
" I* K; U6 E$ C. s - ;;% s, g# M% C" `& S6 ]2 F+ p, F$ {
- ;; Arguments: value - in current UCS coordinates# J" y% F+ b" x9 `+ |8 ?
- ;; bit - object code (i.e. 10 for start point): W6 {" n% \, D
- ;; ptype - point type 0=world 1=planar! ?0 r- r' ~- p+ p! g& O9 }+ I
- ;;% {" }3 W, ]9 r* \3 [
- (defun tempmod (value bit ptype / newpoint)
, g2 P" a0 h6 }* E4 x8 X - (cond, p. o5 F! A9 Q. n
- ((= ptype 1) (setq value (trans value 1 ename)))% C' u3 ]0 w" W- Y0 E) D, O
- ((= ptype 0) (setq value (trans value 1 0)))5 d; u9 n. p/ e: C, ~) N7 H
- )
: L2 S& Y7 I1 N9 c8 P - (setq elist (subst (cons bit value)2 c8 W* |3 l+ z& B* a+ r+ m- H5 X
- (assoc bit elist), K! t- L# c/ I% i* o
- elist
3 J4 q/ p* X" R" ^& S9 y - )
$ ~9 [/ Y5 r/ `5 G - )
( q$ [" s' B( U% P" L; c - )
& b2 D) J9 T% p - ;;
5 Q; T* L/ m1 R6 M( C - ;; The following functions are called after a dialogue has been temporarily6 S* U5 l. J0 L6 e' q4 W; N/ B
- ;; dismissed and the user is selecting a point. If a point is selected the- v2 Y& U5 X, k% J+ b" r
- ;; object list is modified and new X,Y,Z values set. If no point is selected
8 i o( L% P5 t9 q4 z; ] - ;; (null response), then the point is reset back to its previous values.2 N! u& |) c0 |/ {5 d0 c
- ;;( E5 l. {9 O) g; R
- (defun ver_pt1 (ptype)
+ m5 @3 r" X5 |2 C4 y& i$ M5 ] - (if pt12 Q4 F9 z) |& n
- (progn
X5 m5 D: f; @; r8 z - (tempmod pt1 10 ptype)
0 V$ s4 v2 I5 @- b: F8 _' A5 { - (entmod elist)
* r3 I6 q/ {$ @4 d, s/ X( }1 q - ), c2 O3 r5 ?: H" |0 M4 G5 I
- (setq pt1 (list x1 y1 z1))0 N) i k+ v/ _7 e- ?
- )7 Z9 ~$ p7 y. E" N: k8 n4 E" H) T
- )9 h: y- H7 a T3 e, H' n6 p
. Z6 _/ Q* i1 O. U4 k- ; (move_pt1 <ptype> )
/ F& `) C* O# A" W - ;, W4 P+ F& k' T8 N7 D! |
- ; Called in liew of (ver_pt1) to translate block insertions which& P1 ~! @1 g! l; q4 r. V8 A/ ^9 n' J
- ; might have variable attributes attached to them. If the distance+ a! D1 H( G6 V' F* z
- ; the block is to be moved is < 1e-6, the move is deferred.6 p5 O; ]" F7 e( o. {$ x9 N/ ? \, o+ k
- 1 Z9 z- p- c: |
- (defun move_pt1 (ptype / basept hi)
i4 V! P2 ?4 c - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
, C; |) |4 L- B$ V T! ~0 f9 ]1 e - (cond0 F9 w6 j$ n8 W, p+ M( {! @. |
- ( (not pt1)
* E/ X K( y3 p) L9 s- r - (setq pt1 (list x1 y1 z1)))5 S7 w5 t( ^5 Y- x( Y* q. u
- 4 C9 Y1 B" d* u
- ( (> 1e-6 (distance pt1 basept)))4 [7 `" R9 Y) _- [) q: ^2 f
- o7 C. y7 g* h$ m. [" x* M3 G! K
- (t (tempmod pt1 10 ptype)
8 y @8 t e. J8 C1 w0 Q" W1 A; n - (setq hi (getvar "highlight"))
5 n+ k$ a6 c: O8 }/ j1 s: t - (setvar "highlight" 0)
* ~. e$ B9 j& l; k - (command "._move" ename "" basept pt1)$ `7 F/ Q3 g8 R6 `! B/ I/ j! n
- (setvar "highlight" hi))% s) H8 o1 V( N; x; o
- )! `/ B. R2 d" q/ S! o* h! g
- )+ g d( `0 p. B# F4 g0 G
- 0 |2 E6 R/ M2 p& G
- (defun ver_pt2 (ptype)
1 [8 P9 i" H$ r9 w2 ^ - (if pt2* k4 S3 x. T" N( O. i9 e/ ~+ }
- (progn
" Y7 n& o# T7 B- B) R6 }1 b" [ - (tempmod pt2 11 ptype)* p* ^- A& y3 A/ v3 x
- (entmod elist)
5 a! M! C4 a4 |# M( Y' x( J - )
) C' t. P) |0 k) m. \# _0 a# t - (setq pt2 (list x2 y2 z2))
b3 F0 S! h2 V( r7 f* \ - )4 O* o. W4 n: T. W9 Q" \
- )' a8 ]7 o f( B* {5 }3 `" V2 B
- - `! f! g$ x2 B# l: ~, k! h7 `
- (defun ver_pt3 (ptype)
7 f+ Y# {* X# H0 n7 H9 [ - (if pt3% Q5 V/ f; y; X: f6 v3 o7 Q. R
- (progn
6 q z! h* k$ E4 H. T% f ] - (tempmod pt3 12 ptype)
, F( y! l. t. J' o - (entmod elist)& O& O. Q* [0 y* `( ^% T# L
- )
4 K4 l8 q [" c2 B3 i- L - (setq pt3 (list x3 y3 z3))3 t5 O v+ t0 T3 Q" K) x& g- J
- )
8 X7 j: J" J( o$ g* v - )3 |7 t5 w3 H" B0 n" ~" n
+ K* {' W: f" p+ D' M& h. _: r$ Y( W- (defun ver_pt4 (ptype)6 T" g- F! J( s# T
- (if pt4
$ A2 Q2 l' E- B9 u& e0 \: B - (progn
0 o, x5 i# ?+ H& f7 o" M - (tempmod pt4 13 ptype)
) p7 t% `; T; W' [( I/ {7 c - (entmod elist); `: }& F8 F9 L
- )# B8 s, t& z# j, f- r
- (setq pt4 (list x4 y4 z4))
5 W) A; j M1 H* b: h8 R- g ] - ). M; V1 j( M0 a% I8 |. d4 f, S2 F
- )
3 U Y l& f, ?0 T" i - ;; Xline/Ray
( U* `+ G: k9 V6 J8 m% B - (defun ver_xline_pt1()) }0 x- |9 [! b
- (if xline_pt1
) T# Y H- s; D - (progn! v8 ?( d2 y( V1 Q6 l' b- E0 j" a
- ;; convert to WCS.
, z# Q* X# t& R( } - (setq value (trans xline_pt1 1 0))
* B! W# G- K! j4 b, c0 Y) r - (setq elist (subst (cons 10 value)
. @& c* \) [. G8 x: P* Y7 p7 P - (assoc 10 elist)
7 S3 o& a# n- K' f% [2 \ - elist
& U0 c0 `6 K5 ?" m5 h6 g5 x8 W - )% L, a* B2 f: @% Q. b- S" E, q
- )6 ]: u( t: M* J, E' b0 V8 }+ z4 R
- )
3 B# H/ o/ U; E+ G3 Y. }! \ - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
7 u0 G4 y9 v- P - )
; @' X, c6 w2 r, m7 h+ s6 J Y" i+ M d+ ` - ), T2 e1 ?3 g8 i4 R; Q( U& J
$ K! G5 x8 X7 s: h1 ]7 Y6 w4 V1 w- (defun ver_xline_pt2()
7 W) J# d+ X' ^; ~0 c: z - (if xline_pt2
( U# }: E0 c, P4 @2 v, B - (progn
; Y6 s% L1 i2 W3 O% N+ j - ;;; I/ u% r# |+ {
- ;; Calculate new Direction Vector WCS4 D7 ?- S* Q& ^0 e, g0 {
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
- m! g8 Q; O7 D; k% I8 a9 N. W0 ^ - (setq temp_dir (trans xline_pt2 1 0))
) h& G `4 [( b& F4 \# V' I - (setq temp_dir_x (car temp_dir))
7 V+ ~; o* g9 p, z# ?5 E - (setq temp_dir_y (cadr temp_dir))
6 |7 d0 ^$ V" | I* v: F( W - (setq temp_dir_z (caddr temp_dir))
- E& E* |# U F8 t: ` K# {8 I9 T - 4 K0 S5 i4 n- y4 W8 @* N, ~
- (setq temp_xline_pt1 (trans xline_pt1 1 0))1 ~" O/ R6 a/ \0 v3 s/ ^
- (setq temp_xline_x1 (car temp_xline_pt1))
1 w* I+ K+ D9 @2 K8 ?5 G( Q- K - (setq temp_xline_y1 (cadr temp_xline_pt1))
- f, L8 A5 U% Y - (setq temp_xline_z1 (caddr temp_xline_pt1))' N* j5 t- d0 ` v
- / Z& u. v Y% y# U
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
1 u4 J" f" \1 S2 }5 Q5 R - (expt (- temp_dir_y temp_xline_y1) 2)
8 e k! ~* p. q, I( f- J1 B - (expt (- temp_dir_z temp_xline_z1) 2)) d9 O6 ?7 q3 \# _& G
- )))
2 x; c) @$ d* o" { - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))4 _0 g( z' B8 C' h' i: H7 D& k
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom)) H+ S2 ^- |; a" [7 Q
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
' z$ J8 r. ?( L* j8 K+ i7 k; d; g - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))8 m# r7 p ^& R, K- U
- (assoc 11 elist)
0 ]. y5 G( @% T. R0 F$ J - elist
* d! p! l' w0 L' } - )
! r2 s, m, `, d0 y$ d0 a - )) h' C$ X* B, q4 { r
- (entmod elist)8 [: E; n) P9 Q9 p t- Q
- (setq xline_x2 (car xline_pt2))5 a% G* D* V- T+ t
- (setq xline_y2 (cadr xline_pt2))0 U9 `: x9 F( l( p" P3 M
- (setq xline_z2 (caddr xline_pt2))8 \4 c% k" ]( g, Q
- `3 N* U9 Y W. n- 2 u' B% E" k, G
- )
3 l4 `! \* E( S% ^: f+ P - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
% T, m5 V3 m# q* ]3 [ - )2 B5 A- Y0 {/ X5 M3 V
- )) Q T+ V, e; O5 G0 }
- 4 A; R9 q) z; ?4 F; z4 P
- ;;
+ j, `& h0 c# T( G# N/ m ?) C/ h6 p - ;; Common properties for all objects
( }: h" K) i8 t* X/ z5 \+ k! N - ;;
: V. B/ ~/ Y) A) I0 i - (defun set_tile_props ()% A8 f9 \1 g' u6 v' I
- (set_tile "error" "")
& z7 r* ?& e2 H+ L - (setcolor). \$ }! |7 v9 q
- (cond$ x; {; i# ?$ j
- ((= eltype "BYLAYER")
/ G5 n) b9 |2 ?8 g* z8 g; w - (set_tile "t_ltype" (bylayer_lt))), c; r+ _" R9 y& s- g( C; S
- ((= eltype "BYBLOCK")
" l7 q/ l+ B( B& B1 { - (set_tile "t_ltype" "BYBLOCK"))+ R$ y& T' O3 ]4 a
- (T (set_tile "t_ltype" eltype))' V5 q2 @' p {- I) G _
- )2 q U& K% Q! v1 l
- (set_tile "t_layer" elayer)' K" D f- W( A6 d+ X$ X+ \5 C/ K3 P
- (set_tile "eb_thickness" (ai_rtos ethickness))
3 F& ]5 U7 A2 @- T2 W( z, F - (set_tile "eb_ltscale" (ai_rtos eltscale))
1 t2 V' m9 S, g- v9 x: D1 w - (setq which_tiles (ai_common_state etype))
$ Z# r- d* K( S5 T2 O - ;; Disable tiles if need be...
7 t7 [3 ~, a* e1 @9 z - 4 B" }- |6 c( i" W0 I
- ;; Layer Button and Text Field
6 j5 C* `1 t! r4 p2 o - (if (/= 1 (logand 1 which_tiles))
) O& U, I3 q9 F) l - (progn; `7 l/ [. u3 _' G$ h
- (mode_tile "t_layer" 1)
$ D3 F5 H" E4 M" H - (mode_tile "b_name" 1)% {, L+ M7 L9 s
- )
# s3 \; A4 n9 ]- m! I9 l) Y - )( z3 z2 p4 [: g
- ;; Color Button and Text Field
+ d: f8 B9 u8 f4 G$ b& U2 Y5 U( d% |4 h - (if (/= 2 (logand 2 which_tiles))+ a$ x2 T. h* b+ O
- (progn( Y$ s8 j: P9 [* X
- (mode_tile "t_color" 1)
+ P0 ` d2 J- N+ J j. Y$ x - (mode_tile "b_color" 1)& b5 A \0 Z, m) r# o0 E/ F
- (mode_tile "show_image" 1)* H3 F+ N1 y, f, M$ Q0 N
- )
/ Z/ H. o5 `! P( W: [ - )' @! Z* w {% ?
- ;; Linetype Button and Text Field
! `+ s2 m+ n/ D - (if (/= 4 (logand 4 which_tiles))
2 ?4 L0 ~: \. [% w - (progn$ {2 h) e8 z- P) b$ o
- (mode_tile "t_ltype" 1)0 ^4 A9 G. f+ I& n. F$ M/ Z$ b/ b7 \
- (mode_tile "b_line" 1)" } F" [# Z/ t3 G
- )* M3 m: R& ~# d" F& z* _9 v6 v5 E# h
- )
# j6 q* ~" C: q - ;; Linetype Scale Edit Field
/ k3 L" z7 W6 E1 A/ G+ ^# d) } - (if (/= 8 (logand 8 which_tiles))
: L( r/ D8 ^, g$ B - (progn
2 r3 X' P! L; A. n, e4 Q2 t. u$ U - (mode_tile "eb_ltscale" 1)" I1 E4 o( q3 ^2 p
- )0 F W: X: |& l# X1 N t- F6 ~
- )
! K* B3 S2 O0 m/ I* K4 v# S - ;; Thickness Edit Field.
) y( W- a, T2 S: ?9 s - (if (/= 16 (logand 16 which_tiles))
9 j/ o* }1 ]5 o$ ]7 g& c! x2 p V* M - (progn# H; o* e/ ~! D" P
- (mode_tile "eb_thickness" 1)
) I0 J0 b3 k2 h, a6 ?& U - )7 X5 }- I- r0 o) e v9 G
- )! F) N( Y7 c2 T2 @; |& j8 x
- )0 k6 K9 }; d5 ?7 b# u! i+ I
- ;;
& r- W1 r+ Q( k/ ^4 J" ]1 m - ;; XYZ Point values for all enitites8 n- N& o, w9 m9 }' T- w8 y& o' ~3 X
- ;;
4 }8 v* S/ |: N/ i- x - (defun set_tile_pt1 (ptype)5 i6 y4 s, i9 A- q- [* ]
- (if (= ptype 0)
. V. ]* S( Z* r, L9 W, Y7 N - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))! m" p3 Y: _9 V" t9 d% c% ?6 x9 d
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))" p, T: C( u/ x3 r9 n% P
- )
; J9 n# \8 c1 |# M3 { - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))5 D6 K0 I* f0 L+ P8 Y& w7 v
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1)))) F: d. w3 ~7 q5 T# }% F B) }
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))0 v' z% O; o1 Y e# e! `, n
- )
$ D- z3 y& w6 g( {5 x - (defun set_tile_pt2 (ptype): B( e; G' Z5 y* `4 a
- (if (= ptype 0)
$ t& h3 j' ?3 {" e t; ]- H7 V - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))" }! g7 s2 ~+ P
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
. ~% @1 \$ L4 X9 N3 S5 E6 {7 n- r - )
9 A3 E' _8 @ s7 E% |/ u' R% E - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))9 b7 u9 i' f; Z+ [
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2)))): n* d, x0 H# O8 n1 J' `! z% X
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))# d/ t3 B9 n7 ^8 i1 D9 Q7 H
- )
7 n3 Y0 s$ i9 N6 Z - (defun set_tile_pt3 (ptype)2 t9 ^' S1 R9 d4 e1 l/ @
- (if (= ptype 0)
0 [. h! y. e1 @; u - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
8 K* _2 n. t+ K) _ - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
% [! S# h) t) M( F - )
' E* A$ v K5 T) j5 n - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
+ E: t7 r1 h* z6 ^( R% ` - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))0 w" ]) ~7 K6 C3 o' L
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))2 C1 k" }# B, ^" z" E6 s5 L
- )' D: W8 R3 Y/ Z6 {% B( U+ S
- (defun set_tile_pt4 (ptype)
/ a M" C6 A% a, r& D9 O1 } F - (if (= ptype 0)" l& g9 D# P) b+ O; E2 a
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
1 c9 \. }$ j1 V - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))7 G6 U9 p# |1 S8 I: i
- )
8 c" x; ~; `9 m% g) m - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
% \: e8 n# M% A - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
: a/ z. v8 V* u( `: R8 L/ e( R - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))! D2 [& f9 f9 s) ^; P0 @
- )
) n+ V( f* Y( ?( z( ~ - ;;/ m' R- u W5 r% r. Z+ A9 a
- ;; Xline/Ray
( @+ p3 I+ w) { - ;;* b( _4 F& y! A/ ~7 T- U, U/ F5 M
- (defun set_tile_xline_pt1 ()
2 U* S$ k% x* @
' o9 I6 ~' @: ~! u, Q* S5 Q- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
5 i c! T' @1 p% Z - * U6 h, U9 s6 J% t% m. M& C/ Z" i
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
7 y- j# P7 P @2 C7 E' g2 K6 y - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
; d D8 {' u2 L! T$ j; o - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
) o6 a4 e* |) ?6 p, A9 N; c0 o - )7 i0 ]' n; I! r9 |4 X
- (defun set_tile_dirv ()
( v3 H; @, x4 J6 e/ @- w - ;; Convert 11 group to local UCS (displacement)* Q0 r4 I- p& l5 H! k' C
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))/ c* D3 k* Y( \; e* |3 T- b$ p5 z
- 9 V$ b1 }4 J. F/ e" z
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
- e* N$ m/ i( `# C1 @ P+ | - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))! Q5 T4 g: j9 r! t" Y& r
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
+ l* x3 W, \& s - )& X: ~" Z# c! A" D, ~
- (defun set_tile_xline_pt2 ()
" R _8 \, ^4 W' v" J. Z3 C - (if (not xline_pt2)
3 V) {5 J$ k+ `6 F4 o. |8 [ - ;; Initial second point is Root Point + Direction Vector
0 y T5 S7 M k$ d2 V - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
2 C5 E- U2 m1 d% `' m0 R- ?7 ] - )
4 d. Z7 m9 U( G K' o; { - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
' m4 {; N2 |4 f7 m - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
9 J1 }* \4 {8 w' O$ y - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
. ]- \8 R1 l. G \ - )9 m+ [2 f& h5 W) O5 L8 M* P
' ~5 z- O7 X& U/ C* L% }- ;;& J$ R" v& e. ]. V" o
- ;; Handle for all objects
/ @0 s) c- N: G, @( N - ;;
- L6 @+ G* `) H! Q - (defun set_tile_handle ()# \( h" p6 P; \8 q. R4 G
- (if (setq hand (cdr (assoc 5 elist)))
. b5 b1 C1 i/ l# ? - (set_tile "Handle" hand)
; Y6 f. W0 i" R: J - (set_tile "Handle" "None")
# B: w- F* \- W; p/ @4 d! _! `! t - )
) {6 B7 d- F+ z5 m. v - )/ J% t# V2 T4 b0 x' l, m
- ;;8 I, L' f7 Z- G5 _0 y( N
- ;; Radius for ARC and CIRCLE% H6 A$ e0 v- x/ f# A/ {
- ;;) c% `7 d+ I. E6 L
- (defun set_tile_rad ()
R/ j' ^1 N% R6 K/ q- G+ G | - (setq radius (cdr (assoc 40 elist)))
' c; c* D, c7 G. E - (set_tile "radius" (ai_rtos radius))
3 L& b: l& F- u, V& }3 w) C - )6 m/ f( Q0 Z* r0 V" O- L
- ;;
- k/ s. E; _: s2 k" L. L; k) n% x. } - ;; Start angle for ARC R5 e/ N; _0 M+ P, c
- ;;1 T- _( \" q; \5 G& n
- (defun set_tile_stang () s" n! F1 L4 W" |
- (setq st_ang (cdr (assoc 50 elist)))
0 c/ y0 J2 e6 U* M8 G( k# r3 r - (set_tile "st_ang" (ai_angtos st_ang))
" g. @% Q/ j, H/ p M - )
2 w8 E6 @0 E/ }9 G - ;;
, D+ r/ a) Z- D8 ?. U - ;; End angle for ARC
0 [5 b: w g1 R7 |# O) d. W0 ~ - ;;
- b7 s" J q- g - (defun set_tile_endang ()
6 |2 d3 `5 n! n - (setq end_ang (cdr (assoc 51 elist)))4 I1 }6 M$ `$ Y+ O, H# t
- (set_tile "end_ang" (ai_angtos end_ang))1 L2 e2 Q* n, t( l) _( _! |
- )# i$ D8 g1 K9 O% h
- ;;! h; A# P( `( e5 ~* P5 y X; }
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
% i! }! y- p* g- Q9 N: C - ;;
+ k1 e2 @2 E3 X, P - (defun set_tile_rot (): [! j6 |7 E }3 D7 d0 k& P) V
- (setq rot (cdr (assoc 50 elist)))$ O/ J' g( j' p6 W, x+ L
- (set_tile "rot" (ai_angtos rot)) g, }8 @! J4 r( w F
- )
# |$ y: y4 V5 V4 n* T4 I/ w - ;;9 `* e$ S; D# h2 F4 I, |8 }1 R* ?
- ;; Height - Text, Attributes and Shapes0 K- q" G* d6 p, t4 H
- ;;
/ h5 P+ f* J7 Q4 L. R2 @* V - (defun set_tile_hght () P, b6 m, E" P; P
- (setq hght (cdr (assoc 40 elist)))4 N* ?6 v; S, U
- (set_tile "hght" (ai_rtos hght))
8 N% I* X1 Z( |1 c - )
! Q0 |, `+ ]3 S5 b6 X' s9 s* B. L - ;;5 v" Y( F7 w" B
- ;; Width Factor - Text, Attributes and Shapes ~0 g3 |# u1 j: P+ d/ c J! T! I8 x
- ;;) ^! G( v' e) U: U
- (defun set_tile_wid ()$ Z2 g+ u% F& v3 k+ X0 S# K) L
- (setq wid (cdr (assoc 41 elist)))4 j8 A9 b, k& t* v' m; T4 h0 n
- (set_tile "wid" (ai_rtos wid))
9 Q; Y0 A" l' ]2 s9 l - )4 i* M0 V; `1 T! x& g: U
- ;;. b& w7 p6 ~0 j6 C0 F! h8 N
- ;; Obliquing Angle - Text, Attributes and Shapes
5 c. \: p# ]' I Z | - ;;# z5 l' K! ?1 A! D9 O3 @: N' y
- (defun set_tile_obl ()- l& [. H. R+ r. t7 U8 e3 o
- (setq obl (cdr (assoc 51 elist)))
5 F6 z) z9 x6 @) i' H - (set_tile "obl" (ai_angtos obl))
& _1 I9 U5 r' Z; S1 f, K - )
! `7 s) N6 S+ @3 V; z - ;;
0 y$ E% `' t8 R: }+ b% x3 O/ O - ;; Text string9 o( \5 X6 h* g0 H- W
- ;;/ T; v8 i! T3 a3 H. B
- (defun set_tile_text ()& R5 o7 y$ c8 l) y4 E8 n8 I
- (setq text (cdr (assoc 1 elist)))
. m; ?* }$ i# N0 U - (set_tile "t_string" text)' V! v3 j# n) X- u V# l; ]2 X
- )1 s+ |7 I+ {! ?% R
- ;;
# n ^6 @0 M+ n+ o - ;; Attribute Tag d6 [/ F4 d# _
- ;;: J9 w8 o4 y/ l3 d; d3 W0 `$ S5 R
- (defun set_tile_tag ()% i7 l! c5 e0 D8 S4 c7 A: l
- (if (= etype "ATTDEF")& A' }, h, a1 p( c, |0 Z
- (progn
' p! s# q8 K& D. a4 {7 k - (setq attag (cdr (assoc 2 elist))), ]% ]7 P+ L- ?) e8 Y
- (set_tile "tag" attag)
4 M7 b) y" A) t8 _ z! Q# v - )% o, X1 y* {8 Z6 F) z I) z' z
- )
$ j! C" G* E5 G - )
' V& ? V7 W3 k$ c3 i0 j - ;;( n! N1 k, j* U& K. h+ `/ N
- ;; Attribute Definition
9 Z; \! v$ C8 N - ;;' @$ @( v9 o0 X* E6 b' `, [7 C
- (defun set_tile_prompt ()
% f; P' Y8 `( D- N) z( E - (if (= etype "ATTDEF"), L8 V2 b8 V# k0 A; D$ n
- (progn
* c; `" @5 v# {( M" Q2 P0 l5 Y( F - (setq atprompt (cdr (assoc 3 elist))); T( M' c9 Y4 ^ @7 s
- (set_tile "prompt" atprompt)
# W/ |) y5 g& |4 p - ): m! P0 D1 t! j9 O) Y( u, ]
- )
- H; M) [- {/ ? l T3 ?5 b - )# C$ @( P; A2 G5 T
- ;;2 W2 O+ f5 V4 G. x( x
- ;; Justification setting for Attributes and Text. Initializes
2 `. g G* B3 k; C! x, I - ;; popup list box
, @! p9 B# ?( D# `# ] - ;;
3 D+ B! G. ] ?' O+ e3 O - (defun set_tile_just ()% g' A0 Z4 ]. h9 o2 R
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment5 i# w' t) E. e4 G
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
: l3 [ v6 [* k6 T' S/ s - (setq ha-prev ha)# F# z: m+ u* w- e, Z, z
- (if (= etype "ATTDEF")& _- F2 K% j8 Y' |3 |6 d! n
- (setq va (cdr (assoc 74 elist))) ; vertical alignment) l6 ?! D' F U& E1 \- o
- )2 Y, D) M/ E5 ?0 v# F% e' i$ f# W
- (setq jlist
# N B' v% W& W8 C4 o - (list "Left" "Center" "Right"
/ {6 r" \+ x/ }% [& [ - "Aligned" "Middle" "Fit"
0 w! D& [) o2 a7 ]2 Y- z - "Top left" "Top center" "Top right"
8 v. k- B4 E/ C' Y7 o - "Middle left" "Middle center" "Middle right"
* T- F/ p0 R& w* W - "Bottom left" "Bottom center" "Bottom right"
' S& N* A4 c& `3 t# G0 ` - )
! W( K2 G( v5 Y5 n - )( u4 T( J( J0 Q7 | d& P6 K* O3 i
- (start_list "popup_just"); q2 @0 a& r; W8 ^! @( b
- (mapcar 'add_list jlist): z3 t1 K6 A9 F7 O( f3 s4 c: J
- (end_list)
5 A7 p# W' y4 Z) |' w6 b8 l - (set_just_idx)' K: H# [3 Q8 N# e4 w& K
- (set_tile "popup_just" (jlist_act just-idx))
5 F% \' Y' \- U3 [4 y* W5 G9 J( k4 H - ). r; D; w! r$ p6 Y) \* i
- ;;( m- Z; G7 t! ^* O
- ;; Style setting for Attributes and Text. Reads symbol table for popup list3 k, ~/ ?/ H1 n3 j8 I& Y
- ;; box.* E& v4 L: P) p+ _4 C" k1 w
- ;;
% @0 ]) N; K( ?) H5 y - (defun set_tile_style (/ sname style-idx tlist)" d6 p H! \" n# y" p4 l/ a* j
- (setq tlist (tblnext "STYLE" T)
9 l; X4 @; [. i; c6 ~, a+ v - slist nil)% K1 w* ]! k$ B3 X+ V
- (while tlist
8 J0 w+ C7 v: F - (setq sname (cdr (assoc 2 tlist)))
) p. C$ _5 [& r2 I# f7 K5 C: x6 R: { - (if (and (/= sname "")
2 H: c# j8 }; w$ i) t. ~ - (/= (logand 16 (cdr (assoc 70 tlist))) 16))) x0 }0 Z, X: q8 f4 Q6 n5 B
- (setq slist (cons sname slist)))4 I( b" U* `+ @$ ^/ f7 E" n
- (setq tlist (tblnext "STYLE")))
' \3 M) P' _8 ` ^% P% ^ - (if (>= (getvar "maxsort") (length slist)): E- r9 o. h4 x
- (setq slist (acad_strlsort slist)) ; alphabetize style list
* D4 m1 Y" @; E a# }" D - (setq slist (reverse slist))) ; or reverse it to put it in DB order
( m; A6 F# f' o% u4 r3 n
+ q8 q5 P* g* ?* w+ I0 G- (start_list "style") B5 H8 N, D, [) T* n1 k
- (mapcar 'add_list slist)
* K/ m1 r0 L G0 c8 U4 Y - (end_list)# c$ x* b' o; @% D1 o0 T) h4 s
- (setq tstyle (cdr (assoc 7 elist)))
) K8 X/ v- o. y& E; F3 ^4 S% R* { - (setq style-idx (getindex tstyle slist)): N3 ~' j* c- \; ?2 w
- (set_tile "style" (itoa style-idx)) |# {6 t W; P; l1 v/ x( ~
- )& j1 t U$ q$ v% {" X- t
- ;;. ^# I& }' K; Q! |* H3 P7 T
- ;; Text and Attribute setting - upside-down, backwards
8 B. k+ A! N: w: G" M W2 u3 T7 { - ;;
/ ~/ q8 ^2 J/ Y; f9 E - (defun set_tile_bk-up ()8 m% ~, |4 k" X$ V3 J/ M* P
- (setq bk-up (cdr (assoc 71 elist)))
" ?% `' T. C( I6 I( L - (if (= (logand bk-up 2) 2)* V0 G7 t- }+ X) w7 N
- (set_tile "bkwd" (itoa (setq bkwd 1)))
" U9 n! n% W- R$ j' {" ~ - (set_tile "bkwd" (itoa (setq bkwd 0))), u# o0 V' U( K, K4 J6 o
- )
' O+ N8 L K$ n6 K5 t - (if (= (logand bk-up 4) 4)
/ N- K% m( Y! D* C - (set_tile "upsd" (itoa (setq upsd 1)))8 e# {/ ^+ m3 \5 E6 s
- (set_tile "upsd" (itoa (setq upsd 0)))
# H. G7 M y" X$ c6 x - )" h/ g% V* Z: d# G S# V
- )) Z# ]" Q8 Y& G; l5 l6 `' K
- ;;4 d% h' T1 m( t8 [, H- U9 v" z
- ;; Attribute setting - invisible, constant, verify, preset2 g I1 N1 X' t; e4 Y" u8 d
- ;;
9 c1 d% P+ b( j+ X9 w - (defun set_tile_icvp ()+ @+ h. `1 e9 K% q. l& u
- (if (not (setq icvp (cdr (assoc 70 elist))))4 [- T# S( ?+ O+ P3 `
- (setq icvp 0)
: X: g9 j1 I: P: l* s - )
: d2 {! a9 t, O8 L - (if (= (logand icvp 1) 1)
5 c/ y D$ d5 m& O$ X$ m+ i - (set_tile "inv" (itoa (setq inv 1)))2 h3 C7 V# i* l1 w7 e
- (set_tile "inv" (itoa (setq inv 0))). d) ~7 I% ^0 L! ]
- )
; j8 b$ ~4 A, g! a. Y& R - (if (= (logand icvp 2) 2)
8 S) W7 G+ u% ~* y; {* H - (set_tile "con" (itoa (setq con 1)))
4 @# Q5 \' Q) ~9 v: h - (set_tile "con" (itoa (setq con 0)))
. D7 F: r3 n! U* I - )
' I7 F3 O! A$ x" \9 ], J - (if (= (logand icvp 4) 4)- s7 C+ K4 |. @! m
- (set_tile "ver" (itoa (setq vfy 1)))8 q; l) o0 Z+ z6 I; W& t
- (set_tile "ver" (itoa (setq vfy 0)))6 N" b6 d2 F/ [9 H m2 y
- )8 k A& ^) t' r S; ^
- (if (= (logand icvp 8) 8)
; c( P9 r3 T& h- z - (set_tile "pre" (itoa (setq pre 1)))/ ]; [" H8 q( V1 u& y
- (set_tile "pre" (itoa (setq pre 0)))! G- d2 Z1 g$ h- G5 K
- )
$ ]( a+ [# F/ T2 K2 E( a - )) b1 Y# K8 H2 F
- ;;
' g* i) _+ z- u7 J& d- S - ;; Scale factors for block insertions) X3 x5 f8 d$ d m
- ;;& c) \, B1 u5 M+ t6 W# B
- (defun set_tile_scale (/ temp)# I) r) z z* m4 \
- (setq temp (getvar "LUNITS"))
0 c) p; }% A' ^1 ^* Q2 p! t - (setvar "LUNITS" 2) B+ B# F$ | Q% K' {3 g2 x" J! _; O
- (setq xscale (cdr (assoc 41 elist)))$ f' S1 Q6 b0 \: D7 J+ G# p: q
- (set_tile "xscale" (ai_rtos xscale))
3 s5 U; E& p& W2 q9 Y$ v% M - (setq yscale (cdr (assoc 42 elist)))
4 T: z0 E1 D1 h. i- x - (set_tile "yscale" (ai_rtos yscale))! \( `. I, ~# F. U3 w
- (setq zscale (cdr (assoc 43 elist)))1 M3 B+ [; @/ R) t
- (set_tile "zscale" (ai_rtos zscale)). S9 F& Z4 ^( z) r& h6 B7 e5 \% ` s
- (setvar "LUNITS" temp)
6 d x+ O: v7 }4 y - )" j. C1 Z. a* n$ L/ | H, g$ l2 z
- ;;
, D" K) G/ ]. O9 E0 T5 q$ s7 s3 E - ;; Rows and columns for block insertions9 o [& Z/ D5 K) @5 o& U5 |
- ;;- [8 L0 u9 `% v7 u5 N+ t/ m( ~
- (defun set_tile_rc ()
9 p9 N0 v5 |& d/ y) [/ p8 ] - (setq columns (cdr (assoc 70 elist)))( X M7 ~" o+ k3 r
- (set_tile "columns" (itoa columns ))
$ v5 p2 f/ P8 Y. n9 s - (setq rows (cdr (assoc 71 elist)))
. b1 P7 l; \. p8 q" G$ h) A - (set_tile "rows" (itoa rows))1 z2 w* R' ~% g. c( }. }8 b) N
- (setq col-sp (cdr (assoc 44 elist)))
8 A+ ~5 h) C0 w& w2 d - (set_tile "col_sp" (ai_rtos col-sp))
, z6 S9 v8 ]) P' t" G9 {4 o - (setq row-sp (cdr (assoc 45 elist))) b7 u' H1 s; z
- (set_tile "row_sp" (ai_rtos row-sp))
5 {1 L/ T0 C3 @1 E6 }% | l. Y - (if (/= hasclip T)
8 u- j( L; \7 r' k7 K0 K+ J8 T - (mode_tile "xcliponoff" 1)6 d6 e. }8 Z8 F# X. a
- (set_tile "xcliponoff" (itoa xcliponoff))
0 D; ?. y2 }8 Y9 y. n9 l - )
" j' s. v8 R" q# X" p5 E* r! \4 x - )
( d- n2 d* Y+ N7 l* H- { - ;;5 |, K4 A. \9 z' b) s D
- ;; Invisible edges for 3DFACE
# ?7 u" ]0 j# d2 J, `& ~ - ;;
; D2 ^: U; D# I/ A2 t) n1 T - (defun set_tile_edges ()
4 ~! _: C3 G2 h$ q+ c D% ?( m0 c - (setq f-vis (cdr (assoc 70 elist)))! O/ f. R' J" B8 \1 l% O8 D5 t2 t
- (if (= (logand f-vis 1) 1)4 X: c. ~, c: \* F+ |/ ?* r6 q1 c$ ?
- (set_tile "edge_1" (setq edge1 "0"))
0 }( t- S) B: a: d6 J0 Y - (set_tile "edge_1" (setq edge1 "1"))
/ |" v6 l8 c1 s+ L - )
9 M @* z, G; f4 ^/ J( H, k - (if (= (logand f-vis 2) 2); V- W! R) j3 W: H
- (set_tile "edge_2" (setq edge2 "0")). p9 i! Z6 y" ?1 H+ p
- (set_tile "edge_2" (setq edge2 "1"))1 n5 \" ^5 ]5 c! a
- )& P8 P' a+ n3 N. B! Z
- (if (= (logand f-vis 4) 4)
- H+ K2 Z) g& x9 t" D5 ~ - (set_tile "edge_3" (setq edge3 "0"))
0 e, R# z% F* v6 ^! @7 E - (set_tile "edge_3" (setq edge3 "1"))2 _4 h9 H8 T. G8 N L: k
- )0 A! I5 h* G' P
- (if (= (logand f-vis 8) 8)
3 l" s0 g+ w% d - (set_tile "edge_4" (setq edge4 "0"))& h6 {* B. z f; N
- (set_tile "edge_4" (setq edge4 "1"))
; {- l9 {4 w1 B- q/ o0 H4 f1 j' o - ). \; w2 |) i" D
- )5 g, A- k' _* @# ~8 y! O8 Z/ F- t9 V
- ;;- S# h+ K( \* Z1 {* j
- ;; XYZ Point values for polyline vertex
! J) q; }& m( Q - ;;+ H0 s, [2 Z, j; z3 H
- (defun set_tile_vpt (ptype)
, s& ?+ D) N: y5 s, ]0 B2 ? - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE"), i' [+ N4 }- Q$ ~* G" u) h8 U/ L
- (progn
. h# U2 \; d' t6 J5 w( S4 i - ;; ctr is 1 based, vertices are zero based.2 [ a$ P* {, `% p* @; S- h6 H# `
- (setq vpt (cdr (getLwVert (- ctr 1))))
2 t m$ U" t! _- c - (set_tile "xtext" (rtos (setq x1 (car vpt))))6 M1 v* n) d) M" Q
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))2 z. J/ f8 S$ e3 v' U: A2 G
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
- O3 |/ e# R* ^3 s5 h4 N; n - )
5 I" e( D9 `& @6 [/ N9 ?! g - (progn
! t+ ?6 U% k& s/ ^1 ^- G3 ?$ y - (if (= ptype 0)7 ~+ z) Z) H) m; K! |/ y
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
[: B9 r6 t# L4 h: Y- Q - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
$ J" V& o. O4 ^9 u; |) p - )
+ b' B+ t1 w+ `' b! }6 O+ y% W - 7 F/ `+ f/ b7 G- m, y" U6 a
- (set_tile "xtext" (rtos (setq x1 (car vpt))))1 s9 w& ^+ U" x
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))$ T6 K; {' j h' Q, U' M$ }
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
3 v7 p/ D( U0 [0 W5 i - ). a9 i8 a6 C% K J& s9 H
- ): A8 H1 T: ]% q9 f6 J2 F. ^
1 \: t6 I2 X- N! d. @/ \9 q- )
% u ^$ A" R* w! \7 R( a7 k! y - ;; This is the equivalent to doing an entnext on the heavy weight
2 o1 \% W, }) p, |) w' { - ;; polylines. The hard coded '4' below allow stepping over the
' k& i$ S8 Y% a6 l0 J7 ~6 O; M - ;; 40 41 and 42 group code information. The while loop finds the( X" K$ Q/ p0 t, o
- ;; first vertex which will be used as the starting assoc in the
, U, Q) M# H- J% O - ;; call to nth.
) A6 L0 ]3 I: H" z, t - ;;
' N( v9 U3 m. m% w - (defun getLwVert (tmpctr / count tmp)
* W% v) W' @6 P. Q, }+ t/ ^ - (setq count 0)
& U; }9 q4 ]- C" G) i: ]) V - (while (/= (car (nth count vlist)) 10)
1 g8 }/ I3 f) a - (setq count (+ count 1))' E: V2 W6 H2 \$ Q3 t
- )
4 g) p! y* t( d4 n - ;; If the counter reaches the number of vertices,
1 r/ `* ]; A% h3 C( V - ;; reset ctr and tmpctr to zero again.# ~& f9 Z$ z9 o% M( `% ~' O# ~7 ?
- (if (= tmpctr (cdr (assoc 90 vlist)))
! T9 ~9 X% t1 c7 u - (progn
Z, R/ T% r" d- s - (setq ctr 0)$ j; B8 m0 R8 I( V) R
- (setq tmpctr 0)
7 Z$ p# R( w6 J% ^% ] - )
( s- k* A7 W( d: J* V5 [. k1 g - )+ x- }1 y( r3 H- l2 K2 o
- (setq tmp (nth (+ count (* tmpctr 4)) vlist)), v9 g/ [ Q; N3 h
- (setq tmp (append tmp (list(cdr (assoc 38 vlist))))): _' `2 v; N1 A7 P5 \
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))0 ~5 W6 g! i$ @5 k- p
- (setq tmp (cons 10 pt1))7 F+ Y8 L! Q! g& O3 i- q
- (setq tmp tmp)! R0 t% D4 {- I" E6 Z
- ). m7 _" z( \2 c3 A& R5 z5 I1 v9 t
- ;;
" x0 t, z9 S# x - ;; Set tiles for Spline properties. If the spline is rational then we' l6 T7 K7 J+ F& e, o3 {
- ;; need to display the weight values of the control points, so set' h e5 Y6 ~' v5 k9 n' a0 b! a
- ;; flag to 1.: r7 Q( p: m/ U* R! x
- ;; 1 = rational spline
9 o+ e" I+ Z! z7 S) b! N o/ x - ;; 0 = non-rational spline: U2 I6 \& B! k( [$ w
- ;;
( I* ~$ W: V+ u8 V2 P( t - (defun set_tile_spline_props ()
( N7 N. K1 z! y/ k& Q9 X - (setq rational_spl_flag 0) ;; initialize rational spline flag3 ?3 A+ S: t6 F9 n
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
- @* N1 u; `0 ?5 R c3 c. i: k' N - (setq bit70 (cdr (assoc 70 elist)))
0 u' R8 q7 f3 n; q8 Y& a1 Y - (if (= (logand bit70 1) 1)- V1 \ C3 |6 y' P
- (set_tile "SpProp4" "Closed")
( R3 P) ?$ G) x; G* X7 D - (set_tile "SpProp4" " ") J3 q) g: E# K, k2 B
- )
- j/ n" i4 c7 p% `5 T - (if (= (logand bit70 2) 2)8 U. c2 S* u- l3 l9 x
- (set_tile "SpProp3" "Periodic")
% H: U$ j/ u% m; e$ Y+ S) b7 Z# u - (set_tile "SpProp3" "Non-Periodic")
) H+ }/ V% N2 `4 a2 \4 i# | - ), |! v/ b$ K# A0 V, @( `7 B
- (if (= (logand bit70 4) 4)
8 f, \3 G5 z$ n! q - (progn1 W) h; _# o" R( W; g
- (set_tile "SpProp2" "Rational")
5 B8 ]- f9 j: y, R. B; u - (setq rational_spl_flag 1) ;; this is a rational spline. J% ~! K% R( i$ Z& t+ Q0 S! w
- )
8 \6 D' q# h, x+ }+ v0 ?% ~9 U6 \ - (set_tile "SpProp2" "Non-Rational")* k# f/ X0 s8 j( G0 J
- )' ?0 f/ q) B% d1 L* F- |
- (if (= (logand bit70 8) 8)
* K9 K# h# b- W# G6 y8 n - (set_tile "SpProp1" "Planar")$ J8 }1 a3 M5 `+ r4 P1 Y
- (set_tile "SpProp1" "Non-Planar")
( j1 h2 E0 C5 D: U# a. R0 Q8 P - )) [7 u( c# ]# D# ]9 c. g$ J
- (if (= (logand bit70 16) 16)
/ q+ L# F4 ]3 k7 k - (set_tile "SpProp5" "Linear")
. m6 s3 h# G1 g. ^ i - (set_tile "SpProp5" " ")
$ o3 r+ D; T( k p8 e8 G: c# _ - )
2 T% W" S- Y: a" \: o; M - ), b: s* A" r' k/ O9 R
- ;;
+ `) q% N5 r! p8 w- {$ \* p - ;; XYZ Point values for spline points; i( r: h) z! Q* j9 _2 y
- ;; Need to account for WCS/UCS
) R8 m2 K9 J% O1 m - ;;
5 L1 i% m9 }- r7 o - (defun set_tile_cntl_pt ()
% l0 L+ Z+ M5 u( X - (setq cntl-pt (cdr (assoc 10 elist)))
! f& [7 {0 {; \8 Z |/ c - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))& Z* S+ A; d$ r2 j
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))2 H6 I& ?" b" I) F u2 j/ c' y6 {
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))( x, M; f& X2 y
- (if (= rational_spl_flag 1) ;; if rational spline/ ^; k4 {9 A: [6 h7 V+ S' l
- (progn ;; show weight- ]# R; w/ S5 r" T8 _
- (setq weight (cdr (assoc 41 elist)))! _& W% |/ N; ~ @6 \4 j4 r
- (set_tile "weight" (rtos weight))8 Y" t2 U9 x: ?2 F) V
- ) ;; else
3 R6 s; z; C0 l - (mode_tile "weight_text" 1) ;; disable weight field
8 u4 ~" \5 ?- e1 q* P - ), u" C8 C, _# W5 G1 r
- )
6 N6 y$ m9 k2 x4 ^8 O - ;;
% u9 o9 X9 L4 x6 ], Q& H, a - ;; XYZ Point values for spline points
' F1 I- m# {7 a; J: x% } - ;; Need to account for WCS/UCS
0 }5 w7 r. m) Q9 p: L) t - ;;
( I' E I! S! t0 @, b& u8 j7 l/ H - (defun set_tile_data_pt ()& |1 \) |7 s9 E1 u0 n# F4 n
- (if (not (assoc 11 elist)); L/ [; i6 b( i$ k, W3 |& F% U
- (mode_tile "data_pts" 1)
: W" t( O4 g! u/ E: K) C4 `: R. I - (progn
7 @' H% D @, n - (setq data-pt (cdr (assoc 11 elist)))
( H+ V9 q+ F$ |$ d- t' X6 A' ? - ;; display points with current precision.
+ e1 P, g1 a9 w/ v2 o5 ` V - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))$ D" C- H% x" `( z) {
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))0 R3 r, J' ?# u2 K
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
$ g- ?% y7 r% x" p; E& w$ ? - )
, |' W: E) {8 \6 k- E - ). f8 P$ r, |1 i. q
- )7 R2 @& d% S& O( H3 _3 |
- ;;
- K! t# k! K6 ~! i. L" T - ;; Fit curve, fit spline, or smooth spline surface setting' C% I; @6 l& L8 @# m
- ;;$ r5 q( P& |9 B9 c( `3 v6 q
- (defun set_tile_fitsmooth ()
8 j) p ~9 i% E6 m( g - (cond7 f9 t: h( m" f+ _
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")0 j' X0 V% @+ T% q( G: S; w7 X
- (set_tile "none" "1")1 q+ K1 Z0 s- q& ^* I8 J
- )8 G& j) b" n' ]5 J
- ((= (logand bit70 4) 4)
( q$ `0 B% p' J$ J5 Y - (cond
1 S) F1 Y2 \% ?2 g; h+ p! L6 R! {) V - ((= bit75 0)
& S( F: n% J, d7 s8 d - (set_tile "none" "1")8 c2 z0 h2 T8 |+ I
- (setq spltype 0)
3 R% z1 {6 w; C6 p* f - )
* t3 B9 |+ {9 |$ d - ((= bit75 5)
* S" L- w6 g! i- P9 x - (set_tile "quad" "1")
4 r# Z7 o7 ?+ i5 w% r B' P Q - (setq spltype 5)
, h+ f1 x9 d/ d7 P$ f: _' O" V - )
5 o% k; U7 C" e/ N9 B - ((= bit75 6)) a( J) {# e+ _$ `
- (set_tile "cubic" "1")
6 g! ?4 m* l! _. Z! | - (setq spltype 6)
) j6 `" k5 s) R9 g - ); u z ^2 ~, k# `9 d3 A7 F3 j
- ((= bit75 8)/ d1 S2 h$ d: B6 J: ]
- (set_tile "bezier" "1")
1 H1 O* b( T/ d6 n; h - (setq spltype 8)) `6 m0 E, W/ o5 U
- )7 h# y C' A% h1 g4 V
- )( p% R) @) t) [" ?. @
- )
+ N' e9 I0 F$ W0 f- y - ((= (logand bit70 2) 2)
/ j- {: z3 e, u3 Z* B+ a - (set_tile "fit" "1")
. V8 J J2 o* Z' G5 @6 ~: o: C - (setq spltype 1)
* ]: h4 F, v* q7 n/ `$ J9 }- W! [ - )
; X' ^; F. X9 }# {/ u7 F - (T (set_tile "none" "1"))
! c! \7 x6 L1 F$ V0 A - )
" _8 R3 Y. ^6 U - )
/ P" @' X6 C& a r - ;;
r# w5 X+ q3 Q# H - ;; Closed or Open mesh and polyline setting1 W% c" u& j4 v5 Z1 L1 X
- ;;
1 o( @ Z; `8 X. Q - (defun set_tile_closed ()
# H" S# H0 ~0 @- {5 Y- T' b - (if (= pltype "3D mesh")
& c8 ]$ M& V4 |1 B( O9 Y( X" Y - (progn* D" _6 T2 D2 r! f
- (if (= (logand bit70 32) 32)4 ?1 [4 h* O/ z+ E3 @
- (set_tile "closedn" (setq closedn "1"))0 s. w5 Q7 T9 Z# o9 C
- (set_tile "closedn" (setq closedn "0"))# f5 H/ E2 ?( s
- )
" S; ]) j! L {* k* r) U/ L% b - (if (= (logand bit70 1) 1)
! j. F9 [9 D+ `0 \5 W) ~ - (set_tile "closedm" (setq closed "1"))
' n1 m$ H* l: C9 R - (set_tile "closedm" (setq closed "0"))! ~* t* G- }/ P0 U: i- R
- )" S _8 u% C6 p4 G; W
- (setq old-closedm closedm old-closedn closedn)! K6 ?) p% I) U' C3 y
- )! _ E" w& _, H/ S8 ^3 e
- )0 ^4 B+ Z0 b; R- q
- (if (or (= pltype "2D polyline")5 `2 f$ m- V0 C7 A
- (= pltype "3D polyline")* U- a( i, x& N& q7 r: z
- )6 O3 Q8 l. z7 \& j( x' b5 Z
- (progn
% S# G6 d% R; E r, [ - (if (= (logand bit70 1) 1)& h9 s) b* o' J7 w4 e+ o
- (set_tile "closed" (setq closed "1"))
0 K0 q: ~1 L* B( n {8 ~3 H% N - (set_tile "closed" (setq closed "0"))
- {1 s- g7 v) o0 e1 j, |: M - )* N. e& C) p0 n9 \
- (setq old-closed closed): r' m& _: y/ X: l
- )
3 H S& \+ v1 J1 e% `% c. t - )
" O7 `1 |. R. ? H, X/ J7 ^# j - )
5 @( K' X" B4 D - ;; Set common action tiles
6 B2 w9 C2 \' m2 w8 Y. y" t- H9 p - ;;
$ g! C! G. i+ ]( E - ;; Defines action to be taken when pressing various widgets. It is called+ Z) }% J4 j7 w$ C; _6 m/ e
- ;; for every object dialogue. Not all widgets exist for each object dialogue, C% v8 [0 h% Y6 Z, R% L2 t' g
- ;; but defining an action for a non-existent widget does no harm.
# b9 y% J' c1 o - (defun set_action_tiles ()! o: @& N# }+ V% ]0 \9 Z! c% j
- (action_tile "cancel" "(dismiss_dialog 0)")
' _2 F* `: D0 |. d& k - (action_tile "accept" "(dismiss_dialog 1)")- l/ `; Z: U5 W# B' L/ m
- (action_tile "help" "(help \"\" help_entry)")6 r. I2 P7 d: e% |, |/ c
- (action_tile "b_color" "(getcolor)")6 j6 G$ z2 I7 b: v! M: t& ~
- (action_tile "show_image" "(getcolor)")
/ u& q$ o) w/ h# w - (action_tile "b_name" "(setq elayer (getlayer))")/ v& n- T, O& p l0 v3 ]
- (action_tile "b_line" "(setq eltype (getltype))")- ~; |9 `2 X- {& c* o# D8 y
- (action_tile "eb_thickness" "(getthickness $value)"), N0 t/ w6 p! p! X2 r8 @
- (action_tile "eb_ltscale" "(getltscale $value)")
6 G8 R1 @/ z* \
0 g! [, B7 i6 P) A0 v- (action_tile "pick_1" "(dismiss_dialog 3)")
4 J2 j% V' g, {" n0 _ - (action_tile "pick_2" "(dismiss_dialog 4)")
) k' a, c# Q' A9 [& B - (action_tile "pick_3" "(dismiss_dialog 5)")
" C2 L: ]* T, h. F; W, O8 z - (action_tile "pick_4" "(dismiss_dialog 6)")/ c9 p2 t0 n$ e3 @4 i
- (action_tile "x1_pt" "(ver_x1 $value)")- y( V1 `5 W2 `& ^9 a
- (action_tile "y1_pt" "(ver_y1 $value)")0 X! X$ w' ^' t7 Y3 m" c6 ]
- (action_tile "z1_pt" "(ver_z1 $value)")
* v) c% L* V8 |6 T: A& q1 \1 y( W - (action_tile "x2_pt" "(ver_x2 $value)")3 B( E* C) B" c) Y& f
- (action_tile "y2_pt" "(ver_y2 $value)")
' M( l& g+ Z1 L. A5 ? - (action_tile "z2_pt" "(ver_z2 $value)")
8 J( X3 o8 r% C/ \- T4 q9 { - (action_tile "x3_pt" "(ver_x3 $value)")
, @9 q6 D* j4 _( U7 p0 m) x - (action_tile "y3_pt" "(ver_y3 $value)")
3 z# r- @% n* t7 T* @7 D% v - (action_tile "z3_pt" "(ver_z3 $value)")$ _' `8 L7 X, x' A+ u6 D$ o+ U& K
- (action_tile "x4_pt" "(ver_x4 $value)")
$ K0 }( ?9 P; e - (action_tile "y4_pt" "(ver_y4 $value)"). }, F! [/ |% L8 e4 s% h
- (action_tile "z4_pt" "(ver_4 $value)")
: j6 P- [' n: ]) D
: g) }6 y/ E* ]) K; ?) W8 w# [, J% w- ;; Action tiles for Xline & Ray
; v' J3 M% C' f$ ]# A" z' W9 \" { - (action_tile "xline_x1" "(ver_xline_x1 $value)")
* x7 Z% Q/ P. J$ n# N" f1 ^7 i - (action_tile "xline_y1" "(ver_xline_y1 $value)")
2 G" L- S$ h: i - (action_tile "xline_z1" "(ver_xline_z1 $value)")
1 b. G/ C( U+ {# e5 S - (action_tile "xline_x2" "(ver_xline_x2 $value)")
0 H, J% R0 U1 G: c+ i0 W( O - (action_tile "xline_y2" "(ver_xline_y2 $value)")- F6 |; o: }" t6 q, u- Y( [( r
- (action_tile "xline_z2" "(ver_xline_z2 $value)")
( ]' A+ }7 Z7 y; W' @1 S
3 j8 Q+ P7 [$ p/ r- (action_tile "edge_1" "(setq edge1 $value)")
9 X/ m, X( I3 h* L - (action_tile "edge_2" "(setq edge2 $value)")
3 w/ X2 B Q& h - (action_tile "edge_3" "(setq edge3 $value)"); Z2 ^- n9 ?# b! a
- (action_tile "edge_4" "(setq edge4 $value)")
" A+ J; A/ b K
6 G2 W& E- l5 u- (action_tile "radius" "(ver_rad $value)")( [, a6 Q/ t! i
- (action_tile "st_ang" "(ver_ang1 $value)")( r" R* j+ ?$ n/ y- }% v; O, z+ w
- (action_tile "end_ang" "(ver_ang2 $value)")0 z% n* L e( M3 V
- (action_tile "end_eang" "(ver_eang $value)")
( V% s d. p+ F) ]! C6 g7 q - (action_tile "minrad" "(ver_minrad $value)")
1 G, e- n! }4 D6 g - (action_tile "majrad" "(ver_majrad $value)")
$ s0 h1 `& D0 P4 S - 3 O s7 W( S2 G$ t& u# ~5 n
- (action_tile "xscale" "(ver_xscl $value)"). n4 w+ ]5 p9 Y) Z
- (action_tile "yscale" "(ver_yscl $value)")& _2 M$ c2 r# A" o6 N2 ?$ [ \
- (action_tile "zscale" "(ver_zscl $value)")) h) R5 H9 I- W0 G$ n* n
- (action_tile "rot" "(ver_rot $value)")
; V7 \2 H2 J8 D4 M" C- C4 ] - (action_tile "columns" "(ver_col $value)")
; B5 g% s1 t/ n' R - (action_tile "rows" "(ver_row $value)")0 S- `& @4 t4 O3 A- j8 J8 p
- (action_tile "col_sp" "(ver_colsp $value)")2 r: U' ]0 X$ B# ~( Z7 M
- (action_tile "row_sp" "(ver_rowsp $value)"): @ v7 n/ O/ p& N s( L% a
; e8 x$ A+ X# F- (action_tile "hght" "(ver_hght $value)")
3 ^+ @, [ e7 g2 d* r8 } - (action_tile "wid" "(ver_wid $value)")
- E/ x: J3 |! v; G - (action_tile "obl" "(ver_obl $value)")3 G& E7 ~3 Q2 e0 ? a0 {
- (action_tile "style" "(style_act $value)")$ {, i2 W$ v3 L, `8 e
2 a. c: d5 U3 z0 V0 V* X# _; ^- (action_tile "t_string" "(ddgettext)"), g% D9 u% j/ n" z
- (action_tile "tag" "(ver_tag)")9 P7 ^( h( L$ ^4 R c
- (action_tile "prompt" "(ddgetprompt)")4 P" Q0 [0 ~( a) M
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
- V/ d* n* @* e6 Y; P, ^1 p( t - (action_tile "upsd" "(setq upsd (atoi $value))")& d! [1 |7 F1 H
- (action_tile "inv" "(setq inv (atoi $value))")# ^/ N/ ]4 w0 g' q; ~7 n
- (action_tile "con" "(setq con (atoi $value))")* V) s. X0 @5 }' n( h
- (action_tile "ver" "(setq vfy (atoi $value))")
. B, d, [# _1 S3 ~+ F T - (action_tile "pre" "(setq pre (atoi $value))")
. e* ?8 k, _$ [# {. q - (action_tile "popup_just" "(jlist_act $value)")
1 f) T/ _1 L& O& o4 w
* g3 f, _% ^) n( [6 X- (action_tile "closed" "(setq closed $value)")
2 s, R6 v" A' N+ y - (action_tile "ltgen" "(setq ltgen $value)")
- c& O0 C! t5 }# {+ ] - (action_tile "closedm" "(setq closedm $value)")
: Z1 p$ w- v! s0 [0 j" N7 R - (action_tile "closedn" "(setq closedn $value)")
0 l$ q n' F5 I) P - (action_tile "next_v" "(next_vertex)")
" f" v7 T8 S) r - (action_tile "xcliponoff" "(setq xcliponoff $value)")' h9 r: _: [+ N5 j2 P- ^( ^) f
- y6 N3 [0 B2 {& K) l& q9 w: u7 k
- (action_tile "next_cntlpt" "(next_cntl_pt)")
; j$ X" X% N& G+ k2 u" p - (action_tile "next_datapt" "(next_data_pt)")0 |8 ]9 l4 C, W5 B% m% O" ~
+ X7 t' S1 p8 V- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
- t: u3 r) C" V9 m$ j- F# \ - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
9 \$ H' Y; [2 l1 O. u - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
8 d: D2 w$ b3 m% t" v - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
$ ?. r7 {1 I/ n' i/ S y# f P - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")5 J0 p, n& n+ Q4 D
3 `( G+ N5 o/ N% \: L. ~7 |- (action_tile "u" "(ver_u $value)")
7 ^; Z" ?; p" [8 t+ \" y - (action_tile "v" "(ver_v $value)")7 C9 p5 F+ g7 n: ]) G+ g+ E6 b
- )3 v w+ k2 E- E, ]# Y, t' \
- 9 a: k7 ~% \$ x) D2 u% S9 ^ O6 N: V
- (defun ddgettext()& [/ p8 t/ \3 z2 h7 R9 _' D
- (setq text (get_tile "t_string")): s, l) h* I6 R Q D7 Q( Q8 \
- )
/ }# C' |0 d8 p. M: T& a: g$ z; {
) m& C/ L& ^5 T& u9 t: e/ a$ ^- (defun ddgetprompt()) d8 ~1 N; I; c8 p5 C9 d) h% ~: |
- (setq atprompt (get_tile "prompt"))- I3 k/ c' N& s
- )
\4 \) u0 Q( @! ^( }5 P - ; |- s/ L$ F/ Q; R/ |0 m
- ;; As OW doesn't support disabling of individual radio buttons within
- E0 H o! ?; J" s) m - ;; clusters, a check must be performed as to the legitimacy of the# J. q# f/ r W
- ;; button pushed and reset if necessary.! T1 S- W6 p. |8 F* D
- (defun radio_gaga (pushed)# i: z$ b5 p2 `8 l
- (cond
- a0 v' k. e) Z, l - ((and (= pltype "3D polyline")
- P2 {' Y9 \) g( W - (or (= pushed "fit")7 k5 x( {/ E X
- (= pushed "bezier")
( {& F( y% B0 o5 B - )- l/ J5 t" ^) l8 O+ T
- )
; d4 O# J$ g# x8 Q' N3 ` - (set_tile "none" "1")
6 d8 ]% b T6 Y8 _ - nil
% m; m* n- d% c: l - )9 J. P; w8 N0 ]
- ((and (= pltype "3D mesh")0 F# ~5 e7 t# Y8 ~
- (= "fit" pushed)
" Z% B1 E5 g, Z5 W - )
' A) w9 I2 @9 A( B - (set_tile "none" "1")7 _. O0 J" x5 M, @
- nil
3 ]8 E6 C& U$ y - )
; b2 Q9 p+ Z2 { g4 ~7 [' \ - ((= pltype "Polyface mesh")) b" o: G, L+ w, I8 x. N! @& S
- (set_tile "none" "1")
0 S# D3 T! b# j5 j5 ~0 @; d- e - nil
9 j, W. E) r$ b - )
7 s& s8 J/ C2 i+ H- ` - ((and (= pltype "2D polyline")2 n, F4 w, B0 Z" u9 V' y. d
- (= "bezier" pushed)8 K0 f$ g$ a' n7 [
- )% A/ S5 @+ p. H0 O# T
- (set_tile "none" "1")
# F, Q0 `+ M9 I% `* m' y4 ]* }2 V2 o - nil, Z) n* t7 o. H+ s; i
- ) Y. G# r$ n7 H8 [
- (T)
3 |4 z) D' c3 k& ^ - )/ G3 }* p; l V' v7 d9 C ~
- )+ W% k, R1 W$ g. s, Y; e q: c8 k
- ;;
2 v6 {+ ]1 }$ t! D - (defun set_uv (type_n)
' p+ K/ q" J; L) M8 F - (setq spltype type_n)0 @. [/ B* y9 v; Z' e* L* S/ V
- (if (= pltype "3D mesh")
4 w$ @* g/ K- {/ e; M3 L - (if (= spltype 0)9 J- B. i. L! b" C8 G C* E' I: v. N
- (progn
$ @, `) Y' O6 ~) E - (set_tile "u" (itoa (setq u 0)))
1 U. {+ w/ o# u3 X - (set_tile "v" (itoa (setq v 0)))
( ^6 n! n# f: \- U+ x) Q' j5 w - )1 e# q+ ~' K7 _
- (progn u5 h! R# W. O; R* e: \$ Z
- (if (= u 0)- J" I7 @0 t/ B" u; ]4 ?2 c
- (set_tile "u" (itoa (setq u (getvar "surfu"))))4 f' [ }9 X5 y
- )
+ V; a7 U% I' H# y E0 [5 @) ] - (if (= v 0)4 O' l! ]0 l: `# _0 T; G
- (set_tile "v" (itoa (setq v (getvar "surfv"))))& R1 ~5 L- G* h' {! u
- )
* O9 U1 M' K, ^/ w- i - )
! r" Y5 [5 {$ ^: x! r8 [ - )
9 v. W, i- r* D" X - )% B/ V3 T% p( N+ r' g/ @! }8 ^
- )
+ m- N( R9 b; x( D - ( p: ~2 P( S/ b4 z9 T, f
- # O- v. p$ e8 r ?/ W
- ;;
4 X3 B/ x3 D( }3 B/ g8 U' O - ;; Verification functions4 g& n4 y! q9 ?0 r+ x1 |9 m( E+ ?
- ;;
3 B( r* k0 G. D# h9 q2 Z9 u - ;; Verify distance function. This takes a new X, Y, or Z coordinate or
3 B2 |% U6 u R# j9 C) M6 [ - ;; distance value, the tile name, and the previous value as arguments.% I, {, O0 n9 m9 E7 v+ r( p# C
- ;; If the distance is valid, it returns the distance and resets the tile.
3 F- i( v5 D. W/ n% M' ]/ O - ;; Otherwise, it returns the previous value, sets the error tile and keeps- x! |1 f& k6 B) A! V9 Q0 ]- J
- ;; focus on the tile. Shifting focus to the tile with invalid value can
. L, T8 j' [8 Q( g# n% f - ;; trigger a callback from another tile whose value is valid. In order- P- u6 v( f1 F
- ;; to keep the error message from being cleared by this secondary callback,; ^) K. Q' g4 C- S9 ^( K" N
- ;; the variable errchk is set and checked. The last-tile variable is set# b/ w) q1 w) T
- ;; and checked to ensure the error message is properly cleared when the
( T7 _6 N' @6 c) N) Y! O+ g - ;; user corrects the value and hits return.
! l' u1 z& C2 s% H) _5 v( M - ;;. z& x2 Y" Z: i
- (defun verify_d (tile value old-value / coord valid errmsg)
# _5 h' b7 ^' {" c2 O6 G - (setq valid nil errmsg "Invalid input value.")
# f. h, L0 f L! A& U* ? - (if (setq coord (distof value))
3 ~6 w4 t' M, L4 j, P( B; ? - (progn' v; s; v" H0 X& \$ K F5 V
- (cond) e8 T7 G$ H1 o2 x1 A$ e$ S
- ((or (= tile "radius")" c" N# s; a" q) a# \! @3 w9 B4 C
- (= tile "hght")4 G3 ?$ j c# j' b. ]) Y3 R8 `
- (= tile "wid")3 I& ]* F0 U/ R, U
- (= tile "majrad"); V) Q" Q! Y; p* Z* K
- (= tile "minrad")
/ y( c/ [3 c+ l/ l* k6 i' B/ R0 G - (= tile "eb_ltscale")9 D6 m) s6 _( L- v
- )
( [0 i* B) O4 f% \* S% T! D - (if (> coord 0)4 ^9 y; _7 j& @4 H9 S0 f- G; L
- (setq valid T)
r8 B+ O. C: Q+ Q8 D7 t; ^ - (setq errmsg "Value must be positive and nonzero.")
% z& v) a! x2 v - )
3 B8 E/ o7 |: d3 X0 } - )
D, ]- M# H- o% l* ? - ((or (= tile "xscale") ?- ^5 `3 E: n* @
- (= tile "yscale")
. N) t Z/ y2 W: x5 U: ]5 R - (= tile "zscale")
' G7 \8 `: ~9 ]1 ^ - )/ T! t' R: m$ |8 p& h+ _5 N7 q5 b
- (if (/= coord 0)
( v7 p9 @$ M3 O. d2 ]3 [5 | - (setq valid T). {* P' \' P% f7 G: u' g
- (setq errmsg "Value must be nonzero.")/ d5 g8 @: G! j, {' a8 x3 E: E% E
- )) `5 }6 s6 R5 V" `
- )
, t) b) I- X) D* l - (T (setq valid T))
$ a+ v% V) x6 Q* K2 T - )2 m0 T F5 N/ T, O; p) b2 Y
- )
6 a7 { Q1 N1 u7 |9 s i, { - (setq valid nil)
4 ~7 F9 Q8 b7 P& v& c* A4 S - )# Z! P! }, ?; A3 s9 I
- (if valid6 D) n5 ]( f" f
- (progn
2 C' Y1 w( Y, M. I3 K+ K6 h3 z" p - (if (or (= errchk 0) (= tile last-tile))
" m, f# ~' @7 {' @3 ? - (set_tile "error" "")( N+ C( @! _' D( X
- )8 C& z1 R: _- f: J- }0 i( g" X; j
- (set_tile tile (ai_rtos coord))
. x! a7 n6 l$ M) W - (setq errchk 0): n/ Y. S7 ^* k! A: Q& U" D( m
- (setq last-tile tile)
8 y+ q6 _' l/ R! `# t+ [ - coord) `0 b2 a- J# E- N
- ): p& R! R. x9 b& B4 c
- (progn6 v, p5 ? _% J4 T2 Y& M
- (mode_tile tile 2) ; Move focus to offending field
& Y$ E) t% Y# ^3 f5 w - (mode_tile tile 3) ; Select offending text. u# J, ^: q8 Z# N
- (set_tile "error" errmsg)
. r, K- b8 F6 _! c6 }1 q% X - (setq errchk 1)
" h! @/ t: H8 H! k - (setq last-tile tile)6 s- ]! l; G8 K+ Z
- old-value
& i- w8 i1 q6 H8 n) g2 X - )
( d3 y- v0 u* [ s+ b - )$ q& r8 \# H5 k3 F3 F0 ?8 i2 K
- ): F9 X+ y& g: u3 h0 R# w
- ;; Function for Xline coord edit box checking.
3 M! } E7 s; i - (defun verify_xline (tile value old-value / coord valid errmsg)
9 `( k" |' U" `) C, c- |: @ - (setq valid nil errmsg "Invalid input value.")
# }/ l7 j' [1 J - (if (setq coord (distof value))" N4 u0 m8 ]- K0 V) `% B
- (setq valid T)
2 Y% H0 e) {4 |5 s0 | - (setq valid nil): K6 M7 l. y. s& x
- )
- P: ]7 _: ?; r - (if (and coord
/ I7 N2 d! `2 w! J9 ~ - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
; l+ r( H' O" ?' g - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
5 l2 o/ z* D' S0 Q6 A1 n. Y - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )2 A+ `( f$ R0 d( v
- )+ @! m$ |8 E$ s) P, r% R- K
- )
+ o. T( N: v3 ~5 T! J/ h - (progn
- C& Z% o6 w: h) j3 N; A - (setq errmsg% k& A, c8 |9 q6 ?1 _/ J l
- "The Root point and the Second point cannot be equal.")
: u; { |9 n0 h# J( B0 U& A - (setq valid nil)
9 n; f( M/ w; f - )$ A9 C7 g. w+ b8 a \& l
- )
. P! M" R ]7 W: L! A - (if valid
- ~4 m2 `! v$ d6 Z - (progn
/ A+ V3 T9 R1 \0 l' |% N0 [$ e. k - (if (or (= errchk 0) (= tile last-tile))
( U8 R7 V; m% e# k. D; ? - (set_tile "error" "")
. c) f) o7 d* N: p - )' o2 E$ Y" ~' f8 O0 L/ {
- (set_tile tile (ai_rtos coord))# n: M! |; \* z. i% ]( i2 Z
- (setq errchk 0)
1 |( K, ]0 q9 x - (setq last-tile tile)
) A4 x' c ~4 C1 p0 F; I. N - coord* j9 {$ W$ E, g% F8 N
- )
3 `" G- H4 j* z4 i( ^( b - (progn E5 S, B2 c0 C- ~
- (mode_tile tile 2) ; Move focus to offending field
$ ]$ ]4 F" u! |0 M - (mode_tile tile 3) ; Select offending text
" ^( u3 U6 p6 l+ a& |0 U* m6 o - (set_tile "error" errmsg)
" S) ]/ C2 E2 W4 @5 y ?5 | - (setq errchk 1)
; j2 P, W1 f% B4 S. c( r- L* Y - (setq last-tile tile)7 ?# k; @6 K; K$ U0 E- n" u
- old-value' q2 y8 k2 X/ n% v' J
- )3 p# b$ ^( f& U* h& g6 t r' P
- )
h7 |$ s% h3 E+ E3 c5 p$ [9 o - )
& P% O, h3 {$ X6 a - }3 O. w+ W; X8 _1 P
- ;;
% T4 D! ?' t1 d* k' o - ;; Verify angle function. This takes an angle and a tile name as arguments.5 j8 q+ {6 y# B' S
- ;; If the angle is valid, it returns the angle and resets the tile.; Q2 Y$ v$ M" s' d2 p0 |7 B
- ;; Otherwise, it sets the error tile and keeps focus on the tile.; ?5 g% U* F, d* L* N4 Z! V( L) H) Z
- ;;
5 p: @3 L, ~/ x* P, Q1 X5 L, {! @ - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
; a' B! ]$ I8 S4 |7 ~ - (setq valid nil( w/ g/ |. T# \( Z, `
- errmsg "Illegal input value.", F1 b8 q1 [7 x5 [/ @
- )) c g7 n+ L( \* f
- (if (setq ang (angtof value)): H! e, z6 G& g; W. a: Y
- (cond0 i V2 v' O( O3 M- ?& Z4 o
- ((= tile "obl") ; Restrict obliquing angle% l2 x$ ^' g3 Y' ?% P( r+ ]
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))* |2 t9 i- X6 X* E2 l- [( d
- (if (or (<= ang oblqmax)/ {9 Z6 V2 W& `3 h( G; x- u
- (>= ang (- (* 2.0 PI) oblqmax))
" p) L( z' F7 T5 x' \! Z1 Q9 X' ` - )
. p' u3 q' w* p, C- Q - (setq valid T)3 S1 _+ } k% ]. p" r
- (setq errmsg
8 ~# J4 C: s7 V$ D# M& X! c - "Value must be between -85 and +85 degrees.")
! F' e+ B" Y$ t6 g - )
, z, c6 `' t. M" [ R" e - )
) w# w4 r; |- s% Z4 L - (T (setq valid T)) ; Other angles not restricted
/ u! P' i: G" Z - ): T" M1 E$ U$ W) }( B8 N
- (setq valid nil) ; Invalid angle input0 [% K: q8 Q9 B h3 A
- )
: ?* L- \4 A' N x - (if valid4 B* M3 m) t! V
- (progn
7 @% i/ _4 Y: S" w2 F2 y - (if (or (= errchk 0) (= tile last-tile))* O' @; ^1 f2 Y+ s
- (set_tile "error" "")& t- P ?0 z7 i) z5 S
- )
, X; K2 c$ x$ W7 W" z: P - (set_tile tile (ai_angtos ang))
' X g, U/ h- i3 T6 F! I - (setq errchk 0)/ w) o* n A ~2 m9 k% h9 C
- (setq last-tile tile)2 a! `! e* p p: ?) m
- ang/ b# c7 W8 _ v
- )
7 A5 @: E5 ? P, y9 f! K - (progn
5 k$ Q4 c! u7 R; _$ R - (mode_tile tile 2) ; Move focus to offending field
5 F# [4 D. c8 I! F' X3 u - (mode_tile tile 3) ; Select offending text. x7 u' _6 E% D/ q! r8 r# V
- (setq last-tile tile)
- v* R( c P0 t* D - (setq errchk 1)
' j# Z0 m+ W. l7 j2 Z, T - (set_tile "error" errmsg)0 X' P8 u" ~" b9 X+ C; Z6 l
- old-value( c: z" f$ t# i" _
- )
: Q' G0 R8 Q- M2 S% |2 k - ); F; W4 y3 B. ]
- )
( Y p+ b$ i1 w" v( r0 M" W - ;;7 w Z1 z$ B0 E
- ;; Verify angle function. This takes an angle and a tile name as arguments.8 J3 ^+ h% m7 w2 n" Z
- ;; If the angle is valid, it returns the angle and resets the tile.
1 a, v+ M* p* t) A. i - ;; Otherwise, it sets the error tile and keeps focus on the tile.
; d Q0 a6 G `! U2 z* P: s2 B - ;; This function is specifically for the end angle of the ellipse object. If4 ~0 k8 S9 c' v8 U1 y" k `9 m
- ;; the end angle resolves to zero then we want to display it as 360.5 m2 G2 z0 S9 {4 {6 C3 b" c3 l
- ;;
( C0 [; s/ P4 {, D/ d - (defun verify_ae (tile value old-value / ang tempend)
- ?5 e. [- }9 i% U+ ~( J - (if (setq ang (angtof value))3 m, p4 f+ F: B" B3 z/ B( G" O4 w
- (progn$ P" f0 ?1 |+ e2 o6 V, c; c% `0 h5 `1 A
- (if (or (= errchk 0) (= tile last-tile))
4 A% M0 x' Z% R2 v! [ - (set_tile "error" "")4 }: R+ e5 u- A5 w0 u# A6 T$ N
- )
3 M% |6 Z6 m+ {' J% Q D ` - (setq tempend (ai_angtos ang))
, U( y9 z5 }' }0 c - (if (= tempend "0")
8 N* q0 b! O, d2 W - (set_tile tile "360")
+ G4 y8 ~0 B! b - (set_tile tile tempend)( `( ~ k" H& M- K3 H2 B; A) y% f
- )2 J1 N Y6 W: X2 I6 h9 l
- (setq errchk 0)
5 ?3 ^6 V/ L* x% _) o# z: h - (setq last-tile tile)% ?9 H, w* J* [1 A
- ang
3 F8 t8 c, I- l7 l2 M - )7 b% h4 K; I4 e0 [% k+ `
- (progn( [, U' O8 }. x% j2 D' q; _- q& ` x; f
- (mode_tile tile 2) ; Move focus to offending field7 f9 f o, c- ~2 d$ R1 R3 R
- (mode_tile tile 3) ; Select offending text2 o: S4 @! X; c' e$ r2 F0 _
- (setq last-tile tile)
# [, Z% l" D$ c/ f L - (setq errchk 1)2 G8 x9 r4 f, u0 J; x t
- (set_tile "error" "Illegal input value.")8 E/ T8 m5 r2 {
- old-value
+ V7 s( w7 ?5 K& e4 T - )0 H- k6 G- l' v$ K4 s' i) W
- ): j* K8 k* ^" M+ _$ M
- ). u8 w" T, b0 U: ~! Q* l- O
- ;;
# p1 H s0 Z8 O9 s - ;; Verify integer function. This takes an integer and a tile name as7 g; B' y$ v# x" K
- ;; arguments. If the integer is valid, it returns the integer and resets the
3 W3 W. X5 X O; n6 R n$ ~2 _1 h - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
, P' n) H! W' e+ i. e: T+ x/ _ - ;;
. m! c9 K$ B. B2 X7 ` - (defun verify_i (tile value old-value / int valid errmsg)
+ M8 i: v0 w* \+ {" T! n, c2 A& a - (setq valid nil)' i/ z! R( l4 H$ o/ o$ S
- (setq errmsg "Value must be an integer.")1 B9 Z* } I+ ? F. W1 w' P
- (setq int (atoi value))) @3 ~2 d g$ D; @3 Y0 t9 R* f) I
- (if (setq intchk (distof value))2 i& a0 K0 U6 k, R: n; A' ?: R
- (cond
8 [7 Y/ ?' y* C$ { |9 ]7 e - ((or (= tile "columns") (= tile "rows"))8 P o5 L/ Y! f+ `1 Z) d
- (if (and (= int intchk)8 j; l: Y; W- f+ F% q
- (>= int 0) E$ z3 J- l" B# a
- (<= int 32767)5 t. T! L& d2 H0 G8 n, e
- )/ \# ]6 m* K2 D5 m% f
- (setq valid T)0 I. c5 @* W6 H$ V7 g# @
- (setq errmsg "Value must be an integer between 0 and 32767.")+ j t q5 w% [2 L9 n! X9 X
- )/ ]# k$ x: ]6 a' @- u
- )2 t! a3 ^3 U2 X0 o; Y' g
- ((and (or (= tile "u") (= tile "v")))+ a4 Z4 M2 ^7 B! ~8 p& t. r( o
- (if (and (= int intchk)
- Y! X' [* \% f% c/ f* ] - (>= int 0)" A) O5 M3 X5 R" g) D2 t
- (< int 201)
# m: n, V0 F5 M9 T: l+ s( [ Z - )% D/ r9 _% N' O
- (setq valid T)
& i" N2 E3 T' {0 Z - (setq errmsg "Value must be an integer between 0 and 200.")
( u* h7 E/ r) _. Y. i& b - )/ P' U" ?9 {- D+ \# B4 a/ ~
- )
7 y9 G1 i# D4 d# r2 ~+ d - )$ `, t2 A) Q* J, H% ?% K, F% J- G
- )
' o4 E9 {8 X& S. D7 ^' ~: @ - (if valid: _) O/ n( |: L+ X- C
- (progn, v; U/ g5 ^% T$ f/ ]( T$ ~
- (if (or (= errchk 0) (= tile last-tile))
$ t2 g- {7 ]! F( [4 Z2 i3 ` - (set_tile "error" "")" T: N( o+ |9 H
- )- m5 D1 E5 i3 ]8 p* _# p( b
- (set_tile tile (itoa int))5 `+ k7 g/ l2 q
- (setq errchk 0)) r' }# t2 K* L' g$ e+ h! [8 Y( H
- (setq last-tile tile); |) O- T# b) n. q" ]. D
- int
" r6 @1 |. r" {6 }3 W2 U - )
5 Q8 A9 r# z# T# a! ` - (progn, I m* [7 l$ E
- (mode_tile tile 2) ; Move focus to offending field
+ v9 ?0 h j9 h- p( d) z0 F3 r$ } - (mode_tile tile 3) ; Select offending text
1 x. C: V7 u, ^. P. J! @8 S( h - (set_tile "error" errmsg), o) b& L9 l+ |! N1 N* E
- (setq errchk 1)' r: R K$ e3 R' H* T
- (setq last-tile tile)
$ u8 y" b- Z% A; V M+ Z6 D; o - old-value
( I5 C7 M S) O& U - )( X G7 q/ B3 S5 D2 t$ i
- )" l M9 l6 p1 P7 x7 K4 d' H
- )
1 [9 q0 U) Z: f8 i! Z! N - ;;* c m3 z$ Z8 C
- ;; Functions that verify tile values for integers2 |* D, i* j6 r( V9 ?- s
- ;;
+ [& R+ _: B, k: P! b% [* `% \0 i - (defun ver_col (value)
0 F* M3 h9 Y, {( n- ~( } - (setq columns (verify_i "columns" value columns))
1 I4 K' w9 Z, E; ?' v+ n6 @0 a( K - )
# l& V, W5 j- E$ \( Q8 y# Q6 o - (defun ver_row (value)
+ Y9 q5 t4 B$ K0 ^) D9 g2 t - (setq rows (verify_i "rows" value rows))
% j& |/ [' n- W% e0 f - )% J5 p* B( m' c& `$ v* E! T
- (defun ver_u (value)
8 ?4 m, B) f; t8 K- @% P - (setq u (verify_i "u" value u))
' R' B$ \% a; L9 y) T( o - )
' W# x' U- Z0 t& R% ~( R) J - (defun ver_v (value)2 J7 n1 l2 v8 T: b- c; Z) e7 A
- (setq v (verify_i "v" value v))) c9 Z. ]+ T* k8 ~) y6 w* [
- )
# V5 \/ i5 _+ _4 r9 X - ;;3 V* A/ ~6 G( H, G' ^0 G
- ;; Functions that verify tile values for reals; _/ P$ `3 r9 g# d
- ;;
' V Z3 b }- g3 A1 O" |5 Y# M' E. s - (defun ver_x1 (value) d* c* c& A& \, r% _' O; C3 I
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
3 L1 A. `4 I% ]' ?* h$ |# @5 s - )
& L, o9 v3 P$ p- ?1 W' h' c( @ - (defun ver_y1 (value)
T3 h4 K+ F; J) u3 N$ D - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
; p2 A: V4 }0 `: _: K - )
) v i1 Z( a: M) ?/ o* L0 d - (defun ver_z1 (value)
% u5 {, X4 o# ^' F1 _ - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
( _4 S) g# u6 [6 r$ ~1 ` - )
/ |: a5 e+ ^0 O% k6 c9 { - (defun ver_x2 (value) A& I& ~7 ~* m$ x" _7 G' I; @
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))& V; l% ]8 X1 B, J- S' |9 U
- )+ v" w& q+ R! k
- (defun ver_y2 (value)& f% N5 L& x, b9 ^
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
) D9 e, U( z& ] z6 q - )
1 S9 w* K5 ?3 R" ~8 E* _' I - (defun ver_z2 (value)' f* r" C; ` @' r/ K
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))& k$ A, U ^/ {/ C2 [# u# Q
- )
9 P5 T: V& g# c6 `5 ] - (defun ver_x3 (value) B9 \+ e1 T: {" [
- (setq x3 (verify_d "x3_pt" value x3))2 [9 P$ R5 u( y, m5 ?6 J+ w+ N
- )
' P1 y5 G/ y3 E - (defun ver_y3 (value); k& [3 T: ]4 F! y+ f6 E& j) L6 k6 K
- (setq y3 (verify_d "y3_pt" value y3))7 n5 K4 I4 Z6 H0 T- S* G
- )
% k5 Z/ J: p/ s* `4 N - (defun ver_z3 (value)0 X+ x1 }) |) J
- (setq z3 (verify_d "z3_pt" value z3))
! A3 w" E9 r/ D1 T9 L5 q$ h' m - ) d# n$ A' P" p2 ^3 m; j" `
- (defun ver_x4 (value)
& q: |/ V: O. ?5 J0 |8 l* O; g. i- Q) e - (setq x4 (verify_d "x4_pt" value x4))
4 k, L2 V+ I% B9 U) x. [ i6 U. N; e - )6 {6 M9 \( x/ r% L I
- (defun ver_y4 (value)2 E: d3 Y6 i C1 F8 C3 Y4 B
- (setq y4 (verify_d "y4_pt" value y4))
% u. n4 c9 n/ j: _ l8 H( X' e0 D - )% P/ u2 c2 m) M- V* u7 b
- (defun ver_4 (value)& j# V7 }" Y$ W6 q+ @
- (setq z4 (verify_d "z4_pt" value z4))
8 B G* u8 _/ I8 t9 h& C5 A - )
, H* \7 b: X1 F7 ] - (defun ver_xscl (value) Q3 v) X( g( S Q% ^* {0 g
- (setq xscale (verify_d "xscale" value xscale))
; C: P2 n* T: c7 A5 G - )
" j X# t, e- x! ? - (defun ver_yscl (value)$ F, |* I- W3 I; G
- (setq yscale (verify_d "yscale" value yscale))
! | `; ?3 L# j! ^# _ - )6 D/ ?* p, R( f+ q
- (defun ver_zscl (value)
0 y9 E) t2 c1 }2 s* ?- D. d7 R. h - (setq zscale (verify_d "zscale" value zscale))+ S! y" e. u- N5 a y
- )0 M" e' ^$ d, ~' p
- (defun ver_colsp (value)5 e+ h3 n* f" o5 P: g( u
- (setq col-sp (verify_d "col_sp" value col-sp))
# L/ j! p9 {& y' }8 [0 q - )" ^; i) `* [: R% o+ o, t5 L% {2 \2 Z5 ]
- (defun ver_rowsp (value)
7 g& B' m) r" W- A3 a. g - (setq row-sp (verify_d "row_sp" value row-sp))
! f7 X; g3 Y% Y' {6 ~9 u - ); e" A0 s! @2 a
- (defun xclip ()
' o; v- T0 E( K5 e6 }6 \& S - (setq xclipmode t)* y _' X/ C. F7 s9 ~1 E5 {8 {
- (if (= xcliponoff "1")
5 J7 o; c' {! h4 V+ S - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
5 i" |' \- L' \! [$ K/ b2 q3 j - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")1 s8 _: B! I, B: h! Q+ X) s
- ) h5 X9 \9 C; N2 o
- )
- q7 O3 _, D) x s1 p - (defun ver_rad (value)
# h" a0 ]# j- Y" _7 b - (if (setq radius (verify_d "radius" value radius))6 V- J- ^/ r; `9 R+ }' s
- (calc)( Y$ O4 [, y4 {; z6 R( s5 J
- )
1 d- ~. U$ M# q# y6 S( k2 } - )9 {2 j2 Y2 a, E* N
- (defun ver_majrad (value)
' ]$ V7 o/ F' I* B- _4 z1 B - (if (setq majrad (verify_d "majrad" value majrad))7 }2 {1 L# i$ Z5 X! R y8 ~# `- Y6 ?$ N
- (ell_calc_newval "majrad")
; F4 @, Z8 Q x( B5 f - )
! O' u }3 K5 e' g5 C. _ - )
& V; A! k) U" y& W* k: X - (defun ver_minrad (value)+ _, g D+ B, \1 _$ O4 D/ T9 ?' I
- (if (setq minrad (verify_d "minrad" value minrad))
8 ~9 @+ K( b0 Z3 W. P) F - (ell_calc_newval "minrad")* o9 R3 Z0 ]* l4 i+ u$ A
- )! C3 R, w8 d8 P* c" |& z
- )
8 R7 [3 K/ o) ? - (defun ver_hght (value)
$ `% @7 z+ A- q: z& ?3 n* a( n - (setq hght (verify_d "hght" value hght))- A! U; t: f+ m0 @
- )
3 a9 ^. v% _. P$ w( \ - (defun ver_wid (value)1 D) P, T, f# p. A% h
- (setq wid (verify_d "wid" value wid))
# I% D5 c$ K# }% I - )
3 S( s! B) m* i1 j3 y# C - (defun ver_xline_x1 (value / temp)7 Z! o, U; m0 r) O" |
- (setq temp xline_x1)0 S4 E. y# `6 O8 R
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
+ q4 Z' t2 v2 n C5 e - (if (/= temp xline_x1)0 T# B) X3 j" B8 L" {" S
- (progn (modify_xline 0) (set_tile_dirv) )
! {3 D, J2 b' O, O' B! U2 @$ X - )/ g5 X0 u6 s7 h# l$ T: [
- )
# w3 V* s# K7 [+ } - (defun ver_xline_y1 (value / temp)- ^3 c- U5 m0 x3 I! C% V1 v
- (setq temp xline_y1)
( l% W% D8 X } - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
: ?7 x' H' w3 {8 a; O/ }1 G) @ - (if (/= temp xline_y1)
- K% v- b# l+ |9 w5 }+ ^) p - (progn (modify_xline 0) (set_tile_dirv) )
2 w5 N) C2 v! s" y5 F( d5 W - )
4 K* `8 b2 v4 g- \( _+ |9 ?: w - )
6 X% h; `6 V# r/ J: p/ a) g - (defun ver_xline_z1 (value / temp): \0 l' ?& ?8 e1 `, T. y
- (setq temp xline_z1)
4 v0 o5 R# `8 q5 }4 w% e5 t - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
) r, E8 N# [) j- ^6 u) u - (if (/= temp xline_z1)
7 m* }3 b8 w( `8 W: P! @/ L - (progn (modify_xline 0) (set_tile_dirv) )4 S V1 K3 W7 e. T% A
- )0 g' J7 {8 O& I: G; q
- )
" D9 Z1 a6 ~6 y) G$ Z - (defun ver_xline_x2 (value / temp)
V; Z/ }' D' J4 z - (setq temp xline_x2)
: V* O4 \* j5 ?8 @& } - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))7 l9 r, P9 F0 ^1 t& F, _9 }
- (if (/= temp xline_x2)$ m. [/ Q5 t' O( j+ F; P' a
- (progn (modify_xline 0) (set_tile_dirv))
) ?& U! F3 H; T: @5 E- K0 ]/ y3 w! S; ` - )
6 T0 _- ? N( {. e: H - )
# n2 q# K# k; v l6 X: A - (defun ver_xline_y2 (value / temp)% |8 I3 p* w1 Z$ X$ o( u6 o
- (setq temp xline_y2)
* A( T3 E: n" O; Z' u+ L - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
% {* A$ p V3 _+ Y" O8 q8 x - (if (/= temp xline_y2)
8 U( y$ a% p$ \$ `' `8 K - (progn (modify_xline 0) (set_tile_dirv) )" O! U |' Y6 F$ N+ h% B5 c
- )1 z5 [5 x% j( Y" h
- )
2 j; {& ~1 I3 @+ ?4 d - (defun ver_xline_z2 (value / temp)
$ w! e0 n# C' X! P+ ^3 {0 L - (setq temp xline_z2)
: Y& y1 O8 v% V9 b% I1 r - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))0 z9 }& R! @6 t6 _! D! l- o* I* b. w
- (if (/= temp xline_z2)
; G& T" @; }; W - (progn (modify_xline 0) (set_tile_dirv) )8 u: H7 T. k f3 |; V+ T0 S
- )5 |. T- m! e7 q8 ^+ k2 x0 \9 T. s1 M
- )
v( ~6 Z+ k+ n) X9 w# I - ;;& w& V5 g+ Y6 ^; D) q+ k+ x3 ?+ p
- ;; Functions that verify tile values for angles' f5 h: }$ p$ O4 d8 X
- ;;
: ]' I+ d& R/ d% @9 N - (defun ver_ang1 (value)
/ N# P; i; ~! ~/ c: t8 K - (if (setq st_ang (verify_a "st_ang" value st_ang)) m8 P( i$ o; g* \9 t
- (calc)
; i( p" L. q- Q! G- @* Q - )
/ c1 v( S; R2 M# M+ K9 j) P - )
- A1 M! V$ F6 G+ Y# t% f' } - (defun ver_ang2 (value)% A0 {# R! n( C7 d
- (if (setq end_ang (verify_a "end_ang" value end_ang)): D8 h4 m& S: u# m3 m& V
- (calc)
# m# P0 r+ n+ V$ X- ]6 F - )6 C. D. ?) g. R" \1 _, v! s2 K
- )/ Y* D* D8 x: a0 J l
- ;;, E3 e# {+ P! E$ R8 D! B5 `, N# E
- ;; Verify tile value for ellipse end angle. Handled slightly! N& V4 |# K' @+ T
- ;; differently than the other angles.
. R2 z! r E0 Q$ C - ;;) }2 D! k, I. f2 A- W
- (defun ver_eang (value)/ n. Y8 O6 z9 ~8 b2 B3 @ |
- (setq end_eang (verify_ae "end_eang" value end_eang))2 a9 E* [; G' I! ?* J9 J
- )/ Z4 ^& g* y5 q I7 n- D* O4 c
- (defun ver_rot (value)
6 N. i4 [% X( u! N2 t: l: [ - (setq rot (verify_a "rot" value rot))
3 p* O$ J+ k. k- N0 { - )) W# o& A* B7 O1 X$ z$ G: p H( p
- (defun ver_obl (value)1 R8 @, Q/ x" g. W' u$ [, N
- (setq obl (verify_a "obl" value obl))
9 x) D* M9 ?8 j$ N V: r6 n) U - )
- u' p$ r1 q3 e5 \# ?* n' S - ;;
$ S! A: d% c8 _ - ;; Function that verifies attribute tag field for null string,! n: V7 V* H" O, j) s" u
- ;; or a string that contains one or more spaces. Tile value
+ l- F2 C6 a# O' g - ;; is also converted to upper-case as well.
+ I6 Q7 e; ]/ o0 f& Z z3 d - ;;* {# Y- s" Y7 x- b
- ;;5 }- o" n' }- P( l; x" E
- (defun ver_tag ( / tval)
. g- I7 p4 a) r/ O - (setq tagval (get_tile "tag"))( }0 h! D6 `0 e, h! j- x
- (set_tile "error" "")
1 ?8 b5 J. |+ r# X, [5 { - (cond
* |/ X; m- b. s; [" l: ~1 P - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
7 G; o) p& ?9 |) G - (wcmatch tval "* *")), Y, s7 Y+ x) B# p
- (set_tile "error" "Invalid attribute tag."): S4 P- k4 C! L( U6 U: v2 F
- (mode_tile "tag" 2)
* _; ^7 c( J. T2 Q! Y3 Z# D5 x+ J - (mode_tile "tag" 3))9 G1 P! b, L. w. u% e8 m" `$ V' E
- (t (set_tile "error" "")
# F- \: _$ i0 z. d7 f, X6 G - (set_tile "tag" tval)5 @ j: ~" {1 ~5 \7 l
- (setq attag tval)))- m8 O2 E) R& B- k9 ?8 ^6 M0 W
- )4 Y3 B B! ~& w* a/ L) I# k
- ;;
[2 {9 g' U9 ~( P- K, D6 H" U! X - ;; Calculation functions
: x4 m) ?! Q3 d4 k! H - ;;
5 n9 z9 Q& \* h8 U! p% z - (defun calc ()7 `0 u9 Q+ K- P/ U; d* S
- (if (= etype "LINE") (line_calc))! l0 }7 m8 Y. I1 x
- (if (= etype "ARC") (arc_calc)): |3 N/ Q9 J$ }; r3 x3 _
- (if (= etype "CIRCLE") (cir_calc))& J7 c5 T: r" Q0 M7 H: h4 `
- )9 \5 x7 p! p L* b2 S* \
- ;;; A$ g6 e( N8 e$ I% R
- ;; Calculation functions for lines, arcs, and circles
: I S) ?" x" Z) E& g9 n; s2 g - ;;
' a4 E+ _9 T' G - (defun line_calc ()8 c9 a. U8 y) ~% D: {8 ]
- (setq stpt (list x1 y1 z1))
9 s& h5 X9 M6 h, b- p7 a% w - (setq endpt (list x2 y2 z2))
, y u5 t% D" ^0 c: t7 {1 ~ - (set_tile "delta_x" (rtos (- x2 x1)))
$ e! M/ C6 d& d, @$ E" F$ Y - (set_tile "delta_y" (rtos (- y2 y1))): y6 t" q) c: h, s! {$ L) N5 q) {) @
- (set_tile "delta_z" (rtos (- z2 z1)))2 r. P! s0 U: }1 l; Y% _/ @3 s% \
- (set_tile "l_length" (rtos (distance stpt endpt)))- A% D9 ?$ ]4 e9 n7 _) r
- (set_tile "l_angle" (angtos (angle stpt endpt)))5 A1 P$ o- z- M$ W7 ]
- )0 T0 X; w0 j5 c; f8 |; O+ H0 c$ ^5 |
- : {4 B% {2 w' k
- (defun cir_calc ( / area units)
6 q* z9 q2 w& o - (setq radtest radius)
1 d( |: O5 L) z8 F - (set_tile "Dia" (rtos (* 2 radius))) [. H0 e: w* A
- (set_tile "Circum" (rtos (* 2 pi radius)))
; Y4 B1 o! z4 m4 f: U9 j - (setq area (* pi (* radius radius)))9 s- ^" b% P0 G K7 Q4 q5 a
- (setq units (getvar "LUNITS"))( q O1 g5 h$ A- s. ?
- (if (or (= units 3) (= units 4))
B( b: C& O% z! v- j: l' N: [6 | - (progn. ~" V5 x. y: m$ n# @5 N
- (setq area (/ area 144.0))
8 \# c# h+ l' n7 b - (set_tile "Area" (strcat (rtos area 2) " square ft"))
. M& t; _% V1 J- Q" u - )
$ D5 `7 T& c8 r( q( { - (set_tile "Area" (rtos area))6 K3 n$ Y, A; c( I8 E. d" f
- )
, ]# W% T* ~2 O' s3 I9 e$ u8 E - )8 V" L9 Y# a& H# \+ y
- 8 a$ N) M- k5 U D; ]% F2 S
- (defun arc_calc ()
! |: y5 i2 F6 C; v - (setq totang (- end_ang st_ang))
9 B5 b" i) U) E6 A - (while (< totang 0)3 ]5 `" _) ]" M! [1 H: r8 U
- (setq totang (+ totang (* 2 pi)))# C& z ^* F: a6 q" L' F
- )' }& u, ]* d4 _; q$ y4 f( v1 w. K
- (while (> totang (* 2 pi))+ ?- I2 {- ]" q# @% F5 m8 O
- (setq totang (- totang (* 2 pi)))# N9 j7 u& U: F+ W* a/ R ]
- )* H( C6 L& n6 I N7 {
- (set_tile "tot_angle" (angtos totang))
: U6 p/ f, G3 W9 M" [ - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
; o" K& w8 E W/ b) ?4 \0 W5 x - (set_tile "arclen" (rtos arclen))
6 j+ h' h$ T5 {, w v - ). w! A Q- ]* z- Y
- ;;2 Y: w* C1 z) m* d! n
- ;; Calculate the major radius, minor radius, major axis direction.) i8 A, s+ Q+ w- e l7 X2 k
- ;; Get radius ratio. Convert Start, end parameters to start and end8 k" Q& k6 f7 n8 h- s$ [
- ;; angles. Save Major Radius value in "old_majrad" in case the user$ T3 j& i8 @' _, f y: s$ c. l
- ;; chooses to input a new Major Radius value later. It's needed to
5 L1 w2 b. ?) d/ w6 V& V% T! d: _ - ;; calculate a new Major Axis Vector value.
0 n2 Y( Q' y& r. ? - ;;
. A2 j- x2 U- N+ ?! A2 | - (defun ell_calc ()
7 l, U* M% {0 A7 y2 E - ;; Get major radius from the major axis vector. K B+ f' [, D% h4 R5 p
- (setq majaxis (cdr (assoc 11 elist)))& M- u# b) f* a, m
- (setq xx (car majaxis))' a" ^0 i, l9 h
- (setq yy (cadr majaxis)) L7 }! O' m: R$ _/ c
- (setq zz (caddr majaxis))/ I+ o7 \' _9 `9 O: [. J+ U
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
1 s: f5 L+ _) ~+ j) ^5 } - (set_tile "majrad" (ai_rtos majrad))
; q5 y' [( t: q6 J0 D+ ] - (setq old_majrad majrad)
s1 l: t+ H' v# ~0 d8 }: n. _ - ;; Get radius ratio% y' T: z5 ?5 N, u3 z8 d9 K
- (setq rrat (cdr (assoc 40 elist)))
; L/ J* t5 H0 H. j U - (set_tile "rratio" (rtos rrat))
. y+ j+ p8 \. U, b& u# f - ;; Calculate minor radius: R( H8 N) s! D. p( _! Z
- (setq minrad (* majrad rrat)). z: k& {5 N" V! v: \* q
- (set_tile "minrad" (ai_rtos minrad))
/ a$ W3 [3 G% L, E - ;; display major axis vector
$ `2 T$ O) d! _3 r - (set_tile "Majraddirx" (rtos xx))
! z+ W; G+ u6 h) N7 X2 b - (set_tile "Majraddiry" (rtos yy))* q5 E Q) B! d( y7 E& M
- (set_tile "Majraddirz" (rtos zz))1 N Z" y6 K& D4 f Y
- / ^6 n$ k+ ?. s/ Y5 X: W
- ;; Convert start parm to start angle
# ]# v: F o. b - (setq stparm (cdr (assoc 41 elist)))
) X5 y& W4 o6 h l& K$ M - (setq vecx (cos stparm))# |6 F* M0 V- R6 G& W
- (setq vecy (sin stparm))
7 j6 M3 {" p# c1 v$ J) n - (setq st_ang (atan (* rrat vecy) vecx)): t$ G7 c4 M5 s+ u8 U" V5 c
- (setq tempst_ang (ai_angtos st_ang))' O9 D8 Y, u* u
- (set_tile "st_ang" tempst_ang)
H' Q3 s. W; c - ;; Convert end parm to end angle. If end angle evaluates to 0
" I1 O, u4 E. w% w1 p9 L - ;; degrees then display it as 360 degrees.
& A4 V: U( _. f1 D" |% e - (setq endparm (cdr (assoc 42 elist)))
/ q' m+ [3 _) K - (setq evecx (cos endparm))
. m, ?9 c- u1 ~, o3 F - (setq evecy (sin endparm)): t: ~" i @; Y/ R( f
- (setq end_eang (atan (* rrat evecy) evecx)): t) Y+ N9 w# @
- (setq tempend_eang (ai_angtos end_eang))& ~6 A5 T k: |+ O9 H
- (if (= tempend_eang "0")
. K" a4 W7 N5 M9 \0 @+ w - (set_tile "end_eang" "360")
6 E5 N" B$ \. @; P+ K - (set_tile "end_eang" tempend_eang)
. \2 y6 z1 S3 T! L8 q - )1 R& E3 u5 S/ V' g0 T4 ]
- ;; Get area of the ellipse." T5 Z+ c' A! `2 y
- (ell_calc_area)5 c# J# I* Y" F3 ]% V
- )
2 [0 `1 |( a8 g" l - ;; Calculate area of ellipse. If it is an arc then
# B4 N1 G, H0 S9 P - ;; grey out area display.7 Q; Q1 h9 A {& W7 [
- ;;) v4 t7 `8 i% I- Z# b; y$ e
- (defun ell_calc_area ( / area units)
8 X" l) W) j$ X# K* S! ^, d" X Y - (if (and (= tempst_ang "0") (= tempend_eang "0"))% G0 N. t. R: s d; Q9 @
- (progn( ^5 k' o& t+ P) _! |* _; j0 T/ a: X
- (setq area (* pi majrad minrad))
}. }: H7 P" R! M- J9 K/ E - (setq units (getvar "LUNITS"))& m- r4 E5 u$ E( \: W
- (if (or (= units 3) (= units 4))
" K6 {- Y1 O9 w - (progn. L2 j5 ~( F) K, ]& J
- (setq area (/ area 144.0))/ C c7 s2 K ?4 Y# i j
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
+ z2 y% u* g' n3 i: l0 L - )4 \7 J4 w) M: j. v* Q" k6 J
- (set_tile "Area" (rtos area))
3 Y1 x' c+ v I+ G1 r5 N# V& y, W - )7 G, c4 ?9 @2 E) o) \1 v6 ^
- )
) w" m# r+ v/ ~2 E5 ?# S2 N0 K" @ - (mode_tile "Area_text" 1)0 ?5 g: [2 g1 G% l, H
- ) q! H! d+ j+ F9 ?: n
- )6 _+ B# ]0 [: K+ f3 C
- ;;4 b7 I) ?6 D J: k X$ s) O
- ;; Calculate new values for ELLIPSE
+ m6 V) D! ]# M7 T! w7 {4 T - ;; Minor Radius, Area4 n; d2 r6 g, Q- {# e! R
- ;;- N% {' B0 x' ^) c
- (defun ell_calc_newval (ell_tile)$ q" S+ T' e$ u' h& _
- (if (= ell_tile "majrad")& H, P. c7 _! S5 H) Q
- (progn& u& d' d- ?' I/ b/ L/ C$ s
- (setq rrat (/ minrad majrad))6 U) l, k& U7 l9 p1 l
- (set_tile "rratio" (rtos rrat)); t2 S9 d4 t( d7 n1 b
- (ell_calc_area)* Z; Z4 T/ H$ v3 @5 m% d3 o3 @
- )
( I$ M+ q8 L' w4 ?8 V - )( X1 Q6 M; B' F8 n+ B/ k
- (if (= ell_tile "minrad")
, x) k& Z. N& V" h, D, Y - (progn+ n) h7 @ s( X; y
- (setq rrat (/ minrad majrad)). {" _1 {' ~+ ?( |4 k
- (set_tile "rratio" (rtos rrat))8 X3 e/ v @* @/ j% L5 R! N$ k
- (ell_calc_area)" M, w# \( g4 Z" b4 X6 _) v* }+ D/ O
- )
6 E- t, N k$ W: h3 X - ): E4 M: h3 Z4 K5 o1 v- A
- )
: S" s3 j4 v9 o' U
* l8 W* U3 h) [+ Y0 M6 X- (defun set_dimen_props (/ loop a stl txstyname)
- j$ E, @2 K# g
4 {) v/ [5 R( e- (setq stname (cdr (assoc 3 elist)) ; get style name
# u# c- I3 T& v! G. O - stl (tblnext "DIMSTYLE" T)
. d: c" m0 s- J) O& k - stlist nil)
! ~9 a# n. d2 d$ \3 B - ;; Get all style names and list them in alphabetical order7 F+ Z* z! Y, N$ s
- (while stl
! i$ V+ X4 |+ z - (setq sname (cdr (assoc 2 stl)))
$ b# n* P+ X& e9 g; o: n; |$ n) x - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
2 H, m( x8 p& O3 D - (setq stlist (cons sname stlist)))
& [) J" k. w% {* N - (setq stl (tblnext "DIMSTYLE")))
4 I* j4 S% k; V0 u* L; Y - ! k' v1 M( Q% ^& `# a
- (setq len (length stlist)6 N5 {7 }- N: {$ i& G! a( ^. C
- loop 0
1 ^$ m! J0 O9 A2 A5 y) B+ ] - dimsty stname
7 i. J2 c; R8 G, C - )" L S% n/ S/ H0 F
- 0 H4 L$ E0 n! j# g% S, b
- ;; alphabetize style list, depending on maxsort
$ W# Q$ Q' f* N$ r - (if (>= (getvar "maxsort") len)9 _) G" V9 l0 [- v5 h' Q
- (setq stlist (acad_strlsort stlist))3 F! S2 c8 M; ?# H$ c
- (setq stlist (reverse stlist)))
/ p' B8 S9 H1 ~, D
! K4 D( ]4 t9 Y5 }- ; *UNNAMED style (dimsty = nil at this point) is replaced with
6 J" I& g5 n/ l4 P+ ]+ H - ; the current style. After R13, we require dimensiosn to have a
- A# M7 W$ {) M7 _! T" I6 U - ; dimstyle, so we plug any holes where we find them.8 I$ }% J% i1 z
- (if (null dimsty)6 f# r t, o7 w5 M
- (setq dimsty (getvar "dimstyle"))0 J. V2 A" s+ g) r; B
- )8 U4 y2 T/ N6 [, b$ Q
- ; Show the styles in combo box: H4 j. W7 ~6 t: h
- (start_list "mod_style" 2)
" h+ [# m- z! i; \0 V - (while (< loop len)7 P E& b( C+ z% s. G
- (add_list (nth loop stlist))
: G& z* n5 {# U/ d" H$ M; Q- e - (setq loop (1+ loop)). a# @1 d9 p: H
- )1 [% |" K+ V9 p V3 S _& R
' i1 c/ Y8 h5 a- (end_list) Z8 u, Z9 E2 r* Q. A' M+ f5 W* k
- & ]& _, ~& M: Q& }( {8 C
- ; Hilight the style name of the selected entity2 F p2 p6 J! a3 A* j4 S' F; J
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))/ _9 m. x9 S% ~" L0 P
- (setq loop (1- loop))2 P$ s+ ]( h: ?! N, ]1 s
- )1 ]# W5 Q& E6 h
- (set_tile "mod_style" (itoa loop))" s. k6 U* j% h" W! ~
# S" s: P$ c0 K$ F- ; The following is the list dimvars. It must be sorted in the same. T* `0 L) _% k6 |. L* B
- ; order as the resfub returned from DDIM (ADS module).8 S8 k& s: _' m% n; I. Q. k
8 p9 U1 @) |/ s7 W- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
: h" `$ R, U# y7 U. o4 B* r - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
- @( a% B+ H6 J4 M - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"$ `3 Q9 x) j) \' M
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
! b7 `& e& i# ^- k% y# t# V( R/ @ - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp": m; Z, N" ^0 z* V
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
9 [: w# e3 m. m' X3 q7 @ - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"% v% w% w( P8 @8 A# Z8 y% C
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
9 i- D( f5 Q) B5 C3 ]0 K) V+ c2 u - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
) C( W' h7 Q, `( e - "dimdec" "dimtdec" "dimaltu" "dimalttd"
5 Y0 t3 F1 ~+ |# ?& \& R! G - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
8 Q% x2 c3 O: u7 n - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"# b$ N! w0 r l/ U4 `+ K
- "dimtxsty"1 R8 i8 b% V" y6 j: |
- ))
/ ~8 y* e: R u" Z$ Y7 a - (progn
' w* I [/ Z) a% I V, r+ V - (setq sv_dvlist (ddimen_getostate dimsty)
( L; O+ O: G' m - txstyname (assoc 340 sv_dvlist)* \6 w: A8 L. M, Q! c2 G3 e5 p
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname))). [# D# |0 f& l, k' S9 m
- txstyname sv_dvlist)$ b, M N3 C; f* d. Q3 i6 f9 C
- dimlist sv_dvlist
7 H( q9 m' Y9 ^1 U - )
1 _+ e; H0 J1 {2 \; B& B - )
5 ~% L1 V6 R) A8 L) ` - (if (= dimtype "DDLEADER"): Z5 v# }- ?, L4 r' [
- (mode_tile "mod_format" 1)' u- O7 M& [8 l4 f' ]9 y* T: Q
- )
4 H; f# X, t5 M% ? - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
" B s( Z3 x$ F- Q: _' e( ?7 r - (action_tile "mod_text" "(done_dialog 4)")6 w; J) b/ @/ {* j: A
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")" t, S* k1 \, T! e
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
( k# j" Y; Z0 ? - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))"). f2 K5 W# P( N( T F1 c( o
- (action_tile "accept" "(done_dialog 1)")
" ~' U* k3 f! j) o3 ]1 S/ S - )# h, ?' y! z0 O* O
- ;;
v2 ~- l1 W3 A6 L - ;; Get dimvars that have been restored.
* e# c4 u. C- p& S' `; H - ;;
' b! u8 c/ g( ?9 L! E2 V* S+ o3 } - (defun ddimen_getvars (/ elm dvlist dv i)8 V- c6 o2 ~) t- k" X
- (setq i 3/ f. R2 m2 [# @
- dvlist (list (cons 0 "DIMSTYLE"); n+ U3 k0 g+ K2 t
- (cons 2 (getvar "dimstyle")) (cons 70 0))
& v! e6 D( O5 F- [ - )1 c5 G; z6 ~# S8 f1 }7 {
- (while (setq dv (nth i dimtbl))+ V$ |; y+ ?4 L$ z+ u! W6 K
- (setq elm (getvar dv)7 P( K* H1 k1 p# g5 [3 D
- dvlist (append dvlist (list (cons dv elm)))
: o- m- ~* K# ]- L" v2 { o - i (1+ i)
/ N# h1 {5 O! v' h - )$ D, e% Q+ ^3 u7 G" H
- )
8 H) l3 H; D9 `& O, w6 }2 X - dvlist
* A# A/ k. R- d; k( h6 ~ - )& V4 p0 j8 v5 I! e
, m y4 ?- h9 T- ;;9 o. b5 Y, ?# F0 a% {" ?
- ;; Get the original states of dimvars. This is for DIMENSION entities.' ^. }3 G* r3 d* U4 R
- ;;
" S1 s! j9 _* S; k+ d1 }* _3 o - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
% M( R, a: E6 t" @! P8 @; z. M* ` - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list6 n1 x' C) @$ p- h4 n# F
- dvvars (ddimen_getvars) ; Get dimvars for that entity; p# Y \! A# X, \1 V1 h0 @- F" Q
- i 1
( v' E1 j' d$ Z/ `" H - )% [; y$ `" s6 r5 W- I- U7 M f& I
% Z/ Q* c9 G9 p. i" c1 y. O- ; Create a list that contains values of the selected entity.
6 H0 V1 K# G ^9 o% { - / _$ N# j+ t, Q5 g# G. Y
- (while (setq elm (nth i dvlist))% Y$ m0 E) S; o, ?7 |. v; y5 K
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist): f$ k- l0 w. G& s b7 k! C k
- i (1+ i)9 O2 z7 D" Y: j% G' O& c5 v8 X
- )8 L2 l4 V* z& p
- )
6 T$ G/ ]6 h1 t7 A* n7 c L/ P - dvlist. W5 g; P0 p! U) Z- E1 q `$ |
- )
" T n$ W6 h" a8 h. J6 P0 h# o- Y0 @" x: H - M" l: C. c2 K- v/ @6 ?
- ;;
" {, ~4 ]; t* W% i - ;; Restores dimvars of the selected enity.
m% Q2 b) t. O% s i7 y3 ?4 h - ;;
/ {5 k: p0 b U/ N$ M( A% r5 z - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
3 {3 L" } y' ^8 `2 S' a) I - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"1 c0 m! P( s+ M( D }& Z4 N X
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
4 L6 y4 p1 i; p3 ^7 I5 M - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
' t6 G/ Z. g1 R+ u - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"' t' }( q, L3 S
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
/ l9 G7 D v# v- I; {. M5 n - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"2 T, I4 ~# Y2 h" d3 B& d4 b+ o
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
$ E, C& L" d1 }7 R, Z - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
4 Y3 m+ D. x8 R$ t# @ - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit") F- E4 ^( O# M t$ W1 G) G; E9 L; F
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
/ w/ I( e" X+ j, N6 D. n - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"5 G9 f' Z$ q3 `2 _/ M0 w
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
; c' i7 p2 [1 R3 }$ [$ I7 L% `/ n - "dimtxsty"% N5 g9 n5 b8 ^- A" S4 K( g5 a H
- ))
, M: ?* r( R) \, z2 [9 g - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
2 u/ q$ i8 i3 P - (progn; O6 k2 Y, M7 [1 A; y' g
- (setq en (cdr (assoc -1 elist))), \3 G% F" M5 i9 O
- (command "_.dimstyle" "" "" en)
: A4 i4 r& s: f3 i - )
, H6 }6 w- X3 w6 ~. _' ~ - dimsvcurset
, G3 {( d$ y9 Y) {! f" { - )
C% W# M/ m4 ]2 c( R - ;;
; F1 c5 q! e% x3 D2 [9 y - ;; Modify Leader3 r7 ]2 }7 `" d6 y3 f
- ;;2 b+ ` }$ T, h2 p t1 {
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl3 V: l, @1 a- L0 C( m: f
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
, A7 o8 ~/ d* f3 G; q) x - dimtype dimsvcurset)
! Z9 F2 H; }, }- N3 r2 f - (setq dimtype "DDLEADER"7 E. _; o4 f4 n. n' _
- dimsvcurset (ddimen_dimsty_restore)
5 K8 m2 E2 A7 N6 Q5 }5 o4 ?2 D/ _ - )" ]6 N6 H( O& }( a
- (if (not (new_dialog "ddleader" dcl_id)) (exit))- I0 l" w2 d0 C& o
- ;; Set initial tile values5 w& }7 }5 X5 A! w5 {
- (set_tile_props)
9 }+ _% z, q& v% S - (set_dimen_props)
7 e; }0 H3 i, I. W2 w - (set_tile_handle)
) t# J6 f6 Q" U- e# u5 m. w1 q* ] - ;; Define action for tiles
+ k r6 s8 p5 f' H - (set_action_tiles)1 Q; s% r. T! _6 H4 y
- (mode_tile "mod_text" 1)
1 G( d \! c! [4 n
$ P1 W1 U; J/ R9 S3 {7 }0 E a- (action_tile "mod_style" "(setq dimsty (ddimen_style))")6 ?% [" l) `, P. u9 Y
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")5 q: \6 l8 E, B9 S5 B; \
- ;; Get ARROW and TYPE.' f) b7 g6 x" j! E/ r- G. Y# {3 e. `2 H
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))4 d0 f& t+ e7 n% H/ u; S1 v; T: f
- (if (= 1 (logand (cdr (assoc '72 elist))))
' i: e4 x' C. s# c3 X - (set_tile "s-s" "spline")
4 i% M, Q; A+ L7 l4 U3 [ - (set_tile "s-s" "straight")
9 h4 L( W7 A) R - )
* |8 a, ^; ~9 S$ } u0 ]6 v/ ` - ;; Start the dialogue.$ d. a) J5 T2 G& a4 r! D
- (setq dialog-state (start_dialog))
. R: L% C, ~. R - (if (= dialog-state 1)/ W2 q$ F2 L A. D1 y `4 h* n8 n* q) i
- (progn% c$ H$ A5 S1 V t4 @
- ;; update the style
( R& |5 E6 Y- V' p0 i9 {4 I5 e - (if (/= dimsty stname)
9 o. T( }; m3 G7 \" v0 u" X - (progn* o' ]2 |; }/ J0 p h9 C
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case3 r' U- h' P: Y9 Y; |* H8 j
- ; doesn't have it.
* h. N% m1 \7 b! T2 Y - (if (null (assoc 3 elist))
. g2 k* w1 q; f7 s4 @6 z - (setq elist (append elist (list (cons 3 dimsty))))! B" P7 u+ `7 i! U& r: q, c
- ; else just replace it.
) ?! Q: X3 L- o3 Y3 K+ i# |/ _$ C3 g - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))3 E$ M7 v! ^6 N
- )1 s7 K0 r/ {# P' y
- ; refresh sv_dvlist with new dimstyle.3 s3 H2 M0 h( M/ ^4 U! F
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
9 B4 u3 G. O: e: @" X {# I5 T: S* e - ); ^& X' p( f) G
- )
/ M) T: t' S8 J - (if (not (null dimlist)) ; attempted to change dimvars
) H" `% q. ]( s; o7 h" p: ^. b P - (ddimen_complist sv_dvlist dimlist dimtbl)
; r- F6 s- e2 a) v2 Q5 H o# g+ P$ A - )
, f s5 M/ S9 a5 x - ;; update for ARROW.
6 p. s/ d- B8 h5 k8 h! H) H - (if (= "1" arrow)
( K) x J7 T( G# u - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
% F1 z& \1 E( _; s0 e+ s+ [ - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))2 g! h; I l$ t( j: d- X
- )
1 r. X9 Q4 F: j# }% w* u - ;; update the TYPE.* U6 d9 f5 B+ x. B. Z, \) v7 m
- (if (= "spline" leadtype)% D' k! `; x, P% e$ u
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))+ \: L: ^& ^( s, z
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))8 }& m5 V8 w) U
- )
* v+ C2 o, M' p; W4 K, T1 v4 @ - (modify_prop_geom)
3 k8 J; n5 ^( u2 W3 r* T' W P - ;; update the Color" S( z3 w! b- q3 G" n/ ]* ^
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))1 T% P+ v) W+ G1 T
- (entmod elist) {9 D/ u1 t' b1 O+ a/ J- w
- )
" V! m% a' h# F& j - )
( T! V( F4 A/ s* C! C) Y7 O - (ddimen_setvars dimsvcurset) ; Prepare to exit8 G, v! Y0 ^) _5 V5 }" i
- )
, r6 i% s# b1 }& b* O - " }1 T8 P9 P2 n& H' _
- ;;
1 d4 v- e& Q& w. }* q1 t5 F - ;; Get dimvars of a dimstyle with overrides.# ^" I; D8 T9 J9 N' G, o
- ;;
, W9 J" J& V, G! i
T* J; Q7 @4 x U- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i). `# b& Z# ^& N: \
- ! i d# n" Y9 d$ t! \4 W* M
- ;; Get override information for the specified entity.% L2 M8 M1 l; `$ ?
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
* a* y" x R3 V! h' o7 b' C - ;; must obtain override information through this tedious operation.3 Q& n" P+ _7 p" o5 r+ P
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*"))))), L6 b' X* B. |; n. K5 }! V' L
- dvlist (tblsearch "dimstyle" dimsty)- u. @1 I5 O; H4 \- l4 E# G
- i 2
/ h1 ?& x! t- f - )
2 E' a) K- ^0 h5 O# I( s9 c5 h
1 Z2 j7 `) }: S$ k7 q' Y& C; G) v- ; Update the list with overrides if overrides exist.+ t: e6 c m+ Z. }5 h, V$ P( @
- 7 e r; Y& P3 n5 e+ t/ Y0 t
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
8 l4 z5 i% H0 a, F8 ] - (progn7 B/ s- F5 J9 k- S2 [
- (while (setq elm (cdr (nth i dimovr)))( \; b ?0 p6 l J) U$ X+ o
- (progn
m/ }+ E+ Y+ r2 s - (if (or (= elm "{") (= elm "}")); |% l. |- z- [# Z" C$ L$ a N
- (setq i (1+ i))7 B; b, C; v0 x r
- (progn' g7 l O+ o7 n* i: T
- (if (or (and (< 180 elm)
. A' O+ R. Z1 n. l- V3 I. T& L - (< elm 190)' H4 K9 q6 z5 _. [( [* d
- )3 M @$ T* s5 Q
- (and (< 80 elm)7 H* Z8 W+ t* `% r4 f
- (< elm 90): O9 { S6 V: H+ v% F* a
- )% a# x$ o& V, t. L6 f! I
- )
. p; d# M' n: w$ u9 F1 S - (setq elm (- elm 10))0 g0 Z1 {" {* ?; h" W% H
- ). @* Q" j {: W" I2 f
- (setq i (1+ i)/ w2 a2 p3 y6 q. c5 A; a
- elm (cons elm (cdr (nth i dimovr)))
2 P# k1 V( A) G - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
$ R/ U5 Q% T9 y' X - i (1+ i)
: B$ E5 ?3 `# ]; z5 D - )
3 y) Y. Z+ W2 k - )
+ D1 J2 o& X+ h2 E7 j I - )
, M6 I- v! r& P: t9 ^" Q) z( D - )
4 H; D8 O7 u7 ?5 Z! |/ q1 ] - )
2 u' o/ g8 W \- x; Z - )
/ f& q6 r+ W# p- A( Z9 d - )
1 l9 E- N- U9 |) } - dvlist
! b7 u6 d$ y v - )
" N( C7 E- X1 Z6 s' N/ K0 s5 t
; ~& a3 t6 j7 ]* q; c- ;;
% v% G7 p6 K1 ?; k- [ - ;; Modify POINT
3 ]# |5 z2 H0 P, E - ;; J5 C. ?* Z: R _/ H. K4 ]0 p! _
- (defun modify_point ()
, z$ u- n& I9 d2 D/ F( x& h; m - (modify_properties)
- A9 `2 w# h) C0 o/ J - (setq pt1 (list x1 y1 z1))8 x+ Q( H2 y$ N' j0 r2 G
- (tempmod pt1 10 0)) Z% z z" s4 m1 R
- (entmod elist)
( T/ j( b* |/ x, W' r" W7 t$ U - )" C' o5 c4 O' O. m
1 {5 Z- P: |# [- b( I7 O% V- (defun ddpoint ()% X! |7 z' B5 w; |! l' I) h4 C2 x8 d
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
' T6 `1 ]6 O6 q' j/ Z' l - ;; Set initial tile values
( \* o2 a/ d& C0 J; J - (set_tile_props)
2 o3 h: `% ~ u2 A4 F9 H( ~9 W- B - (set_tile_handle). X( ?1 |3 L7 Z) [' O! c3 z
- (set_tile_pt1 0)
! y1 z7 a( S; P7 ~4 [ - ;; Define action for tiles
2 n/ s2 G* L0 n n9 L1 t - (set_action_tiles)
7 q7 \6 j; t6 @2 P, r) k! z7 n - (setq dialog-state (start_dialog))8 n5 S0 W- n9 W }
- (if (= dialog-state 0)! _. U. p* j/ i; D- L7 l2 u" R
- (reset)7 m! b3 i6 W7 H( `$ C* s, k7 A
- ); |* m7 I& J$ N2 G; E% g# Z
- (if (= dialog-state 3)
$ O9 z, e6 P' f/ I/ D! h6 u1 I - (progn
1 U3 d* W1 z/ x ~, J - (modify_point)
1 p, I5 U( c, w/ [9 O: V - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
8 F7 a; V2 M2 k& T' \2 g - (ver_pt1 0)4 Y7 t {+ t# I& x
- (ddpoint)
! ]1 U+ D$ `! X - )( e; h/ R0 a$ R
- )' K, T+ [4 z8 a; i
- (if (= dialog-state 1)" u: b# G2 X3 i! J' ?% z2 ]
- (modify_point)
7 ~5 q. ^8 }7 y3 l( A - )3 P3 V6 J/ w; l* P: n( a$ C/ |' I5 b
- )
3 v3 o6 K( P- F, L/ B - ;;8 [8 T7 v6 [( E) D6 @
- ;; Modify LINE
; R) _1 K7 \/ O - ;;& S0 C' `* }, n. F9 C8 k
- (defun modify_line ()1 |' r$ k5 ]" Z Y8 i% A7 u) W
- (modify_properties)
/ T7 O" u9 U( d0 o" u& ?, l/ ~ - (setq pt1 (list x1 y1 z1))* j) C1 F) h+ }7 V6 U
- (setq pt2 (list x2 y2 z2))' N( ]) S& `5 K6 L
- (tempmod pt1 10 0)
$ E/ P4 S$ x# c" O - (tempmod pt2 11 0)9 {. V9 E$ ]. U- H2 B5 a
- (entmod elist)+ e1 U* x9 q. e# ~& O0 c; ]
- )& h! K8 ~0 W; ?( d! [; i
- (defun ddline ()
8 Z$ P( f# y3 V - (if (not (new_dialog "ddline" dcl_id)) (exit))
+ T8 \+ y7 v& ]: \8 r) ]3 \4 f! `; N9 x - ;; Set initial tile values
1 R3 k( \0 B: Y2 g - (set_tile_props)5 ~8 F& _; W6 L3 m) L2 K+ `5 U
- (set_tile_handle)
2 V) N5 D# w5 Y( A0 r - (set_tile_pt1 0)) y" C# \$ ?. T' G7 }+ h: n+ d
- (set_tile_pt2 0): E, j: e$ {; e2 N3 c" R% A
- (line_calc)
; Z% T; m8 ~7 `6 Z5 T - ;; Define action for tiles. ^8 v; _+ O, \! B/ }4 O) C
- (set_action_tiles)
. l& M& N" F8 ]7 T - (setq dialog-state (start_dialog))
. p% C. \1 `6 B( S5 i: |& z* {" Q7 B& P - (if (= dialog-state 0)4 a" N0 R n3 @: z( x j
- (reset)* O. Q7 U+ Y- f/ L$ W7 i ^ q
- )9 w0 m0 ?7 P, H; q) S' P' h9 {
- (if (= dialog-state 3)/ A' V# e X/ @, B: _
- (progn; v6 w3 F" N0 T7 C. G# X; o
- (modify_line)
! i) _/ d6 N' C. L - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))6 @& F5 U F: B2 Q; N
- (ver_pt1 0)
; ]8 i/ y0 g; d# _ - (ddline)% W5 j ^/ c- g9 o4 c( n5 G
- )
8 d0 p3 }2 Y! @/ T - )
4 L7 G* S( K; L9 [3 K) o3 |3 ~ - (if (= dialog-state 4)6 D9 q( K. N& w/ |5 n3 D6 R' m
- (progn
% l3 m& y$ b4 w& S7 A - (modify_line)$ Y g& r9 y+ a! q
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
- l- H7 w w9 a& D* k: q- C - (ver_pt2 0)" K( Y) H: X% k! F! R
- (ddline)# H' l- R3 V: a: X( @1 }6 K
- )0 R4 o }% {+ a
- )
* w7 C# B4 x4 x - (if (= dialog-state 1)! x9 v3 H( T& F; Y! N
- (modify_line)7 z/ B2 |. H m& F$ O
- )
, U, n$ T c* D4 O+ l1 i - )) i7 d* `# Q! [0 H1 W, v+ r
- ;;
8 |8 s: |5 N# v3 B- f - ;; Modify MLine
( ^6 \5 P& T7 n4 |6 Y4 k - ;;- D5 i8 b$ ~6 o2 V
- (defun modify_mline ()
% k0 [8 k, j4 C2 X% t1 R - (modify_properties)* E& _! K5 O' D- z1 {
- (entmod elist)
3 s ~; A# n2 t- I9 v$ }% X$ y( J - )
/ {( [; v, a. q - (defun ddmline ()
6 M7 H$ f; k, a0 {+ |) E$ O4 O - (if (not (new_dialog "ddmline" dcl_id)) (exit))
. k2 Z4 i/ q+ h( j& e+ x$ o5 p5 t# f - ;; Set initial tile values
" K, h2 ^6 j: U2 H" ?5 ^! [ - (set_tile_props)
7 u$ }4 O3 c/ b7 \: ] - (set_tile_handle)7 }* r/ C, I6 k9 \( Y) U& B
- ;; Set mline style text field.
& J) \- Q) A4 t! X; u/ _5 O - (set_tile "ml_style" (cdr (assoc '2 elist)))+ b" V4 }' U5 j2 s
- , M6 b0 n6 f! }9 y7 ^$ |) Z
- ;; Define action for tiles9 N4 a2 @8 M, u4 ^2 Y. y
- (set_action_tiles)0 g% y. h& j+ x; ^
- (action_tile "ml_edit" "(done_dialog 3)")
+ T8 k0 ^5 i- T - (setq dialog-state (start_dialog))
2 R( I& ?) o7 [( [ - ;; Dialog cancelled, reset to original values.
& _2 o9 @9 U1 W/ S - (if (= dialog-state 0)
6 _% i# }4 q0 e - (reset)
7 M% ]) Y$ I W4 C1 \0 I: H8 p - )& W- e7 ] Q% | g# j t* P0 q
- ;; Dialog OKed, update the mline.+ C7 e! E% X5 X8 s& n
- (if (= dialog-state 1)% h8 b* a# m, v0 {' s
- (modify_mline)! ^$ B. e$ E/ V! a- M
- )
+ f( m% z: ?. N3 m) ~ - ;; Edit Mline, call MLEDIT.. w. v; _4 _% W
- (if (= dialog-state 3)6 d& _" `- [1 F2 G
- (progn
, t9 Z: e, d5 y& b' s) R$ G - (modify_mline)
) c5 u0 B) h& m: B - (command "_mledit")
* x* ~6 B4 H/ m" J' S% m" D, s2 A - (ddmline)+ Q. P! k& y" |: D R
- ): h# ?9 ]6 w, Q# b% {* `
- )
9 \+ l5 k3 O- P' r* X6 Y - ); ?( G2 q4 J) @1 i
- ;;; R! |# E7 y. F2 a$ X% o$ H5 Y# |
- ;; Modify Xline$ T4 i! r1 @, N: B! D# a6 ~
- ;;& ^1 k8 P" A" e
- (defun modify_xline (flag)
4 {% f! E, {. `3 X! X' c; a - (modify_prop_geom)
8 B% M8 b% @/ ?. Z" g8 U! d' A: o - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))# A6 d! R; h+ O" X5 s8 g
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))1 r& z% H# A2 H& n3 A. s3 }
- ;; Update the Root point." d/ z. f6 v8 F* V" h; {$ Q
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))
b: l+ }; w: x. c: w5 @$ G - (assoc 10 elist)1 ^1 q1 |. {. P7 [; t/ o. t
- elist
% d# I( a c* f( o2 P - )
, [7 }) w/ ?' ^9 o. e, t3 P - )* J! t9 }. K0 J% [! n2 n" G. }
- ;;
( t* T- I; u# c. z0 Q+ \ - ;; Calculate new Direction Vector WCS9 E/ ?9 L* x9 v5 s. P
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
0 L i( K& M) g! ^6 c
+ m) O2 q- A3 c) Y8 T/ n- (setq temp_dir (trans xline_pt2 1 0))% g+ ]' Y* e. Q0 P- b
- (setq temp_dir_x (car temp_dir)). F0 ~2 R4 @% x% l- X& d
- (setq temp_dir_y (cadr temp_dir))
8 c# M8 e; R- Q0 H - (setq temp_dir_z (caddr temp_dir))- { W# k) g3 s. c. n# ~- D
- : p/ y4 \- ~' }6 ~. u9 ~
- (setq temp_xline_pt1 (trans xline_pt1 1 0))7 U1 h* x4 x0 k' |' U
- (setq temp_xline_x1 (car temp_xline_pt1))7 U5 E6 @( q1 @- K, \6 U8 Z' N, I* G
- (setq temp_xline_y1 (cadr temp_xline_pt1))% R& e8 T' l. n) k0 u9 \
- (setq temp_xline_z1 (caddr temp_xline_pt1))5 ?6 W' b. g4 R( ~: a
- # X5 l: n( ^6 F1 t9 Q
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
* S. V& ^7 q* s. N! Y/ s - (expt (- temp_dir_y temp_xline_y1) 2)0 o6 q! m5 a u3 y
- (expt (- temp_dir_z temp_xline_z1) 2)3 `4 N; E8 g3 ~0 D; L+ g# u1 H* j
- )))3 ^% S. f+ l3 y/ _/ r
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))& D/ L6 a& H" ^, L' P
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))3 I; j0 J9 n2 m
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom)), K" _7 ~" w. G& i( z
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
6 x U0 R. o) n - (assoc 11 elist)5 g' s) f* ? S G' R) w8 P
- elist
* k5 Z2 [: B* _0 @7 p, N - )
0 d3 j% s/ d7 _/ j2 J% V8 C# B - ) C7 c7 x Z7 t. ?+ M0 ]
- (if (= 1 flag)4 N7 G0 {0 r5 e# Z6 m- a; H8 t
- (entmod elist)' j9 c, P G z9 K6 _& `! a
- )
" i$ E2 k1 u+ T( v) @+ E% K - )
# R: q+ T+ m9 @3 Z1 a
6 }) P! f8 f* m# C8 _- (defun ddxline ()1 a: G* ~" K, U8 E, \, @8 x1 ]
- (if (= etype "XLINE")7 B- h, R% L- H
- (if (not (new_dialog "ddxline" dcl_id)) (exit)). ^& @' G2 k F( u5 _
- (if (not (new_dialog "ddray" dcl_id)) (exit))
0 Y6 b: m. @0 t% Z - )2 L" `3 g: \4 i
- ;; Set initial tile values- x0 v) Z9 r m; Z# Z9 E
- (set_tile_props)
3 T) V1 @1 Y. n% r - (set_tile_handle)
, Q$ @8 K. b; Y: g - (set_tile_xline_pt1)
, b' W* ?% S/ H8 k7 ^7 ^; c; g5 I - ;; Convert to UCS and post Direction vector.% w4 b" z3 r, \& Y% I0 G
- (set_tile_dirv)# O, P( j0 ~* S( J
- ;; Calculate second point by adding Root Point + Direction Vector.
6 F0 C; |0 b; l# _3 Z$ { - (set_tile_xline_pt2)
+ v% S) i" H* g& u* M* [ - ;; Define action for tiles
8 p8 u8 v& D- B) x, z( z - (set_action_tiles)7 Z3 ^. }0 W) H5 i0 e
- (setq dialog-state (start_dialog))6 R5 @ n7 v! s# i- Z
- (if (= dialog-state 0)
: T7 J; ^; q6 |4 X: S* V4 G - (reset)
$ `/ t7 v5 F" ?% a - )
. V4 U' d" a3 }& k" S9 M - (if (= dialog-state 3)3 W b: M, {( N8 t0 Z
- (progn
( t# \/ [ H1 M" J$ `+ V& v - (modify_xline 1)
- ?( Z) y. n/ B. P" I4 V - (while (equal xline_pt2
( ]6 A% i) P& ^* p - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
4 m8 M' K3 |9 k7 W6 b - (princ "The Root point cannot equal the Second point."); f0 X1 ^8 ~6 P* W$ L1 l8 ]" B
- )
3 G5 ~0 g3 N M4 d* s - (ver_xline_pt1)
: m: A, b4 e, Y! d; D& t - (ver_xline_pt2)
1 j' C1 `* L, e% e0 b - (princ)! r! G5 `+ w0 n* k; b- M
- (ddxline)
+ E0 p& N& \5 [. r" E5 T1 t - )6 s3 O" J( K$ M3 u3 k6 N `% f
- )
0 z+ n$ ~$ q% R" R0 Q% w4 l9 C - (if (= dialog-state 4)
* J6 s' F( n' u - (progn7 g9 X) u$ }0 F% Z7 x; Q; \
- (modify_xline 1)2 R! w2 R5 x: S6 _& G5 N
- (while (equal xline_pt14 t7 N2 r- c4 W' n* u3 V
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)+ d2 F; \9 t. E* z) Y& Z
- (princ "The Second point cannot equal the Root point.")
' @4 ^' a! Q: \4 Y2 U4 B. g - )
- Q0 q; @5 M7 X; M' W - (ver_xline_pt2)
1 T+ V, P9 Q; v% U" r - (princ)7 \3 x$ w" p2 ]- e0 i9 B, W
- (ddxline)
6 x) a1 W" G+ B5 m! X - )
- A) l' u- q V8 c7 W) M - ) ]0 [" B$ o$ m' ]. ]
- (if (= dialog-state 1)
, L& x# D7 n5 s' E9 n9 C - (modify_xline 1)2 F: s$ X; X- f. }" S
- )$ v4 W: E5 ^$ k) Z
- )
; i1 E! |1 {0 u1 t( _6 B8 v - ;;
O" ^$ ]8 i6 X: G1 D+ t - ;; Modify ELLIPSE, P+ N t$ h! }- F" j% e. n
- ;;6 d0 }2 o% w% c: C; a3 G- a! Y
- (defun modify_ellipse ()
7 o* L9 v0 H; _ - (modify_prop_geom)
8 }, `7 J# V, Z8 ~) r# r - ;; Update Ellipse Center Point value.) z" O. F- O+ h7 v. ?
- (setq pt1 (list x1 y1 z1))
5 ^ }- h1 U0 s* v% m3 W, p+ m - (tempmod pt1 10 1)
`8 I* j1 ?( m i% M" y6 q! g- v$ t - ;; Update Start Parameter value.+ b& h" I( _( _# I* p1 k/ s
- (setq y_val (sin st_ang))" S$ k6 t% u/ |
- (setq x_val (* rrat (cos st_ang)))+ T y$ A* x; u2 i0 d" v! t
- (setq stparm (atan y_val x_val))
& Q5 r$ D- l; c" j/ I. C' E0 m X8 d - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
; i& O" f" }5 |# r/ ^ - ;; Update End Parameter value. Normalize it, if it's less than
2 C' w3 A/ R. m" f - ;; the start parameter.& `: O$ t! _+ \( l5 ^
- (setq y_eval (sin end_eang))
0 ?( U% V3 o: X5 t [/ r$ J - (setq x_eval (* rrat (cos end_eang)))
, s, d' w5 t1 J - (setq endparm (atan y_eval x_eval))
; Q. C. ?6 o' U$ Q3 t - (setq diffparm (- endparm stparm))" v5 ^! H; M# l% H. @7 W+ f5 ^* ~, ^6 p
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.# c; \% X% t. m! X4 k' r
- ;; Since zero length arcs are not allowed - construct the full3 \* b% f p) S' p. ?! t( ~6 u8 p
- ;; ellipse in this case." w0 Y* N1 H' A3 i2 A* T
- (if (<= (* diffparm diffparm) 1.0e-12); f/ m7 d& u ]- I
- (setq endparm (+ stparm (* 2 pi)))9 P0 n2 S1 J0 D: I" |$ R
- )
$ w( n( Q6 T! P6 W t! p2 |$ D - (if (<= endparm stparm)
2 }# F; b" A, q j' S/ u2 _ - (setq endparm (+ endparm (* 2 pi)))
! _( @8 _$ u" v( ^ - )
. K% S# Q" p) r: S - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))1 x _2 U2 s$ v2 [3 @; m" \
- ;; Calculate the Major Axis Vector by first calculating
; a* [" l# @* v- [ - ;; a unit vector using the old Major Radius value. Then
: w5 Z$ u) D7 z- _5 r! } - ;; Multiplying that by the (possibly) new Major Radius- N! O$ d- z3 _% M& c; h2 h- x
- ;; value to get the new Major Axis Vector value.' g1 Y l/ [+ Q7 F+ p- b
- (setq unitxx (/ xx old_majrad))
# l+ y% G1 \+ ~) s7 I1 q - (setq unityy (/ yy old_majrad))! a: d1 B* j/ d6 |5 X( Z
- (setq unitzz (/ zz old_majrad))
3 Z& F) J$ t7 t3 P8 e$ o - (setq newvecxx (* unitxx majrad)): _4 [) M4 C- z
- (setq newvecyy (* unityy majrad))
4 u) {& B' j" z% z Q+ _ - (setq newveczz (* unitzz majrad))' k. l, B0 j* C b
- (setq newmajaxis (list newvecxx newvecyy newveczz))
/ w: M1 O/ e7 h- J0 F7 |. {+ K - ;; Update Major Axis Vector value N4 _" X4 M% Z
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))! M: e2 f8 l4 z0 \
- ;; Update Radius Ratio value T8 h/ F# p! O# u
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
# ~& M7 |7 C- n. {2 b" x W - (entmod elist)0 |& y$ U. m, Z& l. @$ q" H
- )
2 N, U0 ~& z4 Q - + |# z1 y. k+ q, K
- (defun ddellipse ()5 X( e! F! U$ a C3 a% y o
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))' n2 Z' l- Z! b; B
- ;; Set initial tile values* i0 K& H& g* z6 }
- (set_tile_props)) O0 g$ p, g0 f, J# J. y
- (set_tile_handle)
! Z9 @5 ]" x$ }" _ - (set_tile_pt1 1)
: {5 d3 N5 r1 J/ o) o* a& k - (ell_calc)
- _, z$ q1 j& x3 ^( N* j& B - ;; Define action for tiles4 k6 T/ x! R9 k* }3 b' n' M# J& p
- (set_action_tiles)5 |1 ^7 b8 ^, x+ N E# k
- (setq dialog-state (start_dialog))) u- D o; Q1 b. e5 F8 D+ w
- (if (= dialog-state 0)
6 |6 {& r* J& X2 c; c - (reset)
( y: S& [. q7 j9 n" i" T9 [ - )
6 T* T z3 h9 A( l - (if (= dialog-state 1)
I4 V; N3 ~4 G2 W$ E3 k* G - (modify_ellipse)/ s/ e& \- a0 S4 z9 H1 M ~
- )
N' ^9 m) s9 d! ~0 e7 k( T - (if (= dialog-state 3)
- x- v! Y! \- n8 [! u - (progn
5 e. @+ m2 w* n: b% Y9 b# B3 l - (modify_ellipse)
. b6 U( x& P8 t( [8 c4 @: A4 f - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
$ G+ }+ K* J2 A - (ver_pt1 1)
& G' b2 A' ]( J* H - (ddellipse)
) A5 F" Y* v* k8 F; E- n - )
6 p- C2 A* E$ P7 ^ - ): z4 E, B2 P, D/ A# S
- )# M' r, j7 h& W: P1 P( C# n
- ;;' d5 l! x6 S7 W1 ?0 o
- ;; Modify REGION
- F! Y( O% o! P2 a2 i - ;;
3 e, N5 Z3 a: b! a3 z - (defun modify_region ()
) L d8 H9 u5 _ M8 O - (modify_prop_geom)
0 l3 i2 y: n4 |* ^ - (entmod elist)2 F: c3 @( S! l9 \+ z, s, e2 I& ]
- )
9 a, f: _) ]4 S - % V$ I& L4 R8 b% O: _4 {; p- F
- (defun ddregion ()
! j9 `7 Y$ L. F } - (if (not (new_dialog "ddregion" dcl_id)) (exit))
3 m- Z# `* |" _9 q* @& E" w - ;; Set initial tile values _* i# V% q! `
- (set_tile_props)
6 k3 v, N. E- l% R+ R; c+ } - (set_tile_handle)
e3 X/ G7 A. B - ;; Define action for tiles5 `3 z" F: h6 ^, c
- (set_action_tiles)# r5 O" o9 T% Q& Q; v2 z% [/ s
- (setq dialog-state (start_dialog))% m. ~3 Z% h) @8 U; P- d
- (if (= dialog-state 0)
7 i- @9 A3 c, \2 A' A9 } - (reset)
5 t+ F6 h+ Q F2 c7 i - )8 y/ p* j+ s0 u: U2 h. a& x+ K5 [
- (if (= dialog-state 1)# V2 k, Y* A; j/ U: z7 B- @
- (modify_region)
- I: A6 F, o; P, j - )
! a3 \4 E7 T! C+ Q5 I# W( M - )
( q4 k" o+ f9 b - ;;" b( \( E3 i2 v( r
- ;; Modify 3DSOLID& f+ _) H1 ^4 |4 s
- ;;3 ]) _* Y; @$ d. T, a+ D1 \
- (defun modify_3dsolid ()/ I8 s" r( c. L& r# }
- (modify_prop_geom)
9 G' Q$ `& d" T' F! J - (entmod elist)6 {- m |8 R9 X" j, E* T
- )
0 J6 g [& s* Y3 V9 Z# a) T - - Z2 n4 u/ B! G& X. j |
- (defun dd3dsolid ()) W0 l$ z x2 J7 P
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
" z% g" `0 z$ D9 Y, ]4 ^ - ;; Set initial tile values* u0 v2 c2 A; z. T, B) R
- (set_tile_props)+ L! d$ o5 U+ _4 _& d3 G8 f: d
- (set_tile_handle)
" }' F* A0 a- B) L# s( [) E - ;; Define action for tiles
( Y2 Y7 H, G4 P3 @$ c - (set_action_tiles)+ [$ `; g9 O8 p6 h) S, i7 |
- (setq dialog-state (start_dialog))
, S$ Q0 I' d+ v* ?/ `! d0 W6 ^ - (if (= dialog-state 0)
/ x/ g' y! X. k: H/ [0 K - (reset)
: y1 {3 T' A* ]6 H8 d - )
) }2 ^) v6 f% ?5 ~4 _; L - (if (= dialog-state 1)$ M9 _$ N/ H* L% R9 |) f
- (modify_3dsolid)5 N! R1 ? S1 W9 ~+ P
- )
9 W# G+ [( |: n3 | - )3 G* ]: m8 \, i8 j3 E8 X6 u8 a
- ;;
) i3 _* T, A* S# F( p7 B i - ;; Modify AcDbHatch
9 v+ }4 j7 |' n6 J* h) R - ;;: r, P# H7 P( _ L F: [7 e0 x
- (defun modify_hatch ()+ C2 y5 d' ]) S# j1 z l, W- `
- (modify_prop_geom)
* N/ X5 R; v6 T$ l, m6 a - (entmod elist)
% `% b5 l1 a, r; z - )# O& i; k9 q$ l
9 U# a* o& T: D1 ?& e2 B- (defun ddnewhatch (), q- [* f) v: @2 s2 v0 V( u
- (if (equal hatch-elist nil); O3 H( M" a8 Y" P
- (setq hatch-elist old-elist)/ o* Y# h" { ^* n+ p; p; Y
- )
z3 `- U: o+ J- x! Q3 ~0 c# x
- h0 i! D0 o# O3 b2 p! Y! U7 H- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit)): R1 \( B+ `$ }3 l8 l& i
; u. A2 [- V8 r& @+ e l- T' k6 E' t# w- ;; disable the thickness tile/ Y8 f8 D3 y9 m/ @1 g4 Q
- (mode_tile "eb_thickness" 1)1 F5 |7 F8 J+ g% B$ {
- (mode_tile "e_thickness" 1)
# Y; l4 s5 \- f X' B) C8 ^
. z' _/ x" k6 i$ R+ i) |- (setq help_entry "modify_associative_hatch_dialog")- Y) w# l/ @4 m0 q& n
- (set_tile_props)
# [+ d! D( L0 @ - (set_tile_handle)
: r# M* m0 e% v1 Z, W
. U6 P2 J; u* R2 V- ;; Define action for tiles
- P# A0 E8 E4 q' j# C( S - (set_action_tiles)
( C0 O9 Z( y; e4 b - (action_tile "b_hatch" "(done_dialog 2)")
" S' b; b7 c4 J+ M0 K- r - (setq dialog-state (start_dialog))
; K! B* v. ]& X @ - (cond
& s8 x. o9 }+ a, I' S% l5 z$ G+ Q - ( (eq dialog-state 0)
( d8 B" n7 y, ]" s9 }! @ - (setq old-elist hatch-elist)3 K. |& S9 \$ }
- (setq hatch-elist nil)* e9 y" S7 w4 g, W5 z" A
- (if (= (checkforlockedlayer ename) nil)! \$ q* C2 G0 b; f. L
- (reset)
4 X" z7 f7 U+ e; L8 x. b: x% { - (progn ;;; special handling for locked layer reset) M/ U5 ~- F, K, U) i F/ N" ]
- ;; unlock the layer
3 w. m$ x7 U" V8 d& f, n - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
% G$ e# y6 I, a! S/ \+ R - (command "_.-LAYER" "_Unlock" layername "")/ z) [/ }5 C# C- v
- ;; reset modifiction
" Q' b9 }0 d) w7 K( l, g8 y - (reset)
/ O) o2 f* `) W/ W- `0 | - ;; lock the layer again$ \- o8 Y, w1 O: q ~! c
- (command "_.-LAYER" "_Lock" layername "")
# n- u4 g6 W3 D1 R - )
) d" r5 x+ G& C/ o2 Z3 v. c7 ` - ) p5 L- r0 U3 `7 l: m
- nil ;;; makes (ddnewhatch) return nil for Cancel# S2 W! u0 i4 X5 ^% H% ?5 Z2 L o
- )" ~. g9 b% Y) ~! W) U8 T5 J
- ( (eq dialog-state 1); y! _& q9 N1 j0 D' _3 H
- (setq hatch-elist nil)' l- e4 a, {. H
- (modify_hatch)
* w4 W" H1 l# P7 }# w/ z2 e3 M3 _ - T ;;; makes (ddnewhatch) return T for Ok
/ x+ H$ X1 s8 N: U - ): S, h; B* ]1 k# C* w
- ( (eq dialog-state 2); q2 R. c1 k- s
5 c3 R5 P1 o+ k" ^; u- k( w* k& k* E% M- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
~+ q+ _- w% g$ R% L8 B; U/ X - 4
/ U$ \$ k3 T/ M3 F* k" `2 s - )
- L& Z& M2 `( C* y$ N2 r# a3 l - ;;; new selected layer is on a locked layer3 J+ P& i, W9 |- D* q& E3 ?7 j
- ;;; we can simply modify the hatch properties
' [& p" p1 i5 V6 h0 ?/ ] - (modify_hatch)3 {! R: B8 M8 q8 i" u1 p
- (progn
h5 X) `( [% V* o1 Z6 Z8 b - (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
; L8 A& z/ x) t8 R) E* V# _ - 48 a0 b* o9 v" s& ^
- )
, W8 c' Y7 r5 O8 n - ;;; We changed the layer previously and now the hatch lies on a locked layer.
! p$ z0 y# x, X0 F* a - ;;; We have to unlock the layer forethat we can update the hatch properties.9 u+ U" C2 n3 e8 @( y8 f
- ;;; If we don't do that (entmod) fails to update to the new layer.% H; d# M5 A8 B9 ]+ x# H; @' F
- (progn
1 U* L4 i. Y/ H: c - (setq layername (cdr (assoc 8 (cdr elist))))
) `& T: j) h" N, C2 C+ _ - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer6 O1 u8 R1 N6 o
- (modify_hatch) ;;; update the properties S% Y0 h0 A$ g3 X# O8 t
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again6 s: J& o2 Y Z" P- p
- )
6 j9 b9 x: @/ A1 \ - ;;; All other cases we simply update the properties
/ ]: \1 f8 h+ l* J+ f5 r - (modify_hatch)7 j1 R4 [2 w. Q
- )
+ q0 K( x, L4 B2 D6 v, j - )7 u6 X1 o$ y* }* t/ d
- )
9 j/ |& H8 U) H - (if (= (checkforlockedlayer ename) nil)
- D8 W8 C( N. J! B$ s. W+ }' | - (command "_hatchedit" ename)/ I% i( w7 |1 k" R
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
* L, Z, e0 K9 l# W7 O- f8 @ - )& R _- x Z* k& H* z8 x N: Z
- (ddmodify ename)4 Q0 `& h- {/ J+ \+ F
- ). l4 x3 s% \ u) C z: e
- )8 X' k# H/ S0 n( V
- )( u+ V0 w. ^5 y1 Y9 I @- E7 S+ _
- ;;
/ u/ L( v) h \+ Y - ;; Modify BODY# X% `) o, N# y5 }
- ;;
* V: m& b* E3 {1 F! F7 f - (defun modify_body ()
& Y5 j2 r) h" p5 I0 ?3 I: | - (modify_prop_geom)' y& z6 B3 q$ ~9 z
- (entmod elist)2 A- I- h2 @6 J' V; V* n! Q6 J
- )$ ^/ c/ p( o6 h: {( B% h; y
2 f. B- v6 x; B5 W- (defun ddbody ()! T3 H4 E. b3 m$ V
- (if (not (new_dialog "ddbody" dcl_id)) (exit))3 O) N ^7 U9 d! }/ i
- ;; Set initial tile values
- `. o# K5 \0 u4 I$ z* ^5 R - (set_tile_props)
' a' R d- f0 E. u% ]3 j3 j, f - (set_tile_handle)1 k4 o/ H7 R" q1 [1 R
- ;; Define action for tiles
) `% E$ ]; I* i! m: Q - (set_action_tiles)8 C7 ~9 d5 i4 X+ k- P
- (setq dialog-state (start_dialog))
" z# S5 C. [5 S- c% F - (if (= dialog-state 0)
+ r# i: N# c1 C# s2 U& D2 Y - (reset)
; ]( C& I6 Y! J* R# _4 c$ }5 Z3 P: \( R - )
- L3 v4 f4 \* W" E9 ~ - (if (= dialog-state 1)
- v+ |! w; t8 g$ k3 n* N; S - (modify_body)
4 y6 C6 s- Q8 X0 C - )
1 Z$ ~; X" j$ r& K+ l - )
' g) I. V; p4 U) A% N" T - ;;- _& d9 @6 r6 i" j3 v: z/ }; ~
- ;; Modify CIRCLE9 r3 H' O/ S; c; s4 ?
- ;;. ?7 c3 x3 \3 m9 L0 C
- (defun modify_circle () p& H% U- |/ J3 E4 o/ q6 C% ~* Q
- (modify_properties)6 `. M" g7 Q# ~( H+ e
- (setq pt1 (list x1 y1 z1))8 G% j) Q E( O/ ?) @
- (tempmod pt1 10 1)+ H$ v5 ?) h) G. ~
- (tempmod radius 40 nil)
# `6 J2 n! q: d: r3 w - (entmod elist)
4 g' |, `5 k6 C) u2 C - )3 {" q# h" {. G" I
- 9 C5 y- J0 P, |& q, [
- (defun ddcircle ()" v& ]5 `( X+ ?* q9 O2 O
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))% v# d1 R( K* K |: b& |1 w) l
- ;; Set initial tile values
5 _# ?$ b. p$ i& ~7 _/ P+ r9 g - (set_tile_props)
7 ~: w1 W% e1 L - (set_tile_handle)
6 V9 a" G' J8 p- I: H- ^; E- t - (set_tile_pt1 1)" B* S& `7 N3 \$ G9 x; U
- (set_tile_rad)* |; G- m4 i1 `
- (cir_calc)$ `! N* a+ C: d/ Y$ c* E6 o5 c4 v. A
- ;; Define action for tiles
) W# c1 N3 e0 t3 s - (set_action_tiles)( T, _9 D0 i$ z) z4 `1 D
- (set_tile_pt1 1)" U+ P- x2 D" K' I' r& b
- (setq dialog-state (start_dialog))$ \/ R8 d# c& f* @5 y# R
- (if (= dialog-state 0)7 {) {6 ]# z! L3 q0 f3 U% [1 T7 X
- (reset)
- \9 Z- l/ _. N* [3 u - )
& x3 u$ \: V) z9 o# v - (if (= dialog-state 1)0 ]$ q' l# U% M, Z4 C' k4 V3 K4 L
- (modify_circle)
1 T4 {8 A" w* R$ p. a - )2 x3 M5 n2 D$ u+ P) P/ y% c
- (if (= dialog-state 3)& J2 E! m& `9 L
- (progn
; @3 }1 Q, J; z* F* ~; Z - (modify_circle)2 e+ k9 u+ K/ a; c5 r: i# d# o3 Z
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))! l# g" }2 N( c! ~8 m& ~+ {2 @
- (ver_pt1 1)
5 i5 {0 I: z5 w! r. ?; q7 D - (ddcircle)9 x/ F9 v% u0 T0 \, R8 w
- )
% I6 |7 i! r. \; D - )6 e8 n* T9 c3 \! W& j* M
- )1 |# m( {6 b5 ]# Z+ g
- ;;
4 [" K$ {: D& U5 i) u - ;; Modify ARC
" R$ x w0 x) }: U: i$ b$ x- j - ;;7 f1 X2 x" w* ^% Q0 [
- (defun modify_arc ()+ b0 ~' R% j" k; `/ `5 ?9 _
- (modify_properties); u8 c6 F7 b/ P: s
- (setq pt1 (list x1 y1 z1))( P6 f5 Z0 _* m$ G; {% H- ~9 q' Q
- (tempmod pt1 10 1)- n3 t6 Z! o8 q% `! s# N3 f1 w
- (tempmod radius 40 nil)
: i; x/ }' ]4 x( {1 }$ \% J9 M - (tempmod st_ang 50 nil)
6 y2 w# @4 F+ g4 _2 j# l - (tempmod end_ang 51 nil)$ L, U0 m* ^# T( ]
- (entmod elist)
: r, m- d$ \; w3 W. m$ s& U - )" J2 R; [2 \: L* W2 ^5 v
- (defun ddarc ()
E. N* E. T3 |# K - (if (not (new_dialog "ddarc" dcl_id)) (exit))
1 I* f8 H8 u& _# r2 N; A1 p - ;; Set initial tile values. v( b4 @! q k9 L2 A2 a. {3 v
- (set_tile_props)
3 B9 `* [5 R! S1 d: z. ? - (set_tile_handle)
' ~: C( X8 N3 o( M+ L - (set_tile_pt1 1); E6 ~! j5 ?2 I, K0 Z
- (set_tile_rad)
# l2 u. M: b+ U) @ - (set_tile_stang)
0 _$ s1 H/ q. [! S9 O- L; D - (set_tile_endang)
( k4 v" K% B2 Q* B- |. r - (arc_calc)
4 Q) z+ F0 b* o! m z+ P$ f - ;; Define action for tiles
p, w* n" J" n# {6 f% h4 X/ z4 e+ Z - (set_action_tiles)
! ` j0 m2 Y2 C0 `" _. a - (setq dialog-state (start_dialog))
' `) N0 p( p8 b) X# X* \# m! K - (if (= dialog-state 0)
( o" _+ y4 M) {! b( q - (reset)7 ]" ]4 f; f9 r7 [+ S" U4 Y
- )! }7 I$ U3 J; j# D& n
- (if (= dialog-state 1)
: m' y0 Q9 Z6 V3 _ - (modify_arc)
& Y e$ Z. v4 }+ I - )
4 l5 n& M7 j' w) k7 G. ?" l0 q( U - (if (= dialog-state 3)5 _& P( Z/ [" }; d, D
- (progn' k) Z7 l. H- O; X* G5 U S
- (modify_arc)
7 z* s# M- R+ s$ ` - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))! U8 q% s# r6 c" a3 Z
- (ver_pt1 1)
9 S; }, N# |4 a8 p$ C - (ddarc)' P5 c( z3 k8 q. o8 b& r
- )' Q$ L/ a7 W: g/ _4 |+ C
- )% K' [6 Y1 I" z1 @. V( [
- )6 h X' P4 |2 m# R
- ;;
; e/ Y# u: \" n! C - ;; Modify SOLID or TRACE
$ u1 g3 k+ f [9 ? - ;; Note the Z value of the object is determined by the Z value of the fourth, Z* a- B* N3 {. H! z
- ;; point - code 13. Changing the point values of a solid or trace from a UCS
* g3 k& c0 p0 M - ;; that is nonplanar to the UCS the object was created may confuse the user.
# h# X2 C! E: x* P% O# Y - (defun modify_solid (), o4 a3 h: Q. \4 a5 V
- (modify_properties)/ Q7 p# R3 d6 h2 M
- (setq pt1 (list x1 y1 z4))
2 t! Z8 S; G( E: t8 D. L - (setq pt2 (list x2 y2 z4))
" Z9 g+ }0 A2 y5 {5 i! _% H x" k - (setq pt3 (list x3 y3 z4))
! }. S' n' B5 p# j - (setq pt4 (list x4 y4 z4))$ E! W& a1 l: _. i. l/ J2 v* [
- (tempmod pt1 10 1)
5 U9 V7 c( R4 A0 }& a; ] - (tempmod pt2 11 1)
! v* n: J/ ^$ Y# y# u6 K2 b1 a - (tempmod pt3 12 1)' b5 O( j# ~ C: y( L. x9 D8 g
- (tempmod pt4 13 1)
( I' R$ o' o# h0 x/ T) f, [' b - (entmod elist)( O# c9 \7 x/ h) e5 ?
- )
1 D; \1 U+ {: w4 _; I- y
% h2 Y5 D' P# p) u% u9 O! z, X- T# Z: q& M7 S- (defun ddsolid ()
7 I! u7 z' ~, a - (if (= etype "SOLID")
2 l4 p+ g9 ?) ~ - (if (not (new_dialog "ddsolid" dcl_id)) (exit))
2 }. E6 O! k8 j2 y" }# D - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
* J/ ~" l* h- n2 L) m8 l1 Q - )$ x" r. f4 }& {- l5 {' S
- ;; Set initial tile values
% [4 d1 W& L/ r4 x0 `" c - (set_tile_props)
3 ]. z/ g2 i* h6 X8 L - (set_tile_handle); }. K# P. i8 ^" r1 r1 j$ j9 \3 l
- (set_tile_pt1 1)
: t' G* n! Z) @+ p- D+ J( H4 v - (set_tile_pt2 1)
- `0 ~, Y! Q3 W, _" P, X1 Z0 v1 J - (set_tile_pt3 1)" v" m$ j0 z: I+ t
- (set_tile_pt4 1)2 {) ?, _% v. q- S. x: X
- ;; Define action for tiles
X, i# w# @4 n7 m- Z: P. Q& V - (set_action_tiles)5 T/ L% M3 D6 v5 k
- (setq dialog-state (start_dialog))
- g ~5 I+ B+ i1 m) `9 {' \7 L, c - (if (= dialog-state 0)" V# [) \+ a. J4 N0 _2 O4 G2 T ?7 @% x
- (reset)0 ]* h. @4 M; F% U$ a
- )8 o/ r& l1 l1 C% ?
- (if (= dialog-state 1): Y0 H- } I3 Y+ I
- (modify_solid) b2 ^4 s/ |" B9 |. s5 t
- )
( z/ ~& c; F4 M( a9 S8 c - (if (= dialog-state 3)
, H0 e+ t I; k' \7 B - (progn
% O& k% q8 \! B% ?; l - (modify_solid)/ ~5 W2 B& [9 l4 C' O+ `
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
! b8 Q" {5 E% a5 ^& c) g - (ver_pt1 1)+ V6 n, }8 y1 K% b
- (ddsolid)% Q( m0 w. R( Z! F* e7 J. v% t
- )
# B0 l. J2 M K- A. V+ n" f - )
$ _4 x, o; @$ @. a - (if (= dialog-state 4)
* G+ P7 N% N$ { - (progn
% H6 ~$ ~2 X3 ]$ }! d - (modify_solid)5 N( d* h( K) q
- (entmod elist), w# r7 |+ N" M
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
) _1 ?+ |. W6 d1 L2 g( \ - (ver_pt2 1)
, z& G) I: K" E* Z! X) I( i2 a$ X& f - (ddsolid)! R$ I- O# S. k8 q" K
- )
; d( \2 U& v) K - )
5 K3 K% J5 v$ i# X v7 ^( t - (if (= dialog-state 5)
( Z6 E+ F( `9 }9 q* s8 ? - (progn! a) v c( Y& o' @
- (modify_solid)
3 [! S& i2 w+ b; L; W# Z9 d' G - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
- ?/ Z& p& P- b+ f! Q2 s - (ver_pt3 1)
0 ]2 o. M; x3 n* b - (ddsolid)
6 I& I U! e- S, E4 K" V - )5 y7 l: M# V0 ]7 w1 U6 T# w3 T4 I
- )
+ p- y2 S0 t' E4 Z: q+ m - (if (= dialog-state 6)1 _" K- U' q0 W' L- A& G
- (progn, S9 H4 e+ _% R; y
- (modify_solid)8 C6 \) N4 P+ X
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
& ~1 [' k2 ]/ T9 {0 U - (ver_pt4 1)# |/ H' P* C9 ^* x; @4 C# M* w
- (ddsolid)( [' ]* ^ n B* w4 w
- )4 W4 g3 y, z/ P/ q) E" ]9 M
- )
5 V- U$ y" ~: ?9 D- h W; m - )
2 u& C+ r* t1 W4 j" z - ;;
0 N/ ?6 w2 [% Z, L$ M - ;; Modify 3DFACE% Y2 \7 Q& t% B# g' M; A
- ;;9 f; t7 U5 w8 E) a
- ;; Check visibility of edges9 Q+ m' D- _5 T# r) G8 G
- ;;
0 A2 l0 C3 [4 P d2 \" h - (defun edgetest (/ bit1 bit2 bit3 bit4), y( b( }' G8 j8 R- ~
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
$ l- O8 p2 \1 s/ x# F" s( x7 \$ d- _ - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))/ [; ]$ B0 y5 U1 C2 h
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4)), d0 G9 |# `* H. l% W7 j
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))& o; K5 {4 u: v' C$ e
- (+ bit1 bit2 bit3 bit4)) C$ H. }/ L, ]3 s% \) _+ H
- ), \ N+ B% Z0 y9 _. w+ \' i
7 k9 {% m$ }0 g- E! j- (defun modify_3dface ()4 p# ?& o9 R" K: S* h$ r& i# b
- (modify_properties)
9 g; D8 H& {! P0 S) `# x3 G - (setq pt1 (list x1 y1 z1))
: n/ J" N5 k4 j - (setq pt2 (list x2 y2 z2))
! \1 `6 g6 q8 }( t2 Q- d! {6 E - (setq pt3 (list x3 y3 z3))
/ s9 [& U* i& P9 `. q# ~/ J* g - (setq pt4 (list x4 y4 z4))
1 |6 Q F0 H, I - (tempmod pt1 10 0): k5 A, x7 h: n& Z6 t6 }( p
- (tempmod pt2 11 0)+ L$ O, M8 @; i3 ^
- (tempmod pt3 12 0)8 A. |+ q$ Y7 v) ^+ Y
- (tempmod pt4 13 0)8 C8 j: J4 B. ~7 e2 P# C
- (tempmod (edgetest) 70 nil)( R; R* `; `7 ]5 i, ` b" E5 {
- (entmod elist)
1 Y) f; x7 I3 @1 _1 C - )3 o- J% y- g( F" a8 ^7 O+ g
+ v' h8 |" m8 ^5 ^5 f0 d- (defun dd3dface ()
% h, L$ y3 q) |/ R7 F9 Q - (if (not (new_dialog "dd3dface" dcl_id)) (exit))
8 a4 L" k8 @6 U G - (set_tile_props)" T& _, j3 N# z! M- x# u
- (set_tile_handle); d; y+ L! |' G m( o' n ~* \+ c
- (set_tile_pt1 0)% M- m( E" \7 R V6 L+ z& _* n2 k
- (set_tile_pt2 0)
6 H4 w5 V6 }+ y* H( s8 s9 _ \ - (set_tile_pt3 0)
4 h* }; S9 e1 o& {: f - (set_tile_pt4 0)6 V: t' J/ G1 l; }. n
- (set_tile_edges)
c- z0 f2 u* \1 b [ Y - ;; Define action for tiles
3 S5 k5 Q4 @3 t( ]8 [ - (set_action_tiles)
% u$ A9 R& Z9 j3 g - (setq dialog-state (start_dialog))
) o/ s3 p3 q+ w- L: V - (if (= dialog-state 0)
% `. |% ~7 i m2 K! l9 t b: K - (reset)
\, u- r$ K9 y7 E. i3 @ - )
/ K, Z( N/ n8 b" N ]8 W - (if (= dialog-state 1)
$ V4 w8 t9 _+ U0 i- N" f/ q; y& g - (modify_3dface)
- O' ~" v( J2 B7 x( j: S - ): p9 @" f( p8 Z! [
- (if (= dialog-state 3)
, U7 a/ `0 d; U/ F- }5 W0 X - (progn# Y, K/ x5 b8 y) ^ b
- (modify_3dface)
# F+ G, `3 Y" ]3 Y( o - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
+ Z: @% J4 e( f% Z - (ver_pt1 0)
S1 p! [& d& q7 y3 j7 T+ K Y( j - (dd3dface)
" F% ?3 w; D% G5 N - )0 G/ r: f: S( _
- )) {: ]( A/ j7 G5 {/ E
- (if (= dialog-state 4)
- i- B4 i6 e( F9 {* m4 n - (progn
8 [$ B. w' d2 N, X - (modify_3dface)
9 L0 S2 w7 d" t1 a# a. J7 ^1 p - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))( M( r9 t. r* C& v' k
- (ver_pt2 0)
8 C5 p5 M) @) W6 I6 r: _ - (dd3dface)+ Y/ W+ e1 r6 H8 K- C0 @
- )
: I0 X" i2 W3 X9 `& Y/ R - )- L5 j4 J/ k' o
- (if (= dialog-state 5)9 W2 w% G! d$ u* X- k
- (progn. i4 |# `9 p6 E W" Z5 ]9 J
- (modify_3dface)/ @, \! H6 [$ @& S
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
3 Q1 p! k% C& m+ N" \, ~ - (ver_pt3 0)9 X/ g- ^* f% T/ Z7 F2 i
- (dd3dface)
, z: J1 C( X: w$ [( {7 l1 J - )
/ B* o3 r0 z- Y' ~ - )
$ _! s3 d% h3 j( ? - (if (= dialog-state 6)+ M% V9 w1 m% m J
- (progn; A1 |2 Y# [ i' g+ W
- (modify_3dface)
5 l% N; G, w3 y: _7 v - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
$ o+ n0 G2 o3 w8 } - (ver_pt4 0)7 }+ V" r! d5 F+ W
- (dd3dface)
+ _+ t5 [; t+ Q- Y - ) }$ v1 N) q7 q1 e- M- t
- )( y; E; J$ W" j
- )
1 g1 C4 r3 Q0 {2 K' U7 K
' S5 X; p8 o/ p" B- ;;
5 s9 K% X0 h$ e1 h - ;; Image functions1 k$ ?6 g4 B: ?- G0 X
- ;;
2 t+ K, y; P3 V - (defun image_scale (/ upixel en n userscale temp)" z( F# t0 {; c2 |) |/ d
- ;; Calculate the size of an image pixel in AutoCAD units
& G7 F. C7 y8 a' u - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
0 Q/ p) c' S/ X3 q; @, r$ i" Y) U - 1 N% V: E# q2 L! U: B h$ h) p6 Q
- ;; Retrieve the user scale
. Q. v9 L$ u/ R( y H - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
3 O1 W1 h; K' S5 T( r' B3 v, q1 }, b
& c' m- e2 L. e- ;; Next, extract the image units and pixel resolution+ X$ M' c; i5 l5 [4 F# T
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
* T; e, E! a6 \0 _1 ? - (setq image:scale (* (cadr (assoc 13 elist)) upixel))
t$ X2 @# [3 | - (progn3 E+ E V# V, P+ k! z. E$ |
- ;; Convert the user scale to the proper word4 c4 w0 X" ^! F9 ~7 H
- (setq n (cdr (assoc 72 en)))
& U1 d# B: x1 \" c0 }- l8 | - (setq temp (getvar "LUNITS"))
9 t9 f8 d2 i" s; v+ G0 f9 t1 m - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))& r, y% s, K c
- (if (= n 1) (setq userscale "Millimeter"))
% B. a* B0 v" m- q - (if (= n 2) (setq userscale "Centimeter"))
2 g7 V" F1 { ]! Z5 V) ] - (if (= n 3) (setq userscale "Meter"))$ D) @/ l+ [% o6 @/ m# a, g
- (if (= n 4) (setq userscale "Kilometer"))5 T: G) J# ^4 W1 W$ v' U1 P: s' K4 G
- (if (= n 5) (setq userscale "Inch"))' P9 V7 i' r% R
- (if (= n 6) (setq userscale "Foot"))
+ h5 H! a) X" f$ y0 {# o - (if (= n 7) (setq userscale "Yard"))
* `4 @+ J' K8 k5 s - (if (= n 8) (setq userscale "Mile"))
& G p0 h N' }( ~" ~ - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
0 ?5 t U6 G# a& R( {/ W I - )7 v4 s, O" f6 l6 i2 [( o
- )0 ?$ I; ]4 i, ?1 a0 @
- )
; O, `2 r8 n6 e1 |+ ? - ! ]1 W, S) y# H* o1 w, T/ b
- ;;
% B1 r8 n/ C& J/ { - ;; Scale factors for block insertions
2 p# c9 c* W+ x7 } - ;;' P/ M' m8 b6 L: N% W8 }0 n4 i; _
- (defun image_set_tile_scale (/ temp)2 M: z7 `# s7 p. a6 o
- (setq temp (getvar "LUNITS"))
- F/ B6 ^, w+ u& I6 C$ H" |) E8 Y8 X* T - (setvar "LUNITS" 2); p- U0 u. Q" O' r% S
- (set_tile "xscale" (ai_rtos (* image:scale image:mult))): q) f. [/ G( T6 u5 L
- (set_tile "wid" (ai_rtos (* image:width image:mult)))- D6 e% R; T c6 ~1 T6 ?
- (set_tile "hght" (ai_rtos (* image:height image:mult))) j3 o& ~7 M3 d0 M+ A+ J
- (setvar "LUNITS" temp)
8 b5 E. L& e8 W4 T+ A, ~ - )# g0 p% H- ?8 C
9 l4 y4 A0 k7 q( x- ;;
$ N9 s1 Q8 S- X+ F& T. f. @7 ]- p0 W! ? - ;; Set the scale, width and height values appropriately.: ~, X& i* K! g
- ;;# d8 A' A. S! S' z2 T$ ?
- (defun image_update (field value / orig_value new_value mult)) ^! N4 P9 E. H" a7 y9 {
- (if (= field "xscale")
4 n1 i& G$ p2 a. W - (setq orig_value image:scale)9 C5 k( e6 A3 S
- )
3 Y7 V+ Y- |$ @! b - (if (= field "wid")
+ u7 ~( J. P5 A4 ? a/ P - (setq orig_value image:width)
) m5 A/ ` E( r8 J5 A) d - )8 Z! i& }# f8 d+ l2 T# G& z
- (if (= field "hght")$ g9 P# M# W& v' ]6 q G9 l* \* y$ F2 J
- (setq orig_value image:height)( U& C$ Y, J# B% d
- )
2 R+ a( L3 U- @ - (setq new_value (verify_d field value (* image:mult orig_value))) w- J" b$ O; l) g
- (if (/= new_value old_value)& y$ U2 x4 R0 l4 H9 W1 d& q
- ;; Make sure the user has entered a sufficiently large value
& d! K- r, `$ Q; k - (if new_value* g! H$ T' b3 z, r s
- (progn& C* u% c2 q" B7 g5 }
- (if (< new_value 1e-8)5 A( p; h/ W/ a! ]7 J
- (setq mult image:mult)1 S1 P& \1 N: ^% F; |; Y3 r! r
- (setq mult (/ new_value orig_value))
; e( |( ~! r; N# U' P - )/ H% E" y4 F$ Z1 d5 F) U. f" D
- (setq image:mult mult)
! T' d E. m) T/ e! Z - (image_set_tile_scale)
" M; b( A& n# A i - )
; m% r6 p( ]2 | - )
" ~. H2 F: t6 v - )! @, y6 r1 Y5 p, |6 Q
- )
% W8 m6 Q. M4 C8 P8 o9 H! t
" P8 p3 c) ^) c+ V% }# X- (defun image_disp_opt (bit)
* s/ ~7 t! a7 T& I; O) f l - (setq image:options (Boole 6 image:options bit))1 q* G3 v; X1 j2 |8 p, \
- )- h' v5 {) O2 z% W9 d8 W
5 g+ t6 }0 L: ]& G! d- (defun image_modify ()9 z5 J6 h* f; m4 F" @. |( Y
- (modify_properties); l0 e) O3 q6 o" s/ i$ ~2 z
- (setq pt1 (list x1 y1 z1))
( s* X( y! I/ G- z. R; v - (tempmod pt1 10 0)
: w% G6 j- H, H# W! w - (entmod elist)
: t% i$ p# c5 h5 t6 I# P - )5 O! I2 O7 @3 F- }8 ?: Y
}% L3 ^# J8 E$ Z: Z8 }0 O* V% B/ @* Q- (defun image_clean_variables ()
) H, ^+ c E6 ?2 E5 n - ;; Clean up global variables used here8 ^$ ?* L( e0 U( D( v& I
- (setq image:scale nil)
& K5 M0 f! u% n" Q# Q: i - (setq image:angle nil)
3 m) e6 |9 C5 w e O - (setq image:width nil)
8 g. `+ t% B. ^4 O1 I - (setq image:height nil); t6 ?+ `2 D' D7 ~0 {# c) b
- (setq image:options nil)
" `" @5 C: u( m! Y& m/ } - (setq image:oname nil)6 _2 z3 P: H% P2 |0 ?8 Y/ H
- (setq image:olist nil)
% |7 q& L$ K) z2 i( R# [ - (setq image:mult nil)
$ ~* U/ M0 v+ Y' Y - (setq st_ang nil)7 E& O: e7 B0 w# p) u9 w. k1 z) C5 E
- )7 Q4 {5 |, |) D" {' d3 s
3 j' v3 s' H2 ~& i$ l' A- (defun image_scale_vector (v1 value)( E- T0 H4 C" z7 Y" \
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))/ K2 @" Y+ n# n# M
- )4 I' J; X; ^- J8 Y6 B4 I* G
1 m2 b+ `0 Z& H# i. i- (defun image_cross_product (v1 v2 / vx vy vz)
2 e" f2 e( F" ^8 K9 z - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
% I7 {7 [* n2 e" ~ - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))' W5 C- {) f2 ?! ^
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))! O5 c8 J$ N4 T
- (list vx vy vz)
9 G3 f5 O: h; r$ T5 I2 S - )
$ q- w* b+ F) u2 O - T" l( N4 I( Z1 |+ q. d% B9 e3 |3 f
- (defun image_dot_product (v1 v2)% S6 i0 u$ p" b! h! j1 I
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))8 W1 W4 M9 M; e; a
- )5 m* l! |- l7 U' U& H5 W
- ?& L% `5 `5 j$ Z
- (defun image_add_vector (v1 v2)
7 S" ]8 J/ X* P( A3 v% q - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
' \8 q* c; f( g' R( G* C' _( Q - )
3 [! P) o. g0 K% X# i$ T2 h - ; t+ K2 `/ e; g. T
- (defun image_subtract_vector (v1 v2)& A6 n- `4 z9 C. `' V p( k9 y
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))3 J$ U1 i, S! a3 A- w/ g& p
- )6 o5 i6 h# O0 n! u/ E$ u
- ' B5 \0 |! W. y/ l8 v
- (defun image_normalize_vector (v1)! p& k( l( _( @
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))6 Q! }0 Q9 d$ C7 e- \
- ), R- \& o7 l4 H/ o
- * K8 e e* f% `8 c* }! t
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)4 ]4 d b. f6 ~+ l5 n+ }3 C
- ;; Normalize the axis a, W, b o2 e( b# q
- (setq axis (image_normalize_vector axis))
0 `6 t/ X7 y3 Q6 K) {6 k- L' A - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))$ K' f: k* O' [" l! n
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
, w' n& _* L4 P% G6 J! m - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))9 a/ ?4 e1 t5 p0 T) P4 ~+ s' L
- (setq in_rot_plane
# P) ^+ y+ G* i- ]! B0 H - (image_add_vector+ K( D# Y) w0 [! l+ ?
- (image_scale_vector axis_x_in_rot_plane (cos angle))
% [3 ^! t: a* ]3 q8 z6 d4 d$ I - (image_scale_vector axis_y_in_rot_plane (sin angle))
C: o8 M6 J i" u. a$ F - )8 C" `4 }" @1 t7 Q2 A
- )9 w, i' w' B3 P* j2 U7 r8 j
- (image_add_vector along_axis in_rot_plane)
) l- G0 r7 a9 j1 U. T. r8 a( b - ); u% B% L/ ~0 H8 J
4 b5 ~% C+ l. Q; n; u/ \- ;;
5 C& q) C; {" b- e - ;; Calculate current rotation angle if appropriate.0 s. B" k. N; E' d& _; r# d( x
- ;; If not, grey out the rotation field.
2 Q! N; i: k& ~* ^8 _- Q* N: o. C+ D - ;;
j/ {: t7 {- L) p, C& ]* S) _ - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)2 Z& \$ P. M- {( |0 @
- ;; Determine if image normal is codirectional with& |9 m) D' L/ }; l/ }
- ;; the current UCS Z-vector.1 m* D; c" _$ I# R: ~
- ;;
1 s* C7 U1 P0 M& F. c. h0 Y2 M7 k - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
' A3 k1 ?7 E: }, \. D - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))' }8 a. F, Y" F8 T; B7 J4 h5 a8 P
- (setq zlength (* (last normal) (last normal)))
: J" q7 T# m, f' h - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
0 f* _/ ^/ I0 w; H" `+ V U6 x - ;;2 v4 _, L' E: W- f8 |9 ]" l1 `
- ;; cos(.0001)^2
: m8 {1 w/ H. N5 `5 k6 l - ;; Tolerance = --------------
* @% v- q+ r2 R - ;; sin(.0001)^2
' h8 v H) j4 N7 s" D9 w. f9 g - ;;6 G- S& K6 a# Z
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
; z4 L* @3 B0 b4 R3 P - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
/ c8 k3 C- i, b - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
) x/ }) C( d$ M; R - (progn% x, R1 U O: A o7 d: s
- (mode_tile "st_ang" 1)
4 D2 O7 F7 i3 D+ ?0 e! Z, H- T$ i - (setq image:angle 0)) u7 B. _0 ?$ o+ j& y5 s; P1 B
- )' `/ W; r2 H+ R9 n5 J8 ?
- )
; N0 a+ }' @! z2 w B6 y1 m6 e - )3 m' M& v8 l6 N/ c" w q
- 3 M. O$ {9 ~9 {% f# T
- ;;
! x0 S8 N$ Y* y - ;; Modify Image
$ B- L! C- k& _; x - ;;. E6 L$ h" e$ @5 x# W: z
- (defun modify_image (/ u_vector v_vector z_vector)+ I! }$ L: I. f s- s
- (modify_properties)4 z, T! F9 \( ^% `' {
- (setq pt1 (list x1 y1 z1))1 J* @4 T1 |$ C& B+ f
- (tempmod pt1 10 0)
/ d; f+ h) V0 B+ c# Q+ O2 A - ;; Make display option changes to image0 J; j' W$ b- T* Q6 J" r$ u
- (emod image:options 70)8 C; B, o9 H6 m' S# m, S
- ;; Get the u and v vectors
% h: V9 `9 O$ o, }$ ` - (setq u_vector (cdr (assoc 11 elist)))" m1 p' y! d+ u! _$ O
- (setq v_vector (cdr (assoc 12 elist)))& \4 Y. _4 g# u9 b
- 3 ^3 B8 ?+ a0 ~& S7 j& k* @5 X" ?
- ;; Make scale changes to the vectors6 f: `4 R- B+ H% B: k" M( d6 c
- (if (/= image:mult 1)
6 ^. M) `0 j" L$ R7 l1 P - (progn
" T9 \8 Z3 V9 t2 ~- v" f* S2 i- ~& l0 r - (setq u_vector (image_scale_vector u_vector image:mult))
, }: Y/ i5 ~* t" z) Q- O* w# M - (setq v_vector (image_scale_vector v_vector image:mult))3 a' m1 g# S5 e8 g$ ]' T
- )8 d& v- t+ I& a5 ~- I
- )
: @9 H8 @+ y2 G& N - ;; Rotate the vectors7 A \7 A6 z- Q9 a- k1 Q& E
- (setq st_ang (- st_ang image:angle)) F( t8 R/ U- h
- (if (/= st_ang 0)
* w( I1 h T+ R0 f7 U - (progn4 i6 d; i9 O; c# K* a
- (setq z_vector
& e) F. P' S- f4 O - (image_cross_product- n; [. o# h# c
- (image_normalize_vector u_vector)
: i( w7 e! G9 X. [' N! [ - (image_normalize_vector v_vector)' O+ E$ t% O" J- [, O) n Y* K! M
- )
) Y# v, j! R% U: e - ); I" h1 l/ I& c& N
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))% s& d2 N) f3 \: A
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
1 Y! T1 ?' Y6 O - )& O* h/ Q H( U7 n
- )
! S4 ?* { T4 u$ F$ x F3 l' @ A - (emod u_vector 11)& t+ ?" o0 M, G+ t8 K5 D# o
- (emod v_vector 12)
, `& w4 Q' t9 x - (entmod elist)6 i4 E8 w# f$ E
- )
' r, s' K" k; R( `6 I - . \+ N& K% _/ I6 o0 o. p
- ;;
1 H$ l- \% [1 x( ~( Q - ;; Run imageadjust on given entity, working around possible8 B% t% v$ v0 D. M5 g1 q
- ;; re-entrancy problems9 G, d! W" w% ~
- ;;
- t5 x) Y0 J6 } - (defun image_adjust (ename)" j/ N8 a1 U. z9 d# G+ _
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...: |7 w2 F( v; v; a4 p# l9 }
- (imageadjust ename): F$ M5 d* F2 w. e3 u
- )1 |* O# a+ m2 k, C$ l+ r
- d) K& O: A9 D: [
- (defun ddimage ()
/ J" O9 R c N% o# c - (if (not (new_dialog "ddimage" dcl_id)) (exit))* E2 Y% L; b4 J! O1 e/ b1 s9 l# C
- ; R! r2 j: t8 W$ F+ k9 \- x
- ;; Grey out the thickness field.
$ Q% R: E6 w, \$ ^2 a d - (mode_tile "b_thickness" 1)
; I) p+ A4 T8 l# k- ` - (mode_tile "eb_thickness" 1)
( @! U8 C$ J& o$ _ - X9 L5 C& d9 a* [# G& O% f$ e
- ;; Get the associated def object.
, i) d# X0 Q( u2 ]0 H- K - (setq image:oname (cdr (assoc 340 elist)))7 }" b. k; D5 u# y0 }
- (setq image:olist (entget image:oname)); c) J0 o/ ^, O1 R5 [( X
* B: |+ O" r; K3 x* Z" S* _3 L- ;; Set initial tile values
7 C) Z( e- |# P/ n) w - (set_tile_props)
" b. P. c% P& A, _; i8 D n8 f - (set_tile_handle)
& l( l/ H$ i5 ?- d$ n% a3 l - (set_tile_pt1 0). _1 e) w" e- h) m% M
- (setq image:scale (image_scale))+ i) G2 v4 b# y9 k
- (setq st_ang (image_rotation))
6 |) R0 e3 @( M4 v" U8 |1 h9 a) f - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
/ q* k( d, i, B& `2 J - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))) J* x8 f. c3 m( H$ n4 W0 e: F9 z
- (setq image:options (cdr (assoc 70 elist)))
' |+ ^) R$ Y2 v' S8 c" q - 6 V `" |7 m& \/ n6 ?
- ;; Record the last multiplier for use in image_update function8 K# m4 k# c0 z( L) I& P
- (setq image:mult 1)
; k u" k4 k. W7 q/ k
% d9 S: ]! [( X2 k* T8 z3 r+ l- ;; Retrieve the image name9 i+ O1 h1 Q1 p/ ?+ C- C$ N8 S
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
! Z; `4 e; N0 s/ F0 B |3 b - (setq flag 0)
* z5 q8 B2 B2 W# s( \! r3 | - (foreach n fn
- B; n6 o+ L& h - (if (= flag 1)
4 B* } M2 D& V3 w* I - (progn
, X' b9 d. o8 P Y0 d1 K2 O - ;; Display the image name
0 m, ]* g' U: `- T - (set_tile "image_name" (cdr n))& x* Q+ }& @$ p
- (setq flag 2)$ Q6 {3 n' e" o
- ); h8 f6 Y) A/ L: q# ^7 l
- )
, _; m' \ N+ a# T4 k* s4 S. J - (if (= flag 0). o! G+ R3 l. g1 G+ _
- (if (equal (cdr n) image:oname) (setq flag 1))
+ }3 W/ Y& s% Z: `) V - )
* F8 z4 r6 x; @ - ): f& ]; V5 Z6 z+ i4 W5 X
# l% C" h! ^. p1 b( \ F- (set_tile "image_path" (cdr (assoc 1 image:olist))): x z+ v* n: @4 Q0 R1 h
- (set_tile "st_ang" (ai_angtos image:angle))& \2 b' v* j; W( h( u2 V: ^
- (image_set_tile_scale)
$ A9 P8 O1 n6 c9 B- C3 y - 9 A9 }/ I; X `4 V) ^2 D/ N3 ?
- ;; Check the appropriate boxes; `5 e- F- |* |+ H5 D3 }- ~* }. ]
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
5 y7 G3 e. f- n4 A0 _ - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
! v3 d0 H9 v7 C2 u" Z6 F - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
1 r+ K9 L4 ^. M" |& i1 c - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))2 W; c" J3 p4 Z) H
- " L$ d6 O) {1 s' S' N
- ;; Define action for tiles, _; z9 Z6 a% Z% L8 A0 y
- (set_action_tiles)7 x) M0 `1 @6 C1 J
- (action_tile "xscale" "(image_update \"xscale\" $value)")
- [7 f2 R7 g: @ - (action_tile "st_ang" "(ver_ang1 $value)")
: D8 V- m- R0 s( W, I' n3 M - (action_tile "wid" "(image_update \"wid\" $value)")
2 P8 N$ y, a5 k: r3 H% x - (action_tile "hght" "(image_update \"hght\" $value)")( R Q2 I' S7 L# v3 x! q5 F; D7 D
- (action_tile "image_show" "(image_disp_opt 1)")
- q( |: }" D+ {' h% o$ F+ H0 x - (action_tile "image_non_ortho" "(image_disp_opt 2)"), r% U# }6 Y% p, s1 Y: r" o
- (action_tile "image_clipped" "(image_disp_opt 4)")* j# u# K0 q. u1 v: H, M7 m7 W" y
- (action_tile "image_transparency" "(image_disp_opt 8)")7 R y9 i5 u8 C7 ]. n. q
- (action_tile "image_adjust" "(done_dialog 4)"), l' J0 m0 D6 d7 A# u6 A) g
8 t/ z! j1 N3 p7 ?4 v: r/ O- (setq dialog-state (start_dialog))( I( M+ v5 c6 g
- (if (= dialog-state 0)
, j3 o, Y9 t! M, {- T1 c - (progn# p6 [2 k+ M( t0 @
- (reset)8 U. q: K6 {4 e5 J3 p
- (image_clean_variables)4 H$ L+ g6 V1 A0 j) [. |
- )
+ W/ _7 A# h7 i$ T7 ]' T - )6 u* H7 {0 o7 @+ u
- (if (= dialog-state 1)- @8 F; H3 Q! M8 G! z" i' O+ p9 F
- (progn( j+ B* [5 r% _4 W; y
- (modify_image)% L8 b# d* L! ?
- (image_clean_variables)
5 s8 }# k4 n+ V) W, O6 G4 G - )
% w* M7 [' j/ k' M: N - )
3 d2 \4 A; |5 J - (if (= dialog-state 3)/ s9 u8 A8 u) J5 P! D
- (progn! x3 ]* p; o; o7 A. t. B- Y
- (modify_image)( u% b8 Q8 b X# L
- (image_clean_variables)7 e+ L$ o; Z+ i0 b
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))1 a X! Q0 E, o8 z/ m8 V$ E
- (ver_pt1 0)* {1 T8 f- v' P9 o a
- (ddimage)
: _9 `2 C2 o) Q1 F7 v& t# r - )+ E% |1 `3 _, I5 x7 j+ G& W
- )* j, h2 x* S3 y( d: F5 i6 G1 J2 M
- (if (= dialog-state 4)" q9 W9 y7 t! S, z! B
- (progn
; W, I. G& Q9 X1 ~; o3 N - (modify_image)4 }2 h X& S8 ^: {& U2 s7 |
- (image_adjust ename)1 i5 u+ n5 S" V: Z
- (setq elist (entget ename))( ]' h N/ O" v t7 ^' n
- (ddimage)0 n; H* T9 v$ o& q" h
- )' m$ ? _5 Z. V3 A! X/ T- E v
- )& Y( H, s; `2 N' G) z+ F
- )& Q4 p. a* F/ C4 r
- ( [' h/ ]1 k9 }6 {
- ;;
6 b0 t* b/ p1 r" w: P - ;; Modify BLOCK (and its Attributes, if any)
" f! o( @0 G; s+ { - ;;
0 c. H0 }$ W) e' k - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
/ |9 |) M7 N' z$ v- N - new_wid old_wid old_rot scaling old_scale6 ^; ]' E+ I- A
- xdelta ydelta zdelta xbase ybase zbase ipos)
, k. a5 P a+ z - (modify_properties)
# R5 R) a1 v o+ }; D* M& t) J, j
4 k' f5 O, d6 r1 B9 T/ i- ;; First, translate and scale the Attributes, if there are any.
" H, s+ M( B: d/ G* _* ^4 w! p3 x - (setq old_rot (cdr (assoc 50 elist))
& Y0 `, x( F, U" R; r$ r3 j m - old_scale (list (cdr (assoc 41 elist))% v) U, b* O( K. G+ _ A
- (cdr (assoc 42 elist))
3 u2 p0 I: A3 w+ c - (cdr (assoc 43 elist))
% Q3 k" U/ c, G- e9 l7 u! @: ^6 J( o" Y - ) X6 L. e- c- B$ I7 |$ o9 ?
- scaling (or (/= xscale (car old_scale))
, p: C) I- Z& {1 r0 G( B- j4 R+ i - (/= yscale (cadr old_scale)) ]. q; U) D% r* z: ^
- (/= zscale (caddr old_scale)): d! c% d; j f( `) Z7 @/ r
- )
0 \4 H# P9 G+ l; S: A# q7 k& V - attr nil ; No Attributes modified yet
; I7 J4 q6 S [0 U! e/ c - )
- [# f5 {. }/ ~# K* @ - (if scaling+ ?0 {8 U) x# H, `$ ` [9 v5 Z
- (progn, B7 r9 g% G% {; i2 Y' h- l
- (setq xdelta (/ xscale (car old_scale))
. v/ a0 ^+ b1 D$ T/ O0 ^ - ydelta (/ yscale (cadr old_scale))
6 h8 Q y- O/ M0 j" _6 |6 e - zdelta (/ zscale (caddr old_scale))
0 j3 ^( d* a9 Q% \5 S0 W! X0 { - ipos (cdr (assoc 10 elist))9 R5 S+ U0 _( D) y2 s
- xbase (car ipos)
+ r0 o E- [2 G/ a - ybase (cadr ipos)
* c7 \1 d$ {- {4 q. Z' X$ o; ~/ g9 l - zbase (caddr ipos)) e! b8 H7 f; n: Y: H( n
- en2 (entnext ename) ; First Attribute
* H: b& x3 v3 }& a4 J5 J6 e) h - )% r+ t# z+ P% J ?8 J' ~
- ; x H* n y g2 L O' S9 e
- ; If the Block is rotated, temporarily un-rotate it, along5 {5 R' y- F7 z! y7 R7 R2 m
- ; with all its Attributes, so the scaling/translation of the1 E! |4 N/ }3 y/ q8 o" S- o
- ; Attributes won't have to take the Block rotation into account.. f- _. H3 H9 j* o5 `. e" ?: K ^' W
- (if (/= old_rot 0.0)7 Q- X B* {% C. [: l- F, A; a
- (progn* o( s) n8 i) U: e
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
$ F2 U( n2 Z! X' ]7 o: _ - (setq old_rot 0.0
; c3 v& x k; k) G: v% f# E - elist (subst (cons 50 0.0) (assoc 50 elist) elist)% E3 p B. ]( j
- )1 n3 p, J8 o, T. x# n
- )/ X$ l) Q% r! r& @/ |
- )
6 K: Z) F# O) J' [
1 b# @1 K2 z7 r( r0 r+ \+ h- (while en2
0 M/ x' r; Z6 `7 h' M1 L% b - (setq el (entget en2))# D- r$ W* \* Z5 B4 i- ?
- (if (= (cdr (assoc 0 el)) "ATTRIB")
: o3 p7 E2 x! g* f# u# I - (progn
, f* n1 `! Z M9 B6 m - (setq old_hgt (cdr (assoc 40 el)) ; Height* M. l+ J1 ^8 f a
- old_wid (cdr (assoc 41 el)) ; Width-factor7 e( C% a- H& [, L( t
- oldp1 (cdr (assoc 10 el)) ; Generation start point
, t, b" U. t! {6 q, } - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt, c$ Y) \& e, @5 p" [& F
- ha (cdr (assoc 72 el)) ; Horizontal alignment
, l) t& s9 m9 T* h4 x3 C - va (cdr (assoc 74 el)) ; Vertical alignment
: `7 k9 i, L* f. T - , J* k1 v Y1 ]5 {
- ; Translate gen. start point! O7 F% B( e7 R/ J7 H/ A1 y. o
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
( V7 p5 _9 \; v8 o4 W7 R - (+ ybase (* ydelta (- (cadr oldp1) ybase)))6 R/ _* O U# X! z% U) K# M- `7 X
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))- L I8 V% K7 |8 j/ M! ?
- )
" |) P- J6 }, r& C. S# B - el (subst (cons 10 p1) (assoc 10 el) el); p# i; x/ b# B+ [
- )2 s4 ^* Y+ f0 S- P
8 K% @5 _8 v$ y. ]7 e& M- ; Translate alignment pt similarly, if present and applicable
' ]: S2 M9 v, U* G3 { - (if (and oldp2 (or (/= ha 0)
9 j5 z+ l9 E# T - (/= va 0)
6 l4 F- J _2 Q$ S; }" q% r6 Q - )# ~+ r8 N; P3 @. h3 B* X" L
- )
8 Y! s8 i7 A, b0 T/ l$ e& G - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase))): h% Z1 r6 \. J, j. Q
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))
7 w, l& n- ~; ^' G) y$ x, V - (+ zbase (* zdelta (- (caddr oldp2) zbase)))
+ h: \0 c5 m7 y; Z0 \ - )5 W; r% L& z% Y U9 O* K( k5 x
- el (subst (cons 11 p2) (assoc 11 el) el)
* x% l% Z2 W% z5 D9 v/ L# o, { - )# K: g8 B0 L$ M3 N, R$ O
- )+ |# y: }. G$ X
7 I0 V/ J7 j- q6 C% _- ; Each Attribute's height and width-factor were computed" p# M) L* r; t: h/ f4 T; [
- ; based on the Block's scale factors. Adjust them now," n1 {- B2 y- g7 x% C. A
- ; by first reducing to values for 1x1 scale...
1 ^) d% D8 W8 X/ @ - (setq new_hgt (/ old_hgt (cadr old_scale))* x% b P7 \. e+ ^! U2 e5 a2 J" \
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
7 x1 ]) ]+ l/ c! `/ J! A3 s+ r - )
& q5 X9 N/ d0 i. i - ; ...and then rescaling.% l6 L' e2 K- r% b% m; L
- (setq new_hgt (* new_hgt yscale): r. b( X% G1 Y& p1 J* Y
- new_wid (* new_wid (/ xscale yscale))
! \0 d3 E" [+ W ?9 H - )
6 @# p {4 Y) P1 Z. U - (if (/= new_hgt old_hgt)% n" e* D% J+ A% u) l* E: B
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
q2 Q2 U8 f/ F9 t: P1 R( s - )' V( N9 ~! _$ q6 v3 ^) b. C
- (if (/= new_wid old_wid)
- b h6 X1 Q+ e6 a( u, k - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))4 s( Q' F7 Q D2 u" N
- )0 h* n& c2 d7 H
- (entmod el)
% n+ h) W: f) I" t - (setq attr T ; At least one Attribute modified
' `$ l( W; v$ m( h/ k x - en2 (entnext en2) ; Next Attribute
- V5 J' x; Y8 Y. z& _% s - ): H3 m- @1 D+ m1 f- ]% F
- )9 O, E A, C* {, m
- (setq en2 nil) ; No more attributes
@. \! z( }5 D& J - )
9 Q" z* I, @: j - )
" M9 \* q6 D+ P1 v5 J3 L2 i - )
2 h( {# z# d+ U - )
% [' z1 t1 l1 K& L% _0 v: K - & M2 B/ ~: n8 ^' V& k' t' p0 |( K# r5 C
- (setq pt1 (list x1 y1 z1)), Q+ v1 {$ [7 l
- (tempmod xscale 41 nil)) U4 r" I. x. L" G* P% D
- (tempmod yscale 42 nil)+ b( I' O8 B! z5 G+ M7 X
- (tempmod zscale 43 nil)
8 n. q1 I$ t/ w - (tempmod col-sp 44 nil)
8 j7 K3 T3 l2 X, R0 l Q/ u% M& _ - (tempmod row-sp 45 nil)" S( w$ U8 C/ R b
- (tempmod columns 70 nil)% A; N* D6 l$ }3 I+ c
- (tempmod rows 71 nil)4 w4 {# K* v3 Q9 [9 H2 e2 O
- (if (= xclipmode nil)0 G! v, h2 w- l% u' p" b; [
- (entmod elist)5 q4 X7 K' ?" e8 v1 r0 l' t
- (setq xclipmode nil)
9 \% Y* \1 W) N" S' z8 q - )
* w5 g, {) t$ }- B# e - (move_pt1 1)
$ E! d" y @, w$ l1 C. q2 p# C
" M+ D, g- k( h$ O- ;; Now do the rotation with the ROTATE command.
0 c1 t' ]9 Q; o/ t( |; [ - (if (/= old_rot rot)' ?+ T, Q3 R( f0 Y2 I7 v# O' M( t
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))2 {8 t4 O R6 E, J
- (if attr ; Else, if attributes were modified,1 o4 T2 I# l5 b
- (entupd ename) ; just regen to force attrib display( f* a i' w7 l& D
- ): D3 G( |. r# _. \* U
- )
# I6 n% E- b* o% X - (setq elist (entget ename))/ M7 ^4 T) n# V
- )
7 p O4 G/ h/ Q+ e5 p3 Z - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath): f4 i2 R& E3 K8 r. P5 X3 O
- (setq newhatch 0)
, i4 \5 N% ]/ P( N" c- C - (setq blkname (cdr (assoc 2 elist)))
) S, V4 }& L& _/ a - (setq blklist (tblsearch "block" blkname)), F% h- j" P% ]6 [' a2 T1 J1 `1 [( f
- (setq blktype (cdr (assoc 70 blklist)))7 K& i i0 ?# S1 z7 c0 \
- (setq xcliponoff 0); T- h. U1 F7 \; {3 T
- (if (or (= blktype 0)(= blktype 36))
8 X+ e( E+ J7 _ C! v - (progn
7 ^7 j8 n9 A7 y, ? - (setq xcliponoff (xclipon elist))0 m" Z; B; q- y
- (setq temp_xclip xcliponoff)/ _5 E6 a# l( s$ K. |& w Z5 [
- )
* K9 z# Y, }2 T! D6 f; A [. u - )2 R& y+ I8 r0 x/ M# G9 b8 d$ v
- (if (= (logand blktype 4) 4)& ^+ v6 B O1 T3 \& {! D, @
- (progn
G' C1 G! ]2 f; c - (setq xrefpath (cdr (assoc 1 blklist)))
( [% P" o& I* W( @ - (setq help_entry "modify_External_Reference_dialog")( V" J9 e* Z3 y$ H; M
- (if (not (new_dialog "ddxref" dcl_id)) (exit))* @' o _. F- n' y) y
- (set_tile "Bl_name" blkname)
2 ~1 X7 o: R' ?3 ` - (set_tile "path" xrefpath)% J, `3 V6 @+ A( T% A$ V
- )* i2 ]4 a2 c. {1 L8 R$ S! W c
- (progn5 W0 C' z) a# o4 x. q* q7 W; s0 ?
- ;; Get program name for use as Xdata app name
' c$ d) a& H' H - (if (not (setq program (getvar "program"))), v! i% L6 P" o% ~6 f
- (setq program "acad"), E$ R' d- u4 W
- )0 ~2 E) Z& x/ v
- (if (and (setq temp (assoc -3 (entget ename (list program))))
* p9 P8 @9 P5 }2 ~ - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
' v, ^. H: H. ]% X; ]4 ] - (assoc 1005 (cdadr temp))
, c/ w, G7 [' @1 w J: Y+ L1 M* {1 K - )
4 J. N7 v5 ~" W - (progn
' G+ |- Q9 n& J+ a* W - (setq newhatch 1); U; y! m* B5 _ k- x) v9 Q# L% V
- (setq help_entry "modify_Hatch_dialog")) z* E$ V4 a$ |) A# G+ U7 ~
- ;;; convert the object into a new hatch
0 Q0 P& o" z5 S* M( S8 b0 a' t1 p - (ai_undo_on) ;; enable undo1 N4 z, J3 Y1 B; r; b
- (COMMAND "_.UNDO" "_Mark")# {7 [) R) j! ]5 j h$ ]3 t
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
! u2 E& o3 r! A/ c - ;;; suppress nasty message from convert command, ?3 [' D& L( N/ q+ u7 S1 v
- (princ "\r \r")8 G; O+ P* a1 O7 i6 M
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))* z7 Z( Q) m1 e$ {1 J
- (setq old-elist elist)
% U* O9 p) t. t, D- A$ r - ;;; If we have cancelled ddmodify
; n) G$ H5 K+ S - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
4 ~ g2 n) | n6 B - (command "_.UNDO" "_Back")
4 M9 z+ T; A! ~6 T, x - )" z1 V$ I+ p* t' M
- (ai_undo_off) ;; restore undo state: d' k4 E& E' Y0 [; U& Q: i* w
- )! y9 f( u( c# O" T8 ~, |. R/ T1 t
- (progn, W* H1 @# e$ s
- (if (not (new_dialog "ddblock" dcl_id)) (exit))
( q( v4 d8 ?' r% Z2 E9 H6 T9 B - (if ( = "*" (substr blkname 1 1))
- m+ r) L. [! Q7 N- S! t i - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))2 z; O, ~! g d% F
- (set_tile "Bl_name" blkname)+ e8 V) d3 f; k
- ); R% z: m+ ^2 L$ l! R+ w" {3 e
- (setq help_entry "modify_Block_Insertion_dialog")
7 X/ ^; m; {9 D+ P1 x: s - )$ X0 V& v! b2 G0 {
- )
* O- t8 ]1 X7 K. q# W - )
% N$ l) v/ d: j+ g% Y. N; K1 \ - )
1 k1 x. \% k2 Y7 {% p1 @8 F- Y1 W - (if (= newhatch 0): q1 y3 Z0 `" p/ P+ R% p2 U6 ?1 C
- (progn
; y$ G; F& H1 C* P - (set_tile_props)6 N9 b% `3 _2 w, x5 t7 N5 p( v
- (set_tile_handle)
( V$ N5 d6 R; L" e, b0 H0 q' R% j! t, d - (set_tile_pt1 1)) |$ ?# D1 N8 Y. ]1 X% [
- (set_tile_rot)) q2 d- W8 q7 l& K8 b
- (set_tile_scale)
2 A6 i! b8 s/ { - (set_tile_rc)( X `9 J- R ?; \- y, C0 T; @
- (if (= (logand blktype 1) 1)/ E7 X, D/ T/ O. e# Q
- (progn4 O; }' J( W, K1 W3 X
- (mode_tile "xscale" 1)
+ h+ Z$ X8 c6 M# P - (mode_tile "yscale" 1)
z5 [; U0 }! @7 N b' J4 M - (mode_tile "zscale" 1)
1 U! g9 V" [1 L5 ~) S6 M$ l6 L - (mode_tile "rot" 1)/ g& @4 S: Y/ G
- (mode_tile "columns" 1)
' I9 ~/ \, W J% q - (mode_tile "rows" 1)
7 u5 t4 C/ |9 J2 Y - (mode_tile "col_sp" 1). F: k6 P; j3 M: K( R
- (mode_tile "row_sp" 1)/ p7 g2 v" K' p6 S( i! H& l
- )- C5 w! E5 q1 c L" @9 {& V
- )% o; h8 X S# W3 F& ~5 @: X
- ;; Define action for tiles) w% o: Z3 P! w& E) W) @
- (set_action_tiles)0 q4 I" [. x& x9 c
- (setq dialog-state (start_dialog))4 o) R( H* O& n
- (cond' v, o6 T/ o" K9 ?( d9 w' X
- ( (eq dialog-state 0)
/ c y; B5 a' s1 _2 `: ] - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
1 k2 c M$ Y& V% s - (move_pt1 1)
1 n2 r# y) v/ j; k, y' @ - (reset))8 E+ k$ e# W/ S& C
- ( (eq dialog-state 1)
% f9 _( e/ t2 S' ]. u& q8 Q8 y - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))3 [% c: {' p- K6 U' {( w
- (xclip)
( S% \% o. y n$ C9 b) Y - )& P# y/ h& o6 v3 J: S' d3 W
- (modify_block)) G4 s$ n( T# G" S( d# i3 H
- ( (eq dialog-state 3)
8 c, Q2 B$ Y- k$ |! L( I* ` - (modify_block)
! @3 f& T6 L; _, [! N - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
: c; n3 Q5 M$ A5 g' M. O - (move_pt1 1)0 H& T1 S2 \" p+ j
- (ddblock))) r4 N, ?5 }! D2 J1 y
- ( (eq dialog-state 4)& f) L% e9 B- t% |- g
- (modify_block)
?% `$ Q3 U: N* F - ;; Get current handle.
$ b6 T0 K4 [4 d" l - (setq hand (cdr (assoc 5 elist)))
' k$ D! z2 m, J/ H$ b7 \+ v - (command "_hatchedit" ename)
% b& ^+ [8 r* ? - ;; If OK in hatchedit, a *new* entity is created and the old one' \0 E8 g/ X# X X% I$ Q3 E3 o% `9 W2 q
- ;; is deleted. So if the old one exists, it must have been a
* W7 ^; |7 C1 K' I+ [ - ;; so rest the entity.3 c( s6 w/ y0 @* x: K+ `9 v4 I
- (if (entget (handent hand)) (reset))& m, N& B! ^9 p/ u6 t
- )
2 S/ ]! P' v. N7 h - )
. D3 |3 ]4 X+ m/ x) G# v - )
, h% p7 o+ J" B* E4 Q3 G/ ^8 M - )
E6 D2 C$ q) s' F8 q. w - ). C: o& S; j( o$ Z: G
- ;;
; M, `8 I- B0 }# J$ ^0 C5 u* v! N - ;; Modify SHAPE. `! M. Q2 F$ I0 u- q6 I6 W
- ;;
2 e: V3 Q9 k5 y+ s - (defun modify_shape ()
4 H4 ^2 R7 H$ c - (modify_properties)" M5 E- Z9 @1 t" U2 \
- (setq pt1 (list x1 y1 z1))
) \/ W3 u( k. C' p5 ?, n - (tempmod pt1 10 1)
% p* y2 r: e" @$ P - (tempmod hght 40 nil)
" \% G& i+ s) | - (tempmod wid 41 nil)
r% ?5 |# F" k& v5 a" r - (tempmod rot 50 nil)0 S! y9 b$ x+ O" W( q4 _* M6 J* v
- (tempmod obl 51 nil): N- T8 W3 o" L. N4 v
- (entmod elist)& e% Q& p1 I9 h' h" u- k
- )
# V8 c2 f4 F% l
! i( y/ |) E9 G: P! _ Q- (defun ddshape ()
C! S M0 j( e/ x3 E' \ - (if (not (new_dialog "ddshape" dcl_id)) (exit))
5 j. c6 e+ z6 ? - (set_tile_props)
% e6 c# u8 K, P+ X" n0 l8 S - (set_tile_handle)" ~( b$ m% p( d, \
- (set_tile_pt1 1)
) i" M8 q6 k& v - (set_tile_rot)
; g* ~5 r/ b& K" g( Y/ } - (set_tile_hght)
! e9 r; m& p# v! `+ {/ b - (set_tile_wid)/ L' ^7 O. k% i) f0 Z, \5 t7 H
- (set_tile_obl)
' n7 h/ {8 ~* T7 n- A - (set_tile "sh_name" (cdr (assoc 2 elist)))+ V* h) J2 Y6 j' k+ E' m
- ;; Define action for tiles H+ y8 V! i7 ]. O P6 A, D4 _
- (set_action_tiles)
" q2 _5 f% W- ]* x! k - (setq dialog-state (start_dialog))3 _1 c. x1 ?; y" G$ t S( |, g; e
- (if (= dialog-state 0)
$ I. L8 K9 Y6 j9 b4 x - (reset)- O1 ?5 r: \; G4 F4 g5 J
- )5 u! S, v% k9 T# p
- (if (= dialog-state 1)
: a( E, o6 h% `* ]% l - (modify_shape)8 A& R3 i/ K$ e8 Q/ S
- )
8 k3 ]+ U/ n6 l - (if (= dialog-state 3)
4 [" `, ]& d5 @ l - (progn
% \) I1 M5 x2 i% w - (modify_shape)& r5 I& E1 a& K" [0 l
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))4 ], e' d8 Y' ]( E" x; H! [. v: s
- (ver_pt1 1)) r; W2 T$ ~9 _# D, z0 m" V$ D
- (ddshape)- f' A7 ?6 C# O# g
- )
1 \, X& c' G- S' _ - ), E7 w% W; ^( \& e
- )9 K& p) q E0 F# y, m; Z( P
- ;;
9 ?& \/ p1 r# ?6 N8 Y* A: k3 F - ;; Modify TEXT or ATTDEF
& l: r n5 d/ D - ;;
. R4 T6 I. _* B4 L y - ;; Set bit code for upside-down and backwards setting) E/ f8 Y/ A9 P5 `' ]8 U: e$ r
- ;;
/ Y. \) [1 e/ Q N" ] - (defun code_71 ()5 P; d4 l7 \1 M& J1 A
- (cond ((and (= bkwd "0") (= upsd "0")) 0)9 a# ?, E0 u! n: {# {: R- \2 K
- ((and (= bkwd "1") (= upsd "0")) 2)) b. C, [1 |: [6 A
- ((and (= bkwd "0") (= upsd "1")) 4)3 `6 T+ ^5 H9 Q$ }+ G
- ((and (= bkwd "1") (= upsd "1")) 6) Z% P4 ^& S [/ P
- )2 Y# O; M, a2 S% ~+ o
- ). x& j, }4 I) g5 I. e% D4 i. \
- ;;
& q* q. U5 }: q. @( h/ q - ;; Style action. Reset widget values to style defaults& d& l/ d0 F* x2 E8 j
- ;;6 G4 n3 K* w; E- J. G; I6 g$ Y
- (defun style_act (index / style-list)+ a' F' ~( B( M2 R! X* _/ x* j) g
- (setq style-idx (atoi index))
) F/ F0 J3 l- c! c7 f! A - (setq tstyle (nth style-idx slist))
4 N7 W+ L) ?: q; O - (setq style-idx (itoa style-idx)), o1 _& W* k0 F0 n6 k, _5 T
- (set_tile "style" style-idx): T4 P+ h: w+ G# a
- (setq style-list (tblsearch "style" tstyle))$ h0 z& w" O( z1 o2 |! I) i; i
- (setq shght (cdr (assoc 40 style-list)))0 P$ @+ d) }# z% W
- (if (/= shght 0)
% R+ W( O+ }6 x6 { - (progn; J. C% f( z8 X% V ^2 n6 N: [& M
- (setq hght shght)
( N: c9 R! C+ J/ }- F' \3 A/ a - (set_tile "hght" (ai_rtos hght))8 R/ a4 U6 L; p
- )4 v+ i3 v5 `$ w: D8 c& p1 y
- )
/ |5 y& Z% D" _5 K( p+ c: c - (setq wid (cdr (assoc 41 style-list)))
2 n8 F3 q$ O$ X H - (set_tile "wid" (ai_rtos wid))
) F. O4 [ J- A - (setq obl (cdr (assoc 50 style-list))): p0 s2 R9 S. |- [( j
- (set_tile "obl" (ai_angtos obl))& s1 V m( m. O
- (setq bk-up (cdr (assoc 71 style-list)))! {, u& J0 j4 }. d0 S
- (if (= (logand bk-up 2) 2)
& X0 {7 R$ g( o9 c& \- M+ P - (set_tile "bkwd" (itoa (setq bkwd 1)))
0 D3 v* Q* M/ \- ^+ d - (set_tile "bkwd" (itoa (setq bkwd 0)))
. U7 V3 P" V0 }! ] - )
" H! m# p( c5 h. y, @ - (if (= (logand bk-up 4) 4)
5 Z( u4 q- C+ X( l- I - (set_tile "upsd" (itoa (setq upsd 1)))# s6 h+ Q1 g! k
- (set_tile "upsd" (itoa (setq upsd 0)))
3 q( m9 w# b6 b& }1 { - )
! q/ U3 \( I2 O2 _* A - )
0 A+ G, y) r6 Y0 F7 ? - ;;0 {1 y1 L; h& ?
- ;; Justification action. Set vertical and horizontal alignment variables,
5 A& F6 c4 w9 T0 U - ;; grey out rotation and height if alignment = "aligned", grey out rotation4 x" |! E% h" H8 P/ l+ w+ J
- ;; if alignment = "fit".
; u0 @+ m6 k0 } - ;;
i. |1 p1 ^7 S% E* Z9 V - (defun jlist_act (index / templist)/ h9 Y9 {+ H8 g) z! g* N" U s" R& f
- (setq just-idx (atoi index))7 S. i' n1 @0 g% v5 X: i g; o
- (cond
' I3 [) i6 D4 d% s# P' c - ((= just-idx 0) (setq va 0 ha 0))
' k' n/ W) H1 T7 N' W& n% f! _ - ((= just-idx 1) (setq va 0 ha 1))
8 S4 G- H* ]& J: x$ @( Z: X - ((= just-idx 2) (setq va 0 ha 2)), Q/ L3 N- Q+ d. v/ b! r
- ((= just-idx 3) (setq va 0 ha 3))
. `6 v% _/ N, B$ U - ((= just-idx 4) (setq va 0 ha 4))8 a: E3 l+ p* |: L
- ((= just-idx 5) (setq va 0 ha 5))
& T& p `3 {9 `8 R! { - ((= just-idx 6) (setq va 3 ha 0))! c' ]2 C% U* r2 j* ]" s: p0 B/ w1 H
- ((= just-idx 7) (setq va 3 ha 1))
8 l R, i) N; ]$ v) d" Q! o6 t - ((= just-idx 8) (setq va 3 ha 2))0 t1 p; G, I& J) c0 d
- ((= just-idx 9) (setq va 2 ha 0))
/ o3 P* I; _2 v& x2 G3 U - ((= just-idx 10) (setq va 2 ha 1))
. |& Q' p+ E; L \5 [ - ((= just-idx 11) (setq va 2 ha 2))/ k$ x- b2 x2 N9 O/ J; s9 M0 n
- ((= just-idx 12) (setq va 1 ha 0)). k# Y( Y C( O' x# d4 r* W% X
- ((= just-idx 13) (setq va 1 ha 1))' W, A- Y k% x% A" e5 m S# P
- ((= just-idx 14) (setq va 1 ha 2))" u$ h% Z8 ], g! t9 M
- )
. m" U; ?( }8 Z4 o! v) y - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
( D" d, ~; G7 X9 J2 d* F6 l7 z( x - (mode_tile "rot" 1)
( o. e7 ^0 x f# C, H5 f% K0 v* { - (mode_tile "rot" 0)
, q5 ]' e* x @9 v3 ? - ) J: N" b' V* c. [' l* _/ |
- (if (= ha 3) ; If Aligned text6 ?" F3 P. G. a8 R% E( Y' k! ]4 U; i1 K
- (mode_tile "hght" 1)% F9 b) r% b2 d* {; E8 @: G
- (mode_tile "hght" 0)
0 G3 i. Z* O% L6 t: | - )
* T! o# L2 |; W: W! ]3 H; p - (if (= ha 5) ; If Fit text
1 K! W7 @ L& k - (mode_tile "wid" 1), H. \1 y& t8 L( b, r! F
- (mode_tile "wid" 0)+ i& ~; C- i* J& ], i
- ): l" A# G3 W& J" Z4 e+ e# ?
- ;; Reset rotation and height if changing from aligned., C, s5 [1 E- T" i5 {, Z* z
- (if (and (= ha-prev 3) (/= ha 3)), F, p V2 E6 t/ r& ^
- (progn. F$ ^+ \+ r9 B) ~8 @
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
/ U8 G z/ Y2 B5 a1 k - (set_tile "hght" (ai_rtos (setq hght 1.0)))0 W" L; Y8 h8 ?$ \% i
- )
9 u$ x( I. @0 c" M! U* Z - )1 v. Z, V1 H2 g2 L) z
3 k4 v' _) c& h9 Q( z& `% b- ;; Reset rotation and width if changing from fit.
! w3 t9 b( Q4 L$ B; g - (if (and (= ha-prev 5) (/= ha 5))6 D0 u, U- j s U3 w
- (progn& s3 E) @! s7 j" z. o; e
- (set_tile "rot" (ai_angtos (setq rot 0.0)))7 w/ ]7 K5 A3 ^8 }' ?
- (set_tile "wid" (ai_rtos (setq wid 1.0)))
: |4 q& k/ }+ ~4 s2 S - )
V E9 |# O: W - )
* |6 N3 S5 c8 M3 m# d; F - ' r) T, {, @+ P3 V! ~0 R
- (setq ha-prev ha) ; update ha-prev for next time6 ^0 Q$ T3 X1 O4 C* [) O
- (setq just-idx (itoa just-idx))7 C5 c3 l3 p7 h; ~
- )$ I- N7 D1 t5 F$ L
- ;;
2 J; k! U( Q; Q) O - ;; Set intitial alignment setting based on vertical and horizontal alignment: l0 |) ~/ }* l3 o8 a6 W. T' S% y
- ;; bit codes.
1 ^2 E# N) Q7 `- h1 S - ;;8 b* V" W" Y/ X9 x" ~1 E
- (defun set_just_idx ()7 U% \+ H5 m7 {( Y& M. p8 U2 l
- (cond
' K; |* {9 g' }" F7 M - ((= ha 0) ; Horiz alignment = Left8 F& ~5 c! s" T `- M- O3 i* @6 W
- (cond
, d8 d. g! P5 v3 \( E: L" D - ((= va 0) (setq just-idx "0"))
) g3 X; T$ i7 Q& p0 [$ B, \ - ((= va 1) (setq just-idx "12"))$ k$ o4 n+ m! U. L8 S" c& m
- ((= va 2) (setq just-idx "9"))6 d* _- F: _+ d5 b
- ((= va 3) (setq just-idx "6"))4 G( ]* \8 H$ |! Q- o5 ?7 L
- )) E- Z' x, H+ \5 B7 r" [" F: n
- )
& x3 @$ E2 d% E! n - ((= ha 1) ; Horiz alignment = Center
9 v, i% h% `. c( F - (cond
* q& v9 A! D# D. t5 O: g - ((= va 0) (setq just-idx "1"))
+ c8 V1 h: F3 \5 _2 { - ((= va 1) (setq just-idx "13"))' O \$ E G/ k \
- ((= va 2) (setq just-idx "10"))
. o [: X7 b! D; k- E - ((= va 3) (setq just-idx "7"))8 N7 }7 A" C# {6 ]/ t
- )0 ~# `" B3 }0 a9 x* b
- )! I ~( H" U4 c- ~4 f0 I9 R; x
- ((= ha 2) ; Horiz alignment = Right1 ], t1 U. `- T& n
- (cond* F8 E& ^0 Z9 x' N E+ G1 Y& ?
- ((= va 0) (setq just-idx "2"))
2 E6 _% I. V& k4 Y$ e - ((= va 1) (setq just-idx "14"))3 q) ?7 [) n; \/ D' \4 M
- ((= va 2) (setq just-idx "11"))6 q4 [: A1 R: {4 ]8 I( T
- ((= va 3) (setq just-idx "8"))
; H( b/ B4 R1 |- M' _6 N - )8 }9 j: n2 h$ Q" \2 C
- )$ r1 L: x0 ?! U* |. r. ?
- ((= ha 3) (setq just-idx "3")) ; Aligned, j% L* u5 X3 U/ a4 |4 J
- ((= ha 4) (setq just-idx "4")) ; Middle
1 g0 V2 O( w& Q2 x/ Y - ((= ha 5) (setq just-idx "5")) ; Fit
6 O: F" W" P0 X: l; I. K - (T (setq just-idx "0"))9 ^% @2 n" _) n0 o6 K: T6 B6 p1 H! S
- )& a. |$ i) T. q7 Q" I* ^, p
- just-idx) ^: I8 U& J2 N% h. O$ H
- )0 V q* t! j# j& [
- 0 a- n: O7 I r5 {" s. ]
- (defun modify_text ()
2 j6 f. Z9 o" J* R- E2 c: i - ;; insertion point b+ S( `+ f5 N* }2 o$ c
- (setq showpt (list x1 y1 z1))5 D/ a: v/ ^# S: _! Y( g
- (setq bit-10 (trans showpt 1 ename))' x l* W( D7 ~/ M8 W
- ;; alignment point- r# k2 x4 h# C! Y! W, \& Y
- ;; for 'Aligned' or 'Fit', alignment point must be different
/ G+ u& ^& G. ^9 p- Z0 H( b9 q - ;; for all others, use insertion point
, r) b+ G6 X$ k - ;; (ACAD will recompute insertion point)
; r2 G& R+ [$ [( z - (if (or (= ha 3) (= ha 5))
2 ?& N$ Y+ s) ` - (progn% t. j, x/ z. p' Z" W3 _! e
- ;; if no alignment point, fabricate one5 M u) m4 O8 L$ A: r+ Z
- (if (not alipt)( ]1 e' j, s! s
- ;; add text width to insertion point; }# }" K2 z( P0 c/ Y
- (setq alipt* V7 V! t, z) b% _' T1 N. g( Y! N- _
- (list (+ (car showpt) (car (cadr (textbox elist))))
: ~' `) j; Y# f/ v7 ]4 v - (cadr showpt)
' D! n. \1 c- [ - (caddr showpt)! }) N9 O+ |0 E9 q; L# B
- )* _# J5 h7 i, p; F! Q4 X
- )
. `, k" C# _ d4 N% T: ]8 v - )
+ C6 u; d9 [ ~ f - (setq bit-11 (trans alipt 1 ename))* d# X- a& g% i
- )" \# U! I% t- T' c. J
- (setq bit-11 bit-10)
) _$ n& Z. f8 I# } - )
( c- X9 j! g% R5 [+ k! @0 v8 K* F, d - (modify_properties)2 g$ g9 y8 q: w; B
- (tempmod tstyle 7 nil)
1 Q1 `) g5 B7 j- { - (tempmod bit-10 10 nil)
9 D* c: D( O" K, H3 Y - (tempmod bit-11 11 nil)
! T g# u- G# d2 p# \5 v5 G - (tempmod text 1 nil)
1 P' i: C+ `) A/ L# [! t0 t) V - (tempmod hght 40 nil)
]; Z5 Z3 f7 T$ M - (tempmod wid 41 nil)
8 Q1 d3 t( c0 Q+ v8 ]; t. T7 k7 F* p - (tempmod rot 50 nil)8 }# `: N3 [* U( j& G9 j& ?
- (tempmod obl 51 nil)
6 |' y& y+ U ?3 n" p - (setq bk-up (+ (* bkwd 2) (* upsd 4))), z5 {$ _1 [* Z7 s0 D+ s
- (tempmod bk-up 71 nil)8 i# l' U* c% L& g A' y5 j& F% z! {
- (tempmod ha 72 nil)
4 o; c \$ l, D - ;; Attdefs use 74, text 73( d4 k- t+ D- ^- O) U/ f
- (if (= etype "ATTDEF")
* W+ M/ |5 J b - (progn
8 E- \" c& g' y: ` - (tempmod attag 2 nil)
) D- O, x* R) S f# g - (tempmod atprompt 3 nil)$ O; m( b$ Q0 G1 e( G& {2 H
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))7 S1 H5 s$ y1 C0 p* w; ^
- (tempmod icvp 70 nil)
" S% a; M0 ^) `8 d - (tempmod va 74 nil)
& X6 p4 {/ }5 S. g7 Y+ m - )
1 D6 A. Y0 F, E" o& h, v S - (tempmod va 73 nil)4 m( ?- ~3 O% O+ H9 i6 P
- )
% s4 S- K- R0 A' x, y- C/ a2 W - (entmod elist)
' ^0 S2 f H" z( K/ d - )! H% m" V! d; J6 Q
- 4 U5 o& X r1 E) A& m3 i
- (defun ddtext (/ 2ndpt slist i)
8 t7 T8 v- @0 F - (if (= etype "TEXT")6 i' `" _: z* i% I" |
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
7 l9 {, i( d# Y4 s$ S: ` - (if (not (new_dialog "ddattdef" dcl_id)) (exit)). A' y N: S0 ?% k, ~& M
- )7 {5 _- u) }9 I1 ?
- (set_tile_props)
6 t1 b9 Z5 K! E( {0 K5 O& o5 ` - (set_tile_handle)
, v( R! q7 [& B5 m" r - (set_tile_text)8 I8 {6 L; b/ K3 y5 G( A
- (set_tile_tag)
% k/ `: p, @7 D) V, H$ W - (set_tile_prompt)
0 M# k) k2 e% r g8 M% X - (set_tile_hght)' z- s4 j G- A0 }
- (set_tile_wid)# c1 C+ m7 W/ ` s S/ E
- (set_tile_rot)! }: V5 e' V8 E0 l0 L& T
- (set_tile_obl)
" r# |) t7 A% d6 R" w2 g( u - (set_tile_bk-up)
) q0 `& {! ?' O' U. ~ - (set_tile_icvp)
) d0 d& W( ?2 C3 ?- D/ L3 z - (set_tile_style)9 l1 N/ E/ }6 ~ @8 P7 X
- (set_tile_just)
. J' G* `% {$ ?6 Z2 v! j, L - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
( [/ v" ^7 {7 [- h- j7 } - (if (not (assoc 11 elist))! w6 d: T# k- |3 ~5 d [
- (progn (setq pt2 pt1), B2 Q9 ?; o: G8 ^+ j5 d- o8 e* q) d
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))7 b( M7 X, {) C0 @- C# x8 b. o- z
- ). l# V3 V5 v; _8 ]5 b/ M4 L
- ;;(trans '(0.0 0.0 0.0) ename 1))0 @3 w2 d' D8 C1 y
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))8 K s7 u) \2 e6 k( G( i
- )
: ~+ C1 `6 u; V% ` - (if (or (and (= ha 0) (= va 0))
/ {+ W3 \" [' m6 U - (= ha 3)
3 B6 ^" x; p" `) n* S - (= ha 5)' ?0 H) R9 g( I* Z
- )
' ?9 V, z9 Z/ X( g& u6 N8 S - (setq showpt pt1)! L7 f% {' [' p) U
- (setq showpt pt2)
{; W; F- c p! H - )
, R$ e$ `( q. u. M8 i* g+ s' o: V - (if (or (= ha 3) (= ha 5))3 k2 w) ?! I9 D$ O
- (setq alipt pt2)/ B7 u" t- d; {! v5 }
- (setq alipt nil), o1 ?: P2 L& {# m5 U2 x
- )
" V: C/ {- _( [) q, V: u. \ - 1 ]0 i( t; I- e- f! n( a9 D
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))" a% U/ [: {4 `$ U
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
' t2 k# r& s" M& T, E9 i) n - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
8 l% G; S: M4 {+ A" R* M- M( U; J - . T4 n( W0 W9 C& M) }4 `
- ;; Define action for tiles0 m6 z4 d5 w( _1 G& k/ N
- (set_action_tiles)
1 ?. ~# z* w' i" \! h& f - ;; Set focus initially to the text edit box.
) N% D; h/ | ] - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
" l! B+ d% u6 T: c8 {2 j7 B: f6 h - (setq dialog-state (start_dialog))3 D4 c7 ^! a1 h8 v# ^2 n) N
- (if (= dialog-state 0)# D0 S7 _ ?$ I# _* m* [
- (reset)
. }& }2 R/ x7 |3 t V - ): f0 j2 {+ U8 a/ L" S& E3 q
- (if (= dialog-state 1)3 B1 U5 r* _! ^/ p
- (modify_text)7 U# v4 H8 r& g! J. V4 R4 D/ K% u
- )6 I2 @: m B- K
- (if (= dialog-state 3)
$ j2 y. D1 T4 ~7 L - (progn1 N1 K7 |$ T" p5 X7 Y9 F, h/ [+ d# L
- (modify_text)$ a+ y, p! n9 C7 h
- (if (or (= ha 3) (= ha 5))
7 f* [3 w/ f E! b4 p - (progn5 D4 N7 W J1 V
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
3 M9 Q3 [" N0 n: | - (if (not showpt)
. a; r, |$ U" V - (setq showpt (list x1 y1 z1))% Z. T0 P) |4 K @
- )
& a) k* I( t- h' `' L( C6 o - (setq 2ndpt (getpoint showpt "\nSecond point: "))
& N5 Z0 t% b9 @; a: V: I& w - (if 2ndpt
; f$ w) f8 `- q# N* w, o - (progn! V7 P) I. F2 ^1 f4 |
- (setq alipt 2ndpt)
" _7 E, D" `) r* X - (tempmod showpt 10 1)' d" l7 w( T& a2 l+ I+ _
- (tempmod alipt 11 1)
& {7 {: Z4 H( u) N, X - (entmod elist)
" S& z5 j$ C( ]) b9 t7 B - ), E0 e) S" r) h+ M: t/ f& d: V0 |
- )
7 W# q: c$ u5 G - (setq elist (entget ename))3 w7 d/ `4 g/ a" @5 R* X) U1 t6 J
- )1 g' E0 _0 L4 d9 K- B% @+ `) M
- (progn
: V& N# S: Z* Y5 } - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
$ O) ?: B: b) ]# u9 d# i - (if showpt
$ K7 H* S# n E' K - (progn2 i8 r/ T/ Q$ p3 \5 [
- (if (and (= ha 0) (= va 0))
% S5 d+ Q4 n, b# P% K - (tempmod showpt 10 1)+ {+ L: \: A9 B) R6 g. _; O
- (tempmod showpt 11 1)0 J D! l( H; e; t" e
- )% A2 {6 {4 A2 g, ?; ^
- (entmod elist)! _( a1 i9 g) R% D" \
- )
9 m4 R8 F6 s3 j - (setq showpt (list x1 y1 z1)); N% R0 {* y$ K& r! j, \# n/ Q
- )3 v9 H( K( C' s
- )
0 Y9 r2 Z* M. s5 B0 t - ). E9 O" R2 g5 V# P2 z8 l
- (ddtext)& T) h; s# L+ P8 C, T/ s: {
- )1 d) s" X/ I2 h/ D! c9 g. d3 k
- )
8 u5 p, Z; @8 r6 Y# m - )
4 R0 R$ @9 Y& k. \( o0 e
, i# s C1 H# E" c g2 A- ;;
& z1 S" D7 P9 X$ G& R/ T - ;; Modify MTEXT" ?" z+ L2 p. @. `
- ;;, O4 p+ S' _/ k- H
- (defun modify_mtext ()
/ I( i/ ~* o4 p& r1 A: L - (modify_properties)
" L! w% [$ b2 M6 p8 E6 t1 D4 T - (setq pt1 (list x1 y1 z1))
' T4 u& n8 X! q) H4 G - (tempmod pt1 10 0)4 j; ~) [3 G6 l4 N" p/ V1 d# t+ X# C
- (tempmod text 1 nil)
" ]+ I; W8 a1 I2 q - (tempmod tstyle 7 nil): R3 n3 C- H4 q8 W/ f: M9 C
- (tempmod just-idx 71 nil)
& b6 F4 j/ o/ q' S$ f5 j - (cond
1 p2 i9 U, G" {8 h - ((= dir-idx 0) (setq dir-idx 1))
4 J A% y1 j* m - ((= dir-idx 1) (setq dir-idx 3))) |2 X8 h& o- v- @
- ((= dir-idx 2) (setq dir-idx 5))
P! B$ ]: w2 T - (T (setq dir-idx 1))3 d% Q( N, w: C! f7 @9 W: y6 W2 j
- )" ?2 I/ s+ g4 x) Y
- (tempmod dir-idx 72 nil)
8 Z( V$ x/ K" P' D1 a - (tempmod hght 40 nil)
' v, N3 A" A, N" z% q' p - (tempmod wid 41 nil)+ z8 }: g2 U3 n* b* \# d
- (tempmod rot 50 nil)
) ?6 M/ Y: d: q" b - (entmod elist)
* _7 d+ V U- I8 ]* i9 D - )
8 Y6 Q! _2 m* F Q+ ~
7 ^) a9 y4 ` }7 x- D4 n# F- ;; Set MText text style
* K- p& Q2 F' o& k t - (defun MText_style (index / style-list)
4 [4 s8 w( P- o6 V - (setq style-idx (atoi index))
% v; h: F+ S# o& }: ^ - (setq tstyle (nth style-idx slist))+ X( {0 m/ y' ~) B+ G3 G1 B
- (setq style-idx (itoa style-idx))6 K; i1 k& c p! j' ?& s: x
- (set_tile "style" style-idx)9 [+ N1 Q, o5 D( W; m& S- K/ n# u6 o
- (setq style-list (tblsearch "style" tstyle))
! p2 s+ \4 @) [5 R8 J$ n% s+ Y - (setq shght (cdr (assoc 40 style-list)))
& m0 ~- y( q( | - (if (/= shght 0)) N- V; d8 M6 a6 m6 {* T& }% K
- (progn
) }4 z+ I9 ?( g) g. X! W - (setq hght shght)3 m: i3 ?; g- [
- (set_tile "hght" (ai_rtos hght))
: s1 w0 d" v$ G - )6 K3 p3 ?3 [( B5 y8 |
- )
* Q3 R0 N; E2 w9 J - )4 ]* @% S& V; h6 f$ q, a
- 2 N& z0 @/ E6 E6 h* d
- ;; Run DDEDIT on given entity, working around possible re-entrancy: V* m* w; S# `1 {* u# @' R
- ;; problems with MTEXTED8 b1 v( e% Z/ y O" W d! `
- (defun safe_ddedit (ename / orgMTextEd work)& Z1 Y5 w% U$ V" \% h) f% Q
- (setq orgMTextEd (getvar "MTEXTED"))
% H; O3 J+ W# L - (setq work orgMTextEd): y) v1 r% a8 V& q+ G1 i
- (if (= ":" (substr work 1 1))
2 Z" ~# a, T2 }5 F' Y+ y Q* e - (progn- k1 r0 s6 z+ @4 f: s8 f
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1))) J5 k9 g: A- {) g; ?( J& {* C' u7 u
- (setq work (substr work 2))
$ b* e$ C0 l( h9 e* P - )
1 D' n; n) X& L' D - (if (= "#" (substr work 1 1))+ q: X( T( x' ]
- (setq work (substr work 2))
% w8 z3 m4 z4 M/ Z' _. ^! ^* ~ - )1 W. r) s, E& _' a3 l' | C/ k
- (setvar "MTEXTED" work)
* h3 k9 C( t9 |! f" [4 `. Z - ); }" k% @' c7 W0 w$ l x
- )
% E% z, Q- |( r3 R - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...* ^1 i1 Y4 ^3 r: T8 ]+ w p# {
- (command "_DDEDIT" ename "")% Q* [5 L# [0 g4 g; r8 z! _
- (setvar "MTEXTED" orgMTextEd)
$ g5 b9 e: g+ ^ - )' @0 `: Z6 v0 F9 X5 b5 d1 X2 D7 K! U$ w
- u* f( q0 Q) ?. M& }. w- ;; Verify MText object width! `+ Q0 ~/ h+ k# I9 Q2 O5 |1 L
- (defun ver_MtextWidth (value): m Z. s9 r2 w1 s" @
- (setq value (distof value))
9 t3 n* O) w1 q. V - (set_tile "MTextWidth" (ai_rtos value))+ z: }- [3 w- o% S
- (set_tile "error" "")
! C3 q% h6 ?; k3 J - (if (< value 0.0)/ |* w3 g5 o8 R
- (set_tile "error" "Value must be zero or positive.")
6 m, k. d" l5 b# C& x7 F - (setq wid value)
/ f' ?" r3 `. X - )/ j/ @& H% G( _; J. Z3 T
- )
$ F c% r; J5 f% E; @
6 b* _% R p5 Y* l8 E- (defun ddmtext ( / gc3)
. p9 `/ |# I0 u r: r- _ M7 u9 o! D - ;; Get dialog9 k" z! q3 _ v# x' L y. l
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
( y; Y' }5 J- X) }8 C
' C, Q/ Q8 _1 n0 b6 N- ;; Load list boxes
8 S# M0 n& P* [0 F( j& |6 S% m - (start_list "MTextJustify")& n, n }+ p, u
- (mapcar 'add_list '($ ~# E/ @; I+ C } `( }9 e' [! C! x
- "Top Left"9 z* t7 j0 J5 _4 c! q
- "Top Center"
& ]: C. ~3 v3 T+ a) x+ j - "Top Right"
9 V4 H" y% w+ I. c: r! t - "Middle Left"0 H8 O; v" R% O
- "Middle Center"
* l9 ` f) \# I4 z* ~0 L/ g7 l - "Middle Right"% O }9 M' ?; }/ E& o. g1 C
- "Bottom Left"
9 Z0 V3 e! W- n1 T& q1 k1 e0 m - "Bottom Center"8 [- K* y% k. S% p" {9 j% a" r; P
- "Bottom Right"
E; ^+ `1 f* ]5 {. ^4 t - )
* s5 {$ ^; ^$ o0 h - )
" Z- D+ h8 y$ v7 j3 g1 L - (end_list)
* R) }& x* [5 X3 W
- @# O4 r# |* t8 ^7 |$ E- (start_list "MTextDirection")
: w; _) |( b3 c8 q. J' w2 x - (mapcar 'add_list '(
- J$ C* k6 b$ V1 u# `1 `& B% l8 g - "Horizontal"
- y1 B V" i: h$ x# W - "Vertical"
' U+ M4 u. R% u, Z" f - "By Style"
% R! b: O( G4 m3 Y$ \ - )5 p5 j' r( _: n% m" Q. e. d( x) L* @; N
- )
7 p: y+ U* ]6 |0 N5 n4 ]& w - (end_list)
2 Y9 i0 g6 i0 | - 3 M1 I6 P/ L0 f; S* r
- ;; Set initial tile values! }6 \* n5 Q- K
- (set_tile_props)
: h! Y; p. A- l, u - (set_tile_handle)' g p7 [1 k6 g5 ^: `
- (set_tile_pt1 0)
" Q- ~+ I8 `5 `2 o - (set_tile_style)
$ Y) j: Y9 G- {6 _. r( O - (setq just-idx (cdr (assoc 71 elist)))* I% e' ?$ X5 m
- (set_tile "MTextJustify" (itoa (1- just-idx)))
" r3 I- P1 u' h - (setq dir-idx (cdr (assoc 72 elist)))
+ Q, W5 I$ b8 g ^/ l - (cond
, e6 {0 G% p& |+ _& Y2 k - ((= dir-idx 1) (setq dir-idx 0)), N5 C: p! ^6 d
- ((= dir-idx 2) (setq dir-idx 0))9 U7 |6 m% G+ t( R9 k( w8 a6 D6 }. v
- ((= dir-idx 3) (setq dir-idx 1))
: s. u' }+ Z5 f5 F- ?" S n2 F' p - ((= dir-idx 4) (setq dir-idx 1))1 ~ ?% C: n) F8 _ a; m. F- ^4 z3 P
- ((= dir-idx 5) (setq dir-idx 2))
6 q6 t& l2 l2 [9 B" ]- c' S - (T (setq dir-idx 0))
8 c4 t2 D" t# {0 v - )/ Y2 |( x: i1 O5 f/ I
- (set_tile "MTextDirection" (itoa dir-idx))
- M! U5 x" V- q% o2 h% ^- S( D - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
1 b! {/ j. n- ]8 {+ c$ m$ y! Q) {6 r - (set_tile_hght)
( C) L6 j/ @+ \/ ^& O& x2 }5 q - (set_tile_rot)
, v; ]% @4 g1 W5 j, @5 E# g/ N+ z) s - + ^# n" m H0 D$ B5 `4 d3 F
- ;; Set edit box, disable if too long
* d1 y' }1 d- e# e/ F5 [ - (setq gc3 (cdr (assoc 3 elist))2 b9 H; w3 T3 f
- text (cdr (assoc 1 elist)))4 q, B) S5 O! j: l8 V" L; f
- (if gc3
* K4 R7 S! |4 h! y6 R( g$ m# y - (progn ;; Text is over 250 chars, disable edit tile
1 p u3 F) ~# C - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
- U% x' E: _( H& Z% X- n: \' p - (mode_tile "t_string" 1)" S: g7 r7 d0 r: l
- )! X. @: b- {. J. E9 q4 O
- (if (> (strlen text) 80)
& g( n' s2 d: `7 B' A3 i; b - (progn ;; Still too big/ o m( ^: g( y/ b5 q7 `0 u
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
# g, M$ b- g' a - (mode_tile "t_string" 1)) f. ~. r3 h% ?# t0 L i( ~
- ) w2 D" d5 E& m+ W( u) q
- (set_tile "t_string" text)1 M6 Z1 F; r- j- A( H! ? U" u
- )
I/ l# n$ x# [; u* a; y+ a - )
- M( v6 r; e# y! {
9 f7 y/ i& e0 { [6 x. L- ;; Define action for tiles' U3 [# I! C$ H2 \3 e
- (set_action_tiles)
9 ~3 @- Y) `: s4 {2 a3 ?+ j8 } - (action_tile "style" "(MText_style $value)")$ A% ]! F2 a* H# {; a
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")$ u4 I' s0 Y/ Z
- (action_tile "MTextEdit" "(done_dialog 4)")) S/ L9 {/ h6 b% B* W8 [
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")& C) m% w3 d2 H- T
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")+ O0 x# O5 u) M1 [" J/ f! l$ G
7 y9 I% }6 V- U2 ]% O% t; D- ;; Set initial focus to text edit box.+ o, S4 S3 ^* I
- (mode_tile "t_string" 2)
4 T0 w# U8 }3 p- @5 f6 e5 k. f - 0 G3 ]* y: X% e m( X3 s$ g6 g
- ;; Run the dialog/ J9 C' _/ C7 ?) Y5 ^- ? Y9 R5 O+ O
- (setq dialog-state (start_dialog))
% d* w0 X& ~ ? - (cond
4 }+ O( Q. U- x, f - ;; Cancelled - restore saved data2 Q+ Q! I& H X% f. G& D8 f
- ((= dialog-state 0) (reset))! g2 K# b! Q% M; }+ f" g5 x
- ;; OK - save new data
8 T( D# ~" t! e6 x; U# q% x - ((= dialog-state 1) (modify_mtext))# }8 v8 e6 I: o0 e
- ;; Pick new insertion point
1 H2 L/ x2 I0 y4 V2 l - ((= dialog-state 3) U& j7 o g# b% d r4 p0 X$ p7 {
- (modify_mtext)
* J2 Q5 { x5 Z - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
9 H) u# h" ?) j6 ~ - (ver_pt1 0) [6 K/ G/ H9 J3 b
- (ddmtext)" w- D* W; V/ i
- )2 s" s: C# B$ U' P+ D# M, @% i
- ;; Run full editor
* ]# m( F! m1 F D - ((= dialog-state 4)4 b7 _$ @% l5 s( l7 U
- (modify_mtext)
% i" {# z7 q' ?+ {5 S* i8 E - (safe_ddedit ename)
3 o; J& S) I7 L - (setq elist (entget ename))! a( O. e- m- T$ p
- (ddmtext)
$ k" Z( p Y1 f - )
* u. s5 v/ M7 w0 v - (T nil)
$ d+ C3 _0 o1 e+ m" R6 A9 i$ t - )
8 C `# B" l2 a5 y+ P" x - )3 [6 m7 K; H6 E0 u, d1 G& L+ W8 X; m
- , ]6 K" j1 H- Q0 u6 r& K
- ;;' K m r/ l! q) {9 g( w6 g
- ;; Modify VIEWPORT
7 ^6 j+ t1 {! L+ m - ;;
" J5 `* ~' h+ n* \$ v" D ?# ~+ v - ; Q8 @( s$ }8 H" ~; q! c; W
- (defun ddvport ()
- V3 B' H: m/ d5 m- Q - (if (not (new_dialog "ddvport" dcl_id)) (exit))
" R6 @$ x# T1 _# R - (set_tile_props)7 B; @# ?$ D$ h4 z8 u) z
- (set_tile_handle)' U6 G7 ?* y) M
- (setq vpt (cdr (assoc 10 elist)))9 |7 i# `' p7 T: f# D; \
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
' l- v# b) [: ` { - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))0 b- \1 y3 Q) y/ A3 w8 c8 j
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
+ O% w. F$ H( `" J+ l% X - (setq wid (cdr (assoc 40 elist)))6 Z& j! g4 ]/ u4 T& t" ~* `% w
- (set_tile "wid" (rtos wid))$ [7 y$ R" g$ y- }9 x2 h3 @+ X( N
- (setq hght (cdr (assoc 41 elist)))
1 y9 H0 S) d* a: i0 J e+ w - (set_tile "hght" (rtos hght))" s% s3 ^' ~/ I6 o3 o1 g$ X3 N; H' j
- (setq vpid (cdr (assoc 69 elist)))6 b6 k1 U" @( Q" `+ _
- (set_tile "vpid" (itoa vpid))
% @! S1 k' G* ?* u) D5 ?1 d" X7 B - (setq on-off (cdr (assoc 68 elist)))
4 F' M6 o2 t8 k5 F - (cond
, T$ B9 @( n) w5 o( t" W - ((= on-off 0) (set_tile "on-off" "OFF"))* r( @1 k, F! w2 u, W0 p! t q# t! w
- ((> on-off 0) (set_tile "on-off" "ON and Active"))2 t2 A1 a; Z1 Z, b3 ?8 n: b
- (T (set_tile "on-off" "ON and Inactive"))! \( V3 d; ~7 [6 w
- )
+ p6 l* p# O- q: m/ d+ `
2 M/ @6 a+ W# t1 z: c- ;; Define action for tiles* A4 }6 R, v+ v5 ?4 R3 G* f( r
- (set_action_tiles)1 P! h: X7 h( V7 K2 [
- & u! g2 U/ Z) [% }( J
- (setq dialog-state (start_dialog)), X6 E3 t( E4 c5 {& x' K; |
- (if (= dialog-state 0)
6 ~! ]9 I; L+ h( I' S3 |' m+ ~- f - (reset)
# V3 L& h, @. O) \& i8 w - )$ b2 `2 t2 n. v/ t- X
- (if (= dialog-state 1)" |7 J- X/ H3 Q
- (progn
. R P: x- g# h! U - (if (= ecolor 0) (setq ecolor "BYBLOCK")): f5 s+ {& w9 n5 c
- (if (= ecolor 256) (setq ecolor "BYLAYER"))# ~4 w) c$ s( z. X
- (command "_.chprop" ename ""7 F" M! ^" B% Q0 W |, ^
- "_la" elayer
* b# Z& m7 y1 K7 i# G8 p - "_c" ecolor ""
0 ]# K$ s/ h1 w- l - )
$ m' n3 {8 n9 Y; `- n - )5 d- h6 K# J* e f: W
- )
& j" r$ R' h/ ?( H - )" _' c0 y$ `$ p( z) w
- ;;2 ^: o# j: M9 y& O2 i- G3 C
- ;; Modify POLYLINE
% n: c) W( R" t f8 \) k4 v3 c% ] - ;;
( p4 t" i$ `8 K' i+ e - (defun modify_polyline ()
& H5 _3 h [; F$ B, R3 ]9 { - (modify_properties)
; c z! _; A6 o/ Z" u& |, j - (if (= ltgen "1")
. Q& [8 @% z' D T - (if (/= (logand bit70 128) 128) V$ y8 n1 L, v0 ?1 k( y6 a
- (setq bit70 (+ bit70 128))
! r% |: ]1 o2 g% L' Z. S. f# L: g - )
1 c# a& K) u( L$ v) c - )' A* g7 v: T& i% X; `
- (if (= ltgen "0")' y; y( w* e3 v( o/ ?/ `( c+ m
- (if (= (logand bit70 128) 128)( V! R1 V, \5 j9 S- V
- (setq bit70 (- bit70 128))2 c; c8 v5 t7 T
- )
+ D/ |- }8 p- j - )
# J& H# D- v+ _4 y: ?4 Y- b - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
; k9 l* h2 |" W8 l3 T( q; ?. T4 H' C - (entmod elist)
" g6 s' i/ \' [8 z' U. P; ~5 X - ;; Added to take care of updating Vertex information for color; c+ q5 o: g/ t7 y
- ;; and linetype.2 q P+ p; }) V% W7 U
- (setq save-ename ename save-elist elist)+ j |& m* _) f! U2 z
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
& c4 s7 I5 A1 r - (progn
6 F o9 j; ^9 b5 o) F( w! Y - (emod ecolor 62)' c6 `4 h" ~9 f! b( C6 m
- (emod eltype 6)
5 ]/ |& V1 i5 a, e7 S - (emod eltscale 48), j; C$ I7 \6 s0 @
- (entmod elist)/ z) C6 e, s7 {7 |' d
- )
7 K( \/ v- P/ c% v5 Q# [ - (progn5 t4 T2 n" O" r! \" A- I
- (setq ename (entnext save-ename))
# [# d0 o& v1 m, Y9 B - (setq elist (entget ename))
% d7 Z+ X* y0 X( @$ ]7 X1 f* q1 d" x/ A& e
w" B0 g8 ^' _/ s2 j. V- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
" C: d# F( h+ k) J - (emod ecolor 62), r5 u% t. n/ D) i
- (emod eltype 6)/ @# p1 J, e9 S. I) w* I2 T
- (emod eltscale 48)
4 ~# _# R! E H% |; e: P0 x' r. I - (entmod elist)4 Y0 Z# r- u# y( a# y
- (setq ename (entnext ename))
M- L, ]5 ?1 v7 k& }+ j - (setq elist (entget ename))
, a9 F& s4 F3 O4 F2 m - )- G8 g# G! m$ U! ?! m
- )
& H8 K2 r0 Y/ S - )0 D: l2 Y E% q4 @* Y, J4 w- l# |
- ;; Update the SEQEND; O/ ]( Z8 C$ }- i6 b0 f. s
- (if (= (cdr (assoc 0 elist)) "SEQEND")
: m: S& V u$ i6 S - (progn
2 `6 T" V U2 W `- x! M$ k" X - (emod ecolor 62). O, I+ x) l% P: a9 |
- (emod eltype 6)
4 o2 c1 {4 w9 S& c - (emod eltscale 48)
" n( X0 x5 c S& q2 u - (entmod elist)
5 A$ p/ e' \ V$ \% n. t* b - )
+ F) _) x4 y# a8 S1 b. V+ z# V0 V - )
# v6 W; F$ H( g( d$ ], P - ;; Go back to header.3 L x/ {) }; J5 B6 c; o" O
- (setq ename save-ename elist save-elist). z3 k; p% q# m% K0 C4 k' U
- ) Y* h: x9 P7 M' r1 L) p. T5 Q
- (entupd ename)
! @; ^6 Q+ c- y( V6 F/ R) } - )
Y# ?& f2 t$ s
2 I- u9 F4 t- X# }& ?/ O- ;; Increment vertex. Set tile values to next vertex# I; a4 Y) v% Y) @3 }: i: F
- ;;, F5 F, l' M$ {' M; O0 N. l4 e
- (defun next_vertex ()
6 Q% b) c$ F1 }% i. q - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
1 m3 {+ Q0 a+ {1 L( a% [! D8 k - (progn% t: @/ |" E5 f
- ;; If the counter reaches the number of vertices, \$ _4 q; m1 z2 {1 `. `
- ;; roll it over to zero again.* O h; H( K, W3 u" W. b
- (if (= ctr (cdr (assoc 90 vlist)))5 j6 Y3 S* K" l. K& {0 h$ o5 Y
- (setq ctr 0)! F) H1 G% F/ s& m/ b5 S7 G
- )* ]7 M9 r/ s: l% w
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))2 r6 L9 _! O$ h$ c& a& _
- (set_tile_vpt pointype)! ]( m5 ^2 r) d& K
- )
3 n( y5 L& ^5 ?/ n) k6 U+ B+ {7 ] - (progn
8 t3 Z" _9 Q/ \2 T S" ^( r: k - (setq vname (entnext vname))
1 m- r5 b: {; c( j - (setq vlist (entget vname)) U- z1 ^4 |9 a. J7 D9 B: ]
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
& E2 _0 D. J' M$ N9 \) O1 ?- e - (progn
H) W" `, D8 K% l9 k& O7 R - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
' k2 A! ^2 w* C0 U - (set_tile_vpt pointype)
+ B$ G) p7 _) R, D: J* x1 J/ `- {8 x - ), x$ C* ^! @6 y/ G
- (progn, Y& D1 k) S/ Z7 Z. F
- (setq vname (entnext ename))# u' ^$ W6 o+ ^* Q
- (setq vlist (entget vname))
; U$ {7 S; L' @0 T f7 y - (set_tile_vpt pointype)
; a5 \9 @5 x+ k& R$ J9 b - (set_tile "ctr" (itoa (setq ctr 1)))
j9 p; x& g/ v* t N: x- u - ), F P' C* w5 _$ ^2 f+ M
- )
8 o$ u: o( J2 T$ h - )1 u |: |) ^4 A' O, C
- )
3 q) _" T, y9 M$ G( y - )) P: _& {8 r& I% o
0 T/ g4 i5 H1 m( p1 J- V2 K$ ^- (defun ddpline (/ oldecho)" {5 r. x4 i0 J7 `2 _! S2 H' R
- (if (not (new_dialog "ddpline" dcl_id)) (exit))6 q L6 B$ X, h s \
- (set_tile_props)6 y% G( ]$ y- _# ~
- (set_tile_handle)
7 ~! q0 w% U+ l( K1 G, n - (setq bit70 (cdr (assoc 70 elist)))
) m9 p8 c4 N' ~ - (setq bit75 (cdr (assoc 75 elist)))
1 V8 ~* c, h5 W/ X% L - (cond! M! ` o8 \6 ~2 L
- ((= (logand bit70 8) 8) ; 3DPOLY' v$ S o# J( o6 a) ?' y) H: w* G; T
- (set_tile "ptype" (setq pltype "3D polyline")): Z4 B4 n3 X% t! a
- (setq pointype 0) ; WCS or ECS point values$ L5 P% o+ T/ R- _
- (mode_tile "fit" 1)6 A; I8 ?) l3 W& v" y
- (mode_tile "mesh" 1)
6 Y! _3 J- a9 f( e( F0 }( ` - (mode_tile "bezier" 1)
5 d7 u I' H7 C - (mode_tile "ltgen" 1)
; e ]! ?2 e( g' W - (set_tile "none" "1")4 M* x) f4 r6 H m# F( [+ ]. N. N
- (set_tile_closed)
! C8 A- i7 a% R( B( @ - (set_tile_fitsmooth)
4 t$ b6 l- w" }' }( P; Z% z% M - )
0 _ ]" c1 `6 X, O - ((= (logand bit70 16) 16) ; 3DMESH, h1 v. l: U( k4 ?6 B. u' u, ~3 U
- (set_tile "ptype" (setq pltype "3D mesh"))
( @, {9 N+ A) i! ~2 i - (setq pointype 0); ^% v( B+ A6 d3 p
- (mode_tile "pline" 1)
, E3 U2 A9 _$ c+ b4 y - (mode_tile "fit" 1)
* Z- Z( e0 A% ], a h - (mode_tile "ltgen" 1)
1 y5 c- q1 h4 s. z6 C& w - (setq m (1- (cdr (assoc 71 elist))))
0 ^2 n" ^' y% p" p; z - (setq n (1-(cdr (assoc 72 elist))))
' K! p* w/ k, U; ]% f* n - (setq u (1- (cdr (assoc 73 elist))))
% Q9 s8 ?' `5 ~; q - (if (< u 0) (setq u 0))
) N4 l: F! V3 a+ R8 j! n3 T- @6 S - (setq v (1- (cdr (assoc 74 elist))))
Q$ _! n) g1 ] - (if (< v 0) (setq v 0)), z, I! w5 B/ C# |' N m
- (set_tile "m" (itoa m))
7 @5 y0 r# l" ?2 w3 F - (set_tile "n" (itoa n))
, l3 m6 Z; Y9 x! J; N: ? - (set_tile "u" (itoa u))% b! f, ]( d0 `8 U7 j- l2 K7 R
- (set_tile "v" (itoa v))# I8 p! s+ D, D6 T# o7 C
- (set_tile_closed)0 e2 z/ q* D) g ]% R
- (set_tile_fitsmooth)8 t) M8 i% ~" X1 q7 z2 C
- )
8 J" y! X9 Z/ Y( N$ ]; y- ^ - ((= (logand bit70 64) 64) ; POLYFACE MESH
) m4 a0 M. H/ j. Z) {' j+ ]) } - (set_tile "ptype" (setq pltype "Polyface mesh"))
! j. Z: L6 F: c8 d6 F3 c5 q - (setq pointype 0)3 b+ n9 }5 b& p9 c4 ~8 g0 a! E
- (mode_tile "f-s" 1)4 @" e2 q9 R$ G3 a
- (mode_tile "mesh" 1)) l- H3 O/ y3 t- H0 B0 A) H
- (mode_tile "pline" 1)
* {0 k# ~$ f; b' ]- y - )$ X% |8 `+ H+ {7 _
- (T ; 2D POLYLINE0 y# j/ |$ O2 U& V5 a
- (set_tile "ptype" (setq pltype "2D polyline"))- ~6 F& g4 r4 a7 M/ @5 p
- (setq pointype 1)
0 w- z, {$ R. T) Z - (mode_tile "bezier" 1)7 b+ c; d; A$ } x: n
- (mode_tile "mesh" 1)
7 v4 {8 |2 D" \5 z, I7 G0 H - (if (= (logand bit70 128) 128)
) T- H6 \% Q' p - (set_tile "ltgen" (setq ltgen "1"))
/ ?4 p$ j3 H1 M1 U6 T7 q; N - )
$ j" n7 t) P$ l( R" j - (set_tile_closed)' z5 Z9 u/ |; }; ^" ]' W
- (set_tile_fitsmooth)& f% ^5 m; G# q3 M& t
- ). b$ o+ T, d; D7 t3 o
- )( H3 j3 a) L5 T) X
/ @/ n5 y3 ~- z: K- }- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")3 m" {$ V" n. N+ a1 i1 M6 p; q" |
- (progn9 A- z4 V; N& s+ P
- (if (not next) (setq vname ename)), M" B9 v* r e
- (setq next T)
+ P# I$ m& Z' n; W% B - (set_tile "ctr" (itoa (setq ctr 1)))% \' U$ @3 V) }- i$ f4 @ n3 Z
- (setq vlist (entget ename))( i; F& A6 @: g) E8 e2 @
- ). i+ }0 x- v; v
- (progn8 U/ @, W$ c2 H) B
- (if (not next) (setq vname (entnext ename)))
( R9 ], l( D6 N$ |; P n4 G4 T - (setq next T)
+ V1 E1 N0 n# t - (set_tile "ctr" (itoa (setq ctr 1)))
. }! L% K9 `2 |7 c; R - (setq vlist (entget vname))$ _' U% y9 \5 N1 M. Y: d0 P W
- )
7 K6 k5 I" m, l - )
; F2 ]- ]+ t8 G3 d4 E - (set_tile_vpt pointype). u# g" n# j$ B3 x- O$ F
- ;; Define action for tiles# o$ X* |" w" F$ X1 c" S4 L$ B
- (set_action_tiles)
j$ o7 C8 L1 Z - (setq dialog-state (start_dialog))' |# |! y& m( F2 q
- 2 J4 s9 L& I3 A f. N& _
- (if (= dialog-state 0)
0 s. m/ w2 S R, h2 V - (reset)
3 w1 c* X) b! Y ]1 ]& I2 y1 r - ); u0 s6 A4 H$ D- D
- (if (= dialog-state 1)& i) u6 A* o& W# u/ t* n" x
- (progn- `& D- r. l2 y, m T# a& s% W- [& E
- (modify_polyline)- ~, F- T) s! W
- (if (or (= pltype "2D polyline")9 Q3 P8 o5 P* g( |/ e
- (= pltype "3D polyline"), n7 v0 M, ]7 N1 u4 F, L
- )
+ ]1 z+ I' h+ {. u; X- w, J3 d - (progn
7 ?/ O! G* F* Y4 b4 s0 P/ Q - (command "_.pedit" ename)
9 ^" ?7 }( [! D - (if (= spltype 0) (command "_d"))
' k( {- {! I+ ~: _ - (if (= spltype 1) (command "_f"))
. ?% R* K2 l( O. j, u, G( q - (if (or (= spltype 5)
( H1 J% @- L& {' t' B - (= spltype 6); b' a4 Q1 p; m l; {
- )
* t( ?. u& T' C& j - (progn( c5 K0 ?: k1 }7 K1 `1 |; o
- (setvar "splinetype" spltype)
% v: U2 }+ V) P( a) |! j - (command "_s")
( c9 e% L% H3 p, C. n - )
. g. `6 V1 [, P0 [4 q0 P - )& T) Z5 @5 H8 Y% z. i
- (if (= closed "0")/ q9 [0 i9 @; a$ P- `$ {/ [
- (command "_o")
( |. t5 \$ b: `" ~. z - (command "_c"), l4 U# M7 U1 m
- )! F- [0 Q6 Z0 {' o( t K$ w1 u
- (command "")
( \, P6 M& @' ` U8 g+ {
0 R* {1 z7 G2 X# ^# ^- (if (= spltype 0)4 A5 A+ U2 q& u4 l7 Z6 ^
- (progn- W* _$ E. W1 d! D8 I
- (setq oldecho (getvar "cmdecho"))
- E/ P: F. e) y" y; ^+ j - (command "_cmdecho" 0)
' l( }, Y& P% @) D8 w, T, A. S - (command "_convertpoly" "_light" ename "")
/ f8 m& A! @ u. |/ P - (command "_cmdecho" oldecho)% W4 p, B! t: M
- ). c3 d- W$ m5 O( Y% [$ Y/ s
- ) ]5 v$ V0 Y; G* y9 o% T) \9 [- d
- )1 l: b$ [8 S/ E8 E/ J8 w4 K4 s
- ) [! ~* d f, {8 q% T3 S/ \. F
- (if (= pltype "3D mesh"): ~. r" X! f$ I; _$ @
- (progn, K" @- i$ p0 s Q
- (command "_.pedit" ename)
% U& ]6 S# O% T" \8 o9 W, i - (if (= spltype 0) (command "_d")); X- J; m& L4 Y) ^" C: F' b- n4 ]
- (if (or (= spltype 5)! Z" T- N! T1 _0 {6 l% N
- (= spltype 6)1 l0 E# P! p% Y) w( S
- (= spltype 8)
% F$ U0 k) }5 o. P - )# r3 V2 i$ I7 ~
- (progn9 i* D2 I: t) q/ Z0 C1 l
- (setvar "surftype" spltype)% ] x* Q" k! M' c/ k# ?
- (setvar "surfu" u)
/ U# Q. @0 v; M$ V. G* f - (setvar "surfv" v)
0 q9 V: I+ h0 c! C* i7 I - (command "_s")
& r ^$ d8 g; S; ?/ t6 }1 x7 t - )
C4 W3 E3 K; K; T( S& A+ R - )
6 ^2 B; R' }8 x% q6 v- o - (if (/= closedm old-closedm): V2 G0 {, e( p1 W& r' ^( [
- (command "_m")
5 i8 t" y3 h/ a, ^! U) e - )
* v: ~# D; o6 I - (if (/= closedn old-closedn)
7 W& B% e5 w" A, w, \: f8 a; w - (command "_n")
5 _0 h9 R& s. q# |6 z - )3 L- k2 d0 Y! p
- (command "")2 N& K" P0 h- _; s
- )8 m% ]3 h7 N$ Z/ t1 ^4 v& J1 h
- )6 R7 H6 r: s9 k% t0 m7 M& u1 k
- )
$ \$ A( M$ C: J3 ^2 ^- s) I - )/ n0 b' b, F" x7 ]' Y4 p
- )
6 Y# v' Q, [8 J. f - ;;
0 ~/ M1 a8 }, K4 K0 a, L* b9 r' I - ;; All the spline data is contained in a single elist. We must do some
6 W, P8 }2 M3 [6 C4 c - ;; tricky list processing to loop through the elist in order to display
' I; L6 I8 k3 [) F: m) k4 a - ;; all of the control points.3 P# b* a& ?# g4 E4 M. x
- ;;' _- n) |) F: }4 U2 V- M+ P4 u
- ;; The structure of the elist is different for rational and non-rational1 t* s! a- D9 W* `
- ;; splines. Therefore, we check the rational spline flag.- ]6 K' p+ d( ~# [+ W4 j
- ;;% m0 _4 [8 g2 h. M
- (defun next_cntl_pt ()3 c4 u/ v ^' Q4 L* i
- (setq elem-no 0) ;; elem-no = element counter, D8 Y0 F7 K9 _+ C% a- C+ j4 @
- (if (= first-10-time 1) ;; If first time, find location of first$ c; x+ y& n$ k
- (foreach list_item elist ;; cntl point element in elist) W; c s* J: T$ E6 o1 \& q
- (progn
7 R8 Q4 y A+ v# ] - (setq elem-no (+ 1 elem-no)): Y& @$ s; _# W- ]6 J* L" d
- (if (= (car list_item) 10)+ D N7 J0 x* f( ~) X5 V D
- (progn
3 I* A7 i; ?2 ^/ A% D8 O" p - (if (= first-10-time 1)5 B3 ?2 n( c1 I' k
- (progn
" t" @ }# S! c- E! \6 V - (setq first-10-rec (- elem-no 1))( @3 ~: Z# V# c) K: s3 L
- (setq first-10-time 0)3 T# z7 \, t! {" V- y
- (if (= rational_spl_flag 1) ;; if rational+ Y. N2 K6 v# ?, m2 ^
- (setq cur-10-rec (+ elem-no 1))
) U/ ^- \% `1 t t - (setq cur-10-rec elem-no)+ A7 f9 h& T6 E" O
- )
: a/ {7 P& d. W/ n1 H4 |) L! [( R - )
; r& E: Z2 A J& i6 W' W - )
" s: e8 ~6 @7 d; e; ?" s1 S - )0 I. y9 G4 X; H& S1 T2 Q+ \; i
- )
D- f8 n/ `$ r2 H0 f, P1 \) |' W p) s - )4 l* P, `% \) n
- )
- x8 Q6 q. O6 w- q% h* ~( d - )
- B( b" \" Y2 N2 S - ;; Now we know the location of the first "10" record; it's stored: \ H, @/ j% M' I! [
- ;; in first-10-rec. The first 10 record was already displayed when
; W+ Q" k1 F1 r {' N0 v% b - ;; the dialog first came up so let's display the second one when
' h& o6 m- U2 ^0 \ - ;; the user presses the "next" button (the first time through).
4 v! r$ |& v {0 @( G& c% z - ;;
! G9 h* Z) M( j; M - (setq temprec (nth cur-10-rec elist))& x; ]3 U0 J" p
- ;;- ^4 d* m" D7 h" K
- (if (= (car temprec) 10) ;; if 10 record
5 O* S. M3 e; T0 ? - (progn
9 m: a' {7 g" _8 ~5 H - (if (= rational_spl_flag 1) ;; if rational spline
3 H- w& l, `! L# X& v' b$ n1 k - (progn2 s0 l' a4 \" z5 K. p7 l5 M2 C
- (setq tempweight (nth (+ cur-10-rec 1) elist))
4 q' M5 | b @! H! a - (setq cur-10-rec (+ 2 cur-10-rec))" B$ E* q, U/ m$ m
- )
! ?9 x9 e; v" U6 |" D# Y7 w( k% Z% L - (progn ;; else7 U# A# @0 p$ M
- (setq cur-10-rec (+ 1 cur-10-rec))+ f$ X. X( _. e2 X% w: S
- ), B' S% k& f( S
- )
8 l+ W0 \+ ?/ A% e - ) ;; end if rational spline
: f4 k. U/ n9 e - (progn ;; else reset counters
7 [! U9 F+ M; W5 F - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec5 K. |! }6 p- v& q$ A1 L
- (setq tempweight (nth (+ first-10-rec 1) elist))% ^; g3 b1 E l3 l8 r) D3 O9 g+ f+ A
- (setq cntl-pt-indicator 0)
. X- |$ ]& ]' G - (if (= rational_spl_flag 1) ;; if rational
" h) \/ {: k4 n - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
8 \$ X* e# A) J# c6 ? - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
: Y0 n8 E9 d1 m% f: U - ). \" U" _" i& H6 \& d+ A7 H
- )
, U! k; g' C5 y, d7 U2 d* j - ) ;; end if 10 record3 r; x* H& T% K9 ]+ ?- m+ T: V2 _' x
. ~! g. x$ s5 S6 c# T$ c* [ ~& h- ;; Display cntl point, weight and ctr. Increment ctr.4 f. I' S' u+ T" v$ u
- (setq cntl-pt (cdr temprec))" ^5 L* a( x! m" ?2 c
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
7 a) B& ~) C4 \2 ]+ ?' K9 c/ e - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))+ X6 @8 @: k r) f# K& P
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
' h5 V/ D8 P$ o- { - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))' j% B0 d& f8 f; |3 |* L
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
1 E" z7 j& p: u - (if (= rational_spl_flag 1) ;; if rational7 J( c- m! G$ L6 r$ s2 c$ C
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
% R; V% e! a& L+ ] - (mode_tile "weight_text" 1) ;; disable wght# A! V6 k2 ]4 X# q+ u8 W- j+ a( n
- )& @- Q2 n. |! C- u: u
- )
' m% c. t e& R; i9 a$ v - ;;4 L/ `. h" K M
- ;; All the spline info is contained in a single elist. We must do some
# y6 c( G0 Q! ~' @: N9 W4 L - ;; tricky list processing to loop through the elist in order to display% g9 \( q. V$ O {# T
- ;; all of the user data points.
5 e& U7 N- E/ R8 m0 A3 q - ;;& \6 y( p0 W$ L3 @ u% C
- (defun next_data_pt ()6 e" j5 x5 `2 ?3 G% Q
- (setq elem-no 0) ;; elem-no = element counter
J; A8 Y- a3 }) y8 H - (if (= first-11-time 1) ;; If first time, find location of first
- }/ Q% L: x0 z. c: P3 ^ - (foreach list_item elist ;; data point element in elist( ^7 S" g: _) k4 E
- (progn
: o* ]- @, m$ }: ~* F - (setq elem-no (+ 1 elem-no)); D7 j& U0 } b* `
- (if (= (car list_item) 11)) ?3 |) @/ Q' B6 o2 F3 S7 ]- y
- (progn
/ G% D5 T8 q, M! M) F2 u: I2 { - (if (= first-11-time 1)
3 C$ n# M6 L! [$ g( ^" z - (progn
" W/ y- U( f' T$ v3 \2 X - (setq first-11-rec (- elem-no 1))
( c$ h; m" i5 H$ X) t; r. m - (setq cur-11-rec elem-no): x# X& b0 b( k, {7 j
- (setq first-11-time 0)
" V& j4 m4 o' r+ s4 m9 f& I* a+ N" ` - )/ _7 {$ K4 W; ]3 l; c8 h% y
- )- W; y2 `8 s3 ?5 j
- )( y2 l8 m# L8 `
- )
$ ?6 I$ N( g B7 s, e - )% U: ~" i( ~, Y, C
- )
" [5 @; V% M; h; r - )9 S; ^* B9 T1 U& H |
- (setq temprec (nth cur-11-rec elist))- q; E+ G6 B, m, {/ Q, R* x/ p
- ;; If it's not a DXF "11" element then we've gone past the last
; r/ u; T1 q3 N - ;; "11" element. Go back to first "11" element. Reset counters.7 ~( b. p1 {2 C
- (if (= (car temprec) 11)% A1 U5 X1 E$ a2 h2 S5 Q
- (setq data-pt (cdr temprec))
7 h4 e1 M% L( h" Y2 S* k - (progn ;; else! @% K- A3 O5 l+ w9 w" M6 _1 `
- (setq data-pt (cdr (nth first-11-rec elist)))
6 G/ M% [7 u8 n' ] - (setq cur-11-rec first-11-rec)& |. B4 h0 _7 E' D, }! c
- (setq data-pt-indicator 0)
" S0 ?; W! a5 y8 R8 c2 A$ X8 { - )5 e; I. L1 t. x
- )
' m5 _4 ?5 P* V" {7 H' i1 H - ;; Display data point and ctr. Increment counters.9 Z' W1 e& D3 d9 p
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))# n* q" i* z# K* d- |9 s8 k8 h: D
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
6 x0 [5 K' u8 B3 S# _& p - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
1 N4 ?- r* A) R3 Z* e - (setq data-pt-indicator (+ 1 data-pt-indicator))
8 ]3 n% J: f* {+ k( Q( U - (set_tile "data_ctr" (itoa data-pt-indicator))
7 a9 u5 y+ t! {, v' w! L1 F7 I9 e - (setq cur-11-rec (+ 1 cur-11-rec))
5 \2 h- r, ?6 C! t& i: z - )/ N: X' n. v' y# a) L, j
- ;; f1 Q p/ X" |! i4 d
- ;; Modify SPLINE
) x. c6 E8 b, J5 W/ M& a/ Z8 p/ E" i - ;;0 c! j) Y* A8 z
- (defun modify_spline ()
- _( k z r) C* X - (modify_prop_geom)
9 ?4 d9 R/ q7 `, |2 o: g. R - (entmod elist)
& Q) Y/ v9 g2 L2 L5 h - )
?5 W7 }% U& G7 @
6 T! s* E, U$ A9 w/ c4 E" |$ G- (defun ddspline ()
$ v* i3 R# s1 T8 p* ` - (if (not (new_dialog "ddspline" dcl_id)) (exit))
, ^) @$ e$ u( u" v! a - (set_tile_props)! c. e& V, T2 k( D
- (set_tile_handle)1 _3 O) t( [, s
- (set_tile_spline_props)
" J0 a# H* p% J7 b& g - ;; Display first control point8 Y7 \4 B3 n0 ^5 K
- (set_tile_cntl_pt)* G$ M! ~. ?) z* B
- ;; Display first data point: Y( N" n+ H: q
- (set_tile_data_pt)
( C# g! G8 e' C8 T
3 r7 _- |4 X6 X& Z- ;; Initialize flags to indicate first time through the dialog.- n: y' |( g5 U8 ?7 ? C
- ;; For control points and user data points the "next" buttons2 T0 d2 P W+ u3 N& b4 Z. P. x
- ;; in the dialog call the appropriate functions.# k6 e) S+ R' p1 B. A
- (setq first-10-time 1)$ N' \/ W* e A1 c1 e& s9 s& D0 Q
- (setq first-11-time 1)3 F' b. l5 E: r7 F4 k2 a
- ;; initialize control point number counter
?8 H8 N! V$ }0 _& T2 H. @+ D - (setq cntl-pt-indicator 1)
" x5 s' s1 _& g' d7 a; K, R - (setq data-pt-indicator 1) m! e* \. J3 {
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))/ F% \. O, C1 X0 r& \
- (set_tile "data_ctr" (itoa data-pt-indicator))
+ ?+ A4 p1 H# Q: t+ O - (set_action_tiles)' V4 c. k) w5 T7 m
- (setq dialog-state (start_dialog)): n/ d2 b: ^/ \9 y$ c
- 4 H) M! H6 t5 v% a8 f0 |9 a: p! {
- (if (= dialog-state 0)) E0 p" ?" |! C1 p* h
- (reset) ~/ r0 ] v) L2 d! h' i# R1 U8 b5 d
- )% R* ~+ G) }& E+ ^: f
- (if (= dialog-state 1)
; m4 A5 n, h9 }8 Z - (modify_spline)
% q/ m. A2 G8 g8 ~ e0 n' F* e; [ - )# w& N% v$ s ]7 R
- )" u& @ p, a' }# z" R+ ]
+ M. w$ k+ a" e D$ s$ Z- ;;6 i b$ E% G2 e) g% _1 K$ w
- ;; Modify DIMENSION
0 X3 b0 ?2 T# ]2 _' T - ;;9 G6 z0 p4 O- h4 }
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
+ ^/ q& L! o" m& p - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist- A4 ^" d# y) O4 t& w
- dimtype dimsvcurset): X0 E7 b0 F J/ [* t! S; g: H
- (setq dimtype "DDIMEN"
+ i( u& @/ V$ ~ Y - dimsvcurset (ddimen_dimsty_restore)
^; L+ k- R/ X6 O. G - )0 f" v4 N% @. t) i( d0 z) a3 e
- (if (not (new_dialog "ddimen" dcl_id)) (exit))
P( k; i- a: y6 E0 o# L3 c% e+ w - (set_tile_props)
: |/ u( e3 p3 [: f: R" s* m6 V - (set_dimen_props)
' I; T$ l2 {2 X5 H, o1 a; A# ?9 q - (setq dimtext (cdr (assoc 1 elist)))+ B6 X2 L" F& b6 C2 f7 o
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))# z' e; ?6 w; b! ?* y1 I
- (set_tile_handle): s/ K9 S4 ?' h
- ;; Define action for tiles
/ y+ N L) T+ T% F6 H* P! O - (set_action_tiles)1 _- v( t+ z8 O/ \; T
- . X. u1 L+ X- I L x% z# W
- ;; Set initial focus to text edit box.; t1 A+ V5 B9 ?$ z4 n
- (mode_tile "t_string" 2)
7 z3 A) |, V' g2 ?7 {1 | - " O4 ]5 A* J- L1 b( r% y
- (setq dialog-state (start_dialog))# {7 ~" N& x5 k7 } l. G1 X
- (if (= dialog-state 0)
0 F. R; ]3 M Q' w - (if (= ddimmt 1)
' r8 d) E% h1 [+ b - (reset)
7 |' d5 l; T9 A$ U# w+ Z' k( }5 t1 x - ) T3 ~5 S2 g7 \
- )
; V" Y! n) x) u/ X4 [1 V - (if (= dialog-state 1)
- L: e* J' N4 g& r& D) _# m - (progn7 ~4 r7 X% c- T% B' E( M0 M9 ?
- (if (/= dimsty stname)* ^/ |3 P. F+ S
- (progn
3 {. L k' L0 R4 X2 \ x. } - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
- N; I' n9 [! ^ - ; doesn't have it.' H$ g$ I& g/ ?- ~- d5 z4 R
- (if (null (assoc 3 elist))2 ^3 k* ^! }" ^; t% K+ e8 N1 n
- (setq elist (append elist (list (cons 3 dimsty))))4 |, l6 W/ g- {
- ; else just replace it.
+ G& W0 T8 K, ~3 \$ G9 a# Z. K - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
7 V. V# t) _; P$ p - )6 O' r' v: V7 p) G* }3 v
- ; refresh sv_dvlist with new dimstyle.
; z2 w0 f2 d# [) T+ } - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
! b& P& l$ Q4 {9 U) Q# a2 v+ x5 _; x$ E - )
- W$ [5 y" I. O - )2 h' K; {( t! M' g: v
- (if (not (null dimlist)) ; attempted to change dimvars! }; m4 `: J9 |; |
- (ddimen_complist sv_dvlist dimlist dimtbl)
" \, O/ M0 `; l( O- V2 N - )
: Q* N. e' z" k4 P% c+ q - ; Modify dimension text
$ p$ B+ j8 J' e* | - (if (/= dimtext text)8 O; v" u9 g1 Q2 W. N$ \* m+ k
- (progn3 ?; D( A4 j$ M
- (setq dimtext (if (= text "<>") "" text)) W- A) f" h6 o* s
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
, u' @! O! o, f9 z9 {. p- ~2 O, w# J - ): q$ U% ^; @" [- @" ]8 H
- )5 u5 w O& F0 _+ A
- (modify_properties)
; A U; g: A& l2 B2 E/ N: F( B1 o - (entmod elist)
2 Y4 ?$ _3 s! A$ E$ C! M - )
6 y- [! K l8 ]# {7 I0 ]2 g - ), W) e, S0 t8 b8 W( Z
- (if (= dialog-state 4)
1 O( ?* O. L5 L - (progn W+ L f: ?( u7 a% V- I
- (setq ddimmt 1)7 z3 Q9 e. K: a3 F
- (if (/= dimsty stname)
4 ~, p5 c: J p+ P9 }2 i% T: s" d1 K - (progn
0 }# d2 A6 l+ b - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case, R% o# o# | q4 ^
- ; doesn't have it.
, `1 H: ^$ R3 b* Y- ^ - (if (null (assoc 3 elist))7 H3 T! N8 W& W7 {$ p
- (setq elist (append elist (list (cons 3 dimsty)))). D/ L9 h# _& X: W
- ; else just replace it." c% Z: W h* G
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))# }) h; _0 p/ Q# ?& c
- )% s( E0 v1 q3 |& A+ |6 o
- ; refresh sv_dvlist with new dimstyle.
6 l" F/ ^5 Q6 R1 I - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
3 h' ?/ m$ [. E9 j7 D; r7 B - )+ @: l- k$ v( G! ~& j3 K
- ); [) f. _2 V0 O9 H
- (if (not (null dimlist)) ; attempted to change dimvars
8 w' r- t/ e9 p3 w8 o8 w' K, E' q - (ddimen_complist sv_dvlist dimlist dimtbl)
! f. ]" P r, g - ). z2 |3 \7 k$ f5 x/ F' D! h! P
- ; Modify dimension text0 }$ X" O5 D0 [. ~
- (if (/= dimtext text)5 V+ t: t1 d* O% u
- (progn9 |) ]" l/ [5 @8 r) X$ ?2 x- S
- (setq dimtext (if (= text "<>") "" text))
: J" e7 |( S4 t - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))6 H0 z0 w9 Z) m/ N5 }
- ). X- \: U [( b7 h9 ^$ y
- )
% x3 t: U/ h$ |) ^( x9 u/ q% L - (modify_properties)
2 a+ i: T" R/ j6 s$ Y6 b' `! Z - (entmod elist)6 v0 K. Z$ S! l6 q- X J; J/ J& B
- (safe_ddedit ename)& Z/ _+ Y; T% N9 p& p" ^2 K, Y
- (setq elist (entget ename))% \9 F$ s* q. v3 l' X
- (ddimen)
3 T A8 e, K& b/ n) N- D - )
6 D9 w% a$ H2 {5 R$ Q& q4 V - ) ~) b' W6 H" R7 O3 c7 K6 A
- (ddimen_setvars dimsvcurset) ; Prepare to exit
% }% ] M0 R8 M4 v2 I2 G8 r4 W - )/ G* i3 u7 }9 `8 X
0 z( Z! i) ]4 e- m5 M- ;;
5 S* A; s# G- e$ j* i - ;; Modify TOLERANCE" f3 ~& L# A9 a6 q. s; U
- ;;
7 W8 C/ s, _, [5 i1 v; z - (defun ddtolerance (/ a stname n dimtbl
. Q9 j7 Z* d8 D$ H G3 A; u - dimsty dimlist dimovr sv_dvlist stlist dimtype
) W/ ]: V- q: E/ l* q- R - dimsvcurset)
# P- g- x. s' r9 A7 o( m - (setq dimtype "DDTOLERANCE"! [* e3 @% H( v$ g$ W" I8 x* y9 [
- dimsvcurset (ddimen_dimsty_restore)
- ^7 e+ y% [8 ^: B% u' s5 t9 \ - )
' M1 _7 e* R: k1 n3 j8 a/ S W - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
6 I- q4 w/ w! `2 \) \7 q/ s - (set_tile_props)& [' n% W7 M6 W' w- x
- (set_dimen_props)
. M1 I: K1 ]: }, U* L( Y4 T, ` - (set_tile_handle) B0 N$ ?( {: M7 @) L
- (set_action_tiles)
5 M+ X. `! v& j0 E1 ? - (setq dialog-state (start_dialog))
6 m! G, U7 \1 b5 `' m - (if (= dialog-state 0)
; h1 _! C" h+ e - (if (= ddimmt 1)
" A# M! L9 x: G7 W - (reset)
3 r$ I( b+ x/ q0 ` - ): R0 Q. f: g3 I; e
- )! P( n- h9 e4 U$ r
- (if (= dialog-state 1)
/ _2 ?3 S( e. G! b' q8 w ?: v - (progn- ^2 l& |" i, N2 c) @
- (if (/= dimsty stname), d' i. @: I% a. x& x7 e& c# e" f# s& j
- (progn
( O5 o# X! n8 ?; C$ L - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case" t9 p/ ?0 P& b( E
- ; doesn't have it./ k$ K3 Z+ f% x
- (if (null (assoc 3 elist))+ H9 F# o; L: q/ L
- (setq elist (append elist (list (cons 3 dimsty))))
$ _ k% G2 _$ |6 a7 U6 B( q - ; else just replace it.- U7 r0 H; r( E9 F' E; f* l
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))' X! {$ q0 i3 p- `, |, i2 J7 y
- )
: e7 _+ n. Q4 C - ; refresh sv_dvlist with new dimstyle.
9 g" P- L8 S7 _ - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
/ U2 p: L4 e( ^; S# g+ F7 w - )
" C- B5 s# K+ w' v/ | - )9 }1 [& a/ z1 D( H
- (if (not (null dimlist)) ; attempted to change dimvars0 g# R! b: X# C3 S" _. C# i# Q M' d
- (ddimen_complist sv_dvlist dimlist dimtbl); e' x+ D4 ?! D3 B5 ~( L! v6 Z
- )" A0 p7 c1 F3 `4 \$ W
- (modify_prop_geom); `2 \3 t3 K& i$ Q; c
- (entmod elist)
8 a5 \. O. w) q6 g1 R - )
f8 u5 V. D( b5 n% n" y - )& D% l1 ?* R; l7 {5 W
- (if (= dialog-state 4)( K% x* N. Y; }: |, B0 x$ ?( E
- (progn
1 V0 K0 O- p4 R: @; Z8 W5 K0 i - (setq ddimmt 1)( E0 q' a- I. L" z: r( H9 j- `
- (if (/= dimsty stname)6 s- A0 c# A. T. h
- (progn
% P1 d* T- {# e. {9 i - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
$ {" n/ U4 T& x% h# Z: M - ; doesn't have it.
& r1 x+ t( K- l6 F - (if (null (assoc 3 elist)), U/ F+ {. _$ O" @) _
- (setq elist (append elist (list (cons 3 dimsty))))! T: p+ k' s; S5 H# ] D6 C/ d
- ; else just replace it.4 g8 b* Q+ B6 P6 N
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
8 X. S" {" A6 x$ c3 n - )
6 s9 b2 j$ A& I. I! f$ e7 J, G - ; refresh sv_dvlist with new dimstyle.3 t$ R! t4 k5 B: U: z3 l0 m) z
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
3 \( E8 W0 @' G - )
8 j; [( t( `" y0 W2 P: X$ { - )
* v T, }% C9 ^8 M7 y( Y- S - (if (not (null dimlist)) ; attempted to change dimvars$ Y4 ^% K+ S( F* q' T( f- r
- (ddimen_complist sv_dvlist dimlist dimtbl)
6 Y; O* B, s* Q$ Y( } - )
, n- ~& |! C- h - (modify_properties). m% I: T( {* e! m- e" V$ y
- (entmod elist)
: h1 H: v. ]: L' V# o% k+ K - (safe_ddedit ename)8 s! n" X& m+ t/ _- v( [& T# B
- (setq elist (entget ename))2 C% Y/ l0 S c; h# H0 P2 S: N
- (ddtolerance)& a Q1 u" M$ t7 p
- )
# L" t( ^4 V& W- _% c - )- f; L! e& ^4 g+ U7 C' `% T R% H. E1 y
- (ddimen_setvars dimsvcurset) ; Prepare to exit
9 z" N, z$ h: M! W6 }+ c# D. \ - )! B+ j" n g# E: g7 L& @
- / I! u; c) d6 V1 l
- ;;' s3 Y- o, y+ l0 ^6 }8 W
- ;; ddimen_dlg - jump to ADS ddim module
' F4 C1 c! ?+ a8 v2 x# { - ;;
u. ?' V; T- U0 A& P; Z - % g# F; ^. Y& U, {' Z
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
9 x& L6 X: f9 r; u- ?! _/ i
! a: } Y3 B' G( s- ; Jump to DDIM with overrides if any.
0 C' T, b: x1 ^ - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry! G" b# M8 z/ X2 ^% I- x
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format$ \4 q* {/ \# _ _. ]( b s
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation) h; ^/ W# _& B- G y
- ); P+ Z" P |' B+ ~4 b g) t8 C, T
- ) K9 Z4 e6 X1 e7 d3 Q$ ?' Z" T% c! S
; n% M$ d U3 @% o- ;;' T$ | M5 ~. d2 U b
- ;; Dimension variables updated are stored as overrides.8 Y% e0 N: w" [) C0 ?1 e; r
- ;;
# |5 h$ A6 B) V0 j7 C# `; W - 4 [( Z7 R2 c9 X2 L. V7 B0 A
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
- s' J) z. j' ?* Z - dv dime commandIssued)
a: c) Z! @8 q4 A - + x1 [2 Y- o" s+ I( B
- ; Here we skip the following first three items:
* C5 S# P3 n9 r, I6 u/ q0 v - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
$ ?. _1 E' K% q$ l - ;' | L4 \0 d& R+ ^
- ; The list comparison immediately begins with dimvar.6 [4 r) X! {/ e1 O5 b$ B- F
- ;. R: B. p1 u; u2 {6 C3 {2 R3 U
- ; dimolist - original states of dimvars
3 M1 C1 X: I( }) U1 A2 g& t/ } - ; dimnlist - new dimvar list which is of the resbuf's
# A& f/ C' ]* w' N4 g8 q' U# @ - ; dime - entity name for the dimension- I. H- z; {+ ^; q' {
- ; odvar - value of dimvar for the dimolist- U. r4 D3 ]4 n+ M! b
- ; ndvar - value of dimvar for the dimnlist
6 ^" S% P+ ~- [5 w0 M9 n4 ~% u( A
3 i# I/ v E' y+ D- (setq i 3$ ?: I1 Z" m, N! @6 J/ M
- dime (cdr (assoc -1 elist))
# L9 `. F2 l/ M" m7 y - )! E! f" M- D( y: D5 Q) E( P: n3 [
- (while (setq odvar (cdr (nth i dimolist)))
2 N( R- b4 ]2 Y* y0 z# w3 G% p- [; K - (progn
1 Y/ z, }" R2 a$ t1 d3 u9 g - (setq ndvar (cdr (nth i dimnlist)))8 X. o5 M1 U# `) P6 O0 W, w7 X
- (setq dv (nth i dimtbl))
' F- q: v6 a' d$ ?2 p' F - (if (eq dv "dimtxsty")% |7 h6 s( k- K
- (setq odvar (cdr (assoc 2 (entget odvar)))
7 w( d- o0 ^! l: _% ?% i - ndvar (cdr (assoc 2 (entget ndvar)))
; m, r: n. t% }9 H. l9 T - )
9 K* V3 D" Q4 \3 Q - )
# y+ {- m- o8 Z2 y/ u
" @, \7 R5 s9 g3 z& C" p' ~ U2 m- ;. I3 \" ^1 V% `: Z; m
- ; In order for DIMOVERRRIDE to operate correctly with string
7 n$ y7 D+ }" K; G0 B8 ^( E; A - ; based dimvars, we must pass "." versus NULL strings.
/ B7 a) o8 f% o: \+ G4 R) H2 v - ; In this case ndvar is the new dimvar value the user wishes* @% ]% q1 ]! J' M+ w
- ; to update on selected dimensions.
; A6 c# t6 U8 g5 {$ p$ [' E - ;
+ ?5 e% M" Q# e7 g" o - (if (/= ndvar odvar)
, |4 q j+ o" T* L( p2 \ - (if (= 'STR (type ndvar))
4 p) }0 ]2 K( f: N8 P - (if (= ndvar "")
: B o. F( {1 K, K3 s: Y - (setq ndvar "."))))
8 }+ T+ f" {1 Z, E - " i Y/ W: }( l/ j8 x2 ]2 n
- (if (/= ndvar odvar)
/ [4 s( x5 s2 |2 x& q' w2 a6 v - (progn
0 r* A' E5 D1 j u) W7 p, j - (setq dv (strcat "_" dv))
, B- C n9 P' y$ g - ;
2 X% y# i7 H4 [4 ` - ; Start the dimoverride command% r7 f9 j; [: ]7 H% ]$ c9 C8 P
- ;
: W- y/ g8 A- U. P( N0 w o - (if (not commandIssued)
& \& t( ?+ K1 [. n1 d - (progn
8 e: ~! S- @8 z' N! W: w - (command "_.dimoverride")
?2 C% D9 B2 u$ E* D& ^, I - (setq commandIssued "T")( N3 M) w2 O3 h. h5 A# X% r
- )' U2 T+ }' G* B! L
- )
0 |0 {. ~+ ^& C - ;' A: A1 @$ d) g. C* q6 T; Y9 h
- ; Issue dim overrides
1 H! i+ J0 f$ x V - ;6 m4 l4 ]# O' G( H* H# a
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))4 j5 `/ O }7 K; g" ~' O# M# G% O
- (or (= ndvar 0) (= ndvar 256))
2 r( S- B8 C" \6 a- S- { - )1 h# r: k% ~" }' s& o/ Z: |
- (progn# K, e4 u* K0 x
- (if (= 0 ndvar) (command dv "BYBLOCK"))4 w$ z( ^2 B& r3 b4 b
- (if (= 256 ndvar) (command dv "BYLAYER"))6 T% n4 j! C& D$ {( s
- )
8 L# h1 T+ O ?, K; p" i* z - (command dv ndvar)
. w6 z Y7 x2 D& {4 u5 w [* N# f4 ~" J - )$ H0 f% ^5 M6 w n
- )
, j o9 `0 \5 | - )0 p5 j2 D2 M1 Q* Q' g
- (setq i (1+ i))
/ \( @0 {% G2 h1 g7 n5 n5 `. h - )7 b+ T+ @0 D* K5 I" V: J" u6 }
- )1 X4 ?$ Q' N9 X1 h4 `
- ;% f+ q9 `' s7 y7 g( G
- ; Select Entity and terminate command
8 q z! h/ S: \* Y - ;3 D5 \. ]; {$ ?5 m, q( |+ }. U
- (if commandIssued
6 N, T, U n1 {( ?' J0 T& Q; | - (command "" dime "")
' Y' _& P6 d& j8 z - )
8 Q Z* Y1 s2 O$ V2 ^" I - )
8 U% F8 e/ a# q# [9 H0 K - 8 R+ J5 Q, U2 x; \3 a( [0 z6 r
- ;;+ J$ i' T2 W& L7 r- L: X" P8 [4 Y
- ;; Get style name currently selected style name.! q+ ?5 L; G0 F0 |& n+ r( }
- ;;
5 G2 P. i. A; J, y3 R/ R4 ^% I
4 z2 S3 p* z% o! E- (defun ddimen_style (/ dimsty)
( ^/ z. v, H; M& Z$ e$ J+ q3 W - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)* G$ a. i- h8 g7 K+ l- m3 Y
- dimlist (ddimen_getdimvars dimsty)" a" e$ W: a9 m& x' b
- )
( L' H& H2 d" S8 R/ Z* \ - dimsty
5 F3 }7 {: L! \* d9 I - )
2 V. o$ p9 N1 @
?1 N; ~9 U# r2 H% t- ;;$ r4 g y. s# p- o: h8 a; A
- ;; Set dimvars4 X- R8 y" x' v: t& ~9 k' P
- ;;
5 \1 Y! g! J6 D& L - (defun ddimen_setvars (dimsvcurset / dv i)
/ y0 K' C) N; F) L - (setq dv (cdr (nth 1 dimsvcurset)))
+ ?; Y* F6 O4 n4 k - (command "_.dimstyle" "" dv)/ d2 L/ K0 t' N/ n J- f& J
- (setq i 3)
. F, t- X! I7 i1 w* u - (while (setq dv (nth i dimsvcurset))1 o: T% m9 y5 S# C0 d- \
- (progn
& A- f, I- Z9 b - (setvar (car dv) (cdr dv)). f' v" `7 `# U
- (setq i (1+ i))
: @% _. V/ |. h5 e - )
# H* Y" P' j) b- U) h% J4 X( h8 o - )
x0 A* I& C1 M; E5 C - )
0 n4 p4 n5 ~3 d* @+ j0 \ - ;;
- h( o. G) C) [ - ;; End-of-dimension& I4 k6 z, P; X
- ;; ==================
# ^, {! A/ `: ~2 }" `8 Z Y2 ^ - 6 R8 S7 X$ I6 b. v
- ;;1 x3 I) F- B( o: h
- ;; Sub-dialogues for properties. Common to all object dialogues# ^% `3 ?4 V! I- S/ e$ U- u. u
- ;;
0 C. P7 a; C3 S$ _ - ;; This function pops a dialogue box consisting of a list box,image tile, and. M: x7 I+ Q% Q8 r
- ;; edit box to allow the user to select or type a color number. It returns" ^4 \; V% M& p$ {
- ;; the color number selected.* \( a& L7 H# f4 S5 H
- (defun getcolor (/ old-idx colorno cname lay_clr)
1 g0 y1 u9 U" D - (if (= (get_tile "error") "")
0 D* r; K+ ?9 B- Q9 n. f! | - (progn
0 Z; Y( O$ P7 K" b - ;; Get the color associated with this object's layer, for use7 T5 G, x4 y! H
- ;; in the color swatch if the user selects color BYLAYER." F, q+ b% T, j- w$ d7 U& U
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))). D. Z, Y/ u4 f4 R% E9 l; J' Z
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))3 Z" v: v/ r3 ?# Q) N; R, ^
- (progn
2 Z4 [, l; c2 p2 x8 Z3 V' T0 l8 @. y - (setq ecolor temp_color)* }5 T3 h+ F! P/ Y0 M
- (setcolor)
' C5 x6 F6 w) s4 o- ~6 b9 S - ) S- O# L5 V! q$ ~
- (setq testcolor temp_color) V4 s0 ]4 f3 n6 a! x( g
- )5 Q. l. z9 p% G
- )6 x. F8 Y/ u5 d2 S/ a& l; y @, V
- )8 X& S% ~8 ^- L1 F8 C
- ecolor6 f- Z7 q; e4 J- v8 ?
- )
$ r* v. O1 O. H/ Y0 C# P4 L8 k3 ~. R, g - ;;
: k5 z# D S/ c4 h& ] - ;; Function to set the color tiles.
. Y5 D( v: p# Y* V" A: X2 Z - (defun setcolor()0 U) z9 j, e0 w; h" A$ G
- (cond4 x. E0 [# ]% G5 N7 d
- ((= 0 ecolor)! K* d2 o) `: ^& u' y
- (set_tile "t_color" "BYBLOCK")
( F: q$ U/ O1 ~ - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
t: w% {1 \& Q) B2 V4 m) C0 { - )& X6 ^6 B1 M! l# a
- ((= 1 ecolor)
4 [4 ]& B W8 ~! i) z; U3 M - (set_tile "t_color" "1 red")1 C) M& f9 B# q( i6 n; H$ U2 P+ S
- (col_tile "show_image" 1 nil)
" D" g* N. T2 I# D: m& q& h% e - )$ d6 F$ U2 v% S+ G
- ((= 2 ecolor)% i9 R4 E7 m( S7 X* X& G
- (set_tile "t_color" "2 yellow")
4 M$ _: `& I d4 l% L6 W - (col_tile "show_image" 2 nil). Q0 H% V& U5 `; _8 b% }
- )# X W) ~4 |/ w1 Z# g Y8 x8 y; @8 {0 ], }
- ((= 3 ecolor)
8 n8 ]0 J O# x. `0 c. O8 _ - (set_tile "t_color" "3 green")- Z' K1 P( O" y% |- Y1 |) i) ]
- (col_tile "show_image" 3 nil)
) O$ u8 A* J6 _; h+ I - )
5 s& z- _, v/ d. Q - ((= 4 ecolor)
6 `8 n: `4 [* v) o- N3 o/ `9 d - (set_tile "t_color" "4 cyan")
6 g1 Z, F) h! P% s - (col_tile "show_image" 4 nil), ]6 s1 E; |, y2 F' R% c
- )
0 {1 {, B" q) | c - ((= 5 ecolor)
7 p* w! w6 l; t8 j0 r( W* S, Z1 U - (set_tile "t_color" "5 blue")6 `+ f* E6 P4 p2 ?: l
- (col_tile "show_image" 5 nil)1 P( D @9 g4 L4 N$ P3 N& K, ~
- )
1 A: b2 n3 Z S8 a6 A. Y' ] - ((= 6 ecolor)! P9 C" ~/ R# @3 z8 h
- (set_tile "t_color" "6 magenta")7 Q1 u' }6 l4 H' l
- (col_tile "show_image" 6 nil)- X2 _# ~8 I8 `1 `3 E
- )
. N* c8 b( f" }' B& n* K - ((= 7 ecolor)
4 B) y, J8 G1 m& D - (set_tile "t_color" "7 white")
9 z3 C+ }0 [- B1 J! A - (col_tile "show_image" 7 nil)) Y$ w# G; C+ a" S4 _
- )1 a8 i! `* S0 D1 k+ ^
- ((= 256 ecolor): G; ]7 b" C; z! ^" ^
- (set_tile "t_color" "BYLAYER") T2 B+ _0 ]( {3 Q
- (col_tile "show_image" (bylayer_col) nil)& y; [+ i# c. [, k9 l* O. k
- )7 L" @! f$ Y- N5 N& R
- (T
& @ `0 J( m0 i - (set_tile "t_color" (itoa ecolor))2 `& d/ i! [- ]/ o3 {* U
- (col_tile "show_image" ecolor nil)
: ^' V0 F# S" L6 a - )
( o* ^! n# L2 L4 @ - )
, ]: s' c- o; i/ h - )1 e2 }) k) A) \& V
- ;;7 a$ N T3 T0 f& K9 ~
- ;; This function pops a dialogue box consisting of a list box, image tile, and* }) i7 J! R1 ]# J* u8 r* c
- ;; edit box to allow the user to select or type a linetype. It returns the
3 ^6 g& U0 u. h6 `% {4 Y% H; P - ;; linetype selected.
! k# E" V* g% c6 L' \ - ;;
0 V: y l9 e# j# K - (defun getltype (/ old-idx ltname)& S7 \% G, f. \, `, S( M2 p
- (if (not lt-idx)
% b( [7 L5 J' H K& N4 U: R - (progn7 f% Y) o7 C) u9 }' C
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist/ \! J/ @8 Q2 G
- (cond
8 F/ b3 g4 [. i: r/ [: H; Q" n - ((= eltype "BYLAYER")
) {& k3 Y# w0 Z# l- z - (setq lt-idx (getindex "BYLAYER" ltnmlst)))/ A; K8 k: W; h
- ((= eltype "BYBLOCK")) g) q: w6 R5 J! {& g
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
3 f5 R7 b+ @. d3 U7 K2 _6 c - (T (setq lt-idx (getindex eltype ltnmlst)))
% Y6 d2 T6 i8 ?( k - )
n1 p# `; m: ~& d3 F! W - )6 M# r: s" x3 M
- ). O" z, Z: _) ]: M
! A" [" K) w9 g& j# H% N* y1 M- (if (= (get_tile "error") "")+ T2 `6 J: Q/ S+ @/ x- T
- (progn
1 O; W+ s1 ~7 I! K4 n( e7 L - (if (not (new_dialog "setltype" dcl_id)) (exit)): d0 o7 r4 j* f3 g- i
- (start_list "list_lt")
" }0 ]. G2 P7 d7 L4 T - (mapcar 'add_list ltnmlst) ; initialize list box
9 ~& g& v. b4 u# w$ R' X - (end_list)
# x. Q/ B6 P, h - (setq old-idx lt-idx)
+ q: R) O$ p; u - (ltlist_act (itoa lt-idx))3 G& ]) F$ v7 y0 O" t+ q8 m4 {
, h( n. _1 ?& K3 e- (action_tile "list_lt" "(ltlist_act $value)")+ h+ f: s0 ~5 C* T3 S# Y# ]3 d
- (action_tile "edit_lt" "(ltedit_act $value)")1 X2 U1 q. b( n; y/ S
- (action_tile "accept" "(test_ok)")
3 W0 K1 p2 [- a( h - (action_tile "cancel" "(reset_lt)")
, y! Y! U3 n0 q7 V, g5 a0 B: A; Q
6 g5 s4 S6 B$ f" j) ?' O- (if (= (start_dialog) 1) ; User pressed OK
& m( w" A3 U" v" \ - (cond
4 A0 `! s. O, B6 r7 m4 g8 H3 u+ R \ - ((= lt-idx 0)- H W) A4 n; o# X
- (set_tile "t_ltype" (bylayer_lt))4 P }+ e, b; @4 M5 w+ ^; C
- "BYLAYER"6 N4 }/ O3 y; X/ h
- )
8 f% k; B' y) v - ((= lt-idx 1)( ]# L5 Q2 `" r/ U6 K
- (set_tile "t_ltype" "BYBLOCK")
) |9 L, F2 h1 a8 P' N5 j5 _0 z: z D - "BYBLOCK"
( [6 X h* D z* f9 I - ): z9 ~! u8 O- K/ [9 T
- (T (set_tile "t_ltype" ltname) ltname)
6 N: U8 _4 E8 m9 b - ): @+ ^0 V+ S- o* @/ i4 Y
- eltype
3 D: |* c3 @$ e- y - )
6 e6 s; |# N, J" O; i; [. c d - )" u. I( d8 i& ?
- eltype
- s- {5 O1 l9 k* F! w# @ - )/ V2 v* z/ T8 Z1 Y
- )
& m6 j7 O( x- B' K1 |+ Z - ;;; Q% D% N& A/ q3 J3 ^! D5 G
- ;; Edit box entries end up here
& v+ _9 \6 s9 V( a1 s& o& ^8 w - (defun ltedit_act (ltvalue)
" ]. N3 W9 g$ I- f! n0 c5 r3 p! F - (setq ltvalue (xstrcase ltvalue))
. h4 L! X' O' l. U4 K6 U3 ` - (if (or (= ltvalue "BYLAYER")
2 D P! W1 r( a) }3 g4 n, ]+ D - (= ltvalue "BY LAYER")); `: Z2 q- P# k; |/ u! r3 h9 u
- (setq ltvalue "BYLAYER")
% M; o$ C6 h$ X. x0 b! g0 s - )
9 e% @) W3 r2 y2 E, N - (if (or (= ltvalue "BYBLOCK")
: l8 g2 z% Q2 A' p) ^ - (= ltvalue "BY BLOCK"))
7 O. b: T: d" _8 Y - (setq ltvalue "BYBLOCK")4 Y, m: t! u) n
- )8 }% q' |: m* n) ?
- (if (setq lt-idx (getindex ltvalue ltnmlst))
' ]9 U9 g9 u e6 S - (progn8 O* f8 ]8 x$ m( `# s1 c) m$ R7 f" m
- (set_tile "error" "")& E7 i* \, u7 L& |: d0 |) A
- (ltlist_act (itoa lt-idx))
" g; x4 E* n+ `7 c - ), b8 Q7 n3 d9 W
- (progn
, `; g( e q- f3 Q - (set_tile "error" "Invalid linetype.")
x, j+ e% c) G' Q - (setq lt-idx old-idx)
/ d$ ?( H; t. P" b3 e# h: b - ;; (mode_tile "edit_lt" 2)
( I- ~, u$ F1 x& n$ G+ E' C' ] - ;; (mode_tile "edit_lt" 3)
' \3 h5 Z" N1 L4 \& O* ? - )+ x8 X" Z! M, i4 G6 K& J0 F$ O! G! y& H
- )3 m, o6 W4 C9 Q$ [" \$ y4 r5 e
- )( Q+ Z7 f3 x# _; D
- ;;! D& c) m$ |) \: y0 t$ k$ M) k
- ;; List selections end up here. Update the list box, edit box, and color
! d& P; i! O, n3 k: _ - ;; tile.2 Y. j% W! z) b. J! p
- ;;& u6 W4 d, t( Z! n
- (defun ltlist_act (index / dashdata)& z4 I3 Q2 O; S; v, A& B& C
- (set_tile "error" "")
: B {" _% A5 f9 H$ x8 Z - (setq lt-idx (atoi index))9 s5 A' r" f V% [
- (setq ltname (nth lt-idx ltnmlst))$ _$ | A+ t- A. P3 ]& D: d) [
- (setq dashdata (nth lt-idx mdashlist))6 h5 D1 O( l/ M# H1 Q/ h
- (col_tile "show_image" 0 dashdata)
- R: Z5 j% @. L2 Q - (set_tile "list_lt" (itoa lt-idx))
- |- f! @/ [7 Q3 `$ Z* a- | - (set_tile "edit_lt" ltname)
' t0 i: z6 D: P7 u - )) t3 e7 _% \5 ?2 m
- ;;, b( E0 A: [: M5 a4 Q0 \, V
- ;; Reset to original linetype when cancel it selected
: w9 i8 v9 J: |' L - ;;
* k/ n. t4 v5 G% Q - (defun reset_lt ()! x1 C0 p' E$ g7 I
- (setq lt-idx old-idx)
. c+ r- Y5 g f$ Y4 D& p - (done_dialog 0)
0 o& e$ J3 J0 w I l8 O, _ - )
2 x' V$ l6 R8 B6 | - ;;: ]. U- i1 J% `) j
- ;; This function pops a dialogue box consisting of a list box,image tile, and. E" p; \- Y/ S6 y( [6 P6 a0 ~
- ;; edit box to allow the user to select or type a layer name. It returns the
+ k* C; Q& k# U( y# v ^ - ;; layer name selected. It also has a button to find the status (On, Off,1 {, z5 }. C/ U1 {. \" [+ C
- ;; Frozen, etc.) of any layer selected.; W. m. ~' ~, n* {0 d" B# D
- ;;
- m6 P5 p7 v6 w- R$ O - (defun getlayer (/ old-idx layname on off frozth linetype)
* |2 \% t* G+ }2 j/ W. i& k0 D* p# M, e - ;; Create layer list the first time the layer
$ w. h% ~' O. d4 Q7 i - ;; dialogue is called.8 T4 O ^- F( z7 Q. ]) d7 p* ~
- (if (not lay-idx)
4 v9 a ~4 T' B4 |# J$ |" h - (progn3 Z* `: o* }% ?
- (make_lay_lists)+ Q5 V; D# Y3 X9 W' |, b
- (setq lay-idx (getindex elayer laynmlst))
1 O/ t& y; }+ N6 E0 q1 }) p - )! A4 R" b% ?" a3 j% z6 B) F
- )* i% d% X/ s$ o; F; s
- % B; k, r# w- J) ?3 @9 H% v4 K/ H
- (if (= (get_tile "error") "")% {& i* ?# l& b& ^5 Q% v
- (progn" ]1 G- W* Y0 `; c
- (if (not (new_dialog "setlayer" dcl_id)) (exit))/ N& M6 B8 a8 N6 E# f7 q0 v6 w. T* p
- (set_tile "cur_layer" (getvar "clayer"))
" S& A) i3 n1 B' I5 C - (start_list "list_lay")# I G* |7 d, K6 r4 G
- (mapcar 'add_list laynmlst) ; initialize list box# G) g3 b) G5 C2 L* y% W
- (end_list)
$ v9 d4 F! c5 ?6 O - (setq old-idx lay-idx)
9 l2 U' B8 E: x. H: u$ q; Z - (laylist_act (itoa lay-idx))$ y3 u7 T0 n. I& B- H
- (action_tile "list_lay" "(laylist_act $value)")
' J0 O2 v5 {, F" B- f - (action_tile "edit_lay" "(layedit_act $value)")' H& v4 q# k: Y- e4 a0 N( k
- (action_tile "accept" "(test_ok)")3 C2 `4 O+ I4 L. I$ i
- (action_tile "cancel" "(reset_lay)")5 A. ~) y! b( y* `! Q6 F: ^0 t
- (if (= (start_dialog) 1) ; User pressed OK
; `" q# s9 X, J/ c8 Q# s" f' Y - (progn, g0 ~! f3 R" C9 q
- (set_tile "t_layer" layname)
7 D* ]4 f- P& P) l( z2 N - (setq elayer layname)
! Y3 g' f5 i f8 M - ;; If layer equals bylayer reset color tile
3 F0 Q |" l- u# E# d - (if (= ecolor 256)
: P" a8 F6 S5 r. C, u+ p! t - (col_tile "show_image" (bylayer_col) nil)
2 a' [. k- Q: Y2 @7 x5 w, F3 P - )' f M/ Q7 n! I" Z* g! H
- layname
! }; m; ~! T6 p- B! Z - )9 S# Z+ L k( Y5 q& M- y
- elayer
# J2 y5 s4 b& ~; M - )
- o3 I* J9 _6 P$ f/ S( E O - )
$ M3 N: N5 r1 c* h - elayer
6 q/ p! U3 w% C; Q - )
V' v: n' d+ b% q, [/ U/ H - )7 T) f( F' l: j$ V$ B
- ;;
; b- ]! M5 L8 H% }& q% u v5 H - ;; Edit box selections end up here. Convert layer entry to upper case. If, J* A( x1 b+ N
- ;; layer name is valid, clear error string, call (laylist_act) function.
+ D' A# x: `& c+ v, B0 B9 p1 W - ;; Else print error message.& K5 P- }, z( |2 N, l+ b- z
- ;;
+ t: r7 m8 }- A( R - (defun layedit_act (layvalue)9 H" `* l' S6 I. F7 X3 E
- (setq layvalue (xstrcase layvalue))) ~, E' H* ?9 F p4 q3 t) N$ W
- (if (setq lay-idx (getindex layvalue laynmlst))6 J8 M7 ^( s1 n$ k
- (progn
- ^5 c4 H% ~% \0 v" a - (set_tile "error" ""), ~. ]" s. W0 }0 u$ C# q& d
- (laylist_act (itoa lay-idx))
$ Q U ]4 o% p5 N. U7 j - )
* C) i- }! W: q1 K6 a0 E5 C! _ - (progn6 W" b! W$ {! t, e$ ]( D
- (set_tile "error" "Invalid layer name."): ^3 X c4 ^9 `
- ;; (mode_tile "edit_lay" 2)- H# r/ x9 y& n# f$ e; t
- ;; (mode_tile "edit_lay" 3)" F( v" F* k& ]" L
- (setq lay-idx old-idx)
" T- {3 S- P8 o6 l - )
. `6 j' \' p: J0 {* O& W - )9 F$ ]* m2 P$ L. m/ M
- )$ L4 \' F7 V% c8 H
- ;;& n4 [5 b- }# V: h$ h
- ;; List entry selections end up here.
. n0 B$ c2 {% r1 J- | c; h - ;;3 s0 t X5 y2 c8 B# k
- (defun laylist_act (index / layinfo color dashdata)
: Y1 e; T0 y+ ?$ y( h6 U2 P( M& `) } - ;; Update the list box, edit box, and color tile.
# v: A8 b6 E! H: A( @3 f - (set_tile "error" "")
; e) N2 t. @9 X& P+ `6 F( j: J5 h - (setq lay-idx (atoi index))! o' r! u. u3 w6 `5 ?
- (setq layname (nth lay-idx laynmlst))% Z. j6 ^7 ?6 n8 \0 ^9 |' E
- (setq layinfo (tblsearch "layer" layname))
& c, P! ^2 z) q/ D. O( b' |+ G - (setq color (cdr (assoc 62 layinfo)))
& f2 C' a% c) H - (setq color (abs color)) G- |: e1 I1 Y# m# m% x0 q) ?' x
- (setq colname (colorname color))
# b( z; W5 d2 L9 K - (set_tile "list_lay" (itoa lay-idx))) r3 i+ Y' y3 Q0 j
- (set_tile "edit_lay" layname)9 F b- a% v* g5 V
- )
8 h# A0 f X* N9 v" e8 t: Y - ;;
8 i: G7 `* M" r. B# _ - ;; Reset to original layer when cancel is selected.% I1 O% Y. j/ M# Q7 T+ f& y- }5 D
- ;;
" I4 s8 Q+ Q% ?) v) ^ - (defun reset_lay ()! c( R$ ]! X+ O8 e
- (setq lay-idx old-idx)
' D! l1 ^8 X0 j! P* ] - (done_dialog 0)
3 i! |+ d" p- k - )
" S+ N5 x! [3 U& ]& _ - ;;* [0 ~5 T- D9 a# }& a p7 D
- ;; Checks validity of thickness from edit box.
; G/ J2 {* U c0 A - (defun getthickness (value)
% Y! W5 {2 S8 o1 H6 b& m7 W# m$ ` - (setq ethickness (verify_d "eb_thickness" value ethickness))- s2 ^( ^) Z% [& g' Y3 r
- )( N+ R* y0 E6 ~! Z
- ;;
3 r+ k3 l: s7 d g5 H- U - ;; Copy of (getthickness) for ltscale. If more, make this function" N7 a0 ~8 h% U3 Z. B
- ;; generic.
2 p/ [ `/ g7 c - (defun getltscale (value)
1 d. y! a7 c+ c" q - (setq eltscale (verify_d "eb_ltscale" value eltscale))) ^* o" ~+ Y1 E* E' `
- )# [; Q8 i: `" W7 j* S
- ;;
5 p& O% j# f, ~& x+ `9 L2 ] - ;; This function makes a list called laynmlst which consists of all the layer
* D" s+ o9 d8 Y4 ^6 F - ;; names in the drawing. It also creates a list called longlist which9 v, l2 D# ~& p$ ~( `! U
- ;; consists of strings which contain the layer name, color, linetype, etc.' q! N+ z8 \2 w* e- k6 b
- ;; Longlist is later mapped into the layer listbox. Both are ordered the! u: {% {1 ^: c/ {9 h% Z
- ;; same.
: d# @' P( x3 H: v - ;;
4 e0 k% D5 u- P& ]$ C - (defun make_lay_lists (/ layname sortlist name templist layer_number)
1 ]& b* G) S0 O - (setq sortlist nil)" d! e2 G8 N7 _7 @2 a! Z
- (setq templist (tblnext "LAYER" T))7 w* q* r' }3 s, c' i* s& w
- (setq layer_number 1)4 X3 G( M; F5 b4 K2 ^7 Q
- (while templist* U# y+ O8 M( f5 ^1 c# A3 ?$ G
- ;; No xref dependent layers, please.2 f Q& q v' l7 t
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)$ E) q8 U c2 f# F6 E
- (progn( y1 J7 i/ ~7 V) F
- (setq name (cdr (assoc 2 templist)))
$ d7 s9 t. O9 q h6 N - (setq sortlist (cons name sortlist))
- e7 a, ~. u8 O% _3 {( ? - )
) y5 E" c# b: @ - )
+ f( `$ l1 o6 C: g- p8 o - ; Get the next layer." S- W9 L, ~; }
- (setq templist (tblnext "LAYER")); i- D0 H6 W+ t$ u2 e# M" C2 g& k
- ;; Not dead message...
# P6 V( \& C: e! ~1 E9 Z0 { - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))% t5 H: a+ Z6 i; f; X6 S ^) X
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))" [: N4 W: o2 Q& ]. t
- )4 P- n3 P4 l& @' t% V8 l |
- (setq layer_number (1+ layer_number)). K9 c/ r& L5 R; w
- )
* |* K, ?% K8 f2 ] - (set_tile "error" "")
: f X8 N8 I& ?/ o - (if (>= (getvar "maxsort") (length sortlist)), o, e) O" i+ k0 v
- (progn
# j) F) A6 d6 d$ C) L - (if (> layer_number 50)
& |5 H, `4 t' u ?/ Z% Q - (set_tile "error" "Sorting...")3 `. V, @. W$ p( O
- )! B" n' C; F* B5 g- X
- (setq sortlist (acad_strlsort sortlist))
. B& ^* P, W# c0 Y - )
* l& G1 m1 Q! C$ y, ]! b - (setq sortlist (reverse sortlist))' \5 @8 K' m" _$ s9 p' T' l
- ). @0 c: L2 T0 }1 b% d* d, s& g0 }
- (set_tile "error" "")) ?& {0 b( w" e5 O5 I
- (setq laynmlst sortlist)! P! @" x- h# T6 o! p1 K& d
- )
+ l6 k8 B! M% V8 Y& C6 d3 N6 B% h - ;;
+ D y+ i, t2 w9 M& K2 K5 } - ;; This function makes 2 list - ltnmlst & mdashlist.
* n$ o. l) E# A+ k& o - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist/ Y9 I" @/ V: B7 t
- ;; is list consisting of lists which define the linetype pattern - numbers
j q7 o: \0 ? - ;; that indicate dots, dashes, and spaces taken from group code 49. The list
& |% T+ c/ q1 ]- `% L/ V* \0 D3 L2 j - ;; corresponds to the order of names in ltnmlst.
0 i P, l8 U0 {0 ^" d: ?% ~ - ;;
# i# _; C% K+ i" T3 W5 K+ d - (defun make_lt_lists (/ ltlist ltname)
; H+ u9 o$ ?4 g8 t4 R! X+ a - (setq mdashlist nil). P: i, [8 X* Q0 W
- (setq sortlist nil)
% ^$ |9 U" n, U0 d1 c. v* w1 z0 E - (setq ltype_number 1)+ P7 v5 K N2 P% R @
- (setq ltlist (tblnext "LTYPE" T))
9 I6 \6 K$ g, F/ y - ;;(setq ltname (cdr (assoc 2 ltlist)))
0 q! `, t& i$ f) t2 |! _# B - ;;(setq ltnmlst (list ltname))2 A: T& B1 t6 O2 o/ r
- (while ltlist
8 l, o" w2 X- `0 J - ;; No xref dependent linetypes, please.
; x1 W3 I# b2 K) O - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
# T% a. \/ U6 p8 k8 x/ C/ }4 i - (progn; B2 E1 g1 t: S$ Q! w( I9 I V
- (setq ltname (cdr (assoc 2 ltlist)))
2 Q8 G1 x7 w, _- I - (setq sortlist (cons ltname sortlist))
& D% X: m5 ?7 K0 [7 p g - )- B5 j8 F6 ?9 z$ d
- )# F, r$ m/ t5 Q( C8 Y& X* L" [
- ;; Get the next linetype.6 D5 D. r! p2 z3 O8 \7 O# R4 B
- (setq ltlist (tblnext "LTYPE"))
, T6 }2 J; g7 y6 y3 y2 W - ) J1 C( M5 d. ?& {. j! ^
- ;; Not dead message...
" b$ z; @ H+ e9 y1 Y - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))2 |( v: i% n4 F6 I' h
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
/ s) L. k6 m# E+ b- ^ \ - )9 V5 Y3 Y# T" `& c8 T4 Z
- (setq ltype_number (1+ ltype_number))4 O+ n' e( s) o) t$ D
- K/ s4 V' }7 |, {9 K2 c2 h
- )
, v5 J+ G( W6 u8 v* Z - 2 \) U8 M8 i0 w y
- ;; Remove Collecting message.
$ k% V. N" `# y - (set_tile "error" "")
6 M5 s0 o+ D9 j- p, }% N - 5 Y9 e( ?0 l# c
- ;; Sort based on maxsort./ Z9 U. e. \" t3 E) `) ?
- (if (>= (getvar "maxsort") (length sortlist))
* K1 b8 H2 b+ D' | - (progn; x9 ?# v6 B. i( Y6 b
- (if (> ltype_number 50)
6 u, n" t' q6 {! H8 e - (set_tile "error" "Sorting...")6 j. [2 D U% m) T! z# g
- )
' V) H8 C' y, t& V - (setq sortlist (acad_strlsort sortlist))
1 N. q) j0 c! [/ E+ o( d9 A& ` - )+ P! e. O$ J, }: Y- T
- (setq sortlist (reverse sortlist))9 m$ l4 y1 a9 S7 m7 w8 ?7 y9 X
- )
; m4 `$ x [' {/ K - (set_tile "error" "")
0 P7 G, j" G' ~. R - (setq ltnmlst sortlist)
; z4 ] G* r3 e! M# E - * {! E% v" M' H+ ^; C# w2 ]
- (foreach ltname ltnmlst- @; c8 ?- V- a% m ~
- (setq ltlist (tblsearch "LTYPE" ltname))
6 n/ m O% \' ~2 g, e - (if (= ltname "CONTINUOUS")& t" o Q7 x- m, J; ?/ y
- (setq mdashlist (append mdashlist (list "CONT")))$ Y( h4 [- Q- j5 S U' L# X9 @
- (setq mdashlist
( j% s0 f) J( R" ~ - (append mdashlist (list (add_mdash ltlist)))/ `! l' c- T7 s
- )- ], C# W# Z& q+ P2 \
- )( c* v. x% F/ I8 e! n
- )* A6 q* R4 v1 j: D$ \$ f
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
+ k, y% D$ n2 [, D - (setq mdashlist (cons nil mdashlist))9 i2 N3 o" P* Q3 \& |) q
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
0 X& ?8 d; U" e0 h! m8 x; x/ a - (setq mdashlist (cons nil mdashlist))% R0 f; z9 H9 T
- )
/ i$ a) H4 }' N( j: E7 n - ;;: @8 H0 Z9 p; H
- ;; Get all the group code 49 values for a linetype and put them in a list
0 ~3 y( T+ M% i' j% t - ;; (pen-up, pen-down info).7 K: a! n& e) _8 {4 i
- ;;$ O( T% Q# A$ {- p {: K
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
+ J0 H- ]1 U+ S H0 P, G - (setq dashlist nil)
" k6 r6 c' A @4 |) H+ R4 l - (while (setq assoclist (car ltlist1))4 B* h& R: l( \7 c$ p! }6 f( ^
- (if (= (car assoclist) 49)
1 z3 B, V+ V6 j6 s' S* }4 X# { - (progn7 K) K$ Y7 {( q' c
- (setq dashsize (cdr assoclist))) b& o* h/ I; {* H6 p7 u+ q
- (setq dashlist (cons dashsize dashlist))
$ [2 f# n* B/ }9 W - )
# r$ p2 m3 W- k! f* Y6 J - )
0 f8 C$ y0 O- G) |% Q3 J - (setq ltlist1 (cdr ltlist1))
4 @, q% Z% h# }7 K6 X a' g1 I - )
2 c7 P; v& q1 m( ~/ Q; V/ ~% ] - (setq dashlist (reverse dashlist))" C- G! d6 P/ V# }$ O1 z+ y6 ~
- )
2 V) m. P' g7 ?* g% P+ e - ;;; P" N0 J x# L, u0 V8 t6 v$ h
- ;; Color a tile, draw linetype, and draw a border around it
+ R( {5 S2 r" W p4 _ - ;;
2 H5 R0 \- O7 K6 k( n& X2 R9 V - (defun col_tile (tile color patlist / x y)
9 X2 G" v- t7 S9 g4 O. U3 @! E, P - (setq x (dimx_tile tile))
! s8 ?6 ^! A0 d6 x - (setq y (dimy_tile tile)). F2 \( T7 M1 Q* E1 N4 z# f& z& }
- (start_image tile)5 {( V) |6 u0 u
- (fill_image 0 0 x y color)
' G4 X% s+ ~; Z$ h - (if (= color 7)2 m0 Q+ H+ O9 _; j9 X
- (progn
* k4 N7 I) k4 j9 K - (if patlist (drawpattern x (/ y 2) patlist 0))( g" t1 R1 H0 e% P# ` L5 d9 d' |
- (tile_rect 0 0 x y 0)2 Z: u6 m6 C5 f: p ~# Y
- ), t7 ?5 Y8 F* z6 O( [$ O0 X
- (progn! p, Y0 j0 E3 i- K9 U
- (if patlist (drawpattern x (/ y 2) patlist 7))- E% J9 S9 |" }7 G9 j: N H
- (tile_rect 0 0 x y 7)& f/ y( B* _) V* p
- )) ^* x; Z1 _1 T; [6 B" @" W
- )
6 L+ J' e; i7 g - (end_image)- i( W/ f! D( g# W8 i# b, x
- )
+ V7 i: m8 o0 Z - ;;
, E( T' {# b) A# e( n& ]# t - ;; Draw a border around a tile
5 V ]4 K' u8 T& ?6 j$ S' A - ;;
0 g6 R& F: E- A4 z1 N9 R - (defun tile_rect (x1 y1 x2 y2 color)4 n- x% Z! l9 |9 H
- (setq x2 (- x2 1))
- a Z- J2 v" e# a0 o4 @ q0 O - (setq y2 (- y2 1)) P8 Y* M( N& A/ P2 r/ |/ \8 n
- (vector_image x1 y1 x2 y1 color) i" s. J" S( Y* L4 Y
- (vector_image x2 y1 x2 y2 color)
7 x$ B) U5 F5 C2 x% h - (vector_image x2 y2 x1 y2 color)$ n6 g5 v6 n7 F2 C% c
- (vector_image x1 y2 x1 y1 color)
3 @2 n. `' N1 b# |' b - )
1 C1 D1 i$ T5 K, s - ;;8 n: L* y3 u$ @" @, A/ _
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image% Y* e; L, w# s, N: q! ^1 @
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a$ K* u% w6 c- K8 m
- ;; list of numbers that define the linetype, and color is the color of the# k8 M' I2 J( h: m( c
- ;; tile.' t5 n, B$ S+ P* [+ I- w" }
- ;;4 m8 Y! A* D( s
- (defun drawpattern (boxlength y2 pattern color / x1 x28 R# g6 c- k( H2 c1 O& E
- patlist dash)
) X" R4 P( l( F! k# y! ~# i - (setq x1 0 x2 0)" Q3 U( r7 A+ C5 S: L. O
- (setq patlist pattern)
4 x7 F1 S( g7 y4 r - (setq fx 30) z5 c1 e, J+ ?# T
- (if (= patlist "CONT")7 M$ o- A( S( [, z
- (progn (setq dash boxlength)
/ n$ g" H# k! X5 o. u5 G; g7 s( |+ T - (vi)- t/ y; A( [8 O T" W
- (setq x1 boxlength)8 w9 C: r' J3 _: h
- )2 E2 C. l* V8 @8 V6 o; F
- (foreach dash patlist! z& s* x2 a |9 O c2 \
- (if (> (abs dash) 2.5)
( m0 f0 | f) z$ m: w$ i3 e; B- s - (setq fx 2)
+ h. ^# E) n4 f. @9 M: h4 s `) Z - )4 R! h' W! w0 \( C% E* P& }* A. ^; R
- )8 J: m" W7 D# d5 D
- )
7 ]& {4 G9 m/ L! `: m2 N! B/ K - (while (< x1 boxlength)9 R+ O$ k* k& ]/ j; }6 x
- (if (setq dash (car patlist))
' v; a& D$ ^/ C9 N9 h( r( O8 O - (progn+ b x. F" \5 }* l8 ]: ~# ]# A
- (setq dash (fix (* fx dash)))" _4 M# C2 ?: C: | j4 I# Q
- (cond
' C* {0 e2 x9 o* Y! @7 v - ((= dash 0) (setq dash 1) (vi))2 U/ i. c% j2 [8 b' c
- ((> dash 0) (vi))" u& u) E( m0 r- H% }' W1 {
- (T, k+ i* b6 d. K+ X. w0 O
- (if (< (abs dash) 2)
5 Z J/ Y: G" ?* @( n5 m - (setq dash 2)
- k# J* l% n% D2 N" j+ A1 g7 n' b2 | - )
3 J8 J, h* T$ y; _0 B6 S6 N& H5 k - (setq x2 (+ x2 (abs dash)))5 D2 X0 w! v$ T; F
- )
: S4 u; _! p3 e% e$ v+ B# d8 l7 o6 q' W - )
- |/ r! f+ z. K8 D) p - (setq patlist (cdr patlist))
' C1 x: j6 r- K4 r8 _$ d - (setq x1 x2)% M+ U/ H$ r6 H# t
- )
2 o1 R/ g) J* S9 b( l) [ - (setq patlist pattern)0 a5 F' y. q- `- V, J' r
- )* I2 X3 z6 ~4 w" P* G1 ~8 V
- )
- E. c1 `+ Q- L% c - )* P* j) [( _) ~0 ~" \# ?0 S& P5 l& ]
- ;;: H! \# H6 N" `: \! F5 f# y4 p T
- ;; Determain state of xclip' L3 c4 X% H A7 @! I4 v1 T
- ;; Returns the group 71 value of the spacial filter dictionary.
& |5 @& u) B$ i( \ G - ;; If the entity doesn't have a spacial filter dictionary, this
' c. `; B; S( h& I - ;; returns 0. If it does it will return 0 or 1 depending on the' \ n% O- V% e8 d* q
- ;; current setting of the state of the clipping visibility.9 n; o" w+ p0 X9 ?8 i c- _. O
- ;;
4 g7 J9 A; T8 ~! X) A1 v4 G# H - (defun xclipon(elist)
! ?% `' g& b* U# F - (setq hasclip T)
- P- Y5 y- t2 w% P - (if (/= (assoc 360 elist) nil)
m M3 y2 r/ h3 { - (progn3 K" w, q. K8 j% \
- (setq tmp (entget(cdr(assoc 360 elist)))): p0 x3 W9 m" D3 D( m. ~
- (if (/= nil (assoc 360 tmp))
. H' R' |% J7 U" Z, Q r; E - (progn
0 Q( ~6 |( i. Q5 }9 A* z4 I - (setq tmp (entget(cdr(assoc 360 tmp))))
# L' G# l2 ]4 W - (if (/= nil (assoc 360 tmp))! _2 H/ V2 n, ?2 |, k5 R
- (progn' B) Z4 W; s2 B+ w/ D
- (setq tmp (entget(cdr(assoc 360 tmp))))
* }; v4 A+ J2 M& g - (if (/= nil (assoc 71 tmp))/ @: c+ z8 @" V# n' l
- (cdr(assoc 71 tmp))
K! d6 h/ f$ {3 d" a9 p' C* y/ h2 P - (progn
* \" R* l9 x3 l# D" k v - (setq hasclip nil)/ }/ }8 Y( D# m1 E9 B. X$ l8 Z) M
- (eval 0)
+ w$ G( L4 C7 v+ O: O& i - )) b6 H2 `0 H! J6 y" D4 A
- )8 k: T4 R2 b u4 e/ a
- )
2 u& _- z9 `" G( b - (progn # K; U" {1 u5 W3 x% k
- (setq hasclip nil)+ z) }7 c( [+ S! k
- (eval 0)" o% F) v u J3 ?
- )
6 b- ~( n7 E$ H& x - )
, z4 ~4 C# N$ Y0 X- k {. k' W4 n - )
3 Y/ N+ t9 k7 O5 T1 m5 | - (progn ' E) v6 l3 `2 r: M: h! ]
- (setq hasclip nil)6 _# X% J+ Q0 d* P ^. Y
- (eval 0)& G& [: ]- k. V+ x
- )+ d# I4 Y) g1 H0 v& z0 g& V
- )
# q( v; X/ B; V& e5 |; A - )
4 Z" k% E5 z. f( U- A2 F% F6 T - (progn . n0 g8 g2 _5 Y
- (setq hasclip nil)
- K1 V0 B" ?1 f0 F3 x! k" l - (eval 0)- l1 @8 `" z: {. U3 u1 m
- )9 Q& z2 Q* T! v
- )( ^+ e$ y. L, U+ T7 A c2 v- w
- )" V0 Z2 k; E- |" z2 t
- ;;
9 W. O6 M1 R A! W - ;; Draw a dash or dot in image tile
8 ^7 q! P; _5 s, T5 Y3 m - ;;
5 r/ h+ n! ~* t4 u - (defun vi ()
3 n; Q: ^' k! W0 C) e) ^" O' l - (setq x2 (+ x2 dash))
6 _0 s9 I6 c7 y* [2 [9 s - (vector_image x1 y2 x2 y2 color)
0 _7 _) s# `( a! `$ O5 A! ` - ) ]+ d# @9 L8 l7 I$ a; w2 C
- ;;5 Q2 m1 g# B# U- X, @ e4 G
- ;; If an item is a member of the list, then return its index number, else+ }( j. u8 a' f+ r
- ;; return nil.: o1 T7 ?1 `4 L* ?! ^, F: C
- ;;+ b& L: \; T5 W% \) z" o) v B- U
- (defun getindex (item itemlist / m n)
- s. h+ X6 C2 C+ i& _3 P/ k - (setq n (length itemlist))$ [. c$ b* C3 d9 F4 {) I
- (if (> (setq m (length (member item itemlist))) 0)2 K1 K; Q4 n2 n; c- E
- (- n m)( G) m& P6 R' O+ E- } D! t
- nil0 r8 L# {/ g1 P- v. i( g
- )# r6 ~; X$ Y+ \, S, a& | t
- )
( K, s# |- @' B) b; S. l0 Q - ;;2 g% W/ _7 \2 C1 C# {
- ;; This function is called if the linetype is set "BYLAYER". It finds the3 f8 ~6 |9 C6 @2 ~
- ;; ltype of the layer so it can be displayed beside the linetype button.
8 H- f5 b! y: h5 g - ;;1 i z* `( U# D4 o
- (defun bylayer_lt (/ layname layinfo ltype)
7 @% h+ z8 [& ~7 f6 g! v - (if lay-idx4 Q5 I9 n. M O( u3 t
- (progn B4 L; `2 b- t' B4 b3 V* w9 h
- (setq layname (nth lay-idx laynmlst))
1 X8 L8 J% k; j/ B9 M) m - (setq layinfo (tblsearch "layer" layname))
. x* k5 e% ?4 k% `+ L - (setq ltype (cdr (assoc 6 layinfo)))
P; z3 o, u T8 m& Y8 H - "BYLAYER"
# F* @1 b6 o$ M! k$ x2 c( y% v - )
5 o' R# K; _" E/ L8 A1 U" G! ^- e - "BYLAYER"
- C- b) @- x5 ^ - )( F3 O1 S" `" `+ I* n+ D" ~
- )2 N8 x( P& \6 l. }9 A; F! s
- ;;% I& ~! ]) E6 @0 A& F
- ;; This function is called if the color is set "BYLAYER". It finds the color/ E# X8 d: w9 y# Q2 G+ {0 q
- ;; of the layer so it can be displayed beside the color button.
# N! X2 Y+ [9 q+ E* k9 B - ;;
7 P* T& r% T# w; e5 d% C - (defun bylayer_col (/ layname layinfo color)
. ~" M/ j0 P6 @% @. X - (setq layinfo (tblsearch "layer" elayer))
" o, S/ f- H* F9 g* ~) L - (setq color (abs (cdr (assoc 62 layinfo))))
' M0 O8 O3 X4 H+ `5 _; C$ v( N - )8 q6 a! ~; f; G2 t h- S
- ;;. j9 D5 G; T V; I) X4 S
- ;; Used to set the color name in layer subdialogue.# p# y4 t& x! i- Y
- ;;
, b" \) T) y9 L% z/ }$ S - (defun colorname (colnum / cn)
$ x0 I) A8 J* i) Y5 j9 c: y - (setq cn (abs colnum))# k7 e: `; n% J1 P+ Q* ?
- (cond ((= cn 1) "red")4 O" n' a: {% {, S. Y
- ((= cn 2) "yellow"). i2 P7 o: R4 ?
- ((= cn 3) "green")* k/ K0 [5 H; _: z5 M, P0 ?
- ((= cn 4) "cyan")$ F# W; e+ ^/ {; W3 f! j* M+ @) m
- ((= cn 5) "blue")
6 Z, b. a8 r: l! i - ((= cn 6) "magenta")
Z4 y; {: n9 C) U6 b - ((= cn 7) "white")
' O. ?! V6 _% l8 ~& Z - (T (itoa cn))
4 _) e: y4 ]# s* C4 ^$ X4 J5 p - ); b f/ T( {9 r/ j
- )- O( W$ |& {' e3 n7 F: z; f
- ;;! \' E* i* K l3 d4 U
- ;; If their is no error message, then close the dialogue.
8 t. {- B+ I9 j# _2 @$ J$ Q - ;;
( Z8 d, T& i8 b- T: a8 C - (defun dismiss_dialog (action)2 L$ G" @" O- W, N3 n$ S
- (if (= action 0)( D* X4 `! y% A) `, [/ z9 k( M
- (done_dialog 0)
, @) f, W7 w0 `" X1 y- Q - (if (= (get_tile "error") "")( @' @* K8 {/ r" u7 ^+ L; g% C2 f, s
- (done_dialog action)
: j9 g$ Q4 j0 F, Q - )3 [* w4 @4 z7 x) U+ X2 y0 q
- )
! }; e8 Z* N6 e- B* W( Y - )
$ ^. h3 Z" y( R6 q
5 s: n) q! @; \- (defun test_ok ()
+ _3 A7 f4 k. x& \; S/ t$ B; L. B# p - (if (= (get_tile "error") "")
8 Y1 j/ ~# f. k/ |% V) u3 ] - (done_dialog 1)
) N t( v4 l/ h3 _% o' E& J - )
: _; k0 d! ?' Z+ a4 @! q. n - )6 r* b: G# Y+ y: @ l9 V! O. M
' Z# C( B' r3 G! j- d- (defun cancel ()
- f) }+ v, p+ w5 J" t; } V - (done_dialog 0). D$ q; Z: w) U% A0 ^& D/ F
- )1 c1 M8 _" z, @( c+ B s' h
- + t' \2 j, R/ b: \8 c/ W
- ;;; =======================================================================
+ I" n+ y8 a8 j3 v' f1 W# Y - ;;; SETUP layer and linetype lists for application, and initialize all) x& g1 Z! Z$ F, b
- ;;; program variables.
# s% d! C8 r5 N# H+ M
! d; A) U* E6 X7 e( {* Z- (setq elist (entget ename)
7 b5 |1 b: P0 u4 @. { - old-elist elist9 ]7 N( N+ a) i1 a# Z7 {6 V5 s. ~
- modlist elist
! i) O! a5 k3 n3 F `: x6 y - etype (strcase (cdr (assoc 0 elist)))
; G! w Y s- e- G# ]) ~8 ? - ecolor (cdr (assoc 62 elist))
- P# e* o% `, Y$ I, n) Z/ h. ?/ v - elayer (cdr (assoc 8 elist))
. Z! B8 X; N9 o- {3 @$ }" r% c" C - eltscale (cdr (assoc 48 elist)) Q% u4 O6 j, |) [, [- ^& y
- ethickness (cdr (assoc 39 elist))% E. M0 D- Y2 O/ v# f
- eltype (cdr (assoc 6 elist))
% Y, }( U, n, R0 N5 `9 S1 ^ - )% ]' H+ M9 y9 S J
- (if (= (assoc 210 elist) nil)3 k- N+ s9 c0 D) v" n
- (setq extru (list 0.0 0.0 1.0))) @! M0 G) e& s
- (setq extru (cdr (assoc 210 elist)))
, h* h8 h. X/ E# ?9 L, n - )! J: i! M2 v& [; H% @
) A0 ~7 L {$ c( p( z8 d m- (if (not ecolor) (setq ecolor 256))' s0 x! D t& |6 L5 B
- (if (not eltype) (setq eltype "BYLAYER"))
4 w t6 k. ^) e - (if (not ethickness) (setq ethickness 0))7 C% B( {8 ?# D- M
- (if (not eltscale) (setq eltscale 1))) y. ~5 _* K8 ^1 E
- ) ; end ddmodify_init
6 c7 U( w- g2 l) k) o
1 r, y) T! d& |. l/ ^- ;;; --------------------------------------------------------------------------
6 X5 K( U5 H6 v, _- g% P - ;;; Function: DDMODIFY_SELECT4 _, O' T* G( n% I7 M" G
- ;;;
7 S M' a9 W: S - ;;; Object aquisition function.
4 ?- S1 p: c8 n2 C$ f% y - ;;;
8 O) o* n" y1 U/ l - ;;; (ddmodify_select)5 t7 p9 O/ U0 Y$ a; I$ {
- ;;;9 Z( H% `6 Y7 t1 i9 l
- ;;; Obtains object to be modified, in one of three ways:
- u {6 B. R' G0 ?; s+ F# s - ;;;
" ?9 Z, ^4 C$ x0 D6 J# D3 O" E' z - ;;; 1 - Autoselected.
& Z1 H& p6 r$ A m: L% J8 u - ;;; 2 - Prompted for.: r4 g* w& U5 L
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )3 C9 S- {2 Q7 p" h1 J
- ;;;
& j2 g0 v* p2 q) A - ;;; The (ddmodify_select) function also sets the value of the
! Y# H" ~% c8 i- x; J - ;;; global symbol AI_SELTYPE to one of the above three values to
, O3 B% K( x* h1 }6 a7 z - ;;; indicate the method thru which the object was aquired.
; \, r6 Q2 h3 w- U( f& I" \ - ;;;% {7 [% v6 Z3 ], l) N
- ;;; This value can be useful to applications that want to RESTORE$ s, r5 x0 Q8 \) I
- ;;; an object that was autoselected to its previous selected state: c' A4 o; c, h2 R+ f
- ;;; when they terminate, although there doesn't appear to be any
* O) [. |/ w* i: P( L - ;;; way to do this right now.
% N. {, v5 M: }- m: c: R* g
% k0 V% S- {" J- (defun ddmodify_select ()
# A" i3 W, \4 h: o0 H3 j2 n) @ - (cond
3 B& i& o7 U, E/ k1 y$ l - ( ename ; (ddmodify) was called# _1 X+ D! s4 `! k( _2 a
- (cond ; with an <ename> argument
( w5 A' Q2 O: P2 M, {' n" o, S - ( (entget ename) ; If object is non-deleted
9 {6 c5 S$ h) e' b( d- e) Q - (setq ai_seltype 3) ; then return its ename.
6 D1 O; D3 N5 [ - (ai_return ename))))$ {) F% @; p x$ [" K. O2 r
- , v6 @- ]( i7 e0 U* W* k2 a4 K8 H
- ;; return auto-selected , see ai_utils.lsp
* A# ^5 J5 \( x4 p; R& I) G/ _% ` - ( (ai_autossget1 "\nSelect one object to modify: "))
: K' ~ i- p) V$ {: E
, Z3 Q7 |- \& n4 K Y- (t (princ "\nNothing selected.")1 P! ~: m! R. I/ D/ M! J! ^
- (ai_return nil))
; [% l1 ]8 o, j/ b' f" s& z3 [5 o - )2 H* g9 k/ l* }8 a0 k6 X
- )
5 U. U+ j2 _: |2 n - ) m! J. W, ?2 B
- ;;; ============= Command line interface function =======================2 X2 n) O9 a# u8 N. x* C7 v
- 4 V5 ]+ w6 E4 U9 @& \4 }# W h. m) w
- (defun C:MMO ()* r* j- }5 F3 h$ ^ M* `' M& l
- (ddmodify nil)3 \6 U1 H0 X& R+ e1 u I& z
- (princ)
K& u" Q) A- ?6 l* E - ): q1 n, c8 [4 F" y
- 0 B/ f5 y! B( Y* e/ T3 N, v# i
- ;;; ================== (ddmodify) - Main program ========================! G$ }/ p' M. m+ y3 ]- P1 K1 L
- ;;;
/ B6 ~( i2 m9 _, M, X - ;;; (ddmodify <ename> )/ S+ X" P8 r/ E3 T
- ;;;7 b: M) r/ Q5 B: C0 N( c
- ;;; Main program function, callable as a subroutine.+ U2 x; V0 [, C! {6 q) ~* H7 A1 Y
- ;;;
. r7 u# Q7 T# t, Z/ P6 c - ;;; <ename> = object name of the object to modify./ {; O/ h6 o4 O# Y" A
- ;;;" Q2 M% F K8 ~
- ;;; If <ename> is nil, then user is prompted to select
0 J9 \# ^$ P- o& g3 F- t - ;;; the object interactively.& G; @) E6 D0 B, J1 d, ?
- ;;;
. ?6 A; D3 j9 Y+ c" u) S' } H/ b# g - ;;; Before (ddmodify) can be called as a subroutine, it must7 X% U6 W% [- n* I: g- B3 Q
- ;;; be loaded first. It is up to the calling application to
& K1 f3 h3 n. n" {. G - ;;; first determine this, and load it if necessary.
% }& V( P* k- w5 a n - 4 O9 l$ {; @. B/ W5 O
- 7 w+ e9 T! [" g- e/ k% @! ?
- (defun ddmodify (ename /) M5 s; j" T) ~7 Y6 j: R9 J
- 2ndpt ell_calc_area move_pt1 templist* w4 D1 Y" @0 s; D
- add_mdash ell_tile n tempmod1 w# F9 w6 ]; }$ H) H! O) D
- alipt eltscale name tempst_ang. E7 B. [& |+ T1 V1 }1 I/ o
- ang eltype newpoint test_ok
/ W* [% `& c: Y# v2 H v - arc_calc emod next text' G. B# V8 ` o0 y {8 {( L" ]
- arclen end_ang next_vertex th-value3 u2 l) }, X; {( D
- assoclist endpt obl tile' e' {+ _+ F5 g1 d4 x
- atprompt errchk off tile_rect- n' J- L+ K- I0 d- d
- attag ethickness old_majrad tilemode! y9 P& k: V+ c( ^6 s
- attprompt etype old-closed totang
/ K9 {. d; m; @: W7 e8 b6 r) T/ L - bit extru old-closedm tstyle6 H, Z, v, U4 h1 B6 O
- bit1 fchk old-closedn u& s6 Q% j+ O( a/ u: b$ b. v i
- bit-10 first-10-rec old-elist undo_init7 }- B$ [- ~4 {
- bit-11 first-10-time olderr upsd/ u7 g$ I- B# N% D
- bit2 first-11-rec old-fit v0 E( d$ U6 [" X
- bit3 first-11-time old-idx va
7 e9 ^4 I- q; D/ \; Y/ I$ C - bit4 fit oldlist value
$ T% ]: i. g& i; `# N3 f: Q - bit70 frozth old-spltype ver_44 o+ i. R, t9 e: |3 Q. l, Z
- bit-70 f-vis old-u ver_ang1
5 M5 T. n0 X& p/ p* L) n' a - bit75 fx old-v ver_ang2
$ n4 o$ s( j+ t! `$ D) b5 E n - bk-up get_color on ver_col# w5 F* m( h7 J5 q" O' ?
- bkwd getcolor onoff ver_colsp
* s% I$ l- G( f b9 S; [ - boxlength getindex on-off ver_eangle
. v% P8 t7 Q3 u) c7 m' N - bylayer_col getlayer patlist ver_hght
9 ?9 W5 b# [* ~8 V( F - bylayer_lt getltype pattern ver_majrad) N6 l2 A! W Y$ d
- calc getthickness pltype ver_obl
9 \# y" y1 y; j: V - cancel globals polytype ver_pt1
/ K1 l. Q2 e8 L* Y1 S/ ?+ J - cir_calc ha pre ver_pt2, I K! x$ d0 P. a1 J
- closed ha-prev proplist ver_pt3
) n% `: k! h: i; N% @ D3 H9 E - closedm help_entry pt ver_pt4
# \3 s# v6 B1 r, R+ w( D - closedn hght pt1 ver_rad5 r8 [8 s3 ]! r, F# h* x2 h" C9 h! `
- cmd icvp pt1_eq_pt2 ver_rot
) `5 u& W5 c+ n* J | - cn image_add_vector pt2 ver_row( b! }7 q) k) l; p8 Q
- cname image_clean_variables pt3 ver_rowsp0 y ]6 ~+ ~$ S# x+ b
- cntl-pt-indicator image_cross_product pt4 ver_tag
% z# J3 E: {+ I- P j/ V( P/ i - code_71 image_disp_opt ptype ver_u
- J: g( g4 K- M S6 x - col_tile image_dot_product radius ver_v
- r3 I) s' {0 m" ] - col-idx image_normalize_vector rational_spl_flag ver_wid
& Q* Q3 o+ S" \: H" o - colname image_rotate_vector reset ver_x13 T, c9 q+ |8 |1 z- n$ a
- colnmlst image_scale reset_flag ver_x2) y4 ]3 x6 D+ _3 Y4 ?& _
- colnolst image_scale_vector reset_lay ver_x3" h. P4 `$ @% ?7 I& b6 ~5 _4 r, t4 r& s/ n
- colnum image_update reset_lt ver_x4
; Q4 t6 C8 r4 V# B) G3 ]7 S# T - color index reset_uv ver_xline_pt1
! ?% Y& |" F% b4 y# D# j$ l - colorname inv rot ver_xline_pt2; R$ G9 A7 ?+ V! l/ v5 k
- colorno item rows ver_xline_x14 Y7 O. P9 U- b1 {) @
- col-sp item1 row-sp ver_xline_x2. r* d. B3 }. C: n* y- K7 A
- columns item2 rrat ver_xline_y1
0 M# }8 ^& l y2 O8 M0 ~% m, D - con itemlist s ver_xline_y2
' H9 F" Q# Y! x" f - coord jlist set_action_tiles ver_xline_z11 Z2 g5 A- Q7 o
- ctr jlist_act set_just_idx ver_xline_z2
( v# ?9 w% [- F8 T, S0 w7 j- y - cur-10-rec just-idx set_tile_bk-up ver_xscl2 k- v3 N( G6 `# J& P
- cur-11-rec layedit_act set_tile_cntl_pt ver_y15 l; A+ K0 O( e) H: `
- cvpname lay-idx set_tile_data_pt ver_y2
" Y+ J6 A, z* X0 q1 }3 h - dash layinfo set_tile_dirv ver_y3+ l0 j5 h7 ]" b8 j
- dashdata laylist set_tile_edges ver_y4
7 l4 O: r- i5 L; i5 y2 S) A+ q - dashlist laylist_act set_tile_endang ver_yscl
3 e' R3 }# g d5 T6 b' M! R6 d - dashsize layname set_tile_hght ver_z1
# M2 c+ @' p8 U8 e- a8 H - data-pt-indicator laynmlst set_tile_icvp ver_z2
4 L* q1 I0 L: Z7 z$ A# G, I, x - dcl_id layvalue set_tile_just ver_z3
6 M. y, i4 s1 e/ g/ j - dd3dface line_calc set_tile_obl ver_zscl
: F3 i9 ^& _- ^5 [/ l3 S3 { - dd3dsolid linetype set_tile_prompt verify_a
. }+ A4 c3 c0 I0 o# C - ddarc list1 set_tile_props verify_d7 \9 q2 ~" q* B& }4 I! P2 A8 y
- ddblock longlist set_tile_pt1 verify_i
) w6 H# j; H! c0 ]" x - ddbody ltabstr set_tile_pt2 verify_xline
r" [( l! w7 V7 w' b - ddcircle ltedit_act set_tile_pt3 vfy
! Z9 C1 n) F7 N; R- S. ^9 s - ddellipse ltidx set_tile_pt4 vi: j' x, O" ]9 G4 d
- ddgetprompt lt-idx set_tile_rad vlist
0 t, u( G/ u4 c d( f( ~ - ddgettext ltlist set_tile_rc vname
5 K. R" Z% ]5 ?; Q - ddimage ltlist_act set_tile_rot vpf
& |9 b$ m! ^ {' J. } - ddimen ltlist1 set_tile_scale vpid
8 g6 j; \* w( O/ y+ g6 f$ e1 b) Y - ddleader ltname set_tile_spline_props vpldata5 W7 \9 `5 h5 o
- ddline ltnmlst set_tile_stang vpn! D" i7 D B) |/ c) o/ p5 F
- ddlist ltvalue set_tile_style vpt
: t, ~0 h& X) _ - ddmline ltype set_tile_tag which_tiles; w- R' g" _. ~: }( \) ^- p
- ddmodify_err m set_tile_text wid3 Q; Q8 Z# ?! S. H; C( G
- ddmtext majrad set_tile_vpt x
h) S% t; ?: t - ddpline make_lay_lists set_tile_wid x1
- u7 s) d- |! i# b - ddpoint make_lt_lists set_tile_xline_pt1 x2
' c q7 P: s, N/ B# B7 s - ddray mdashlist set_tile_xline_pt2 x3: V7 Z7 f7 ]) T
- ddregion minrad setcolor x4! m9 X5 j, W& I! h; C/ Y5 T2 w1 X, ]
- ddshape modify_3dface shght xdlist
- K' h9 O9 P+ J& {' u - ddsolid modify_3dsolid showpt xline_pt18 R5 X: \5 ^5 h: ~7 I* f: X! ^
- ddspline modify_arc size xline_pt23 |& K0 ?, D6 V. E+ m" ~
- ddtext modify_block slist xline_x1
& a T4 I! e+ D$ @# F - ddvport modify_body sname xline_x2) i2 W+ h- {3 A
- ddxline modify_circle sortlist xline_y1% k; P# _/ I$ H* |
- denom modify_ellipse spltype xline_y2
$ K* [4 E8 C r - dialog-state modify_image ss xline_z1
9 Q7 y7 Y3 w( y9 K) F" n - dir_pt modify_line st_ang xline_z25 ?8 c$ i+ |: H& o8 m# t2 Z5 o
- dir_ptx modify_mline stpt xscale0 z. F' g- C$ C4 V
- dir_pty modify_mtext style_act xx! W: R7 B- N6 p' g$ p7 x) @) _
- dir_ptz modify_point style-idx y# h6 W- M$ B* J- Y0 ^6 S% c+ [8 c6 U# d
- dismiss_dialog modify_polyline style-list y1/ |$ u1 G/ K0 R" {% E; P4 l
- drawpattern modify_prop_geom tagval y2# m* }3 ~ P. j6 y
- echo modify_properties temp y3/ n$ Y( K" \/ y: M" t7 J, p+ T
- ecolor modify_ray temp_color y46 I' R* F0 v# P9 y! m
- edge1 modify_region temp_dir_x yscale. C/ m, F4 @8 F. l
- edge2 modify_shape temp_dir_y yy
8 I- k: v& B1 v. a - edge3 modify_solid temp_dir_z z1
+ O. G7 {4 T" r! ` - edge4 modify_spline temp_xline_pt1 z2
1 V4 k7 z; x) k& h1 b! R8 \ - edgetest modify_text temp_xline_x1 z3
) c9 K. ~2 w7 g; ?- Z - elayer modify_vport temp_xline_y1 z4
; y7 j- X6 O3 T2 F' L3 I - elist modify_xline temp_xline_z1 zscale
1 g* T, I" L- q, J; R - ell_calc modlist tempend_eang zz
9 M# G0 W9 U" {0 s2 H& A1 g - dir-idx safe_ddedit ver_MtextWidth xcliponoff6 ^7 P Q' I) X9 ^
- MText_style
- ^* W1 ~' {+ B8 M7 N - )' e# E' v% f7 S5 _
( T9 V) O) r6 P+ v" D5 G- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho3 H7 g- O: |7 l- c) O
- old_error *error* ; save current error function
; z$ E1 Z* y0 g( h3 P5 | - *error* ai_error ; new error function. v5 J; S$ S# ]5 w3 Q$ q
- )
; w+ j7 i% n: p& h
, J" @0 q9 W2 E: q+ k- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle3 @) ~: r7 l, e/ G6 n
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
, n$ a1 B4 {- z2 ~. X - (setvar "pickstyle" new_pickstyle) ; bit and set to new value- }" M; B$ J, @- L3 }( W* A- y
- 3 q" C* [: D7 j# x7 C% R9 E5 N
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
; N$ ~( O3 P0 B8 Q - (t 1)))# A( C5 q y- z" v
- (cond! |1 y. `7 I( T8 M! F
- ( (not (ai_notrans))) ; Not transparent?) v- k0 u% x. n
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
/ r; w: k; N7 @. z' p/ _ - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
5 j* l1 x; k0 N - ( (not (setq ename (ddmodify_select)))) ; object to modify?
2 z( o% E4 M* @- ^! B7 ?9 u+ s* @4 A - c! N, Y. H. Q1 R2 c5 K& B. `
- (t (ai_undo_push)
/ v/ d2 v+ c, ?) v - (ddmodify_init) ; everything okay, proceed." b" F+ ]" X1 m. r% Q
- (cond0 l4 |0 z8 M/ e+ x4 \, h, T: V& C- J
- ((= etype "LEADER")5 H: K# d" u+ O) r( n
- (setq help_entry "modify_Leader_dialog")
4 _3 g7 J. f! T5 K0 r0 X' k - (ddleader)
4 Z* E5 i, M: u& U - )
5 X$ [7 u s: t4 a- h: q# D4 S( W1 i - ((= etype "ARC")
: g) F3 }1 m3 @7 I! n& w - (setq help_entry "modify_Arc_dialog")8 U% Z- k) x9 q
- (ddarc)
5 J7 N! O) ~4 Q8 x7 ] - )* a% p; p8 r* @6 j
- ((= etype "ATTDEF")9 w' B9 ]0 s; s r6 I
- (setq help_entry "modify_Attribute_Definition_dialog")
- o8 i/ g/ s' }. P" B& V( D3 ` - (ddtext)
9 f$ G0 u- y& u/ G: Y F8 z - )
* @8 |: w2 C0 q v I - ((= etype "CIRCLE")" z- C1 \* V1 \; x
- (setq help_entry "modify_Circle_dialog")
4 h' b* ?/ r; }8 a7 e - (ddcircle)" I- C. [' n; z9 c1 K% e
- )
; |* [2 N( v7 z# k - ((= etype "ELLIPSE")& ]. k) a( ~7 f+ Y
- (setq help_entry "modify_Ellipse_dialog")
: V2 T1 C( K4 e - (ddellipse)
- D: x& s$ l' |) p4 W2 @ - )
* f+ \& S& D: Z g - ((= etype "3DSOLID")) \* @- Y( k$ s# R/ d" J. t
- (setq help_entry "modify_3d_Solid_dialog")& C) D" @! z/ R7 f& u8 ^5 l( r+ U k
- (dd3dsolid)
: |! l. i6 Z! q* D - ): o7 G+ f+ ^# L; H- R" g" D
- ((= etype "BODY")% ~& Q" y( ?, x. {" z
- (setq help_entry "modify_Body_dialog")
8 r9 V* h( I, r. h0 }1 F( T: t" S - (ddbody)1 k* t. V1 X# m4 t( u. V# C
- )
& s/ }6 a- l; ], W( d- W - ((= etype "REGION"): \0 _5 W0 ` o) L/ f6 f3 w- \
- (setq help_entry "modify_Region_dialog")$ Z! A! @2 P4 H* j2 _* R9 q+ e
- (ddregion)
$ j4 B% G# `/ D3 z. L9 t! M; P, { - )
; \% o' Y5 R/ t* w6 c, E - ((= etype "HATCH")
0 c; M- E- {# A" i/ b - (setq help_entry "modify_Hatch_dialog")! K' K% ]# s9 e9 O4 d
- (ddnewhatch)6 L+ b, ^9 S( C1 f; Y5 f
- )
0 T: r1 R8 F! s1 z& g* \ - ((= etype "SPLINE"): s" M% ^2 s. G! e
- (setq help_entry "modify_Spline_dialog")
! U2 T# Z- o9 g$ _# u7 h1 b* K - (ddspline)
" C8 C3 g( n% `/ t/ G) h - )- Y6 ]: Y4 i& q
- ((= etype "INSERT") ; see ddblock for help_entry! \+ T; s: @3 r+ N0 F
- (ddblock)
' R6 Z/ s5 ]% ~: O7 C - )
+ Q9 B W! `. ~6 V1 n/ v" C - ((= etype "LINE")0 |/ Y( I1 s7 L/ V) |. x
- (setq help_entry "modify_Line_dialog") O1 b9 k( p6 @/ ^* M2 B8 V I
- (ddline)" R( c9 v- R" {) Y8 u- t
- )
( T+ D* ~, ^& F) ]3 D% s - ((= etype "MLINE")
, V4 P. {6 C1 \, `& E - (setq help_entry "modify_multiLine_dialog")$ g6 e$ g1 D% o0 R& B3 |) i8 ]5 j
- (ddmline)$ [) I* g( y0 M
- )0 V0 P. D- w+ k* ]: q7 a7 n" A/ B
- ((= etype "RAY")% B+ D& h* V# X- b/ Y6 u
- (setq help_entry "modify_Ray_dialog")# y! l5 H& [' D
- (ddxline)
5 Z! e& k" _- Y6 \% l& l- h: } - )
4 `( V# @1 y C( O( I' v - ((= etype "XLINE")
. ^' r: W( z& H, d T3 z0 E - (setq help_entry "modify_Xline_dialog"). T, j2 F3 u& C8 _$ N
- (ddxline)
* f& S0 l. C& O7 [ - )
) V3 g( U0 Q( H: O; P* V: O - ((= etype "POINT")
7 }! q* Z# k! E8 D# w$ S - (setq help_entry "modify_Point_dialog")3 s. T* I; x* m7 D& k( ~, E
- (ddpoint)+ J: n; D! L3 I H: |/ h
- )
3 J! R, F( K t - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
# [: h' K1 n5 U C+ B - (setq help_entry "modify_Polyline_dialog")
% _. o+ a# D' U1 w - ;; If a 2D pline, check to see if it is planar to the current
' H* x: q( V0 e4 [9 m% @% j0 ? - ;; UCS, reject if not. To see if the pline is parallel,7 v$ D$ ^0 O0 s
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)" ]8 ?, n& I8 r: _/ g( E5 b8 s2 \
- ;; and then converted to the current UCS and checked to see if
2 k: b) Q7 | j# Y5 `" H - ;; it is equal to (0,0,1).$ Q1 [- h1 f& J. r8 j
- & \6 n% W4 A* k! ]
- ;; Incase the 210 is default and not in the dxf list.
) X8 s4 H0 u+ B$ \ - (if (= (assoc 210 (entget ename)) nil)
' V1 ]" c6 E! A9 ?& ^ - (ddpline)- P9 {) O& {& s8 ?4 G4 n4 W
- (progn
T' J3 E" ^9 f1 p% F& ^ - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
' T' _' N1 `1 p, _( a - (not (equal '(0.0 0.0 1.0)
8 R& {6 `. z1 }. E6 u! P/ ~9 I - (trans (mapcar '+$ ~6 } h0 O- c! R4 Q
- (cdr (assoc 210 (entget ename)))
! `9 h/ \5 c6 G8 }! T2 e - (trans '(0.0 0.0 0.0) 1 0)# R ~9 k8 g& p" E
- )
7 X, m+ A, j+ m. V - 0 1
6 L% a% L" u3 P3 K' d3 U$ k9 ` - )
- U, ]5 {3 Y/ ], L7 M- q - 0.0000000001 ; fuzz6 O) f, Y; a: `/ @
- )
0 ^) `; r$ J' a9 E. O - ); \. X! T# w, v3 ~7 U
- )& u1 o" @6 V% [5 y! w4 D
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
* n: ^+ e1 _3 F9 Q - (ddpline)# j- e" ^; n: n% [, |
- )' v- Y/ u! g4 {7 W q. F8 j) E, n
- )* M$ g/ ]* N2 f: s
- )
' `- g4 l4 Y6 D: i3 i( r - )
8 ~- O" F- o- k4 L - 4 v$ V- D/ R9 X: U( N/ C
- ((= etype "SHAPE"): j: ^" D8 [6 R6 _! |& u: g; h
- (setq help_entry "modify_Shape_dialog")3 V# x0 H7 u }7 B
- (ddshape)
7 M5 R _$ x, F0 x3 {/ u6 O - )
: S0 |4 `! D/ J6 w& n - ((= etype "SOLID")
" i+ d* \/ {0 M( b: `, d - (setq help_entry "modify_Solid_dialog")
9 H/ d2 ]9 G, {5 o' f - (ddsolid)
. @. `- }; _; o9 ^' A - )) n/ z/ N9 G% r1 y: Q
- ((= etype "TEXT")
) W/ c! @ U" ^* d5 ^ X6 P - (setq help_entry "modify_Text_dialog")8 |7 l8 E5 p( b3 y* L; R5 e! I0 ?
- (ddtext)
# }' u( a$ v: Y4 `$ | - )
; C' s! f5 Q3 ?/ Z - ((= etype "MTEXT")3 `: W- S. b' k/ t
- (setq help_entry "modify_MText_dialog")
/ J/ f' @# g3 \- D$ W& m* O: N - (ddmtext)0 W/ F) f6 L7 \" J& m7 K
- ), ~4 p4 O! ]9 j5 z: e( v: F9 m
- ((= etype "TRACE")6 W( o' ^ \; M2 l6 E7 g
- (setq help_entry "modify_Trace_dialog")
r/ E, {8 d" O6 g7 T" D- M - (ddsolid)6 ]* y# j. }+ t9 {6 E2 A
- )" X6 x/ l/ ]1 L( d2 n) [9 P
- ((= etype "VIEWPORT")6 B E& \4 c# \2 b3 I V
- (setq help_entry "modify_Viewport_dialog")
/ D. {' }/ ?4 ] _ - (ddvport)
) k1 _5 ]. [ F+ X S% t( M' } - )
2 I9 l- f% ?; Y9 U# V - ((= etype "IMAGE")
; P, Q" E$ ]2 k: T* [$ }& C+ I' m' j - (setq help_entry "modify_Image_dialog")
; w; ?: M$ l: R$ U1 X - (ddimage) ]- _! _! ^3 j; w, \, R. p2 k
- )' D3 H- @+ M+ ^) G
- ((= etype "3DFACE")
0 F' a2 @1 d& {* f! N0 N - (setq help_entry "modify_3D_Face_dialog")- n6 C, A3 n! Q: ~6 }' C# A3 T4 f
- (dd3dface)
2 a- L4 W$ W: r' u; Y3 y3 d* I' M8 Z - ), r2 U: Z& C& Y1 M- m/ T9 J
- ((= etype "DIMENSION")
- |5 X- \5 Y) N5 E# G - (setq help_entry "modify_Dimension_dialog")
5 y- N, `2 [* c+ K4 i% p - (ddimen)9 w& s0 a, q/ N- U, v$ f! {7 l
- )
! l h0 ^9 {* i0 P1 Z4 W$ g - ((= etype "TOLERANCE")
9 g. f8 t( e, v4 A/ K - (setq help_entry "modify_Tolerance_dialog")
# A# G& H! H: Y6 ^' z - (ddtolerance)- T" B+ o0 y; u, g
- )
- T2 p N3 `/ H; i1 m: Q: e - ;; Fall-through condition changed by MCAD for MDT 1.1 release." u; m$ m3 }8 L$ z; Y
- ;; This allows DDMODIFY to work on any custom object or any new object type
, k% }% x; ^7 p, F - ;; that isn't specifically handled above by calling the more generic DDCHPROP. R/ _( G& K8 J- ` }6 N1 @3 U
- (t5 p& D( U$ g ~- A- z$ _
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
) ?& t: C- @! J: N# b, {/ W - (princ (strcat "No dialog support for object type: " etype ".")))
( x3 l. d6 v1 C1 @/ ^ - (progn
2 v$ F$ Z5 w; X7 w4 m4 A - (setq tempss (ssadd ename))
% m6 b6 ?. Y, W; w7 a: q' v - (ddchprop tempss)
! S3 ^4 ?* N1 D& c - (setq tempss nil), B3 {0 x/ x. @3 }1 E
- )
( \( ~, m R1 w2 ^: z$ K - )
! x0 K0 i/ \8 w# `) @ - )
# t2 U" p. x4 ^3 G* s' m& K - ;; Previous fall-through condition.1 g4 A; I( h, {- k6 v9 ]! l
- ;; (t (princ (strcat "No dialog support for object type: "5 S# | X4 k/ O. H. e+ X, g
- ;; etype ".") N0 @2 }9 D: y8 f$ C
- ;; )
( a" I9 i) W7 e4 ^# `) ` o$ `. x - ;; )
+ V1 h _3 d. A - ;; )3 t* D d3 S. e% V8 S
- ;; )
+ T$ a a$ O" K7 b0 ]* v - (ai_undo_pop)
2 {. [6 \2 S3 U, A- N" ~' A. D - )& A5 X7 ~: b- } _9 q: q
- )2 h- r4 \/ l% _; z( h) d6 E
- / j9 {6 R. _) B$ W. d. y, s' E" P
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
- |/ S0 ^3 z9 z v - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
6 A2 L3 L* D, a! [( s* U$ h( h) E% B8 U - ) ; to what we started with+ O, n% w7 H* {' ~3 S! S
( n- b( p' u# P! Q5 q8 U- (setq *error* old_error)
& s8 `8 Q- T2 O: X, w( x {" [' f - (setvar "cmdecho" old_cmd)
, d8 V+ q5 @# F" w0 T - (if (not reset_flag) ; if object was modified, then
4 S$ Q- _0 T/ P - (ai_return ename) ; return it's ename to caller* l9 ~1 V2 z% |- v: Z( y# J2 f q+ T
- )& l3 A# q) R; ^3 x8 g
- )
: O* I5 E7 M8 Y% S2 ? - " ~7 N! u; Y. i8 h- K
- (defun checkForLockedLayer (ename)
' A( G# P8 n5 }4 u7 ]: H% Y, } - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
( G o6 _. j1 f9 ~ - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
7 C. k0 c1 d) f3 Y - (if (= layerflag 4)' g; E4 n# Z) } O% P
- T, C2 [& _6 d/ r& @/ d, _
- nil' t) F7 u* Y! [9 h+ b
- )
7 O7 X0 Y0 E. A X6 h - )7 B& m& ]5 S; G K# ?1 c8 ~
$ z9 @' W. |9 a- (princ " DDMODIFY loaded. "); w {, N" }1 @2 J+ F+ I3 k
- (princ)4 U4 g. x% U6 ]
- ;;;???;;;---------------------------------------------------------------------------------------
- C+ ?' j$ L$ o - * `. S' M; g3 H$ r# L# B3 R
- ; Next available MSG number is 8
3 w7 b) R$ }* T2 U4 _* _3 d - ; MODULE_ID DDUCSP_LSP_2 ~6 M f J t& H1 ~9 S( \
- ;;;
4 K6 L( Z6 J+ n2 O# Z$ ^ - ;;; dducsp.lsp
3 @9 c* ^7 J- c - ;;;) v9 c- |) p3 o/ K: x P
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
, R" R4 p. H# i) c/ m$ k3 H - ;;;- J! |6 G; x" c8 _7 M5 c
- ;;; Permission to use, copy, modify, and distribute this software
3 N# P9 d7 z- Y& E1 R - ;;; for any purpose and without fee is hereby granted, provided
9 \% `/ _/ H. `) E5 G8 b g - ;;; that the above copyright notice appears in all copies and9 j4 `) _' I, l; `; v
- ;;; that both that copyright notice and the limited warranty and
* }4 r( M- I( B2 b9 |! e, K& B% @ - ;;; restricted rights notice below appear in all supporting
0 V# G7 _$ B+ x. n2 X1 @! l - ;;; documentation.
4 o: C) R8 o- R% F2 z5 _$ B. o - ;;;
+ w" a& ~( A( G. z; E; w - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.9 f' m5 k/ l2 D( ^
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF& Q, j& n8 U7 u; o' ^
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.# I$ \ q; M0 O0 {& G
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
; i/ M* R" N+ J+ L+ J$ {# X - ;;; UNINTERRUPTED OR ERROR FREE.2 u5 A O6 t5 l1 r( c2 V+ o
- ;;;
1 v! c" H* m2 P' x' y" v# ^ - ;;; Use, duplication, or disclosure by the U.S. Government is subject to& r( u( I; ?# R
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer L* h7 B2 v8 M
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
8 w4 F3 q8 H! Q6 w, ?# M& K. u2 Q Q% I - ;;; (Rights in Technical Data and Computer Software), as applicable.
! h0 }/ u2 J3 O4 K/ j - ;;;" b4 J9 j7 ~5 G" l2 l4 T! @, w
- ;;;.
' U; U6 f, I, ?9 D5 W8 Q6 x! I0 i; S" U* D - ;;; C:DDUCSP - User Coordinate System presets dialogue., U6 E- \" Y& ?: c2 h, h
- ;;; 1 q5 ?# s( @5 q6 O' t
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
- F! l; s0 ?) m0 @* T8 q - ;;; slide images are in ACAD.SLB.
) q! y9 ?, p: _8 [% Z - ;;;/ D/ P" _) Z- n0 k- `% U* v
- ;;; ===========================================================================
- o( J, m) U% h/ ^' y* V - ;;; ===================== load-time error checking ============================
& D+ i4 L4 L0 U4 K8 z' t, y - ;;;1 s7 _3 U4 n) l- _# C
- % z1 e* V: ~1 U
- (defun ai_abort (app msg)
0 {4 ~8 |& X/ v; E - (defun *error* (s)$ l' @5 Y, V. Q* y! J
- (if old_error (setq *error* old_error))
8 ]1 ?$ v3 ?) g) F. |0 L0 X! M - (princ); X4 z- O3 \8 y
- )
& Q) }+ H) c& j( F( m - (if msg- h. g1 r- n" p: w* `$ u
- (alert (strcat " Application error: "
2 [, \& G Y+ J+ N: Z - app- G) o! E Y* H8 D" ^2 G
- " \n\n "
( `7 h& H5 C( ?! v9 h8 V - msg# Y& i- @: S/ b' G+ Q
- " \n"
" M& r' B. }. K6 u/ v- O - )
3 L( S8 u% D1 g7 k/ k w - )- y" N- o. J$ h* N6 _9 q$ U
- )
% { P1 ?9 f$ p. r - (exit), N3 M4 O' I6 c Q% p% Y
- )
. C% {/ @4 o3 U% ~ - % J2 z! R/ t" ]' ]3 L6 T
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,( |# w7 i8 |) d7 e
- ;;; and then try to load it.- U5 e+ H% |' }' [
- ;;;6 o7 H: G$ u8 M8 s3 I! C0 v/ N# l
- ;;; If it can't be found or it can't be loaded, then abort the
1 X# o& k4 d7 m8 d% i - ;;; loading of this file immediately, preserving the (autoload)8 I2 e6 a/ S+ i6 q' A# c) o
- ;;; stub function.3 n! b5 V9 {( e2 x3 _, e. y- C" z( Q# ]
- 7 v4 ?8 G/ ]5 M- J3 L: L( d
- (cond* c5 @# F4 F. P1 z) o& e
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
) M% } r2 U1 X( `' y/ A
6 c- m! Q* r+ T+ P8 e- ( (not (findfile "ai_utils.lsp")) ; find it
0 i) Y- a+ C) c2 ?9 P( D' z( W4 f - (ai_abort "DDUCSP"& t! J$ B9 L$ b" n' Z* m; r$ I
- (strcat "Can't locate file AI_UTILS.LSP."
7 p$ z; Q" t/ F' O - "\n Check support directory.")))$ V) q; r. ~% z/ ?: @9 w1 X
- F% o2 L3 z# R
- ( (eq "failed" (load "ai_utils" "failed")) ; load it8 ^ F* o* z: P7 J: I; w) C2 o
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))) T- s- E# a6 Y
- )
% h7 P! F: U/ j0 i3 D( f - ) E: F& V% c- s# c# H
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
~1 ]' o8 [5 q8 r- t0 ] - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
/ B* u6 P4 @+ F+ Q0 E9 y% E5 h - ) ; ai_abort's alert box dialog.
) W: w+ g* l$ c$ N' a, S7 P - : L7 f2 O; I* `) k2 h3 N- N. N
- ;;; ==================== end load-time operations ===========================
8 `% Y& |, R+ e9 h - + W( ?7 L/ e: y5 y% G* c
- (defun ai_ucsp_start ( / program)
p. W3 V2 E9 s4 f7 _ - ;; Get program name
; J; y8 J/ q& K0 ~4 ] R) E* J+ c$ Q - (if (not (setq program (getvar "program")))
1 G8 _, I( D5 I4 u, J8 G: g$ C - (setq program "acad")
& [; W) K; H6 k. D# Y h- {8 _ - )( `2 V. Q( s. n" |. k
- (foreach v0 '("world" "left" "cview" "top" "front"
' G3 o* n5 U9 r6 {" ?& T4 C - "bottom" "back" "right" "prev"). }* W& d- D: V" ]# T3 Q% M5 p
- (start_image (strcat "ucsp_" v0))9 E- F8 G3 e1 G/ E9 ]5 D! T
- (slide_image
k* s; w M6 a# W - 0 0
A# x& O. ]- n0 {/ b - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
# w3 u6 N1 a! i; }/ F+ Y - (strcat program "(u-" v0 ")")2 y% M v/ h' l( ~
- ), p" ~- U8 R# ~" n7 ~& J
- (end_image)9 O1 G2 D4 S& g* W+ Y6 X; D
- ): Q/ O( z9 y H
- )- s: J. ?; w7 t7 k( W3 f1 L. V
- + d* R& [ d2 B: P% |( s6 v+ h! o
- (defun ai_ucsp_set ()
& _) x5 R8 i7 p& B8 I6 E$ h - (if ai_ucsp_sv+ ?2 {: Q* @/ _2 U+ X' Z9 X( R
- (command "_.UCS" "_V")( J' L, \! a8 c/ F
- (if ai_ucsp_prevs
2 V* W+ H4 W: i) ~9 ?: @. u5 h1 `* |7 V - (command "_.UCS" "_P")$ v; @2 k0 c ]3 ?, y
- (if ai_ucsp_chg
" o8 f. C- H5 U - (progn
X/ d% ^. y# ?9 c4 ~ - (if (/= ai_ucsp_a "*")# K3 s- X9 t2 o1 Q7 k' B
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))5 P" D. ]3 N$ I/ l# S
- )
* p N( f: @1 P0 D - (if (< ai_ucsp_pick 6)
, F4 A- n( ~- \9 [ - (setq ai_ucsp_set0 "@")0 {, i+ ~2 Q( d; K L; M. |
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")9 a6 R. H3 r+ ]( k
- )0 r/ }7 Y0 f: x- g- g4 {- j" D, L
- (cond ((= ai_ucsp_pick 0)
9 E4 w7 C0 R6 L& G' \; e - (setq ai_ucsp_set1 "0,-1,0"" L! m5 X7 M) M* i9 r2 n
- ai_ucsp_set2 "0,0,1"7 \; H. r1 t8 J! h" s' V& j
- )
9 r4 N; b4 B$ N0 _+ f* Z, }2 r - )
4 ?- s% [$ F( U- i - ((= ai_ucsp_pick 2)
: a. \8 A% S' A" P7 P& X3 J# } - (setq ai_ucsp_set1 "1,0,0": u/ K$ c6 C! F; o' L* x
- ai_ucsp_set2 "0,0,1"
( h3 H5 e" w9 F& ?! z$ C) X- W* w - )% ^7 |. a( \2 C0 V
- )
1 }/ [) W8 I- y3 ], o# M- O ]$ k/ w - ((= ai_ucsp_pick 3), n2 b) p S# j1 R
- (setq ai_ucsp_set1 "1,0,0"% p& j6 D1 J" Q3 x
- ai_ucsp_set2 "0,-1,0"
, R, m. m4 g# a$ k+ t" h$ _ - )
5 T4 U5 G+ l" O5 T4 {3 E4 { - )
' s, e6 U/ A& p7 k& o( `: h - ((= ai_ucsp_pick 4) {2 X) o" o, f* c% A& b
- (setq ai_ucsp_set1 "-1,0,0"2 b1 }; |' [ e) D% i/ ^
- ai_ucsp_set2 "0,0,1"! n7 q& s5 v$ X' n0 l
- )
+ A* M" E+ l I - )6 s/ U0 A, @( ~. K/ \
- ((= ai_ucsp_pick 5) q" L/ ?4 Q- n3 z) |
- (setq ai_ucsp_set1 "0,1,0"
. X; Q# p" p: \# x4 \1 W7 b - ai_ucsp_set2 "0,0,1"
. J. t( Z. {$ b# ` - )3 A. D, S. b! |+ q' ]9 Z
- )
" q3 _. w/ P# U+ Q% } - (T
6 t8 A6 p# M8 Z7 g" F6 H - (setq ai_ucsp_set1 "1,0,0"
# H: J5 B1 o; ]# A& K - ai_ucsp_set2 "0,1,0"
1 ]3 P) y, f6 a8 a; T - )
) @% @1 K, m3 _6 _! A3 l - )
, U- `' a; r# H$ r& P& X+ N- y p - )
" u6 `' v( B9 d! K - (command "_.UCS" "_3P" ai_ucsp_set0 " S3 E y2 V6 Q2 }) m' E" |( t5 d
- (strcat ai_ucsp_a ai_ucsp_set1) 7 M" E% ]: X, t
- (strcat ai_ucsp_a ai_ucsp_set2)
" y0 p& u5 Y4 Z+ {# } - )
; a5 K" \! j) e* n7 ^ - )
5 ?0 C& U3 c. ~5 c! x - )
' ?: D' Z7 e" E9 D7 r; R9 Y6 C3 i - )" F2 y: I# ]; @% H8 \
- )/ E) i4 B2 b, c5 [( ^- R0 z2 j& V1 Z
- ) }' ?8 Q e, G- b1 t1 T
7 G/ q3 q( Z; ]( m$ X Z q) W+ C- (defun ai_ucsp_p (val currtile)3 Q' D; G+ _0 ?
- (mode_tile ai_ucsp_currtile 4)' ^& |6 R& X$ o" J* a
- (setq ai_ucsp_pick val
7 V: T! E3 T Q - ai_ucsp_sv nil6 ^2 C, C; g' M) w& y
- ai_ucsp_currtile currtile8 R5 L$ L2 {) b
- )% }6 B8 w$ z" b+ {
- (if (/= val 1)
. {. x/ z8 S' R4 i! L9 a3 |0 Z" B* e. t2 v - (setq ai_ucsp_chg T)0 L% D5 \5 U J1 n$ H2 @
- )
# O) @! L5 _0 e5 t( [8 T$ L - (mode_tile ai_ucsp_currtile 4)
, H7 F0 [5 ` h - )
. K0 I9 n! ~6 }& Z" _ - " G9 u6 x. Z3 s, S3 x: m. l
- (defun ai_ucsp_swcs ()* D5 g7 ` e- E$ N3 z
- (mode_tile ai_ucsp_currtile 4), h' W2 d* c% u e* j: \( u1 S
- (set_tile "ucsp_a_wcs" "1"); a( v2 C9 g% I( p8 x/ M! t1 I
- (setq ai_ucsp_pick 6
- C5 O2 |* t) ^5 H( I - ai_ucsp_sv nil/ u* @+ G# g5 C$ L4 ?7 E9 }
- ai_ucsp_currtile "ucsp_world"3 P% O6 Z( f. R; v% ]/ [) z
- )( b5 A* E7 q( X [$ g5 t+ ?
- (if (/= 1 (getvar "WORLDUCS"))
* G6 ], c/ B% k - (setq ai_ucsp_chg T)$ R1 E6 Q7 c; [8 a. t0 j
- (setq ai_ucsp_chg nil)2 N; Q3 X E) z- {% U
- )- n* a% `" O: N6 x9 K
- (mode_tile ai_ucsp_currtile 4)9 I/ W7 E% @7 L, I* Q
- )
* V G1 A+ d) H) x6 o1 a2 u; i8 P' L y
1 H3 {/ j1 E! _5 l# x- (defun ai_ucsp_cview ()
( X. `4 _3 |) w7 P# l - (mode_tile ai_ucsp_currtile 4)3 T5 J6 l% n/ i- a5 [
- (setq ai_ucsp_sv T
* v5 e+ }% B2 p% K2 Y% q. r& L - ai_ucsp_chg nil
/ S, I: N. d& c - ai_ucsp_currtile "ucsp_cview"9 S$ D1 w) E8 l4 M9 y! b/ S3 w6 G
- )
) g3 \3 d- R6 P4 ]- k1 ] - (set_tile "ucsp_a_wcs" "1")3 V+ _+ d( v O7 q! K
- (mode_tile ai_ucsp_currtile 4)
% o1 O2 C; p4 w) M3 x) @/ b - )
X9 [! m& A/ T$ g' x - 0 U) p) f {1 y- B/ ~* a
- (defun ai_ucsp_rucs (typ)
9 {+ D" ?3 K5 o2 l/ S& j - (setq ai_ucsp_a typ). c6 \$ H) ?# G
- (mode_tile ai_ucsp_currtile 2)' q" S. I' k$ z( v- i3 j, S5 f
- )8 y; i+ v) r4 ]( \" X
- " e% D0 Z, Q9 @, ~" X% l \8 ?
- (defun ai_ucsp_prev ()4 @+ T R. q9 ]5 w! z3 [! }1 ^
- (mode_tile ai_ucsp_currtile 4)
7 P+ {' W) d( L3 K. y2 n - (setq ai_ucsp_prevs T
0 h$ Q7 r9 N) P: H - ai_ucsp_currtile "ucsp_prev"
: H% }! p7 w! x- r/ m - )
; `2 w' b% w" t - (mode_tile ai_ucsp_currtile 4)
0 c" Y/ P k% y6 Z( j9 z0 G4 H$ x - )
6 m9 x/ E: D: L5 ?8 T# g - 7 H* j4 i: i" |6 m2 m
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
1 W) j' N1 M$ G7 K& e - (if (not (new_dialog "dducsp" dcl_id))0 f' P1 \! c: a' i
- (exit)
/ ^! J$ e/ H9 |! G5 T- e; F1 O! W - )3 d: L3 e5 Q- J1 N# q. \
- # J+ ^* Q6 h6 H$ x
- (ai_ucsp_start)
, h/ }# h+ O ^ - (setq ai_ucsp_a "@" 3 ]; S) s, k! c* i1 K W, \
- ai_ucsp_pick 2: Q3 s: [/ P! R( H, B& P( c1 U
- ai_ucsp_currtile "ucsp_top"
" {- O6 S- K+ [) Z - )
; Y# Z; i4 H) S - (if (= 1 (getvar "WORLDUCS"))
3 i- I; R1 b' K7 }1 I/ m7 ~4 a4 E" g - (progn( j8 V- V# l+ |$ Z: E0 U
- (set_tile "ucsp_a_wcs" "1")
7 y: D9 i" R9 v( _- ]4 r) d& n - (setq ai_ucsp_currtile "ucsp_world")
. W: L/ [* \) f- m. D6 D - )
E; @# {/ O4 G - (set_tile "ucsp_r_ucs" "1")$ S5 p: d3 `( ?# C
- )8 Z% ^! n* q, K3 T
- (mode_tile ai_ucsp_currtile 2)$ Z' } n" H: C, }* t8 U
- (mode_tile ai_ucsp_currtile 4)
' n4 C8 K8 R9 D P/ D: ^* M - (action_tile "ucsp_world" "(ai_ucsp_swcs)")1 ^$ A9 m+ b9 T' I8 X3 B \3 \) n0 ^. B
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")$ C( ~* g# T) t8 q- h: x
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
* R8 B, \) [( q0 f% t9 |5 i3 \( p, { - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
4 R+ r" w0 H8 G1 E0 t* ^ V; h% a4 A - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
9 v( V" n/ D! d# S - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")- {2 u K" f, m$ g
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
: t |) s* m: y: n& t4 a# C - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")* Y& N5 G1 X' t$ h8 ?& k; m: J* z6 s
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")
* o, k# d6 y" {9 o - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
6 d5 s: O" N) i o% _ - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
6 W; T! F- R3 K8 {9 u' { - (action_tile "accept" "(done_dialog 1)")) G+ N& b1 P. T3 w: L U1 y
- (action_tile "cancel" "(done_dialog 0)")& O. V, C. Z$ c, a/ J
- (action_tile "help" "(help \"\" \"DDUCSP\")")* W; k0 T$ o( ^( C2 ~) a
- (if (= (start_dialog) 1)
& p9 |8 U8 r" ]. M( t# b - (ai_ucsp_set)
# w; z5 w+ Y- \& ] - )4 l, w+ o; [% [. o6 f- i
- ). A5 _1 S0 G6 d4 t* P, A- p% w4 c, `
- & S( U& w! o5 { y# k
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
* T' u* m6 t1 G, Y2 s - ai_ucsp_sw undo_init). b1 E7 L: s/ h* h/ o }
- * ~1 w+ }9 W) R! d6 `0 J8 D, ^
- ;; Set up error function./ O4 `: w ^* P3 _+ h
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho1 p3 a y$ U$ L* \
- old_error *error* ; save current error function
5 G% v4 N( i" U7 w$ M - *error* ai_error ; new error function
6 v, H k4 `, I+ S( }" ^* S5 ]3 f - old_osmode (getvar "OSMODE") ; disable OSNAP for duration* D. }" }) d$ F" ?7 x
- )
. _+ c0 x! G0 r8 H - 8 O& V% z+ P8 [
- (setvar "CMDECHO" 0), j3 o3 N! B) z3 ~ U0 D
# ~* T; R3 \2 m: u- f- (cond
" k' p D8 T" P% C - ( (not (ai_notrans))) ; transparent not OK
: X9 j; @1 i2 K' [ - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
% ^7 j' I! x3 S; P2 W- U - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?4 J. L- c# L/ q \. a w& t
- (T (ai_undo_push)
; ^" R$ I) x/ f - (setvar "OSMODE" 0)4 H, w) M& Z0 o/ b: S c
- (ai_ucsp_main)
+ j) S2 ~ U' h2 g' N& w - (setvar "OSMODE" old_osmode)
# p5 j3 {- I+ Y" [/ W) M - (ai_undo_pop). K( r2 H! I3 X
- )
. S. N) @4 E, p6 o0 w - )' k& a2 A% H) c- P2 R7 \0 n
1 t- Z# S( A' O- (setq *error* old_error) 5 x5 [, p4 W( \. z/ K4 h" V( B
- (setvar "cmdecho" old_cmd)4 T s0 c) \0 |1 E
- 1 ^$ D! ?8 v, h: q" D
- (princ)
! V& T0 Y9 v( s; s - ): m- l8 ^; j1 Q8 ^5 R- S9 d/ u
- + B) p4 X' w1 K! k
- (princ " DDUCSP loaded. ")
$ A! R* ?, c2 a4 Z9 N( @5 h - (princ)- }* B; e" a* M' \1 |6 C
- ) C5 ?; J6 ]5 c* _5 X- N
- ;;;???;;;---------------------------------------------------------------------------------------
4 v2 O9 n; m- P0 j - + F. T& {. q5 R0 n' j
- ;;;----------------------------------------------------------------------------: B1 x0 G3 G5 N7 q6 a. k8 j/ k3 a' i
- ;;;
& K0 G$ r I4 C" ], w( W u) V - ;;; EXCHPROP.LSP
% i$ ~ h- W8 Z+ Z - ;;; Polyline and text modification capabilities added by * S$ h! Z5 c" H" {% b* z/ w6 i# p
- ;;; Randy Kintzley ' D# U! ^- o' W: x' G, I: P% g) Z' P
- ;;;
- l4 ~( s8 a6 l n0 [* } - ;;; Copyright (C) 1997 by Autodesk, Inc.
- G- `. S; l6 [& ^0 U+ u - ;;;* b i9 b+ q X6 O8 R$ [, J
- ;;; Permission to use, copy, modify, and distribute this software. t- @( {$ A0 Z J* X
- ;;; for any purpose and without fee is hereby granted, provided
4 Z2 p% Q ]" ~; H0 w s - ;;; that the above copyright notice appears in all copies and
2 m$ Z: Y% F8 }# Y! ? - ;;; that both that copyright notice and the limited warranty and
; c; ~( N, v$ }; k/ [ - ;;; restricted rights notice below appear in all supporting; D2 B+ P& P, v: D) D! R
- ;;; documentation.0 \. V& J9 u C7 G
- ;;;
6 t O( U! f6 r; U - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.! M3 _! f3 w( ?4 f4 V. n
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
3 {9 A% T9 {- P$ Z% o, _7 K - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
- ^1 A, F7 \: P/ m1 H" F) U - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE& E; b( `8 }1 r7 A
- ;;; UNINTERRUPTED OR ERROR FREE.8 r) d4 V1 A! r) Z8 ?
- ;;;0 t- d2 D& T6 s$ ~& U, a( X$ b) A
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
" i# s. B# A S/ y& l - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer; e9 S5 |6 w8 k& A4 g5 _' R4 T! B9 k5 n
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
4 y8 |' z( F0 h, j - ;;; (Rights in Technical Data and Computer Software), as applicable.; t1 s! [% Q! `+ [! Q) G. T' `
- ;;;5 L, N. [4 z# m) {2 n) N: m1 U5 [$ B
- ;;;.: x2 X2 m0 @( {' K8 {4 r1 T5 X" ?
- ;;; 28 February 19973 s: E+ {- D9 F8 c% t! V
- ;;;
* ^/ X9 H' ^4 {6 a$ @. M5 R$ T - ;;;% i/ [9 {* ~9 j5 F, T
- ;;;----------------------------------------------------------------------------9 {2 e1 B, I2 p! }, z
- ;;; DESCRIPTION
; ~) ?' Z* |1 j: M" J, W - ;;;----------------------------------------------------------------------------! {2 W6 x& n7 D
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
* k+ b% ?4 ^0 r - ;;; command gives the user the abilitie to change several characteristics / p" U1 D% i3 @# B
- ;;; of selected polyline and text objects. : Q! z! i( B7 H4 X, g
- ;;; The style and height of selectected text objects can be modified
% K e+ F, V/ g - ;;; (including text, mtext and attribute definitions) as well as, width and
# K) O; i \& E5 a2 S5 l; g - ;;; elevation characteristics of selected polylines (includes lightweight and 4 @% Q, t" M! r# q& H! T
- ;;; traditional polylines.)
/ V/ a; k9 K, G - ;;;----------------------------------------------------------------------------- s7 ?- g# |6 H A1 S
- ;;;----------------------------------------------------------------------------! d+ i: |. q4 D5 T! r
- ;;; Prefixes in command and keyword strings:2 b+ g2 o/ y7 o
- ;;; "." specifies the built-in AutoCAD command in case it has been
% |! u9 j# y5 c% } - ;;; redefined.1 W8 X, i5 t: S, P0 d6 x
- ;;; "_" denotes an AutoCAD command or keyword in the native language
, N9 m' [! l2 ~( s( d5 X" C! N - ;;; version, English.; F- t' Q. ^8 ^ M( c3 J
- ;;;----------------------------------------------------------------------------
! d Q$ h9 G4 t/ t - ;;;8 k: I r$ s/ L! ^7 F9 b
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;& T0 \2 w {5 H" m- e& {' l
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 x; ^& C5 E/ R' v - ;Functions created as result of loading file: exchprop.lsp
7 P7 e3 U3 d+ I/ k - ; DDCHPROP2% y: H d3 O" J, |9 Z7 N
- ; DDCHPROP2_INIT! Q/ ?2 G) w2 K; a0 s
- ; DDCHPROP2_SELECT
9 {# f, n; e1 P7 R* J) d8 V# }( b - ;
7 ^/ N" H- M: {4 W w) O - ;Variables created as result of loading file: exchprop.lsp0 w$ r9 G* F* B% @
- ; OLD_ALLOC
1 f$ L! P+ t8 Q% h - ;: X) u$ q% [& t, `
- ;Functions created as a result of executing the commands in: exchprop.lsp
3 ]* c7 y, l+ ~# ] - ;
8 V) m1 |3 ^( L! ~3 u. K2 E( d$ V - ;Variables created as a result of executing the commands in: exchprop.lsp1 `" ~8 l0 W0 {8 a( `) }
- ; AI_SELTYPE7 A) g" E. J* X- C3 I' h" ?- S
- ; BONUS_ALIVE5 T5 p1 V9 W2 X* K
- ; BONUS_OLD_ERROR
$ J* d! d" _4 ?% T7 `+ a6 p& Q! u - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- J, U/ e1 o1 U9 l% j8 ?
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
" W( \- n/ K" w" G) s3 \' r! M
+ r3 ^. ^& e) {1 U# t/ i- ;;;1 }, p* S9 ~5 W/ G. K% P
- ;;; Avoid (gc)s on load to improve load time.1 ?% A h( O U# ^, h- L. g. c
- ;;;
, ~) H$ i% |7 @) S - (defun do_alloc (/ old_allod new_alloc)7 Q6 a; B C- L* w: W
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))2 c& D0 B! {3 i/ a$ ^0 K2 p
- (expand (1+ (/ 4750 new_alloc)))
, n: N W' d) R3 P# \/ ] u# E - (alloc old_alloc)$ a. O. d0 o4 k' F
- );defun
. D( K% V! B5 p/ h& I: o
) `. B: \: U3 H. U! R7 g- ;runs at load time - rk
" P$ Q; A4 |, J& G - (do_alloc)( T$ h7 S4 E6 a% g) D
- (setq do_alloc nil)% r. q# b- q2 h
- ;;;: }) W' z1 O. }( |0 [' M
- ;;; ===========================================================================
, w9 I, k6 n0 z - ;;; ===================== load-time error checking ============================% `2 V0 `5 d' H
- ;;;6 B8 G) K9 a: d
- 2 E0 }$ A4 _/ k5 q0 U/ v
- (defun ai_abort (app msg)
& k, Y! u( H0 g9 _ h( `4 W+ o - (defun *error* (s)
$ L5 x6 _4 _$ r* l5 c. d7 m4 Y - (if old_error (setq *error* old_error))! B4 B: H$ l/ L* C) \$ W+ L
- (princ)
0 b# T/ T, Z" C' w - );defun( u7 y3 O3 ]% S/ @" C: A) p( ?
- (if msg
" ^, Z- e/ C8 x1 _9 { - (alert (strcat " Application error: "
7 G4 r3 z+ J5 L - app" o M, {) g! U5 `
- " \n\n " x) [) B- t; A$ F1 `* T; P* W- }
- msg) F& u& a8 n! x& J
- " \n"- F% J( v* D1 o0 ~* p+ Z
- )
/ P* M; E- X. i3 F9 R+ D2 q - );alert6 @* o7 { z6 }$ ?
- );if+ h/ c* T" w* Q) T- a
- ;(*error* msg)
3 h3 P' P4 m" A8 H8 J - (exit)
1 G5 O, t: d5 r( w. z9 F2 I4 } - );defun ai_abort- B* j, V5 `' I. ]" {, }! [
9 J3 j% E6 M0 D! a o, e- ;runs at load time - rk
7 e/ ?- p* b% r e# w+ J& J - ;(if (and *error* ;added the if wrapper around this - rk.
: ~' b$ I& Z. m1 c& r: P1 @ - ; (not old_error)
' ~" i6 c( d/ J" ^4 o - ; );and
- i( ~/ E( q6 x# n - ; (setq old_error *error*);setq: T# y/ U5 x0 Q e! d" M$ y- C% q4 L1 \7 \
- ;);if0 x! V( N8 W* o, H+ n
% B1 K7 m; z5 J( ~( x- ' g; p, O+ T3 D5 p5 q
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
) a1 ]& C! f2 g) }/ }4 `# J, s) { - ;;; and then try to load it." m- i1 Q+ C$ Q( K8 M$ c
- ;;;9 _5 |0 }) L* |- f$ A0 N
- ;;; If it can't be found or it can't be loaded, then abort the
- }' [! E9 e, S2 O - ;;; loading of this file immediately, preserving the (autoload)) o6 `, \: Y1 v5 |0 J% l" n, Z/ R
- ;;; stub function.; l' K% C: A- f# F7 G
3 A+ C& s' ?+ Z) e9 P6 D @1 W( j- ;runs at load time - rk.
" E) ?8 Z% A j+ d ^3 o$ S% ~& ] - (cond
* ^3 E0 N8 H+ C" B - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.) l: I- X( C# Y. o
- ( (not (findfile "ai_utils.lsp")) ; find it1 X* [# \- ?8 T' z( C" C
- (ai_abort "EXCHPROP"! \2 z# ^! o+ v6 @/ D2 k+ w
- (strcat "Can't locate file AI_UTILS.LSP."% H6 ?/ d" G& f7 v8 ~! F8 W
- "\n Check support directory.")4 F/ z# X* R. ]
- );ai_abort1 W& |8 j, l3 D% r: V' f
- )
/ a Q" C( O# m& s - ( (eq "failed" (load "ai_utils" "failed")) ; load it& \- T2 T: I' X9 ^
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")+ o e3 W1 o5 O
- )3 Y8 y+ c5 O7 K$ ?
- );cond close( r+ s- r$ t. p& M* P$ ^$ o
- ( j1 Q" V) G: Q' ^" k+ X* J
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP' R: y/ |1 Z! V2 x9 o% E
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses8 @3 n" C2 `( |; @' K: S* N% g9 Y
- );if ; ai_abort's alert box dialog.
$ |+ z$ L4 h+ d; O8 ^ - 0 |: w/ p6 f! G+ v
- ;;; ==================== end load-time operations ===========================
9 R2 x0 ?& y1 q! \4 v7 m
3 a7 |$ e7 H! t B/ L4 f9 Q- ;;; Initialize program subroutines and variables.; Z1 B$ C0 I& g5 O9 @1 [9 H' ?' w
- 1 I. X8 P- L, t* }7 U" B6 [" D
- (defun ddchprop2_init()
$ y- l7 s6 h' x4 P t e2 R
* p, ]- Q! m: Z" [7 ^' |: h
# ^* c$ U8 J# x% ^, Y# M
! V( A4 n. L: @1 `* P+ w- ;;8 x! A, P# i( }
- ;; Define buttons and set values in CHPROP dialogue box
1 t1 Z; P! h/ ^, k5 O/ P - ;;
9 s9 D8 _: D E, `( r* { - (defun call_chp2 (/ cmdact p1 p2)
' |- f& t9 `' h6 @2 P - % C: Q7 q3 f s; y
- (if (not (new_dialog "ch_prop" dcl_id)) 6 ]- [1 p3 b8 X5 M6 B
- (exit)
9 D$ c2 Z# l3 K - )
* Z6 |8 z# @. G6 S! L% I
* ~' q& v) Q5 A- (set_tile "error" "")' j, w& r# B' ?) b
- ;; Set initial dialogue tile values9 b4 _# e) T' A7 c9 h1 G
- (set_col_tile)
* m5 d a- p% f' D. x! A5 p4 T - (set_tile "t_layer" elayer)
4 j1 K. m' Y8 C - + w; k: s8 K- P. i6 c1 y
- (cond$ H3 `- f3 K+ S& z+ a% n5 W9 o
- ((= lt-idx nil)3 {5 b. }* I; u8 s, s" f$ T1 W# h- y
- (set_tile "t_ltype" "Varies")) D; J0 S( e8 l5 T
- )! J& J- |) C7 a( h" \) T
- ((= lt-idx 0) ; set tile "By layer & layer linetype"9 O/ g6 o4 Z) U: z! Z: f
- (set_tile "t_ltype" (bylayer_lt))
5 Z; ^5 K) [' Q1 h, ]2 w - ), Q! V& D# ]. ^+ T! n, |7 e
- (T
3 i# R. `$ r, [3 I. z# p - (set_tile "t_ltype" (nth lt-idx ltnmlst))$ N7 v6 I% L- a, s5 h7 C4 o! X' m
- )1 P, ~( @) J1 R# n
- )
! w- V9 p- n- ^. [2 A/ ] - 1 n' f+ r" U% F2 \6 n
- (if (or (= ethickness nil): N. P4 G; M& }$ T, O: p( E
- (= ethickness "")
) j( q3 {# t6 E9 Q' K - (= ethickness "Varies") 3 {2 L& B8 A( F: g$ X. W% \
- );or
$ }7 o; B( S! n& z - (set_tile "eb_thickness" "")
+ K( ^7 Y3 x$ T. e2 G z - (set_tile "eb_thickness" (ai_rtos ethickness))
$ O) s% ?. d1 g' a - );if* q* h9 }) Q+ ]3 ^0 K- T+ Y
- (if (or (= eltscale nil)- p4 `, v" M1 y" l' U( Q' J
- (= eltscale "")
H" m+ W5 z- m" X9 @. x - (= eltscale "Varies")! D A2 q7 c# |* x' N" m
-
' N* p3 p: i7 i l - )
' a8 s$ H. P% e6 T - (set_tile "eb_ltscale" "")2 X& E8 l& p+ @" c- O; Z
- (set_tile "eb_ltscale" (ai_rtos eltscale))
; G) d1 }9 Z5 w5 E, G - ); I! d( Q3 \1 r( r5 g
- (if
/ `4 |" ^& e; G" r - (numberp ewidth)
_' ^+ s$ _( N2 l; ?8 L - (set_tile "poly_wid" (ai_rtos ewidth))! N/ R1 w* O, z: R+ n! u: s) {
- (set_tile "poly_wid" ewidth)
( v! ^& M( y7 i - )- ]. ^4 T7 m2 G" j
- (if: Z7 }5 J- ~3 ]2 K. z6 m
- (numberp eelevation)3 n# { L+ U: M1 D
- (set_tile "poly_elev" (ai_rtos eelevation))
; L; s+ n# [% I# t - (set_tile "poly_elev" eelevation)* R% s: o+ ?" E6 S- Q$ s" Z
- )) _' u6 P1 H7 M4 h
- (if
% U2 O* k+ g4 e1 @$ z" y, S - (numberp eheight)
+ Q7 _( x9 M8 t& I" Z - (set_tile "text_hgt" (ai_rtos eheight))
7 Z3 g# `6 }: t# |- v; v. S# G* u - (set_tile "text_hgt" eheight)
0 U/ a3 m' I- X - )
/ z# A1 O, r5 ?# O - (if (not estyle)# V+ n. D: I8 m
- (setq estyle "")
7 g" K" H' P. q8 ~8 ? - );if
1 b& q! w$ d- q4 S g - (setq hair_style_list (tnlist '("style" 16)));setq
1 I4 C- J, ~' Q6 R# u% J - (if (not (member estyle hair_style_list))
, @4 R3 K# {# A$ i& n# i) o* Q/ ~0 b - (setq hair_style_list (append hair_style_list (list estyle)));setq" s4 `+ {* [/ c! c! w$ y" o7 u
- );if $ ^, b H% G6 u7 ^* f% u2 `' r. @
- , D. B0 I* i1 H
- (setq hair_style_list (acad_strlsort hair_style_list));setq
0 U0 {7 b; }2 G0 c* h - (mpoplst "text_style" hair_style_list)
( n4 c2 p, B' c: E2 J% s9 C - (set_tile "text_style" & A6 l& L$ W" {- w
- (itoa (position estyle hair_style_list))" |) a6 Y `3 o0 @" V
- );set_tile
8 F! b' C+ N! Z- Z8 }. u. ?0 d7 g
' R+ P. Y" ~' [7 P. q! l- ;; Disable tiles if need be... ;@RK
1 B& n% C* M) l. R [' G& Y1 E - (setq a 0)
& z1 v1 t! X; a) n6 Z! Q) z - (while ( < a (sslength ss))
3 Y9 ^/ F" J% T( L. }! z& f, @0 o - (setq which_tiles3 ?- A: [. B, M' r* |
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))& E$ G! V, y% y
-
. ?4 w3 E8 y2 W3 w( Q - ;; If all fields are enabled, don't bother checking anymore., t* R5 |( c4 ]8 O/ n
- (if (/= which_tiles (logior 1 2 4 8 16))5 J: T8 k: B5 J5 R k
- (setq a (1+ a))- ^5 u1 t q; v2 l4 Y1 h0 O! A
- (setq a (sslength ss))
* |0 D+ m2 T4 H% c2 }* N - )
! Q' M, S* j7 n6 y. \2 a: r: I - )
: M* h* n, X. T# E5 H- O0 X" W - ;; Layer Button and Text Field
5 e/ q# R. y* i, X+ _4 p ]
8 d( H w8 ~4 W, _( e, K. N z* B- (if (/= 1 (logand 1 which_tiles))
+ M% p _( D+ a( @0 @ - (progn
' n& P9 Z2 T# n' J( k. D# m0 v - (mode_tile "t_layer" 1)) m/ v( N! d v- t+ d7 Y/ [
- (mode_tile "b_name" 1)4 X9 K6 }0 u- g
- ), {2 c2 z- m& N7 ]- H2 _* P4 r
- )# R: W& }' u5 S9 P9 S! V
$ v9 B& t) H6 g: K5 q# s7 m- ;; Color Button and Text Field
$ u b3 m5 a, g0 z+ f4 s0 S4 D1 p, n7 o - (if (/= 2 (logand 2 which_tiles))+ |# ~3 ^1 z% f3 ^; K9 s
- (progn
6 F: m% t/ D8 w: s X - (mode_tile "t_color" 1)* @3 q' G7 S- Z8 o; t% H
- (mode_tile "b_color" 1)
9 Y( u- o" G: c9 k% {0 v3 ? - (mode_tile "show_image" 1)
& B" _( Y# N" c) p# e$ _& b - )8 z8 ?& r7 W/ E# C
- )1 b3 Y! V( O2 x- p/ O3 d# B
- ;; Linetype Button and Text Field3 |2 C" h, X7 T+ ^
- (if (/= 4 (logand 4 which_tiles))# L8 l# V# j+ r) N9 \& Z
- (progn
. [/ Z( S7 h" D" r4 H# @: g; i6 E - (mode_tile "t_ltype" 1)
3 U4 n- W6 e3 K+ d7 t; @) E9 A; _7 ^ - (mode_tile "b_line" 1)% m5 a" H$ u1 L, G; M8 ~ V/ H: f& f
- )
! q" Q* k7 }( ?# c( W" m - )
3 ]8 p% m% Y8 q; @$ y3 g - ;; Linetype Scale Edit Field9 a* V! h. g. Y( k2 S! v
- (if (/= 8 (logand 8 which_tiles))
$ r5 C( y' J* \- g, C - (progn
$ l' _0 `' o) F0 Y# N+ }4 _ - (mode_tile "eb_ltscale" 1)0 ?* X* a9 _& I: g, O3 g3 r
- )
& U7 D5 u9 C+ M4 E$ U( f2 m - )
" C( ^8 X1 a0 A, ^+ W - ;; Thickness Edit Field.
6 j4 i) a6 p1 o+ x6 @& W/ A9 i - (if (/= 16 (logand 16 which_tiles))
0 d& G' q) V5 A/ t0 k: H8 O1 O - (progn0 b& [8 P" K5 k7 C. A
- (mode_tile "eb_thickness" 1)
0 j R* @+ Y' g& I - )" a# D m% ?+ `. O
- )
4 C( |& a4 a/ z- ^ - 6 y4 X) N* R( ^: L1 ^7 a' E7 m
- ;; Polyline box and tiles @rk 10:05 AM 1/30/973 r# P0 M$ I, _! ~2 I/ s" c
- (if (not (= 2 (logand 2 eflag)))
+ G9 Q u \3 O - (progn6 G& ^! h' z. F$ @& E+ D# W3 I
- (mode_tile "text_hgt" 1)5 S; R7 I; R9 V2 E4 c, r/ b
- (mode_tile "text_style" 1)
; s7 @: R8 {1 g# X7 ~: U - );progn
& _2 d# \8 @* L3 `# y% m4 u - );if! j6 e& R D3 c9 j, o
- (if (not (= 1 (logand 1 eflag))) H. {! c; x. ^
- (progn ' a9 T8 f% v% U$ U
- (mode_tile "poly_wid" 1)) O. a; I9 C0 \: D ~) u
- (mode_tile "poly_elev" 1)
5 K2 k6 j! r' _0 T2 r$ }5 h - );progn then disable polyline fields
; S! y& v* h8 x9 _; z( X$ C, N - );if
: }, E% z p, b
% X! H6 D" v# F- ;; Define action for tiles) G! O- {+ ^, l
- (action_tile "b_color" "(setq ecolor (getcolor))")
: a# @7 b, g- a9 M* z' Z5 g - (action_tile "show_image" "(setq ecolor (getcolor))")" F0 x+ ~$ s% H/ c3 \5 Z4 V
- (action_tile "b_name" "(setq elayer (getlayer))")& t* h8 Y9 p; S7 U
- (action_tile "b_line" "(setq eltype (getltype))"), ?& R4 x- d! J5 ?' d
- (action_tile "eb_ltscale" "(getscale $value)")
; P* q2 y8 N* q! v - (action_tile "eb_thickness" "(getthickness $value)")
. O! w. w m- K1 H - (action_tile "poly_wid" "(getwidth $value)")! z' E! o* Z3 K1 Z
- (action_tile "poly_elev" "(getelevation $value)")
7 V# _0 v. d! b. V - (action_tile "text_hgt" "(getheight $value)")
2 Z0 y6 K) Q0 @2 F# H - (action_tile "text_style" "(getstyle $value hair_style_list)") # X/ w+ d8 k) l8 S& P
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")! r- K' i+ F' i
- (action_tile "accept" "(test-main-ok)")0 Y; }% c9 Z" p. H" i4 Q$ q7 ~
( U# N. k$ E( G, L/ ^- (if (= (start_dialog) 1)
. C* S+ p! ?' @" [8 H3 I1 w% k - (progn& t: p0 u9 [; @* g- t( q8 Y
- ; Update special properties for polyline and text selection-sets.
q6 @/ P; o9 M" r4 Y& W& p - % W5 j9 r9 c. k' D& F* L% \
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
; o' W6 x, C) D# p8 O8 o - (or ewidth
9 `" x9 _7 r) V$ u }1 N - eelevation9 ?2 ~3 w: J2 O! s4 {0 q
- );or
# K3 p* S5 h/ |4 T, t - );and
9 K# n b; ]! x# j2 O* C - (progn
( N- r* ]% F, p8 \$ m - (setq ss-index 0
6 ?) H7 h# x5 Y/ H3 T5 ? - ss-length (sslength poly_ss)
( ~& N2 j3 W; M# X" s - );setq y5 [: j0 D8 H, w8 R
- (while (< ss-index ss-length)
0 x" L7 g f; H' I- [ - (setq ename (ssname poly_ss ss-index)
. x% k& A5 K( d - elist (entget ename)
: l: R; t `6 T, p3 @ - );setq. z2 w3 }5 I- t+ X8 D, f6 B
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
; p0 h2 U- S- j; _- k I! E - (if ewidth
+ D6 Z$ E, Z3 b. }, c- k, e - (command "_.pedit" ename "_W" ewidth "_x")* M) X& j+ W9 W- A
- );if
8 @6 u w1 C( ] - (if eelevation
7 W. p8 `/ z3 _: L4 p& T - (progn
% K3 h4 l: e$ c- H - (setq p2 (list 0.0 0.0 eelevation));setq
$ l. ^1 K- m. M, c9 i$ W' D - (if (equal (cdr (assoc 0 elist)) "POLYLINE")1 q& Y+ M- P9 }/ v/ Z
- (setq p1 (list 0.0 0.0
5 v# S8 |0 Q u5 t9 b* [ - (caddr (cdr (assoc 10 elist))): t9 T# q% ]. m0 t/ j* A2 K6 ?/ `
- );list3 y M7 B7 O; O! K$ L
- );setq, Q; _6 U+ X$ s0 q( ~6 l$ T
- (progn
! m" z; I; C! W - (if (assoc 38 elist)8 \8 X8 \( V i% t' D5 `/ x% _* p
- (setq p1 (list 0.0 0.0* [5 _2 }& U8 { L5 H4 d
- (cdr (assoc 38 elist))
% T; B5 Y, L8 ~/ O; ]# i4 t; c - );list( y5 X. {# e/ \% S' ]
- );setq4 a: o; O1 Q1 ~4 X6 a( Y
- (setq p1 '(0.0 0.0 0.0))1 S9 K" S) B; n5 `/ V/ j2 E
- );if
- f$ X. `9 r7 P) V6 U - );progn
) p0 n' S ~ z% d. A( c - );if
( h/ O6 H r' Y - (command "_.move" ename "" p1 p2)
6 ~/ h6 c$ P3 E' W7 q - );progn then change the elevation of the polyline5 X. N J4 B0 c4 p( h
- );if
; H* @4 @4 ~' x. r) W: t - (command "_.ucs" "_p")
4 J& H6 g7 ?( _! [# u/ {' H - (setq ss-index (1+ ss-index))# q9 a6 d+ u L: }/ v4 z% T( d
- );while% D8 T; D5 U9 G: }( X. X
- );progn then polylines are in the selset
" T$ ^8 M6 U2 P" @) k4 q1 B- p - );if
. W8 B, ?! K; H. y3 _/ ~. B - (if (and (= 2 (logand 2 eflag)) ; text; b/ M9 h; d8 O+ L. Y" \. E
- (or eheight
- n; u# N# m+ l. l' A, \ - estyle
9 z- I# h0 w- `5 a2 z) j* J4 }$ J- h - );or
. G9 n* _, m3 K% {" N- S) w$ K- L+ f - );and! N- R9 R/ o( B) D
- (progn9 x# \. M0 m( w
- (setq ss-index 0 ss-length (sslength txt_ss))
5 `' f) ~6 V& A# e- I - (while* a! l* Q7 a. S# N/ n& C. _
- (< ss-index ss-length)3 O: U" Y/ U8 y+ b* A* p
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))! Y9 M3 H& u# ]9 K5 y
- (if (numberp eheight)
1 L6 r0 _" v5 [1 l - (setq elist (subst (cons 40 eheight)6 @3 d4 g. ~" |# f9 L
- (assoc 40 elist)
; W+ A: K6 @$ M/ Z- i+ q - elist
2 s H/ } G3 Y+ o - );subst! u2 E: G% W7 Q; {; {" }
- );setq
3 y5 z6 H: n2 F# l - );if
9 }& Q4 C+ Q2 o% p& y - (if (and estyle ;(not (equal estyle ""))0 U6 l6 D4 V" k$ |, |/ H: `1 b
- (not (equal estyle (cdr (assoc 7 elist))))8 R7 {2 }; @( F) p3 ]
- );and! j$ @, j+ a ~$ e+ X9 r+ @, \- y
- (progn
( v' o! S3 K3 V3 n - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt + A) w1 }$ U/ v h9 p6 B3 u0 x
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
' `4 v. j8 e" z. o& p3 R, v) @8 D - ; (setq elist (fix_mtext_fonts estyle " |- }4 _, o( E$ g$ t) E+ c& [
- ; elist
2 D5 l% K, ^& t/ ~5 | @3 f) w4 D - ; )
" I: ?7 j! H; m y B# H3 m - ; );setq then: A- c# c' x. {# P7 J
- (setq elist (subst (cons 7 estyle)
( P9 w( D& ^# C ]6 c - (assoc 7 elist), K2 F5 U" f) n
- elist
7 ]' g" |4 P; S6 Z; T& P- C) t - );subst# `/ l0 e& H4 I1 O* S# A
- );setq else
4 I' ~/ V) H7 |/ u" B. }( B/ ^ - ;);if 0 w% X2 R/ M$ |# u* D; V% C
- );progn
0 X- l& ^# U* T$ z& V3 i7 Q - );if
, ]# E9 u; z* p1 c9 i - (entmod elist)( s7 K: X( ~& J5 A: g% i% V
- (setq ss-index (1+ ss-index))
# \$ C4 y N3 \3 J9 w - );while& n% g! b0 A# P# @- A
- );progn then
8 z# Q. c7 A+ P* I4 O" U: ?3 f - );if
" m( I* ^7 W& Q) Q" F! n - % i) q3 t, Q0 G
- (setq cmdact (getvar "cmdactive"))
0 w7 T. [2 R) p4 B - (command "_.chprop" ss "")
# A0 c4 e1 E9 p5 Z, c& ? - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
) _/ A. M- A Q2 D4 G0 s. m - (progn
$ K& ]' x( k9 o O - (if ecolor% y% m) t2 Z* n- d
- (progn
+ G' I3 V, P9 ]! y( C - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))8 L% i' \. J- z4 a3 K e; Y
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
3 y( @1 m0 B5 v# a; s - (command "_c" ecolor)
7 p: |& a4 K# k5 ?4 G! N - );progn then. U4 W7 D( T3 t& c' K" a
- )
* _* U5 c9 C' a% \2 J - (if (and lt-idx* o( j' w$ w( G; R
- (/= eltype ;|MSG0|;"Varies")% m8 Y9 T' X f
- )+ y7 ?* h" J) x r( o
- (command "_lt" eltype)
3 i- }, n" B4 W - )
6 }9 k3 o0 A& W6 }' M5 `1 s$ m - (if (and lay-idx 6 ~9 `$ z% p. I0 k( S5 F
- (/= elayer ;|MSG0|;"Varies"), J9 d# Z( P4 p
- )
( h O$ w2 n2 S6 T, [ N - (command "_la" elayer)
% a) i- [& `- Q& b; m - )
2 J7 T+ S4 I) W3 _, G+ e$ U& Y - (if (and ethickness
9 Y0 ]/ j7 l0 M( ` - (/= ethickness "")5 r; j, ?$ @2 e" V/ `0 y
- (/= ethickness "Varies") & ?+ K% W5 C$ Z
- )
( ~. |1 s ]# h5 I - (command "_t" ethickness)
" V" Z+ p1 k ]# }7 U& l& i - )
7 z% O2 z; U$ N: Y - (if (and eltscale (/= eltscale ""))
6 f0 e$ S$ d' j% }, F/ K - (command "_lts" eltscale)
! D0 C) ^8 x0 k" a E9 n - );if
0 \) v# ~. f) `: T - (command "")
! N/ q0 E" _6 }1 f8 N - )
0 I- o0 o3 B [4 S# ^4 b - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
7 a. T/ d7 c' p- @ - )' M. k9 V* x4 }. o7 V# G" A
# h: ^. m# @9 U$ B6 E! S& l- );progn then OK was picked in the dialog.
& L1 b4 a1 T8 m+ g* J -
, q' b) a6 C0 |! U/ @( n3 ] - ;; Fred GERBER - 25-AUG-943 m6 ^- X9 F) C
- ;; Don't print the "Properties unchanged" message when the user cancels
$ J2 g- z" i; ^0 }' O - ;; the dialog because he knows that already (otherwise he would have
2 s" Z5 f! ?. k! \ - ;; hit the "OK" button). Display the message only if CHPROP fails for
& E8 {" G( R& b, M' h- m7 ^& ~ - ;; some reason, because it is not the expected behavior of the command. d6 T, i2 \ Q" ^( a& ^9 z
- ;;
% R# @0 ?; T$ x4 Y$ @% g - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
% W2 q/ a4 c6 ^ - );if
9 P- L) c; u' ?8 z4 h% P8 H: | - (princ): N. b0 I5 [! Y' q, ]
- );defun call_chp27 }) F9 q$ S" h( E. ]2 C; h
- ;;
! x" R, G/ J. \ - ;; Function to set the Color text tile and swab to the current color value.3 v: V, d' P/ S- Y0 g
- ;;
5 w) s' P) M5 r, s - (defun set_col_tile()
5 D: ] j. _+ H$ J6 m - (cond) ]" Z% B( [8 V B, {0 f
- ((= ecolor nil)
4 `' m1 |/ @! x& n' f& T - (set_tile "t_color" "Varies")+ o4 x! v" A2 w( s4 G
- (col_tile "show_image" 0 nil)) ?# i" @2 R0 Q' c* L+ i# p
- )" r- l2 y! p- d- Q: y2 o6 ?8 q
- ((= ecolor 0)
5 ?+ J, g+ ]6 F6 c7 a' ] - (set_tile "t_color" "BYBLOCK")
% }; W' u; y! c4 [: _8 m" Z& J+ Y - (col_tile "show_image" 7 nil) ; show BYBLOCK as white# B5 m0 N ]6 h6 [. m
- )/ c& g# s6 v2 m5 U- J2 Y
- ((= ecolor 1). X. `* n# j1 W i% b2 K
- (set_tile "t_color" "1 red"); S' E( J" i# n) {% U
- (col_tile "show_image" 1 nil)
+ k9 @3 h1 K! H% N# |0 A: Z7 i - )9 |* m; j# p5 u& l, @
- ((= ecolor 2)
' l/ J' h! u) b' {* A - (set_tile "t_color" "2 yellow")3 [! v$ @) t$ t( P7 J7 V2 M9 P
- (col_tile "show_image" 2 nil)
7 i( Y; U( Q4 \3 Z2 W( A - )
& k+ Z: p. K) C3 ?) C - ((= ecolor 3)
2 _( U3 u- ^( i) |# f - (set_tile "t_color" "3 green"), P5 n3 Q. h4 n/ K1 {
- (col_tile "show_image" 3 nil)
" q; q, u. C3 s( T; _ - ). ]/ d1 U" f u7 `7 |* l
- ((= ecolor 4)
! T: M) M+ ^$ X$ \ - (set_tile "t_color" "4 cyan")
! {! z/ a( X+ k' S2 V - (col_tile "show_image" 4 nil)
8 } N- R, q9 d$ m# ? - ). t! N: B; z/ P1 c0 O) e- Y6 I
- ((= ecolor 5)8 o$ F# p% n7 y3 G
- (set_tile "t_color" "5 blue")0 ~! z* T3 ] H2 c
- (col_tile "show_image" 5 nil)
2 `5 ]3 C7 y) p% x' s8 X" i - )
$ k r9 M' k; I - ((= ecolor 6)
# w3 N6 W# v/ _6 S5 E4 f4 R+ D* r - (set_tile "t_color" "6 magenta")5 h8 q4 D' J1 O4 l
- (col_tile "show_image" 6 nil)+ ?" h1 @8 u/ Q# N7 c3 G( I
- ); W' L* P f6 l5 D
- ((= ecolor 7)
% _2 {3 b" |/ n# U/ q - (set_tile "t_color" "7 white")% p# m1 j0 B D/ M$ Q
- (col_tile "show_image" 7 nil)6 Q( ^7 j. ]( N( X d2 W4 C
- )5 F( I7 M: B( P
- ;; If the color is "BYLAYER", then set the tile to
( {* a' F7 o# R6 b# ]* \& f - ;; show it's set By layer, but also indicate the$ H" G4 l" y- j. J; D( o
- ;; color of the layer - i.e. By layer (red)
' X& i5 I3 U7 M% O- Z - ((= ecolor 256)) Q9 ^3 R. G3 x" T8 Q1 v7 _
- (set_tile "t_color" (bylayer_col))
0 d. {0 B) z; J( x& n - (col_tile "show_image" cn nil)
; ^8 Z; y) `/ L - )% D0 Y" y1 ~2 P" \
- (T7 [- {" O: B( S2 j Q3 Q
- (set_tile "t_color" (itoa ecolor))
! n) o: ]0 i+ X6 K8 d! f% I - (col_tile "show_image" ecolor nil)
- h- E; G/ j% l. j2 r) i' w+ c - )
6 ^" ?% M, l: |- ?7 @ - )
( o3 f6 R# M+ [: R( Y+ {5 y; M - )
; ]& B3 q( V( ]- ]' s4 Q# ^ - ;;. O$ S" Q# R" m) d6 O
- ;; Function to put up the standard color dialogue.
. J1 M' K' e6 k9 D1 l- I& c& g2 @/ N7 q - ;;! H3 j7 h% o% _- T9 r% I
- (defun getcolor(/ col_def lay_clr temp_color)
, U) S+ Y# {, E; F - ;; col_def is the default color used when rq_color is called. If ecolor; C4 N7 k1 L, q) a8 t* r
- ;; is nil (varies) then set it to 1, else use the value of ecolor.6 e: i& M8 {) a7 n3 f# o
- (if ecolor
, G0 c8 @9 j4 g) C& H( a - (setq col_def ecolor)
1 Q# @, |% M' U2 C1 J - (setq col_def 1)
# e8 G5 Q! M K _" ~ - )
1 n& z/ A: H) g+ H; H' Y - 2 N0 D* S E. G5 v
- ;; If we're working with a single layer, get its color. a1 a9 c% d' D6 q
- ;; for use in the color swatch if the user selects color BYLAYER.; O6 d$ D9 c: `0 r" v. O, m! G" G
- (if (/= elayer ;|MSG0|;"Varies")
8 y# [0 K2 k& \; p$ D, C% S - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))) n/ M% o- @( h; V" Y, v" s
- (setq lay_clr 0)6 w! P7 ~0 D- Q! Q0 @# C
- )0 o4 p) {! o$ P) `! c
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))) Q4 ^ i2 L& Y! o$ k. ]( E' X
- (progn
3 h C/ r) a4 b7 m# Q - (setq ecolor temp_color), U( ?6 m) Y7 @# `) Y2 k; r
- (set_col_tile)
/ a# K# d0 z4 s3 b - ecolor1 ?+ ?2 y, R% R' T, [. K# h2 q! F
- )
: @" z7 \- y5 w( j4 N - ecolor; B7 H+ |) s# j% r$ U- ~
- )5 p# P" @+ f5 Q$ F2 n& s
- )
) l( W: \. _& A( ?4 N) {3 I6 v - ;;! N: }* f1 [* `! A7 G" c( ^
- ;; This function pops a dialogue box consisting of a list box, image tile,
5 u, T+ d- `+ K) w' h - ;; and edit box to allow the user to select or type a linetype. It returns& ]: _ h: G% R# k
- ;; the linetype selected." L0 L; H6 J6 N* k
- ;;
: B0 P$ O0 o1 }; U G6 \ - (defun getltype (/ old-idx ltname)+ `+ e) \# r2 ?6 p! M& _# A
- ;; Initialize a dialogue from dialogue file
6 |4 n8 T. t8 m0 c- P - (if (not (new_dialog "setltype" dcl_id)) (exit))
* m8 x7 _- x* C6 F; K - (start_list "list_lt")
. c# B) ]! K8 j! s) k7 q - (mapcar 'add_list ltnmlst) ; initialize list box
* ^, d$ [6 A" ]4 V# z1 r$ F - (end_list), g1 r& B, m' m% U# f0 @( k/ c, b$ o
- (setq old-idx lt-idx)
, ]0 G! ?* a9 p+ j2 w: h - ;; Show initial ltype in image tile, list box, and edit box3 _: R6 u" F9 k* ~4 m+ ^' ]
- (if (/= lt-idx nil)
; N& _% C" }) H* ]' y1 z2 y$ c& ?8 E - (ltlist_act (itoa lt-idx))
5 ~& B+ A7 Y, Z# E - (progn: }: Q8 s3 Q6 Z- e6 X7 n5 v& |6 z4 V
- (set_tile "edit_lt" "")+ N, C" V/ p$ ~" m0 o. ]& }/ |7 A
- (col_tile "show_image" 0 nil)! i5 B+ l9 d/ c
- );progn else6 s' w; P- ~. t& C) q# b9 O
- );if0 p8 Y. p* j" Z4 u: c- [6 y2 N$ u' w
- (action_tile "list_lt" "(ltlist_act $value)")% U" a. b& E: Z1 J
- (action_tile "edit_lt" "(ltedit_act)") O+ T4 j8 j8 n: I) H
- (action_tile "accept" "(test-ok)")$ R% l" T# r, [9 h" r
- (action_tile "cancel" "(reset-lt)") U$ V! A3 b- p) F1 M
- (if (= (start_dialog) 1) ; User pressed OK
. Q1 \9 E+ i: v4 Y - (cond: l0 c+ r1 Y3 N: [: M9 W& u5 z6 z
- ((or (= lt-idx nil)
9 O7 D5 i' a8 X3 Z* }8 W - (= lt-idx (1- (length ltnmlst)))
. m4 V& B8 @5 T8 X$ G. F - );or
6 k! l3 ?" E: {5 o( m7 l - (set_tile "t_ltype" "Varies")
7 P; e' r- M5 Z5 M - ;|MSG0|;"Varies"
0 o2 N0 X }( I$ R- c% B- l2 _# s; W - )" ]9 X9 b" I, K; X6 L* b R$ V7 ]
- ((= lt-idx 0)# w1 w' ?, o, W( q& P! M: J
- (set_tile "t_ltype" (bylayer_lt))
2 a2 i2 C% t% b9 k% @) h - ;|MSG0|;"BYLAYER"
- }% j0 ] F5 y; Q - )- X* s# b% J( x# A" Z5 c
- ((= lt-idx 1)& v+ q. n1 }0 g
- (set_tile "t_ltype" "BYBLOCK")4 Q( _5 u: d- D: ~! }5 p( K
- ;|MSG0|;"BYBLOCK"; ^3 B. B" T$ [; [ h
- )
' y/ ~3 P1 }0 k1 j - (T
4 j o% Q2 Q+ y/ H' {/ j! V - (set_tile "t_ltype" ltname)
4 e+ s, \% |0 ~: |% y# l' y6 n - ltname. `9 Z3 V4 @- U/ ~+ o' `7 C
- )
! d4 Q* c! e% _4 N8 o - );cond then- L& T& X. ?5 A* H) _' k3 L
- eltype
6 Y, S# z. H7 g% e) l6 B - );if/ X5 \& e' m) J
- );defun s3 |/ w1 x+ _% K5 t
- ;;( ~" a; y5 }% c6 m/ f2 Z
- ;; Edit box entries end up here$ r; X& C/ |" H }; W
- ;;
+ z: w+ G. i% k# S - (defun ltedit_act ( / flag)' h4 t3 ~' \& i) E0 w' o
- ;; If linetype name,is valid, then clear error string," T5 D+ u$ v ~
- ;; call ltlist_act function, and change focus to list box./ B( Y$ _/ t4 G9 k* T/ ]6 o: P
- ;; Else print error message.
5 g+ l) ~1 Q; B' n- w# n" v. T" Y! L+ i/ N -
8 k3 p7 }& E5 ~" d - (setq ltvalue (xstrcase (get_tile "edit_lt")))4 q/ C. N' v( l
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")& ~2 E! k( A$ g% l$ I8 L! W
- (= ltvalue "BY LAYER"): w7 G! X3 p4 O- {* l
- )
3 A9 V, U x# b7 t1 U; }% j6 ` - (setq ltvalue "BYLAYER"). X9 A( Y; z# v$ G' z# C( f: G4 z
- ): g8 P* G0 t* q2 ~! ?
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
0 `+ i0 r# o4 O* K - (= ltvalue "BY BLOCK")5 a+ C& e/ e$ X( l: |# x
- ) N7 B( z, N( g# Q: A/ F ]3 s+ h
- (setq ltvalue "BYBLOCK")
4 a7 \1 J) w6 r6 S0 U3 [ - )
8 z/ ^; \' j/ k- X! d& @7 X9 k. E - (if (setq lt-idx (getindex ltvalue ltnmlst))% N- z: r4 m% ?. A
- (progn. `. B. \; p' z- {6 Y) Q- ^9 Y
- (set_tile "error" "")% I1 T9 B2 H6 `* {
- (ltlist_act (itoa lt-idx))& p8 J: c) ^9 L" G1 m1 S7 U
- ;(mode_tile "list_lt" 2)% ~& L4 B0 i0 N' u) ]8 z8 V
- );progn then! `$ x0 {3 ^% z n
- (progn
# e# i7 H/ b3 L/ A* Z$ Y - (if (/= ltvalue "")
# ]3 f: }- {# v9 _ - (progn
, m" M* |, \) t - (set_tile "error" "Invalid linetype.")2 W' H% A3 z0 G% @& p# T7 Z
- (setq flag T)
~) a4 b w* s% A% `- I - );progn
7 H* |* X# J2 D3 m - )
% y5 M1 k# h! W7 {1 D3 Z - (setq lt-idx old-idx)
0 v: v5 s5 n7 _5 S- [ - );progn else# n/ F$ T6 d( i
- );if& q! t9 \7 G- g$ D
- (if (and (not flag) ;added so a return will take you out of the dialog.
7 G1 S- {# n0 U# O$ r* P- P - (= $reason 1)% ^# n' K: c0 x j7 t
- );and
3 H8 A7 W9 D6 m9 D& ]9 C/ r4 E - (done_dialog 1)
8 v5 L/ X* ] b E# U' F - );if
& A, p1 x; ?( @2 j9 J4 h - );defun ltedit_act
9 T* m6 V& | k( x( a. V3 A9 A - ;;/ a# N3 l C$ |2 T. |: D
- ;; List selections end up here
{: \ b/ d- } - ;;
5 y. Y `- ~% L8 D2 u% C - (defun ltlist_act (index / dashdata)
k) z- t3 k3 x% e" Z - ;; Update the list box, edit box, and color tile
8 ^! b% i0 N& f5 S - (set_tile "error" "")
. W3 q+ W# G- @5 A7 P1 k - (setq lt-idx (atoi index))$ {# E$ Z# ` ?4 i4 u2 _6 D2 P
- (setq ltname (nth lt-idx ltnmlst))$ W7 J7 R4 y# B' {) G2 o5 a5 A4 P
- (setq dashdata (nth lt-idx mdashlist))
+ o5 q$ [# N$ D& ] - (col_tile "show_image" 0 dashdata)/ N& a3 I- k* Q! D7 _
- (set_tile "list_lt" (itoa lt-idx))! _% [. ?. z( C- v
- (set_tile "edit_lt" ltname)
5 F Y1 d+ K) g; U w - )* d2 _' }. k& _* [% L
- ;;
2 q8 f0 l: O5 i- k( f - ;; Reset to original linetype when cancel it selected7 j3 x3 f& b1 }7 P/ W
- ;;
) J' U( [, n/ ?9 N+ n7 R5 ^ - (defun reset-lt ()
" J: J4 b2 i/ }) t4 M+ X - (setq lt-idx old-idx)
, _, a, H- P7 z3 [. j - (done_dialog 0)) e% G# R l# U5 r
- )
# S0 g2 E4 O+ y# A1 }3 E& r - ;;$ i+ s" Z _% }, Y \' e+ j: m
- ;; This function pops a dialogue box consisting of a list box and edit box to. Y5 h6 o7 w* C( L. h0 D( M
- ;; allow the user to select or type a layer name. It returns the layer name
4 f2 n, q9 a/ @- F' r6 h - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the# N1 T+ r. A+ S0 a# y' Z! i% p# Z3 b
- ;; drawing.
9 t' O1 @8 z. j4 T - ;;
3 W8 R0 o$ _8 D# r - (defun getlayer (/ old-idx layname on off frozth linetype colname)
! v3 K u; }/ y2 z9 c- P) C - ;; Create layer list the first time the layer
* [5 _% |3 S" [ - ;; dialogue is called.
. Q- S% b7 Y, R6 ?5 D- y8 k0 s - (if (not lay-idx)# \, S5 H0 d9 ^) x! e6 ~
- (progn6 H- Y F1 b2 S
- (makelaylists) ; layer list - laynmlst
. E) V6 K9 Q b' T+ p' F" U - ;rk8 F# j7 O5 h8 `4 w( b) H7 \& [# S0 u
- (setq lay-idx (getindex elayer laynmlst))4 ]( v! s" a8 P. V" p
- );progn. g( N+ L5 T8 |! V; w1 t
- );if6 j8 p2 z% _ e& u* A% O
; B% t: _8 H0 {0 K, E- ;; Load a dialogue from dialogue file
& ?( V7 I, \$ G7 x& S! M - (if (not (new_dialog "setlayer" dcl_id)) (exit))1 M+ X6 o @6 h: W. Z6 R! {
- (start_list "list_lay")
$ g1 \; h, P& `; m' D - (mapcar 'add_list longlist) ; initialize list box
7 Y- y& J! k3 F. p - (end_list)! V0 a p, m; W8 }
- ;; Display current layer, show initial layer name in edit
8 Y* a# S* v& u& Z - ;; box, and highlight list box.
( J5 `/ Y7 b) H1 L - (setq old-idx lay-idx)
# y/ K( J% D% U- c - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))( t0 l# E) |: s9 c7 j; I
- (set_tile "cur_layer" (getvar "clayer"))
3 h O. N. B0 _( {8 ~2 k( @: ]$ O - (action_tile "list_lay" "(laylist_act $value)")
; O8 q9 o+ ?+ d1 N - (action_tile "edit_lay" "(layedit_act)")
1 ^% K4 B; t) S. E: F u0 ^2 m - (action_tile "accept" "(test-ok)")9 ^* }% d: c$ E1 z
- (action_tile "cancel" "(reset-lay)")
8 H7 c4 l4 H: d: N4 C - (if (= (start_dialog) 1) ; User pressed OK
|% B* T: O5 |( L" C J - (progn( m- t9 X; y8 V
- (if (or (= lay-idx nil)5 K) {+ [8 Y0 P& i9 X; m
- (= lay-idx (1- (length laynmlst))): O3 G7 J! W1 n
- );or' A7 J! W( z, e8 M7 H9 Z
- (progn
3 Y; K7 ?9 Z* F3 `: r% C0 `4 L ~ - (setq lay-idx nil) ) j& N# X, M% x& Q% M+ U
- (setq layname ;|MSG0|;"VARIES")3 ^$ }' M+ r* _ g- h
- (set_tile "t_layer" "Varies")
/ G% _0 R- d+ O. | L - (setq layname "")
2 c3 U( \' @4 w3 x; n) P - );progn
. A6 Q1 o9 U% k( _( S! K - (set_tile "t_layer" layname)
+ Y( _; t. C. K* T1 F, }- m3 t - );if
1 L E) A" s! s2 y" W* k e! U* p - ; If layer or ltype equals bylayer reset their tiles- X2 \; z ?2 p* _
- (if (= lt-idx 0) h" P3 Q1 {0 i9 w
- (set_tile "t_ltype" (bylayer_lt))
9 s) ]( |9 w. | - );if
; q& T% O; S$ V/ o% r- x$ J8 ^ - (if (= ecolor 256)7 C! O' S: S3 h& O$ ?, G# M
- (progn
* @* U/ [, D0 `4 G2 c0 b+ I' n - (set_tile "t_color" (bylayer_col))+ {1 t6 C+ w* Z6 Q5 M
- (col_tile "show_image" cn nil)% p' c! p0 ?* o) U+ g4 v2 Z9 u( p
- )- Z* l, d) l3 w0 J4 u
- );if
. g* `5 ]4 J3 ]5 {9 n7 u - layname
6 B& r+ _0 i" i" i+ b5 O$ v8 z - );progn
& H& j# k+ K! V2 `" E4 `+ d - elayer
( i8 ]6 ^! e! J$ q4 ] - );if
/ C, Z/ y6 f8 B) B+ d - )5 z& h' |1 o" m
- ;;0 X9 t) K8 j+ w5 C
- ;; Edit box selections end up here2 q6 A* E" z6 E! K+ V
- ;;) v3 {( K4 p! ?' O9 |; o
- (defun layedit_act()
' u+ k* n9 ]6 ]- @# ? - ;; Convert layer entry to upper case. If layer name is( f6 F; q3 |% U! U& ]
- ;; valid, clear error string, call (laylist_act) function,
* S; ~9 B5 s$ E5 t) n( ]3 X - ;; and change focus to list box. Else print error message., b) v. i) M" ]' |0 E) ]2 ?
- (setq layvalue (xstrcase (get_tile "edit_lay")))
% @1 A: P% u6 `0 i' X - (if (setq lay-idx (getindex layvalue laynmlst))
G3 V1 q( h; z' i8 B( {. B8 ?6 A - (progn
, ^( [% g% b9 h# x! m - (set_tile "error" "")+ ]/ H4 Y) S* K) f8 y: u/ d# X9 Z
- (laylist_act (itoa lay-idx))0 Y! N8 J @" Y
- )
/ p3 \ v% L$ A l' {( l! K, ~ - (progn4 \2 |3 E: B/ ^- y' f
- (set_tile "error" "Invalid layer name.")8 @; f# c: |; |. u, G
- (mode_tile "edit_lay" 2)" q* a. H7 I6 |* k8 k% {3 s5 N: Z
- (setq lay-idx old-idx)* `4 V! J- W8 v* Z( g- N
- )+ q u: L2 c# J8 W7 @6 o# c
- );if
8 v2 m7 Y0 q, l - );defun
. `9 d2 S0 y2 } - ;;
/ m! r; L1 p0 V& D8 L - ;; List entry selections end up here! X4 X6 A2 I7 a9 x
- ;;6 M V+ \) C5 M6 ^ P
- (defun laylist_act (index / layinfo color dashdata)+ Q: b( e7 T9 w2 h, Z* V
- ;; Update the list box, edit box, and color tile
* ?0 Q& M7 E( \) f - (set_tile "error" "")
5 W _' U7 ^1 f- h1 c( L4 d - (setq lay-idx (atoi index))+ v! [& g; v; H8 O) |9 d' J1 `
- (if (not (equal lay-idx (1- (length laynmlst))))# ~; u2 ]8 y' S7 T V: U5 m+ M
- (progn
, N3 u4 k+ h' r6 @- e - (setq layname (nth lay-idx laynmlst)); V: A6 }2 j( S3 }( f" b b
- (setq layinfo (tblsearch "layer" layname))9 j, G. o& z5 ~% S7 A
- (setq color (cdr (assoc 62 layinfo)))8 Q c3 j8 v+ G2 l' O- n
- (setq color (abs color))
' T' i. p& q ` - (setq colname (colorname color))6 M7 H* y" K' I- y5 W6 Q
- (set_tile "list_lay" (itoa lay-idx))) q, B6 @9 n* x, a
- (set_tile "edit_lay" layname)- v' v- A0 o7 ^4 u; |, y( J
- ;(mode_tile "list_lay" 2)0 B' ~8 ^+ K1 [
- );progn then
9 M/ Q9 m1 `, c- r, v- H - (set_tile "edit_lay" "")
. d3 A5 [) U0 e - );if ) E! ]# {0 o! P
- );defun laylist_act& M$ s. r9 C! x4 i. f" h' s
- ;;* w- m: I/ G1 L* d. V' p3 e, i) y0 ^8 W
- ;; Reset to original layer when cancel is selected
1 D1 [( G f7 `* q - ;;9 o: r8 W% O7 A' N9 ]0 b7 M
- (defun reset-lay ()
, g& m# y1 D- d9 E - (setq lay-idx old-idx)$ q% x" @# \- q/ }3 x' h1 X
- (done_dialog 0)
" ? }9 H2 Y; M- F - )& ^) S+ b% F' c" F
1 w% u0 f3 p" j6 a; M/ f7 j4 Z; G- ;; Checks validity of linetype scale from edit box. It checks to& [2 e8 x6 M; |& K7 u: I
- ;; see if the value equals "Varies".
s7 F& g" D+ c; w2 z, } - : r5 X# e7 Y" p: |6 |! B6 r6 K5 q$ \
- (defun getscale (value / rval)0 y( c. n- B2 z4 Y
- (setq value (strcase value)
/ y$ g' q U9 ~ - rval (distof value)
; D, o; \1 Y8 c - );setq8 \# D: @1 @; T* i- t' T' F
- (if (or (= value "")
2 y/ `) n4 D, H3 ~7 Q - (> rval 0.0)
1 v4 J) [9 a3 l$ D) B, u; g" t - ). G2 f" N! H7 F( }* l
- (progn, F/ p" K" ]/ N7 @$ g( ^ M
- (set_tile "error" "")
0 Y. Y5 l6 x9 s% Y Z - (if (= value "")$ n' f( a; c5 I8 c% _) V& v
- (progn
- D4 O7 q$ k' a0 ? - (set_tile "eb_ltscale" "")
. |4 |* h8 [, ]" s2 V( [( w' v - (setq eltscale nil)3 d) _; ^( F& K) T% k4 @
- );progn then2 ^5 r, |) i- u/ o+ o
- (progn8 w8 V o1 ~, w) i0 M
- (setq eltscale (distof value))
2 F6 X4 j2 ]2 b% N' v - (set_tile "eb_ltscale" (ai_rtos eltscale)): E ]9 p$ w$ @& i; Y
- eltscale; |$ ?3 ^- X( L/ ~; m* ]' ^. J
- );progn else: G. J9 s6 }% t
- );if8 l" H! N3 M/ o
- );progn- \( m- F1 F7 {9 u; M8 D) H
- (progn \3 P( @' j1 W9 |! a, L" O& \7 C
- (set_tile "error" "Invalid ltscale.")0 y; H4 W% u% x4 d# ]3 [% W
- nil
7 N5 g3 z& d! L& Y: q; E - );progn else
) U, u/ {/ B5 m8 N9 [$ Q1 A - );if
}4 z/ m4 x* b - );defun& y8 w' z# N4 ] `9 d1 x
- ;;5 z6 n8 p7 [- m& Z$ t5 P+ J
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
! e! k/ V4 B" U1 l" B) h/ t - ;; string can't be converted to a real, this routine checks if the first
! \! h9 i. D# b2 C* Z Z - ;; character is "0". It also checks to see if the value equals "Varies".2 `. V$ n8 q6 t; ]# T3 p4 S1 x- D
- ;;) Z4 N G# x2 v' _
- (defun getthickness (value)
; c9 F& f( X, e4 ?. F - (setq value (strcase value))8 k$ s: S0 f4 w) q% L5 [# u
- (if (or (= value "")
~, @% p6 i; Z, Z( q. Q3 [/ v' z [ - (distof value)
6 v( g4 k8 A1 E( x4 \$ B - );or/ g7 K7 X% l; Y* M' Y
- (progn
x4 t6 m6 O2 t, C& U D) j* _1 X - (set_tile "error" "")8 K8 f3 F! ^. V3 O3 X, D
- (if (= value "")
, t1 f: |! \3 G - (progn
' E3 G. U1 N' _* |! R - (set_tile "eb_thickness" "")4 A8 A' m! O: b$ b+ B
- (setq ethickness nil)
2 n0 m% Q" k# P1 E: e% r - );progn' \) q% V: ~2 f( r1 v) B
- (progn
: E" p/ u) m: p3 l( Q0 O( D - (setq ethickness (distof value))
% l e" p* Z5 K2 s1 H - (set_tile "eb_thickness" (ai_rtos ethickness))2 [2 Q5 n$ [/ V4 {
- ethickness e2 V0 |, M) D% z3 X" s
- );progn
6 L% a( R. V' ]& P: E! i) F - );if
2 m8 Q3 D Y, S# u1 R( [* p6 ` - );progn
" Z0 b4 l! J) @5 z- Q7 k% P - (progn
' }" l9 A) Z0 d. u* C6 b - (set_tile "error" "Invalid thickness.")
( _$ P+ L7 U. T) ^8 t" X7 R - nil/ X) K- W' {$ z; @% e8 J B
- );progn' [/ g' a h" }1 @) ^' P
- );if
b+ i; z- B8 i( G - );defun
+ E- S0 L' z5 K \' g - ;;& d% e# g. i* J& U. C$ F
- ;; Checks validity of polyline elevation from edit box.2 x @" V a) p/ A+ h
- ;;, ^3 n# c ]7 D5 Q
- (defun getelevation (value)1 W' q; t9 E8 K7 `; N+ Q0 `! H
- (setq value (strcase value))+ [4 [- K4 G' G
- (if (or (= value "")
9 ^9 p9 o1 L" x8 y - (distof value)* a: m: ?* ^ f+ y9 `4 T( C
- )
. i9 J" G6 J* b) T1 { - (progn1 Q6 z( \8 \; a5 a1 h4 q
- (set_tile "error" "")- C3 Y2 p f) o, ~" l
- (if (= value "")+ Y( }6 Q$ @4 a7 v! J* t9 R
- (progn0 U! e* R5 A- J/ E9 l
- (set_tile "poly_elev" "")
2 d2 Z- G7 M: E' G T7 K8 O* A% @0 } - (setq eelevation nil)
& D) y8 X7 |2 C) s4 G3 e - );progn: f8 u* X/ l0 J8 ]3 e
- (progn
. C$ `/ R8 [; L - (setq eelevation (distof value))
0 S( r1 G; I: f5 e! F5 O# ^ - (set_tile "poly_elev" (ai_rtos eelevation))
1 I7 y5 `/ \- Z0 t1 \2 t - eelevation# s" H/ W# r+ _ d1 m
- );progn
4 c9 `6 Z! |% I: ]: t' E - );if/ T. C, ?' |8 c
- );progn+ v/ m0 [ Y8 s, p2 `# N
- (progn
V, }5 Q: z7 b4 P6 ?8 e+ D% y - (set_tile "error" "Invalid elevation.")/ h7 M m" y( p+ K3 q1 J$ R
- nil3 N9 S. n; ^: V
- );progn
& o% z. ^# o) A. W% z5 { C% U. D - );if
6 z6 s$ G% J, B1 G) O - );defun4 U: T8 }" N. D- x
- ;;
: w# j3 u; X: a$ C1 O7 T - ;; Checks validity of polyline width from edit box.
3 C5 }2 d, g1 M" b' f - ;;
7 n4 @" \6 q' c- n4 X0 j* C - (defun getwidth (value / rval), }( k: J9 H- o, U c
- (setq value (strcase value)! ~% P# E5 m( e# n
- rval (distof value)
* `. |5 W6 Z" d6 Y [ - )
+ q1 p8 o& ~, a - (if (or (= value "")2 N" s7 F! F& T; Z4 t8 S0 y
- (>= rval 0.0)* \5 X! v0 i% g) e
- ). d% b4 U, c/ Z6 t8 t- E& N
- (progn4 M/ L4 o- Y/ M) H& N- e; y3 q/ @# f
- (set_tile "error" "")
6 J( }3 c7 x) K+ U; j - (if (= value "")6 }' [3 @" X' t E% V6 X1 B
- (progn E* s% x% v9 D% U! H
- (set_tile "poly_wid" "")
7 j- s% r# L; @& l - (setq ewidth nil)
2 D* ^: k( A) G; [2 S - );progn
; f: H/ s1 x& c& V. ` - (progn2 {3 { h3 @: @* s3 B: w
- (setq ewidth (distof value))8 [0 a7 q0 E9 F- j' f4 N2 w3 D
- (set_tile "poly_wid" (ai_rtos ewidth))
5 D# d0 q2 a! @$ s( N% | - ;width
# l+ I, X% d, t& b, a; K2 i/ N - );progn
~9 m4 e8 f) l2 @ - );if7 r# o+ F1 L; h" w+ c) o4 H
- );progn
" o6 F. L7 _8 q- ] - (progn% T' Q- G2 I6 d9 V7 X! G l8 L( k
- (set_tile "error" "Invalid width.")
' p# P) G3 u4 z! M$ @8 M - ;(setq ewidth nil): n$ @; K& b+ X- y. P& s$ G2 J' H1 z
- nil 7 z. `- t1 I; a' i: |. J+ w7 X
- );progn
4 S$ @; B+ J$ ]& u3 s8 J - );if7 Y7 p) L& j- X' u3 t$ u% R
- );defun
' q# w; Y0 @7 e* v- ]& ? - ;;
5 D0 E+ |* _ z/ t - ;; Checks validity of text height from edit box.
( K) e' |- C: c) [ - ;;/ _9 |) a* k. L. D7 N% f
- (defun getheight (value / rval)9 e3 D6 H0 W! _7 f
- (setq value (strcase value)
3 ^! m( ]8 _8 h F: f# B - rval (distof value)5 M2 D+ K5 a t5 n' X7 C# j
- )
- W, r @6 q/ T2 r- h - (if (or (= value "")$ f1 h5 N% F! b) |$ A. X3 ^* E, R. O
- (> rval 0.0)
4 J1 l$ w2 A2 Z) B f! G% H - )& `. @ V) f# z. m4 D
- (progn! }3 W# q, I7 J% H! Z" E/ A
- (set_tile "error" "")! P: a) K* S# t0 T u) f
- (if (= value "")5 X/ v) Q& _: E0 T- k
- (progn
8 ]: i5 f9 N8 |8 _+ |6 {, x' q5 G - (set_tile "text_hgt" "")
) c5 ?) x) _% O8 Z- V1 X0 w - (setq eheight nil)
% J( N9 N! T9 g7 z4 G, J( D& i, t1 K - );progn1 [1 r' r. v" V5 h' i, [; y
- (progn
~* q, i o0 E5 A+ ` - (setq eheight (distof value))
! G4 b/ r: u4 g- m8 r* m# z - (set_tile "text_hgt" (ai_rtos eheight))
3 h$ Z" X' s' H. [; M: B: H z9 a - eheight
6 o0 R/ B2 ]; R/ a& e - );progn
, ^2 D7 @ W2 y' H - );if
; H* a/ p% p! \3 [, e' P - );progn h$ k. w. M: j
- (progn/ E& A0 K5 Y4 ~, e# w
- (set_tile "error" "Invalid height.") O" m9 ~; B, e' x q
- nil
$ k2 D3 o5 g$ d* G L } - );progn
: g; c5 F- R& r5 U2 F% Q |; ~ - );if
% c9 a/ k: x+ ]+ K: T6 g/ Q3 w - );defun
! W/ F1 q' k) b - ( Z1 {" l4 w3 c9 O7 C
- (defun getstyle (value lst / rval)
0 P" T, E! A) g3 A6 w - ;(setq value (strcase value))
! q* @& |( O6 s - (set_tile "error" "")) r' M% R. e" r' w& x
- (setq estyle (nth (atoi value) lst))% j4 F. s% B. e9 r E
- (if (equal estyle "")' b1 Q1 c2 H- ?6 M, f* `
- (setq estyle nil)4 H$ P! Q: O% Y9 n4 R. i
- );if
) ?, J! d" n1 N" { - + h+ }8 r$ Y3 _' J+ n
- );defun getstyle% X, A& k' g# u9 r0 K$ c D% b
- & N, K' W- z' }4 y5 ~ [
- ;;6 @# f" ]8 f% J! S$ L
- ;; This function make a list called laynmlst which consists of all the layer1 V) B9 H2 J# I# s8 |; ?+ }) O
- ;; names in the drawing. It also creates a list called longlist which/ ^6 D0 |6 b3 w1 l3 L) k
- ;; consists of strings which contain the layer name, color, linetype, etc.
- S/ T% V( Z( ]7 d Z2 a; }: h+ A3 L - ;; Longlist is later mapped into the layer listbox. Both are ordered the% a) X% x% U% d8 }
- ;; same.+ P( n4 g; [" q7 X5 F% B
- ;;$ @ u; m0 `3 }2 Y8 z: B& g6 X
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
. f& O! U* x8 R _+ ~+ i% l! W - xdlist vpldata sortlist name templist bit-70
_. e: V% p+ M( N - layer_number
6 l. i" x0 ^8 H6 P' J7 C - )" ^; k X7 `4 [, |
- (if (= (setq tilemode (getvar "tilemode")) 0)( Q* f9 ]$ E$ E9 n
- (progn
6 w' G5 S6 l: ]" L& P; U5 l2 T. K - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")0 b- |. ]1 a( |$ j9 I. [9 J
- (cons 69 (getvar "CVPORT"))
v" ^6 {; H8 y - )
" y$ S8 B& V6 J9 Z2 F8 l - )# C' P3 L: z9 R8 P
- )
* B s: Q2 @4 D9 q - (setq cvpname (ssname ss 0))2 T$ k7 w% `' [
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
0 o3 i. ?6 T. M3 C/ p - (setq vpldata (cdadr xdlist))
3 Z; K0 ?- P; e( H1 v* V; k0 E - )7 S! R y$ i! z1 v) E
- )
0 D# ]) F7 ]9 G9 J5 l# q, e! P. { - (setq sortlist nil)6 `' r& H; r$ Q* W: X
- (setq templist (tblnext "LAYER" T))( Y8 H7 o3 q2 T) \4 Y; {
- (setq layer_number 1)
( Y3 g4 ^0 |' M - (while templist
- m% {; ]9 l: M- n( F. f% r9 ]8 R - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
! U1 e U. d6 W# F' n - (progn
. D; q$ l: \2 Y6 ~9 C- {6 }) E - (setq name (cdr (assoc 2 templist)))
" W3 I5 F7 Z6 G* y" j - (setq sortlist (cons name sortlist))* v; S! F. J6 R2 o
- ;; Not dead message...5 s8 A' D, V3 ] \. n; E( e
- (setq layer_number (1+ layer_number))8 ~4 N5 @3 r( b1 g! v
- );progn5 z: P) ~7 A+ T" Y8 b
- );if
) M& Q$ ~9 r5 I/ ]# Y - (setq templist (tblnext "LAYER"))
+ L! L4 n6 B7 F8 j - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
- Z8 O5 [6 R# f; J+ U! l: P - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))! p+ m. ^/ C8 S! R( j, \8 U" J
- );if
* E2 T4 V+ U y- [2 o6 N - )
" w) w6 s U6 E+ ] - (set_tile "error" "")* A8 _7 @! `* s* l
- (if (>= (getvar "maxsort") (length sortlist))% ], S( t0 Y% m5 S8 O C1 z
- (progn
, M, @5 R& ]7 m. Q2 Q2 r5 ~ - (if (> layer_number 50)9 ]# w4 n! B) R/ v* S/ N
- (set_tile "error" "Sorting..."): Y Q/ Z6 L8 v- P
- )
- Z' b5 A3 Z4 c: X3 ] - (setq sortlist (acad_strlsort sortlist))) N3 H! r2 T/ A: u6 ^. w
- )! w6 ^4 \6 M3 G# b8 [
- (setq sortlist (reverse sortlist))
% y6 P* b2 U' F6 H - )
# e5 G: O' a( O1 i& c8 ~1 u8 I+ t - (set_tile "error" "")+ ]) v/ V- K- _) O
- (setq laynmlst sortlist)7 G% ^2 x6 h- u/ _% Q
- ;rk
4 [. U5 |$ ]% J; e: w - (setq laynmlst (append laynmlst (list ""))) 7 [. O7 n* L' n2 f
- # L" I- Q; y+ x; q+ s9 V4 H
- (setq longlist nil)* m& H, Q+ T% z. I" _2 Q) P5 t3 ^) j
- (setq layname (car sortlist)); w$ x5 t5 z1 _+ ]
- (setq layer_number 1)
7 k( v( k0 s) m - (while layname. c/ Y+ M! s h; P# h6 [
- (if (= (/ layer_number 50.0) 3 N o2 N. A# c- m E4 y L
- (fix (/ layer_number 50.0))& ^( G' X$ C W. P- e
- )3 {% @0 O# s8 U$ T+ A; j$ v) k0 c
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))% [( I# i4 |/ B; V
- );if
+ ?3 d7 Z! U m - (setq layer_number (1+ layer_number))* z, L" ]- S, f
- (setq laylist (tblsearch "LAYER" layname))
/ h( f5 G& q8 O+ f2 w( x" g - (setq color (cdr (assoc 62 laylist)))" A7 j, p- G, Q
- (if (minusp color)
2 U% |! i+ }/ T3 V - (setq onoff ".")# `( {; d/ @3 X7 t$ |0 j
- (setq onoff "On")3 _; o6 G) h/ m+ G; F x
- )& M0 v$ X1 x5 s# I! j6 p
- (setq color (abs color))
h- C' N* ~; P - (setq colname (colorname color))0 ^+ C9 H9 k8 t; j7 y
- (setq bit-70 (cdr (assoc 70 laylist))): S1 E3 Y/ U: g6 J) @6 T
- (if (= (logand bit-70 1) 1). O) ]: M/ t* ]+ c4 Z* k
- (setq frozth "F" fchk laylist)! I. h8 n; f+ U' _
- (setq frozth ".")
# O/ W+ `; O4 n - )& s# W) B6 T' C" H/ h2 s% O" ?' s7 d
- (if (= (logand bit-70 2) 2)7 @4 O* z8 \: }& d
- (setq vpn "N")
& |! |* m* k, b. Q - (setq vpn ".")
0 j' F: R/ n# F; L; ]) Q' n5 k# [( H X! _ - )) @# \2 C, N' H. Z
- (if (= (logand bit-70 4) 4)% i2 P1 L: M3 [1 Z) Q) @) A1 |
- (setq lock "L")7 K: U3 `! |" P2 ^
- (setq lock ".")( b. ]" b. N; L# A1 Z
- )
: w9 e5 t) Q9 c( u) a- f - (setq linetype (cdr (assoc 6 laylist))), `+ y* }, e L$ Y4 N! @4 h/ Y" o
- (setq layname (substr layname 1 31))
- V! G, K* K, ?4 V- k# f2 t1 Y - (if (= tilemode 0)2 \4 `: @% o6 T' b( |( W/ n
- (progn
. H: t8 C$ A. I - (if (member (cons 1003 layname) vpldata)6 J8 g7 o( U$ ~( G' v) N$ r! S
- (setq vpf "C")
: y# F) V, I0 Z3 p4 C# a3 q - (setq vpf ".")
0 g/ {% F/ d* m' V - )
& A2 l2 x' y/ y* k, B" O8 ^) T' Q - )
) }* W" v p: Q( y3 L) g - (setq vpf ".")
& N( L7 s) {4 c2 o2 B - )$ x$ x6 ~( X4 x( L5 R
- (setq ltabstr (strcat layname "\t" f# N# C6 B% q3 r2 R
- onoff "\t"3 n0 f7 I* q) q) T
- frozth "\t"
: c7 S' Q: M8 ?% B3 n% E) L# U1 e - lock "\t"/ w g* {2 F6 m+ K
- vpf "\t"9 U( C7 R3 J3 {+ j
- vpn "\t", J) x: ^% f [; U
- colname "\t". ]1 t! F9 m; ~4 ^$ U; ^
- linetype- G9 E: ]2 [6 s( c; G
- )) X7 E: }; k4 v# T
- )
! c6 A3 z3 Q! C# H* F5 x4 p! w - (setq longlist (append longlist (list ltabstr)))
9 h- j/ d+ y6 j4 p - (setq sortlist (cdr sortlist))4 m& m& s# B8 @" U0 H# p
- (setq layname (car sortlist))
2 {) S$ s) G" y/ y2 `4 g - );while& G6 `: n8 `/ b. }& n! R" w
- (setq longlist (append longlist (list "")))' G9 d1 |8 n V% x( s8 c* Q& r8 O
- (set_tile "error" "")
8 e1 f) e8 i; n& U' i9 i/ z - )
" k+ n, p$ l9 s) _* M - ;;
. I* s y8 i$ a* ?: s3 }/ ?8 N - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
6 m6 n+ s& E" r/ X9 @+ x1 k* ^. U. L - ;; linetype names read from the symbol table. Mdashlist is list consisting. |9 d6 W3 u6 d' Q. Z F {$ Y6 B
- ;; of lists which define the linetype pattern - numbers that indicate dots,
; q% }0 ~" \* l& H2 i' k7 a8 Z" w - ;; dashes, and spaces taken from group code 49. The list corresponds to the
! L6 f: J$ v9 [& o/ j - ;; order of names in ltnmlst.
2 u% g0 H: v+ g! K' @! ? - ;;
6 B/ u# Y- I, B5 j6 @' l - (defun makeltlists (/ ltlist ltname)/ V* `& B& y D3 m0 x
- (setq mdashlist nil)
9 @8 Z/ l+ c; r* t$ Y - (setq ltlist (tblnext "LTYPE" T))* Z" u& {1 h4 W# Q5 u7 N! ?% v9 ^
- (setq ltname (cdr (assoc 2 ltlist)))
) B2 b- H5 s, Z$ O9 o/ t - (setq ltnmlst (list ltname))( E; m$ F8 @& N4 X7 P
- (while (setq ltlist (tblnext "LTYPE"))
, x1 P4 F/ u- R: J" i1 v - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
; _! f6 v% ~ ~. h' \+ x0 v - (progn
G8 p/ I7 q' ?/ A, n6 Q2 ? - (setq ltname (cdr (assoc 2 ltlist)))0 h2 s4 w- L0 |: Y
- (setq ltnmlst (append ltnmlst (list ltname)))
8 F/ {" f1 S3 x9 ? - );progn
- x6 K) Z- ^& y# B* h - );if
+ {% J0 m* \; [/ x. q. r" p - );while; p$ L, v' Y8 I9 |' n. ~- t: h
- (setq ltnmlst (acad_strlsort ltnmlst))" N- e' Q% ?9 L0 O2 W) H
- (setq ltnmlst (append ltnmlst (list "")));add by rk
0 T, O' W: @' t+ C' C5 U - (foreach ltname ltnmlst/ p) V9 }9 `' C9 G/ x6 Q7 b
- (setq ltlist (tblsearch "LTYPE" ltname))
" h. ~% M& M0 l& N6 j/ c+ m+ m3 _ - (if (= ltname "CONTINUOUS")8 c9 Y- |( E: O' {& m6 L! a
- (setq mdashlist (append mdashlist (list "CONT")))
: H# c8 {3 d: m& O; M1 I( H' V. ~ - (setq mdashlist
% p$ S2 u7 B c - (append mdashlist (list (add-mdash ltlist)))
' k# K0 h$ |& o; i$ e - )
) h$ k$ K- L( E" P3 ~5 \0 b - )! k/ J, V$ @6 C" z+ i! O% X0 {
- )
$ p% k2 N6 i# C& s/ T6 {: P - (setq ltnmlst (cons "BYBLOCK" ltnmlst)) L; [0 }4 H' G+ U5 G
- (setq mdashlist (cons nil mdashlist))
7 |4 O& h4 v8 e: f! U- `" ?0 u, x - (setq ltnmlst (cons "BYLAYER" ltnmlst))& }( f% |; e8 F1 E. h) W
- (setq mdashlist (cons nil mdashlist))
5 k: [$ N# S4 t# T' u$ s' V - )
" m* [* `, W- B% q* _8 c! a9 e - ;;
0 j. F6 y9 ^1 a - ;; Get all the group code 49 values for a linetype and put them in a list) E- [5 _% C& M u, l
- ;; (pen-up, pen-down info)
_5 i/ s3 D, Y9 Y; t3 _+ g - ;;
- T3 o' _% C+ s9 J5 l7 m - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)- A, h9 k+ H% o; ^. `8 m
- (setq dashlist nil)3 C3 V0 A$ N+ b, C9 A
- (while (setq assoclist (car ltlist1))4 c9 f( K, w4 z3 o' _6 I& K
- (if (= (car assoclist) 49), @, x7 D) ~' K
- (progn4 F! E" V) ^0 K$ z. g
- (setq dashsize (cdr assoclist))
8 W" |# \% Q# f2 k2 U - (setq dashlist (cons dashsize dashlist))" d) A2 j3 ]4 V0 u! @& M4 k+ u4 B5 l
- )* S5 A: M3 b9 j/ s
- )+ h; G4 D( J. V a
- (setq ltlist1 (cdr ltlist1))
7 N6 I$ h8 r/ L) v) C - )
2 W( C% Z+ x: f% l% x - (setq dashlist (reverse dashlist))
- @4 ?) I) M4 @& n) Q5 r! }' ] - )
# Q8 u; T! | g" S4 ?* e8 p - ;;
- y/ k5 O( ?6 b; Y1 U - ;; Color a tile, draw linetype, and draw a border around it* c/ \# C8 l0 g& U" o9 @- l2 [
- ;;" j% k$ x$ ]: [- q
- (defun col_tile (tile color patlist / x y)
7 q3 J1 p: W7 M" C - (setq x (dimx_tile tile))
6 J0 r; S! @* o) }& N - (setq y (dimy_tile tile))
! g; J7 M. S# {, P: S - (start_image tile)1 Y) B4 e/ C4 Y/ w% Q0 ^
- (fill_image 0 0 x y color)! B: Q8 V7 ]3 j/ I1 ?
- (if (= color 7)
% I# z4 E) ]1 F9 B, j8 q+ b6 i& { - (progn
: R4 R/ P! r s% Z9 [ - (if patlist (drawpattern x (/ y 2) patlist 0))
, H# J" U/ h2 F& K2 h) C" m* \ - (tile_rect 0 0 x y 0)$ k* h X% }+ ^0 Y4 q! f- N
- )1 h ?1 L. P1 d% Z5 @' J
- (progn/ y& ]% E( q( Z5 C; L- Z3 D
- (if patlist (drawpattern x (/ y 2) patlist 7))5 w! F4 _+ y+ I- ^0 z
- (tile_rect 0 0 x y 7)# e) q$ F- V5 Z9 _
- )' {7 Z- a( B X- A
- ) I. h2 M. [! {; y: B6 E: z6 q
- (end_image)
6 L6 T6 O' x3 o( i( d& t8 h5 a - )
6 D; T/ z- e! \7 U0 r5 | - ;;
* |; g1 \$ o" I' }* l7 w! h - ;; Draw a border around a tile
$ m0 a2 D. C7 t, y& Z - ;;
2 Y3 _: t$ j( E - (defun tile_rect (x1 y1 x2 y2 color)* H$ X& T3 z6 ?* }! b
- (setq x2 (- x2 1))
1 y4 \# p1 { ~- @ l( B - (setq y2 (- y2 1)). S- D; U8 }, b6 Z' i! u& P
- (vector_image x1 y1 x2 y1 color)
9 H$ q3 X. }3 S9 @7 i - (vector_image x2 y1 x2 y2 color)2 X3 g$ F. ~8 s
- (vector_image x2 y2 x1 y2 color)
/ q0 ^7 B* O6 }- \0 C0 n - (vector_image x1 y2 x1 y1 color)
$ X( k( [+ l* ~+ k l, ? - )- k. o/ S' M \7 R2 b! f
- ;;
8 j+ w }5 O- C/ f3 [ - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image& c% N5 u2 y& P/ m# ^: M0 e# f
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a2 ?7 q6 r# q& }' q- }* d
- ;; list of numbers that define the linetype, and color is the color of the% H3 p! p1 a1 `1 Q W
- ;; tile.
+ ^7 l2 k" s, `) p8 ] - ;;
7 e0 o. [2 g9 P# b) F W! ]% c - (defun drawpattern (boxlength y2 pattern color / x1 x29 @6 [7 \) n) V" e7 N
- patlist dash)
, o; y; C2 P$ N8 [% n; Y5 l - (setq x1 0 x2 0)
1 B% n' Z8 h" F: t3 D' W - (setq patlist pattern)0 v* k$ g, l _' I; X% \4 [
- (setq fx 30)
" w$ P$ V ]0 \ - (if (= patlist "CONT")! F* m. J1 A( @7 |) Y
- (progn
( Q$ Q' _* [/ n9 j2 E1 a7 x5 s - (setq dash boxlength)
& A! Y6 y) G7 o - (vi)
6 F- S4 }) [# R& N, M. ~ - (setq x1 boxlength)( |7 {' F# J9 H
- )
) z2 d+ x/ @1 V7 _. O4 G$ F' Y/ z* L - (foreach dash patlist
6 n# O1 A8 ?2 n# f - (if (> (abs dash) 2.5); z# Q M" q4 Z
- (setq fx 2)
6 h9 D3 u x# X* |" e2 V4 x% f4 A, I - )/ _2 ]4 T3 K$ t. u. l C' M# |4 X, J
- ): m+ C* z$ G; t; ~" l: w, Y
- )
. ?( O. U( ?6 m5 X8 E2 _7 M - (while (< x1 boxlength)! ~! r. K8 [1 `/ O7 Y" @4 |0 H, W& C
- (if (setq dash (car patlist))$ t" e& y, H$ `5 o g3 c8 [
- (progn
6 }9 {+ x& m- \6 v# k - (setq dash (fix (* fx dash)))+ O. v X8 |9 v9 ]& k7 }& c
- (cond) Z4 M' Y" o$ `, E; N: E" q
- ((= dash 0)
' q- S4 E& l4 a2 P - (setq dash 1)
8 E7 Z+ s$ d) k - (vi)! |# [) D! B/ K! I" O% M8 v
- )8 z9 P M" j9 R! Q$ P7 g2 g
- ((> dash 0)
6 c2 L' j( C: o6 V - (vi)- P, L5 Y* {/ I
- )
: `! M; i( ]( T* S" L - (T, Z$ C4 C6 ]1 x+ c- A
- (if (< (abs dash) 2) (setq dash 2))" c U; S4 ]2 W
- (setq x2 (+ x2 (abs dash)))' Y3 _' U6 o3 ^9 Q3 J
- )) J, Q$ o& j& P E9 b, m* p
- )6 @) n/ s* U5 _0 n0 k7 {# w! `
- (setq patlist (cdr patlist))
. R h6 C4 |( x5 _6 J+ ? - (setq x1 x2)
- f3 Z' C; G8 o' j X - )
, s/ {4 H: ^& T8 o& D - (setq patlist pattern)0 q% K4 a' M" _! W( N K
- )
, z* h4 {( m0 y# a1 t; ] - )
" `- Y9 ^* a+ w6 d" N5 ?9 t8 Q# r - ), m, r( e7 D. K+ w8 p- D
- ;;
?! _" S0 u1 P' T - ;; Draw a dash or dot in image tile
# k! d8 b0 X( e7 Q* q - ;;
- ?* J" F. z' G' p5 v - (defun vi (): \; T) |) R0 c8 X8 _
- (setq x2 (+ x2 dash))
; \: e! r) d- h+ t0 S - (vector_image x1 y2 x2 y2 color)
2 Y+ p! @# T7 {; Y - )* r8 e" f& s I: P
- + l* @/ }3 x7 r# I; A+ B; W. A
- ;; This function takes a selection and returns a list of the color,
$ E7 u* Z1 S: X$ H S - ;; linetype, layer, linetype scale, and thickness properties that; H6 W6 N- u$ l
- ;; are common to every entities in the selection set - (color
5 b& s( E: w/ F7 s9 r" O - ;; linetype layer thickness). If all entities do not share the same/ n& `& G) j4 J4 N+ c# v
- ;; property value it returns "Varies" in place of the property
2 J/ I; j* T% f% C - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)5 ~# s1 ~. Q, z$ R$ ?% k2 z$ s0 [: Q
- ;; The last item in the return list is an integer flag for the8 F) K( |& Z- Y/ u% D$ x% k
- ;; homegenity of the selection-set object types.
& S3 \2 n- t: K2 o+ k - ;; 1 = All polylines. r5 b }6 V1 A1 G
- ;; 2 = All text or mtext or attdef, or a combination of the three
) [" h& M# {( q7 ^0 [ - ;; -1 = Any other mix of objects
0 N# X, J: X& b' @- } - + \: f; h8 m( q( n" S
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
& x4 }) |6 ?6 H8 t" a! N: B: B - width elevation height go ctr 5 K% s! b7 C# C$ ]/ [! ^
- eflag
( V' A1 Y% E8 ^# t4 O - etype temp
; W! S( B" U& y; i' F1 ` - txt_ss ;;;;rk 11:24 AM 1/30/97
: D6 J5 W3 Y; I2 V$ b/ h5 m0 a - tmp
' x' a# E, v i: K/ h; y - poly_ss
7 d+ w' u* Z! c& S5 \ }) w - style
% @8 q/ o+ t3 _ - )
4 j* _, d6 U0 z+ H3 o) ], M4 q
$ Y+ T) t0 m% l: C# B. q2 z+ ?- 2 e2 Z. {" B+ U- `6 [
- (setq sslen (sslength selset)
2 o8 `+ K$ N) J( s& c - elist (entget (ssname selset 0))4 Z9 P/ u* n0 }" Z* J
- etype (strcase (cdr (assoc 0 elist)))
+ J. i! a' i. v3 B - color (cdr (assoc 62 elist))
8 T! W' x8 j, q' \7 n0 z3 j - ltype (cdr (assoc 6 elist))+ R# r+ e- l$ M. P+ T
- layer (cdr (assoc 8 elist))0 L9 N* |# {$ A6 A
- thickness (cdr (assoc 39 elist))
" T5 }2 [3 A8 [' s1 z) I - ltscale (cdr (assoc 48 elist))
: X4 |& A3 k% E* @7 ] - );setq
. G O3 O' h- q- @ - * X( J7 R3 k! @5 J. X
- (if (not color) (setq color 256))1 [9 O. S1 s8 x
- (if (not ltype) (setq ltype "BYLAYER"))" m* r) T% |! D% O y
- (if (not thickness) (setq thickness 0))
- b5 c; M' Y; _6 H& i+ o - (if (not ltscale) (setq ltscale 1))
, n4 r- R( \& |
- f. [: d: J7 q9 s5 }$ n, B# r# C- (if (not width) (setq width ""))
0 O6 V0 t6 I, n% g0 @" m3 o3 U7 W - (if (not elevation) (setq elevation ""))- ^6 p; Q* S; r+ O# X/ |
- (if (not height) (setq height ""))* Z9 F, {# d7 P) ~: |
/ _* m9 s% G7 P0 ^- (setq go T 7 ~% a, ]* t( n- X, _
- chk-col T
4 L! \ G/ g9 s - chk-lt T
# e" I) H, _% O+ h9 b& o - chk-lay T
" m8 j* F2 W1 a1 }4 i - chk-lts T + H( a4 e& T! u) M
- chk-th T
+ J7 Y9 W! j$ }' @. M' b& y0 J1 ? - ctr 0
. [- d2 V- {% R$ s" n9 n3 ]5 o! Y - );setq
: d: m+ B8 b$ ]5 @- A - c1 ?: U0 G; x+ [& V
- ;; Page through the selection set. When a property, f! l+ S+ R. G1 ^2 W' i
- ;; does not match, stop checking for that property.
, M. c) O# v% y9 N# X8 ^ - ;; When the selection set is not homogenous, stop checking.; e$ h* z- r8 M- Y7 x0 L
- ;; If all properties vary and the set is not a type 1
% R: w8 [0 Q* H; f8 I" K/ D0 I E - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.* \( F& x3 U. X5 i% v
- t3 o) J8 {% `. r/ c
- ;Lets set the eflag so we know if the selection set includes any t! a! c( t) `* q. O
- ;combination of polylines, lwpolylines, text, mtext or attdefs.( ^( V5 s5 ~1 f; S. m% B" _
- 7 g& A* U' f' a' E
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
: S- _4 m* ?/ O7 K+ N - (setq eflag 0). a$ _) E+ g2 X$ z/ n. i
- (if (setq poly_ss
4 d# P2 T2 r5 A4 u$ J8 S - (ssget "P" (list '(0 . "*POLYLINE")
! O( [" q6 c* ~4 ] - '(-4 . "<AND")
* s' f, K* N: v2 c) W - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
* c P p5 s4 f* g8 K8 e - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")7 j6 T, G4 ^* `; g @; Q& y
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")4 D" P* w, n/ H7 K: t
- '(-4 . "AND>") 1 Q0 b) U* s$ P; F
- );list3 |& u6 \) z) \3 b' ~$ s
- );ssget get 2d polylines (legacy and lw)
r% `4 z6 [- i7 v& R! L - );setq- g5 c2 O, ?3 r; P/ x) Q" D6 P
- (progn
" ?! |% _- s8 k - (setq eflag (+ eflag 1))
: b- |8 E+ _, m+ `. r q+ H4 c4 J( U1 d - * \+ `/ _/ s( V1 S: h- k# ~! A
- (setq tmp (entget (ssname poly_ss 0)));setq$ Z3 N/ z, y, _( G p. M
) z, X" I3 R9 l- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
: w, q* n- W2 B - (setq elevation (last (cdr (assoc 10 tmp))))1 O$ M. ^( `, E2 E$ S8 ^
- (setq elevation (cdr (assoc 38 tmp))) h% y! B2 n) `- u
- );if0 N9 s1 e+ D* N
- (if (not elevation)* j/ N; t& X9 F2 k1 M o
- (setq elevation 0.0);setq
" [. s! W) R7 ~7 R/ M* l+ g' A - );if5 L7 N: J6 w" ~; [! E6 a3 }) W) t
p/ w$ o. k7 v2 T5 v- (setq tmp (ssget "P" * v1 I: p2 H' z! A( b- s
- (list
$ e1 {: f/ ^3 u! t - '(-4 . "<OR")$ ^* d. \2 n9 Q( k8 z a! B
- '(-4 . "<AND")
7 m/ a5 F- Q# ^0 p! ~0 E - '(0 . "LWPOLYLINE")
7 E6 t6 ~4 R) W- Q1 x+ ]8 P+ F% { - (cons 38 elevation)
9 S: U5 o s5 O" T* o$ e - '(-4 . "AND>")# i, Q" o4 x" V* G
- '(-4 . "<AND")
' a7 N$ V; Q) R! j s. d+ K3 m) s - '(0 . "POLYLINE")
' V" `% G# [. {# E - '(-4 . "*,*,=") 4 j6 ~' h/ z7 Q
- (cons 10 (list 1.0 1.0 elevation))
$ Y9 K' _& o6 i - '(-4 . "AND>")
. B; D4 m, b! s6 \8 T$ R/ P$ n - '(-4 . "OR>")9 h1 [, E4 O% Z J5 p+ o
- );list7 f. Y0 I2 G! U' F
- );ssget6 x1 m* j" f$ Q
- );setq
+ h; z6 l. K8 v( S! I3 z; x$ a
0 |5 n" o6 O* }- (if (and tmp 8 M5 {0 t% ]! h* I) p
- (equal (sslength tmp) (sslength poly_ss))
( ~: B! m n A - );and
* T, v% H# _+ Q1 r1 T: P! N9 g( T% R! P - (setq elevation (ai_rtos elevation));setq3 v) c5 ]' f" {1 ~/ `: g
- (setq elevation "")) G+ R) F6 y% w- z
- );if" V0 J7 L! F3 [1 ^) n5 P' V
-
1 b. p1 o- A1 x7 S! ]3 I - (setq width (pl_width_getter poly_ss));setq
: X$ R2 P! ^# K0 y; ` }7 z- Y2 v - ) m/ D7 M# \8 y% n; o
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
4 M) H1 A, Y3 F' c& q: p% c - );if1 h) B _* J7 Y0 g3 Q& \' w
- (command "_.select" selset "")
, r+ S4 T% b6 ^& \ -
( N8 F4 \; c6 D+ @4 X, ~9 h7 M - (if (setq txt_ss : n- F8 ~7 B3 |; d! f& e
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
9 _$ T/ N* U5 G' d9 l6 w s _ - (0 . "ATTDEF") (-4 . "OR>"))
: h. R- x) \& G3 Q- ?4 r; ~9 R- m - )
) t5 L6 ]+ t/ Y9 c) b! I {5 J - );setq$ |6 t+ f6 I# S- L
- (progn/ J9 U8 p$ a/ K- k
- (setq eflag (+ eflag 2))6 i3 w5 G) J5 n' h: v
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
: x3 K: O, p7 ~7 z5 f- F - tmp (ssget "P" (list (cons 40 height)))
* b( \7 t3 h" V k8 S1 y1 d$ H - );setq 6 G' T8 `. g, D% h- C c a, ?9 C
- (if (and tmp" y5 P8 F+ A% X
- (equal (sslength txt_ss) (sslength tmp))
N, A2 e7 h! d! f - );and! L8 ]* p* [% ^+ c) f8 ^0 E* h
- (setq height (ai_rtos height));setq ;@rk need to translate from float
5 C* m# U6 _5 U: r, _. d - ;to string and back again easily
, \" k2 z. k1 G' t - (setq height "");setq else the height varies " ]( Q; u$ ]) X! l! h# T, ?
- );if3 D7 X+ z E8 a, v e
- (command "_.select" txt_ss "") 4 |( o; N( f4 i0 X( y e
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
. k: y% x( c0 E. H - tmp (ssget "P" (list (cons 7 style)))
, C" e F' I, q& l& a - );setq
1 G/ i) k$ Y* O) B9 f; q% j3 ~/ j - (if (not (and tmp3 B2 r; M- ^* P# ?" X2 v; U2 S9 X
- (equal (sslength txt_ss) (sslength tmp))
7 S( k' |4 \: \/ n& Y" ^5 m - );and' X" q, v3 O1 {/ X$ U
- );not1 Q* K0 A2 \1 D% B% |
- (setq style "");setq then the style varies % W( a4 ~7 ~' s7 P5 u% c* K4 |
- );if
( q: x" q: j2 d2 ^ W - );progn the text type objects are in the selection set
/ j, N3 {7 X. z5 f - );if
2 c. e! c* R p; p# p: X% D* T6 C9 U - (command "_.select" selset "")
8 `- O: y" [/ m9 s0 F7 _6 ^ - . Q* F# w6 c/ J# Q- K! h: ]( ?( W
- (while (and (> sslen ctr) % A) f. V- {4 L. s( f
- go! P( a7 g2 [5 E" t7 f
- );and
9 _, \# F+ N3 [3 a& [$ K# I - (setq elist (entget (setq en (ssname selset ctr))))
4 k; W0 s- D y - & W9 p) q2 I* Q- H
- (if chk-col (match-col))) [4 i% C4 {3 J# f# L
- (if chk-lt (match-lt))
4 h9 G0 V2 J0 N: ^ - (if chk-lay (match-lay))0 f4 }. D: w" F, R0 W" ~
- (if chk-lts (match-lts))
7 }4 h. K# o! c% h h% F7 W - (if chk-th (match-th))
% {/ W0 p0 Z3 ~# J0 i- S- Y, R - % l3 d' q) r5 n3 s4 ^$ r/ @) N
- ;(if chk-etype (match-etype))6 `% X6 h1 G$ O# p
5 @3 M5 T( c" f' r- (setq ctr (1+ ctr))
! G" V3 L3 x a - (if (and (not chk-col)4 z7 O5 \" f' Z3 Q ]6 Q
- (not chk-lt): b1 Z8 ~, W2 W% B: u
- (not chk-lay)2 w7 {8 j9 ?: l
- (not chk-lts)
* p' q, v# M' Q4 w+ h% _: o# R1 R4 F$ T - (not chk-th)
1 |' y& c U1 H+ h" q U; Q - ;(not chk-etype)1 r/ T$ L* X- T" h
- );and
+ w2 A6 f# L! C% R- T% i - (setq go nil)1 K! @; r8 e$ H
- );if* x6 L& d, e4 M# u6 ]/ A
- );while' }( t. u9 |# p& W2 r& P
-
; Q" S' ^' d$ V$ @ - (list color ltype layer thickness ltscale
" ` H7 _1 L* I - width elevation height eflag
! K+ H$ S. ?4 p$ [$ ^: @1 W - style poly_ss txt_ss. m, S" j$ e% p8 A( I' p" K
- ) v$ Q( q) H2 m$ p
- );defun getprops
( X1 F2 l6 i; s) U" A4 G) Y; \0 [ - # h5 L8 G* u L, }) A
- ; This is a speedy little routine to tell whether the polylines in , Y i- u$ h c# E
- ;the selection set argument are of varying width or a constant value.
- G0 S# V6 s" P6 m - ;Looping through the vertex's has to be done for old polylines when ) h/ A; F* |0 X9 v$ V/ Z b _" }$ ?
- ;the polyline header has width values of 0.0. Basically, in this case, 2 r i; o$ g% S6 E& S( D
- ;information in the polyline entity header is abmiguous. Width values
w, s- U' n' ^6 w+ Z - ;of 0.0 in the header entity could mean the polyline has a constant % ~( |! w5 t+ } L; m# @
- ;width of 0.0 or it could mean that the polyline has vertex's of varying . c2 d& C, c( @8 `
- ;width.
* f. N- R9 h, C# ? - ;/ m# ?, t2 v( Z' V( N1 V
- ; It's all in wrist. Err a.., I mean it's all in the 'if'- c: s+ @+ h; f4 z* w
- ;;
: S; s: Y# i {/ g - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)) t+ R$ R- H3 D
- 3 X. F# f) @4 \( B5 P
- (if ss ; _2 f, e) L/ @' L( q
- (command "_.select" ss "")
2 I- H+ v3 I( }6 C8 N4 U- o8 ~ - );if0 i) b8 e; o% P O2 N" u0 q
- (setq width ""
@1 D, L, u9 D. p - flag nil3 n2 n3 g% m2 ^5 r3 ^& c
- flag2 nil) Q* j! z+ \/ G# a2 o1 E
- );setq! m5 C& l" D( D6 m! h( n
- (if (not 9 C# [$ U! o Z! o9 ?; U; A
- (and ss5 @- n4 c# g; P% c3 J' H
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq, R! g" }! u+ w
- (setq na (ssname ss2 0)2 p- l) l5 s" K
- width (cdr (assoc 43 (entget na)))$ l+ i$ O8 ]9 l% Q7 F
- );setq* Z+ b$ k+ P6 T4 S8 R' g* F
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
) w! i O5 S) h - (cons 43 width)) U4 L" I7 h* L, I! R+ j% F
- );list. D# q/ o' C! C2 ?7 d; r
- );ssget k% u( X8 S# f( k( Y6 Z
- );setq
0 A5 X6 l, J: w6 s4 @8 b( P4 ~+ ~- A - (setq flag T) ) n6 }/ J, d( \3 h5 N
- (equal (sslength ss2) (sslength ss3))" x! A$ u x( n6 J2 I% f
- );and
0 ~3 f+ `1 G/ P6 w8 R8 _5 T, Y - );not
* _; O9 ?7 X; F7 { - (progn
. M& x5 R0 T5 p Q) r6 F - (if flag; S5 t/ C- X$ {1 E6 p5 t+ v8 S
- (setq width nil)
) R# ]% I) F1 g0 b - );if, n$ c$ S; s$ b: n+ q
- );progn2 Q' w0 a, Z$ Z4 v% S
- );if
$ `& K6 V: I8 K7 P1 d - & ~0 x4 y9 t6 B) ~# ^2 }9 }9 x
- (if (not
3 `) v1 o( ?% s# C3 F+ G, p - (and 8 X/ R5 ~3 w6 G" D5 E
- ss
5 h, v- d4 u: P. ]2 i4 b* Q - (progn (command "_.select" ss "") 2 _! |& K' Z: V, r8 S' H$ s
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
3 X w8 p+ f, ?/ `. f4 J- n - )
1 C6 I, [5 P! r2 U5 {/ u - (setq na (ssname ss2 0)
3 j( E& g6 f- G1 t2 q - e1 (entget na)2 [* @: _: V( X( R
- width_a (cdr (assoc 40 e1))
. {( D4 M& B% E" [ - width_b (cdr (assoc 41 e1))
* _7 Y s4 _/ _7 J - );setq
( B8 I3 `8 m' E: S7 N. Y- ~ - (equal width_a width_b)
9 R& O# z9 Q/ e - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
9 E" `) r2 S1 C. a" n: w3 N$ e - (cons 40 width_a)
8 E' }' I8 {2 t z' z - (cons 41 width_b)
A# s' T4 _5 o# R6 Q1 A. U3 V: v* u - );list
. X' v9 D2 q, u: f: m+ j5 I9 @1 R - );ssget
1 E5 O2 o) E, Q! V - );setq. l* j7 {" ~8 a8 z+ A
- (setq flag2 T)
) i! I- O& C4 A7 x9 S# a: ` - (equal (sslength ss2) (sslength ss3))$ l" _, n. a: ?5 {( Q
- );and
( l- g c# i* h7 k7 @. D - );not
/ K# O/ P# C5 J: f/ J - (progn
; @5 o6 E; g: L7 L$ o. `5 p - (if flag2
. Y0 ?: v* W' Q& X4 g' N; x - (setq width nil);setq# E: q3 k( Q' N* `
- );if
* d* v5 i6 H' o - );progn then; ?6 Y2 [! K7 N7 W8 F
- (progn
* f/ h5 B3 f" J0 Q - (if (or (equal width "")
! t7 Q& y2 K* Z - (not flag)0 O- k0 J" s6 Y/ N- P8 a
- );or, M' a9 u- P- c: o6 j, A
- (setq width width_a)
; v- B( `' y1 v, t - (progn
3 \: C" X8 k$ S" k - (if (not (equal width width_a))
4 G' y6 U' V' g' h/ a - (setq width "")& H- v5 O" z' e) I& h" n( R
- );if
+ @1 C! Y( {8 a; y( T. f - );progn
" V: C. f' `+ }& B: k3 o - );if: n& [' O4 v& ~1 u
- );progn
4 k% ^2 Z& M+ X& ?5 g - );if/ r4 [) c8 O6 o. f, b- U8 `
- ) x4 c( k v: l# d/ ?& S4 R
0 H# h; X# B9 |' w3 `/ G- ;now for the special handling for old polylines5 i: V* g, ^. a K& M( o
- (if (and width ! q! j$ C& w0 }3 O
- (equal width 0.0)
8 }/ R6 v N$ Z - flag2
s' ], Z7 Q7 \ - );and
+ R3 K' H2 O% W9 W1 I G0 q - (progn
* H/ O2 O# w& j0 V4 ` -
$ o& i! B6 f! W. b n - (setq n 0);setq
* A# |' I% J8 g0 L9 e9 ]4 ` - (while (and (equal width 0.0)
B3 {7 G# |. z1 P$ O( U+ c4 g - (< n (sslength ss3))1 V$ J; x4 k/ ]$ V
- );and) Z; K9 J. y; Y; m$ ]8 u
- (setq flag nil
3 S4 T/ O( I+ ? - na (ssname ss3 n)
5 F& Q/ V( Q. n4 h' X, I& W - na (entnext na)
) J+ o2 h6 ~8 N - e1 (entget na)
# W5 X* y2 v$ A9 f2 J - );setq
+ V, ?5 N" _4 |, p$ t/ x( S - (while (not flag)4 J6 c; E& @% L; h& Y3 J+ C
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")2 z" r! c: E$ a5 e
- (not (equal (cdr (assoc 40 e1)) 0.0))
* a; g' [$ ]6 z9 G7 U+ ` - (not (equal (cdr (assoc 41 e1)) 0.0))3 S6 D2 h3 m6 s& h( S+ E
- );or
6 z, b x$ X- \( `7 c+ i; _& Z9 A - (progn! n6 B! \& s4 b6 k
- (setq flag T);
7 h/ H5 K- ?* q# c# H - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))9 p9 H3 p( o7 G8 R% S
- (setq width nil) 5 V% R- s8 A; ^+ l/ p
- );if
9 F& o' G% @+ u9 v* T1 {6 S4 `- t - );progn then jump out of the loop5 _2 ]! s6 P5 U: t1 g
- (setq na (entnext na)
3 q: O) H$ o+ t$ j: q+ S+ w - e1 (entget na). ~8 O1 N" S" ~$ P. z3 p
- );setq ' l3 L- V) a3 v. z2 X, X: o
- );if
. g, D$ O5 x: E/ Z( u2 x, E! D! r - );while* r3 f8 ~' m3 F3 G
- (setq n (+ n 1));setq ' H* ~- c6 M2 z, B; t" _- ]
- );while . h: ^! z2 \7 |: |
- F4 a- |; p. w& S
- );progn then it's a legacy * W* w/ c$ U" R9 c: V) A
- );if ;legacy polylines that may have varying widths
9 T0 p" T- A5 Y6 p) | - 2 |+ W) \$ {% g* v
- (if (not width)7 r1 @2 z. w. a
- (setq width "");setq
0 G; }& `$ ^. s* L - );if
$ ?9 k4 H& z) t - (if (not (equal 'STR (type width)))
, ?8 C; \/ p0 Y - (setq width (ai_rtos width));setq
; U8 _3 b/ ^/ a" r9 L. _2 x: m, ? - );if
/ Y7 E. }$ o: m - ' n4 v- D( U* ~5 A+ l; e; U9 \* v
- width
0 ` Y( q- x( s+ e/ i+ p' W4 f - );defun pl_width_getter9 t0 s. T- }6 V) t2 r: p1 k' v
% ?4 _- v" d5 v- ( p/ P. v4 n# }3 ~# a
- (defun match-col (/ ncolor)
: _# _8 N% d2 L. f3 X - (setq ncolor (cdr (assoc 62 elist)))8 y( r/ B: S3 k" h5 P
- (if (not ncolor) (setq ncolor 256))0 R+ [" |, D7 `, p( M4 k( W8 s: {2 [1 g
- (if (/= color ncolor) W/ k/ V# I7 t, W& \( k1 S' Y4 i
- (progn- C0 f8 p6 ]- p: a
- (setq chk-col nil)
0 f" w* L' E- h# x - (setq color nil)
6 s2 Q$ t5 Q% ?. v6 j' A h) n: w$ O - )
- j) \& I7 j+ t, i - )
) ~: u6 [- \6 Q/ q - )
; @ C) A) M; f
3 ]* `: |( q3 u7 G' j/ A7 F7 r- (defun match-lt (/ nltype)
5 M, j9 x) o5 P* ~) S, z( X; M - (setq nltype (cdr (assoc 6 elist)))
& `% m( i1 i+ \4 d" ~ - (if (not nltype) (setq nltype "BYLAYER"))
- E* ^' B: Z, y+ B0 C0 `, W2 | - (if (/= ltype nltype) m/ F8 K. {9 l( |, N" d! c
- (progn
/ P% s* }$ D9 p( }* u% { - (setq chk-lt nil)
2 X0 v& Z5 ?4 Y; y - (setq ltype ;|MSG0|;"Varies"), f/ O8 Z& c D
- )
3 C* `( n% r L - )
$ U. O# L% ^$ T+ s7 w - )5 Y$ N Z5 P2 k( c, Q* U* u+ }
& {, U+ T% B' A6 Q i- (defun match-lay (/ nlayer)
) W" Q5 x4 G. q6 y3 \ - (setq nlayer (cdr (assoc 8 elist)))
5 T" Y8 t0 E# }6 i3 P E - (if (/= layer nlayer)
2 G0 }0 @ _/ g& Z( y% e+ I, ] - (progn6 u3 a& y1 T) [4 p' {
- (setq chk-lay nil)
0 p5 d: M9 f7 i; ~ - (setq layer ;|MSG0|;"Varies")7 K" l5 i* n7 [7 M
- )2 J6 a& n9 ^& w; ` L& Z8 G
- )9 F! C* B1 _- w2 Y) R# Z& @
- )
* A: ?- ]- w% J) C3 w" w - / D% S$ e4 q4 j* J
- (defun match-th (/ nthickness)5 W$ }! M1 A3 |( {/ ?
- (setq nthickness (cdr (assoc 39 elist)))5 R d, F3 W" z) T
- (if (not nthickness) (setq nthickness 0))- Z: y+ {' V4 u
- (if (/= thickness nthickness)* I9 p5 S3 I9 \: ~* {
- (progn
- E/ R! {' ~, s S3 u - (setq chk-th nil)
" j0 _7 [/ Y/ x* k - (setq thickness ;|MSG0|;"Varies")
3 G/ z* s4 r: ^4 A; ~2 y) M - )
, L" ~& O3 i8 e& { - )2 A5 J- C6 t# f, D
- )
1 A, i' {, O8 v4 Q- R9 ^8 M/ a; I - 1 T2 w- v( C* u" j2 F
- (defun match-lts (/ nltscale). z9 u( a# J5 _( l
- (setq nltscale (cdr (assoc 48 elist)))
* A* p* p$ o0 n B, Y. j/ j - (if (not nltscale) (setq nltscale 1))
' F# _! Z! f! u' k+ A: t% s - (if (/= ltscale nltscale)' O5 n" J; \; ]) z
- (progn' U Q0 {2 d$ E& c
- (setq chk-lts nil)3 G1 D3 V$ J% E, q- f
- (setq ltscale ;|MSG0|;"Varies")
- @* \. @+ x$ b) F$ Z2 n - )" Y$ m+ o; C. L& t o# _4 A
- )
% Y& G4 m% E. X4 g( Z - )( G3 o- N& @3 z( R2 I ~1 u+ L% _
& I4 @- [' W$ r' l- u0 {9 x- d- ;;2 z8 e# d# ?: }$ Y1 \
- ;; If an item is a member of the list, then return its index number, else5 }- w3 n _4 H. u! _) r
- ;; return nil.3 Q7 E& h: d! Y0 J! V$ {( c
- ;;7 s1 x) V1 m4 o# d2 m
- (defun getindex (item itemlist / m n)# W- D- B/ z" j) y
- (setq n (length itemlist))# u3 @1 L/ `! t0 ]$ g5 t" W$ A9 Y
- (if (> (setq m (length (member item itemlist))) 0)# O; o- ~& {7 z* e$ y
- (- n m)) [! `- f" H k; X. j- L" C( e
- nil q9 x7 `8 i: T# k
- )' j6 l+ b* S+ C: z. X
- )" v5 e0 _3 J6 P: L. o
- ;;
- H( T E9 ?7 H" @" `4 x- } - ;; This function is called if the linetype is set "BYLAYER". It finds the
8 `0 N- Y$ V. m( N - ;; ltype of the layer so it can be displayed beside the linetype button.
: {6 C6 P C. G T - ;;
0 s. z* q9 U% e% i; R& Q& S! @# ^ - (defun bylayer_lt (/ layname layinfo ltype)
1 w9 c" ^; G( u1 S" o - (if lay-idx( k1 h2 m( f% k5 ]% S# Q
- (progn
% L* m: \ c# E2 z+ K! P) ` - (setq layname (nth lay-idx laynmlst))
' N: r2 d3 `$ q! C' L9 ~ - (setq layinfo (tblsearch "layer" layname))1 `# C" `, U, Q8 k
- (setq ltype (cdr (assoc 6 layinfo)))
) Q3 h( v. F* a( x! } - (strcat "BYLAYER" " (" ltype ")")& `/ X! x! n0 I' ~$ g4 Z' N5 h
- )
; ?. V1 N" C$ F* o) t; V. G( l, w - "BYLAYER"
( F8 [* Y/ L" Q; ]3 g( | - )
1 Q4 p# w9 b) Z1 h. {9 p1 k' @ - )5 e( L4 B! U9 ?5 {3 Q" I
- ;;, }* ^* B3 P, U, _4 c4 z, V1 w
- ;; This function is called if the color is set "BYLAYER". It finds the
5 ^1 B- a/ H) Z4 z - ;; color of the layer so it can be displayed beside the color button.2 y% {6 f& t% l6 [6 H) k/ O
- ;;6 Y$ L2 x' U% s+ T
- (defun bylayer_col (/ layname layinfo color)7 d! g( z8 f t! w
- (if lay-idx
: W" O- P; M7 H( O/ t) i& q - (progn
8 y8 h; o. j n - (setq layname (nth lay-idx laynmlst))4 j0 r1 ~0 l* y" {$ a& b" T3 A
- (setq layinfo (tblsearch "layer" layname))
3 O' F6 T1 d' f* b e0 |2 } - (setq color (abs (cdr (assoc 62 layinfo))))* c' k1 r6 y2 l- B$ ?) F
- (setq cn color)3 y. Q1 V4 ^& G9 Y" F
- (strcat "BYLAYER" " (" (colorname color) ")")
# F/ I; p3 o: Q: l. f$ p+ k& E - )
/ t/ d( h8 K' @5 n7 L - (progn5 u! C" Z% Q( h0 ]! Y' K
- (setq layname elayer)
3 r' ^& ?8 ?) N - (if (and (/= elayer "")( n4 G9 e; _0 q9 S- q
- (/= elayer "Varies")" X0 u& D& O- @) z+ S9 u3 ~
- );and- u# H8 a9 A( ~1 b# w. p! U
- (progn
5 \% [. q. r1 W: @1 N+ N - (setq layinfo (tblsearch "layer" elayer))
: S6 d O7 `4 N - (setq color (abs (cdr (assoc 62 layinfo))))+ s, N9 x# y, Q
- (setq cn color)
( M/ D+ j3 r. S) ]: e - (strcat "BYLAYER" " (" (colorname color) ")"), C* ]/ e* _& O4 y( h Q' p
- )
" w+ g- z. N9 g* d$ @7 W - (progn/ ^% O1 m' W2 i+ I; V* T- Z3 r
- (setq cn 0)
" h1 y( s+ X0 ^6 I3 N - "BYLAYER"
2 S2 g# Q: A! G8 T/ L& Z0 X" z - )
+ O+ U! Y1 y$ P: Y - );if
0 N9 ^% _+ I; D6 `# j- ] - );progn
) J( r) B; f" J" W - );if# M5 p: i0 z, x
- )3 P8 y! m# b8 O! e' }
- ;;; N3 V8 a3 h2 p( `7 T% K- A
- ;; If there is no error message, then close the dialogue: t# R( B: m: Y" P V$ f$ ^
- ;;
( r( K' A, Z+ e; w - ;; If there is an error message, then set focus to the tile5 z* @+ R9 \; z$ D) N
- ;; that's associated with the error message.4 j; x- p- z0 j9 a
- ;;" `3 g) S8 `5 N" a5 N/ f; S3 T. `& z
- (defun test-ok ( / errtile)" h s% u& p" u; Y9 i" _; h
- (setq errtile (get_tile "error"))9 k3 B% q( j) U: r- w
- (cond! q" S5 D. [8 ]* z% @' g( b* N
- ( (= errtile "")
6 t3 {1 S5 M) y& H9 w; y3 r# v - (done_dialog 1))) b* g# X; a, D+ i- \8 O
- ( (= errtile "Invalid thickness.")% z H. W, O P0 R
- (mode_tile "eb_thickness" 2)), g. Q- t5 ~: W' v
- )
; e) B& ^. [) p) k5 U% z7 _: o/ d - )6 N6 R3 P! q0 L
- ;;/ y6 t4 C4 O- @$ b8 U# M6 S
- ;; OK in main dialogue.
7 S( A7 W; T! u. r) r" Q - ;;! ^# r+ j* I) e7 D/ L
- (defun test-main-ok ( / flag)
/ j4 ^% Y, f+ d, Z2 Y! e; H5 b - (setq flag T)
6 q' r4 y# i/ { - (if (not (or (distof (get_tile "eb_thickness"))
! g* ?0 Q+ p$ X! {! [ - (= "" (get_tile "eb_thickness"))
3 \$ I( i6 l" F' r; S5 @ - );or! `0 r2 G( [; ^# E
- );not8 ~0 W _& W w/ w ?4 G6 t
- (progn5 [# r" o1 e* o9 H3 N' S
- (set_tile "error" "Invalid thickness.")4 V% M: G; Z @( l" R
- (mode_tile "eb_thickness" 2)
. a/ g* N; s2 Q$ }. f% A - (setq flag nil);setq
$ k6 P) v) C7 t# ]6 K - );progn: b( J+ j7 X* X2 g" ?
- );if0 b0 L8 {4 G. J2 a+ n. k
- (if (and flag
- ~& D6 p1 M6 P! K - (not (or (< 0 (distof (get_tile "eb_ltscale"))): Y) ~2 M* d. [5 ~' \
- (= "" (get_tile "eb_ltscale"))4 T0 v/ c2 j# \0 r
- );or
4 H$ s* q' }9 C9 e$ v* I - );not- a% R! n" L% n/ h. p: y
- );and
6 p$ ^/ t% g$ \) X - (progn. Y0 g& ^* D* G3 V
- (set_tile "error" "Invalid ltscale."). a) P% M8 w: H8 ^! u/ d. |
- (mode_tile "eb_ltscale" 2)) T4 J; _3 t, Y9 G2 a
- (setq flag nil);
2 x* N( a, b% Z) { - );progn then
5 r) Y$ u$ q# O$ p - );if
9 k$ z) ]- f, p3 N N - (if (and flag
+ p1 [) f7 r% q1 o7 o - ; Don't test the tile's value unless it's enabled.5 [; M& C4 a! i
- ; We're not set up for the display-only value- r" P6 n" N+ _( ~. B1 J
- ; of "" here in the error handler.
+ p9 n9 {2 s# P: Y2 H8 `/ I - (= 2 (logand 2 eflag))% W1 G: W) D9 ^5 Q% w. v( z/ F
- (not (or (< 0 (distof (get_tile "text_hgt")))
: k# ?: m& e* W6 Z; o - (= "" (get_tile "text_hgt"))
& q V' E y4 j- h. I# ^ - );or
0 b! I! x7 G8 X* l5 t) { P - );not6 C: U% q6 _! |0 v
- );and' ]+ r: O0 _$ b {( u2 G* M1 ?7 o
- (progn
# C* {1 N$ v; Z' q8 s- A$ K, o - (set_tile "error" "Invalid height.")7 W, |/ K) L6 r0 \0 |9 K6 t
- (mode_tile "text_hgt" 2)$ B* B/ ^$ B% m+ L$ U' c+ G
- (setq flag nil);
* e& I3 b% Q; Q8 M8 z! H - );progn then* B# L0 Z7 d* L
- );if
- }- D9 r. o [1 p5 J - (if (and flag
0 r" j! ~' M# x$ F& f3 }% S6 n* a0 }% E - (= 1 (logand 1 eflag))
( V3 C, K( L) {( r7 v - (not (or (<= 0 (distof (get_tile "poly_wid")))* p1 a- v: I9 z& Z# c( @: [' L
- (= "" (get_tile "poly_wid"))- Y- q5 C# c' b6 E
- );or. f* H: F1 R7 t. E& f
- );not- x9 ?2 Y; s% d
- );and* W$ c3 ]" o& V4 b
- (progn
! o( a5 s, M# N6 G" o5 _ - (set_tile "error" "Invalid width.")7 i, x. l0 y. v, D5 j, j
- (mode_tile "poly_wid" 2)
5 M" `2 {* l7 \' |5 q - (setq flag nil)
# y5 L2 J& {# t7 w+ a3 A - );progn then: B1 @) c: [% }* |" _
- );if
) {9 E5 g# R' ~; y( M- K. f - (if (and flag
; }3 V/ C6 T1 I - (= 1 (logand 1 eflag))5 C( P0 o1 B- V% Z/ J- b9 d
- (not (or (distof (get_tile "poly_elev"))
5 T$ z* v; ^3 K - (= "" (get_tile "poly_elev"))
6 x, B- d) F7 Q m) ^) ~1 P) v1 Q - );or" V2 e% J* s9 X w* h: w0 E
- );not
; g2 p9 b+ Q4 I: ~" c5 M Q, F - );and
% u4 Z* m7 a2 |2 E - (progn
% r: ]2 D- \) D0 G+ [ - (set_tile "error" "Invalid elevation.")( i: Q4 z3 m! F: G& X, D' j7 \/ @( L. z
- (mode_tile "poly_elev" 2); K: ?% p: i' g9 ?
- (setq flag nil)8 s% H9 `' y% D' |! N7 H
- );progn then
2 j: m" c$ A' b: B+ H. C - );if D1 A4 o: Q8 K5 |5 G7 }
- (if flag 4 B$ H+ d( M# E, J
- (done_dialog 1)9 Q! u) M! Y7 R0 K' E
- );if1 [& e2 |( y9 a, r( K
- );defun test-main-ok
& ]' H9 D; t9 E - 5 R( \& H( A7 O7 C
- ;;
2 o9 n0 `" p5 D6 S+ ~ - ;; A color function used by getlayer.) M0 c3 o, F4 T) v& z7 Q8 ]1 G8 c
- ;;- G6 F# R$ A3 r/ d: j
- (defun colorname (colnum)
+ t5 n9 {* ?/ E/ r7 S" [ - (setq cn (abs colnum))9 g9 J/ p: c, |1 K, ^2 `
- (cond ((= cn 1) "red")
% _% u4 \) i% z - ((= cn 2) "yellow")' T* G9 y9 I! c8 T1 R
- ((= cn 3) "green"): \& D% ]2 }3 s; F2 j
- ((= cn 4) "cyan")
* ~( J7 e) f5 D - ((= cn 5) "blue")
2 O2 d6 e7 i; u4 x' J T - ((= cn 6) "magenta")0 X, _( @& ^6 W$ U
- ((= cn 7) "white")
+ S4 t0 E9 \/ p* V* t - (T (itoa cn))
7 S2 K0 }7 z0 i0 v$ ~% R - )
' Q6 B; G5 i. s/ l1 J$ d( G - );defun. f, c8 P6 m) z; R2 P
6 R5 Q6 `9 p/ O9 S4 v4 {- ;;; Construct layer and ltype lists and initialize all* ^, y* b" l/ | w. _! i
- ;;; program variables:; C/ {& X$ o' Y: h7 r/ j2 y
! i3 I" D8 S' g+ y; `" _3 @& d- ; (makelaylists) ; layer list - laynmlst
# E1 w) F g0 _: g' G
- v& u/ g3 _9 i- 8 ?& d) _7 m' I2 ~
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
4 m- Z6 O/ i; T7 R, r5 O& b
. q9 Z6 k: j" |( j( f4 S7 R; ^0 t2 h- ;; Find the property values of the selection set.
# y$ d+ \# k* g8 R ^" u - ;; (getprops ss) returns a list of properties from
. b2 L7 F+ R! J1 ]# [) A - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).3 i J' Q& U" @, X3 D6 S s, H
) J2 A% J& e |" q3 o- t# K- (setq proplist (getprops ss));@rk interesting things happen here
- u$ l/ c& f, l0 g* k2 X/ x0 O - * _4 A: |* m* c* C
- (setq" m$ v( i( a6 }9 s+ U
- ecolor (car proplist)" g6 Y% o! j4 h; _
- eltype (nth 1 proplist)
6 ~+ W; X) H. ^+ \; t: K - elayer (nth 2 proplist)/ D( c! M! S6 F! f
- ethickness (nth 3 proplist)
+ Y2 k9 J" Z/ e2 T$ F - eltscale (nth 4 proplist)/ x1 t5 T7 L: H4 v. y
- ewidth (nth 5 proplist)' Z% O+ ~5 w! H. }+ f! S" P2 r. f
- eelevation (nth 6 proplist)
m. O/ v; O+ K% y2 N4 ? K- A. n - eheight (nth 7 proplist) O# E6 t! ~' D$ V5 k
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
' R7 D1 P N8 u" W - eflag (nth 8 proplist)
! k) g& Y) I* `, B7 D( _9 o - estyle (nth 9 proplist)+ z6 ]+ ?1 F; t6 l
- poly_ss (nth 10 proplist)+ z5 _; q1 d! ]5 v5 {0 k" u$ P
- txt_ss (nth 11 proplist)
4 \9 H1 M* j: X6 i - );setq- B8 C/ j* [4 Q( {0 s
8 f) ~4 {0 Q u& C# q- ;; Find index of linetype, and layer lists/ A$ q/ |. |2 P5 x" |: a# u4 R
- (cond
% o& G% \0 w6 G, w( ~; V5 H8 ? - ((= eltype "Varies") (setq lt-idx nil))6 Q/ ^+ Q i: u8 A
- ((= eltype "BYLAYER")/ a9 v" _ F6 b7 [
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
2 ` E+ |* z7 D" @& Z - ((= eltype "BYBLOCK")
7 W' T- L B2 d$ ?" U4 b - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))! s) C9 ~$ O6 J8 M) j
- (T (setq lt-idx (getindex eltype ltnmlst))) T( D8 J$ h" M: }
- )
1 N& [9 c \! h9 q% } ? u - (if (= elayer "Varies")6 `! ]# ]! e( J- Q% E9 e
- (setq lay-idx nil)
) f2 G/ J/ p W" H. t9 a; c' Z* f - (setq lay-idx (getindex elayer laynmlst))
# L. g/ K! s0 {0 B0 M- G+ o0 s - );if+ O6 s; m5 [ X9 Q4 j# t
- (if (= ethickness "")
6 W0 o! |/ w9 \3 d - (setq ethickness nil)
/ [1 [0 }7 b4 Y9 D3 f% V) {7 t8 o - );if
$ Q1 G& v- E& l% b - (if (= eltscale "")$ h4 V/ l' V5 o n% H
- (setq eltscale nil)
/ B/ a& N7 G/ d - );if2 y- B$ v8 Z2 n* i1 U' {
- u3 c& J/ Z5 M, _/ }' p) n y* Z- U4 l
- );defun ddchprop2_init ; end (ddchprop2_init)
[& l6 M( z) ?; ]6 ~# ]2 f' S, [ - ' G: h$ _3 n8 j; Z" v
- ;;; (ddchprop2_select)
: S) E$ X% P0 P* ] v- w/ F4 ? - ;;;1 ^4 Y: B9 K1 D3 P9 `% a0 ?& M6 S
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:4 f2 a2 h" u9 `: B K8 Z
- ;;;
/ `/ ^' o: w F3 [" l- m& C! A5 w - ;;; 1 - Autoselected.
* F+ P. y4 `7 {% \3 Y3 R( P - ;;; 2 - Prompted for.5 Q: A' V+ L" Q' [
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> ); U$ X. W1 N# g8 h2 @
- ;;;
9 L" u; v5 r( u* z9 I% r) e - ;;; The (ddchprop2_select) function also sets the value of the
! d5 _' o0 Q0 O2 e - ;;; global symbol AI_SELTYPE to one of the above three values to8 b' i! ~& u4 D" h' U
- ;;; indicate the method thru which the entity was aquired.4 S2 `* f+ _3 l
- 1 W: }; q# y( A* d# R+ i+ R* P2 |
- 7 n. r5 H0 a. O8 ]2 Q+ C! K9 ~7 |. {
- (defun ddchprop2_select ( / )8 R8 P( M; b3 X4 Z* T0 l( ~2 V
- C3 V1 y5 c1 L
- " m: ?$ U3 {! L, H* R( ~& F' c
- ;returns only entities in ss that are in the current space.
2 r& V) N* r& Z9 k4 g4 Y - (defun ss_in_current_space ( ss / a cur_space ss2)
$ U% E3 S0 r# z7 y4 j - $ D8 l. o$ p8 j* n% E6 e
- (if ss
8 B5 Z. i2 p7 N# r9 Q - (progn
6 c; ?: b, G% r) `# q - (if (and (equal (getvar "tilemode") 0)
' h; N) T, p* w9 R$ W" D - (equal (getvar "cvport") 1)6 X D8 r; `% Q; G& s
- );and 3 T1 s+ B+ d% F7 o
- (setq cur_space 1);then paper space is where we are.0 O% j( d5 O' [7 u) L
- (setq cur_space 0);else model space.
0 {) x* u$ E. z0 b- R2 j - );if$ z$ h8 e; |: R, G9 ?' t4 {
- (command "_.select" ss "")
2 c' x/ E4 c% n' c# v/ n - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq+ N3 |8 o! h6 @3 h. {$ G D
- (cond ;;;;;tell the user what's going on.
' B+ @6 O( g" o; q( R - ((not ss2) (princ "\nNo objects found in current space."))
$ R8 W* N" L1 l& r8 m& Q& j8 K - ((not (equal (sslength ss) (sslength ss2)))
6 ~; b- C! v# A3 D - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))" b: ^- x8 v$ a1 _7 q/ q
- " object(s) were not in current space."6 \0 c: [% E3 I8 ]
- )
" p' o$ `4 j1 c; ] - )9 f" n& {7 V( M; B, ^# w% i1 l
- )
: Q8 p' u- O W- g - );cond
$ N$ o# p. f' ]. h - );progn then% \9 ?! w" v# O3 T
- );if 6 a2 x/ m1 s" E; g
- ss23 X7 ?3 C" j' Z" A
- );defun ss_in_current_space
" ^" q) _% v- l7 ^
) Z& q5 x7 z- [8 K. M- 4 S$ j0 a3 F% I) h9 O; L
- ;;;begin the work of ddchprop2_select, o3 B1 x6 S" g! m4 m
- $ V7 [7 E, s/ J8 {% ]8 b
- ;; temporarily restore original highlight setting.7 |( ]1 Y/ _ E! U$ @' z
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
/ W; E3 w6 ^* H- A) N" N2 @$ r - (cond1 W4 @. a1 h4 b( \6 d2 D: [9 }
- ((and ss 4 N+ G: b; a1 X+ F$ u3 c) V
- (eq (type ss) 'pickset)
' Q8 g+ d/ C9 \* A - ) ; selection set passed to
9 S" W% Z% f! {6 r - (cond ; (ddchprop2) as argument0 m) c) f9 D' z9 o
- ((not (zerop (sslength ss))) ; If not empty, then8 P9 Q+ X% Z% U+ e4 y0 `8 ^) x
- (setq ai_seltype 3) ; then return pickset.
4 q( T- O3 V+ G- e% y; q! e. j - (ai_return ss). H2 F- A+ P; H* s7 W
- )" S, ?0 J( l9 v R
- );cond close
, F: a9 _' K4 J# n) B3 I - );cond #1
! D3 c* S t7 m2 _) t - ((setq ss (ai_aselect))) ; Use current selection
* I% u1 o4 R; U) }* C9 [2 \ - ; set or prompt for objects
6 j- a# _ v$ a- N8 a5 D - (T (princ "\nNothing selected.")( W: P9 }5 M% k
- (ai_return nil)
4 ]( N" P5 B6 _' X5 K& A4 q - ): Q T4 x8 {5 I4 r
- );cond close
) t' k* x8 e: \- ^) v M: w( l9 y - (b_restore_sysvars)* x4 r" Y# l9 Q: a% v5 Y
- / i; T; b4 H. \% X8 M
- ;(if ss
9 V* Y: c4 w; _' h - ; (setq ss (ss_remove_locked ss))
; C- \: X) s: C. C% C4 t - ;);if" S; }3 l3 j; c+ a* b2 ]
- (if ss
+ {* U6 F4 X! _4 h* Y! i - (setq ss (ss_in_current_space ss))
6 {: K$ c/ l, ]3 y' m. l* W - );if e& Q8 m3 T3 W/ [0 x5 a }
' W% P: d$ |4 r7 O# e- ss
: ^. j) q9 R( \7 B7 J. P - );defun ddchprop2_select
/ k% {8 y- S( T: G - 6 i' R* e& |, u- v7 F! r' e
- 3 |+ O! X2 Q+ _2 B# O
- ;;; Define command function. c% V9 _ R7 A, ]) V
- (defun C:CCH ()
7 i' K0 S: n/ B - (ddchprop2 nil)
/ P1 `. ]9 P, s$ O) i - (princ)
) r. k* X( i" d; R2 y - );defun0 \( N" \/ L( U& u/ |3 O9 ]) O- g
- / ]) D6 T8 Q: |. |0 _
- - G. U3 |5 u" } x
- ;;; Main program function - callable as a subroutine.' R4 O9 U( k' w+ P) b/ U7 G
- ;;; v4 R1 ]. _3 _! Q H8 a) E2 r
- ;;; (ddchprop2 <pickset> )
' g9 u8 c8 e7 B I; ^& E6 @ - ;;;
- p/ `( l' k4 W2 f0 a1 \& } - ;;; <pickset> is the selection set of objects to be changed.
' p% N3 V0 A; Z2 j5 Q) T- e G - ;;;
, h3 I Z. j$ [- \ - ;;; If <pickset> is nil, then the current selection set is
* d9 p; W1 W3 V& A4 K8 P4 H! Z - ;;; aquired, if one exists. Otherwise, the user is prompted
. Q, }# S$ y0 k* t - ;;; to select the objects to be changed.' P1 X9 E4 V$ U: @5 e
- ;;;
( w$ G% O6 ~# G6 y; h6 } - ;;; Before (ddchprop2) can be called as a subroutine, it must
- W- R5 O- F! ~" l% I! R8 `& ] - ;;; be loaded first. It is up to the calling application to
, X5 T/ I$ M4 h: W# G9 b+ | - ;;; first determine this, and load it if necessary.
; r' h) k7 w* I: D% l: e
1 ^) i" @4 q* s8 e: D# [, Z7 |- (defun ddchprop2 (ss /
3 ~! J: b+ u/ y# a5 i2 l
3 H* H8 j7 |$ V- a- Z4 Q9 p0 {' `8 R( x8 t2 p! C
- add-mdash
$ Q- A$ o% A) a - assoclist( d, c0 [2 `, {4 p# q
- bit-700 _+ V# a$ A/ I# `' \* T9 t+ @
- boxlength
2 X$ k: W" R( g/ U; M' F- b" e/ [ - bylayer-lt
2 {( ?" o6 q; W( e, P U' P5 l6 w - bylayer_col
' Q& i1 B. G# N u# D$ w - bylayer_lt' X" B& q: ~4 b
- call_chp2
2 R. X+ Q4 M- J3 a( ~ - chk-col
& P: p- x$ Y, l2 r9 G: d3 C1 g z - ;chk-etype ;var removed by rk
. p0 p7 \1 h8 P- X4 ~6 x( o% @8 _. W - chk-lay " s9 h# L* Y; V9 J' g# W9 m; V
- chk-lt% _# }, }* u$ M8 z
- chk-lts ;var added by rk
, J0 r/ R9 J0 a; Z4 G [& | - chk-th
* L: j2 y# S6 ]8 r; `+ u/ S1 E - cmd$ N& k; Y- g: }2 A
- cmdecho8 D, z) q, I7 j" G
- cn* k8 r8 E- u8 T: J/ q8 t4 P1 P
- cnum9 o2 J: f, K+ M" C9 k3 M2 K
- col-idx8 |& n5 ]8 o0 s" m
- col_def8 F9 I0 S2 N# a# Z
- col_tile z g3 z. c( Q$ N' E
- colname
7 V0 ], a% V/ W - colnum8 w) p. f0 b0 S* J; \ K6 Q# {
- color" d# N/ [3 e, E, u% I6 Q
- colorname
" H7 i2 s7 s) M - cvpname
3 Q6 R; F. k( M! E' w - dash) h1 r% m7 k( d5 p9 l/ z2 V
- dashdata D+ V7 i; S& k! C
- dashlist
7 W' L: C$ c+ K9 c3 g - dashsize
! d- }& w3 X2 b* b - dcl_id
, B* I8 b# H7 u2 Z6 g - ddchprop-err. k3 e/ L- u/ L: T9 L
- drawpattern
: ]6 J @, L# [: L; x* |" C - ecolor
% V7 @' O/ ^# H - eelevation' M# Y/ E# X& N2 s. e, Y+ ?* F
- eflag/ n+ L" S" f7 e4 D& H/ X
- eheight9 ]: v; M2 c i. n/ [+ n% r, g5 Y
- elayer# N+ J+ I) U4 |) T
- elevation
; F! v1 z2 F/ @3 Y$ e - elist
' I, l+ I) r1 R5 u4 R - eltscale; p' a5 @- t! h+ x" t
- eltype
* `/ t3 _, l0 e* a1 L4 f0 [6 y4 b5 Y - en2 z+ ^6 D. v8 W% A
- ename* L8 w1 J Z" L5 Y: |- e
- ESTYLE ;var added by rk' z. W6 r/ H% a; f5 K
- ethickness
0 @7 _+ X6 [" S2 e - ;etype ;var removed by rk
3 {/ U/ n; B9 ]! ~: |" ^ - ewidth
, d- y* H v S! Y/ v' o* w$ I - fchk3 u. s. w* [- o7 W+ e
- frozth6 Z: E4 O' Z' I7 P
- fx
$ z {" a7 z* `: p1 }# e6 U# L, e' f - getcolor
$ b- |1 h( d$ l% k - GETELEVATION ;function added by rk" N8 j. k# {! t$ M
- GETHEIGHT ;function added by rk
2 p( x* ?2 ^$ l - getindex/ ]7 H1 h- @9 I1 I/ ]! C
- getlayer# v5 {/ x- S8 H4 m
- ;get_locked_layers ;function added and then removed by rk
4 x: \7 n6 a5 |, G8 E - getltype; H% a% C z! ?9 l7 P
- getprops) Y, y, R! k4 ~' U. B, [' K
- getscale ;function added by rk7 R2 t# P# O7 u* V9 r+ K A) `! s
- GETSTYLE ;function added by rk
. `0 U N2 X! B( f) h& p9 d - getthickness4 G5 p& z! p# R- x8 Z
- GETWIDTH ;function added by rk
8 l+ J0 E. P& `3 ~ - globals
! Q" `9 N1 m |1 { - HAIR_STYLE_LIST ;var added by rk [/ n5 Z! S8 m3 B
- height
, w7 [, ^. {# M9 `! q9 o( ? - index2 |" k' c- Y [, ]- i7 }
- item H5 B5 P4 f6 P% @2 E6 p
- item1
! \& h! k- T, U8 B- o! g+ t - item2: u* D. Q3 ^0 J6 A0 d, s; X* k
- itemlist# y1 z7 ~6 D {, j5 I: P& q
- lay-idx
$ h& S, e7 A8 A9 C# W& s: t - layedit_act
; u2 a! f- j2 q+ o9 Q% C# x. p0 C5 J - layer+ `+ b! D9 [) ^+ j# q
- layinfo
! ?0 Y; w# @3 w" |; K" a - laylist" }: V, y5 n; l* c$ ?3 Q2 d1 m" b: G
- laylist_act& v& g B" s9 Y7 f7 k
- layname, H, B i$ R, _) V' c. T
- laynmlst3 U( W2 r1 ^ j( }) c
- layvalue
. I$ W5 }5 i5 K$ B - linetype
- y' f8 S# ?" V6 a# z7 {4 M) r% j, j7 I - list13 C: i9 I2 q8 `! h1 ], _
- longlist+ j2 H! j! [ P p: d3 @6 n
- lt-idx7 n$ H/ Z" d$ B+ d$ A0 R
- ltabstr3 \# F' f0 H( |5 N
- ltedit_act4 K5 U5 T' @6 {) y7 `+ t7 `/ `. a
- ltidx5 n0 v4 N" F$ c4 r }
- ltlist
4 G: r& p$ K' Q: V& O& S( M - ltlist1
" q! Q1 l8 l5 n; m6 D" J - ltlist_act
8 u) n5 o$ @1 b# m - ltname
4 T: l& O& s) n4 | - ltnmlst
$ ]( e m g4 C6 w - ltvalue' L7 h2 J2 \ A) A3 t; [3 V
- ltype
9 H3 w+ P6 j. d8 M) A) V3 g - m
: b. s0 v. J% {, \+ q, t- ? - makelaylists
+ B+ w# c0 A: [+ l1 }& ~ - makeltlists5 J1 i) u; t% r! _
- match-col) e# w ~* Q& q0 Y; s6 c
- ;match-etype ;function removed by rk5 U3 D! d) x; i6 c% F" {2 q
- match-in
4 d/ b A% c B1 t* \ - match-lay
7 b1 I7 g2 S2 t* a - match-lt! F |2 V5 Z: _/ K; T9 {
- match-lts
& p7 `1 P. l1 J! d9 @- ] - match-th. o( p! l! [% U/ u) d5 c; P
- match_col
9 l7 d. \; @* i6 ~, x5 _% K - mdashlist8 ?0 m4 l/ H$ b) {. X& c" H
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
& y$ S0 d5 l$ |3 c - n4 N; O- g5 G5 W E# Q1 |. H
- name* k1 x9 ?6 k& ^1 Y# p- X" b
- ncolor1 R1 m3 t/ C9 N9 p- A
- nlayer
4 d+ c* c P& y3 h+ E% C/ W5 N6 X - nltype8 \4 P! {: U' i+ M5 u: m4 U
- nthickness C: w9 Q. _1 v# H
- off2 y0 k8 v( H g' j$ @ s
- old-idx
7 P$ @- w# g: \1 B - olderr p! c2 P Z' W8 C, P0 a' b
- on
( ^/ B$ `: ^0 V, u+ b, i& r! h - onoff' S3 \! `3 _ x7 p4 @+ a1 h/ y1 v
- patlist4 I0 H% A* c0 w4 |5 `- y+ Y, e( C
- pattern
& ^# ^! x( V3 h' ?! u- ~8 E8 B - PL_WIDTH_GETTER ;function added by rk0 d% b1 ~$ J+ p3 G4 n4 N
- POLY_SS ;var added by rk
B& H) y# q0 v - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
- c7 J0 c: B$ l4 C3 s" Q4 a( {! q - proplist
! P0 w4 ? R+ A9 s9 A3 z - reset-lay$ @2 r) \2 h3 z5 R6 Z
- reset-lt
1 _& H6 [5 B* U3 H) o5 V2 W2 [( B - s
! W- y: I) ^( F( }6 p - selset0 V' Z: F& O/ z; _% @' N
- set_col_tile, k( G8 v: f" |6 _5 H
- sortlist
5 f o/ C2 ?, X# c - ss& a. g4 T* k# c1 C$ K8 N" {1 u
- ss_in_current_space ;function add by rk.; v8 a4 z% e* e% L* _
- ss-index
2 L$ t6 y0 o& d4 |6 _/ e( C1 w - ss-length6 K' Z/ d1 _. n1 u0 i
- ;ss_remove_locked ;function added and then removed by rk., H* s- r! N0 _7 v& S; P$ f
- sslen0 ?! R2 K8 Y) F, W
- temp_color
0 m2 ~ ]! B. q - templist
0 B# s' l H* Q - test-main-ok
' [. E7 x- W0 B; ?7 M - test-ok! Z' z. e: G0 K( J
- testidx
" a% R; V% G) A0 s7 ~. Q3 e+ u' c - testlay; C6 ?. l w) p9 ~
- th-value
! v. [# m9 E! M1 ?/ V* ~" t - thickness
8 B* [ f2 B9 F3 R3 ^9 L, K3 M! {2 M - tile: [7 U0 P8 K2 G1 O0 [
- tile_rect
4 H" ?0 V! i* ^! |7 w, j* D - tilemode0 Y' ?# L. ]# A1 G# L- }
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk1 p A; Q0 P0 r0 ]) |! }1 c
- TXT_SS ;var added by rk% D/ D( J" @+ v" Z( b" h
- ;undo_init ;removed by rk.
8 F: X" B6 F( S7 F Z l - vi; Z# F6 I4 Z/ E
- vpf- [; |+ ?" O" Y# X c% j
- vpldata
* T$ `8 [ g0 m" L - vpn0 p) w, b/ m+ s+ o& I
- which_tiles
9 j9 e( ^( |! p$ Y+ q2 {( Y3 h+ Y - width0 S- E; O+ ]! ?) C8 Q; g
- x' w$ }- B. Z2 d8 U# X
- x1; B% I' j' { C- N& T2 v6 Q, s; o, u
- x2
9 \( h/ U( s9 H - xdlist: v7 W# _* D4 t/ g. e
- y
! j4 F, l1 S5 {) \ - y1
6 I3 y4 D1 l% ]! r( H$ s4 R - y27 F& s% D( H1 c' j" e& d
- )
0 f2 B' S* Z* D( d - * r. U7 f$ ?' F" N( p
- (if (and (not init_bonus_error) - {) F- F: ]! K8 g' F; _+ H( z
- (equal -1 (load "ac_bonus.lsp" -1))
& n( n. N7 C! m2 X0 _. B8 P0 l! L - );and
! b- W& p3 E3 B7 A7 P - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))) |' [1 e5 y* \1 e
- );if" F1 V/ |1 ]/ Y; a V) e
- (init_bonus_error (list/ U2 m$ r, o/ R" `1 F. L% `
- (list "cmdecho" 0
5 t- e, C% ^4 U0 e, l8 _3 D, a - "highlight" 0
* Z( C+ v& h6 H9 v( A% _7 w - "regenmode" 1
6 m# B6 d$ ~ i) T! @ - "ucsicon" 0
5 F- W% ?/ C+ ` - )
5 Z1 }6 e9 M) K( ]8 r0 a# x9 \ - T ;flag. True means use undo for error clean up.
$ L5 k, r. T: ~; v" Y - );list # U7 x3 v. k, S5 X5 B
- );init_bonus_error
$ W; W2 l$ S- ]6 I& r( s# M - % X+ N' {6 ?+ N" n% K; E4 q! \6 e
- (cond1 \4 M4 M2 Z* v
- ( (not (ai_notrans))) ; Not transparent?" }$ H: W0 |) x! F1 Q. S
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded? ~' n0 e" v- L
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
* n' p0 G" O( k4 m1 C - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
# O T! r& V4 k8 {' P - (t
7 s! s# S; O' ~: I - ;(ai_undo_push)
% ]& z& ]9 e& \' I- S7 | - (ddchprop2_init) ; Everything's cool,
6 x3 T$ i- `4 T$ x3 p. s. q* \3 K$ c - (call_chp2) ; so proceed!, E5 w1 z! ^8 I4 B3 t) g' t
- ;(ai_undo_pop). x I; m8 N2 r$ _1 ?4 f/ S
- )
7 K% ~* x( G" c4 B' D# a* _4 h - );cond close! G$ y" Z7 C& y0 j0 Y6 ]6 L5 d
9 I: S% f0 t$ g' Z+ F, h1 C- (restore_old_error)
4 [/ U/ t9 q5 _. {* ?$ q - + R9 m2 G) u* f, k% y
- (princ)5 b, {7 e# p5 k
- );defun ddchprop2* k3 ], N8 }# W
- % ~3 e p) v7 I2 @% ^ C
- ;;;----------------------------------------------------------------------------: Y3 h% F; b+ P' G
- : x( B( O, _* d% K) `
- (princ " EXCHPROP loaded.")
" k) }+ ]% `0 H; |% t, O - (princ)
/ L. X) ?& }8 w1 L3 T" _
8 @+ n% W9 m' o; x3 \0 d+ E0 Y- ;;;----------------------------------------------------------------------------
6 h5 \) R; V- u( W/ g8 k1 }3 A- C - ;;;---------------------------------DDCOLOR_LSP--------------------------------% |2 O4 b9 f, L8 j$ f7 L, }
- ;;;----------------------------------------------------------------------------, i' J4 x; T! I! D, W% S0 l
- 6 ]# X8 r/ P' g
- ; Next available MSG number is 24
" e. B- a& m0 ?4 ?/ Y - ; MODULE_ID DDCOLOR_LSP_
* `0 o$ o2 l5 W" ^( R5 ?) B0 | - ;;;) y. l4 @7 p' B. |, z7 J6 {
- ;;; ddcolor.lsp7 {$ R8 q2 G! J2 v) y
- ;;; # {1 H' p0 [2 b
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
# C5 ~ V4 ]# {# L2 o2 W' D8 D Z - ;;;
8 v+ S7 X2 J) P9 X" G7 q - ;;; Permission to use, copy, modify, and distribute this software
( H3 p0 C2 P+ |; V( {& O6 U- s - ;;; for any purpose and without fee is hereby granted, provided
P3 F' }6 q- M) w0 B9 a' G - ;;; that the above copyright notice appears in all copies and
, D W% Q" O# u9 _& q+ s - ;;; that both that copyright notice and the limited warranty and
* V3 z: U9 W5 m' `& x( x/ d - ;;; restricted rights notice below appear in all supporting7 i0 p) Q& `* w. v
- ;;; documentation./ T; V8 b8 o1 D! I$ u
- ;;;! Q, V+ L( T- I: G
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
2 l$ W% `) _& n. q4 o" I2 U - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
: I# i0 A& t3 m9 e d- K+ v! E - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.+ J# S7 n, m3 G1 {. J6 q; V
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
& R9 u: s! A: ` - ;;; UNINTERRUPTED OR ERROR FREE.( g: e, k2 E1 N
- ;;;
/ G% Q3 y# J- X3 t5 [, y: k1 g - ;;; Use, duplication, or disclosure by the U.S. Government is subject to9 b) K& i* i. [
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
C. z j5 ^9 z5 m( Y# N! { - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 2 H- G: f# @9 m( B# i6 @4 p
- ;;; (Rights in Technical Data and Computer Software), as applicable.
, c( D2 {) `1 c' P6 I - ;;;
7 P8 W1 @- u X# Q - ;;;.
' W" q3 T0 Q3 P4 ] - ;;;
9 ]- i3 k& G$ o' v8 `' @$ J - ;;;----------------------------------------------------------------------------0 ^# o) e, m! J8 j7 |: D3 T& `
- ;;; DESCRIPTION9 J n1 P( O- @
- ;;;
! J3 l b7 \! n - ;;; Chromatic Pallete style color selection dialog.- W5 E& s( E2 k/ L7 i( A% t
- ;;;
5 X( G& j' ^' [% G) M: p - ;;; Globals:/ T( {) v' f7 P& x* b f7 J7 N3 A
- ;;; 0 R9 Z- V5 D- ~) O
- ;;; chroma_color - Integer color index. The last value selected
# p1 F6 g3 r) |1 {: B; k - ;;; by the user in chroma dialog. It is not cleared or reset
/ v x* M' N7 }# }7 t+ z - ;;; by a cancel. Only used for communication between callback
* v2 g" c+ Q, I; U4 V* x7 { - ;;; functions and the (chroma) funciton.
: [# @2 P9 L) c, R8 D - ;;;
6 S# i- A5 X% u! v: B6 M - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
& \4 R0 s3 r6 G* p; b9 a - ;;; * n9 w" Q( a$ f7 J% a7 Z2 _6 f( ~
- ;;;
9 E4 K% \4 ]+ k" p - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
( r) X/ x5 B" S2 o1 u- y4 ^, I- p - ;;; pallete style color selector.
3 k9 \8 b4 {" _0 T& R/ _3 [ - ;;;1 J' m9 ^9 o( O" u( H% k$ R
- ;;; ===========================================================================% {% N& W0 h: }8 i1 n
- ;;; ===================== load-time error checking ============================5 x& l: h2 [8 A$ X) B8 j
- ;;;
, g* y0 X3 y; ~0 R - 1 n' A6 x% g$ a# E! T- W4 \0 {
- (defun ai_abort (app msg)& \1 i3 W: d7 F5 s( T; }5 j
- (defun *error* (s)
( R/ V$ V; k% w6 Z6 X, x4 j - (if old_error (setq *error* old_error))1 L: G9 e0 I5 s5 H0 |; ?
- (princ)
5 \! _% g& E: \ - )8 _# u x3 g5 A( C
- (if msg
# E5 c0 u( K3 y( `7 _2 L4 { - (alert (strcat " Application error: "
0 r. ^" G+ ]% m) F1 C1 \ q) a8 x - app
0 j% D1 {5 J2 k# i' H8 o - " \n\n "+ h8 p8 Q# ?7 ]/ @5 ?2 \5 X
- msg9 @0 a7 f0 l* F! b, i3 D) G
- " \n"" \9 G" v: {& Q0 ] o* G
- )* t6 i5 k" a8 V' C# P7 `# f
- ) k9 B& x, n9 q X, c& N3 h8 t) A
- ); D e, U8 A$ p& Y) E
- (exit)& y# v5 J. c i+ d; K
- )
" {: J* {8 D" _# U& y) O
, I0 s, ?& }$ }: X- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
" h" C( |; b" |$ _2 W2 h* H - ;;; and then try to load it.
- u# ?- f$ j; Z; m - ;;;" U' }. L- l1 b* O0 _1 ]( N2 I" [0 K
- ;;; If it can't be found or it can't be loaded, then abort the
s$ l4 A% s7 _: Q* X - ;;; loading of this file immediately, preserving the (autoload)
3 ^' P0 @# ~3 G! N, ^3 m4 f, r* c - ;;; stub function.
8 P* {( {% ]- F! j( T! q
: L& h# U1 H' e9 d( ~- x- (cond
' K8 a, G! M X - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded. H; p( g+ g: m9 Y) T. c
- " `" L5 {% W, g e+ X$ b, `
- ( (not (findfile "ai_utils.lsp")) ; find it" Y7 | Y4 a0 ?0 B! B8 ]; P* N# ~
- (ai_abort "DDCOLOR"
" Z6 h/ m9 H+ G! r% W& N; o - (strcat "Can't locate file AI_UTILS.LSP."
' G9 P6 e# m( i% n/ s! l8 A2 j - "\n Check support directory.")))
+ [# t! b; }5 G
" j! F% R8 Y. Y: \" m* T3 q/ B- ( (eq "failed" (load "ai_utils" "failed")) ; load it9 L" u1 e K" ?
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
% H/ g' }1 h4 w2 G1 f9 C* O - )- _1 a" J2 A/ v- b# M9 z
, q8 k3 P$ o m% R* v8 C' c, N- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
$ C$ X5 w# e( C$ V1 y, D$ N: O - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
6 {2 ?: i1 g- a/ e/ N - ) ; ai_abort's alert box dialog.* _/ F. d9 I0 R% [- L5 w& J8 M
" u0 W6 e+ m9 B' S) V* H! L- ;;; ==================== end load-time operations ===========================
- _, X( M8 O# v4 y. T
6 w9 K, _9 `0 [- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
# L5 H# u9 { h% O% W - ' _' Z8 e' F( L* t6 _
- ;; Main Color function, called by setup code.
% ?0 F1 b) V8 [0 z& W; j @ - (defun ddcolor_main()3 ~; n* d* Q& A T
- , [1 a. f7 `( a6 ^6 m# ]4 c
- (graphscr)# `) c* O; Z* V( ^- o
- - P6 s# p" c' `7 k3 p7 @* r: j
- ;; Get the color of the current layer, for possible BYLAYER color swatch.6 T4 M4 }6 _' f9 v
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))$ S7 t& [2 U. [( p) P, B, x
2 a D" x; k, O$ g/ N/ k: z- ;; Call the dialog here...0 i) F! c* `& B! C9 U! g
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr)); v* U w) J: R8 L* r7 y z& J
- / a4 s* H5 C4 g" f* @
- (if clr+ W) g |, H$ Z
- (setvar "CECOLOR" (citocs clr)))( q- H' e* ?! u5 ~
- )' |1 ^4 T: K7 F! ?3 ?9 W
- & f5 O$ {9 u8 z" g0 f- f
- ;;;
) N9 Z" U" T; w0 P" x1 k5 P - ;;; CSTOCI -- Color string to color index1 d- e( s; s3 j4 z. U. Q
- ;;; Convert an arbitrary case string into a color index., D; I5 M2 |0 Z3 b5 _( C
- ;;; Returns nil if string is not a valid color.( D& R% D% P/ @9 s6 Q
- ;;;
+ h* w9 W+ `! O! R - (defun cstoci (str)
\; I. w3 i! |7 H$ J- S; w4 P - (setq str (strcase str))
$ ]5 N7 h- @# _) T9 x - (cond$ J3 r6 f( V1 w9 {
- ((= str "RED") 1); }; p' N1 t# [2 l6 O/ N& r; G
- ((= str "YELLOW") 2)
. {& w9 S# E! a- X- b - ((= str "GREEN") 3)) n2 r# Z. R, s2 l9 F
- ((= str "CYAN") 4)
7 d9 {. M) @) w4 v, Z - ((= str "BLUE") 5)2 a# t6 R$ ]6 D/ k5 `
- ((= str "MAGENTA") 6)
1 {1 N4 ^: S- C7 M, q& H - ((= str "WHITE") 7); V8 U2 {" ?1 Q9 [/ B
- ((= str "BYLAYER") 256)( i; k' z: g! `, i
- ((= str "BYBLOCK") 0)7 r$ `$ G# K7 n
- ((= str "BY LAYER") 256)7 S [! U& O5 L1 G m* ]. E
- ((= str "BY BLOCK") 0)
" r5 c' R2 @; ?& b; q4 k( U - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str)); c0 @, D8 @ y# N2 H
- (nil)) {# j2 z9 `+ F! m; T
- )* X, X& g+ ^, ?
k8 J) G' F2 H: G' |7 V! }/ G- , @+ {' R. d, l e) t. U8 b8 f
- ;;;
+ }" T5 U( i p* I& ] - ;;; CITOCS -- Convert color index into standard color name.' g1 K4 V' S3 ]" U7 l8 E
- ;;; Will return the standard and logical color names as text9 ~8 F) n: \( R4 q! U% d6 z
- ;;; strings. Returns nil for out-of-range color indicies.3 f, R( o1 [' F6 S8 h# W: h
- ;;;
( f; b8 B u1 a J3 K; S$ O - (defun citocs(i)
. F) R3 k( X& \6 F S9 Z/ S# s - (cond$ v# R5 q3 J# `' c* F5 P
- ((= i 0) "BYBLOCK")
( E9 I% S2 h x8 g) ]( O - ((= i 1) "red")" r3 F C8 @1 i, x( ~
- ((= i 2) "yellow")
$ {6 w3 ~- R9 m, s }1 U* J - ((= i 3) "green")- W! ]% j4 l; [9 o
- ((= i 4) "cyan")
- w# B8 T- `( Y0 V: r) [. @' }5 R: z- @ - ((= i 5) "blue")% l8 t. \! Q/ G5 m9 N
- ((= i 6) "magenta")7 C# @/ \8 G2 b9 {7 V
- ((= i 7) "white")! I% e6 Q# i: [" L9 b- w
- ((= i 256) "BYLAYER")4 o/ ?3 ^ @ n4 n8 P% f. C
- ((and (< 0 i) (> 256 i)) (itoa i))2 N1 A, B P' Z$ Z n9 N" k+ @
- (nil))
- p4 }7 }& a; K% q3 y4 Z - )
+ W- K* S4 t- j! ? - 2 H) d' J! j) z. h J
- ;; Start of ddcolor
) x( d& @0 y# b: `" ~' a - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
7 ~' S' {" V" V8 o/ V B - old_error *error* ; save current error function ?; ?7 u$ D- j; V
- *error* ai_error ; new error function* }* ^4 |, M: K/ Z! [) A8 l
- )
. c3 P( e7 H Q% G" m" v' d" ] - * M' p2 [ {0 h5 a9 O0 |, t
- (setvar "cmdecho" 0). N: B6 F! Q% N) [$ w; }1 J
- 7 M$ [6 L1 W; |8 l7 x
- (cond
O; Z4 v# }; Q. w- t - ( (not (ai_trans))) ; transparent OK
4 d5 p0 G* x' E) A- F% W - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?, q6 k8 T9 b! |9 {7 K( q9 d3 [
- ' w9 f9 {1 ?3 m- ?# P, Q3 y! M
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))0 m, E' J( s' z2 o: a
- (/= 8 (logand 8 (getvar "cmdactive")))' P: V2 _* I. \; M
- )
) y. n+ W. p, ]8 ] - (ai_undo_push)
1 `1 h7 z v" N; y - )4 h0 ^ [ B$ r5 f* a
- . \3 @3 C3 }3 O2 m
- (ddcolor_main) ; proceed!6 i: E3 M7 }, L. ?% a6 V
- # ]/ ]. y( [$ V- Y, i; q
- (if (and (/= 1 (logand 1 (getvar "cmdactive"))): O& _% M8 e/ ?) [4 r4 w4 s
- (/= 8 (logand 8 (getvar "cmdactive")))
$ z* I+ O; D& c: M# N2 U' W - )
! E' v- f2 |( u1 B3 a% y$ d) `6 H - (ai_undo_pop)' \/ ?3 Q6 g4 Z3 ]' ^) N
- )
1 c! ]! G9 @* |$ n$ Y( U - )( }7 P0 x) X* M$ I4 \$ {# y" ?
- )
) C. b, ^# D1 N8 U9 D! B
" `. B5 K6 M" H/ O: }- (setq *error* old_error)
' d- h: \8 C7 m8 v" i2 |( T0 w2 m - (setvar "cmdecho" old_cmd)
e; f" F8 | ?0 e8 f$ ]1 ?( L1 T: { - (princ)
$ k9 }3 _( a* Y7 F& ?
8 |' m# Y/ D% d6 ]# J- )
5 Y! N' Z: S0 _- d, ]
' ]. ^2 _7 p. f- ;;;----------------------------------------------------------------------------& Y- d; E$ c9 ?
- 7 j; F" J( a. O! \& j+ ?: P9 Y$ \
- (princ " DDCOLOR loaded. ")% k4 X ?7 k+ A
- (princ)
; B+ } t0 ?9 U8 ^2 f
8 m* l6 C8 H2 n- ;;;--------------------------------------------------------------------------;
, `) ]$ I1 S& D" x: W - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;3 ?2 M& T, I; ~5 e, G2 l
- ;;;--------------------------------------------------------------------------;& \5 u- S' Z( v; m, M( t# X
- ;;; ssx.lsp l2 N) B+ M; U' K" o; Q
- ;;; Copyright (C) 1990 by Autodesk, Inc., K) N) P- ?$ n( t1 b
- ;;; Copyright (C) 1991 by Control Systems, Inc.
& C: x }3 U, w s7 \! J. k9 d - ;;;" ?/ l+ S, Z6 g* ?2 z$ S3 |. k" j$ P( Z
- ;;; Permission to use, copy, modify, and distribute this software and its4 V$ J0 q( a: q/ L
- ;;; documentation for any purpose and without fee is hereby granted.% }" J1 E# k" n; E: H5 e" h
- ;;;
2 N: y( S g1 N+ E - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.; O; v# E- r) B0 R: p& j
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
- N7 W8 K+ x. Q- k( h - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.. a1 R- t3 S0 X0 K' S2 d( n* k8 u( P
- ;;;" M1 c. \$ G# a' O2 N X( S! A
- ;;; Larry Knott Version 2.0 7/18/88
7 I2 Q6 k$ h0 G- B$ y: u. | - ;;; Carl Bethea & Jan S. Yoder Version 3.0
/ ]& v/ h# J0 g - ;;; Enhancements to (ssx).
3 J# y- v' t$ w, Z# D# {, _8 @/ C - ;;; 15 March 1990 + ?" |8 Z$ C' M/ C: `4 ~
- ;;;: C! T5 s5 y- S
- ;;; ARTIST Software, Inc Version 4.0 December 19915 L7 v7 O9 o$ ]& n" w$ E
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
6 p G4 \" Z6 w. B - ;;; use Flexicon menus) e' H! c" x2 O9 K
- ;;;
+ t- F' i" t* P - ;;;--------------------------------------------------------------------------;$ q l5 g7 l& W! p2 I1 X
- ;;; DESCRIPTION
) J, \ M0 b; [4 X, W: M - ;;; SSX.LSP
; q5 g, ^: z% D/ R - ;;;
, c- [! I0 l' s6 }% H" W - ;;; "(SSX)" - Easy SSGET filter routine. 6 D* e9 U3 f+ `& u& i: v& X7 E. W0 E
- ;;; ' y# Z% G+ \- L' Q/ m8 C
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt , a- z0 D4 x i% W
- ;;; to create a "previous" selection set or type "(SSX)" in response to 1 c2 j6 i8 V/ m! C8 p- O
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
' q; y9 G7 q* m1 h- \# ~4 j; w - ;;; entities and "(R)" to remove entities from a selection set during
/ l, x: b; `' _3 u1 {1 t - ;;; object selection. More than one filter criteria can be used at a
/ E' C. B9 B/ y4 r2 H: } - ;;; time.
7 W0 E" q& m+ _ - ;;;
% S6 o" P6 Z* ^$ v2 E- J - ;;; SSX returns a selection set either exactly like a selected+ x' A+ M- {9 B
- ;;; entity or, by adjusting the filter list, similar to it.
: a6 z5 u: E2 ] }, ~" p - ;;;
* q3 g3 t5 i* ]% a5 }+ @ - ;;; The initial prompt is this:( \( y& m1 A. X1 K/ e4 G3 V" U! |4 U
- ;;; 9 d0 q& R7 ^3 E5 X
- ;;; Command: ssx
4 q: r' e; G) v" |$ Z2 X0 k2 a- O - ;;; Select object/<None>: (RETURN)
& u3 q) L7 G* J& i- G - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 8 S. i' l* e2 y$ q
- ;;;
& y1 v$ K# N0 M! {: |( E3 P2 y - ;;; Pressing RETURN at the initial prompt gives you a null selection
$ Q( K7 N7 I" B - ;;; mechanism just as (ssx) did in Release 10, but you may select an
, K2 l, v4 T1 {8 R& I7 m - ;;; entity if you desire. If you do so, then the list of valid types
) w1 m) [$ G# a9 n: v+ f6 J7 l - ;;; allowed by (ssget "x") are presented on the command line.
4 p5 k1 \( f. B& u4 s - ;;; + b9 X9 p1 V0 v8 s" x6 n$ B
- ;;; Select object/<None>: (a LINE selected)
: N1 Z3 S3 B. C, z" F' a" x+ {) o, w - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
* n9 T6 c4 ?8 o; w" L# M - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
" H" y# ~; |, x9 E' K# x' e+ l - ;;; v6 {$ a! y* c/ Y; F6 X% I; ~
- ;;; At this point any of these filters may be removed by selecting the
& k$ f0 F: W( R/ B - ;;; option keyword, then pressing RETURN.
$ S: _" `2 Z5 M- D- _' \ - ;;; ' [. }0 J: v0 U+ S& r- n F+ i
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
2 k' k% H& \3 u' B" J4 h! i - ;;;
* {8 C3 |% A% v- Q: x+ O8 m - ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
, j# T1 M1 ^; _" W1 ]3 c( ^ - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
. L: r0 |8 v1 x7 L& g - ;;; - v% m# U/ d9 c5 I
- ;;; If an item exists in the filter list and you elect to add a new item,
2 V6 u: `) Z6 N) T - ;;; the old value is overwritten by the new value, as you can have only ) E. K, f6 u, _1 N4 B% ?
- ;;; one of each type in a single (ssget "x") call.& s" b1 F% F% Z" f* Q2 Q3 a% G; P
- ;;;
; v% `7 A% m9 ~0 ]( d* z$ \ - ;;;--------------------------------------------------------------------------;9 n' p6 u% p8 P }) Y
- ;;;. G" j7 c2 M. J
- ;;; Find the dotted pairs that are valid filters for ssget
; e, ]' Q7 _$ N+ d/ v/ R& o - ;;; in entity named "ent".
& ~ @! _$ Z5 e }2 m& P2 L' w - ;;;
/ w( Y' }1 }6 F# @# C9 @ - ;;; ssx_fe == SSX_Find_Entity
, ~9 ?" f2 [5 ]/ B( b - ;;;
5 z: |3 i' V) j$ a( J8 G6 p - (defun ssx_fe (/ x data fltr ent)
- {' Y2 c1 {4 Y+ S) O - (if (and (= flexvar 1)(/= t2 "Pick"))
( m; P ^$ {8 \; [, r - (setq ent nil)
R# q2 d# a; }0 p/ d+ G- j" Y - (setq ent (car (entsel "\nSelect object/<None>: ")))
2 \: m l6 P2 g E - )1 T* `' i9 }7 J/ X
- (if ent0 G3 I7 w- J$ f
- (progn
) j! ?/ X1 Y/ f; v' I6 m - (setq data (entget ent))
5 K1 ^; L' R2 _& \5 W* A# `0 q1 x - (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
5 E0 G! Y& y5 M3 k - (if (assoc x data)) c* g% A8 g% B; P
- (setq fltr 8 L$ P7 p) V5 |' q: U$ i0 b
- (cons (assoc x data) fltr)
3 i& Z/ Q& ?* g0 A& v# i% N - )
9 P; m' h( t( t. d9 }1 p1 @ - )
: S+ ~: p; ~1 }4 M2 H6 l$ {3 X - ) ; W7 P: J2 S8 K+ u# S% {* ~- S
- (reverse fltr)
) Y' V; }8 s8 {) R3 o: e4 b* D7 J - )0 `* z n$ h' T g" z9 j
- )
0 G$ D) F" v1 J4 P$ ]2 Y% H4 Z7 |8 } - )
3 l+ s/ I# N- V) a0 ` - ;;;
8 x6 t% q0 n3 c {3 g& g - ;;; Remove "element" from "alist".
+ r5 v/ U& o- d1 } - ;;;
" J' J- b3 b- V$ @* p - ;;; ssx_re == SSX_Remove_Element9 @4 i3 h1 V4 q8 \1 ^3 i& _
- ;;;
9 i, }# z' P- C1 O' h4 e( x - (defun ssx_re (element alist)9 r3 p }* }5 v4 z$ e4 |- W9 j
- (append
4 |2 P; X& D: x9 Z7 y: [ - (reverse (cdr (member element (reverse alist))))
}& I1 v0 }+ R' z - (cdr (member element alist)) 6 J5 ?0 b% u7 l2 K! r
- )- Q% T. C. e: E- M( [- C% c8 W' P- `
- ); A5 @" Y" u- C- H5 j
- ;;;
4 X- K& O1 V0 h! k - ;;; INTERNAL ERROR HANDLER ) G6 f, D9 x4 i9 K n
- ;;;9 x+ x; K* w8 c. a7 e
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
2 L. E' k# Q' `% Z6 j - ; while this command is active...1 f- }& I X) e, e
- (if (/= s "Function cancelled")
* y# K# c. v" o& s: y - (princ (strcat "\nError: " s))( ?( ?/ C+ f, e% t+ U+ s; }
- )
+ L2 f% {% `! Q+ M/ a; W* k) {4 m - (if olderr (setq *error* olderr)) ; Restore old *error* handler
7 N) W$ i6 R/ {4 s: y - (setq flexvar 0)/ U' b" t+ r/ r* z( s* C3 f8 }' ?
- (princ)$ y/ ~2 y) B# Z& j) y; F4 D
- )$ y0 N( |( G# o* X/ v# `3 C
- ;;;
# q: A% _9 K; _" v& a' R - ;;; Flexicon call routine& i4 h- d6 R9 g# V& Q$ B( [4 X
- ;;;3 x; C% K0 M* _& T3 m
- (defun flexmnu (a)
# h6 J4 u9 G. M" T4 z& B ~/ o - (if (= flexvar 1)- ` ?6 T$ s8 P( h
- (command "FLEXICON" (strcat "FLEX" a))7 l4 ^) ~& Z# ~, |
- )- W9 m7 `) o% F! H) \
- )9 h9 ^" @. q0 v: a( F8 H* p
- + M2 E! I4 H9 p# T, _' ~
- ;;; " `; W* r# @5 P. q$ X- U! ^
- ;;; Get the filtered sel-set.5 O9 c9 K& O" D- ]; h4 s7 A) l
- ;;;0 v l, o# k K; L
- ;;;
: d/ k- [) a/ N+ g1 X - (defun ssx (/ olderr)' c: E2 `2 ~0 N% _+ s) u9 S% Y8 Q
- (gc) ; close any sel-sets / J5 j; n ~' G r) q
- (setq olderr *error* $ T4 l$ Y8 E0 z# `
- *error* ssx_er + U A9 {5 [* t, ]' r
- )/ l; B1 A, Q2 e$ i- n' w/ N
- (setq fltr (ssx_fe)) 7 v6 y% d: i3 f1 \7 ^, @
- (ssx_gf fltr) 7 q5 }% x, N0 F7 R; q! ~" o x( H
- (if (= flexvar 1)
8 N. y$ H' c) l3 X+ A - (progn3 @. h) a5 G. w
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
; c# |8 \8 T* O - (flexmnu "EDIT")
# w) D7 V( }: R1 u - )' h( ]0 `) l6 ]# X5 j
- (command "p")$ _/ G3 i3 M. x8 T
- )6 T1 ~, r5 n' m- s9 t0 J+ A y
- (princ) r9 d+ w7 ]! H8 d E
- )0 i% ?" s/ k# a
- ;;;
: T0 U) j6 `; j7 v h# d9 z - ;;; Build the filter list up by picking, selecting an item to add,
$ @) ]% a( m* G( S J - ;;; or remove an item from the list by selecting it and pressing RETURN.
, [$ h, w0 A! B. b% f( F - ;;;
3 Y1 M3 l6 E" [+ I! Y5 C# F4 H8 H - ;;; ssx_gf == SSX_Get_Filters, u# d9 W( Z- e6 A& V
- ;;;
$ u9 Z+ I+ s3 K( e - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
5 `6 j: z: S# T - (while
! N5 W8 b( |. D, F - (progn
: U- o6 i8 |/ W( J% ]8 R - (flexmnu "SSX")% K4 V- `# m2 B
- (cond (f1 (prompt "\nFilter: ") (prin1 f1))) W: F0 v8 |1 ^+ e* u
- (initget ( ?* K3 O: d& i! \1 X6 p, L
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector"). \( o b# o3 n$ ~* a2 r0 P
- (setq t1 (getkword (strcat
5 k4 w$ S: [! ]3 I4 | - "\n>>Block name/Color/Entity/Flag/"
8 Y' E. \5 w/ ?% K7 m# i# G6 D6 _ - "LAyer/LType/Pick/Style/Thickness/Vector: ")))
+ V8 {6 \2 M$ t9 f' A - )8 W; a9 c* l D9 t/ N$ j
- (setq t2
+ |& o9 K1 }. j: P) ^ - (cond: S5 d% U F9 Y1 I5 W0 _# N
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)" m# K6 u* [5 p. ?4 ~
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
9 ?+ x0 f) W8 @0 t+ q - ((eq t1 "LType") 6) ((eq t1 "Style") 7)- ^0 ^& Z+ m8 v. s9 L, u
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
, j' H1 j3 P- d6 T4 F( s* D1 z; p - ((eq t1 "Vector") 210)% q5 t* G0 I9 z; v/ O% D
- (T t1). i" I5 k2 I2 U& @. u i
- )
, r$ Q5 L5 h' V% C: ]$ C - )
' I4 t3 |) b# K% K. u/ W9 r - (setq t38 ~+ M% x2 u% v: o
- (cond4 a$ v2 T4 y1 X% s5 [
- ((= t2 2)& @7 t. Z) q( x
- (if (= flexvar gtads 1): X9 h/ U' ^# v& e
- (progn
; z* K" O6 R, S% I' K2 g1 ?/ _ - (prompt "\n>>Block name to add/<RETURN to remove>: ")
# X: g9 {2 \7 C% E G- ^& M - (gttable "BLOCK")
r7 h0 I& P1 ]7 n& b8 `- v - )
- y' H, ~# i2 f5 j9 b+ M - (getstring "\n>>Block name to add/<RETURN to remove>: ")! _7 R! S& k0 j3 [+ D( s
- )
$ H: s8 P! k; X+ G5 I) F* Y - )6 |/ @/ N( u9 U* {# k) G! ~# E; @& p
- ((= t2 62) (initget 4 "?")+ ?7 w+ h' }- k8 S
- (cond- L. w/ T+ G3 o8 _$ U
- ((or (eq (setq t3 (getint 5 n$ o9 {: e/ y! ]
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
2 O/ p6 k# C$ z S& A _ - (> t3 256))4 L1 I/ |- W( Q7 {/ D
- (ssx_pc) ; Print color values.
; e6 F+ p2 h5 f f' }3 y- h+ N, c - nil
1 H$ t' ?. E. z3 k5 Z- @8 Y" w/ | - )7 R0 b( ?! v" v0 M2 T
- (T/ ]! D% o' R4 t2 T: D: m$ b, C5 Q, a5 ^
- t3 ; Return t3.
# k. N- H( N7 _( k6 |) h - )
. D ^- [ U( ^2 g0 R3 G - )! K" o8 z' H$ v7 e; R
- )
8 r! c# P* L2 g, y5 N [0 Y6 g - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))# M- o" m+ `; @) h6 B
- ((= t2 8)
+ ^% ?+ W3 S& c - (if (= flexvar gtads 1)
6 l* P% X; D( N3 h! ^8 | - (progn/ |+ m$ a: y* R% S: w
- (prompt "\n>>Layer name to add/<RETURN to remove>: "), { m" B2 ~: q \; J2 B* s
- (gttable "LAYER")9 J5 _1 b P" I
- )- N3 J$ Z m; L
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")8 {# d3 p. H" r$ X& w2 \* ~# |
- )
2 w0 k4 L. G8 I/ h6 E% J" f9 e - ): c+ e7 Z9 `% v V
- ((= t2 6)
: Z, U3 M" I% z( h" ? - (if (= flexvar gtads 1)
( m" j9 I3 b0 d5 p C X9 x0 } - (progn
# V- K2 V5 H: c( R - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
u% [: C; g: I3 d. }3 f4 @$ a' m - (gttable "LTYPE")
/ @2 C: U4 ^: |/ S - ): R# ?( g. U0 ~+ F0 A
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")6 q- C4 H" A% u3 ?$ I
- )
- q% }: g( d- `/ t9 V - )- t1 o, |: I- J
- ((= t2 7)
) l. I: ]3 Y3 H7 \/ t - (if (= flexvar gtads 1): n) Q6 B3 ^3 P
- (progn" t8 X0 Q2 L: u0 z( w, p7 t
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
: v- f% i3 a; Q6 ^/ D - (gttable "STYLE")
' i2 t* \. D. ], f# {( F! A2 W1 {) `. I - )
# i. E0 p6 A, d1 t W0 O/ Z - (getstring "\n>>Text style name to add/<RETURN to remove>: ")' D- A7 q# i) k3 W9 V4 g# j7 \
- )
3 v1 |' f$ K6 b, u7 D5 H: q - )
7 r) V. P6 L, Q' N - ((= t2 39)+ h/ `! z8 E8 p: D" F* t8 n
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
+ [6 B) B. E' f# {% L - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))1 ]- `$ G: ? X5 r
- )' I6 ~2 V8 W) s5 }0 k, N
- ((= t2 66) (if (assoc 66 f1) nil 1)): D$ A2 [, Y0 F" K
- ((= t2 210) 3 i* {0 f, |$ }3 g3 t: }. n
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")+ q8 B) V+ R- A0 s; X0 T: l
- )7 `# o8 @1 l _( V0 W! B8 Z
- (T nil)
/ Y% _9 @! V7 C- t* d - )& Q! e/ E8 H! a$ @
- )" m6 Q3 W; d# Z- G! Z
- (cond4 K* K/ }: j: |) {
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity/ W* f! h8 C* z9 o. I
- ((and f1 (assoc t2 f1)) ; already in the list# X3 `! y4 }6 I9 z6 c
- (if (and t3 (/= t3 ""))* _1 v% @* r3 _& d8 U
- ;; Replace with a new value...
8 d9 L4 j' c& R - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
r, a3 Z" x G/ I8 u% d - ;; Remove it from filter list...- H! {* \9 O$ H" Z$ _, z% G
- (setq f1 (ssx_re (assoc t2 f1) f1))
- k' y* C# P3 K; C/ x1 Z0 m( O4 _ - ) " O* `( L, B4 z' ^) \: m
- )
2 W) E1 c; B: b5 `( ]( a' x - ((and t3 (/= t3 ""))# g- _' ~9 T: p: n% J9 e
- (setq f1 (cons (cons t2 t3) f1))4 P; S3 s, O6 Y+ _6 @
- )
/ I; U- T. d9 u/ z+ U. E - (T nil)
7 b0 x1 R0 l/ I0 G& C# t - )( q- i8 x: Q" V/ V& y
- ): X8 R6 R `8 g2 Q( H
- (if f1 (setq f2 (ssget "x" f1))). \8 x7 h( q8 l& n6 @' g
- (setq *error* olderr)
. B- t7 _1 c, _/ h3 m/ ] - (if (and f1 f2) ) l# u& i* J7 E5 P, j, I; P
- (progn
4 x4 v, Y& p% T - (princ (strcat "\n" (itoa (sslength f2)) " found. "))' s* I4 y% |7 x/ i0 y& w
- f2 9 n2 B9 _; A9 }5 C3 p- K7 P2 ~( r( H
- )( s2 V! L, }4 h8 D; X2 Y$ \
- (progn (princ "\n0 found.") (prin1))8 z: J g" e9 b# o$ N
- )* K. G. J" G# [. J4 |
- )7 H% ^8 d' @1 u7 u1 B- f; D
- ;;;" V5 { Z: A9 }( D. r+ V+ V7 |% i, ^
- ;;; Print the standard color assignments.$ f; r! F! u; r& n$ V& M
- ;;;4 N5 V$ Q4 y$ C ?
- ;;;" | r4 k, G3 P2 w4 G. x& j
- (defun ssx_pc ()
2 q3 b7 m7 t& E0 Z, f - (if textpage (textpage) (textscr))
9 g" R9 l' m. p - (princ "\n ")
1 i# S: Q0 Q4 }/ u4 e+ J - (princ "\n Color number | Standard meaning ")
, n7 s2 x* v# {. c9 W - (princ "\n ________________|____________________")3 M$ E, k8 Q3 n0 o
- (princ "\n | ")
+ @1 Z. }3 h( y+ p7 L3 _8 J - (princ "\n 0 | <BYBLOCK> ")6 _! U5 O. d" _/ ~; @2 g
- (princ "\n 1 | Red ")
( s% j6 h1 v4 L" M& s9 R+ k - (princ "\n 2 | Yellow ")
/ U4 F0 v- i, j+ y - (princ "\n 3 | Green ")' U4 J( q: g" U! j8 }+ S, T
- (princ "\n 4 | Cyan ")0 C- ? _6 d# y7 A' a) K1 Y' o
- (princ "\n 5 | Blue ")
- f7 v/ Q3 U9 Y1 Q$ I5 D' O - (princ "\n 6 | Magenta ")
1 d2 Z4 ], a+ J- ~5 |2 W - (princ "\n 7 | White ")+ `; @+ V* l6 t( f( |$ d) D. [2 W
- (princ "\n 8...255 | -Varies- ")
8 k0 q! ]0 Y9 `+ Q: M+ F - (princ "\n 256 | <BYLAYER> ")0 v' c+ ^2 m" s) W! D+ @
- (princ "\n \n\n\n")+ H: ]/ {. Y4 d r: L
- )
3 Q6 w) O! p7 {: d* t( x - ;;;
$ N' y3 H+ `; M - ;;; C: function definition./ }3 M6 k) C/ M$ [" R+ q) ]
- ;;;
7 C( i' c/ S+ w7 l2 Q - (defun c:ssx () (ssx)(princ))
( E, H1 e1 E7 R# [" A( m k - (princ "\n\tType \"ssx\" at a Command: prompt or ")
0 _7 h* u( p& A - (princ "\n\t(ssx) at any object selection prompt. "). H ^8 ^% D. a; e o+ W6 a% D
- (princ)4 F6 k7 x- O X$ [; u" n4 }
6 \ R$ s# [$ i5 W9 Z- ;;;--------------------------------------------------------------------------;; z1 n$ r9 G( m% n, ^+ F
- ;;;--------------------------------------------------------------------------;4 h* s% R G( D! e
- ;;;--------------------------------------------------------------------------;
$ ^1 m3 C& i6 G" d9 o - (defun S::STARTUP ()# Z9 y) l- Y* e/ `8 s. `
- (setvar "cmdecho" 0)! ^) v- X4 d* T0 A4 R
- (setvar "cmdecho" 1)
& _. d8 e* r9 v" |+ W" w2 Y3 p8 Y6 C - (setvar "LTSCALE" 10)0 D4 t* f( p$ l. ?# r+ ]: p
- ' D: `2 H" ^5 S. Q4 b0 ~
- ;(command "_load" "chenKH.fas")! h# @7 i9 ]) D* T, g8 D. p" A
- ;(command "_load" "ctcot.fas")! U& R2 G3 u, M
- ;(command "_load" "damdoc.fas")
5 U% ]9 M7 g# X6 X g" V* _% ^ - ;(command "_load" "ghichu.fas")
/ o; S7 j7 s9 x - ;(command "_load" "hamtutao.lsp")
1 K: b/ {) v+ H0 l6 T - ;(command "_load" "KHOITAO.fas")
: C+ Q5 g" \5 O/ v0 Q0 z - ;(command "_load" "KHthep.fas")
2 M- |/ y& v) Y$ B2 A/ @ - ;(command "_load" "mbmong.dcl")
( I5 D3 T1 X* Z9 U$ M( A5 K8 l - ;(command "_load" "mbmong.fas")1 }4 v5 A# j' g5 S4 u
- ;(command "_load" "mccot.fas")
) `4 c R1 ?0 i0 e! [2 V - ;(command "_load" "mcdam.fas")
3 S( n/ b% C+ I. Y& E3 E - ;(command "_load" "mcmong1.dcl")$ q0 ?6 T0 @; m4 |- J
- ;(command "_load" "mcmong1.fas")- O1 T! o, Z9 o8 j
- ;(command "_load" "mcmong2.dcl")
( ~3 Z) Z7 j: j7 X - ;(command "_load" "mcmong2.fas")
4 U o( ~* J( q, d, d - ;(command "_load" "mcmong3.dcl")
9 ]0 d7 J$ D" R# `1 j1 m - ;(command "_load" "mcmong3.fas")$ r3 \2 n6 y( l8 z; `5 ^
- ;(command "_load" "mcsan.fas"). _0 E2 o2 v7 ?. [6 P5 B
- ;(command "_load" "thepdai.fas")+ i* u j$ a" S
- ;(command "_load" "thepdoc.fas")8 A w- P2 ]+ F2 }" e' ?( C
- ;(command "_load" "thepmb.fas")9 W2 u# o/ {: k' Y) D& ]
- ;(command "_load" "thepphbo.fas")
9 b; @3 ]6 @' L+ J& J - (command "_script" "thongso.scr")$ M9 R: F7 k8 j
- ;(command "_load" "thongso1.dcl")
6 [$ v4 a$ O1 R+ k( ^ - ;(command "_load" "thongso1.fas")
* q- F( I1 P3 o6 L# K3 o' ^ - ;(command "_load" "thongso2.dcl")
+ z0 w! |, ]' x) [2 i8 l! n - ;(command "_load" "thongso2.fas")
5 i$ c% C, w* e$ l+ h. k/ I! [ - ;(command "_load" "tietdien.fas")4 U: \- u: y% y* _8 U; j0 v2 X' s
- ;(command "_load" "vehan.fas")
8 N. b8 k Z3 y Y - (command "_load" "phamDuy782006_TKT.lsp")
8 P K8 E# p, Z - (command "_load" "phamduy782006ganhtd.lsp")
: ^/ ^1 X% W/ M$ ~. l4 {1 H - (command "_load" "phamduy782006ganhtds.lsp") V& q, G \1 F1 v8 a; }
- (command "_load" "phamduy782006htd.dcl")
8 ^) v) `+ E3 [5 m6 } - (princ)4 T. N- G. @; t2 a( j) o1 R
- )
- v" W/ B' q& E3 p
& k9 s, a) i- d5 o8 Z1 w3 k. |- ;; Silent load.
5 v5 }% M- f# I ?/ M }! H, i O, m( f - (princ) v( ~- Q4 G# P! Y( a4 J
- & }5 _7 v# ?- D4 w6 L( {1 A% V) {
/ }0 m, A0 d$ d6 y# Z- ;; Silent load for the Express Tools.
# {- h" z/ G3 f - ;; Altering this line will affect Express Tools functionality
4 K ?' v1 o3 [# l - (load "acettest.fas" (princ))
' `: l1 U. h* Q: X9 W3 o" G - �32
Sao chép mã 8 e6 c, n/ h' K) `6 \& i1 r: r, V+ y
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
; ^1 I/ P2 E" {$ I |
|