|
|
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 |
- ********************************************************************************
9 A1 q! R% u+ Y* h& {& {: r, w - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *: ], q' Q( D8 r& C1 D& y
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
0 D) I! ~; `3 a - * Suu tam & Soan *
! e0 b' l, a; c y( \7 f6 Q - ********************************************************************************
; E. Q. \. U p7 D3 M - / {3 q4 D5 B" I8 F
- ; Next available MSG number is 104' t& D. U0 ]* J- r/ f% l
- ; MODULE_ID ACAD2000doc_LSP_
/ ~2 [ l) p% F3 e* v5 I. j - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000! u0 N4 b$ ?' ~, x( m
- ;;;: v3 e7 q* R' E& n
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.5 p1 _. H8 H5 o! k
- ;;;
& B' X; ^+ J: j9 O7 Q - ;;; Permission to use, copy, modify, and distribute this software# }" G0 k' r9 B, N2 d E8 B
- ;;; for any purpose and without fee is hereby granted, provided* P' q" V, |3 P
- ;;; that the above copyright notice appears in all copies and* |) G! b3 _! m" M+ o
- ;;; that both that copyright notice and the limited warranty and# \+ ]/ o$ g2 O S
- ;;; restricted rights notice below appear in all supporting
. Z8 u, @4 O* a9 Q3 G9 {& t' V- B - ;;; documentation.' A0 ^* A2 }7 Y5 r( l' B; ?
- ;;;
1 K5 u; g& Z' D' c4 I N - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." n8 ` `% J$ \1 f1 u/ g( H. K
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
; N" s6 \% ?0 d. Z - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.! U) o2 d) p3 s m7 e& ^' H
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE- G6 t% E# Z$ |* j G$ `( K
- ;;; UNINTERRUPTED OR ERROR FREE.4 L4 g% L; r& \# s! E
- ;;;) y5 h6 E5 U" P+ E
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
/ S9 k, X1 m1 ^, {- H0 v! ], b& j) H - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
: n: X$ D- I$ x$ E - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 2 u% M, ?' ~6 a& {+ w3 }- f. H
- ;;; (Rights in Technical Data and Computer Software), as applicable.' Q$ ~2 Y! t$ R# z9 b
- ;;;' |7 Y* E* r$ p b/ V
- ;;;.2 U. H$ V+ `4 |4 d1 }" _
- ;;;) s- b$ h) L' H6 [! J2 K @
- ;;; Note:2 i: w8 ~, C- B9 H3 x
- ;;; This file is loaded automatically by AutoCAD every time 0 _9 ^! m8 y/ l# `
- ;;; a drawing is opened. It establishes an autoloader and
1 M5 K+ e! \2 c/ L9 u: F7 K - ;;; other utility functions.
" ?3 ?* i7 U# k# ]( v. U3 a - ;;;3 M# h6 D% ]( ?, K' g
- ;;; Globalization Note: / L) R6 m' A" R/ G/ P
- ;;; We do not support autoloading applications by the native
& S6 B3 w9 `* p' K - ;;; language command call (e.g. with the leading underscore
. H! r g2 }/ O2 k - ;;; mechanism.)
9 w$ j6 T8 }, Y8 s. d `9 g
8 M [ m1 n. r2 J2 ^
2 Y" [* z4 G' R- ;;;===== Raster Image Support for Clipboard Paste Special =====
^" n4 z) }6 p7 |3 \* S4 C - ;;
% G" l2 S! n @ - ;; IMAGEFILE
% u) M! W+ B8 J5 y W5 ]6 I - ;;4 I4 J! B9 o0 Y1 c. @
- ;; Allow the IMAGE command to accept an image file name without# v" p, ^; |/ a
- ;; presenting the file dialog, even if filedia is on.
& b$ K* m5 `9 X( \0 } - ;; Example: (imagefile "c:/images/house.bmp")
* y. ^# Z ]1 ]1 {/ R; a# x - ;;, \% X+ l2 @7 [$ P) K( [5 V3 P
- (defun imagefile (filename / filedia-save cmdecho-save), ^, r/ c6 i% V$ E1 p W9 s
- (setq filedia-save (getvar "FILEDIA"))
0 W2 @4 q8 P1 j+ @+ i% p7 Z3 ] - (setq cmdecho-save (getvar "CMDECHO"))
$ ?$ e' q, d3 o; A# L - (setvar "FILEDIA" 0)
. ?. R/ l: f7 r7 F - (setvar "CMDECHO" 0)3 ~3 t7 r1 {5 H1 _
- (command "_.-image" "_attach" filename)% y( c; ]0 I K# t
- (setvar "FILEDIA" filedia-save); S3 D3 e! R# I6 ?% L. ?% @9 N
- (setvar "CMDECHO" cmdecho-save)
8 _5 }) {! E+ ^& b1 V4 g- J - (princ)
1 I; e4 Q9 z) V5 Y$ ~! _: u# Z - )
8 H7 p; K, F+ \1 G2 K
5 r9 S- D. Y3 k+ K' U V: q2 K- (defun c:zx () (command "zoom" ".5x"))
3 t: [1 B7 a( E6 x - (defun c:zz () (command "zoom" "p"))" }& D) S, R0 f0 U. |; K
- (defun c:za () (command "zoom" "a"))
! Q% w/ j) K* y! N. l+ a - (defun c:zd () (command "zoom" "d"))1 t2 T+ |! U& P- k& b
- (defun c:ze () (command "zoom" "e"))0 o7 W- c# w6 u3 r8 ]
- (defun c:zr () (command "zoom" "" ""))! r2 j3 ?' v3 X( X2 ?
- (defun c:vv () (command "ucs" "v"))
( L; G" S% ]! @& M! j \0 C - (defun c:co () (ssget) (command "copy" "p" "" "m")) K: U4 o* h' }5 Y1 M' c
- (defun c:c () (command "circle"))* v6 J1 Q) @$ a1 C
- (defun c:rt () (command "rotate"))
' `" [0 n( _* {; ]8 y- j! e7 C" y( V - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))! r. O$ a% p# m2 f) `
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))6 S& [! Z3 V H/ [8 Q/ Y, q' Z7 y
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
+ Q* ]6 l$ e1 E/ x2 Q - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))! r( k, Z5 v8 t# l" l" R
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))3 k; B. _; B x* {5 b0 E8 ]6 [
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))2 a" ~+ b" O$ Q# i# {7 g
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
" T* r0 q1 I5 K8 i6 W - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))3 R0 N- @. X) K! P2 Z( T
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
* N5 B' h0 `4 {' T+ } - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45")): z* l& J% `0 E1 u" x- {
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))( g) J+ a$ b+ P, u
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
2 v6 K4 H0 h$ k) j - (defun c:fd () (command "find" "p" "" )(princ))(princ); w5 ~7 ^+ _5 E/ n& g7 B; Z
! T! }: J& ?+ ]; r- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
. C' @( J$ m5 C9 Y* W% |* n - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
' B+ z; e/ x! P# I; y" P - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
* l. A. [* n' k+ Y4 }1 c. F - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)4 ]# |( {# ]; l7 i9 S
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))* Y* n- F3 `1 f" W6 I0 q, m+ Y
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
0 P1 h- z1 k' G - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
( n$ Y& F' T4 F9 o7 V% a) K& U
0 W" u4 `. y9 i% X) b- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
9 g3 V- |5 y! F' l - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))$ P. W. r& A$ [" n6 e$ f4 |. W) }
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))- ?( F6 l* ?4 j/ I0 f# [5 r1 Y( u
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))$ d8 r, i( K& K! `- r; h
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
' ?2 @0 W* j0 _' J& Q" B' G. W - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n")): T# Y: }: [4 t4 ^4 {* I2 v7 W
- ! j( ]# a8 }0 R! L. r% ]3 q
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
& h: L1 P' [) L. U5 R7 a% p
' [6 k7 H7 Q% b* l6 C# J$ Z- ;free lisp by cadviet,cd2k44
( C0 v! q/ V- Q; F/ j3 l5 { - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830& r8 ^* u0 E* I; u7 w
- (defun c:FTEXT (/ ent tstyle ); ?- K: P& _) ]% B$ C# N% C
- (command "undo" "be")
& o2 [6 H# }# y5 e. d - (setq ent (entsel "\n Pick text :"))
2 Q: g0 k9 \2 D( A5 Q - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))5 Q# t& P6 Q, I+ ~9 f
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
4 ]# L- C1 T( a& a6 ]4 w - (setvar "TEXTSTYLE" Tstyle)4 m9 N4 s' T+ d. W+ q; r% w2 u" I
- (command "undo" "end")6 ?1 D. g( y$ e8 n0 }/ r3 X
- )
) [! a0 L5 Y0 L - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)4 L2 _% q4 u8 e
) z- v3 j2 P. x+ m" i% M$ {- ;free lisp by cadviet,cd2k44
" V0 m' Y6 _/ E2 t$ g5 | - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
- Y5 B- G* O- n' V6 ?2 I - (defun c:Fvnh (/ ent tstyle )! t* s: o! b; w# `$ }5 x
- (command "undo" "be")
# b) M) n7 g* b: D# L - (setq ent (entsel "\n Pick text :"))
; f) J j. K" Y9 H& ]3 a - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
2 h4 R+ }7 M6 H5 n0 I - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
' n+ j: ?' O$ H2 R - (setvar "TEXTSTYLE" Tstyle): X1 C5 J0 a5 y2 {$ v: ~1 W" H
- (command "undo" "end")1 F6 {3 W6 [% ~8 Y
- ). T* P9 ]$ l( c$ [& Q( q% r% ~9 P. e% n0 ~
- , d* W/ X# ^& S& {. g
- ;free lisp by cadviet,cd2k44& Q* h* S, b8 ~+ _) R4 X
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538304 ~6 `4 C# G t* @7 f
- (defun c:Chbg (/ ent tstyle )
8 I$ o7 r @) U2 { - (command "undo" "be")" R1 P8 a3 x# O; [1 ]+ ^; l
- (setq ent (entsel "\n Pick text :"))
; N( y& i1 G0 D# p& e9 h1 P - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
& _( a, X! ^ k' s1 P: x; L - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n"). ]$ [# Y0 s8 k) \9 C
- (setvar "TEXTSTYLE" Tstyle)$ u* J* e6 j1 P3 y, [% W3 ^7 N. Q
- (command "undo" "end"); p/ P! i& ^/ o
- )/ P, ?$ |' p) {' P
. j6 i& d m3 r$ R2 ?- ;free lisp by cadviet,cd2k44/ ~1 K5 u6 y% \, @: X M+ [% u
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830 D/ _# c' \4 T* w2 C
- (defun c:Chsm (/ ent tstyle )/ s' w( z$ R* ?
- (command "undo" "be")
' y$ o# [, U6 o' E$ m; Z - (setq ent (entsel "\n Pick text :"))/ M* }7 d9 m1 S) w
- (setq TSTYLE (cdr (assoc 7 (entget (car ent))))); f: A: P& ?4 ^: K
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
4 i8 q! K& @3 e; y. T! q - (setvar "TEXTSTYLE" Tstyle)2 G2 \4 q8 }0 n' e# i
- (command "undo" "end")* ]1 }. _# n) R4 i' r
- )
" V4 b1 ]! |- ?4 c - t6 {; R( }& D- q* d: z
- ;free lisp by cadviet,cd2k44
9 P5 F1 R' M# `8 C, M - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
+ ~4 x! L9 j( `& R' b- Z - (defun c:Fttf (/ ent tstyle )
1 i) `& i/ b8 Y! n) u* J g - (command "undo" "be")
; N- p# N. N. S; n) ~* [6 m - (setq ent (entsel "\n Pick text :"))
. j+ b- o% h2 _- [ - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))), @7 s' P' q- u8 s- _9 ~
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
) d: g3 Z% r( h* _5 a0 L* m - (setvar "TEXTSTYLE" Tstyle)* k: n$ F, I$ d- s: w* w4 h
- (command "undo" "end")
+ J1 E# P( T) i1 ^6 N; c I/ f* @5 ] - )* Y3 Z' t0 q' m/ j5 T2 F
4 A" P# j5 D8 a! _1 d, N0 o8 t( k0 @) t- ;;; ============================================+ e! U9 N2 ~5 r: k6 C
- ;;;) [8 A- |8 @2 _$ N+ d9 `5 ]3 N
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000$ T7 `0 K; \8 i$ S
- ;;;
; T4 S5 [" b4 O% Q( s2 V3 ], P - ;;; ============================================$ p# m* m& J6 V2 F/ `( a5 t5 U
4 C, N$ w$ H# n: e7 s8 n' X/ ?- ;;; ============================================+ ^' ^9 ?7 t6 q" r6 A. k2 M
- ;;;: U: w$ A" L2 e
- ;;; CREATING FROM AUTOCAD2000
3 l, z* W/ T: V' u7 w. B& s! C - ;;;/ E9 O! L" {6 U4 f& W- X7 j
- ;;; ============================================
" w5 z3 q$ e" ]; v
1 i, p% j u Z, R9 p- (setvar "INSUNITS"4)$ v2 I1 \9 Q0 P
- (setvar "ANGBASE"0)
% E' e9 D% q/ _3 _/ K. x - (setvar "ANGDIR"0)
" b C; S$ l9 Q - (setvar "AUNITS"0)9 K3 ]3 i3 G- {: `( L
- (setvar "AUPREC"8)
! s+ k7 d* H5 Y6 D( \; @5 g - (setvar "LUNITS"2)
& V* K7 Z4 p6 G5 N& _$ i8 O - (setvar "LUPREC"8)7 T6 l# w k& b+ M# l M
- (setvar "ACADLSPASDOC"1) - o6 `# F: O3 }: }
- (setvar "pickbox"5)
3 }/ ?+ J9 l4 K! p - (setvar "blipmode"0): [8 p! Y/ e+ e4 @9 [
- (setvar "mirrtext"0). Z* Y' Q$ O$ b/ _7 ?
- (setvar "cursorsize"100)+ A' Z: V+ W1 s9 J. p; R {
- (setvar "ZOOMFACTOR"75)
) B: o6 O+ C& s7 V- d }( x" T - (setvar "LTSCALE" 10)9 O+ F$ x7 E8 j* Z4 B# h
- (setvar "lwunits"1)
, V9 K f7 r, n9 T - (setvar "DIMBLK" "Closed")% c# A9 b U( T* O2 v
- (setvar "DIMGAP"0.0693)
2 ~6 o @" F& X - (setvar "DIMASZ"0.20)3 K) G, B) A0 E# }
- (setvar "DIMCEN"0.2)7 B. ^ b L+ g. _1 O X9 `) `
- (setvar "DIMDLI"0.1)
* F, E, `2 N5 C7 A9 E R - (setvar "DIMEXE"0.0693)
" d7 h6 s, s6 r" Q5 r - (setvar "DIMEXO"0.25)1 P* F1 u- P7 X6 n
- (setvar "DIMDEC"0): t4 T# e0 r+ V% N ^: @' Q
- (setvar "DIMTIX" 1)
: w/ Z# `! V7 S+ E* J - (setvar "DIMTXT" 0.099) U' Y- g/ j4 R8 y+ k/ i; V" `
- (setvar "DIMCLRT" 7), y2 T p' r$ u, H1 m* z x* J+ F$ g
- (setvar "DIMTVP" 1)) q+ W; `" u7 Y% A
- (setvar "DIMJUST" 0)
: l5 }+ |) p" B0 g) @: \* C - (setvar "DIMTIH" 0)1 h3 W" i Y3 R. I
- (setvar "DIMTOFL" 1)
v# ~1 r# R3 i: V2 }! O - (setvar "DIMSCALE" 1111.1111)) ] E! ?4 b B9 M1 j# o# m0 u
- 1 K0 Y( O8 Y% e6 S
$ i: r) o" {5 b
1 A* E. i, n3 `; `- (defun c:zp () (command "'.zoom" "p"))
2 g) `7 n" L% c# I$ t - (defun c:zz () (command "'.zoom" "p"))) V; u. @% b0 J- O/ f3 V
- (defun c:ze () (command "'.zoom" "e"))
# w6 M1 e4 n0 H j" x6 X - (defun c:za () (command "'.zoom" "a"))
& U4 d; C$ C, I- c - (defun c:zd () (command "'.zoom" "d"))
n) q; G9 y+ [+ p( b; T8 L - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))# g$ x& |; Z; X( ?
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
. `' Z# l1 L O% U+ g. W$ o - (defun c:de () (command "ddedit")(princ))
+ o; Z" t( Q: e1 ` - (defun c:dda () (command "Dimaligned"))
, E4 B# D% f0 [6 p; j% D - (defun c:ddb () (command "Dimabaseline"))
6 k2 y8 ~8 c7 k3 B/ @; ~- F3 e - (defun c:ddc () (command "Dimcontinue"))
% A8 i) S/ [& }/ A0 a, r - (defun c:dde () (command "Dimtedit"))
: Q6 M2 X5 h: y9 d% u# q( r - (defun c:ddf () (command "Ddattdef"))# a1 G0 `& i- L1 e; \8 g
- (defun c:ddi () (command "Dimdiameter"))$ B, X, t; J3 Z7 T4 H8 ?
- (defun c:ddl () (command "Dimlinear"))
( }# E) j3 r4 z - (defun c:ddn () (command "Dimangular")): i- n, e0 a1 X( _$ ~5 f$ Q
- (defun c:ddo () (command "Dimordinate"))9 f c; p1 }5 J
- (defun c:ddr () (command "Dimradius"))
/ H, m, U" ~) m - (defun c:dds () (command "Dimstyle"))5 ]5 `+ ~7 M5 X% L( g# S
' e( e7 m# Y r+ a- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ); v8 O- ?1 X" T2 ^% D
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)5 J" h! B6 M( a c( u
- (defun c:UU () (command "dim1""update""all"))
% R. x3 r+ x* C F% X - (defun c:ded() (command "dim1""tedit"))
0 m5 X+ ?. [& A2 e1 o$ R - (defun c:da () (command "dim1""ali"))
5 I: W. b3 K1 e% B' x - (defun c:dll() (command "dim1""l"))/ b/ I% m1 T6 P8 ]
- (defun c:dan() (command "dim1""an"))
6 ?$ P2 d0 V" a' j" h& D9 z' K - (defun c:d1 () (command "dim1""ra"))
2 R. L9 R, Q7 G A - (defun c:n () (command "dim1""new"))+ k2 K4 Z8 I, C) W* D7 m) u# C
! P* w1 S! w4 S$ v9 ^8 E- (DEFUN C:PE () (COMMAND "PEDIT")); G, M1 C9 |! I; U* p7 ` S
- (DEFUN C:PL () (COMMAND "PLINE"))) o' u) W+ H2 ^1 ?# ~/ Z
- (defun c:dd () (command "dist")(princ))1 J2 }# G8 K2 h$ x5 |7 k, Q5 V
- (defun c:w () (command "pedit" pause "w" "au")(princ))
; [1 P. \6 {$ A( x. J4 [; c2 b9 \ - (defun c:pg () (command "polygon" "polygon"))
( z9 _7 L( ~( M5 X* @, x W: O - (defun c:el () (command "ellipse"))2 v1 p5 a) U2 e
- (defun c:xe () (command "explode")) f' d. `, B+ }" X2 {. g: G6 R9 W6 ^
- (defun c:eex () (command "extrude"))0 @1 S/ l% ?2 M0 s; ^4 j/ i2 X
- (defun c:xg () (command "xline""a"))4 R3 n4 q( {$ S% q
- (defun c:xh () (command "xline""h")) `2 G, T0 A8 a S" k2 N' j- k
- (defun c:xv () (command "xline""v"))
4 t$ L2 Y) H: _. ?1 R- ^) _
: B# P) b/ S. t4 S- (defun c:oc () (command "osnap""cen"))+ h+ q1 |0 r+ Z% o! A/ W- w. i4 A
- (defun c:od () (command "osnap""nod"))/ F+ m5 {4 D. {- ]
- (defun c:oe () (command "osnap""end"))0 P/ v. z+ T& f8 ], ^- u* w+ [9 v
- (defun c:oi () (command "osnap""int"))
! t1 \- b' i( |, V/ o {; n* g, s0 g - (defun c:or () (command "osnap""per"))2 Q5 j" P6 z3 D" C. L) L5 m
- (defun c:on () (command "osnap""none"))& H: u3 Z# \, U4 u5 F/ f9 B$ a
- (defun c:oq () (command "osnap""qua")), _0 O! P- g: s' W, l) l
- (defun c:om () (command "osnap""mid"))9 B6 g( M3 ]+ Z* C$ |' x
- (defun c:ot () (command "osnap""tan"))
5 d; _& B0 N. g' D/ Y. ? - (defun c:oin () (command "osnap""ins"))
x* X, d9 L0 ]0 {$ U( c. h8 p; d0 n - (defun c:oa () (command "osnap""nea"))( E7 P& Y* i4 r
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
! B5 h# ?8 j6 R! a% Z8 Y, v - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))1 x' V( Y7 v) I0 s( R* D
- ;(defun c:nn () (command "new" "y" ))$ ], y/ o% |3 Y* I. j \
1 B% @+ l0 n, I; j- (defun c:/ () (command "limits"))
/ ~ d5 [ z+ q# ]5 j: ^8 e - (defun c:`1 () (command "region"))
" h- ]0 W1 c# a% O( r - (defun c:`2 () (command "subtract"))5 U* J6 t; B- {2 O' t
- (defun c:`3 () (command "union"))
8 c2 o( ]2 \. X6 r - (defun c:`4 () (command "intersect"))
' H/ n( R4 b: H5 [ - (defun c:`c () (command "cal"))
! q$ D# @2 B' r2 z% M5 W - (defun c:`g () (command "Polygon")) ^( g' z1 r5 |8 p" }- L
9 o8 `6 L ]& Q6 i- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))8 n2 L7 K/ S+ v2 [: h: i1 ?
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ)); k* M$ W, m: S
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)4 f4 u6 y @2 }( R5 J# r1 ?
- r5 D% A! |8 H$ u4 ]7 ` `- (defun c:ddm () (command "ddlmodes" pause))9 g4 ^# X( O) m" M7 J
" D% n/ `# k+ O @. T3 r- (defun c:sha () (command "shade" pause))
% h- ~7 U; A; t5 d& O' i+ j, C W - ' P- u! Z+ r% L3 D' p% \% S% _4 c
- (defun c:sr1 () (command "surftab1" "p" "" pause)). C4 |- b& k- I2 i
- (defun c:sr2 () (command "surftab2" "p" "" pause))+ I& Y1 M. o- L7 K4 e) c$ E/ j
: B9 J0 }3 ^# t2 f0 b7 m8 x$ B- (defun c:ad () (command "audit""y"))" i; R( U1 b" ]; M6 ~ f) h
- (defun c:q () (command "quit"))
# B% z7 q" f# s3 W: l - ( M# Y% P7 }+ `
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
+ K. G$ T; _9 D v( V' X# B - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
! j) J5 R- G" m V, J1 R - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
; G8 h c' \( v* j" i% m3 ? - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
* w' s" Y% m) n1 B/ j: F, J. p - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))! t# H6 b ^; q7 k D2 g2 _
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))$ S p+ \6 M5 t; I
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))# L6 p7 P% d! p7 K: d% _
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
+ l H6 c8 N! a5 e5 q - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))2 o; I% R) t6 ~/ m0 K; B9 q
9 \- s, F& p. @$ d& q8 f$ n1 v- (defun c:u3 () (command "ucs""3"))
, T6 s" q2 ?, i- B1 j+ X - (defun c:ue () (command "ucs""o""end"))5 `% Z/ p8 R/ G$ }. \2 t
- (defun c:ui () (command "ucs""o""int"))0 a' D, S0 U+ C4 s
- (defun c:um () (command "ucs""o""mid"))
% i* c Z$ V# V- h - (defun c:uc () (command "ucs""o""cen"))5 `( ]7 T7 I% m6 s0 q. @
- (defun c:uq () (command "ucs""o""qua"))# \8 u0 j9 o0 P. L* @: P0 r, S
- (defun c:3s () (command "ucs""3"))
7 j3 j( b" C# i7 k; Q - (defun c:sx () (command "ucs""s"))
5 c$ @, b: X# Z6 r l T `. {0 w - (defun c:sf () (command "ucs""o"))1 Y4 y* n8 I; w# ?
- (defun c:sz () (command "ucs""p"))
2 ~. t5 v! S8 P' E$ ?0 T: l - (defun c:sr () (command "ucs""r"))0 G: U9 }- L" M$ F+ I8 B9 J: m4 [9 j6 O6 t
- (defun c:sw () (command "ucs""w"))1 B0 I/ y3 r5 ^: j1 s: l
- (defun c:fv () (command "ucs""v"))
9 l2 M+ r) j! _6 V; ^4 T3 t - (defun c:ux () (command "ucs""x"))/ `' _0 C. A' d! K! y
- (defun c:uux () (command "ucs""x""90"))
4 V3 ]. f' `# K- b& M - (defun c:xxu () (command "ucs""x""-90"))7 n3 m, v1 Q8 v3 Z6 ?
- (defun c:uy () (command "ucs""y"))! f3 R f# L T
- (defun c:uuy () (command "ucs""y""90")); m7 R3 g" w! i2 b* {3 `
- (defun c:yyu () (command "ucs""y""-90"))
: n9 Z6 _( x, K3 f5 F8 K& J - (defun c:uz () (command "ucs""z"))
# o9 R3 ]2 H: s( V7 M+ o - (defun c:uuz () (command "ucs""z""90"))% C- @ x1 ^7 P+ o2 w( s
- (defun c:zzu () (command "ucs""z""-90"))2 ]4 \3 Q1 {( ^; ]2 v
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)/ G) J1 j! w. X; b
- (defun c:ucm () (command "ucsman" ))(princ)4 u" @& C$ K4 n4 r9 R B% x
- " Y, |9 D. t. J; K. Y0 \7 ^% {
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
' a5 J/ w9 H* y) ^ - (defun c:sd () (command "vpoint""_non""1,-1,1"))4 q7 T! X. h* H$ g9 o
- (defun c:se () (command "vpoint""_non""1,1,1"))- T! d' t: x- C
- (defun c:sq () (command "vpoint""_non""-1,1,1"))
& D3 ?9 N8 i4 g7 y+ w: R; G - (defun c:vc () (command "plan"""))5 {3 E+ a! k/ ~5 ]! e0 ?
- (defun c:vd () (command "dview""all"))
" `; Z, h# L7 v+ S
- D- ^7 u/ W/ a# x! g% d- (defun c:TT0 () (command "tilemode""0"))
1 S/ D H2 n) Q; e3 @( }( t1 @ - (defun c:TT1 () (command "tilemode""1"))
7 o" p3 w: {- a - 4 W4 ]# E* B* g* U m
- (defun c:vt () (command "vpoint""_non""0,0,1"))% |- D$ F K1 [
- (defun c:vb () (command "vpoint""_non""0,0,-1"))
' {# x. u) K1 g' ]0 N& ~3 R+ C2 C, C - (defun c:vl () (command "vpoint""_non""-1,0,0"))
9 l% o) |( A! E" q% B( S3 V - (defun c:vr () (command "vpoint""_non""1,0,0")). J+ x: F8 v. \( b( O+ e) ]
- (defun c:vf () (command "vpoint""_non""0,-1,0"))5 Z' n0 i( \4 j/ A* e3 f: A& Q
- (defun c:vk () (command "vpoint""_non""0,1,0"))$ z5 y: q1 }! l, z! `* B
- 3 \' Q* w' o* M; O: V% E
- (DEFUN C:MM () (COMMAND "MIRROR"))
7 g* R& G! ^- S3 h+ K. E - (DEFUN C:MP () (COMMAND "MOVE" "P"))1 ~+ s% o1 |/ l/ Q' B
a1 ?% `0 Y$ n& [# _& Y8 o) x" |- (defun c:mee (/ a)7 S5 N- `) [. I" z' p F
- (setq a (ssget))(command "move"a"""end"pause"end"))& i! \( s5 e! u I: i) N& i
- (defun c:mc (/ a)2 m+ g+ W$ b+ X; M) w
- (setq a (ssget))(command "move"a"""cen"pause"cen"))
" Z8 I; Y# N: ]' C% i - (defun c:cc (/ a)
3 E0 B2 C. Z) x$ p5 C) Q - (setq a (ssget))(command "copy"a"""m"))
8 E% Q: J+ d3 g2 g: k6 D - (defun c:ce (/ a)# Y1 m* p- G, `/ K
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))
- [2 \+ A- _. M5 U - (defun c:cn (/ a)
6 A3 B" N3 r5 P - (setq a (ssget))(command "copy"a"""m""cen"pause"cen")) C$ t* T/ ^4 N! W/ ]1 C: f
- (defun c:tl ()(command "trim""l"""))3 {2 F) ]- |1 Y8 L+ T
- (defun c:tf (/ a)
# R6 _1 \, a# Z7 ~. r, t - (setq a (ssget))(command "trim"a"""f"))# \ O: p) _, \7 ]/ Y$ C
- (defun c:el ()(command "extend""l"""))1 r u8 _$ w# U x/ T
- (defun c:ef (/ a)1 D( ~+ e; Y$ T6 [# W
- (setq a (ssget))(command "extend"a"""f"))" l4 b$ g$ e9 c- {8 ~+ n" F
- k1 E* g* G4 ?5 o. {6 c2 a# c! y
* d9 a. }- a+ o G) A- E( b- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))( z/ J3 m% Z4 w! |$ ?& p" n) `
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
! g$ s, j" ]0 J! W) ? - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))" x5 i4 d- h! ?- J
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
- H$ n9 m" u$ J, i, K6 a% f. \* t7 S - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
1 Q8 I7 A0 ]+ O" W: j - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600")); M. X4 W5 a* d1 M" Y. `2 |
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
" k. J6 U4 C/ ]9 r+ ~4 F' [ - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
; N; K! j/ K' X- g: ` - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))( H/ X' ~ T* C5 y8 K# S
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
: I8 a- ^. F3 p4 p' {$ a5 @2 u - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))- X3 Q J5 b1 H6 K8 U
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
9 u3 X+ E; n) s# S7 W - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))6 v& q" I7 n& L, [
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))+ K9 V% F, {) Q
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))0 W$ e; i! ^& M V2 h2 e. H
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
" `) _" }& f9 b- @& B1 Q3 X- m - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
( s8 N3 l2 l d
; a7 _6 x0 K" i0 @; m) h" D# `1 G. Y- (defun c:mla () (command "-mledit""av"))
( P* S. P- \/ `) Z - (defun c:mlc () (command "-mledit""mc"))
+ F7 J! t# k; q6 @- f - (defun c:mld () (command "-mledit""dv"))
- v! `2 [4 y3 y1 Q - (defun c:mle () (command "mline""end"pause"end"))9 q$ Z6 N# p7 Z( r, U
- (defun c:mli () (command "-mledit""ca""int"pause"int"))
2 b4 x; J y" L& k* G3 i. y - (defun c:mlj () (command "-mledit""cj"))3 T: W6 _3 X1 u! ^1 u0 D2 a
- (defun c:mlt () (command "-mledit""mt"))
! R# `- V# y. n5 g. K9 S ? - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
- T( \4 p$ P) p7 o. z - (defun c:mlw () (command "-mledit""wa"))4 @) C: z) X* g) T
- " v) P" \3 [& ]6 ?$ Z% V
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))- s# S# U0 @- }3 s0 v
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
) M- a, g' h3 p) r* b# J- @ - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
& J' {1 `1 d5 t/ B% z: Z6 ? - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
8 K, n- ?# ^2 ^% }. V$ M0 o& E - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
6 M" @0 C* k. G, s" \ - 5 H8 B& t8 ?) F% K2 c$ d: `' V* Q
- (defun c:p0 () (command "pline""""w""0""0"))1 Z& D+ Y) O% Y3 i; p6 r! b# b
- (defun c:ot () (command "offset""t"))# t9 l+ Y7 R/ P" `: A' L. C& m
- (defun c:t () (command "mtext"pause"j""bl""h"pause))4 Q$ ^) J W6 i$ o8 \% E0 L
- (defun c:uo () (command "ucs""ob"pause))' q7 L! h* e' H" [! r3 H( x8 w, J
- (defun c:f0 () (command "fillet""r""0"))
( \, | o% j% {. d! y( W$ a# R: d - (defun c:fr () (command "fillet""r"))" z# A7 ?3 p7 @% h' R( b7 G
9 D t* _7 h7 `$ a1 _- ;CHAMFER) q3 R- z0 O2 z0 w# M: k6 c
- (defun c:cf () (command "chamfer")) q! A$ T8 W! c& J# P0 w) J
- (defun c:cfd () (command "chamfer" "d")), q6 p: m. B: A& x" E0 _
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
6 Q0 z- ]" g" {# G- c - & O. _6 q9 T, m* q" {
- ;FILLET/ O9 N4 `) A* C' P/ K8 C
- (defun c:f () (command "fillet"))
6 J( ~+ S R @6 I1 a1 l - (defun c:fr () (command "fillet" "r"))1 j% i8 N" V2 a( c) o
- (defun c:f0 () (command "fillet" "r" "0")). P% X) E1 \8 ]
- & G4 N+ x5 R0 w% a
- (defun c:OO () (command "oops"))/ Q' ^2 [ X6 m W' N2 D8 b
- (defun c:dln () (command "dimlinear"))# X/ j( n* e& f% T1 J5 P# v
- (defun c:dan () (command "dimaligned"))
) t4 p" [9 r7 |- n - (defun c:ddc () (command "dimcontinue"))
% Y) s" ~# T9 T1 ^% U" X - , u4 ]: B9 \$ t
- (defun c:sc () (command "scale" "auto"))
& C; T. O) a; s7 x - (DEFUN C:XO () (COMMAND "snapang")). A' j; B3 B% Q4 ?( m6 S
- (defun c:cc (/ a)( n- u. B, h/ ~4 g% p" g8 ~( d+ G
- (setq a (ssget))(command "copy"a"""m"))" [" d g1 D& H9 z7 V7 ]8 Y
- + x! Q' {- s- T
- (defun c:PJ (/ a)
+ `+ S3 u2 [, u! x/ A1 \) y9 N/ ^ - (setq a (ssget))(command "pedit"a"""j""all""y"))& g; `$ [5 `. |2 }
- (defun c:JJ (/ a)4 G7 Y( H9 O! F8 Z1 C, l s
- (setq a (ssget))(command "pedit"a"""j""y"))! i2 \) a' G4 ^- |1 |- W! o4 o
- (defun c:TN (/ a)
4 k1 s! j; I, @% f - (setq a (ssget))(command "change"a"""p""T"))
0 _" t g, F$ ^& h" w3 @ H7 l
( r) b+ Y" P& [. K& g: i# A- t- - k# F( T, X! n
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================" e8 y, l9 ~* }8 K/ @ ]9 o8 ~& r
2 m5 D2 Q: q+ n# H$ c- (defun C:IB ()(setvar"cmdecho"1)
& d! n& Q' E% g- ] - (setq pt(cadr(entsel"\nSelect Block:")))
0 [- z' t$ W) v - (setq e1(ssget pt)) : B' @ Q7 O' _0 B4 R' k
- (setq e2 (entget (ssname e1 0)))9 \8 X' d/ ]/ W+ Q: H
- (setq blname (cdr(assoc 2 e2)))
5 i. B3 f0 G. H" V: x - (setq oer *error* *error* err2)(command ".insert" blname))3 _% H4 D; T' V& W+ B2 K0 J, h
: h; u! T1 O3 C: @0 t- (defun c:II ()
6 R$ p2 i. x- }( N1 N2 Q - (setvar "cmdecho" 0)1 A1 \% [ B/ J2 k8 t
- (setq olderr *error* *error* myerror)
9 N) v4 d4 R6 x+ m$ N0 G% e5 N/ ^ - (prompt "\nSelect objects: ")
7 K8 M7 S( ~3 T4 C* H, I6 Y' o6 n! Y - (command "select" "au" pause)0 u- Y3 w( i! H) ]9 H: r
- (setq sstxt (ssget "p")! t5 m, h6 ?3 o) |+ o1 L
- sslen (sslength sstxt)
7 H2 c g% n# N% N r3 ?9 j - ctr 0( b! I( r8 q- d+ D8 f2 V5 N
- )( x0 Q$ e$ u; x K
- (command ".undo" "mark")
9 G. {. d( u! C2 t% B/ U, | - (while (< ctr sslen)
7 E: ] i/ I' T - (setq listxt (entget (ssname sstxt ctr))3 `/ N; x3 H) W6 J! x. s
- txttxt (cdr (assoc 1 listxt))+ A' b3 D' i+ V$ A2 B& a! h3 H
- enttxt (cdr (assoc 0 listxt))
7 k! @' z- h9 N% M. I+ A" \& Z, o - )0 I" C4 s6 ~8 v8 U. p3 \
- (if (= enttxt "TEXT")
# q" N$ |) ^, q3 y! z0 ?& I) i - (progn# Z; } a2 ~& Y5 C9 L* v [" k
- (setq testxt (substr txttxt 1 3))* |8 y! f( j5 r1 u F d
- (if (or (= testxt "%%C") (= testxt "%%C"))4 x1 v& h1 k' \" t- t2 b ?
- (setq newtxt (substr txttxt 4))0 @* D/ X, I- y1 y
- (setq newtxt (strcat "%%C" txttxt))( ~, s# U7 A- K
- )
) U. `9 |: K% a! j - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))( t1 @- x7 c( r; B
- (entmod listxt)& o; c) z. F- u! D* F: Q
- )
5 `) f9 U: o! b5 M* O3 T1 x# M - )
|+ h4 ]/ x7 y0 N$ s' { - (setq ctr (1+ ctr))9 K5 S8 C8 a; T0 @5 ~+ f2 o
- )0 I; e' Y# ?6 m7 {$ F
- (setq *error* olderr)
Z( R2 C3 @; [7 t - (setvar "cmdecho" 1)
# W' p$ m- m1 t - (princ)
0 @) ]% s% g$ ?; k% |7 o4 z - )
0 N7 X+ h! Z' w& ^ - & l9 E0 O) s9 \( Q) T9 d
- (defun c:DG ()- M: K1 ?, D* i) T. l/ c
- (setvar "cmdecho" 0)
9 }) v1 A6 o/ F/ \1 r6 F- k - (setq olderr *error* *error* myerror)
}; @# y$ @$ s1 O- |6 v - (prompt "\nSelect objects: ")
# u* u* r! K0 {9 T" C - (command "select" "au" pause)! V0 P& c( r7 h9 o
- (setq sstxt (ssget "p")
6 ?+ K7 s1 N% d1 E - sslen (sslength sstxt)- l# c& g6 C6 q& Z7 s$ W# V
- ctr 02 i1 z0 F/ s9 t. o1 H% p5 ?' T) K
- )
" A$ ]1 R! s# \, l - (command ".undo" "mark")9 l: r8 ]4 Z7 M2 l( Y8 E( J# G
- (while (< ctr sslen)' q# Y, g' `; J0 s& u
- (setq listxt (entget (ssname sstxt ctr))% H- C e# g3 O n% G) V
- txttxt (cdr (assoc 1 listxt)). h2 C0 d6 q0 M, i( o
- enttxt (cdr (assoc 0 listxt)) J* p: C: n) }* {# A
- )
: {5 N5 b% ^- H ?3 k7 e- o" b - (if (= enttxt "TEXT")
! s! k; f0 C- }) `) _ - (progn
) \5 F3 J3 ]1 g - (setq testxt (substr txttxt 1 3))% C9 [5 l) }) H) G
- (if (or (= testxt "%%d") (= testxt "%%d"))) W% m1 T$ p6 R+ k# D
- (setq newtxt (substr txttxt 4))
: n- h) P k. e$ ? - (setq newtxt (strcat txttxt "%%dC" ))
( J, D6 |+ p9 G9 h - )
8 g3 m' a( B8 E* V- x! A" [ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
7 p7 z! A% b7 q3 g% p1 p - (entmod listxt)' E8 z3 m% x$ V6 w' S% @4 _. [' ]; f
- )
! c& _5 R+ L. B: Y5 j - )
/ @% ~8 g r; C3 W* l3 }- s# a - (setq ctr (1+ ctr))! E$ q) c$ _! `& p3 f, l& @
- )
, Y, ?; O, h3 N7 |" q - (setq *error* olderr); x( z2 B# e: N5 l. c: g5 ~
- (setvar "cmdecho" 1)6 [7 @2 b% Y! l! G
- (princ)& h. Z' J' d, D
- )0 X" l/ ~' I3 V6 ~0 q& k
& w+ |9 w# k; b" L5 X7 }" q- (defun c:PI ()
' u @: R+ e* h* ^/ A0 _ - (setvar "cmdecho" 0)
$ E; B+ A3 b( A" X - (setq olderr *error* *error* myerror)$ h' _ S7 I F4 ^' G J
- (prompt "\nSelect objects: "); P5 W2 I, P5 e3 n
- (command "select" "au" pause)1 }2 y, q( S$ |* e4 r' h r
- (setq sstxt (ssget "p")$ B- V0 C& \$ K# J6 K- q
- sslen (sslength sstxt)7 S" [$ P1 k( e: J
- ctr 0
5 F% P0 y' K$ X$ J% q( ` - )
- I+ m" E6 Z2 {( j - (command ".undo" "mark")
7 ~/ z+ F4 U# d - (while (< ctr sslen)
& I' |& F3 g4 d) k, | - (setq listxt (entget (ssname sstxt ctr))
7 g2 c5 Y( A8 e2 K: q - txttxt (cdr (assoc 1 listxt))
, y2 B( I( n2 E [5 a+ v4 d - enttxt (cdr (assoc 0 listxt))- d! q- O. H/ i5 |+ k9 }. T6 j
- )
~' o) b7 W% S g) y! W% y - (if (= enttxt "TEXT")& k: B& e3 S7 C) ]. S6 u% f
- (progn u+ V3 `9 ` m5 d$ _, p
- (setq testxt (substr txttxt 1 3))
: L! L9 f1 N, N4 O* D - (if (or (= testxt "%%p") (= testxt "%%p"))
2 y# Y0 O N/ L6 O# G" e - (setq newtxt (substr txttxt 4))- u. i2 |# a5 @% i4 x9 h
- (setq newtxt (strcat "%%p" txttxt))) _' W. t- Q" Y8 x! a
- )
& T! e6 t! h3 e9 Q. V5 e( G - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
N3 D" g5 K* h4 P: M/ Q - (entmod listxt)
t H# T5 e5 g7 q% s2 o; a* E - )
: y& R( [) o1 @' Z) {1 x. `/ j6 Y* l - )6 C; ~# v+ N4 t4 i
- (setq ctr (1+ ctr))" ^, M# R3 b& [3 E4 {. \
- )7 W# p1 y) E# K
- (setq *error* olderr)& Y0 |: u& M, ]) {5 J/ T; }! _
- (setvar "cmdecho" 1)% a& N$ I$ A) ?- t+ \1 j- m8 ?
- (princ)
& W9 z2 v6 L( Z1 j - )
6 X) k, D1 J+ i- r
# {/ f7 f$ O/ r, }* n- (Defun c:CB (/ a)2 [2 b4 }" v# S3 m) ?+ Z
- (setq olderr *error* *error* myerror)0 y: ?6 F( M, }, X0 K; ~6 c: e
- (setq ocmd (getvar "cmdecho"))9 O( l. t2 `& o# e( Z
- (setq oblp (getvar "blipmode"))# x. S9 Z6 z$ J0 w3 C% q
- (setvar "cmdecho" 0) L" L: |2 d' I1 R
- (setq a (ssget))
+ o. S) l$ u. r2 [( t7 x z* ^ - (command "CHPROP" a "" "C" "bylayer" "")- b; |" u) I, I- {
- (setvar "cmdecho" ocmd)
. E/ t4 v+ P2 f; Y1 d5 c - (setvar "blipmode" oblp)
* t$ x/ h0 S$ h9 V% { - (setq *error* olderr)
5 q3 v! m6 g+ f5 O1 x" g: x - (princ)
; N6 m# B5 z- }: _- x - )2 |7 z7 m( `8 ?7 a. g
" X4 f! q4 `' s8 y' {- (defun c:LCC (/ co43 obj23 la23)
. g6 }4 L- z) i }5 r# `4 `4 C - (setvar "cmdecho" 0)5 o+ W7 l9 d( D' U5 I
- (setq co43 (getstring "\nNew color : "))
5 k, t, v0 u5 k, `8 v: H5 v - (setq obj23 (car (entsel "\nPick object on desired layer: ")))$ o; G% Q7 e- _! o5 a& V; v
- (if obj23 (progn& J6 k$ b7 G6 L$ _; d/ {
- (setq obj23 (entget obj23)); N# N* S7 s7 `4 F: I1 V. e
- (setq la23 (cdr (assoc 8 obj23)))9 ~! X( {* p) Q* i
- (command "layer" "c" co43 la23 "")
7 |3 U4 v. v& W3 i - )) C- l0 c& [* |& L+ Z4 J& R1 u
- )0 r. \1 V; n- B4 [# j5 G5 n
- (prompt (strcat "\nLayer has changed..." la23)) O4 g: E7 W8 x
- (setvar "cmdecho" 1)$ r5 A. ?* Y5 u
- (princ)! a9 T8 E* E8 g; W" M n
- ) / I$ U- [, P8 s% B/ x- `
2 j" n2 Q& \8 j1 a& ^5 O- (Defun c:RP (/ a)7 P9 y9 d; P) O; X8 `' @
- (setq olderr *error* *error* myerror)
7 b" f* L: d2 A! p" z) Z - (setq ocmd (getvar "cmdecho"))
+ ]: c' _/ {, R - (setq oblp (getvar "blipmode"))2 `4 }% p0 h6 |6 _
- (setvar "cmdecho" 0)0 V q, q! P) ?/ R6 B) p; [+ Y% Q
- (prompt (strcat "\nUSE: Delete object(s) belonging to"
% K( e: w1 z, N - " the layer of the entity picked...!"))2 j. ~5 S, J2 G9 u/ m
- (setq a (entsel "\nPick the entity with the desired layer to delete: ")): O$ k8 x; s& e8 k: R
- (if (/= a nil), A$ h Y# K2 |- Y, |# V
- (progn (setq a (cdr (assoc 8 (entget (car a )))))1 e" F5 ~: A! n6 m
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
! z# V, c6 x1 ` - (prompt "\nNo entity selected!"))
) P9 `7 c, m: L1 @# m - (setvar "cmdecho" ocmd)+ g1 D" e0 R% s/ K0 j- o
- (setvar "blipmode" oblp), C( q: j& y5 i3 E1 c
- (setq *error* olderr) Z3 B1 x) K: P1 x: I! i
- (princ)' Y% n# R8 i; _1 O% L% Q. d% p6 A' W
- )$ {% w e3 Y" e& N) T" G! }
- . W' C% _- S% M0 L! d
- (DEFUN C:WL(/ SSET NET SSL M)
6 }/ ^% b/ i: f5 Q1 R - (PRINC "\nSelect lines :")
; U. S4 |( a2 O/ v - (SETQ SSET (SSGET))
: N/ z( |. N! }) y - (IF (/= NIL SSET) (PROGN
! c2 D; y& ^/ R - (SETQ SSL (SSLENGTH SSET)). ~$ t3 M5 k7 z4 z% @% V
- (INITGET 4)
, o5 b+ m5 Q% g( B$ _* P3 ~9 Q - (SETQ NET (GETREAL "New width : "))
# Q. b) [) [* l - (IF (/= NIL NET)% O, N0 P+ n0 h; I( J+ ~- p4 L
- (WHILE (> SSL 0)
. `% L. L% ?3 a- q4 t: A3 B - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
1 d5 l4 X3 R2 K* s5 G: o# r& M# M - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
( X/ ~4 _" [$ U& B - (COMMAND "PEDIT" M "Y" "W" NET "") G/ O! r4 b2 Z0 n x
- ) , _% F$ f7 L) k0 g# X4 u2 j
- ) , B1 E+ d! J1 I+ n# H& ?
- ))) t7 Y; X- g! t* R+ ^
- (PRINC)
( }+ J5 E: |! U1 {- W: |" Z - )
" n$ }4 _$ O5 R, w* [* w1 P
/ |: E) k. X. H4 {0 }) f$ w- (defun C:MML ()$ T6 l' ~( a& {0 ]1 R n, X
- (princ "\nSelect objects to move to another Layer.")
$ q( ]" X3 m" q - (setq ss (ssget))# v# `1 F5 X" S+ F
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
# s3 L. Y9 F& k8 Y' ^4 M/ X( H- F* V - (setq counter 0)/ ~" Y6 e2 t# ]8 g: i( v* F
- (prompt "Moving to layer.....")(princ ul1)2 i/ K4 T' ~* M! O' P3 z
- (setq e (ssname ss counter)); @1 N8 v5 Y1 Y" F; W, ^
- (setq l (cdr (assoc 8 (entget e)))). [1 d4 N6 p9 P- o2 b; c
- (setq S (ssget "X" (list (cons 8 l))))
- |: i+ L+ u8 n0 i* m- G/ r - (command "CHANGE" ss "" "P" "LA" UL1 "")& m/ `& G$ x: B& L+ |
- (setq counter (+ counter 1)): K) l' Y% J& U; h& `% z
- (princ)
3 f- u- ^7 d8 \ - )
3 x; t) T6 k# y9 T - % {0 |9 _2 j) w3 n" `/ M6 X) y
- ;;; ================================ GHI CHU ============================ H \; `7 A2 j4 B6 R/ k9 x( \( h
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
! W# I4 p8 K! c - ;;; =======================Thuong Dung Font Romant.vnh===================
. D3 m( S" P2 {! E: ^; E& n - . }0 w! o' E, |; d2 ?& I3 @: N/ z
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)/ [: _/ }$ `; q$ f
- (setq oer *error* *error* err2)
9 Y+ K5 _% ~4 ]5 | - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")& I. Y/ e7 y% g& v
- (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 \: j; a' E- ?' m
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))3 h1 p! b& b& r# d
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh")): N% V ~, U) ` A! b& I
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
3 [7 a0 X+ s- I! p6 ?" f0 N - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))8 ]% k4 h3 s0 O
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
* n. ?8 P$ z+ o7 B6 f! p+ | - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
+ Q7 z# p0 U+ ?2 l: I - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
2 ~0 D& x5 G* C' _4 B - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))9 U5 D/ ]) Y% Z- A, m, ~5 y
- 0 M' j7 \8 A3 x% E; p. y
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
# h+ F0 r0 f0 R" P - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
& y, q) S5 V! b o - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))3 j. D( o& `! J1 l
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
. R8 `& C# [+ i- t9 W - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))0 u7 P% j1 A- x4 s8 l9 z
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
/ p0 B# A" P ]7 u) K \ - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))$ Y0 c1 e& C9 I0 J
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
* R& ^: N% L, G R) o6 \1 V - 5 N' @9 B; ` a9 o
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
" N; |7 K+ {; p) H* V) b& T# X - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))0 ^8 [. [8 c* Q" m4 V) [5 ^
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
# V7 }* G5 A8 W - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))) O/ c4 u5 p {/ S
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
' q1 _8 h% y! ]+ n O - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
- J/ k9 t; _$ c, U2 z - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))% |5 V- y A3 g, O* R
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))4 w8 k9 B3 h( a$ U
- (setq pta (getpoint7 A W( F" m+ c9 X0 ?; |2 k: {8 A( F; q
- "\nPick first corner. : "))& {. j2 J9 S+ _9 K; w8 y
- (setq ptb (getcorner pta* z6 b4 q6 K$ S7 u; o
- "\nPick second corner. : "))
7 i3 U! f4 ^ s& ^1 |$ H - (setq ptc (list (car ptb)(cadr pta)))
* ^, P( y/ _* U$ f ` - (setq ptd (list (car pta)(cadr ptb)))
4 ]* ]1 {, ^7 o0 r& y+ r - (setq ang (angle pta ptb))
0 B, v. `; b/ w& }( w+ n2 i! Y' } - (setq d1 (/(distance pta ptb) 2))* C' U+ |( F( H$ t
- (setq cp (polar pta (- ang (dtr 0)) d1))
9 p0 Z' n3 `" c9 L - (setq X (distance pta ptc)); o% w6 J2 i% b& {; x* m8 X
- (setq Y (distance pta ptd))1 [" R' N% j/ k
- (setq X1 (rtos x 2 1))
2 s& u4 n1 }2 ?: J* w - (setq Y1 (rtos y 2 1))
4 V; \% N7 c+ e9 P' k1 } - (setq rmsz (strcat "(" X1 " x " Y1 ")"))4 a+ V* h$ a1 f* C4 b
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
1 G/ Y: z/ P2 c5 L- n& v/ \& U - (defun dtr (angg)7 }4 R* H, ~) [. H2 X
- (* pi (/ angg 180.0)))
( l! M: y' a5 d - 4 b( I) D" \! \. G8 `+ W$ f
- (defun c:WS (/ pta ptb rmsz pl1)
8 n8 U7 @9 }, J" b - (setq oer *error* *error* err2)( r" f9 S4 w) S6 k; X% n8 p& W
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")/ ]+ @. @9 U0 F( z
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
( o# g. B$ ?; U2 t - 5 y4 O' d- e) Q2 Z1 S
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))5 T- f4 C( z3 C& L3 ]7 I0 Z
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
# M4 |- i0 I. |; |1 L- P" W, ~ - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
8 ^( d9 p, {3 i9 {8 _ - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100")) g) k* g4 a& w ?" [& ]
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))7 u5 I1 N8 F, f( ~. c! E) p( h3 B' P
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
8 \; R2 F. C$ c0 h+ G8 X, m. m - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
% w, t, t7 v: b B% N
3 B) Q' Q' C. @7 c8 ]3 c' Q/ I6 }- (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"))
( [, r" Q1 y' q) |: ^ - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
7 ]- B8 M$ a3 g - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))* ^7 R7 r- |: l% D {
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))7 j' x+ N' R' _ J9 u- H0 j. @
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
) g; `. B- |2 e/ u4 }# |' \ - (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"))
! T ?7 D8 I3 a, y4 ] - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))7 i( ~/ G; E5 N- D
- (setq pta (getpoint- d R4 Z @. ^0 T L
- "\nPick first corner. : "))
9 T! k+ E ]. e$ \' V$ q, ]7 O - (setq ptb (getcorner pta
0 a5 N+ Y# X s5 u! T, g, p - "\nPick second corner. : "))
! y( }' [! U- S5 A - (setq ptc (list (car ptb)(cadr pta)))/ w7 l) g( ^3 f
- (setq ptd (list (car pta)(cadr ptb)))6 [7 S9 w. h3 t* R, t
- (setq ang (angle pta ptb))) i" |! s0 }1 ?6 z+ J1 I4 C& |
- (setq d1 (/(distance pta ptb) 2))
$ A( B" y! ^) M5 b1 \3 B: h" c% g" P3 r1 ? - (setq cp (polar pta (- ang (dtr 0)) d1))) s. b3 f* _% l) K- K% k# a( b
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))5 n2 n) Q6 F% N3 g( Z6 s. ?
- (defun dtr (angg)
- d) N* q" f, C2 ^) ? - (* pi (/ angg 180.0)))
$ K* G* ~8 B! } - ( [3 E! R. l# E1 C
- ;;; ================================ GHI CHU ============================
9 a, v8 n8 v; S% U7 }1 Z7 P6 x - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========* A! y& {3 y5 {. y# I
- ;;; =======================Thuong Dung Font Romant.vnh===================
& @# b/ z1 w3 I: R - : K8 j X0 R7 K0 D
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1); N1 y- d7 r/ K6 [( H2 B
- (setq oer *error* *error* err2)" |) R0 t- K. q+ H/ }4 J
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")+ f$ C2 F8 a8 O3 c0 c! b
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))3 N' ^- h0 c: c% o& _1 `; s0 T8 o
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))8 n9 q6 T* B6 Y) G
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
. g' ~' |4 t3 A - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
+ v2 t$ P5 P: N& @+ r. u - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))3 N4 Q' i) t8 N' q
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
2 T0 n, d: n7 L- ~ - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
8 G% B/ c; D& l( M1 e, @/ U2 m - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho")). ?( W W4 v0 r. l; ^7 x
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?")). h% @/ x9 U/ f% E+ V& ^
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
4 |4 O7 E' C6 ^ - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))6 f6 G" ?+ B2 W* V
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
7 S9 y7 I+ h8 @* Y r - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
) _ a. N# [( X( J2 w - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")), B( D, R1 F8 Z# ~) K
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
7 u$ G* ]# g3 A: u3 b2 a3 w - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))1 Z# R2 F8 d* ^
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
! U% f) }2 c$ }8 [! Y - (setq pta (getpoint
- @6 r/ u/ B& I4 L - "\nPick first corner. : "))
# `; V. q0 h1 G' {. @ - (setq ptb (getcorner pta& {# C( a" `$ Z3 P
- "\nPick second corner. : "))
- N0 Y8 B5 ]: @ T- W2 n' m9 V" } - (setq ptc (list (car ptb)(cadr pta))). p) d% S; {; S
- (setq ptd (list (car pta)(cadr ptb)))/ v9 ` _+ R7 Q4 o3 l
- (setq ang (angle pta ptb))
J/ J, M$ ?* R9 C8 ` - (setq d1 (/(distance pta ptb) 2))4 U' B9 E8 S0 G& x6 ~
- (setq cp (polar pta (- ang (dtr 0)) d1))/ Z9 {0 S3 C/ n7 f
- (setq X (distance pta ptc))
1 G5 C" }0 F, A$ I7 k7 r' [: Q - (setq Y (distance pta ptd))- G8 B/ }5 |1 a7 F. V" M# {8 x: x( W, g
- (setq X1 (rtos x 2 1))" ]% ~, F, S. \% ]
- (setq Y1 (rtos y 2 1))+ S: f- Q- s" e9 L0 u4 G
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
/ y j/ k G3 k' h - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))' m6 t. [9 h. ^6 B. {
- (defun dtr (angg)
1 h& [# p3 P2 f+ S( F+ e9 ` - (* pi (/ angg 180.0)))
# g& e% K0 @7 |4 w$ ?9 }
$ s9 ~/ @& r) c, W9 f2 k/ y4 N6 p7 e- ;;; ================================ GHI CHU ============================
7 E3 H& [" _* s7 l+ Y) O2 ^) A - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========" f/ {" M R. T- L& T% E3 k
- ;;; =======================Thuong Dung Font Romant.vnh===================3 Z9 F; v& X! _! s$ t6 D
- 7 s# c" i/ n5 k( ?
- (defun c:GS (/ a b c d)9 c a# E. W5 I( F2 X# [& }
- (graphscr)
9 o. c/ T, L$ t5 z+ @ - (prompt "\nSelect text to set style....")
5 \" r8 w* N0 }& W% u1 @: X; N - (setq a (entsel))
9 S; P9 M: J# w( Z - (setq b (entget (car a)))
4 R$ K# W" a& p1 e- X; f, Z& `7 m - (setq c (cdr (assoc 7 b)))7 ~. k' k9 C1 R" z) [" E
- (setq d (cdr (assoc 40 b)))
2 c, o, N' w9 w& N - (command "style" c "" d "" "" "" ""))' X6 w2 v, s5 r- K" s' T% K1 W& }
- (princ "\nType GS to set text style.")5 Q0 X' H$ o8 l' A0 t
6 v' n- {, d. M, \4 N4 p- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
! \; H* e0 |2 J$ ^$ q! K8 g; E8 }) J - (setq olderr *error* *error* myerror)
4 G. ?( C7 E! E; v: F! R) o! ~. v - (setq ocmd (getvar "cmdecho"))+ r) j& [ o! G. J9 `! z( c
- (setq oblp (getvar "blipmode"))4 i& J- e2 k' K2 p
- (setvar "cmdecho" 0)
" U# [, y# V" a" k, a4 [9 u5 W) V - (initget 1) ;3D point can't be null
0 d# A/ u& S0 {3 B# w+ m/ ^ - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))4 \0 b0 h& s' v3 M! f6 ], E
- (setvar "ORTHOMODE" 1)* I C3 F( J9 I
- (initget 7) ;Length can't be 0, neg, or null
* L8 s1 q( d& ? - (Setq l (getdist pt1 "\nLength: "))8 x0 l E0 p8 b9 e" g
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))$ ^* d/ M# h8 k
- (grdraw pt1 pt2 2)
% N d2 I; h" l- Y% v$ g- g - (initget 7 "Square") ;Width can't be 0, neg, or null& h9 y7 U$ T# N. i, N" r* \) v1 J
- (setq w (getdist pt1 "\nSquare/<Width>: "))# w& V s4 y5 @" u. ?8 A- W
- (if (= w "Square")
1 e8 A% ?2 h. k6 V8 A1 C - (setq w l)0 b( l1 c1 ^# G
- )
2 k3 n# c' Y' U7 u2 @+ } - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))6 a4 f+ y/ x5 }$ y
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
+ A% V" ]& z4 Z4 f3 z3 R - (grdraw pt2 pt3 2)
4 b- R+ T0 d' L' N3 V0 B- I - (grdraw pt3 pt4 2)' i+ t% j: ]5 j0 C3 A: u9 D
- (grdraw pt4 pt1 2)4 C5 e2 X0 p% U
- (setvar "ORTHOMODE" 0). I4 M% d6 D! ]# e; T8 k8 t, R2 |
- (command "pline" pt1 pt2 pt3 pt4 "close")
4 A: }( ~/ Z+ S* q& w - (setvar "cmdecho" ocmd)0 c4 B. r" N* t6 o4 X/ Z* h
- (setvar "blipmode" oblp)
4 R* O, x/ M0 }! P: T3 h - (setq *error* olderr) ; Restore old *error* handler0 c4 H: n$ X. X
- (princ)6 Y7 g D" e' p2 |( j0 R( k3 X" T
- )
* x/ Q5 u% ]$ |' ?; z, M
9 W8 u/ G- S0 L+ v' x- (defun c:SG (/ ent pt1 pt2 ang)
1 P! F) Y4 v2 J4 Z% w. ^2 ] - (setq cmd (getvar "cmdecho"))9 b: a. R$ U6 N& Z q/ k
- (setvar "cmdecho" 1)% ]" m/ ^; I5 u. a
- (prompt (strcat"\nSnap angle will be set to angle of line"))7 O5 q& F0 @9 b; `' n7 v" Y
- (setq ent (entget (car (entsel))))' [* R$ H$ I* {# ?& [
- (setq pt1 (cdr (assoc 10 ent)))* p$ {1 w v. l: x' F1 M |
- (setq pt2 (cdr (assoc 11 ent)))
) {: s9 x( D" k3 G; |: e - (setq ang (angle pt1 pt2))
2 R/ c ~5 j1 Y6 I - (setq ang (/ (* ang 180.0) pi))1 p2 O# B$ ^$ ?1 z2 n. [3 a- @: n
- (setvar "cmdecho" 0), M3 @9 }, z) j E# `" h
- (command "setvar" "snapang" ang)& N4 O, v* Q! m& u$ h; W2 ^3 n
- (setvar "cmdecho" cmd)0 a2 ^! R R0 t* f6 F0 W/ ?
- )& A( Y: d2 H4 |) w
- 9 h4 E1 m& L/ E8 ]
- (defun C:TG ()
- B5 F# |- V6 }: f3 X9 x+ u6 Y - (initget "Increase New")
) V% }. q0 c6 z9 i$ J6 t" ` - (setq ans (getkword "Increase/<New>: "))
" m3 d2 P" |, Z9 Y - (modang)/ V1 f- e) U# I
- )/ X, u) ?) w# X
- (defun modang (/ ang ss ca e na ssl)+ n* N( S' s& J- e0 W4 `
- (if (= ans "Increase")
* a& `# W" I V2 b0 N1 z - (princ "\nIncrease angle for text by: ")" C/ e0 r; m) S( \
- (princ "\nNew angle for text: ")8 `# {, {! R ^7 C; b
- )
: P `% w* H0 _( F6 m$ N - (setq ang (getreal))
, j! j7 I+ G1 K( @8 D - (setq ang (* (/ ang 180) pi)). G' E5 o2 y: d1 N% k5 W
- (setq ss (ssget))
% L. y+ V0 ^' ]* b9 Y T A! p - (setq ca 0 ssl (sslength ss))
8 H; o) b2 g; I% ~7 I- S) R3 m - (while (< ca ssl)* ]8 N5 L' a1 L6 p
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))2 Y5 g, u' H! p
- (progn2 F7 s6 f* m( G; X: I1 |
- (if (= ans "Increase")
& J* [2 b2 w5 [. t* V6 h - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
3 P, W p, ]- O- |. \- M0 i - (setq na (cons 50 ang))* o( t2 J' r6 A& |$ m$ [
- )) Z: ?" I) S1 }0 R8 R
- (setq e (subst na (assoc 50 e) e))1 \4 `0 |8 q+ E/ C; K
- (entmod e)
* a8 J+ m$ H3 X - (setq ca (1+ ca))
5 \' {: |3 }/ ?, ~3 V' r/ u4 o - )
, G! L* R' k! E - )9 G7 R! e# ? J
- )
1 X2 |3 x4 l: c6 y( I, V - (terpri)1 t: {! x" ]% v2 n5 @4 v# z# B
- )
# H% k4 ?" X$ ^+ H6 g' }$ p. i0 }% e
6 R1 l9 V5 j: G8 s" q; f* j# R9 v
+ c# w5 o8 Z6 L- (defun c:WL ()- ^, {' C8 n( ^4 j$ Y3 L
- (setvar "cmdecho" 0)
& Z( d0 {9 h8 B+ Q - (setq a 1)
+ q1 [: H+ B/ O3 u; { - (prompt "\nSelect Polylines to change: ")* X! p. X; U1 @% Z" n. _, v, _7 g' k
- (while (/= a nil)& M9 v# k8 ]. y" Y
- (progn
" a8 {* H3 o6 M; y$ } - (setq a (entsel))0 p( u, r+ a- V+ Q
- (if (/= a nil)
% w0 g& z( N4 z - (progn5 e4 J+ l" x4 S
- (setq b (entget (car a)))
1 b! j' f3 D$ r - (setq c (cdr (assoc 40 b)))5 n: j o( N6 O4 @& |/ n0 F
- (princ c)
' q5 |+ Z6 y9 m" f, c - (command "pedit"a"w""lw""")
7 s" Y( D6 |0 x: c2 q, l; M* e - )))) + w5 s" H) m* c, Z) K7 ^: K; ?
- (princ)1 H% z. w S, S
- )- @8 j! l/ i: W& l u
- 2 _8 i) y# [# Y) J2 j+ D8 O1 U
- ;;; ================================ TEXT FIT ============================
3 | g- \& Y. Y. D
1 L. o: p( ]: O I% p- (Defun c:FT ( )
- x* }' q, N+ z& k0 ~ - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
( G- Y% ?2 \* h - (Defun LL-xyz (arg) (CAR (TextBox arg)) )
# r7 @( M( r3 M) U( P, H - (Defun UR-x (arg) (CAADR (TextBox arg)) ), u( v1 L9 C; e8 F
- (Defun LL-y (arg) (CADAR (TextBox arg)) ); U4 F6 s' e# @& g9 H2 n+ \# q
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) ), x0 Q9 z+ y* u: e
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
0 b4 S3 U, f7 M3 ~ - Textent (If ename (EntGet ename)) )
# F/ ?( h& A( @7 n# `9 W) d4 _ - (If (= (CDR (Assoc 0 textent)) "TEXT")
9 v% }! V, G Q) | - (Progn (initget 0 "Start")
+ Y1 w+ M+ ?$ d; }$ W0 W - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
' L( |3 f! c3 g! a - (setsnapang Textent) ;set snap along text entity
9 Q: M0 @) N! { - (setvar "ORTHOMODE" 1) ;drag along the text/ ^2 A" p$ X! h. Y0 `: j6 H" N* G( _
- (setq
+ o) e6 F( T9 n/ y9 m& s - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
) F8 ]7 i$ i! J9 ^. W - (setvar "snapang" 0)
: v) c( c q. W1 c2 Y, @: S6 c - (cond
, H9 c; c% n& c* e) Z - ((= (type TMP) 'STR) ;;new starting point to be selected5 P3 H: L% R+ W7 \" x
- (setq Start (getpoint "\nPick new starting point: "))
5 ?( A6 f. h1 d3 q - (if Start (progn
8 \$ I+ F# J, Y3 _9 c* [- y; ^ - (command "_UCS" "_E" (cdr (assoc -1 textent))), c7 A% |( U L
- (setvar "ORTHOMODE" 1)
6 I. ~; l4 h( _% h% M - (setq NewPt# P4 {: w4 D/ ~6 e
- (if Start
! c6 I! P& A: F8 S* G1 a7 B9 b - (getpoint (trans Start 0 1) " ending point: ") nil ) ) p9 E7 {- l0 b ?: m
- (if NewPt (setq NewPt (trans NewPt 1 0)))
q+ _# o& }. \& }+ H% A - (setvar "ORTHOMODE" 0)3 q2 d' K4 B/ f/ a
- (command "_UCS" "_W") ) ) )! D8 e' b7 ~ V* H, {
- ((not (null TMP)) ;;new ending point selected, [4 _/ Q! a3 i! a
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
' ~( O3 v1 r3 b0 U# Z - (t (setq Start nil NewPt nil) ) )
- R. Z/ M. o# H: } }/ @ - (if (and Start NewPt) (progn
, y. b3 V- H9 r9 \! | - (setq Val (Assoc 41 Textent) ;;current width factor# x3 C6 L/ Z. t' N4 A" a9 O& l
- Val (if Val (cdr Val) 1.0) LTC_%
8 S/ A1 w/ ?6 H- I+ ? - (* (/ (Distance Start NewPt) NewEnd ) Val )
: b. c/ B8 E' e. W2 o - textent (Subst (cons 41 LTC_%)
" g, R& |$ b! t. l1 O4 E, | - (assoc 41 textent) textent). i8 j% ]1 V8 @% s5 l+ R
- textent (subst (cons 10 Start) (assoc 10 textent) textent)- S8 @+ `/ O+ W
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )" u. U: F, J5 f8 M! |; |# i, W
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))3 x8 }( W: h& f' b4 w. T3 P
- 6 R( Y/ L& ?8 H: Z
- ;=====================================================================4 }2 g7 H O, ]9 W
- ;=========================COPY + ROTATE ==============================
* o6 ~! @1 O( Q, \ - ;=====================================================================! c) k8 b1 {. B. M8 J. l
- : Y( o4 |& P) h; B* H5 ^+ ?
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)5 x/ p; ~( \# T C3 [
- (setq olderr *error*4 x/ R; {( P& g) }3 {9 [! @9 E4 L
- *error* croerr)
8 ?) P0 j0 [/ n$ d - (setq cm (getvar "cmdecho")), E3 t" G8 b/ `6 o5 S2 X$ c
- (setvar "cmdecho" 0)0 p. X, f: p4 w1 m
- (setq loop t)# T7 n2 I' B' P
- (while (not (setq ss1 (ssget))))
: `8 w6 `. m4 N( c - (initget 1 "Multiple")" G4 w" w( ], u
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))* [2 y \8 @" d' \
- (if (= bp "Multiple")+ [: s1 q* k5 x/ P6 @, s( F
- (progn
* k I2 t, a' h/ j1 p, h- K - (setq bp (getpoint "\nBase point: "))2 z7 G: d: ^$ X9 {8 x$ Y8 ?! K
- (setq mult t)4 w% S% F' U0 X! M5 ~( L, W+ a
- )7 a1 C8 ~; C# l3 j" W
- )
- M2 N' }5 T4 X- _! H - (while loop# q5 |3 y' F: |" M q; i+ W
- (setq loop mult)( W x7 d/ U2 ` ]9 c
- (setq lent (lastent))
% S. J/ ?* \3 |: s8 q - (command ".copy" ss1 "" bp bp)
$ Y7 b) m5 c: j% ^0 h! D - (setq ss2 (lss lent))4 @, u( R" T- E9 s! \
- (setq lp1 (getvar "lastpoint"))/ E0 Z) T1 ^& P% C9 s% z
- (prompt "\nSecond point of displacement: ")! K4 \# ~' [8 \6 p) a* ?$ E1 [2 Q
- (command ".move" ss2 "" bp pause)6 Q% h- o' O/ O$ @) N# F
- (setq lp2 (getvar "lastpoint"))1 q' J( G0 n; H; r
- (redss ss1)5 m; U1 o( E! u
- (if (and (not mult): s0 _7 b! h# q& _- ]
- (= (distance lp1 lp2) 0)
# S& u5 W4 g. n& D/ x5 e - )* K6 K" G+ I# g$ r. w5 ]
- (setq lp2 (getpoint "\nRotation Point: "))" ^5 w+ u* M+ V
- )& |, b; ~) e9 D' u
- (if mult
) I' ]8 p) t; B* v; |1 m - (prompt "\nRotation angle ")& }/ E N6 U/ t( F2 }, D/ p
- (prompt "\nReference/<Rotation angle>: ")4 G/ |- i3 W, u4 p1 U
- )- d7 N( b( O+ y5 E# B- Z4 j! j7 x
- (command ".rotate" ss2 "" lp2 pause)' r; X, `* ]( F7 k& O
- )' ~7 Y3 s/ l* `4 t2 V
- (setvar "CMDECHO" cm)
- {$ z- h4 R8 A. p9 p+ l" f! _ - (setq *error* olderr): X! _0 O* | z5 v0 [9 a: n
- (princ)
/ f2 X d: U1 C+ H7 w X2 K - )
$ D' a$ q. o0 e9 V D - (princ)) ~9 S" a" ~+ f+ f! s
- (defun croerr (s) + \7 H% p3 y- R, R H1 w# I+ y
- (if (/= s "Function cancelled") , P" r- I8 {' p4 ?9 W
- (princ (strcat "\nError: " s))) J8 k8 w7 o/ P \6 W
- ) 2 e" v. H, k8 s& s: y/ T/ t3 W/ a
- (setq S nil)
; ^( A4 t: b* o6 P, f1 G - (setvar "CMDECHO" cm)
% J$ t! f5 \3 f7 D( s, J5 T - (setq *error* olderr)9 Y; u# U/ Y e9 B
- (princ) N: I$ T H. B. N; Z2 C' a
- )/ d: Z @! r6 g6 r# R
- (defun lastent (/ a b)' S$ t J1 | e$ v, d h. t
- (if (setq a (entlast)); N% n. {8 I+ A0 ^8 e
- (while (setq b (entnext a))
' j4 Z( O% I( B7 h8 ~8 f r - (setq a b)
6 D# x8 i( R( c& z' z2 J8 k4 f) F - )
! o/ L- b2 V4 U2 K9 o - )
2 M9 j* u2 [9 C: [9 `% N& f - a8 ^0 l( b$ G1 l* r2 |
- )( [* y- D6 r3 C- t; }6 j
- (defun redss (ss / en i)
1 C+ j, ^1 k! w- J, U9 D% C - (setq i 0)9 P d0 J" ^. {# l/ `
- (while (setq en (ssname ss i))6 @8 P4 v' T& m, T6 T
- (redraw en 1)
' c7 @4 N; y- O; ^/ t5 l - (setq i (1+ i)): M/ w5 q0 J2 V- |& E2 `( ?
- ); n0 ]1 T! ^" O; e
- )0 T: ^+ G8 S% h0 h9 d; o
- (defun lss (en / sels ed)
9 w: r' y! t0 V$ I - (setq sels (ssadd))
9 m( K! |! k) {: a) _ - (while (/= en nil)
( Y& u5 d+ H8 N4 i - (if (setq en (entnext en)) (setq ed (entget en)))& y1 h; H: R1 n, m* b. e
- (if (/= en nil) (setq sels (ssadd en sels)))( H: y! [0 z) r7 `0 E
- (if (or (= (cdr (assoc 0 ed)) "Polyline")& z7 i3 e4 `9 L) f4 b! e! {& r
- (= (cdr (assoc 0 ed)) "Insert")
+ _6 F! C3 ?2 ~: C4 y& j9 ~/ k; \. g/ v! | - )
) O' @. J8 |1 T - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))0 V! q: w: v9 M% ?
- )$ m+ {/ j! J: v1 z
- ), o- V& S/ z: G5 @
- sels; F% d: ^% X2 p$ ^' V7 m: s" G
- )' ]+ ^5 A- k5 M @. C
- ( L0 {" P2 B1 I" K% m6 n
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================0 Z, v# E9 R" a5 D7 u- {1 u
, M5 r% m( W& P5 {& G- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
, V# ^- \. |) o1 X" f0 ~9 p( V - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))# k( k8 V4 `2 B1 ~0 y1 L
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
& c' ~2 V! o* ? - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" "")). [# \0 n: y4 w* B$ ]
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
+ q" q$ v( o6 `7 V - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
% J" U2 n7 ]' z. D m - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
$ {. ?4 x2 d5 a2 K- I - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
3 Y, C/ K% I% i: P' [2 Z0 J5 @! U - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))% a3 q9 d3 y8 r2 @% Q n+ R
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" "")) y- R+ R& D; P1 I2 h1 i
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
9 t4 x0 u$ A3 x - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))) u& b. @+ |" e" N6 b$ }
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))2 M0 @0 K) F6 h! c; O
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))1 \1 P* }5 u. E9 b3 _: e
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
$ W/ E* P# p \' j$ }) K - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" "")), m2 |; |' S. {7 H' M
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))( f, A4 w8 A% Y+ t2 ` e
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))) t# U% x" s) u& r; a% [% g' I0 u/ D
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
6 V4 L, c/ I) y& H) A* A - 6 O. e) e, U; Q7 |( H2 f
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============9 r+ b: L$ \5 w* ]- k e9 V
- ) [$ L- `: d* K0 p0 |, c% i4 M
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
) _5 E1 V' y" z# T' }! W - P! S8 D" N6 l! j! }7 H
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
/ N' p2 \# y; W: ]/ L - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
1 S4 @# X% Q4 j9 u# ~
6 e% z; e6 d: ~, ` Y6 n- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
- Y" v5 U$ t6 p; h( H - * ?$ \$ T1 W) t) v$ q
- ;(DEFUN C:netxuatanh ()/ |# {% O# z5 Z7 q3 E
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""$ ?$ ?6 d8 a) U1 k9 M( ]5 R
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
% S4 t! l! @! V) L) N- k5 }7 e - "M" "MANH" "C" "9" "" "Lw" "0.5" ""8 d3 v$ _; I0 J x- e
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
! T9 m# y7 P* f: T _. W' }! U - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
H* n- N; D' x( [- y. Y5 X: o - "M" "THAY" "C" "7" "" "Lw" "0.7" ""8 {, G, b( ^, K) j
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""2 D2 C. w) t% U0 [1 c! `0 ?
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
8 V7 J! r- }$ O o. Z. D& S - "M" "COT" "C" "2" "" "Lw" "2" ""+ Y" A0 `' v- v5 b
- "M" "Defpoints" "C" "7" ""
9 X- {/ G" ]8 M3 R% Q, x - "M" "0" "C" "3" "" "Lw" "0.5" ""
. D- j. y0 \! n8 s( p& r - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
: t5 I4 ]- I. V; ` - ; "M" "2" "C" "31" "" "Lw" "0.5" ""
6 w9 @2 U% g# P3 A8 ^. ~ - ; "M" "3" "C" "8" "" "Lw" "0.35" ""
% ?( B+ n9 m5 l* M8 b# A - ; "M" "4" "C" "4" "" "Lw" "0.8" ""
9 H; q8 B5 l0 V D - ; "M" "6" "C" "6" "" "Lw" "0.35" ""1 a7 [ }& a! w3 e Q" J& @
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""5 N. W2 u0 l: c" p
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""2 k" k1 R' p2 F7 R6 {
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "": e0 k1 c4 Q) ]$ J4 }+ f
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
( l( p8 I7 ?5 ~1 ?8 s - "M" "KE" "C" "8" "" "Lw" "0.3" ""
" s. I3 B# V0 b" W5 k" |7 Q5 s# ~ - "M" "KT" "C" "9" "" "Lw" "0.35" ""
- g* Y0 n t1 s: ~9 w - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""- J) j7 `5 P& g" q; f5 M. G8 ~6 ^
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""1 K j1 v$ s$ ]4 K, [/ L
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""
; U7 B6 O w+ |: C+ s" I1 f } - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
0 }) b' O5 \# s6 Y; r - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""$ Z5 V- ~8 u2 I. O# f" v% i" l
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""* Q* K) t) w9 k" q7 b, r' x* _( b2 w5 Q
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "". j& [& A3 B) d8 V
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
: B9 r# O6 O) _4 q& Q$ \ - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
! \2 z3 x1 C) `5 A; C. L! f! n9 q
' ]% r1 a6 y6 @ }7 M O1 I" d- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===& E3 T; S4 j; T6 v: E6 i! n" w
- " v: m& U; `4 l4 g0 }/ d3 z# N2 M
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
: k' T& b3 s9 ^, H* _. y' o+ ]9 Y - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""! f. o9 Q' a/ p+ H$ F7 U
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
5 d0 J1 L3 P! c( O6 Z8 h7 L3 a - ; "M" "250" "C" "250" "" "Lw" "0.35" ""* V+ f' b' m( G
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""' U- n* `* F b, q) x6 l1 W$ g
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
% B& J' _( i+ H7 k - : `. b W7 w- M
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
, R) G# u* v. w1 ]1 V1 D - ;===================================30|04|2024==============================& i6 }6 ]4 i, F) w- M5 F
( Z& c; M5 W2 e5 a: E* s6 d- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )# q6 D. e, w9 u* n+ O) e3 Y( g m
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
( X @# y' A' w/ V. }' I/ k A - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
$ |0 S5 ^7 }3 Z; E - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )- M* @2 i2 v0 p% O' H" u: c
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )2 x* s5 K% v" s! W, }6 m4 `
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
+ d- v3 Y# t2 G' D8 ]! o6 \$ I - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )# {: d1 F7 e1 r+ Q( h
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )! }- H0 ?" R1 N$ ?/ m) f$ B* H; o( _
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )& V6 L! b6 d7 d4 f
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)# n4 P: X6 k, E
- 4 |6 O7 i. z, P/ j4 ]
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=# }- A3 N2 Z# _
- ;===================================17|10|2024===================================- @( {% r/ \- }8 ]; Z1 o
- 3 q; R( n' [. L% b
- (Command "DIMTXSTY" "ROMANT-DIM" )5 i! }6 E3 C) N) m6 {
- (Command "DIMBLK" "" "Closed" )5 v: x0 D% F8 C; C1 {& G
N I+ F" d* Z' {+ G$ @- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=, E4 O! q( N) C" @
- ;===================================17|10|2024===================================: @& Y% K$ r- e' p- ^
- & s# ]9 ?* k. z
- ;(Command "-units" "2" "8" "1" "8" "" "N")
+ Y7 S' _/ u- N- J1 v - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)! V; ^8 S: v) Z( t+ u# P& A* \
- G: {/ _( K( L q- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=' o$ @) x& k) c7 r
- ;===================================17|10|2024===================================
4 S0 Y R% M2 A; T - + x+ l4 f# ^6 v* \6 Q$ \
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====' x* F8 C2 X! {2 \9 e, y
) z% F8 L, \: ^1 Z5 l6 U% x- ;======================== DAT NET IN & TI LE BAN VE =============================( g/ G" Z4 y+ A5 Z4 e9 X. P
- " l) z7 v' o+ B. h# V
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
3 J# W, Q" D) H) {2 M/ X - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================5 ~. J9 M$ r' Y% G
- ;=============================11|07|2025==============================! L' @6 {" [$ x/ T. I
- ;Ti Le Ban Ve - 1 : 100! q0 f) P4 H ]9 w9 T
- (Defun c:kta4 ()
0 ~$ V! `/ N1 N7 d - (setq mv_sc 100);Ti le ban ve$ @& y6 S6 \- |' v b' E0 W
- (setq x4 297)) S$ ]6 M$ D! G0 u8 `
- (setq y4 210)1 j0 C' p9 n- x |, G% J
- (setq x4 (* mv_sc x4) 5 R& K8 S" d ^
- y4 (* mv_sc y4) )/ _ |* g5 L2 I# z8 [+ ?4 u2 T
- (command r/ D7 o2 H/ A Q5 i9 i) [/ t% ?
- "LIMITS" "0,0" (list x4 y4)
6 j/ O$ U" s- V: I' u: r - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
4 w3 x6 X: k# P" W, c, ^( C( M0 D: i - ;Khung CHU NHAT Chinh
9 V, C! z& O. m4 D) }! q - "RECTANG" "500,500" "@28700,20000"
! \) M/ ]) ]; V6 O3 e" E - "RECTANG" "700,700" "@28300,19600"! T# R7 H7 Y: L" B# d
- ;Khung Ten Chung5 ^6 w- b3 d& f; D1 ^, F
- "RECTANG" "700,700" "@8000,1250"5 y) I2 A7 f+ @- h! E5 t
- "RECTANG" "700,700" "@17300,2500"
# `8 H8 o7 j7 C% G2 b - ;Ten Ban Ve+ h% `9 V+ `$ u5 \: Y8 `# D
- "RECTANG" "18000,700" "@11000,1250"; L+ V2 I( L9 B0 W
- "RECTANG" "18000,700" "@11000,2500"
: L. q& ~6 |% o+ I - ;Khung Ti Le + Ngay Thang Nam
4 X, O( B: p& J4 t# V8 R - "RECTANG" "22500,700" "@2000,2500"* j$ o1 Y- G% t5 r1 i& P; }' {
- ;Khung CHU TRI( t0 c5 l2 z' ]! j8 A
- "RECTANG" "8700,700" "@3800,2500"! F. p+ f! R% k# ^2 x% Q8 k d+ Y) f1 z
- "ZOOM" "_a" ))
: b r8 \. ~) }6 Y' P. T - ;=====================================================================8 r1 X# ~* d+ \ a/ o5 c- d
- ;Ti Le Ban Ve - 1 : 100
8 U! o4 n' Y, Y - (Defun c:kt4a ()
+ z' F, x6 U6 v/ T7 w) q - (setq mv_sc 100);Ti le ban ve: A S) z! Z' d4 O
- (setq x4 297): N8 W- Z( T! G1 B7 I. P$ z
- (setq y4 210)
5 k+ J8 D1 e( w% C5 F - (setq x4 (* mv_sc x4) / e8 m' {+ s) p) A" L; F
- y4 (* mv_sc y4) )
, |1 P+ D8 Z. [- }/ m6 a - (command
& F: j8 s5 a2 ?' L( t. ?% n4 Q - "LIMITS" "0,0" (list x4 y4)
3 u- M2 Y8 |: w6 u2 e5 C' s - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
2 k. ^5 N- x [( ?! A. Y - ;Khung CHU NHAT Chinh & ~) z, W) r* @* H
- "RECTANG" "2000,500" "@27200,20000"
0 ^2 _+ p& k- v3 D8 u4 j" y3 f - "RECTANG" "2200,700" "@26800,19600"
, e; s' Y9 E9 o8 t$ f - ;Khung Ten Chung" \0 t* @$ s" _/ u \
- "RECTANG" "2200,700" "@6500,1250"
: P9 R+ K% A3 p. E# C - "RECTANG" "2200,700" "@15800,2500"' h! n( F6 R% _8 r# ~8 O) m
- ;Ten Ban Ve4 g; o( O( I3 q
- "RECTANG" "18000,700" "@11000,1250"
% R1 N5 ?; O( |3 S% F, \ - "RECTANG" "18000,700" "@11000,2500"+ p1 R4 N0 _7 m ~6 a$ u5 O K3 d
- ;Khung Ti Le + Ngay Thang Nam
) ^+ R7 U) u$ k! i: v2 R x! z' { - "RECTANG" "22500,700" "@2000,2500") f& E6 t; m9 m
- ;Khung CHU TRI
9 v0 W6 n5 r+ e - "RECTANG" "8700,700" "@3800,2500"5 q' d+ T3 O5 a7 W
- "ZOOM" "_a" ))
5 ?- o6 H Y& d# Z# I) Z2 l
# I6 _- [! c0 C }' Q* d$ o- ;;; ============================GHI CHU Khung Ten========================6 P, Y H! t8 d1 p: e
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========# g5 b9 w" R) j9 h5 \! J
- ;;; =======================Thuong Dung Font Romant.vnh===================2 c, i7 o6 W, L S t$ o
2 D' ~* T. ]- O6 o# u- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)' z8 d1 s- S9 w2 ?3 z$ E9 A A1 q
- (setq oer *error* *error* err2)& U( g$ F p6 D) s) Q. f
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
, W, j. A, Y. v+ D - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
9 W' N3 m: q! x7 S" S% @, U% p - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))6 `! d% a7 f! b2 k: g3 ^
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))# H4 m& ^+ z: H; r- b0 x9 N
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
/ e9 a1 c) N* p: u! B! H9 i* ~ - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))( v _7 Y+ F3 x* ]' }1 d# {
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
: n% P$ e0 L; W& {' L f; y - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
6 x1 m; G* t! D/ c6 T/ t6 i - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))/ ^0 e" L9 M. q8 D9 }. Q# |& m" X3 s3 G
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))% I/ m) I n! e5 I+ Q6 D9 W) f
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
) } b' J+ T& K8 l0 M" O$ c: o - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
9 Q8 \1 ]' ~' L( r, W - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))& v' N- L+ E' B- e! `
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
8 E7 A6 z' |/ y/ P4 r; q - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
9 [0 q7 Y; T+ N, V7 r - (setq pta (getpoint7 ~4 X! g9 ~" H
- "\nPick first corner. : "))* x8 F. S7 F$ t9 t. K+ U
- (setq ptb (getcorner pta, i' q! Y4 x1 A/ u; O( C2 A' d
- "\nPick second corner. : "))
3 V' r! I) L/ ~, D - (setq ptc (list (car ptb)(cadr pta)))
" L+ j5 l/ ]8 k3 G4 u - (setq ptd (list (car pta)(cadr ptb)))
9 Y5 v$ n$ k6 b* c( w - (setq ang (angle pta ptb)); y1 j2 r$ v7 Z% T6 } D
- (setq d1 (/(distance pta ptb) 2))3 m1 Q0 f+ Z3 p+ h
- (setq cp (polar pta (- ang (dtr 0)) d1))
' h% g, W) ~ X1 N4 w- s - (setq X (distance pta ptc))
: \- j: {2 N! |- y, R( O; e - (setq Y (distance pta ptd))* V; h* l$ H9 l
- (setq X1 (rtos x 2 1))
1 K7 T* O$ i9 c) f' }* B - (setq Y1 (rtos y 2 1))1 k% M) e5 C* y; _1 o
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))+ ` L) I1 @" N$ ]( T
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
* v( G% ~% e4 k - (defun dtr (angg)
, O! y/ _! M; g. t6 U - (* pi (/ angg 180.0)))& H( f8 E0 R1 r L, X
0 ]0 w+ [& Y; S% K, }' A" A- ;=====================================================================
# |1 }; z- w1 y4 I8 `7 s - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================/ D& w& v- q8 W7 g& B" z
- ;=====================================================================3 @+ j, A$ D* Z8 N) I6 i3 s" ~
. x/ r7 B/ v: x# T- (Defun c:a6 ()/ \+ m3 C5 ^% Q! I! g
- (setq mv_sc 100);Ti le ban ve
% e5 a6 T& M3 v* L - (setq x4 74.25)* q+ B5 o8 l3 G* \% T1 e& d
- (setq y4 52.5)
* A( ~) r0 V- g6 l# b0 b - (setq x4 (* mv_sc x4)
! \/ ^$ M# P! q5 ]8 s! |& P - y4 (* mv_sc y4) )/ ]$ U0 S! D3 P2 }% _# [
- (command
4 B& K; p7 D5 I6 {/ g6 V - "LIMITS" "0,0" (list x4 y4)
4 ^6 W; Q" u: k1 E - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C") U! i- r- X U0 V+ b! H
- "RECTANG" "125,125" "@7175,5000"
0 b4 M1 |1 ~( L) h G$ @+ p& n - "RECTANG" "175,175" "@7075,4900"; L9 S9 e, G$ t7 E
- "ZOOM" "_a" ))2 J1 e) e) `) m+ L- t1 e
- ;=====================================================================. F/ o& y7 d0 d6 W! m" R7 ^
- (Defun c:a5 ()
/ W: ^, K" ]. e1 h - (setq mv_sc 100);Ti le ban ve
* y2 X+ p2 l; S! ~ - (setq x4 147.5); ]$ X. E' u# @& G: r
- (setq y4 104)
: F: Y4 Y" P7 F9 _ - (setq x4 (* mv_sc x4) 9 {8 \& L2 r1 P4 @1 ]: R! X ]& N
- y4 (* mv_sc y4) )
% e" Z; M' ^8 E" Y - (command
' p- }6 t- k$ [" ~ - "LIMITS" "0,0" (list x4 y4)" S0 a; ` b# c" ]# [5 Y
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"8 j& E! K1 Z, {
- "RECTANG" "250,250" "@14350,10000"
& N6 u' P- I/ m! p4 I - "RECTANG" "350,350" "@14150,9800"
$ i& r+ w2 m4 A5 Z+ [ - "ZOOM" "_a" ))
4 ^4 f9 n* B/ V$ }/ R - ;=====================================================================
. u) [) f0 J) P - (Defun c:a4 ()
0 Z' O& Y7 ]& j7 T - (setq mv_sc 100);Ti le ban ve
& r7 t. k; @% ` - (setq x4 297)
3 @" s3 K' E x5 O - (setq y4 210)/ m. T- q+ q7 r7 D
- (setq x4 (* mv_sc x4)
0 r' B) R5 M! W U' Z# l - y4 (* mv_sc y4) )4 A9 M6 P& B6 F
- (command 8 x9 _& r ^+ X) g3 k. a
- "LIMITS" "0,0" (list x4 y4)
8 Y' V1 J: r% z% ]% X& B - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
`/ ]6 i1 f4 i0 W+ h - "RECTANG" "500,500" "@28700,20000"
7 v/ f" Q7 |7 e* D2 w - "RECTANG" "700,700" "@28300,19600"
, B+ k" C* I* C - "ZOOM" "_a" ))
' `8 ?; N: ^# B5 {! W7 G - ;=====================================================================
4 }$ h& {& N( C9 p - (Defun c:a3 () X9 }- M4 h+ ?; y( K9 t0 y7 h
- (setq mv_sc 100)
. ]" v' L5 ~$ V% Y: v. _ - (setq x3 420)
$ v+ I: x `5 y% B3 U0 Y& b( g% u - (setq y3 297)
* @ o5 Q" n; m: P - (setq x3 (* mv_sc x3) , u3 _1 k3 J7 u1 n+ |' x; ?
- y3 (* mv_sc y3) )8 e/ T/ Q) \+ e, r: o
- (command
- ]0 j& t6 d' c; K6 L - "LIMITS" "0,0" (list x3 y3)1 m3 e6 h( D( j& I3 q2 m
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
; B$ @4 y' a% _6 K. a7 ] - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
6 ]) p/ g3 i3 J! h6 F7 S0 q - "RECTANG" "990,990" "@40024.28571429,27720"% n. I2 r b$ H, V& e2 o
- "ZOOM" "_a" ))
. R7 d$ R& h: I) _' n n - ;=====================================================================6 \' }$ I& a9 @5 b
- (Defun c:a2 ()
* v0 p1 K' ~' h x: M - (setq mv_sc 100)
: ~. \) M3 b8 c9 R3 g, F# R - (setq x2 594)
! u. |7 v6 x* b3 Z - (setq y2 420)8 ^' M* c6 P% G1 |+ g1 _
- (setq x2 (* mv_sc x2) 3 [2 x. \0 Q5 y4 y3 K& V, d
- y2 (* mv_sc y2) )
* S+ k4 A8 f! o; }9 ]( ]6 D( d - (command
3 d( V# @9 W6 V" v# E( Q0 Z - "LIMITS" "0,0" (list x2 y2), W8 J% \( m) P# y* u1 B$ P: R% N
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
& S5 X+ M1 _/ i6 d4 d2 N8 P! p - "RECTANG" "1000,1000" "@57400,40000"3 ]1 e/ v r h! P
- "RECTANG" "1400,1400" "@56600,39200"1 U7 y6 X$ T/ O; h/ \% H
- "ZOOM" "_a" ))8 ^: c& v0 }5 y
- ;=====================================================================+ f, d; Z3 P- T; H' k
- (Defun c:a1 ()
3 b. y- c- q4 {4 R% p' \+ y, b - (setq mv_sc 100)3 Y. r! P* F3 E+ ~% p! ~
- (setq x1 840)
/ I' e- K/ E( c- X - (setq y1 594)# z4 z* x$ K% x% L# Y; q) {! D
- (setq x1 (* mv_sc x1) ( D4 o0 `! d: C, v E
- y1 (* mv_sc y1) )- z* \2 @; I( t9 R8 `8 W
- (command
+ ~/ H# z' b" L3 T5 Y% S# z- X - "LIMITS" "0,0" (list x1 y1)6 v, H# G& Y7 K8 O% H1 A U
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C") g1 `! D% I$ F8 G/ c( k$ b
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"6 d6 f1 s$ B; U3 m/ N' V* S* s
- "RECTANG" "1980,1980" "@80048.57142857,55440"
$ @' |2 d+ a9 M, G7 x" N* @3 [. R - "ZOOM" "_a" ))
& a7 y9 D! c: V - ;=====================================================================
* L) u9 I. d. D - (Defun c:a0 ()6 J+ w1 J: N2 S! Z8 V$ A
- (setq mv_sc 100)
3 \1 \; A& p+ q0 }0 S% Z5 x$ G0 A - (setq x0 1188)# B% r7 S& q; ?/ d ~$ P7 {3 [3 {
- (setq y0 840)$ t8 c: u' r n8 ?
- (setq x0 (* mv_sc x0) 5 a% K1 t: I1 P/ J) U/ D: P1 Q
- y0 (* mv_sc y0) )) P" s# a- }* L$ N; r6 `6 R
- (command
* v4 d; h8 @7 K5 B - "LIMITS" "0,0" (list x0 y0)3 g4 g1 U y/ ]: j D @0 D* v
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
, W/ j6 b+ H: s, m- d, [ - "RECTANG" "2000,2000" "@114800,80000"
, ~7 ? Q' |! k" J9 V - "RECTANG" "2800,2800" "@113200,78400"& p2 n* t% `4 x, Y( s4 @+ f5 o
- "ZOOM" "_a" ))
5 v% h* S; V8 V; ?% {! p
8 Q) ^+ u* ?/ ?# ?. E% r. V- ;=====================================================================- R2 k$ }# { l* x, P
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
1 y' Q. B5 N, P - ;=====================================================================
2 |3 ]; F0 c5 L. m5 A - h: A' V& k+ @) g+ p
- (Defun c:6a ()0 `1 r2 t( S- @5 n# b6 K6 z
- (setq mv_sc 100);Ti le ban ve b; F, ~' [9 p- H3 M1 ? T
- (setq x4 74.25)
. ] L& A/ ? U9 S6 M - (setq y4 52.5)
: }2 U$ W& n; Y$ A5 \) q - (setq x4 (* mv_sc x4)
7 X1 O" }' \$ Y3 H0 |6 M! S - y4 (* mv_sc y4) )
) s0 j' R7 F8 v, k6 W# i - (command
( x4 @& k" [9 L! B* k; x& g - "LIMITS" "0,0" (list x4 y4)4 S: Q. S/ _9 v+ `) V E- j! {
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
: y( k$ K& k% d0 o; p. n - "RECTANG" "505,125" "@6800,5000"
$ W+ Y( O+ h) m. u+ _+ } - "RECTANG" "555,175" "@6700,4900"
/ c) ~& c( P+ k, w* d( s - "ZOOM" "_a" ))$ ]+ t+ R& V3 L
- ;=====================================================================
# C- G: J' O1 P$ N - (Defun c:5a ()- ?: H& e8 Q$ B
- (setq mv_sc 100);Ti le ban ve
$ r) I1 l% M1 \8 q" o' f - (setq x4 148.5)
6 H+ f: y/ l- e7 [/ c& K - (setq y4 105)2 u- k+ V' m/ b. y5 a3 g7 l" y
- (setq x4 (* mv_sc x4) 8 M E: g- H; w8 s
- y4 (* mv_sc y4) )+ `! B( N6 ?. `% I$ k
- (command , e& f2 v- L: g# @9 K, h( E/ I5 v
- "LIMITS" "0,0" (list x4 y4)
: V) q9 r6 Y# ? f1 s7 | - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
& G, ^7 s T1 J+ b7 l - "RECTANG" "1000,250" "@13600,10000"
% {! l H1 g8 I5 ^7 N& {: |3 A& g - "RECTANG" "1100,350" "@13400,9800") [! H J# q K' H$ C
- "ZOOM" "_a" ))- E$ `+ G i5 d/ |% R$ U7 S. V8 y
- ;=====================================================================% W- H8 g" c" ~
- (Defun c:4a ()2 M% `8 _% K N9 ]
- (setq mv_sc 100);Ti le ban ve1 {8 h' d8 [5 Y4 z) W/ @
- (setq x4 297)
2 d. o3 J) v) K# l - (setq y4 210)! Q; k2 B( Q4 u7 s: J$ l
- (setq x4 (* mv_sc x4) 0 r# f( P+ u4 l
- y4 (* mv_sc y4) )
8 ^4 T2 m6 a9 m8 y$ }3 I# W8 z - (command , V8 |+ j: Z: R9 s" x8 B" }; U* n
- "LIMITS" "0,0" (list x4 y4)+ T5 c7 D0 A: h1 f
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"+ P. R( p/ M& s6 L1 w% W
- "RECTANG" "2000,500" "@27200,20000"' i; `7 b/ t4 q8 h
- "RECTANG" "2200,700" "@26800,19600"
/ m3 [* X& K+ n8 b7 t - "ZOOM" "_a" ))$ P" I5 a9 l4 ?3 s0 S
- ;=====================================================================) l. e2 D& f% ]
- (Defun c:3a ()
* \6 t9 j1 G$ Z0 U7 ] - (setq mv_sc 100)1 F0 N. S3 k; [% n
- (setq x3 420.0428571429)
3 a/ {3 {8 ?& n" k$ r' s - (setq y3 297)5 F* `6 l2 Q2 a' W7 h
- (setq x3 (* mv_sc x3) 3 ]; j- n# S f. u
- y3 (* mv_sc y3) )2 n: y$ }' g7 W, C
- (command
# P9 T0 g; B* E: X - "LIMITS" "0,0" (list x3 y3), c# K; y5 H. t3 `
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"4 r* J7 \7 z2 n7 O, w5 l
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
6 T) A- e3 G. w) z" L- m - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
}, O) N7 ]+ |! i, B5 j. D I5 P - "ZOOM" "_a" ))
$ L( F4 k, I: k9 H - ;=====================================================================+ h# p5 Y. P1 U8 Z0 b+ N8 D+ _9 G. X
- (Defun c:2a ()
# K ~* ~; e) N8 B- v - (setq mv_sc 100)
8 ^ E; n* }" }0 }4 ]4 J5 `- a - (setq x2 594), U; N) [( T& W
- (setq y2 420)
2 }1 x8 f, J8 ^+ [$ J) P4 v - (setq x2 (* mv_sc x2)
8 O7 l: W5 J: {0 z5 G - y2 (* mv_sc y2) )8 F6 s$ @" l, p+ T* e0 ?
- (command 3 c% V& F( L8 _4 T& {* W$ _
- "LIMITS" "0,0" (list x2 y2)$ H; p& B3 i5 ~! k7 M- S
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"" V0 y8 T1 V# _6 E% I
- "RECTANG" "4000,1000" "@54400,40000"
4 R( \! l# j6 L- T+ P - "RECTANG" "4400,1400" "@53600,39200": o0 R/ F* U- u. J
- "ZOOM" "_a" ))
8 [9 R5 q) f. l! e2 K+ J: d - ;=====================================================================
+ _" W8 t& D. r5 b: H; p4 r8 D9 K - (Defun c:1a ()7 e, q0 G0 Q a& l& I, J: d
- (setq mv_sc 100)$ H8 b; o# I \8 }6 R5 f, _& d
- (setq x1 840.0857142857)
# E% D( g2 A8 _& b - (setq y1 594)* S7 z% O- u" D$ ]9 y
- (setq x1 (* mv_sc x1)
& z4 D) ]" p! q& L) v1 V* ]9 M - y1 (* mv_sc y1) )
' n: q" I' w6 X4 k3 B) Y5 Y* Z - (command 4 \+ C) F7 c$ x
- "LIMITS" "0,0" (list x1 y1)- V% X, p( d: R6 V' f) ~
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"9 N5 @! l7 S% @% @9 {% t
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
+ G- c+ j: w& p% J) ^ - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"- c0 r6 q" R& j2 k6 h/ N
- "ZOOM" "_a" ))
5 A; l/ `5 P/ p - ;=====================================================================
5 E% `0 B8 ?4 l' Z( l0 ]$ N; d - (Defun c:0a ()$ z! }! e: r5 p" B6 n! V, M2 Q% X, r
- (setq mv_sc 100)7 e: Y7 ]5 |5 C3 ]4 Q" h% P
- (setq x0 1188)% I7 Q6 I. F0 `9 X4 [
- (setq y0 840)" L, Y2 h* F$ ?: p6 T: l
- (setq x0 (* mv_sc x0) " _8 q1 q7 B9 Y9 c
- y0 (* mv_sc y0) )
/ t* ^. ?) _- R; E. ^ a5 {5 h - (command 8 }& k( l. s* L& c' w* C, ^$ a7 {
- "LIMITS" "0,0" (list x0 y0)
4 s3 k& Z6 K- F* @3 y- { - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
5 U- A# |2 `' l n1 h) P - "RECTANG" "8000,2000" "@108800,80000"
+ V. @+ M& g ~4 X& U - "RECTANG" "8800,2800" "@107200,78400"
$ q9 ? _% u, g; M - "ZOOM" "_a" ))5 X, h0 d- `* o
- 0 w: z1 G; o0 x5 I# a% ^1 _
- ;=====================================================================7 J6 ]8 A2 k% L5 D- u" e3 {
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================) s5 g* x4 S8 J2 k* u) c* L) m
- ;=====================================================================
& U8 s3 i0 ~. v/ c+ g$ D - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)" `/ _' L( U; f2 C8 h1 x4 c5 O
- (command "undo" "be")
]5 W* |: B: p G - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))9 M6 D: X1 k% ?! J, a
- (setvar "CMDECHO" 0); w& S( a) I" F# Y% o" Y
- (setq a (getpoint "\n chon diem chen :"))
; f" s7 ~2 J* X8 W3 u. X - (if (not TL) (setq TL 1.00))) i( I/ z: Z5 @: s$ u
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
+ _$ m0 Q. X& O7 d4 x* d2 F* a - (if TL1 (setq TL TL1))3 o0 \3 o$ A6 p6 n5 @
- (setvar "osmode" 0)
& h: e* _- P) u: @ - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))8 S$ v$ ?5 {2 {4 k# f) @) q
- (initget "0 1 2 3 4")
. y3 e8 B( ~0 Z - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))$ F9 @: p& ^2 G c M
- (if (= kho "0"): x1 p" L: ^9 I( x! D
- (progn
. [$ m3 p% ?4 O5 v - (setq b (polar a 0 (* TL 1189)))
7 ~/ Y4 x- v/ @' A, d - (setq c (polar b (/ pi 2) (* TL 841)))6 A! z2 \4 A5 i* v& g
- (setq d (polar a (/ pi 2) (* TL 841)))
) _) r$ F0 ?3 B N; z% }: B2 W - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
3 H! h8 I+ K/ F {- i4 d - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
7 ~2 i) b. O- \+ } - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))9 T* }9 l$ Z/ y7 V0 B$ R
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))2 ?2 N4 w6 o b- J
- (command "Pline" e f g h "c")
. A+ a, |/ x, Z - (command "change" "last" "" "properties" "layer" "0" "")! X6 f/ ~! o. p
- (setvar "cecolor" "4")
9 x7 p; Y, ]. p3 G) y - (command "Pline" a b c d "c")$ F( P% C5 d8 N/ e. F2 a |
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) 9 j, Y; Y; r. P, M# C1 M/ y
- (if (= kho "1")" h& ~/ r8 F# e, L# L& `7 k
- (progn; m, ?% m$ B" [; ~' }$ p
- (setq b (polar a 0 (* TL 841))); N1 a+ n" W$ s& z/ U
- (setq c (polar b (/ pi 2) (* TL 594)))2 ?) i/ C2 q+ r3 d4 O {
- (setq d (polar a (/ pi 2) (* TL 594)))
! c; q, b4 d8 E+ Y) ?7 l* g5 C - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))* d/ q& O8 K7 c. U- [
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))
, y- k q7 R9 ]0 D3 _ - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
; x4 H) q1 L# C1 o& u6 J! c ~ - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))8 U2 a {' M* J/ ]4 ?" {+ y: @
- (command "Pline" e f g h "c") 4 v$ `$ I, i6 w5 k- E8 F0 ]
- (command "change" "last" "" "properties" "layer" "0" "")) K' a7 L! I: V1 f* u
- (setvar "cecolor" "4")
1 A* O* `# Y7 T% T - (command "Pline" a b c d "c")3 ?# t* S- {, ?; u& g: L/ [3 e, o
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
6 i* X/ y a3 | - (if (= kho "2")8 w. v8 i) |: H' W s. v
- (progn" ~; D: R% h# X; |+ i: w
- (setq b (polar a 0 (* TL 594))), N- d+ n, f. P1 G& Q: F, K/ ]
- (setq c (polar b (/ pi 2) (* TL 420)))
$ t0 f9 ]% f6 @, w5 B0 K - (setq d (polar a (/ pi 2) (* TL 420)))
' c3 g" N7 f' h$ d, @3 ~ - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
* c0 v* n; Q0 m - (setq f (polar e 0 (- (* TL 594) (* TL 20))))
4 V' M* }! {* V* v4 D1 _% R3 P - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
0 e) E7 M2 t' H* l0 Y. {! w - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
' [' f6 U& U3 x - (command "Pline" e f g h "c")
( {$ g, z6 C ?& g( L, I5 } - (command "change" "last" "" "properties" "layer" "0" "")
7 M# W% K" w9 [- o - (setvar "cecolor" "4")4 Z. |3 [8 S; O, U. X, z
- (command "Pline" a b c d "c"), C; i7 e+ u- J" y: v& K
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
6 Z0 D' U, [: {6 g* p - (if (= kho "3")7 ~8 Y. t( A4 g/ z2 K% ^8 _
- (progn
& Q: E0 q( h5 @9 f1 `7 S+ E - (setq b (polar a 0 (* tl 420)))
6 S) f4 Z. v6 @* P - (setq c (polar b (/ pi 2) (* TL 297))) N3 P! O% I+ N4 l
- (setq d (polar a (/ pi 2) (* TL 297)))
& [' @2 t1 S3 j; l) a1 P- r - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))). \/ `& w0 N) ?& z( `5 @% j; Y
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))5 y+ L* v7 a( e1 V! k! R/ R
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))# Y" ^; ]9 A2 q4 E1 @) K
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
7 s/ ?" A, G# q8 b! b @ - (command "Pline" e f g h "c")" R9 Z+ P# h8 ` ?: x
- (command "change" "last" "" "properties" "layer" "0" "")
H2 V+ G" v# m M4 r: l% H' O - (setvar "cecolor" "4")
T6 E" U; Z) U! ~0 b - (command "Pline" a b c d "c")
4 R( b' H v8 l+ D - (command "change" "last" "" "properties" "layer" "defpoints" "")))
3 H) k3 k3 K$ M k - (if (= kho "4")3 k. H7 R6 Z1 T0 K. g# F3 c
- (progn
9 [, ?# e/ }: M2 O - (setq b (polar a 0 (* TL 297)))
' {8 Z! e3 v# B! p4 ~7 D# Q4 y - (setq c (polar b (/ pi 2) (* TL 210)))
8 |4 L! U' ^; m; Y - (setq d (polar a (/ pi 2) (* TL 210)))
& [+ M$ s* V, R - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))* S' ]! x9 J( k" q4 X
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))! p( W: r* c! D0 f& a4 L4 Z: ]) Y
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
, B/ y# ?. e. D; s+ X F+ \ { - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))+ x6 N- G2 K N# x8 o; l) b! H/ l5 ~1 p
- (command "Pline" e f g h "c") 5 G" Y9 Y$ r/ o# R
- (command "change" "last" "" "properties" "layer" "0" "")0 I. n" U# w8 J5 K
- (setvar "cecolor" "4")
5 v B4 g0 O# {& J7 } - (command "Pline" a b c d "c")
$ P" w$ ~' q H5 [9 I* r8 | a - (command "change" "last" "" "properties" "layer" "defpoints" ""))). L3 S3 P$ f+ j
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
6 Q3 J6 J3 N/ {3 U7 S8 ^! p - (command "undo" "e") {5 C) x! H6 O3 t
- (princ)), n( s- r3 E% g3 Z- m6 m) J
- ;=====================================================================
, A+ G0 ~' ^3 P2 x9 ], C - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
7 L1 s( O- x5 q - ;=====================================================================* K, b' H8 W( X) I' [: r
% w s) q: n, N- ;=====================================================================
& t2 C, @3 u. O% n - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================- t: Q1 u) i/ R" n# ^' H
- ;=====================================================================8 Y! f5 U/ x. z
) e4 x4 c' @: u4 N- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
0 u+ Z- y+ w4 T" A2 N: w, p% F6 o/ h - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
# {' y& c- A8 h7 p - "M" "MANH" "C" "9" "" "Lw" "0.1" ""' S7 L0 a7 i# @$ I
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""! D5 _4 ^- w* d, r* g& R% g& F8 H
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""2 X) F7 e3 `, g
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""6 s. ?2 h4 l7 H
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""8 `. W4 Z6 M* W" J3 x' n
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
% [0 D# p; Z, z4 y2 B2 [3 E - "M" "COT" "C" "1" "" "Lw" "0.3" ""
* n) D5 x: v6 |5 S4 m5 q9 w; o m - "M" "Defpoints" "C" "7" ""
8 A+ S `" m. a/ f6 T" b5 D - "M" "0" "C" "3" "" "Lw" "0.12" ""% h. A; t ?* e7 J; O% `
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
& k; q0 W- ]/ Z) ~ L - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
7 P0 L$ ?3 s( q6 }+ u* ?9 K+ h - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))3 U7 Y5 H2 p$ ^( |: p8 T' F
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""0 o& C$ F) |7 M4 P1 m) i
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""; h* n* v; s N
- "M" "MANH" "C" "9" "" "Lw" "0.12" """ B5 P+ k2 ?/ i' X* g* Q' C1 }
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
- T% B+ R3 }7 ~7 T! N( y - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
8 i* w4 G/ m$ S. Y5 I. | - "M" "THAY" "C" "7" "" "Lw" "0.2" ""8 j- b. R+ W$ N! A
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
1 H% u+ ^. j0 m3 @" o- d( j - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
; D8 a! Y# y4 u' t' s - "M" "COT" "C" "1" "" "Lw" "0.4" ""
+ ~# s+ J. U; E* M ?5 H - "M" "Defpoints" "C" "7" ""
( K4 m' E2 t0 k" P* p# h - "M" "0" "C" "3" "" "Lw" "0.2" ""
! H: W! w2 T1 f3 v0 @ - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
* @- V9 E) |/ Q/ r7 L - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
: X7 [+ m5 \: P1 E% ~ - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))( k+ w3 I/ f$ G3 V/ m
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" "", G* d6 P1 Q, E
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
6 q9 n" m; I& _% ^% {% x/ @ - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
0 H% Y4 i: a# b$ B - "M" "TEXT" "C" "7" "" "Lw" "0.2" "": Y6 m. |8 \& H
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""6 P# \; H4 d- e4 Y @
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
G7 [- M; [9 Y; `8 u: H+ A/ A- Y - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""# f Q# s& x, Q6 S3 X
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""! E$ H6 R7 R! |% |1 ~* ^
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
. o$ Z6 d# v5 G - "M" "Defpoints" "C" "7" "": W, j) j3 [5 R
- "M" "0" "C" "3" "" "Lw" "0.25" ""
8 c/ ^ l5 j7 w" {2 W3 b4 ^3 L) i - "M" "CUA" "C" "6" "" "Lw" "0.25" ""
, h- C' E4 O6 }2 u$ N8 c8 y( u/ Z2 m - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""% _6 m; l- c8 Y4 I
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
$ q# u- ]. L4 ]5 }+ q, t -
6 v5 H( o! W" ^; ?1 J+ i; L - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
! J9 M! B$ S* L5 \8 ^3 | - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
; M& R' {8 q( m+ j) B+ B - "M" "MANH" "C" "9" "" "Lw" "0.25" ""1 l( s% a* b+ g, R" T4 \$ T' T
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
: l3 C+ f/ G: I - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
/ r7 f* u2 z9 y. c# y - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
- ]% i0 U& x1 g1 E7 t - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""& o& i8 l0 K# U [6 x- M
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
- P% A+ S/ Z% s4 s7 j - "M" "COT" "C" "1" "" "Lw" "0.7" ""
; g# r6 ~& P' w - "M" "Defpoints" "C" "7" ""! i! u5 w t) d" l- [3 q
- "M" "0" "C" "3" "" "Lw" "0.25" ""% R A& p3 y3 q* P1 ^/ F6 k: F
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""5 N0 a' q" ^0 d# p7 X+ R
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" "", r' A# @2 }+ S
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
/ o3 [3 a _" c! O4 d9 L; I - 7 J0 z7 v7 K8 F% T
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" "": X6 ] z# p {9 E: h/ D* G
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" "": @( z0 H+ u: `) }+ h
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
3 U5 c) r9 T' h" ` - "M" "TEXT" "C" "7" "" "Lw" "0.25" """ ~( n+ _3 T& d5 m; _# G+ o
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""/ _) \$ m+ \* u# {* S# G
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""2 I5 @& U1 U$ [4 M: N: b5 E
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" "" ?# K$ J, ~( ~, i/ o5 W' ^" D
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
; K% Z/ h1 j5 [! i" I. V# a - "M" "COT" "C" "1" "" "Lw" "0.7" ""
6 k( h0 C. ]4 z) x/ E6 ]' }0 K. T - "M" "Defpoints" "C" "7" ""
8 H! V5 Q, y4 I: n - "M" "0" "C" "3" "" "Lw" "0.35" ""
( n6 u! b8 \- @- y" L( T5 W" Q - "M" "CUA" "C" "6" "" "Lw" "0.35" ""2 n8 r/ [$ ?: Z
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""+ _2 c6 P* ^2 g" b& P- j* ^
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))/ T) ~# `" K- _2 N7 C9 u( x+ G3 x
- # A; v) Z( ~9 _ y5 Z
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""* P) l8 {; p! k0 S8 [, x g
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
& L% O% R* m- n9 j - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
$ Y3 r+ F ~" i# \ - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
' k3 ~4 r6 a/ Z. T2 | - "M" "DIM" "C" "1" "" "Lw" "0.35" ""& W1 Q/ |( x m: Q
- "M" "THAY" "C" "7" "" "Lw" "0.4" "". W) R) W. J X; B
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
/ X0 ]1 N$ f+ `+ q0 j2 P - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
. ^0 r9 ?/ W' ^, l3 Z - "M" "COT" "C" "1" "" "Lw" "0.85" ""
/ r. ]1 a0 P V/ z9 ^% L& r/ O' | - "M" "Defpoints" "C" "7" ""1 P* U! v3 P/ r
- "M" "0" "C" "3" "" "Lw" "0.35" ""* `) W \2 C7 ^5 P0 c4 ]
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
0 ]( Z3 o4 J: l" H) b - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""+ \ a3 ?0 G8 t& z, S3 p
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
3 J7 v( Z% y' V Q- Q) i+ a' E V -
9 ~9 H/ b- n7 O) `! ]$ V" A - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
[9 v) h, x( v/ N( [ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""! p! `* Y' S/ I! b7 g _
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
0 l2 [6 D4 \3 f - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""* c( P6 f5 v; @8 q0 f1 A
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""7 M" J) G9 \ {
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""
/ z( j' z) j! R8 \( A - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""5 Y# ~1 K! U; I$ o$ h
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""2 ]* a4 W& l0 N9 T/ c/ z* T
- "M" "COT" "C" "1" "" "Lw" "0.1" ""# Q) ]6 @, L' i6 Y% `. ~8 R
- "M" "Defpoints" "C" "7" ""* O$ B P- p8 N* ?1 H+ |
- "M" "0" "C" "3" "" "Lw" "0.5" ""
. L8 ]4 g0 }' N: Y8 _9 W1 ]' ^ - "M" "CUA" "C" "6" "" "Lw" "0.5" "". D! A( N) L& j r; v
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""5 N; k2 \( d) x% }: b: p! C
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" "")); k( [7 p& Q4 Z! u; ^; i) q
- (DEFUN C:O () (COMMAND "OFFSET"))
; j: V- t$ t! s - (defun c:s1 () (command "surftab1"))
7 S$ [$ m1 V/ l1 O( ` - (defun c:s2 () (command "surftab2"))
0 G8 K1 J) ?1 z/ f6 }! z - (defun c:ep () (command "explode"))* M/ t1 ?3 O' ^, [; C/ w) I: d
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
4 n2 p* K7 `7 g7 f' S. W% U- s9 I% O* N - (DEFUN C:QV () (COMMAND "QSAVE"))
+ v- ~- ^4 W. ?7 R4 z1 \8 t - (DEFUN C:S () (COMMAND "STRETCH" "C"))& S2 {+ n. w: M- C N( |! o) d+ ?
. b1 d! {5 |3 Y9 B/ s# m- ;************************** CAT DIM **************************
3 T: M( W# B& F) n+ b - # O/ T c% U* n2 N5 L% R/ ]: ?) [
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
5 v# m9 ]1 R1 P5 z( B L9 x5 d' Q. I - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)0 C, q" Z$ ~' b+ W
- (SETQ CMD (GETVAR "CMDECHO"))
% M# W. y$ z' _+ B' |8 h% f2 T - (SETQ OSM (GETVAR "OSMODE"))
2 H1 x7 `2 Z5 v$ z: p - (SETQ OLDERR *error*
, ~* s6 F9 u" R5 ]! T - *error* myerror)
7 X7 U4 d+ d2 h, \ - (PRINC "Please select dimension object!")
! }! k2 {/ {* D( X' n: m - (SETQ SS (SSGET))" E1 Q7 R+ y/ S# }9 [0 k; q
- (SETVAR "CMDECHO" 0)
: }8 K, W$ F) H& _ - (SETQ PT (GETPOINT "Point to trim or extend:")). X( p! v& ]9 @* g7 @' z% }, n
- (SETQ PT (TRANS PT 1 0)). |* e9 o& h% g. q' E9 I4 X1 M
- (COMMAND "UCS" "W")" g9 `( U+ i2 A' \# K1 V6 a; Z
- (SETQ LTH (SSLENGTH SS))
& J6 w( M; A3 z R; i! H4 U - (SETQ DEM 0)* t& p9 W) o. C: B& K8 S* V9 A
- (WHILE (< DEM LTH)
! L# H$ f$ S J& \. ^0 { - (PROGN
" b! @3 E" Y/ [# p1 e1 |* a - (SETQ DS (ENTGET (SSNAME SS DEM))); y% w. N6 |0 ~1 \0 m5 t6 b# G) j" I" }
- (SETQ KDL (CDR (ASSOC 0 DS))) S: ^1 ]5 E! ], ?, Z [
- (IF (= "DIMENSION" KDL)
. Y* {7 }8 f, J; }: L4 E; G" y - (PROGN
7 z, L; Z9 B, o7 ~; s' c& \ - (SETQ PT10 (CDR (ASSOC 10 DS)))
( T. w( E6 I5 V1 h) ]: W" |% U - (SETQ PT11 (CDR (ASSOC 11 DS)))
) B$ I# y N+ A( `0 i - (SETQ PT13 (CDR (ASSOC 13 DS)))
5 ?3 W/ p1 E( d. D) I1 X - (SETQ PT14 (CDR (ASSOC 14 DS)))0 @4 O: P8 Z9 J% B) s6 H7 M* }/ a
- (SETQ N70 (CDR (ASSOC 70 DS)))4 {* D8 P7 J8 h7 j4 L, ^4 b- N: @/ w
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
. N) {3 U6 ?) E$ M2 G" ~ - (PROGN0 d# Y; J: B' y i( }/ M# d& z
- (SETQ GOCY (ANGLE PT10 PT14))4 s0 Q2 r8 I7 k5 p2 |; w
- (SETQ GOCX (+ GOCY (/ PI 2)))
4 D1 X4 [" m5 [, m, y - )9 g) F" D9 o; D, e
- )
4 q* g0 t4 Y) Z7 b0 R7 e2 ?) t1 C - (SETVAR "OSMODE" 0)
0 S l: Q4 M& p f5 P - (SETQ PTI (POLAR PT GOCX 2))
5 c$ N$ }' P/ c6 G - (SETQ PT13I (POLAR PT13 GOCY 2))6 X6 `1 e" _3 V# r$ Q
- (SETQ PT14I (POLAR PT14 GOCY 2))3 W) \& [& l* x! T# v
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))/ u+ _* ~; m$ ?$ ^" e: [! ~6 ?
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
( [" I6 j. X% k0 @7 { - (SETQ O13 (ASSOC 13 DS))
) j1 p% j, j v" N - (SETQ O14 (ASSOC 14 DS))3 [1 n% _5 D5 M# d7 c2 H# H
- (SETQ N13 (CONS 13 PT13N))
& U: o8 _3 y+ [ \" n! _) l - (SETQ N14 (CONS 14 PT14N))
& Q+ ?' l! B; f: I6 O - (SETQ DS (SUBST N13 O13 DS))' x( w4 D" Q" z# W
- (SETQ DS (SUBST N14 O14 DS))! \. e% W5 U( Q' ^$ Z; K4 h
- (ENTMOD DS)9 ?7 E4 f* u# s+ z7 `" M* v8 u
- ). @2 K H5 l0 m
- )
1 T0 K. J- d. ?+ R6 k7 e - (SETQ DEM (+ DEM 1))
- h' U b! [8 [$ @* U - )# t& i+ Y8 E! H9 |/ I6 _5 m8 Y
- )
. t* H& _+ B- E: R6 h$ R: L - (COMMAND "UCS" "P")
- N: i: ^# C3 N2 Z/ t! \6 a - (SETVAR "CMDECHO" CMD)' z+ K. g( {/ R& T
- (SETVAR "OSMODE" OSM)! w/ S5 z' ~9 u8 l
- (setq *error* OLDERR) ; Restore old *error* handler
. K- U. W" L. D - (PRINC)
+ X+ }' D% Q4 e0 ^) _ - )
, W4 p3 M- t( \8 o9 p8 D - 1 r/ k5 ]" f v" q& W" u
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
8 l( l3 d! E U& X - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
$ d, f: w' u1 i* t - (SETQ CMD (GETVAR "CMDECHO"))0 y3 d( K) R, ]1 x+ q1 X0 x3 o
- (SETQ OSM (GETVAR "OSMODE"))
$ r8 V# e+ Z+ Y3 Q& k; v) `' X - (SETQ OLDERR *error*, `) m) z4 b) H$ i- A" T2 v# y1 X
- *error* myerror), M4 t8 w7 [+ o( r( Y) _! x
- (PRINC "Please select dimension object!")
$ S6 h b& [. v- Q5 O+ z- y/ @ - (SETQ SS (SSGET))
2 _( t5 v1 S& p# N/ c# {. t- O! L - (SETVAR "CMDECHO" 0)) d9 @0 T2 R& B7 r# _) q$ V
- (SETQ PT (GETPOINT "Point to trim or extend:"))( b2 \; r" i( C: I- ^3 z
- (SETQ PT (TRANS PT 1 0))
) u' Y7 y- h, K0 f6 P - (COMMAND "UCS" "W")% t" p# \# E U* @7 v' E; j, m
- (SETQ LTH (SSLENGTH SS))
8 ?& ^7 z" a) n' E, r - (SETQ DEM 0)7 W5 w z6 s% g8 A# @ k+ `2 }* Y
- (WHILE (< DEM LTH)% ?* @ Z1 _/ C+ A. w$ x8 U9 P# x2 m
- (PROGN3 s$ g" p5 E$ S- b, {
- (SETQ DS (ENTGET (SSNAME SS DEM)))- i# @ ]9 o6 `& G, ]
- (SETQ KDL (CDR (ASSOC 0 DS)))
4 n( {8 S% S) m- [' p - (IF (= "DIMENSION" KDL); I5 K4 ^4 |3 r" Y! q3 ~0 j- ]* h
- (PROGN# p7 j+ F0 v. K' d: z
- (SETQ PT13 (CDR (ASSOC 13 DS)))
) O; {6 A( i$ Q+ x+ T - (SETQ PT14 (CDR (ASSOC 14 DS))); D& A& z; T7 F
- (SETQ PT10 (CDR (ASSOC 10 DS)))4 Q {, C" x8 ] i+ y9 W+ i+ F+ b5 Q' r
- (SETQ PT11 (CDR (ASSOC 11 DS)))( g* K9 e' j, y9 {
- (SETQ N70 (CDR (ASSOC 70 DS)))
& q$ P) V( V- \ n4 r7 H! f - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))! L+ m* L* g: b9 `
- (PROGN U/ g) `6 i! c8 |/ i4 h+ z
- (SETQ GOCY (ANGLE PT10 PT14))
+ _; c: `6 K! q' d5 V l - (SETQ GOCX (+ GOCY (/ PI 2))); k$ @( V ?7 C! j5 r
- )2 D" R( U0 g* C6 q
- )) [7 Z9 ?' R/ ]+ i1 t
- (SETVAR "OSMODE" 0)7 x U i% Z3 H' E3 n6 u p
- (SETQ PTI (POLAR PT GOCX 2))! L+ E+ l/ T4 y2 `# E0 s( W# Y
- (SETQ PT10I (POLAR PT10 GOCY 2))" g) _; H2 B7 q- g, X8 L+ l
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
$ p7 ]9 m) q5 H W. H; L ~* d( ? - (SETQ KC (DISTANCE PT10 PT10N))
3 R& |. Y5 S8 m- X$ q- } - (SETQ O10 (ASSOC 10 DS))8 h' x9 J# L6 J6 V
- (SETQ N10 (CONS 10 PT10N))
: X, J8 K. M! T" ^0 f - (SETQ DS (SUBST N10 O10 DS))2 S, D2 p: j9 {: z6 o
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC)) T1 O! a8 L9 r% x8 p: A
- (SETQ O11 (ASSOC 11 DS))# ?% i7 a4 j, G4 }! b& s* D7 `6 I
- (SETQ N11 (CONS 11 PT11N))* F9 c, k4 M2 S4 ? q0 }% ~; u2 a
- (SETQ DS (SUBST N11 O11 DS))
3 t! a8 |/ h" z2 u - (ENTMOD DS)3 N' p7 l! J2 F, ?2 D/ O. \
- )7 f# l$ E3 y- N
- )
. L; E: s6 l( }: K - (SETQ DEM (+ DEM 1))
8 R4 ^. T/ v; S( e: X# U3 I' ~" n - )
. W% W" T0 W4 H8 K. H3 v - ). l3 ]* b/ F6 Z' ]
- (COMMAND "UCS" "P"). `* J& i3 q; p9 A
- (SETVAR "CMDECHO" CMD)% [0 @) H; b/ p. l W( p+ B
- (SETVAR "OSMODE" OSM)- d+ `' I, g8 U, _
- (setq *error* OLDERR)* [: E. }6 @, [
- (PRINC)* x2 N5 E8 G. I. l* N
- )
; A* X4 r, }# A W) Z6 r
' q0 O4 b8 r( _- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================5 J v+ ]9 I( B, s
7 k z1 l1 Y4 V( V9 J6 p# [- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
) n4 Z& F0 w8 Z" ~9 F - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")3 R( }# G1 U+ C; l5 _; K
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
# f+ @! K( c( o: p - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
/ j2 [5 p; b. X& Z - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
# L9 S: J1 ~) v$ \ - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt))) Y$ ~7 _: ~& k& N
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
6 ]( z" r; O& M" x, a8 }& E" H3 S - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))7 J1 A2 A' R H/ p9 V
O# H8 e. F: U- ;;; ================ CHEN COT (TUU) =================; x4 i Q- ~5 Z1 G
- # w5 {- r, d7 {" {3 b9 j* O
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
3 E' h( Q# N |% b" ^" q - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p") R9 g H: J3 I/ Y2 m1 [) ?
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
' _4 M- x6 }/ V# l - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
( h1 x, i0 r4 x - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")7 ?$ q9 X- s* h, m
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
4 q# s9 L7 V: K5 ~, p1 X7 ~! t - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
! @. W( `& n1 @% h0 T4 r4 Q7 ~ - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
! ~8 t. C, E7 I' J. \0 \- { - 8 u( X+ g6 s- ^$ R8 l- u$ \, g' e* |
- ;;; ================ CHEN KY HIEU THEP (TP) =================1 g+ T* X+ H7 n% m# i
9 M/ s3 T+ r( Z$ f% f, C- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")' L* I" X( N) I& R% b* T- z
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
) N6 c$ b, T: G - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
/ Y* U \3 r4 e3 K) F8 T4 s - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
/ m f) s% f$ R7 M0 Z - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
' I0 d3 B0 `% { F1 E3 E - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
1 G+ L4 C1 o( g% [; l - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
3 i: p- T9 N! Y0 `7 x - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
& ]+ u, V2 J3 e/ ]8 q - . }8 z. N/ Q4 H4 r) { A
- ;=========================== TAM TUONG (TAM) =================================6 H' `4 S/ M5 f1 }. x
- 2 M0 i. N5 a, O* p
- (defun c:tam(/ data_m)
- U8 T m9 r# E - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
* O% T4 R4 [/ K6 x6 j - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
( W" ~. C: I4 k( a9 X. [ - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
( `$ a6 g- @1 k" Q7 _ - (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset b6 X1 r2 K8 |1 U
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr( V( K4 P, X$ v9 ?( O7 O2 b* b, B
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)3 }% f" B4 B' r$ \1 L) `
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if6 ?3 z$ S. R* ?3 ?
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1): ~+ [9 q ~: c' _
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)$ C4 r& h# A& _& O
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))! ?2 i% ]8 L6 F9 {# g) f, d
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (< T) c- Y, G0 k( @/ Q/ B# C
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1) z( L- R! y8 X7 L' q# s5 ]
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
2 f( x- B' ~( R# n7 ^ - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p43 C+ Y3 g! ^1 B: W+ T7 d: r O
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
. _5 d( s8 j# b* i - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget/ r/ N7 b! _5 s6 {, \& u
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
) f [; ]$ s. C - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))* I/ y* O8 I8 f6 Z% S
: g8 i2 R) c& s r2 K( k- ;============ GHI CHU PHI (T1) ================
4 x8 R+ H: C6 ~3 H - ( ^8 Y) d: P6 b0 b
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
) E! Z% g2 L/ \$ r - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
! k8 n) h; Q' f - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)" K! r% t9 d5 P: G' G3 H
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
; s' K0 R+ s0 N: S7 [ - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1)); t7 Q6 e! e; H5 [1 K6 Q' I, p8 E
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)/ ~( g x3 {3 n) m
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
& k" D" H* Q( I% c8 ^6 j - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )% d$ [# K1 n- a: U; l1 t
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
) M8 s6 z8 S' Y/ J' f - (command "ddedit" pause))& _% ~- s" T+ K9 f/ F( |' h& R
- # u; ^ D" H# C; ~
- ;;; ========================== Join (J) =================4 U% c4 M! \9 W3 _& \6 v9 P
5 i. @% h/ d9 {$ g& i0 T3 ]: M5 X- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
/ A9 d$ {* j* n - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
) K' l3 L" u2 w1 Y7 r - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
! R7 P1 ^& D* [ - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
" i8 n- j0 E0 p3 m5 @" X/ X' e - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
: o& {# P6 t- ~6 s$ _ - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
1 L J6 y. ^4 D - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) 3 p5 v( V- F8 X
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))- y7 {4 I: z r& S6 K" ^7 q- D) n
- (setq *error* m:err m:err nil)(princ))
9 _- _1 @" o4 b
$ z1 e" H) K: k- F8 @3 j0 H- ;=====================================================================
% j: H. N. V. z( D' J/ u - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
- m' G1 _+ ?& K6 D( W - ;=====================================================================- p, ?' `& G! Q" O, t
- j2 b) }( _% Y- O2 T* |# u- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
! Q5 D" _+ q# I1 g! X. x - (setq old (getvar "OSMODE"))
) Q6 W# ?0 N: I; m4 w - 9 z; x1 K; A% L0 i3 ^: n) E
- (setq p1 (getpoint "\nStart point:"))9 @" t: `6 a0 C$ t0 k! b/ y
- (setq p2 (getpoint p1 "\nEnd point:"))7 \0 j5 u; z( a8 M0 D. F
- (setq side (getpoint p2 "\nOpen side"))# A& j7 s; o+ _4 `* w7 u
- ; c* t9 O, S+ O
- (setq dis (distance p1 p2))4 r X! J2 u# _. W
- (setq ang (angle p1 p2))) t+ I6 @' Z0 P- b7 a
- (if (< ang (angle p1 side))* {0 O* u: h# ?; a+ M* \% {- \" G
- (setq angside (/ pi 2) )
* Q+ Y2 a5 r# D' C( K A* T - (setq angside (- (/ pi 2)))
|. {9 q8 l2 U6 ~! ~ - )' w5 x' ]7 e# o+ V$ e" l
- (if (>= (- (angle p1 side) ang) pi)1 p7 z+ b% D5 a. I+ w- |
- (setq angside (- (/ pi 2)))
6 R0 A! z+ I; b5 b9 D5 X5 f9 ] - )6 f+ \9 m" }% d1 p; a, [
- (if (>= (- ANG (angle p1 side) ) pi), ?2 N7 w0 W9 @" z3 S2 U' ] Q, n
- (setq angside (/ pi 2))
# c5 N/ |; e( v+ j- a, r" i: \: V - ). G1 \/ `9 w5 Z1 i/ H7 }
U) B" V# C2 Z% Z. F5 H5 g- (setq p3 (polar p2 (+ ang angside) dis) )# ?+ k- G2 [7 Z6 \, I$ n
- (setq p4 (polar p1 (+ ang angside) dis) ); x; n" j3 u. Z2 q! @4 ^
- (setq wid (/ dis 15))
6 N7 j' Q; K3 Z1 E- u$ R6 P
7 j% J/ v+ g7 ^- (setvar "OSMODE" 0); R) h4 z8 r! m/ ^" z1 c* B6 K4 [
. o V# V; t; |- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
, ~3 J; h1 \& o7 e - (polar p2 (+ ang pi) wid) 2 c; o L* ]) p$ X& m; h8 C
- (polar p3 (+ ang pi) wid) ( u: i5 T: U/ z: N) c# R
- "")4 L( w9 k5 d) i
7 W }# B$ l" `! O, E- (setvar "OSMODE" old)
" Q/ h& P/ h0 w# ~ A - (princ)) a8 @! G$ q' q8 I ]$ n h& L/ p
- )
) g( X, }9 a. ]7 P - : e7 x% b1 G; s/ s! p
- ;=====================================================================1 I$ [3 d; X/ k. p# C4 T
- : f# L9 b8 y* b3 p* x G( A2 a. x; d
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
' j5 h" I$ U ^% }: x5 r; a - (defun cua1 (pt1 pt2)2 _1 \# v& f/ D: r+ ~+ B/ X( ?6 d
- (setq p1 pt1
& ^2 K6 K/ Y. W6 l5 l - p2 pt2) u! Q. h8 J$ o; d1 G# a( U) _# n
- 6 w4 G7 o- e- ~' y
- (setq ang (angle p1 p2)) z J8 ^! |; u' j7 S8 n Q$ I
- (if (< ang (angle p1 side))1 } C6 _, u( B# \' ~ u/ `
- (setq angside (/ pi 2) )' i# u) m) K1 K: v# z9 U
- (setq angside (- (/ pi 2)))1 v3 W4 `- k' Y5 E
- ). c" ~& o& l5 |# j
- (if (>= (- (angle p1 side) ang) pi)$ Y# O: P: q5 U- f p2 I
- (setq angside (- (/ pi 2)))- Z8 K. B0 W+ j! y& D& o
- )
# _" m4 T7 e7 P# x* O8 _* v9 | - (if (>= (- ANG (angle p1 side) ) pi). M. a. q* v# y$ x- m$ I
- (setq angside (/ pi 2))% H. \! X; F/ ?" v* K( Y
- )
# N! q" m& d! e- o9 x5 @7 O - $ F# b% K2 c% I; u: A0 T6 ~
- (setq p3 (polar p2 (+ ang angside) dis) )
! T2 @7 Y. U4 @" F& S - (setq p4 (polar p1 (+ ang angside) dis) ) @, R0 s; @* N# A
- (setq wid (/ dis 15))
: b, w5 C) p; q, K
. p& l& i& D! [3 r- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 1 Y+ A2 ?" J( d% P; z. h
- (polar p2 (+ ang pi) wid) ; O" A/ K3 X2 ? x
- (polar p3 (+ ang pi) wid) : d" H3 t# I* r$ H: t8 {; J% A9 A0 G
- "")
/ j& w5 `4 a6 C0 K6 B - )
4 h) D! U: O* {& @! d - ;=====================================================================2 l9 e4 e" s# ~ ?3 W+ v
- (setq old (getvar "OSMODE")) ! O( \0 a! Z w) e4 G0 V
! W+ E A( K& D" k0 V$ e& a- (setq p1 (getpoint "\nStart point:"))
) m6 \" R) l0 c9 W. s - (setq p2 (getpoint p1 "\nEnd point:"))# J; _$ r. \+ W+ i1 N- N
- (setq side (getpoint p2 "\nOpen side"))
- N9 g- t- C* ?" c - 2 ?, R: ?, z- Y% `* P+ _
- (setq dis (distance p1 p2))
/ o% r; P0 F* g - (setq dis (/ dis 2))- G4 i3 x8 s9 y; p9 X# [
- ( \4 b' {( n9 M; `+ _
- (setvar "OSMODE" 0)
# Z4 w* `" W; M
# z( u7 o4 c0 t7 k3 }- (setq p1 (polar p1 (angle p1 p2) dis))
" |* N0 h- p T1 t. B0 S2 |8 D' s. x - (cua1 p1 p2)
' ]( ]8 N- u$ | m - - P4 _: ]) }) J6 p, b6 O! U
- (setq ang (+ ang pi))) I9 l1 H! l( g8 Q" Q
- (setq p2 (polar p1 ang dis))
/ o8 V, L" M6 r8 ^+ Y - ; (setq side (polar p1 () dis))( R! o* \* |! J1 ?) q( S* t$ h c5 \
- (cua1 p1 p2) " Z# a# a8 m" J; a1 Z" Z
1 V( }# s# f2 _" o0 ?- (setvar "OSMODE" old)4 b3 C8 r5 D9 n) K: g7 J
- (princ)$ Y4 X; s2 j- s7 H; T& H
- )
5 G8 ^* v! ?3 d: ]: O" `+ N
9 _' Z% C/ V# ^0 B, S6 A+ o: j- ;=====================================================================
8 H' l1 B8 y+ ?6 @( @ - ;"Glue" text strings. All adopt first's properties." k h: w+ n) N7 S m; d
- ; Author:9 ~4 M2 s% J8 a* Q
- ; Henry C. Francis5 k1 x0 t2 b* [
- ; 425 N. Ashe St.$ ~/ \7 f { [9 R: Z e) u0 }
- ; Southern Pines, NC 28387
+ q+ w! u1 Y$ E) ^ - ; http://www.pinehurst.net/~pfrancis ]6 T. ^8 x7 E# |( A
- ; e-mail hfrancis@pinehurst.net4 k7 {) B/ d& i Y% ?" y9 A2 @
- ; All rights reserved.
# }0 ^% O& \3 L; K6 E0 A - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)6 y- H% H& @8 r( x
- (while% q6 @8 s- `& k* M1 S/ R( @4 q. B5 y
- (not6 M. P& _1 y) t: O
- (and
& q4 E" H) y0 G" y- H9 @) c - (setq ename1 (car(entsel "\nSelect first text string to join: ")))' `4 S) z* m2 ]* _0 \7 O
- (setq ent1 (entget ename1))# \$ H) x! w1 e0 \+ \. H2 p
- (eq(cdr(assoc 0 ent1))"TEXT")
6 Z7 g3 w6 j( `' b5 _1 ?& \ - );and* d8 w0 U6 ?$ s5 I
- );not% C& [$ T* r( O( n, @ D6 m/ s3 A
- );while- a ~) h# K$ n/ |0 Q! |# D" d
- (setq old1 (cdr(assoc 1 ent1)))2 g' W, L: \ ^3 Q4 T& p' [) ~
- (while w; O3 o) A7 I1 Y
- (not$ J$ k% n6 h( W% t
- (and
. j% ^5 S1 i3 w! d - (setq ename2 (car(entsel "\nSelect second text string to join: ")))6 x8 P) a7 K# W# ?, O& C# y$ ~
- (setq ent2 (entget ename2))+ N$ f" ~% i" `, q. e+ _
- (eq(cdr(assoc 0 ent2))"TEXT")
* F5 q8 V2 s5 T( u3 x; M - (not(eq ename1 ename2))
- B+ x. `( H9 d9 z! E/ I3 } - );and
' H3 i" d" o$ A# M! q$ ~2 g - );not
( g6 i: S* T+ H2 ? - );while; B0 w. _* c7 e" A/ I
- (setq old2 (cdr(assoc 1 ent2))) N2 W) y0 F0 `
- (setq new1 (strcat old1 " " old2)
; I% e1 B3 v" J3 t2 V - ent11 r: H& K9 [4 L1 f, F( A/ M, g
- (subst (cons 1 new1)/ U! D% j, `5 i2 ]) u* L
- (assoc 1 ent1)
) m+ Y. I1 k7 H7 ? - ent1)8 p3 ~8 Y+ G5 M- q
- );setq" ?6 H+ e! y* F& e1 y
- (entmod ent1); [) o. i4 M$ w/ j+ V s
- (entdel ename2)# ?5 ]& {4 X/ W4 B# k
- (princ)" [: y; T" {: [6 h
- );defun6 |' B- F; q1 i
- + R1 C D3 p% T$ S- k3 {/ g2 O
- ;=====================================================================9 R: D; t: s' |2 q* ~
- ( g# U1 [! I4 F8 d# h2 x
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
9 {; b$ j7 s7 g. R6 q7 K6 t& N - , X9 V/ T6 |, |, A7 K3 W2 m8 a
- (defun nterr (s)
5 O$ }3 O+ M2 o - (command "_.UCS" "" "_.UNDO" "E"): G; C) L: @- v. v" `
- (setvar "cmdecho" 1)$ K8 }1 {! E+ i7 z4 q
- (setvar "blipmode" 0)3 s0 [" T) N3 L$ H5 \! C
- (setq *error* olderr)
: ^2 x) T* y- `& ^5 x( O' d5 B; Q - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
, _( c/ ~9 s2 A# A2 m - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)9 B6 a* H3 ]3 a: ^7 f3 Q+ ^
- (princ)
* I6 k0 b* h; X, U# n# J - )
! K0 c3 [% t% D: }8 x, I - - ]0 F6 g2 B* _1 S( E
- (defun tim_in (dt / p01 p02 ktra)
& O, V; f5 {( W) c: t, a# r - (setq p01 (cdr (assoc 10 (entget dt))))1 p2 R; P' e& \1 |' P
- (setq p02 (cdr (assoc 11 (entget dt))))
8 c. P2 }% z; ]) ]" ?1 M - (setq ktra T)- I8 j3 D- j+ z; c: A& I8 a
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) 2 P1 |8 ^" ?/ \) u; \" q$ i
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))# D4 K1 O. _# [. m9 T
- (setq ktra nil)
9 R4 s- M/ Y$ ]5 l2 f" O - )
. k: i) f D Z - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) 9 C& ]# L5 a. @ j* @, y, S
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))" M$ x* o2 k1 M* Q2 ~6 q
- (setq ktra nil)
) F0 ~' p9 [ S% H' W3 \. p9 t9 M4 h - )' E" T- a2 i+ e
- ktra
2 B0 k+ O8 @7 }6 B& B: j - )
4 ?; `& Q" `. K$ V$ ~ - 9 i$ A/ g. ~% \6 |7 w+ x5 j* K, v5 D* o
- (defun timdt (dt1 dt2 / p01 p02)0 h! ^/ V" }4 z1 v5 D
- (setq p01 (cdr (assoc 10 (entget dt2))))
) {# Q/ e6 C$ ~* F) ~1 g" x - (setq p02 (cdr (assoc 11 (entget dt2))))# A4 h1 P" r3 q& \ o6 c: P
- (setvar "ucsicon" 0)9 N# _* z( E* a
- (command "_.UCS" "E" dt1)
- D8 o) z W J - (setq p01 (trans p01 0 1))
3 e* } i! ?) b0 x - (setq p02 (trans p02 0 1))
2 ?2 }9 G2 E1 S7 Z - (command "_.UCS" "")
8 M% e; k& i/ X) a! ^8 g" m - (setvar "ucsicon" 1)- }6 E$ \' k) e
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))0 D6 m8 L! c; J4 P! j
- T
) @* l- F/ V( d3 v. }5 j7 H - nil' n) N* z! ?6 [3 t+ {
- )8 f" f2 j; k0 T6 u# {
- )$ X5 V" v# V/ z1 `7 f. z
- ! F" u4 e3 w! x" H8 v* H2 u. X W
- (defun tim_out (dt / p01 p02 kt)7 G2 l6 W. @3 {( O+ @
- (setq p01 (cdr (assoc 10 (entget dt))))
" P/ A( m! \1 d9 m* c/ X, `9 L - (setq p02 (cdr (assoc 11 (entget dt))))4 W! m, E; [' w+ l3 }
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
1 R Y- u% }1 o0 _' ~9 y - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2))); t3 R4 W6 y. L9 l9 Y4 `
- (setq kt p02)# N8 i& u& e/ ~5 q6 E) h0 Z2 m g$ l
- )
2 q- f3 f3 G9 x2 {! l - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
) F1 t( A+ X& j/ ] g2 u+ Z - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
5 X+ U7 E+ ]( W) K/ G - (setq kt p01)6 y& W- Z N& D. w- L0 ]5 x
- )# C; A6 t% O5 {2 L
- kt
( l: j" w/ }1 ] |; c- w2 B5 _* D Y - )
q+ B! V0 U. I' {- R6 q8 y& t# Z
0 L' _* p: B3 y- (setvar "cmdecho" 0)
6 _0 n+ y. y' `. X& ~8 I6 n - (setq olderr *error* *error* nterr)( t3 Y r5 w4 j4 i4 N( T
- (command "_.UNDO" "G" "_.UCS" "") t% O2 Z0 }( c! N9 O. ~
- (while (null ss1)9 ]/ {) k0 n! S$ r4 c+ C! ^
- (princ "\nChon tuong muon noi...")
# a# T! T/ j: `" T% F5 ?0 M - (initget 1)
2 h. K5 R, U% Y8 ~ - (setq g1 (getpoint "\n>Goc thu nhat:"))
# T0 h% v) Q/ K* ^- D' |3 m. p - (initget (+ 1 32))
8 u$ O+ N. \3 ^ E0 j# Y' j - (setq g2 (getcorner g1 "\n>Goc thu hai:"))- T3 N/ R K; L" g2 l5 ]
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))- ~( T" x/ W% k3 u+ P
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
% A5 Y: `' l4 [( H - )9 t8 E4 U' p$ \ Z; p6 g
-
" G* d/ s) z5 g - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
& F. T W% ]7 R/ h) d - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))3 u7 }. H: W$ g. h
- g1 temp)
" l8 \& ^6 _/ K+ d3 B - (setq ss1 (ssget "w" g1 g2))8 S& g- H* ~; |; R. D, s
- (if ss1 (command "_.ERASE" ss1 ""))
- g% B4 b- I3 K! n" R% }; _6 C1 f - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
a, s7 m6 ?& j- q - $ T" h( V$ b5 R2 |3 \
- (setvar "blipmode" 0)
9 _" w- b1 Y( B7 Y9 @! ] - (setq i 0 l (sslength ss1))
/ k. L6 b' W' l2 F' p$ z. ^ - (while (< i l)% D1 V0 Z4 F, x
- (if (tim_in (ssname ss1 i)). _/ \( m7 B) \+ R. N/ @3 o
- (progn
. c1 r! Y9 v$ U4 ]9 N - (ssdel (ssname ss1 i) ss1)1 w, j: w# Z, @$ W+ {
- (setq i 0 l (1- l))" I, s) @) b! a1 n3 l( V$ w
- )
* r, [7 a" D( w. c - (setq i (1+ i)); @% n: g/ J4 W) u8 P4 J5 |
- )
0 P. B/ n! T/ M k5 O$ E* `( ] - )
$ @6 x: X) ~. j4 d7 E - (setq l (sslength ss1))8 t/ j1 |0 v }+ L7 C3 m
- (while (>= l 2). U) l/ ], M- e, { {
- (setq e1 (ssname ss1 0))7 W" A4 n8 G7 G
- (ssdel e1 ss1)# O# q9 t8 A7 l6 E W" q/ S% s
- (setq e2 nil i 0 l (sslength ss1))! P0 F; ~$ R9 O
- (while (< i l) * d N3 b( g O" ^: a! w6 c
- (if (timdt e1 (ssname ss1 i)) P0 t; a+ L# o8 y* v* t
- (progn$ v/ c% K% N" i! ~
- (setq e2 (ssname ss1 i))
% x6 {2 s! I8 A4 c5 Z$ t - (setq dd (tim_out e1)), k7 S* C& _6 a0 @
- (setq dc (tim_out e2))/ I& i# R+ }$ [4 ~
- )# K+ Z: p' w/ V6 Q2 \. T
- )
: S8 c3 g! z1 r/ L( V% @ - (setq i (1+ i))7 }6 a% A) H6 _* H8 V5 a( I
- )' o: U" N ^5 b( M( \% _1 P% u
- (if e2 (progn/ v) m( ]- F# [) D% T
- (ssdel e2 ss1)
4 v0 a( {- ?; [9 g) Y. @ - (command "_.ERASE" e2 "")
6 Z: P2 d! q1 @/ D- `) x - (setq temp (entget e1)), v! _- c' L- ^% ~
- (setq old (assoc 10 temp))
+ y' Q* G, z+ z2 ~, x" b1 G I - (setq new (cons 10 dd))% p& V+ }9 V5 w8 q7 e
- (setq temp (subst new old temp))$ p2 z# @1 L% E6 `
- (entmod temp)
5 L+ l% P9 t4 e$ p7 o - (setq temp (entget e1))
) q! j) P' u& |$ J5 |1 u9 ^+ w - (setq old (assoc 11 temp))
/ L/ F7 j |( n - (setq new (cons 11 dc))% v4 T9 H+ A! P% C
- (setq temp (subst new old temp))
$ G. s" n$ o7 K, ^- O - (entmod temp). u' M1 h7 F# I
- (redraw e1)+ ^% Z, Z" l+ k! l% C# I% A
- (setq l (sslength ss1))
- P; v! h1 z1 c& F' i- ^$ m6 v5 b4 L - )$ { \4 D0 n6 r0 D/ r: [
- )8 |* y( Q; f: X& u! T
- )
/ w$ C; N' e# b* A) P) L$ S - % ]( y5 r1 W& D
- (command "_.UCS" "" "_.UNDO" "E")
4 l. A% a9 S& N6 R - (setvar "cmdecho" 1)! u# p5 B5 u- x8 o" p
- (setvar "blipmode" 0)4 D! ]1 T8 p, q4 m. G
- (setq *error* olderr)5 L$ L+ x8 B) M
- (princ)
* I4 `" U4 C, H. D1 ]3 ^ - )0 v7 u+ b' W$ @! D
- ;*********************************************************************
: C( o& v# O7 d$ f - (defun ketthuc ()0 S7 Y+ b& E$ N
- (setvar "cmdecho" luuecho): d( B4 v4 ^) V, g& Z* B3 v/ n
- (setq *error* luu* @: p2 H% `8 x+ v4 y8 t
- luu nil
7 _- Z- Q5 _3 R! D7 {; o" [5 G7 Y - luuecho nil3 Z" \% h* U( c0 i# V
- );setq+ x) K0 C% _( \. k% j* Y
- (princ)
* L2 s3 D3 f* E9 O - )
5 }& A ~5 z1 H - ;*********************************************************************
2 M0 E; x. m3 x/ P% D' O9 s0 ]+ ? - (defun modau ()
, {4 w0 O2 d% q1 w - (setq luu *error
3 F- p* D& P$ q8 |. \, ?" b - luuecho (getvar "cmdecho")
) f2 S" \' U1 J6 D C* d - *error (ketthuc)1 v4 ~2 a5 G* o. h
- )
{/ l, U* T, @2 T7 w - )
6 s$ r8 Y s7 k- B1 i - ;*********************************************************************4 [6 F9 A. t" D. _. a* B) H ]
- (defun xulytext (text / kytu ma sokt luusokt lui )1 C! M0 t; A; v( @4 X
- (setq kytu (substr text (strlen text))
" l( Z$ j, g8 k1 {- P" D0 [8 L0 Z6 U - ma (ascii kytu)9 T2 z% U2 `! e. Z* p/ K
- sokt (read kytu)
6 ~; [; X5 K1 m - lui 16 g- d1 y, V/ ?5 e& n
- )8 k& M5 `: U" w0 c: h2 q( |9 p
- (if (numberp sokt)
; }2 o2 s* U! L0 S - (progn0 A# T7 r9 m1 N
- (setq luusokt (1+ sokt))
, g( D- X6 G! R' K/ x" r3 t - (if (and (numberp sokt)
+ ?* p5 K: g6 m# o# v - (> (strlen text) 1)! d& E* V& k. M6 x3 D
- )
3 _ ~8 Q+ B# ~& T( @- w) U - (progn
4 _4 B% |4 w3 _3 r% q" r - (setq kytu (substr text (1- (strlen text)))
, `' `7 M4 {4 H5 ]6 Q# d - sokt (read kytu) 4 ^% {' t% r' d/ H; \
- )6 u6 @' Q Y) }% Y
- (if (numberp sokt)
2 }, N) R! P W - (setq luusokt (1+ sokt)) j1 z3 f; b3 ~' N* x! H( j9 ?
- lui 2- w+ g4 Q" B5 Z0 a- o. N
8 P& l% B, s% N" @- )
; K! J4 u( _8 a% z+ ^2 r - )/ |; X/ |$ \' {* _
- );progn
9 B% z6 z7 h3 N( l. x y% ? - )3 v/ a/ }% t7 ]2 n" R# m4 E$ n
- (if (= luusokt 100) (setq luusokt 0))
8 K7 G# a6 q l8 |4 S$ j - (setq kytu (rtos luusokt 2 0)3 ?, J5 g, n: i
-
$ H* M- d3 G+ f* ? - text (strcat (substr text 1 (- (strlen text) lui)) kytu)! [. _" x$ x7 X
- )8 T8 A$ M1 W2 i4 n. d' d
- );progn
2 L8 g/ L- ^' j; k+ W ^ - (if (or (= kytu "z")+ b+ W4 M1 i$ A6 ^/ v7 f
- (= kytu "Z")$ o5 ^% [, u* ~; v9 K' [
- )
% d0 V2 Z" t/ }( J - (setq text (strcat text "0")
" c' S5 Y& m! H3 Z, N. b - textxl "0"/ E) D0 k7 w0 D( m3 O
- )
7 U% }: t2 B; c - (setq ma (1+ ma)
3 J0 G7 G, I8 i( |: s3 W - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
" Q) K) z2 g0 `4 ?( L# E1 Z - )
! o2 i, P* M _ - );if
" I [, ?6 ]% X: w* z5 F - );if
/ X5 q3 D9 _8 Y8 M: z - ), U! \, N/ E0 u6 I, I# U- T( ~9 d
- ;*********************************************************************
& O0 [" [- ?0 Q7 a( @ - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)' b: }$ z7 j6 c: f0 ~7 l
- ;Neu doi tuong la text thi tiep tuc
7 R- g5 i" g# d, K( D/ m - (setq doituong (entget tendoituong)- @- ]8 l3 H: {# u% q: g$ }
- kieu (cdr (assoc 0 doituong))
: I6 w, e: G, ? J - canle (cdr (assoc 72 doituong))
/ d8 w4 O0 k, k5 X+ [2 e - ) : l4 h, d9 O5 j5 Z8 K @ x$ h
- (if (or (= kieu "TEXT")
/ k8 J/ @1 n! \3 U1 d - (= kieu "MTEXT") , T6 l, v' `7 [
- )
S1 S1 N3 F% [. ]7 j - (progn
0 b5 w/ {0 _) }2 C - (setq textxl (xulytext textxl)
" I2 }& }& o- g" v* l& T - text (cons 1 textxl)+ u- K4 T' ^, ]5 n, X4 o6 o& G
- vitri10 (cdr (assoc 10 doituong))% f. |/ L3 c# I3 Z0 ~
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))2 }7 D4 e0 j- d" K' O" ?+ H% _. j
- vitri10 (cons 10 vitri10)
]) L/ e/ Z; \7 E6 H! a - vitri11 (cdr (assoc 11 doituong))
5 V! M j0 K3 B5 W) ?: C - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
k2 B/ S2 x/ ^; l. F- ^ - vitri11 (cons 11 vitri11)1 S" G+ _" {( p2 }( I! k
- dem 00 C' X+ m" ^) E; ?+ X# L* M# [) b
- dsach nil
! O$ I" i" w: Q: T' e: V - )
+ e3 w) X: J2 ]' N5 c - (foreach tam doituong
- }$ e/ Q- C7 |( }6 Y - (cond5 S3 l3 W+ O1 U4 g) B1 ?3 @$ M$ Y" n
- ((= (car tam) 1) (setq dsach (append dsach (list text))))4 a9 i' K' A# N1 Z+ Q9 R
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
$ R+ f. y8 M4 h2 t# B, K& P) r6 m% E - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
1 b7 f5 J; i# _: u7 [ - ((setq dsach (append dsach (list tam))))
9 b7 N0 a7 Z/ R( X* e - )0 O) k, i% n8 M9 G6 W r
- )
" Q* C' i. d3 }* [" f8 V' V - (entmake dsach)
+ q5 N. m+ `1 ^, N# o4 m - );progn$ n1 S% Z/ u0 O/ O! V4 R
- );if7 Z4 x% J4 r# d9 y1 e
- );- I- }" \5 Y+ I' G$ K6 N
- ;*********************************************************************2 [8 m; y& u& @3 {
- ;sao doi tuong cu sang vi tri moi
) d! T, d R L, C2 p+ F
$ C# Z9 m8 F# O# K: ?1 C- (defun copy_dt (tendoituong )
2 }" C$ E- f( F0 z/ z. j1 \ - (command "copy" tendoituong "" goc toi )5 J' x& K8 y* m, q4 D9 Y
- );defun2 J! `/ Q- q, f8 M
/ H) y1 ?$ r0 f: A6 ?, q9 ]8 Z& L- ;*********************************************************************6 e) b; j5 ~+ J$ O! W2 i) r
* @0 s& Z2 W* Q- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)+ f. e) s6 {# g4 z
- ; Khoi dau cua chuong trinh* l6 F" _$ M: u4 R; e# @7 y
- (princ "\nCopy Inteligent...\n")
; {/ w4 y* [9 g! O3 C9 D: z o - (setq luuecho (getvar "cmdecho")
9 x1 [, i- d& R8 L: S - luu *error*0 a8 M X# L- i1 V8 J- g/ n
- *error* ketthuc
, Z1 E5 {+ o4 k# `* \. {4 w# j - cumdt (ssget)" ^5 V4 w' b2 y5 n4 ~7 T
- dodai (sslength cumdt)
- g# P" L) D$ ~ - goc (getpoint "\nSelect base point:")4 i5 w% r b$ b
- thoat nil ~$ I; N5 K2 R, b7 Y2 |$ [/ S7 G
- dem 0% B* Y! l# ?! F
- textxl nil
+ f& F* V8 {. P2 v5 w. s! k7 Q( W - );. z/ a+ t1 ~$ z( w/ R' B: u/ k) b
- (setvar "cmdecho" 0)* d) {$ }) {- Z
- ; Loc ra duoc ong text de xu ly7 n& `+ l% R0 q2 R
- (while (and (= thoat nil)$ f/ S( x" P$ t: |/ h, b
- (< dem dodai)3 v2 X4 h& u: ? o& n$ H( M
- )
1 `. L" J1 o7 }4 g3 f - (setq ten (ssname cumdt dem)* J7 v( F; ]- B2 r5 J @, _/ n' ]
- dem (1+ dem)3 Y+ Z( ^! D* P, I7 g5 b% J2 j
- doituong (entget ten)3 f9 f# }7 C; v0 a
- kieu (cdr (assoc 0 doituong))
$ b( ?6 D& y4 n! K& l- ^3 F - )
6 `9 r$ J! G/ Q. M: k) q g -
. r3 t a5 }9 o - (if (or (= kieu "TEXT")6 f( t4 C& h+ s( a) c6 Z
- (= kieu "MTEXT") ( M0 w; E: P; o" T$ N/ ?2 \, M
- )! Z& u5 E0 t$ w
- (setq thoat T3 |- x6 Z+ A) P% {, C2 v) x; U4 g0 |" H
- textxl (cdr (assoc 1 doituong)) - V& t* @' T) R! p# T) I( B
- )
# w9 w" f$ }" R5 P2 G! j - )6 w. {0 A$ Z9 P
- );
6 p# F2 r6 P0 m2 V+ s4 i# @# U - (while T 3 D, _' T7 Q G, X; x V
- (setq toi (getpoint "\nSelect next point: " goc) H1 C/ c' W5 _' ~( I9 L! g
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
9 o* t3 k5 U, V2 o% f a - dem 0
5 r1 e, J1 M4 \0 w8 x( J - ) N6 g' h% U! B0 p( ^, q+ }, O
- (while (< dem dodai)5 T! A' k% N. ^' w' N
- (setq ten (ssname cumdt dem)
" |0 c6 o1 _: E! s9 y$ y- W - dem (1+ dem)
9 w; F2 t+ S" } - doituong (entget ten)
: _# ]. r6 A7 v4 v0 \ - kieu (cdr (assoc 0 doituong))
: y8 y& S* a9 W, c5 H/ T - )( a0 j* D0 ?0 Y: K: Z$ S5 R# t
- 0 P0 [1 y) S& k" ]: T3 m% \
- (if (or (= kieu "TEXT")
% g) ?0 P) x2 L4 B' G - (= kieu "MTEXT")
2 \% i* l! K1 ^, v; F5 X - )9 L; ?0 h7 D9 p% z
- (doitext ten)9 K4 A6 |1 H {6 v$ H
- (copy_dt ten)
' p' Y. `7 M$ I+ r4 H7 D
8 M# d# z) [/ t6 Z- );if
. p& L! g. Y+ T! y" d( X* a9 b - )7 ^2 g. Y5 n9 ?, @2 m8 z- U
- );while( Y- }! M. v5 w
- (ketthuc)
) Z0 u- L4 H5 B6 o) M - );defun( T% `. g: @1 ?" @# t4 U1 J* F0 F
- (princ "Type \"DG\" to start"): N8 w# Z6 m& w* y' y
- ;Note: bien toan cuc: textxl vitrilech/ M! R. N: A" f/ v$ O4 }: S
- ( X& w4 v/ k! q8 y* m$ n+ _
- ;=====================================================================2 ^6 P8 o9 `. v! `* x# y
- ;;; PLJOINFUZZ.LSP
0 g) k ?3 W. ] - ;;; Joins lines, arcs and polylines using a fuzz distance
* m( _' _! U* v. T - ;;; If only one object is selected it tries to join to all objects that are possible
1 M% C# R5 {3 o+ R6 ?' c0 H - ;;; By Jimmy Bergmark- v; L6 k. z6 P% J1 ^" `; v6 N
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved% c) H! p* R( {: N; e$ K8 O
- ;;; Website: www.jtbworld.com
4 g, E, h+ [$ V/ \3 P2 M - ;;; E-mail: info@jtbworld.com$ f5 R2 X' \" b0 D+ X2 [% c
- ;;; Tested on AutoCAD 2002,2004 and 2005
1 t) d, P4 Q( U l8 H) W" v4 G - ;;; Latest revision made 2004-11-118 e: ~8 \7 {7 h- M
- ;;; Minor code cosmetic change made 2004-11-13( s! C" Y! @1 Y8 D7 F
- ;;; Bug corrected 2004-12-23
$ q; g8 X" w R' E- ` - L% W/ {5 t. q6 c' F
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
& C- N4 U4 f) e y - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects); s$ ^- n; T4 s' z
- (setq oldcmdecho (getvar "cmdecho"))5 G5 W0 r6 q3 N* N. }& R
- (setq oldpeditaccept (getvar "PEDITACCEPT"))) {8 s1 a2 n* Z( [9 y9 V
- (setvar "cmdecho" 0), I j. Y/ h; h; A z: C5 N m- y4 t
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))% S* q3 A. I0 k6 M
- (if A2k4 (setvar "PEDITACCEPT" 0))
0 B2 k. X2 h% E; W2 E - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))9 B% A) X n; I3 p3 e5 D. \! M$ o' B
- (princ "\nSelect object to join: "); }6 B7 T+ J9 R* ^$ h
- (setq ss1 (ssget okObjects))! A& f2 U4 j) l# ~( ?
- (setq fuzz (getdist "\nFuzz distance <0>: "))
6 l% t8 j4 |* B% t( M: O1 q3 \ - (if (= fuzz nil) (setq fuzz 0))
! W- ]. f i0 n" a7 M6 C( A; d( ` - (if (/= ss1 nil)
# s, T+ W! a6 n6 ~; K4 u8 ~. P - (progn# u4 H j* T L1 f, d4 E9 h# m
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
7 `1 C7 k- ?& L# M" ` - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))! V. j3 h" X/ o6 Q; W0 Y
- (if (member objType '("LINE" "ARC"))
' Q: ~3 T: g8 Z3 y - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
J4 g" ^ e: P' F% f8 ~) g6 n - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
, A0 M" b8 r+ x4 t( o- _! H% b ] - )# ?! Y$ H* E& q3 d. V) s
- )7 w9 Z) ]2 I5 p j0 a4 V& |$ x
- )! x' `3 j5 x2 V% ~6 X
- (setvar "cmdecho" oldcmdecho)
: [1 k7 }1 v& u+ ^$ N - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
$ E0 R& O% f& z - (princ) Y; a7 B; {% R; V# ~
- ), y5 `: I1 A* H9 D5 i \" k
/ Y5 d, C! ? h- c# C- ;===========================VE CAO TRINH===========================
% H7 S7 v4 q1 o: ]2 I' g, I - $ F( A% ~/ W. n
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL& \$ R7 ?% L, a8 c0 Z2 m5 ?8 n: |
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
( W6 C' }, X4 N5 h5 q) I - (SETQ OLDERR *error*
& H% v0 X S( r3 e, f2 D - *error* loisb)
' I) x% g8 C/ E, k1 l0 G, S - (command "layer" "m" "dim" "c" "" """")1 X4 U( f4 M) \7 Y2 x5 i3 g( H
- (SETQ CMD (GETVAR "CMDECHO")); H6 }* M T! T4 D
- (SETQ NBC (GETVAR "CLAYER"))
( T0 d( q+ l$ b; C2 x3 p9 ~ - (SETQ OSM (GETVAR "OSMODE"))
6 j7 ?0 j+ {* Z- z8 V3 R - (SETVAR "CMDECHO" 0)
7 t5 p: U8 r1 w) O6 W9 n - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
5 l8 S# g4 [: i# y/ f - (SETQ TX (GETSTRING "\nCao trinh:"))
: N2 p; h3 h/ V+ p, s4 @ - (SETQ FCH (SUBSTR TX 1 1))' F, y4 L5 R! O
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1))))): f: y# S3 s' a" Q' R
- (SETQ CRST (GETVAR "TEXTSTYLE"))7 ], m% I4 ~: h7 ]& m% I
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))$ W7 p0 z1 ?1 j
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
0 T5 \7 m4 n* c( i3 S( K - (SETQ STR (RTOS TSIZE 2))
" ], W0 W0 m) u9 r9 n- { - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))( ?' E5 z6 D6 q
- (IF (= RSIZE 0)
$ T2 `; d1 w6 ? - (PROGN/ q5 l5 L, d$ \ C
- (INITGET 4)4 p/ g* H( ]: K) o) A
- (SETQ TSIZE (GETREAL PRMT))
7 |& Q; O9 b$ u( e; l8 r# t - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))$ }1 J" r; D+ @+ t
- (SETVAR "TEXTSIZE" TSIZE))2 A4 V- ~% P0 L
- )1 [" `4 E6 n8 M
- )$ t# J+ q B9 [' Q+ s6 l
- (PRINC)
$ ^) Y- q% p! _4 F1 Q - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
( h. [* j0 c+ Q. ? - (SETVAR "OSMODE" 0)
( \1 M+ i% d' Q$ A) B4 s - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
; Z1 }4 n% L2 f' E: ~+ M - (SETQ NPI (/ PI 2))6 ~ K- P5 A0 K) d$ J3 h
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))- w* Q o9 @* q: F
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))( T6 j$ c- V5 x* H
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
& {0 {0 M7 Y% Z$ f - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
3 V+ ], P, C9 o0 Z - (SETQ PT6 (POLAR PT2 NPI TL))) \" {4 J. ?6 W! w6 K
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
" `! @/ |2 u8 y/ ^1 A - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
( I1 C/ x6 v( i; ]& r4 ? - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
. G& S% o; u; r1 y# F P - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
( L6 s" p. `) t' ]8 G. P - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))1 E; V) i/ L5 R4 k {! ]: [
- (COMMAND "COLOR" "7" "")4 N3 L4 ^% m# ~6 j0 H
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
( p2 e# K# R% b& }2 t: J3 A7 w6 M' |& \ - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))* g" R% I% i6 S+ j
- (COMMAND "COLOR" "BYLAYER" ""), x2 S k5 P* F, S$ b W1 X
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")0 O/ i1 `7 F* e- b
- (COMMAND "COLOR" "BYLAYER" "")( P3 @% a* @% V4 V
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")3 L7 x1 z" ^2 n8 @
- (SETVAR "CLAYER" "0"). A p5 ~0 b8 H# E+ l* f" h
- (command "ddedit" pause)( w, W+ r" f- H3 V
- (COMMAND "COLOR" "BYLAYER" "") y/ n$ {, _- _( {
- (SETVAR "CMDECHO" CMD)6 x2 ]* D0 j; _! u
- (SETVAR "CLAYER" NBC), O U7 o2 E. B1 }
- (SETVAR "OSMODE" OSM)
! \3 g" s! D1 J% N$ _/ I. }% d - (PRINC)
( r) ?- e& R( b" D - )
% \) A9 T9 m' o/ f3 j
4 K* [$ h( F+ [+ f& p6 W- ;;; =========================== VE NET CAT CHEO (GC) =============================$ |6 e& [7 c/ i; O% s1 g7 y8 `# u8 ^
- $ _8 b6 P) c% w% N* K9 b' F
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
( g Y9 |6 x6 O6 b - (setq x (getvar "osmode"))* m& ]0 U3 q4 Q& i8 |1 X2 M3 R& c6 |
- (setq p1 (getpoint "First point : ")
0 X* g. L+ o' t8 w$ J8 } - p2 (getpoint p1 "Second point : "))
2 ]) u* x I D2 I6 p - (setq l (distance p1 p2))& H- r: @& M' o; R6 z
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))
% d4 @6 S _, p; T - p12 (polar p2 (angle p1 p2) (/ l 5)))
3 Z" m# O0 ` I. P - (setq ang (angle p1 p2))
7 t. H4 `4 }9 r4 o - (setq p3 (polar p1 ang (/ l 2.5)), {) c, H' Y# S( z6 L
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
/ W: U4 P6 N7 M6 x8 U! i - p5 (polar p3 ang (/ l 5))
# F& m) V1 p7 f( z& i8 y - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
* P# v$ s& k+ Q1 O4 S3 ~ - (setvar "osmode" 0)& b# L7 q6 |) Q. q# J A S
- (command "pline" p11 p3 p4 p6 p5 p12 "")3 n7 T0 g# W3 Q: g7 n/ X) G4 h$ d
- (setvar "osmode" x)
, N3 c) Z3 {5 {* z5 J- O! R6 E - )
8 T( d6 V; p$ S/ P V; q1 H - ;----------------------------------------------------------------------------------
" C* D U5 Q, k/ ?7 M& Z - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
5 I- I; p0 X; b' x: E - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))0 |0 N5 v8 A0 a/ q# O5 ^2 g
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
4 [* o; b" a/ I5 g/ ^ v( p - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
% T" i! t3 }) T& C& o( s+ C - (setq sb 50.0 sh 200.0 se 20.0)
- d( A s: y% ]0 D* ^- V - (setq ang (angle ps1 ps2))
3 d& z$ v9 K# ^/ P" T - (setq pf1 (polar ps1 ang (- 0.0 se)))4 ?) t2 Z* b/ t) {' _
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
9 S `# A5 }( ?7 u1 `" L - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))0 s/ J( M. z' O, N0 }/ O4 K! ^3 ^
- (setq pf5 (polar pf2 ang sb))2 J$ q+ r! o& s6 I/ b6 q( M% W
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))4 q! U. @4 F: q% Y2 X
- (setq pf6 (polar ps2 ang se))
, h4 x- g/ ?: ?" q - (setvar "OSMODE" 0)$ {$ z# w- p) J k2 @$ N! Q+ [7 }
- (setvar "BLIPMODE" 0)
4 X. g$ m" S1 t8 l, G - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 ""), V" P7 o6 E# G5 ]
- (setvar "OSMODE" 703)
) a' B2 S4 w) ]* Z. [( [5 c6 C - (princ) )
7 v& q7 l) h8 _, z" w9 |/ p E- s1 {) P - ;----------------------------------------------------------------------------------9 a* h+ d5 ^3 v8 x" t
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf69 O# u: x( x/ ~; e4 d$ [( B6 q
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
* r- d q( D! o% p0 m. l# G: ` - (setq ps1 (getpoint "\Chon diem thu nhat: ")), L: u# c d9 k- |
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))1 _1 p) W& z9 d9 Z
- (setq sb 100.0 sh 150.0 se 20.0)$ n2 n8 w7 e6 ]! C) E6 C+ ~
- (setq ang (angle ps1 ps2))
! r8 N% _% I7 m1 k6 j - (setq pf1 (polar ps1 ang (- 0.0 se)))
& B' m& d$ B# | - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
, C1 w. s/ c2 Z0 R. x! ^ - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
9 Y( w, S' }* M - (setq pf5 (polar pf2 ang sb))
" K6 I0 ^" L ]# Z - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
* l$ c0 Z/ {7 g& R, ~* d2 c" c - (setq pf6 (polar ps2 ang se)): p V# s# O$ `+ [& y
- (setvar "OSMODE" 0)6 p8 o& v6 p, q* S ]1 C1 ^5 L
- (setvar "BLIPMODE" 0). E2 H8 U0 W; J+ F. I. C/ P" c, J
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")$ r) x* L2 h1 p( o' E
- (setvar "OSMODE" 703)6 i3 q! c+ |4 I' E% \+ ?
- (princ) )+ ]7 C' Q) _& G% d. e" q
- ;----------------------------------------------------------------------------------, h ?& T5 N" \& x: F
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6/ u; @ S# k% `- w, I* p8 C
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
0 P' e! k9 o. ~& [ - (setq ps1 (getpoint "\Chon diem thu nhat: "))
) I/ {- C* [+ N - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))/ q: l# V5 k+ z1 V
- (setq sb 100.0 sh 250.0 se 20.0)4 M* s3 _: j8 `6 a3 e5 o& c
- (setq ang (angle ps1 ps2))7 S% ~8 i- N2 Z, t {5 @6 \) y
- (setq pf1 (polar ps1 ang (- 0.0 se)))
3 T% j7 F% c1 b& j6 x* [9 _ - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))* u) O+ M3 K* w' |& Y7 e; W' ]
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))+ |+ r! U5 X4 R: A" L( d
- (setq pf5 (polar pf2 ang sb))% c) u' H# b1 q- b2 r" }7 [
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))/ ^4 i, i/ M$ A. `
- (setq pf6 (polar ps2 ang se))# a) a7 F' M6 E9 Q
- (setvar "OSMODE" 0)* D% P5 D6 A, y4 X+ G
- (setvar "BLIPMODE" 0)9 x4 h$ S* M# A
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
+ p: m' P9 n3 ]! G, d* U - (setvar "OSMODE" 703)( ?! F, ?7 P$ a2 m! n5 L. A( k
- (princ) )! w) r \0 \# p8 ~6 l: G% f& I
- 0 `4 K- u3 D6 |
- ;==================================================================================
9 `8 l. Y: I& s X ?' z - (defun c:ang (/ ent pt1 pt2 ang)
|- ]! `" }" D - (setq cmd (getvar "cmdecho"))
* a/ |9 q+ R8 U5 y, ~& Y8 \( q - (setvar "cmdecho" 1)- ?( o. ?9 K& d& B s( d, E
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
$ z+ H( t5 M# V! t- _ - (setq ent (entsel "\nChon duong thang:"))& `! ~2 `; R) F- i$ q% l
- (if ent 3 e9 t" Z1 P3 U. V; @
- (progn
' X/ q: t( H1 ~) L3 T f - (setq ent (entget (car ent)))
+ I# {' b4 C! o# R" o0 X6 O - (setq pt1 (cdr (assoc 10 ent)))
% H: ?* H r) {" Z/ M+ }5 s7 g - (setq pt2 (cdr (assoc 11 ent)))
! {8 S; y2 J- m( `1 \, S - (setq ang (angle pt1 pt2))
1 U( h0 i: J# z/ w! ^) X2 c7 @. K8 i ? - (setq ang (/ (* ang 180.0) pi))- e3 G& y1 B0 |3 R1 r0 n2 Z3 o
- (setvar "cmdecho" 0)* k" B0 Z/ t! ?* h+ f
- (command "setvar" "snapang" ang)3 p4 X) Q4 [. M/ Z) F
- (princ "\nGoc cua truc toa do moi : ")
8 T- Z# `$ ]) P - (princ ang)
: R$ ~4 ^! N2 e. z - )
0 [! L. p. G: e. e- P - )0 {/ W: h. i5 t& V
- (setvar "cmdecho" cmd)
) z) i! @) p# Q7 j5 U - (princ)
3 c [: l+ J9 t q* n& h - )
8 l) [# m, Q k3 i - ;==================================================================================9 B: v! o; x0 p, ?! l4 w
- ;============================== KY HIEU DOI XUNG ==============================
8 a3 e! k1 ~8 d. E8 e7 m0 @; T! H - ;==================================================================================) C6 T! {9 G- b7 x
- / b& S" G! [& H/ k: P @5 p9 ?
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT94 R2 y) M+ `) @: f$ \
- SZ G45 G135 G90 G180 SS loi); ]; C* a- ~! I, `$ c
- (defun loi (s)* P1 N# }0 N, q; _- J j
- (if (= s "Function cancelled")
7 \3 L* }8 ]( U0 S9 H, H1 ? - (princ)
3 f3 N; V3 q# i b9 X! @ - (princ (strcat "Error:" s))# b K7 g& K7 U8 \; l( A
- )" k9 b7 E9 w# k3 }- X1 M. ~" a, D
- (SETVAR "CMDECHO" CMD)
& Y {3 `1 C- |, f2 y - (SETVAR "OSMODE" OSM)
7 M) {& A) k) y+ B - (SETQ *error* OLDERR)3 ~: b& Z5 y0 k: d. E
- (PRINC)
0 K0 U3 m6 Z0 `0 o - ): j. @# ?4 `$ Z% j
- (SETQ CMD (GETVAR "CMDECHO"))
" v0 P9 Q3 V4 N0 R) u - (SETQ OSM (GETVAR "OSMODE"))
, Q1 N2 o- ~; @2 u$ H! v% Z) ]. p - (SETVAR "CMDECHO" 0)5 ], ]4 [( b* b0 {" _
- (SETQ OLDERR *error*" d" d8 P& F$ [$ U+ ~
- *error* loi)
, @1 z" X2 h: p! X X - (SETQ SZ (GETREAL "Size <1>:"))
1 i1 O2 x; U% o8 s6 ? - (IF (= SZ nil) (SETQ SZ 100))
4 R* p- P$ [8 i9 W8 y5 P* \ - (SETQ G45 (/ PI 4))
4 S" o6 l" p& n. s- [5 P - (SETQ G135 (* 3 (/ PI 4)))
" W5 D7 g+ I0 p* w8 e8 T3 R - (SETQ G90 (- G45 (/ PI 2)))
8 e! @; ^8 S. u( p3 i - (SETQ G180 (+ G135 (/ PI 2)))5 j* ]' O3 T8 Q4 Q8 Y! a
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
9 g% |9 @5 P; P0 n - (SETVAR "OSMODE" 0)
' e/ e# {+ l$ I! J - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))% a) P$ Z) M. o" j# Y
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
4 _8 `1 A9 l6 ~' F - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
( @: Q/ z, t a' R# K - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
. V e8 K+ N7 K6 `0 C4 i# [7 v - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))+ `6 c* n0 n, u3 \6 j# I$ k7 q
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))+ w0 q" C% u0 n" P3 z7 m6 R
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))3 T4 T/ u* f3 i1 k# |2 y1 e/ W
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
1 x. q3 x7 f8 c2 U; G - (PRINC "\nGoc quay:")
4 c; H% I& u, t* X4 Y$ { H. ?# n - (SETQ SS (SSADD))
0 ^- c7 O- B8 c+ v+ Z - (command "layer" "m" "Dim" "c" "" """"); o) U9 g- p; x* S" R' T5 M3 J
- (COMMAND "COLOR" "1" "")3 n( f: u" |4 ^3 B3 b1 S% g
- (COMMAND "LINE" PT8 PT2 "")6 o$ F! b! w+ S9 x
- (SETQ SS (SSADD (ENTLAST) SS)) G9 L) l) e( x0 p6 ?0 g: W
- (COMMAND "LINE" PT9 PT5 "")4 m# X' Z& S8 u, Y6 V
- (SETQ SS (SSADD (ENTLAST) SS))
9 r$ o" a& h# `! P - (COMMAND "COLOR" "1" "")
+ W$ {8 C0 h! W2 ]0 q - (COMMAND "SOLID" PT2 PT3 PT4 "" "")6 t7 p5 {! k9 h
- (SETQ SS (SSADD (ENTLAST) SS))
y" r% A4 j2 c% y3 l( f - (COMMAND "SOLID" PT5 PT6 PT7 "" ""): f* c( O( k' ^) e
- (SETQ SS (SSADD (ENTLAST) SS))/ Z, \/ j3 X: h; X3 B& v% u
- (COMMAND "ROTATE" SS "" PT1 PAUSE): u2 J8 V0 V9 `- |1 P' r# E0 K: `
- (COMMAND "COLOR" "BYLAYER" "")
' s `; v* P, W/ D - (SETVAR "CMDECHO" CMD)" n$ [( V7 o5 Q6 f2 m3 V
- (SETVAR "OSMODE" OSM)
, U0 M( z$ a5 f1 d - (SETQ *error* OLDERR)
& M# a5 u# ?) Z% U* \' S - (PRINC)# O* y2 l9 U* ^6 p! I
- )
5 v7 A2 {* b; Z
/ N; V2 ]( v# @) m i9 d- ;==================================================================================
* p' e& h) x3 K; h8 Q5 f - ;================================= KY HIEU TRUC ===============================7 r8 L5 t8 v, U2 h4 c; G
- ;==================================================================================& l4 l4 q' A' g) U
) k* f- I( S7 @' C- (defun C:vetruc ()- a' S$ P; j9 B8 l( K7 n
- (setq bk (getvar "USERR3"))+ S) Z. M, o& |* ?% [+ O
- (if (= bk 0)& _5 l- D- o0 G8 R
- (progn! O) G; E4 ?: M8 w; f- c
- (setq cont "1")7 W3 r' H6 a' I7 J; I
- (setvar "USERR3" 1)
- \& y1 H3 l3 K - )% D+ B% O- L6 T7 M
- (setq cont (rtos bk))' U) M _$ r8 n, Q/ L" E1 n8 M0 _* x
- )# c- g, }0 s R0 L4 Y' D* ]9 g5 u
- (setq pt1 (getpoint "\n Nhap diem dat:"))' |! `* @9 B U4 P+ ^
- (command "layer" "m" "Dim" "c" "" """")% E N; K$ Q$ _9 [0 Y7 R, x
- (command "osnap" "")1 m3 B) u2 H6 Z2 C' F
- (COMMAND "COLOR" "7" "")- |6 M# C5 R8 [4 X
- (command "circle" pt1 150 "")0 A2 X7 T N# h
- (setq pt2 (polar pt1 0 150))3 i) p% x- q ^! K$ @- t4 J/ L
- (setq pt3 (polar pt1 (/ pi 1) 150))) Q! s3 }* b* d; t
- (setq pt4 (polar pt1 0 300)): V' j; g) C# o5 g& X1 _+ l
- (setq pt5 (polar pt1 (/ pi 1) 300))' `: v# @' H6 B* _0 x
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
4 C6 v/ E) v9 z5 x& w! R/ s8 X4 O - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
/ b. \9 D; e! C$ j1 X W- G v - (setq pt8 (polar pt1 (/ pi 2) 150))6 l- h+ f C! m. n8 W: {& F
- (setq pt9 (polar pt1 (/ pi 2) 300))
4 H3 D. ^( r; ?5 L7 p4 R& h: ]+ H7 h - (setq pt10 (polar pt1 0 150))
. O: c+ F! y7 y9 K+ c( e - (setq pt11 (polar pt1 (/ pi 4) 150))2 [+ D+ b- R* F: T3 z/ b
- (COMMAND "COLOR" "BYLAYER" "")
. ]3 E* a n6 p+ G% s) ^ - (command "line" pt2 pt4 "")
$ u* ~+ k; E. J, y/ x, z6 C# k - (command "line" pt6 pt7 "")
- R5 |7 e0 I3 n: V: z - (command "line" pt3 pt5 "")
9 |/ K) U1 R) k& Q4 q - (command "line" pt8 pt9 "")
7 f5 \' ~5 c# r1 W( z - (setq dk (strcat "\n Size:<"cont">"))
* x0 o" G1 O4 V' ?5 U - (setq bk (getreal dk))' }8 z" V. W- l
- (if (= bk nil)
" d) U$ _+ a3 I1 Y' Z - (progn
% i1 K4 I- x8 b9 r3 P - (setq bk (getvar "USERR3"))4 N, b- u# m+ h" c W/ b( \
- )
5 i; f/ p# k! c# ~ - (setvar "USERR3" bk)
( @1 U) a" S1 n5 x% ` - )
5 q4 T1 p* v* H0 H3 g, L - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
5 d9 r% z6 _ o- `1 R# U0 g - (COMMAND "COLOR" "7" "")3 d0 A4 Q+ T, Y3 P) _
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
2 X2 K1 I# q; q - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
6 k' D M3 z3 c* _0 a - (COMMAND "COLOR" "BYLAYER" "")+ B! m7 N; h! a3 m
- )
f1 S& B! P$ |* H+ R3 i& k
$ K) @" R& ?% E/ z% Q; j- ;=====================================================================
: B, H/ H7 J$ G& p. {! O8 ^7 G# s - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)+ @8 ^; n4 K% A% K, r& E
- ;2 i- H4 q- j: S8 f) u
- ;Jeffery P Sanders$ G9 V) f' ?7 P: a0 {
- ;
- q2 T* R; {! f' L0 l0 ? - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
) J/ {* ]# ^0 Q& K( J( F! ?7 h - (setvar "cmdecho" 0)
6 H3 K1 o8 n" u9 i- I# s1 Z# G$ { - (if(setq en(entsel))# y& Q+ ~0 B, _" J. a0 t
- (progn" K5 l+ d: o. v( w# n
- (setq enlist(entget(car en)))4 D# ?; h' P* p6 h% Q
- (if(= "TEXT"(cdr(assoc 0 enlist)))
. @% y$ H+ B* F+ A9 g( f* T - (progn4 g) U0 C1 J8 Q' u# `
- (setq tx(cdr(assoc 1 enlist)) f' z+ v/ ?6 ^
- newtx "" cnt(strlen tx)0 W8 l# L3 @% O( U
- note "\n...CASE Reversed. \n "
: e; s6 r: _5 C3 n - ). W, n$ t% N; N2 {; X# L3 X1 H( h
- (while (> cnt 0)! k8 p9 C. Q2 s# e
- (setq tp(substr tx cnt 1))
" ?" b$ e: u" L( i! Y - (setq asc(ascii tp))
$ Y- V0 J5 O% l7 r; ] @$ C - (if (> asc 96)8 ?) @) p" G6 U& t5 J
- (setq tp(strcase tp))
; [9 c! w0 j+ v& i - (setq tp(strcase tp T))
$ q+ |9 ~4 t! u7 |; k3 ] C - )
8 J3 T( G; c, C' j; t8 n - (setq newtx(strcat tp newtx)) S% k; _( T, M2 c
- (setq cnt(- cnt 1))
9 z- [2 f/ o% @ L/ G - )0 [1 A F9 c3 s3 h
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
6 b! q6 q9 s/ \$ [- o" c, l% l Q - (entmod enlist)
) ? b- H* x, Z) `& _% W+ a - )' \$ s$ E% u/ [$ E
- (setq note "\n....Text Only Please. \n "); m& K- a5 @4 Z& j
- )+ z* y" L( J, b/ L' ?
- )
% j( _) b' O q. U6 Y( W - (setq note "\n....Nothing Selected. \n ")8 R1 t9 Z8 b+ }! z$ |; p" T
- )
- f8 D1 ]7 L& \' A/ }' Z - (setvar "cmdecho" 1)0 M Y) N5 K% @5 Y5 \. H
- (princ note)
- H" l5 q2 Z& }% v - (princ)
) u8 V4 _$ n% |- r& a/ b - )9 e$ C7 p d! c
+ x0 Q8 } H, x4 O: o- ;=====================================================================* h; O6 X: o9 I# {- E2 J
- ;==================== NEW TEXT STYLE UPDATE ==========================
9 r6 Q3 J; K/ X! c$ @8 f - ;=====================================================================: E5 w' @- D6 Q$ f9 W5 K' T6 j1 T
8 q: i; P0 d5 g7 W, E4 x/ u9 [- (defun c:nS (/ tdt ssdt sodt index)
- A, n! `0 F. C3 c$ v |6 O Y* ? - (defun ObjName (ssdt /)
$ j& z2 Y' _$ O5 j2 G& D" Q: y& w - (cdr (assoc '0 (entget ssdt)))! L% s8 ?; ]" E6 Y/ g. h0 J3 o$ }& N
- )
# ?& v% n3 ]* G% N# L& Y/ \ - (defun MoPL (ssdt /)
* c E" I* D& T - (= (cdr (assoc '70 (entget ssdt))) 0)5 s+ i. _ Z) c2 F: k
- )! U" K2 D, T, t* _+ l
- (defun NoiPL (ssdt /)
* F: T+ y v3 j - (if (MoPL ssdt)
9 C3 d9 B' h2 E+ V - (command ".PEDIT" ssdt "J" "All" "" "X")" J) |8 q# _$ F/ a4 B3 [
- )" e0 C2 Z) a. m( c2 G' Z' \+ n: L
- )
, \+ Q+ a6 Q& H, g. [9 t2 u+ e* { - (defun NoiLC (ssdt /)
" Z. i. K9 K/ g - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")) n$ h/ T; E1 c# y
- )
2 k( {& t/ n6 [( L2 ?) P - (setq( Q1 E4 [' _2 l$ b1 H. z
- tdt (ssget)6 u6 g% n8 w0 F# v: N* W
- sodt (sslength tdt)! O) R S* e0 ~5 N
- index 0
& }3 T+ }, l9 m- U - )0 b; n: ~; @, y5 e( X+ u6 \; \
- (repeat sodt1 L) L: e" L; E0 u
- (setq
' u6 |" o4 i: r* s$ V - ssdt (ssname tdt index)$ y% z5 A6 O+ Z5 y
- index (1+ index)
* R% Y, Y& u1 d+ y9 N7 W1 m Z5 i - )4 D+ V8 m9 B4 u9 A- L
- (if (or (= (Objname ssdt) "LWPOLYLINE"): H6 T$ R1 v& _0 Q1 E
- (= (Objname ssdt) "POLYLINE")0 ~2 [# r( ]8 s. N: t: L/ U$ G
- )! B$ W( Q, L( s6 X2 p. U c1 |
- (NoiPL ssdt)6 u9 j% S) G& r: u# z! {
- )
5 Y& _& ^4 |+ g+ K* ^- Q- E - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))6 t9 q5 B, j; l W) w! F
- (NoiLC ssdt)) P1 k R$ k p |! H4 {/ Y; F! e
- )
, j5 S' o5 o$ j6 ^4 |; t5 b4 o - )" B' V0 F2 O+ E' w
- (princ)
0 X) O9 I9 \- S- V! a8 v0 I' H$ T - ): n% \& X; |( P# [6 }
- % Y) T. i, c W1 i
- ;=====================================================================8 K% o% M$ F8 P3 M! ]/ Q
- ;;; AREAM.LSP
" X+ X4 J# T& o0 o# e - ;;; Function: Calculates the total area of selected objects
6 E. l' O3 B* V& ? - ;;; By Jimmy Bergmark
3 c' n- E; x% a - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved+ A. L# d3 b4 o! ~, V, M
- ;;; Tested on AutoCAD 20008 n. @+ J% d) W% ^% h: C4 u9 D
- - i# K6 W: y3 e/ v. L$ n
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
- x& r" d# G' ]& C2 m& F - (defun errexit (s)' a' R" J9 O! ?7 H* d: Y- E ]
- (restore)
" l7 B E/ \) E/ _8 B - )6 ?/ [. y2 Q) X5 P' [0 k
- ; `) w4 k% r* S
- (defun undox ()
; J1 W/ q0 H0 c; P+ n3 h - (command "._undo" "_E")( o9 \- u) w# X2 ]+ G0 `/ p7 N
- (setvar "cmdecho" oldcmdecho)- d0 T2 Q8 u4 O) Q# o* z1 o) W
- (setq *error* olderr)4 C% [. t) w0 H# ]1 {+ {" Z; o
- (princ)
' v4 n. o* S* L/ z! m - )* E* `! {. j- _# e+ j9 }
- ' d5 t# _" G5 y
- (setq olderr *error*$ L- x9 s$ }4 K! x% `% g
- restore undox
* [ I# k: ?+ b) y& y - *error* errexit* V) P" H: h' Y% ~6 Z# O0 s
- )5 Q5 `( ^! J+ _. J4 B1 @
- (setq oldcmdecho (getvar "cmdecho"))+ g5 o; o; n. N3 f; l, f' }
- (setvar "cmdecho" 0)
2 i: P$ R1 f3 T9 J" a - (command "._UNDO" "_BE")
+ ?* ?/ |- N* ^& t' G% Z M - (if (setq ss1 (ssget '((-4 . "<OR")9 u8 q/ }' o. r7 X' b& G
- (0 . "POLYLINE")8 q( ]/ S0 p# j6 |) z/ M
- (0 . "LWPOLYLINE")
/ O$ f' Z& I3 K" g/ P - (0 . "CIRCLE")# W: e! V% n l. ^0 s" Q" R% E( m
- (0 . "ELLIPSE")" f8 p- F; _1 F" _- I
- (0 . "SPLINE")' p# q( o9 s- [8 j$ I. ~
- (0 . "REGION")
; B5 v1 X1 k: x, z- w; u% s W - (-4 . "OR>")
5 g8 i! v# f! W1 v# N. _+ q7 m - )
4 E& Q0 s+ `& k9 D* f. O - )
. I; U8 l* E/ {/ }/ t2 H+ |* {5 @ - )1 B0 u1 p7 M: @ _% s
- (progn6 O" }9 q# ~& E% u! {- C
- (setq nr 0)
: R) T1 W$ n, b4 R - (setq tot_area 0.0)
+ ^- ?" z& C- x" W - (setq en (ssname ss1 nr))
4 V% m2 I0 S! r/ ~ - (while en: C8 [/ k+ z8 }% s6 z/ k8 D4 w; a
- (command "._area" "_O" en)
: g. S* R7 M& A. a/ m2 X - (setq tot_area (+ tot_area (getvar "area")))6 {2 b% L' C6 y: x1 h
- (setq nr (1+ nr))
8 ^( _7 f5 i8 @3 ^; K - (setq en (ssname ss1 nr))
5 o. E5 d- R7 c' ~4 s0 G c$ Q+ b6 g - )0 f, [3 A. `: r, d1 ^
- (princ "\nTotal Area = ")
- J5 b" C! F3 {" v% f - (princ tot_area)
" t. J9 w6 E* t' A7 g3 j c1 M - )
+ C+ x9 {" H5 n" R - )8 U8 G& [- r* K$ j& o
- (restore)& S! r- W( K& \, P# k4 q) l
- )
}' z, L L# J1 t5 e# M - ' B- u& Z( B$ h5 J1 V. l
- ;=====================================================================
7 c0 i1 I0 Q. C+ O1 V, G - ;;; By Jimmy Bergmark5 N9 ^ k# ]1 e" {
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
7 S9 e9 h* Z8 { J: q; \: x - ;;;
# G1 \# n7 t( i - ;;; Created: 2008-03-312 @' O ^/ a" p0 R
- ;;;5 x$ A5 |) \+ P& V& z
- ;;; Convert Attribute definitions to mtext
5 ~) b! d: X$ @ `0 E" i! B) o3 t - ;;;) A% z, G6 ?7 m
% h3 d! k1 g% @6 u8 ?! x- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)5 k; ^6 b% d' y& W
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))( | F1 ]. ^: r. I4 E
- blkcnt 0/ c' y5 A4 a; _4 b2 y5 O* N
- )2 v- J1 V; B3 ?& a' q
5 Z( ]( L% t" x5 U, x# t+ V- (if eset18 R+ b- l% ^% j: D5 R
- (while (<= blkcnt (- (sslength eset1) 1)); C1 ?! B3 q3 ~8 V" O/ M
- (setq en (ssname eset1 blkcnt)) M p, g8 N) m( [
- enlist (entget en), R# a$ [1 L9 H; `; m4 T
- ht (cdr (assoc 40 enlist))) L7 h7 b" A& @8 P. L# m
- pnt (assoc 10 enlist)4 E7 R( C# |- X6 {! T
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)- p z0 ?: C1 h& a
- space (cdr (assoc 67 enlist))/ n1 J4 a% T l+ r5 C& s3 @5 g; q( U
- ) Q* e; f2 l0 Y, D5 l, ^8 z
- (setq vl (list( T) Q2 ~; m5 z& P
- (cons 0 "MTEXT")- b" V. \1 q4 [, s+ A$ n- B
- (cons 100 "AcDbEntity")
" c$ M% i* F2 x0 D$ O6 `2 G8 |; ^ - (cons 100 "AcDbMText")- ~( d. I6 R. e2 Y* w# L' ]
- (assoc 7 enlist)
6 j1 {4 X+ _- F7 ?- l& T - (assoc 8 enlist)
$ M2 i( x u% k5 c9 W5 g0 _! r: C$ G - pnt
- Y9 ?; i$ m9 t! E/ i - (assoc 40 enlist)
8 a9 s3 [% G5 G2 i0 S7 W - (cond ((assoc 62 enlist)) y4 {4 Y* d/ Q, X# L
- ((cons 62 256))
6 I4 ?6 u- w0 q, L6 ^ - )* s( w5 k9 ?: p0 ?4 }+ Y) o
- (cons 1 (cdr (assoc 2 enlist)))8 G! K3 J6 i# R5 B
- (if (= space nil)
& z9 w5 P8 L! j# h% D - (cons 67 0)
/ }" F" f; v4 I# P8 k7 q! w: i - (cons 67 space)
- L ^0 d% u ~1 r) _- | - )
; f8 W2 V( W. u0 ] - )
! G f f; Q! C0 Z7 g/ ^/ z - )0 s# f, S* S9 B& c9 b
- (entdel en)
1 \- }: H: q) n - (entmake vl)* j) B3 ^6 e5 K. \0 p- b9 d
- (setq blkcnt (1+ blkcnt))" l- h3 u8 Q V+ h6 b5 @ k
- )
9 t( B; x4 w. g8 }' S3 Q - )
, @1 ?, T: ] ^( W8 L: T - )# Z4 Y$ T% f; k/ j5 |
& o, H5 r7 D: q8 G/ u6 u- ;=====================================================================
L" a6 w9 ~8 n% |4 |2 w - 3 [4 B" g1 `# o3 e' `1 C0 {' M3 D
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
/ c- t: J& V$ e" a: k5 @4 Z - ; Khoi dau cua chuong trinh
: q" ^/ y* h0 _( x- u3 ` - (princ "\nCopy Inteligent...\n")
) Z& S P; s4 C# [+ _) {# w4 v - (setq luuecho (getvar "cmdecho")
5 Z! I" `* e; z+ L8 h - luu *error*
% f4 x( T& `8 t/ a - *error* ketthuc
) u6 Q$ o" J) [/ }2 Q; n - cumdt (ssget)
1 m2 T7 u, L) r" b$ V - dodai (sslength cumdt)3 Y5 z- Z2 t/ u# I/ A
- goc (getpoint "\nSelect base point:")2 z; X& x Q3 i# [7 A3 J
- thoat nil P; Q/ g% q& ?; k
- dem 0 @6 h: n4 W# V j' \( L; W- c) L$ j
- textxl nil
# [+ d) C3 h2 ^) x - );
7 K, @. s' ^* n7 s1 s' z. T - (setvar "cmdecho" 0)
4 E0 e2 d/ x" B' O - ; Loc ra duoc ong text de xu ly
0 S m) x$ c# [6 d - (while (and (= thoat nil)& h3 ]" O) U" m. \, d& `* i
- (< dem dodai)
% G) d2 C; c- R; l4 ~% T: q2 H - )
( w+ X7 M( w+ W" _0 `& p# R; N1 W2 R/ ` - (setq ten (ssname cumdt dem)
/ q; I2 P$ H: E" k - dem (1+ dem)
6 J, _% z: O/ g3 Y5 f, k - doituong (entget ten)
' L! a+ ]! L$ t: n& f5 i - kieu (cdr (assoc 0 doituong)) 0 c7 G& B" z, v/ r3 O
- )7 p% n3 U: R/ u$ _) f1 X# F% Z) G
-
$ Y) d; c: ~& G - (if (or (= kieu "TEXT")
- R0 s7 X$ L$ n - (= kieu "MTEXT") " n" K6 M8 }, H
- )
7 l* q9 L- E& I$ V7 @5 D, r3 e - (setq thoat T
0 |/ N4 Q' j1 N- r6 X" C' A - textxl (cdr (assoc 1 doituong)) 7 D- \3 K0 |. @9 r1 @
- )
+ R1 @* q5 Q" j: A* ` - )& \; j4 F6 _% ^9 T% U* H
- );8 T& g6 p& Z1 ^# K
- (while T ' U. I5 D/ b' d& i! W2 A3 n" |
- (setq toi (getpoint "\nSelect next point: " goc)
# a% v' K P' J( K5 J/ t - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))), b1 _) w5 C# C t, y j9 U
- dem 0
4 [' e- N8 B& S0 a4 Y) M# D6 B0 ? - )# m: c' V6 f6 M0 D/ p' I3 L
- (while (< dem dodai)
A8 ^3 T+ E7 j& q, B: n) U( x: z - (setq ten (ssname cumdt dem)5 c4 L/ n# p: G8 \
- dem (1+ dem)8 H) z% p' F" y1 X
- doituong (entget ten)8 B3 }% m2 U" F2 W: X
- kieu (cdr (assoc 0 doituong)) ) w4 u5 |7 W8 ~3 l0 [) ~/ A
- )5 U/ }( V7 {+ V# X j( a
- - T6 F9 W+ S5 g
- (if (or (= kieu "TEXT")
* O. I2 p( y/ K: c- g% X+ F0 \8 L# k - (= kieu "MTEXT") ) }$ F& v% k7 U. g/ I8 F
- )
; v: n# r5 R$ o* I! E - (doitext ten)" ^( k* ^/ y- v! P
- (copy_dt ten)8 d/ R: u" u0 x% _
$ h. }6 R: J) i2 |* \- );if* [) x# E8 p8 I0 D# I7 @
- )' R' W9 p# V& s$ X
- );while0 P1 t) d5 w0 m' M- _" R
- (ketthuc)
7 R# B" s' R& n5 P% y M - );defun9 ~4 R# D- {7 Y% H# E$ N, t
- (princ)
% Y, v L! |- X' I- c/ n* G; d
2 C( z* p$ H$ M$ n' {4 [- ;=====================================================================, V* ~, D9 Z- v) D7 W% Q( y7 l" e- `
- ;;; By Jimmy Bergmark
: z0 N0 W+ @) B5 C% V - ;;; Copyright (C) 2008 JTB World, All Rights Reserved4 J( W2 {0 x' e2 Z5 ~4 J+ \
- ;;;
, z3 _5 w9 }% G! X& a/ S - ;;; Created: 2008-03-31
( E7 G7 S5 H4 P9 c6 K- }/ L - ;;;
2 a; G+ Q% e% ?/ ^! e" t2 F - ;;; Convert Attribute definitions to text3 z# h, `7 @8 D1 _" S4 H
- ;;;
2 |8 c+ k, Y. E- @2 e" ]
! \1 N2 b: n5 Q+ r# h/ o* A9 n7 Q- (defun c:ATT (/ eset1 blkcnt en enlist vl space), ?; R5 y" F/ U! j) @& P0 S
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))7 C" f# S2 u( T( }( @) F5 M
- blkcnt 03 }9 O! L6 S! n$ ^. O4 Z
- ). a4 j$ A8 i. _$ T8 P
0 R- R9 l6 L, _ y; _& q- (if eset1
1 t# n4 V% Y- r, W. ` - (while (<= blkcnt (- (sslength eset1) 1))' F# r I: I0 {0 W9 x& I& _
- (setq en (ssname eset1 blkcnt)
3 Y7 Z5 ~& k% O - enlist (entget en)
! \6 W; c8 \$ L7 \ - space (cdr (assoc 67 enlist))
' a! d. k l# g* d7 e - )
0 W6 r0 ^- v U - (setq vl (list
, L u. x U( d0 T( M. ~0 d# A" j - (cons 0 "TEXT")( H9 l2 T D& f, a' N; Q7 F
- (cons 100 "AcDbEntity"): ?+ }7 B) G0 ^- i- p
- (cons 100 "AcDbText")0 R1 W2 }3 D" R5 f) M6 A
- (assoc 7 enlist)! n% d; w0 t5 j
- (assoc 8 enlist)
0 t) C, P9 }# ?. P) N, j( R - (assoc 10 enlist)
D* ]5 _! s9 v, C9 U- t - (assoc 40 enlist)/ Q6 p! M3 W/ D/ G
- (cond ((assoc 62 enlist))
( T3 _. P3 s7 J5 _6 l% E& }# X# D - ((cons 62 256))
8 T& B# J' J3 Z4 l! h1 M( R/ J - )
% r' l6 A9 b2 c) H - (cons 1 (cdr (assoc 2 enlist)))
- h& x* t6 ?9 U! G - (if (= space nil)
7 @ W" u$ u, T( G1 U - (cons 67 0) ^" {3 i4 N2 [) p9 V( n
- (cons 67 space)
; l& n8 d3 G* ], _1 W% s" C - )
' m# h: J) h- g1 i7 F - )
* M M. M! j1 M1 L6 g% p - )
( N7 K, J0 l9 E8 U' C - (entdel en)" y) ^1 H& X* s- K, a) z
- (entmake vl): q1 i$ S4 {; F* @: P1 v
- (setq blkcnt (1+ blkcnt))( H! Z0 Y! L$ q/ q9 Q6 {
- )( y( |5 ~! R% h s$ G+ F
- ), b* z' [2 [5 S H4 g
- )5 E$ O, Y: F7 b' J
- ;===================================================================== S+ i8 D" d M8 i* d
- ;============================ Doi Truc ===============================
9 `" Y* `% q; ], B1 _, W - ;=====================================================================
1 B1 j s) e+ g) H4 z" o - 8 p- s/ ~- Q- h" n) i# v! L
- ;=====================================================================
; P! _% n; ? `: Y$ w& b# m! G" B - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============( G: v g, [! R
- ;=====================================================================
& F' j6 K, b; K) `6 C" N6 X. r - (defun c:ga1 ()* O0 W/ S& [( L2 J( @
- (setq a (getpoint "\nChon diem: "))" s9 Y1 ~6 x1 R+ K+ g9 p# E
- (setq b (getpoint a"\nChon diem: "))
0 c# C) N0 F' t! ] @/ Q/ K - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); E" w- X" K) C
- (command ".circle" c a)
0 K* ?" P! ?# _% t h& r' B, o' M - (command ".line" a c "")
$ R/ P5 l# D4 e1 p1 v2 D- ` - (command ".array" "last" "" "p" c "1" "" "")8 T% N5 \8 l$ w0 L9 Y0 H* `5 K5 j
- (princ))- B- Q2 }" @" a: L- i! ^% t
- ) y* v7 W- R8 @8 E1 }
- (defun c:ga3 ()( L7 o7 @# ], Q; b8 \9 y/ W
- (setq a (getpoint "\nChon diem: "))) l* C& X7 @5 F
- (setq b (getpoint a"\nChon diem: "))! r9 a- S+ K3 {6 R: a
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) H0 f) l8 y( k) y. U
- (command ".circle" c a)
2 A7 Z0 w% `. g9 M& i - (command ".line" a c "")8 k3 y1 L4 Q* \6 i
- (command ".array" "last" "" "p" c "3" "" "")0 m: D3 a& c5 b* i$ S$ j9 U
- (princ))9 A9 f8 S) m6 P/ x- z- m% H
- / Y7 [6 A! U. ]0 K' [9 `
- (defun c:ga5 ()
2 v6 e" T: t2 l! ? - (setq a (getpoint "\nChon diem: "))
$ q2 R/ w. A0 H- G6 o - (setq b (getpoint a"\nChon diem: "))+ T+ |! y" J+ m* R) N
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* T. B M7 Z: V Y o, z7 T8 y& B4 F
- (command ".circle" c a)
6 X- g _/ w7 ?* b9 |3 `3 I3 U - (command ".line" a c "")0 A; k" R: S9 m4 T( ]9 j c
- (command ".array" "last" "" "p" c "5" "" ""), N% R: M$ c+ a) O& Z4 {
- (princ))' t/ w- B1 r9 X2 ^( R( k: s
2 p" V2 r- k4 L- (defun c:ga7 ()& @% R8 r0 m; S, H7 u
- (setq a (getpoint "\nChon diem: "))
( ~3 V+ j4 _3 K& c( V0 v - (setq b (getpoint a"\nChon diem: "))
- A: c9 }3 C5 W* I9 q* x9 c - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 T' y/ u/ l: _7 _7 h - (command ".circle" c a)# p" \- f* h+ Y$ x
- (command ".line" a c "")
! \: W9 m3 ~* H' K, X+ t5 v - (command ".array" "last" "" "p" c "7" "" "")4 s% l# k, y; d7 g/ G3 Q" Y4 H" u
- (princ))6 v" l. w8 X& |, {7 M+ F, \! Q
. w4 I+ m' N$ s# L8 ^! ]' \% g6 }- (defun c:ga9 ()2 B4 P# j$ I. k6 q6 e
- (setq a (getpoint "\nChon diem: "))0 p7 h8 y/ _, f3 u
- (setq b (getpoint a"\nChon diem: "))$ D3 k5 H. k4 L7 l( [
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( ^6 H* g2 S4 P" q( }0 z( D
- (command ".circle" c a)
/ X( B% r+ Q% b3 U. }/ _ - (command ".line" a c "")4 O! O( l# S! G# x1 m
- (command ".array" "last" "" "p" c "9" "" "")/ B/ `, j- l; ]% j* s
- (princ))) x! ~2 y7 Z6 E# b
- 1 [! B3 y9 J( j6 ]! R6 _. {
- (defun c:ga11 ()! [$ s, y& ^+ u% g; q
- (setq a (getpoint "\nChon diem: "))
$ }9 w- T7 J' ^- D4 _8 e - (setq b (getpoint a"\nChon diem: "))
3 _' q! @2 B) K- p& H; Q7 L - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 _) z+ q3 o6 x8 F( \ - (command ".circle" c a)
( P# h- c% \. B! D, X8 D: i: L; p - (command ".line" a c "")
& r z: q7 O& d0 ^" \, E3 _& J - (command ".array" "last" "" "p" c "11" "" "")
) h% m. ]% ~ u - (princ))
+ x9 ?- r' C x$ E! X
8 ^# @5 Z# Y( W1 y/ S- (defun c:ga13 ()
' ?, n: a# V% G& r8 ~& s5 O' ? - (setq a (getpoint "\nChon diem: "))
, @) K2 m- k% c, Q" k - (setq b (getpoint a"\nChon diem: "))* w" h% L! F' p- T4 N$ u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( P: }& \+ O9 f6 c* l - (command ".circle" c a)
, [5 h1 G' w. l8 _' E - (command ".line" a c "")
% _% A8 b" `; g& o t - (command ".array" "last" "" "p" c "13" "" "")
1 S/ Q x1 n+ m - (princ))
; P9 T' r s* a7 y- e1 H1 B - ) ~7 U; R: L+ C( I. u- L
- (defun c:ga15 ()( f) O7 D% l9 Q: \& e
- (setq a (getpoint "\nChon diem: "))
- W1 j2 g$ v, h - (setq b (getpoint a"\nChon diem: "))
) x, G% q/ I' w4 i - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 u1 I1 @; C+ o% A - (command ".circle" c a)8 n# ?; u y$ @, o. p9 s/ b' B
- (command ".line" a c "")
; `7 {) g+ p( \* L - (command ".array" "last" "" "p" c "15" "" "")& X( A6 r' M, z' _8 x
- (princ))* u% l s& B4 t( T+ f' c$ B
3 V# D( L3 w' H' K* H A- (defun c:ga17 ()& F$ V. @: [9 b8 D
- (setq a (getpoint "\nChon diem: "))+ F1 p+ Q9 ]2 K8 W
- (setq b (getpoint a"\nChon diem: "))
& K5 y4 V/ ^3 H' c - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' W- Q4 Q8 K- u/ D4 }0 \5 i+ H - (command ".circle" c a)' Q* P k4 P/ t6 ]
- (command ".line" a c "")
" {7 D. F3 y% k! I' B! z# N - (command ".array" "last" "" "p" c "17" "" "")
, j; G8 U' U& g) X8 x3 ] - (princ))/ ~3 v$ D$ _( g+ A8 p4 L n9 K
- ' X+ b, R4 k/ Q
- (defun c:ga19 ()
+ K1 n7 T9 ~7 }. u3 D - (setq a (getpoint "\nChon diem: "))' X3 {. v$ }% L0 X
- (setq b (getpoint a"\nChon diem: "))* f3 t+ ?' _) P/ b6 H8 c8 U6 x, m
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 B# D+ D p$ @6 B! C - (command ".circle" c a)
6 j1 p+ C! U- h0 b/ C& q - (command ".line" a c "")
6 k5 b& v) \6 p5 T+ N6 @: N - (command ".array" "last" "" "p" c "19" "" "")
8 y% ^1 O9 R; n# ], I9 A( [ - (princ))' s, Z* u1 H% o! A2 }4 V- a
( _9 U1 x2 ^: F3 O- ;=====================================================================! j1 Z5 a9 |8 }/ [) _8 B. Q
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============) K% j; D3 V4 m9 Y9 r8 l
- ;=====================================================================
! g( e/ j! P" b& E& U - (defun c:ga2 ()
6 v9 U" P5 y# X5 [- U5 Q [3 k - (setq a (getpoint "\nChon diem: "))0 V& {4 h3 Z, M4 y& S& m. J
- (setq b (getpoint a"\nChon diem: "))
2 D! p# C. G' |9 x) L3 M9 J# } - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 Z7 e0 X9 V5 t0 q% J' f8 b9 { - (command ".line" a c "")+ P" \- Z- k. m; n: V! u
- (command ".array" "last" "" "p" c "2" "" "")% j q4 w; L- Z: W/ d
- (command ".circle" c a)
+ O9 L6 H, m7 T8 s2 M - (princ)). p! O7 C" f# g1 V) I
1 A4 O5 |* T$ C' I/ r- (defun c:ga4 ()
& L! P1 l7 {7 O2 N% u5 A; x - (setq a (getpoint "\nChon diem: "))
4 ?6 R0 x- B! N1 R O: _ - (setq b (getpoint a"\nChon diem: "))
% N( W: @6 \# n$ [" G. o0 M3 d8 h - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 s1 [" W0 f8 s9 I! I4 {9 h) n - (command ".line" a c "")
5 u$ _( A' Z0 w - (command ".array" "last" "" "p" c "4" "" "")
( t+ n: p$ B- Q9 ^4 Y - (command ".circle" c a)
5 U, l" q! _# m( x2 y+ o - (princ))
! M0 d) A; |" i; Y1 w
9 v9 J8 K; [$ R0 X2 O+ f- (defun c:ga6 ()
; Q! K+ d3 P+ d0 [2 D4 D - (setq a (getpoint "\nChon diem: "))
h, |( U/ V4 w3 d \6 u- }# A - (setq b (getpoint a"\nChon diem: "))
+ d6 B' Q- ]$ J9 M - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
r- M& U8 ^# |# [4 j' Q3 m7 R R9 z - (command ".line" a c "")- [! ]. a& U3 N: w. o+ a
- (command ".array" "last" "" "p" c "6" "" "")
# a+ G& C O! \6 T - (command ".circle" c a)5 i) K/ F6 O& ?( H& Z' m
- (princ))
5 W7 W% B% b+ o2 Z. m - $ j. s# E* V( _* B2 _
- (defun c:ga8 ()3 `7 [9 ^ ?) {) M
- (setq a (getpoint "\nChon diem: "))( c+ c* j; Z; y0 L
- (setq b (getpoint a"\nChon diem: "))
; C7 r* f# p/ x9 j, a+ x5 b6 t - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! O* k* R5 d* ]! a$ ^' f
- (command ".line" a c "")
# Y& _, F1 h* G. g" j - (command ".array" "last" "" "p" c "8" "" "")
( o$ `0 C, W: K% w - (command ".circle" c a)+ @- z1 M+ E0 b8 A7 }
- (princ))
5 v5 g3 Z, H+ j% [) o+ W5 w0 x
$ L8 f( b% v4 o. j- (defun c:ga10 ()4 y: p( h8 U- d- h
- (setq a (getpoint "\nChon diem: "))3 O3 H7 p; ?! I$ w6 Y
- (setq b (getpoint a"\nChon diem: "))
/ ?. S* B& |) l( Q0 { - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& ~5 L* M/ P R. `4 J
- (command ".line" a c "")
7 O! q4 N2 a# o' _( ^ - (command ".array" "last" "" "p" c "10" "" "")8 J( {5 c& Q5 [: B2 c. J' e2 L" @
- (command ".circle" c a)
$ R: ~" L) w+ r' M* a - (princ))
. Q5 }: B( h& f, V% d# x - ; ~6 M9 ` l3 s' Y, d [6 k, Q
- (defun c:ga12 ()
5 V+ M7 J- N9 A1 Q/ T( v6 K - (setq a (getpoint "\nChon diem: "))6 u! t' }" a5 r$ f- }
- (setq b (getpoint a"\nChon diem: "))
: R+ o9 X7 _+ A0 {. K - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# z0 {* B+ y( ? ]( H) F- `4 s
- (command ".line" a c "")* o3 @, A; o: ~" m1 q/ d, i) ]( p
- (command ".array" "last" "" "p" c "12" "" "")0 Q- d) S3 X0 ?3 K( n* |
- (command ".circle" c a)- @& _! Q4 z2 r h
- (princ))
2 _, W0 u2 T- i - 6 \9 P6 t* E" z \7 [0 V- U* @9 T
- (defun c:ga14 ()
+ _$ C& Y/ z: y$ | - (setq a (getpoint "\nChon diem: "))8 M2 G4 m( K! s/ u# [1 H6 j# G
- (setq b (getpoint a"\nChon diem: "))
' h) h' ~5 _- F+ R( F" x: { - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- X$ W5 }2 ~0 {4 l' ~
- (command ".line" a c "")
1 N$ ~/ ^' f, M( L8 u* f* ^# D. A: c - (command ".array" "last" "" "p" c "14" "" "")* c& C3 a7 e2 Z% U( j0 {3 l
- (command ".circle" c a)
0 Y$ y5 R; p2 ~, Z. J( Q) P2 [ - (princ))6 }) E4 ?# D& U, }+ |6 ]( I: ?7 [
9 E9 I. R, W! g0 Y9 U* R" c5 u: h- (defun c:ga16 ()
- Z0 D2 }- o- v5 y4 n( X2 u6 ]2 l# B - (setq a (getpoint "\nChon diem: "))
/ N) V! P/ m7 k% S' L - (setq b (getpoint a"\nChon diem: "))$ T% i' T2 L* r9 l" I
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 z; r4 k$ l4 _/ r( |1 |& ~
- (command ".line" a c "")
- V9 w5 ~$ v& t( z, S - (command ".array" "last" "" "p" c "16" "" "")
& F; r8 O1 n" f - (command ".circle" c a)
4 @2 S, C, i9 ~+ W/ _! { \ - (princ))* t& I9 E! w: W5 R+ S' K
- 2 J0 x% i# U% L8 d0 Z m6 O
- (defun c:ga18 ()' }/ ?8 l( U# i8 @; d# }; [& b
- (setq a (getpoint "\nChon diem: "))4 C W% D+ U; U. H i: t
- (setq b (getpoint a"\nChon diem: ")), |, Z. J. O- Q$ `- e$ M! r
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) X9 o+ |& ]6 q9 I' o& S - (command ".line" a c "")( ~: V& R8 t! ]
- (command ".array" "last" "" "p" c "18" "" ""): Y, Y9 j$ U. s9 ?' N9 h9 H1 ?
- (command ".circle" c a)' O3 d- K7 z2 F$ B7 m
- (princ))
) A4 P3 ?( z, V3 x* F9 z - 7 H- `* L9 [& T. D
- (defun c:ga20 ()5 I* f9 x% P* V5 n. b5 E) [
- (setq a (getpoint "\nChon diem: "))/ N8 X/ e, ~& T8 Z- R: f% N
- (setq b (getpoint a"\nChon diem: "))
; `( g2 m. m3 }! k* b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 H- h& V: D" Q; y - (command ".line" a c "")
6 F, S/ l% u- X7 {4 {7 v2 U! w8 w - (command ".array" "last" "" "p" c "20" "" "")
+ M0 F$ O i. R2 `( l - (command ".circle" c a)1 W) m# @& s# d
- (princ))
9 O9 X% g, S0 Y# G0 m# ?( C0 o - # U- L$ d6 D4 x
- ;=====================================================================0 V6 U: Z2 _5 |
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
) c, m5 ?1 N$ G3 d - ;========================== 06-11-2016 ~ 18h00 =======================+ I% `0 R3 \* R2 h0 ?2 ?8 E' n2 s
- ;=====================================================================) I( w3 K; j$ Y
- (defun c:ga ()
8 n8 b- J5 w' `' z+ a% e - (setq a (getpoint "\nChon diem: "))/ g! [# U8 l4 ]) e* p
- (setq b (getpoint a"\nChon diem: "))# ]$ f' q( b4 Z$ |
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 j+ w6 l! u; s+ C/ j+ E
- (command ".circle" c a)
! G8 |5 g2 b- v - (command ".line" a c "")& W/ }$ m* [) J% `: o
- (command ".array" "last" "" "p" c "NUM" "" "") k; G7 J v h, b) z. G
- (princ))
' g- g, x5 h! i - 3 r- S& R& D5 O6 |( ~" q6 j
- ;=====================================================================
/ @6 c) Z4 r- B! ] - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============, x/ P) a* W7 G' L" W5 g/ S
- ;========================== 06-11-2016 ~ 18h40 =======================; N5 s7 @& ?1 o$ N
- ;=====================================================================
- p7 k& q0 Z7 N - . ]) }6 W' h& T* q
- (defun c:hoathi ()
- n) n6 Q7 J& x* R# ^5 y3 _ - (setq a (getpoint "\nChon diem: "))
/ A! l' K( Y+ N# d3 o - (setq b (getpoint a"\nChon diem: "))7 A; X5 R7 m" r, t# c# L5 t/ @7 i
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), n; [, E, s9 N9 ~# x
- (command ".line" a c "")
+ Q" Q' ?. D" j" R, L8 F! f* v - (command ".array" "last" "" "p" c "NUM" "" "")
6 H8 u, O8 y% g* Z% J) e" T W+ H - (princ))
5 ~2 e$ J$ u1 a8 X4 t% q' ^1 T& y
: m: r7 q# E3 `: F- ;=====================================================================
, w$ _. s# s4 ~- j1 K" ^ - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
* O. C( L" F7 T - ;========================== 03-11-2024 ~ 19h33 =======================
H0 n& r0 a* n. `$ i$ L7 b4 P& V - ;=====================================================================
5 C6 ~; k7 b0 U0 d4 }. m - 5 V9 H# M0 W) z0 M# ?
- (defun c:cung ()/ B- ^' x0 n a9 i
- (setq a (getpoint "\nChon diem: "))5 _* T7 O; n' s+ H9 T
- (setq b (getpoint a"\nChon diem: "))3 S- c2 j: m+ N4 W! g, \
- (setq c (getpoint a"\nChon diem: ")), X( z7 O1 y4 r: R% I' w9 T
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* K3 [; ]. A5 U& y. x# ?/ u+ x - (command ".arc" a b c "")
" ? G8 ^7 s$ B8 ]( p0 b - (command ".array" "last" "" "p" c "NUM" "" "")
7 T2 v9 x% d. E1 P - (princ))
, E0 ^- K. {. N
: J5 B0 L, l* F5 [: u- F, R- ;=====================================================================
! }) W9 h' t/ l7 d" ^2 O: L - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
; ~ x9 |% M* ?6 D8 S - ;========================== 03-11-2024 ~ 20h02 =======================
0 V7 k5 r8 y8 x2 P( {% G6 A - ;=====================================================================" Q" D/ X9 x6 j1 _( ]9 J
- 7 ^8 I6 K! _) L' E2 Y& Q; y
- (defun c:hecloic ()
, q+ `2 v" B* l# M5 V - (setq a (getpoint "\nChon diem: ")); }! z) e8 s1 r3 a$ c0 c
- (setq b (getpoint a"\nChon diem: multi "))* X8 I6 Q% o) b6 Z
- (setq c (getpoint a"\nChon diem: "))(princ)
. B4 {9 z; y# ? - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 T, F2 B4 o3 `- E, v - (command ".arc" a b c "")) [' Y2 n: n; T* l/ \' Y
- (command ".array" "last" "" "p" c "NUM" "" "")& b( ^' u# b0 V2 R$ D$ e) l
- (princ))
( V; H) B) U4 _$ d' c' [: W
$ b ]* B3 R: a: V8 h. ?% {- ;=====================================================================: X, v0 Q' s! H0 L
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
( X8 ]% D0 e: _1 h% x% D - ;========================== 03-11-2024 ~ 19h38 =======================+ N1 }5 \) R: N+ x3 p. @! s( y% B9 K) o
- ;=====================================================================
, j* B* f y* _- f$ J- P - + o! ] J* h6 M
- (defun c:gay ()
' K0 p* x+ E* }! S4 g8 P - (setq a (getpoint "\nChon diem: "))
5 q- @' a. ?0 Y) y - (setq b (getpoint a"\nChon diem: "))
- g7 \& a# z9 j- I - (setq c (getpoint a"\nChon diem: "))(princ)
8 e' k4 V( n" H7 z1 f6 G4 O! R, s - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); ^! c& v- T0 g3 S
- (command ".pline" a b c "")
8 d% D! G4 ]$ g3 l1 _ - (command ".array" "last" "" "p" c "NUM" "" "")
5 B% V h! D( T( g- d - (princ))4 k" Y5 C- H2 u$ P
- : y6 c$ ]: u. R# T/ ?
- ;=====================================================================
, V/ ^" Y! ]( @8 i - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============+ y8 Y* l/ N& H5 `* g) \
- ;========================== 03-11-2024 ~ 20h02 =======================
- V2 U( Y y& \* Y& m3 n1 s - ;=====================================================================
" R) ?. l' H9 e- o c - , `$ i# I M3 z" }# i
- (defun c:hecloit ()
, g3 x: \; Y' I- ^3 t8 L1 | - (setq a (getpoint "\nChon diem: "))0 ?6 o& m7 ^- n9 l, m
- (setq b (getpoint a"\nChon diem: multi "))
# b. D# @ w4 A1 ~. r - (setq c (getpoint a"\nChon diem: "))(princ)4 C, {' y0 [9 W3 b6 U. z
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ U: o0 x5 W0 G3 B- u8 F - (command ".pline" a b c "")% F2 P9 N4 b i; y, j/ [* M
- (command ".array" "last" "" "p" c "NUM" "" "")
9 ~( |1 N' ~7 N8 [7 ]/ Y - (princ))% n- w1 g5 e0 F: w- Q8 I
- ( G7 Z" U/ |( X5 H
9 }- k3 B6 U B- ;;; ============================ Merge Hatch =============================
7 ]: Y& b9 q$ n% V* |
% n/ v. j8 e! i4 `3 H5 I' W; E- (defun c:mh (/ ss entht sl i dt dtht)' ` z1 F2 R3 ^ e9 w0 y: L
0 }: [5 B7 W- e* k% G5 s6 H3 Y4 \% u- (princ "\nMerge Hatch - free lisp from CADViet.com")5 n/ G% F X7 F/ K/ G( d1 k, s
- $ \/ @8 x2 d' i% R7 A' a
- (setq
: P4 Z- W4 c1 c# C6 y1 h# r - ss (ssget '((0 . "HATCH")))/ R3 H/ ~8 a. }( T
- sl (if ss
6 }0 L3 x* }+ w* l$ \ - (sslength ss)
C O! b0 |" F* r7 V' C0 R7 [ - 0
& V" A% Y0 U+ f+ n3 L! I - )
, M% K% I1 O1 l& t* S - i 0
: F( Y( n( d5 y2 |2 E - l 0
( B& I5 p, b3 _- _4 P3 ]: i' M - )0 \1 H2 a* ~' b8 {4 y! I: g
3 b; [* ~! M: ]- |- (repeat sl
+ @/ f+ R% X! N - (setq" Q- e( [! \* n+ V. V$ N
- entht (ssname ss i)
( i2 ~; G( `7 b - dtht (getbdata entht)
. A+ F% e4 M" b) V( n - dt (append dt dtht)
' G) n; Q- F5 H) [' I - l (+ l (cdr (assoc 91 (entget entht))))
0 C8 L' e# P2 w) |: n; g - i (1+ i)/ B0 k/ w) U1 n) I1 a& e$ Y
- )7 `% y9 u6 P9 C; ^8 B3 N
- )
, V& |$ i8 b. H0 a2 x2 g6 V# |8 G - , |5 L; p6 w" C
- (setq ent (ssname ss 0)
1 O. h- D9 D: h8 S! s X - ss (ssdel ent ss)
# c, F% m9 v& D5 s6 j - tt (entget ent)1 ~7 |2 D1 Z8 q) ]* P! c
- duoi (member (assoc 75 tt) tt)& ^7 G6 x, H# ^& z
- dau (reverse (member (assoc 91 tt) (reverse tt)))
3 C: I' \) p& M0 c# s+ M( x - tt (append dau dt duoi)/ P0 G6 m( y" h
- tt (subst (cons 91 l) (assoc 91 tt) tt)' w- |7 n! p# F) o0 S+ z
- )/ q; H0 E2 W; Z) O# \
- (entmod tt)6 T. u' t6 D- s' s
8 v" G1 ^: I$ s- (command ".erase" ss "")
) Z) k" M, H2 U8 z6 t - (princ)
' \0 |) D2 @# j7 z - )+ V7 H+ P' I h" E% i: G
- $ x7 D% L4 l. j/ G
- (defun getbdata (ent)
- C9 B# a" u5 P4 w - (setq tt (entget ent)
$ n6 s$ j* S ?1 d, j7 {! g* J4 H- P - tt (cdr (member (assoc 75 tt) (reverse tt))) l7 z" X, H; Z9 a
- tt (cdr (member (assoc 91 tt) (reverse tt)))% Q& Y0 J9 `5 n, R6 q
- )
0 G! E9 I+ H! U/ H* P8 D+ V - )
! @; Q9 [7 V& J! ? X
4 A. |4 a" H. M0 B- * N- q' h* [7 T9 D5 d% u
- (princ)
% I9 F8 L9 P/ h+ L. A - 2 {3 Q- e' f- v. L( [, v
- ;;; =========================== CAC LENH LAYER ==============================% M0 E& F K& _6 C. f0 ~( u6 N
- ;;; =========================== Layer hien hanh =============================
, j w9 u( g$ f2 Q8 s' n2 j' } - ; _0 y b8 C( D; @
- (defun layset (/ LAY) (setvar "cmdecho" 0). V/ S/ J, s2 \7 G5 K4 r7 a" e1 V) e( ^
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))1 }* x# H. J3 \; B0 |
- (if LAY (progn
) A3 `6 P! z2 }( H$ b, N5 J - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
! x8 e% `1 L' ~* s9 e. |' \8 x" ?4 Z - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )/ ?: V* U/ u. C1 w: E P4 _" C9 c+ b
- (progn
& c2 ~9 r( Q+ d; }2 D% Z - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
" ?* e5 G# N4 G8 d - (progn* G1 p' ~6 @+ n9 D& E' t
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )% W$ J) J; g. H6 t5 h3 ~
- (defun c:LLL () (layset))(defun c:LAYSET () (layset)). w* ~4 x3 L; e7 ]
! }& x1 |6 @: |% J- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================+ q* B l: J: g, A. M$ W- w5 J
7 t7 }% X7 o: A& E( z% ^5 f- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)6 T* k6 i# A7 F6 C9 A
- (if (not (setq SS (ssget "i")))3 K3 j6 O7 V- x& `/ u" `* {6 x
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
+ N* X6 Q: S6 a3 z% T3 r - (setq SS (ssget)) ) )
( q0 M3 z( N8 T& k1 p - (if SS (progn( S4 D# h4 Q$ F- P1 ?' `
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") # J5 U; v* ]8 H! {( T, ^: b
- (if (> (getvar "cmdactive") 0)
! H; D: M8 ]2 e+ I* Y/ U7 Q4 |3 M8 r - (progn( Z/ o1 E% V2 P2 R6 T: f& ~
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
. ` L) s6 U1 U - (setq SS nil) ) (if (> CNT 0) 9 S4 S! M% p/ c. M
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )+ ?+ J# N- Z% N4 ?4 t* D' T/ }
- (if SS (progn6 u1 v" _4 v$ g$ S0 h+ {3 i& z
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")3 y8 o; U# G+ g& s
- (if (= (sslength SS) 1)5 w* h; |) Z" A& u- Q9 S& U2 P
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
. _+ T! s! o$ d$ |4 b1 K2 l - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
5 {. k5 O" f/ S" d - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
& k6 b" X6 e( U- } - ) g3 [5 ?. A' H7 v* {
- ;;; =========================== Layer Iso ===================================# }. D d3 s5 X" z7 E
9 U4 y7 D6 x- |. y- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)0 F: Z1 \: M8 a6 F6 e4 H
- (if (not (setq SS (ssget "i"))) (progn( {/ p6 O; q4 b! d! o- x) Y
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
/ h7 B/ b3 ?2 a$ T" ` - (setq SS (ssget)) ) )
- c2 i& {6 d4 P8 |2 r% @, v - (if SS (progn (setq CNT 0)# I( B' x, K( _4 ]; ^ e% v4 G
- (while (setq LAY (ssname SS CNT))
5 z5 H H' [* N. q' O1 r. ~ - (setq LAY (cdr (assoc 8 (entget LAY))))! `' D1 a3 t6 C, j* W6 d3 ^
- (if (not (member LAY LAYLST))- C2 n: a5 {% X, v) k2 M
- (setq LAYLST (cons LAY LAYLST)) ) g" \# [ Z! r1 x
- (setq CNT (1+ CNT)) )
& n: Q4 p# x9 w6 e. F7 s, V - (if (member (getvar "CLAYER") LAYLST)
! Z1 H( V1 \* H' [" S9 \ - (setq LAY (getvar "CLAYER"))
- y3 ?, ~# N8 \8 W; p8 w4 U' { - (setvar "CLAYER" (setq LAY (last LAYLST))) )/ l6 \$ J' A( b
- (command "_.LAYER" "_OFF" "*" "_Y")( d8 x" r. n/ n8 D% b
- (foreach VAL LAYLST (command "_ON" VAL))
: ?6 {& e4 ?0 k' N9 M - (command "") (if (= (length LAYLST) 1)! o+ W6 ~: {9 e! j
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
6 e7 G$ I4 X/ s! p! {0 _& z: P - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "" U. k, d, E; `0 r( i8 G
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )& A" l# x, T( r
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))2 h h4 l, u' [* U6 w
4 z% z- k* H# }' `( y' K& P- ;;; ========================= Layer Match ==================================
# N$ i4 l) r! M0 m5 n) u3 ]( \
% i5 @* U. x9 Q/ q W( q- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
3 @% i& V6 d6 x l- T. j/ c - (setvar "cmdecho" 0)
% T6 ~" b; c/ P - (if (not (setq SS (ssget "i"))) (progn
0 ?5 S- U$ M$ U) q. f) _ - (prompt "\nChon doi tuong muon thay doi Layer : ")
, w6 h4 z3 k7 A- d; [ - (setq SS (ssget)) ) )
' G. U: m3 b4 v - (if SS (progn
) G3 q+ }( k% o3 d% E, t - (setq CNT (sslength SS)), Y4 ^7 |2 J m& ?0 D( J
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") ' T- I( C8 z5 S+ E; A7 [
- (if (> (getvar "cmdactive") 0) (progn
/ z$ k) I$ w- R - (command "0,0" "0,0") (setq SS (ssget "p")
S8 T2 R: U; {4 ~8 o - CNT (- CNT (sslength SS)) ) )
4 z T5 O+ r+ g6 h- T - (setq SS nil) ) (if (> CNT 0) 8 [. ^! P' y( B n2 |7 v% F
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )8 |1 G) G4 C$ C8 V
- (if SS (progn8 J) q4 J% _' P% K7 A( e0 }
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
0 H+ [4 F& ]& B$ M0 \ - (while LOOP (cond& a; ?( Q8 t" X1 }1 O
- ((not LAY): Z7 w+ R; v- d
- (prompt "\nKhong chon doi tuong.")
4 D! ]2 K4 [) N1 q( E - (prompt "\nSu dung layer hien hanh? <Y> ")
, Y8 p9 o6 n; u6 l - (setq ANS (strcase (getstring)))
1 W$ x& I4 `$ _9 O% L- V: _ - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))9 P, C: F. W) R! C( J7 s3 D
- (setq LAY (getvar "clayer") LOOP nil ) ) ), Y9 l/ G( z! T$ j% z1 S# ] c
- ((listp LAY) (setq LOOP nil) )
W+ K! U) J9 a. c - ((= LAY "Ten")
% H: r/ P P. t' H3 a' W - (setq LAY (getstring "\n>Nhap ten layer: "))* |5 e! ]$ |; |" T( K: }) {- y# d- M
- (cond% O2 S) z4 Z5 P2 x, K
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )
) O# ]& J' J% ^; ^# I: D - ((/= LAY "")
4 C5 l" p9 O5 y3 w$ A' w - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")0 ]& H& D2 H9 i* x$ _) A
- (setq ANS (strcase (getstring)))
T7 b1 F3 r* J - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
' n% u) T0 C. ?- J6 t - (progn$ d+ x5 g0 ~6 z/ t0 g9 v) m8 q
- (command "_.LAYER" "NEW" LAY ""). b% s! }; v6 n# t
- (setq LOOP nil) )9 m$ I8 t- F+ I5 H) c9 o3 U1 i% J
- (prompt "\nLoi ten layer.") ) ) ) ) ), X% u- w: Z, l& ?
- (if LOOP (progn (initget "Ten")
& k2 H- d0 H& ~& ?/ K; g" y - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
% ]! C! _$ N% Y( L) C/ t - (if (listp LAY)" V$ k2 z" F$ @( x: i1 F
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) ), D7 ^" z( [' n& R3 Y
- (command "_.chprop" SS "" "_la" LAY "")
1 [9 i3 Y! o1 M2 D' h - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
7 a) g5 ~ ]' O8 k5 F5 s - (if (= LAY (getvar "clayer"))
! C- {7 {: t4 i9 w# h - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )# l1 J! }3 S* `' C) I
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))' h- g4 D9 E. x1 t
6 _/ D7 r3 Y) P8 b ?3 v- ;;; ============================ Layer OFF =================================% D1 Z6 |1 c1 y0 }2 u1 _! J
- ) i4 ~: i' h# A5 ~, L9 L
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
% F* _. M" e) C: [1 p/ _" d Q - (SETQ SSET (SSGET))8 h4 C; J! c3 d
- (IF (/= NIL SSET)
; A$ ^- D& C4 Q0 |! a9 M# A5 O' | - (PROGN
% @8 S+ D1 T; f# v - (SETQ SSL (SSLENGTH SSET))
- M" Y% I! D8 a7 C. m7 z - (SETQ LAY "")# |( T/ p+ |8 P$ P% d' a4 g0 z5 t( T
- (SETQ I 0)
6 p. ]+ T) }" e# M% b - (SETQ MODE 0) * D% m8 d+ O6 a5 |8 @- n
- (WHILE (< I SSL)1 l$ R+ S, K/ b" _; {
- (SETQ ENT (ENTGET (SSNAME SSET I)))
1 w: h+ m$ e1 K$ v# f0 K - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ): i Q5 w$ J" y4 k! l
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
- O6 v4 Y! H1 \: t, R - (SETQ I (+ I 1)), D$ z" v4 Y6 p( H. {
- )6 J4 o* H* W, }: {; E
- (COMMAND "LAYER" "OFF" LAY "") V# g$ M) O3 g, [: Z
- (IF (= MODE 1) (COMMAND "") )" p& x+ V1 F% ~; C. z; s
- )! G. T% H. r; D
- )# w" j0 A, A3 p9 Y3 }+ z$ ^) W
- (PRINC)2 E/ O! y; J6 |
- )- j) C4 V+ P, g! S A5 [
" _. c( O2 d5 `- ;;; ================================ Layer ON ==============================
! P: @* m& Q3 y5 x3 S: ]+ ~7 N3 t - . Z" ]; |( F+ c7 X' |, {0 _
- (Defun LAYON () (setvar "cmdecho" 0)! v% ^7 V; b% o0 O2 P7 d5 L
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")0 C- S0 ^( i: b: R6 I4 j4 e
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
* \# {( e C5 L. ] - (defun c:LAYON () (layon)) (defun c:LOO () (layon))
1 ^4 R3 R6 w; Z! k8 G2 p - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ)): n3 Z1 A4 U! d# n. {- l0 d0 i4 c
7 h( S5 k4 v A; i7 W- ;;; ============================== Layer Freeze ===========================" y+ u+ U9 ?! l) e4 }7 U+ e) a1 c
- 8 p: y. q8 B r% Z. `7 O9 O3 V! }1 q
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
! a% P. K' y7 Q7 M9 U' ~. c/ p - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
" E" [- G7 k$ M/ L. y - (IF (/= NIL SSET) (PROGN
$ R) B" b. q( C/ { s5 T - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) ' ~4 R1 G$ h4 s0 Z; S w
- (WHILE (< I SSL)
$ [8 e* t4 p2 G) K$ y* i - (SETQ ENT (ENTGET (SSNAME SSET I)))
( Y/ w) N( X- h! t: N" [, A j - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )5 r- |6 `$ r1 [& V+ y
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
) V9 u3 A- |! W* R - (COMMAND "LAYER" "FREEZE" LAY "")
G& {1 F0 w; i/ | - (IF (= MODE 1) (COMMAND ""))))3 H; r+ Z9 n& s2 V8 w
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)0 S: D. t; G4 d' Q2 y g |
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
. U! u6 X1 e/ B/ |" G% r! j( n - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz)) j( u# c$ m P4 r
+ K8 \* y7 t' d1 `2 Z* _- ;;; ============================== Layer Thaw ===============================
6 U% v: O, m: z$ U" C$ x
5 f9 c7 [" s. A1 e8 D% g" p' D- (Defun LAYTHW ()! G9 R y7 V+ C g
- (setvar "cmdecho" 0)0 `9 F2 K9 n$ j# Z& f
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
$ q& |9 g$ w# T/ L2 P - (Command "_.LAYER" "_THAW" LAY "")
) v. _4 B4 k+ N. I - (princ (strcat "\n Layer : " LAY " da THAW."))# Z$ ^) P9 D8 ]4 n4 l
- (princ) )
8 }! x1 L0 @4 X- r0 `+ L - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))8 y. u a3 n3 `
+ l! [2 M `$ d- ;;; ============================== Layer Lock ==============================
, B" f) N* @9 ^* A) u; l - ( ~5 Y# [2 e9 [( f% Y
- (Defun LAYLCK (/ LAY)0 i( X/ D n2 e5 U6 B
- (setvar "cmdecho" 0)) B) x; ^0 i* h: _/ p0 b
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
$ o$ u5 v/ _8 l+ u1 }7 d - (if LAY
* }2 ^7 D5 \% U/ X - (progn. C7 t. v$ I0 C4 M; \! q
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))) K1 \8 j5 C9 \6 ^+ |
- (Command "_.LAYER" "_LOCK" LAY ""); Q3 J$ n j4 U1 |
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )& [4 M* S8 L1 M1 n! ?0 Y- I/ O$ o
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
7 k' J9 U2 x) v+ l/ b) f0 d; c
5 Y5 Z+ h# v: s; e/ ^! @- ;;; ============================== Layer UnLock ==============================
7 y% `+ H1 s. S+ @! `
) U2 @8 K2 r) L8 t6 J- (Defun LAYULK (/ LAY)# H/ O7 C9 \$ i7 i# E' ]& ~6 z
- (setvar "cmdecho" 0)
) {9 R. S" m) K2 A o - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: ")); o4 D) I/ e5 U. ^3 c
- (if LAY' B7 ?! c/ e) S; E
- (progn
3 q+ P! u6 i7 I( g& }6 t - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
% ^$ j! {+ D& k7 O3 _1 B& e) b - (Command "_.LAYER" "_UNLOCK" LAY "")
0 M: G; O7 J R/ W; d. T/ n! y - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) ) V C, z! c6 L7 _" W
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
* ]7 m2 i6 K) y9 U - ( j7 K; l$ P- @! |! F% N. b6 s% N
- ;;;===================== Delete all objects of Layer ========================, [0 s7 ?6 f( p7 F `/ |0 ?* v
- * F0 x. m& ?; n0 v3 _ Z
- (defun DELAYER (/ ocmd L S)
3 x; J# g) K9 X( k/ y - (setq ocmd (getvar "CMDECHO"))
2 G- H6 ~/ E" p7 N# [ - (setvar "CMDECHO" 0)0 H, K* p( _3 g
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))' i2 k7 _- ~, y8 c5 v+ l
- (setq S (ssget "X" (list (cons 8 L)))) b% l/ p% N0 Y; `, z9 b p
- (if S , Y# t v# i+ L) p$ l
- (command "ERASE" S "")
, \: w+ K. o" _% z( d3 a3 f7 @ - (princ "Layer empty or not a valid layer name.") )
* B3 k) {9 s% B4 M - (setq S nil) 7 I. u. t2 k3 _' Y
- (setvar "CMDECHO" ocmd)
: M& U/ d5 [" M7 B* ~" P& ^5 _8 I" ] - (princ) ) : ^' C- M+ I9 A- o5 Z a
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
4 W. S2 V. x: H+ W' m1 C: W2 j - % s7 H0 z& A: X& t8 ^1 v
- ;;; ========================= HET CAC LENH LAYER ===========================2 o, ~2 S/ i3 `# F
4 d& a. r) |7 m- ;;;====================== EXTEND NHIEU DOI TUONG ===========================4 N3 x3 \& ?( {# d; d4 {
% r# @* n9 x7 U) e- (Defun C:EET ()# f# e0 T% F& Z: s- L
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)7 k9 w& \ \. @0 _% Y# @
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))1 e. m9 `, N2 t* j. K
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))6 i1 q- g& u9 N& p% w( T
- (Setq I -1)
6 V; q7 X+ N$ t - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG ""). V d4 Z4 K7 D; y# A3 b, Y4 x, H
- (Repeat LEN" l X7 @& `' N: S5 m' Y4 n& ~% J
- (Setq I (1+ I))) ~' B! n8 B: q) `& M! S
- (Command (List(SSname SS I) SIDE)) ) (Command "")$ q5 f( R0 q. n2 x: _7 ^- D a
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )# [7 j7 `" K" H, E0 @7 Y2 X( [/ G( o
- 0 m# p4 ~. K7 B
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============& ?/ I* E+ t' }1 n5 m3 j) y7 A
- & D+ `% E+ A. {4 X) k& y5 m9 O
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
( j- a% D1 P8 N" D& G. ~) X7 T) [ - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND ")); A( v4 w. c! i L X
- (setvar "osmode" os)6 G+ C5 N% _1 ]5 K0 l% P
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))4 r7 l. W. h0 L0 O# O
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
' Y* s' G6 G9 n# V4 C# I a
0 K( w N+ a' D" U+ P7 f# ?$ U/ E- ;; ================ Change width of polylines =========================) b6 y! C: h- o
- & ` ~" C. n- h, C! ?4 l
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
/ v# U9 ]6 z; F3 z- v1 G) a - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") $ ]4 M' ?# Y9 X. F% D3 P
- (setq b (ssget))
1 T! T2 _. N7 j/ B. s& r0 B7 q - (setq sophantu (sslength b))
: F! n* ? y) O- d, d5 O+ v6 a! f - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))! _5 N `4 X; u2 @
- (princ "\nDo rong polyline <"). u! `( L! z% s7 U$ X
- (princ ha:wid); Y# X$ U7 b2 v
- (princ ">: ")
h$ l# x: w) E- g: k V - (initget 4)
/ }! k0 y% G- f1 A' Q) t - (setq ha:wid (getdist))+ Q( y! q1 L, L
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
p8 o- P4 w. F" ?- p6 ^" R0 @ - (setvar "tracewid" ha:wid)
. {% \1 u; G; f2 Z0 |! o. f x - (setvar "cmdecho" 0)
/ { |* L) W! T4 Q# M3 ?* l - (setq sodem 0)
; o; C5 A, `9 N0 `: \ - (repeat sophantu9 D, {/ B' b5 i& t
- (setq a (ssname b sodem))
3 [9 G* g- {2 T+ W; ` - (setq list1 (assoc 0 (entget a)))! H: X: e( z4 K _$ k$ I$ }# F: {
- (cond
" R. |6 ]% P8 H - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
0 ?2 I A$ l S5 A- n - (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
% n0 j) L7 B. w9 R/ M* W8 z - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))2 P7 B9 U, m2 L
- (defun c:wp () (wp)) (defun c:pw () (wp))( ^6 [* n. n9 s! u
- 7 {9 w. g1 R; A+ T
- ;; ================ Change radius of circles ==========================! a2 \9 D" d" `' k6 b; U
: T. k% c. L8 \1 o! S9 N! c# K- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
- x. \, Z, f1 [% m& _& d - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))% B! t& H% |! F1 c4 h6 i
- (IF (/= RD NIL) (PROGN (SETQ I 0)
- H/ x, I+ A4 d0 d* `1 | - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) ), _9 y) R/ L+ @; f! z
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
4 @% J3 D& i. m5 X2 H2 `5 B - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )0 N- T/ U& u1 a
$ A* r8 T: t. F5 ^0 |! i/ \7 Y! }" y- ;;; ============================== TEXT Hight ===============================8 D& @7 X) w a( f7 H. _- k2 ^$ B
8 o9 Q7 U5 B1 a9 M8 ?9 ]- (defun texthght (/ ent hght). @0 o$ g- q! q& \$ J
- (setvar "cmdecho" 1). k* l2 \+ v( B2 T/ P; a0 L8 F! I
- (prompt (strcat"\nSelect text entity with required text height"))
+ @8 ~ E2 E- W" B( n; w( D - (prompt (strcat"\n."))
' U& n( M. K& V. s- K1 r% I6 F - (setq ent (entget (car (entsel))))8 G+ D- N# y, X j: k& J% A
- (setq hght (cdr (assoc 40 ent)))1 I3 O% {# d: E, K, {
- (prompt (strcat"\nText height now set at "))(prin1 hght)5 \0 E5 a; e) x
- (prompt (strcat"\n.")) 2 [4 V- g0 I9 Y1 p3 L' B
- (setvar "cmdecho" 1)( j! h4 z2 W3 c, Y$ k% d
- (command "DTEXT" PAUSE hght "") )) g; H. B% ^: l# R, i! C
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))* D8 J8 N: |9 K7 G7 J
; W! \8 [( y$ w1 G& N4 {- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================; d! K3 B9 r4 v
4 q2 ?1 E( c/ I. x* h- (defun c:tuu () (setvar "cmdecho" 0); e* ]' j8 w% h; F
- (prompt "\nHay chon dong TEXT can gach chan ")
7 y" w. b4 C# o - (prompt "\nSelect objects: ")
8 F9 U/ E& }, T - (command "select" "au" pause)
" U; ]- l _* x) Z2 e1 R" N5 z - (setq sstxt (ssget "p")
, b4 O) o* a5 W$ h& q5 X2 |+ t+ o - sslen (sslength sstxt) p9 N2 b* ?% @# F
- ctr 0 )
. G! G0 o# b4 [ |* W+ o4 J - (command ".undo" "mark"); z6 w3 j1 R2 T, r# j* _. ^ l7 d) [
- (while (< ctr sslen)
0 M6 `% }0 E F# N/ X- F - (setq listxt (entget (ssname sstxt ctr))
3 U5 H1 N8 x+ T2 \7 P$ B/ d - txttxt (cdr (assoc 1 listxt))- v! Y- r9 ^2 u L3 m1 T+ x
- enttxt (cdr (assoc 0 listxt)) )1 t4 c1 U. m: T$ p- f; H4 R% n4 `
- (if (= enttxt "TEXT"); ?( U! x9 p$ W
- (progn# X( s- j/ w( k- N0 d
- (setq testxt (substr txttxt 1 3))% H2 a: V* K0 s2 K9 |2 U# I
- (if (or (= testxt "%%u") (= testxt "%%U")), V) a- n3 ^1 h: `. }
- (setq newtxt (substr txttxt 4))2 s4 _0 M- }6 h% X) P: x
- (setq newtxt (strcat "%%u" txttxt)) )+ Z3 H( q9 [( R; W( G/ t
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
. x* V0 }7 H, P2 i - (entmod listxt) ) )
3 ?" V3 \3 w2 E8 c( F1 H - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))+ e& r$ b; l x% K7 r7 g( T6 m/ u
, ]5 j8 ?* m7 [4 l& G$ c; b% \- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================6 C" _4 ]% \, h K9 F0 g: U
/ s, n! \8 T% w! d1 r! g- (defun c:tob () (setvar "cmdecho" 0)
5 u8 i& s9 R2 r! E. J4 K4 c - (prompt "\nHay chon dong TEXT can gach tren dau ")
5 ^0 Z9 W! n* W - (prompt "\nSelect objects: ")$ L9 R0 L3 z3 C/ X# m. H3 v
- (command "select" "au" pause)
& _6 i, b5 [" u. C/ J2 R - (setq sstxt (ssget "p")0 ^8 O' S* ?$ y/ Q3 X4 V( _( ]/ `7 t4 g9 m
- sslen (sslength sstxt)
" H6 W. e' l7 g, m( S - ctr 0 )3 [4 T- X2 R7 g% Y( Q" J
- (command ".undo" "mark")
9 D A2 z9 {, J0 W; K1 f+ r4 i - (while (< ctr sslen)
. s4 C5 Q1 u. w# M% x - (setq listxt (entget (ssname sstxt ctr))
. t& t! L, n9 i& C - txttxt (cdr (assoc 1 listxt))
* n& U$ r* p' t; @" O - enttxt (cdr (assoc 0 listxt)) )1 T; w/ T. }4 _! J6 _+ {* t
- (if (= enttxt "TEXT"). L0 S6 n6 z) W9 H( ?! s9 N+ a
- (progn
3 @+ J) M% @6 S# P ]& M% p/ @# [* H - (setq testxt (substr txttxt 1 3))
* l5 f# Q% h5 }3 ]$ T2 h' J - (if (or (= testxt "%%o") (= testxt "%%o"))
( K; C4 n0 g" K& U- W) K; I7 v - (setq newtxt (substr txttxt 4))' T3 G+ J6 S7 F# q+ W: L& R
- (setq newtxt (strcat "%%o" txttxt)) )& ^0 h' S% }: h- h1 n) X% `% n0 o
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))% f- y) A) |7 P9 b `
- (entmod listxt) ) )" x4 q/ l: v9 s( k2 s1 G8 l9 \
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)) z0 c# n: J& l8 [/ s1 a( z
- 6 s, v8 @0 G; x" N! H
- ;;; ========================== Tim & thay the TEXT ==========================
, k* o6 o) _2 o( K4 } - $ q1 O& g% |" G5 h$ C( r! S( [
- (defun frstring (str search replace / str1 str2 index find). v3 z' O4 ~) Z- L' [
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
6 ^2 a4 K0 Q0 a+ R$ s - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
7 g; V% X# V9 b3 I- y! o( a+ f - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
. ?6 d, i3 X# y8 W7 j - (defun hai (/ dial)7 f* Q5 L% F' [! y5 D b8 g0 D+ o9 {1 h, t4 f
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog+ X4 z9 I3 d3 g
- (if (not (new_dialog "find" Dial)) (exit)) ;;7 J" H7 q/ j T. M, o
- (mode_tile "find" 2); Tao dau nhac tai hop thoai
: o N; u; O3 \ - (action_tile "find" "(hai1)")
+ i3 J, x; W1 {7 w6 h, `1 `( P - (action_tile "replace" "(hai2)")- Y" ]' l$ x& C! L; _
- (action_tile "cancel" "(done_dialog) (exit)")/ Y& D8 Z3 {+ e2 y" E
- (start_dialog)
* M. T% {; p- e1 n. V- p: G/ T - (unload_dialog dial))
; `1 x8 K) K1 F ?' D - (defun hai1 () (SETQ str1 (get_tile "find")))
, O6 \' h. V3 b* D: w - (defun hai2 () (SETQ str2 (get_tile "replace")))% G& b4 Z' t# S6 C8 d2 x+ T
% P9 ]1 D$ S/ [# n- N3 ]! Z4 F- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
& G2 b$ h9 F5 \1 q - (hai)
3 \6 d* l0 i. H0 Z( F/ i5 Y. G - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")# W6 r! D8 G4 r2 s
- (progn' a& j% e, ^1 i
- (setq taphop (ssget '((0 . "TEXT"))))0 k5 n9 q% j7 b
- (setq sodem 0)
& U! g3 k& E$ ~& ]1 ~: g: z: z - (if taphop# r- v% n, K: \" ?0 R. X3 }
- (progn
2 b) V; J/ q" ~+ q9 O. _ - (Repeat (sslength taphop)
! u1 D5 }$ c# t1 w) ~3 M0 T4 q - (setq a (entget (ssname taphop sodem)))6 [7 u2 a- I; L4 m) ? S
- (setq str (cdr (assoc 1 a)))0 R2 Q7 A: F5 }' k$ z1 e p
- (setq newstr (frstring str str1 str2))1 q. H, y! H3 w
- (setq a (subst (cons 1 newstr) (assoc 1 a) a)) k4 ]0 o' v. q* B, H) t
- (entmod a): w' M) i+ @8 l9 z/ v) b
- (setq sodem (1+ sodem)) ) )
" I8 Y( v2 V" Q' e - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
, Z1 M! z8 T* t& s8 V - 9 P9 U y( B1 N7 n7 |$ S
- ;;;============================= CHTEXSTY.LSP =============================3 s% ^( W6 ~2 e& q# ]
6 E: C+ B& i0 g) P/ }- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
2 O4 t( q; J, g" Z+ R% W( ` - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
4 p# R2 Z1 E) B' X& ? - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A)). o- ^9 p2 ?+ M3 g) ?+ v$ s/ I
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))- A9 `* X u" v* u3 l
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))% g. o- f9 M+ Q6 F& ?, C x
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C)). i8 q! ?. k$ \' c4 j: h
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))& t0 S1 x( W0 y5 a
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
+ G' a. h4 ]& Y( i3 p9 D4 H8 z, [ - (Initget 1) (Setq A (Strcase (Getstring4 v$ c1 P$ I) Y% Z9 F9 J
- "\nEnter text style to change: "))) (Initget 1)8 v3 s: q5 S( e& J6 b9 q
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
+ Q1 X/ ?( S g& R - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If' d; N o; i5 v; p
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))# W" U) q. Z( p! J" G+ v9 `) j4 Q
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
3 p$ i0 o" v) B* R) [3 s - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))) X! F4 q8 a& H$ |& Q# O' Q; `
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ)): B: W3 k) N1 ^) d* M0 ]; l$ I2 b% U
- % A1 p0 Q, E) a. F, K1 S0 G) V
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
$ @9 Z! I4 R4 m* k" L4 X - (Setq J (Cdr (Assoc 50 A))))
) Q% N' ?! F: w; j& y
3 P" @0 h: I) h) H5 j6 n7 B- ;;; ============================ DRAW CLOUD =============================
7 V& d0 K7 G' V* `5 I+ r8 `% s
, N% A* a1 b- K' j' J- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
# ]1 U: S2 ^9 f: ~+ _; t7 b - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
1 [4 Z3 V/ w( J1 c - (setq la (getvar "clayer"))9 ~3 {+ n- S/ Y/ o
- (command "layer" "m" "cloud" "c" "5" "" "")
8 Z V9 V9 x% e6 v( i5 U d- N - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
1 |( }. J$ Z4 w5 @9 y5 N - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
0 J! u. W+ \+ h% s - (setq cnt 1 ss (ssadd)). ~7 i* X2 I, F& ?6 U% t7 S
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
/ T7 ~% w! [. K( E, C - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))- q& g% J/ Z, M
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))7 }- A' q e2 p$ \
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)& o- [* \, v6 O& V& k
- (command "pedit" arc1 "y" "j" ss "" "x")6 Q- P& R& Q: w7 y& v& M
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
2 ?) ~3 N2 ?) K- z - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) # @7 v$ L4 t w
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
& I: ]/ s5 G9 a
( {( `0 D6 u( Z J4 @1 r0 [- ;;; ================================ Funtion-Dulieu ========================# a5 r! ]8 X7 E( W% \
- ;;; ================================ Funtion-Dulieu ========================6 r6 r3 p( j3 z1 _7 j8 g3 g6 x! h
- ;;; ================================ Funtion-Dulieu ========================
' r* W% v4 \ E3 w' u: J+ }' d
4 p6 x, R+ V5 l+ o. O7 s- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
# ]9 O1 [- [' H9 @* g( i: [9 g - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
5 h- Z+ O3 Z/ P# @9 P7 l - (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)) E4 ?) n9 E& M, q! r8 J
- (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) )+ F2 v) v# S! g8 s3 H9 Q3 S
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))! }2 @+ [# j8 h2 V. w e
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
. d6 |# M" t& j5 w) ?- | - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
4 G7 D% b, x2 [. m. L3 Z. h4 n - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))4 `" |; F" O) o, n" _0 H
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))8 S+ N- q; \; j$ q! ~) s
- (defun ha:giaodiem (dc1 p1 p2 / hc hc1 diem1) (setq diem1 (vectophap p1 p2)) (setq hc1 (polar dc1 (angle '(0.0 0.0) diem1) 100)) (setq hc (inters p1 p2 dc1 hc1 nil)))
2 r- [& ^ U4 C) z/ N/ Z - (defun dtr (dtr) (* pi (/ dtr 180.0)))
9 U/ R0 y: b' y - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
" ^% }& R: P4 r$ l
# g3 t: k) q& Q* u- ;;;==============================PROGRAME===============================# @2 p- h; q/ O8 b% P
- ;;;=====================EditDiM Hien Hop Thoai Dep======================. r9 t5 Z2 t/ i3 s" U: v- S
- ;;;==============================PROGRAME===============================- X2 x6 e, b- _/ I n" R6 k
- ' d5 ]/ n7 b6 P' Q s
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
9 `) M; L: l$ l+ Y# f2 {7 x: Z# \ - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl+ c! [9 ?5 O1 D
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)" @! x4 W+ h' W* {9 b$ T' W
- (Setq Oldlis (Entget (Car Chon))! L8 ~1 ? U) f1 {) ?9 Q7 }0 w# P$ c% g
- Pt10 (Cdr (Assoc 10 Oldlis))
* `1 v/ E8 I, K7 N' s. L& Y& U - Pt13 (Cdr (Assoc 13 Oldlis))- }' J. z+ Q) w/ G
- Pt14 (Cdr (Assoc 14 Oldlis))
6 p% {5 |: y3 ?2 O- l8 F" f1 G - St (Cdr (Assoc 70 Oldlis))
r" \$ D. v7 w, h# J7 P- m+ E - Dimdefault (Cdr (Assoc 1 Oldlis))
* M; }" ^# N4 ^. P/ E$ N2 ~/ Q- e - )
2 X2 u( D+ {. T0 l6 ?; ?; b - (Cond$ \0 h; ]" d) p4 R1 u
- ((Or (= 32 St)(= 0 St)(= 160 St))
+ j! R& P; _1 g j; |0 _! C - (Progn! W3 ?2 Z+ N1 L$ Y# b
- (Setq Ang (Cdr (Assoc 50 Oldlis))& J! F" f; Z. P* }1 |
- Pt (Polar Pt13 Ang 500)) F% | x3 A; j+ L- P4 l* j4 t: h
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
: C4 V3 W& k8 o& a3 W - Dis (Rtos (Distance Pt13 Hc)) S) c; ^+ P* a3 O7 Y5 g
- )
& h4 h5 I: k/ u8 m - ); b6 T8 k2 A8 v% x) Y
- )# L# Y1 w1 M5 |6 |: e, N
- ((Or (= 33 St)(= 1 St))
/ c6 F+ Z! s! h! U; c. B6 G - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
# [$ W/ {1 Z/ J1 R - );;End Cond
. k- m: g6 [! K5 N - (If (= Dimdefault "") (Setq Dimdefault "<>"))( l+ n- P2 S, L# T% `7 w
- (Setq Dial (Load_Dialog "Hai.Dcl"))
. k0 W7 b% }4 r& l+ A - (If (Not (New_Dialog "eddim" Dial)) (Exit))9 y0 ^( l3 D* \5 l0 h) q, L! x
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))" _# x x D3 k) [/ ?
- (Set_Tile "text" Dis))7 B# o8 T4 p% |7 v* c
- (Set_Tile "ha:edim" Dimdefault)
7 M7 A; ?, ?$ a" N9 }, s" I - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
6 D( @9 ^+ c* [7 ` - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")/ t$ S& I0 I9 e& T' P& y
- (Setq State (Start_Dialog))(Unload_Dialog Dial)1 M4 W; j3 u/ c/ w( s9 @5 Z7 I
- (If (And Str (= 3 State))$ t6 G2 `; V _7 T# V1 E/ O/ W
- (Progn& y* @" f! P. S/ {+ _$ q R
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))) [6 z4 A5 |6 y2 H* K+ x; U
- )
% F, P& N. v3 s4 L% D$ l9 y" j - (Defun C:EH (/ Chon Name )
' H6 G6 G" N3 \7 s7 x" _$ G6 l1 O - (Defun *Error* (Msg): `# t" n, _% x: A
- (Princ "\nerror: ")(Princ Msg)(Princ " ")1 R! L* G4 i+ n* a( a, K% i
- (Start_Dialog)(Unload_Dialog Dial)- W1 G7 M& c! I8 a. ^6 z
- (Setq *Error* Olderr)(Princ)
6 W: L, l; d+ M8 Q. T+ t/ x4 a - )
* C9 j; N& s- F' c' S - (Setq Olderr *Error*)
, b4 Y* U' W7 c! e - (Setq Chon T)
) {, }% Y" r6 o& [3 K - (While Chon- _$ D1 _ m/ _/ K0 [. N
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))5 Q( x2 l3 p" N/ k* J+ n" I! o% z
- (If Chon; p5 P7 O; J; O; T, Y+ R7 N+ i$ z ]
- (Progn
- }; Y) [+ b2 m: n# k+ x2 o V - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))5 Q: L$ {$ g9 j% u; B' L7 t: V
- (Cond
( C; F6 a9 `& m! E+ x - ((= Name "INSERT")(Command "Ddatte" Chon))% \* ^9 J+ z3 p+ _
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
/ ^1 S( b& r" @ - ((= Name "DIMENSION") (Hai_Edim Chon))
5 ^4 K2 V: G5 \5 ~6 {% U - )
# d$ H- H# {( k/ t; a5 D - );End Cond
( c- p- ]; ^! \9 T, w, H% S# c( P0 j - );End Progn: E0 G: n" O1 q* z4 o
- );End While
) A1 {) e. Z8 ?3 N. h% m - (Setq Olderr *Error*)(Princ)
. y5 a7 U: Q4 P9 V - );End Program
; i& k3 W, U2 W - 5 ?0 G+ z9 t; F3 O5 f4 b# {
- ;;;====================DDeditDim=====================
$ ]' J( Q7 p/ ^ T0 P) i! T - ;;;=====================Hai.DCL======================+ W6 ]" ?4 J' {9 j5 J @& M% K
- ;;;====================DDeditDim=====================
% ]3 p" r) {1 b0 O) v - " K5 Y0 G0 Y2 ^: @
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
8 J* }( j w/ Y! q/ { - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl5 n4 a* @! C7 U- W% U! O9 _
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)6 G$ |8 |7 a4 @5 X. X, q5 g V
- (Setq Oldlis (Entget (Car Chon))3 U! f) M9 d4 {' ?/ Q/ Y) u* B- U0 }
- Pt10 (Cdr (Assoc 10 Oldlis))
5 @, k* I# s, V - Pt13 (Cdr (Assoc 13 Oldlis))+ B( q, T' {4 R% K2 @
- Pt14 (Cdr (Assoc 14 Oldlis))* M# g1 p* a, r: y! R. F' y: j
- St (Cdr (Assoc 70 Oldlis))
5 n* W# @" v( e. b, P8 H9 _8 H - Dimdefault (Cdr (Assoc 1 Oldlis))6 X/ n' d+ s" S) g
- )/ C6 J8 C+ h% Q0 y
- (Cond
. \' H1 K" e/ d9 I! @7 U - ((Or (= 32 St)(= 0 St)(= 160 St)). m) k+ Q4 `; y& L( ]
- (Progn
" v! d5 ~2 I) V+ J! \. f6 G. B% s - (Setq Ang (Cdr (Assoc 50 Oldlis))' e/ }9 D: ?: U: z
- Pt (Polar Pt13 Ang 500)* A7 Y: z" b. y' c
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)- z" t. x8 m9 d' Y
- Dis (Rtos (Distance Pt13 Hc))) D2 ]8 r# L8 A& Q
- ); w) x3 N) H3 C' ~+ V+ }' H- p
- )
8 q6 B: ^6 M! n q6 r. q% } - )2 d* K5 B/ v) V
- ((Or (= 33 St)(= 1 St))8 ]9 T' |( J: d# t
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))3 M8 Q2 P* e* {+ Z+ g4 _0 G" t
- );;End Cond! A3 Y% r' N8 N5 D$ o+ f
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
$ ~9 ^, V5 e/ s( y1 u - (Setq Dial (Load_Dialog "Hai.Dcl")). z. t) p: V4 U
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
7 R: ]( F- W# ~3 `7 d - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
& p$ F. C, a+ H; b% Y6 ^0 z - (Set_Tile "text" Dis))5 \/ v; T' w9 E- F. a, c6 d
- (Set_Tile "ha:edim" Dimdefault); U/ {# l/ f9 Z/ y& [6 }
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
) o6 @4 `" X1 Q2 P0 A - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")' R0 J( g+ A$ a8 ~
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
# [6 m1 }& r7 T$ K# Y" J+ c S - (If (And Str (= 3 State))- R4 }- c* `& R! E/ O0 b, p! z
- (Progn
& B: j. z7 O3 P/ C: A - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis))), I5 t& _% G" B7 d- D i$ }
- ): P! Z" o' ~# Y0 E* m) s& ^
- (Defun C:EH (/ Chon Name )
# b( {! q2 V: M0 o4 T# u+ Q - 8 f* l. j- t5 Z" l$ V
- ;;;********************Du Lieu********************! d2 i% I% ?' y$ [$ s
- * C) z" C0 ?4 ?) z t5 `% k/ M' ^
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))1 h$ Q7 }+ v1 ?% S& a+ s$ W% t
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
% p% S4 X+ s* }9 p" D( w - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
, \1 ]% U2 _. L) N! Z; o# ^0 H9 y( Q - (Progn
& I, s. X3 q- u A# ? - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
/ [/ I, g H- z' [$ | w6 G - (Setq Chon (Ssget Hacat3))
7 O5 P) u3 s I. i( s - (Command "Break" Chon Hacat1 Hacat2)
" c, p' s, H' F, y# o" i - )6 C- I6 Q: l: [# K3 S3 w/ c
- )9 I4 n; {) @4 G
- (Princ): S' s5 N2 K0 [5 a- G$ }
- ), D* a' B$ _. t8 F V# w4 Z
- ;;0 V) \5 @) g7 T8 Q! ~
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
! I/ C% S ~, F1 U3 V6 e; L - ;;& ~* C$ Z6 [. x$ K$ R S
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))* Q1 H0 ]3 C0 }% h* h' P
- ;;4 U: q* z! d8 G; I( p7 G& y& ?
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
+ c, f$ L! J9 S! y3 B4 H; S - ;;4 s" _: ^9 C. f* }+ p- h. J E; f) p
- (Defun Reinit ()(Setvar "Cmdecho" 1))
/ u1 b" W0 r8 h2 I% F5 R# w - ;;6 t/ `$ E4 u4 j1 i
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2))) W5 C' T& G3 h5 F
- ;;
! X" ? `' i. V) f; b. ~; H - ;;Cho 2 Diem Tinh Ra Vec To Phap
/ Q- ~/ \# v3 e$ d0 T* z+ F" K" ]* m - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
' G4 d6 q: J1 q3 b8 T3 T* }* W - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang0 M) d1 L/ V+ e% a: ~
- ;;Da Biet 2 Diem Thuoc Duong Thang$ y( Q' |% k$ U! u; `- [
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)+ `# X$ c: h: n' ?/ r) ~
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
2 k; h% e8 i6 F" x. R) L7 ^* N - Hc (Inters P1 P2 Dc1 Dc2 Nil)))
" s9 n; {! L( \5 Z9 Z4 y! D - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
9 f+ \+ z% h( k, L5 L - ;;Da Biet 2 Diem Thuoc Duong Thang4 e+ C0 u" W9 l8 L x2 l& _# F6 r1 U8 E9 \
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
* y3 F, C+ a0 H - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
( g( B1 Q) I- J6 M p - Hc (Inters P1 P2 Dc1 Dc2 Nil))
- f3 E& v5 r" ] - (Distance Dc1 Hc)4 o0 u6 i# F' L9 B( T9 A! s
- )
" B% p. V, X2 ~ l0 h. h# S5 T: H - (load "nhapcua.lsp")3 C* X' N7 y2 n/ \" ?! ^
- (Defun *Error* (Msg)
9 \" \8 ]# P" T- S5 d2 x6 }9 V; T - (Princ "\nerror: ")(Princ Msg)(Princ " ")! I8 a! q/ u8 f& k+ A: T$ @
- (Start_Dialog)(Unload_Dialog Dial)! I. O) z: P3 M4 M/ ~# Y) w; f
- (Setq *Error* Olderr)(Princ)
h. z" L- X" J/ A! ?; F j - )1 g( I/ r) N2 o0 t7 O% d2 _% m
- (Setq Olderr *Error*)
" k: A* V1 X& H i- s - (Setq Chon T)
& y5 u% k; v5 h2 T" K - (While Chon: F3 L6 a. Q0 z( \) T+ }" H
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
3 m+ Q5 x4 n2 q% F& | - (If Chon
' L G' h( u' B. K - (Progn
( ^& [2 {# w! h( I5 W. t - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))5 t9 b) B2 y, l4 V5 G; P
- (Cond9 ?4 _5 p* ^! `* V0 M8 R
- ((= Name "INSERT")(Command "Ddatte" Chon))9 c9 ]2 F. A: j0 P g) I
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon "")): x' |* ^' O0 I% ]& q
- ((= Name "DIMENSION") (Hai_Edim Chon))
- j3 } X6 E d* k - ) {: g6 U- T6 _5 u% D% K( m. B n
- );End Cond+ Y# w1 a, c' {( z/ @$ ~- N g4 z
- );End Progn
* z5 m; g: ~ t1 f - );End While$ y$ W2 _/ A% t# ]
- (Setq Olderr *Error*)(Princ)
5 v! m, ^ `6 k6 v) b0 f - );End Program
9 y' \5 y4 ]+ J
7 [* l9 c7 ^: G3 T- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
# W* ^+ W2 G7 ? - ;====================================Nhapcua.LSP====================================
1 R# p2 D, V A& s, e - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================! W+ Q+ z8 N. ?# R0 f' k( C
/ s: N' A: L1 R2 k& s- 4 |$ _* b( h7 P* x* k% X
- 5 `* T6 Z: @; A/ H) I* v
- ;*******************;*******************;*******************;*******************
" |9 e5 u. l1 V: ]; u' L - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****1 G" D j3 d4 X* T Z, D
- ;*******************;*******************;*******************;*******************0 B7 S, s9 m5 F$ V* P+ S
+ F5 c J% W& D9 u$ E1 _- ;VE HINH BINH HANH
) G) o1 e- u6 }4 z) P - " f+ N# f7 @+ I2 z; b/ L
- (defun c:binhhanh (/ p1 p2 p3); z: [4 p0 A' A6 h5 w
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))* |1 B% W* z# F' C4 m3 T
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
# F3 A$ w1 x& g& @ - (setq om (getvar "osmode"))
C$ ?! K5 u* } - (setvar "osmode" 0)' b3 H1 ^* O! Q8 e h1 ?
- (command "line" p1 p2 "")
% `: t# U2 s# ]* J) X - (setvar "osmode" om)
. f6 _- O" X+ V- E - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
) Z: y# { p2 ?& k U7 K% T) J$ s8 c - (setq a (angle p2 p1))
9 w; Q& Z$ n1 c - (setq d (distance p1 p2)); x& ^! N- |. x ~' u9 q. i4 n C" f
- (setq p4 (polar p3 a d))
' C+ E* _! D2 {9 ^6 M - (command "OSNAP" "none")
' } q% M1 n9 R3 W' P - (command "erase" "l" "")
' L- [. h5 E2 Y7 L# r - (command "pline" p1 p2 p3 p4 p1 "")5 U. N- m+ W) \/ I& f. X+ V
- (setvar "osmode" om)
, h: P# o2 C# B e( a2 n+ X - )8 g( T( m( b9 {
- - w+ t1 e5 g h# u; b z- o
- ;VE LUOI COT
( i+ ?( u( k4 ?: |+ g - + t: S+ [+ F" L2 h
- (defun c:LuoiCot ()
4 v7 i9 f7 K T+ t% Q& c8 [ - (setq om (getvar "osmode"))
) N7 C" k- V$ L7 R - (setvar "osmode" 0)
0 C& M- C& E+ K) S - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
- z, y9 O3 I7 o$ d- p! K - (setq p0 (getpoint "\n Chon Basic Point:"))
3 E9 V4 T- N w6 i7 n1 E - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))/ c0 m" v* o" @: n
- (setq dc (getreal "\n Nhap chieu doc cua cot : ")). y4 G& k, p0 Q% G" |# v
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
3 Y- V3 u! m" f5 W2 V - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )4 j5 R, Q' |$ M* \ W
- (command "rectang" p1 p2)
$ {% S% w4 D! s! r$ \- ]. z - (command "hatch" "solid" "l" "")6 N" m& F! N! k3 @
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
" h$ g9 ]7 u' Y0 f/ ^ - (setq nn (getint "\n So buoc cot phuong ngang : "))
7 u' j0 i5 c2 A! w7 p% Q9 \ - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )8 \. E# Q! o8 s! ` m
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
- ^; J! S3 s1 x* q' g( F5 ` - (command "select" "w" w1 w2 "")
8 r( G+ L; ^) u1 B2 q - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
. d' O+ y3 s/ L6 b- B: { - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")) G# q# u& d* @- L3 I' t j
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))% A9 w' B, V" @* |7 q: a
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
* {, S. n" p( F9 J1 k0 B3 [ - (command "zoom" "w" w1 w2)9 _. k; L) `( L& u! }
- (command "select" "w" w1 w2 "")
8 X/ f% i+ s, E; Q - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))* H7 C: R$ \$ n6 ~5 M; G& }
- (setq nd (getint "\n So buoc cot phuong doc : "))
]5 I& b/ R2 |* c. Z- Z0 D - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
/ E, P: e0 z4 U3 K% p9 ?7 w, L - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")* p- a7 X `: o
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )* Y; s0 F4 P3 l1 ^1 W
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
) B) M2 z. w; ]+ u# E- r - (command "zoom" "w" w1 w2)
4 F. ~$ Q: k! d8 \ - (setvar "osmode" om)5 O( e8 T' T" m# ]1 x1 l. E, _, ]
- )/ P, F5 }$ s% j7 h! e" S
- ) J7 U/ y" I* G) M5 v3 m9 Q; [
- ;VE CUA DI
$ X# r2 k# } C8 b. h
0 u, ~3 e& T0 C! B2 ]- (defun c:cuadi ()6 i6 b% x, h' K, y
- (setq om (getvar "osmode"))1 {$ u& A5 P6 h3 k- H. q
- (setvar "osmode" 0)
" T& R' N( j) {" V2 y' [, h6 ]1 f
" V$ g5 @9 d% ~" q7 [4 ^- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))( `" @ w+ W' S! A
- (setq b (getreal "\n Nhap be rong cua : ")): e9 ~* N3 |0 W/ ]
- (setvar "osmode" om)+ K3 {8 V4 C( a' D3 D
- (while (< 0 1). y& t' U# V y) }1 i; ~
- (progn! X- | O) s9 \8 D" D! r% w
- (setq p0 (getpoint "\n Chon Basic Point:"))5 @" M5 U- ]# r" G3 v( c
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:")) b4 r6 A" R# ~" |" c, B5 }, d
- (command "osnap" "none")
; @9 P8 y0 ?2 v - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))3 p! D( x( o& F L5 `& A
- (setq a1 (angle p0 p1)): D* [" @5 }/ e( {7 Z2 ^! Z% p
- (setq p1 (polar p0 a1 (/ (* hstl b) tile))), o; ~" G) @5 w# [6 s+ P, b
- (setq a2 (angle p0 p2))
+ S2 ?( l3 b, U- t T - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
; _% ?) ]8 H/ L - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
9 h- g5 [: g ` - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
' K$ P6 { v& q; K# j! E - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) ; s: ? C% o x
- (setvar "osmode" om)4 r+ W& A4 r- b& P9 _
- ))3 n) x, Z# ^0 }
- )
U { p6 {1 t4 x1 S
( J7 o3 |& [' `" x, `1 V' ]- ;VE CUA SO
4 [7 m, @# b/ g0 F0 a+ F' [6 ?- A2 y; }
8 V" ?. w+ O- o, `7 ]8 } Q+ \- (defun c:cuaso ()
' V, d+ W+ ~# |) z9 ] A! P( P6 O- { - (setq om (getvar "osmode"))
* b \2 V4 G3 A$ n - (setvar "osmode" 0) t& \$ Y- }* ?" O4 ]5 n
( x5 ~5 h2 g) u& p. z- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
$ `) k/ }# l8 o- q - (setvar "osmode" om)
, H N. H; C+ k - (while (< 0 1)
# b) g, f2 S8 E, ^. l - (progn
. {( T! j7 v9 g& k - (setq p0 (getpoint "\n Chon Basic Point:"))/ F/ @. z, B- }: W. g3 X2 |5 X
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
9 l( x" v- ] _6 d, f - (command "osnap" "none"): N5 }" ^+ X. c) P& N
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))5 R" B' [9 h( Y+ v
- (setq b (distance p0 p1))2 z [6 N/ n. e8 A
- (if (< b (/ (* hstl 600) tile)) (setq du 50))( R* D# Y* N9 x; J) p
- (if (> b (/ (* hstl 600) tile)) (setq du 150)): I3 l% Z9 ]0 M4 K7 J, n
- (if (> b (/ (* hstl 1800) tile)) (setq du 200)). r4 _" f: G( i2 U, T
- (setq a1 (angle p0 p1))
" Z; ]1 ]6 f" [6 p9 [) u& `* h - (setq a2 (angle p0 p2))6 h# [& O% f6 S9 R5 M1 q( v
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )9 U* A! M) ~% G E6 n( b0 E
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
/ w7 ?* ` u2 O: Z+ \: P; Q - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
8 I0 D4 I- x' k( [ - (command "pline" p0 "w" "0" "0" p1 "")
$ ?1 e! `6 L8 \ - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")) {8 T2 A# Z9 B7 {& A0 c
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")+ b) s4 b, e4 W1 f% t
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) ( J+ B6 n P) e
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
' J2 p5 @! G/ ?! s" A - (setvar "osmode" om)
9 h7 s! Y/ { W! e7 y - ))! e$ }8 I& g1 L; L: H
- )+ s8 s0 z: ~6 m h7 X
- 0 z+ b3 B5 o- c$ W e: ?* r4 b1 N' T* ~
- ;;;=== General Utility Functions ===
; M$ L, w; ^" Z) Y - ( z5 W% |+ ~2 g8 r- E& g9 \& q# o
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
7 n2 v T+ a1 t4 \# v - ; ADS function. Now it's a simple AutoLISP function that calls the
; H# h" N1 C: [4 S' m - ; built-in function (help). It's only purpose is R12 compatibility. * x( }& q' Y- k! v" z
- ; If you are calling it for anything else, you should almost certainly
, q \. b9 u3 u9 S - ; be calling (help) instead. ( @$ m& j* U' w- a' |1 t e9 C
-
5 o( I @0 D) x& W5 A - (defun acad_helpdlg (helpfile topic)3 l9 ^. m9 Z" U) K* g9 l3 W" ?
- (help helpfile topic)5 v: P- {- u( L4 |9 e+ ]9 F
- )' T" L+ L/ ^) N
- ) C/ c$ {" C' F# b3 m) F- p
- % R7 i5 B2 w$ J; O. Y5 C$ ]
- (defun *merr* (msg)
6 n r" \$ }/ _1 u4 b0 n" k7 L - (setq *error* m:err m:err nil)
" R+ @4 I2 A ]& M* ]' v - (princ), V1 A4 z: v# S4 M9 b) p$ Y
- )6 [( P: ]+ X" R+ Q6 \5 ?. Z9 c
- % Z6 g6 K5 J8 Y0 o# H L5 h$ O
- (defun *merrmsg* (msg)
2 \2 S' W& n0 m l. h - (princ msg)
. k) Z. @- [- x q: R$ s* D3 q - (setq *error* m:err m:err nil)
8 J* {; ^+ c9 t* h/ y - (princ)! _ E M* Z6 N* I8 c2 i: r6 r
- )
1 ?" ~3 c; v, g3 {8 X
4 Z9 \9 p( L, |5 F7 T9 H8 H- ;; Loads the indicated ARX app if it isn't already loaded
3 F- N. G: |) M: z& Q4 U5 q - ;; returns nil if no load was necessary, else returns the
' r! y. s7 u4 y' n - ;; app name if a load occurred.# {: @+ v9 h9 E! X6 L7 p6 k
- (defun verify_arxapp_loaded (app) 2 `% a) } k! c
- (if (not (loadedp app (arx)))
# }1 t [8 v `8 u( J6 _6 S- } - (arxload app f)& a& h6 T Q6 @5 n+ c1 k, g$ {" \
- )
! P* }1 C/ v: u- P; y" [, o- } - )
! d+ R' g$ u7 N' b+ M
) q/ d# h4 c! a' ]1 @- ;; determines if a given application is loaded...
4 y: ~3 ~' J1 y8 U1 i& Q - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or..../ |9 h# L; h2 z0 \4 K! k& c& X5 R4 m
- ;;+ S7 Z3 a- L( V& H" \, u. h( U
- ;; app is the filename of the application to check (extension is required)1 {& j. P B1 Q# n {# |
- ;; appset is a list of applications, (such as (arx) or (ads)/ j6 P R+ |0 l
- ;; 3 u. b' j. v% E& I y3 V: S& t1 c
- ;; returns T or nil, depending on whether app is present in the appset: _) v, T$ [7 z( n$ Y
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"+ h7 B3 ~9 ]! ]2 o
- ;; Also, if appset contains members that contain paths, app will right-match
$ \( L+ B; d' ~% n/ K$ z5 | - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that! _, R- @" o j& B& S' G6 C, j
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."; }1 Q F: Z2 z$ p" F% Q) z2 I& l5 i
- (defun loadedp (app appset)
7 e* N; y9 K( {$ A- d3 P6 F - (cond (appset (or
2 Y! A5 w2 G4 B+ s0 w6 ^* b- L - ;; exactly equal? (ignoring case); p6 U- j3 w+ Y2 p/ i3 |
- (= (strcase (car appset))% n/ ^ R) W6 f( l7 _5 ?
- (strcase app))
" F! t, X9 f0 q; J6 t - ;; right-matching? (ignoring case, but assuming that* q, F. V) W( ? U g( F. Z. [3 T# [
- ;; it's a complete filename (with a backslash before it)2 O$ X( n; k( ?" x6 M5 c |
- (and
7 t5 R+ \( z$ Z( O k - (> (strlen (car appset)) (strlen app))" }, `% k8 h j5 a
- (= (strcase (substr (car appset)
8 t1 F$ g6 y; G - (- (strlen (car appset))
* x/ A0 y, l) B8 _ - (strlen app) 2 M+ I, j/ O% `; f0 ^7 C
- ) 9 Z2 d5 y- Y; {6 u$ }' w: s
- )
j! B# \! J' y! \ - )
; G/ n7 b2 \" F6 x3 D - (strcase (strcat "\\" app))
: F/ T+ t$ r6 b$ k) T/ x# e8 |; K - )
, _0 H: o, {6 _; I; j - )
N' ?' n* O- c5 k/ Z4 x - ;; no match for this entry in appset, try next one....& Y5 d9 a& A$ \1 S
- (loadedp app (cdr appset)) )))
' p) q& u# Q D+ ?7 b3 [ - ); X0 D/ d+ X/ S! T
5 `! c! L3 t- j2 E% z' r6 A( v- 9 ^& [, m* o" ^% _5 N: b
- ;;; ===== Single-line MText editor =====+ H' E9 Q Q5 O8 }7 o9 f! J
- (defun LispEd (contents / fname dcl state)# ~# J9 l% ^4 Y( A
- (if (not (setq fname (getvar "program")))6 x/ U, z6 s; b3 @, ^
- (setq fname "acad")6 m& \" I3 i- T5 U. ]+ n
- )
; y1 I. _( G6 V: w5 Y! x: U - (strcat fname ".dcl")) x& V+ _0 S. h8 e3 e q: j1 R$ l
- (setq dcl (load_dialog fname))
; Q) ]1 P9 d. s u3 j - (if (not (new_dialog "LispEd" dcl)) (exit))" X6 |* T v6 m5 r
- (set_tile "contents" contents)
1 Q; a5 f2 `8 ]1 N# d( X - (mode_tile "contents" 2)) x3 C' Q7 O3 V$ Z+ e. u
- (action_tile "contents" "(setq contents $value)")
1 P: F1 S; b; F6 W, _8 ]4 K3 l# Z* { - (action_tile "accept" "(done_dialog 1)") K9 X$ z4 ?* w# `$ n
- (action_tile "mtexted" "(done_dialog 2)" )
8 V! C/ C0 W2 b( R3 ~ - (setq state (start_dialog))
4 s, y5 j* r5 o. i3 v8 m - (unload_dialog dcl)$ D/ y; ]; x, M9 K
- (cond
; p& g) P! [& E - ((= state 1) contents)
1 r0 e0 w3 `4 T5 T& s; B - ((= state 2) -1)# G/ F! d4 a9 g4 V0 W1 E, Z5 v
- (t 0)+ W7 [" s9 s0 n0 A- v T1 H
- )
1 {5 y: V0 R5 P$ O% [ - )
% |. Z1 U* o. e) O9 ?" s
' e7 F6 A3 z I6 d& }, e6 M6 o- ;;; ===== Discontinued commands =====- n$ {: |% A; h+ k J" I
- (defun c:ddselect(/ cmdecho-save)4 W: K# ^/ u4 |+ I$ z6 y! q
- (setq cmdecho-save (getvar "CMDECHO"))
/ i: `. x5 }0 G: F+ ?/ o - (setvar "CMDECHO" 0)
; j4 N) c3 ?; C0 `7 w7 _) m - (command "._+options" 7)
" A- Q/ S/ A1 [3 `) O7 c/ b - (setvar "CMDECHO" cmdecho-save)
. D$ k, H, B- y/ i) ? - (princ)% `0 |/ O; }4 a& A* `
- ): d+ \) T6 v% C* f9 t) r
- ; p) E: \" v. K
- (defun c:ddgrips(/ cmdecho-save); h$ D# C! h7 K% W! @! D: ^" l6 z
- (setq cmdecho-save (getvar "CMDECHO"))8 N, M2 S" \6 ^' `* T& l: g9 H
- (setvar "CMDECHO" 0). m" J* }9 J3 o7 x1 ~; c
- (command "._+options" 7)
& W. V; w4 [8 m( B% h - (setvar "CMDECHO" cmdecho-save)
9 m2 T' I j$ f9 B+ C; f3 t - (princ)
L% e( x) I0 [, @$ [ - )8 E$ a. l6 g3 T) ? }
- / `6 I# d' R1 Y" h1 ]' S+ g% z; z
- (defun c:gifin ()
( n5 e- g' |2 p - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")" M2 u6 R7 B1 V2 y. s% F
- (princ)5 X' Q+ L0 Y& j6 V* o! v
- )
/ D6 h: `' e/ @& S; j5 Y% _1 Y1 A! i
: `# l' b- n7 C5 P. g# s- (defun c:pcxin ()5 j0 S: O( k; I
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
. b8 o9 @1 u' h) y3 m# i7 ]6 p$ l - (princ)
8 _9 k! c) q4 k' G - )3 W7 H2 k# |. R% [# L# @5 X" L& b
- 1 B& Y8 m F5 u$ S) G4 t. Y c/ t
- (defun c:tiffin ()
' J4 }, U* e% I. C, l - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")! w6 I! Z, ]& B4 G6 }! B# c8 S# y+ Q
- (princ)
" d* N. W, E" X$ ?5 G$ X5 u - )
, t' }9 K4 F' d
3 L1 _' A) r1 c- (defun c:ddemodes()! M+ V& b/ [, k% Q3 e, |
- (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.") W. Y0 h8 G% \3 M! F
- (princ)
1 \9 w y% n8 K - )
8 k1 H0 l1 Z. T* H8 c( `) ]5 J - 7 X5 _! X1 N7 U. e8 n) H
- (defun c:ddrmodes(/ cmdecho-save)- }% E, v- z7 g) X, E1 |+ d
- (setq cmdecho-save (getvar "CMDECHO"))% I! N( z' q' m9 C% q# z
- (setvar "CMDECHO" 0)$ P+ T; i( N& S5 B: j+ R
- (command "._+dsettings" 0)
! y/ R; I, Z+ b - (setvar "CMDECHO" cmdecho-save)+ c8 m4 a! N7 a" e" F, f
- (princ): _7 p1 C- h- W! L, ~
- )( E: I9 o& F, ^" W
% n/ J. o A. S( z$ c0 P- ;; HPCONFIG
0 L0 d+ k" m' ` - (defun c:hpconfig (/ hlppath)
B! G# I& ]; d6 {; S$ l5 K - (if (not (setq hlppath (findfile "acad.hlp")))0 Q/ F7 m7 l }: O% ^; E% m
- (setq hlppath ""))$ c1 L/ c& @/ X; z
- (help hlppath "hpconfig"): [0 {: t' C. Z1 u# H
- (princ)
! g$ w- ^, V' F1 \' ] - )
# U" ?6 M1 Y6 A4 G8 E - # O; B. z$ W2 a) B! [
- ;; OCECONFIG( j& }% v! [4 {/ q- b6 W% R0 ^- e
- (defun c:oceconfig (/ hlppath)1 V( P0 ^$ m6 r; j
- (if (not (setq hlppath (findfile "acad.hlp")))+ d& U* b/ W/ G% Q& N- i
- (setq hlppath ""))
5 b. B: ~2 M, c - (help hlppath "oceconfig")
. O7 R/ F" i1 H! _' p& a - (princ)
$ j. H; O4 t. n5 A( A7 v - )/ w% C8 c- N+ S! }& |
- * O* G4 f l6 W# k1 e. e y/ ]
- ;; CCONFIG1 D- l9 L. [7 ~) f
- (defun c:cconfig (/ hlppath)
1 ^5 X! X/ ~, ^: N9 F - (if (not (setq hlppath (findfile "acad.hlp")))/ M6 c. J/ v2 i- o2 f6 ]8 |
- (setq hlppath ""))
, C+ p9 O3 i# {4 h& v) }& q - (help hlppath "cconfig")2 J9 I4 C: I5 ^: [& Q
- (princ)
3 ?, B( f. J/ f! M8 ] - ); m) T) Y& M9 [4 c6 A
: k4 G& j e5 M- ;;; ===== AutoLoad =====4 o# O1 L I# V: r# ]
- z1 g. U4 p0 C* a% r7 G( v- ;;; Check list of loaded <apptype> applications ("ads" or "arx") g# O& ?) O1 |6 `
- ;;; for the name of a certain appplication <appname>.) [. T% K; P+ \" R9 E- `; l
- ;;; Returns T if <appname> is loaded.: H a$ H" q; K& k7 A
- : ]1 V$ [% o: l: p: O S9 l
- (defun ai_AppLoaded (appname apptype)
4 @# @! c, y8 q - (apply 'or
2 J3 C f9 d" i# z1 m - (mapcar . S! c6 d- q" `# I' a! Q2 b% N
- '(lambda (j)
( @, d+ h/ M) u& X' W' Q7 f9 q7 q - (wcmatch; |( E4 r8 I* L4 H$ ^8 K
- (strcase j T)
0 H/ y: U7 d2 P8 G: P( L, D" k3 f - (strcase (strcat "*" appname "*") T). Z6 P! U+ b7 M0 E$ S
- )
0 O8 D5 D, j- j4 j% h - )" ~9 L- x0 h3 p+ M g, H$ m4 d
- (eval (list (read apptype)))
$ W( Z8 t% j! w: n; \- \0 ? - )
" p6 `" x |6 a5 N" W - )
3 c* W7 I3 M, _/ M! O - )
0 C4 K5 T H" Y, T& \* C& Q
" ^7 j2 D+ p7 `: C* u- ;;
9 I. Q/ E& P+ T - ;; Native Rx commands cannot be called with the "C:" syntax. They must % [* w% M3 A+ y
- ;; be called via (command). Therefore they require their own autoload 5 c8 ~ E+ b& H9 T+ z9 U" _( R: A
- ;; command.2 v5 [7 h W/ ?2 M& v9 Q
- ( f" T+ F4 B' ~* ]5 |; V8 u
- (defun autonativeload (app cmdliste / qapp)
2 x/ C1 q" Q' [ - (setq qapp (strcat "\"" app "\""))" J8 b3 C2 f! ]
- (setq initstring "\nInitializing..."). u B5 e. C: c( A6 d0 ~
- (mapcar
# }* Y9 L( i# c! U - '(lambda (cmd / nom_cmd native_cmd)& Z2 |9 v) G2 p4 b, F5 K
- (progn! _. ?; N, w5 W4 a4 J6 K+ D
- (setq nom_cmd (strcat "C:" cmd))
$ L6 [" ~3 x, Y- e4 R( Y! e - (setq native_cmd (strcat "\"_" cmd "\""))
. R5 r4 C5 x c; t8 Z9 J! C6 ?5 m - (if (not (eval (read nom_cmd)))/ _+ V+ U; v; D0 V
- (eval0 ^9 _7 d$ ?) K4 f7 B) M# Q1 t
- (read (strcat
# }. j, a$ H* h% I2 @7 ~ - "(defun " nom_cmd "()"+ {3 k2 N) K* G+ I
- "(setq m:err *error* *error* *merrmsg*)"& S+ k6 a1 T& \
- "(if (ai_ffile " qapp ")"
& [5 u6 `( |7 g3 c" ? - "(progn (princ initstring)"
* F3 D- l; K2 f4 f. [, C - "(_autoarxload " qapp ") (command " native_cmd "))"2 c f- E# f2 Q5 k9 n2 \
- "(ai_nofile " qapp "))"- b" j/ X9 {5 b: e
- "(setq *error* m:err m:err nil))"
/ O* f' T/ x7 M' U- g8 [- V+ B - ))))))
* k+ g% d2 H" s5 B) x, S, U - cmdliste)4 [# Z$ J/ j2 B1 g& k8 i
- nil1 Q0 k( ~$ J& p2 q
- )' [0 \' {0 \0 G, q, \. u* P+ t+ \3 P
% t# Z6 X4 `) ]' Y' J- (defun _autoqload (quoi app cmdliste / qapp symnam)
9 `+ ]" C7 Z- s# p - (setq qapp (strcat "\"" app "\"")), O! A5 G9 D0 D% l3 T" {: J
- (setq initstring "\nInitializing...")( Q+ p- z8 ^2 |$ p
- (mapcar$ p( s7 J$ \ V& Y) f. s
- '(lambda (cmd / nom_cmd). u; }+ B) z, ?5 X& M% n% g8 i
- (progn
5 O- ^9 S& T: `) O/ ? - (setq nom_cmd (strcat "C:" cmd))+ o2 |7 v8 g# o
- (if (not (eval (read nom_cmd))), G8 M9 B; x; S# y) C3 a
- (eval
% g! O9 l1 v% ^$ ]0 @6 P- `4 Y7 c - (read (strcat+ a K$ g2 W, c
- "(defun " nom_cmd "( / rtn)"$ c3 }6 C! X+ S& A" e3 W4 o9 }
- "(setq m:err *error* *error* *merrmsg*)"
0 D( ^! E1 d* B1 u! d - "(if (ai_ffile " qapp ")"0 f. b# j* O* N/ G5 P
- "(progn (princ initstring)"+ a9 p% H' \/ V! d/ u; y
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
' ~+ h' t% z1 _$ F0 o$ Z1 K! Z9 H - "(ai_nofile " qapp "))"
. `3 h) E5 u4 `5 ^: A( b7 X - "(setq *error* m:err m:err nil)"& H8 D U5 D7 x$ O- r7 [
- "rtn)"
7 D% I" m/ a$ ]% Q- n4 p% R - ))))))5 U8 R3 x9 l- z9 |
- cmdliste)$ ~4 Z) J1 W* _7 E9 i& k0 K) R
- nil
% {) u2 n$ @7 H- c+ m5 `7 r - )
3 Y' G+ M, w6 k3 I0 R - * l8 H' l1 I1 i3 x. e& X- |+ `
- (defun autoload (app cmdliste)
8 |- _" K- x( q! n - (_autoqload "" app cmdliste)" m' [ a& {, t" z' u
- )
6 s# M5 A3 v, ]8 o. B; z/ ?5 c - ( E9 B9 m0 g( ^2 T7 l6 @1 {
- (defun autoarxload (app cmdliste)% I' U) w: ]8 u1 Q+ c( c
- (_autoqload "arx" app cmdliste)* ^5 @# m" G0 O5 D
- ): v; g: K/ v+ x. R! I3 x, n
9 m( z) v2 S! R7 p* s$ }4 n- (defun autoarxacedload (app cmdliste / qapp symnam)" x3 ~/ A! l7 X* t/ Z. p
- (setq qapp (strcat "\"" app "\""))1 \5 e `% M1 i' Q2 j
- (setq initstring "\nInitializing...")
5 t. R3 G' {, ?/ W( O - (mapcar! J1 z# I! j/ A# i: F' S6 m4 e% F3 q
- '(lambda (cmd / nom_cmd)1 T) K [( `3 A
- (progn! x; [( N; G7 Q% R2 R2 [, x
- (setq nom_cmd (strcat "C:" cmd))
6 W: B" Q" |. P1 M6 b - (if (not (eval (read nom_cmd)))
( ^+ T- S$ C7 \" S - (eval
4 L _) Z F# l/ n5 ^) V - (read (strcat9 U1 ~! e5 e6 a/ L) }; ^
- "(defun " nom_cmd "( / oldcmdecho)"5 z" z# W/ L' Q( n
- "(setq m:err *error* *error* *merrmsg*)"2 i, O" y& q$ g2 V- ~
- "(if (ai_ffile " qapp ")"( N# h4 P7 q3 c+ E" `! x4 [
- "(progn (princ initstring)"
- Q* F/ N; \% W8 o* I - "(_autoarxload " qapp ")"0 t% e3 M- q% i; V
- "(setq oldcmdecho (getvar \"CMDECHO\"))"8 m! |& M1 |9 P
- "(setvar \"CMDECHO\" 0)"# ?: \+ H* K/ _- k% G
- "(command " "\"_" cmd "\"" ")"0 H+ A3 n. R: ?' |5 B* c Y! m
- "(setvar \"CMDECHO\" oldcmdecho))"6 E- T0 U3 p8 G8 d- r) h: w( Y
- "(ai_nofile " qapp "))"
! G' g3 Q1 d5 o7 I7 r - "(setq *error* m:err m:err nil)"
2 {, s* z4 m$ `2 | - "(princ))"
% J" T }% `0 e6 I4 N. C; h3 W - ))))))3 @6 d2 h+ J5 A5 V* y( C; A9 d
- cmdliste)5 N$ u# C! _6 p5 E; S7 }
- nil; E# ~( s4 H, ]. u: ]. P
- )7 o( w: P3 C6 j7 i
- 1 ~# e* B. j2 d0 z- a: e
- (defun _autoload (app)
- W2 W0 e- T9 v1 o g9 h* @ - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
z1 V* _+ C/ L; H# a! n - (load app): z: x& O+ }, @
- )
2 U2 h0 M6 i f8 O* u
. S4 g/ x/ N: {/ i( a- (defun _autoarxload (app)
% \# \* B# h; f0 Y - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
; m; H( o$ g; p1 n! k6 S) I+ y0 z8 P - (arxload app)
% T9 i4 ~9 D8 \! K- g1 y3 {- \0 G2 b - )
8 k& F" W/ m$ x2 k; o
8 g( j9 V# D" |- A. w- (defun ai_ffile (app)! T5 N$ M/ u4 _# v: ~' v/ r
- (or (findfile (strcat app ".lsp"))! B1 L: w+ w0 z8 v" _; B
- (findfile (strcat app ".exp"))
5 t* M& Z) r0 W - (findfile (strcat app ".exe"))% s& t7 m" k: u6 v/ v, l7 @+ t
- (findfile (strcat app ".arx"))
I( b6 K! Z( | - (findfile app)
4 ~: v" W+ T. w& B8 e+ R - )
- G! q1 y0 v4 f1 i. S& X - )
8 v b5 ~* l, m; H! n - . o* n+ J5 h1 M+ U7 w: a/ a
- (defun ai_nofile (filename)/ i0 p1 |0 J4 O
- (princ7 p6 \: J1 g: I. ^& }
- (strcat "\nThe file "
3 ]1 b. Q, T4 H# @ - filename
" l Z2 m# B3 K$ C2 b y - "(.lsp/.exe/.arx) was not found in your search path folders."
9 Y; y* S. V7 \$ n - )
5 S- z; A; o! [5 ~ - )
* [0 G% f) c' K* j I - (princ "\nCheck the installation of the support files and try again.")5 o. n; y, V9 m6 b. Y$ l# z6 A
- (princ)
" g- |7 m; R! m3 ^2 t! T - )
j4 s: P0 G& u2 c9 }
& ?1 r) g0 @9 S% N2 ]( j- 5 Y) H/ r8 u" [9 x( T2 l' j
- ;;;===== AutoLoad LISP Applications =====
8 e! d: V! t. c& L/ h( }! Y - ; Set help for those apps with a command line interface
2 T6 B3 R. P7 o" z - ! G" n; Q$ w& S6 K2 A
- (autoload "edge" '("edge"))
% S: l* y! t1 t; a% Y - (setfunhelp "C:edge" "" "edge")
, P% N# m9 l0 [" Y" k; U* y+ N7 U
* n2 O5 e6 s8 i# I- (autoload "filter" '("filter " "filter"))% `: m& {1 q0 \9 g/ g, c
- - c9 r8 }# ~$ r: }0 ?) p
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome" {5 q& F0 t: o# r: v) M
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")3 a, G* ~% K% z0 z: t- U! }6 c+ }
- )
3 l2 y# R3 j2 t* M* @2 a& ^ - (setfunhelp "C:3d" "" "3d")
^$ n& {2 P, p5 ` - (setfunhelp "C:ai_box" "" "3d_box")! ]* Z7 f/ Y, _3 {! J3 L
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
! S3 h9 s& r2 D, ^$ ~ - (setfunhelp "C:ai__wedge" "" "3d_wedge")
+ G! X. I5 v9 R9 S: r# P - (setfunhelp "C:ai_dome" "" "3d_dome")
% Q) i4 a9 u$ t% e+ t) | - (setfunhelp "C:ai_mesh" "" "3d_mesh")$ |8 }' M! x) Q- o& l8 W
- (setfunhelp "C:ai_sphere" "" "3d_sphere")5 t8 k- M3 `5 V- e- S
- (setfunhelp "C:ai_cone" "" "3d_cone")
$ @, h1 W2 z. F0 X* N0 }, b - (setfunhelp "C:ai_torus" "" "3d_torus")+ P& E7 M$ f) G2 J" e
- (setfunhelp "C:ai_dish" "" "3d_dish")
5 j# H k* f3 R, E - 5 R I5 D* a& |$ e2 p4 V+ Z
- (autoload "3darray" '("3darray"))
8 d& n2 j7 {5 P G: `4 W. ~ - (setfunhelp "C:3darray" "" "3darray")9 h+ ^) u9 w8 i5 W% _- u' ^- U
- * p; C! J8 B: a' d: Z
- (autoload "ddvpoint" '("ddvpoint"))0 a) g J. s4 ^, r, N+ @2 j
" a) Z4 ?1 c3 f+ @) B- (autoload "mvsetup" '("mvsetup"))
* q( {2 o! V6 n2 q+ N+ u" B& ?" C - (setfunhelp "C:mvsetup" "" "mvsetup")
% r4 L% R T2 {' y/ X! U* K" R% W# R - 7 z4 g3 u1 L/ q0 R; p
- (autoload "ddptype" '("ddptype")); U* X0 R. G H) v- ^& I( t5 |
- % x7 e5 i. ~- E' O. U$ I( x1 R
- (autoload "attredef" '("attredef"))
; F$ C, Q) X- c3 a2 J1 s - (setfunhelp "C:attredef" "" "attredef")
% R$ C& `0 I; o4 }5 i - 8 k* w9 R; [. @% o
- (autoload "xplode" '("xp" "xplode"))- h! g: E6 I, U$ [
- (setfunhelp "C:xplode" "" "xplode")
% {( o6 E. |+ e. a1 a+ }/ f$ D! g - 7 K l; Y6 A3 Y0 V7 |2 J$ ]
- (autoload "tutorial" '("tutdemo" "tutclear"
8 }2 Y! [; |- Y - "tutdemo"
1 f+ v& x- z4 G% {3 N - "tutclear"))/ N7 G+ @7 [7 ?6 [% Q' t7 m
' |0 B, A0 L: Y- ;;;===== AutoArxLoad Arx Applications =====
8 {; v- k# U" p. q* T' z+ V
, M5 f" i( L$ B0 L- (autoarxload "geomcal" '("cal" "cal"))3 `8 R4 i% N% E3 N7 d
- % j' t+ M) e) z& j7 B
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"6 |1 J5 x* U2 i9 t4 O- G: i' k
- "mirror3d" "rotate3d" ( y* z1 q7 B$ y4 m1 ?: t
- "align"))
" ?3 Z0 p. l) B# l$ x* t& i* r4 v - ' j- v! s) B1 F( v
- 4 ~: L3 p( C# P" u
- ;;; ===== Double byte character handling functions =====! m- ?" Q7 g' |) | }+ P
; Q8 T4 {% I3 F! s- (defun is_lead_byte(code)
- x. J `( J) Z7 k* [: d3 l- _ - (setq asia_cd (getvar "dwgcodepage"))
1 S9 g" l& B' D+ ? ~- P; J" u - (cond. Y [) M9 f3 |: F! D. h3 Z8 P- R% J
- ( (or (= asia_cd "dos932")
" }- j/ o! I f' K" V% F - (= asia_cd "ANSI_932")' [( K- m$ o7 E ?* b/ r
- ); U1 \0 D% {- D5 z
- (or (and (<= 129 code) (<= code 159))% w: G, a" o9 w% `
- (and (<= 224 code) (<= code 252))
# z, D7 u5 g+ e$ y - )9 ?7 f) u# t T/ h. G1 v
- )7 D/ d( a* D6 A0 c/ l6 D
- ( (or (= asia_cd "big5")( |+ x# _- E T
- (= asia_cd "ANSI_950")8 n B* d5 g5 e; K; }9 z
- )3 G, _" Z0 G, {& B
- (and (<= 129 code) (<= code 254))
; @5 R. [+ j$ u: J9 t - )9 `9 a5 I3 X: }5 k' e' J1 Q
- ( (or (= asia_cd "gb2312")
4 Q9 w$ K6 U: K6 d" {# P - (= asia_cd "ANSI_936")$ R7 T' Q9 o/ \1 G
- )/ c2 j4 ]1 x [* A/ j* S0 Y
- (and (<= 161 code) (<= code 254))
- |$ N# x% J2 f6 ]) B% \, q0 i+ w - )
- V$ Y: N: i: K3 `2 q6 x8 f - ( (or (= asia_cd "johab")
/ x a7 S* o- }9 O* o - (= asia_cd "ANSI_1361")
5 ~, X v0 `' i9 `5 d# { - )" x5 H" j# I3 E* `
- (and (<= 132 code) (<= code 211))
# w# |/ Q$ ?2 ? - )
3 e# i M& k0 h" U3 N) S6 S) t - ( (or (= asia_cd "ksc5601")
. q9 a: h7 A3 }! u5 K: u4 b - (= asia_cd "ANSI_949")2 ]/ [( J, W6 A1 u
- )
' g! I# d8 }, w ?) o - (and (<= 129 code) (<= code 254))
1 N, s/ H- i: ~* j - )
* R2 S$ [2 A' x9 S. P0 z, C& J1 r - ): V. B' M, a+ a. X0 a
- ), }7 ]( t& O( {0 T" {# {8 K
- % C' W0 p2 U& L; }8 \8 \
- ;;; ====================================================
0 Z' D5 m/ E* W# Q l
2 c6 R( S# \; Q7 U) `
' l# g# {1 [! R5 N- ;;;
2 L4 h" A0 t! r - ;;; FITSTR2LEN3 D2 ^" c/ [) L
- ;;;: j* _2 }0 ]7 g1 t: W
- ;;; Truncates the given string to the given length.
2 ~( X( U& c) a2 i$ ] - ;;; This function should be used to fit symbol table names, that
2 y+ C* ]+ c3 O; V7 `# @& |5 y) G - ;;; may turn into \U+ sequences into a given size to be displayed, |+ c* o# @) R6 h2 L, q2 e
- ;;; inside a dialog box.1 h5 V, h7 p3 \7 P! y+ Y0 L" C
- ;;;
3 L5 k1 w4 ]& B( }, f# C - ;;; Ex: the following string: 3 a1 \9 G. E4 ?2 d8 G6 o
- ;;;
9 w9 p' L% D, l* ~" o6 W - ;;; "This is a long string that will not fit into a 32 character static text box."% r0 x5 U7 J8 j/ Y7 r
- ;;;
7 G3 E% b8 S3 F. N( X# r - ;;; would display as a 32 character long string as follows:
5 J: `, ~0 G, R* e* o - ;;;) C) d$ l$ x% ^7 S! p3 H T/ P2 w
- ;;; "This is a long...tatic text box."1 G/ F( f0 V6 V) z8 {+ L
- ;;;
. B, T* w4 F" ^
) F3 I! W8 B& |: m% v- (defun fitstr2len (str1 maxlen)
, b& o% Z1 G+ s, `" [
. M# z2 k, M- U/ w- ;;; initialize internals2 I8 T- V8 R0 |$ D1 ]7 v
- (setq tmpstr str1)
P7 X( C" b" g" b- } - (setq len (strlen tmpstr))1 @6 s6 U) a* l# q, J, _- S0 U
/ Q* L7 g* H& f: A% R- (if (> len maxlen)
. t' q2 j1 c, O5 Y M- v - (progn5 _, P( a7 D# M F
- (setq maxlen2 (/ maxlen 2))
. p1 x9 p3 t9 F _8 ]# v - (if (> maxlen (* maxlen2 2))
8 V# m. w% O S9 n$ j3 l - (setq maxlen2 (- maxlen2 1))
) H6 k; \$ N9 W6 Q7 j5 p y - )
( m3 m. k& g* f P. ^/ r - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
5 j: @! ]5 H' \% p( T2 k j0 Q- H- p, n - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
" u5 g1 L a; P# c* Z; U5 r" \ - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
1 r/ s0 c" y3 y1 B - )
: j, L7 @ }8 D g - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))) E; W0 p2 n& v0 W" z& B1 Q
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))1 \0 J% ?- T8 f( R( R+ ]7 s4 B T
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))) o/ X$ \* p( s' _; @7 j7 c
- )" B/ q5 ]9 T, t) k. \6 z4 u4 K
- (setq str2 (strcat tmpstr1 "..." tmpstr2))2 D9 h8 c3 q0 D6 G1 H2 a- O$ Z
- ) ;;; progn& P0 T* {8 Z6 e* u1 _1 o: `% E1 N
- (setq str2 (strcat tmpstr))
1 x O1 T3 e9 S- V- p' c - ) ;;; if* T! q/ i; v8 I4 f) d% K
- ) ;;; defun
7 w: l9 W6 d. [2 ^ - # n5 q* E, E; n8 b# {8 c
7 @6 z% l+ f0 {% W/ B' v- ;;;9 d' Y8 i; Z1 o
- ;;; If the first object in a selection set has an attached URL$ M$ ]6 A- l' p
- ;;; Then launch browser and point to the URL.; h4 X, w: u" Q. v( U
- ;;; Called by the Grips Cursor Menu
; z3 x& T5 ^& Y4 q - ;;;5 a0 ~: D5 }% V4 e0 H0 M% H0 n
- ' b- x1 Z0 i1 t8 ~; M- [8 c- u
- (defun C:gotourl ( / ssurl url i)
8 a8 @7 e5 f8 A - (setq m:err *error* *error* *merrmsg* i 0) L( d, M- M! }$ r7 b
( D9 g9 k2 R2 j# b. ]/ T$ b7 Y7 Z# m- ; if some objects are not already pickfirst selected, 6 W' D! }" P- [
- ; then allow objects to be selected6 A6 l7 N7 X# C
/ q+ Y8 D" ~( u# p9 A1 @; M& Z- (if (not (setq ssurl (ssget "_I")))
: r% Y- E e( ?0 e3 M* u - (setq ssurl (ssget))8 y" T8 E0 ]) c/ L
- )3 H, k9 }; [. ?& a2 O! p
* P" |) ^$ E) o& t- ; if geturl LISP command not found then load arx application
) d6 E7 _& q7 c! \; ?6 @ - 0 q/ p3 e7 k' X
- (if (/= (type geturl) 'EXRXSUBR)
& P' `4 p) W: o1 E$ C+ l - (arxload "dwfout")4 [6 \4 x h0 d' e5 {, G# F9 y, k
- )
+ P1 ^4 c. W8 Z5 {5 N5 l - 5 {+ E% X% @! I$ x4 g5 t
- ; Search list for first object with an URL ^4 j' U; L6 D
- (while (and (= url nil) (< i (sslength ssurl)))
9 u. G) k1 c/ u0 R. I) _ |3 S - (setq url (geturl (ssname ssurl i))1 K+ l ~2 i. R
- i (1+ i)), ]3 H- x$ z: D, f) r, F6 v* R
- )- v5 N! B8 g/ L$ g( f) k7 b- C
- , Q% ?/ ~. u2 [4 a% i! L
- ; If an URL has be found, open browser and point to URL
6 d6 M% t n! Q# F; M4 q - (if (= url nil)
/ P) g$ o2 m: d/ f - (alert "No Universal Resource Locator associated with the object.")2 r+ I/ _) J4 e3 f, f$ B
- (command "_.browser" url)7 N9 r' g% R1 D* u4 a
- )
7 k+ W$ l3 Y4 f2 Y! e, \9 }. ] - 9 Q$ ^2 f$ _2 Z5 V; K/ \
- (setq *error* m:err m:err nil)
! _4 Y2 D8 L' |' J - (princ)' s: w7 b( X% i6 R" D7 J- E k
: ~7 L1 t, z9 o( a% K- ); @" N2 L, F0 j. R6 Y, i9 E" c( U% B& m
0 k6 j$ j7 X$ h; l: F- ;; Used by the import dialog to silently load a 3ds file: k% x& _' D( |! V
- (defun import3ds (filename / filedia_old render)
# x$ \6 H- A* ~ - ;; Load Render if not loaded
& q8 u2 {: f g) Y6 c$ b - (setq render (findfile "acRender.arx"))
! F" ?5 B! y* Z) e8 l# @" e: V2 K; v - (if render
' O; A# h1 W$ m8 w2 R, ?. d0 i - (verify_arxapp_loaded render) & V+ Y+ }0 F# t
- (quit)' m- L& F! k3 o
- )7 t& h3 g# m' k7 E: ?, w
$ x: X( \8 k: K+ i* ]5 }' j- ;; Save current filedia & cmdecho setting.: ^) X3 U* N# C: e. X' [. t
- (setq filedia-save (getvar "FILEDIA"))% J% v% ^0 C- O* k4 S
- (setq cmdecho-save (getvar "CMDECHO"))( D. U0 U% h4 X+ n# H
- (setvar "FILEDIA" 0)& q/ z' f* a( p' Y% K, `
- (setvar "CMDECHO" 0)
; S3 ? E, `6 f6 T: m - M& ]* w( r5 n
- ;; Call 3DSIN and pass in filename.; t0 X. @' X: X- A
- (c:3dsin 1 filename)* n0 J0 V) |) A4 M& N! ^) q( `" A, P
- ( z @' A" O; G j( T5 s
- ;; Reset filedia & cmdecho _# g. Y% D9 v2 k5 Q7 q; Y
- (setvar "FILEDIA" filedia-save)& j4 g0 _% u K( ]# f
- (setvar "CMDECHO" cmdecho-save)
* E7 i) @6 ?4 F5 \ - (princ) [$ c8 D. }% I2 J3 G! h% ]' a
- )
+ g! U$ w& u3 T) E. p6 a- b9 @& U - ! `5 x9 [6 b" n) G) j
- - n) e6 s) f2 n6 v! m- B z
- ;;;=== Menu Functions ======================================0 I+ L4 z; t0 m3 A( k
- / Q4 x0 O- s8 N4 F$ e
- (defun ai_rootmenus ()% j) }, {% f' `2 \- O
- (setq T_MENU 0)! |4 l6 p3 i/ L" b6 V# H# o0 J
- (menucmd "S=S")& a m" C) z; T3 O
- (menucmd "S=ACAD.S")! |& [3 u' }' d8 F" R* O
- (princ)7 B1 f! q# ]# V8 i
- )7 r' q$ {: j1 j1 q( |: H1 H+ }: [4 z
* f( u; b) s6 |3 A/ z Y$ L- (defun c:ai_fms ( / fmsa fmsb)/ F: E0 @8 b3 L' q9 L
- (setq m:err *error* *error* *merr*)
5 s: z" t; k( G! C% @ - (ai_undo_push)
; l6 ^2 F( [8 e; P& T - (if (getvar "TILEMODE") (setvar "TILEMODE" 0)). {" T2 ]& u+ M: j8 y1 |
- (setq fmsa (vports) fmsb (nth 0 fmsa)) |1 B* ?0 U/ M x2 C9 v7 L
- (if (member 1 fmsb)
, u0 k/ ]4 v. W* b" N% Q - (if (> (length fmsa) 1)
1 K2 m! S( G# w: f2 G - (command "_.mspace")
' A. L8 V9 d) ~5 r! k8 W - (progn" c8 |- w6 z3 ~+ A3 K
- (ai_sysvar '("cmdecho" . 1))
~" \# }9 a$ O3 ^( i: G - (command "_.mview")( g' w9 O. q6 W
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))2 N9 N$ @/ a a" T8 ^
- (command pause)5 k7 t1 w. \+ f* r# O M9 _
- )
( T$ k; w8 D& X - (ai_sysvar NIL)
* n- T4 b" E( g" A' l! x - (command "_.mspace")( ?1 @) J0 _5 b$ Z5 Z! P$ G
- )- G. y( q2 M# b! ?, j% ^" D& L7 [4 b# N
- )4 ~9 Y1 v$ f3 E4 o, z
- ); s: f' y! e" M. l8 x) s# N8 m
- (ai_undo_pop)
7 j s9 H5 @5 {3 L - (setq *error* m:err m:err nil)
+ i; p n/ ?' B# t+ c% O" E. ~9 g - (princ)' E6 M1 V/ o0 F9 [& @ f
- )$ w. g! M$ x7 J
- ' Q0 ?, X' l0 t) O& W) @
- (defun ai_onoff (var)
& J: z, e- { a& O J# h) C - (setvar var (abs (1- (getvar var)))). Y* J2 [# `8 ]- i4 G! `
- (princ)
$ T* Z2 t8 }/ \; O6 R9 i2 b3 I3 o, R - )
) y$ ]( f& K1 b& {
0 F w: }. _, ^( g p2 W- E7 R& L- ;;; go to paper space% B) j2 P" K/ ^% M
- (defun c:ai_pspace ()
' `# H# @2 l9 d& Q9 I4 m! r - (ai_undo_push); D8 c/ f, B& ?
- (if (/= 0 (getvar "tilemode"))
4 G' v4 A% g0 I) W; c3 F; j; _ - (command "_.tilemode" 0)
) g0 N3 L3 f7 R* o7 b - ) ^2 K' D( D% i0 C+ E0 z7 E0 i: W
- (if (/= 1 (getvar "cvport"))
8 _9 C+ m2 L4 a - (command "_.pspace")
* B, c5 F+ r1 F+ B" g$ C - )$ j6 x5 v0 D7 ~2 t: L
- (ai_undo_pop)" _' e; d6 d- g; v2 e! X. K+ b$ L
- (princ)
1 [ ^$ g" d4 l6 k: F. ^6 D - )9 U3 o) l; i0 H F( r$ f
' M% m A6 Y v9 P2 H- k- ;;; go to tilemode 1; i- ]( @8 n. `) U5 n3 [* X
- (defun c:ai_tilemode1 ()+ v7 f" `9 o a6 ~% ]6 f4 J( G2 o
- (ai_undo_push): `$ m J1 F: r- ]8 E% h
- (if (/= 1 (getvar "tilemode"))
! R+ J2 i g; W2 l8 W* ] - (command "_.tilemode" 1)0 _& a; y+ t' b: @7 F; A$ q
- )
; m' t' p. }6 O- Y7 ? - (ai_undo_pop)8 q: V6 B( _( V) V6 e q: q
- (princ)! I+ {/ _: I" j7 F. v
- )
1 m, H1 U# ?( N# K; G - 1 j8 h$ r \! m( k. }3 c+ Y) D
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered: t- Q6 ^( G5 d+ p
- ;;; Toolbar Dimensions/ Align Text/ Centered
4 ]; u+ R" v0 M. c. q; [3 r' s
5 o' U: J3 O& d# w0 d- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
6 K5 ^" ]0 ]3 U0 o& D T1 R0 e& G - (setq ai_sysvar (getvar "cmdecho"))
1 ]3 A4 } d* w! i; N2 ? - (setvar "cmdecho" 0), I- d! w0 F' q$ u
- (cond
0 B$ b$ T6 u1 O7 @% O* f - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
9 H6 M c# }+ L) W. a3 @, V - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" ; {1 l3 T3 Y# z% Q' a, e+ R. j
- "_.dimtedit" ai_dim_ss "_h")3 K6 z9 W2 d1 C% M) f. Q
- )# }+ C, j9 c2 D2 M
- (T nil)
: }; x* _2 b$ o' w5 E - )2 i- e& g) o* ^1 _% u, v* }" J& N
- (setvar "cmdecho" ai_sysvar)
5 D9 u8 S6 u4 N - (princ), U' Q; B2 p! B" F* u% V7 ^& |. S
- )( o% w- e# J% N, N
2 f6 m2 e9 ^& w. s- ;;; Shortcut menu for Dimension Text Above
: q/ a# `9 {/ Q8 m - ' g# u6 ?: g/ K$ q; R
- (defun c:ai_dim_textabove (/ ss)
1 `% k* x2 C5 S5 p) M6 _ - (ai_sysvar '("cmdecho" . 0))# z% d, t1 b) W8 e
- (if (setq ss (ssget "_I"))
# U# t) z3 k2 f+ ^- C - (command "_.dimoverride" "_dimtad" 3 "" ss "")+ C8 \: x3 S% w/ [
- (if (setq ss (ssget))
6 i) W( Z4 G& Z4 o8 x/ }4 K4 W - (command "_.dimoverride" "_dimtad" 3 "" ss "") $ n/ o+ V2 h$ k8 D4 c+ E8 w( [; K
- )" b; f, N: u) r$ H
- )
0 q7 l' [; J* r8 }# f - (ai_sysvar NIL)2 \, R6 G9 p+ X4 p0 ]- L& D1 I+ t
- (princ)
$ P' U% k; ^5 F" \9 i - )1 v" D- Y0 |9 j" _; A
- - O0 @9 A/ P$ R3 N9 x4 T9 N; s
- ;;; Shortcut menu for Dimension Text Center
/ |- n" o G( s
4 _: D$ M% B( w( ?! D+ ]# m' p3 k- (defun c:ai_dim_textcenter (/ ss)
. e' }: a+ \ G' n; l9 Z1 W( q - (ai_sysvar '("cmdecho" . 0))9 u a: N3 b$ q- u' e
- (if (setq ss (ssget "_I"))
. H+ F. ^% X7 v" W - (command "_.dimoverride" "_dimtad" 0 "" ss "")2 D% `- H* h Y& K0 U* [. u
- (if (setq ss (ssget))
' e. d3 L' N% c7 W - (command "_.dimoverride" "_dimtad" 0 "" ss "") 3 E. g) D. b6 N3 u
- ), t( @' n- }6 d' t! I6 _8 H
- )6 z6 {4 C: x2 M8 K9 D% \8 B$ x
- (ai_sysvar NIL)* |# z8 P, w; o+ e
- (princ)
: `+ F5 i2 j v6 S# a, S! I - ) y ]6 y8 t: m
- # Z1 n: V# |/ P- E6 ^! S
- ;;; Shortcut menu for Dimension Text Home 7 l) |9 |; N8 q
5 G8 ?3 ?# @3 E6 V" h- (defun c:ai_dim_texthome (/ ss)
& s' l" _% @/ C4 j9 ]0 I - (ai_sysvar '("cmdecho" . 0))
" ?) p( L$ ? w - (if (setq ss (ssget "_I"))5 X+ [9 ]- }% c' G
- (command "_.dimedit" "_h")' K: u$ ^3 X1 P; q3 ^' b6 y/ k S( X
- (if (setq ss (ssget))2 k) P' Y$ X2 v% g- b( N% ?
- (command "_.dimedit" "_h" ss)3 t7 l" u5 p/ f7 \" V
- )
Z2 q( ]6 O" f% @- a+ [- ~ - )
y! |0 _7 Q# R6 p; y: O - (ai_sysvar NIL)
9 W# v s; m5 L" `, K; h - (princ): A F Q$ d- p' m. ?) e
- )' i4 a6 F0 E- F& B6 k7 E; I6 J6 ^
- % B% Y% R6 l0 s) m" Y e3 [
4 Y; M( Y, O3 d$ o- j' d4 w- ;;; Screen menu item for CIRCLE TaTaTan option.
3 N+ |% }& D* Z$ ?# W - ;;; first, get points on entities
! [9 U E+ F) w/ L7 X - (defun ai_circtanstart()
2 B0 q; V4 a' F1 q/ u$ X - (setq m:err *error* *error* *merr*)
% Y `$ l G. O2 ]9 T( C0 {5 Z9 P - (ai_sysvar
5 c1 S2 s. e( H" G% k2 {% h% l8 M& m - (list '("cmdecho" . 0)8 f! R& f H8 G9 K/ z
- ;; make sure _tan pick for CIRCLE gets same entity K) F! [; _' K1 u
- (cons "aperture" (getvar "pickbox"))0 p4 U' y- q8 _5 o; P
- )
9 A/ |0 W0 m# U, |: a n# K' U - )3 R5 }8 [6 M# \9 r; Q
- ;; prompts are the same as CIRCLE/TTR command option/ \* s, h/ i1 t: P* H! E
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))3 w' D1 P# h2 ^# |) j+ s
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
: V( r' v" S9 d3 b4 m* ]; a - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
" X* ?; u; G! G5 v( m - )+ t! {8 e6 M) o! @
- ;;; Command-line version6 e) ]( K5 ?4 e. Y0 P8 \ z
- (defun c:ai_circtan (/ pt1 pt2 pt3)
6 m, g/ k- u0 _/ b6 I# }* \ - (ai_circtanstart)
* L+ O9 F1 S+ h1 I - + \* X# }3 v8 ]% x: O& [6 `
- (ai_sysvar '("osmode" . 256))$ T: P4 P& v4 ^: h. ^( S) c
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)" H- C: m2 H5 H' C5 Y$ s P3 D
- 4 O7 e& c' R& n6 ^, o) i! W
- (ai_sysvar nil)
, n' C7 U: r8 Z9 o2 e+ }" `1 Q( F - (setq *error* m:err m:err nil)$ e H3 @% n7 E" u
- (princ): h$ A9 a$ u; V( x9 `
- )
2 n! R5 j. n: U2 v, D# c1 D - ;;; Use this if CMDNAMES == CIRCLE6 R$ N. i6 @' F- \. O; \5 ~
- (defun ai_circtan (/ pt1 pt2 pt3). T6 h+ W+ x) c- E
- (ai_circtanstart) l, Y7 r9 \$ S; j9 h
- 4 j* `" x7 y- b8 L$ A P3 ~% \$ g% U( M
- (ai_sysvar '("osmode" . 256))
$ c- l. `! q l- U" T9 k - (command "_3p" pt1 pt2 pt3)8 h4 n$ p$ L ^2 N1 N& H
- 2 |: Y6 j N) X; L
- (ai_sysvar nil)8 X/ Y; n. C: W; k. g# p& H4 ~) S
- (setq *error* m:err m:err nil). ~! r3 M3 Z7 u3 D. I& Z0 A
- (princ)' }3 V- H5 W3 Y# m1 Y! k; q
- )% T9 l: |( c4 W
- ) k/ A) J {: A
- 2 j+ O X% K' Q" `) I6 d2 ~8 z) P7 O; J# b
- 3 z/ ?% s- E! W' \
- ;;; Shortcut menu Deselect All item.
: S6 c4 n" U% I+ f
% X7 |% ^$ Y2 \* c+ u1 X" D- (defun ai_deselect ()
. p/ R1 s- V- Q8 A* o0 e - (if (= (getvar "cmdecho") 0) ;start if
1 d7 i5 [7 Q) x8 U) Q - (command "_.select" "_r" "_all" "")
3 V ~, A' E9 v3 J. g8 J. q - (progn ;start progn for cmdecho 1
3 V! V, \1 V: w, E! _4 Y. H - (setvar "cmdecho" 0)
8 J4 b5 Z. q1 F1 L3 i6 c# w2 D - (command "_.select" "_r" "_all" ""); d' z4 N2 d2 S3 \
- (setvar "cmdecho" 1)
4 ~. @9 Z# _/ _/ N - ) ;end progn for cmdecho 1
! }% W- G5 M% l, b+ v3 Q - ) ;end if( s M! H! ~3 [, [+ ^; S4 R
- (terpri)
+ r' T% x* y: ?' i0 Q - (prompt "Everything has been deselected")6 Q- }9 M% p$ b
- (princ)
. I2 z2 U. I* G$ J - )7 y" i. r m$ ^' _
- 5 s9 |+ k5 C4 O
- ;;; Command version of ai_deselect to be called from the CUI5 s+ O1 [! m2 E; N
- ;;; so it gets properly recorded by the Action Recorder
( A F, n/ H! G0 L { - ;;;5 Y W* ?% Q2 M$ _
- (defun c:ai_deselect ()% I+ s8 \) w( O% O1 B
- (ai_deselect)
7 p; A* S2 a; Y9 i - (princ)7 w5 b# u; [2 j. R
- )
; B( _% q* S6 N" c' Y
0 ~& @5 g+ J" z/ e- ;;;$ t8 E. ~2 |2 E0 D9 d" p
- ;;; Enable Draworder to be called from a menu1 H* N6 `1 m/ \: l& w
- ;;; Checks for Pickfirst selected objects
0 P7 T$ `& c s6 s - ;;;
' i, u' o6 X# _7 a Z& i6 C. b - 7 O: o9 U3 Y1 N4 _: ~0 t6 |- F
- (defun ai_draworder (option / ss )
9 G- m9 h0 {7 K6 }% A
4 V3 z! i4 @! @' X3 P7 C- (setq m:err *error* *error* *merr*) T: ~ _. h+ W7 d
- (ai_sysvar '("cmdecho" . 0))
- Q5 I: R1 _) ~) R( ~4 c - 0 ~! j1 F3 b, @
- (if (setq ss (ssget "_I"))8 V$ Q8 m' x% ~2 q# }1 d+ n! C$ ~
- (command "_.draworder" option)7 ^# e" U& b/ _6 d0 o" x
- (if (setq ss (ssget))1 m3 H) F- I1 G! z& j. L" o8 f
- (command "_.draworder" ss "" option)5 Q) R* S* Q- \1 q' |: }
- )5 T8 p, F8 ^, W2 ]+ Q) g5 q9 S, y; T
- )2 e' s2 G& p8 u, C, J' N+ ?
- (ai_sysvar NIL); d7 @! M( |1 M6 v; r% L* z
- (setq *error* m:err m:err nil). x2 P0 R; w# x; l# M
- & \( p5 B6 G% B! x7 O7 i% C) T! o
- (princ)
8 a( V! M: r2 |! t - )
! n$ K$ N1 ?9 L( w4 a; y - 8 o0 [2 b2 K7 o4 a$ [. F1 U4 r( e
- ;;; Command version of ai_draworder to be called from the CUI o& k+ F; |2 }& u% C: O+ ^) U' ?8 I
- ;;; so it gets properly recorded by the Action Recorder
5 ]7 U0 u2 m: W& w9 [7 G, I - ;;;" q4 u( ]- f) S) V7 _1 T M8 J
- (defun c:ai_draworder ()
! n+ x a: @, j - (initget "Above Under Front Back")
% H' s; _8 {8 [, q3 Y - (ai_draworder (strcat "_" (getkword)))/ r. i8 W3 i% z$ H5 u) U
- (princ)- V$ v4 r& W; K) r- @$ P; y; T6 F
- )
& C7 F4 }5 Y& r1 V! c - % u+ _; Y$ H+ b6 G9 S5 W
- (defun c:vlisp ()$ V3 W B: L3 m% F8 p) M
- (if (/= nil c:vlide) (c:vlide))
+ M: C+ ]+ F8 G4 O# \4 c' ~ - )" W1 G; g* |6 W v) C% k
- : t9 U" N2 ^# _; q2 m1 J
- (princ "loaded.")
# _8 W3 _$ R+ a! o
4 t8 ~# k% k- [/ i. ?- ;; Silent load.
' {0 f' ^( \3 L5 H" S+ g! G' f0 C - (princ)0 \4 {! O9 o% F1 D
- 5 p! X( r& N' \9 z' M
- ;;;----------------------------------------------------------------------------
% `" a. Y8 [; ^* H3 t0 l4 u - ;;;7 U2 d+ N; @! G/ `$ ~7 q' |) g
- ;;; DDCHPROP.LSP Version 0.5
# b! G3 O# m7 {# t5 `$ t& m' T% ? - ;;;" c1 N6 m) D1 G0 ~% ?( _$ S
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.$ u9 S, d# `) G. ?
- ;;;
9 O) X4 R' ^, J3 x) N$ \8 ^0 t! I8 Q - ;;; Permission to use, copy, modify, and distribute this software
3 V) P. i- x: h1 v+ D - ;;; for any purpose and without fee is hereby granted, provided
- q* N# n J, N$ o$ E - ;;; that the above copyright notice appears in all copies and that+ O0 i( ~. Z& Q5 ^
- ;;; both that copyright notice and this permission notice appear in- n" i* a- g7 E: t' J7 i @2 P
- ;;; all supporting documentation. i# T1 J' g7 \/ c8 i+ m$ e' [
- ;;;- O: p7 L/ q$ h; ^9 T
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
" l2 i! C+ n: ?* k0 h- t% ?; O. ~# X - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR! Q1 S( W9 J4 J" n! O
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
0 `& O, p r* b+ U$ F - ;;;" Q, {8 \! ^. E) m- e
- ;;; 2 February 1992
; I" ? U2 @/ K+ O: U5 f - ;;; 3 L V' u2 H* [- r# Q
- ;;;----------------------------------------------------------------------------
3 Y E+ i0 W* [2 @ - ;;; DESCRIPTION1 C9 `" T- E( T o
- ;;;----------------------------------------------------------------------------
9 `. p4 _4 `7 H3 v$ ~0 F) q - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
5 n- j- p) L4 p1 U - ;;;" ^% P$ ~0 C2 C3 T' B- X
- ;;; The command looks similar to DDEMODES. The main dialogue has an image - V/ z' v7 A( ?) ^2 d: a
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). 0 _" V* } H8 U
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. - A. G& Z$ m9 e1 i) |
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.
% C) d9 O9 e# \3 v6 ~ - ;;;# g1 ?/ `" o- {6 u
- ;;;
3 w, F* I& X+ F/ X8 Z4 p7 F& K) ]$ l% a - ;;;---------------------------------------------------------------------------- w, v8 _% z. r% C+ \, z
- ;;;----------------------------------------------------------------------------% K9 Y; x) c$ Y; V. O
- ;;; Prefixes in command and keyword strings:
! Z3 y+ ^% C: c; D0 i& t4 V. J+ D - ;;; "." specifies the built-in AutoCAD command in case it has been
6 j% ^+ R4 y5 k - ;;; redefined.' Y% a' N0 v' y& B
- ;;; "_" denotes an AutoCAD command or keyword in the native language
! H. x( Q& q4 ^; u2 k% d - ;;; version, English.
: J2 D, \( q' |) X, | - ;;;----------------------------------------------------------------------------
- X, u" F1 @. }: [! ?, h - ;;;/ G8 D; [0 S9 P6 Q3 e4 {4 u
- ;;;
/ F9 }5 _% U$ q/ M - ;;; ===========================================================================
% p" w* f' |8 L* ]: D4 p - ;;; ===================== load-time error checking ============================
: q9 @' s5 `& ] - ;;;4 a( H& j! O! o8 o! h
) `+ z0 [/ F2 d9 [% B" i- (defun ai_abort (app msg)
* W; X7 K9 X$ o( X - (defun *error* (s)
* L& s. ~5 R: i2 @0 { - (if old_error (setq *error* old_error))5 \1 t/ y" x7 }
- (princ)$ Y$ p/ n2 x4 ]9 ~
- )
# f8 p7 E, H' | - (if msg
4 L# B e: a. ?% h - (alert (strcat " Application error: "3 A. |: ]2 q3 v4 I6 `3 r
- app, ]4 q' d" O2 W, O& C
- " \n\n "/ q: |; _, I+ m* D2 c
- msg
" O/ I, y) h5 S8 D8 G* {$ L% B - " \n"
1 F/ B- s: u3 w+ g1 d - )
. u6 K5 L0 P; C# V. b* o6 S. { - ); q% U( u, e/ V
- )
0 j7 \2 R3 H* K* P - (exit)
& ` ?0 ~+ Q# i5 b# N - ): L) S4 T: l8 K/ k5 K0 a4 J% K
; M' W- Q: d, P/ H+ t6 _/ E- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,# w! J/ m( z1 [: C4 S+ Y
- ;;; and then try to load it.- [; n2 [$ W! f6 b; O% N
- ;;;
3 s2 g+ e4 p! `0 f+ V( D' j- Y5 R - ;;; If it can't be found or it can't be loaded, then abort the
. A+ U( n2 [" Q' l - ;;; loading of this file immediately, preserving the (autoload)
o' q1 b" z" d. U6 o9 P+ X - ;;; stub function.. E, R v: K4 \: j5 P
- ! O3 ~1 `- z. E9 A
- (cond0 c' N2 u* u1 j/ W
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded." O' R% A! c% \" L" q
( d, V" z$ ]* y# o- ( (not (findfile "ai_utils.lsp")) ; find it
1 Z; H% b9 y4 E' F `& x/ N - (ai_abort "DDCHPROP"7 {& \8 b) x6 P; w+ r) z' c
- (strcat "Can't locate file AI_UTILS.LSP."
. N' V/ B z# {7 H! u* I - "\n Check support directory.")))
! D! y W( b/ @7 t - " ^+ b1 Z7 b7 U$ J# |
- ( (eq "failed" (load "ai_utils" "failed")) ; load it7 O1 ?4 V9 U+ T1 X- O2 F# P# \
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP")), f! r& f7 `2 \# d2 w- l& Z) l
- ), W9 o9 @8 O. [+ J- E/ X" I: @* R
$ S0 T" T# V8 d. B* Z( D- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP! `, I' R) Y3 Q# v5 m( L" @1 s
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
4 V$ l# N' M* }8 t - ) ; ai_abort's alert box dialog." ~) @; A, }% P6 v T" R
- 0 F5 V6 }9 ~% [: n: w5 @
- ;;; ==================== end load-time operations ===========================
, q* M/ U7 d/ \# l2 H - # l% a7 F' A; Q" @& Q
- ;;; Initialize program subroutines and variables.7 t+ @! `7 ^: D
- 7 `6 A+ Y# @ |3 V# [' e
- (defun ddchprop_init (); j3 \0 @9 B8 U" A! R: o- @
- K( o8 w' b+ R( o4 W) I2 e6 |
- ;;
( {9 `5 L' e" X; w" m$ Z - ;; Define buttons and set values in CHPROP dialogue box
" `6 ]' M6 N; [! t( u, } - ;;
, M; ^: p6 r* H - (defun call_chp ()
' C6 r: T8 p7 v. ~; D4 y - (if (not (new_dialog "ch_prop" dcl_id)) (exit)). ?' ^* K; f) d
- (set_tile "error" "")3 j8 P( |! `5 i
- ;; Set initial dialogue tile values
- y. v* A# L0 P1 Y0 A1 v: I0 [) w - (set_col_tile)9 C* ?/ N; s& R( Z/ v
- (if (= lay-idx nil)! [1 ?: B% o% h0 u: W& \
- (set_tile "t_layer" "Varies")( D' C9 s( K \7 f/ r/ e' _
- (set_tile "t_layer" (nth lay-idx laynmlst))( \5 u: ?8 I9 F9 R& @
- ); ?% T4 S/ D7 k: w3 x# Y
- (cond 4 s$ I. |' D$ @% v& |
- ((= lt-idx nil)
. N# |9 C* z( L2 a, n6 b2 z* S - (set_tile "t_ltype" "Varies")
3 c. Z, E9 ^2 G7 ]2 L& F - )% L1 q, h5 Y, B' d; |9 K6 D! z; x Q
- ((= lt-idx 0) ; set tile "By layer & layer linetype"3 e, D& ^3 m% P' L
- (set_tile "t_ltype" (bylayer_lt))
, P, F; `: h& S# b8 `( o- E9 [: v - )
7 n: ~1 g% {+ Y* o/ b! p - (T
( J0 w" T! I( F& K# p; D7 W& c6 J - (set_tile "t_ltype" (nth lt-idx ltnmlst))
. x- x/ [8 A3 @9 ]( X% w - )& D2 B$ _, l p, h
- )& F* z. C0 x6 b: G+ E4 J
- (if (or (= ethickness nil) (= ethickness "Varies"))
0 h: z. E; A: ?# c* i7 l7 N - (set_tile "eb_thickness" "Varies")
0 ?7 Q* q" c* Y0 C& Z( P - (set_tile "eb_thickness" (rtos ethickness)). e9 W5 Y6 o* }4 u
- )
5 P( d& j& ? |0 |4 W k7 s - ;; Define action for tiles; E4 p: r) Q; |) E1 F
- (action_tile "b_color" "(setq ecolor (getcolor))")9 |- ~- {8 {+ u
- (action_tile "show_image" "(setq ecolor (getcolor))")% I% |4 ?. ~" {
- (action_tile "b_name" "(setq elayer (getlayer))")
/ z: ^( B* I% z6 N$ S - (action_tile "b_line" "(setq eltype (getltype))")
" v. @- _& n& f) ?# @4 x* i, X1 F; ` - (action_tile "eb_thickness" "(getthickness $value)")
9 s* L- ?1 v- } - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")! T g0 f2 ?- x! G- H+ t
- (action_tile "accept" "(test-ok)")" O# [ m2 n# \3 o) C6 @
- (if (= (start_dialog) 1)$ k) f$ `& y h4 n
- (progn& [$ w& v6 I/ o
- (command "_.chprop" ss "")$ l) u7 E6 c4 i' l% `
- (if ecolor
& o: b" o0 g6 A2 g/ Z' ~ - (progn
+ n& r0 _ B7 d' o - (if (= 0 ecolor ) (setq ecolor "BYBLOCK")), J* Y2 N5 d0 {- E/ y# G4 o: k* s
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
T- D. \! d& r - (command "_c" ecolor)
2 l r* ^( q+ r2 u. A+ n, R - )
( ?# I3 V, t: U. e+ } - )- [! R' T. M" ?$ d
- (if (and (/= eltype "Varies") lt-idx)/ A4 }6 h& w0 _! {) j2 T
- (command "_lt" eltype)- Z8 I: `4 H+ h! v4 N; t
- ): o8 ^' X- `' f& {4 D/ |& Z
- (if (and (/= elayer "Varies") lay-idx)2 R0 U! r$ D) @. w
- (command "_la" elayer)5 {- s) t k5 W' m: Y; u5 ~
- )
/ u ~# c; A8 B - (if (and (/= ethickness "Varies") ethickness)
; X6 a! k: b5 h) R' z2 ?3 w - (command "_t" ethickness): Y! \1 p2 r' {1 f
- )
2 Q" V; J6 S: B' O4 w - (command "")
3 n+ `- N9 u- x! s3 ]7 m - )$ v2 V( O8 h6 W3 B/ M9 W6 ?
- (princ "\nProperties unchanged")7 ~: ~ Z8 S. O9 ^3 G2 K
- )
& J5 h5 ^9 B/ ] - (princ)
, o. O2 Z% G8 | - )
) Y0 O# [* [" W' Y+ }- S - ;;
0 z, P4 W& v# A) r9 B* D6 K - ;; Function to set the Color text tile and swab to the current color value.; B; y$ J& S( I4 s* U
- ;;
* t* e8 c; p5 \ - (defun set_col_tile()
9 W4 l" S7 O& s# e/ Z - (cond 5 u# b% O- p. l8 N
- ((= ecolor nil)
6 d; m. h& L$ C( O, q - (set_tile "t_color" "Varies")5 {$ ` G( O+ M$ ]. x( _
- (col_tile "show_image" 0 nil)
8 a: L" j/ \: f5 [9 O# a - )/ K# Z; k P2 h7 Q* J1 T/ o- L
- ((= ecolor 0)
6 c8 Y) g3 t1 U) X. s; C8 g, e - (set_tile "t_color" "BYBLOCK"): v( P7 V1 h& U9 C7 k( |! d
- (col_tile "show_image" 0 nil)
" \/ `2 T# P4 @! o - )
6 R7 y4 |8 o4 g/ L& l - ((= ecolor 1)
' e3 X9 e" \1 O - (set_tile "t_color" "1 red")
/ b9 m: E9 G; c# |; o3 y J - (col_tile "show_image" 1 nil)
5 M; I: J) M& [5 { - )- F+ Q8 u' S0 U* Z& m
- ((= ecolor 2)" a; u( Z: B/ n
- (set_tile "t_color" "2 yellow")4 X& |2 H: w' W+ [7 Y7 x6 {
- (col_tile "show_image" 2 nil). I6 N' F6 K, X9 o7 n
- ), T& {" U4 F, b h) a1 T, C$ a* M) W
- ((= ecolor 3)& p( l" I& H1 o D% I
- (set_tile "t_color" "3 green"): a6 u8 m! Q o* p; K
- (col_tile "show_image" 3 nil)
+ m2 S3 I6 P- V, ^& ` - )' Y5 o6 M, J: d' t' s( n
- ((= ecolor 4)9 R8 H/ T0 c$ J
- (set_tile "t_color" "4 cyan")
( g' Y6 @5 S: S+ d5 c - (col_tile "show_image" 4 nil)3 f, b! w7 E" d
- )* a, O6 |3 N9 y3 R8 v* \" \
- ((= ecolor 5)
; I% _2 V) c! E Y+ s# X- ` - (set_tile "t_color" "5 blue")" D4 ?$ y3 m+ }$ p" d! y& d
- (col_tile "show_image" 5 nil)
; |" V1 o" p I1 N: [ - )
, @5 e1 h" h; y7 G - ((= ecolor 6)) N, O, v9 G/ I& F) j; N
- (set_tile "t_color" "6 magenta")
5 T6 ]$ d% @- x9 o( d - (col_tile "show_image" 6 nil)2 ?6 g, {% [! Q1 f
- )
6 T4 m- p6 A& R - ((= ecolor 7)4 w) _) s- |" E4 y( o" A6 V. G4 x
- (set_tile "t_color" "7 white")
- r B" y5 d; i* H1 k2 S - (col_tile "show_image" 7 nil)6 [" p- q3 l! b$ c/ C; _
- )4 |" K# b( e/ W8 R
- ;; If the color is "BYLAYER", then set the tile to
5 v s* w2 [0 r- W) | - ;; show it's set By layer, but also indicate the
+ n# ?. G4 O5 Y# v r2 ~! m - ;; color of the layer - i.e. By layer (red)# \: A4 b3 x+ Q$ K: d
- ((= ecolor 256)
* O6 F" U' ?0 ` - (set_tile "t_color" (bylayer_col))
* E9 f' B; E2 q( J7 H" a9 o - (col_tile "show_image" cn nil)/ ]# W! H# I& E
- )
! x1 O% u) o4 o7 |/ w! T# } - (T 5 X. F2 W G' Y8 b
- (set_tile "t_color" (itoa ecolor))1 L5 c: V1 j9 ^$ ~; z! |
- (col_tile "show_image" ecolor nil)' z9 K$ h) z+ k5 W( f: O
- )& h0 t2 F+ h9 G8 o' u9 c& [9 F
- )% a; B+ ^& D6 R6 a
- )% E4 j1 h* G w. u: ~
- ;;
1 \3 Q* R+ U0 o& ^ - ;; Function to put up the standard color dialogue.
" H9 Y* L% L: g$ v6 R1 r1 ?- o - ;;, N( X6 y- z% H k
- (defun getcolor(/ col_def lay_clr temp_color)
: r) _+ i- }( O& i - ;; col_def is the default color used when rq_color is called. If ecolor 3 C: G! }: D; q. c$ O- W( T1 J
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
4 T& W: Y; x! F. I5 Y - (if ecolor
* g2 n7 a4 p1 {& d6 T - (setq col_def ecolor)7 q6 Q& ^- ]5 z8 M3 d0 c
- (setq col_def 1)
8 |! |; [' O) H2 t% X- ?( o - )
* ?/ ?: W2 H _4 X& W5 H$ K7 ?. [ -
3 \5 k; _# k* X& R - ;; If we're working with a single layer, get its color
6 `" s3 Y' C, S" R - ;; for use in the color swatch if the user selects color BYLAYER.+ `0 C! S: I& q0 N
- (if (/= elayer "Varies")+ X2 u: k2 T+ x( ]+ }0 S1 u
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
" w( W9 `) Z1 ~( g. g6 t3 Y7 P6 ?" ]: s - (setq lay_clr 0)5 s, j7 z# d7 `) P5 q. Q" W
- )" W/ e( ^& {( ^: d+ S
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))1 N+ x2 n& k- Q3 Q6 I1 @) ]( J T
- (progn/ F E& \2 o* H3 c7 H( y c# `! l7 _
- (setq ecolor temp_color)$ v/ j% U- ~/ K4 V
- (set_col_tile)
( ~# N4 H4 }. R. ` - ecolor
; x' N+ q* y) P8 n9 R2 l) B# a - )
5 i/ [6 U- b$ `& F0 g. G - ecolor S! g$ g f1 |$ b( [; ~
- )
+ n& k6 P4 l8 v% n - )
4 g0 c+ r' t$ m1 B# R0 j - ;;" v, B O7 y$ ^1 r8 \5 n6 Z" P
- ;; This function pops a dialogue box consisting of a list box, image tile,
: e& ^ k( q8 C0 V0 w - ;; and edit box to allow the user to select or type a linetype. It returns
" G J! D0 o0 M5 z - ;; the linetype selected.
' H( {# Y4 v3 u/ s7 t - ;;
: T- u+ x# e! }7 R! t - (defun getltype (/ old-idx ltname)
! l7 m: F+ [8 n - ;; Initialize a dialogue from dialogue file# d% L- M, N! n5 w7 Y# s
- (if (not (new_dialog "setltype" dcl_id)) (exit))' ?5 ?/ b ~$ G% |" X2 _. V
- (start_list "list_lt")$ M" ]9 T: V7 E
- (mapcar 'add_list ltnmlst) ; initialize list box
8 q+ s. I" U* I9 s& M4 `7 E0 A - (end_list)
( i/ d& z* z, I# W5 ] - (setq old-idx lt-idx)
. f z! H, O* b* O9 V - ;; Show initial ltype in image tile, list box, and edit box& q1 s9 _! {6 k& p" o% }5 k. y
- (if (/= lt-idx nil)
6 R5 P0 {+ E, K5 ^2 E, u - (ltlist_act (itoa lt-idx))% I) V$ O8 H5 J. E; U
- (progn4 r* z1 d" Z! J+ J8 Q8 y; u
- (set_tile "edit_lt" "Varies")
4 }1 W# C9 h Z) B - (col_tile "show_image" 0 nil)
- K7 m c. Z7 v! Z7 e* d1 M: u, e% a3 w - )
A4 t* ~+ J) S2 f - ); c: |( B8 L- P
- (action_tile "list_lt" "(ltlist_act $value)"): a. a4 m0 o9 R, M& Z$ c
- (action_tile "edit_lt" "(ltedit_act $value)")0 g' [$ L7 B: ~, H
- (action_tile "accept" "(test-ok)")
9 \- |, p" a8 X7 {+ [ - (action_tile "cancel" "(reset-lt)")
. q: i+ d4 n, ~9 j5 z' k w - (if (= (start_dialog) 1) ; User pressed OK
z. G. e: I6 q: o' ` - (cond 8 p5 L! v# T4 r1 e
- ((= lt-idx nil)( J8 \6 _2 s( B9 E" ]4 @2 n
- (set_tile "t_ltype" "Varies")
6 G8 J$ L& _0 R' e2 \! C: U% j/ s - "Varies"" a( M& o+ b3 {: v1 y
- )
$ S! X: ~2 T7 n1 N6 s - ((= lt-idx 0)- f J0 ~; y* o
- (set_tile "t_ltype" (bylayer_lt))2 C: d5 s' Y$ N. |. ]
- "BYLAYER"
' S. E5 z( B. G7 V9 I6 \4 t - )9 l% [# ^+ l1 d# v, L$ L) K
- ((= lt-idx 1)# y0 B% q) h4 G6 Y, S
- (set_tile "t_ltype" "BYBLOCK")
- P1 A5 j1 v3 S. [+ E2 s3 S - "BYBLOCK". M E) ^9 e7 {0 x" j8 s$ c6 M! f5 W5 o
- )
6 n- C' j' `: m3 } - (T 8 r, _2 d, ]! `" C4 i, c$ |
- (set_tile "t_ltype" ltname)
: I; b% c5 A1 O! f: i$ ]9 X" q - ltname
: d5 S* e7 y3 X - )
# i5 y0 |; f$ J, s1 h4 c+ C - )0 \& Z$ k& D1 l0 U; G
- eltype9 G7 v/ p4 {% l0 [
- )/ G# @: w7 P. u' g
- )6 e P. C2 v4 H4 T$ B
- ;;3 o& h, L, h. d2 x
- ;; Edit box entries end up here4 e! Q) e$ I8 }9 O- {9 Z
- ;;
5 P! m0 X2 G6 `+ o0 q; H5 f - (defun ltedit_act (ltvalue)
6 t6 Q q6 k0 T9 r4 v - ;; If linetype name,is valid, then clear error string, * e" J6 {/ Z/ j5 o$ N- k! Q, u
- ;; call ltlist_act function, and change focus to list box.( k& l3 Z9 _- E' z+ R# U
- ;; Else print error message.2 K( o! a1 P# e! _
- (setq ltvalue (strcase ltvalue))# h ^( y h! g) W- r
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
1 H! \+ F2 |2 i8 y" L: D - (setq ltvalue "BYLAYER")
" [& z- x2 \6 x* T2 |$ d x; G - )
1 x) s1 e$ T; f - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
1 [# N& t5 Y% m - (setq ltvalue "BYBLOCK")) S$ `3 f7 O' C% _
- )
% K/ ?" K- D# z0 o. N _! D# J - (if (setq lt-idx (getindex ltvalue ltnmlst))
0 G1 \ t( E* C2 P; H! M - (progn- e, F7 @/ n8 X3 [ R# |8 d) W- q
- (set_tile "error" "")
6 m. w5 m0 Z1 j5 N) L/ f - (ltlist_act (itoa lt-idx))
' m2 j( }1 ^. p - (mode_tile "list_lt" 2); {; H( [' T- o( _% M
- )
1 k. T. s7 ~" ]$ u( r. z2 R - (progn
6 W- r5 }, D3 B* p+ r9 A - (if (/= ltvalue "VARIES")
) j b* p/ U7 Z& P! e - (set_tile "error" "Invalid linetype.")
' }' r1 s- e6 f b4 } - )
: O* a, n6 L! u& a/ u/ { - (setq lt-idx old-idx)$ u! C) ^) M; |5 ~+ U- a
- )
, `3 R1 a) P) E L/ O' Y/ t2 x. `! Q, G' c - )$ X/ r, m" B$ y% ?& M4 M f% `
- ); q' }3 |4 e+ X/ `0 i
- ;;/ X2 g n4 O, Z8 J9 D8 n, z
- ;; List selections end up here
5 }/ O7 X4 j- w; ~3 _3 \ - ;;
; f; h- Y; ^9 J; a( L - (defun ltlist_act (index / dashdata)
0 [; f# \9 w# T( \6 v+ P+ l4 ~; I: A( f( m! N - ;; Update the list box, edit box, and color tile* S2 d7 H4 I- ^% \" y/ B, V
- (set_tile "error" "")
8 E5 B2 m- D2 m: o) T @, f! X - (setq lt-idx (atoi index))
+ i4 O# c- Q' h% p) L" p( c - (setq ltname (nth lt-idx ltnmlst))
. v" x/ o& e4 f% R7 l2 r - (setq dashdata (nth lt-idx mdashlist))3 z6 q# n" o) A* M) F6 H H
- (col_tile "show_image" 0 dashdata)
j: _& ~" v& ~& s - (set_tile "list_lt" (itoa lt-idx))
% Z( U& y. n* Q+ }. n0 w - (set_tile "edit_lt" ltname)" d& z7 o) w/ j! b8 ]* ^! v8 Z9 z
- )' u% g) T8 b' N. I4 \# J& s
- ;;
" U$ n; g, x/ K6 C- ~- n' Q - ;; Reset to original linetype when cancel it selected
9 k7 D4 z8 Z: A5 F! T/ c+ x" I( r* K - ;;8 E6 Y: m% L9 y& J. O1 _
- (defun reset-lt ()4 a8 O5 c9 v1 N+ A/ c8 i
- (setq lt-idx old-idx)+ z- y4 y, X4 l: t% O
- (done_dialog 0)
w( N+ G/ u4 N% p' l5 @- ~, N! h! M - )
" h$ u0 A) r9 I2 S - ;; m4 s: z3 }- l
- ;; This function pops a dialogue box consisting of a list box and edit box to
( ^' d$ |/ E Y& F- P - ;; allow the user to select or type a layer name. It returns the layer name
7 s" N v0 z6 _" c J! s) o* d - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the - _) V3 T9 P1 j+ a. ]1 N3 G
- ;; drawing.
, R# B3 G- K' }+ [4 b' [ - ;;* ~& t. ?% @5 O% R
- (defun getlayer (/ old-idx layname on off frozth linetype colname)3 u( ~/ c# \6 ^
- ;; Load a dialogue from dialogue file9 I2 G2 k f4 S% w! l; c7 P- B
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
1 Y5 E- N1 I+ N0 l: g - (start_list "list_lay")) p5 @3 {8 p5 l! v& J
- (mapcar 'add_list longlist) ; initialize list box/ q0 A U' `% h" S1 `
- (end_list)
6 @; c; R0 x- A5 r- @2 B( ^ - ;; Display current layer, show initial layer name in edit
* p9 o6 _$ h( A4 y8 Z - ;; box, and highlight list box.
& T( m6 q% I$ g+ w. @ - (setq old-idx lay-idx). o) S7 {3 ]# K
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))6 Y4 {- C4 X7 v" j
- (set_tile "cur_layer" (getvar "clayer"))
! S" u/ g6 U& ?9 C - (action_tile "list_lay" "(laylist_act $value)")
) J: n8 f6 U: @ - (action_tile "edit_lay" "(layedit_act $value)"); S/ @6 f$ H' D; H
- (action_tile "accept" "(test-ok)")
7 G) w; |: G- m1 r - (action_tile "cancel" "(reset-lay)")
2 R( D- e% J1 C D - (if (= (start_dialog) 1) ; User pressed OK
' T) t7 p9 W* j0 A1 V* F: }' v - (progn, ~7 i. [7 E- u: m; u
- (if (= lay-idx nil) (setq layname "Varies"))
m4 f! j( @/ `! @. b, A% h - (set_tile "t_layer" layname)
9 d1 {- v! P }) C: V - ; If layer or ltype equals bylayer reset their tiles) z5 a! L! ~( t3 Z# F9 E6 B7 H3 Q
- (if (= lt-idx 0), o1 g/ w1 T3 I9 O% @
- (set_tile "t_ltype" (bylayer_lt))
6 g2 _5 G2 m% k, i - )
- @ u9 E* T: w; b - (if (= ecolor 256). v5 \2 W( M8 f/ ]
- (progn1 i2 n# W' E7 q4 \( M
- (set_tile "t_color" (bylayer_col))
; o: {7 @( M0 V# l. l - (col_tile "show_image" cn nil)8 m# z( K. C1 O! Z) W9 i
- )
+ v& G% [( K2 s* o! o0 `7 \- q! C - )9 v8 j9 ]; }, S8 s1 B
- layname0 t* M- w* |0 s) A
- )
' C# Y- Y% Y% J - elayer' n+ u$ ^/ _; S% f( J, z
- )2 K+ H) ~# a: N% d# N
- )
. k! |( L7 `2 q- _) D# Y! m - ;;$ C4 l. T& Z+ r' v! P& n& x$ Q
- ;; Edit box selections end up here
# m+ J5 _; L7 V" H# ~ - ;;
2 o0 R7 ^% l& ~! \ - (defun layedit_act (layvalue)
4 H% a6 R4 ]) a+ D/ L - ;; Convert layer entry to upper case. If layer name is7 _! P: g3 g. I& l& y+ e% e( `8 E, i
- ;; valid, clear error string, call (laylist_act) function,
2 j w: b# U4 M) ^; t# H - ;; and change focus to list box. Else print error message.
# Y* c/ M& @6 n, Y+ X - (setq layvalue (strcase layvalue))/ W$ D( K$ W% B
- (if (setq lay-idx (getindex layvalue laynmlst))
& ~9 x7 n8 \. t R - (progn
; L6 L2 ?5 v$ J& w - (set_tile "error" "")
! A+ j) M' @9 Z; R( Y o$ I: e - (laylist_act (itoa lay-idx))
# [3 b* M2 k" m - )" X8 H. ?' q1 e& X1 W
- (progn
4 E. R: Z. R! f0 ~ - (set_tile "error" "Invalid layer name.")
$ I3 v) l- ]1 I/ i3 D" R% ?0 U& b+ M - (setq lay-idx old-idx)
+ |( _3 P" f0 O k! e7 X7 R - )
8 p2 {6 O1 W$ I! Z - )8 {5 l' y2 y/ t3 W; J. s
- )7 L' E- S1 o7 G
- ;;: j `7 G( ? Q4 z& P* b4 e
- ;; List entry selections end up here
$ A, ~0 t( ]: V! C8 P - ;;& B" I: Z3 Z. {" g
- (defun laylist_act (index / layinfo color dashdata)% H5 D3 ?1 d: n) W* L3 `
- ;; Update the list box, edit box, and color tile
$ }1 T' e- U$ Q - (set_tile "error" "")6 R. f4 c# c+ z5 V: v
- (setq lay-idx (atoi index))* m3 l$ E+ t, Q; U( Y5 i
- (setq layname (nth lay-idx laynmlst))
% f: @0 k* {7 o/ U4 [4 i1 e - (setq layinfo (tblsearch "layer" layname))
1 D. V. X8 s: Q) M5 T+ S - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
, Q9 |- l) d+ h - (set_tile "error" "Cannot change entity to locked layer.")3 d8 a' ~+ K1 i5 d
- (progn
+ V3 m( G* D+ E$ Q9 F- ^0 p - (setq color (cdr (assoc 62 layinfo)))
; T: J& L1 n$ o! A* ^) A0 u0 ? - (setq color (abs color))- p) W/ ^ ]; j$ N. U8 i5 K
- (setq colname (colorname color))8 ~+ ^' G( r( p9 |( H
- (set_tile "list_lay" (itoa lay-idx)), o; g% v8 R3 W8 z F* b8 C
- (set_tile "edit_lay" layname)
. P; J2 M' q; R, g9 X" X4 ^0 X - (mode_tile "list_lay" 2)
0 s) ]4 T) o' n - )0 _+ H3 V( r; {1 r
- )1 O* j, V# n" C, `; u
- )1 N4 y# ]. Q8 J. L9 ?% J9 r& t
- ;;2 O# ]/ W& l3 N& J g d# s U
- ;; Reset to original layer when cancel is selected: v+ B3 n' i( P8 e$ @2 h
- ;;
" V0 p% j S+ `0 s: o - (defun reset-lay ()8 f6 G, E9 W" _3 R1 p
- (setq lay-idx old-idx)& m8 S8 g& m" `' [. W8 J
- (done_dialog 0)& O0 N( C4 o; x
- )' G. b5 @0 B8 T
- ;;7 b8 \# e" U$ I1 u# D# k6 ?6 L
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a 8 d$ G" g R1 @( Y6 G4 Y$ F1 |/ [
- ;; string can't be converted to a real, this routine checks if the first ! R( [- t! @! I' a% k( p
- ;; character is "0". It also checks to see if the value equals "Varies".0 h( P9 ` \: r& } L
- ;;
7 F# n5 Y+ P4 ~' @4 h6 F$ M1 i - (defun getthickness (value)
) e+ m/ H: C! m# g. E% N - (setq value (strcase value))2 i0 s* u( C7 I0 W
- (if (or (= value "VARIES")( g8 K% Y* H- J* m; D+ I
- (distof value)9 ?. }) j5 E2 D: P5 x s, U M G. W
- )
$ C# d/ h: X# s: |+ Y* k5 @, J- [ - (progn
2 G' h- i, b3 O - (set_tile "error" "")+ [5 l2 M+ e5 c' z9 x3 T
- (if (= value "VARIES")2 i7 g9 @1 m9 W3 [- A- W) G1 ~
- (progn
- F0 b9 Q! f8 c0 |0 c - (set_tile "eb_thickness" "Varies")
3 l7 ]1 l T1 k - (setq ethickness nil)% K! K! g$ t$ X
- )
/ W& G3 R! }- l - (progn, p/ ?3 n# C0 W
- (setq ethickness (distof value))- ?8 d! n; ?- R/ a8 f9 ]: E
- (set_tile "eb_thickness" (rtos ethickness))
7 t6 r. S) P* |: f; h, j - ethickness
9 M* j7 G' c B6 ~8 `; g - )8 @) R, p+ X3 a4 z
- )
6 L" i/ o7 P7 Q6 g; H, a$ z9 |/ y$ V - )
/ @( r2 W i S - (progn
7 @) |6 ?6 i# n1 r - (set_tile "error" "Invalid thickness.")/ C8 N+ G8 }9 s+ s
- nil# v. ~; I. c, `. @. |
- )
3 b9 F( Q8 W: x - )
4 ~% ]( z: T, A. D - )3 _# V5 C7 _$ m$ R+ V
- ;;; L! |* \; k& h3 D( a6 H) f. C4 b! q
- ;; This function make a list called laynmlst which consists of all the layer 4 X) d, Y9 r0 }! v7 i( X4 u; W
- ;; names in the drawing. It also creates a list called longlist which 7 _! d7 X1 X6 Z9 Q4 d7 H3 U1 M- w
- ;; consists of strings which contain the layer name, color, linetype, etc.
. N/ T; d \0 f/ J1 J* J - ;; Longlist is later mapped into the layer listbox. Both are ordered the
. V; H6 l% f! m3 c- U k. G( t2 w5 ~ - ;; same.# D* o. \6 @) k- o; N+ h
- ;;1 A! g# ~2 Y. n2 Z: G$ _6 Y, y3 ]
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname 6 B, G, j1 g$ l/ E. u4 s
- xdlist vpldata sortlist name templist bit-703 a9 w5 }) \4 L* G" v4 p
- )
2 H$ {6 k, e2 R0 F5 S - (if (= (setq tilemode (getvar "tilemode")) 0)$ [" ]7 V! J- F$ c
- (progn6 }' O* ~% ~" Z+ T% J
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")" c/ o" U4 R8 S* o" d
- (cons 69 (getvar "CVPORT"))
6 t- K4 R8 G* M' ?. H) H# s - )
( ~4 K$ m9 I8 W" c8 q - )- F- X6 o. ?% v" z
- )
2 Z: t2 c' M* [& E# O8 ~$ C& K - (setq cvpname (ssname ss 0))8 O. M3 G1 e! R& Q
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
; i$ Y5 A4 Z4 H3 d3 Q - (setq vpldata (cdadr xdlist))
5 g# b3 a) s3 D8 ~6 _: i - )9 v$ V S; v4 G h$ Y6 a
- )
9 r/ C F8 ^; d9 b2 @) r! e# X - (setq sortlist nil)
& o1 g) {; H3 @/ W H! ^ - (setq templist (tblnext "LAYER" T))6 }5 g/ q7 N# l/ v% A9 y5 @: M
- (while templist
/ C, f$ b+ o! g1 M3 X7 {5 } - (setq name (cdr (assoc 2 templist)))- t( Q- R3 ~/ |
- (setq sortlist (cons name sortlist))
. r& }+ B- k7 m. m- B - (setq templist (tblnext "LAYER"))
7 L; ^) w* Q6 h3 M0 d* r - ) 7 H" I; g# a& ?. ?' p
- (if (>= (getvar "maxsort") (length sortlist))4 N5 \6 E" x' X
- (setq sortlist (acad_strlsort sortlist)); ^% W# Z# u7 p+ k" T+ D( Y
- (setq sortlist (reverse sortlist))
7 d: C N2 I8 K& Q/ {6 K; C - ). N# n! q4 g d
- (setq laynmlst sortlist)
( z5 J+ n, |# B- E; X( w - (setq longlist nil)
! f4 Z$ {2 H$ _! j - (setq layname (car sortlist))% m. s) C$ K. t1 P
- (while layname* u4 T6 H# w) V" \# K& f
- (setq laylist (tblsearch "LAYER" layname))
8 u. Z& ?- O$ X$ h0 \9 D - (setq color (cdr (assoc 62 laylist)))
' w6 _ I; r5 S5 x$ }4 b - (if (minusp color)
: S! g4 A! F/ X# O+ ]4 Z - (setq onoff ".")
{1 C x1 l0 g- i - (setq onoff "On"). w% E! c, P5 ?+ g
- )" I9 l0 j( l O# i+ z
- (setq color (abs color))
- G# p2 z8 N, p( ~" k. L9 ] - (setq colname (colorname color))
! k8 k5 M z$ Z9 j/ b U - (setq bit-70 (cdr (assoc 70 laylist)))
# o( ~% l( I$ f6 W7 W/ Y; D - (if (= (logand bit-70 1) 1)
. }3 e9 K7 k% r - (setq frozth "F" fchk laylist)$ T+ c# T1 k0 C W& r1 O- b
- (setq frozth ".")
1 [8 T$ m; n: Q# P - )7 \) d3 @# n1 B1 @5 W5 p- z
- (if (= (logand bit-70 2) 2)
/ B' B3 l( ]' n0 \ - (setq vpn "N")
' [, Q7 }5 `5 B' J7 d6 @ - (setq vpn ".")
6 L5 H( Z7 P0 u! D. }* c2 c - )
* j" F9 A& E! x2 Z( H - (if (= (logand bit-70 4) 4)
! d# g/ |- O! v' n+ t4 T( T- q, j - (setq lock "L")+ d4 ?' L3 i2 ^' O% ?/ F) d& y6 u
- (setq lock ".")- `1 |$ [; Y8 G5 H
- )
1 J" Q& m7 ^, v4 S- Y- a - (setq linetype (cdr (assoc 6 laylist)))
) Q9 J3 e; X/ ]- r0 t - (setq layname (substr layname 1 31))
" e1 P3 o! K; Q5 c5 G8 b5 n! j Y - (if (= tilemode 0)3 @1 T0 I1 b+ @' X0 C
- (progn8 S4 R5 Y: A6 _& M, g) _
- (if (member (cons 1003 layname) vpldata)
5 D5 A. Q' S6 [$ `3 Q - (setq vpf "C")
. b1 Z6 h8 h) N. q0 V: I - (setq vpf ".")% o" n1 v' ~" l( n% d! n" C
- )" k8 w' V$ K' j
- )% s K. {5 N: \5 z; y( B
- (setq vpf "."): E" i: H+ c& A; S: ]' C
- )
% b' L H. l9 @ - (setq ltabstr (strcat layname "\t"
- h* r- C, E, Z" i - onoff "\t"
- C5 w" q8 o$ S( x% q, i9 b' ^ - frozth "\t"* p( j; Z b' X" J1 o7 }! G8 }
- lock "\t"! r/ X% I2 ~. d) {9 S
- vpf "\t"
; b- t r2 ]5 f/ r# O8 h3 N - vpn "\t"
. h+ s2 f6 i' |* F- L. Q' L - colname "\t"
& E( J* {& A5 Y' n! `" C7 a - linetype- Z# a( f* `' Z7 ? v
- )
! i0 i' q# p7 c$ l4 f - )) j$ V- s0 O# D- G# A3 }4 ?
- (setq longlist (append longlist (list ltabstr)))" |: ?, `9 U. R' w
- (setq sortlist (cdr sortlist)); Y8 ]/ [- x9 C" ]$ T
- (setq layname (car sortlist))3 v4 B |* J! L, Z8 G
- )
1 n, U6 D# q9 D& a) W! r' h6 ] | - )* \1 v3 f6 F/ l! j: R
- ;;
2 b0 l/ D! `8 E2 @ - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
$ {. Y X' r' R - ;; linetype names read from the symbol table. Mdashlist is list consisting ( H1 K& Y$ N7 B2 S
- ;; of lists which define the linetype pattern - numbers that indicate dots, 4 v3 O6 l4 g, Q; |1 D$ `5 l& J
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
0 P8 z) ?" m8 H, c" n: f$ x - ;; order of names in ltnmlst.( `" q% n8 y8 ^4 D" ^( y& z
- ;;
% b+ ^( b- q9 A' Q5 C - (defun makeltlists (/ ltlist ltname)) y; m: b: V0 G) @$ m9 t: a- @
- (setq mdashlist nil)* A! h6 w$ W6 H y: q6 J
- (setq ltlist (tblnext "LTYPE" T))
& `3 S8 W _7 a2 b& Z - (setq ltname (cdr (assoc 2 ltlist))). e4 T4 C3 L% `! q
- (setq ltnmlst (list ltname)) z2 i( }6 A3 I( {
8 n; [5 M0 K5 i! S- z P0 R- (if (= ltname "CONTINUOUS")
. X4 J" Y) C* l: G+ X9 e - (setq mdashlist (list "CONT")) B9 {# m8 w- L! J: i( P& o
- (setq mdashlist
7 R: D5 T0 h U! t6 R - (append mdashlist (list (add-mdash ltlist))). U$ b& m" R. j( Y7 ~5 f
- )/ T+ Z, J, Y, C, [0 r
- )
" v8 n& B( l) P/ m6 ?, @ - (while (setq ltlist (tblnext "LTYPE"))7 g8 }4 M }$ o1 |) S
- (setq ltname (cdr (assoc 2 ltlist)))3 w9 | G+ J6 B, l' a% i2 t- w
- (setq ltnmlst (append ltnmlst (list ltname))) e0 q% j3 w* @7 G
- (setq mdashlist 2 z2 L' C6 Z8 h2 H( ]- w
- (append mdashlist (list (add-mdash ltlist)))
5 w9 H( M. Q3 A Z8 b- U! V - )2 }. _% T, K0 ]2 F: t9 l
- )
# H {7 r, N$ U) B# ` - (setq ltnmlst (cons "BYBLOCK" ltnmlst)). Q; |4 k: m* w0 v! t2 o: V
- (setq mdashlist (cons nil mdashlist))
7 g( G6 t; k# T+ P; x, j! ? - (setq ltnmlst (cons "BYLAYER" ltnmlst))# E2 N5 w/ h0 j6 _8 U$ M
- (setq mdashlist (cons nil mdashlist))
' o" u$ x( q& a! v - ); e) n5 ^$ I' [- |- x C: r
- ;;
: `2 x; v) b9 u x1 J - ;; Get all the group code 49 values for a linetype and put them in a list 3 _7 Q$ d$ X) Z
- ;; (pen-up, pen-down info)
: I j. _9 ?7 @1 v - ;;' F4 ^7 I6 K9 p8 M
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
& a7 l1 \9 \+ q$ \: N& ^ - (setq dashlist nil)
9 Z! P( _5 h( l+ b+ S9 k, l3 f - (while (setq assoclist (car ltlist1))
6 J4 E- L0 L6 ]8 A& d, S - (if (= (car assoclist) 49)
2 j% I1 l9 B7 g d - (progn
. b4 `+ t) R$ C- n. D - (setq dashsize (cdr assoclist))) `, {/ S2 g d, c: l8 @2 d
- (setq dashlist (cons dashsize dashlist))% o3 T6 l7 h% j6 M3 K+ R, o
- )
+ e. D5 T s( g2 |' ? - )
6 ^3 ?/ c% l, _1 {- Z0 V - (setq ltlist1 (cdr ltlist1))
! D6 i$ P0 l% E1 o/ p5 ~- u- f: j - )
; w" J b2 B+ D- O; j3 } K - (setq dashlist (reverse dashlist))
% r! {/ M9 c: Z/ O) M5 b2 s9 G - )3 ^" f2 R! X6 @ F* U
- ;;
' m0 v- E* ]+ J! D, g3 G - ;; Color a tile, draw linetype, and draw a border around it& q; H' X; V1 N l$ g
- ;;
/ z7 z6 M+ y: t( u4 f1 K - (defun col_tile (tile color patlist / x y)3 X. u$ [' V8 ^, o5 r: _- X7 B" h
- (setq x (dimx_tile tile))
- M3 L# O* d8 f. n, B - (setq y (dimy_tile tile))
' n( R5 h, K J% [2 R - (start_image tile)- n1 w4 Z- e2 _( p# U; [
- (fill_image 0 0 x y color); J& p9 K2 ]# R
- (if (= color 7)
+ |6 S C1 e7 ?" o" e4 I' l$ G) z6 X - (progn
3 Q# n b2 L" d. A - (if patlist (drawpattern x (/ y 2) patlist 0))
# i9 q0 d1 p$ o' y; @ - (tile_rect 0 0 x y 0), m' J* P: K1 J7 F- w+ z
- )6 ^+ v5 _, M4 L+ c9 Q+ d
- (progn
- T! N( o* O; K& J G - (if patlist (drawpattern x (/ y 2) patlist 7))
: q4 m' S/ d6 @ q+ W- P9 Z4 ^ - (tile_rect 0 0 x y 7)% p0 ~' H) O+ h
- )
# X" w6 [. U0 M$ L3 a - )2 y! r4 T+ b' T! c4 |' i2 p
- (end_image)8 Z# r. K0 x! q2 r+ \! \
- )
) Z0 d7 [! M0 U - ;;$ w8 ~2 V* x7 Q/ g3 j
- ;; Draw a border around a tile
( q% u5 `4 d+ H6 v- T7 d - ;;( U2 k0 [* s/ t R; f. d2 F8 x7 S
- (defun tile_rect (x1 y1 x2 y2 color)% O* P: t! G4 A, g
- (setq x2 (- x2 1))
7 {5 \# W3 D% H$ g9 w8 b- s2 C - (setq y2 (- y2 1))
( V2 z/ G+ }5 p: K$ T* A- H8 C - (vector_image x1 y1 x2 y1 color)' z6 Q3 `0 ]% U6 |. Z3 B. v
- (vector_image x2 y1 x2 y2 color)
9 \) E+ H2 T: D+ t0 o" `/ }# _. f# _! R - (vector_image x2 y2 x1 y2 color)+ Q) J/ t, z, X. l, q- r; T
- (vector_image x1 y2 x1 y1 color)+ ~ b% x5 h. W7 p9 s# D% w( \
- )3 f! s o6 V+ `. [" h6 G
- ;;; d" k1 L2 c$ N) ~, Z* ?
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
5 ?3 T$ ]. W- h) b* I+ N - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a " O6 @2 S* P3 A3 I
- ;; list of numbers that define the linetype, and color is the color of the ( x- o5 W9 r. N7 |* E
- ;; tile. k4 S8 \- V# C5 ?
- ;;. O A% I7 n9 Z- ]
- (defun drawpattern (boxlength y2 pattern color / x1 x2' G. D, c8 G1 d4 Q$ r6 i8 c
- patlist dash)
. Y6 y3 l' q6 T2 p2 a - (setq x1 0 x2 0)5 o, t6 B; a' s9 J g/ a7 t
- (setq patlist pattern)
) _5 X' Q* U$ i a2 N- X) s- k3 c# Q& v - (if (= patlist "CONT")3 Y8 `) n: n) l0 t- l1 k1 S/ _0 V
- (progn
; I h6 o9 C9 ]8 Y/ V% _ - (setq dash boxlength)* Q- F! m+ y- ?7 c9 _( G8 y2 }+ ^8 ~
- (vi)' ^ i3 L* U! d) g
- (setq x1 boxlength)
# }: ^& C9 b8 \; p' v$ Q$ U - )% T3 A+ k, o+ t
- )0 t0 _' ?2 [8 i* T4 P/ B9 w
- (while (< x1 boxlength)
* d- O) x# [: u5 S! Z - (if (setq dash (car patlist))# r7 q3 L8 q+ l, B% h
- (progn+ s+ {# R) e: X8 d3 E
- (setq dash (fix (* 30 dash))) b; j9 K3 m0 E D
- (cond
5 I, M* e9 Y8 j; P }( K - ((= dash 0) / D% C, F" {0 L6 U7 H( \
- (setq dash 1)
# y* V/ I/ a) x' C0 s# { - (vi)9 w. h2 K/ _$ v5 X" ], e* `6 I! j
- )
}7 N: L4 u7 z ?- [4 T4 O# o - ((> dash 0) 1 M) O9 f! D+ y3 U5 V
- (vi)3 D9 W' M, T( n7 N v+ H
- )
* k, E6 C& v( S/ b8 Z1 X; B0 Y - (T ' N5 l7 |( y8 h% H4 W6 {* d+ p
- (if (< (abs dash) 2) (setq dash 2))
* o: Z! M; Z& e: m - (setq x2 (+ x2 (abs dash)))9 f1 |. T$ `6 M0 Q7 k" `8 `
- )
+ G* {( D4 }1 E+ x6 X+ S! j - )0 C# s7 D c( _ {% C8 H/ Z
- (setq patlist (cdr patlist)): L" c4 P* I8 |" e/ Z! _# y; V
- (setq x1 x2)& h& b7 C5 \4 A9 }7 C# _; `
- ): V4 z/ r) l; b6 M2 B8 d
- (setq patlist pattern)* r* M( |- r9 c J1 ?6 S
- )
$ \8 ?/ N' l; D# { - )8 \. r4 O% F. [8 [; T
- )
r o4 M+ P" D% l1 W - ;;" \0 R$ Z8 [2 L: ?* `2 M
- ;; Draw a dash or dot in image tile
5 Q% p* _, e( R6 H0 \2 V: W7 M* \ - ;;
# B2 k5 S$ \$ P! H6 N/ C - (defun vi () x, ]5 }- w3 j4 l* b9 Z" g
- (setq x2 (+ x2 dash))
1 |# U7 w! M1 c3 [2 Q; ~ - (vector_image x1 y2 x2 y2 color)+ v4 I2 r# N' b5 a) C. c" {3 z
- )
3 `* i; B6 _: `7 Y& H8 B, U1 R* D: e - ;;
- g' ]* f3 E( ^1 q - ;; This function takes a selection and returns a list of the color, linetype,
6 P. F; x, V# M/ `. { - ;; layer, and thickness properties that are common to every entities in the
! r7 j& f i2 z# k3 e8 ~$ X6 j" G - ;; selection set - (color linetype layer thickness). If all entities do not 6 o2 B( w1 v! f/ t: e
- ;; share the same property value it returns "Varies" in place of the 5 K$ @5 X) A; C- n
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
' o0 V4 u( k/ K - ;;3 o. ^6 g9 P7 L7 ]! ~% h* m# N
- (defun getprops (selset / sslen elist color ltype layer
- U2 A( r6 } m% u - thickness go chk-col chk-lt chk-lay chk-th ctr); }* t' n* @3 o' Q8 K" \
- (setq sslen (sslength selset))! [- ]9 t+ A$ I4 v7 k& Y! G
- (setq elist (entget (ssname selset 0)))7 d+ h: q7 z& P$ h5 p
- (setq color (cdr (assoc 62 elist)))0 @! V( o( O: i/ _. n D: L
- (if (not color) (setq color 256))+ w" a2 O! E8 a6 [, b6 Z8 b4 I7 N9 w) M
- (setq ltype (cdr (assoc 6 elist)))
7 ~3 f/ ^- m3 u: H - (if (not ltype) (setq ltype "BYLAYER"))
" @! ~# f' ~" J1 t8 Q - (setq layer (cdr (assoc 8 elist)))
( z; Q; z# [) y - (setq thickness (cdr (assoc 39 elist)))
1 Y$ y7 O" I! A: R# k+ m8 z - (if (not thickness) (setq thickness 0))& b8 h2 S+ |. s. ^ s$ P, S) x& F
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)* a( f" L; v& S% G: D. e
- ! Q9 _$ v- x) q2 x1 \% J. o% C
- ;; Page through the selection set. When a property4 `9 w6 g' ^/ j3 m+ e4 t
- ;; does not match, stop checking for that property.- t+ M1 k% t" O' x. g3 j6 f. J
- ;; If all properties vary, stop paging./ ~2 { Y* C' b
7 n5 E F, N' _( C, O% V- (while (and (> sslen ctr) go)
. Q! z' K+ N7 x6 r - (setq elist (entget (setq en (ssname selset ctr))))
# z3 q2 e* q$ O - (if chk-col (match-col))
. ^( H1 ]% C0 V9 |( H s - (if chk-lt (match-lt))
9 f# y' V$ P! g( T - (if chk-lay (match-lay))
# P0 h" f$ y! z* H' ` - (if chk-th (match-th))0 M* d# |* X' n( i) w
- (setq ctr (1+ ctr)), q7 R" }' e7 x& M
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th)); X7 ?1 c, K7 z: i" B
- (setq go nil)
I8 g, c* R* I5 o a! ] - )
2 Q+ S: v# P$ \ - )- o- v1 T. S$ U. [ w0 {
- (list color ltype layer thickness)
v# O: j- a0 `2 A1 v! k - )
$ Z5 q+ [, l, ^) M
1 J9 e2 D0 O( o1 B# L- (defun match-col (/ ncolor)0 Y4 @# s: } p
- (setq ncolor (cdr (assoc 62 elist)))
; O) P# p! z, B" |" m - (if (not ncolor) (setq ncolor 256))
% ]" v9 c* X5 O7 [ - (if (/= color ncolor)3 r' |+ R. [0 }$ n
- (progn' n! z \* c0 F) Q( B
- (setq chk-col nil); W+ k. t) q& _" I+ F5 c
- (setq color nil)
9 _! ]2 V) c1 G8 n8 b - )4 Y' q3 d! I5 ?; x
- )
" l7 d$ Q% U, l - )1 b, a" z* t+ ~8 ]
- * v3 T+ u. x2 W0 H2 S" D( ?
- (defun match-lt (/ nltype)
( ]( c! H/ F) t, M a- r5 G2 e - (setq nltype (cdr (assoc 6 elist)))
4 v$ _4 w/ @# K - (if (not nltype) (setq nltype "BYLAYER")) j, c. a9 o; g' T, B$ q
- (if (/= ltype nltype)5 x/ z( I" A5 v+ a* X& W) k
- (progn" g; A5 i$ o" G5 O: V0 P x
- (setq chk-lt nil)9 x @* x9 L( |
- (setq ltype "Varies")
2 D3 O, u9 f# Q9 b! q( _ W! E" q - )
7 n$ {) d" ~7 _1 M/ ~ - )
6 U4 U: d0 x( d( t% I+ q" \ - )$ K7 P; ?: p4 G; b# r
v; I; j4 m8 B1 n- (defun match-lay (/ nlayer)
# \# Q. e0 V4 ?2 G' N - (setq nlayer (cdr (assoc 8 elist)))
3 s {9 p$ m& B - (if (/= layer nlayer). B/ h! m$ O. ~6 w* p' G) Z. e$ m
- (progn
o1 C9 t0 W9 | - (setq chk-lay nil). N# n# _3 ?7 d, U: z& j$ `' T
- (setq layer "Varies")" w2 n5 k1 p' o, }! L
- )3 X) H+ D" X) Z4 Q- @
- )! \( I& y; n: \, g! T4 n3 d+ h4 b z
- )
" V, J6 F- r7 w0 S6 C/ d) b {0 b
7 m8 M U7 I" D0 S- k- (defun match-th (/ nthickness)
' P" q5 ^; x1 O. l$ B - (setq nthickness (cdr (assoc 39 elist)))
3 \2 q5 A, l; V2 v: c - (if (not nthickness) (setq nthickness 0))
# I6 M, d0 W. t - (if (/= thickness nthickness)- j8 d6 o* o* w8 z
- (progn
5 w. p+ ?% i# D5 N - (setq chk-th nil)2 s p& L( D2 d2 V
- (setq thickness "Varies")
' r* |( ?9 i! O - )! \2 p4 {* j& y# r" c
- )
% a1 r& t7 ?; L( P0 ^# x" H. U+ N4 g - )
: w+ l9 p( H1 |; w: O7 ~ - 4 n5 z( w8 X o3 D# W- G
- ;;
7 h; `& \/ n% `6 [* {! l; \ - ;; If an item is a member of the list, then return its index number, else , E5 c" f3 r9 }5 g$ k! J
- ;; return nil.
8 t" X7 | g$ L u - ;;
: K, O8 R! {2 W- m; e. R - (defun getindex (item itemlist / m n)4 w$ i* L5 G" v8 ?& j% B
- (setq n (length itemlist))
% M% v# H, O! i0 Q+ G' ] - (if (> (setq m (length (member item itemlist))) 0)3 w* J, {2 u. K5 `
- (- n m)6 G) b4 [- t6 R/ c, _# S8 Z" [0 r
- nil s( _4 P d# O1 L
- )
4 H: b5 {8 n2 a! a - )) ]7 p7 M, d$ @ C) b. w4 u* G
- ;;8 Q" P" \& d1 D0 }! p: O8 q
- ;; This function is called if the linetype is set "BYLAYER". It finds the V! f7 w. j" V0 |3 {7 y- L& x
- ;; ltype of the layer so it can be displayed beside the linetype button.* [9 c% S8 L+ D; ~9 p
- ;;
" U4 ~# ~: k" h7 V$ N: I - (defun bylayer_lt (/ layname layinfo ltype)3 D9 ?) V1 H- g k
- (if lay-idx
9 g: P& \% ^* F) t2 @" _/ K; q$ d - (progn4 w0 k( _6 i4 j1 _
- (setq layname (nth lay-idx laynmlst))
( }& i6 R9 D- E: B - (setq layinfo (tblsearch "layer" layname))7 n8 b+ r8 l! g8 ]$ v! l! Y
- (setq ltype (cdr (assoc 6 layinfo))), n1 X4 W0 I, x m' u
- (strcat "BYLAYER (" ltype ")")) \# ~4 v C, H8 u
- )$ _8 E @2 D) ~ Q, M
- "BYLAYER"
9 \/ r" z' Z) P7 e - )3 X1 ~- a- s# p
- )2 D# U) y" D+ u9 M5 q- ]
- ;;
1 d( i; Y B$ [/ F) V - ;; This function is called if the color is set "BYLAYER". It finds the
% ~3 K2 d& \; S3 M% u4 y. T! X - ;; color of the layer so it can be displayed beside the color button.
( m4 p ~0 _$ F6 ~2 S3 f& s% a - ;;
: }! l8 l1 P/ j# x, p; J - (defun bylayer_col (/ layname layinfo color)
' Q7 \/ r) v0 l H3 B7 `4 T. w - (if lay-idx
, D" I) g: I7 ^& ~ - (progn# w2 F: r+ S" J- ]
- (setq layname (nth lay-idx laynmlst))
, C1 H. s+ K* l$ H: [ - (setq layinfo (tblsearch "layer" layname))8 I1 u& @* l( \
- (setq color (abs (cdr (assoc 62 layinfo))))
1 Y# R2 E1 T5 ^3 y - (setq cn color)6 m' ^, |! v4 [8 e
- (strcat "BYLAYER (" (colorname color) ")")
) J* L1 P- M) ?& U; Q0 k6 D - )
% X' d- H# U/ X! k* f% J; V - (progn
- E! n/ \$ @+ n2 Z - (setq cn 0)
' h1 c0 M4 p" s8 v1 Y7 K" e$ G - "BYLAYER"8 z! Y3 `: Y2 ]/ ?
- )
D% f# f8 m/ P6 x3 C9 C - )" [ T# P: Q2 E: m& x- Q
- )$ W/ v8 e. Q0 f( e
- ;;" y, Z# y, o8 y' s/ H
- ;; If there is no error message, then close the dialogue
. \5 G: B4 V( q1 z2 X- y - ;;3 b6 m* B9 u" h% o1 h) _7 k i
- ;; If there is an error message, then set focus to the tile
: z9 B: L5 c/ H* |7 D6 }+ T - ;; that's associated with the error message.5 ~: J3 @" D N1 J6 {
- ;;, D2 j* k. |3 D; y/ `
- (defun test-ok ( / errtile)
' X/ V7 K3 r$ [* T3 B7 f5 ^ - (setq errtile (get_tile "error"))
! K4 `6 r. E5 n N - (cond& X `2 c8 a6 V- N3 K6 m" p5 I
- ( (= errtile ""); c, @% l: R" `9 s ~+ o
- (done_dialog 1))7 W. g Q3 `! H+ n
- ( (= errtile "Invalid thickness.")0 P2 O2 L, F; {0 p9 E5 H1 z+ i+ I- v I
- (mode_tile "eb_thickness" 2))& V) E' h$ x3 j% x$ C. @0 O8 u
- )1 ]- M5 l# S1 }' N, m
- ): _. C$ \8 G( n, [) S6 d
- ;;+ p& N# l* D; @+ e- O; M* u
- ;; A color function used by getlayer.
8 ?- }) `) N2 N# g1 f5 h - ;;6 j6 e# V7 O' S) d& D1 S5 |* u" n
- (defun colorname (colnum)
! g1 `# r5 }, t. e& O- E - (setq cn (abs colnum))- G4 X7 R( Q( b1 i Q9 q
- (cond ((= cn 1) "red")
) \* I5 [' X+ x( x8 I' E, L - ((= cn 2) "yellow")5 i! o% y2 m$ t' V& h
- ((= cn 3) "green")8 x2 j$ z0 E6 X& n3 ]4 ?
- ((= cn 4) "cyan")
3 C7 @1 `- ]9 F1 N8 J& Y - ((= cn 5) "blue")
2 J9 s$ I3 t3 a - ((= cn 6) "magenta")( m* P. [8 o, _ ^: _: d8 S
- ((= cn 7) "white")
: y& c; ]. A9 b O, } - (T (itoa cn))6 K; x+ W( W' }- k
- )
( A8 S$ d+ ?: G, N - )3 g, Z7 Z; D- N2 X4 B
; ~; n# o# Z+ T A2 q- ;;; Construct layer and ltype lists and initialize all4 S% y1 e; {7 l8 B& M
- ;;; program variables:
9 W0 |" Q4 C, [' U+ s0 H - l8 o( `9 }) d5 m( a
- (makelaylists) ; layer list - laynmlst6 [6 |9 k& R% G/ \$ v1 v
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
$ e7 a7 ~2 m1 ? - ;; Find the property values of the selection set.1 _. w/ k1 a$ `' k
- ;; (getprops ss) returns a list of properties from
% F+ z- `) t8 \1 }; D9 h- \: B0 W - ;; a selection set - (color ltype layer thickness).
5 M' s+ l. [3 o! q6 U - (setq proplist (getprops ss))
& B# G) O% s4 Y, p9 |7 h/ e" G# N7 _ - (setq ecolor (car proplist))3 V, f4 {+ X2 A5 h
- (setq eltype (cadr proplist))# x2 Q6 @0 @9 z
- (setq elayer (caddr proplist))4 q" y" ~2 y0 X$ h K& w3 |. J
- (setq ethickness (cadddr proplist))9 O6 C9 a- R4 u0 N* y O) N/ }
- ;; Find index of linetype, and layer lists# ]; s( R) G6 n
- (cond* k5 Z, {( w6 }" \
- ((= eltype "Varies") (setq lt-idx nil))0 f) L& {, w( P) k
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))( r$ S7 V" T) s/ u9 Z1 k
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
/ x/ p2 d- k/ T; d0 C7 W! q5 w0 q$ z - (T (setq lt-idx (getindex eltype ltnmlst)))
6 e0 _9 \6 m d5 V; ?5 X6 L1 w - )
4 Q5 W! J. I. ^0 S1 B - (if (= elayer "Varies")9 c7 `$ M0 U& X7 A
- (setq lay-idx nil)
; V" I; I- c4 V - (setq lay-idx (getindex elayer laynmlst))
" ?& m8 X6 {8 _- d8 L2 ?, ? - )
) i) i6 j; R9 B2 } - (if (= ethickness "Varies")
3 P+ A8 w9 e. N" V3 [ - (setq ethickness nil)
5 {: `8 k9 O+ p9 k7 C3 j - )( h6 J3 I' o& @6 ?5 D
1 v4 K, Q. y6 C3 f- ) ; end (ddchprop_init)
0 L& J6 @, @4 v: @
" Q6 W; _2 J- x3 o/ ]+ W( n) @- ;;; (ddchprop_select)
6 Q' b% I% H- \5 E+ o* Y - ;;;
x+ y) [2 o/ G$ ~7 Q - ;;; Aquires selection set for DDCHPROP, in one of three ways:6 {6 O- O( L! }* I9 N* ?
- ;;;& V* e( b. V# a6 w3 r
- ;;; 1 - Autoselected.
, A+ l0 x. P: p. _7 y# i( | - ;;; 2 - Prompted for.1 ], [& |& G/ v- }
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
& M; B+ Z8 f/ _* s2 q9 H - ;;;- z" ]+ W! J/ r
- ;;; The (ddchprop_select) function also sets the value of the
+ D8 c7 x( i9 P; H: @% |' [ - ;;; global symbol AI_SELTYPE to one of the above three values to
; h# U! z$ H. R0 V% T f+ A - ;;; indicate the method thru which the entity was aquired.
- @* a/ q1 U+ ]& `, E$ Q - 6 q& ] z- m1 S) _5 ^$ ^
- . S7 ~8 u4 P, `, A$ s, A* U0 L
- (defun ddchprop_select ()/ l3 [# z8 z+ r* i, t' Z
- (cond2 i8 F0 u1 H) Y8 D1 @
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to# |$ M+ b p q- M! ~6 t6 f) U; g
- (cond ; (ddchprop) as argument: N. I. t# t+ b0 p
- ( (not (zerop (sslength ss))) ; If not empty, then
7 L6 p( H+ x( k t" G - (setq ai_seltype 3) ; then return pickset.
# H3 t+ q. ~+ W% F' J/ }! w* F - (ai_return ss))))
; O( {' H7 d0 ]4 b - 4 V8 Z( z! D" U
- ( (ai_aselect)) ; Use current selection
" `- L4 r) f) \ - ; set or prompt for objects3 {. c; r4 D$ D1 b& \3 t
, K, n' g+ T) J; J" P: Q: A0 A- }- (t (princ "\nNothing selected.")+ V: z2 ?0 U# u) l! \- F" _
- (ai_return nil))6 t9 p% x3 I7 h8 L7 F2 B8 n) u
- )5 E1 G+ G; s6 e9 l4 Z0 e* f
- )3 t8 j- k3 `5 Z) N! L2 ^6 G1 G5 ~
4 D0 w" u, K- V( s L1 L- ;;; Define command function.
) |& |+ Z j! e% ?+ j5 r/ Q7 Q - ; H; d5 a$ y4 {5 d; q
- (defun C:CH ()0 Y- A! q1 r+ Y) G0 ^$ b
- (ddchprop nil)
4 C: W0 N: n8 L' M* A3 a {: g - (princ)/ g. G- a I+ Y
- )& ]; \2 d( U& Z0 e4 K1 {
- 8 j$ v# G9 C: ~8 U2 ]; b
[) l+ O* w# Z, _- ;;; Main program function - callable as a subroutine.
- U5 d( }5 V: _2 h3 _# e - ;;;
' S o. Z3 Z$ J% d8 @4 ` - ;;; (ddchprop <pickset> )# J! Y7 J& j( m. Y7 U
- ;;;
$ x a8 Z+ e% Y2 v9 ^2 C0 A/ P8 i - ;;; <pickset> is the selection set of objects to be changed.
# v2 l2 ^1 I4 c7 X8 C - ;;;
0 }1 y# p; |) E1 b/ O - ;;; If <pickset> is nil, then the current selection set is5 E! W. s. G( S' c& z
- ;;; aquired, if one exists. Otherwise, the user is prompted
( l( L/ X" @# h - ;;; to select the objects to be changed.
5 e. `' y! ]. j* [ - ;;;! I- _& R+ c, {8 g$ @, x4 s4 `
- ;;; Before (ddchprop) can be called as a subroutine, it must. _- K) e- H# X" G- T" O) [
- ;;; be loaded first. It is up to the calling application to
7 J) a% j, ?- r/ E" M1 ` - ;;; first determine this, and load it if necessary.4 P) e/ g% ~ V1 i. n6 v' c7 p U
- . F: p! B x& V6 r5 ?
- (defun ddchprop (ss /
6 A/ j. G, a1 S
! S9 @+ l! N( _5 N" @8 |- add-mdash ecolor ltedit_act s
) U( ^& k! n1 F" z, Y - assoclist elayer ltidx selset3 o) a: K6 k, f/ C- `( s" Y
- bit-70 elist ltlist set_col_tile/ r) [* _1 |, I' h
- boxlength eltype ltlist1
8 x/ D$ ?: \0 B9 \$ S# \( Q - bylayer-lt en ltlist_act sortlist* W( H Z( n1 s( @5 V8 M% L( z
- bylayer_col ethickness ltname
4 ~) c5 C' c7 f: H( P5 j - bylayer_lt fchk ltnmlst sslen6 H8 K! m1 ^) r( t
- call_chp frozth ltvalue templist
& K% x N# ?+ S5 x% q$ V$ D; k - chk-col getcolor ltype temp_color/ l3 X$ N( X3 k4 _9 i3 x [
- chk-lay getindex m test-ok
( R$ o, ?2 z. ~+ D& [: E6 Y& V - chk-lt getlayer makelaylists testidx
3 p$ D3 j9 D% ~( I - chk-th getltype makeltlists testlay9 `* H: y0 _4 L& d: t5 t
- cmd getprops match-col th-value" M; ?- Z; ^! E( n% m2 s
- cmdecho getthickness match-in thickness4 l+ F5 \0 Y/ z+ t5 n+ T
- cn globals match-lay tile
. E0 B. L/ N( _4 }. Q - cnum go match-lt tilemode t' V& a* X+ W r, s1 w7 }
- col-idx index match-th tile_rect# Y- u1 x% ~; c5 X9 G J
- colname item match_col vi' v" ?* _# x& x2 d. Z; f
- colnum item1 mdashlist vpf
+ R' @, `2 d, a4 U+ _ - color item2 n vpldata/ z, {1 |& @- ? @" O. n* {
- colorname itemlist name vpn+ e" d7 \0 D( K# Y
- col_def lay-idx ncolor x2 t! w: \3 E4 b( C; S6 U7 Y
- col_tile layedit_act nlayer x1
+ }& @' ]' L& W* t" b% @) g - ctr layer nltype x2
7 H; }9 [2 ^$ s! A2 k2 n3 Q* M7 W - cvpname layinfo nthickness xdlist
: Y; q& e8 H, E$ w& f9 r7 P2 O - dash laylist off y
" S; s3 j6 s4 ~: Q: ` | - dashdata laylist_act old-idx y1" s. L$ E( V$ D
- dashlist layname olderr y2
) o+ j9 T2 H$ s; L4 Z' r - dashsize laynmlst on undo_init+ a# r& Z9 t( r" [6 T
- dcl_id layvalue onoff, B' f3 k( G! f& Y Z5 Z
- linetype patlist/ X+ l7 l+ _4 v% u( Q: S" s( q
- ddchprop-err list1 pattern
5 |: S+ Q# E( c, d c - longlist proplist$ R$ j: W9 `) T( w
- lt-idx reset-lay Y$ b1 n& x% P' x' F
- drawpattern ltabstr reset-lt
- g4 F8 Q; w: u3 o" F - )/ B4 `0 e8 L6 m* u- [: `2 C: j
% i: `4 `. W7 }5 l- ^& c' c! T7 n- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
( b* `' o) d8 h% E* }9 m/ S9 G+ { - old_error *error* ; save current error function+ R7 @* K( j6 \9 Q- t3 R1 |: M5 V2 H
- *error* ai_error ; new error function
# l+ ?' `; G+ q7 [8 @- H2 d7 |' Y - )
, d; V' W7 s6 A
1 M5 z) l, i6 z8 ^7 f% n- D1 X% w- (setvar "cmdecho" 0)" M& g9 P* g3 e$ x) l: Q8 r/ n
& ]. J& \; |: n" G- (cond
! z5 u7 F, s) x' m% i9 v - ( (not (ai_notrans))) ; Not transparent?5 @/ k ~( P7 M
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?# f* |6 s7 u$ D& ~9 G
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?. q: z5 H' a8 F, B3 q% U
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?
3 a$ u$ F8 R0 u q3 ~! u
6 A( _9 b, D0 I1 Y$ ^- (t (ai_undo_push) e% _! f; B3 D- R( O% X
- (ddchprop_init) ; Everything's cool,
+ c2 J5 L1 K& q9 a/ f - (call_chp) ; so proceed!. Z; U, Y! H4 f' j! A" r. P6 F
- (ai_undo_pop)
3 p2 z: ?9 ]/ R( o- { - )
' A' v/ T) T8 Y: c# |8 T, K - )0 [/ r* W+ p" i
- ; A$ s- Q t& Q: ~3 \2 k9 a
- (setq *error* old_error)
: d5 h6 c e1 E* ]- r2 ~ - (setvar "cmdecho" old_cmd)
5 W, N9 ], R5 p( a; c# O) A: y - (princ)' C4 ?, b5 N$ I" g+ o/ s( _9 o
- )2 @4 w! [" K! Q5 Q
- & _, \. T, t1 I9 z0 e
- ;;;---------------------------------------------------------------------------- P( u3 N& t' Y* h
- ) H1 c, C {% f0 @
- (princ " DDCHPROP loaded.")
7 k0 h% o: i; F* N2 R( T; S - (princ)1 P' q) f: e+ w. x
+ W4 R `( C. X$ L1 L$ Y" r: n" Y- `1 v- ;;;----------------------------------------------------------------------------
: }/ h2 w4 v& H6 L1 m5 x0 ` - 5 l2 |3 z6 E# \
- ;--------------------------------ddmodify.lsp----------------------------------
: K/ t5 P2 X8 y5 C p- v8 X: U - ; Next available MSG number is 111
" K" \$ [8 E ], U/ g: { - ; MODULE_ID DDMODIFY_LSP_3 ]% F6 y6 s$ M0 z+ I6 R
- ;;;----------------------------------------------------------------------------; z# K1 N, U4 z; Q
- ;;; DDMODIFY.LSP7 v% ?' W3 w: r
- ;;;3 S. F" i# h& [1 X/ O+ W- W
- ;;; Copyright 1997 by Autodesk, Inc.- x& J C* q% c* ^. x
- ;;;
$ K' | \" p' Z2 x$ Z9 } - ;;; Permission to use, copy, modify, and distribute this software2 I1 F5 B: U! p2 Z1 I6 L
- ;;; for any purpose and without fee is hereby granted, provided6 J' g# R% r. o% M# z& f' \3 h
- ;;; that the above copyright notice appears in all copies and1 c( Y+ H" F/ P( |& ]
- ;;; that both that copyright notice and the limited warranty and# P: i: S7 u: E- U* h/ N, w C
- ;;; restricted rights notice below appear in all supporting$ [# [3 Y( t3 S- @% ^; x2 U
- ;;; documentation.
7 w- d5 P) Q6 h) d0 X( y' g! B - ;;;6 [) `, b. o# G3 o, a4 o& _2 e
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
% R0 h# z% f+ _ w8 O/ K/ \ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF/ t- |9 Y) x/ f. o4 ]+ I
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. Y% z. T& u$ b: ^8 o8 T/ o. c0 d" _
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE h& K: d f/ J; J& v
- ;;; UNINTERRUPTED OR ERROR FREE.
; ^# d+ P' ]& Z) Q - ;;;" ?4 ~6 k6 u; P
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to$ g( ` M! O! [! z5 g6 N
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer2 H( b8 ?$ J! |6 C
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
; l# |7 T4 n& t' K8 @9 y - ;;; (Rights in Technical Data and Computer Software), as applicable.; U; _( E* U7 b( ]) L3 b
- ;;;" }2 h6 O0 W3 k/ a9 i2 c
- ;;;.6 I t5 w0 B6 v1 R9 e, x
- ;;;% Z2 O/ o S6 F$ t) l4 F
- ;;;----------------------------------------------------------------------------
- O0 j3 f9 ^; K) s H - ;;; DESCRIPTION2 Y {. B2 t! V
- ;;;
* X" O. W# d( r( P$ X, B - ;;; This function allows the user to get a listing comparable to the LIST3 {& T3 d9 z2 y" t" `' ]) d
- ;;; command for most objects. In addition, most object fields in the
9 U0 Y$ v8 V4 i. U$ r" B - ;;; dialogue box are editable. Points can be specified dynamically by- B) l: p _3 m! @4 w2 s+ ?
- ;;; temporarily dismissing the dialogue box. Each object has a unique, Z+ ^; D' ^& o' {" y
- ;;; dialogue.
: l1 ^" t1 o% v' B - ;;;( _5 y, e! s, F+ ~
- ;;; Naming conventions0 g6 K4 {" ^+ }
- ;;; Long function and widget names may use an underscore "_"
9 b& Y3 s# `+ o$ O( ^, G7 y) b - ;;; in their names to make them easier to read, long variable
/ U0 p' v8 F& |2 G) m0 w - ;;; names use a dash "-".0 H9 m& A% c/ N2 u# V+ g
- ;;;----------------------------------------------------------------------------
k. \& {$ |6 _; m - ;;;----------------------------------------------------------------------------' M5 z* M0 O1 y4 l
- ;;; Prefixes in command and keyword strings:
6 t/ h, c; P, D3 H. a - ;;; "." specifies the built-in AutoCAD command in case it has been: s2 \* @* D3 g/ S- f
- ;;; redefined." E6 v; \; d1 ?) {
- ;;; "_" denotes an AutoCAD command or keyword in the native language
& j* x. Z4 O7 J8 r* V - ;;; version, English.
' [7 T B x2 v; L - ;;;----------------------------------------------------------------------------
% g6 u3 h8 \ B' [2 C - ;;;9 u. |, ?: S0 ]4 _7 e& O
- ;;; Avoid (gc)s on load to improve load time.3 n7 I. l% l1 h5 ~1 ~
- ;;;9 z" [6 e2 t- a) G2 H4 v3 J
- (defun do_alloc (/ old_allod new_alloc)
1 D& u/ k1 F9 M- k: L - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
8 G* [3 g y6 p* U; b6 [ - (expand (1+ (/ 17000 new_alloc)))
6 k: R" w# u+ V( u* T2 g8 D - (alloc old_alloc)" p: m! \+ D: r& w
- )
* ]* C6 q, c! }; F/ `8 U - (do_alloc)
5 ]; z' T" t, G+ w ?& o i G - (setq do_alloc nil)& d' d6 B$ ~* }* Q1 W9 q `( t
% Q9 `7 |- {6 D" j' Z1 _ L- ;;;- h: D8 U P1 l0 e2 c( M
- ;;;0 P: v2 U& A) p- |8 S2 Q9 h
- ;;; ===========================================================================
3 z9 u" }" e6 @4 J: C8 v - ;;; ===================== load-time error checking ============================
& Z* _) z/ q6 U3 w - / |6 t2 L4 ?( Z/ p8 d; j. s
- (defun ai_abort (app msg)
; R1 y; @0 _' `( C3 R' V' i# A - (defun *error* (s); R7 g, M0 y5 c n/ Y2 r
- (if old_error (setq *error* old_error))
" l/ |% B2 r8 P: g, [ - (princ)9 ^6 y) `' A4 z# k9 H; ^+ o
- )
! ^1 u2 a9 I2 `; R- A6 L* t - (if msg
- h+ v) s" y5 N. x, U - (alert (strcat " Application error: ": @ N# H9 }, J/ b# E
- app$ ?. l4 s: a3 F- f \
- " \n\n "
0 b" [% Q$ W# H" {1 M$ g+ e4 Z - msg: b. w. r# i# k4 R+ E
- " \n"
2 `5 ?, P0 A$ H* p, W6 x - )
/ [/ M: v4 l, o+ r7 S& Q - )
3 \. h6 _$ J5 p$ ^ - ); A! p. `2 ~/ P* Q' Q
- (exit), @( f$ A; R8 ?0 ?0 \6 [
- )1 c: O8 U) ]; I2 \
- , O* {( ^6 L2 y
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
1 J% g, m9 G3 v1 N' A Q - ;;; and then try to load it. If it can't be found or can't be
; W3 {8 _4 y( S9 y- ~0 {3 E - ;;; loaded, then abort the loading of this file immediately.& }- P- f/ S( c/ K$ e) |
- 5 c! c7 O6 w& V* [, v
- (cond
& Q0 u$ K5 U _0 X) I& r - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
7 p1 w5 v: m# j8 ~ - - ~! K0 E4 u6 i1 W X; a. i
- ( (not (findfile "ai_utils.lsp")) ; find it/ g- R. _ o3 m
- (ai_abort "DDMODIFY"5 d# r5 w* \/ _# [6 S4 O. I: K
- (strcat "Can't locate file AI_UTILS.LSP."5 D: ^8 U6 L N. D9 q
- "\n Check support directory.")))
$ t z! P8 @' e7 y" d5 w - B+ D$ Z6 e( r( a
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
! f3 h5 u2 i1 t+ {8 H - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))2 c/ r! O) I) u
- ): A& ~9 t+ S3 k) J9 q7 n
7 l, e" R6 p2 [2 j- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can! K; e0 }( E& o$ x" y
- ;;; be assumed that all functions defined therein are available.
) Y5 x$ y3 w3 n! N$ B2 K
y2 f' b' r' P/ \: T" A- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort% ^' M. w9 H$ f" Z P# Y
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
! r: Z( K1 c# g% f( y5 p/ K m - ;;; does not abort the running application itself (so that it can, s6 q: J8 a8 Z0 j- v3 j, z. n8 C# }
- ;;; also be called from within the command without also stopping
/ m- f4 V, q, a6 K% t4 U - ;;; an AutoCAD command currently in progress).
. f d4 _# j. a
& G. @9 ]9 }) r/ \: m9 F1 b. Z7 X- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
% N) F/ s$ _& ` - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
$ ^: w, J. {4 L) {* L$ v# C - ) ; ai_abort's alert box dialog.
- z E, p1 L4 d m
, Z3 l; p/ i) j8 D- M/ z5 J5 g6 e- ;;; ==================== end load-time operations ===========================
. [3 b- d# D# t3 N7 y - . x" d/ c. I }* {! [1 o( h
- ;;; global variables
c, s. w" j( `* T; o$ f' `/ ^. Z+ ] - ; c6 J7 g) Q! o5 Y( o' A& P7 G4 L
- (setq hatch-elist nil)" X9 h, b% |' e3 a
& X! i2 D" V1 t( C h S- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are! ~, k' k Z% N' l( j% U$ p
- ;;; assumed to be available.4 n8 d2 X; q4 L( m1 y6 i
) t p4 {1 V& t( Q- ;;; Define and encapsulate all subroutines that are declared
3 V1 n) w7 E6 z( i* u" W$ A - ;;; locals of the (ddmodify) function.
% u3 v" {1 e7 `3 f6 E, I
/ F4 H6 \5 `- @* Q; x# y- (defun ddmodify_init ()
- w. R& b% @9 ?) l; B* r" b1 N - ;;
* P$ O; Y6 N( Q, Z3 V# e - ;; These three functions modify the enitity list for common properties. Since
( l9 H- a7 k$ k1 y0 r - ;; color, ltype, and thickness are absent from the object list when they are
5 N9 H" f4 J5 y' `0 P - ;; set to their defaults (i.e. color = bylayer), a simple substitution using3 u& A- {& B+ \. {& ^* L2 o, U% A
- ;; SUBST is not possible.# W/ }4 `; Q9 Y9 v2 F
- ;;
4 R7 G5 T( H3 a9 M2 F- H4 I G! E - (defun modify_properties ()
4 |% ^5 X! E6 q$ k- C2 a" e - (emod ecolor 62)4 g: m7 @2 j8 Z7 ?% y
- (emod eltype 6)
8 a" ~- _2 ~" y& C0 ] - (emod ethickness 39)
5 Y# R" V% t- Z- v a* d7 h! ^$ n - (emod eltscale 48)
" l* Y; n) \8 v, |$ [3 t% j - (tempmod elayer 8 nil)2 b% b ~+ @4 \- i2 v& F% o- L
- ) T$ `2 @' |% y. {7 w
- ;;" i4 Z0 A$ L, E5 c1 m; {
- ;; This function is used for modifying common properties of the ACIS }. v# e4 {2 ^
- ;; based geometry objects. Thickness is not valid for these objects
- x. @4 x! M- G) |5 u+ q M! l - ;; so it is left out.4 z1 Q- c5 @4 e. w# M
- ;;, |4 E; R, F+ U7 c
- (defun modify_prop_geom ()/ b' ~% I/ ^. x t( }) K7 _8 e
- (emod ecolor 62)
- n4 D3 J& p" r7 j6 a - (emod eltype 6); Q5 a/ x% ~: P; o7 }
- (emod eltscale 48): d7 Z& E, C* [' t
- (tempmod elayer 8 nil)
- a+ o' T9 e/ B' _2 W - ): \2 ^8 l8 \5 o/ b
. A0 @/ Y; d9 P- u- (defun emod (value bit)
4 t$ ?7 q' T. k4 O9 E9 ` - (if (= bit 62)
+ H5 C. x+ W E' r - (progn7 W) b/ x. Z% q6 {4 V, n
- (if (or (= value "BYLAYER")
: z1 d& y; @ B# N r, t ?) @ - (= value "BYLAYER")) (setq value 256))) h) o! @' p( o. z
- (if (or (= value "BYBLOCK")
4 ]3 Q5 P' r/ q _( B) F - (= value "BYBLOCK")) (setq value 0))
. o _5 B0 _9 N; f) b0 S - )
$ F9 X: G( G" K: [" ?$ j9 m - )7 X3 u! S. K$ z+ [. A1 J) x
- (if (setq oldlist (cdr (assoc bit elist)))' {- a. @& g, T" p0 Z
- (tempmod value bit nil)
+ i- k& t, \% Y - (setq elist (append elist (list (cons bit value))))2 w2 w2 f7 _ W! J& z
- )
- @, N- X/ u; _/ ~& N( D; v" f - )
; L/ G* E2 @) Y4 B, D - ;;
3 {9 W# q' e3 v! s0 I/ w$ J8 {* p8 { - ;; Resets object list to original values. Called when the dialogue or
7 I- {) q! Y3 t) a0 P - ;; function is cancelled.0 @/ J3 Q1 {& s! B" d2 N. F
- ;;
2 y2 y- J& Z, F9 A - (defun reset ()- J1 Q0 }/ M0 x' [, p, P# o" P
- (setq elist old-elist
- R5 d) W" F0 M8 w3 E - ecolor (cdr (assoc 62 old-elist))- p2 c7 @$ [* ]' m1 q
- ethickness (cdr (assoc 39 old-elist))
$ ^' O+ s3 ]% V - eltype (cdr (assoc 6 old-elist)): y% B" p! x `( c# V- I
- elayer (cdr (assoc 8 old-elist))- Q- N J/ Q1 X7 g% V
- eltscale (cdr (assoc 48 old-elist))( [8 Q( u2 a. b& y
- )
0 P+ w+ Z& m6 v$ Y E - (if (not ecolor) (setq ecolor "BYLAYER"))
1 [/ B/ Q/ Q# [% `+ G, r- @ - (if (not eltype) (setq eltype "BYLAYER"))# ^) E2 F. }8 d; Z! C
- (if (not ethickness) (setq ethickness 0))
; X/ t9 J1 B% ~/ `5 \ - (if (not eltscale) (setq eltscale 1))
$ ~9 ^" M( P4 j5 H - (modify_properties)
1 J" S- b2 t& n" M/ q8 F - (setq reset_flag t)6 p0 o8 J n9 Q: B1 x8 E4 t3 _
- (entmod elist)2 g8 o5 l& T% |, N- Z( `" g
- )* q* M1 d. ?/ _( z
- ;;# {3 @3 { X9 V& d7 b2 y, Q
- ;; Modify object when dialogue is temporarily dismissed to reflect latest9 z* ]* M4 d# f4 p+ \ b% T% M
- ;; settings of dialogue. It converts the point from current UCS coordinates to
$ k1 D7 |& X2 T) j - ;; the proper object coordinates (world or object).
6 S+ i7 U, ~ @) S5 c. b9 ~ - ;;- T! j3 @2 M( C& @3 |. e
- ;; Arguments: value - in current UCS coordinates
# @1 _3 j0 H! _% n$ |7 Z - ;; bit - object code (i.e. 10 for start point)4 i# I* k$ w2 }1 w: K/ z
- ;; ptype - point type 0=world 1=planar
0 y4 j" L5 @; E ]. D - ;; I9 B8 x- t) `
- (defun tempmod (value bit ptype / newpoint)
- G6 u* }& o1 [2 m2 e+ j - (cond% R3 \ A0 q1 e/ b
- ((= ptype 1) (setq value (trans value 1 ename)))
1 G. @% [& S' L5 w - ((= ptype 0) (setq value (trans value 1 0)))( ]" T* `9 t' P8 C- k' T) D4 v$ K$ K
- )
9 a0 e4 n- ^8 z) i/ D5 n - (setq elist (subst (cons bit value)
* _, H- @% V$ K& }+ t - (assoc bit elist)
+ m6 I1 A+ j/ c. c! _ - elist
/ @& q# Z- F$ @- F - )# z" X2 T8 q0 K
- )
7 @: J) D, S. ?1 d7 ?; s K2 L2 | - )4 f: V: Y: \# C; a }' D# T
- ;;, Y/ P' x; d1 i( g- Z, \
- ;; The following functions are called after a dialogue has been temporarily
3 S# A5 v( ]1 b0 T2 ^ - ;; dismissed and the user is selecting a point. If a point is selected the
- l1 v" J/ b5 F& R7 I1 ~ - ;; object list is modified and new X,Y,Z values set. If no point is selected2 K* z# a ^3 s( T1 a
- ;; (null response), then the point is reset back to its previous values.0 ~7 c% L* x# p2 a8 {
- ;;
. |1 f6 j. [# u7 I - (defun ver_pt1 (ptype)
/ j& r* [3 a6 m6 @ _8 g - (if pt1
3 a4 B$ a ?0 b - (progn
8 b4 D" G2 ~, `1 `3 C% q - (tempmod pt1 10 ptype)
6 I% v& r' x& ` - (entmod elist); x# ?" r5 }% x, s3 Z( j% v
- )
+ u1 z+ j L3 U; o# d" \3 k5 V9 c! p - (setq pt1 (list x1 y1 z1))
: E v# F/ Y5 w0 ~1 F - ): v- }) d0 d' `7 f* g! l6 N6 ^
- )
$ u, E; ?3 [) U/ d - 4 ]" t& z% R1 V- u) o' r
- ; (move_pt1 <ptype> )5 B. u3 C. z8 I
- ;
% o( n6 J$ j% \- _6 m) s - ; Called in liew of (ver_pt1) to translate block insertions which
- l4 p* n6 d! P+ Q0 _ - ; might have variable attributes attached to them. If the distance0 [% }- U0 H" y( Y. A
- ; the block is to be moved is < 1e-6, the move is deferred.1 C/ W2 Z$ E' a3 c% i
- 4 e0 u- [* T2 M% B
- (defun move_pt1 (ptype / basept hi) E/ I6 v1 H& G# M+ U. {
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))3 d/ S/ Y; L. n9 J
- (cond
- ~1 q% N/ K5 ]1 n" L& m - ( (not pt1)
/ P( h1 U+ Z2 t( {8 | - (setq pt1 (list x1 y1 z1)))8 ^- F8 C! _0 V7 H2 A4 {
- & z( \& D! {" j. @ u% `3 N' S2 o
- ( (> 1e-6 (distance pt1 basept)))2 l) C- w8 M1 g. {
- 9 f- J1 m3 m# E+ H8 @
- (t (tempmod pt1 10 ptype). d9 W) H6 A: y6 ~, H9 u( S
- (setq hi (getvar "highlight"))" f- s# A' |" f; O0 |
- (setvar "highlight" 0)
/ u: `2 |% m: `6 k - (command "._move" ename "" basept pt1)
: J# Z; P. F$ P) ]" a2 A4 }8 @& v - (setvar "highlight" hi))
( B) d5 u4 J/ B1 p# o% m - )
) k( |( N$ q2 q: E' U - ), q% }4 J1 \5 y; y# p: B) r+ t
; C$ o& ^. X4 X+ b3 e; l; P8 c- (defun ver_pt2 (ptype); R2 o1 O- R D( `$ I
- (if pt2
( ~2 M# _* e4 Q" y G - (progn
% e+ h: n/ y7 }- o% U8 x. J - (tempmod pt2 11 ptype)) l! u6 V) w/ u3 A! {2 h
- (entmod elist)
6 t! y, i4 @- h `8 l& S. E - )
0 ]# U( ]2 ~/ O - (setq pt2 (list x2 y2 z2))2 ?% @$ S5 e- \8 E: c) C) t4 j
- )
# Y5 Q w% B6 ^4 x! W% k- w0 Q - )7 _' Q) [2 R1 R+ P5 A
- ( A5 B: s' c/ t) u* A9 Z* F
- (defun ver_pt3 (ptype)
# {8 Q* E- u# u1 g2 B9 u6 m- v' N- ? - (if pt3
% p# u$ _. [7 L" x, c1 g S# ]0 u - (progn
* Q1 B' z6 L1 Y( G - (tempmod pt3 12 ptype)& p5 l# A4 U8 s( \0 o" k% F. F. p
- (entmod elist)! E$ _+ W9 M7 T" y( G/ u. f
- )3 I4 `4 z7 o1 w- U
- (setq pt3 (list x3 y3 z3))! f* U6 n, }/ b4 k6 o1 X
- )
& C- @% M' D' o6 n - )
% a# I: D( u8 G& X - ! X, N' O3 N" `, @7 Q1 ~; X+ o. j
- (defun ver_pt4 (ptype)
- @/ e% _) D) s1 H - (if pt4
$ j& \! ^# o) n+ s& W - (progn
" H) h: g+ i4 i# z+ S - (tempmod pt4 13 ptype)5 ~1 o# c: u: W9 Y# e0 l$ V3 B
- (entmod elist)% |& l U$ f4 D1 `3 R6 D
- )# L$ r- D' l+ g3 U
- (setq pt4 (list x4 y4 z4)), W0 r1 k' r; r5 k& a0 S
- )1 h! r5 y# ?/ U, k2 c9 e% \: _
- )% ^/ ?# I3 _2 r( Q/ z4 @: b; H
- ;; Xline/Ray
4 g3 ^# \9 t& B( c$ { - (defun ver_xline_pt1()
7 K* P" s" o$ Y6 t% E% D- G - (if xline_pt1
) z3 v1 R. l. J! | - (progn
4 z( e5 |. c9 B7 Q2 F - ;; convert to WCS.
. S6 h+ w; C# G' C& v2 Z. S - (setq value (trans xline_pt1 1 0))
7 k) s/ ]( Z: m$ s) b - (setq elist (subst (cons 10 value)3 W- p% ^; x9 U7 x2 ?) H
- (assoc 10 elist)
0 ]0 ~& Y2 m* ]3 ` - elist9 Y6 i$ a9 X+ `0 J+ d
- )6 d4 v- u$ W6 r
- )
9 l+ J1 D6 t7 N) _& G7 I - )
5 u; r6 ?* h( E0 A' n' r - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1)). c/ @3 {$ }- y) {8 d( j }
- )) {% Q; t1 R) I- H* C& T- q
- )
, E: n( _7 u6 e - : J, a! y( s4 O- `
- (defun ver_xline_pt2()3 m- M) d- v& h5 W& V( T7 m
- (if xline_pt2
" a8 I, h8 h/ i, c* E4 G" R4 I - (progn# R: Y P8 {/ K
- ;;
/ I4 v( h' `, v! i2 v& j$ O) n' [0 T+ h - ;; Calculate new Direction Vector WCS
5 e% \. C; M& P0 u/ z6 l - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))0 n6 Y% J, {1 d
- (setq temp_dir (trans xline_pt2 1 0))
" I1 y1 m: f" U/ i. B$ J - (setq temp_dir_x (car temp_dir))3 V _% d- G* Y; O! h5 ~
- (setq temp_dir_y (cadr temp_dir))' z8 H5 _7 D: _; u1 ]9 S7 ~6 Z
- (setq temp_dir_z (caddr temp_dir)); J$ g! s' O H1 d
- ! d7 I$ r* |1 k+ m" }4 z. |5 h& ]" I
- (setq temp_xline_pt1 (trans xline_pt1 1 0)): h+ ]9 N% l9 K+ T% d
- (setq temp_xline_x1 (car temp_xline_pt1))
8 P, w; h4 y! k! y, W) v; q, a - (setq temp_xline_y1 (cadr temp_xline_pt1))9 L3 G4 M$ Y: G8 t
- (setq temp_xline_z1 (caddr temp_xline_pt1))
" [; U1 F/ |" b8 x' i0 Q& T - & D; g. |6 S) @% z* p/ ~. O
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)2 M2 g8 J5 y" ^; c
- (expt (- temp_dir_y temp_xline_y1) 2)
! E$ m; h- |3 I% D: @7 y - (expt (- temp_dir_z temp_xline_z1) 2)
! v- B. I5 c6 I8 N" k" A - )))
$ I6 X3 V- V$ [2 _' P6 e3 l - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
0 B* x! A# R d1 u4 B - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
+ n3 m# z/ O6 {3 W& B2 S - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom)); z1 a/ T3 ~9 Y1 _6 B
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))7 C7 Q/ b) Q) d
- (assoc 11 elist)
5 G' J! _: e3 }* Y/ G/ ^1 m - elist2 [3 U( M( w" `) Z+ r
- )
/ U: ~0 W# K* Q6 Y8 A) r2 q0 j# G+ k5 E9 ] - )4 a% h/ }: p; j0 P0 U3 S: l
- (entmod elist)
, Y0 I3 l- z- @6 L# a M3 n - (setq xline_x2 (car xline_pt2))
; F; w; r+ w" e' v/ K7 | - (setq xline_y2 (cadr xline_pt2))
5 }9 u6 ~- b+ |/ E/ ` - (setq xline_z2 (caddr xline_pt2))* @1 G0 r+ W& u6 L T" ?+ Y
* v* e8 `8 Q3 W6 {4 y; T4 K- + s% g9 W+ `# s: n
- )
+ Z+ n) C7 w9 j- x$ X( h - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
: F( m" Z5 ?, Y# X9 y: d) t - )- I+ `" f$ c+ F. c3 X
- )) v8 p- N/ {, p% |( b* T
- 3 P3 C9 P8 s4 d
- ;;' m* l" I8 i! W2 |& e& S) N
- ;; Common properties for all objects5 J, u, h5 h/ Q: y, G
- ;;
( q8 t, `& l+ Z6 ^) Q } - (defun set_tile_props (). m' F7 _9 X5 R! D& C
- (set_tile "error" "")
7 a. E) ?$ h1 {7 V7 ` - (setcolor)
( W9 m) q4 D' G' y1 L r2 z - (cond1 D" ^: j# x9 d, c6 P- q* ^( F! _
- ((= eltype "BYLAYER")
# Y5 j% u# {% p - (set_tile "t_ltype" (bylayer_lt)))
$ K& @: X" {; F; [5 {$ @( ^( F" | - ((= eltype "BYBLOCK")1 l4 D6 P0 y& c1 I9 ]
- (set_tile "t_ltype" "BYBLOCK"))$ w7 c9 j; h% Z! R9 U" J; t2 W7 \
- (T (set_tile "t_ltype" eltype))
; M. o P7 j1 e* | - )
, k2 K0 V; C3 Z( B! P - (set_tile "t_layer" elayer)
& G; F2 }8 Y; _5 r, B5 g - (set_tile "eb_thickness" (ai_rtos ethickness))
' `1 r7 C$ y9 y3 m; [ - (set_tile "eb_ltscale" (ai_rtos eltscale)). Y9 c. t! y$ P! A" Q7 p9 d$ x; R; @
- (setq which_tiles (ai_common_state etype))
5 M. I# c, d% ?4 [ - ;; Disable tiles if need be.... y- \+ K. P% z
5 U e9 a% E( @2 q$ N& a2 a: K Q- ;; Layer Button and Text Field8 V: I4 t# Q# S+ V
- (if (/= 1 (logand 1 which_tiles)); M) g: l1 `+ s6 D, `2 g
- (progn7 L* K0 ?) t) V4 D; e
- (mode_tile "t_layer" 1)! ?' g" a3 |( C! z
- (mode_tile "b_name" 1)/ v, m+ c6 I; ~6 ]' c" g C- B
- )
& }% r1 F$ o/ i1 i# K - ): q& k1 T/ W, U3 ~
- ;; Color Button and Text Field& D1 U1 x! n4 z! k( L' I
- (if (/= 2 (logand 2 which_tiles))9 S' y0 U- y W2 i' C c
- (progn
' O2 z, |! |+ ] { - (mode_tile "t_color" 1)5 `8 ]3 P0 l& q
- (mode_tile "b_color" 1)1 L- f# v: D4 _+ i# b( o
- (mode_tile "show_image" 1)
: s. @5 G1 U X7 S7 }( t - )9 L Y9 X" W( l: D3 F' i
- )
0 Q) S3 S* B, \, q1 ^ - ;; Linetype Button and Text Field; [' _/ l, a. d5 b
- (if (/= 4 (logand 4 which_tiles))) v" O6 o( U, d r5 g8 g
- (progn* Z, j# Y- z0 B; P8 m6 x2 ?
- (mode_tile "t_ltype" 1)6 a5 ]. b1 {( U: X& w3 C2 K/ F: _
- (mode_tile "b_line" 1)
( v/ q4 ]" G) | ? - )" r2 d; R! p+ h) n* ]
- ). ^' {3 T3 g7 Z9 e6 U' K7 v
- ;; Linetype Scale Edit Field0 R% O* H [; \2 y) [7 w0 W# Y
- (if (/= 8 (logand 8 which_tiles))
( `% V" k# F9 m, N) c8 p - (progn
% Q5 v/ ~9 m8 n1 _, i - (mode_tile "eb_ltscale" 1)$ x% k$ G, {3 c* l, c7 w! \( i0 p
- )
; w; \" }% N7 m( |6 {: R - )" q) p+ B& o1 i% e$ E
- ;; Thickness Edit Field./ C# m) u0 i5 r( F/ o' v7 M
- (if (/= 16 (logand 16 which_tiles))
8 ^7 C: p' e) c( z3 ~( b; T% H. j - (progn0 C! @+ b+ O1 r8 |: J) F
- (mode_tile "eb_thickness" 1)9 b# E8 I1 c; H8 ^* a
- ): s0 F. ^0 u- W! O( E! z
- )
- b5 e: p ^4 C Y) { - )* ]* o% v$ @+ v& Y: T- ]3 @- s
- ;;
8 F- H% n- M k5 o - ;; XYZ Point values for all enitites5 @$ Q3 d+ z3 t. r/ M1 |
- ;;
% }* _/ |8 P/ O. `# e6 P - (defun set_tile_pt1 (ptype)6 L. b H) ?: Y
- (if (= ptype 0)
! Y0 s0 k, Q2 t) X- i7 W - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))! S* i" [# S7 B
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))3 k. d) W. g; ^' [) U
- )
% R0 w: f- P) J/ \& u - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
1 W3 l4 K& D- ]* E8 W" k - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))& s& k. [3 s( p# ^; k- R
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
4 H! c) w( d) N, f) U' E# N - )
/ D$ W% \! }9 |/ A4 D& D6 |/ o - (defun set_tile_pt2 (ptype)
* x/ Q$ j- Y- G2 j8 N. T% v - (if (= ptype 0)& `, U( u! \, D5 @2 @- H( {/ U
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
& F2 [. F1 i% \1 P3 p - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))( e' I i) b8 e6 z
- )& N; x m" ^* W) V: q
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
' D) t, V0 F/ U* b/ W. z - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
4 {/ G* [1 o; P$ ` - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))8 _/ G f8 X9 s. z* v! K, r
- )
& b0 P9 r: n( J: L3 F- F - (defun set_tile_pt3 (ptype)
5 V$ l2 g3 S* q1 N4 u7 {7 e2 L - (if (= ptype 0)1 n2 y6 T7 T' {) P' p2 G; z4 ~
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))6 a) i: Q* C! G$ J" r2 X0 c
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
- u$ }3 }$ P1 V. V4 v/ g - )+ C4 e' e% b% h+ I3 [+ h! {* Y
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
4 \. `# N* U" D* q/ T% Y& T - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))- C$ _3 G8 z, K
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))/ o5 D( ]1 {2 }% ]/ G& m6 \+ h3 j% e
- )3 ^# h3 `2 m1 G. X9 v b
- (defun set_tile_pt4 (ptype)
8 B8 L9 i# C) m+ m- K! @ - (if (= ptype 0). a: ~7 c' U7 k7 i
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
6 @6 x7 ^. D0 D - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
6 {2 x9 h+ o: l - )2 {6 Q( d k4 k- h- Y+ r+ x
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
y9 q6 Z+ L, M p! p+ @ - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4)))), h" r f1 w! \& O# \+ p
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))# s% }+ G9 [; @3 o- K5 w4 `
- )
% x$ b' V, e, f! N8 Z" c: }- J& f. h - ;;- v* W# \1 G- e5 O3 D- m& x
- ;; Xline/Ray
- X/ ~: I& U# K" I, r - ;;
& |8 U3 a' T0 ^7 U - (defun set_tile_xline_pt1 ()& L. n. u& F3 m. d
& z! j& c" H/ X ^. x7 N- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
* h7 W% U+ }* R
8 l [2 A x) z: ]+ k( O# @: I M$ e- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
9 Y. E, e; _9 U" J( ? - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))0 `+ \+ _: T+ _ y) E
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))8 f: U5 h) f1 H* {
- )! t! ?8 `& O M7 I
- (defun set_tile_dirv ()
2 h. A4 p4 u8 ` - ;; Convert 11 group to local UCS (displacement)" k4 q0 ?: t0 l8 _6 T
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1)): r; o% L9 }* {2 v2 Z
6 f* Z; x6 Z' }7 T- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt)))). D$ q5 U0 e+ i
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
* H, ~( e9 X) H# E' I - (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
2 s L5 W+ E) U/ Z; a - )3 X& K( ]" C% A) i8 g
- (defun set_tile_xline_pt2 ()
: K7 [. r6 w; F9 F - (if (not xline_pt2)! z' L. E$ W- K5 P
- ;; Initial second point is Root Point + Direction Vector- o+ Z4 f3 R! m# S4 i: [
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))/ P7 r" u4 |; Q3 V: s5 h
- )
1 v( A5 ?, x" _8 n - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
- {, i+ c* K& R - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))3 g6 }6 V8 ]+ G7 k+ R" p A
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))5 ^" _5 G. F0 i5 I% x1 n- A9 P
- )
8 a, {) y* w' |3 f3 `6 q - & M* w0 ]' w, ]
- ;;
& |5 l" B+ {, _6 B& T6 ?8 g - ;; Handle for all objects
7 X9 Z' v) e4 ]6 N) p - ;;0 ?9 c1 L: b j& t
- (defun set_tile_handle ()
. v% i; s3 v2 G" v+ y - (if (setq hand (cdr (assoc 5 elist)))
8 z. f- K' G$ G4 v; A! H( F9 p - (set_tile "Handle" hand)
b; }2 X9 g t; O' n3 U+ L - (set_tile "Handle" "None")
( m7 \, K% P: e8 b - )
7 ?/ y9 H) t# G3 p) _1 z - )8 C1 @% B, Y Y4 v7 m
- ;;2 Y( S- N# [ @
- ;; Radius for ARC and CIRCLE
* ~+ L3 C5 J9 q2 O: `" B) Q. c) i - ;;# y6 X/ T5 O! W% m- L
- (defun set_tile_rad ()4 W" m( f2 C% U3 E2 [# m/ r! ~0 p
- (setq radius (cdr (assoc 40 elist)))& [2 L+ _( ]/ N
- (set_tile "radius" (ai_rtos radius))
+ [- \1 U; i+ E* g+ z5 t& g/ f- z - )! i" G' f) N/ b, W# w/ Z
- ;;
% F2 {) t2 x) h& D - ;; Start angle for ARC4 v* w4 @. ^( r7 V# X
- ;;! F+ o* {9 z) h1 _2 i6 T
- (defun set_tile_stang ()# O5 W I) _ N' e' I
- (setq st_ang (cdr (assoc 50 elist)))3 d. X$ Z: u5 e
- (set_tile "st_ang" (ai_angtos st_ang))- T' ?, S6 ~& `; O
- )
. v9 c: R7 g" Q" D- T - ;;
" p+ x; M& [- K V1 \& I - ;; End angle for ARC
- S% s2 a9 y4 {$ m6 `( { - ;;1 h+ R9 D0 k+ ~) O5 ^& m" b
- (defun set_tile_endang ()
% @0 W( Q; f! ^$ Q - (setq end_ang (cdr (assoc 51 elist)))$ G' S5 y" j0 v$ S; B! w3 ]
- (set_tile "end_ang" (ai_angtos end_ang))5 T( @0 l7 G& J& @3 @
- )
' P9 z; E* u# X" }0 g - ;;% i1 }1 `9 o$ O! W7 a3 I9 _) k* q: r' v
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes0 m& P2 {% \( U6 g1 n! X$ ~; B
- ;;; G4 u/ T2 ~- f; Q0 e" ]
- (defun set_tile_rot ()
/ V$ \3 v1 r* ~( y - (setq rot (cdr (assoc 50 elist)))
, X* P3 w7 t2 S0 h+ R - (set_tile "rot" (ai_angtos rot))) X; ^6 u+ C/ Z# l3 A( h5 i7 c
- )
; A7 j! a' X" v6 O6 {; J - ;;8 [1 B) k: A) N" n+ I
- ;; Height - Text, Attributes and Shapes
8 i) o `8 ?1 B- K- ] - ;;
5 |7 O* r9 ?% e - (defun set_tile_hght ()
( @0 m4 @- r5 a, d: n8 j; n - (setq hght (cdr (assoc 40 elist)))
; N7 _ R; S6 a2 H8 d& m( q - (set_tile "hght" (ai_rtos hght))
/ R- U( s6 J2 Z - )
, w1 @( U- e: n0 Q& r* R! t - ;;
@# w) q+ q( k) E) }2 [5 J4 p8 Q, L - ;; Width Factor - Text, Attributes and Shapes! R4 \6 X) }& t) [
- ;;
' R* {# ]% I+ E8 U6 Y, { - (defun set_tile_wid ()# o% t k) j( I8 A3 Q
- (setq wid (cdr (assoc 41 elist)))
- I4 M0 T* U3 ]4 z3 c - (set_tile "wid" (ai_rtos wid))( K- z# \ v, c O( g9 S
- )
$ A8 r7 t9 H# t' i3 c( O. k - ;;
# l" M7 C% E) X9 f& j4 e0 | - ;; Obliquing Angle - Text, Attributes and Shapes
! s: |/ A+ q( X% m, o* }5 Z - ;;
; d2 C9 K$ s) T - (defun set_tile_obl ()( g" T- v+ Y$ {
- (setq obl (cdr (assoc 51 elist)))
) x, k0 q* C3 C( P% F! l m8 { - (set_tile "obl" (ai_angtos obl))
* h9 M3 q% | p+ x - ), }' g* Y. C' T6 q+ o! i6 ^
- ;;
7 @4 _$ L1 ~4 O0 @4 p9 r - ;; Text string9 w0 B+ m4 K/ q8 A0 }
- ;;: l: m/ S" Y- g
- (defun set_tile_text ()
! m$ G3 E. |! U' L- t - (setq text (cdr (assoc 1 elist)))
* ~1 a( l _& @ - (set_tile "t_string" text)
+ x6 _. S/ e8 T5 m8 K- d* c1 { - )
2 M; ]- J# R; s - ;;5 O; ?! V. w& a1 O }
- ;; Attribute Tag
* o6 n0 x+ F( j7 M3 b8 m8 x - ;;2 Q9 R. \! f b k
- (defun set_tile_tag ()0 z; v+ V7 M1 L: o& t2 k; J$ d
- (if (= etype "ATTDEF")
1 P/ S& K1 h$ _ [$ n. U a - (progn N; _+ T1 ?0 J, S0 C) a
- (setq attag (cdr (assoc 2 elist)))6 k" [6 n7 L0 q% L
- (set_tile "tag" attag)
1 K8 F- E) _9 C" Q& k4 F - )) I E+ ]. g. l
- )
: y/ t8 ^. ^& L: \/ [5 D/ Q - )0 E3 R6 r! n1 E: J2 i
- ;;
0 a& T4 d- O2 R* d# _: [ - ;; Attribute Definition) A: G+ i) v2 @: y
- ;;
' ~! @. C5 o. X - (defun set_tile_prompt ()
( |# u2 |* B5 N6 d( J# Z6 t# m1 g - (if (= etype "ATTDEF")
/ b2 U6 H: m7 ^7 B - (progn- M' m8 j& @& |6 B6 X
- (setq atprompt (cdr (assoc 3 elist)))' m6 \) y* u; C
- (set_tile "prompt" atprompt)8 _- L7 Q+ V7 A5 i) ?9 w
- )* B& [3 A& A5 b4 b
- )2 @) v, L" H2 k6 `) j* F3 \0 p+ K
- )
; d! S& ^9 R ^6 r/ \ - ;;* x) [6 |" |2 e$ k
- ;; Justification setting for Attributes and Text. Initializes8 X: i% w/ K S( e9 k7 j8 m+ H
- ;; popup list box: A4 q# d4 L* L9 y$ W) L% T
- ;;, n6 B' X. I6 m0 \
- (defun set_tile_just ()1 l; T( A* l; E4 i# r: N$ ^( r# L
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
" F: Q j) M# Y" L( ? - (setq va (cdr (assoc 73 elist))) ; vertical alignment6 `: J2 D9 d1 d8 k; [4 Q
- (setq ha-prev ha)) F- [: \/ |( d. n' q9 B1 b
- (if (= etype "ATTDEF")
6 u% r. R# l4 E' J. L - (setq va (cdr (assoc 74 elist))) ; vertical alignment
# ?3 W( l( S3 ?0 H* ?6 C! n) t - )
0 _: _ w6 n6 N* z( @; x$ b - (setq jlist
6 o" q2 S8 z: S8 K+ T. o" C' a - (list "Left" "Center" "Right"% M# Z2 ^7 D! c# X& ]
- "Aligned" "Middle" "Fit"
( a! |- b) g5 a7 ]* ~! P - "Top left" "Top center" "Top right"* h2 s! W! C) S0 s6 J# \
- "Middle left" "Middle center" "Middle right"
% k' r% \$ p0 O1 g& ] - "Bottom left" "Bottom center" "Bottom right"
% l& N. z9 ~# R$ v - )
/ q; j( t. X: Q0 r! u7 f% }5 d/ z - )
# u* s0 j; g8 Y - (start_list "popup_just")( s* W- K/ C/ s. _: N
- (mapcar 'add_list jlist)
3 X0 B7 S8 |. d; c* y - (end_list)
3 t2 Z$ e. _2 _( Q$ P - (set_just_idx) X' ^( v3 @1 h8 ~
- (set_tile "popup_just" (jlist_act just-idx))
2 a% v9 N! w8 {& W - )
' l7 u* A' d. n3 L. J2 q$ D - ;;
; c6 w- V2 V, B2 t- V - ;; Style setting for Attributes and Text. Reads symbol table for popup list
- O/ Z7 H: Z! B; Q* k" s- U8 D - ;; box.
. \# k$ z/ w' G6 B - ;;
2 q. Q6 ]1 V* G1 Y" a d4 Z2 O - (defun set_tile_style (/ sname style-idx tlist)
7 v6 V) Z( ?0 E7 ^( a - (setq tlist (tblnext "STYLE" T)
1 T: ^6 y! P4 N9 W2 L - slist nil)
* U8 v3 }0 D: X1 F6 z% A5 V/ C - (while tlist# j" f- @, S( M' z2 N1 h
- (setq sname (cdr (assoc 2 tlist)))/ U+ m/ ]+ M/ F1 @* l) _
- (if (and (/= sname "")" v6 _( S: M1 l- n5 i
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))
3 l3 ]! U/ t: D; D1 H9 v$ `! {/ | - (setq slist (cons sname slist)))
2 m9 @% i) J: X2 w - (setq tlist (tblnext "STYLE"))): [+ t+ N; ^' z1 [
- (if (>= (getvar "maxsort") (length slist))
5 g* i9 y7 D1 Q( q7 _2 O - (setq slist (acad_strlsort slist)) ; alphabetize style list/ z, p S7 z& f6 S6 ^1 R- `
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
4 J' Y% L& n8 G) j: p
) i; j) f- n) q e+ w& G+ G- (start_list "style")
" N/ o% }! s) N8 v9 Q" `6 T( A+ K. X - (mapcar 'add_list slist)
; G) A3 Y y6 a k6 { - (end_list)' \7 D: ?& {: W& e
- (setq tstyle (cdr (assoc 7 elist)))% N8 A2 a% `" N
- (setq style-idx (getindex tstyle slist))
1 O, ?+ |' a- X - (set_tile "style" (itoa style-idx))! n9 q! ^# T) @- h
- )! _ D& p6 f: A, T3 h2 E, B
- ;;
* {9 `, _ ]* [' M8 e) l( V0 s - ;; Text and Attribute setting - upside-down, backwards, t$ y$ b) i" E2 j: x7 W0 z
- ;;- F6 a. a$ l/ z5 c# Y
- (defun set_tile_bk-up ()
9 L; }. d' N" E# Z" i& `8 l - (setq bk-up (cdr (assoc 71 elist)))
. d2 E) ]0 ~9 o" c - (if (= (logand bk-up 2) 2)# q9 I2 J+ h* x/ n4 d
- (set_tile "bkwd" (itoa (setq bkwd 1)))- b. e; o- D! A( ~) r$ X7 r
- (set_tile "bkwd" (itoa (setq bkwd 0)))
/ j. E0 T. n- u5 ]# m8 Q2 U, q& k. } - )
; m) d& }; P6 C4 z - (if (= (logand bk-up 4) 4)
8 r7 L1 _+ G; c1 ?0 a/ t3 y- N - (set_tile "upsd" (itoa (setq upsd 1)))$ S7 E( N- T% G* U0 C' s
- (set_tile "upsd" (itoa (setq upsd 0)))- c/ e% y6 Q- \- s
- )4 ?8 h0 M/ k1 o6 x" z1 _6 Z7 C
- )
+ \# N* o4 ^% [+ ^* O6 O% i - ;;1 M$ W) d B/ L3 V* h
- ;; Attribute setting - invisible, constant, verify, preset- ?) O) \9 R. D! H- @+ n
- ;;2 B9 n5 Y0 [3 ?
- (defun set_tile_icvp ()8 w" S7 Z. ^% W$ V
- (if (not (setq icvp (cdr (assoc 70 elist))))$ L7 Z a/ ?' F1 H
- (setq icvp 0)
* T$ j) n; l) ]( D( q - )
2 c: b4 a5 C/ a* [ - (if (= (logand icvp 1) 1)6 G4 }" U/ C" a! n/ x0 E
- (set_tile "inv" (itoa (setq inv 1)))
+ R6 @$ q& m% C m* u - (set_tile "inv" (itoa (setq inv 0)))% A9 K, {+ ^& U+ U2 e: ]
- )# V7 K* o. Z. b C
- (if (= (logand icvp 2) 2)
7 `5 g# |3 C) a% `5 c* s - (set_tile "con" (itoa (setq con 1))); z. S; R& c* e, g5 h
- (set_tile "con" (itoa (setq con 0)))/ x1 Y! N0 Q9 S
- )4 X, ]+ g3 ?: y% d' |
- (if (= (logand icvp 4) 4)0 n8 ^8 B8 P% c0 g) M
- (set_tile "ver" (itoa (setq vfy 1)))! X) v7 B* D5 E/ L5 p
- (set_tile "ver" (itoa (setq vfy 0)))+ F) E4 R: F9 L5 l+ z4 `& ]* l3 T+ Z
- )& p3 Z* h; o$ ~! n7 {
- (if (= (logand icvp 8) 8)
3 O( W3 i# G7 q- j5 B - (set_tile "pre" (itoa (setq pre 1)))6 F l. a5 A5 D- |; z, t1 X
- (set_tile "pre" (itoa (setq pre 0)))
; T: J& v4 T j) A - )
. o) l% ~& @( e6 E0 W" B7 e - )
. ^. ~) B0 L6 ~$ V! E - ;;8 k \. a: q6 \- D$ o$ @! H' p
- ;; Scale factors for block insertions; e+ M9 S; @5 q+ C& d( t
- ;;; O/ \3 A% B# ^4 \& E$ Z4 Z
- (defun set_tile_scale (/ temp)2 O) @0 |, }: j! U/ a6 Y5 s
- (setq temp (getvar "LUNITS"))
( p& ~, E. ^ P' z, X# | - (setvar "LUNITS" 2)
6 X/ o) Y9 w. N1 p - (setq xscale (cdr (assoc 41 elist))); d) X8 w+ ?' `4 T/ H
- (set_tile "xscale" (ai_rtos xscale))8 v" l+ B/ k% M# R9 n5 w
- (setq yscale (cdr (assoc 42 elist)))
2 i' X @ y: g - (set_tile "yscale" (ai_rtos yscale))
" v9 M3 V$ f" z - (setq zscale (cdr (assoc 43 elist)))- ^+ I% K- K' J# g9 i8 z" k$ L% W. ]& ^
- (set_tile "zscale" (ai_rtos zscale))
+ w; ^8 K; I+ D" `& | - (setvar "LUNITS" temp)9 x: ]4 W7 O% z& m) S2 z V* U
- )* a/ x+ ~- r7 b( l3 `
- ;;5 P" L" d$ z% n" x0 x D
- ;; Rows and columns for block insertions a; }/ f8 L# o
- ;;
- g; F* T$ i: A$ D3 q! q0 `- p p) G - (defun set_tile_rc ()' u; X2 c0 v- { {
- (setq columns (cdr (assoc 70 elist)))
: a& _. i+ e0 |( p$ N - (set_tile "columns" (itoa columns )): J/ h) _5 n3 A
- (setq rows (cdr (assoc 71 elist)))( \! E+ T( h; h" U$ M" B, n: P
- (set_tile "rows" (itoa rows))
2 } y3 `2 C) g* c+ ?7 t - (setq col-sp (cdr (assoc 44 elist)))8 X' Z$ u. R$ F" w: \0 c+ d
- (set_tile "col_sp" (ai_rtos col-sp))
3 E2 ?9 r5 J: i& Y' d - (setq row-sp (cdr (assoc 45 elist)))1 k* o0 m6 @: m+ y9 V
- (set_tile "row_sp" (ai_rtos row-sp))/ f: A7 m0 H0 Q) Y- Q: C& O% }
- (if (/= hasclip T)5 C+ ?# L& K8 h: x! V$ Z; B7 X: e3 o- M, F
- (mode_tile "xcliponoff" 1)
6 |3 E( z9 Y0 [0 W8 e. @( s - (set_tile "xcliponoff" (itoa xcliponoff))
* L2 O! h- x% e e% ^; z4 @* { - )$ r, X, e7 K- t
- )
* q3 o3 I4 ~( s9 e2 ~* m9 I - ;;+ u6 [/ }) S, ~
- ;; Invisible edges for 3DFACE6 R( z( V3 [4 t: i0 M9 g
- ;;- q4 E' V( w5 N
- (defun set_tile_edges ()5 }- X$ P+ O7 f0 N& M
- (setq f-vis (cdr (assoc 70 elist))): B" O- C6 ]/ s/ N2 g
- (if (= (logand f-vis 1) 1)1 ?: T9 ~8 Y' b+ {
- (set_tile "edge_1" (setq edge1 "0"))& D5 T- ?) ` O- w$ R
- (set_tile "edge_1" (setq edge1 "1"))
) a2 u6 Y1 Z2 Q6 A3 ? - )
j) Z1 d) h* f0 n3 w1 V/ F - (if (= (logand f-vis 2) 2)
. j6 s6 b7 n& V- \0 ?: y - (set_tile "edge_2" (setq edge2 "0"))! }1 T% Z% N* T4 N" F. Y9 ^! I
- (set_tile "edge_2" (setq edge2 "1"))
. M0 G3 C5 J! G9 R2 M - )
/ K% n* ~9 i. e# t* k1 C8 H - (if (= (logand f-vis 4) 4), O! P: R' D- n
- (set_tile "edge_3" (setq edge3 "0"))6 L' N6 w1 U, t- f
- (set_tile "edge_3" (setq edge3 "1"))) A' r- T7 x+ Q" m; e
- )
, C: f+ L; E# e5 f - (if (= (logand f-vis 8) 8)
# b* Z- }. u' h$ m - (set_tile "edge_4" (setq edge4 "0"))
6 X3 J+ J# C2 |1 M: E - (set_tile "edge_4" (setq edge4 "1"))
( o2 {8 f4 Y5 F3 B - )
: T, z' G* q/ b3 | }/ C - )
|+ {, P& W) g a/ p - ;;
- a+ u) Z; ?7 G% ~: w9 q* S - ;; XYZ Point values for polyline vertex
/ G4 ]0 B3 u2 v7 ]! Q - ;;
" Z- O$ S7 h$ U5 u: u) _ - (defun set_tile_vpt (ptype)
) [' q$ N+ K5 z+ g8 [/ e+ h - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")& M3 C7 j+ `$ q; Y& K# B
- (progn
- ?& i& b( t2 |% l% o$ ` - ;; ctr is 1 based, vertices are zero based.
8 {5 n5 d$ u% L# W: E - (setq vpt (cdr (getLwVert (- ctr 1))))0 q& k, s) b9 y; o
- (set_tile "xtext" (rtos (setq x1 (car vpt))))7 ?6 b- R) I1 u( u; M
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
; d7 m0 r! h$ h3 I - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))! R) D, O& E$ v, F+ ?
- )- h+ |+ m7 d3 H
- (progn
" N# C" E: J9 o& A - (if (= ptype 0)
+ M& [7 y1 [, N S5 j% q - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))/ o7 r7 `" c7 v. `3 N& w& N
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
0 }. Z6 \* W/ g- E: p& v - )
% a7 D9 e. N# B7 d2 Z
( p0 C$ V; t, N, j! h: X6 \- (set_tile "xtext" (rtos (setq x1 (car vpt))))
9 H( [+ L9 m# V, q4 j - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
9 G$ \. G, w4 ?! {$ ] - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
% g. x' @$ D4 i6 B Q - )
" h; _( A' S& q5 `$ K( ~/ C1 O - )8 I7 I1 { X/ @# M
3 J! B, P% h' M) U( @- ). ~9 U, N. K5 J6 ~5 `* c
- ;; This is the equivalent to doing an entnext on the heavy weight
& M4 U7 C( }8 v. _0 F - ;; polylines. The hard coded '4' below allow stepping over the
7 x7 O& H. L d6 }* M - ;; 40 41 and 42 group code information. The while loop finds the7 Q. ?2 h& F# o' S- \4 O
- ;; first vertex which will be used as the starting assoc in the
$ P) ?4 ?( @. ?5 a {! a" q2 r - ;; call to nth.
1 C+ l( v5 R2 q5 l% i, G# F6 _) k - ;;
/ n5 m( C( ?- \. F5 ~ - (defun getLwVert (tmpctr / count tmp)
- ^( o7 I3 X, C* c - (setq count 0)
# y( A" G2 G( a+ m# C - (while (/= (car (nth count vlist)) 10)9 ?' ~7 F! j6 H0 s, ?& b
- (setq count (+ count 1))
9 ~, ?0 a- {3 A; D1 }; C1 A - )3 p8 i) \( i/ t0 f% W4 C
- ;; If the counter reaches the number of vertices,
0 N0 E [6 B- f. z$ h3 R - ;; reset ctr and tmpctr to zero again.
$ l6 b/ v5 m" K1 S7 Y' N9 u: ] - (if (= tmpctr (cdr (assoc 90 vlist)))
* w' f2 Y" }6 I. c% L4 a - (progn; w. o' a% ^1 J$ \( i
- (setq ctr 0)
9 K- ?1 W2 e3 R* \1 p - (setq tmpctr 0), y( A: R2 F4 s, s2 l [9 f
- )
, Z7 }0 G( i" n+ W+ v - )
5 B$ s% z$ s$ b - (setq tmp (nth (+ count (* tmpctr 4)) vlist))* v% X; g* K1 @" |1 t# F# {6 y: ?
- (setq tmp (append tmp (list(cdr (assoc 38 vlist))))). l+ }6 H, [0 V8 x/ N, H7 E+ m
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1)): i9 ~9 ^ H2 k7 L
- (setq tmp (cons 10 pt1))
0 y0 _3 q! B$ d - (setq tmp tmp)) u% z! Y X# _+ z
- ), `4 p' R% ]9 W- h$ Q
- ;;
( f. P3 @2 I) n) | - ;; Set tiles for Spline properties. If the spline is rational then we2 B- m) N& g5 c
- ;; need to display the weight values of the control points, so set
) T8 M& h% R7 Y& T9 V! d! x0 C8 u6 q" N - ;; flag to 1.7 S3 p( |& b; X0 W4 ^" }' B
- ;; 1 = rational spline
M" f# P8 ?1 A3 s - ;; 0 = non-rational spline$ _, P" N7 g7 }; d4 {# P5 h# `
- ;;% v: y0 X$ S) x
- (defun set_tile_spline_props ()4 W9 t: J9 `5 E% j# l0 \; b
- (setq rational_spl_flag 0) ;; initialize rational spline flag
& r8 b! W" b% N2 W5 R9 A - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
+ E- ]3 I. ]; e. }1 U - (setq bit70 (cdr (assoc 70 elist)))
, Q) B# R. P0 ]2 {& s2 Y P - (if (= (logand bit70 1) 1)
# i4 {" _0 X0 h9 P - (set_tile "SpProp4" "Closed")
7 h2 }" ~0 `( Z( E& E1 X - (set_tile "SpProp4" " ")
2 k( h, O8 p0 g1 n( K$ I( e' `" E - )
$ B6 y, O6 d4 n* m1 y3 l - (if (= (logand bit70 2) 2)
7 z+ c# z6 e' M$ h* B1 J1 e, u - (set_tile "SpProp3" "Periodic")
, `/ w+ ?; C u% a1 G2 Q: f - (set_tile "SpProp3" "Non-Periodic")7 l- T! j$ n- O$ @" A) g
- )+ l( D1 T) l- v8 n9 [) l
- (if (= (logand bit70 4) 4)! e; b& q1 q: @! s8 b
- (progn7 h" T3 F7 J+ g& M
- (set_tile "SpProp2" "Rational")
+ ]; o! x0 }6 R; u) O - (setq rational_spl_flag 1) ;; this is a rational spline8 b& I( ^8 b8 j/ L" C8 H
- )
" `$ s( H n2 C' v; l7 [# Y/ l' o% j - (set_tile "SpProp2" "Non-Rational")- R" o3 l5 ~( r. D* u
- )
8 J" N, J5 m, n1 [" P! v; l+ C - (if (= (logand bit70 8) 8)5 h6 O+ Q% G0 ^+ x9 e( y5 }: n0 y
- (set_tile "SpProp1" "Planar")
! N& e W' ^+ C9 f- z) }% z - (set_tile "SpProp1" "Non-Planar")
7 L& D" e; m6 N6 v - )5 T. J) {+ T" V8 e; `
- (if (= (logand bit70 16) 16): i( [8 b4 q6 Y. |* ?
- (set_tile "SpProp5" "Linear")
4 R: c6 Y' \1 J! i; H/ f2 b - (set_tile "SpProp5" " ")
k. d- u7 j: b D& a7 b4 ]: [ - )
; H5 ]0 u t2 t" A! c. ^5 p1 \' f1 B( G - )
+ J* @7 `6 i) u6 \1 R - ;;8 l2 @6 ]$ \7 `- ~9 u
- ;; XYZ Point values for spline points
W' x7 ~5 A; h5 E8 \7 Y5 s - ;; Need to account for WCS/UCS
' f6 C0 a# @" u3 | - ;;4 \) f* ~0 r2 f6 [
- (defun set_tile_cntl_pt ()$ }' k: G% y# s9 T, i
- (setq cntl-pt (cdr (assoc 10 elist)))
" b* A. j7 V$ ]9 g; r - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))7 o! U# K- u- v
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
8 n- }, m# d5 P v& J6 S - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))$ i$ x, I8 x& O* x/ s. o5 t
- (if (= rational_spl_flag 1) ;; if rational spline
5 T }" z5 K/ X - (progn ;; show weight; ?% D. n. ~, m- |0 B1 r3 Y/ w
- (setq weight (cdr (assoc 41 elist))), r3 W: E& O }5 i, B$ `# @) `
- (set_tile "weight" (rtos weight))% L$ I8 T6 |9 W2 U: K+ S" B
- ) ;; else
! w% M$ C: R/ z - (mode_tile "weight_text" 1) ;; disable weight field& X, M( \4 p& F% u. Y5 T2 X6 b! U
- )
: j+ E! J' z3 n$ M, G - )0 ]! q, G: [6 v
- ;;; s0 X6 l5 `7 {
- ;; XYZ Point values for spline points
! R, O7 l" T2 u4 p' X - ;; Need to account for WCS/UCS' `( x G' m* u4 r
- ;;
% m* U0 J* l7 U. V4 E F0 O - (defun set_tile_data_pt ()( w- h* X; @& x3 ?4 l [
- (if (not (assoc 11 elist))
! [5 |9 K& g! {9 A - (mode_tile "data_pts" 1)
! Y% N$ y5 {+ @; g1 r - (progn3 {* B- Y; V& U# @2 Z& p& @6 f
- (setq data-pt (cdr (assoc 11 elist)))5 S$ I# p6 R% p& {8 b
- ;; display points with current precision.
! H# E- L! i& v6 O! r - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))$ o* d- w1 u4 m- _" a, n. e
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt)))); q8 d2 C; i! S' |; f$ g/ N% O$ T
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
' [9 { m& N. J2 c3 t( C; K - ). O/ q; a4 j- J) [( Q2 a
- )
) R+ B: g- b0 n! z( L" [ - )
( I$ c' f0 z5 E' s$ g. ? - ;;
+ E* l4 h+ [6 f - ;; Fit curve, fit spline, or smooth spline surface setting1 H3 m! v$ I; h$ K1 @
- ;;# f% T# K% j( _5 y. m; E
- (defun set_tile_fitsmooth ()( D) J, k; x1 B4 c: ?1 S# K
- (cond. R+ H1 ]" ~% B2 H; z4 \+ v1 ~
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE"); o: \/ R; X# f @/ x
- (set_tile "none" "1")
9 m- K& q& [* R, Y$ E - )
5 r) O2 G8 Y; h, s0 j- W! i- i - ((= (logand bit70 4) 4)
+ D2 H1 f7 u' N' X# G - (cond
5 Q' }5 G4 ]) s5 x% M/ V - ((= bit75 0)
7 B! L$ C' h2 Q) y2 T' v - (set_tile "none" "1")6 Q6 K1 J# I/ v% E6 Y( ]/ `
- (setq spltype 0): H. S2 t1 S+ O
- )) k2 B( W5 y; ^0 t: e) s. G* G8 O
- ((= bit75 5)' o) d: ?- V& {. _, a8 G6 V
- (set_tile "quad" "1")
& G; t" L; H: I& x. y - (setq spltype 5)/ |" Q# ^; t, O7 f9 c5 a* F4 }
- )
: y+ g/ P- X# `1 W7 D. F - ((= bit75 6)
4 U! A+ j; @* ^* V" |% f2 Y0 m$ R - (set_tile "cubic" "1")3 y7 Z* \: L: l) o
- (setq spltype 6)' V; r4 I) |# d* h8 V \* o; e
- )
% G- v/ K$ J; J4 M0 W4 O - ((= bit75 8)* c/ B) a6 O- A2 T
- (set_tile "bezier" "1")1 d) @2 d; d9 s# M7 c* x
- (setq spltype 8)) \/ _% o5 s% E6 l
- )% w9 f: S& g6 ]* B, c* J4 p! ^3 y
- )( q. U4 B. O& X
- )9 M: E- N( _3 c- b* X5 s8 e7 [
- ((= (logand bit70 2) 2)
! X u) J( F7 K; S- ^ - (set_tile "fit" "1")/ Q7 J! c, L+ S% T
- (setq spltype 1)2 n: L/ r) J! y0 U9 y
- ). f* S* } E# y; F" @$ \5 X
- (T (set_tile "none" "1"))
@6 D+ f/ M2 B& D3 k' ]7 k* q - )
6 }! z( E6 T, ]( I3 _ - )
; m5 Y2 v3 g$ G" Q" j6 N - ;;
' W* d2 e# L2 ^- S - ;; Closed or Open mesh and polyline setting
9 t0 Q; {7 {; M! J" S - ;;8 u0 B9 c6 y3 V/ L7 k0 s9 Y; l: X
- (defun set_tile_closed ()
4 q% c* ~5 X) c8 H* |, a - (if (= pltype "3D mesh")
0 r& a0 p' O Y* f7 n - (progn
4 X6 R1 m/ Z2 L+ b - (if (= (logand bit70 32) 32)8 Q$ |+ [9 p! ?. ]" a
- (set_tile "closedn" (setq closedn "1"))
. T9 x3 x7 J4 r7 v - (set_tile "closedn" (setq closedn "0"))
" o: j: N. }' ^$ L - )) ?- \8 q9 J! b4 Q- ~
- (if (= (logand bit70 1) 1)9 J" H+ N( V9 Q" `3 p, \
- (set_tile "closedm" (setq closed "1"))
2 W: e3 r' O! @# M. M: D* |/ g, ]& ? - (set_tile "closedm" (setq closed "0"))4 O- ^& `- S: j$ u$ P9 v* b
- )
; j9 v# ^. u& r3 m D- A) b/ U k - (setq old-closedm closedm old-closedn closedn)
2 Q9 b2 w9 ]% f+ N) r0 | - )
9 H$ X. b6 {5 @+ a - )
+ W+ V5 |% ~: ~6 \ - (if (or (= pltype "2D polyline")
$ C( y5 ^( Y/ m) J - (= pltype "3D polyline")
9 u: u! _! m- ?0 ~; ~ - )
4 N+ j" x5 a) k8 a) t - (progn
6 X1 D6 g4 L7 ?% f - (if (= (logand bit70 1) 1)
1 Q# Z& m8 R4 ^ M - (set_tile "closed" (setq closed "1"))
1 M8 N# C: P4 F' V" E( D+ @, E: [5 n - (set_tile "closed" (setq closed "0"))+ w7 `0 U4 V1 _* _7 k Y( o3 R- I
- )4 q& z4 E2 Q; E
- (setq old-closed closed)
+ W; b- ^4 W3 R3 J9 P* M# v - )
) B2 Q$ s* W, E9 t - )
: e4 n+ d9 k/ p8 i% o( V" E - )
% e- H- {, S* u8 V: l - ;; Set common action tiles& N$ d! F$ l) B/ T$ V
- ;;
7 Q. ]# D9 l$ @ - ;; Defines action to be taken when pressing various widgets. It is called: x# l2 R, [; a6 a9 n
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
4 [- k% ?5 [6 d - ;; but defining an action for a non-existent widget does no harm." n2 z' H' h( r1 c% Y: \: d
- (defun set_action_tiles ()
! C3 q: C+ h' B2 P - (action_tile "cancel" "(dismiss_dialog 0)"), P, \0 M9 n9 j8 \( o
- (action_tile "accept" "(dismiss_dialog 1)"); v+ O7 J9 d7 ]0 D+ b M
- (action_tile "help" "(help \"\" help_entry)")" j# L3 D( R6 m4 J. f* P7 T& t+ R# P
- (action_tile "b_color" "(getcolor)") P5 O' c3 \! q( f( N3 @ w/ \
- (action_tile "show_image" "(getcolor)")
4 \6 N% U* f+ u+ E - (action_tile "b_name" "(setq elayer (getlayer))")' Z8 S0 }! M; u
- (action_tile "b_line" "(setq eltype (getltype))")
3 N2 @, g; `* e/ t# N6 u - (action_tile "eb_thickness" "(getthickness $value)")* k# i+ O5 h) e+ D
- (action_tile "eb_ltscale" "(getltscale $value)")3 j) p4 l; G7 |6 n+ u1 m* L
- 2 l; |; _ v9 c. M
- (action_tile "pick_1" "(dismiss_dialog 3)")4 m' Q/ l0 M! d7 h" \. ~
- (action_tile "pick_2" "(dismiss_dialog 4)")( r5 d# p: K; W. ?2 F+ z* U5 q& U
- (action_tile "pick_3" "(dismiss_dialog 5)")+ T: C; N: k0 o1 D- t& a" V% G2 J
- (action_tile "pick_4" "(dismiss_dialog 6)")" k0 Q6 s) w9 Y4 G, n0 e6 U
- (action_tile "x1_pt" "(ver_x1 $value)")
; Y% _& R5 h+ a$ s5 q8 `& s - (action_tile "y1_pt" "(ver_y1 $value)")% I' q, L( {/ m
- (action_tile "z1_pt" "(ver_z1 $value)")
2 d" Y. O4 l/ }- r7 F. j - (action_tile "x2_pt" "(ver_x2 $value)")/ r3 X4 k8 |+ P6 }1 V
- (action_tile "y2_pt" "(ver_y2 $value)")" B; f6 P! r( q' Q% k) }9 L/ a9 k
- (action_tile "z2_pt" "(ver_z2 $value)")
7 F# K: S/ w8 N9 T - (action_tile "x3_pt" "(ver_x3 $value)")
. Q+ I& Z# W* ]+ a+ p% R; J+ I - (action_tile "y3_pt" "(ver_y3 $value)")# I! I% @' M2 U$ |, I* k6 @. w$ V M
- (action_tile "z3_pt" "(ver_z3 $value)")
# @ v8 ?0 @ t. G+ R5 u' | - (action_tile "x4_pt" "(ver_x4 $value)")
. I. J, Q. O7 W - (action_tile "y4_pt" "(ver_y4 $value)")( V, z& f3 f- u- w7 {
- (action_tile "z4_pt" "(ver_4 $value)"), h, r+ f- f+ O
7 R9 Y3 I3 o1 @6 }0 X% c8 e- ;; Action tiles for Xline & Ray( W! G* G+ i6 J
- (action_tile "xline_x1" "(ver_xline_x1 $value)")
$ w/ K- i. m$ B0 l# y2 E! m4 i7 w - (action_tile "xline_y1" "(ver_xline_y1 $value)")
7 F6 Z1 d; l6 g- S - (action_tile "xline_z1" "(ver_xline_z1 $value)")
' X0 b% h9 Q. Y# z9 o - (action_tile "xline_x2" "(ver_xline_x2 $value)")
9 I9 F: |+ G5 |, s - (action_tile "xline_y2" "(ver_xline_y2 $value)")
$ C; Q' d% t& L - (action_tile "xline_z2" "(ver_xline_z2 $value)")' b: K$ i5 L/ W+ N2 H6 d1 x0 T
- * u9 e* d! Z8 ~2 B# q
- (action_tile "edge_1" "(setq edge1 $value)"); I7 F$ a0 O! _1 h* X* H L
- (action_tile "edge_2" "(setq edge2 $value)")" V+ n5 b; p4 @$ P
- (action_tile "edge_3" "(setq edge3 $value)")
/ [2 F5 u% Y f1 A) E' l7 s - (action_tile "edge_4" "(setq edge4 $value)")
i8 u/ r/ D. S% f: f1 Q. X - T' \* J( d k# R" _9 s0 E
- (action_tile "radius" "(ver_rad $value)")* H' S7 v1 `( N, P3 h
- (action_tile "st_ang" "(ver_ang1 $value)")
( p# i* T E' b& ]$ c4 W0 s! [ - (action_tile "end_ang" "(ver_ang2 $value)")
9 K9 Y* y3 v- U8 Q - (action_tile "end_eang" "(ver_eang $value)")
5 h6 m4 b8 I; h0 B6 G2 ^2 ~ - (action_tile "minrad" "(ver_minrad $value)")
. ^& s" b J9 O( J - (action_tile "majrad" "(ver_majrad $value)")# w8 |4 I0 Y6 j. W9 w# T" y5 K
- , |3 m: D2 @' F3 v% u
- (action_tile "xscale" "(ver_xscl $value)"). x8 @, [+ ]3 X$ m1 M
- (action_tile "yscale" "(ver_yscl $value)")( V1 S2 n/ Y9 P6 k2 C2 R
- (action_tile "zscale" "(ver_zscl $value)")
. d5 b# O0 p' L4 R - (action_tile "rot" "(ver_rot $value)")2 E& t# L- I' W5 i& _$ z
- (action_tile "columns" "(ver_col $value)")9 u4 D, \6 q1 W8 S! O
- (action_tile "rows" "(ver_row $value)")
3 Q! X4 Q: \' \. j0 Y/ Q! i1 I - (action_tile "col_sp" "(ver_colsp $value)")
5 Q. ~1 b) G0 }8 l R8 ^2 w - (action_tile "row_sp" "(ver_rowsp $value)")
0 p) T1 H5 m" z/ W8 s9 e
) W* K# J$ A, z- (action_tile "hght" "(ver_hght $value)")
) i& P2 n4 M z1 N& a - (action_tile "wid" "(ver_wid $value)")# y8 s; T, `0 C
- (action_tile "obl" "(ver_obl $value)")
* M8 ~' |# L# \4 \ - (action_tile "style" "(style_act $value)")8 O+ i+ f0 ~8 ?8 N1 H$ e6 }' o" O y
- % y) G+ @. _0 H" F9 [! E% f: m
- (action_tile "t_string" "(ddgettext)")8 m# U5 Y# c& X! T
- (action_tile "tag" "(ver_tag)")
7 R8 }/ S/ G% D7 w( u \9 }4 e' e - (action_tile "prompt" "(ddgetprompt)")6 b- W% {" @' A5 h: `; A
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
% u! w9 g+ o' b1 H6 a% w3 u - (action_tile "upsd" "(setq upsd (atoi $value))")+ i/ k+ @; d! t. J
- (action_tile "inv" "(setq inv (atoi $value))")) M/ E0 L1 S! _# B4 B
- (action_tile "con" "(setq con (atoi $value))"); z" _* v% O& G" n7 f# i7 s4 G
- (action_tile "ver" "(setq vfy (atoi $value))")
' z3 S% `# B7 p - (action_tile "pre" "(setq pre (atoi $value))")
; E" |1 C" i5 Y5 Y - (action_tile "popup_just" "(jlist_act $value)")5 f* \4 y* ~6 ~" Y. b( c
- ( V" X+ w% r9 h- _2 |( r
- (action_tile "closed" "(setq closed $value)")
* H) v7 D+ e0 P5 F9 e - (action_tile "ltgen" "(setq ltgen $value)"); [' V9 H5 m. l
- (action_tile "closedm" "(setq closedm $value)")
- T! t9 b* l' j5 u5 H, n - (action_tile "closedn" "(setq closedn $value)")# d: F( E! V4 S4 E q% [; K" R9 n- V
- (action_tile "next_v" "(next_vertex)")1 ~' K& x9 @7 x& D* O4 g
- (action_tile "xcliponoff" "(setq xcliponoff $value)")
. T" p' Y9 x5 M4 g
0 b2 t/ `$ n6 |8 s) E7 F& b- (action_tile "next_cntlpt" "(next_cntl_pt)"); E1 x& F3 b7 H0 L' J% A0 e0 z
- (action_tile "next_datapt" "(next_data_pt)")
, H) C$ u: Y( n5 ?0 e
" t8 B. r$ Z2 V: J+ ~- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))"): X# c4 x" K( u+ h! j
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
) |6 P4 Y1 Z6 O( t; ^6 K s/ u" y - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")2 r. O9 K$ Q+ q
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")+ w" d- ]% W! w/ K+ a1 n
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")7 Y6 l9 y P* J! U+ g1 S3 u' i
- . Q- ]" ]- }' A+ N) F
- (action_tile "u" "(ver_u $value)")' Y- N& d- V1 x: C" \$ t6 I5 t
- (action_tile "v" "(ver_v $value)")
% p+ o5 \" _7 V) \8 i - ); r+ ~5 _- o) d( G/ I4 M
- * w% S( p K$ W5 M, E5 [" Z% R
- (defun ddgettext()0 T7 _8 U( I( ^3 M2 z, K
- (setq text (get_tile "t_string"))
: B' [ L& K! c6 ^- R1 O0 S. u - )
: Z q, P! w3 a+ {5 p& \5 j - 5 @3 F/ ^+ D; m% `1 b) u# X
- (defun ddgetprompt(); K* t3 E8 r- k0 p7 T, y
- (setq atprompt (get_tile "prompt"))2 W4 S4 V' ?0 Q, w/ H2 A0 h) n
- )
. Y) n4 ]- r. ]; D; R5 M7 h - 2 c( V$ g! b8 e1 f
- ;; As OW doesn't support disabling of individual radio buttons within0 q | \% G# H) v. h; X: ~2 y
- ;; clusters, a check must be performed as to the legitimacy of the
* w" q& @/ R& I7 j8 q - ;; button pushed and reset if necessary.2 m) g+ G6 Z9 L5 b }; v% z
- (defun radio_gaga (pushed)
2 g9 _9 g/ q5 @ - (cond7 O% j; w5 e+ d/ |
- ((and (= pltype "3D polyline")3 ^3 w9 B3 [2 Z c. r* W& |
- (or (= pushed "fit")
, Z0 C* I5 k* R4 f- u+ D - (= pushed "bezier")
I+ C1 s# Z. W" b4 U - )
+ Z( ~( q# U3 X8 b/ q9 |9 H - )
: U/ D0 N) c" _- c. R" Z9 X2 j4 H2 `! q - (set_tile "none" "1")! k6 B6 ~3 _6 J9 g# t( \, u& h
- nil `( ^5 R3 |! p$ x4 {: W' J
- )
% J2 a3 c9 K$ X% B" s - ((and (= pltype "3D mesh")+ q4 ]! K: a' ~- [/ |8 E0 `7 t
- (= "fit" pushed)
& O! i8 V. t j* d1 b! Y8 v4 { - )# |- B5 U5 M& ?' i
- (set_tile "none" "1")
o) P$ D$ [; ?$ z' o/ {4 ` - nil* B# t% T) J/ z% ^) y8 l, ?% v
- )7 K2 `8 l i( |- N' W
- ((= pltype "Polyface mesh"), j2 Q( G0 L( D' V4 ~; J
- (set_tile "none" "1")' M* H1 @$ X( g5 \5 M3 ^" t
- nil* x, H! b) U3 Z! z( x9 Y
- )5 R$ A4 ^6 D N( c. P- M# z1 E, Z
- ((and (= pltype "2D polyline")
9 V6 f7 z' L: a/ ]& @7 u/ {( \ - (= "bezier" pushed)
$ P) i+ E/ u- r - )
% X1 `$ c3 ?& L |$ m# T s( T - (set_tile "none" "1")- }: U6 E2 H/ v5 O& |! A4 Z
- nil5 I7 H: j, b2 X# ^& a; ?& v- c y
- ): V$ [: ~! n3 Z
- (T)
" J$ e$ k8 Q6 f' U. [- r - ); D0 H+ r0 D2 B# W3 ^
- )
$ u- a3 C9 S0 j/ G - ;;
: [+ _4 Y3 x( S0 }- z - (defun set_uv (type_n)
- s/ E% R( V' S5 o3 Z - (setq spltype type_n)' r/ ?5 O" \( m2 M6 M
- (if (= pltype "3D mesh")5 m0 _$ B B& c, z ~$ ^# E
- (if (= spltype 0)& o4 ~; i* ?7 B/ {/ Q4 J
- (progn
+ T: f% f, J# T0 F. l4 Z - (set_tile "u" (itoa (setq u 0)))2 M' k- m4 S" k
- (set_tile "v" (itoa (setq v 0)))
1 f# {: \/ i; R& Z - )
8 p- [4 `- j) Z( m- T4 ?; X - (progn
4 F2 T$ Z3 g4 |0 p! ^4 P - (if (= u 0)
2 n8 E6 j! B1 Y" J - (set_tile "u" (itoa (setq u (getvar "surfu"))))
) e6 P% {; _' W6 T( |* g/ o- u ] - )" q( E6 ^1 t" k( b5 q) ^, y9 c3 a) t
- (if (= v 0)7 F2 P, w+ j* m% z; V* R+ C q0 m- r
- (set_tile "v" (itoa (setq v (getvar "surfv"))))9 _" w" W7 [2 M4 m# n# }8 m7 Z# K
- )) A2 @ o% o. G" A: r/ d' J
- )" f: I6 P1 j4 }1 k
- )4 O" F7 {, y# k2 g3 A
- ); q% l- L2 O6 ~ z" c+ } z
- )
6 U, O, a5 c5 ^/ n4 V: C; \6 j
; ?+ k Q; {7 ]- }$ @4 L- % I, c& Q6 q6 T
- ;;4 P7 c" O* p6 i/ P) G' N
- ;; Verification functions
; w/ w3 A! D* I# {& V3 X4 h - ;;
9 m) r* _; K$ U4 h% B" u0 g) n - ;; Verify distance function. This takes a new X, Y, or Z coordinate or) ~7 V9 P* Z$ R9 T% s
- ;; distance value, the tile name, and the previous value as arguments.
' F: k9 V: }+ W: l) ~0 v! ^; H - ;; If the distance is valid, it returns the distance and resets the tile.1 Q4 F H% M8 w
- ;; Otherwise, it returns the previous value, sets the error tile and keeps* ?7 U% M! }5 h
- ;; focus on the tile. Shifting focus to the tile with invalid value can
5 W$ A& |' J6 C+ s# r4 [; V - ;; trigger a callback from another tile whose value is valid. In order
! E) W0 M4 [4 A - ;; to keep the error message from being cleared by this secondary callback,2 |' m& n, B4 N0 B% z0 O& Q
- ;; the variable errchk is set and checked. The last-tile variable is set
1 q+ b( [8 _* [ - ;; and checked to ensure the error message is properly cleared when the
* H# y$ c ^8 }1 }$ [! p: u - ;; user corrects the value and hits return.
" F5 S$ Z* ], Y: S8 k- j - ;;* q9 z) Y) q5 ~7 T3 W5 ` N
- (defun verify_d (tile value old-value / coord valid errmsg)
$ M# O5 e2 {- h/ n - (setq valid nil errmsg "Invalid input value.")) P8 r. F& z) D. A
- (if (setq coord (distof value))
! Y, S$ B: _! g/ w7 I# h4 J. Q - (progn! F7 p4 @+ W+ P
- (cond* O d0 m0 z! T7 H/ {" O, k
- ((or (= tile "radius")
: W8 H$ j- U- I - (= tile "hght")2 {9 {# C6 f/ q; @, A
- (= tile "wid")
4 O% t# n |+ v - (= tile "majrad")0 A- H( w& v. f8 u/ d: `. t
- (= tile "minrad")+ u' O) i ]8 y9 P# H
- (= tile "eb_ltscale")
* S. p: n: m9 b% D6 F! |+ q3 h - )0 U/ h; |$ P, M8 m4 R% x3 Q* f O1 K
- (if (> coord 0)
2 u O# {$ l/ J) v* S% h - (setq valid T)
. a+ q) `* f0 ^3 J* e1 C3 N - (setq errmsg "Value must be positive and nonzero.")+ ?/ W; m5 Y7 H! o6 k. B8 S; Y. n) ^
- )# v+ \0 ]5 g! T+ \
- )
' V' M; N; \" R2 B0 m - ((or (= tile "xscale")
+ L0 f* T- \( S - (= tile "yscale")
* K1 z& Z( Y# a! j% u7 J - (= tile "zscale")5 I. h. F! M# A) Y
- )) \- S7 N5 Y2 Q- e! i8 ~
- (if (/= coord 0)
. U8 m G4 L! i2 l- s - (setq valid T)& ^2 d; _+ @2 D' N% J
- (setq errmsg "Value must be nonzero.")
7 N+ G) U4 o$ ^% B3 x - )$ g3 ^8 i/ c ~% q4 b
- )
8 Q" i$ [/ Q o$ N - (T (setq valid T))! M2 `) t% k1 B1 n Z% [ Y E
- ). a+ L% B) o5 W' c5 p% D# A6 L
- )2 N: M: k/ L8 L0 z; f" x
- (setq valid nil)$ f. g+ |* a0 v1 u0 }
- )
5 y) E* G F: y0 h# U9 `1 P - (if valid+ ~8 s- j0 [2 F+ s
- (progn, t% `, t1 C8 U3 E8 |! \
- (if (or (= errchk 0) (= tile last-tile))9 d3 H7 V/ @% [, Q
- (set_tile "error" "")
( V9 t. s( X+ H2 \7 \- r5 v% l$ D - )6 q2 J$ v, p3 g7 o0 ~
- (set_tile tile (ai_rtos coord)): y4 P- @% @! A
- (setq errchk 0)
+ X9 ?" L; A. v- ^. Y8 t4 k - (setq last-tile tile)
( T ^- D5 K( H! p) D6 i$ a4 u& Q - coord6 ~6 \' D" `6 X1 G( T1 }) G( L6 U
- )
. b4 A' q7 n$ a) C% k - (progn
" e" D/ M, c5 h2 p* D/ [ - (mode_tile tile 2) ; Move focus to offending field
1 z- c8 j; r* @' Q - (mode_tile tile 3) ; Select offending text; z2 N/ X$ x$ L( I$ O- C8 R
- (set_tile "error" errmsg)0 {7 N# P! Z9 b, s& B" t
- (setq errchk 1)
3 W3 _7 n% B: T; `' Q* L - (setq last-tile tile)6 J" o+ d! ~6 j/ ?, k
- old-value) J7 j! p$ q, o+ e' r+ y
- ): }( y0 v/ e! z2 u1 S
- )
* \8 M' y+ ]& I8 x - )
6 ]1 ^+ |9 m$ J - ;; Function for Xline coord edit box checking.
/ w# N- ^. w, t8 Y( m$ d1 [3 F8 e - (defun verify_xline (tile value old-value / coord valid errmsg); s# ]2 f6 _' \* i" x' }. w# p- m4 k
- (setq valid nil errmsg "Invalid input value.")
' j( y& U+ U& M - (if (setq coord (distof value)), Q: l) o8 s3 X& N/ u
- (setq valid T)" J C7 Z5 g6 x- L1 {
- (setq valid nil)
- C0 L; P1 d6 t - )# }) h8 {/ S0 ~2 D$ E. p6 g( Z6 F
- (if (and coord: [/ G+ W* F/ g5 y! D3 l7 y
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
- n' w/ ~; _0 O# T/ G - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
5 @# ?% m g- i& ] - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ), ^) R1 T! \0 V4 `! _8 z3 z2 d5 K! x
- )6 v- n1 g: x R' f
- )' j: L& t" W: `0 T) V
- (progn# O6 ]6 Z, f. k8 T+ t/ y
- (setq errmsg. x: q1 W" x5 q" n1 e
- "The Root point and the Second point cannot be equal."); w4 z% m5 @- v4 R7 X
- (setq valid nil)
7 p1 _8 e+ K* b, F - )" B' }) O/ _! \; Z( w: m5 V
- )3 c9 t$ s9 t( }+ @$ m# H- u
- (if valid: x9 U1 s9 Q! T6 T
- (progn
/ X1 X; L; Z* z) ^: s7 |' S; _" ^ - (if (or (= errchk 0) (= tile last-tile))
' T, ~/ x c+ b* o5 \; B - (set_tile "error" "")
$ r* r/ h `. K: _- }: X) }8 d - )
% |7 O/ d- Q0 S y - (set_tile tile (ai_rtos coord))0 a" M. c$ M- S* d( n$ U
- (setq errchk 0)
: D4 w/ h9 J/ ^3 e - (setq last-tile tile)/ d& f' t' p5 g0 j. z" t
- coord
x0 f3 W8 N) c4 V" ` - )0 \. [+ f0 X7 {( c% F0 D
- (progn
5 H! P# Z8 R) N+ [2 O. u6 y - (mode_tile tile 2) ; Move focus to offending field/ K y/ l. T! U; j7 O+ c7 J
- (mode_tile tile 3) ; Select offending text9 ?0 ~3 F2 Q+ t& g
- (set_tile "error" errmsg)
- K' g4 b }; U' w( u# g - (setq errchk 1)* a+ {) R7 `- g& ?0 d& e
- (setq last-tile tile)( {1 S4 c" y) ?. n
- old-value' X( c" n- L4 K" ]0 P# D* i& L G P- t
- )
5 {# R& n* J$ g; X* q* q! y - )+ K- w' n5 g$ P8 N" V
- )
( |$ f. B- n1 G3 D6 f& { - 4 n& [/ O: j3 k, }, f
- ;;
+ U& B( Z* C, J* L4 } - ;; Verify angle function. This takes an angle and a tile name as arguments.
! P; W1 g# N1 n8 o3 K0 p - ;; If the angle is valid, it returns the angle and resets the tile.
5 t6 ?' n5 W! X) ^ - ;; Otherwise, it sets the error tile and keeps focus on the tile.; ^ @8 o/ w+ k
- ;;
- {8 X. _. L9 V - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
6 a5 u% q( V% _) P7 f - (setq valid nil8 a: n6 W2 C% t$ E/ x
- errmsg "Illegal input value."
' q7 J5 u, x+ k4 f! g& Z - )
# b+ r! D2 X7 w3 T( k* c - (if (setq ang (angtof value))
% m3 V8 L7 T+ `2 u. t5 v - (cond
! v. T# a) L9 t0 C" j% q( i# G( P - ((= tile "obl") ; Restrict obliquing angle+ F7 g* P) U& I* y- {
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))7 |( |- S* i: n/ e. d h: U( m
- (if (or (<= ang oblqmax)
" H1 V, i7 p+ n/ [ - (>= ang (- (* 2.0 PI) oblqmax))
% n2 R y: H/ }* N) D - )
s& T( N$ T2 \1 i) c$ p - (setq valid T)3 \5 [. n% ?, \- U! e" x
- (setq errmsg
& I. v% o3 l$ T% j - "Value must be between -85 and +85 degrees.")
: X+ j- [* d% ]* \, R7 m; @ - )
5 a" [7 `7 g/ \& Z/ d0 q- v - )2 `( ]# c( \; T. T. d
- (T (setq valid T)) ; Other angles not restricted
6 s' w2 }4 c5 ?' \ - )
2 G( D% ~ ^6 H1 d. a - (setq valid nil) ; Invalid angle input B" N; t# ~+ d0 I' d" t" f4 D0 {
- )
* A+ s( ~) L3 K, q - (if valid
% P* n5 L$ h% \* J - (progn4 w0 l! M/ O( i+ r0 O* g7 ]
- (if (or (= errchk 0) (= tile last-tile))0 H X2 Y, l% v9 S6 U
- (set_tile "error" "")
' r2 Z4 O; B d7 @) F. o - )) [ j6 G# `; i
- (set_tile tile (ai_angtos ang))7 h7 G E( M0 Z
- (setq errchk 0), ^1 n+ a! y1 n% j& {( q6 {
- (setq last-tile tile)( U$ {( i# B3 M! n% r. t
- ang
; j( |! Z* c- L% X1 k - )5 ?: l6 Y* f0 E3 u6 C; S
- (progn
; X# _; ~# e! M; a7 c - (mode_tile tile 2) ; Move focus to offending field
4 u* z8 t( c k: e0 x- M2 c8 L - (mode_tile tile 3) ; Select offending text `; g, n/ u7 e5 P9 @
- (setq last-tile tile)
/ u9 W2 e/ H0 ^8 k3 J) G - (setq errchk 1)" K: o6 Z3 u& A2 G2 Q: t, G& y
- (set_tile "error" errmsg)
) N& ~8 K# K) |* S - old-value, k! h+ l$ X3 j! s; L7 X
- )
; K% V" g8 D" j' M - )
9 d8 x: P6 n" v- V* K - ), F! b, N% T$ N7 ~6 H
- ;;" P2 Z" ^2 W, ~' X2 i" H
- ;; Verify angle function. This takes an angle and a tile name as arguments.
/ K4 u' c. Z Y% q# |% R - ;; If the angle is valid, it returns the angle and resets the tile.
1 u% `- H+ p. v* K" \# s- e# C - ;; Otherwise, it sets the error tile and keeps focus on the tile.) D0 g! W$ h; v) c# Q9 N7 Q! E' B* }
- ;; This function is specifically for the end angle of the ellipse object. If, A: H# C2 T; u$ d+ ] J
- ;; the end angle resolves to zero then we want to display it as 360.
0 F, U: L( B& W - ;;
" n7 y! J1 T& L - (defun verify_ae (tile value old-value / ang tempend)& d+ V2 I2 h% l1 @
- (if (setq ang (angtof value)): z' I& ~0 m B; P1 m7 P0 a+ g7 {
- (progn* O. {6 [8 S7 Q; H0 ^) q# d4 C
- (if (or (= errchk 0) (= tile last-tile))6 O1 O& T. w9 K" X% J
- (set_tile "error" "")" ]) A, F+ A' p# K# q; |; K) E
- )* A& R+ V( I$ @, q4 g
- (setq tempend (ai_angtos ang))& h* c+ x2 \5 D. t4 R; y! D! J
- (if (= tempend "0")% n# T( i) j Z# ^
- (set_tile tile "360")
8 k' a V5 {# j' G% { y; S. p - (set_tile tile tempend)/ s9 x/ J+ H! l; R# k3 N3 ^
- ), n; L( {7 |' V1 v7 z
- (setq errchk 0); m0 I# N0 J: c, y
- (setq last-tile tile)
! R1 _4 ], o' Q( k' L5 ? S9 F' Q; f - ang) r5 B! {4 b$ ] s" [
- )4 f X4 v+ e, X( H
- (progn
" ?8 v4 s# J! C+ p6 \ - (mode_tile tile 2) ; Move focus to offending field. k) f" b d: S9 Q" f3 C% I
- (mode_tile tile 3) ; Select offending text( O' Z; q) a; X0 V& w* y1 c- V
- (setq last-tile tile)
5 V4 x9 j. x' _! D - (setq errchk 1)
: E; u1 N7 l2 @4 L. ]) Q8 v - (set_tile "error" "Illegal input value.")
. L5 U! E" m c - old-value) o# M; C6 X( n: ]/ B
- )$ P; D- N4 [. f/ {
- )
9 C4 A# r& B' S$ u# X# W - )9 e% Z6 Q& w) t& }4 H" n# I
- ;;
3 g! M9 n' M; [ n% f - ;; Verify integer function. This takes an integer and a tile name as0 [' ?: G. Q5 L% `9 Z
- ;; arguments. If the integer is valid, it returns the integer and resets the
6 E" p% y& w* N+ o; k' r2 } - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.0 u* l& v7 ^5 o2 S% l" W
- ;;
6 z$ w/ |8 V! o& H3 F$ k8 ?' B9 R - (defun verify_i (tile value old-value / int valid errmsg): @ _ t1 T+ B, X
- (setq valid nil)5 j/ @. F+ L+ l: y }' y
- (setq errmsg "Value must be an integer.")% j7 @7 x! n( h! v, p0 [% ~
- (setq int (atoi value))
9 L$ g* D. t( H; W5 A7 S3 D- j - (if (setq intchk (distof value))3 E# `3 Q9 S" l# c
- (cond
6 I# ?( ?- r1 ~# a5 m# f - ((or (= tile "columns") (= tile "rows")): t+ r1 a8 z' V# S1 }( `5 v
- (if (and (= int intchk)
2 G/ n; x: W2 s$ V. Z - (>= int 0)5 ~! m# J* P7 E2 ~
- (<= int 32767)
: V! T6 T+ h% n) V2 W - )6 L. E+ x. Q+ b6 B& j
- (setq valid T)
$ K$ n4 T. b" S# d2 P - (setq errmsg "Value must be an integer between 0 and 32767.")
0 ]0 d3 s _1 c4 v- _* O7 _- P* U - ). ]; [' M6 ` ~( R% _! }! D& L
- )0 i1 A Y5 d, }' _6 k3 h
- ((and (or (= tile "u") (= tile "v")))
" m" ~! D- I3 \8 k- |9 B - (if (and (= int intchk) f+ D- Y' t% q( [! K' r
- (>= int 0)0 i9 x' t: O0 _8 s
- (< int 201)1 J# E, N0 z, ^ A
- )) W! |* ?7 L e$ }; a! j! G% R
- (setq valid T)
" w5 E3 U- W1 v# g7 u s - (setq errmsg "Value must be an integer between 0 and 200.")7 j" ?' ]' h; I* d
- )
9 R" C2 N4 M2 z0 H - )
( M$ C; I, f# U: R5 ?" h0 u+ z - )9 Q! g* W+ X" S7 W! m; W5 n0 o
- )& R* e0 S4 @! d4 B0 W& J. k' L
- (if valid& M C% r, X& X) c
- (progn ]& j& c4 V! S" H# Z9 a
- (if (or (= errchk 0) (= tile last-tile))1 d6 G% ^+ d* }, Y3 i( ]
- (set_tile "error" "")
7 P: W* `* T+ k - )/ _% k1 h4 C' f3 Y
- (set_tile tile (itoa int))3 B- G6 T. p( }: x, z8 \ @: ^+ u
- (setq errchk 0)
m( f8 k* q% j9 d# } - (setq last-tile tile)
5 K4 x9 D5 N3 N" K4 l - int5 H% @( Z0 u8 `- a" T4 a/ m
- )! u, K! F b/ `; I
- (progn
' a. r ~" r) D- d- }& E2 n0 u - (mode_tile tile 2) ; Move focus to offending field. R) p8 q+ ]( ?: _% O" |" w
- (mode_tile tile 3) ; Select offending text
V+ c; \2 N5 e+ _' d4 n" ? - (set_tile "error" errmsg)2 t+ [8 n# Z, F5 E, x% J; Y: L
- (setq errchk 1)
1 a1 Q% X. ]8 U( U; A - (setq last-tile tile)! B' r& o2 F# l/ e9 h
- old-value
, ?9 b$ [7 S. C7 ]6 \1 E - )2 w5 E3 C' x0 ^4 ~
- )# E; B& P; l+ S
- )
& y! C9 B" R; m/ t - ;;
/ Z+ q5 m8 i5 ^ - ;; Functions that verify tile values for integers
1 _, o) H. G, W8 F; Y, a) j - ;;
1 g% W& W5 ?, L( ~ - (defun ver_col (value)$ p9 j' @3 P, C
- (setq columns (verify_i "columns" value columns))
& s% C4 `1 _& X( z - )
3 x+ P! B w W& a9 Y - (defun ver_row (value)
6 ?' r9 I$ s9 _7 s6 W - (setq rows (verify_i "rows" value rows))
0 D0 H3 Y( [9 { l. [3 t - )
7 |; t+ J& j* v - (defun ver_u (value)
1 [2 q' y& S- z1 t/ | - (setq u (verify_i "u" value u))- ^2 j) N' I9 M3 T$ `) @
- )
+ b# x) x3 q* _: U - (defun ver_v (value)2 X: w5 h* j0 f( X; W, M. g7 }
- (setq v (verify_i "v" value v))
/ X/ x; x+ D: f Y - )
2 J, q$ i w' f2 n1 w - ;;
8 w% g2 _$ x) Q+ Z+ `& m3 i - ;; Functions that verify tile values for reals' U1 q/ v+ w+ U
- ;;& R/ I: m8 e) d0 l$ c$ s
- (defun ver_x1 (value)% p( Z& ^- i1 W1 K4 l
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
! G, X; d0 v* |5 K/ }2 o% [ - )
; @4 E$ q b, s8 u* ~; c" v$ w8 n - (defun ver_y1 (value)2 M( x7 Y5 J6 Q7 j
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
' g/ ]8 Z- l; X ^" N - )
1 A& R Q4 N- e, F8 R. C - (defun ver_z1 (value)
8 b" f; ]- J( s2 N) E1 B - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))! r3 d0 w# j9 E5 r- ?, V
- )! ^- A, _6 x6 V2 t' J
- (defun ver_x2 (value)
7 r; P4 {; E$ @3 O0 D# x - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))) M+ }8 L$ f( h' W) D7 E! l" Y
- )/ Q r& r' e# z) q6 ~# t
- (defun ver_y2 (value)5 |. v6 a( v+ I9 @; t: E7 M
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc)); e6 e: d$ w2 c, X6 k& ^
- )
/ s, s/ `4 ?$ E! @9 a$ D - (defun ver_z2 (value)8 K: W- p& K2 N" L: F7 {
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc)) v* U+ L( q( _6 z/ _6 @( z
- )
1 V% T7 d. P. f0 o - (defun ver_x3 (value)- i5 C* l! F& G' f) R6 K, {
- (setq x3 (verify_d "x3_pt" value x3))
* a$ _0 C% G! @3 j% q3 T9 e" r - )7 q% F# k8 i, }6 d* ]
- (defun ver_y3 (value); C" h8 J* Q; M2 S# Y$ t. I& c
- (setq y3 (verify_d "y3_pt" value y3))
I# E2 _/ I0 n2 d, j, ?' f# Q# X - )
# }! [ n9 R4 m - (defun ver_z3 (value), E! c/ c! P% _9 Z
- (setq z3 (verify_d "z3_pt" value z3))
0 j" r4 n$ {( @+ a - )( I- w% b; a6 k f$ s
- (defun ver_x4 (value)
4 f* b( s7 O5 M0 G# E/ O - (setq x4 (verify_d "x4_pt" value x4))% G9 `; { b. H$ P. Z9 C
- )
& v) d' b) k' r$ ^1 H+ ` - (defun ver_y4 (value)! q$ h. Y2 h3 o0 i4 Z/ w' G
- (setq y4 (verify_d "y4_pt" value y4))
2 x$ O/ o$ r6 x% w. O* _ - )
" A+ G: O3 k: F0 y ` - (defun ver_4 (value)$ E6 L: @$ |8 p! A3 D
- (setq z4 (verify_d "z4_pt" value z4))* X' \( c3 I. q& g+ U$ p9 H
- )
2 {2 G5 P/ J) L - (defun ver_xscl (value)+ y8 `6 t: o' s
- (setq xscale (verify_d "xscale" value xscale))
& @; K0 g' m, Y% A5 K - )
1 U1 N; ]% h8 m' @! D6 _/ k - (defun ver_yscl (value)
$ E2 Y8 q: B6 P( \ - (setq yscale (verify_d "yscale" value yscale))3 _( e& [ z/ { F
- )
T1 R. e6 e6 I7 ]. X - (defun ver_zscl (value)) c* \& f$ T8 L
- (setq zscale (verify_d "zscale" value zscale))9 w' d6 M6 c) d. [# A. G
- )8 s" c1 n' T; c2 B! Q1 f
- (defun ver_colsp (value)
" g- U% C" D' P - (setq col-sp (verify_d "col_sp" value col-sp))+ T% J, E5 P( q* Q% g
- )* b3 e6 G( v' g& h
- (defun ver_rowsp (value)2 }& N6 }/ n5 e% e
- (setq row-sp (verify_d "row_sp" value row-sp))
( k H. \# s8 H/ i/ G& H - )3 y ^" B& O9 g1 D
- (defun xclip ()
4 o" I% y, ~* m5 Z - (setq xclipmode t)) X I6 R0 l2 V) |# f
- (if (= xcliponoff "1")# e2 q \! |* n* U3 N0 q
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
4 @/ e9 y( ?' \7 I5 B! l - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
/ i1 P5 X8 I# B4 ^9 ?+ ^ - )
9 m7 ^) ~9 B( M# J+ K# G6 F/ ` - ): g0 o1 E5 U; g; r
- (defun ver_rad (value)
0 k7 s2 h# J6 ? - (if (setq radius (verify_d "radius" value radius))
4 r7 }2 T1 [6 \1 i - (calc)" j; K2 q3 ?; o9 b4 o$ ~
- ). g, K) o; c# b& h4 F8 m
- )
5 o1 c1 | P0 K2 _" ?9 a# U& `, P - (defun ver_majrad (value) o& b% T& L% A0 Y8 v- G# [# X: u
- (if (setq majrad (verify_d "majrad" value majrad))
4 R; N9 ^% b9 S$ }$ P- x- U - (ell_calc_newval "majrad")
1 w# L: A5 o. U1 B - )4 M& _5 r1 Y) D4 f& N8 C; w3 d
- )
( ~* A- D# Z7 x p' v7 k3 p - (defun ver_minrad (value)
+ i( E8 Y6 B( y8 P% E8 I3 o - (if (setq minrad (verify_d "minrad" value minrad))
' ]$ Y5 O, d* G: W* n - (ell_calc_newval "minrad")
3 x: c. Z6 E9 H" ] - )
' w$ {# X$ Y! o+ \$ w - )
1 M& u/ Y" x9 Z }+ G. O/ \ - (defun ver_hght (value)
0 [& {5 }9 o% O4 s6 \ - (setq hght (verify_d "hght" value hght))1 J" z) a# q9 A* {; f
- )
* L, M X8 K% t7 W - (defun ver_wid (value)- b7 W8 Q+ e; C& M
- (setq wid (verify_d "wid" value wid))2 V- B% Y T/ y$ F0 b6 {
- )
% N, b7 C8 @" \( W2 M0 `9 Z - (defun ver_xline_x1 (value / temp)5 e6 g' B+ Q4 F
- (setq temp xline_x1)
) c. ]" O2 O# Y1 [- q2 w7 u7 l0 e( j - (setq xline_x1 (verify_xline "xline_x1" value xline_x1)) P$ V# m( W. |6 `4 c. C$ T: G
- (if (/= temp xline_x1)
/ I+ i/ |) R2 l/ f7 E: J - (progn (modify_xline 0) (set_tile_dirv) )9 U0 K: g& }: U
- )1 Z( I3 u+ ?' r2 ]- F
- )
; C5 j3 n$ `& A6 _ - (defun ver_xline_y1 (value / temp)
7 y* O/ H9 c0 Q# y: I% ~ - (setq temp xline_y1)( a0 i- n8 }; h8 I p1 V
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
7 n6 V. Z% ]) x- z - (if (/= temp xline_y1): ]& c8 U1 F$ j. ?5 J, u& g' j. X6 j& d
- (progn (modify_xline 0) (set_tile_dirv) )
. O. U9 G' e7 [1 B9 f - )* t. s1 A( P! w- S
- )7 i1 Y" M( r" ?5 K: G& q7 o3 n
- (defun ver_xline_z1 (value / temp)+ h: b+ S( V S" D& a
- (setq temp xline_z1)
- `- C u) ~9 |! }% D1 d2 e - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
0 N+ m' J/ u: u - (if (/= temp xline_z1)
( @3 q z; Q% b n - (progn (modify_xline 0) (set_tile_dirv) )9 J F1 Z! z5 G0 R4 ~, \( m2 T
- )
1 ~2 Q9 u5 N- z; h- j% g( t) w - )3 T6 {( ]9 E: A) l, q( O N
- (defun ver_xline_x2 (value / temp)
! p3 c4 M+ T, L; n0 a - (setq temp xline_x2)
0 C' f% {- r/ _ - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
) Y+ I* q6 o- o0 C9 t - (if (/= temp xline_x2)1 C* }; Y" \2 N- W& j, l4 F
- (progn (modify_xline 0) (set_tile_dirv))
2 S1 @+ Y r/ ]( o - ), k2 }9 T4 r( Z, d7 e8 \6 F8 U2 f
- ): C" A& c: L. b6 X8 e% x% z2 r
- (defun ver_xline_y2 (value / temp)* W' o5 Q7 r9 F+ E7 v
- (setq temp xline_y2)7 a8 w8 a: Y+ d9 H+ o. d6 I, U7 a
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
3 I0 f6 f' l# }* X& S# ` k - (if (/= temp xline_y2)6 h; k8 o% {% \( Q" c! D5 O, w
- (progn (modify_xline 0) (set_tile_dirv) )
& m! u' N* B+ a4 y4 v" d% V - )
2 W8 r2 K3 g( d! U5 k N- f9 w - )6 Z7 s/ I8 z2 h* X
- (defun ver_xline_z2 (value / temp)
# F9 R' m1 T6 j: b' F' ]( h- M - (setq temp xline_z2)0 ~1 X5 Z5 K$ l3 H
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
% b! ?; l# x# Y% E* X* f% }+ o - (if (/= temp xline_z2)4 U* U H( ^" W$ ~ E: s
- (progn (modify_xline 0) (set_tile_dirv) )
) U8 x& K% o/ l0 ~/ Q' E5 D, b - )
, b5 ^" u7 y4 o6 a1 R/ f( T - )
% h( Y' p6 m- r. A& X" z* G; k - ;;8 R! A$ A; T$ ` r: J
- ;; Functions that verify tile values for angles: W' F) O1 T, r8 Z* f8 n" I. u$ t
- ;;
' ?, u& ~. Z! Z - (defun ver_ang1 (value)
* Y3 j+ S' `! q' u6 Q/ } - (if (setq st_ang (verify_a "st_ang" value st_ang))1 j' e( x. v- d, d2 M, b2 W5 G7 r
- (calc)1 X j. c5 T# Q7 y# s+ f
- )' @3 v& U' c9 u! K
- )
$ j# O+ M( |+ s4 D; Z7 b - (defun ver_ang2 (value) i. i$ [" j2 F5 V; T
- (if (setq end_ang (verify_a "end_ang" value end_ang))
7 B/ e ^1 } P* s( x1 N( O - (calc)5 H' x6 M. G0 l) [
- )
9 t$ P/ V/ y) q4 N, T0 v1 D - )
2 Z% U+ C# P. ` - ;;
: M& X+ k8 q( F' |, @( r; b - ;; Verify tile value for ellipse end angle. Handled slightly" ]5 Y. U& S# ?" G/ Q3 X9 E- t
- ;; differently than the other angles.
/ K6 l/ t& P: q# e - ;;
2 l: r; r5 L, x) u2 X2 m5 S - (defun ver_eang (value)
V$ o1 X( e$ M' D9 i! H - (setq end_eang (verify_ae "end_eang" value end_eang))- a6 V( ]# R* b5 C5 e) X& j
- )
+ k5 t% b9 i( P* |3 A - (defun ver_rot (value) f. d# v/ U; _7 A& n1 z
- (setq rot (verify_a "rot" value rot))
' p* O3 _) S* X( ` - )9 K5 b7 l5 j5 C' C* y8 I. l
- (defun ver_obl (value)
) U5 r/ M6 y0 f' c) K$ E) s - (setq obl (verify_a "obl" value obl))
6 h/ C+ P, Z. e- P - )
+ [+ |& ~4 p- u b - ;;
! `9 s6 k5 m& g6 b - ;; Function that verifies attribute tag field for null string,5 F" ~- _. n8 R' W0 b4 g
- ;; or a string that contains one or more spaces. Tile value8 A r" u$ L% y+ @) q" Z& Z
- ;; is also converted to upper-case as well.# ~+ Y" w# l8 v0 f* C* ^
- ;;
3 o' [5 ^7 a5 @* v0 F" t& M2 [$ M1 M - ;;1 H6 G# I" [ r! B1 e
- (defun ver_tag ( / tval)
; Q) t, k9 c% C4 G8 s8 |0 Z - (setq tagval (get_tile "tag"))
) v* r& j4 C: x% b9 t/ ~) M - (set_tile "error" "")/ u( ^1 d) C% S+ D6 R& e6 ~9 k
- (cond
+ g# X' h! ^7 Z+ z. V2 m. H - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))* _+ v: o2 Y/ r# D) j8 j# a
- (wcmatch tval "* *"))
7 H9 t$ Q5 F8 Z( q1 }/ |2 R% ^# V- b - (set_tile "error" "Invalid attribute tag.")1 n a, _: ~+ {; R8 {6 @
- (mode_tile "tag" 2)7 F- G* [& P2 b% o+ C) S
- (mode_tile "tag" 3))
9 q" j- i9 K" H0 h5 ^ - (t (set_tile "error" "")
% q" p5 X: \4 Q$ z4 M; s/ z4 e - (set_tile "tag" tval)% v% ]5 b. E& T1 n
- (setq attag tval)))# p: D+ E; L8 ?6 V% a( }, x
- )7 O8 ]6 m. S7 I- V2 L' h$ m8 x# q. J
- ;;
3 W( ~0 J: o5 Z9 U- {$ Z - ;; Calculation functions1 N5 v) R4 N \ V
- ;;9 l' S G: K- ]% Q
- (defun calc ()7 e3 t% J$ _/ t7 a, l- ~
- (if (= etype "LINE") (line_calc)). T$ S; x! F& s2 Y; ~
- (if (= etype "ARC") (arc_calc))
: z3 a9 \- Z& D( R; f v+ I* w6 C - (if (= etype "CIRCLE") (cir_calc))4 n$ \$ `9 W' o9 J) J5 o
- )' L- N% p2 `( Y& S& r( O$ z Z
- ;;" ^0 i+ k' w3 I6 y
- ;; Calculation functions for lines, arcs, and circles
; H! t- p5 {8 R* E - ;;
( [. V6 l. K7 j2 G7 D/ ^1 p$ z - (defun line_calc ()" E4 Z& A4 q# T: e+ d8 c7 u
- (setq stpt (list x1 y1 z1))
2 B) K* ~4 C! {0 J! `+ X1 W" T9 N: \ - (setq endpt (list x2 y2 z2))
! t @+ D Q5 T% C% N - (set_tile "delta_x" (rtos (- x2 x1)))2 u( A4 n9 e, w ^
- (set_tile "delta_y" (rtos (- y2 y1)))! q& z) |6 T6 \/ n, Z1 o. R
- (set_tile "delta_z" (rtos (- z2 z1)))7 \- Y5 p) r4 X5 J4 X/ Q1 C; n
- (set_tile "l_length" (rtos (distance stpt endpt)))
9 m; W- B6 v4 m6 @8 Y0 p$ Q" C- n - (set_tile "l_angle" (angtos (angle stpt endpt)))3 R# j0 t! _1 S5 k4 o
- )
0 [6 _4 }6 S; H" Y' A
$ Q) r) a" p/ R. r$ c- @- (defun cir_calc ( / area units)5 W8 p0 y7 r8 x6 g; g
- (setq radtest radius)+ r( a! I2 a& Z/ Q
- (set_tile "Dia" (rtos (* 2 radius)))
`% S" T7 V9 w. | - (set_tile "Circum" (rtos (* 2 pi radius)))
2 q4 L. V2 V$ p' f& S1 O - (setq area (* pi (* radius radius)))
! S+ ]# i+ Z+ d3 I0 V9 Z - (setq units (getvar "LUNITS"))& M" e+ T0 S- s8 p0 ~1 H' h
- (if (or (= units 3) (= units 4))
4 |/ V$ p, C" [4 j7 k0 @# y7 A - (progn
1 s6 m# L6 V1 x - (setq area (/ area 144.0))' x8 z1 s. `) F# {9 B
- (set_tile "Area" (strcat (rtos area 2) " square ft")): {# `5 B8 [+ X8 J& S2 a q& I; f
- )! M" q d* D- A7 Z/ y& a
- (set_tile "Area" (rtos area))
) q8 ?" ?. \) F9 n7 \3 U d2 K - )# c0 J& b& O4 E6 `
- )
' ?) }' O: t2 Y [- e4 |
' p) N0 {3 a/ y8 p H- (defun arc_calc ()
3 S$ w: X" N8 x0 A9 Z8 W2 k - (setq totang (- end_ang st_ang))
7 U5 A m3 J2 U! p9 t. M- ? - (while (< totang 0)
' z. v$ ^- I, i6 J - (setq totang (+ totang (* 2 pi)))
% O1 N, k, U4 i$ | - )
/ | e9 H. @5 D - (while (> totang (* 2 pi))
$ z/ q: h0 v' K$ N" _. d! j; X - (setq totang (- totang (* 2 pi)))
. V( V! L8 b1 f - )
' O+ l- F% W1 ]6 ] - (set_tile "tot_angle" (angtos totang))# {+ h' p, _! _
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
8 D8 |, S) R2 q4 N3 c - (set_tile "arclen" (rtos arclen))# _3 M- k T( m# d2 }- j' ^& P
- )2 j$ }7 n9 H! b3 ~$ r/ M6 O
- ;;' a5 _1 T- R" ] t, n5 G9 p4 R9 J
- ;; Calculate the major radius, minor radius, major axis direction.( [+ J7 q. z3 C; j9 i
- ;; Get radius ratio. Convert Start, end parameters to start and end( f9 p/ r9 }$ c
- ;; angles. Save Major Radius value in "old_majrad" in case the user
$ H9 S$ O$ e$ q! b! k - ;; chooses to input a new Major Radius value later. It's needed to
7 o& @/ A9 Y" E& y9 l - ;; calculate a new Major Axis Vector value.! r; ^: H$ _4 Z* P+ n
- ;;
# P0 y% p$ q1 @# N1 Z( s1 I - (defun ell_calc ()- @/ L" A$ [1 N6 |6 D4 ?
- ;; Get major radius from the major axis vector.
8 P: ] C- x% K1 \8 q& q$ d1 z - (setq majaxis (cdr (assoc 11 elist)))
, t9 O3 o3 o* b. S! {" p# C* p - (setq xx (car majaxis))/ ?0 _# o4 c: P5 F3 i
- (setq yy (cadr majaxis))$ ~. [" [/ m. W0 R3 z+ c
- (setq zz (caddr majaxis))
8 u1 ~6 u8 x5 q. p - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
$ {' {, L' c' ?/ t- y. ]6 z - (set_tile "majrad" (ai_rtos majrad))
! {4 ?* V+ u8 ~) z9 u. h8 K! B - (setq old_majrad majrad)
4 e# h1 Z# ^+ w" `" t* ^2 h - ;; Get radius ratio ` ~! w; Z7 n# e- o8 n
- (setq rrat (cdr (assoc 40 elist)))) j$ [5 n+ \( `( g; ]1 L! x6 B- j
- (set_tile "rratio" (rtos rrat))
) o* u Y q1 D - ;; Calculate minor radius( [1 p5 n( v' A1 n
- (setq minrad (* majrad rrat))9 @& X% I( O) a# X( |4 C0 c/ ?
- (set_tile "minrad" (ai_rtos minrad))
+ g' s1 n& d; @: f0 L& q# V) t4 v/ j - ;; display major axis vector
1 ^+ g5 h& t$ g. w - (set_tile "Majraddirx" (rtos xx))
/ F9 }. J* g8 A2 n/ g4 Y) I - (set_tile "Majraddiry" (rtos yy))
: j) P. C3 z' _- G - (set_tile "Majraddirz" (rtos zz))5 |+ h2 A! _, y2 Z) V$ E/ W/ m# c7 I, _
6 @3 ~* m6 u) n' [) ~1 Y- ;; Convert start parm to start angle5 s" J6 f/ B+ q! v6 P3 w( y# t
- (setq stparm (cdr (assoc 41 elist)))
! | y; Y# w I - (setq vecx (cos stparm))
' z5 s7 v( ~2 ^, R% _ - (setq vecy (sin stparm))) [ m: Q$ p/ d# d) ]8 r
- (setq st_ang (atan (* rrat vecy) vecx))
) F" O8 U4 t7 O$ ?) w - (setq tempst_ang (ai_angtos st_ang))
2 q( d6 x% |5 K5 j5 Z; G+ w - (set_tile "st_ang" tempst_ang)
5 v, `8 z, {6 T - ;; Convert end parm to end angle. If end angle evaluates to 0. ?* ^3 k& F- P( j. L( h: M
- ;; degrees then display it as 360 degrees.- D: x! ^2 N( s& _# D4 E/ q3 U
- (setq endparm (cdr (assoc 42 elist)))
9 q" M8 |8 F' |0 I. j3 F - (setq evecx (cos endparm))* Q! u7 l6 |* G: N' C7 T; f* l( O
- (setq evecy (sin endparm))
& Y+ l( {% q; \: {2 ~ - (setq end_eang (atan (* rrat evecy) evecx))5 i: _1 C' ~6 l! [ U: p+ Q
- (setq tempend_eang (ai_angtos end_eang))7 x* G' Q' Z& w8 R
- (if (= tempend_eang "0")
( [9 ?7 H- g- _' y: w - (set_tile "end_eang" "360"): F2 J e( q+ S/ s0 c. f1 x
- (set_tile "end_eang" tempend_eang)
6 s, T: f4 s# i* q - )/ z# x; Y+ p0 b B( G- I/ C
- ;; Get area of the ellipse. W% X( l* T2 j0 |
- (ell_calc_area)
6 k. Y8 h7 k' U% ~5 e5 O8 h) K2 p - )
* b- g ^3 r8 E- d. a/ y" S1 x - ;; Calculate area of ellipse. If it is an arc then7 q5 B/ F) v5 @' A
- ;; grey out area display.
- q7 V; i+ \+ T1 p5 |$ q% T9 V - ;;
; l# E `8 P: c$ l& Q! q, b/ i+ n - (defun ell_calc_area ( / area units)
) j' Y: n! r* y& M3 y+ H - (if (and (= tempst_ang "0") (= tempend_eang "0")): @5 i5 @- d5 E( @- H3 [6 c
- (progn
3 [ ^4 `% E- e, t& W - (setq area (* pi majrad minrad))" t2 H* i* x& s+ Z; r
- (setq units (getvar "LUNITS"))
$ B% k1 S- q2 {. D - (if (or (= units 3) (= units 4))( }0 F, R1 U- y$ `" p
- (progn$ L! H9 n! V4 _1 Y; S3 Y
- (setq area (/ area 144.0))7 n% J3 f0 Q' `6 G% w' h
- (set_tile "Area" (strcat (rtos area 2)" square ft"))% J3 y+ P% L/ B3 e' {& v$ w
- )
8 U N' v: [1 ^; W6 z! R' g - (set_tile "Area" (rtos area))6 g( U; z' A/ _! m9 Y3 q% _
- ), W: q6 Y* _) X7 |
- )
0 Q! t; M7 m3 c4 j& w/ v( A" o - (mode_tile "Area_text" 1)
; j2 T% c& v/ ^) t- f. ^7 s/ j" Z - )
3 \& K( j* O# p: P& @! X/ N - )
. f4 y# _5 V) Z: J2 R - ;;
# M0 p* a, d. z) v, }* k - ;; Calculate new values for ELLIPSE
# k8 n" S. k6 ^3 ~7 r4 y% o% U - ;; Minor Radius, Area
% B+ W- ~" P _3 q# e, @: f) e" D - ;;; K) _9 X0 J g/ n6 r r
- (defun ell_calc_newval (ell_tile)
8 C2 `. X6 c. V7 B - (if (= ell_tile "majrad")$ Z/ ~6 e3 k( |$ e; u d
- (progn/ ?1 g' s/ H) Y" x; r/ }$ ?
- (setq rrat (/ minrad majrad))
2 s& a9 [* ~& s% m- A0 e, `7 N1 U - (set_tile "rratio" (rtos rrat))
# ^7 e3 L+ M. G$ `4 S - (ell_calc_area)1 Q! @8 u; x4 s. u! {
- )
) z$ F5 \6 o+ h6 Z - ); t; N( q5 p! G7 l6 f( R2 }
- (if (= ell_tile "minrad")
6 d+ W0 z% i% b( U1 e' a; P - (progn
- z5 u) K; Q* p* m( R - (setq rrat (/ minrad majrad))
& G# r, F+ b k - (set_tile "rratio" (rtos rrat))
+ ^) A7 [8 U. n N0 J. G - (ell_calc_area)
, ~# r% _. W' A0 I - ), Y5 t$ R4 N( l! O: x; q
- )
$ r; R, W! h# | - )
8 W5 M; {( k l( d n' C/ A - ' e+ B1 r$ a( m; r( @) T& _7 C1 u
- (defun set_dimen_props (/ loop a stl txstyname)
: v! n+ N5 b$ d1 V0 D- w2 q
3 P; r, p. {( G% A- (setq stname (cdr (assoc 3 elist)) ; get style name
( }- W) _4 L9 k' Z - stl (tblnext "DIMSTYLE" T)
0 R9 N; b- j1 N - stlist nil)
3 x/ P0 t3 R5 c$ F8 K - ;; Get all style names and list them in alphabetical order
|* C; p" v1 S) v - (while stl
7 C9 f9 ^4 E! ~2 N1 s6 c: t/ p - (setq sname (cdr (assoc 2 stl)))
3 x9 _; [, H1 b1 X - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)$ @2 |( r" ?4 u
- (setq stlist (cons sname stlist)))% P7 H5 X: v# ^
- (setq stl (tblnext "DIMSTYLE")))
9 `( |0 ^$ E1 G- D9 T( B& S! `. e
' _- W( V( ^- Q7 t. Z- U5 l! T( j- (setq len (length stlist), z% r }* D- N# m' P
- loop 0& m% U' ]* G, u
- dimsty stname1 J/ l7 q) p2 B
- )- ~- G$ n9 N( \/ ~0 f4 p1 ~5 F. a8 \
- ) s& V9 ^0 ^6 F l0 f6 ]: |- f' P
- ;; alphabetize style list, depending on maxsort2 E" N6 b/ q+ b
- (if (>= (getvar "maxsort") len)
/ P4 X2 O! j1 Z8 x - (setq stlist (acad_strlsort stlist))% Y4 ~ ~6 L- ? E- L& i8 e
- (setq stlist (reverse stlist)))
* }" e: J6 E0 `. b: [) @' y
! u! H l9 @! o& ~3 W6 P- ; *UNNAMED style (dimsty = nil at this point) is replaced with; d4 M1 B/ Z. X5 }9 ?4 X' `4 f
- ; the current style. After R13, we require dimensiosn to have a
' Z: g3 f& ~7 I# { P - ; dimstyle, so we plug any holes where we find them.& q& G" ]7 A/ o, D7 ~( n9 s: D
- (if (null dimsty)
' W* K b) a" `# n% ] - (setq dimsty (getvar "dimstyle"))7 ~5 p1 ?5 o0 K
- )
! j: y" x$ n M; d; D* R. ] - ; Show the styles in combo box
; w: {( l( q" B( f0 S - (start_list "mod_style" 2)
' D" @6 \2 g2 Y( b+ A - (while (< loop len)
, n9 O& F$ h N+ m - (add_list (nth loop stlist))
( @5 u! T% I/ o# K - (setq loop (1+ loop))9 Z) B4 [" u5 H
- )
( S$ }% O8 P! ?3 |. M
J, y" `" b" j5 q- (end_list)$ p, z0 X+ F( M a- H8 q6 C, i0 {2 Z
- - w- H! q2 ?2 A4 I6 t6 _1 P
- ; Hilight the style name of the selected entity& n8 M8 p y" c3 h
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))6 }9 j0 u6 B# i. _$ R& R4 w
- (setq loop (1- loop))! m+ e+ y$ ^, e, [
- )+ L; n: U' \( n$ t2 ^% t5 v- ~7 A
- (set_tile "mod_style" (itoa loop))
, |1 y/ W/ d5 D5 e: x+ j
# c& ?! s9 w' v- G- ; The following is the list dimvars. It must be sorted in the same
2 _5 e1 ]/ p9 p& x! \( ^( w8 ~9 N7 ~ - ; order as the resfub returned from DDIM (ADS module).
* V5 P( u: k0 P8 @. } - 0 f0 N- c2 `' ^& S
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
0 q( e; F& Y( W+ k' g* j4 U - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
( s/ j- o! X+ W+ U - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe": m" H5 H3 Y6 z4 z( N
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
& G. L1 a# j. O5 C* D7 l5 y - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
' E, P7 z1 G( a E: }/ L5 u - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
! Q5 v" a2 c7 U& C; D4 j - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
% g! y3 @6 Q: }9 F+ S0 P' Q - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
% A+ i1 W4 R3 W7 y5 N7 s% a/ _. S - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
1 N( i) p" f" ~/ [% _2 j - "dimdec" "dimtdec" "dimaltu" "dimalttd"
, N$ g! s) _5 x- l& o) o - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
* X$ ]/ }3 x2 }4 y - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"+ v! F) r+ \3 s# W7 H- ? ]
- "dimtxsty"
`/ e1 F: Z0 f+ f3 l. R. m - ))
" \8 ^+ M( z9 l5 T" k - (progn, U; r3 N Z+ C
- (setq sv_dvlist (ddimen_getostate dimsty)
& n9 V8 d D' n, ? - txstyname (assoc 340 sv_dvlist)
}! h6 Z( J5 C& i1 o - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
$ {4 Z8 d# H' P4 h+ _ - txstyname sv_dvlist)
$ W; N. B( P! d" {( ^4 n% q - dimlist sv_dvlist
1 E7 i* {. Z8 q6 p* p3 o6 [ - )4 ]! u _$ \& W
- )9 E8 h& v! f0 @6 D7 q
- (if (= dimtype "DDLEADER")
1 V$ Z4 t6 S* [ - (mode_tile "mod_format" 1)
7 d9 ?6 W$ I3 _7 t+ F - ): N4 W0 j6 G1 g% f! q9 ^5 Y0 {
- (action_tile "mod_style" "(setq dimsty (ddimen_style))") U/ _( P- ^* Q6 e7 y9 g
- (action_tile "mod_text" "(done_dialog 4)")
& o" j q) J/ O$ a5 V - (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
C7 ^) K& `3 r4 m+ N7 ^ - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
( \ @0 c# U3 w* n2 d1 a: w - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")* q: C T; a" Q( Z$ m5 b9 I6 ~
- (action_tile "accept" "(done_dialog 1)")! z1 I- m1 r4 q
- )2 S, M; @0 q; R; `9 z
- ;;
$ p/ ?8 l9 d1 G2 a" b' F - ;; Get dimvars that have been restored.
1 T+ B) L5 F/ R& E9 {4 }( g& o4 r \ - ;;
% q3 s/ n1 ]/ b: [5 o. D( F - (defun ddimen_getvars (/ elm dvlist dv i)6 E" \0 U% ^7 h6 }# ^4 V/ v; Y* p5 J
- (setq i 3 ^9 a6 I$ S0 ~: K2 f
- dvlist (list (cons 0 "DIMSTYLE")
- y7 ]3 g5 W+ N! h2 C - (cons 2 (getvar "dimstyle")) (cons 70 0))( }: ~* [9 H- v' K' Y
- )& L9 W4 C) j& n5 y2 T9 l3 A4 B
- (while (setq dv (nth i dimtbl))& m, z5 Z. F& h! K8 F- n
- (setq elm (getvar dv)5 _+ g1 X* V: ]# E7 B1 Y5 b* d; R
- dvlist (append dvlist (list (cons dv elm)))
0 I. a" g7 [. o0 c1 n8 L: B5 u) V - i (1+ i)
8 U& a* T" w0 G7 G$ O, p/ J; y" c - )
6 ^9 m; i5 B" B2 x7 x5 w6 ?2 G6 w# S - ): ^1 f) Y9 V! u7 o$ f* p9 V
- dvlist' L3 S" a* S6 l) a% Y
- )' C3 }4 w# ^4 N" ~; v5 r
1 n0 N8 L9 x) {3 k. R( n$ v6 }+ n- x- ;;
2 G6 r' z* ]2 D5 B/ ] - ;; Get the original states of dimvars. This is for DIMENSION entities.' H7 q" J9 c! u8 C) x1 i. R
- ;;
6 y: B& d6 K& _4 X* ]+ I - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)6 x. q6 y) s% u8 b0 T; z
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
0 s! W4 x. a" `3 O - dvvars (ddimen_getvars) ; Get dimvars for that entity: O6 v$ _5 J8 r: z" ~0 B
- i 1
3 V2 D; h5 o( H% D' T - )! O1 _; q+ K- q$ w% b
+ ^( W8 a, y: |3 u5 m" U& @! ?3 r- ; Create a list that contains values of the selected entity.
, O8 p1 S e2 {' ^" a! f - * H6 P% A& H& ^4 P( K( w
- (while (setq elm (nth i dvlist))
6 u3 B4 U: Z% ], Q) l - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
3 y$ T8 q' D* L4 D1 R - i (1+ i)
, ]% N0 @7 ~+ R# I' k) d) u4 p - )
, j( s- h2 m4 m' E - )7 a- e3 Q2 D( m! ?
- dvlist
2 a9 z0 l% J7 y" O, E, v9 D - )5 E0 s* n1 K! e( ~- C
5 U/ X0 X. g- l7 i4 Z( `! s- ;;! u/ K3 V4 v N) x" C( g5 h# K
- ;; Restores dimvars of the selected enity.0 [. e' c/ G* S9 z7 _. H
- ;;
: ^- l3 Z# I p - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)1 H- f, H) j6 B$ C' o
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
9 g) r* f- ]. b2 m7 h4 y5 e3 X - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
! h: q% G) @# M) ?! R1 B - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
h0 Q* U0 h" D( O' ] - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
* n. W0 Q+ e- M- n( Q - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp") ^' \: s6 ]) O+ m4 Z1 O
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih". A& R7 v$ y0 F) I. z
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"2 p% N# _7 A6 }( E2 r) K6 q
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"( S8 J8 N" `5 Y( m2 K4 e
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
4 P q4 o# D. M% E$ @- S - "dimdec" "dimtdec" "dimaltu" "dimalttd"' b3 \: v4 R7 o G5 Q
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"$ o4 L3 C* @6 y
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"$ [! m& N; G2 p, X. C* H" {( C
- "dimtxsty"
- P; C7 ?0 J8 e* r, P; R4 C' w+ Y - ))4 M7 `- o$ V4 P7 u& n# o% Z) G' c
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
2 T( ~, v1 n u9 n$ j( C/ P# w - (progn
( k2 j$ a5 @& }" c - (setq en (cdr (assoc -1 elist))); L- ]& u3 t2 g1 k1 o
- (command "_.dimstyle" "" "" en)- `5 [1 L6 i3 r. m! R; g
- )8 @+ a& c/ q6 l
- dimsvcurset
5 D) Z$ h2 g1 ]+ [* B1 e. Q - )
; E. d3 T& R2 c3 C* t - ;;0 M! J4 ^: o* l$ Q6 i' ?
- ;; Modify Leader
- r& |7 b" J! S$ n- N - ;;
9 X2 U/ o/ O& S* `# z( A - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl# ]9 D' P" s X& B
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
; s5 O) V$ _; h1 ^, b q) b - dimtype dimsvcurset)5 \! g1 ]( k# J/ w6 L% w" m1 W
- (setq dimtype "DDLEADER"
& _* J' h; ~- @: f8 Q, x/ w - dimsvcurset (ddimen_dimsty_restore)
/ J( H- f4 r) Z' K" w# |" m! N - )# }+ s* G: d/ A
- (if (not (new_dialog "ddleader" dcl_id)) (exit))
, R) N# g7 Z5 N5 x1 i3 A - ;; Set initial tile values" ^( d: m4 z; @
- (set_tile_props)* K3 ~9 w1 E: q, h w: s" J C" O
- (set_dimen_props)
- `1 U5 `# A5 J3 q T D4 E) k - (set_tile_handle)
: E9 L0 x' Q% ~% `/ | - ;; Define action for tiles
# V9 n; m) m: Z- `3 h; b& b& r+ a - (set_action_tiles)
9 n Z1 Z8 j& |- o' ^6 `6 T - (mode_tile "mod_text" 1)+ N6 E. L6 \4 ~: u3 g* Z6 h
- : J7 V, O- u7 R w) g- }
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
/ ^ T, D7 W6 ^6 A) Q1 n* y# o1 o& N8 g - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")- T0 c- M/ c( s0 `# `1 V1 A7 x
- ;; Get ARROW and TYPE.
7 r `" _5 b: U- T9 J- F - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))1 n' m6 Z$ c- N; V
- (if (= 1 (logand (cdr (assoc '72 elist))))
" d8 {& Y$ E0 ]' K - (set_tile "s-s" "spline")/ i- L' a0 q% r( @1 a2 n1 |+ I
- (set_tile "s-s" "straight")
4 O/ u# g/ j( A" N' f% D - )5 H W- {9 \* A- [8 r
- ;; Start the dialogue.
2 Z4 a# o0 W1 m - (setq dialog-state (start_dialog))4 Z/ {: `* G( y! s0 h+ u
- (if (= dialog-state 1)* r- X6 [) F* F3 `' s
- (progn" H: j$ Q$ h0 B5 T1 j
- ;; update the style5 D- ^7 l k! ]% Q- S- W
- (if (/= dimsty stname), L6 n% |9 b. ?( M8 u) e
- (progn
( C/ K8 { S% n2 y - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
/ g) h) \8 U" A+ g$ E7 A0 Y, U - ; doesn't have it.
2 {4 }* O+ E ^ L - (if (null (assoc 3 elist))& L# v# }* M2 N8 ^
- (setq elist (append elist (list (cons 3 dimsty))))
4 [" p s4 _4 P# t& @* W - ; else just replace it. S9 |+ n: {' ]2 s4 s" C3 i
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
" h# _& [9 A: S* J - )6 t3 b6 {0 ?/ ~) V) y5 V- i1 R! P
- ; refresh sv_dvlist with new dimstyle.2 Z& f: e. R+ R
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
/ X# T. \% t; G. n. h, [ - )- n4 p6 q2 Q1 d: |$ v
- ): ^ y! P' n- |, I2 c7 }0 d8 C. f
- (if (not (null dimlist)) ; attempted to change dimvars
1 Y0 S& A* w& F" G; A+ b: t - (ddimen_complist sv_dvlist dimlist dimtbl)
) }; G' D& a ]: y5 F - )4 j0 S, L) {1 _6 [+ Y
- ;; update for ARROW.
) u9 j* z2 l" o0 ~ - (if (= "1" arrow)
9 j- ^. d9 v- K# c - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))( U* K8 e' s- l3 u
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
& P- c! h8 H. ]+ r - )+ i" _; b) F2 a/ e6 R1 A
- ;; update the TYPE." v+ n+ }9 o" M: I- x
- (if (= "spline" leadtype)
5 W p, g0 D4 M - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))% @; @- K, k! ]0 M; I( e
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist)) q9 P6 b4 d$ E+ X- x
- ) W& I* d4 B# C, F
- (modify_prop_geom)" k0 N( q, w$ y- Q9 r4 V
- ;; update the Color0 ]6 V' W" u( V5 W
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))' q3 H5 u4 Q: M2 M/ \8 s- a9 z
- (entmod elist)* A. Y1 c3 V( `* t7 R
- )7 w) ]' {9 O" [6 ]
- )
: N; G* c c) m9 i) x - (ddimen_setvars dimsvcurset) ; Prepare to exit' R2 q8 H" l( i) G1 s- \! x
- )6 S4 _) \ i. b/ U. P8 z3 G, o
- ' H9 ]4 K2 j/ A! H) h
- ;;
b$ H4 k- _9 ^& g - ;; Get dimvars of a dimstyle with overrides.
, p1 L9 E& _! j( D - ;;
. n0 n) g" d& O - q5 g: N$ P- p, j- O. b
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
" U7 ^5 H) j G! v$ f. X: n
! B; Z- @+ H: O& G6 I W- ;; Get override information for the specified entity., n2 Z9 g- }1 W, z% ^( Y
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we: G; o% W+ i( ^ j2 H/ z9 z& z
- ;; must obtain override information through this tedious operation.! T" v2 q4 w$ C& K
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
5 e/ L( n0 e+ i - dvlist (tblsearch "dimstyle" dimsty)
% p. d, S3 |! `, t1 B' e - i 2
/ P: O8 U( ~, Y( h" _8 j - )* w$ Z8 Q, `: X
7 h; g4 Q: J- l& f9 m$ U! N2 J5 @# f- ; Update the list with overrides if overrides exist.! t, y' k7 Y6 p; E! {
- ; v' L# d; q: e8 e% }$ q- o
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
- z- m3 s) e7 n1 v - (progn
0 u& N) V/ o8 e+ }& U, } - (while (setq elm (cdr (nth i dimovr)))8 w9 E8 v( D8 D0 x& p: x3 O
- (progn5 V/ j8 o2 w6 s4 B T7 R
- (if (or (= elm "{") (= elm "}"))
) i! u; H$ h$ h - (setq i (1+ i))/ J8 n9 x1 c8 T1 c. \2 |6 J! [0 {5 U
- (progn
$ ]( H( P3 @ N8 E6 ], s# r - (if (or (and (< 180 elm)
y' S/ v9 t1 L( u* H! ]8 z7 n" u& c - (< elm 190)
# L+ e3 [) V9 e" k5 Z. _% O4 z( F - )
7 m* e9 h& _. _' ^2 U9 v- \4 I+ G - (and (< 80 elm)
9 T0 z" ^9 N; ^) h. d1 F" h - (< elm 90)
, w6 U/ l! @$ v/ D0 _7 q9 A - )
5 o- Y( U5 D; k* V5 z' x N - )# y! F6 G0 S& ?* V# e: l( D! E
- (setq elm (- elm 10))3 e u5 L# r/ e1 r
- )
+ l/ N# k' W; O/ v: m3 G - (setq i (1+ i)
) M1 X8 p5 T$ T$ Z0 a9 P+ z - elm (cons elm (cdr (nth i dimovr)))
7 `" j( `7 a* x( X - dvlist (subst elm (assoc (car elm) dvlist) dvlist)0 V( @' Q& T: M5 K- E: [
- i (1+ i)/ z! w, d, `8 w$ k4 P0 T, ^8 i
- )0 I2 v5 t! g. g& @ b* P A
- )
0 j- M3 Z$ D, X - )% F2 j* m7 T7 I" V$ f% d; l
- )5 E9 N N2 x! V; N1 s D
- )
6 D' n2 n- J$ X4 n - )4 H) z& h" {6 P# b7 ?, m% |/ x
- )/ P: [5 v% E7 W: r
- dvlist
9 ~/ R9 o' {0 o# {+ c8 m5 s - )
( y. Y: y4 S- p. u( W$ z G9 x
$ R6 a# @9 z+ r- F4 g" g- ;;$ e( [% b/ N7 v, Z5 U& A' c1 I
- ;; Modify POINT
. _1 v* ~; U8 G+ o4 i - ;;
# }7 p% M' A3 _, D+ r- K - (defun modify_point ()
( ~& E( K/ ^( r$ l; a: J - (modify_properties)
Z5 p9 j2 H1 Q4 L- a! u - (setq pt1 (list x1 y1 z1))
* E \# r8 a! ~( ]$ @; O, x - (tempmod pt1 10 0)
; @) F M1 M, @- y; c - (entmod elist)& n) @; P" B* c7 O- @8 C! q# R7 l
- )
7 i; r) I+ S( b. e' }9 D. Q - 4 Z: }: u) |8 x) m/ r- e. A
- (defun ddpoint ()
5 ~" x3 @$ D) l) J2 k8 P - (if (not (new_dialog "ddpoint" dcl_id)) (exit))
! p+ A* _" J3 `5 R' h; [/ L - ;; Set initial tile values
* e, W( }0 l" s. t3 @% f - (set_tile_props)1 ?: x- d. F' A' Q
- (set_tile_handle)* Q$ D3 s* i8 e
- (set_tile_pt1 0)
! Q* c; @1 k6 T( }$ J" ]; D - ;; Define action for tiles
4 N" y7 M% D5 \, R$ V+ t( F - (set_action_tiles)
( u1 O. J& h- C7 b - (setq dialog-state (start_dialog))! M" F* u& m, h( X0 W
- (if (= dialog-state 0)
6 s1 _ t7 k( w- j( i# K - (reset)
5 c( b, f2 }6 C J s2 W' n - )3 Y" v( y, q7 j
- (if (= dialog-state 3)! ]6 K' S5 V2 K" G1 V! S1 \# C
- (progn5 M* z+ {9 n2 c/ C
- (modify_point)2 Q; [, i3 Y* J+ f- k
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
; }0 y4 [/ w6 |) k: ]7 `5 n8 G+ g - (ver_pt1 0)
! x) ^- u/ r$ W8 {% r) @' H* ^2 n3 u - (ddpoint)
; z3 \, o: {. Z! q( [ - )- u6 |* G' L% K% o: q% Z
- )
& a" V. m7 M( I. J$ \% n2 q) Q - (if (= dialog-state 1)
* r9 `, }% m8 A - (modify_point)6 W u7 X* J: q ]- m, Z+ G
- )# L" z8 N L. _: Z! k
- )9 k" p2 V& W4 W$ I+ ]
- ;;; r9 ^/ w- f- w4 G$ ?0 A& k) G
- ;; Modify LINE7 f; h" V- ]$ Y) E3 v
- ;;- Q! G* t6 u: @( h+ }4 S1 @
- (defun modify_line ()
- w3 b9 S* E6 Z4 m - (modify_properties)
3 b3 t% \( F/ x" U - (setq pt1 (list x1 y1 z1))) t+ U1 W1 I1 F& M7 h3 y Q' [
- (setq pt2 (list x2 y2 z2))$ ^6 c! f: _, e& ~* v; N' Z
- (tempmod pt1 10 0)
3 b" \! c; R4 Z9 Q; q( u - (tempmod pt2 11 0)
$ ?8 W" ^0 @& q- |! _$ v - (entmod elist)' ~3 ~$ Q9 O5 U/ n5 R* P
- )
0 t% P4 W1 r$ V& y5 z - (defun ddline ()
" @6 _7 v# `( p - (if (not (new_dialog "ddline" dcl_id)) (exit))
) X# \8 P- S& ]. M8 Z - ;; Set initial tile values
2 l9 y6 w! _+ K8 V0 Z0 b - (set_tile_props)
* g* H- @. k E4 D2 U$ z, O - (set_tile_handle)* h8 Z. g. ^" z+ Y: b
- (set_tile_pt1 0). m9 |, F$ t2 v! B% ]
- (set_tile_pt2 0)- S6 T) i7 {( X% ]
- (line_calc)7 O7 m5 j/ @* \3 b% r
- ;; Define action for tiles
1 ^; Z$ i7 N; D/ G: I# s! b! t* U - (set_action_tiles)& ?& C5 `- u! L1 ~: e
- (setq dialog-state (start_dialog))
- D0 [0 z3 y6 T9 n" T; G - (if (= dialog-state 0)9 `& B) A: [1 O- ~" d
- (reset)
" u% F$ N+ }9 s! `$ G( H - )
+ b) S4 | S: s - (if (= dialog-state 3)
( G4 y+ ?' T$ R% M$ f0 h - (progn" T' W5 e. W$ J5 s3 ^! F. M
- (modify_line)
! U' M5 x* K" t& F8 D! ^& x: x - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
7 y( w# D6 M. T - (ver_pt1 0)8 u' `! t; w1 T3 ^
- (ddline)- p# Y: u! z9 y2 `8 j
- )
0 ?$ c S; l) _, j* S) T - )
* A5 T' F M V+ h5 }' w1 A m7 H. T3 p - (if (= dialog-state 4)2 x+ s, l+ Z( e$ J7 K; }
- (progn
Z: f" A% E7 N; z6 r' s/ O; N$ U - (modify_line)( I. C& C* g$ ^: b( S2 m1 D
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
2 M( _& J. o1 d- a$ J# z: z2 p - (ver_pt2 0)
6 W3 i x0 o/ g0 I+ v4 Z V4 K; A - (ddline)* _1 ]2 I" `- X% Y
- )% ~9 s7 i% [- N R1 Q
- )
3 _" m$ N& ]0 W9 \ J+ x2 ~8 u - (if (= dialog-state 1)
/ G% @( |0 m1 g: ]6 u$ a0 S - (modify_line)
$ `: Z- O& o' b5 u - )
; q7 d8 l7 v) R! D) S' h - )
% B8 ~0 E! l7 @2 a' D - ;;* ~/ J( X- e( K. s
- ;; Modify MLine
# ]* R0 t- A$ ^9 U3 W+ q' D - ;;. E% E2 ~/ ]& m
- (defun modify_mline ()
, ], h8 J' L; T' G - (modify_properties)' _, [6 J. x4 } A$ E9 L& S4 d3 Q
- (entmod elist). U/ `6 ~( Z/ k* c$ C# X/ y
- )1 r7 n }8 C- Q& f0 F0 p
- (defun ddmline ()1 A6 u: p" f1 ^2 g' H
- (if (not (new_dialog "ddmline" dcl_id)) (exit))- g) ?% F( X4 D; _0 b& x+ B
- ;; Set initial tile values ]' B6 z& u1 z# T0 R
- (set_tile_props)- w$ e1 Y9 C8 W. x/ z. |8 {% x9 S
- (set_tile_handle), Y, ~7 k+ T0 H' q) ~ c
- ;; Set mline style text field.
3 m& H. E0 V+ e, {2 U; A6 }# ` - (set_tile "ml_style" (cdr (assoc '2 elist)))
t* A, N8 S% F: j3 v - l1 w+ j( G4 m2 o' Q- e8 a
- ;; Define action for tiles+ x2 N5 |$ h* c( i5 \% _9 M0 ^4 S7 y
- (set_action_tiles)$ s+ p) b6 y. k
- (action_tile "ml_edit" "(done_dialog 3)")+ S7 N; i5 G* |* h' b
- (setq dialog-state (start_dialog))) J q d0 x1 m
- ;; Dialog cancelled, reset to original values.
1 G0 k% [7 B: M: V& L4 b8 b c% \ - (if (= dialog-state 0)
' N. ]- Y+ O7 |" R E- `' E - (reset)
4 C( b. O9 Q- a& f, h. W2 T - ); Z* a- z2 z& o) ^# `# Y$ R
- ;; Dialog OKed, update the mline./ p" U- S1 \! S) F8 |- V2 o1 J+ p1 g
- (if (= dialog-state 1) U0 s. @0 y( r
- (modify_mline)
y* @+ N7 [6 c$ ~$ J - )
' _6 u5 I, x9 h/ ]. i4 q0 J - ;; Edit Mline, call MLEDIT.7 V5 u0 @" g4 v* s" e8 |
- (if (= dialog-state 3)4 }4 |' m3 ^$ Z- E: ^
- (progn+ [5 P4 } _! y8 t' J
- (modify_mline)
4 S; D+ e/ i2 E; c, X4 W# j - (command "_mledit")
4 m! s) I" E! h1 w8 j+ z1 } - (ddmline)
& q2 ~" D- T" { - )9 N, k1 i' P8 y7 [
- )
7 `3 J, T6 H4 I; L - )# [2 k9 |% |4 o; x4 ]
- ;;
; f+ J% }# ^# t3 P# D - ;; Modify Xline
; U; c% [- }' M: X9 `* t/ y9 @2 A - ;;* K/ ]& a9 ?5 k( K+ L, V
- (defun modify_xline (flag)# \/ g: v& ], z
- (modify_prop_geom)
' y6 j) H8 b5 {# l) F - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1)) n! y) e" d1 Y9 }1 G
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
; `% _8 D3 ~4 u9 i/ b8 }( v$ ] - ;; Update the Root point./ Y H- Y- w/ ]
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))$ K8 t* {4 k7 X; }( t
- (assoc 10 elist): K7 s, e- w4 p! ?* H6 p
- elist: B; O6 O8 k2 ^; w
- )
# v5 w; h+ `$ z# V - )
! \! X, X4 ]+ Z; O) ]/ k$ f# [ - ;;
- r/ ]. _ {/ ] - ;; Calculate new Direction Vector WCS
2 |+ v8 h4 _8 q# k4 } - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
( a7 ]6 V3 l. Z) K J/ K
% G! c D3 K" T- (setq temp_dir (trans xline_pt2 1 0))
3 h1 N5 u4 G( y# K3 W - (setq temp_dir_x (car temp_dir))1 R7 |$ I, \$ N& {: p, O( ~2 ]! E
- (setq temp_dir_y (cadr temp_dir))8 D; E, m7 f( u: u
- (setq temp_dir_z (caddr temp_dir))
+ T" l7 Q' Y& P( a, f9 b6 T - 1 D5 ^3 R0 t5 X
- (setq temp_xline_pt1 (trans xline_pt1 1 0))! u4 @3 y: Z0 ~% o- t3 c' u
- (setq temp_xline_x1 (car temp_xline_pt1))+ }6 n# S6 H0 J1 z
- (setq temp_xline_y1 (cadr temp_xline_pt1))
_# \4 E1 w( [& g9 } - (setq temp_xline_z1 (caddr temp_xline_pt1))1 n' _0 O6 C4 ? f3 z7 G+ A; P
- 1 k- u4 `/ j* f8 _ U# C
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)( ?+ r8 i5 N( k9 ]. }% ^3 G
- (expt (- temp_dir_y temp_xline_y1) 2)- U+ |; t4 @4 i. v9 w
- (expt (- temp_dir_z temp_xline_z1) 2)4 v" {7 y. x. ]0 j# e, ~/ j
- )))
2 |* r. a7 {) w) l/ E- W - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
' A) t/ w, j2 ~( u, L - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
. R5 [& D, A. W5 c% E - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
8 }, ~, d7 [9 k! J+ }) a - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
, T* B' w9 ?2 j# b. K( N - (assoc 11 elist)
9 Q4 A/ a8 r4 G - elist1 N. H& ?( @" ^3 j7 A! i
- ) b2 R8 b# c' Q: }* u" r
- )
) p3 B7 \9 ?# F. G$ T - (if (= 1 flag)
2 v0 I6 J" i( t - (entmod elist)
+ P! |' M8 K# c- s0 g8 g - )
* j- c) F1 v: L8 @7 [8 f - )
2 S! P$ A' t' g! U- n
" G% q- l4 E7 }3 l( r6 @8 I9 D- (defun ddxline ()* P4 e( \5 N9 n+ v2 f; H
- (if (= etype "XLINE")
6 r) C# [0 b9 q. D6 Z! I9 z" e - (if (not (new_dialog "ddxline" dcl_id)) (exit))! k; m' c3 p9 c5 L9 q: I% a& K
- (if (not (new_dialog "ddray" dcl_id)) (exit))
$ E; G" i( k; E' [/ f9 q - )$ ?' b# S) S" Q1 }7 _% E
- ;; Set initial tile values$ |9 }) }7 L9 Y$ z# S
- (set_tile_props)
& F/ b9 y3 i( ~& B - (set_tile_handle)$ n' ?0 d+ }" L) T* q
- (set_tile_xline_pt1)5 S; m9 g# M/ a
- ;; Convert to UCS and post Direction vector.
( C# w5 L C$ d - (set_tile_dirv)* g/ x0 i+ Y6 a# E+ v; z
- ;; Calculate second point by adding Root Point + Direction Vector.! Z, C# w5 h0 D1 E7 P
- (set_tile_xline_pt2) ^8 y) a' b" B: @" G) D
- ;; Define action for tiles! `4 W8 R/ _0 a2 i/ ~5 P; D
- (set_action_tiles)2 e/ y, L& f; i, C1 i. o% \! \
- (setq dialog-state (start_dialog))
: Q& I/ j' i7 K" Y - (if (= dialog-state 0)% a. L# R4 m9 C; m. u0 D
- (reset)4 J( k8 P' M) G9 T. ?' u
- )" S0 X' Y1 o2 m2 w
- (if (= dialog-state 3)7 v5 S- X i S
- (progn+ I. Y% Y$ {6 N) W. |' T. P
- (modify_xline 1)
9 D+ E5 B# g7 Z' A* w - (while (equal xline_pt2
! |. l& W: a1 G6 T- { - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)0 X b. s* K. p* p
- (princ "The Root point cannot equal the Second point.")5 J- V4 F/ j# y
- )3 y ~7 X+ u/ y2 S
- (ver_xline_pt1)
7 f2 S. u, E' D7 C. r4 i; B; g - (ver_xline_pt2)! P( U" d6 i0 p+ |1 ~* G% d/ o
- (princ)& l! l/ |$ c. G$ c7 U# L0 i
- (ddxline)1 [; A; w1 k8 F" ~6 ?, W
- ). H) t3 T% o- O
- ). Y3 n5 [' O2 ~: T$ M' p+ k- Q
- (if (= dialog-state 4)+ L1 J! W |# O5 k& I. I
- (progn5 z- F; P/ K" w# v" ]
- (modify_xline 1)
& ?) Q5 H$ c3 |; e% U - (while (equal xline_pt1
; ]/ N9 [" Y+ m; b - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
; {* a+ l& C2 f( l# _ - (princ "The Second point cannot equal the Root point.")
1 s" [) K' M3 j2 C3 g R2 t - ), l8 s1 t* N" X2 G+ w# C% q
- (ver_xline_pt2)
9 G: n+ y4 H6 ?1 v A$ F9 ]7 U - (princ)2 G k( d8 z. w2 r" f2 `4 z0 V
- (ddxline)
0 c. j( i# ?: V - )
4 ^' X, B) L; \ c5 M# A7 \! B - )
* a6 k% W2 ?* _ n7 y5 ~ - (if (= dialog-state 1)8 o" T8 S4 D9 @$ q1 j, `% i
- (modify_xline 1)3 {) b% w8 u7 E y, R
- )" z4 Z5 j7 G, v* T
- )8 y' v( C+ X" j2 @6 M+ }+ U4 W
- ;;/ _" s$ _! V$ X& Q4 x1 b& E
- ;; Modify ELLIPSE
4 Z8 q% {% w- c - ;;
% t1 e0 T9 N6 d2 a - (defun modify_ellipse ()6 _! a, A& Y# S: ?+ q# \- A# @+ \
- (modify_prop_geom)2 Z& u8 m3 \- P. Q& ~& g. x6 P. l
- ;; Update Ellipse Center Point value.
; D2 M; l& k1 R8 u - (setq pt1 (list x1 y1 z1))
' k& z( {/ [7 Q' y0 t8 o$ N9 u - (tempmod pt1 10 1)
# Q( {, E( S1 d+ h" @% u - ;; Update Start Parameter value.6 g! N" t1 `, F; Y9 d
- (setq y_val (sin st_ang))
( q" m$ m; r7 f" ^) f% g - (setq x_val (* rrat (cos st_ang)))
" l$ U3 v2 ^: R - (setq stparm (atan y_val x_val))) M6 b2 S7 S' g
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))1 B0 \' v, \: [% L8 L; f# k
- ;; Update End Parameter value. Normalize it, if it's less than
' a9 Y5 I& X; s3 z5 O4 O7 } - ;; the start parameter.2 |6 V7 {% E4 h: M* ~4 g
- (setq y_eval (sin end_eang))
3 ?" F; a9 ~5 J- @5 A0 |. p - (setq x_eval (* rrat (cos end_eang)))( _ N0 ~1 V F4 e7 M1 B
- (setq endparm (atan y_eval x_eval))2 a* [. ~, i& q P& {7 H
- (setq diffparm (- endparm stparm)), f/ ?( u5 D& h! G4 Q6 R+ j5 G l
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.$ E7 Z) S1 ~% |: B$ A |0 z
- ;; Since zero length arcs are not allowed - construct the full0 Q- p( j0 z( \
- ;; ellipse in this case.6 A3 k: w2 J8 N) r
- (if (<= (* diffparm diffparm) 1.0e-12)# d' S0 X$ Q8 ]0 x: [0 y" B1 d
- (setq endparm (+ stparm (* 2 pi)))/ G( {6 w8 o$ t" W$ l5 f6 p
- )& {3 r1 m0 U. x M/ W
- (if (<= endparm stparm)
& ~% N$ c% C) o) N! s4 Q* k - (setq endparm (+ endparm (* 2 pi)))9 U1 \2 s! B7 ~; Y# y
- )( o' Z1 J) I" V/ {- G
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))6 E s5 v7 Y8 V( k- s
- ;; Calculate the Major Axis Vector by first calculating' l0 Y) S9 e" ^; ~2 B2 Q' x: @& [
- ;; a unit vector using the old Major Radius value. Then) ^3 B+ A7 u( {) x" [8 s
- ;; Multiplying that by the (possibly) new Major Radius
3 x7 V1 Q0 N* F3 _5 x% k - ;; value to get the new Major Axis Vector value.$ a) _* F* U) `) n7 h
- (setq unitxx (/ xx old_majrad))
) S3 A# |1 O. F) p# [ - (setq unityy (/ yy old_majrad))
0 Z; [5 z' `$ d G& z; [3 u - (setq unitzz (/ zz old_majrad))( b) e' M( x" Y
- (setq newvecxx (* unitxx majrad))
M3 W; i' Y5 ?2 [ J - (setq newvecyy (* unityy majrad))
. i+ L3 L& y5 A$ v0 o. z - (setq newveczz (* unitzz majrad)); j) R/ C/ [* u% w
- (setq newmajaxis (list newvecxx newvecyy newveczz))
: a; G; N* S# Y* E) @* p5 @ - ;; Update Major Axis Vector value+ J! d- D5 z2 C/ W; e
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
! x7 k! ], |' p- O' P1 G0 g - ;; Update Radius Ratio value" x# }. C1 g9 j( F. \
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))* ]+ G% |2 U4 }5 a% V$ q' \+ o6 x
- (entmod elist)) v9 f* N( G; T
- )$ m" m- l8 n: q7 @0 j
- : d; i! `5 U# _
- (defun ddellipse ()
9 j9 G, X0 c4 u7 F' h/ U - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
! o- @0 I" q7 r+ p- w% N( F - ;; Set initial tile values
4 g' |4 [& g! \6 l1 D - (set_tile_props)0 A- ?+ D0 t4 s: g4 D7 b/ o! D3 f
- (set_tile_handle)6 q- e! s0 y6 N9 @' G- }) |( L
- (set_tile_pt1 1)- f% A% D* t9 j3 V+ m8 h
- (ell_calc)
; \/ ]1 }" w# i - ;; Define action for tiles7 f. A+ g0 r5 A* m2 M1 U+ M' x5 Q
- (set_action_tiles)$ q7 p' [' g/ m7 {( c
- (setq dialog-state (start_dialog))
( y$ E$ {2 u7 `. @0 }; f0 ~, w - (if (= dialog-state 0)
: B9 ~ j$ o# d" C# `5 m - (reset)1 Q$ G7 G$ W0 R
- )
; q4 B" c1 Q4 T3 w) Q - (if (= dialog-state 1)" z( M. | w' C. y; E3 d1 K, F6 Y
- (modify_ellipse)
( Q: \. W7 w" j0 I1 I$ W' N: a; z - )
6 _: q6 h2 Z$ Z+ O3 ]. I- T) e - (if (= dialog-state 3)1 x0 A; `0 H5 P5 M
- (progn6 e- F, U! \ Z& H m/ K) A
- (modify_ellipse)
* m0 o5 v8 K4 l$ k, S - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))3 l1 O1 t' i7 U7 i5 k
- (ver_pt1 1)
6 w0 ?; F" x. j* r - (ddellipse)
1 D( W4 I( _5 P9 L. P - )
& T" I/ n* Q, c - )) }0 g% r6 T) }9 }
- )# s$ f( S, q- n; c! x
- ;;
" m9 v/ _# B" k1 U2 Y& w& c* J - ;; Modify REGION
' {7 ?1 |1 @: _* }7 F# m - ;;" D, d" w1 b- ?- h5 a& S
- (defun modify_region (); D3 n% U5 f0 ?0 [" a
- (modify_prop_geom)
. h4 o) V' M# K* @# Z2 n6 F - (entmod elist)$ V' e! M o" P1 R4 S, \4 Z
- ): v. `' n! O1 i5 n* d+ K
- * ]! W1 F# k, ~4 @
- (defun ddregion ()
; _( X X, u) L. i! s - (if (not (new_dialog "ddregion" dcl_id)) (exit)) _1 }* j6 |5 d- K
- ;; Set initial tile values+ g/ f7 P% J1 N \2 M7 {
- (set_tile_props)
& \% l8 c% C0 s) X2 u - (set_tile_handle)
' R, c# Q4 `* n4 O: b - ;; Define action for tiles
" Z4 ~( ?' g3 N. i: Y3 b - (set_action_tiles)& U# g* ?4 k' @, `# l
- (setq dialog-state (start_dialog))2 `+ I* j8 v. o; x( ~ I
- (if (= dialog-state 0)
+ H6 S# r2 g4 m; z6 p" C - (reset)
1 B- g% U- j: z7 F - )
; _5 W- }1 t: \, a: @5 @' j$ L( W2 ] - (if (= dialog-state 1)
8 E$ P' \$ D- E/ _ - (modify_region)
5 I) E: X/ ~. a7 [. |) {0 y - )- e- p/ {5 l) b, F3 x. G# ^
- )
% { j$ }3 d1 V9 j - ;;2 P6 y- p8 z- `& R# h0 {9 x
- ;; Modify 3DSOLID
+ F% i9 U% }! Z7 j - ;;5 G8 |, ~' g' o9 M2 S0 F& H
- (defun modify_3dsolid ()* \- S1 M+ X; k
- (modify_prop_geom)* @4 R; e+ T5 m$ ?0 f% N, \
- (entmod elist)0 b" f" f; O; i4 G. s" o. y- @( Q
- )$ j7 s \+ U e* C
- ' f2 g* i5 @; }8 d+ j& [
- (defun dd3dsolid ()& C: m) s$ t+ a# `
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))7 N+ Q7 N* q5 i$ [
- ;; Set initial tile values
/ p8 h/ m* G; s/ M7 C+ M/ i - (set_tile_props)
$ E; B' m; s8 b5 w - (set_tile_handle)
8 Q# u8 W, x& a8 S+ l3 r6 A - ;; Define action for tiles
, t5 c1 s# \0 C3 N, r - (set_action_tiles)
; S' L3 B" s# k v- j# T - (setq dialog-state (start_dialog)) B8 {0 F% X, k) S( ~* o0 ]
- (if (= dialog-state 0)
2 D4 w! t5 r& H8 h - (reset)* E1 |" Q: F* O* h8 f+ {6 Y
- )& ]# _$ w0 ~; {+ {' u0 _- l
- (if (= dialog-state 1)% B5 Z1 I4 y6 h( M5 Q
- (modify_3dsolid)
, ^4 B/ { w' m2 B - )7 V& o) q1 |4 Q. Y& E- \; j7 W
- )$ b; X3 u: C0 s4 q; [6 k
- ;;
0 e n$ n- T2 B - ;; Modify AcDbHatch0 A4 `, c" u8 |9 g0 T* v- p8 I
- ;;. _) a/ ]3 [9 k2 ?
- (defun modify_hatch ()
0 U0 ~) B6 O% Y( O! r" r' R - (modify_prop_geom)
& b, F( Y( q+ x8 u- L4 A% Y - (entmod elist). K/ x) m8 o% O! [( X% k
- )* ]2 \( I8 j& [0 X1 y, l
- D/ w7 k0 }* Z$ b5 H- l3 O& D* |
- (defun ddnewhatch (); G) N; @$ k" h1 @& U5 E7 m$ t
- (if (equal hatch-elist nil)4 y8 P' J& F* s% U* C. L
- (setq hatch-elist old-elist)% T- O) {2 r/ g9 {
- )/ `2 ^; C- M6 S) p6 s- C! e/ l
v. D$ y( l8 H1 Q2 m$ i- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
/ m8 y5 o2 H/ F, Z! n& H - 3 \7 q& N; D% S% v3 a# B8 E
- ;; disable the thickness tile! A2 Q; U L+ L* G9 w
- (mode_tile "eb_thickness" 1)1 o [1 U6 d0 C3 D8 ]
- (mode_tile "e_thickness" 1)! `9 O7 f4 ^' x# W1 K+ k3 s- W6 a
n+ p, `, k7 X- N( i- (setq help_entry "modify_associative_hatch_dialog")
: i+ {) h- C' l% l2 N - (set_tile_props); W: a( M) G. Z+ e H4 s2 q) J
- (set_tile_handle)2 Z+ @2 O' v) O5 F
- 1 R. T: H- ?% P- v5 y/ W
- ;; Define action for tiles# y( ]" @, I- M; Q
- (set_action_tiles)
+ T$ i% o5 l+ ~; r: v - (action_tile "b_hatch" "(done_dialog 2)")
+ {9 K' t1 o& i: u1 ? - (setq dialog-state (start_dialog))
0 R( S1 T) Z) X2 m - (cond/ i |" m9 V$ x: N# B
- ( (eq dialog-state 0)1 R5 X* |& ^. e/ Z3 j3 h
- (setq old-elist hatch-elist)( b3 ~- c) c5 p. ? M. k/ B
- (setq hatch-elist nil)+ @" W- q% |% @) p3 p/ x9 ?
- (if (= (checkforlockedlayer ename) nil)* ^* q+ C, B$ ~' i$ k, \
- (reset)
- I9 l3 F2 u4 y6 ?9 d0 F - (progn ;;; special handling for locked layer reset8 |/ I, e3 e) X; |
- ;; unlock the layer6 o5 v3 \8 q! u6 ^% M4 ?
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))1 D7 e! d: N, j; C/ _
- (command "_.-LAYER" "_Unlock" layername "")" t3 g9 J7 R0 g# L$ H
- ;; reset modifiction
; B$ a% k$ K- O* ^0 r8 x - (reset). `( T3 X- a8 \7 y" F+ v; I
- ;; lock the layer again* a% Z; z9 ^/ X& [* t% Y) E
- (command "_.-LAYER" "_Lock" layername "")
7 z1 K, d: F [/ F - )6 e8 I) G2 b4 l) F7 ]
- )0 s; `0 @, q8 ]2 @. a& l8 R5 Z
- nil ;;; makes (ddnewhatch) return nil for Cancel, l8 T# e6 H0 E
- )
) m* O& N$ f0 l; R4 l3 q - ( (eq dialog-state 1)$ \3 U' t8 J; L- M. I
- (setq hatch-elist nil)# i- Z3 V5 g9 T) L, c/ R! F: Z- k
- (modify_hatch)
* _ }5 p9 F1 g$ z# o - T ;;; makes (ddnewhatch) return T for Ok2 l, S4 l4 C5 G# W- ^5 [
- )+ [- `# A3 d5 m& [3 G
- ( (eq dialog-state 2)& Y9 {. [ H3 g: E; `1 S2 u% J7 k
- & K( }+ x& j3 k6 s
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
( F# N/ ], s) p. p5 m# i6 L - 4
) T( s ]# O( l/ v& J; G0 V - ) 5 u1 S5 ?; D& O9 @0 C4 H( n3 c
- ;;; new selected layer is on a locked layer
: k- t$ N) N! q* v5 u% d - ;;; we can simply modify the hatch properties/ A. e7 k2 a6 b% ?3 l
- (modify_hatch)
t% Z& c7 r+ J/ v+ `$ ^ - (progn
; Q+ q2 U' K: H) T1 z - (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))3 z/ E. }6 k: l, _6 S+ k
- 4
8 q2 x( a: b$ k, C& `# a1 G - ) 0 d( M& y; ? G7 ?6 U
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
0 Y0 v$ J6 r1 a% b: l - ;;; We have to unlock the layer forethat we can update the hatch properties.2 S/ B7 I8 z5 x. P2 W
- ;;; If we don't do that (entmod) fails to update to the new layer.
3 E" ~1 {! I0 {( c - (progn
) h7 I* R7 I3 D5 `' L7 a - (setq layername (cdr (assoc 8 (cdr elist))))
1 c0 z& p+ N( n/ s+ t - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
8 q0 x" S4 B; d9 k L - (modify_hatch) ;;; update the properties$ f1 Y6 ^: ? T9 ?0 j
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again* _4 c0 q8 l, j% [$ V3 Q' M
- )
" L3 E$ I0 E( T Y; R- a; ~. Z) E - ;;; All other cases we simply update the properties
$ J& s1 g/ p5 G$ D; j7 H - (modify_hatch)
1 h7 v$ z: b+ H - )
; l, v; L) ]9 i - )
4 \+ N' Q3 `+ M2 D+ J0 O! b( c: H - )
8 h6 J* o* b& @, P - (if (= (checkforlockedlayer ename) nil)
7 P4 l4 F& V3 q( {; X% [- s - (command "_hatchedit" ename)
# G" e R! L& y& V7 F - (alert ;|MSG111|;"The hatch object is on a locked layer.")
1 c5 A1 t9 t) N( ^& R - )
# T4 v8 h0 g; w6 I2 c - (ddmodify ename)% Y, n9 n+ {2 r0 `7 c
- )8 F! i" P1 ?) q' u6 w
- )
3 u4 W7 S$ b7 l& \. { - )* Q1 Z# p1 p2 N( Z& [1 w
- ;;8 B: S6 v9 S: m. ^: O
- ;; Modify BODY
1 ?8 O( h0 A6 q - ;;
( c) R, k$ D! D1 |* J$ c* m - (defun modify_body ()" z$ G* O3 s! N
- (modify_prop_geom)4 K- V9 ?+ _0 D+ W+ h9 ^
- (entmod elist)3 P/ a- [+ V, u' ^8 k
- ): w# _' p: e @! N/ O
- ) y, O9 S5 W" _) ^3 p7 q- w! I
- (defun ddbody ()# a. \' z, }8 H6 c3 i+ A7 D0 `
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
# P8 U& y3 s# r - ;; Set initial tile values7 o$ ]7 p* w& h3 ]3 e9 V2 [
- (set_tile_props)# _( D) I& }3 ?$ d- h. j q* N1 M* f$ x
- (set_tile_handle)7 _4 ]6 F. L. y* L2 U5 w0 V. {
- ;; Define action for tiles1 z/ q. r( N& U) z/ S
- (set_action_tiles)9 C" x' {0 \' H" V. [* p+ B
- (setq dialog-state (start_dialog))5 L. i/ A+ K7 \, X
- (if (= dialog-state 0)
+ x e' Y: ^, P# L - (reset)% o/ }- F0 W# H. V# x9 l) ]: f; U
- )- L; S+ U4 E8 p% v, c: Q: `3 S4 i. K
- (if (= dialog-state 1)3 n& c' Q7 C/ |% M! S U
- (modify_body)
) i/ n: `+ A- g - )
7 R8 I' R9 `4 G2 i. G - )
' X1 G. h' u _. T3 }( e" l9 q - ;;
7 m# @" g0 W4 }! A( T M; G - ;; Modify CIRCLE
$ E9 `3 p! d- d3 [# q7 @ - ;;$ n( h. q F! o/ t9 g( [
- (defun modify_circle ()
0 ^5 P9 X0 Z* u* ~ - (modify_properties)1 B/ d: j5 N, g) F; \* l5 ~
- (setq pt1 (list x1 y1 z1))3 J) ]' a4 z+ l6 o$ q7 w
- (tempmod pt1 10 1)* a$ S: ]3 A% N2 i
- (tempmod radius 40 nil)
7 H; @7 g+ v+ `8 s* `" l - (entmod elist)
5 w) t9 r* X) k% j. M7 p4 w1 y - )0 ~9 l# Y9 t, `$ |' `) q8 l! N
- ' c5 m' J; L) N9 e1 R6 r; p
- (defun ddcircle ()6 a3 n1 h" x5 [
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
0 }' D9 P( i6 n' M' a0 A - ;; Set initial tile values3 F& e! X. d! A" y3 |) U2 o
- (set_tile_props)
6 L+ _& \9 U' l3 n7 v' r - (set_tile_handle)+ \, s3 S! C# `8 Q3 R8 D2 B% p, Q" ^
- (set_tile_pt1 1)/ g- K0 d6 K$ e8 Q
- (set_tile_rad)& Z k2 h4 F" g) ?0 x9 y$ a) I
- (cir_calc)
9 Z- h: ^% }/ c# b- X" t7 E O - ;; Define action for tiles& T/ c& g6 G2 }! m8 `% D) E7 h
- (set_action_tiles)
* z# O% a# A! ]) M) j0 e% K$ w7 n - (set_tile_pt1 1)
& G. P5 n' U; I9 h - (setq dialog-state (start_dialog))2 t9 p& w& q% k. y7 U* J: R6 t9 C
- (if (= dialog-state 0)
' p5 |/ B) `- }- v) ^$ b. r' l8 d - (reset), R5 A* y- n: n* I; w& O
- )! O4 _4 Y( K- K$ G& J$ @1 Z5 R0 S
- (if (= dialog-state 1)& {; U: h0 G) _9 n$ ]# [
- (modify_circle), Z# W; h6 Y; s
- )
; h2 X) Z) ?; f5 |/ C5 k - (if (= dialog-state 3)
9 X% ]" f0 K- Q+ L - (progn
# H5 N2 v {5 Z0 V! u. `1 u - (modify_circle)
, j6 L( s' ^, ~+ a1 T' h: J7 t X - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))6 M3 n2 \8 z' w" d4 I
- (ver_pt1 1)
% t, m- X# Q- Y3 ]1 C4 O" e2 a - (ddcircle), I/ R6 M7 A7 ]7 V6 R
- )
Z' s( d+ V; J8 U# L - )
( i7 A* ~, W( c, n9 ^% ~ - )
' b: M& J7 Q5 \# V# Y# T0 A0 V! D - ;;$ T6 y4 T: V* `) q3 K
- ;; Modify ARC0 y# T( r4 h5 c; T" N
- ;;
- J7 S* ~- A6 a- m& e, @4 c - (defun modify_arc (). b3 S) ~ u) v
- (modify_properties): \7 B0 g2 K, t( a |) C# L; t
- (setq pt1 (list x1 y1 z1))0 w; u9 [9 D. I4 ^+ ]
- (tempmod pt1 10 1)9 T4 M% x8 S7 C9 g) X2 L$ V) H* E- I
- (tempmod radius 40 nil)7 B P7 E, s+ Z4 ?
- (tempmod st_ang 50 nil). Z m" o9 c* @2 C* w+ ~" P1 e6 O
- (tempmod end_ang 51 nil)
' l) |! I' t" X5 O$ b, v/ T8 _ - (entmod elist); @# x3 c$ t* J, [3 L( \% n' }
- )
, b7 |1 c+ F8 `6 k - (defun ddarc ()! _1 s9 P3 n" y
- (if (not (new_dialog "ddarc" dcl_id)) (exit))4 t+ v+ l' G7 \! i
- ;; Set initial tile values- x5 E! m3 i. H6 ^0 b3 K. G
- (set_tile_props). C) p8 ^$ P+ z. D2 o% k/ Z- k
- (set_tile_handle)
; u+ K5 M/ r. x, u - (set_tile_pt1 1)
) s0 |- U$ g2 S8 | - (set_tile_rad), a! V8 b# }4 C) T$ Y/ Z
- (set_tile_stang)
$ j% c3 u4 h& G3 }/ d1 `$ ?8 S - (set_tile_endang): y1 T" P9 C' q! L- f/ P+ e$ s
- (arc_calc)% l, [5 p! g6 g' Q8 {. d' [
- ;; Define action for tiles9 F7 H. w% z8 O, A7 \, |# S
- (set_action_tiles). Y' Z- e4 Z, K. \
- (setq dialog-state (start_dialog))
+ x, C% n1 p; K. D- g2 x - (if (= dialog-state 0)& q# ?- i) f" X c4 e) O
- (reset)7 D7 M9 N& L: x7 q1 V/ E
- )
! |. P: P8 A$ \+ f- N - (if (= dialog-state 1)( B* j7 y: R& a Q4 B2 t
- (modify_arc)
% g3 \) r1 v; P, J/ P z) q/ d# p3 H - )
/ F3 I' M. G# y0 w, i- O - (if (= dialog-state 3). x. B5 M" N7 @4 A: ^6 ~
- (progn+ S7 [' U: g5 \8 {0 I5 J0 x' F
- (modify_arc)- m7 p0 k8 t2 f1 z0 G
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
9 k8 C9 z/ J' O3 r9 b$ J9 C - (ver_pt1 1) T6 O" E9 Q. M4 `- P4 i3 {
- (ddarc)) S6 T, q7 m& {: d, w6 q! p7 m# u# m
- )
8 Q# i2 B/ T! ]8 g - )
_+ f5 e% l+ u6 c - )6 w# a' V" c& r/ O
- ;;
6 K; L/ {8 X# }' q6 h7 Z$ K; C - ;; Modify SOLID or TRACE1 j) g- ]7 I' S- D7 n6 ]
- ;; Note the Z value of the object is determined by the Z value of the fourth
U$ _0 ~! r. f# Z$ T. h - ;; point - code 13. Changing the point values of a solid or trace from a UCS' p5 |: ^4 ^8 |: A
- ;; that is nonplanar to the UCS the object was created may confuse the user.* J6 f7 O3 R* d2 y* p' O( Z
- (defun modify_solid ()$ Y8 [9 e# X+ w% {
- (modify_properties)
f) C; @6 A7 J! E. t7 y" P - (setq pt1 (list x1 y1 z4))
3 h& V4 Z6 @( q - (setq pt2 (list x2 y2 z4))4 Y# V# n- l$ x, H
- (setq pt3 (list x3 y3 z4)) A/ B. c" U9 b7 S& N' j
- (setq pt4 (list x4 y4 z4))
6 a* `6 C N; u: q: U; P' Q - (tempmod pt1 10 1)
% Q4 J6 o! e, ~" X- a5 J1 S) N0 I6 v, o - (tempmod pt2 11 1)
3 ~8 }0 T" ?6 L7 ? - (tempmod pt3 12 1)$ s8 w9 B, s# P$ E2 S# s
- (tempmod pt4 13 1)5 }) ]9 ]& p9 q9 g) o3 a8 m/ V
- (entmod elist)
3 p# Y9 i( \, @2 Z - )
7 |" j d2 ^8 t5 R/ w* Z - # j# ]4 I) O9 s0 g
- (defun ddsolid ()! |" Y$ s3 @( m; u7 E) A& r
- (if (= etype "SOLID")
" c8 n8 @6 \# G; M6 ] - (if (not (new_dialog "ddsolid" dcl_id)) (exit))0 Q3 m% P: j$ ?8 F
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))/ e! a* x7 g- q( S: d
- )
; `) {/ x8 Y/ u3 U5 \: l - ;; Set initial tile values& X7 V" C6 Y3 X* k7 I8 S, H
- (set_tile_props)& p9 F5 y' h9 h* `3 L
- (set_tile_handle)
' c3 O- M" S% m5 f+ m/ j7 h) z - (set_tile_pt1 1)
& b& u, S4 d4 ^% s! k0 u - (set_tile_pt2 1)
! G4 M0 e5 K4 _: o - (set_tile_pt3 1), B; ^( a2 g# |: W; k2 n) y
- (set_tile_pt4 1)
1 r5 J+ w8 p3 h. Y+ L, Z - ;; Define action for tiles
" b( c& x+ y# L: I! o2 ]9 N& y2 d2 v - (set_action_tiles)
' g5 j0 c. R1 j - (setq dialog-state (start_dialog))+ d% l7 y) l' F# ?
- (if (= dialog-state 0)5 Z6 V+ h8 b8 P* d! M$ `6 B
- (reset)
5 V( g" r [' S8 [3 J, X - ): k6 H9 f7 V w5 ~! l/ j- K; c
- (if (= dialog-state 1)! `$ O& [& h8 ]+ ^6 S: c
- (modify_solid)6 J& o8 z/ J5 h1 H8 o) P8 V
- )1 N4 U$ a0 U/ K
- (if (= dialog-state 3)
$ s9 R& L* Y9 T - (progn
. y3 n, Y$ P# n3 i - (modify_solid)
% D9 b. i1 v C% F0 M - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))2 j2 `0 _1 G" d+ N: J
- (ver_pt1 1)# y5 l' h+ a9 e0 D& x5 d( L4 ^) k
- (ddsolid)
0 P" t# t; z8 X) I7 b' B - ); b! D2 a9 i* n. o
- )
6 a m+ T/ i8 S: M - (if (= dialog-state 4)# V" u! a( F: s- `8 D Z2 r
- (progn" c4 M# B- U/ L& M
- (modify_solid)" E) G4 U9 a$ }
- (entmod elist)1 d+ Y$ @% e& G/ f
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
. l) k9 a: q' F9 E1 P9 a& R1 e - (ver_pt2 1). r; d' }; E( K# y
- (ddsolid)
- Y2 P& o4 ~2 q% i _ ~ - )
. M3 G d4 W; K* M& D _6 d - )/ _2 D# ^/ [6 `9 D# {9 M- ^
- (if (= dialog-state 5)* f) C1 {# Q8 @6 N0 Y8 w
- (progn4 e4 @. f4 A5 P5 [6 [+ h0 N3 R1 g
- (modify_solid)6 w( o4 _2 ~% M, M, k
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
1 Q% A) S0 U) Z$ N" L& L - (ver_pt3 1)
. l2 ^, K! D% f - (ddsolid) u# u" B0 j9 M/ }; }
- )
9 L! R7 f* I0 S8 h6 H - )+ u1 l0 b+ F9 C3 O
- (if (= dialog-state 6)/ D/ ^/ ^; Q0 R* X6 @' r* I6 O, I
- (progn: e, T8 G- ^7 ?# i2 M
- (modify_solid)2 n/ M3 @* U1 y# R
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))4 e, k. E* t4 n8 d2 K5 ^
- (ver_pt4 1)) y6 O* Y. e" S3 L) Q
- (ddsolid)
h n( J! m1 P3 W( g# p- K" ~ - )
6 K8 r2 w7 K, |. W# }$ n - )! Z: h: e2 Y* u
- )' T' e ^' N L& Y8 ^+ a6 c
- ;;
) G. @& G: n9 B2 A. T3 Z- U - ;; Modify 3DFACE( \5 [5 m# k, N# C! L
- ;;: D* }* y0 m8 S2 O+ y
- ;; Check visibility of edges: |8 S; Y' o6 b5 s% h' t
- ;;
; ?& \- O7 y9 S$ _0 I - (defun edgetest (/ bit1 bit2 bit3 bit4)
2 G8 k# N+ w' v% j, r/ L - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
1 O* d: s# F3 } - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
5 }& x+ k+ F" G- E% E% ^ - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))- [. Z1 K+ l2 t0 H% w% f4 l
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))1 F4 n# E/ U% E6 e+ N) X( e: @
- (+ bit1 bit2 bit3 bit4)8 p# O# P' o, u; }8 Z6 M8 e( M
- )' O I" ~& p% v
- ! k- c6 S3 p1 o F
- (defun modify_3dface ()
! ?" z1 l/ n0 e# X. ?* t - (modify_properties)1 q; g1 \6 |, d. Y: u+ Z- Q4 |) W
- (setq pt1 (list x1 y1 z1))8 R5 h; @* i" ^: T4 w
- (setq pt2 (list x2 y2 z2))
/ j1 L z: r& }" ^" l$ K - (setq pt3 (list x3 y3 z3))/ n2 |0 R9 N7 }5 b! ~8 }9 y1 c, z
- (setq pt4 (list x4 y4 z4))& b2 \9 ]8 @: k8 p' w
- (tempmod pt1 10 0)4 d8 b9 F3 r' @
- (tempmod pt2 11 0)
9 ?4 ~* x+ g; B1 x! { - (tempmod pt3 12 0)
: `' k* ]+ G/ ~: p# D - (tempmod pt4 13 0), R6 p& @, p7 i' F5 g' K# f
- (tempmod (edgetest) 70 nil). o4 _6 R* C5 H* {7 r5 |
- (entmod elist)( G4 D! D9 m! _7 j
- )0 s' E& V9 z+ t4 ^& F, S* ]
: T; ^& ~( y2 s) ~" u" U- (defun dd3dface ()
^& y( C8 ~; q3 ] [ - (if (not (new_dialog "dd3dface" dcl_id)) (exit))
" [+ e. {4 D" h3 r5 m, w& J - (set_tile_props)! L9 j3 B6 D0 n6 X8 Q! n
- (set_tile_handle)& v! g" l$ s% ~' T. I
- (set_tile_pt1 0)
4 l( P. M3 p8 |% j' k - (set_tile_pt2 0)
/ h' h" i0 B% p; S! f! J - (set_tile_pt3 0)4 s) s! J1 [' p+ |& V$ B) W( s- H
- (set_tile_pt4 0)
( `: ^- p- W. z2 f0 E+ ` - (set_tile_edges)
. m( G* F, P8 G; n - ;; Define action for tiles' F9 N" q% m: Y7 ~0 q8 a4 M
- (set_action_tiles)* l$ K4 d$ G- i! E& _1 k
- (setq dialog-state (start_dialog))
6 _( o$ X8 j* e, w, S) c' J+ Y - (if (= dialog-state 0)
6 c( g9 x+ d: N8 ] w - (reset)+ P" ?9 \8 x& P' S; L0 M/ l; E
- )
. k# y- g. Z0 L - (if (= dialog-state 1)6 C1 ^7 ~( Z5 t2 X7 U, N: Y* v0 ^
- (modify_3dface)" @1 i* ^$ X. g
- )
& i4 ?0 p. X0 A2 [ - (if (= dialog-state 3)/ O7 H' n$ I1 @- ?2 y7 @
- (progn
# [& `& e& b; R/ u - (modify_3dface)4 ]2 r- m" E* s2 b; n& T2 u) T0 a% ~
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
! H5 S ?; m2 V6 V% y/ ^ - (ver_pt1 0)' X5 j" E( P! ?6 ` N2 F
- (dd3dface)1 q$ v" Q% X( ?& S+ O0 e" k3 P
- )
+ n4 u6 G& m# a' W/ v - )
3 o+ c7 Q( X$ C' l: b) l: Y - (if (= dialog-state 4)
& m3 ^2 w/ _+ y# A - (progn
5 M P3 `5 s5 n# i1 p: I3 g" g - (modify_3dface)
5 p& }7 T# X0 |% ]" k. t& Y - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
6 K ~( J# P/ N4 C& ]% { - (ver_pt2 0)7 l9 ~: U9 ^. C6 v6 \$ p2 l
- (dd3dface)! [$ b# a# M3 o
- ). M4 `9 H- E' u- a' E
- )
0 N& Z/ N# s/ g# |8 q& H - (if (= dialog-state 5)% j- z1 p; h9 v" Z$ h/ W
- (progn
9 M: |7 s$ p8 U3 O2 s0 l - (modify_3dface)% a7 R& _# ~$ n: V; U
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
0 A5 Y3 k9 F3 r+ h. U: T& a - (ver_pt3 0)' l4 a1 i1 T# Q- \5 Z3 y* a8 W
- (dd3dface)' d3 `3 c) X: u( u9 s6 A9 Q k
- )
' `4 h: Z- ], f# O8 h8 E9 D, B - )
2 T0 [$ D: u# p U1 H. ^ - (if (= dialog-state 6)
+ C5 h' U- [) @5 ?) t# ^, u% h* b - (progn9 i+ {4 F& Q' |6 A
- (modify_3dface)/ D2 \* m" D" V8 G, I
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))7 q: j9 X h$ f/ \' x! G# }' W' x
- (ver_pt4 0)
, R! T# I; e1 [5 _# C5 K2 p) Q( u - (dd3dface)) h( t- w# `3 f) Q8 i
- )
" f9 C5 @0 ~3 W8 w2 `) N* i+ ` - )0 y( Y% e( h6 i0 v
- )8 m3 g2 U6 |9 }* f8 J, M) c
- 2 @0 i2 T0 h3 d; V
- ;;2 a: x0 b7 R1 E& N& Y5 a0 E
- ;; Image functions
; Y. S; ?8 a. G6 g1 _$ ]4 } - ;;
- G$ u2 I" C3 P/ }, I - (defun image_scale (/ upixel en n userscale temp)" J6 B9 u1 m3 `; ~: v% O# L" B3 |
- ;; Calculate the size of an image pixel in AutoCAD units' C$ u: a: q. W8 S5 Y- Y" K
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))) z! a1 f% ?* R4 W/ j/ F
8 J) I% D/ _/ @; [: E- ;; Retrieve the user scale
9 ^4 l8 @: J+ @0 }+ q - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
2 u: x" t G' }! ~ - # N" R( j' [3 \# m
- ;; Next, extract the image units and pixel resolution
5 j n0 F8 V0 U - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en)))), u. Q1 L3 |$ {, c- i5 b7 Z
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))
( x& i0 L, ^! U/ f, j - (progn( |7 k% z7 O; i: K
- ;; Convert the user scale to the proper word
' N; _% ~1 L. A& ?/ v - (setq n (cdr (assoc 72 en)))! u" c, M$ |' M- q" A
- (setq temp (getvar "LUNITS"))9 `# X) X+ K7 Y. u% L& d0 n
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))$ C! b- B2 f! A3 L" g0 g& A% M
- (if (= n 1) (setq userscale "Millimeter"))
9 ?6 c0 U0 r& ]0 m- K - (if (= n 2) (setq userscale "Centimeter"))" M& B5 P% V- a; B0 A
- (if (= n 3) (setq userscale "Meter"))
! ^0 m7 z8 O8 w - (if (= n 4) (setq userscale "Kilometer"))) @1 w/ E- x: z, {, `
- (if (= n 5) (setq userscale "Inch"))
; R/ E% @/ o" Y - (if (= n 6) (setq userscale "Foot")), T; [$ w3 P- e4 O6 U, D
- (if (= n 7) (setq userscale "Yard"))
?( i' j' P+ }1 g - (if (= n 8) (setq userscale "Mile"))9 Z& j" x- \- p/ k; r( j F+ Q
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
! {. a# b5 x# E1 @7 V - )
% K5 |8 ]4 v" q7 } - )" T1 t9 ~2 _& T
- )
6 p% L: C4 s9 }6 j! } - + h6 h% j% a6 ]- ~, {1 g1 Y
- ;;
" |8 D6 Z7 w D% K - ;; Scale factors for block insertions! b r# S a. @* T- x2 s
- ;;
& p8 q; ?' b8 {6 R/ { - (defun image_set_tile_scale (/ temp)5 Q& ?8 A; n5 i$ k. f3 {
- (setq temp (getvar "LUNITS"))3 y& |% u0 a& v
- (setvar "LUNITS" 2)5 u9 Q' e$ K- S8 d7 K& d- |1 y
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))! w+ v; `' k' d5 f8 G
- (set_tile "wid" (ai_rtos (* image:width image:mult))); I/ F- ?! y k& B
- (set_tile "hght" (ai_rtos (* image:height image:mult))). z8 E8 H. g& A3 E
- (setvar "LUNITS" temp)
8 L& v5 o0 z1 w2 { h9 ~ - )
. y; L( w- H% j/ y: p" y' p - ' }; ]+ L/ ~3 {, k7 J' N; T! x
- ;;
; r6 k/ V- L/ c' } - ;; Set the scale, width and height values appropriately.6 `$ @' i) c8 f/ u0 x0 i' `/ M: k
- ;;* J/ `# E. w1 ~
- (defun image_update (field value / orig_value new_value mult) T, U4 F+ W8 `6 i3 r
- (if (= field "xscale")4 P X$ Z% |4 N; V, I
- (setq orig_value image:scale)
' V- k6 o R! Q- g) o# {4 y8 |3 Y2 h5 { - )
7 N1 k' N' L/ n6 U0 Q: r, f C - (if (= field "wid")
' n: y$ H- B3 A# v% z8 d) k - (setq orig_value image:width)
$ E9 ^# s: F$ P4 G [ - )) B: r5 e5 c7 {- |% s
- (if (= field "hght")
2 u3 g d5 p+ s" g* b+ U - (setq orig_value image:height)
3 @+ \/ |2 \3 B5 x - )+ ~; f1 ~5 |; U! b; A$ L
- (setq new_value (verify_d field value (* image:mult orig_value)))- \* a) Q; W( i7 o' W- n X- G
- (if (/= new_value old_value)
' Z+ v$ j( r' [3 g5 W: S2 M2 ] - ;; Make sure the user has entered a sufficiently large value+ ]0 y! }% J0 S0 o
- (if new_value* l3 N3 j' \/ M
- (progn
; ^8 w5 D( c; H% ? - (if (< new_value 1e-8)
- z2 q2 j, T2 H- G4 o$ g+ ] - (setq mult image:mult)
5 Y" u C) ]& S& G - (setq mult (/ new_value orig_value))+ k# P( u6 i! E ?1 u+ t$ i2 |
- )
) E- L7 b( u2 p6 b - (setq image:mult mult)/ d& Q6 g8 E2 w! `& F, E5 i) e
- (image_set_tile_scale)
/ r: u6 C! m; ~# J, f5 T8 z - ) f N" f3 W- h2 a5 u0 r
- )6 [ z7 p# y. u9 x& S B
- ). C. I/ `7 ~/ H, b R$ q9 Z/ x) j
- )
9 a; E2 z2 R* B
5 b6 m* q& o) } O; D- (defun image_disp_opt (bit)
5 Y3 E; b! g; P( c - (setq image:options (Boole 6 image:options bit))0 ?# k) _9 p, Z1 b
- )
- V9 b0 p8 s& g6 K
; g0 Y }# K- m" b+ N' f- (defun image_modify ()+ }3 j. X/ ?* t" ?5 P
- (modify_properties)
8 Q4 V$ m) c4 y* O) k. q8 n, o - (setq pt1 (list x1 y1 z1))
1 b. E5 L# o, b' b# k& y( ?4 U - (tempmod pt1 10 0)* ^& C& ?& S& c5 d
- (entmod elist)6 k% N L/ U5 }. ~, `
- )
' s2 ], [- c% B, S) w% c& Z - % y7 N$ W( m( u6 k2 Y, \5 d& A
- (defun image_clean_variables ()4 Q6 s( ?/ a8 y! s8 W7 l
- ;; Clean up global variables used here
" W7 b# E4 e6 H' ^( { - (setq image:scale nil)
( X0 d: n9 A3 Z; f6 e) W- g( S - (setq image:angle nil)2 I" n* d4 u9 b T. n; Q+ N+ U
- (setq image:width nil)
5 Z7 c+ V+ s( C6 ?* y; O - (setq image:height nil)
& ^" k) |' m% C/ n: s* P. \ - (setq image:options nil) X0 B) R0 {+ P# Y# P0 H1 x0 M7 S
- (setq image:oname nil)
+ U! i+ r7 w u - (setq image:olist nil)+ u) ~9 H; r }: @7 h, z0 i
- (setq image:mult nil)
$ i' c& y. Y5 K7 Y - (setq st_ang nil)
$ w4 f8 `$ O) b - )
; ?/ F& p5 N2 j4 \: m
( J$ U& p* J9 I- i( \ e- (defun image_scale_vector (v1 value)
' A- D: V1 ]7 k6 Y. V - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))" j! d- g. M% H$ E1 U0 u4 k( ^6 C
- )
' `% I/ m$ R5 h+ \2 U) c
. @5 P8 }* f: q2 p- (defun image_cross_product (v1 v2 / vx vy vz)% r2 \- T) Q- Q! z
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))+ k1 r2 A* R [/ L+ ~- n
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))5 W" U" w1 g) A' K9 [8 R0 k' R
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))/ A$ K9 y0 Y3 k) v. A7 s
- (list vx vy vz)1 h. P% k- { c+ e6 k
- )7 o; W$ V% {7 i. S w3 P% w
- ) q3 U; B% Z. D$ }
- (defun image_dot_product (v1 v2)
! q, h4 |% r) h$ r( u7 v - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
$ {( w" [( y- H1 o. K H( G8 U# A - )
( }) u4 q! J& ^2 }+ x1 Q; [
$ [$ o6 e0 \8 K0 B! U- (defun image_add_vector (v1 v2)
% f0 ~/ |& n+ t1 } - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2))); D8 J! J L, F0 `$ z
- )
0 y0 }+ f# y* c/ D! E+ Y. @
* i, y6 C6 B* k" X8 Y- z5 R+ _- (defun image_subtract_vector (v1 v2)
. u4 p, z5 O- A! K# f; m2 p - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
6 l3 `* z( A9 r: [& d - )3 w. k! D' m0 g) a, `, Q
/ e! J" e: T1 l3 H- (defun image_normalize_vector (v1)9 W6 I( F3 q, H/ N' T: l7 S
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
+ Q$ c7 a8 R& }$ C/ c8 C `# A - )
% \: s/ d2 C% S( m8 A/ W% Q
: U+ j( _) `2 z8 r- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)' D2 g# R: m4 V# @1 p! v
- ;; Normalize the axis) }% k6 z" O5 Z# s: r( e. K
- (setq axis (image_normalize_vector axis))
1 K& Q) ]; ?( t' K. ^$ Y! n$ H - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
3 h6 G" b3 s. }$ t- h - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis)). b+ {* U& Y: j( W! D7 G' Q' t
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))% A2 i/ V z0 D$ u( m% u
- (setq in_rot_plane
' k! M9 {& f% d+ Y* u' b3 E" N/ h - (image_add_vector
) u! J% b! a) k9 W6 U4 Y) l - (image_scale_vector axis_x_in_rot_plane (cos angle))
( L) @9 X( D$ i& q3 q: a - (image_scale_vector axis_y_in_rot_plane (sin angle))$ u. g3 {# v R/ A( Y
- )! t6 j8 j8 Q+ z# _5 B
- )3 U4 R$ {- j5 i; b" O
- (image_add_vector along_axis in_rot_plane)6 L1 v; ], o( |. F6 u: R
- )" X' f0 m: W4 ~) l' L1 L3 R
& m5 W/ T: D( l. a6 R7 ]% \- ;;3 x& f5 e" @% \/ Q
- ;; Calculate current rotation angle if appropriate.
! W7 }" P0 E% o4 T6 x - ;; If not, grey out the rotation field.1 R' n8 i$ W' W/ q3 O
- ;;
v2 s' A; J3 d" L - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
I: }4 z% E, c: }9 F5 G" y - ;; Determine if image normal is codirectional with
6 Q# z+ T/ o/ I( \ H; |7 t9 N - ;; the current UCS Z-vector.1 ]: b( B+ C ~/ A* s o w
- ;;
& K; W6 \8 q2 m! y/ ? - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))! m9 U) l4 D: Y$ o9 \3 [
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))$ c' ~' p( D% H+ _+ K5 F1 N
- (setq zlength (* (last normal) (last normal)))
% R& X7 w) e0 C- r - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.7 K" \4 Y. c, f& J
- ;;! B! b" X+ O( }9 Q8 \3 _, _9 p
- ;; cos(.0001)^2
0 A; Q1 C+ T' N0 F+ e - ;; Tolerance = --------------( |4 [3 A/ I6 ^# M6 [, P
- ;; sin(.0001)^2
8 r, x+ u5 q! L/ ^" r - ;;
U" Y, V0 Q+ a/ m- j# Y - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))8 o( A! f0 J7 D4 u9 }9 q: f
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))' |6 `4 J; D+ O( X; R& H
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
]* f C9 ^) Q% j: h" z$ X5 u - (progn
. @( O6 z7 W6 F' Z, M8 b1 r - (mode_tile "st_ang" 1)
_: ^- ]8 Z/ W4 n) _ - (setq image:angle 0)
0 {5 u/ K7 w! ~# T: l - )4 t j) @7 h6 _( m C* a& X/ k# x3 k
- )2 c/ j O4 S4 g
- )" I1 p2 }. a# P8 x% u
" v/ E% P1 K4 j+ {- ;;- Y5 U8 t8 l& N2 }
- ;; Modify Image U- D0 d( e2 c4 b: T. m, p& w
- ;;5 @ o: m1 S" T! w/ @. q2 e. G
- (defun modify_image (/ u_vector v_vector z_vector)- v9 q+ H# a& i9 E. v
- (modify_properties)5 b4 ?' X5 s$ ~1 t; `6 g
- (setq pt1 (list x1 y1 z1))
; w" }1 N4 {! o9 f$ f - (tempmod pt1 10 0)( H2 x6 W; [6 W; B, P' V5 d7 R
- ;; Make display option changes to image! P, ~+ N6 Y* F
- (emod image:options 70)
% H) y: p0 u: H& G* I - ;; Get the u and v vectors
+ I K7 B" `0 v" `- V - (setq u_vector (cdr (assoc 11 elist)))
/ f4 l. J) K4 m b7 W8 f - (setq v_vector (cdr (assoc 12 elist)))! d& X- t. |4 t- G6 B S
* ^6 G* {: P, H. p1 X- ;; Make scale changes to the vectors
9 B/ P# @- P) c' P1 Y* n6 J - (if (/= image:mult 1): [* _' h+ A" W% w; F6 |! X
- (progn
/ ~/ f, w! H- z" |9 M - (setq u_vector (image_scale_vector u_vector image:mult))
2 V) ^& J0 L" M% V" A - (setq v_vector (image_scale_vector v_vector image:mult))# c, [* b# d z: J. U g
- )3 M2 @3 R$ ^$ {4 g7 i9 L
- )
9 [6 S: O4 ~. J - ;; Rotate the vectors
! \6 W) A! w- `) N - (setq st_ang (- st_ang image:angle))
5 ~, ~; d/ U' x" K - (if (/= st_ang 0)
, ^. ?# _1 S6 k& j; l# h- h; v - (progn
; w- [% c8 j i u$ ` } - (setq z_vector
. N' E7 k2 z" Y) i- L' z - (image_cross_product
' Z) w4 m. }1 T2 W" O" { - (image_normalize_vector u_vector)
6 j' F( |' A' ]0 i* n, Q - (image_normalize_vector v_vector) ]* V# J. c$ z X) N$ P, Y5 W' T
- )
* X3 I4 V( p8 R1 u2 i- X; ] - )) x. W3 G" B. H( M2 L, Z6 S9 T3 O- ?
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))4 C w l7 Z& z5 {3 \
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
& H$ e% ? Y. k6 B; j - )
7 A3 o0 n3 W- [: I% r - )0 ? {* `4 z) Q+ l' s
- (emod u_vector 11)
) Y6 v/ V7 u$ F - (emod v_vector 12)
h2 ~, k+ ]- H# h- L8 i - (entmod elist)
" c+ y$ y$ \. E$ d' j, y2 f v - )
9 }$ f" F- B1 j/ R+ J B - . @1 n# x% z! ?2 W
- ;;
. j; S& ^; V T# T - ;; Run imageadjust on given entity, working around possible
e! E* R5 ?/ y - ;; re-entrancy problems$ v& c) E% z/ |; o( R8 s1 E
- ;;9 z8 s" U2 h- y' f& ~
- (defun image_adjust (ename)* j$ y. m# o, V- m
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
, o6 v t) e. a$ d8 U5 M1 Z! M - (imageadjust ename)
) ^2 j l0 [) [2 S2 v3 Z8 o - )4 X8 t( D5 z& r% c$ I, F7 T( h
8 L w1 _/ }7 o: t( S- (defun ddimage ()' [( B/ N# ^2 x/ M, j: S
- (if (not (new_dialog "ddimage" dcl_id)) (exit))
" r/ @/ T- U3 Q% q; S9 Y( d: i. R
1 K) W2 c& |# E% C- ;; Grey out the thickness field.* d: D: V# x* U g
- (mode_tile "b_thickness" 1)' y2 X& S: g" L4 r0 O
- (mode_tile "eb_thickness" 1)& H _2 S: A; x% q( R& A
- 1 O7 t( r: m2 L/ K# p, ^0 ?. A
- ;; Get the associated def object.! o& N, F; T. U4 O7 j& h
- (setq image:oname (cdr (assoc 340 elist)))7 D: }2 j% M( w! |( e9 C& y: |1 e
- (setq image:olist (entget image:oname))
! y8 J" Z, G W+ T - / ^1 H: Y) u* b0 r
- ;; Set initial tile values
- O, Q# }3 f9 m7 z& @+ r - (set_tile_props)
* F D8 m0 Z: Z& E6 M$ b: o - (set_tile_handle)0 d* R; f, \3 `# B( [
- (set_tile_pt1 0)
$ P. A7 z3 k% T, o9 i* A# z. r - (setq image:scale (image_scale))7 K. o1 Q4 V |% \0 A
- (setq st_ang (image_rotation))
) s7 ]% s" U0 R* u% n) K - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))- C; h! c& |9 X# |
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
# r8 W4 _, Y3 v+ M8 p) ] - (setq image:options (cdr (assoc 70 elist)))
; j3 T! q- Y7 E) z) `4 q: w
% U' {! m' C" s/ K* q- ;; Record the last multiplier for use in image_update function
& }* t2 K% V' Y) {4 P6 y Q) n* s% e8 p - (setq image:mult 1)! O- m9 V+ r& U
- , w/ @( p- ^9 b! t8 v* g6 ?7 g+ s9 r
- ;; Retrieve the image name- y* w6 I. Z6 K4 Q# `* I9 v& R4 y
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))# w) q- d# P# y0 r6 J* x1 S
- (setq flag 0)" D# `/ W3 l' A# k0 M' h9 g1 j
- (foreach n fn
$ ]) q, ]. \+ o - (if (= flag 1)
. l( T" e1 E$ Q% m6 w - (progn
8 o) M! b3 B* \& v; {8 R+ \8 k - ;; Display the image name
$ _% y# f0 p: Y. i+ m - (set_tile "image_name" (cdr n))
8 Q0 `' E, C+ C K: ]7 k - (setq flag 2)
. Y. f7 q) z3 A* l - ), Z" F" @& ?- y5 I
- )
$ T' X1 ~' Q; y' U G - (if (= flag 0)
/ u+ `/ g# u. y - (if (equal (cdr n) image:oname) (setq flag 1))* g; r( ~8 K" z
- )
6 [' w! z) I F8 p( w. } - )2 n7 f* P$ h( C' z
% t' u' o! G( `3 y& S- (set_tile "image_path" (cdr (assoc 1 image:olist)))+ `1 z+ z8 J# A
- (set_tile "st_ang" (ai_angtos image:angle))1 |& ^6 C' w( o/ c% |. c4 P' l
- (image_set_tile_scale)
( h1 g J4 _$ G3 ]3 v) k' |$ ?7 x3 c - , ~ a G2 q! l" w4 t
- ;; Check the appropriate boxes# j- ~) h: b8 S% c; s3 o' O
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))4 H8 V% F2 l% u$ V( ] L0 D: U1 e
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
) J5 p4 B+ g$ J. I( f$ G( \' Q - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
% p* F W9 D. n$ h. M: O" Z2 D! n3 N - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))" P c# d9 Z* W: y4 {% ~
, Q R7 N4 Y' i" G5 J; o- ;; Define action for tiles5 p4 }8 E# ]+ W
- (set_action_tiles)
) r0 Y- K/ X. i y( j/ f; @% T - (action_tile "xscale" "(image_update \"xscale\" $value)")
1 D% W- }" C$ D - (action_tile "st_ang" "(ver_ang1 $value)"), Y! ] g) t; m8 B0 C' b& S
- (action_tile "wid" "(image_update \"wid\" $value)")5 \# u- [5 Z) D6 D" J+ N+ z+ p
- (action_tile "hght" "(image_update \"hght\" $value)")) S% c0 Z4 s; m' h8 e! _
- (action_tile "image_show" "(image_disp_opt 1)")' |3 S1 P2 T$ N+ \5 ^( y" K+ l+ T
- (action_tile "image_non_ortho" "(image_disp_opt 2)")
6 x$ y( k) j$ {7 b; r - (action_tile "image_clipped" "(image_disp_opt 4)")
6 C0 y7 V4 H3 M3 d - (action_tile "image_transparency" "(image_disp_opt 8)")) ]7 k# @3 w K
- (action_tile "image_adjust" "(done_dialog 4)")! z, p/ ]) _: B5 M# D
- 7 I; X8 ?* i/ m- f
- (setq dialog-state (start_dialog))* {4 g5 A/ A- R: B$ b% f5 z! P" h: O
- (if (= dialog-state 0)
" {; D( }# F* h - (progn
4 Q" t2 m. B2 P& Z - (reset); B4 b$ M& |+ X3 h7 b' G
- (image_clean_variables)
7 R& @( b- ~( o. m* B5 N& m( w - )
* T1 h( D: f$ c3 | - )' h$ k p6 {) ]! D
- (if (= dialog-state 1)3 S. K i- f, f( E- N) }
- (progn
6 {6 {! H% r3 }- @ j - (modify_image)
+ R6 L- K0 X3 f' E2 B7 S* J - (image_clean_variables)/ [! S# R2 R* h# u# o
- )
) e- W7 X$ f$ K9 n2 d - )6 ?( G0 v& x# w V, \" p! N! e2 _
- (if (= dialog-state 3)
1 X0 i' e- M, H - (progn. ] h& u& c3 F9 o
- (modify_image)4 k/ G @! |( q& ^( ?6 r- z# f
- (image_clean_variables)9 J: W. T0 ^9 f
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))* ?! L: X p7 W" G% J
- (ver_pt1 0)
! r8 Z7 Y q* O% _9 j3 p4 H - (ddimage)
1 w2 A5 `/ ]' Z, Z - ) p( X5 Z9 ^1 z0 `* C. C
- )1 m; n/ t' X- j, m2 }
- (if (= dialog-state 4)) x$ p: G/ v5 p# k: ]! s: _
- (progn
0 V% a0 _8 U4 m7 m# B - (modify_image)
7 r9 M9 `. l7 P) W) s6 h9 U, T$ m - (image_adjust ename)1 A% R! Y2 U( t7 y; U% n; l6 f
- (setq elist (entget ename))
5 B0 s% b5 P, j9 g. r - (ddimage)6 b1 y _: n1 G! E6 a
- )
$ Q. k+ ^1 q) _ - )
n, r) j$ Q/ V5 y z. u - )
& f9 w# N+ ?+ s5 V5 a d
K7 q r: z7 M9 _* u# |- ;;0 o3 I/ W- h9 Y l
- ;; Modify BLOCK (and its Attributes, if any)
) _ C- s9 W) y" {7 ] - ;;& G* B7 m1 G, M* }& f3 Y3 m$ O
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
) ^' u* B# ~+ m$ p - new_wid old_wid old_rot scaling old_scale; Z) o, w( R2 L" H7 g
- xdelta ydelta zdelta xbase ybase zbase ipos)$ C" a, f% i" {
- (modify_properties)
7 o: G! g7 I. a' \1 h$ I* @ - " t2 h! S% e) Q, w
- ;; First, translate and scale the Attributes, if there are any.
$ u; j, I4 u0 I" R8 B1 Q& H$ u; X - (setq old_rot (cdr (assoc 50 elist)), W5 J% x" [5 \- R' v# @( m/ d$ w0 o
- old_scale (list (cdr (assoc 41 elist))/ H f$ }! b$ l- ~2 u
- (cdr (assoc 42 elist))# n. L5 c% Q" L `1 G
- (cdr (assoc 43 elist))/ r. \, e& d) n8 X+ {0 R
- )
8 ^: A" r' i$ l3 r; O: @6 `' L9 B! p6 X - scaling (or (/= xscale (car old_scale))+ c4 T$ {( L1 g- h, B
- (/= yscale (cadr old_scale))4 X) h* H$ v$ [7 } E) i: C
- (/= zscale (caddr old_scale))7 P4 X1 h% m, t a
- )
) O+ [# O" e2 z1 K6 y3 d5 ?# O J - attr nil ; No Attributes modified yet
, Y$ u. o& M. u! Q( v3 w- ]- S2 x - )
2 G% r) R4 \1 r* r. `4 r6 d `% w+ V - (if scaling3 ^$ [* \+ L" K8 t+ y R4 k
- (progn, l6 J0 V e' G( s- N. c; W
- (setq xdelta (/ xscale (car old_scale))7 l, E: S/ \8 i1 Z; \8 S3 q8 ?
- ydelta (/ yscale (cadr old_scale))
5 ~# T9 y6 z! y! n' l5 U - zdelta (/ zscale (caddr old_scale))" i5 c( D0 N; ^* D+ O
- ipos (cdr (assoc 10 elist))
1 L! e) p' i+ p: v3 a+ ~ - xbase (car ipos)
5 R. o: N p* |7 e1 O" i - ybase (cadr ipos)
& q: t' o2 G2 U) F% L# r* I - zbase (caddr ipos)) Q9 f" G' @' w
- en2 (entnext ename) ; First Attribute
( i+ G4 Q# S7 _, H1 t h! o( L - )6 O6 W- f5 G" K9 h2 v7 n, g7 \
$ @) M9 b8 K2 f0 ?+ L- ; If the Block is rotated, temporarily un-rotate it, along
! I4 P$ d. d; G- W0 \) B - ; with all its Attributes, so the scaling/translation of the2 `. [0 A! d& B$ N- e0 e
- ; Attributes won't have to take the Block rotation into account.. O( t/ D8 x. s m' a
- (if (/= old_rot 0.0)% y& R1 g- b0 B+ ?" S
- (progn" r: c; y. n2 V9 A$ a1 t. r
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
1 s2 j, g/ q- C, k - (setq old_rot 0.0
" I& M/ b/ K" Y! Q0 P: o - elist (subst (cons 50 0.0) (assoc 50 elist) elist)2 O$ u9 [, ?. [& x/ T7 h7 _: W. ~+ V
- )) s% d0 d4 o4 S& T0 |5 O; V2 J
- )
% _1 y5 x* D6 b) l0 O - ). c) h) [1 k2 ]% G
* f5 k7 J( u2 |! K7 P7 }- (while en2; Y: @4 f- d3 H. f+ q
- (setq el (entget en2))1 P* K3 y* c4 y6 j5 @6 V$ O9 _
- (if (= (cdr (assoc 0 el)) "ATTRIB")5 `; O" d' h! B9 u
- (progn
- ] T& Y: r% o0 J8 F - (setq old_hgt (cdr (assoc 40 el)) ; Height* y* m8 a' {5 L) d
- old_wid (cdr (assoc 41 el)) ; Width-factor
/ }( B/ w) E _, t5 u2 T - oldp1 (cdr (assoc 10 el)) ; Generation start point* w+ e+ r) B7 U+ c. T2 I) }5 Y7 O" O
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt3 L" \0 y! G7 O* r% c
- ha (cdr (assoc 72 el)) ; Horizontal alignment
5 C' l2 y9 r, g f - va (cdr (assoc 74 el)) ; Vertical alignment$ P( G0 R2 c9 W
" n* r3 r9 m+ Y5 Q, U- ; Translate gen. start point3 n8 R! M6 @9 O" A0 l4 Q, W
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
# n, E) \4 x8 m' e* ] - (+ ybase (* ydelta (- (cadr oldp1) ybase)))9 `. z3 O& m4 ~- Z$ s
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))
& Q' c1 {. D+ N - )+ }3 m! D' a, ]3 g8 f
- el (subst (cons 10 p1) (assoc 10 el) el)# |* A" T; ] ?- K' f
- )
# G. K) j- f" J+ D" d - * w. I$ L; \3 o- x: c* Q8 C
- ; Translate alignment pt similarly, if present and applicable" N2 b2 y3 B0 @2 c4 U. e& D; P
- (if (and oldp2 (or (/= ha 0)
- B. u9 X1 J# ~. Y. s - (/= va 0)" a: r- B, g7 E1 f
- )+ e- j: {* Y; g4 E; W
- )/ t9 U# i }6 |
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
8 Y2 k+ `$ F( c - (+ ybase (* ydelta (- (cadr oldp2) ybase)))8 H: W2 e7 w1 y7 `
- (+ zbase (* zdelta (- (caddr oldp2) zbase))), A5 b L1 j: U7 B3 A9 d; P( Y6 y: P
- )! p( c# m5 ?1 E
- el (subst (cons 11 p2) (assoc 11 el) el): U T3 J. N# U- \0 h" A; v
- )" N) x3 E( ^. N* u6 n
- )
; o& ^# ^3 W7 n8 z! d/ F T) `0 `
9 q- b M7 @) e& X- ; Each Attribute's height and width-factor were computed7 S7 v+ ^7 I, q9 r, C
- ; based on the Block's scale factors. Adjust them now,8 @4 D/ U: q* p' E
- ; by first reducing to values for 1x1 scale...1 c8 ]: M& }6 w' ~
- (setq new_hgt (/ old_hgt (cadr old_scale))
{" u$ i# l" a$ H/ \ - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
0 n( c# j/ f: I# ^$ r w9 y# K3 p - )3 j% g3 V% a- t5 W& r6 S1 w
- ; ...and then rescaling.1 @9 G' d; R W9 o1 ~9 @: A, x( w3 Z# t
- (setq new_hgt (* new_hgt yscale)% P, Z+ F, Y d- E; P
- new_wid (* new_wid (/ xscale yscale))
; t6 q/ ?, m, r- B3 b - )
% K" r- T: F1 [* S - (if (/= new_hgt old_hgt)
2 O$ L" R# B1 C6 k - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))! p# X* [6 ^4 a% e/ k, R
- )
0 H9 a9 M' O4 n- Q% Z. A( }& Q - (if (/= new_wid old_wid)
f, F, K- C5 m4 `. R - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
# W3 C) \0 d: t3 s+ C/ F3 E - )' e) ~4 c6 t& b4 a: ]( J% L
- (entmod el)
$ o) Y! X2 K L& J2 Y - (setq attr T ; At least one Attribute modified
' I e8 b) ]6 `" P5 i6 L - en2 (entnext en2) ; Next Attribute
1 v. l, p5 B- S2 F1 w! { - )
2 l4 m4 u" y2 b- t - )
% z4 H% H% O" u! R8 W" U5 F - (setq en2 nil) ; No more attributes! m5 u/ c9 f( w# `3 c
- )
" B+ G5 w5 q0 x' b2 ?, b1 M - )2 O3 r. ~. C. D* C+ l4 q
- )
& r. V# x% T h& W' @1 G - )
3 ?' E. @; q, B - - J) T6 p4 m2 u& n j& f7 H2 v
- (setq pt1 (list x1 y1 z1))0 j9 a" R2 \5 t9 `+ [# m9 O2 v5 v
- (tempmod xscale 41 nil)
; f# F/ ]/ W8 f - (tempmod yscale 42 nil)/ C! {; f9 H% O* e
- (tempmod zscale 43 nil)6 I( T/ e ]% t2 g
- (tempmod col-sp 44 nil)
- _: `7 x( p& K7 X# E - (tempmod row-sp 45 nil)9 a4 c( u8 H: K( F o
- (tempmod columns 70 nil)2 o i K" j' f+ g
- (tempmod rows 71 nil)
1 k- f- q( O8 J( F - (if (= xclipmode nil)
5 q, K; a" M+ G4 c - (entmod elist)
3 l2 w* D1 C* y4 V7 V - (setq xclipmode nil)0 D% k) Z6 @) X0 ]" ~" v
- ) q/ ~% W) v" \* [/ c, R6 h
- (move_pt1 1)9 c4 A7 P- @+ }) }3 j
/ J. [$ r3 Z) ~ m1 R- ;; Now do the rotation with the ROTATE command.5 j" [! i! B( C# E
- (if (/= old_rot rot) Z$ |* g: S3 ^; a
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))% \$ c) Q; m; k* v- ?7 n6 K
- (if attr ; Else, if attributes were modified,& @5 u: e8 h5 e" F1 M. e0 J
- (entupd ename) ; just regen to force attrib display
; J) ^4 y* ?2 `; o5 I% v4 I8 h6 l - ); K: H/ q( X* T8 T+ ^/ H) X" B
- )' O8 {7 F! Q2 U# |* ]
- (setq elist (entget ename))
' L$ S$ ]1 K- S9 Z: z - )
! B2 Y5 \2 b1 i1 J @# _3 f# L A - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)" z$ R& O+ K0 F$ \% K5 ]& P8 Q
- (setq newhatch 0)
" K* o5 K+ w/ o9 \+ p - (setq blkname (cdr (assoc 2 elist)))9 Z6 L0 ~; w" @! r" E
- (setq blklist (tblsearch "block" blkname))9 }# _2 y6 c D) v4 J/ e
- (setq blktype (cdr (assoc 70 blklist)))
c& x# _0 t: O/ X - (setq xcliponoff 0)
. B. \# J$ i# a# K7 U0 X' O* T9 z - (if (or (= blktype 0)(= blktype 36)). y4 `0 ? ?* k+ j, Y/ e& R
- (progn4 B3 `: o0 X! e- W5 B; D- c
- (setq xcliponoff (xclipon elist))
; {1 ~* ]9 T: P. B' E& ~7 H5 a - (setq temp_xclip xcliponoff)4 D1 j: T8 l1 c* Y0 w: \7 ]
- )3 K; k1 m8 D" q* b& p" Y Y; m
- )& t6 f6 H2 E1 R; G- N2 y# m
- (if (= (logand blktype 4) 4)
. Q |5 `4 e& \7 T; r5 ^4 M% P. i* @. v - (progn2 z: h' ]7 A! ~9 x4 \+ o6 \- v: m
- (setq xrefpath (cdr (assoc 1 blklist)))" g1 Z" L" Q+ j" Y" P a
- (setq help_entry "modify_External_Reference_dialog")3 R) y p. s! ~, i3 P5 A
- (if (not (new_dialog "ddxref" dcl_id)) (exit))2 R3 [8 R- Q8 P% b" S0 s5 T; X2 n
- (set_tile "Bl_name" blkname)
' r! ]- n9 I5 f8 n1 a- q - (set_tile "path" xrefpath)+ }8 n5 o' C, U; g
- )' q# e' B% M3 s- C4 a
- (progn
" z q i' Q# R( ?+ h - ;; Get program name for use as Xdata app name6 }" F# T# |" f" ?4 B4 q" j. q
- (if (not (setq program (getvar "program")))
% N# ~. g4 K+ A$ x* R" ?. o1 T - (setq program "acad")7 K; y: a& i( e* |/ \9 Y* a" Y: |$ k @3 A
- )5 ^9 G0 H/ Z- A4 W+ q
- (if (and (setq temp (assoc -3 (entget ename (list program))))
% p: A2 `5 p. f E1 J: y7 ~ m* j - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
. C# [) R C$ @ c! f3 Q2 n - (assoc 1005 (cdadr temp))$ D6 D8 c% u3 c. }- y3 V
- )! E2 w" G& t. M6 }- e( C
- (progn
6 k, N* p6 C# E# [' T( e5 E) ` - (setq newhatch 1)5 I6 V% i8 A0 R5 V" l( d) Y
- (setq help_entry "modify_Hatch_dialog")2 ^( \# _, O; |. W" A
- ;;; convert the object into a new hatch
# f* q4 f; F( P. ?9 d - (ai_undo_on) ;; enable undo
; B; i) v* Y$ ?% V5 X2 t, R2 S - (COMMAND "_.UNDO" "_Mark")$ V# m- Y, Y- C& O; u$ [# [
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")- i/ A' J) h) v( Y+ p& X0 s3 L
- ;;; suppress nasty message from convert command- @5 r+ c4 i, J$ U
- (princ "\r \r")/ k% e7 j$ |; _9 U' {: c$ [9 D
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))9 z* P9 a' Q' p' q
- (setq old-elist elist)/ O/ a6 B" ]8 d" k2 z% k
- ;;; If we have cancelled ddmodify0 T9 x$ j' k9 d3 H8 P+ ~# ^ I! ~9 e! }
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
( D$ l0 f0 e& x1 A' v- } - (command "_.UNDO" "_Back")
" M. l. ^8 T3 b4 A - )8 u8 d# k! s$ v7 q0 m
- (ai_undo_off) ;; restore undo state# c$ t T! F4 z: m
- )8 C: W. \' Y) _
- (progn
- b% ^# |. P2 g5 N' L0 S* I - (if (not (new_dialog "ddblock" dcl_id)) (exit))
& Q* H: P8 C9 b$ B/ Q* K - (if ( = "*" (substr blkname 1 1))& ~6 r+ L6 N( X2 i$ s4 d r
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))8 y! ~! e. H7 T; e# k
- (set_tile "Bl_name" blkname)2 z# b/ x3 S# y( f( `5 f0 Y; t( f
- )
6 ]4 n$ D9 \; R+ U' ~) p$ C - (setq help_entry "modify_Block_Insertion_dialog")
2 f! \2 X' g7 b9 z/ ?( n" m - )
5 A% A$ s4 G+ `6 Y, ]( \: ?6 V - )
& c9 w c3 s$ L; o! M - ). E: y$ R% L$ y6 p, i
- )
1 `% A7 ?1 [' E - (if (= newhatch 0)
3 X9 m) a/ v! p# E; ` - (progn
# j; q9 \+ r8 T2 U9 X - (set_tile_props)
- }: a" X2 Z4 Y# i - (set_tile_handle)
z' w7 {: N/ U& [ - (set_tile_pt1 1)
7 h* _7 {; q. q! S3 ~ - (set_tile_rot)" k3 u! V0 d# i/ l2 t6 B: c
- (set_tile_scale)
) _$ z* Q% U% Z' a0 [" | - (set_tile_rc)
6 o0 B' L2 F# ]+ z, E. u d; \ - (if (= (logand blktype 1) 1)
6 x9 u z1 n. @' k - (progn H" b* t7 q2 b' f! \
- (mode_tile "xscale" 1)2 z5 c+ H/ O' m4 u8 r9 ^
- (mode_tile "yscale" 1)
7 a6 R2 F" O9 o" ]4 |9 I - (mode_tile "zscale" 1)8 k% k: u1 g5 m& _2 c
- (mode_tile "rot" 1); t% _! k" C1 }* y3 U5 m$ C
- (mode_tile "columns" 1)
! \ V! U2 L6 M& U0 h! p8 Y8 p; h7 i - (mode_tile "rows" 1)+ b. ]/ m$ I; g* ` [
- (mode_tile "col_sp" 1)
2 i5 ]( t( B$ o; x+ X% i5 h2 F - (mode_tile "row_sp" 1): m2 \1 L/ L/ e) o* Y
- )0 G5 V: n' }2 A/ R0 l L
- )
6 ]0 D5 y1 S! \- E0 a+ k/ A; T - ;; Define action for tiles6 r, Y7 L2 H2 C' _( c" y
- (set_action_tiles)3 d( |! _8 I& J* Z% c+ D8 N; X' x
- (setq dialog-state (start_dialog))2 |0 n; [: R n9 e: p7 J: l
- (cond
# J! y4 Z/ C! |, s+ Q: Y# X - ( (eq dialog-state 0)' ~! W! D# }& j7 |- P$ G" c
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
" N/ e1 H2 F2 W( U - (move_pt1 1)
' s4 b) L7 J) q2 b* M6 T0 S, \ - (reset))
2 `1 u7 C: g" h) N& @3 N9 H - ( (eq dialog-state 1)
) |% R4 [1 H% g' y0 P( @ - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))1 @/ h8 ?; l+ Z9 _: f
- (xclip)
! _. D p0 w6 s - )( t' e) B _# F$ X( }4 Y
- (modify_block))! {# e5 |1 [9 s% `% Q" m* X
- ( (eq dialog-state 3)8 ?, V) W. F3 m6 u* s& x2 O+ u6 i
- (modify_block)
5 L( L* \( ^& N. c( o( K' z9 ] - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))) R' k$ g+ @. u7 g
- (move_pt1 1)
: V. r7 X# ] K2 m. q* r; i& m5 `0 ? - (ddblock))+ C" {: [+ c# m" a6 {# P" w
- ( (eq dialog-state 4)
& `9 H2 |+ L: A3 v5 x - (modify_block)
: f8 w) A6 g0 H2 y2 |9 P - ;; Get current handle.$ T* J7 A5 N# @( ]) |' s
- (setq hand (cdr (assoc 5 elist)))
8 x+ T8 l' L7 I# [0 O5 E! t - (command "_hatchedit" ename)
5 `) J3 ]% w7 Z, E - ;; If OK in hatchedit, a *new* entity is created and the old one
, L- |( i; I3 l6 z& _ - ;; is deleted. So if the old one exists, it must have been a7 G' E, v# _# ? g3 b
- ;; so rest the entity.
/ f! ^8 R1 z! d8 u K6 T7 X/ [ - (if (entget (handent hand)) (reset))
4 ], L" Y% \$ r+ p8 T& s7 E v - )' t$ _* R/ b2 Y+ l/ E+ U/ q- G
- )4 u( M( s3 s u% A
- )
4 }' H0 r% E' O( D - )
& `& M5 K0 s3 \$ G! q - )
$ M R0 Q$ s* ] - ;;
: Z4 ]+ z/ J& O2 Q5 Z - ;; Modify SHAPE
Z% D3 v: _. m( ~/ m - ;;' I/ L9 }( z3 O0 J" r& t2 p7 S
- (defun modify_shape ()
. x; X( K. t6 \ - (modify_properties)
P$ E: d% I$ t+ G: } - (setq pt1 (list x1 y1 z1))" {0 a% Q) X6 n! p$ {: R( ^
- (tempmod pt1 10 1)
- W/ C; | ]' M7 V0 h9 I/ b0 n - (tempmod hght 40 nil)
4 G; a. s% b/ l - (tempmod wid 41 nil)% K* T& [5 P) S0 e# X; `
- (tempmod rot 50 nil)2 d3 \# k! i ^0 E3 s
- (tempmod obl 51 nil)
# G: y2 y- D( q! s - (entmod elist)! `/ A) f; [ T& C# F* s' |' Q
- )
5 g. t+ ^0 x0 o1 h. _3 z! |/ D0 Z
5 x1 ?$ a) ?8 `- N" ^$ r& `9 I' c# e- (defun ddshape ()* u/ c; s$ H/ N2 `, Q( k# z
- (if (not (new_dialog "ddshape" dcl_id)) (exit))
0 V( v8 x Y& T1 B - (set_tile_props)7 G% n. G; c- a
- (set_tile_handle)
4 }4 d/ ]; g! p/ y. c* ^ - (set_tile_pt1 1)- G4 o4 y( Z- v9 {2 I! |9 A
- (set_tile_rot)4 D8 ?# H+ k6 l/ B% k. `( K
- (set_tile_hght)
- {) ` G, E# o9 E - (set_tile_wid). T. {/ ? x2 B5 R
- (set_tile_obl): K! F4 ?* y% y+ y {# ]9 q# v5 M
- (set_tile "sh_name" (cdr (assoc 2 elist)))( |" s- z0 K0 x) t
- ;; Define action for tiles: q6 @: I" _4 m8 I- M
- (set_action_tiles) [% w, s( W* A# B
- (setq dialog-state (start_dialog))
' ^/ |! @3 z; U. F) S- s - (if (= dialog-state 0)
% Y& U0 \+ v5 i6 q* ? - (reset)# n! p8 Z9 c" p8 r1 p
- )+ P! }! N: [1 k6 K7 _ V
- (if (= dialog-state 1)
) Q0 q( \9 ?/ D2 F - (modify_shape)
& l8 b, ~, L j8 F E/ A* ]0 G - )
# X7 j5 P/ I0 A2 _ - (if (= dialog-state 3)
, f D, Q6 m# o; d: R3 ^ - (progn
5 A2 L& z* ^* H/ Y2 U# {6 q - (modify_shape)
) u1 u+ E) i* r5 c - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
+ j( g) d6 g5 r9 C! l - (ver_pt1 1)
) I( }2 B! m2 J# p" [. m& r - (ddshape)
- _, I- W5 Z& A5 g) \+ \1 o# Y - )1 j- ]0 }, H) W/ @ ] u* p" w' [: [
- )
4 P) S ^- r8 i; f, t - )- K9 f+ `- P j# B: ]+ I( w4 w
- ;;& u. E5 a( d5 g( _% C
- ;; Modify TEXT or ATTDEF$ B" f. _. M8 L9 o# z
- ;;" m+ U) `4 A' h
- ;; Set bit code for upside-down and backwards setting' z* |; f! o, G x `! U
- ;;
8 C9 _4 Y: _+ W$ E4 g8 @" C# v - (defun code_71 ()
& Y* z" x; l) f0 E7 s! V" e" y - (cond ((and (= bkwd "0") (= upsd "0")) 0)
) e8 l5 F& X% m - ((and (= bkwd "1") (= upsd "0")) 2)+ y! M6 k1 ]1 T3 O s* T- Q
- ((and (= bkwd "0") (= upsd "1")) 4)
9 U+ ^" s; U r8 f4 J - ((and (= bkwd "1") (= upsd "1")) 6)% ]2 M$ Y+ S6 E1 w+ ~
- )
, y& ?8 A, L! \" k: t - )
- \- c: b; ~- P, U6 J - ;;
3 z4 v, B6 e6 I w0 x* z - ;; Style action. Reset widget values to style defaults5 k5 N- s# Z$ c6 K
- ;;/ w# W: x) s, |! G {/ Y: f7 u! c
- (defun style_act (index / style-list). Y$ O" B* \5 X+ {
- (setq style-idx (atoi index))& f) k! e; n% {
- (setq tstyle (nth style-idx slist))
" A: G9 _/ {0 l0 O - (setq style-idx (itoa style-idx))
/ B9 g( E2 M4 F7 B3 ?0 ]% ` - (set_tile "style" style-idx)0 z* J; |1 x/ R
- (setq style-list (tblsearch "style" tstyle))
, ?; ]1 b/ p( m - (setq shght (cdr (assoc 40 style-list)))
@( o& T! L% }) ]1 X6 {0 M3 G - (if (/= shght 0)5 O' W) w5 n8 g
- (progn
/ c$ H% h( m8 w# W - (setq hght shght)
0 ]0 [9 @, K5 o1 N# V0 ~ - (set_tile "hght" (ai_rtos hght)): T3 \( g4 B4 h! L% y: \! Z
- )& O' y9 V1 n/ u- e7 B# P
- )$ h/ V5 F7 W, g) k$ h5 ^
- (setq wid (cdr (assoc 41 style-list))) u$ L" i3 g0 l' C M$ u$ s
- (set_tile "wid" (ai_rtos wid))
' e0 q% a4 t- Z$ q) N5 p3 K - (setq obl (cdr (assoc 50 style-list)))3 n0 Z5 w, M9 i4 b8 Q0 P6 I/ d
- (set_tile "obl" (ai_angtos obl))! S. W4 s+ ~8 D, \8 A1 d! t& y* W
- (setq bk-up (cdr (assoc 71 style-list)))
" A- D. e; F0 h - (if (= (logand bk-up 2) 2)
/ D9 h5 L* d/ x0 u9 f, K, N$ U6 @ - (set_tile "bkwd" (itoa (setq bkwd 1)))# E; @: d1 N3 \( i( n5 q
- (set_tile "bkwd" (itoa (setq bkwd 0)))# i: `5 L2 ~% u
- )* d5 P9 l7 I: r$ X
- (if (= (logand bk-up 4) 4)8 N' Q0 u" p7 I0 @5 N# \; n$ g- r; n
- (set_tile "upsd" (itoa (setq upsd 1)))
& p2 l6 k* ^. Z# B/ Z6 a - (set_tile "upsd" (itoa (setq upsd 0)))0 }- r* i4 r4 N
- )
- @8 V2 S) f0 J5 o2 H5 D1 S - )
. r4 n; p) \' o - ;;% F, C2 E) Z" p6 k- O' F" `
- ;; Justification action. Set vertical and horizontal alignment variables,
0 T% ^. ?# y: D- a: E' U$ I' h - ;; grey out rotation and height if alignment = "aligned", grey out rotation
' t9 |9 D4 b5 l: k+ J7 r - ;; if alignment = "fit".0 p. C& U6 O! G8 Y" `# y( t
- ;;4 j+ z' W+ c2 |3 ]- N5 S
- (defun jlist_act (index / templist). w6 g* J3 ~) i ^& h
- (setq just-idx (atoi index))
3 B4 U# H6 e9 n1 n" {9 Z6 @& I - (cond# m. d; T r) N$ v/ j, ]/ \
- ((= just-idx 0) (setq va 0 ha 0))) l* V& s6 d# U3 d8 N
- ((= just-idx 1) (setq va 0 ha 1))4 b1 Q6 A' u4 O7 {, l1 G" K
- ((= just-idx 2) (setq va 0 ha 2)): B9 [% p* A2 X: [8 I
- ((= just-idx 3) (setq va 0 ha 3)): O) ~2 c6 Y, q
- ((= just-idx 4) (setq va 0 ha 4))
* j: q% P* k+ m$ p - ((= just-idx 5) (setq va 0 ha 5))
, w0 h6 s( F+ y; p9 K/ Y7 } - ((= just-idx 6) (setq va 3 ha 0)) P& m' R$ Q4 i' Y$ y( e
- ((= just-idx 7) (setq va 3 ha 1))& P9 U& C2 ?2 S- B4 }) M, S/ r; h+ `
- ((= just-idx 8) (setq va 3 ha 2))) G; y+ s: ^ F/ D5 u V/ S2 |$ \9 f) W
- ((= just-idx 9) (setq va 2 ha 0))! Z1 e+ P6 M4 \1 B' S }
- ((= just-idx 10) (setq va 2 ha 1))
# z2 B7 u Y: M0 h8 L, c$ _8 H; l - ((= just-idx 11) (setq va 2 ha 2))9 X! O5 I6 X, T2 k+ d9 q" N5 Z4 Q7 c
- ((= just-idx 12) (setq va 1 ha 0))" c' K8 U) ~; |6 R
- ((= just-idx 13) (setq va 1 ha 1))
( b+ b! A/ z) ]/ j# n4 ~5 \ - ((= just-idx 14) (setq va 1 ha 2))
! a* L {8 i" z) [& J# h/ {' D; \ - )! G' |* j v4 O
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
( c- X& v Q) I3 p1 s: b - (mode_tile "rot" 1)
^3 d5 f- d. C* m. X( W - (mode_tile "rot" 0)- ?+ E2 d {% g n# ^' r
- )2 z8 e/ ~5 a! {$ P: S2 _
- (if (= ha 3) ; If Aligned text
2 R5 ^4 ~4 V& R - (mode_tile "hght" 1)8 |( z7 f/ B$ \, @
- (mode_tile "hght" 0)
' z, v% I6 {7 J0 z: } - )
4 {7 F, D% y5 y - (if (= ha 5) ; If Fit text/ J2 K( F0 Y" u, H; r+ G: [" T2 k, J
- (mode_tile "wid" 1)
+ @9 K6 T0 L0 R7 c, c0 F - (mode_tile "wid" 0)( f# Y( _! S: A* M1 {5 V9 s
- )9 `" l. H: m* D
- ;; Reset rotation and height if changing from aligned.4 Z% L" O) _$ e8 E. ?
- (if (and (= ha-prev 3) (/= ha 3))$ K, i& h4 X, ?& s7 l' A' }2 \
- (progn" ]; X2 r' T+ Y. _& b5 Q( w
- (set_tile "rot" (ai_angtos (setq rot 0.0))). n' H0 d, u4 W I5 C" U' {% T
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
* j+ k5 o& ~; ^1 C - )" Y" [+ l1 H& `- u7 j# Q4 P
- )
7 S2 v% {( e/ h* [1 V, Z7 h - ; j7 W. F: q q
- ;; Reset rotation and width if changing from fit.
( |% i4 D" R* o) [: R6 F/ j - (if (and (= ha-prev 5) (/= ha 5))
& H8 V1 x4 X$ N- e! | - (progn
( R8 _. }9 Y+ x1 ^) T( a - (set_tile "rot" (ai_angtos (setq rot 0.0)))" J, l" t0 \5 W" w; b& e8 W
- (set_tile "wid" (ai_rtos (setq wid 1.0))), H: Q0 @9 |- j- R+ _/ w
- ): k& k3 e) X4 |
- )2 S8 t/ }7 H, K& [6 Z7 B: _" T
- 6 }$ V/ w4 X3 u9 r3 N
- (setq ha-prev ha) ; update ha-prev for next time
. M0 l5 D0 g- D( h) O+ n& X0 m - (setq just-idx (itoa just-idx))
& T! e8 b8 P# y. f% P% S' x - )$ l! N$ K* z9 a8 N# q; K8 W
- ;;
$ s g' {6 N" S$ l9 U' o: D - ;; Set intitial alignment setting based on vertical and horizontal alignment/ A: q! s4 H- Y
- ;; bit codes.) S% i l2 \* n
- ;;
" Y+ g+ {; u" g& t$ u, B+ N% _4 a - (defun set_just_idx ()
) F% p3 J& c: A% s4 J - (cond
) `/ T& B4 U% {+ L. m! i7 \ - ((= ha 0) ; Horiz alignment = Left
1 j' F9 z! R( g4 ^3 M - (cond
6 V4 c9 a( {" S- O! F; _ - ((= va 0) (setq just-idx "0"))
8 _# m+ J( e! i$ D: n - ((= va 1) (setq just-idx "12"))
2 P& Z: r3 [" v4 G$ G4 y) U - ((= va 2) (setq just-idx "9"))* }0 F: }9 d" P- D- l3 K
- ((= va 3) (setq just-idx "6"))" ~& r+ {$ B. N( D3 w* \% U
- )
4 k b9 Q l9 d& S' ^! @) F- U1 E - )
( Z$ c# X' P, A( ]; n1 H: j - ((= ha 1) ; Horiz alignment = Center
- R5 s; _6 b: c* v: }9 _8 H' o - (cond) W; m' J& J% H9 ^& s
- ((= va 0) (setq just-idx "1"))1 t9 [* A; O$ f& N! {" e
- ((= va 1) (setq just-idx "13"))! ?+ y' B6 J8 U! z( w
- ((= va 2) (setq just-idx "10"))
" _) z5 s/ b; r- y7 [, k+ J - ((= va 3) (setq just-idx "7"))7 w! d; c7 I: l/ V3 |. x7 ?
- )
) Q s9 `2 }& Q" Z2 J - ). z/ v/ C; X* |% G, V& @
- ((= ha 2) ; Horiz alignment = Right
0 Y7 a8 q2 T: E1 y6 @ - (cond
* ^& G. ~& H3 r7 a - ((= va 0) (setq just-idx "2"))
2 h7 s9 z( r- ]# N" S7 K/ q - ((= va 1) (setq just-idx "14")), }' H' [; ]/ t4 {, A
- ((= va 2) (setq just-idx "11"))
* T' I) y. D+ Z; _) j - ((= va 3) (setq just-idx "8"))& E# S* U$ n5 S2 G; b, e
- )
& t4 E8 w5 m7 a8 W5 y - ); I/ N. i" ^! |! b
- ((= ha 3) (setq just-idx "3")) ; Aligned
& W+ a/ J7 U5 l" U1 z, A8 j. `, F% |9 z - ((= ha 4) (setq just-idx "4")) ; Middle
( \5 ?% V1 {0 v- P - ((= ha 5) (setq just-idx "5")) ; Fit
" H9 x# w, {3 B% D) I# z - (T (setq just-idx "0"))+ s) |. a) @- b: L. ^
- )
8 ]% l# N/ L T: {. x% r: Z - just-idx% L! D3 a8 T- D3 z7 M8 R( P$ h
- )& B |0 h, \; O" }/ @% n. t
- ( |9 T6 T$ h. y8 E3 R7 D0 N: s: ]
- (defun modify_text ()
; s9 Q: c3 Q( E7 e9 N/ \+ l - ;; insertion point
3 k, R; t4 |9 J* `/ B9 z- f - (setq showpt (list x1 y1 z1))
4 g, P- f6 q, |* X) m) i' r - (setq bit-10 (trans showpt 1 ename))
) S4 c; o& t I8 L0 l9 L9 Z - ;; alignment point
1 [! A } X( x - ;; for 'Aligned' or 'Fit', alignment point must be different, O# G/ L; B; ]! B% I
- ;; for all others, use insertion point
' F5 i4 n+ l4 G, g" p0 k - ;; (ACAD will recompute insertion point)1 L% P6 l3 s& P4 h [. K8 p
- (if (or (= ha 3) (= ha 5)): F" c" U9 X u7 ` O2 r J% c
- (progn( w2 F( p- o) M1 \+ ^: Q% E
- ;; if no alignment point, fabricate one$ I- i$ r1 I1 U/ R; p
- (if (not alipt)
5 {& r2 ?/ v3 ^: g8 L+ B3 Y - ;; add text width to insertion point# J( l' ~' l. W- r
- (setq alipt
- K% Q6 a& n% G- H- f, C" o9 L3 y - (list (+ (car showpt) (car (cadr (textbox elist))))
( @& p# B; E& ^. i% p - (cadr showpt)( U5 i; C+ ]' j& E! {. d
- (caddr showpt)
6 K6 k, P& y& F, {/ ? - )
2 u& P( F+ ?0 F. n) { - )
0 {" g4 R1 L4 T4 t- I5 f5 c - ). b6 o U' L d/ Y
- (setq bit-11 (trans alipt 1 ename))
# O h0 D/ |# z! H' F- q4 o2 y$ ?) p - ); u' Y6 g; B9 u2 e- O' D! k
- (setq bit-11 bit-10)
; H1 N: o; L" ?5 R1 r, y - )
/ e, V' i8 l3 k2 N7 }5 R1 D - (modify_properties)
: l% {8 h+ @7 A- t* L - (tempmod tstyle 7 nil)
) Z: O$ I; C$ a: w7 _' G - (tempmod bit-10 10 nil)$ j5 ^9 `: s1 B( c& O# J" N
- (tempmod bit-11 11 nil)
2 [3 ^ f% I+ e4 M, o" w - (tempmod text 1 nil)* n8 h7 P- p8 I( c" o6 P& j
- (tempmod hght 40 nil)
! `8 a- J1 h" k+ N4 p2 W, J - (tempmod wid 41 nil)$ U& i% Y7 a( D8 P6 v7 R5 r( F
- (tempmod rot 50 nil). `$ A7 @" T+ Y# A: w6 y
- (tempmod obl 51 nil)2 r# x2 N' W! g' C/ `5 C
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))6 k, q2 `! X; } n/ [# S
- (tempmod bk-up 71 nil)
1 _! o% P8 H1 B/ Q( |- Z' S - (tempmod ha 72 nil)
; `; e) `9 S0 \7 w( b1 `, C& ?# I - ;; Attdefs use 74, text 737 y; }5 X/ L Z
- (if (= etype "ATTDEF")
+ i; y% `$ x0 v- R, R' s+ { - (progn
7 [& i' l9 b) D - (tempmod attag 2 nil)
' }5 A6 N# P* x% y' ` - (tempmod atprompt 3 nil)& U- X c- } u: Q ^; C
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
" w, K3 @7 k& h& B - (tempmod icvp 70 nil)- N$ h/ g6 x3 T G% E6 a
- (tempmod va 74 nil)( V. ^. Z2 D& y
- )
6 j0 }% b4 d8 |. f - (tempmod va 73 nil)
* z( o* V6 G( P - )5 |9 y/ x" D' I6 @" v
- (entmod elist)3 S3 f$ q) b! c3 F& z! e
- )4 Z- g1 ~# r3 O9 [
- ' p$ v! ~$ X! ?! \- `
- (defun ddtext (/ 2ndpt slist i)
" q8 P7 s' u9 V - (if (= etype "TEXT")5 b- B4 T0 E1 w( ?! Q
- (if (not (new_dialog "ddtext" dcl_id)) (exit))5 `" M4 Q% m* p; v, f5 H
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))
" w5 l& a, D7 A6 N0 ^/ T% G9 S - )
2 J0 F. b8 S' D) w7 h9 {0 S - (set_tile_props)
3 t" B# r' w& c5 ]4 p& Z - (set_tile_handle)
/ o7 d9 U0 c: \4 Q/ A - (set_tile_text)
; [8 v) p' F4 _9 O* ^9 v/ M - (set_tile_tag)% \+ m" L3 ~! M7 H* S4 X9 x" u/ _7 B
- (set_tile_prompt)
, I. U; I4 h7 z - (set_tile_hght)
2 N0 C, Z1 O8 d6 A# X' } - (set_tile_wid)
0 w6 `9 y2 W5 e+ B5 y - (set_tile_rot)4 P& y: i+ t& `3 ?4 d9 L
- (set_tile_obl)& g% p7 e) q& @! g+ t b: b1 M! s
- (set_tile_bk-up)
8 {2 F+ s2 l: Z - (set_tile_icvp)* I0 x* T( m) A3 c
- (set_tile_style)0 E6 o# l: Z& n2 K; t: R; _
- (set_tile_just)
' Z( `. |2 ]8 j, w# ~3 R# Y - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
) k8 n/ ]4 E' q/ H. u1 T2 t& {: g) T - (if (not (assoc 11 elist))
' x& O+ ~6 |3 J ~! J/ D - (progn (setq pt2 pt1)* R5 x* y! j5 T. o0 |4 j
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
5 t! D/ u% j& |$ B' d% I _ - )5 Y2 u* G) l7 i: j
- ;;(trans '(0.0 0.0 0.0) ename 1))
/ S7 i" ?% B6 C+ D! k - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
: I* y' H/ U6 T$ D/ @# g - )4 P. S0 t7 \* w" U j
- (if (or (and (= ha 0) (= va 0))6 @$ E! K7 x! ~1 _5 J' V% _
- (= ha 3)3 Y, M6 {+ W# G
- (= ha 5)5 V/ p2 ]% @- F1 X
- )" c: d4 P) F; H( ]8 ?* }
- (setq showpt pt1)* S, b" e; K! k9 R# v. d
- (setq showpt pt2)- J) F; f4 q& J+ L
- )
# v% K, o. D9 a1 s$ g5 c( @! i - (if (or (= ha 3) (= ha 5))3 q' M6 x7 [- ^" T
- (setq alipt pt2)9 h2 T! I7 L+ z ~4 @ v: b
- (setq alipt nil)6 f* ]# j% E3 X& B1 j/ Q
- )9 A; k8 T1 `& z" s, n
, F- _0 ~- r+ Z7 u- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))1 E4 c9 n3 @# I% `
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))( v: _1 |( J [% E) q
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
$ y' l/ h( X* Q3 Q) F; A
$ a/ s8 e- U5 o; O- t6 Z- `% i! E6 y- ;; Define action for tiles. R$ I/ L- e- t6 q# O# T
- (set_action_tiles), y3 D$ h; ^8 F) }# A1 `, j7 d
- ;; Set focus initially to the text edit box.
+ r, _1 y, [1 K7 h- N, [6 ?: d - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
# w) r% p: ?% {: {" g - (setq dialog-state (start_dialog))5 u/ P% C1 W& A1 b% A& o5 u+ O+ x8 p0 I
- (if (= dialog-state 0)
9 x8 b9 Q# T5 o5 j- ]5 Y - (reset)
7 I5 }9 m" d V3 K: R8 J - )
* h" z% B' i% Y7 ^ - (if (= dialog-state 1)
( _% ^9 d& e) A* ]3 b$ k% C$ z2 J - (modify_text)
" l, b# H' O7 B' `9 J- ]% U2 t - )5 t. W, D- U4 d
- (if (= dialog-state 3)( C. m7 L' v6 V% {1 u7 |; n
- (progn! m, i% |0 J6 J2 q
- (modify_text)
: t! [; O+ ]2 D& N - (if (or (= ha 3) (= ha 5))
9 c+ J/ ~0 z0 R+ h - (progn% f" h" Y$ u* b3 M8 h9 m' Y8 ~
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
7 [0 t& ^0 d8 s- J# c* D - (if (not showpt)
1 _- X, C0 U$ K1 i! D5 k - (setq showpt (list x1 y1 z1))0 _5 K; u# d9 v. I
- )
. W p) ^ N5 l% Z- [: m - (setq 2ndpt (getpoint showpt "\nSecond point: "))
^' I! R! j% | - (if 2ndpt: I% q) V' T' Y. f- ~% J$ ^1 |
- (progn
) O7 V% ?: A' e' [9 {+ b- k r - (setq alipt 2ndpt)& \; l* F" \2 `0 Q6 r- z
- (tempmod showpt 10 1); a) u, d* R' x7 \
- (tempmod alipt 11 1)5 L. O2 s; I* W# ]
- (entmod elist)4 w/ |) U! X8 b; S4 @2 W
- )
! l* n7 y* I% a2 B) h" k - )! [+ j( b* y/ h: \, S
- (setq elist (entget ename))
4 X F; R9 L& }0 A$ t2 p - )
+ K) d* J# r) j) |6 z - (progn' K* y" e5 X, e1 k: M
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
; f. [/ H1 H6 h4 F2 B - (if showpt
/ Z' a+ v0 r9 {7 a3 z - (progn
# ]9 J. B# q4 s4 W) y - (if (and (= ha 0) (= va 0))6 H0 V, w2 r0 D) Q1 f0 _( q9 U
- (tempmod showpt 10 1)
# H ^ p- j r - (tempmod showpt 11 1)+ ~ |; E, a0 z: J, J: Q* b
- )
& {" h- `% B/ z8 J - (entmod elist)7 h( d& z0 Y# d/ I) v- H$ b9 t
- )
9 s" o% S% R8 s' H' ]# b7 j - (setq showpt (list x1 y1 z1))
! I- r! N+ ^5 C; g! T - )
. U$ M& t x: |: Z3 w - )* p# ?: `) `9 s1 h, N
- )
) L8 Z8 z/ e) r" e. R# \ - (ddtext) r$ @ b2 l% A
- )" t: S9 R- _. f4 p" J
- )) R" |: H8 H) k- \1 Y
- )
# }8 O" X% k5 Z/ r0 W4 E6 ~2 e
8 [7 V* C2 {7 t1 E1 ^9 c- x/ {2 V- ;;
3 j. P0 b9 ], r - ;; Modify MTEXT1 D% f% ?. Q+ f; @% T9 G8 }
- ;; {5 m) l, b, l( \9 D Y- n
- (defun modify_mtext ()
5 U% p. {$ P8 b8 n - (modify_properties)- A6 i" V U- d1 L9 @% ^0 ~
- (setq pt1 (list x1 y1 z1)). j8 s+ G0 A. ?$ I `$ t! l$ }
- (tempmod pt1 10 0)
7 ^# O9 [7 A2 E( p( F - (tempmod text 1 nil)
+ G5 g& U d3 a$ u+ H! B2 a - (tempmod tstyle 7 nil)
6 |# f8 K p# \. w - (tempmod just-idx 71 nil)
w0 u6 Z, e" _2 K6 ] - (cond
! t3 x: V. X1 S7 Z3 u4 @4 \ - ((= dir-idx 0) (setq dir-idx 1))
8 ]( e( _" C t. z1 W - ((= dir-idx 1) (setq dir-idx 3))% o1 t5 G7 G6 ^* b Y9 A2 ~5 C; J
- ((= dir-idx 2) (setq dir-idx 5))
; O4 g, l% d. c( b8 T, r - (T (setq dir-idx 1))
8 f `$ X0 _7 C0 a - )5 O4 c' y: }! O5 `3 W& t/ @ \& ]3 G1 j
- (tempmod dir-idx 72 nil)
$ Y. @# V3 D$ ]: c8 t4 I) M - (tempmod hght 40 nil)3 K6 B. A* X4 E1 B
- (tempmod wid 41 nil)! ^3 D& L$ q- ?1 z5 }) b4 {
- (tempmod rot 50 nil)+ n U! m) m3 m* M4 r% l
- (entmod elist)2 N! a2 }! I, ~' B" J5 n
- )* T" U: ~% W* d) ~7 s
- - U! Z( k/ ?3 P1 V+ V7 H4 c7 r4 h; r: U
- ;; Set MText text style
# L; d5 o1 Z" _' I8 \ - (defun MText_style (index / style-list)
, J1 u, u, J3 ~( c - (setq style-idx (atoi index))" G+ R+ {% N% }( V" h
- (setq tstyle (nth style-idx slist))
- u& n, }$ [$ w6 X; x, G4 T: C - (setq style-idx (itoa style-idx))5 C) M) S8 C1 S; `2 _) d
- (set_tile "style" style-idx)# c" A8 S! S& _# l
- (setq style-list (tblsearch "style" tstyle))
/ v; Q7 P$ e4 P2 y+ ]5 M - (setq shght (cdr (assoc 40 style-list)))
- n4 r6 N( r- k( D( A+ x# W4 ? - (if (/= shght 0)
8 N2 f/ v/ T' }$ w f, m - (progn a- l! m, N% d9 ?& z2 k$ O
- (setq hght shght)2 @+ t( {2 z! ]" K
- (set_tile "hght" (ai_rtos hght))
; `4 o1 d4 K# A6 l$ U) a - )1 y4 t6 ]4 Q) a
- )
+ y5 O( [' g( K' v; u - )
% ^+ c* _9 {* @% k& v7 Y6 P0 [
" a) }" t5 A6 c# s/ Z6 v- ;; Run DDEDIT on given entity, working around possible re-entrancy( A$ | r! R+ P; v
- ;; problems with MTEXTED
# F$ f* |; W& J* K - (defun safe_ddedit (ename / orgMTextEd work)
! P9 R+ [: {* P6 f$ a - (setq orgMTextEd (getvar "MTEXTED"))
! e. x/ I T2 y; d! X* E - (setq work orgMTextEd)( G4 X) T5 H! w; U8 b, O+ G
- (if (= ":" (substr work 1 1))
8 ~4 `: n% \+ D1 \% h - (progn
- P+ {9 L5 B$ C* k0 O- ?! B9 }; u8 y - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))6 Q$ s' N3 [$ |# W. o
- (setq work (substr work 2))5 D9 Z0 X+ c: K, i" H, F2 K( I
- )8 c) J$ b/ x7 {& c& T3 V
- (if (= "#" (substr work 1 1))
: ^' l! H- u, e - (setq work (substr work 2))* {' l$ ?, A2 N' M
- )
* j. I" {5 v3 m) p: `6 n/ A - (setvar "MTEXTED" work)
% Z) w8 r# t; j6 g, r1 c5 n - )
4 n! z0 b6 P# h% p7 } - )
4 k0 N# e$ ^% E" _2 ]& L - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
5 k. M6 k* h8 f% I/ y4 [# m - (command "_DDEDIT" ename "")+ Q' r9 i+ ?9 m8 n6 A
- (setvar "MTEXTED" orgMTextEd)
3 _/ W! n7 b1 _* `3 d: _* W1 I - )
5 n: }# u/ N% I( u1 s8 e - , Y% u; N' l' @% e
- ;; Verify MText object width- F' t2 U% x) ^) d' w, C
- (defun ver_MtextWidth (value)3 \. z; ?" I( H' Q2 i% h
- (setq value (distof value))
/ E3 m! I& _' A5 G1 T- t8 A# b - (set_tile "MTextWidth" (ai_rtos value))
# g; e# B( ?; N7 i/ t - (set_tile "error" "")! ~* d3 V# j- Y% A0 y0 F9 B
- (if (< value 0.0)" O+ Y x# { \% B$ s2 n
- (set_tile "error" "Value must be zero or positive.")1 X* e9 Y! y7 Y' W8 {# Q5 O
- (setq wid value)
7 Y" q! d- [# h5 ^ - )* E: x* j+ N3 S5 r
- ): r; O, H4 ? b/ p
- 2 a& v: ~) a! v: W7 U
- (defun ddmtext ( / gc3)/ I0 D" C- Y1 W) a" O2 c9 ?
- ;; Get dialog( E8 D& m2 S- r/ O: \
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
( w: @$ p8 |2 U q - : f8 ~6 B |% z1 e# }" B: C
- ;; Load list boxes' V- X5 V4 o. U7 M2 R
- (start_list "MTextJustify")
. b* r0 J! P; E& P/ i- a% N, Q - (mapcar 'add_list '(
: E( T5 A7 z# \* D2 m' Y5 E - "Top Left"
$ ?2 S/ H- j. b' {5 n - "Top Center"
# y$ [4 |) R! }* l$ A7 h2 v6 V7 o - "Top Right"
' A) ? `+ f; c$ j- x - "Middle Left"
( W D/ F7 W# b4 V4 G3 [ - "Middle Center"7 O n4 g. S% q. _' M
- "Middle Right"
9 W% M8 \/ w, G' ^ - "Bottom Left"/ B1 {6 I4 u- I5 s9 p& l
- "Bottom Center"
4 B. @6 X) |/ R, @: w; i+ g - "Bottom Right") a& m4 J: n) k4 @9 s
- )
1 ~+ ?* e3 ~4 o/ O5 H" k; F - )7 j: w8 l. x: v1 X" E( G2 O, |
- (end_list)
/ ~$ `- `: g" u7 N2 @. G
, s9 a8 E5 J9 w+ Z- (start_list "MTextDirection")5 y% y* [. o' i1 w2 |& i1 D
- (mapcar 'add_list '(/ [* @( W' U! y4 _+ V, b4 |
- "Horizontal"( d- x. ^- u" a4 W& v
- "Vertical"
( A6 h# I1 }, Q - "By Style"& E8 s# R0 r( W I
- )$ L( g X( X/ Z; A" L; A0 N
- )+ u6 o5 i# j, }" c8 q& G N( l
- (end_list)0 R# r- [, E6 [. R, D$ X( Z& p
- 5 F9 t- T( u5 x& m' |+ w
- ;; Set initial tile values
# K" e0 w; x5 m0 d! K2 l' [ - (set_tile_props)6 f/ x* H- w2 K0 _; Q
- (set_tile_handle); C, d6 M3 [3 e4 G7 @* J
- (set_tile_pt1 0)9 R1 _2 j9 b- y3 Q: }3 Q; h: A( M
- (set_tile_style)( b: o2 E5 G( W, `: d
- (setq just-idx (cdr (assoc 71 elist)))
; q( S, o" L1 g' g - (set_tile "MTextJustify" (itoa (1- just-idx)))# v5 m, j$ m. X9 t8 B1 x
- (setq dir-idx (cdr (assoc 72 elist)))
4 v; Z: a2 ?# j - (cond- M( y' N) L$ @ B
- ((= dir-idx 1) (setq dir-idx 0))" ?8 u# q( Z+ T
- ((= dir-idx 2) (setq dir-idx 0))
% g* I- h( s% ?/ ^" [! D - ((= dir-idx 3) (setq dir-idx 1))
. z- N( F- w) a6 O0 h0 u, b& B - ((= dir-idx 4) (setq dir-idx 1)) j6 S$ D! o; A3 I
- ((= dir-idx 5) (setq dir-idx 2))' B3 S9 R! q9 h/ d
- (T (setq dir-idx 0))
/ g% h. K- r( M* Z. Q7 G% G0 } - )7 j* {% n8 ^/ d' m: d1 A% H6 I
- (set_tile "MTextDirection" (itoa dir-idx))
& W/ P" G, q1 \9 E- s: E) r$ S - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
/ E1 ?3 L' b+ A5 { - (set_tile_hght)* @6 I6 L0 T$ n4 L6 T
- (set_tile_rot)( @" }- F% X( ]" ^: M
- . U! f3 X2 P2 a' c
- ;; Set edit box, disable if too long
3 l' H9 n) E. S7 y3 _9 h - (setq gc3 (cdr (assoc 3 elist))
6 M& ~8 d m' Z1 W - text (cdr (assoc 1 elist)))
. k6 ]2 H% O! W1 P- o4 j6 u - (if gc3
4 F1 k+ { v: F4 D$ v" D0 S - (progn ;; Text is over 250 chars, disable edit tile
0 _7 b, G+ q P/ K E+ l+ z3 @$ l - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
* K: l+ Z n- [$ x8 X# E4 `8 v - (mode_tile "t_string" 1)
# h; n7 ]( Z/ T' K' |( E - )/ L5 {; ?7 b y( a _
- (if (> (strlen text) 80)
+ W7 T! b6 k$ R# F/ u$ l* ^( t - (progn ;; Still too big v( N/ l- Z/ R Z# E$ n. M
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))0 i7 e' b- p* T \" W) c
- (mode_tile "t_string" 1)
! \8 @1 J, r3 |, m% t5 [ - )
6 W: k% ?0 W; \, ^! z8 q' A - (set_tile "t_string" text), @" S; |8 g; u5 ]3 [ W0 |
- )
! e$ {, P3 W7 A0 A; K: d2 i7 V - )! y8 y4 W& h: Z$ h4 d) E/ k0 a
; B5 m6 N) f7 {) Q: J/ l' r0 r$ q- ;; Define action for tiles6 R1 o8 ~7 W' D- R: J0 z$ ^; E
- (set_action_tiles)) q/ p$ I! r* O6 z, a% \
- (action_tile "style" "(MText_style $value)")
/ q5 @$ Y. ]: n9 R - (action_tile "MTextWidth" "(ver_MtextWidth $value)")
$ e7 t# ]4 b' C( \ - (action_tile "MTextEdit" "(done_dialog 4)")# I' E$ I7 S8 k7 f% e% ^3 S0 x
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")- J' C/ r/ l* J- O) t
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
" M9 W. @; M2 U8 m3 D! P" n" n9 j& G - 0 S/ a0 n6 Y/ p: H1 p# x1 V" }+ m
- ;; Set initial focus to text edit box.* Z2 c D1 M5 W) ~2 t# s0 l7 x
- (mode_tile "t_string" 2)+ i( e3 L) m' D5 T
- O( ~1 P' b* b6 C- ;; Run the dialog
, y; T$ O( z5 v+ w8 _. M - (setq dialog-state (start_dialog))
) E* s$ q1 f7 T. s - (cond4 r) [( K4 ? d; r; v2 R1 l, q( q
- ;; Cancelled - restore saved data
9 p! i: A: e( u4 S - ((= dialog-state 0) (reset))
) c- Y8 H/ K5 ?) b6 _ - ;; OK - save new data8 Q& }9 Z+ d8 V$ t
- ((= dialog-state 1) (modify_mtext))/ s9 \# G) v" R1 ?5 N; I& H/ R0 {5 g
- ;; Pick new insertion point
1 _7 i! N% Y3 O) @ - ((= dialog-state 3)2 [, ?* i, A2 F7 z1 I0 S5 @" ?
- (modify_mtext)9 V4 M7 E/ a" H" a" z) y
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
& ~9 T1 y+ ?$ ~0 ?" k - (ver_pt1 0)7 U' t) w- g: r" F
- (ddmtext)9 W: p% P7 r" U. V- W0 k
- )/ O% i/ a7 I r5 |/ Y! r
- ;; Run full editor: i% ^9 E& E: N( P. w5 e4 q8 c
- ((= dialog-state 4)1 [8 t5 G0 o P8 E2 W4 d" [2 t+ k5 C
- (modify_mtext)- G8 D% } z5 V! e6 A$ R9 C. p
- (safe_ddedit ename)
" w) I$ \( b+ S; z - (setq elist (entget ename))
3 J. P- _4 v7 B5 h, B/ F+ K - (ddmtext)' G* Z1 N$ ~0 f" b0 i
- )
9 [8 [9 W9 |$ i - (T nil)* Z! D+ W5 L7 `
- )
- c7 H% r* v: P: \9 b - )
5 \7 A6 x- G. Y; U- D2 n" z$ r; u# g5 ^
! H) | ]: I, j- ;;
2 I) B& F& |+ p/ `; ~ - ;; Modify VIEWPORT
) k8 D/ l5 s- @8 S - ;;2 b- n; N2 X2 v, ^9 w/ U
- " j$ v9 W! }4 H* ~8 P; J% U/ |) t. }
- (defun ddvport ()
; v p5 k9 R" H# d& l/ Y; v& a; k - (if (not (new_dialog "ddvport" dcl_id)) (exit))
( h3 G a: p0 B( x - (set_tile_props)
# [% T2 R" o4 K9 \5 B, I! S - (set_tile_handle)
8 D' T: w& V; ?9 I/ w - (setq vpt (cdr (assoc 10 elist)))
A4 b- J- K# L* c3 y: l. t; n G( X - (set_tile "xtext" (rtos (setq x1 (car vpt))))
9 S, x7 t' h9 P. N ?$ T' g5 D - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
3 a. E( A1 E/ o2 B( ?( {1 w& g - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
" S+ K A( p M( e# d/ @ - (setq wid (cdr (assoc 40 elist)))
# Q: n9 d9 ~3 ]) A - (set_tile "wid" (rtos wid))
0 ]# j7 i2 w% N! O& U - (setq hght (cdr (assoc 41 elist))), c' X% N/ d* X# F1 ]2 b7 [- Q6 ] ?
- (set_tile "hght" (rtos hght))
5 F2 ~6 X9 v3 { - (setq vpid (cdr (assoc 69 elist)))
7 w( E! G) e, @3 ~4 @* { - (set_tile "vpid" (itoa vpid))
8 F4 s- B0 I% g3 Z% O - (setq on-off (cdr (assoc 68 elist)))
% D, ]# g+ }4 `1 _3 h - (cond
" H2 m; S p+ ]. W( q - ((= on-off 0) (set_tile "on-off" "OFF"))) E/ x6 G0 ^3 A0 K9 X
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
1 M- M3 l- H _6 h7 S# n" ]7 s - (T (set_tile "on-off" "ON and Inactive"))8 e4 U1 j) p+ J1 V
- )
: x7 Z+ u3 B4 A% [0 I
3 R* [3 d- E- Q0 n3 n: w- ;; Define action for tiles
, Y/ x3 _' _: |. ^; f, Q% J) F9 \ - (set_action_tiles). L: Q/ v) ]5 M) u8 p3 Y0 u
* ^: @- |; S S& x# N d- (setq dialog-state (start_dialog))
/ \) v( N' t* K) S - (if (= dialog-state 0)% D p1 z) j5 S( f! I0 w
- (reset)
0 T) Y3 S& f. y - )7 r( i: I, o6 r8 |, ?
- (if (= dialog-state 1)
U6 x; z3 X7 {: v# R8 X& O - (progn
& L. `. j7 c4 y; N - (if (= ecolor 0) (setq ecolor "BYBLOCK"))3 B! R, x; m3 m6 ]/ @4 G/ M/ l: Q
- (if (= ecolor 256) (setq ecolor "BYLAYER"))/ D) J; }' \% b( q a8 Q9 m$ Y
- (command "_.chprop" ename ""' ^+ p: Y" G4 n
- "_la" elayer
8 o* z" {- Q F; h; g - "_c" ecolor ""+ r+ H* k2 W# |4 o
- )
% U- D# H0 r2 u- Q - )
4 k' [4 ]7 E8 ?! h0 ?2 B8 e - ), E( a/ Q4 d9 I3 ?8 d- q
- )
7 }) D# q! F) G+ W - ;;5 s5 M7 J$ c6 J+ ]5 f
- ;; Modify POLYLINE1 W+ W8 |' h. w* g
- ;;
3 x M: O$ a/ S/ G - (defun modify_polyline ()
( }3 C/ {( }) x - (modify_properties)( L& U# Q0 T- w0 m' d u4 [
- (if (= ltgen "1")2 x) Q) w- q! G$ a4 ]
- (if (/= (logand bit70 128) 128), ~' i" q7 ?. j# M4 n" m
- (setq bit70 (+ bit70 128))
, S& l/ v- W9 j. x6 ?; s$ ^ - )8 K! m* B3 t3 E* |+ Q( J: r
- )* F$ Y" @; }4 y& s5 d/ X
- (if (= ltgen "0")
9 E2 O. Z- Q# D - (if (= (logand bit70 128) 128)9 I! |% z8 u- E, V' x
- (setq bit70 (- bit70 128))* n1 r' |; G1 D2 H T, A
- )
. a# u5 k/ o* [' R - )
' g0 T8 A8 u1 P! M4 t) V2 v - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
; Z) ~' u) U+ T$ f* E1 M - (entmod elist)
! R* C6 G* Y9 g, N3 ]* P7 I - ;; Added to take care of updating Vertex information for color
0 W9 u, w1 O' T l - ;; and linetype.
/ U e# ^0 `, K& s; Q0 a - (setq save-ename ename save-elist elist)
( B/ l3 j* c6 t - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
, P/ u1 P& ^- c8 T6 [- d - (progn2 n; Z6 |, u' a9 u+ ?
- (emod ecolor 62)4 N, S% |0 u- y; ?" L: ~- H
- (emod eltype 6)% K$ t# n2 L3 u3 x n3 Q
- (emod eltscale 48); O, p$ w9 l& |* P/ n
- (entmod elist)
+ g. P8 O4 N. G: j5 H& z - )* F1 |6 a* K# ? r f' ?" }. n- V. H
- (progn
) p9 h8 q; {8 X e, b" R - (setq ename (entnext save-ename))+ e3 u( V' F2 V7 a
- (setq elist (entget ename))% L- H# B+ @- M
- 0 G; w4 {! j) [; c1 J. v9 y
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))1 A" ~! i7 L/ E
- (emod ecolor 62)
3 n0 A$ i ~; e, y0 Q3 T9 y: O/ Q - (emod eltype 6) G$ S- W5 m3 e6 Q! \# Z
- (emod eltscale 48); g) d' q# a6 n7 O" |2 l
- (entmod elist)4 d5 e+ g1 a2 O
- (setq ename (entnext ename))/ R, {, P% o6 P' c: [: _
- (setq elist (entget ename))
4 e" s* w7 b: ?3 u6 a - )# v! f, F/ j) e
- )
3 u1 X0 k" a# W# _# Q7 @ - )
* L$ n6 B6 o6 n. O8 w - ;; Update the SEQEND
: M9 u& U! X; v - (if (= (cdr (assoc 0 elist)) "SEQEND")6 j. j, u" A: C- X$ \" }: c+ o
- (progn
9 Q- r0 _& c# W - (emod ecolor 62)
8 E6 b/ j! x4 j! T z5 \ - (emod eltype 6)# h: `3 W* F/ j# W: V: i3 t* X
- (emod eltscale 48)
* {5 E4 c7 t* O8 [% ]: K - (entmod elist)
$ U w5 L, [( R7 D* d - ): B9 V4 M3 {9 r9 @8 n" I* w, u0 h
- )
4 Y/ W% R( h* r - ;; Go back to header.' ?0 c F j/ o5 q
- (setq ename save-ename elist save-elist)$ A% A* ^1 s' w5 L- ?* E7 i& M
- " N" R" y- q% e1 C
- (entupd ename)- s: `1 m5 k- {0 |' w
- )& Y) K- B5 f9 _8 h$ p8 M
3 `/ ?* ]& |, u9 r' W- ;; Increment vertex. Set tile values to next vertex
! n9 o8 {# ~+ e. A/ I" {+ O - ;;4 ^( l* p3 X9 W5 c
- (defun next_vertex ()+ ^3 ?: G! {, d6 a+ t q1 ^
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
6 [& f2 [( }# ?( a$ w% Q | - (progn
% g6 P x/ p6 T& v - ;; If the counter reaches the number of vertices,
1 a6 i s+ z4 C5 M3 K* |0 S7 t - ;; roll it over to zero again.
- B( S. w9 s0 s8 j - (if (= ctr (cdr (assoc 90 vlist)))( y, z) R# n _4 g7 O
- (setq ctr 0)
! P& h ]" U3 T4 c. A" M5 K - )* D3 k* J+ }6 ]* h
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
3 F( f2 R! l* G - (set_tile_vpt pointype)
- H9 M$ o( u7 L9 K5 c - )* l9 A" y- o* H3 {* k3 a
- (progn. p4 c% ]0 n; [2 n7 i) y
- (setq vname (entnext vname))4 S; P7 y$ u {7 z% F
- (setq vlist (entget vname))# {& Y/ N1 a4 n7 I" ~. ~
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
. p4 ~* I2 Z, Z# o: z - (progn
* e9 r% Y) o. I0 g( G - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
# ]. C8 j c0 R$ `+ t5 I- n - (set_tile_vpt pointype)
* ~4 T a* e4 }8 N. q% _ - )
* L+ s& _, S1 U4 P& f4 x, Z - (progn8 z+ C) m0 D- I9 I
- (setq vname (entnext ename))
- e8 J# N4 ]$ N4 k- K* g - (setq vlist (entget vname))
k5 t! u; |( c - (set_tile_vpt pointype), X J* q4 \% C+ P& w
- (set_tile "ctr" (itoa (setq ctr 1)))
, Z* v3 ]2 U9 c% L3 A" A" h0 }( x - ); E1 i7 b" @' k, n
- ), ]7 @* Y- Y4 J# F4 c# W
- )
0 p/ b2 T! w; W4 x6 |1 Q7 T - )% s! n e0 |* a; G( N
- )- E1 }7 a& R8 \# O. M
2 \1 d" ?7 S+ Q% O0 W1 W& t! [- (defun ddpline (/ oldecho)
9 I5 r# n. N4 M0 }- v - (if (not (new_dialog "ddpline" dcl_id)) (exit))
/ k3 ]& ^7 k, n8 o" D - (set_tile_props)
: L* `% J: U: \7 F' O8 o; z - (set_tile_handle)8 h2 c4 i% a* F3 C. E7 y, Z
- (setq bit70 (cdr (assoc 70 elist)))9 S6 B3 v2 |) {4 S+ k5 P; ` s
- (setq bit75 (cdr (assoc 75 elist)))
) Q# C6 ~0 m) Y# {1 g0 }9 d - (cond
" j( ^# c9 z( ?! P6 ` - ((= (logand bit70 8) 8) ; 3DPOLY
# Z' P2 m4 e5 ^5 V - (set_tile "ptype" (setq pltype "3D polyline"))
0 p2 i# e I/ x1 z I* j4 F - (setq pointype 0) ; WCS or ECS point values
3 D4 f4 K( r" l [7 l - (mode_tile "fit" 1)
) q7 c. r& d, L+ X+ M - (mode_tile "mesh" 1)+ b8 M* u/ S4 w9 i- c5 ^! m
- (mode_tile "bezier" 1): X: c# O4 c O5 K+ Y
- (mode_tile "ltgen" 1)8 |- |8 G4 z$ C6 z8 g4 z1 y' D- n
- (set_tile "none" "1")
$ _, x& q3 K- l" @# Z1 _ - (set_tile_closed)
, }/ @' B6 ]/ P6 l# G - (set_tile_fitsmooth)
3 p' T! D1 n- [( r - )
# b0 E E4 ~ |5 @: \; o! G - ((= (logand bit70 16) 16) ; 3DMESH7 {- p! `% q1 u# F, j r5 o
- (set_tile "ptype" (setq pltype "3D mesh"))* ^2 x2 s( Z: H4 t0 l2 l/ h
- (setq pointype 0); ~. K. D, t7 H7 y' u
- (mode_tile "pline" 1)
+ }* h3 l: b3 u. @8 z, { - (mode_tile "fit" 1)( q0 d; f: ?3 E9 V. b: W) o
- (mode_tile "ltgen" 1)& c4 Z; r; t& [# ~2 y/ W5 R+ X
- (setq m (1- (cdr (assoc 71 elist))))- H) H U2 p% z% d& p
- (setq n (1-(cdr (assoc 72 elist)))) d! }9 I {9 p# g% ~
- (setq u (1- (cdr (assoc 73 elist))))
7 U: d2 E4 ~) U" k% n- ~# J) L! f - (if (< u 0) (setq u 0))5 b$ m7 p3 p0 U+ ^
- (setq v (1- (cdr (assoc 74 elist))))
+ G% D$ z( t/ |/ b! A& { - (if (< v 0) (setq v 0))
# t) M2 D5 b3 `3 k. [8 w! |; u - (set_tile "m" (itoa m))3 \( i/ S) v1 r# V% c
- (set_tile "n" (itoa n))
) p; A$ N; V, z } - (set_tile "u" (itoa u))
, f- ]/ i+ N% P/ O* Q* d& L - (set_tile "v" (itoa v))
( f1 O9 }7 x6 y$ f @- K$ p5 A - (set_tile_closed)9 q5 V" [- R3 k
- (set_tile_fitsmooth)" r" _# U5 ]0 T% c7 A7 b# N1 l' e
- )
5 i8 p3 y9 L3 U- d4 ]% L - ((= (logand bit70 64) 64) ; POLYFACE MESH
9 M, l$ A( i- z- Y! `6 s - (set_tile "ptype" (setq pltype "Polyface mesh"))' ^5 Q C: H, C _( s
- (setq pointype 0)
- ^- `3 |$ O6 Q3 }2 S+ n1 @' ~ - (mode_tile "f-s" 1)
4 D3 _) r4 K2 j/ B - (mode_tile "mesh" 1)8 W$ _! K( D# w2 k
- (mode_tile "pline" 1)$ Z0 n; L3 |+ X3 ]# d
- )
1 z) `6 m$ Q2 A) ], {6 [ M; r3 a - (T ; 2D POLYLINE* a* c: I* U3 u3 V
- (set_tile "ptype" (setq pltype "2D polyline"))6 @& N+ s. _4 d* _& B
- (setq pointype 1)
% f* X2 S q$ n4 x5 s: [2 S - (mode_tile "bezier" 1)
' S8 p4 e0 Y/ X - (mode_tile "mesh" 1)
: k9 a, `, |3 r7 A - (if (= (logand bit70 128) 128)6 C. D, |+ P0 c3 q
- (set_tile "ltgen" (setq ltgen "1"))2 m1 d2 H+ s" _
- )- h) J; D: Q' z8 O. u
- (set_tile_closed)
9 f% b N' i, g z - (set_tile_fitsmooth)
, u& a$ e7 S' t1 ^; m: K - ): D3 u0 n I8 x7 H( h; o
- )6 P9 v- [( k- c( `! \# W: L
* m0 s- ?1 E$ ]# K4 I, h- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
9 J/ ?' L, Q3 t/ V4 t - (progn
! x/ L- D% Z( \/ N1 ~. @ - (if (not next) (setq vname ename))
2 Q8 G7 {: i& R2 S+ Y - (setq next T)/ a( N7 n2 x9 x4 u4 `9 K, n
- (set_tile "ctr" (itoa (setq ctr 1)))
2 l$ ~7 H; K3 [ - (setq vlist (entget ename))5 j( S2 S2 |: R
- )
, {, x& ]+ O3 N8 o7 R; z% t+ s - (progn
v' f* t8 _3 @. w3 S( j - (if (not next) (setq vname (entnext ename)))
4 n) ?/ s- g* ?, ^& W+ Q - (setq next T)
% j4 ]( [: _) J2 ]9 R! C - (set_tile "ctr" (itoa (setq ctr 1)))
4 B( a9 g+ n* c. f' a: | - (setq vlist (entget vname))
/ A' V2 H) h$ T( M2 |" p" w - )7 W3 L$ Z& F" m% z, l4 p: K9 Z* {
- ): J& Y' J# d9 G9 F O$ f
- (set_tile_vpt pointype)
6 X6 e9 H. N W - ;; Define action for tiles; }$ C8 ]. y) v$ K/ M8 k
- (set_action_tiles)( ]5 ?# D/ y( Q5 y
- (setq dialog-state (start_dialog)): x9 p/ G$ X2 d' u& `# c; L
% l9 K. u( z4 J0 k$ q- (if (= dialog-state 0)
& H8 R/ p% r% V# X9 x: i - (reset)' _: p$ p8 H7 `0 v) m
- )8 z3 e6 i9 E* S, q3 t# E
- (if (= dialog-state 1)
# A; V+ [. U( l - (progn
6 G& l* T6 Z+ A- O8 u/ e, v - (modify_polyline)- f$ y) r, v$ C/ s, F/ V/ h
- (if (or (= pltype "2D polyline")/ n, L I4 _1 q- ~( V! p
- (= pltype "3D polyline")
4 f$ j. ]0 e& |5 V, x% K, O - )
( ^5 e- ^( S+ S6 W4 a/ Q - (progn, {: ^6 o8 E, ?; |
- (command "_.pedit" ename)9 U. p5 }. U* v9 }( f) H
- (if (= spltype 0) (command "_d"))2 t2 w8 `5 j9 K8 z6 P
- (if (= spltype 1) (command "_f"))
7 v( G' z; Z9 _4 H8 c' K - (if (or (= spltype 5)7 _/ J! S* E% c. c1 F
- (= spltype 6)$ k% I8 q4 v- |% }
- )3 `% ?$ p0 m9 i* \+ C: q M
- (progn' P6 Z. Z, [/ ]6 S }
- (setvar "splinetype" spltype)
0 R! c$ s1 S# H' k' ~ r# ]/ A - (command "_s")2 d! o, W) d4 p K7 D. z
- ): L" T/ F) h1 j8 k9 _' W0 b+ [
- )
; h6 @ C- @5 s5 g& \+ U1 } ^' A( S - (if (= closed "0") P3 j+ Y5 M/ I5 r& x+ C5 Q
- (command "_o")
1 p& Q" v+ Z% p - (command "_c")7 _' J3 ~# ]) F+ }- f: T5 S' t
- )7 g+ W3 d- b( S/ U8 i
- (command "")9 z! y- p# Z. Y9 m v; ]' `! p8 E
4 ]8 s9 h7 J- c7 ]! U8 }7 L- (if (= spltype 0)4 M: B* N+ f" S2 M% x
- (progn5 N+ m- J" ?# ^( R0 ]" O L! g
- (setq oldecho (getvar "cmdecho"))! o; `: g* p0 Z0 W8 x
- (command "_cmdecho" 0)
* m1 x% ~; I5 i* m - (command "_convertpoly" "_light" ename "")
) k! ?6 i1 i5 D - (command "_cmdecho" oldecho)+ T; ?/ D! a1 a
- )
/ Q, ?' ?7 z5 B% f - )
) g$ L: o' F! y0 v2 O# T' M - ); h' N$ z5 D Z7 S; p$ w
- )
3 I, g; O' \2 p# k; a/ K4 B: h - (if (= pltype "3D mesh")% X9 l! j; @3 ]
- (progn) s6 x: G" v9 l2 k# Z1 A# t
- (command "_.pedit" ename)
0 Q; b4 S9 G8 u, W. D/ Y - (if (= spltype 0) (command "_d"))
) {5 c7 j& p1 a! o$ M2 B; ^) C - (if (or (= spltype 5)
; Q- @5 {( @9 } - (= spltype 6)
8 Q9 Q- C) m1 h) `% [, r# O- Z - (= spltype 8)
5 W9 g0 l) B0 D; _' w+ h* l - )7 J& d/ M5 ~5 `5 u4 Z( ?
- (progn; F$ }( n+ z9 O
- (setvar "surftype" spltype)9 D2 u! q+ k9 j/ v+ |
- (setvar "surfu" u)
0 N, a* f! P1 b0 H5 s - (setvar "surfv" v). _/ Y6 H d# ~, O
- (command "_s")0 A2 A1 x% p u, _: a2 m( d
- ); s3 z4 x: E. ?, _& P5 g1 ^- N
- )
$ A7 n" M7 t$ E. {9 |. T - (if (/= closedm old-closedm)
/ a6 R- ?. l* m9 W. H3 \4 F9 e - (command "_m")' ^1 d' {2 Y, F( F! Q
- )
! K4 k* \9 s! t- R5 ~9 T# P, U4 ] - (if (/= closedn old-closedn)
& }, S$ F4 I( E$ ] - (command "_n")! s8 g# l1 @7 l$ C' N
- )
/ o' V; z: Y4 b' ^& Y - (command "")1 J; c, K+ H5 \0 U+ y% O
- )# E: S8 y* {, W% a$ T5 B0 k
- )
: H- k8 f: H# V - )8 q- n2 o8 ?- s3 b+ r
- )! J" A9 |& r8 C! O# B, Z& D
- )' w: [( L( u+ W6 B' V
- ;;
4 S, E3 W4 u& U( d2 W& M - ;; All the spline data is contained in a single elist. We must do some* J3 k0 \" M( m# `
- ;; tricky list processing to loop through the elist in order to display' B5 j* o* K# L
- ;; all of the control points.
4 G0 p B* N8 P; V - ;;7 ]0 \" h& p- b, m; x4 L( W$ _
- ;; The structure of the elist is different for rational and non-rational( B8 ^& u- x6 a) X
- ;; splines. Therefore, we check the rational spline flag.
7 J* V, O7 W! ~5 [) |* j6 @ - ;;
g& r9 R% s& M( y1 u - (defun next_cntl_pt ()8 B' Y! e+ l8 h
- (setq elem-no 0) ;; elem-no = element counter' V2 P; _1 c1 l$ A4 s! s: P+ L
- (if (= first-10-time 1) ;; If first time, find location of first: ~1 _, h6 B2 i9 _& t8 r/ ] M2 |
- (foreach list_item elist ;; cntl point element in elist. a7 Y/ M4 }8 R6 y6 T
- (progn
' T! ~" B* T+ I* I5 ~ - (setq elem-no (+ 1 elem-no))1 F! x+ G" y8 v
- (if (= (car list_item) 10)
& l( A2 ]) R* O2 ` - (progn
, }9 _6 ^9 R; N+ Z+ ~ w! b( U/ x - (if (= first-10-time 1)
2 Q1 w" H2 \" L4 x6 [# X' H8 C6 @ - (progn
9 s1 f( T5 U/ } a - (setq first-10-rec (- elem-no 1))
3 L9 @ J5 Y! q: b4 a9 _3 W - (setq first-10-time 0)! g) N5 J$ e$ n. ?
- (if (= rational_spl_flag 1) ;; if rational
| @8 i3 E. x9 \$ |/ h - (setq cur-10-rec (+ elem-no 1)); p* j8 u9 {4 a+ {! n. x
- (setq cur-10-rec elem-no)$ N8 R4 W3 N# ?% k
- )& {" x/ B( ~; P& O& O
- )6 N6 e8 m+ b. m( u0 S1 L1 O
- ); ~: Z' b* T9 O% `/ Z3 a: k: o
- )4 t' w1 w% e8 A% } z
- )$ A7 g* E8 D* l- r; D
- )/ ^, C' W& o0 ^7 F: e/ @( k. @
- )4 @4 b# R4 d1 {0 @2 o2 q$ p' x
- )
6 j& c: L: C+ E - ;; Now we know the location of the first "10" record; it's stored6 B/ r' q- _' ~% }
- ;; in first-10-rec. The first 10 record was already displayed when
- ^0 j) ^% x1 p - ;; the dialog first came up so let's display the second one when
8 ]. v+ m$ g" F5 l( t+ g; i - ;; the user presses the "next" button (the first time through).* z: P$ c* G4 v; o! A/ U& d2 x
- ;;
X( J8 z$ B4 ?* i6 n - (setq temprec (nth cur-10-rec elist))
9 M2 T4 G) r& Q - ;;
% a: Z+ L! J! h& y3 P) @; I0 j4 S - (if (= (car temprec) 10) ;; if 10 record
+ ?4 p: p9 d2 t. e# F+ B - (progn
9 z+ p2 _7 ^! \4 i" c3 _1 o - (if (= rational_spl_flag 1) ;; if rational spline
7 C3 b# m1 A. @+ L& @, q+ P$ q - (progn! R2 v: D# r$ d- r/ F N
- (setq tempweight (nth (+ cur-10-rec 1) elist))7 J g5 S) A+ ?1 b7 D# L% [
- (setq cur-10-rec (+ 2 cur-10-rec))
( @, u9 w- |+ y [2 U6 R - )
1 n" |: Z% N% v" \ - (progn ;; else
/ H2 ?# s. Y @ - (setq cur-10-rec (+ 1 cur-10-rec))
o c+ }$ e+ t( o" p( m - )% G' A( d- `) B; ~
- )* W* f% [% @0 X/ ?: V' z: E. Z8 Y
- ) ;; end if rational spline c! P) M) L7 X
- (progn ;; else reset counters* z7 I) n: q) C; W! }2 @. W3 ?6 j/ H
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec/ m- |8 ? b9 N2 a! ]$ N
- (setq tempweight (nth (+ first-10-rec 1) elist))
- _! {) P. s1 P4 b2 g, ` - (setq cntl-pt-indicator 0)
- l3 o8 c, {& S - (if (= rational_spl_flag 1) ;; if rational
+ y: k( I3 Z- p8 C% i - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
0 v" N! Q, R2 x - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
9 {, s& i* ]& x* {: { - )
( H8 ?7 K$ w- y/ a - )6 @3 p* I/ x: t+ I; ~# `
- ) ;; end if 10 record9 z3 D. P1 S2 T' g4 M% F
: l% O" H8 H+ K: J6 ]! ^0 ?( q* S4 g- ;; Display cntl point, weight and ctr. Increment ctr.( \; E9 M, I5 r' O; h1 A
- (setq cntl-pt (cdr temprec))) W r- Y7 _- q$ Z( p! W
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))9 P" N: a* \* N& E" w& y
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
: n! J/ y9 |& J- @' w2 M - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))* L2 X+ u8 h( x( k- r) C
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
. w* \4 h6 f7 |7 [6 X' `# z2 v - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))3 ~. a, O8 w% W5 d( F; X) W: ]
- (if (= rational_spl_flag 1) ;; if rational
0 r7 b* f6 z8 x" h - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
' J. w/ x3 c- K( U* q$ S0 x2 r6 f - (mode_tile "weight_text" 1) ;; disable wght
$ ` R$ s2 @0 `; k6 \ - )
2 M9 Y- c7 F& o9 ~ - )
. x; \ C" y# s0 C! Z - ;;
9 T" R+ V' ]9 i+ f( { - ;; All the spline info is contained in a single elist. We must do some
* e6 u" Q) @6 y/ P# ^ - ;; tricky list processing to loop through the elist in order to display
0 u6 Z! C6 _3 L - ;; all of the user data points.3 l! Z6 m% y$ y0 r$ y% Y) F% z! l
- ;;
# x) s+ P k$ G6 |6 H - (defun next_data_pt ()
- L$ H! U/ H; u: _! f% g% `3 I - (setq elem-no 0) ;; elem-no = element counter
( g* @5 l3 C! z - (if (= first-11-time 1) ;; If first time, find location of first
# y- f, m# J7 }) p( x3 Q5 @0 q - (foreach list_item elist ;; data point element in elist
9 ]- N* h6 g' J9 e1 I6 k" @ - (progn
$ U3 {- G) ` } { - (setq elem-no (+ 1 elem-no))
& ~8 E% b1 \9 y - (if (= (car list_item) 11)
# j0 }% ~- G5 L8 k9 @( k7 u# t - (progn0 h0 N- P- l2 n; I0 }! ^' Z, E
- (if (= first-11-time 1)
* |: W- w6 |8 P0 r& ]- k' L8 W - (progn
/ V) R( p' z: [ ]" N6 r @0 t - (setq first-11-rec (- elem-no 1))& B3 M/ _* h- j/ e0 _4 |
- (setq cur-11-rec elem-no)
' I: [- N2 m$ n1 X+ u; q! ~2 i - (setq first-11-time 0)
" v( P4 u: P/ n* y f q. T - )
2 Z+ @( F/ E W+ i - )
$ x5 x- N6 R* y2 Z. }# h - )3 v1 y, B, N# x. Q, H! F
- ): a) p. G: U0 Q
- )# E, W# i8 r) O% U, h
- )
8 E- E) G( k1 o$ u9 M9 E - ): E, e, z' w! q9 f
- (setq temprec (nth cur-11-rec elist))9 y; R# \( T4 v
- ;; If it's not a DXF "11" element then we've gone past the last1 s& s8 ]- u# p! ~0 Q
- ;; "11" element. Go back to first "11" element. Reset counters.
( R3 {+ _8 g# u5 _7 _1 U - (if (= (car temprec) 11)0 b# Z- u4 J& s& X! l
- (setq data-pt (cdr temprec))
% t! h/ F. u' A% m9 R - (progn ;; else
+ Q& {$ E) {* W" q - (setq data-pt (cdr (nth first-11-rec elist)))
( T$ m& p1 z" H7 \: s - (setq cur-11-rec first-11-rec)
1 U7 }$ j$ _' k% }/ A2 O- E - (setq data-pt-indicator 0)
( G- h; J7 x" c6 |/ p - )
4 V) ]. \9 e3 m: r8 |; U - )
- ]+ z& H* b1 a1 {+ D! z - ;; Display data point and ctr. Increment counters.
* A7 t! {0 D% { - (set_tile "dxtext" (rtos (setq x1 (car data-pt)))) c- v7 z; N# e* I
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
! g5 u6 k5 A- N# E* j; p* C+ o - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))0 R x1 W7 x3 g5 P: D t
- (setq data-pt-indicator (+ 1 data-pt-indicator)); ~: n" ?4 C- W- J8 H. P3 s
- (set_tile "data_ctr" (itoa data-pt-indicator))9 R: @* u. l: l5 ^1 D
- (setq cur-11-rec (+ 1 cur-11-rec))4 y" J/ r. q( O2 Y8 ^8 \9 O: h
- )
9 X' L5 K" y0 K% u4 q - ;;
5 P& g {, t5 P$ ~2 O - ;; Modify SPLINE, Y# h) y+ D# D) R. }9 W( K# f
- ;;
; \. g1 T4 m1 y j0 N - (defun modify_spline ()
0 f0 t u8 S- d/ p+ g* \ - (modify_prop_geom)) }+ H. q. r' M3 C5 b
- (entmod elist) y; ^0 t P( E4 J- S) s4 T
- )
/ S! X* [' C# J1 J8 H7 c
/ m3 p9 D1 ?5 z- (defun ddspline ()
) c3 j; G8 \7 R: _ - (if (not (new_dialog "ddspline" dcl_id)) (exit))
& o8 Z0 P0 x4 K( C# B- l - (set_tile_props)0 I+ A# ~! }* U t a( k
- (set_tile_handle)
. X# Z. e% T7 }! y - (set_tile_spline_props)
) l+ F$ K: ~; W% W - ;; Display first control point
' l2 N- o* j1 s; S) c% l5 Q - (set_tile_cntl_pt)" i' K0 b5 ~ n
- ;; Display first data point
) y- W# H$ U3 ]5 R8 j - (set_tile_data_pt)
' ? ^! N. t2 R1 k/ \
& i. t2 e9 H- m( Y- ;; Initialize flags to indicate first time through the dialog.
$ j2 _7 u5 _7 O! c6 S7 {# X# t - ;; For control points and user data points the "next" buttons7 E5 R6 e0 ^, i' b
- ;; in the dialog call the appropriate functions.- T; |8 f+ b, x( K) H0 r0 @+ a6 @8 Z
- (setq first-10-time 1)
' j! ]7 M+ ?1 l. O. b$ Z. M u: u4 R - (setq first-11-time 1)* N# ]/ a( u9 x2 o4 W# f: b
- ;; initialize control point number counter* \, T" x, d# `8 _" L# s) s
- (setq cntl-pt-indicator 1)
, ?' F0 C. Y, k - (setq data-pt-indicator 1)! n8 K, H- {# v" F
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
8 S H h K. g( V3 N6 p8 B - (set_tile "data_ctr" (itoa data-pt-indicator))
' V% T: Y, }- v% T - (set_action_tiles)1 h- L) f+ B A/ l+ m9 h
- (setq dialog-state (start_dialog))/ @- Y1 L ?5 L5 y
4 M7 |, |- ?1 ?- (if (= dialog-state 0)
, u) l$ m5 h% S0 r# e8 P- V - (reset)3 b) ^7 W7 j# I( j7 W* [3 M" @5 L
- )4 L" A, q3 ?7 g; m6 e
- (if (= dialog-state 1)
# M n7 x# Z- q% e8 m8 C& e - (modify_spline)- }6 ?! h; h: }# p+ B
- )
5 }0 x& L8 ^4 R0 E - )" z+ m8 V! ^0 g! K( q1 ]3 G
- : C# d3 f4 E( L1 u1 P8 d8 K
- ;;
( Z6 m3 B1 b3 Q# D; l, T) H( R - ;; Modify DIMENSION
0 L" }" u' v8 B2 j - ;;+ s$ e" W W% ^! b6 c S$ y# ]
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
; |$ y5 ^: v. m3 t& A - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
* ^0 _7 L9 q, j, J$ U - dimtype dimsvcurset)2 b2 K2 R7 L H' I: @
- (setq dimtype "DDIMEN"
, e( t0 s+ C! x# k9 X - dimsvcurset (ddimen_dimsty_restore)
( F ^& B5 ]+ X - )3 P2 j# M% T; V! d5 s
- (if (not (new_dialog "ddimen" dcl_id)) (exit)): j' W! q( P& M+ J
- (set_tile_props)
3 A5 C/ S5 N+ {# g& [ - (set_dimen_props)
0 z6 ]2 f2 E+ s' Q - (setq dimtext (cdr (assoc 1 elist)))
8 M+ C1 s6 v! q6 | - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
/ V( L- ~. v6 A1 @( O2 j" D i - (set_tile_handle)
8 J/ E$ l ~& P& ]& x7 Z" g- H! [! j6 s - ;; Define action for tiles
: T8 y" v9 F* W; r: r9 I6 I% I - (set_action_tiles)
# f: J" M4 p7 F Z$ P& p4 s, G
! U) {- F$ P1 ?7 r) r0 e- ;; Set initial focus to text edit box.8 ]+ d. R6 b5 V
- (mode_tile "t_string" 2)
9 T# t" \4 L; j" j
# G6 \, V% V! P" a, R- (setq dialog-state (start_dialog))
4 o% O0 o% g0 v$ ?: j) ]& T: S - (if (= dialog-state 0)
7 |- ]% r3 y5 O/ l3 X |0 X - (if (= ddimmt 1)
' v9 l3 u' p" Z+ b# c" D, Q - (reset)
" E0 z+ Z9 e) i) ~% e+ S6 T - ), w5 O. x% l5 Z m
- )
* G, ]/ ~5 \) V& m - (if (= dialog-state 1) j7 S" D F m, Q+ B2 t& M0 A
- (progn, A; I* D, C9 ^! E7 Y* T
- (if (/= dimsty stname)
6 L x; u% g+ S* n- j - (progn
1 A$ @* k6 l9 O( b! R3 T7 p - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case8 P4 u' o( q( L; d) O) f% J: `, b
- ; doesn't have it.
! j3 a9 s) A7 L/ A! U; ^* T - (if (null (assoc 3 elist))
3 X; \- k2 Q& d( k$ {% S+ { - (setq elist (append elist (list (cons 3 dimsty))))
0 I2 _( {4 R4 Q8 {* K+ c - ; else just replace it.; |) m3 L1 @6 L, {
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
3 L! s( S* w" q" d- a5 O2 a - )
4 y# ]9 l& C+ l8 I1 W' r% n. F - ; refresh sv_dvlist with new dimstyle.: ~5 \" N2 Q8 U1 R3 H
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))% b( S3 n7 y" U/ p' {. }, u3 ~
- )
: t* e3 k% B+ g - ) Q3 w+ H# B5 g: t2 U& L2 _" j+ v
- (if (not (null dimlist)) ; attempted to change dimvars
7 [4 P: \* I [ - (ddimen_complist sv_dvlist dimlist dimtbl)1 @, D1 D8 I3 k3 p
- )
! F8 r" i' q) ?3 t5 t - ; Modify dimension text
6 X+ M. a3 Z, P/ ? - (if (/= dimtext text)! L( e* m% Q% y" n+ M# [% k
- (progn7 F; o, n6 u3 w5 S8 F- L7 G
- (setq dimtext (if (= text "<>") "" text)), o1 s) ~. v- j' |& D
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
& B/ e# z( D& |" k7 q6 v+ z - )" `0 ?$ f) R* ?$ [3 w
- )
6 Z$ X% `0 @, P) F' _6 _/ P4 f! Y; c - (modify_properties)2 G# [: {% l. M8 [+ y
- (entmod elist)) q1 M! ], c$ l4 _2 E
- )
' @5 @" L1 P4 k9 G9 y1 ]& X - )
" u9 [5 x7 M+ {% L( g7 h) M- N! V2 y - (if (= dialog-state 4)* I, i, R& }3 ?3 I9 Z
- (progn. c1 Y. j; s$ K# _+ m6 W
- (setq ddimmt 1)" u3 n' x, ~& a& b' p
- (if (/= dimsty stname)9 }" Q6 E* @4 I1 d6 _
- (progn
. m4 a8 Q: q0 e! y& k Q& g( [ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
1 r! Y; h$ ~* p/ @ - ; doesn't have it.
& V7 m7 V' H0 R, ]3 ^# L - (if (null (assoc 3 elist))
; R A1 a$ a" }* h - (setq elist (append elist (list (cons 3 dimsty)))) `+ e/ R& I7 a. v
- ; else just replace it.5 F; |! l, n* K E/ g
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
3 b1 S8 @ b, F: I& [4 J - ). m) Z! j+ ^9 p$ k: G
- ; refresh sv_dvlist with new dimstyle.
6 N& Y/ i2 u" N7 \( G- @5 U. l - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
( X' g& S+ x5 n$ L& k! ^: [ - )( }' j" N% m9 `: i
- )1 p2 V4 X+ P; s( d- T* y3 P! |6 T h9 Q
- (if (not (null dimlist)) ; attempted to change dimvars
, P) ^# r4 L0 Y5 B8 \& u7 t - (ddimen_complist sv_dvlist dimlist dimtbl)
) i+ G" A. S+ t/ h# X7 Q - ), w0 r" L# r5 J$ h9 _: O
- ; Modify dimension text
0 [0 u! u1 O6 \0 a4 m! @9 u( k9 n - (if (/= dimtext text)0 D: C: D( S# T3 p5 |
- (progn* p, |3 i6 N. v' K
- (setq dimtext (if (= text "<>") "" text))
+ i3 ~# E4 b) t) B; p, ] - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
+ p( z# B T) f0 h x, Q - )
/ G/ |. @/ m2 X2 o* ], W - )/ u( I {9 `" N5 o+ H% w V/ @
- (modify_properties)0 q5 }5 D* t; M& m
- (entmod elist)' L/ N. n1 k/ A$ h1 N) z
- (safe_ddedit ename)
$ ?$ }6 y+ N' b! H6 x# z2 O - (setq elist (entget ename))
) y( u* F6 j5 |$ U/ s - (ddimen)
$ P5 O/ J$ V' j - )7 c4 j ?2 Q+ u, C; N2 @" k9 b
- )( S# U& H: r9 N0 H! |) a3 t
- (ddimen_setvars dimsvcurset) ; Prepare to exit( z, F4 B3 X g- B
- ): J! u# O9 h% e# F' J. w0 _
( F* w }4 G+ Y4 x- ;;( H, K3 [! n) `) L! B
- ;; Modify TOLERANCE( l! L, ] i! F# G+ v' e- L" u3 g
- ;;. j8 z3 |& @6 {4 d2 z
- (defun ddtolerance (/ a stname n dimtbl2 X( r5 ~ G4 h: s; q( Y) ?
- dimsty dimlist dimovr sv_dvlist stlist dimtype) d/ C3 o% U' v- T2 }: R$ l. ?2 N
- dimsvcurset)
% e' j7 _: p B - (setq dimtype "DDTOLERANCE"
/ C: m+ V4 g; S - dimsvcurset (ddimen_dimsty_restore)
6 D. r* v& Q' y- F; L9 f% ? - )
' A9 u) d4 |2 R) m6 ]6 S- f9 ^ - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
% S* x! N$ C$ O0 c$ ^ z! B+ M; W - (set_tile_props)
' }& E$ L- g& H2 t! P! R - (set_dimen_props)3 _9 U$ ^( l: [$ X2 v) B
- (set_tile_handle)5 s" d2 m+ u2 k# e9 k
- (set_action_tiles)
z( l% d0 a, H" S - (setq dialog-state (start_dialog))$ o3 l: X8 s! K* i E7 j1 h5 ]
- (if (= dialog-state 0)9 f7 A0 Q" X& Y3 ], a% f" W
- (if (= ddimmt 1)9 @/ s% z6 E3 a, }% `3 b7 q
- (reset)
; Q0 W* |' @+ A: P; |3 C) j - ). Z' U0 F+ V% O2 e& k5 u3 \7 n
- )
( Q1 K" g: \: Y - (if (= dialog-state 1): \; y% k& |. Q: q
- (progn Y% E8 p' e) L r+ C% \0 ?
- (if (/= dimsty stname)* m9 T. F: v @7 K- d- [7 p) K
- (progn1 q/ C& G. Z9 s. p
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
5 s) [: V) W) l0 k- F) U - ; doesn't have it.7 w2 k5 ^1 i$ \
- (if (null (assoc 3 elist))
8 B5 J* z% ~8 Y4 ^0 J+ I- G" L - (setq elist (append elist (list (cons 3 dimsty))))( q+ [5 A' T+ y, k
- ; else just replace it.
- C' q* O- _; k# ^6 ? - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
* S6 q5 f9 W, s+ G$ Q - )" Z E0 b0 q% L/ t4 ~
- ; refresh sv_dvlist with new dimstyle.* Q( W. L8 t( k& W6 X2 }
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))% @, R: H+ k9 M/ y2 g
- )$ b7 Y4 t4 m5 J/ v. S4 o% B8 M
- )
! d1 ~& @ ~6 y4 P% x! j K - (if (not (null dimlist)) ; attempted to change dimvars* v0 O) u$ a& g N3 d0 v
- (ddimen_complist sv_dvlist dimlist dimtbl)3 t8 V+ c3 w' g$ t9 g
- ): p, V ]' }: I
- (modify_prop_geom)
+ W' G% j* o' r' ] _, e - (entmod elist)
) r: H$ I" V+ P - )
0 {7 U' M6 M Q. W! t$ h+ J - )
; V* ~7 C, N6 i1 F5 {! N - (if (= dialog-state 4)
j) b* `6 _2 Y: J* | - (progn
% e- r) s2 T2 U7 W& e% ~, E% S - (setq ddimmt 1)
$ T& X1 N5 d' P1 H6 ~8 }+ e* ` @ - (if (/= dimsty stname)4 W+ H3 \ q- A- F" }! ~
- (progn. R- O+ }1 C/ W
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case+ {* u# n+ T% X, i7 l8 G
- ; doesn't have it.
. x4 V& u' j! z H( m" \ - (if (null (assoc 3 elist))
9 J6 c+ x4 l. X' M - (setq elist (append elist (list (cons 3 dimsty))))
. _1 |- J6 P3 a5 E2 J( M4 T0 ? - ; else just replace it.
6 f: @' O) D' B( }2 Q8 Q9 {0 d r+ F - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
1 E5 L. B! f6 K% I; ~ - )# h8 A; K7 X, r& j7 G% S
- ; refresh sv_dvlist with new dimstyle.2 U; y9 ?1 c5 a6 e* O
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
6 _7 ^4 ]# |4 G9 T2 p% [ - )
4 o+ p9 _- }. V u/ A% d - )5 ?, Q( r' d8 } U. m% G4 J$ E
- (if (not (null dimlist)) ; attempted to change dimvars
6 P, F. l0 e6 q( t9 G - (ddimen_complist sv_dvlist dimlist dimtbl)# D: C6 a& y: z- x1 f
- )' H P# e" P; Q& ?% s+ A- l4 |
- (modify_properties)
; Z' k5 {, b g9 L* T - (entmod elist)
- p; q. \+ {' O) [2 Y3 s# @ - (safe_ddedit ename)2 H; |' _. d4 q# h; F- E5 {
- (setq elist (entget ename))6 d9 \1 k8 [; q' E, r: z: ~
- (ddtolerance)
* c g3 k5 g! X# x a; f - )6 ~6 u9 t0 m8 p, K# U' w
- )# [1 C! h$ @. l7 M* G' `0 T
- (ddimen_setvars dimsvcurset) ; Prepare to exit
" C/ U4 A2 o( K9 ~ - )$ n' _( ^0 y- K+ X; w0 Y/ b
- D- r, H2 D. r) \- a8 w! W
- ;;/ E6 |. J2 J3 n$ p" {5 }
- ;; ddimen_dlg - jump to ADS ddim module* v6 K$ K/ k, x8 m9 c
- ;;. Q" ?1 T1 O5 Z# h, s9 g) r; F( g
- 9 c2 H2 ~" f1 r8 x# q3 c# D
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist). e# w' V, O9 S) F
1 C9 G7 ^, ~ D- ; Jump to DDIM with overrides if any.
- I6 i s8 ?6 M3 T0 v7 z - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
% |% \, _) l- Y! c, G - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
: a& a+ W4 x# n- _4 d2 P - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation h* I Q' w; R9 S! U
- )4 Q) E6 I, `9 g- C) ?0 C" k) o- [+ a
- )
) k6 W8 ^2 T5 C; j
: w; N& r3 {& T& M7 O2 m& F; ~- ;;
+ C2 k( ~6 p, Z I% J! n) N0 A - ;; Dimension variables updated are stored as overrides.* ~4 [4 C" [) C2 }
- ;;
: l1 _0 [( I4 Z: p# w5 F3 n
% X# |. ?: x: b' R. J- h, C- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar5 }+ W. J7 u1 p* v
- dv dime commandIssued)
( }1 ~- r2 E7 o. d4 A5 F& P. y* z: X- f - & K, E+ N6 {1 \1 r3 c0 W
- ; Here we skip the following first three items:
3 n' v: \' L! E O i8 }+ t - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0); d4 N) Y: |! @. s$ B* i
- ;
* U9 B8 n- ~% ?) t* n - ; The list comparison immediately begins with dimvar.
1 e7 q( D1 z' _ d9 U8 F6 e - ;
6 K. N9 {* ?$ T- k: l - ; dimolist - original states of dimvars
z& \/ Q/ N, q6 w5 u: ]) F - ; dimnlist - new dimvar list which is of the resbuf's' z' w- I# {& y! g6 x8 U
- ; dime - entity name for the dimension
% b# g1 x- x# ]# H - ; odvar - value of dimvar for the dimolist
; [5 N3 y" Y$ W/ ~ - ; ndvar - value of dimvar for the dimnlist3 {$ g' ]+ \7 p& @3 T1 d3 e3 [
- & h0 C8 M* f' A" L1 R0 r$ Z
- (setq i 32 d+ t, I: b( b* Q" f4 A5 ?
- dime (cdr (assoc -1 elist))
" \6 T+ t5 R& d7 H2 d# F - )
- Z( ^6 @8 n. C' n - (while (setq odvar (cdr (nth i dimolist)))! C* _0 U* S! e+ |$ D2 K
- (progn
% P# S' g6 f& W9 V4 f - (setq ndvar (cdr (nth i dimnlist)))
% G$ y% E6 `8 M9 E9 T9 [0 T - (setq dv (nth i dimtbl))
/ A! C! a& E/ W5 i9 T2 V - (if (eq dv "dimtxsty")
) c6 c. Z0 x3 o) J2 i9 ? - (setq odvar (cdr (assoc 2 (entget odvar)))
2 E: r# I* p3 x - ndvar (cdr (assoc 2 (entget ndvar)))
' h; J2 K1 I# U7 } - )
; \( V1 }6 p. t* T) C - )
* {+ y! |6 C L, L1 w. B
8 T f% D7 T& b s- ;! d$ ~$ L6 G5 `0 p0 k
- ; In order for DIMOVERRRIDE to operate correctly with string" h: Z9 k; B+ j) Y
- ; based dimvars, we must pass "." versus NULL strings. x9 S! x4 Y* }0 {
- ; In this case ndvar is the new dimvar value the user wishes
* B | ]1 Q( m# o2 \* `" R1 f - ; to update on selected dimensions.( \9 [% q, z: C8 l7 ?8 \
- ;
# y9 _, Q- i1 i5 W5 I8 a+ a. \' T - (if (/= ndvar odvar)
0 {5 w, x. h# l' g - (if (= 'STR (type ndvar))
4 P& E! Z( A1 N$ V+ J2 M! B - (if (= ndvar "")
3 O4 m& I, ` Z' g( l, m8 p - (setq ndvar "."))))
N8 b! D a8 b) e6 F( C5 k( ~ - ; p2 G7 e6 C1 k' C; H
- (if (/= ndvar odvar): ]. h6 n0 t; W' J* E, N
- (progn
" c: b8 _# h( @: p- n5 n - (setq dv (strcat "_" dv))
3 g5 O$ q) l$ v6 p - ;0 f N& Q! @2 d
- ; Start the dimoverride command
' T5 N: e, H8 w2 m: W - ;
9 {) s2 X2 ~# H - (if (not commandIssued)0 v. X- Z4 ]" w6 P0 k1 ]6 U- t. b
- (progn
\4 _6 c: X3 w, u+ | - (command "_.dimoverride")
4 l s2 m# |- }( E0 N' K - (setq commandIssued "T")
6 Z$ H8 S) J2 N0 b8 ? l% ^" N& H - )
4 y1 p% b7 P$ d6 U - )7 m5 h8 D! ]4 v
- ;8 A6 h8 K4 s3 j
- ; Issue dim overrides* s4 m9 H* J) u. z8 ]5 u
- ;: u. F4 G( ]9 `+ O3 s* l* }
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
8 K: q2 t+ w% e L2 ?# m# L - (or (= ndvar 0) (= ndvar 256))
! i/ W& P* ^2 [" c- `) j - )
9 m0 ]+ \$ ~8 J" t/ ^2 u - (progn; R. m9 g3 o$ t3 i5 ^, B/ y
- (if (= 0 ndvar) (command dv "BYBLOCK")), n$ _! d. P& ?% d; s
- (if (= 256 ndvar) (command dv "BYLAYER"))& V+ z3 p# M5 j( L) _
- )
) C; H1 u: m# M: a - (command dv ndvar)1 w7 y8 p" z4 L- T" m
- )
8 _8 B: W; d$ j) S0 L' Q - )
/ A# M$ s: E% y$ a( y - )
+ f: @5 P& M* k5 V) ^- T$ c1 v, m - (setq i (1+ i))
, D8 i1 A( K1 A! ]5 s) C5 s$ w - )/ ?% J# |3 H" P/ f8 |: G8 s
- )
8 R" i4 i! P# B. V! x4 e - ;3 b6 h8 h/ |& @# W; Z: O, C/ e
- ; Select Entity and terminate command
! {2 d0 b$ ?3 Z/ W* ?- ] - ;
6 P" |6 c7 p3 H3 c* Z, E - (if commandIssued
- |' \+ {' U1 O1 y - (command "" dime "")
2 T: T9 w6 n. n8 i$ ~ - )
+ |6 C3 D8 [2 _( L7 J1 W0 D - )
+ m. R* e2 G* q, v+ d& P
H$ b9 t* ]" A# j- P" O- x- ;;
% j+ ^* W7 W* v9 K# ]: ? - ;; Get style name currently selected style name.
5 v" [/ v( [4 t/ t1 Y - ;;. F# k1 |/ a8 A. T) k u
( @4 m V- }2 J( T' ^0 |/ y$ ]- (defun ddimen_style (/ dimsty)
8 k- R# ?; c1 O8 |( r. o" N1 T - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
4 I2 C( k5 s F - dimlist (ddimen_getdimvars dimsty)3 Q0 f9 b- Y* l# v
- )
8 `9 }% u- E* G$ t+ h - dimsty( T9 o; p4 f; g% J; a$ {3 P, \
- )6 {: G5 z" H# U) V
- " S7 Q' m& o- _, |4 g1 ?7 u1 m$ x4 t
- ;;( p3 q7 ~) s/ ?) v
- ;; Set dimvars
& J: O- ~ j' R- W5 E N8 C8 n& S9 X - ;;& L. f0 B$ t. l. m* Q
- (defun ddimen_setvars (dimsvcurset / dv i): h- F9 n& q _: F! v2 M& b! w
- (setq dv (cdr (nth 1 dimsvcurset)))
0 r" P/ }$ \+ a8 W - (command "_.dimstyle" "" dv)
# S' c( G! N0 I( q9 X - (setq i 3)
' N' n5 l0 ]7 u. l( D+ i& X# F - (while (setq dv (nth i dimsvcurset))
* N [" s; b% I' t' h - (progn
; S4 b' H% A T - (setvar (car dv) (cdr dv))1 N4 n/ r0 }5 q/ S! V* _8 m* h
- (setq i (1+ i))
- `& T( L* N3 I: ^9 t1 { - )
& }* A2 {: p: j5 Z$ E - )
* U7 Y4 v6 p6 b' R0 v3 u1 `) H - )
" X. i4 g/ q& j- y) _, V - ;;
+ D0 d8 A& ~5 p" R - ;; End-of-dimension
6 i" L/ G, n& C! a - ;; ==================
/ j+ {1 ?/ q! g
4 C9 f2 e0 a3 J& _/ W- ;;
8 A+ e: X7 K C4 G, ~) [* F6 Y, C - ;; Sub-dialogues for properties. Common to all object dialogues
6 `4 G! i/ e" p0 h - ;;4 c% @: `0 V; N
- ;; This function pops a dialogue box consisting of a list box,image tile, and, z8 ?3 T; r" y7 m4 w
- ;; edit box to allow the user to select or type a color number. It returns: k* T* ~' V' M0 N
- ;; the color number selected.
0 b! h" o4 Y; i$ W$ b+ m" M - (defun getcolor (/ old-idx colorno cname lay_clr)1 _2 q9 b9 r6 f. w# ]8 C0 k+ C
- (if (= (get_tile "error") "")
3 v3 c' T1 {" c+ t - (progn
5 v( N8 B/ \0 k: Z3 z/ P - ;; Get the color associated with this object's layer, for use
- Z; [ Y: _- `% G0 w- _* I. R - ;; in the color swatch if the user selects color BYLAYER.
0 V6 a$ J% @* v; |! l0 C7 u - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))& d$ a: a7 c- A. D
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
% c/ r# z. M" S4 ^2 |& f - (progn
7 z' x" `3 ?) {3 h$ i7 I" V2 ] - (setq ecolor temp_color)
/ N8 A: i; W) `1 [( a6 o - (setcolor)' ?8 ~8 A& p3 X7 u: p
- )3 b# H& C9 g0 l3 }
- (setq testcolor temp_color)
# F& W* Z, r. C6 ^ - )
, w% k8 v0 l4 P7 X. x z+ W9 ? - )
0 H" V# O9 h7 Y! r0 q - )
) b# H! O8 D7 D$ Q. P - ecolor
9 s: a2 T$ ^% ?4 I) x7 K4 I - )
; |9 B2 |0 T+ H6 y4 `& j - ;;
) s) T6 n7 t# i5 I; \$ x - ;; Function to set the color tiles.
" m: L X7 p, v& p* l) S - (defun setcolor()
; I0 u1 T; ^ N/ ]: `8 u - (cond
' r" \" z" {: w, c( u - ((= 0 ecolor)
, M% w# t) G5 a% T W( ` - (set_tile "t_color" "BYBLOCK")
) R& }) L E7 B - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
3 h. V7 Z m6 b: Y1 U5 ~ - )
* ~% F- j8 p, B. B - ((= 1 ecolor)' L1 @% ~6 X" P' T+ `
- (set_tile "t_color" "1 red")9 j8 g7 f& @/ K# d0 L
- (col_tile "show_image" 1 nil)" s9 w I. z/ S7 f& R
- )" h8 B* f8 B0 |2 z# o! \3 c2 r
- ((= 2 ecolor)
9 q5 w5 K# m! S$ a- _0 ?- f - (set_tile "t_color" "2 yellow"); b2 Z, T" R6 D9 r6 H/ P" g1 h: [
- (col_tile "show_image" 2 nil)/ m. B% Q+ T {
- )0 |: I/ F# Q# L
- ((= 3 ecolor)) }) p0 i O+ h$ z- V
- (set_tile "t_color" "3 green")$ c4 {4 }0 V }0 `4 ~* T
- (col_tile "show_image" 3 nil)
) p9 f4 A- w$ O5 l( C1 P z9 { - )
, f: Q9 G: Q9 K* R4 N- W - ((= 4 ecolor)
4 I% F& R% W9 P* ^. H - (set_tile "t_color" "4 cyan")
( S. Y. H: M8 l/ D' K; I - (col_tile "show_image" 4 nil)
1 T/ w% Y4 G- d. H" J. Y6 q% K - ), n& W. {4 X, a& C, n6 X' G& z
- ((= 5 ecolor)6 S, g( u' z; m% T4 h0 v
- (set_tile "t_color" "5 blue")
" q5 Y% ~) v/ k! R - (col_tile "show_image" 5 nil)' P. u% |1 q* k
- )
) w. B8 \% g% v4 m - ((= 6 ecolor)
! c2 k; y: |& `" K* b - (set_tile "t_color" "6 magenta")1 }1 Z( c0 R; z# e+ t0 B
- (col_tile "show_image" 6 nil)
! o( \3 T u' R3 k. S( q7 s4 j2 G - )' T3 X) C# Q* ~/ C) R% ?/ x4 \
- ((= 7 ecolor)
& }* I& ?" a7 X, ^' q2 S `, @ - (set_tile "t_color" "7 white")
" J, k, j; h4 J) z4 P+ I/ B - (col_tile "show_image" 7 nil)* G- |: K5 _) z. I5 Q+ r( i' i; n; w
- )1 Y' g* |/ E# c) c' b4 I9 U
- ((= 256 ecolor)
M& C8 j, G0 b' ? - (set_tile "t_color" "BYLAYER")1 y1 E5 v& w7 |7 j- Z$ n
- (col_tile "show_image" (bylayer_col) nil)
# A, w/ d: B! P* j, I6 ^$ P9 ] - )* y+ H' ^$ h/ I1 Y1 u
- (T/ V) b7 |2 L4 k' Q5 o
- (set_tile "t_color" (itoa ecolor))9 J9 b$ H4 S" d; W; R4 `
- (col_tile "show_image" ecolor nil)7 |0 x! @% S/ O; M
- )
" {. o3 o/ Q+ L c9 T0 @7 P - ); _2 z; j8 V9 I& J1 h
- )3 |* W; A' I# Q5 c: s' E- c2 W
- ;;
J# V- K, P- w- h) h$ } - ;; This function pops a dialogue box consisting of a list box, image tile, and7 g' `1 q) j$ v2 @! t: T7 o
- ;; edit box to allow the user to select or type a linetype. It returns the
2 X& E/ S9 i: T - ;; linetype selected.
$ J+ {# B0 O1 p% N# }7 m - ;;; x( u, C( U, b7 T7 g* ?9 i
- (defun getltype (/ old-idx ltname)
3 U7 f' L8 Q+ l; P; B; f1 g - (if (not lt-idx)) F7 E/ t! C8 L3 w/ [, w5 D
- (progn
$ T8 `' F# ~0 y: E - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
- R+ i1 N' j+ b5 |, \" | - (cond
) i! z$ C) P7 m - ((= eltype "BYLAYER")+ y3 Z5 v& D1 a/ s V& n2 e) Q, J
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))5 g7 Y, Z# P* {
- ((= eltype "BYBLOCK")
( g- g% P; d( f9 M' @/ _& ? - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
# j4 Q% B5 \8 [+ z - (T (setq lt-idx (getindex eltype ltnmlst)))
9 ~) _; q* E7 z/ f e - ), b: t0 R/ _0 |2 `7 x$ H
- )
( v# F& V `- T- y# ?8 n - )
! K4 f) `" m8 W, J* x1 e/ S
) {2 D: S9 Z* Y/ A2 L- (if (= (get_tile "error") ""), l% Z/ y+ `+ _6 o7 a
- (progn
# a7 X9 L) q: O8 ~5 E - (if (not (new_dialog "setltype" dcl_id)) (exit))
$ v% R3 m; X+ @' M - (start_list "list_lt")
* Y8 i0 I3 e" n/ k# w1 Z - (mapcar 'add_list ltnmlst) ; initialize list box3 G5 l" _1 |. P1 v2 V! R
- (end_list)% X o: x0 I m9 M
- (setq old-idx lt-idx)
$ W+ ?" |( j! A) O6 y5 `% ~ - (ltlist_act (itoa lt-idx))
3 n5 p8 \; j2 Y: ]1 h - $ a r$ s/ n/ M& \
- (action_tile "list_lt" "(ltlist_act $value)")# x- r+ L) D1 A
- (action_tile "edit_lt" "(ltedit_act $value)")
) ^2 ]* Z& w! ^5 ~( V - (action_tile "accept" "(test_ok)")
" n& X1 Y3 P8 ^+ o3 t$ M - (action_tile "cancel" "(reset_lt)")
, X. l, l) b7 i: e0 R, q7 { - * @; G8 Y% H, Q* n
- (if (= (start_dialog) 1) ; User pressed OK6 F1 v: ~. ^& f
- (cond
3 s& O+ ~: H+ ]$ A; g - ((= lt-idx 0)
$ \1 Q* }& M* l$ T& e- H - (set_tile "t_ltype" (bylayer_lt))
/ y2 B+ O% ~7 O - "BYLAYER"( e% v5 q+ ]7 C0 m2 a' b
- )5 Y8 ]: m5 q" Y4 L, s2 N
- ((= lt-idx 1)
3 C( P& ]% g+ n' W( N - (set_tile "t_ltype" "BYBLOCK")9 D/ u0 o/ S) [
- "BYBLOCK"" h+ ~) z0 `. `5 j
- )
) o" N+ L0 X, x2 E; n. i. H t - (T (set_tile "t_ltype" ltname) ltname)7 ]% |" k5 d$ w' Y; B
- )! C+ W6 m1 x2 u
- eltype2 u: S& i8 { o* Q8 u
- )7 Y" A8 S, l. d
- ). w# i4 ~+ l' E, J& I
- eltype! n+ b# w, p Q6 O [- e
- )
d& v2 N( L$ X6 u' B. \. e - )
, X$ l; v# N# o. ^+ i" A - ;;/ _, I3 v) Z# E7 `
- ;; Edit box entries end up here$ r1 s0 x, B4 g9 p- V/ v# P9 {
- (defun ltedit_act (ltvalue)1 V5 E4 g3 A" J8 ^" U
- (setq ltvalue (xstrcase ltvalue))
* n* ]1 }+ [8 U4 G$ x - (if (or (= ltvalue "BYLAYER")
3 y U/ ?% ?5 Y) N, S% c: n - (= ltvalue "BY LAYER"))& D2 {* d5 t% s; _3 K6 ?
- (setq ltvalue "BYLAYER")" k3 k$ T& E8 X, [$ C6 d
- )
- Z; j0 [% O) ^# Y1 U3 i, O1 H - (if (or (= ltvalue "BYBLOCK")
5 S5 m, B4 P2 S - (= ltvalue "BY BLOCK"))
5 ~. A" ^* N' B8 ~ - (setq ltvalue "BYBLOCK")
/ D, Z' J- k+ f/ q' f - )
5 t/ X* g/ j; t! ~' ^ - (if (setq lt-idx (getindex ltvalue ltnmlst))
6 |2 r& g9 L+ u5 D. C - (progn( j9 |8 C8 I- a" _
- (set_tile "error" "")- K" _4 T- _" C4 S$ u2 A" ]
- (ltlist_act (itoa lt-idx))
: `/ ~. R: }4 O# q8 Q: o0 a - )
- }2 u. A6 y) L6 i% W0 ~ - (progn
2 L/ q8 Y# k$ [" w - (set_tile "error" "Invalid linetype.")7 u, q3 ~# G8 s( C- Q
- (setq lt-idx old-idx)$ p, m: a- ?" f# G& `/ o# l
- ;; (mode_tile "edit_lt" 2)
$ M2 @! |, y" E - ;; (mode_tile "edit_lt" 3)
$ X+ C3 B7 L! [ - )
8 C6 f% X( S, o3 U/ b; ~ - )
6 @. h6 w7 T+ ^( r8 A - )) D$ E8 J' W- s' i3 y- [: c; I
- ;;
' w2 S- Z; y5 z/ ^9 ^# ~8 u - ;; List selections end up here. Update the list box, edit box, and color0 M. G; T% e, I8 F K- R
- ;; tile.
$ t3 G4 }/ @8 h9 G! E7 Q( E9 g - ;;
. q4 T& a, Q+ @ {* b/ [ - (defun ltlist_act (index / dashdata)2 O( h" w9 c1 [6 I2 {- C3 C
- (set_tile "error" "")3 ?# Z; S( L$ U
- (setq lt-idx (atoi index))2 i. p" {' L, ?7 G. m" K
- (setq ltname (nth lt-idx ltnmlst))4 P6 U2 a4 f. A+ w/ {) C5 r
- (setq dashdata (nth lt-idx mdashlist))# e" o2 j# X$ q% O8 V5 ]; N
- (col_tile "show_image" 0 dashdata)
3 R, u% q7 A6 e# f, I; C - (set_tile "list_lt" (itoa lt-idx))
& _7 R a& B" J, f: g% @) q - (set_tile "edit_lt" ltname)
9 n% x: p( W( y( |" v - )
4 `& J2 W& `3 z% w - ;;
/ p& [6 w( k3 U* i/ z - ;; Reset to original linetype when cancel it selected
0 r" m/ `0 T) H* N) `2 E - ;;
% [- ]& p. R# C9 R, o& a - (defun reset_lt ()
" Q6 v- ?4 Q$ p* H - (setq lt-idx old-idx)
6 y! ^5 u8 n0 u& b- g Z1 g6 r - (done_dialog 0)- Z. f" h, z' X$ x0 K) h
- )
2 u- H# u# `. L$ O - ;;
5 a ^! b+ v# Q* W) t: F - ;; This function pops a dialogue box consisting of a list box,image tile, and7 K" f0 c+ x$ g, f% t1 D" h( }( b8 r2 V
- ;; edit box to allow the user to select or type a layer name. It returns the p4 Z$ x) B9 X. j
- ;; layer name selected. It also has a button to find the status (On, Off,: L- F1 G$ I) h# P# \1 i# h) p
- ;; Frozen, etc.) of any layer selected.
; P; d, I) h6 n8 f* Y6 ~$ K v - ;;1 |6 K4 S7 f! x( W3 O- z/ H K- t$ T
- (defun getlayer (/ old-idx layname on off frozth linetype)4 G" G8 M( W. k" z' y4 B. S
- ;; Create layer list the first time the layer1 a% g/ j; x6 T9 F1 X, T8 P5 k
- ;; dialogue is called.% r+ z3 N' p A. Q
- (if (not lay-idx)
. C6 j, j* a$ `9 P' P# Z - (progn
& e0 g# _+ e, u. |2 q - (make_lay_lists)
& y0 q( g+ O9 E4 _+ g2 T- s - (setq lay-idx (getindex elayer laynmlst))0 m: J: r% m( k h1 n) L! o
- )
. G x- Z: \4 z, k) ` f( Q - )
% w/ Q9 X! j! f. J% X8 A V' M - 1 C/ n: A% f- f8 p
- (if (= (get_tile "error") "")
' @7 _; ~- N w; Z& K - (progn C" J" k* d" ^6 |8 `
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
, t$ H% V4 e8 {. d! { - (set_tile "cur_layer" (getvar "clayer"))
: Y, A; a% r: f' W1 ]$ C! b - (start_list "list_lay")1 j; s3 U# @& T: m0 C* X
- (mapcar 'add_list laynmlst) ; initialize list box, J4 ^9 H1 q( I! `. \
- (end_list)
( c S2 [4 Z. t0 W0 v* m/ \& C - (setq old-idx lay-idx)
6 H7 R5 m5 ~0 D/ j - (laylist_act (itoa lay-idx))
3 ?3 B4 ~ E+ O- w9 f* l* B# O0 }* b - (action_tile "list_lay" "(laylist_act $value)")# l" d3 y) _. x9 @; q9 h, t! O B
- (action_tile "edit_lay" "(layedit_act $value)")2 w1 N- b- P6 h: _- F4 w
- (action_tile "accept" "(test_ok)")
: W6 @* K, ]$ @ - (action_tile "cancel" "(reset_lay)")
% k/ b" \# ]; j, g/ Q - (if (= (start_dialog) 1) ; User pressed OK
3 D' J% E0 l$ d0 H6 v - (progn
. U y8 M3 y* U - (set_tile "t_layer" layname)! I* |2 v4 F9 Z" o
- (setq elayer layname)
$ C7 j* w2 X* Y9 A5 c+ N4 _ - ;; If layer equals bylayer reset color tile
3 O$ ?: Z, d/ s/ s, _ - (if (= ecolor 256)
- Q2 ^ u# G. V. j! m4 n - (col_tile "show_image" (bylayer_col) nil)5 U% V+ p3 Q0 Q) z* ?5 c% r6 G
- )9 F5 o- E- }; E! I
- layname
. ~) d5 {6 s% l; a4 p - )
" V, Z, |* j1 X0 |8 z) F - elayer
( f3 B* H* b! ^! e! J6 t" M - )( c# r( t* F, d5 q& f9 w$ K! A* \
- )$ w! P" Z7 z2 _, B- z
- elayer
' X5 i. ?/ s6 {' T u2 w1 J9 E& N - )
" @9 d* j* \4 {5 O: B: N0 x - )/ H1 M$ m. b$ }! F6 y2 O
- ;;
+ E& M5 M; V( b - ;; Edit box selections end up here. Convert layer entry to upper case. If
* [8 H* }$ o$ n# B9 Q, O+ r - ;; layer name is valid, clear error string, call (laylist_act) function.. S" i( E2 z# B# K4 D+ E7 I2 w5 c8 e
- ;; Else print error message.2 P, r: x9 z- w& x
- ;;
( {6 q6 H) x; ~0 }9 N+ M$ u - (defun layedit_act (layvalue)
0 F2 H3 v z7 m: ^3 ? - (setq layvalue (xstrcase layvalue))
* o z8 A9 }4 P* Q8 ?! _ - (if (setq lay-idx (getindex layvalue laynmlst))6 K% \' t9 b, K* v3 `) n( ?9 ~1 ^, X
- (progn" r3 E4 L& f( h, o" k( D9 P; |9 i1 L
- (set_tile "error" "")
. A5 v4 t; R& V( n - (laylist_act (itoa lay-idx))
) L' j8 y- r6 w* {) s% M9 @ - )& j) g; n5 K; i4 c# T; s7 Q9 A7 Y
- (progn* { \% T/ @! X& D/ @* q/ L8 j; }
- (set_tile "error" "Invalid layer name.")3 w5 b" Y$ h& O( L8 L7 [$ m
- ;; (mode_tile "edit_lay" 2)5 ~& f- R0 n' K8 U
- ;; (mode_tile "edit_lay" 3)
5 n% f: T5 V% R, Q. L - (setq lay-idx old-idx)- Y: ^8 B$ E s' [
- )' w" v& j2 k3 V" H0 N+ y
- )
+ N, D( r* P7 D6 [5 X - )
" \$ P2 Y1 t3 g3 C) f) S. V( s/ O - ;;: w+ B; h2 z Z8 M1 j
- ;; List entry selections end up here.- H) Q1 x/ ?% S! V. D3 u
- ;;4 s7 @+ d& Y2 \( ^
- (defun laylist_act (index / layinfo color dashdata)
. \ g: D' R3 u( \! e, q! m# f - ;; Update the list box, edit box, and color tile.
# l0 p0 Z, u* Y, N5 Q" R- U, ~ - (set_tile "error" "")
9 i8 O2 {' U% s/ N Q/ \ - (setq lay-idx (atoi index))$ g! E$ ~; Z- A
- (setq layname (nth lay-idx laynmlst))' C0 G$ x. \6 t6 C! Y s, G% k
- (setq layinfo (tblsearch "layer" layname))
- t8 R& ~8 S! x2 s" a1 j3 z - (setq color (cdr (assoc 62 layinfo)))
, N5 L( z5 E# N* f5 _) `/ V; B( f - (setq color (abs color))
) L3 {5 l8 @1 c f; l8 o - (setq colname (colorname color))
( n& G9 S8 Q+ {* [ - (set_tile "list_lay" (itoa lay-idx))! r5 m! a$ f" \! e L; x
- (set_tile "edit_lay" layname)6 }- V n9 t, o- r$ P
- )) n- C2 I. j- q2 l$ Q% }
- ;;
/ L) R3 N9 D: K2 M - ;; Reset to original layer when cancel is selected.
/ s3 M Y" [" t) z$ e6 X' M - ;;( A: g1 j; h. a: V& M1 ~& P8 r) C
- (defun reset_lay ()( c, E. W; ]& X1 H) M9 I& k( u
- (setq lay-idx old-idx)$ P+ ^5 ~: Z# m; z
- (done_dialog 0)8 W+ y% |4 r: {" w- j
- )
# W5 j6 M, j. K: f# ^, C - ;;! P6 ]0 W1 v2 w9 `% `: x) p9 y
- ;; Checks validity of thickness from edit box.; o( P( N3 v2 [
- (defun getthickness (value)
+ A, T6 c- [9 ? - (setq ethickness (verify_d "eb_thickness" value ethickness))/ X* Q& q6 Y2 S" @
- )
% K7 ]* w4 `( {0 T& P7 N( l - ;;
4 q+ S) A( f* x) |9 k0 f. t/ g# D - ;; Copy of (getthickness) for ltscale. If more, make this function! P. f8 b! m6 {& \2 t+ H* X- J
- ;; generic.
8 ^6 v7 o8 {7 k6 k$ z' w7 d - (defun getltscale (value)- D8 a" ~ ~- M# L! I
- (setq eltscale (verify_d "eb_ltscale" value eltscale))
1 G1 Z9 Y4 u3 g - )2 S' U$ K! b, S b
- ;;/ G# X. c$ u. E3 e
- ;; This function makes a list called laynmlst which consists of all the layer: Z0 f* P/ B" _5 ?% z% s# }
- ;; names in the drawing. It also creates a list called longlist which
O0 O* v1 Z" {. {5 z - ;; consists of strings which contain the layer name, color, linetype, etc.$ z! L- ]6 ]* Z7 i+ L9 ]0 Q! K, w6 I
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
* V- n; N4 x+ A, T - ;; same.
5 m4 L. M5 f' e" I; _+ o - ;;
( G- h' `) z: S1 W) V0 m - (defun make_lay_lists (/ layname sortlist name templist layer_number)
$ Q. t- R+ P% k! S, t5 Y - (setq sortlist nil); M( ` e) O4 u( N9 [
- (setq templist (tblnext "LAYER" T))9 X U1 q! H* B
- (setq layer_number 1)6 i9 ]+ [9 }6 Y$ D! [
- (while templist6 k3 i$ d; O, f; u o
- ;; No xref dependent layers, please./ Y! s6 Z2 \+ G6 }
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)+ i5 l+ _4 R" c! @$ q$ \# U
- (progn% I7 y) t- O7 Q) ]% @2 G
- (setq name (cdr (assoc 2 templist)))2 e3 G" `9 p9 c3 p+ x2 G- A8 c
- (setq sortlist (cons name sortlist))
4 O8 O$ q7 e: D4 a6 Y; ]; U - )
( P% L- S! p; n - )% D* `1 s6 V; g% |
- ; Get the next layer.
1 e3 S& L1 d1 s: z8 V) K - (setq templist (tblnext "LAYER"))
/ N! F. X5 y0 ]' m* e6 E5 z - ;; Not dead message...
/ _" c( z$ g/ Z! j. ]$ r( L9 d, t3 n - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
; r. @- B% r) X4 k1 E - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
" x7 |# f2 t6 z- @! k' f2 C - )* a2 O7 S9 m" |
- (setq layer_number (1+ layer_number))% {: ^* O. n0 e# C
- )$ M& |. T+ V7 h* \6 Z! s
- (set_tile "error" "")
+ V) x3 D0 X- K1 ?8 h - (if (>= (getvar "maxsort") (length sortlist))% y% G. {" y9 X* q1 R) _
- (progn- p A0 Y: o- q$ l
- (if (> layer_number 50)
( G6 h4 c: n6 f+ E* g - (set_tile "error" "Sorting...")
; c9 x5 G; x1 n - )' R9 ~( ]' x- Y0 l0 ]
- (setq sortlist (acad_strlsort sortlist))
. \1 }% o8 K' b, O* Q4 S. o - ); A3 C( T/ Q" {: ^) j& c
- (setq sortlist (reverse sortlist))
0 H0 A1 R$ y2 y p& s5 u - ); ?" ?; R( S/ m8 C
- (set_tile "error" "")
" }1 u+ z0 A9 u - (setq laynmlst sortlist)
2 W$ K, [: _9 L3 g8 f% o8 f - )
9 _6 r* ^4 ]. h; B3 O - ;;& |. X8 S5 z+ y7 T5 f- Y0 z/ @3 s
- ;; This function makes 2 list - ltnmlst & mdashlist.
4 m$ x* s7 I- k - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist$ `- r& y& x% t1 G
- ;; is list consisting of lists which define the linetype pattern - numbers
& C. ^& {5 ~: j$ ?( I% c, v - ;; that indicate dots, dashes, and spaces taken from group code 49. The list
9 \3 r! A" [) D3 y$ B - ;; corresponds to the order of names in ltnmlst.
7 |. L: }+ L8 \" |5 _ - ;;
) \) x# U* p. h: t3 k% C. m+ \ - (defun make_lt_lists (/ ltlist ltname)
' L. a. L* D! z* x& T( t- M% W - (setq mdashlist nil)
4 A' [6 b$ b4 _ - (setq sortlist nil)0 J6 b: ]4 R+ |+ O' y# C
- (setq ltype_number 1)4 ^ {, j7 d0 e0 Q$ x$ g
- (setq ltlist (tblnext "LTYPE" T))
$ ~+ N. b3 X2 C: H { - ;;(setq ltname (cdr (assoc 2 ltlist)))
% Z; ^1 V, e! M$ R; V$ ~, L# ^ - ;;(setq ltnmlst (list ltname))
- i5 G8 g8 x: R0 h7 a - (while ltlist
( P: j, Z9 ]8 J& x1 R. O1 ? - ;; No xref dependent linetypes, please.5 P( C) l" R# _6 y
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)- c7 q; p7 m& |
- (progn
2 p0 a% o9 J* M( p$ ~ - (setq ltname (cdr (assoc 2 ltlist))), R l4 h: ^- I y
- (setq sortlist (cons ltname sortlist))
/ `4 u+ a2 N: B S6 B( R2 \ - )
+ Z$ z; [) _: H. F; p3 G" Q" D - )
! E5 {+ G8 S5 Z! k8 t1 N - ;; Get the next linetype.
1 c& B0 T5 w/ g( J. v$ B - (setq ltlist (tblnext "LTYPE"))3 ~% \3 _- r, e/ D
* X9 Z7 m7 K: S! s8 Z t- J" h) v: i- ;; Not dead message...
* O0 D8 {! g0 {% ^% L( j. O+ P - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
# {+ K& j# ^( ?" C* q - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
( t4 w8 b/ g+ J0 S0 v - )
! n. o0 _" ^3 }$ i1 ^ - (setq ltype_number (1+ ltype_number))' X8 Y! G2 G, V5 D# X% N
! C7 L$ e! i6 A6 @- )3 n- D" F7 a/ g. }
- 9 J3 E8 U" ~" ^
- ;; Remove Collecting message.' T+ l/ G$ @! q+ e
- (set_tile "error" "")( g5 F+ |6 P: L; c
- - @7 S( q0 D1 M' n7 M
- ;; Sort based on maxsort.
; Y( {, H% h/ V8 O4 f E+ n - (if (>= (getvar "maxsort") (length sortlist))9 f; M5 w$ b4 |' E3 C* F
- (progn
% e r& d) _4 u - (if (> ltype_number 50)
( M3 M) K% I; O( F4 z' m - (set_tile "error" "Sorting...")
. a; u& B7 z/ d- ]/ b, A - ) W% ?% G& a2 h
- (setq sortlist (acad_strlsort sortlist))
+ ?0 A$ G& L5 v& |: c& S1 z* J8 P - )
1 o) f ` O' [1 M - (setq sortlist (reverse sortlist))6 O, K* P# S: R/ D& G
- ) }; s8 P: |/ J
- (set_tile "error" "")
, W1 s8 g3 t$ m6 Q - (setq ltnmlst sortlist)
4 s1 u; Y. G7 j- j* S - 6 c% t* b. c. H
- (foreach ltname ltnmlst
- S9 c! h% @9 \: | - (setq ltlist (tblsearch "LTYPE" ltname))" p3 D/ j5 I" W, D# o( v* L8 x% I
- (if (= ltname "CONTINUOUS")
# a0 c$ ~, x6 w) A4 r- H' D - (setq mdashlist (append mdashlist (list "CONT")))
8 z) ]; P# m ]. W6 g; H8 M - (setq mdashlist, b/ P2 [. w" v! a- K
- (append mdashlist (list (add_mdash ltlist)))9 [3 [. h; \7 n7 o2 `5 q' n
- )% B4 s/ }" T* v
- )
6 @) K$ d$ a! B4 c- \; Z3 ? - )
/ n+ z0 T1 g3 ~* Z - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
- s& K/ [4 s/ h$ P* r7 H - (setq mdashlist (cons nil mdashlist))
2 @3 j# G& y% m/ ~" f7 g - (setq ltnmlst (cons "BYLAYER" ltnmlst))0 ^. G8 Y( m, x7 k7 m) A' J+ q8 {6 K
- (setq mdashlist (cons nil mdashlist))8 U$ g2 x3 G4 Z' e
- ). E) R! b% h+ B( r8 K4 |
- ;;. @% Q e0 q* j- y: h& B" g
- ;; Get all the group code 49 values for a linetype and put them in a list b" v, C) w! u9 i
- ;; (pen-up, pen-down info).
! M) p" h1 k- A; W% y z. T! \. E - ;;
5 z5 A% ]4 c; J C4 R- n - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
2 q/ Z/ T/ }8 d: s; h - (setq dashlist nil)
( B- k' F# P+ R4 _ - (while (setq assoclist (car ltlist1))# C% ^7 `0 b8 K/ I! g$ Q# I p
- (if (= (car assoclist) 49)( c" |" s' y: W7 t: Q
- (progn
0 h& ]0 r) ^; E0 O$ U' |4 N# `6 H - (setq dashsize (cdr assoclist))8 G' k/ S4 U+ w
- (setq dashlist (cons dashsize dashlist))5 l) p9 b" g$ `
- )
' e6 y' |: Z/ t6 X2 c, Q) \ - )
+ s5 i! ]( K; _ Y8 |6 f7 d - (setq ltlist1 (cdr ltlist1))
) p0 W3 u+ ^( b p; C1 Z - )
3 B5 G: i" a- ~, c6 @# } - (setq dashlist (reverse dashlist))
$ a9 _, L, B1 C3 e, {# P6 g - )" U& b( _( d! A8 d( B& Q
- ;;
1 X! `3 q Z2 V% t& o$ p - ;; Color a tile, draw linetype, and draw a border around it
# Z4 p" a, \" `' Q+ N: X - ;;% G" F- b1 Q# l. P
- (defun col_tile (tile color patlist / x y)
/ e: x) s+ W, x" I - (setq x (dimx_tile tile))
5 y1 w0 W$ {) H3 w# B - (setq y (dimy_tile tile))9 q" X: A) @4 L; B& [
- (start_image tile)9 N6 A, i. \+ I* _
- (fill_image 0 0 x y color) N. \7 p& n2 w/ k) }( u- y
- (if (= color 7)
' g5 \8 X; Z" Z+ i - (progn* j: h+ m- o* c
- (if patlist (drawpattern x (/ y 2) patlist 0)). [7 p1 e# @ Y2 i* l
- (tile_rect 0 0 x y 0)1 A6 Q, p' _ M; f9 O; z
- )
3 S& \7 _! V5 }, ?# R - (progn0 U' \& ~: X# l
- (if patlist (drawpattern x (/ y 2) patlist 7))
% g0 Y3 G' E- C' p, B) T - (tile_rect 0 0 x y 7)
! _6 k; J- _0 G1 ` - )8 W3 P: `- x3 A& \$ W
- )
/ k7 S# _! V0 A8 y J - (end_image)4 R; L' r3 j& A8 r7 C
- )
+ U) i, u" h1 I; L - ;;
% |8 `" x: u- v# P( Y& w) V* K - ;; Draw a border around a tile
& n0 h) }5 j" A6 |; X - ;;' g. Q" J y% `$ | ?+ k6 Z7 [: A
- (defun tile_rect (x1 y1 x2 y2 color)- L2 g+ U" h2 X: {
- (setq x2 (- x2 1))+ V5 v; g7 E1 \2 ]7 G
- (setq y2 (- y2 1))- h7 G B# H; z( @
- (vector_image x1 y1 x2 y1 color)
# Z2 y: V. A4 H' Q) X/ M - (vector_image x2 y1 x2 y2 color)' Q4 o; z5 J8 Z/ @) `( G
- (vector_image x2 y2 x1 y2 color); X% c% |+ g% r9 Y+ X1 ~ E) s4 y
- (vector_image x1 y2 x1 y1 color)
' m. K0 \& h& {. e; b7 c - )
5 g) k$ g2 \$ c0 ]5 @8 Q7 d - ;;
) U/ Q$ G+ l7 X6 S - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
. m1 F* \) t" T; F# r - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
; Q, y/ ?$ N" o$ e7 ^' Z4 A. G - ;; list of numbers that define the linetype, and color is the color of the) ` h* C. H5 ]3 x, U( `( f" Q
- ;; tile.
! N* t l# x" _# h; p7 D - ;;
. B9 P' _: h7 Q7 m+ J; h - (defun drawpattern (boxlength y2 pattern color / x1 x2
/ v( ^# _1 b2 W6 y" a9 W4 v - patlist dash)3 q* B. R1 N$ T a+ n% }
- (setq x1 0 x2 0)0 X3 W6 _9 y! e1 j0 h+ L7 n( v
- (setq patlist pattern)" H3 b1 D- ~9 c) y, _2 Z& W/ f
- (setq fx 30)
$ Q Y+ A9 l' K& R- | V& z4 I u. t - (if (= patlist "CONT")
% n, }3 t9 j* H( o5 e9 B4 K+ R( N% Y - (progn (setq dash boxlength)
- N( ?1 p0 ]! }) e* w - (vi)4 |5 [0 s5 k$ E
- (setq x1 boxlength)1 b, o0 b' ~) ~& S$ Q9 E
- )$ \- h+ L! n8 C. b
- (foreach dash patlist
' r2 I+ i0 g9 H - (if (> (abs dash) 2.5)% |$ i5 ^% v" s
- (setq fx 2)1 W) \ D$ g& B7 F/ f
- )
! n& m$ x8 V& }6 i( J9 s - )
4 S. z* V8 J' d v% |, h5 V - )
, k; I+ i" t/ [& p1 o- }( y - (while (< x1 boxlength)- O& g/ e' l" U0 S4 T8 \/ a' S( v
- (if (setq dash (car patlist))6 M; A) c! T; c5 \( b/ ^
- (progn: r- I0 Y0 P+ b. j
- (setq dash (fix (* fx dash)))
% I! k: j$ ^) @6 m - (cond, b U4 C$ L6 ~" v
- ((= dash 0) (setq dash 1) (vi)): Y9 k# }! [6 B/ M8 g0 d/ F, c; ~
- ((> dash 0) (vi))
8 |+ w& {6 Y2 w( Y+ G5 q - (T( [! a: G! F8 | d$ [3 C1 C; z4 [# R/ u
- (if (< (abs dash) 2)
1 Q3 z; q/ @( i# L4 E J: X - (setq dash 2)6 L1 [0 A8 o3 J: r2 \1 i: S/ |' F
- )3 _. D+ [+ B h; {/ y- z { Z
- (setq x2 (+ x2 (abs dash)))
) `0 M- d# ^$ k6 t - )1 K! D! p" G- P" n" w
- )
' e2 D* H: t$ z5 g' @& M, [9 p- V - (setq patlist (cdr patlist))
- w6 X+ w* \3 s - (setq x1 x2)* I8 {+ f4 S+ L8 ~
- ): g/ ^; @/ P, m& a/ c+ f' D
- (setq patlist pattern)
B, j3 @4 F% s; R, P6 ]* U - )1 W9 i" f) Z7 y K. { ~+ w
- )1 N% L7 W( j. \. C4 U- A% a
- )" W, n% O: B: \7 [; e# l; ~" W9 k8 d
- ;;
- T0 `" ^ u3 k; Y$ R$ u9 B - ;; Determain state of xclip
( n! ~1 s N1 W. v - ;; Returns the group 71 value of the spacial filter dictionary.
0 n( E0 h; S8 R9 I9 v- O3 D! q, r - ;; If the entity doesn't have a spacial filter dictionary, this( P' C+ Y4 ]" b" f+ L
- ;; returns 0. If it does it will return 0 or 1 depending on the
! x# J' j/ _- z' v9 Z5 X6 M - ;; current setting of the state of the clipping visibility.
# E4 o/ N0 g$ ? - ;;0 H: s0 y: K$ ^8 d
- (defun xclipon(elist)
' y1 N; y, D% y6 I* @ - (setq hasclip T)
+ U3 k+ z* ~2 ]8 B: r" T - (if (/= (assoc 360 elist) nil); E( ^6 |1 T2 @8 g/ j5 u
- (progn
5 `9 n( B" Q6 y8 ^2 m( |" x - (setq tmp (entget(cdr(assoc 360 elist))))
' T8 a! ]: h* T/ ]; p - (if (/= nil (assoc 360 tmp))% T) a) Q* E) f
- (progn# P+ Y/ j& E3 }0 X0 F
- (setq tmp (entget(cdr(assoc 360 tmp)))). ?2 M6 k# N7 i: ^! e' R: i
- (if (/= nil (assoc 360 tmp))1 s0 E1 G! b0 y* c
- (progn1 k8 G5 V& t3 F& ^9 q
- (setq tmp (entget(cdr(assoc 360 tmp))))4 l) C# @) V) B. O+ M
- (if (/= nil (assoc 71 tmp))
1 \* t+ Y( z) O9 H4 `' H - (cdr(assoc 71 tmp))
" e6 I1 Z! x8 }) G/ q7 O- Z - (progn
5 W6 S7 Z$ C% k# o3 y! U" G0 j - (setq hasclip nil)
) ?) ]" I' C: C# |8 F0 q2 W5 E/ S8 k6 ?& X' X - (eval 0), t( c( ~5 r9 B
- )
9 B2 H) H; U6 W* v - ), @! c% H) d3 L, {" }0 b9 {3 V
- )
; O1 A+ @$ v6 M4 O0 X - (progn
5 h4 O4 n1 f# N4 S. d - (setq hasclip nil)
! r/ N4 m6 O( s- o2 O8 G$ v! T+ z - (eval 0); N1 C, f) w3 k% r
- )
9 X \7 L# }; I5 j: t8 l - )3 O$ n% o* ?; P5 @2 X
- )5 [7 l9 I. [7 T0 y
- (progn
( Z8 c+ j. L6 S) F# O - (setq hasclip nil)0 H2 u1 B7 } P/ `; c8 C& c3 p
- (eval 0)
# D: l, h/ z) {; [. W. t - )
3 U) {) X9 H( j) x - ). l" x; h% v2 f) N
- )
2 s) T& f; }5 ~6 g8 E+ ? - (progn
) M; R# w6 X( q$ T' W1 h - (setq hasclip nil)5 W- A% Q4 i- H. s
- (eval 0)
, F; [) n/ b) e( `+ u7 q - ). y3 o8 f& v, r6 G3 m
- )
- z: @" f' T4 Y - ) q! N, Y( d+ L( I" I2 Q) D
- ;;
4 Q$ X, g% V+ F+ A1 @ - ;; Draw a dash or dot in image tile! |9 [( L, ?3 B, h. [
- ;;. C. S( b0 l' s
- (defun vi () ]0 N+ Q9 m- r& |7 L
- (setq x2 (+ x2 dash)); g8 E6 q: F! l- R
- (vector_image x1 y2 x2 y2 color)* d }1 ]! C. y0 _; `. q
- )* `" d) \% k- _ l8 h! S
- ;;7 d1 B3 t* t% Z8 d+ }
- ;; If an item is a member of the list, then return its index number, else
+ e7 I) I: n& K: j - ;; return nil., v8 j+ C6 U0 H6 t3 O4 b5 L
- ;;& w# q4 D* ~ Y% m( z; S+ h% M; O
- (defun getindex (item itemlist / m n)" U: I" [4 y) h* H: e3 E; b. s
- (setq n (length itemlist))
- z8 G" {4 g3 i1 m3 B5 I& o0 l - (if (> (setq m (length (member item itemlist))) 0)
5 L! b4 t" H4 k) W9 F - (- n m)" z1 |& J+ j5 }1 J6 n+ q; w4 W4 p/ r
- nil
( P" x$ n i4 b; d5 f0 j - )
& W1 R+ y6 d( W( [- {5 H - )
3 l8 m0 y1 u. h - ;;
" x: A2 f6 K- l' j - ;; This function is called if the linetype is set "BYLAYER". It finds the* n* \) ^; k, n& L" ?- S
- ;; ltype of the layer so it can be displayed beside the linetype button.) v# s, s/ A9 W9 K
- ;;
% n. e% @; L& x* l- C - (defun bylayer_lt (/ layname layinfo ltype)
6 Y/ \$ k F: b S' @6 t - (if lay-idx
6 O- s; Y; d/ ` F( f - (progn
9 j( Z/ M& p. B - (setq layname (nth lay-idx laynmlst))# s+ E# P; W) V* m5 w/ }* R0 `- V
- (setq layinfo (tblsearch "layer" layname))
7 G$ J: [ B2 O! v2 I - (setq ltype (cdr (assoc 6 layinfo)))
' g* ~0 O6 y' u# [. J( I - "BYLAYER"1 q3 G( m* Q# Z) S
- )4 C9 ?+ R( {5 `* v( v1 |/ [
- "BYLAYER"
+ J7 l/ G, r o/ G7 {' x - )% i* V( K1 P! K- {- M
- )1 @9 N1 G8 }* K% B, P% h- K* ~4 S
- ;;& g- y6 P7 G) h- G L
- ;; This function is called if the color is set "BYLAYER". It finds the color8 o* c: ]0 d6 E4 e- m8 U9 V
- ;; of the layer so it can be displayed beside the color button.2 K4 Q. T$ E" C4 e0 J! Q3 ?9 e
- ;;) U E7 S& C3 m7 C2 A/ ~9 t, k
- (defun bylayer_col (/ layname layinfo color)
5 ?$ j+ U) q/ k, z - (setq layinfo (tblsearch "layer" elayer)). k h/ C* t- |# h: O( L$ j$ C
- (setq color (abs (cdr (assoc 62 layinfo))))" K, z' s# q. O0 U
- )- f; g9 i3 ]5 c% P8 o3 A
- ;;- y* m) @4 p. b1 S
- ;; Used to set the color name in layer subdialogue.! X- v5 Z- y1 G0 Q H* H
- ;;
, r2 y% F s# K% b; z: e - (defun colorname (colnum / cn)
6 o. i5 P# W( T) ]/ h+ b - (setq cn (abs colnum))
4 N( W% ?$ |' V, k3 Z1 S - (cond ((= cn 1) "red")
2 {3 {/ H& ]2 c" k o - ((= cn 2) "yellow")
7 C8 w2 Z+ Z/ x$ l) g% {' ] - ((= cn 3) "green")3 C* @1 B8 m# f* Y9 ]: N/ v
- ((= cn 4) "cyan")
; G7 R1 w# S) U - ((= cn 5) "blue")6 _, [' G+ j- z( k; z& J' R; M
- ((= cn 6) "magenta")1 J& M1 n( D: |
- ((= cn 7) "white")9 P5 w2 _% A9 x( l( j
- (T (itoa cn)). ~, f# c" L9 K+ T0 C! p8 t( g
- )
& u" m, _9 j s4 m; u( s( M - )
; j- c3 p8 V" E7 I& v' ` - ;;9 Z0 J$ v. a1 M: f3 ]4 ]- l
- ;; If their is no error message, then close the dialogue.
1 L$ \2 t$ S! c) A+ l( { - ;;
4 w* |/ z2 l* Z; ]6 A - (defun dismiss_dialog (action), p& B5 u$ f$ v
- (if (= action 0)
2 P, G# l R- ?2 C# L - (done_dialog 0); t% {* ?% y2 f d6 B0 Z
- (if (= (get_tile "error") "")
: m5 N, H0 N9 c - (done_dialog action)* I1 \ Q" l# U+ u+ Z! `
- )
; i1 a& M4 b; v' Q - )
1 V2 l" T- F( j* ~6 \# { - )
4 M' n& y1 n# e9 _. E9 W9 l
; t r" Y: V$ ~( s$ Y8 K6 t7 g- (defun test_ok ()
- f1 X+ S3 }) s& r0 A# f4 s - (if (= (get_tile "error") "")
, A) k5 g- `3 L+ [* Z) z - (done_dialog 1)
7 u5 x% p& w6 { N - )7 T: b k6 P; W; c+ [$ W
- )
# v5 F5 j6 v* R4 P# F - # J/ A$ b5 M# S9 {5 _; W. V
- (defun cancel ()
$ K! r# Z% e7 F. S4 }* L' j5 i, ~* ~ - (done_dialog 0)
% o; m* I8 x+ L8 `% ` - )
' v3 L0 o7 l6 m1 n/ K
' s- c$ Y7 b$ Q/ Q! D- ;;; =======================================================================$ N" S' q: L. [# z; O- J8 Y8 Y
- ;;; SETUP layer and linetype lists for application, and initialize all
: `5 P3 m o. w4 {) D) G1 O1 K" x - ;;; program variables.3 G6 |6 ]* D4 F- s$ I. {
: \9 R4 V$ y" s$ l6 p- (setq elist (entget ename)( p5 {$ K3 ?5 U. f4 S
- old-elist elist
% y2 ] H. r+ F - modlist elist
/ V: S* s/ P9 m- n9 u* [3 x0 R - etype (strcase (cdr (assoc 0 elist)))
- R4 G6 e/ n$ g& g - ecolor (cdr (assoc 62 elist))
8 |# r+ p; v. E - elayer (cdr (assoc 8 elist))
& ^ Z1 A+ R# e* ]5 H- U% M- H% s - eltscale (cdr (assoc 48 elist))
" H+ ?. I' F3 }, ?/ `/ y* i - ethickness (cdr (assoc 39 elist))
% F' V8 H! v; {/ c - eltype (cdr (assoc 6 elist))! Q$ }, T8 _. n# @7 z; z3 P
- )
; f, k S+ H7 Y+ P0 {" G3 A# `0 W - (if (= (assoc 210 elist) nil)
1 i) Y# q6 S9 b% B - (setq extru (list 0.0 0.0 1.0))
' k: t8 s& Q K3 Y3 E - (setq extru (cdr (assoc 210 elist)))1 J, J" j& A( u
- )* V4 [& A$ b# r! s
- + p4 B `9 T6 A
- (if (not ecolor) (setq ecolor 256))8 Z t4 V, V. e" Y
- (if (not eltype) (setq eltype "BYLAYER"))
+ \2 O' Q3 e6 `( S - (if (not ethickness) (setq ethickness 0))
/ \3 U/ s; v- O2 @ - (if (not eltscale) (setq eltscale 1))
* F0 I1 v+ j1 D3 e* h; ~8 O - ) ; end ddmodify_init, S$ B+ w' |4 R4 @* X1 b D- t
- " f4 j. t9 E$ j$ j7 \
- ;;; --------------------------------------------------------------------------
8 @6 q& d4 y2 }% e9 x2 L) e" c - ;;; Function: DDMODIFY_SELECT
( h6 d( i i% e6 U# D - ;;;8 U' r( Z( \; L4 S
- ;;; Object aquisition function.) B6 L* }# e# T* ?8 X6 H
- ;;;
+ E2 _& z: w1 `5 `3 w% { - ;;; (ddmodify_select)) y% Y* F7 ~2 R7 u
- ;;;
9 U% r9 M/ P5 g - ;;; Obtains object to be modified, in one of three ways:; x/ [# j2 h6 ]4 L* J5 d5 O
- ;;;. Q& ]* X& G M1 \& O+ o
- ;;; 1 - Autoselected.
* n* O7 t. U3 n' L* q1 U# c - ;;; 2 - Prompted for.
# q ?& r9 J" W/ g2 m( r% A+ ] - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> ); H/ u) W6 D5 y
- ;;;) F$ F) G8 T# |" c. J7 O, Z
- ;;; The (ddmodify_select) function also sets the value of the
5 A, ~5 K- R5 D - ;;; global symbol AI_SELTYPE to one of the above three values to
M0 `6 _: G) g6 `5 t7 {/ S$ n. d - ;;; indicate the method thru which the object was aquired.* K, z1 y" N6 J
- ;;;- I4 T4 g+ h6 _$ {! N# ^
- ;;; This value can be useful to applications that want to RESTORE/ K! N4 o2 C7 a3 I8 z0 C
- ;;; an object that was autoselected to its previous selected state
6 K% `, t/ t; F4 P) g* Q. X - ;;; when they terminate, although there doesn't appear to be any
; X% H4 T! z0 m% i9 E) z* e# T- V5 i - ;;; way to do this right now.
/ q% Y4 T6 ]3 \- g* E. I: ~0 i/ V - 7 l' T- Y) _7 s1 [' V
- (defun ddmodify_select ()
Z8 d7 a0 x/ Z" ?* \# V7 a+ X - (cond+ a# l4 K$ V( u- O2 {3 S* B9 F- B6 C8 l
- ( ename ; (ddmodify) was called
- Y( e/ }/ o1 C; F! m& \8 o: @ - (cond ; with an <ename> argument
3 k. n% D4 N# S1 J2 ?% L9 t - ( (entget ename) ; If object is non-deleted
! S) v7 j. j5 V* C/ [5 {* k# p - (setq ai_seltype 3) ; then return its ename.6 r) H" e& k7 v5 }4 G, K
- (ai_return ename))))
; g, n, F7 {; c3 m. a; s2 P4 B
8 o+ o. ~! U5 x: c, M- ;; return auto-selected , see ai_utils.lsp
+ N* \. W3 B: t* `2 U. C2 {* y3 s - ( (ai_autossget1 "\nSelect one object to modify: "))) h U# s8 Z- {
- 4 w0 z* n) K) X3 s( d3 s* [% `+ Y
- (t (princ "\nNothing selected.")+ U. I6 f l1 S9 ~
- (ai_return nil))" ]! V7 U7 y# Y f; u( F
- )* d6 e7 |9 o4 A- Q. ~
- )$ M1 {, j# r( c9 j
* v7 M3 q3 |+ H9 S8 s- ;;; ============= Command line interface function =======================' ]6 Z# o; n \) x" A- j" i- @ ?
- 6 h% b/ G C# A7 ^+ C, W
- (defun C:MMO ()
+ C; \" y3 Q7 A+ p - (ddmodify nil)6 B1 N8 b1 @, I% n$ l
- (princ)
" @' {) m% I& R0 F" C( w- `) g - )
/ Z1 v7 E3 P* |7 z ~# j" E2 b - . E2 @2 g9 o6 T
- ;;; ================== (ddmodify) - Main program ======================== u( I* ~* _( |; I2 E# \
- ;;;
) K0 F: m5 |1 U0 Z' C- ` - ;;; (ddmodify <ename> )
( O1 @- a: w! v* X2 V. p - ;;;* j/ N, x# v) {5 l. f% Z
- ;;; Main program function, callable as a subroutine.
7 T9 }7 ^4 `; O8 J - ;;;
0 B5 p( V$ I# X3 B - ;;; <ename> = object name of the object to modify.. ^% ?7 l p0 a6 S7 y
- ;;;, D1 S# ~* D& r! V9 n9 S q* k
- ;;; If <ename> is nil, then user is prompted to select
, \- L- | `/ K9 W - ;;; the object interactively.
. A& }8 s2 s5 H" `7 ~" ?! c# Q2 H2 p - ;;;' B9 T2 Z0 W5 ?& {+ ?
- ;;; Before (ddmodify) can be called as a subroutine, it must
v, ~" c% }& H5 d) G' V - ;;; be loaded first. It is up to the calling application to1 k4 t* o0 B) h7 n/ w# O2 Q% O! ]
- ;;; first determine this, and load it if necessary.
3 Z) ]% n A. t( D- q( ]
- i% s' D( J7 s k) J. u5 A9 j' y- 3 ?+ J6 h$ C( l6 B4 A- g& V
- (defun ddmodify (ename /9 K2 H- `0 R% k3 ^0 N
- 2ndpt ell_calc_area move_pt1 templist; w T5 c$ w0 H7 ~" J* \9 i% E
- add_mdash ell_tile n tempmod
5 k# R2 j, a* X+ ^; _- K+ q L - alipt eltscale name tempst_ang
o+ w4 T( p x( S6 d) K1 S - ang eltype newpoint test_ok
6 C; ?: V7 W/ x+ Q5 a - arc_calc emod next text- W1 O0 M5 r0 S# a C8 {2 A" |& \
- arclen end_ang next_vertex th-value% e+ a2 R* j" {; I7 I, H" t9 A
- assoclist endpt obl tile; a" w+ P% c; J3 y- X
- atprompt errchk off tile_rect) L" ^ P3 P M" e. L8 D+ Q% {
- attag ethickness old_majrad tilemode
& x4 ~+ V( q6 X. c$ N3 o - attprompt etype old-closed totang4 p5 {8 |1 G+ |8 ^
- bit extru old-closedm tstyle
. `) f( G S' N* R - bit1 fchk old-closedn u; }7 ]( y8 {; j1 ]7 `% u' A
- bit-10 first-10-rec old-elist undo_init
+ R( M1 X T& U$ e% B7 E - bit-11 first-10-time olderr upsd7 G6 a0 S M1 U7 V J8 F5 t
- bit2 first-11-rec old-fit v8 l4 S R1 M- r8 k% K# M' s3 A
- bit3 first-11-time old-idx va! b% w" }* y. i) n0 L
- bit4 fit oldlist value+ L8 y* t, V" l
- bit70 frozth old-spltype ver_4
I) {7 Z/ R# r$ h3 M+ ^ - bit-70 f-vis old-u ver_ang1
5 O/ G3 F, x* v3 K! @ - bit75 fx old-v ver_ang2
( c" t; T4 b8 L9 M- N3 p) ?7 v% ? - bk-up get_color on ver_col& A- o! b5 m& F/ w+ V# `' v
- bkwd getcolor onoff ver_colsp
1 D: Q) F& a5 e# \) w0 B" F - boxlength getindex on-off ver_eangle& `& j4 H/ |) X ?- h |
- bylayer_col getlayer patlist ver_hght4 {7 H) u/ A! |1 [8 e7 a
- bylayer_lt getltype pattern ver_majrad
C$ ]! u- w4 ?9 c8 j( ~: Q - calc getthickness pltype ver_obl9 R; ^& g' x' |( k6 s, C' \; v+ `
- cancel globals polytype ver_pt1
, A, n' r. K' |( V, S - cir_calc ha pre ver_pt2% J$ T; H! E$ ] \8 P
- closed ha-prev proplist ver_pt3
1 k: ^$ S: ~' t7 v* t" h - closedm help_entry pt ver_pt40 z F+ R) E6 Y
- closedn hght pt1 ver_rad
! @+ L0 {& f' F0 S7 o5 A' l$ W - cmd icvp pt1_eq_pt2 ver_rot
3 J9 u$ m" }$ U8 ~; |4 @ - cn image_add_vector pt2 ver_row) F6 N: p0 M" d
- cname image_clean_variables pt3 ver_rowsp
/ p. g- m0 ^( C8 B - cntl-pt-indicator image_cross_product pt4 ver_tag1 r0 @5 ]; B! {4 f" m7 U1 y
- code_71 image_disp_opt ptype ver_u8 \/ D0 ~! \( o5 d9 k
- col_tile image_dot_product radius ver_v
% b* L8 u) U! i! K: y: V - col-idx image_normalize_vector rational_spl_flag ver_wid
# k- v: H0 \! Y, \; { - colname image_rotate_vector reset ver_x1
1 h5 g, Y1 O# X! [1 b0 O2 w - colnmlst image_scale reset_flag ver_x2
; q* ?1 g/ y1 \" ^ - colnolst image_scale_vector reset_lay ver_x3
1 a# }+ p' t3 a3 u( M0 u - colnum image_update reset_lt ver_x41 o W. x8 w8 O2 p
- color index reset_uv ver_xline_pt1; S+ A. A. i- j6 R8 O& u K- G
- colorname inv rot ver_xline_pt2
: W/ g" E c- W; M3 k - colorno item rows ver_xline_x1
6 C! R. d. f1 Q' Q6 {5 b - col-sp item1 row-sp ver_xline_x2
& t( e$ B' R9 R - columns item2 rrat ver_xline_y1: [- [: o/ r8 n
- con itemlist s ver_xline_y2
$ m4 Z. H# ?; s, E) ?# _ - coord jlist set_action_tiles ver_xline_z17 u9 c: H4 \6 d% K) G* y7 s
- ctr jlist_act set_just_idx ver_xline_z2
1 L. N2 V% F |. j& F - cur-10-rec just-idx set_tile_bk-up ver_xscl
: U6 p0 }; Z9 C# o& m; @0 n& y7 S7 } - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
* p! s6 J& q" u - cvpname lay-idx set_tile_data_pt ver_y2
/ r( Q1 T" B) u7 z0 b - dash layinfo set_tile_dirv ver_y3' k f4 S# `# c- B( Z- y
- dashdata laylist set_tile_edges ver_y4+ B; {) G' e/ |+ ]: S" s) z
- dashlist laylist_act set_tile_endang ver_yscl8 j* H+ R8 q( K& R" O0 L0 E ~+ E
- dashsize layname set_tile_hght ver_z1: y( w0 B1 `, K
- data-pt-indicator laynmlst set_tile_icvp ver_z2
0 G' `0 P6 I% G' t9 ^. m% r - dcl_id layvalue set_tile_just ver_z3
& y$ ]1 t5 L1 n+ s5 h. J4 x - dd3dface line_calc set_tile_obl ver_zscl
8 m5 D5 D8 j7 a( h. U# F/ @ - dd3dsolid linetype set_tile_prompt verify_a
) l- J8 z4 G! Y/ `& s - ddarc list1 set_tile_props verify_d. ]; X( ?2 _! [" _/ s4 m2 k5 h
- ddblock longlist set_tile_pt1 verify_i
: N# O- f- n- C6 y/ d - ddbody ltabstr set_tile_pt2 verify_xline& k0 i7 ^+ E4 c$ g& E3 s
- ddcircle ltedit_act set_tile_pt3 vfy- Q" u5 G9 s9 N- j3 g H' W6 i
- ddellipse ltidx set_tile_pt4 vi
: k, k$ O& d( R/ \5 [ - ddgetprompt lt-idx set_tile_rad vlist
+ T0 O0 j. C: L& Y+ o - ddgettext ltlist set_tile_rc vname V# ]1 z6 L0 y X U$ S9 U
- ddimage ltlist_act set_tile_rot vpf, E6 w$ S$ N- K: X/ b4 e8 a6 {, Y' e
- ddimen ltlist1 set_tile_scale vpid
* n! [$ t$ Q: Q, ~; K - ddleader ltname set_tile_spline_props vpldata7 ^+ A0 e$ o" p+ a+ ^1 s
- ddline ltnmlst set_tile_stang vpn7 W$ B# r7 D+ I* E
- ddlist ltvalue set_tile_style vpt% e. o5 Y) y& ^0 F2 l
- ddmline ltype set_tile_tag which_tiles# }$ l! h& I/ l: r3 b7 g& }
- ddmodify_err m set_tile_text wid
$ ?5 o- U$ r L+ u$ _, z - ddmtext majrad set_tile_vpt x5 l8 z8 [7 e7 j
- ddpline make_lay_lists set_tile_wid x1
" w! y1 }. @3 C6 } - ddpoint make_lt_lists set_tile_xline_pt1 x2% I1 {" n6 V1 K8 e
- ddray mdashlist set_tile_xline_pt2 x3
( ^0 z- n2 y7 ? - ddregion minrad setcolor x4
$ Y# Y! P7 R& U2 W- n6 T' N - ddshape modify_3dface shght xdlist: s/ A- E4 m# t8 \. }
- ddsolid modify_3dsolid showpt xline_pt16 C) u: e% C2 b( f3 Y: c/ _
- ddspline modify_arc size xline_pt2
; B/ Y7 {9 C/ P# y" q - ddtext modify_block slist xline_x1
6 O2 t$ K. k: A" l- A# R - ddvport modify_body sname xline_x2
; e8 A- d' y& ~; N( m$ I% I! P - ddxline modify_circle sortlist xline_y19 d, U3 ^/ E6 t6 k! H2 W1 E4 V7 m
- denom modify_ellipse spltype xline_y24 W+ n% q! {% D, K* b1 `) y
- dialog-state modify_image ss xline_z1' n! ]: B/ P8 o! r# m& `
- dir_pt modify_line st_ang xline_z2. K# k; f0 o+ C. b7 f3 n
- dir_ptx modify_mline stpt xscale
6 F$ p$ U* C' C - dir_pty modify_mtext style_act xx: y" M% F' w) ]( @ n5 \
- dir_ptz modify_point style-idx y1 N! N |$ h' n( `0 z- E
- dismiss_dialog modify_polyline style-list y1
/ i6 L y4 z2 G% Q; y - drawpattern modify_prop_geom tagval y2
3 u2 k' C: x0 {" l) b3 ` - echo modify_properties temp y3' g- \( j* J& k; m( t2 y9 ]
- ecolor modify_ray temp_color y4
# E$ | N3 Q5 H! [. D2 e - edge1 modify_region temp_dir_x yscale8 @, q* e0 V- n c) E6 ^. W
- edge2 modify_shape temp_dir_y yy
' j8 \) G. V2 }- c8 N) I& L - edge3 modify_solid temp_dir_z z12 f( d) M5 X( `$ S; c: {6 q
- edge4 modify_spline temp_xline_pt1 z2
- q: o& k$ A. j4 o4 V - edgetest modify_text temp_xline_x1 z3
, Z/ R7 P& }$ w' J# T3 U. [ - elayer modify_vport temp_xline_y1 z4. q! ]+ N, ]( |6 D0 C ^
- elist modify_xline temp_xline_z1 zscale
0 ]( @; [0 j* u" G$ W$ O2 D - ell_calc modlist tempend_eang zz
: X# }' F: ~. K2 W3 w - dir-idx safe_ddedit ver_MtextWidth xcliponoff
% F9 F, Z3 C5 B& }; A0 K: u# ` G - MText_style
, @0 V8 S$ j7 A L. h - )( Z: y3 w1 M5 T
- ' I1 d4 \1 W1 t1 V, u
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
1 Z8 K% [2 @6 a- h - old_error *error* ; save current error function
+ k" G' t/ H# h8 n( X: G - *error* ai_error ; new error function# v/ | ~8 b" u) o) L' m
- )5 i; U) H- W6 l" {$ y# i. _; i& C
) r/ B& x+ K) ~+ Q% f- l7 ~' E- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
% G: v" F, G0 w# e6 O - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
3 ~ G4 v$ F# u, h- g0 v, u* E - (setvar "pickstyle" new_pickstyle) ; bit and set to new value( t" K' n& |/ ]: Z8 r4 [
2 g6 z# r% l8 \4 l: ~! m* w- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
$ W( ^& H3 v. h9 Z - (t 1)))
9 v+ e8 b) K1 d - (cond5 b. P: G" k3 [7 V2 a
- ( (not (ai_notrans))) ; Not transparent?
4 L) a. H& z8 H - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
: x# @6 H* O0 c f( m1 U5 W - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
; H, A% G" h+ p4 l/ _ - ( (not (setq ename (ddmodify_select)))) ; object to modify?
9 G) ]2 U$ J! z" ]' ]
( c, R' f2 ~4 U: O7 a% @5 w- (t (ai_undo_push)1 [1 b: O# A2 C. B8 T
- (ddmodify_init) ; everything okay, proceed.8 O# A' J) s* H b5 ]( U
- (cond
, u6 \ }% H, g7 S8 u - ((= etype "LEADER")
: y( n) i* \5 q9 L, l+ E - (setq help_entry "modify_Leader_dialog")% F1 N( V3 t4 C @! b/ Y1 I
- (ddleader)1 l/ ^0 @2 E: I5 d# @1 H
- )
: E, [7 @# |$ ]1 b2 i2 `+ ]# N9 V - ((= etype "ARC")
: B5 v5 L+ B, Z9 j/ v4 {) A# o - (setq help_entry "modify_Arc_dialog")
4 M9 J# V3 T8 N: L6 M Y' \( H - (ddarc)
# H/ D/ q* Y" r6 E$ q5 Y( y) f - )2 B3 H5 H9 [6 D9 O6 z! g z
- ((= etype "ATTDEF")
' h! ~. _2 X5 y0 ^6 ] - (setq help_entry "modify_Attribute_Definition_dialog")
; ~9 [5 Z7 [9 J4 { - (ddtext)* y6 c: k. G7 c# E- f- _4 ~
- )1 ]5 d; o* O! A
- ((= etype "CIRCLE")3 q% K( d; Z& _+ ?
- (setq help_entry "modify_Circle_dialog")
x8 u3 T0 T: j, r. R - (ddcircle)& r/ s# P1 s' P" k% O- \: V
- )
$ K/ `" U8 Z' b6 G0 ^$ V# y - ((= etype "ELLIPSE")
2 p. [. X% @% y! V* A - (setq help_entry "modify_Ellipse_dialog")/ k4 n4 `( l/ i" W: m
- (ddellipse)2 Z- E7 c! ~9 W, e: [. i$ R
- )
5 E' n2 D2 X; V+ P - ((= etype "3DSOLID")8 F/ @' Q* Z; b: G1 q/ z
- (setq help_entry "modify_3d_Solid_dialog")- `+ p; o( ]$ f. _
- (dd3dsolid)
- ^; k O2 F( U6 a+ }- r - )3 _$ p" @* L b, ?
- ((= etype "BODY")
8 A; b/ z5 S3 m/ ~ - (setq help_entry "modify_Body_dialog")
; G% w4 x3 o% e. _. c - (ddbody)
# H, s1 J! G# v. u. e0 w6 u - )- j7 j+ W7 V" o/ Y
- ((= etype "REGION")% r. r: _* N* w
- (setq help_entry "modify_Region_dialog")) @! G1 W8 Q$ t6 j3 H. H6 h
- (ddregion)! ^* D- v) Q1 U$ e; u; s$ G+ m
- )/ g7 c1 a! r! k
- ((= etype "HATCH")
2 O# C. z/ g7 `" y8 t - (setq help_entry "modify_Hatch_dialog")
% B* v+ s( m# |3 i - (ddnewhatch)
+ F/ d5 V G& j; O0 H$ e - )
1 O# U" g. {- I7 M7 Y- G, q - ((= etype "SPLINE")
1 U/ M8 b. F+ C& l/ B0 X - (setq help_entry "modify_Spline_dialog")
' o9 N* X6 u+ ] - (ddspline)/ m$ {) B( z5 _6 w4 @! R
- )
& G& v$ k5 a+ a4 c% E! S - ((= etype "INSERT") ; see ddblock for help_entry
# G( [8 a7 o c! [% n( u4 N - (ddblock)! C: k' U9 y) f: m2 o' ?
- )# R/ _8 w7 [' I* i
- ((= etype "LINE")
& G+ J4 W! S0 d- U" S& n8 B* U% z - (setq help_entry "modify_Line_dialog")5 y; ?5 z+ a3 k' f
- (ddline)
( r$ @+ t; [ n' ? ` - )9 u, i" c& V3 J4 u- `0 `
- ((= etype "MLINE")7 C' A1 b# w3 {5 Q3 L# n" ?
- (setq help_entry "modify_multiLine_dialog")
5 h; o/ K* N6 z; K# B' m - (ddmline)
7 j V/ H$ \) G- h - )+ Z* _& V# B) v# Z' R
- ((= etype "RAY")
* `5 z- d# g! k) p0 R! R - (setq help_entry "modify_Ray_dialog")
! J7 u- K5 {6 O) D/ o: x - (ddxline)4 {1 ~0 {% F2 J$ q; Q
- )) Y3 i" K" m/ F2 `: F! H- M% ?
- ((= etype "XLINE")
- S# e5 `' M" C$ a - (setq help_entry "modify_Xline_dialog")3 u0 g6 Q$ P5 k6 T+ q V
- (ddxline)
5 D% i% j+ H* S) |) S5 f - )7 ~6 W" u3 \: f; O k D
- ((= etype "POINT")
9 {7 l7 u8 b8 \3 `- a - (setq help_entry "modify_Point_dialog")
; w/ t+ _% A( t! m% w( l# O - (ddpoint)' d' a/ g& D' D7 Y* v! R
- )0 G' m/ p. a2 B' @# m7 n, m
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
, { ^* x, G: B3 y' E, e - (setq help_entry "modify_Polyline_dialog")% z# Z# ~1 n0 a, i
- ;; If a 2D pline, check to see if it is planar to the current+ R% v6 j3 x; Y% U {, `
- ;; UCS, reject if not. To see if the pline is parallel,
$ S: Y* q/ i& ? - ;; the 210 group (WCS) is added to the current UCS origin (WCS): q' [( i, B; p
- ;; and then converted to the current UCS and checked to see if
, c7 ^/ D2 h# v5 n2 h$ j$ y - ;; it is equal to (0,0,1).
6 G) @' B1 v. f* y
u, @# M/ d5 @/ b- ;; Incase the 210 is default and not in the dxf list.7 J& c/ j" c% O; Y
- (if (= (assoc 210 (entget ename)) nil)
, S( J% E' Z/ d" S% P5 Y: A) Q/ H8 \ - (ddpline)
" n8 A5 z. G- y3 |/ y' S; y; h - (progn
9 Y7 M9 G/ I: y+ p - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
4 w; I2 h! t- E1 M, V0 b1 S$ E1 f - (not (equal '(0.0 0.0 1.0)% U- I3 q; o: b7 D8 |3 r
- (trans (mapcar '+) i& b3 R5 e6 ^) z: u Z! S: \0 A
- (cdr (assoc 210 (entget ename)))3 W, O5 B# z( Y0 L
- (trans '(0.0 0.0 0.0) 1 0)8 F. b+ s" q% i/ ^
- )
0 e6 i% x# j/ b4 `" ]) a - 0 1
" D+ Z# A% s2 L* W& V) C7 ~" Y+ Z - )+ I5 z" i, b+ T2 C
- 0.0000000001 ; fuzz
; i* \$ ^- O; Z$ o( e1 ]* y - )
) p2 ~6 ` |* a% c6 M; g# T - )
( A) D/ O6 \& z4 m" \, w- S - )
/ R% p9 |! V' W! a3 m - (princ "\nThe 2D Polyline is not parallel to the current UCS.")
& C( v2 Z& V ^* T! n9 A - (ddpline): g* C/ k! ?% ^" L( C. a
- )" S! X. f" j# }
- )3 b1 c' h; S( C v! T* E" n4 {, _9 O @
- )
( c4 q5 a2 e8 l3 `. M( w7 R7 Z) c! ~ - ); }/ _# V: _" ^& n
2 c- k& j' U& ~& D1 W1 F5 V- ((= etype "SHAPE")
4 d, u7 L/ C8 {+ O - (setq help_entry "modify_Shape_dialog")
* V. U) X" ^6 t- J - (ddshape)
N; h7 `+ x5 I6 J& N! z8 ^ - )* {: v4 w' s7 L1 ^4 ^4 W
- ((= etype "SOLID")
; ~7 I5 q+ ]9 c8 k8 F) A7 n7 i - (setq help_entry "modify_Solid_dialog")$ d% n- v5 ?! b7 ~1 j, |" Z! Y* S
- (ddsolid)/ {' m$ C4 e; a
- )2 @% J2 q8 ?: |3 S) B
- ((= etype "TEXT")
4 V6 w4 m; c3 ^) f4 N+ G. p - (setq help_entry "modify_Text_dialog")2 Y4 ?% O" J& t$ g
- (ddtext)) B3 }: B2 J; z3 u x
- )- {9 m( u: X- Z3 ?$ d8 P5 g. j. z
- ((= etype "MTEXT")
& ]/ X2 f- F% _% y" g( Q7 g0 d& y - (setq help_entry "modify_MText_dialog")
- u$ L0 F& h5 Y4 O2 T6 S+ ?. Y9 h2 O - (ddmtext)
9 w4 `, U. N: l5 W8 `+ N$ ] - )
9 R* N4 G# ?' j' e0 L* g& l - ((= etype "TRACE")
) ^) E& J, b8 h( C" w9 n1 h; R - (setq help_entry "modify_Trace_dialog")
9 k& e+ o- x! K$ c - (ddsolid): N3 p% {& J+ W$ I* } \
- )
4 f! f' h t) j7 b% h* \ - ((= etype "VIEWPORT")
! m$ Q; W1 f* u( s' C - (setq help_entry "modify_Viewport_dialog"). g: o9 c+ S! y3 o1 n
- (ddvport)
" x% b. Z& Q9 L9 j- {; v - )
& m! ?: W: n* l0 v! V5 W# h - ((= etype "IMAGE")
7 {+ s& _+ B/ O/ s* G( x# X - (setq help_entry "modify_Image_dialog")
( ]! J$ m0 n* k, I; e! f4 W+ { - (ddimage)
& } H1 H2 u7 K8 B9 T4 { - )
" @2 N0 q1 v6 D3 e8 X% ]8 f: L - ((= etype "3DFACE"): W: R1 M s+ @; U. U, g9 O& B
- (setq help_entry "modify_3D_Face_dialog")
( @ V8 A* X0 z9 n. v1 H( H - (dd3dface); E+ j* N6 D" [2 d
- )
( x9 y+ w' ^$ I) I - ((= etype "DIMENSION")
5 @3 O; j: l7 b" E1 C - (setq help_entry "modify_Dimension_dialog")2 g$ Q% K# [" c2 y7 l4 ?6 @' c
- (ddimen)
* ^! |6 M+ w1 F: S& b - )
- H) V; K0 u& w - ((= etype "TOLERANCE")
[6 B/ C3 K% D; {7 O7 d$ V - (setq help_entry "modify_Tolerance_dialog")
! X* A$ A6 ?5 T: v - (ddtolerance)
/ F6 g0 X c7 k7 g- ^7 B( m: C% S - )( b( _1 L$ ?4 F( ^
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.8 {% k" Z" p: T
- ;; This allows DDMODIFY to work on any custom object or any new object type6 D5 ]5 z `& S: d
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.
. i2 D8 K D% Z! b0 r% I$ p - (t
/ m% w. o# o: @3 j$ G6 r' f - (if (and (not ddchprop) (not (load "ddchprop" nil)))
9 L3 V6 z9 D- z7 Q3 }( h - (princ (strcat "No dialog support for object type: " etype ".")))
: t3 |7 Q3 `# x+ e8 V- U - (progn- K% M8 }3 T2 b
- (setq tempss (ssadd ename))! e! J m& w6 i* O3 D& i
- (ddchprop tempss)
, b) O5 m* \# J* [. ~5 u0 W' o - (setq tempss nil)
' I, L' J! k! @# M" _( A0 w - )5 }+ u% U4 _# |& a3 O4 F. z% J
- )3 B4 w# e# h( R; T& l
- )8 z& ]# F: k% r4 [' u
- ;; Previous fall-through condition.
; G: |6 F" J4 D) p1 T! m - ;; (t (princ (strcat "No dialog support for object type: "
5 N9 {8 O( m* r, D( d - ;; etype "."2 G% r; U$ k$ U. d; Y5 a7 }8 n" ~
- ;; )( f; \+ {& A$ A. u C% p
- ;; )% ]1 Z$ t5 a% N
- ;; )) w* W& K2 s- h! \2 E1 G% h. D/ k
- ;; )( h$ {3 x) l/ C. A
- (ai_undo_pop)0 k. ~# t2 q, \9 _
- )
: U9 r% t7 y9 ^: N+ q+ u - )( @; C6 [' D" D4 o* |
- 3 F+ K+ z; O2 s1 [4 ~
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle$ Y* P8 K; [% F5 V$ ~
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back: O$ u# E2 X# ~
- ) ; to what we started with
; z# F0 i }7 o- _ - ' x0 o& I9 u( {
- (setq *error* old_error)6 Y9 {) i, |1 R
- (setvar "cmdecho" old_cmd)6 Y0 N, w* E1 r/ @
- (if (not reset_flag) ; if object was modified, then
$ A4 L+ |/ O5 G% v( p6 Q- \ - (ai_return ename) ; return it's ename to caller* d) G0 F8 C* ~( H/ \' P% b) c6 ], [
- )# w5 @( N# m. O2 ?
- )
7 P: r3 ~; V) w7 o0 ]6 `( R - ; X/ J" X# C- V% W3 n
- (defun checkForLockedLayer (ename)
; K9 F0 ~' k4 m* r4 a - (setq layername (cdr (assoc 8 (cdr (entget ename)))))/ K% A1 l# |) U) p, j3 H% X/ ?
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername)))), |, t/ J+ U4 Z' L" [8 C! V* n$ b
- (if (= layerflag 4)
2 `5 U9 }) E9 [) Q - T* I2 _5 z7 h) n r2 J0 n+ y3 o
- nil
0 W5 d% {7 ?1 C" ^$ H% F8 w& l3 Y - )
' V6 I) R) b2 M, V& P: t - )
' y1 v( N8 G: Y3 P/ e, ?+ F
, D, @+ R* |, ]1 N9 g: D- (princ " DDMODIFY loaded. ")
0 \7 |' F: G# W% Q( M0 R! d - (princ)
9 b! u+ M* X" V/ X - ;;;???;;;---------------------------------------------------------------------------------------) \4 @; f$ {: S% g7 \9 z, c/ b
- # @$ y/ h2 U# n) g* v
- ; Next available MSG number is 8
, ?' p$ z7 N/ F5 C4 \7 s - ; MODULE_ID DDUCSP_LSP_6 Y3 G, B/ s+ ?/ F# O: i# B5 ^" [
- ;;;
2 D8 h+ d; N" M; h - ;;; dducsp.lsp- ~. I8 j3 N5 ?& N8 Y0 J* s3 \
- ;;;
+ z; ^2 U" n$ R# p4 Q7 g. Q- y% i - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.! G4 K% u" v/ x! H
- ;;;6 m+ t0 }/ H+ a2 z; X1 @
- ;;; Permission to use, copy, modify, and distribute this software* G1 W" g0 m {$ U3 }
- ;;; for any purpose and without fee is hereby granted, provided
; J, N5 R [+ k- {; ~9 N - ;;; that the above copyright notice appears in all copies and8 d6 \ z& M! W
- ;;; that both that copyright notice and the limited warranty and- s+ K; M N3 l1 C5 X
- ;;; restricted rights notice below appear in all supporting: X1 S b% V+ x. c
- ;;; documentation.
1 S) q4 F! k" v* k" P2 S' G% k# P. E) k - ;;;
L& t7 N3 w) w) h" n" X - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
# ^4 c# G# z& n w( L# F' @ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
6 j0 N3 D2 C- d4 R - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
! ^+ I3 o4 R" E# v0 t, ] - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
% b) T' J$ k4 {1 @2 ]1 \( Z - ;;; UNINTERRUPTED OR ERROR FREE.3 r: S; m& ^. R' f7 J
- ;;;
* G' E4 `. t3 b. J! ? - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
8 B( k+ f7 F* P7 M n - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
6 F6 `( R: [3 G' j6 e - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) & [ N& T" p' M2 y9 w+ Z( s, d
- ;;; (Rights in Technical Data and Computer Software), as applicable.* G$ S/ }& v7 [
- ;;;8 i0 \. | y4 V# ]7 E0 ?- n! h/ l* _
- ;;;.) b9 s" T, G" ?* C, c- c3 o
- ;;; C:DDUCSP - User Coordinate System presets dialogue.! K& v. [% C6 p
- ;;; & o' Z+ L/ }1 q1 U. W$ ~
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
. A7 V$ _6 x0 k; q, { - ;;; slide images are in ACAD.SLB.6 y" ]/ ]6 G8 p" a
- ;;;' _! c g% I! b+ c/ I/ \
- ;;; ===========================================================================) P$ I: u/ ~7 ^/ N' f
- ;;; ===================== load-time error checking ============================
3 n1 c4 m. b* k - ;;;
. s5 c8 b: b7 Z" ~& E z/ Z# H, U
9 z' T3 K5 t& b# E- (defun ai_abort (app msg)
0 _9 V/ Z& Z- @% ] - (defun *error* (s)
/ h; X: e* L4 m8 z# G - (if old_error (setq *error* old_error))
: w6 d5 a- B0 g$ u/ [& I+ N - (princ)% u5 T4 A, ?; u. h9 ]
- )
( f0 z- y% j8 H, l: w) @ - (if msg
& w7 Y9 u7 ^3 E' c Y" o; h* t - (alert (strcat " Application error: "
" Q8 ~9 W8 I+ c2 H4 W9 Q7 |. Z" S/ I - app
! h- D. T8 Y( D5 w* Y - " \n\n "
7 D) L6 C- x2 C8 S# \. y - msg
) s$ \& E3 }( k" \9 s; ^ - " \n"
; D' A T7 Q; @4 H$ C6 M3 u - )
/ H! T& Z; H. y1 s - )
; j/ y' h& L, h - )
1 m' C- v. j3 ]. W" b/ p - (exit)
6 g; }* W5 r7 t; C+ u' j8 J% ~8 j4 p - )
0 B; J6 j, g* ]( M) w& z - # X0 R' v' P8 x3 B/ u
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
0 K/ D+ u: m& ]7 g5 v/ ~- c - ;;; and then try to load it.5 W- c8 k, z/ z
- ;;;$ Z! a; C% Q& F0 ~0 a
- ;;; If it can't be found or it can't be loaded, then abort the: }7 `" S, v* U6 }2 z
- ;;; loading of this file immediately, preserving the (autoload)
H% u1 w- W/ k$ u; O F) n. B - ;;; stub function.7 E( A/ D2 U- [
- " A# T0 m9 J+ ?" o: H
- (cond/ p" ^1 `. y4 x# F* b/ B; P
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
: ~9 b4 {& i4 M, I - 5 N7 [+ ?: H, F+ y/ A' ~- b3 |
- ( (not (findfile "ai_utils.lsp")) ; find it
9 s3 x, v0 N% k* [- {! l - (ai_abort "DDUCSP"
: ?+ H8 E z3 S, r5 ^. D - (strcat "Can't locate file AI_UTILS.LSP."
8 c8 |0 J6 w4 w5 ? - "\n Check support directory.")))
1 k3 s ]/ S: A- L
! |; ]) _3 k: r' c- ( (eq "failed" (load "ai_utils" "failed")) ; load it
$ k# B' \, b- [8 `& A1 C - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))# o( ? f7 w! k4 A2 Q
- )4 c8 c4 m G+ V( K/ \8 C
! E# w2 a6 j3 P+ J- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP4 L+ t3 h) g8 `, E9 j+ C
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
4 S0 I7 L- C X2 f+ s' h% {4 G. e1 k - ) ; ai_abort's alert box dialog.; I6 x: g* o' _5 ~
" i8 o4 h8 g/ h$ O- ;;; ==================== end load-time operations ===========================: D' M( ~7 W& |3 \$ U2 J
% ]3 L' q' s' A5 E, u2 `* Y1 N- (defun ai_ucsp_start ( / program)
4 q, P) q+ ]5 p" [- I - ;; Get program name
2 q8 h5 g( m) e - (if (not (setq program (getvar "program")))( K2 x; P, X, k: \% t: S% P( `8 t
- (setq program "acad")5 K# J# R+ J9 u: g0 Z. m
- )2 T6 r. `) n5 _$ o# ^. X; M
- (foreach v0 '("world" "left" "cview" "top" "front"
7 @+ T0 U L* L: _2 D& | - "bottom" "back" "right" "prev")
) ]/ t. }. @5 F1 i - (start_image (strcat "ucsp_" v0))
; S3 f/ N' y+ `6 |1 @8 q+ S0 X - (slide_image9 _% @, j0 A) a4 E
- 0 0, o7 v$ k3 I7 p; ?
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
( p4 X) e# h# F% {2 i7 o - (strcat program "(u-" v0 ")")& T1 z& b4 s3 \. ^3 z5 p
- ). o# d2 Z- ^; w3 r" }1 l
- (end_image)
' j' ^$ |$ \' E - )
- L. g1 N' ] f - )* G5 j+ [" g& H2 \. v# G, V
, J _6 P: C% n- (defun ai_ucsp_set ()
3 x& p9 P% e! \( F S6 f - (if ai_ucsp_sv/ D# l9 @# `4 I$ T7 y0 C
- (command "_.UCS" "_V")1 w. ]6 ~8 P" E) ~7 @2 y
- (if ai_ucsp_prevs, C) z2 X8 ^+ Y+ S0 z# y9 v: S2 n
- (command "_.UCS" "_P")3 e. `6 S0 Q/ j
- (if ai_ucsp_chg
4 S# {1 T, {6 j l: S, ` - (progn' `# s7 R7 v9 T$ X
- (if (/= ai_ucsp_a "*")
1 X% R$ B" w+ v0 | - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
+ {' I2 I+ g* L: ~ - )* W+ K* J3 `" i6 _/ `2 V
- (if (< ai_ucsp_pick 6)
* {! r& K- O* V1 r9 a% B9 b - (setq ai_ucsp_set0 "@"). Z5 ^; {( Y6 z2 l9 M4 `
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
/ G/ A9 T b% y) E" \5 W) f* j$ A - )
: Q5 j d% c4 N' V. c. j - (cond ((= ai_ucsp_pick 0)
7 z4 l( R# Y4 p/ f - (setq ai_ucsp_set1 "0,-1,0"
# k+ n. s) c2 G1 F, W0 ]- r% K7 @ - ai_ucsp_set2 "0,0,1"2 C) [+ r3 d! f. z3 C5 N
- )
) s1 k4 \3 @6 w) b& i4 \ - )
! ^, Y) `- H' [; e+ d, Y - ((= ai_ucsp_pick 2)
0 `: D/ {# h) b. n. D - (setq ai_ucsp_set1 "1,0,0"
1 v, h0 H& |4 e( W - ai_ucsp_set2 "0,0,1"
- D" Z \. ?; o: `& v0 i, ` - )' V" w$ k! w6 `* R
- )
; b2 ?) f1 a+ l* `: X - ((= ai_ucsp_pick 3)$ w5 }' \0 s2 L8 L/ U1 J
- (setq ai_ucsp_set1 "1,0,0"
1 n: o/ [5 B# @# u3 G - ai_ucsp_set2 "0,-1,0"+ |+ {% e; A* j" K$ V! `0 {" }8 {( I; A
- )
5 X' q% Z$ I9 O j3 C0 g' F - )
" }# n! ^" i, b4 |% l$ ` - ((= ai_ucsp_pick 4)9 r' U/ P/ _/ R5 k$ p
- (setq ai_ucsp_set1 "-1,0,0"
! ]# g$ o! q/ Y - ai_ucsp_set2 "0,0,1"
9 @ E9 `2 `/ D, f `5 C r% l - )3 N. g5 T3 Z. t
- )
5 U K; L. e/ y2 z! H - ((= ai_ucsp_pick 5)
b0 ]) V1 T% G a) Y - (setq ai_ucsp_set1 "0,1,0"/ N s- H. E" m
- ai_ucsp_set2 "0,0,1"& L. R7 z6 E4 b, A" x
- )6 N6 ?* s& ?' O( d6 W% @
- )
$ b- K* L# c4 _9 \- Q! b4 T0 { - (T( Q+ W. F' o' B9 d
- (setq ai_ucsp_set1 "1,0,0"
/ [$ S0 p2 q5 w% @' w; s W - ai_ucsp_set2 "0,1,0"
+ X3 n* o+ d. \' O' _. f - )
7 G2 N" p, u3 |- @! V - )
% [# `. | a, e+ {0 t$ H - )
+ `7 k" }' r, l; ^( C- c6 ] - (command "_.UCS" "_3P" ai_ucsp_set0
& X! l5 p; ~- C; c" p* [' c - (strcat ai_ucsp_a ai_ucsp_set1)
! V1 v6 ]4 z: J( f% B4 R. [ - (strcat ai_ucsp_a ai_ucsp_set2)
. G8 h2 r% i0 W# N - )
$ `! \, h. h* F& s. }3 e# F - )
; g" K2 C3 G4 X4 \! r7 g5 \ - )9 a5 R" [; C/ u) P
- ); C: V% u, x7 m1 T- Z% p
- )
1 P6 C0 t3 ^$ _# |/ ^ - )! \( e {9 e" D- i- x" e& J7 e
- " `7 [5 [7 ?: H# T
- (defun ai_ucsp_p (val currtile)
' C) v$ a+ q( m8 m) O2 W# ~ - (mode_tile ai_ucsp_currtile 4)
1 C5 W5 F: {5 S# r0 G - (setq ai_ucsp_pick val" M! Y5 l" I) }4 c5 l( ]' ]# l B9 a
- ai_ucsp_sv nil
( Z X$ B6 L8 Y- a! [7 _( u% j6 B( B - ai_ucsp_currtile currtile
; d0 J6 y- u9 u+ m0 B" a0 I - )
8 ~4 z0 G2 n, k0 q - (if (/= val 1): v; T& b# p6 O+ v4 R4 l; l* o6 {3 x8 P
- (setq ai_ucsp_chg T)
( {, x' \8 j" V" C' V! i - )" E1 j O# P& R, ^7 f
- (mode_tile ai_ucsp_currtile 4)
O$ w) S/ g3 O7 D; ^ - )
4 W8 I* X9 P8 O" G% _
( J; G6 l6 [* y3 A0 v: q) J2 o- (defun ai_ucsp_swcs ()" d1 G% p, S0 l, U" U
- (mode_tile ai_ucsp_currtile 4)7 o% N+ R& |4 l3 [7 S p
- (set_tile "ucsp_a_wcs" "1")& _4 \+ c: c: ?7 s) P
- (setq ai_ucsp_pick 6
* A* i1 ]+ j! D5 e; }2 |5 \) v5 C - ai_ucsp_sv nil% ?; O/ I3 X# e+ {
- ai_ucsp_currtile "ucsp_world"0 z7 B9 ~' Z/ a) H( p( i$ j6 a
- )
0 e, L9 U2 d- i1 R - (if (/= 1 (getvar "WORLDUCS"))3 |, [6 j$ u6 v" R7 W
- (setq ai_ucsp_chg T)
- F5 [1 D) `9 x" D4 t) m3 c - (setq ai_ucsp_chg nil)0 s# u' m) \7 ^0 b; O2 a! e
- )" {# d% U: w W. m4 a
- (mode_tile ai_ucsp_currtile 4)1 A. \( V1 m; z8 ?* U3 S# S
- ); j0 q, G1 }8 G/ o( M6 \
, K3 w4 m+ v. C) M( R, e6 u- (defun ai_ucsp_cview ()& @5 M b- x% ]4 h/ C
- (mode_tile ai_ucsp_currtile 4)
. P- G6 Y, D4 U( I% R2 M3 m - (setq ai_ucsp_sv T / I3 N$ r0 D* K5 D% O
- ai_ucsp_chg nil' ~ W @4 i* n, E. {5 Q3 |# C/ H
- ai_ucsp_currtile "ucsp_cview"
- W: n: L7 Y& `% V4 r% E2 E - )0 L5 [& D5 K% v; Z4 L- N3 M/ ]8 x
- (set_tile "ucsp_a_wcs" "1")' q7 N+ Q: q: t$ [
- (mode_tile ai_ucsp_currtile 4)
! `8 C- u" L* ?1 `+ B4 s0 U - )
* e g5 p3 V5 \% x/ t: S# F Z: u" }
R) D1 o# s& d6 O# a2 Q- (defun ai_ucsp_rucs (typ)
- @0 ]3 z' c5 B' Y' Q; k - (setq ai_ucsp_a typ)% d% [( L2 P/ N% \: i2 v
- (mode_tile ai_ucsp_currtile 2)5 j' s+ y( i4 G/ ^: {
- )0 {- w, ~' L# p& h5 k( e: a
3 }4 e+ w2 D9 Q6 X3 j0 B- N7 e- (defun ai_ucsp_prev ()
2 f$ I ^. _( n - (mode_tile ai_ucsp_currtile 4)
- x* J: k7 ]+ J - (setq ai_ucsp_prevs T3 Z( b2 e. E2 p9 F% ?0 s) t# p' \# y
- ai_ucsp_currtile "ucsp_prev"
) T6 y' G" _0 [0 W+ L - )- V( C8 ?, E2 M& V' A$ o
- (mode_tile ai_ucsp_currtile 4)) t4 {5 L: m2 o- x6 w# d
- )" t9 U9 H I- Y! _6 C# m
y) O* A8 m, L/ W% M0 j8 e- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
7 s! V. J$ }3 J2 T h7 ^ - (if (not (new_dialog "dducsp" dcl_id))$ ]$ h; R) o6 K' y3 C9 S \1 z
- (exit)& g6 L1 ]2 L/ F/ J) f: g9 w- y$ k
- )
& r' ?' d% E, C; d
+ {$ w W! o5 k; V6 @' q4 m- (ai_ucsp_start)! a0 W+ f3 z0 O5 V* n5 t
- (setq ai_ucsp_a "@"
. f5 [. N' J4 \5 h - ai_ucsp_pick 2
! |4 r# K% ?/ T( G. j$ c8 f- x - ai_ucsp_currtile "ucsp_top"! y( E" @% u( }" [
- )# N! @! d; |6 m5 L* a4 S! s
- (if (= 1 (getvar "WORLDUCS"))* i% O; D8 [& T1 K, ^
- (progn [3 ^* @/ L7 e; }' A) L P- x
- (set_tile "ucsp_a_wcs" "1")1 k- {4 S' ]2 Z5 j' q, V
- (setq ai_ucsp_currtile "ucsp_world")
# K- _, } z/ C1 P; S% [( v - )
S/ Z$ @2 q1 f5 J9 ?% h - (set_tile "ucsp_r_ucs" "1")
2 Z) R {. O" u! z% F - )
& J3 l% J0 u5 [: |( R3 [0 q - (mode_tile ai_ucsp_currtile 2)
6 C% ]4 d% Q4 }& D0 b e% R2 a - (mode_tile ai_ucsp_currtile 4)* B; z1 ?* B. R
- (action_tile "ucsp_world" "(ai_ucsp_swcs)"), g' e) Q" n4 \& @
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
/ D/ M% ]- u2 n3 a+ W# C, m - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)") i2 i! _# t# ~
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
9 _: S+ c" S1 _& _( @ - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")% ~* l+ [/ e* P' J7 L4 U( _9 u! l5 T" D
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
4 L7 w) I8 U9 w$ S# p - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
8 f1 n* ]" ^5 K% G! `! n) Q - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
+ S4 k, j* B5 f$ X; [% W5 [2 q& h l - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
6 `$ e/ h$ q' D7 _) r+ n3 Y - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")3 U8 B2 j; s- k3 T- H
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
( j+ v) s, C1 c+ C/ \+ ] - (action_tile "accept" "(done_dialog 1)")$ \& {% T# F% S* _; z! B
- (action_tile "cancel" "(done_dialog 0)")0 T( c+ y) N/ N# |
- (action_tile "help" "(help \"\" \"DDUCSP\")")
. H3 L" i; p8 I) ?% Q8 \ - (if (= (start_dialog) 1)3 C, a/ T/ n, X; T/ ? T* t; i
- (ai_ucsp_set)
1 s# O8 l; C+ u D; r+ c, Z - )
" p' o4 B- |8 p& }: E. k - )
# k1 C6 r; Q& |7 w* J" H3 {5 d
7 H6 @) P. F" z( Y) o3 ?* a4 F- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
, W# T4 K9 l$ Q' u. J& G" t - ai_ucsp_sw undo_init)
( b% a% G3 R4 q
9 E7 m- f% r% c& }- ;; Set up error function.
1 L* {! [# o2 a3 S! H3 s1 _ - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho5 i% I5 {/ m5 G2 u& Q0 M. ^6 W; l
- old_error *error* ; save current error function6 m. q5 H6 L: Q0 O+ g0 t0 G k
- *error* ai_error ; new error function
5 u2 R. t& G5 O- u - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
Z* i/ z+ f. ~7 n8 g7 \ - )+ S$ ?1 L+ r" g; v% H
. @! R% {! K+ a, m+ p. G- (setvar "CMDECHO" 0)
2 i: Q6 x) A( \
( w" Y. J5 r1 p" Q. m( k- (cond, u7 f& x% v Z
- ( (not (ai_notrans))) ; transparent not OK
6 [- _9 Q: P A0 N0 y - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?( A+ _- g* K: [: k- Q. n
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
8 S! \9 A4 ~% M& j- q - (T (ai_undo_push)
6 } Y7 h, z5 h. n - (setvar "OSMODE" 0)# Y. s& ~3 r1 ~% I5 ?4 m0 I
- (ai_ucsp_main)" e% A- K+ P1 o* w" T8 R
- (setvar "OSMODE" old_osmode)$ X) i: L( v: F6 T
- (ai_undo_pop)
. L9 ^4 |) ~3 Q- p - )7 C4 q1 N* S0 E9 S
- )
4 Z, ]! ]( M8 K$ [3 l - 7 C9 K0 |1 O! O
- (setq *error* old_error) : M: d" j0 v: H& b
- (setvar "cmdecho" old_cmd)4 w% i7 I6 v9 Q4 j r/ B
7 N8 R4 N `3 |- (princ)
: l c) `. E2 l9 V* N0 ^2 `4 r - )9 {$ }; W: U. A: q/ P! L
- 6 Y r; J9 m3 f; k
- (princ " DDUCSP loaded. ")
' W& S) o# m/ T/ K7 Q - (princ)# N9 {% ]3 _' |9 n+ G! K8 K
- & o0 M) B" ~$ k: ^
- ;;;???;;;---------------------------------------------------------------------------------------$ C" T- ^6 i+ U Q! Y9 `
( k) K- ^0 ~4 f6 K3 _- ;;;----------------------------------------------------------------------------
/ m0 p; G' _9 D/ ~1 N" q - ;;;
8 `* C) f- m; I& N" ~9 ~ - ;;; EXCHPROP.LSP 0 t A/ x3 ^! A# ^4 J
- ;;; Polyline and text modification capabilities added by
% p5 G2 f$ {! t# a+ e - ;;; Randy Kintzley
( H/ m( s1 |% P: o6 {9 l - ;;; * x! r ]8 U/ q: z; N: G
- ;;; Copyright (C) 1997 by Autodesk, Inc.# m, a9 G! K' |6 q2 Y: \1 ^6 X, ^1 p
- ;;;/ P0 e) [0 {+ H* t
- ;;; Permission to use, copy, modify, and distribute this software
; G6 J6 u# i" b( A# V+ ?! P7 _3 D - ;;; for any purpose and without fee is hereby granted, provided/ P' a) j& v6 o* B$ Y8 `' T6 y
- ;;; that the above copyright notice appears in all copies and* ^6 y. u3 w9 ^1 P" G @
- ;;; that both that copyright notice and the limited warranty and
" W/ {! w% z" N4 M# Q0 k% J - ;;; restricted rights notice below appear in all supporting% a: x- F) E8 C( j/ b
- ;;; documentation.0 a8 X! h( G, H/ L9 y
- ;;;1 Y& Y% ^' _8 v, E' g4 G0 m7 d
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.1 A7 m3 v3 |# t& N3 R5 `" A
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
; |; M- e/ a$ z: }+ U% B - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
* ~/ ~+ L V, F6 Y6 s7 u% T! z. B! d: u - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
8 C+ P% i" {& B N0 _) w" d - ;;; UNINTERRUPTED OR ERROR FREE.
+ `& g8 Y. b L* ]! `, K5 Q" Z - ;;;; ?7 ?; G' Z Q5 F
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
! p) u4 Q% T' V% [ - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer2 w$ s F+ g6 t
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)8 i! F/ k! Y- I' e% A
- ;;; (Rights in Technical Data and Computer Software), as applicable.
/ @( \9 R( c! t - ;;;( g1 c1 q) P7 Y2 \! m
- ;;;.+ M. ]8 ~2 h- r' L+ O- M& t
- ;;; 28 February 1997
& Y) h' J- ~. h - ;;;
0 O& ^, o/ W- m0 M! N% b - ;;;8 c1 z) g2 w' y5 k# T
- ;;;----------------------------------------------------------------------------
( w7 f7 d+ S! c# |) f - ;;; DESCRIPTION
5 A( I" Y1 l1 } - ;;;----------------------------------------------------------------------------
" i- m/ h1 }; @+ R# e3 U+ z! F - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
0 R* \5 J) e) g1 H - ;;; command gives the user the abilitie to change several characteristics
) M0 G, ~0 `9 b& a1 b5 E - ;;; of selected polyline and text objects.
! x E% I# H$ t3 Y/ m: p/ } - ;;; The style and height of selectected text objects can be modified . u) S( ~& ^: A7 w
- ;;; (including text, mtext and attribute definitions) as well as, width and
6 H: Z1 `; m* K8 x i3 ]2 ]7 r - ;;; elevation characteristics of selected polylines (includes lightweight and
}: J+ |; s6 M; [/ C+ N - ;;; traditional polylines.)
0 B! K4 q! b$ w7 F6 w2 l" \ - ;;;----------------------------------------------------------------------------. P' C6 Y/ I! A! R8 z, A1 `9 D
- ;;;----------------------------------------------------------------------------" F s; s. w2 X0 ]( \
- ;;; Prefixes in command and keyword strings:
; K+ o K O* U3 S% I; E3 r - ;;; "." specifies the built-in AutoCAD command in case it has been- J8 V$ {" X) g2 ?
- ;;; redefined.
# Y/ C0 n1 y& z5 N6 ]7 Q) c4 T - ;;; "_" denotes an AutoCAD command or keyword in the native language7 Q% _+ Y, w/ X! w7 v& |
- ;;; version, English.
8 h! w: T% p c& ~# r$ k4 r' R - ;;;----------------------------------------------------------------------------
6 t5 ]3 N5 t. K: h5 @ - ;;;7 F1 q- [6 a! V
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;: x; C/ X S7 b3 l$ m
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: M# F. N; b. B3 v& s - ;Functions created as result of loading file: exchprop.lsp
# `% {) T4 C8 v1 M - ; DDCHPROP26 ^5 V4 w% m" `' T8 _
- ; DDCHPROP2_INIT- t2 Q1 R( I( S C
- ; DDCHPROP2_SELECT
; J9 F# ~. |3 p* w2 k. ] - ;( v5 m1 L, u# z+ i8 v
- ;Variables created as result of loading file: exchprop.lsp
5 D* a" G7 i5 E/ G: O - ; OLD_ALLOC
8 m9 j' {0 O$ v - ;
3 E: ?7 u7 t1 u! ^" H - ;Functions created as a result of executing the commands in: exchprop.lsp
5 G, g/ N8 z" B: k N6 Q - ;+ e9 p$ F6 b2 |( L
- ;Variables created as a result of executing the commands in: exchprop.lsp
" D; T( g3 a+ ^, A$ E, n& A - ; AI_SELTYPE7 [" ^) [/ u- ?: W1 |0 h( s
- ; BONUS_ALIVE4 A9 p1 x o0 {3 l
- ; BONUS_OLD_ERROR) H; U: I8 M; X' _( G- @7 B
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 S# j5 j; I( r ?) ?& @+ l; i - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;) Q3 F; `- |1 X% {6 r
- + Q/ f& |+ h0 G! T( X% I- K
- ;;;" P3 O; A% F; Z4 B$ @& A- \1 `
- ;;; Avoid (gc)s on load to improve load time.
" J! \* s2 G+ b- M2 P9 s1 i9 L4 z$ D - ;;;
3 n7 I# d [; T4 J - (defun do_alloc (/ old_allod new_alloc)4 ^. T4 _) N: D; w+ w) H
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
( r9 y7 H! B. j" ]3 q; b - (expand (1+ (/ 4750 new_alloc)))
* P' I4 T1 F4 L' B& a3 }6 ] - (alloc old_alloc)
5 u1 J$ M7 r0 R, ]. [- R! [ - );defun
8 k& E+ w* Y) i9 \# w8 L
: X" B6 {/ [) p; I- ;runs at load time - rk; {" i; c4 J( \+ v1 [: ~$ _* S' t
- (do_alloc)
% x$ k2 t* g d$ Y6 T% s - (setq do_alloc nil)! H, i8 c5 T, O! o8 b
- ;;; ]4 Q) R: H8 P/ b$ o
- ;;; ===========================================================================
- e# \% [! d& ~8 e# r' `2 ~. B! O% J - ;;; ===================== load-time error checking ============================" c6 t8 a4 Q) J" P b4 ]
- ;;;9 V2 F2 }* Y( E& j
: i: S5 K2 {# f0 [+ Z- (defun ai_abort (app msg)
, C0 A$ k# o8 e/ Y/ P+ k* {1 k% m - (defun *error* (s)
( f1 U0 r) d0 v9 U - (if old_error (setq *error* old_error))4 J& m! E0 K' e" ~
- (princ)
( y/ j" R! L* W4 a. }; i' \: c$ J - );defun
8 F2 a. `5 }/ B/ P - (if msg6 c6 o% i) p4 f7 U& W
- (alert (strcat " Application error: "
7 |! V' b2 q3 ?& f - app' D) O6 K. d' i' U) m3 ~% I v
- " \n\n "
! s* `* e! v. c2 g" B - msg
$ ~( u3 i) }. e/ ^! \4 | k - " \n"
9 R5 {/ X2 i8 {1 Q! i1 M" J6 y - )) D; ]8 r0 J _/ j4 H
- );alert0 h N- @( Y5 b6 Y( ?4 U
- );if
- E0 Y% p/ g/ @( h5 D& r - ;(*error* msg). H+ g' p" n* C$ r0 }) ~
- (exit)
& A) z, ?5 }9 N% Z/ p - );defun ai_abort. ]- d x, P* a) ?
1 E4 F, v! t$ I8 k- H' _5 f. C0 W- ;runs at load time - rk+ n( x+ i- X- T. a1 p- n3 ]
- ;(if (and *error* ;added the if wrapper around this - rk.
9 G/ U) s; ]$ V4 q - ; (not old_error)
2 l8 b B B( ]& W: v1 b - ; );and
$ L4 W3 A7 E9 y/ ]( K# m$ ~8 I - ; (setq old_error *error*);setq
- w& i$ t8 K9 w( ], m2 g( J - ;);if
0 Q% o$ E& z6 E/ U, ^ - . J9 c T! B, V8 t
- 8 W) `+ n9 D) k4 N$ R4 G+ `
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,: I+ d8 V" ~' M1 C0 t. n( ^* L8 c3 {
- ;;; and then try to load it.
; g( K# Y5 b% z. e" k9 p: u - ;;;* C3 h2 ^6 G4 c- R; P% J8 \
- ;;; If it can't be found or it can't be loaded, then abort the/ c0 @/ r. {8 s4 B
- ;;; loading of this file immediately, preserving the (autoload)
9 K, E6 B; O" X; c9 ` - ;;; stub function.8 | a O" X1 L# q3 X( Q2 [
- ; V" Q3 t: [7 X2 w- S
- ;runs at load time - rk.
5 U& ^' W Y9 I9 ] - (cond
* h3 |) y! B7 A+ r& B2 E) v! P - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
, Y/ H _% f0 O% `% k - ( (not (findfile "ai_utils.lsp")) ; find it
' }( X/ W1 W. ~ - (ai_abort "EXCHPROP") [& ]) v6 Z/ W1 v
- (strcat "Can't locate file AI_UTILS.LSP."
; O7 k5 O2 Y) B m6 e# M - "\n Check support directory.")
* G3 k5 u: r7 o - );ai_abort$ N2 v# C6 a; P
- )6 ~4 Y% {0 H7 I; z9 a/ Q. {
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
' z0 ^ A: O/ b6 l( V Y - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")! ^$ v* U2 G4 z7 x6 A
- )* g" K( Y6 O ~: D& ~: t7 M
- );cond close6 A% A8 U2 ~3 ~2 Q2 m% S$ j% o
; [5 c4 l0 _; i1 z" P/ m# S- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
' f* ^1 h8 c2 F9 k3 J - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
. q/ _; r) ?: v e- ] - );if ; ai_abort's alert box dialog.9 B- o- u1 u, I( L
- - t, ~; a' F1 Q! S6 q7 ~( p3 n/ u
- ;;; ==================== end load-time operations ===========================
$ j, w4 M$ m* r! L7 P& S - ' r" d& r5 b+ K ^2 }8 _( n
- ;;; Initialize program subroutines and variables.
: B) M3 h7 l. [. T - + b2 W! W: ?4 O7 S/ h
- (defun ddchprop2_init()
z1 h6 ]% a! y- ^ w1 |, Q& T5 F S
4 i s d5 X6 o( }- 2 G6 s$ a- u- [: P3 ]7 o+ \
- ) C& A i. R) ]: F: c+ v
- ;;. Y. w0 u0 d7 D" A2 G, ~
- ;; Define buttons and set values in CHPROP dialogue box
# D3 C6 C+ I0 j- F' `" s - ;;6 D, M- W% S/ M
- (defun call_chp2 (/ cmdact p1 p2)* g- ]( e3 ]( v! Q! H* |
- : C+ c' N" S; [" {) {* P
- (if (not (new_dialog "ch_prop" dcl_id))
# ^3 H0 G! J3 a - (exit)+ g1 f6 K u4 j' n4 T# G" S: K
- )
+ R8 g' ~: W3 L& Q C c - 9 @6 s3 ~ t9 F! u
- (set_tile "error" "")& N2 ~; |' o3 i, N z
- ;; Set initial dialogue tile values6 r# ~8 t8 m+ o
- (set_col_tile)
4 @6 Q( _" I4 }7 f - (set_tile "t_layer" elayer)
' p5 {# c6 ^. R: Z7 I/ z - 6 I6 _7 _; L; n/ |$ n: E
- (cond l6 o# t' \6 a, a$ }$ t7 D
- ((= lt-idx nil)2 h0 R" p- ?) j
- (set_tile "t_ltype" "Varies")7 }# {( O0 X4 P+ }9 m' |
- )
3 d( H& m: I' N$ Q. ? - ((= lt-idx 0) ; set tile "By layer & layer linetype"8 Y5 g1 x, I& ^4 `9 d. A8 o
- (set_tile "t_ltype" (bylayer_lt))+ Y) S: l J! B0 d3 I( m& ~
- )
* Y+ E, o. S* v$ i6 w8 J - (T, j4 f! B: [2 g
- (set_tile "t_ltype" (nth lt-idx ltnmlst))
: P0 A/ {8 w% J0 F6 b - )
3 O- \: r3 S- g6 \: T. }$ z - )
+ y& s7 W' |% R - / T. c7 |* Q& A5 ~6 k% v: _
- (if (or (= ethickness nil)
; _! _) k, x' H0 y& N# i% ^ - (= ethickness "")
9 S" F! K0 O: j3 U - (= ethickness "Varies")
) P- k" x: V( Y) q - );or
, u( x8 w& z' j/ }: ` - (set_tile "eb_thickness" ""); B: h( U: Y- `- s: M; ?5 D) h/ a
- (set_tile "eb_thickness" (ai_rtos ethickness))4 [# i2 Q1 C) M6 k' d7 ^; @& O
- );if, N, Z0 X! O2 w s: Q& d( G
- (if (or (= eltscale nil)
; _. ^1 W: F4 u - (= eltscale "")# T! c( L$ e8 R6 V' h* T/ g9 I7 \
- (= eltscale "Varies")
8 ?; U/ [, u+ f1 }$ p" a5 Q+ m -
x2 a; F+ A3 f1 C - )
- x' [0 n. ]3 v - (set_tile "eb_ltscale" "")
6 [, X7 { i- I+ S - (set_tile "eb_ltscale" (ai_rtos eltscale))# y& S' V- v6 A5 I2 e4 } l: G
- )
1 Q" h( L" Z) U! H# X! Q - (if+ T y0 \- g6 y& R
- (numberp ewidth)4 o% r: j7 M) N, U* |
- (set_tile "poly_wid" (ai_rtos ewidth))$ T& ~& F9 S" { l
- (set_tile "poly_wid" ewidth)8 n! f( K6 U; N- @ M
- )
9 L! F6 Q- O& |- m* g - (if
9 }! ]4 s. x5 Q - (numberp eelevation)+ B+ u2 [: y/ j- `; F( C
- (set_tile "poly_elev" (ai_rtos eelevation))1 j2 A3 Z% j8 j9 K
- (set_tile "poly_elev" eelevation)
+ E/ }, o: J/ P& [8 L* U) M - ): [- G" h' c1 \9 e l# j0 L
- (if
! j' G0 o8 F. K. J - (numberp eheight)3 V* N* e( H3 K1 K
- (set_tile "text_hgt" (ai_rtos eheight))
1 A0 S4 k' V$ }0 J# ^/ u# Z: b# P& E - (set_tile "text_hgt" eheight)
5 X- x* b! s3 L# B, C# |( r - )
8 L9 y4 a! g8 |8 q! E, J - (if (not estyle)5 b# B3 y) u- E1 g0 W
- (setq estyle "")0 a6 A: F1 V9 T
- );if
1 [! D7 `6 @2 N7 B - (setq hair_style_list (tnlist '("style" 16)));setq
- p# E6 T+ y0 y9 z( t - (if (not (member estyle hair_style_list)). O% z1 _+ `* _+ I6 u
- (setq hair_style_list (append hair_style_list (list estyle)));setq
1 Q5 `5 ?# }7 w8 I8 ]; \ - );if ! k- n" |, L K/ L L2 ]
- 6 D; y: C3 i/ ]0 v3 ]5 \/ j4 {* s
- (setq hair_style_list (acad_strlsort hair_style_list));setq
9 J L- Q6 M( o i! ~. b - (mpoplst "text_style" hair_style_list)) @, N. ~, v3 `& H
- (set_tile "text_style"
' {! j; w+ S) U) }% j - (itoa (position estyle hair_style_list)) @# U3 `2 [7 x
- );set_tile
) Z7 i' \5 U7 a+ ~# l. ?% t
d# q' i' I/ v& J6 \, l- ;; Disable tiles if need be... ;@RK
' P4 o" o( m$ \ - (setq a 0)6 y3 O5 u/ z$ `( |7 ^% w
- (while ( < a (sslength ss))
1 G [' z; E" ~2 B - (setq which_tiles
1 b( h& v3 t0 X5 p! O% b - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
' C- r( S" ]" a+ B% z8 B - % Y, ^' i+ _0 k7 b6 M
- ;; If all fields are enabled, don't bother checking anymore.
0 q. [8 S* V. b8 e8 b5 p5 X2 j( k1 |0 f - (if (/= which_tiles (logior 1 2 4 8 16))
& L7 Y0 R8 G6 d" }# l6 \ - (setq a (1+ a))
( z) Q0 ?- Z3 {$ F - (setq a (sslength ss))
$ k9 K, Q1 X1 C - )
0 B( L! ~' I( X. I: {' A& p5 e, V - )
5 V8 Y, z* i, s# | - ;; Layer Button and Text Field1 }, z* X/ _, }9 J, W2 z
0 a0 K9 L. O+ _& u) Y+ |- (if (/= 1 (logand 1 which_tiles))
( y& N$ @6 y+ q& }- j - (progn
; P$ a$ V. }3 i - (mode_tile "t_layer" 1)4 U' q5 U1 n1 i) p7 [
- (mode_tile "b_name" 1)
% {: c h, ]7 x. w! k2 _ - )
# ?1 Q% e, e' G% g& z3 g - )* [( g3 Q$ [" e: ^
- * T+ q8 I3 f% z; m1 m1 Y' w; R' i
- ;; Color Button and Text Field% e2 Q9 U% L8 V% [0 A( g# L4 ~6 i
- (if (/= 2 (logand 2 which_tiles))# ?+ s* \2 Z3 v. P% f
- (progn/ m; D x9 ~9 v! ~) f& A
- (mode_tile "t_color" 1)8 L( p# S Q! t$ e; j
- (mode_tile "b_color" 1)
6 Q& g, N$ m1 T0 b! q/ b9 z; _ - (mode_tile "show_image" 1)
7 i4 c% r* N- {# Z8 w) Q - )
4 {& l9 d$ b8 c% m" i/ U - )
2 U7 @0 Z% X( @& l$ b4 d - ;; Linetype Button and Text Field
3 n/ b) q% x# Z: A; | - (if (/= 4 (logand 4 which_tiles))
* V G% O2 O! \, t. w9 l' A - (progn% _! ?$ o3 s- d8 C: F
- (mode_tile "t_ltype" 1)# ^; }$ @( _; R1 L4 t+ J
- (mode_tile "b_line" 1)' P$ T- T. v% Q6 C
- )
7 i3 r8 j# L; e: m) x% X - )
& B- |! U ? `* J( z! s" o8 Q8 T - ;; Linetype Scale Edit Field
) N$ m7 X8 U/ B9 v2 U+ y: m* T - (if (/= 8 (logand 8 which_tiles))
; r. D1 e' ?' @9 E - (progn
) N4 a9 |. m: F% X! x% I; U - (mode_tile "eb_ltscale" 1)# P- O# U% s3 C+ V
- )8 ^* E2 z3 e3 ?% n' X9 D6 E9 Y
- )) s6 P% n6 i F. B# B
- ;; Thickness Edit Field.8 [$ `, U m" I8 a- G$ o4 i1 P
- (if (/= 16 (logand 16 which_tiles))
7 K) K) `" @$ s2 P y( k0 [ - (progn
8 U0 L! e# G: r4 z( v - (mode_tile "eb_thickness" 1)) W4 E- B Z P& w
- )
, ]. I. `! f8 `* G' [9 }" k - )/ }3 @* |; \+ P' D
- & w9 w @" x* y# P% q) J
- ;; Polyline box and tiles @rk 10:05 AM 1/30/974 D h& ?. _ p- @
- (if (not (= 2 (logand 2 eflag)))
1 k S: o3 G4 h1 C6 l e - (progn# A! [8 B ?) G1 S
- (mode_tile "text_hgt" 1)
) D' s( c8 _ F+ i Q* m - (mode_tile "text_style" 1)# H9 `9 w2 b0 G7 n7 i
- );progn
! P: q2 ?! ~' @3 _ - );if
, A7 C! P9 T- o' c# Y! S - (if (not (= 1 (logand 1 eflag)))0 R% q1 S5 p" b0 K" ~4 A* t
- (progn
1 u* o e6 t2 v! H" c2 _$ F - (mode_tile "poly_wid" 1)7 B4 @: Z- G# K2 ]
- (mode_tile "poly_elev" 1)& K9 x" L0 m4 K* f4 | W2 s
- );progn then disable polyline fields
( H$ N- s- x% h( z0 D1 L - );if9 y, \! x' O- E) u
5 h4 c! Z/ j- b, `- c l& O! T) W- ;; Define action for tiles: d# P& s$ J# a2 }) F7 G
- (action_tile "b_color" "(setq ecolor (getcolor))")
' P2 [. `# L$ H& }4 [5 h - (action_tile "show_image" "(setq ecolor (getcolor))")
/ J8 m, f/ ^7 Y) z1 U- E C. m - (action_tile "b_name" "(setq elayer (getlayer))")* e4 e+ E- [( B
- (action_tile "b_line" "(setq eltype (getltype))")* p u2 z1 i( ^) j
- (action_tile "eb_ltscale" "(getscale $value)")8 C# L+ ^5 ^( n
- (action_tile "eb_thickness" "(getthickness $value)"): o7 ?- m7 p) }4 t& u, x
- (action_tile "poly_wid" "(getwidth $value)")- ^+ I) C! }6 C$ ~
- (action_tile "poly_elev" "(getelevation $value)")" E# r; D( d# d0 A; I6 m' W1 A
- (action_tile "text_hgt" "(getheight $value)")
* l0 G- C1 h2 c$ I - (action_tile "text_style" "(getstyle $value hair_style_list)")
, X% V) Z( e( s) k. h8 |. [ - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
/ x# V( u; l% \, N0 s$ x( q* L - (action_tile "accept" "(test-main-ok)")
: G" s3 `9 @5 x3 @. z0 m - $ S" u2 Q1 A$ ^" b8 o! J
- (if (= (start_dialog) 1)
9 R# d" ~0 n3 Q, r ^ - (progn
1 }/ c' j! C1 F( }% J3 ?; \ - ; Update special properties for polyline and text selection-sets.' G) j5 r# f1 N5 m I0 ?; \0 A
-
9 \7 \- |0 _. ~+ t; p: d% l& f - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
) j! X7 R/ U* D3 }) Q$ E8 o6 _ - (or ewidth
8 Q* C7 F6 h8 Q Y$ g) U) E - eelevation
( ]: f3 ?6 s5 p, R5 \3 P& X8 [7 k - );or5 X4 V5 Y3 e( ?% R
- );and9 {' D% C0 e+ N* I
- (progn
* k& Q/ N* S6 y3 B- I5 ? - (setq ss-index 0 8 ^/ I- P. D3 K# }( P5 P% y7 ]
- ss-length (sslength poly_ss)
% u0 r, K0 |6 E/ K! L0 o. |* C: l# \ - );setq
- \ ^5 v: R8 Q) [% {- k5 u! t/ Q/ R6 i - (while (< ss-index ss-length)& r; B+ V) f2 I; l; ?7 B: z" R
- (setq ename (ssname poly_ss ss-index): l q* w1 H& ^' P6 o( A
- elist (entget ename)! a2 N5 T3 }* N; Q3 |
- );setq( e+ H( v- M& u) j- M* i( e
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp* k/ R- L) y! E8 ]
- (if ewidth
1 q% Z) K: M( M& D" y - (command "_.pedit" ename "_W" ewidth "_x")
6 N7 `; Y0 c" L: R( {, b - );if
0 U0 v2 j5 ~* v2 x* b - (if eelevation % _$ o, w; x" v4 }
- (progn: |% z# N, x) |" e& C7 C Q* p- v
- (setq p2 (list 0.0 0.0 eelevation));setq; G- e7 }2 Z% n9 ^& i
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")( z" o: I, y8 F4 [' P
- (setq p1 (list 0.0 0.0
& H+ D0 h" } a! q' K! F - (caddr (cdr (assoc 10 elist)))
+ n3 k6 X4 s9 H' I) V - );list0 b1 g2 Q% u9 ~- ~, K' C
- );setq/ l( |4 y# a2 `
- (progn6 X! M* p, D+ @
- (if (assoc 38 elist)4 _% J9 y0 x0 m" ^
- (setq p1 (list 0.0 0.0
2 L3 c. x4 D# b. t4 w9 M - (cdr (assoc 38 elist))
+ D2 ^( G/ m9 [+ Y4 F0 o - );list6 H- j) a2 X/ V" Q5 C; G ^
- );setq, e: T: o* u. ]% D
- (setq p1 '(0.0 0.0 0.0))+ T) D: N% J. R$ g4 b
- );if8 l9 J1 U" m! T5 \ v
- );progn : ]4 o- _+ ~) I# u% V# h
- );if- U( @' N h w& ~$ v
- (command "_.move" ename "" p1 p2)- |* t- b6 K5 n' y3 E( X
- );progn then change the elevation of the polyline2 @8 u0 k# \0 e; |0 ?7 V. u( S
- );if3 |, \! O3 }- S! q4 C2 [
- (command "_.ucs" "_p")
6 ~$ A" I! Z+ K( E& ^ - (setq ss-index (1+ ss-index))
8 I* ^2 y1 c- R) S' `! D8 K! v% B1 e/ v - );while
6 s, @" z% R% g - );progn then polylines are in the selset5 u9 A$ W: o k8 M3 U- G
- );if7 k1 c+ A+ p4 J$ Y
- (if (and (= 2 (logand 2 eflag)) ; text% j$ Y! U1 f7 d$ ^. \
- (or eheight
% |# D1 y! x- M, `4 m% H+ S - estyle( k: m( q: t C* m9 c
- );or
/ O- p4 I' g$ P7 X* M; L+ R( R" b - );and
5 U5 O* F$ V& f, G$ L( t - (progn' N# A$ A7 Y# c* k
- (setq ss-index 0 ss-length (sslength txt_ss))
, M- i e9 |2 ^2 m, c! c, a3 ]4 V - (while. k& T; |) {/ a$ V% C6 w4 C
- (< ss-index ss-length)2 {& a2 V$ I- h2 P' L
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))
8 q2 K+ f# Q' s) B H; n - (if (numberp eheight)3 |& i. R' P; ~5 r
- (setq elist (subst (cons 40 eheight)
) |! D8 W2 r' U$ D8 p - (assoc 40 elist)( H4 S/ W9 C1 t+ ]9 ]* w+ [
- elist
, v6 S. D, S/ ~- `4 t. U$ b, i. T4 o - );subst
! L9 M' R( p1 i( q, O - );setq0 U( W/ M) h5 d8 v: |' o9 m& J
- );if( _# E$ X$ j a% k3 ]
- (if (and estyle ;(not (equal estyle "")): i5 N& \2 n' C \8 |( l* o3 Y$ f4 Q
- (not (equal estyle (cdr (assoc 7 elist))))! n/ j) o! [7 `% F1 U" ?& j
- );and8 q; m& {& p& U0 k) |! d
- (progn
6 x( l, ~2 v3 W2 R8 w - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt - ~3 X6 f7 {) i0 h
- ;(if (equal "MTEXT" (cdr (assoc 0 elist))): R# x4 d# j/ M* z: [5 t' p
- ; (setq elist (fix_mtext_fonts estyle
" G Y2 ^4 W" O) v' _4 L - ; elist5 h; ~7 S7 g) j
- ; ). x' \( l4 P& v/ W O2 K
- ; );setq then/ c. K I. ~$ B" E% w; t; U
- (setq elist (subst (cons 7 estyle)9 \# E$ }! p- e3 U0 q+ P
- (assoc 7 elist)$ U& n6 U: T9 B
- elist
+ |9 p, X: I" r0 C$ d - );subst6 E+ ^% _# n1 g
- );setq else
9 |9 `, a A5 I, ?* p - ;);if
# }% V' r' Z; q* f0 z6 n - );progn
4 J5 O( N* J2 S% W6 h - );if( {' x; y, r" y- x
- (entmod elist)
, O7 v1 ^' }! k6 L2 R - (setq ss-index (1+ ss-index))
- }% y/ n: s8 ?, T- u: J; B' m - );while5 L' T4 a) ~9 N0 B2 H# D/ p
- );progn then6 F4 k3 }2 b% ]0 _: | X
- );if" ]* V5 |* \, v
- 1 z8 C# @. Q! ^. Z9 ] e: L% U
- (setq cmdact (getvar "cmdactive"))) F3 l* B4 c' J* y9 }
- (command "_.chprop" ss "")& T4 Q: x" e4 v' H u7 ~
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?" u! l1 @# b# h9 a
- (progn
5 T, q! z# P3 n - (if ecolor% D1 K4 b' \1 W0 B& E& N7 S
- (progn
) L5 B+ V) l# D! s3 n# b( P* F& {9 u& ] - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
9 k |4 n% w8 D; h+ k& }( y - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
8 u9 C1 S K+ l1 o9 G - (command "_c" ecolor)
" i3 B8 n! Q! I( a, m4 { - );progn then* J I: G; i# T
- )
; v( b9 d6 `& s1 A6 } - (if (and lt-idx( w5 E; Z, |: k5 [& ^# M' n
- (/= eltype ;|MSG0|;"Varies")9 n$ O/ a. x" K% X) X
- )
; F6 C" S6 q; [8 c - (command "_lt" eltype)
' M1 F% i1 {% P/ ?% k; o( | - )) j( `1 `% ?% i+ k
- (if (and lay-idx
- l3 p4 l+ h6 Z# |6 _+ K7 W0 ~7 C2 L2 i - (/= elayer ;|MSG0|;"Varies")
5 a9 p3 y0 B! T7 f - )
) Q3 z6 A& b( X: U# }' a1 z, M( X - (command "_la" elayer)+ d& O& l6 m# I+ Y# d3 p5 B
- )/ G! e2 B7 u* |3 b% A6 B; c, K1 A5 _
- (if (and ethickness & e6 ^. i8 \2 _3 F: v2 x0 |
- (/= ethickness "")
* B+ ^2 F h% n/ o- x - (/= ethickness "Varies") $ H1 E- B: A6 h, b+ V Z
- )
0 b" g! ]6 T% {& T+ A" Z - (command "_t" ethickness)
- I, G+ K% J) n6 i. D* r2 Q7 ] - )5 z# E% n. O* Q, ?5 M
- (if (and eltscale (/= eltscale ""))
6 \$ M) D( Q% j - (command "_lts" eltscale)6 \; v8 _4 h, q d& n w" g( [
- );if
0 _2 k! N1 \% ?6 S( K - (command "")+ N+ e" r0 d$ U& h7 ?; H
- )3 C/ U; y/ Q+ R, J' K( g x7 G9 |
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set" F$ `/ y9 n# v5 t. L2 g, y
- )! b. H* k, v9 j0 D
- : \3 ?! h5 A9 e& `6 Q
- );progn then OK was picked in the dialog.
3 s% Z; s) \2 h4 V) I. X -
* }( O5 m# |( U8 q$ [' v - ;; Fred GERBER - 25-AUG-944 Y1 e& c1 w; z5 I! A6 h/ ?2 W
- ;; Don't print the "Properties unchanged" message when the user cancels
- D- F" y" Q D [7 X9 D - ;; the dialog because he knows that already (otherwise he would have, a# I. S, Y. ?8 p
- ;; hit the "OK" button). Display the message only if CHPROP fails for. H! k* [$ l! ]; m0 l
- ;; some reason, because it is not the expected behavior of the command.
$ X) @' b9 H( g$ Q+ x8 I7 ^ - ;;
: j" @. U' U4 B2 \, z - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
2 d- i2 ?2 u' a2 U, ^ - );if
! W2 Q" _+ R ?$ O - (princ)
E% J2 q. O! W" @: C$ n* n) W - );defun call_chp2
1 l4 h$ }8 e& {! t - ;;
# J; E4 d( N+ {6 { - ;; Function to set the Color text tile and swab to the current color value.
- T% W( ]. V7 a - ;;
; }) f" f( X+ W% C3 } - (defun set_col_tile()
% X: p' G! o& d0 t7 \# M4 {# \ - (cond) `" `* f# |8 k
- ((= ecolor nil)
( d# L( X3 X" S; T* ^- V* k - (set_tile "t_color" "Varies")
0 M- @, k; K7 L - (col_tile "show_image" 0 nil)
2 f0 X( p* j& u( T- m- I, A - )+ g* H; E- O" P- n; V& {
- ((= ecolor 0)
# _, D1 i4 b8 N( `8 o- B - (set_tile "t_color" "BYBLOCK")
2 h( W% H: f" T3 [ - (col_tile "show_image" 7 nil) ; show BYBLOCK as white5 N4 h' u4 M6 F! ?3 v
- )
# d, E; [8 f5 ^0 z3 W& s, h1 L8 ] - ((= ecolor 1)% H8 D; q9 h* `% T# \0 a
- (set_tile "t_color" "1 red")
0 i9 h- v& i( F6 o* s - (col_tile "show_image" 1 nil)+ W; q, o/ v: W; { ^* ], {
- )
7 v* x6 V$ T- X1 _ - ((= ecolor 2)& u. J+ s" g! S( {2 p" T4 Z, G
- (set_tile "t_color" "2 yellow")( r. [ ]. C- y; Y
- (col_tile "show_image" 2 nil)
$ G* [5 n8 a' P" o- b6 k - )6 A' N X4 I: q7 p/ q
- ((= ecolor 3)& {. x9 B6 b- H8 L5 V; }
- (set_tile "t_color" "3 green")
. V r7 S' F; j - (col_tile "show_image" 3 nil)8 s. N' g. }, j1 \7 a" S, V3 ]9 ~
- )7 R/ }; Z/ o# {/ @2 i- j/ Z# N+ {
- ((= ecolor 4)# R, o$ t$ q; m- T) i |& ?
- (set_tile "t_color" "4 cyan")- U |( G1 I! Z, Y
- (col_tile "show_image" 4 nil)
, J( r* a6 W1 s4 o. _8 ] - )
, f; i$ J9 E L2 n - ((= ecolor 5)/ S' l H; I. {6 [( O( L
- (set_tile "t_color" "5 blue")
7 @$ \. k7 b" ]$ U8 o# T - (col_tile "show_image" 5 nil)
/ J5 {* a3 |! x( }9 r! _0 O3 w - )6 B6 d4 c1 l2 |- |/ ]
- ((= ecolor 6)
/ E5 t% c( R4 p7 l8 ] - (set_tile "t_color" "6 magenta")
2 ]# h# o( H* v( n0 Q8 s3 o - (col_tile "show_image" 6 nil)& u h; i) l# i) x- ^
- )$ n v( y/ l' M3 x7 k2 D- ]) ~) {
- ((= ecolor 7)' ]3 a+ \ t8 Y3 y) c1 {
- (set_tile "t_color" "7 white")
4 m# ~4 o* l( N% T' n - (col_tile "show_image" 7 nil)* |1 r+ m1 i: f5 }; i
- ). W( X3 c5 |" e1 \3 \: Z+ J
- ;; If the color is "BYLAYER", then set the tile to
2 V" r+ A6 N5 a8 `3 a: ~7 q - ;; show it's set By layer, but also indicate the6 K% Z5 y8 a. P+ o- u5 [5 \
- ;; color of the layer - i.e. By layer (red)
# w! C3 ^- [4 f! _7 | - ((= ecolor 256)7 p+ i8 n( U* L, |) Z
- (set_tile "t_color" (bylayer_col))
4 C6 a+ k8 o5 N% {" c+ `1 @5 f) D! W - (col_tile "show_image" cn nil)
) O" D6 r4 o9 K6 J/ h* T - )" A3 V- v6 s+ r- Y; n
- (T
% k- m# U2 @, G- m& x2 h, Q - (set_tile "t_color" (itoa ecolor))
8 R; \0 i) S# ^! W - (col_tile "show_image" ecolor nil)
+ A, u2 t k6 I W - )
w, Y5 t" O7 {/ z6 d) _% S - )" q4 U5 d* _7 H5 l
- )
" [; _, m! m1 }: z1 P* K- J - ;;, K k/ P( _3 w3 D
- ;; Function to put up the standard color dialogue.# m/ F! t4 }5 H' L
- ;;1 u$ ^3 p' \$ Y0 X8 Q5 {
- (defun getcolor(/ col_def lay_clr temp_color)
: H( i6 Y* m3 n$ x8 Z - ;; col_def is the default color used when rq_color is called. If ecolor
9 N. r1 o# Q6 N( M% C! ~7 ` - ;; is nil (varies) then set it to 1, else use the value of ecolor.4 q" h2 a1 U) [+ v% g
- (if ecolor
+ H: f! g2 s, w% |/ Q - (setq col_def ecolor)
v4 {+ _' r* V( F' o - (setq col_def 1)" S( g+ A1 Q; I8 |; Q
- ), z: Y j- @; Z4 {6 v4 g9 f
6 o; x, U* ]0 a, n( ?# M6 W4 G- ;; If we're working with a single layer, get its color- C0 L( ]3 T- |9 W" l. c9 d
- ;; for use in the color swatch if the user selects color BYLAYER.3 L' x0 p) t! Y* \, ~; {) n
- (if (/= elayer ;|MSG0|;"Varies")
1 Y, I0 b; w$ C9 X# |2 u# q - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))). b" G6 Y3 T5 I X
- (setq lay_clr 0)7 ^: @9 B0 J3 E0 Z7 m
- )7 F) g0 f( a0 |% [$ \+ m9 w) o( o
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))$ _( r F$ F* X* K; P
- (progn
8 Z6 |' c g4 c9 x& h w - (setq ecolor temp_color)
U6 P( f0 q# D) G - (set_col_tile)
# L$ E9 W3 ~. Q/ \ - ecolor3 a" K+ V+ G0 h, q: h/ U
- )
4 @/ [3 x8 i; D9 O6 I" T - ecolor. C' l9 ]; M3 y2 E, s' z
- )
5 ]8 c) I6 y! O - )
2 }2 e/ r3 @, H( k) O/ q8 i+ Z) Z - ;;/ ~; X* W" Z# L5 {& w0 p* Z/ A
- ;; This function pops a dialogue box consisting of a list box, image tile,
i& C4 a. x: X, O6 ^2 _" l - ;; and edit box to allow the user to select or type a linetype. It returns* R9 V6 ^; A# u4 l
- ;; the linetype selected.
, K2 C) N8 U4 [/ o - ;;
' p4 m- E* B: }" V- M' J! C9 _ - (defun getltype (/ old-idx ltname)2 E3 P, o. U- t' I
- ;; Initialize a dialogue from dialogue file4 `$ f( f4 Z$ W$ M6 x' y; V8 K
- (if (not (new_dialog "setltype" dcl_id)) (exit))+ s i' G7 L6 ?3 H" ]0 Z
- (start_list "list_lt")8 p/ L$ I9 F F9 a
- (mapcar 'add_list ltnmlst) ; initialize list box
8 E" e: Y+ {1 J+ M- S+ C6 q8 D4 f - (end_list)" Z: S/ ?$ A3 ~. Z0 @: z4 t
- (setq old-idx lt-idx): L; x; O' Y& @1 p& y
- ;; Show initial ltype in image tile, list box, and edit box
, D; ?: p8 j: J; T" Y; W% M - (if (/= lt-idx nil)
1 I0 Z, Z, |, O5 s - (ltlist_act (itoa lt-idx))
# c! F9 z6 h Q. H4 ^8 F - (progn+ E# k {; W, s9 |
- (set_tile "edit_lt" "")5 i" h) H* I! C N! t6 E
- (col_tile "show_image" 0 nil)
- |6 a% K2 U$ [1 } - );progn else
; y0 c. h4 A( o' Q7 j% Z - );if/ ?+ S% y6 z b, C. \* o
- (action_tile "list_lt" "(ltlist_act $value)")3 B3 \3 B# Z% ^7 k( M: m
- (action_tile "edit_lt" "(ltedit_act)")
; |5 L1 I& \9 N0 r6 @& A3 ? - (action_tile "accept" "(test-ok)")
2 J0 _. H2 Q* H1 o - (action_tile "cancel" "(reset-lt)")) X& y, t/ { J/ A( y" }
- (if (= (start_dialog) 1) ; User pressed OK5 q0 N5 [9 o% q) s9 ?" I3 m
- (cond) `. m9 \0 p$ u9 N( ?
- ((or (= lt-idx nil), a" ], U% n* u: \& I9 w# c3 x
- (= lt-idx (1- (length ltnmlst)))" P* m8 }1 E- b8 T$ z
- );or
5 k* G1 }7 z# H+ K* T - (set_tile "t_ltype" "Varies")
8 ] T* h d1 ]6 X) I# N9 m7 b - ;|MSG0|;"Varies"8 \* Y6 o( t- O; V; K! k3 V Y7 @
- )
J0 E) `4 o8 T - ((= lt-idx 0)& I9 o9 c9 }3 p6 ^4 c- H9 `
- (set_tile "t_ltype" (bylayer_lt))
) P2 r- U5 T1 b/ ?6 X - ;|MSG0|;"BYLAYER"5 f+ }3 m: F. z
- )
1 g# K5 j* ]. m4 p3 u i - ((= lt-idx 1)
/ [+ @& s- J6 ~/ b8 n% d& y - (set_tile "t_ltype" "BYBLOCK")
$ V: ?3 {* s' `# i+ p - ;|MSG0|;"BYBLOCK"
[' H1 f! d9 q& W4 W8 }5 b - )
* L# N- a" [" D7 O& l - (T: l" [* z p) i' }2 W
- (set_tile "t_ltype" ltname)
# m- Z. a" J! l+ H/ Q. H4 W - ltname
" l+ C7 t( z( o0 O7 F' s - )
9 c9 E) Y( k) U! x, d z, w' Q8 W - );cond then
! a1 T! {: B- P( F - eltype2 ?# [ x: `2 n+ |
- );if8 L/ ]3 }8 u$ E8 h) G
- );defun
( U* p9 F3 b( C( b: i3 Y7 |( ^/ I# p - ;;
" B5 d$ i; D/ B) @, q - ;; Edit box entries end up here
- l# d& T" `: u8 W - ;;
" M7 w: E' `! Z/ B* ?) V - (defun ltedit_act ( / flag)+ w# \6 |' p& X1 k8 g8 v
- ;; If linetype name,is valid, then clear error string, D! y4 u' e( n5 p$ U. [; Q
- ;; call ltlist_act function, and change focus to list box." `4 w' p S# q& N' E
- ;; Else print error message.
! N* M n" y* y# K } - ! n3 z2 @; D8 z# { g
- (setq ltvalue (xstrcase (get_tile "edit_lt")))# n: A& K" `4 o$ C0 \
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")% @" @6 Z; u& ~/ o0 `
- (= ltvalue "BY LAYER")' W& t* q m, ^1 U0 `
- )6 ~6 R. n M9 z- m6 \
- (setq ltvalue "BYLAYER")9 y( Y. Y' s' U0 h6 s
- )1 G) k9 _2 }& S$ b- C' r/ F
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
& u" W* D0 D! c' v - (= ltvalue "BY BLOCK")
3 x5 E4 J( N# O7 M1 }7 h - )
5 v( X& j1 Y w7 T( { b( J/ T - (setq ltvalue "BYBLOCK")
) ^9 o! N6 K8 J, d2 c9 A" e - )
" u$ B z) G1 z2 a E - (if (setq lt-idx (getindex ltvalue ltnmlst))
- B/ Z- Z3 b% d - (progn- f5 F; ~7 n+ m0 A+ m/ \* n
- (set_tile "error" "")
! Z% l* N7 r& y% O& I; y8 m - (ltlist_act (itoa lt-idx))
. ~1 y! _) u$ \% s; a- E - ;(mode_tile "list_lt" 2)
?/ v4 t- { X l: h+ ^) G8 Q - );progn then7 g- R- ?3 f- S4 Y8 z
- (progn
' }0 Y' D5 V# l0 E( d - (if (/= ltvalue "")
- k6 P) _, E$ t2 a& g9 R$ I - (progn
2 E( q3 H: {+ G! B/ x - (set_tile "error" "Invalid linetype.")9 D3 |! u. K$ X( k P$ x- O
- (setq flag T)
# t: ^3 n A. g/ t% T7 Y, | - );progn$ h! W4 h) n+ F/ x: q M
- )" O3 _6 ~" P7 s7 g
- (setq lt-idx old-idx)8 Z+ w" H1 z$ [
- );progn else7 l9 L- ]& Z9 ~: R9 Q$ C- A* `, M
- );if
9 Z0 S6 \1 o2 X Q) Z E7 Z$ } - (if (and (not flag) ;added so a return will take you out of the dialog.
- o5 M% J, x$ U, i - (= $reason 1)
7 {5 T- q2 l7 b( i$ L; G% ?/ W - );and0 Y, W4 ?. i- U& J" \) U
- (done_dialog 1)
8 _! r$ ^# G$ n5 ^2 z& C6 { X - );if 3 _9 |4 T* z5 y$ ]& E# T
- );defun ltedit_act2 Q4 L/ I& n3 z3 b2 |3 s6 B
- ;;
5 z. B4 H+ ~9 s k - ;; List selections end up here+ s+ _# O H6 q. o& a n, p$ g: H4 ]
- ;;
0 k4 c' ?% A, k% l& K - (defun ltlist_act (index / dashdata)
+ X, W: ~; T* O' X - ;; Update the list box, edit box, and color tile
& |# R* ~' ?' ~9 T7 e - (set_tile "error" "")
# S3 l9 o8 p4 p; W- [; k8 ?9 a - (setq lt-idx (atoi index)), T% O% k4 \- N- h0 ~! J
- (setq ltname (nth lt-idx ltnmlst))
1 R" o! L* G4 w% k% Y8 s7 q. ? - (setq dashdata (nth lt-idx mdashlist))
3 b6 A N+ ~; U; V9 r, F% ? - (col_tile "show_image" 0 dashdata)+ C4 U% A% o# a$ z+ u/ H
- (set_tile "list_lt" (itoa lt-idx))( G# r8 G, [, A2 F) C& E' Z; b6 u5 h
- (set_tile "edit_lt" ltname)) @# x* q% M6 {) m S! L/ }
- )
8 A5 K6 P3 p3 O8 e+ K7 @ - ;; Y* {1 C; c- b( q' k
- ;; Reset to original linetype when cancel it selected- Q# o+ {3 c3 y' u# J" F& ]# X
- ;;
( k- Q; {! L6 B e+ J& L% B m" S - (defun reset-lt ()
! [2 F d0 T2 p+ T) U. [( S8 l- L4 v - (setq lt-idx old-idx)
. Y q3 C$ v% K0 F* L l& K% T4 [, I - (done_dialog 0)+ S$ b! R: S+ g) x W
- )
* {+ K& i' Y/ z) \ - ;;, Z$ A" a2 _5 D' Y" A
- ;; This function pops a dialogue box consisting of a list box and edit box to1 u7 |# V+ g! u" M, ?
- ;; allow the user to select or type a layer name. It returns the layer name( c# Z- c2 H6 w6 f- s! c! ]
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the- p" I* B' J% Q
- ;; drawing.) U- F, o2 H4 L& {+ R
- ;;) w: Y6 Y8 H' B" a. a
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
! ~6 D6 W1 m( w6 `$ k' q0 _3 o - ;; Create layer list the first time the layer* l( O2 @, m# n
- ;; dialogue is called.
! a1 B9 v0 | \. ^( Y - (if (not lay-idx)( i' z3 W: r8 o7 H, e! F
- (progn
: Y6 X- p( R, [: B% I - (makelaylists) ; layer list - laynmlst0 s& A) |5 V9 ~/ @: y4 g4 ?
- ;rk2 I5 x9 Y; s: |" X: p0 L1 w
- (setq lay-idx (getindex elayer laynmlst)): f5 I8 n5 l. S+ s! f. t
- );progn4 T4 v) a, u# e/ i* D! [5 [& u" F* d
- );if
+ r! S: H0 g$ P" { - / l3 Y9 w. Q) h5 |$ L/ H
- ;; Load a dialogue from dialogue file
* x" i; p0 H+ {8 d - (if (not (new_dialog "setlayer" dcl_id)) (exit))- Q0 m' a. i* H+ S8 ~: V
- (start_list "list_lay")
- Z e; X- [) P" H1 I - (mapcar 'add_list longlist) ; initialize list box
( b1 k# a: Q) f/ V7 E% m - (end_list)
6 r9 A! ? j! }( ^9 B - ;; Display current layer, show initial layer name in edit
: r2 |0 Q; f9 Z - ;; box, and highlight list box.
* K- A0 A8 V- L4 ?( A - (setq old-idx lay-idx)
. |3 m' ?% Y7 A; n# f - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))5 k2 U" Y/ f1 d
- (set_tile "cur_layer" (getvar "clayer"))
; [; c/ N ?( g& j1 o - (action_tile "list_lay" "(laylist_act $value)")4 B6 j9 [8 P1 Y( N2 J' v2 R; V
- (action_tile "edit_lay" "(layedit_act)")( `+ ]3 A3 Y( {# W* i! }- D+ A
- (action_tile "accept" "(test-ok)")
* M- F4 k6 _( a4 f$ {' I1 _( N. Y - (action_tile "cancel" "(reset-lay)")
* M% }2 {) n9 s0 M9 H- p+ z/ Z8 M - (if (= (start_dialog) 1) ; User pressed OK
# Z0 w1 f9 h) p Y0 @6 W - (progn! u+ {+ s8 N8 i G9 R
- (if (or (= lay-idx nil)
1 M# @% [& e( D0 h! c - (= lay-idx (1- (length laynmlst)))% s; v0 a' a- W3 I# n2 U
- );or
+ g, h1 Y$ \% b# i& t - (progn
0 I a9 q0 r( U9 N1 E5 {! n1 R - (setq lay-idx nil)
n/ F# S0 C5 I4 a, T' q% a; k - (setq layname ;|MSG0|;"VARIES")
# }: e: h$ ?: u/ ~, e. N9 w( _/ I - (set_tile "t_layer" "Varies")
1 {% [ R, `" U5 j - (setq layname "")$ _0 w) x5 Y" D# m$ c
- );progn
$ N: F1 a- D4 @ j6 b - (set_tile "t_layer" layname)
# d. p. B+ J$ h( }% ` - );if/ r) ]; l f+ d
- ; If layer or ltype equals bylayer reset their tiles
1 E' ]8 I) V1 T3 R" f' h - (if (= lt-idx 0)5 p0 j2 O4 V: V1 j# n4 D# C5 C. ^
- (set_tile "t_ltype" (bylayer_lt))
$ R( n# W) p6 c4 Z - );if
: x* t! J. m2 p. x* h, ?8 ~ - (if (= ecolor 256)( m8 X/ s8 e% z3 u/ H% w6 @, }: f
- (progn: b2 Y2 f6 b+ p, u- U
- (set_tile "t_color" (bylayer_col))
& [# C3 f. W3 X7 g - (col_tile "show_image" cn nil)
Y1 Z- H1 y6 X* | n - )
4 L/ N" [* n" e. T, J3 w - );if
- l1 b9 z: ^$ C7 W: x4 a( i - layname
) [" Y0 o9 c, n0 ? - );progn
$ J/ f5 l1 K4 Y- T/ z! X% N, H0 ? - elayer+ C3 p* F8 }# Y! Z9 ` b' B; [
- );if
! Q2 w( y5 z, w, k$ V3 W; n - ), g* R! q3 v+ i: s t0 v
- ;;
" |$ \( [! I# @" p2 e* {. P A - ;; Edit box selections end up here
: E) c; E. E+ b* c - ;;* O8 N# m( V2 p2 V7 I
- (defun layedit_act()$ ^: Y+ f8 `! R% A2 Y
- ;; Convert layer entry to upper case. If layer name is
8 w0 {) j- @- B: I - ;; valid, clear error string, call (laylist_act) function,
% ]2 @4 c% g0 }) X3 @6 A - ;; and change focus to list box. Else print error message.: c! C- ^- M. ?- q/ H
- (setq layvalue (xstrcase (get_tile "edit_lay")))6 {) X2 b& @( |4 [
- (if (setq lay-idx (getindex layvalue laynmlst))' i3 V) L! Z# S1 V! K
- (progn2 T) v* l) ?# M
- (set_tile "error" ""). x9 }! z! t4 Z/ c! V
- (laylist_act (itoa lay-idx))
. r1 `1 V2 F4 I: v - )0 k$ C2 ~- P8 h' A
- (progn
. h8 M: ?4 D; n$ b7 o - (set_tile "error" "Invalid layer name.")5 R. I$ u: p+ s1 i6 I1 v/ j
- (mode_tile "edit_lay" 2)9 C2 I2 D6 i; l- y
- (setq lay-idx old-idx)
- _& o" i" C; J* \* r2 E - )$ K# l' l& s, L+ P# ^
- );if
" ? E; D4 O" a- I, Q7 J B7 x$ O - );defun
, Q* E( e! ]- i& S& w, ?" k! ^ - ;;
& h3 ^) p8 M( |' v6 f2 X - ;; List entry selections end up here
+ K+ H" ~1 A) F3 T& i e" {; x# ^) C - ;;
* J" f! V7 [" B$ `0 n. G - (defun laylist_act (index / layinfo color dashdata)
B \ U& U% p: I- @- U& ^" N, B - ;; Update the list box, edit box, and color tile
; p# p7 F6 u( w$ p8 x - (set_tile "error" ""). _+ p) N |; S) g/ G" B8 H. A
- (setq lay-idx (atoi index)), k# `' G5 I( ^ G S7 o- E7 `, ]
- (if (not (equal lay-idx (1- (length laynmlst))))
/ w! A4 L' Z, t2 A - (progn
; ?0 c% [6 L: k4 p5 S - (setq layname (nth lay-idx laynmlst))
. ^5 t6 y3 H/ n% ]1 v- j/ A - (setq layinfo (tblsearch "layer" layname))
& N% s, @& D: S6 J6 I3 Z - (setq color (cdr (assoc 62 layinfo))). a# b8 i( w9 h# \, D0 y) V
- (setq color (abs color))
& W$ {" p' A6 M) {3 Q. a, w - (setq colname (colorname color))+ A& _) s9 T) y! X! H
- (set_tile "list_lay" (itoa lay-idx))
8 B; B3 L& h! R2 M; I - (set_tile "edit_lay" layname)- i' b$ @! b; Y
- ;(mode_tile "list_lay" 2)
. H2 m$ z, w8 _ - );progn then & f2 b$ I$ ?/ y; g
- (set_tile "edit_lay" "")
- D" K" `" e0 f$ p- ~) o - );if
5 ~/ b" y% j, g" U+ m' D2 N) ] - );defun laylist_act5 b. |2 [8 _6 ]+ Q2 @$ B
- ;;4 p N# i( }' P
- ;; Reset to original layer when cancel is selected! n" r; z" V; m2 k* T
- ;;$ J% Y6 Z0 G* B! o' v
- (defun reset-lay ()1 r4 B3 x. S) K* k6 [6 P" i
- (setq lay-idx old-idx)
$ V" v, s: ^# r8 k( B& x. }# L1 j - (done_dialog 0)
9 e* j2 w+ T. j k& ]" N; T, t! A( U - )+ k0 N4 y& ]1 p1 S+ F$ c4 Z6 }* P
0 p& o; ^9 ?$ N0 O8 R9 R f% L- ;; Checks validity of linetype scale from edit box. It checks to( b0 a+ P3 p* R+ L! U3 J
- ;; see if the value equals "Varies".
0 `& q; }5 z, C4 t; ]0 ~ V - ' K1 q) n4 q" ~; K, E* l9 w% }
- (defun getscale (value / rval)
, T" r5 _. M- q* B i- I# m - (setq value (strcase value)/ O* Q5 P$ ]: Q9 Y8 r
- rval (distof value)
9 n3 Z9 G: E- p: i ], F" Y3 o - );setq8 _9 u* C O% u" d$ n0 p
- (if (or (= value "")6 O. ~/ ~1 _- J
- (> rval 0.0)
$ B! t5 P3 k& f' I5 v) Q9 ` M - )' y1 N' d. Q7 {* v# `2 D
- (progn
" C) [* J* g: j& H# C9 T - (set_tile "error" "")* _+ h) D4 S4 {. ]9 \. P
- (if (= value "")
/ @$ _; E) L! s0 e4 x, f - (progn
" M3 O- x |' W - (set_tile "eb_ltscale" "") N+ F) r5 F2 Q$ u9 s9 y
- (setq eltscale nil)
$ L+ s! n$ {/ N1 X1 l - );progn then* @5 E: K- a; b [" B& G0 d7 t
- (progn: X3 o# I$ F3 H
- (setq eltscale (distof value))
/ c- x9 Z" ?1 ]; B+ O9 P - (set_tile "eb_ltscale" (ai_rtos eltscale)); h% |# A$ c9 K5 h) |; L
- eltscale. W9 q# D9 D; @( r5 b5 C
- );progn else
% D# E+ w" w; T0 F - );if/ m; N, s, m% ^
- );progn
; o4 k) `+ d; C; Z% H# Q3 y& F5 f; J - (progn
6 G4 d% B5 r$ U- r/ ` - (set_tile "error" "Invalid ltscale.")+ F' o$ H3 V$ J& ?6 \$ o4 @
- nil
6 U. y: {& W N8 s% k% c( i; [5 X - );progn else5 M& ~1 _2 H( H5 [
- );if1 h- X) q7 ], ], \8 U& F c) }
- );defun
5 o* |) i! y9 { - ;;' r* a/ L+ J+ _8 O
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
; s) A" x6 a1 l$ O, W! K: z8 b - ;; string can't be converted to a real, this routine checks if the first$ B2 z% z( a( V! L
- ;; character is "0". It also checks to see if the value equals "Varies".( K6 G9 y+ \+ c, P0 c" ~
- ;;* K8 ]3 F* _3 G9 I+ L; R
- (defun getthickness (value)
! ?/ b5 z! ?) i& L0 a) t9 S+ k, | - (setq value (strcase value))9 v ]. O i" C
- (if (or (= value "")3 j4 @3 k; ]2 Y
- (distof value)
4 i- n: |' S2 r7 C# n7 D. L - );or. Q$ c4 ~# Q& G; F
- (progn
, @5 G$ ~; k, t& `4 W- O8 I - (set_tile "error" "") T& K! y6 s0 J1 x4 H+ @7 B" D
- (if (= value "")
+ `, Z/ |( T9 H+ ?5 _* O6 z, ] - (progn3 B+ a+ r) i. K1 Y; V _/ I
- (set_tile "eb_thickness" "")- y4 {3 R$ y% i a
- (setq ethickness nil)
4 [! C9 F' L& J- \$ ] - );progn
$ ~1 z3 f4 R% n5 b6 A - (progn: j1 y8 V" ?) _& {" ]& `% _
- (setq ethickness (distof value))
4 x& }: N5 J3 q* _6 }, |6 A - (set_tile "eb_thickness" (ai_rtos ethickness))$ }8 B3 n S* _0 _2 j
- ethickness1 j, l/ Z! L7 G4 L+ ]
- );progn ~- q: C( }6 l, [( z. u' N
- );if. |% Q) D% I! k/ R. q) c6 h
- );progn
0 D J5 [- W2 X m - (progn1 Z6 G2 m: Y. Y4 V9 X: K
- (set_tile "error" "Invalid thickness.")
8 f) z3 q5 \' K - nil# Q7 |) E! W6 G0 V
- );progn
/ [7 [; Q% s9 q" o l. L" K - );if
6 Y( `4 B/ K3 c; z* K6 f" K2 v - );defun
) G5 f9 J; }% h* h - ;;( _% _% ]& F# F2 \
- ;; Checks validity of polyline elevation from edit box.' c6 f+ ~2 u8 J6 G ?: J
- ;;
) Q" G8 m2 N2 ?3 `/ ?% C/ Q# o$ E - (defun getelevation (value)
( I+ {3 o. _4 s6 C7 M - (setq value (strcase value))' `3 W: i/ W8 U: p& c$ Q" x
- (if (or (= value "")
+ k! M: i4 L9 l6 S: o' u% _3 X - (distof value)) B" o2 }6 \$ }4 t8 Z2 J
- )
. ]8 H% b1 ]% x: L1 y- | - (progn
9 Z" t& T. j3 f+ W/ P/ _; D - (set_tile "error" ""). @. M" M/ |6 [8 h F( M
- (if (= value "")
* Q! {# w# I, B) _4 p- B! j - (progn
+ N9 C- x' ?" C% |1 K - (set_tile "poly_elev" "")
) L3 e+ I& Q5 _. [: u - (setq eelevation nil)
5 J' W% U8 N" H. w - );progn2 E3 r6 V, ^9 z8 Y
- (progn+ x; p( y" T2 p/ M) {. f3 i
- (setq eelevation (distof value))
$ N# ]: R5 u4 {. ?6 Y - (set_tile "poly_elev" (ai_rtos eelevation))
+ j) Z I1 D; m4 a' A" q+ R - eelevation4 Z5 d: P% D- Y1 s+ [% _
- );progn
# v4 c( Y- _' z: X- p - );if- a% G) u! p4 f" z, T' o
- );progn$ R) |5 Y6 y j6 N1 j
- (progn0 _3 O3 w2 y' C7 f# I; x" T1 _/ Y
- (set_tile "error" "Invalid elevation.")
4 D/ q$ y5 n; I - nil
" I w& S5 Y, N3 C - );progn
* p m8 g1 Q K$ v( L. r - );if
4 ?0 W8 `# g2 T% G* |0 X, B* y - );defun
( |; r/ O0 v. d7 o0 V) ~ - ;;3 p# b+ Q8 L1 c4 ~4 f0 E$ u
- ;; Checks validity of polyline width from edit box.
1 ^" d) i& Q6 C# s D( t* K+ M5 ? - ;;: ^8 E: V2 U# _
- (defun getwidth (value / rval)
. F% x; p! v4 X' m3 m9 O6 \ - (setq value (strcase value)& K0 K/ `0 l& ^* z7 W1 Y$ Y* p! y H
- rval (distof value)8 \( O2 F# G1 G/ v( z' l$ o6 l
- )( X; b; {( u! d) X0 `
- (if (or (= value "")
) E5 I% J# z: x7 c/ |. u - (>= rval 0.0)
/ n! m3 G6 t- J, J" Z3 y - )
: m5 \6 O- @* H9 M" ~ - (progn0 n3 v! ]% m+ }' ^% l9 f* {" X
- (set_tile "error" "")
. ^. K' @ i5 I3 q7 U5 i5 N0 m8 J - (if (= value "")
, w% C' G J* n" @6 I/ a- L2 G - (progn3 M' R( N8 \5 P) o* `
- (set_tile "poly_wid" "")
: o5 e9 w/ R. w6 ] - (setq ewidth nil)
+ h6 b5 M- y0 r4 u3 ^! H - );progn
! ^+ T8 i$ ~+ T F7 ~0 ^, J( n - (progn
+ D3 Q5 V# ]- j& c# O. e- k; \ - (setq ewidth (distof value))
9 u- |; h8 m) h# X - (set_tile "poly_wid" (ai_rtos ewidth))
* @& Z8 C9 y6 r2 _ - ;width4 C/ p$ B; h/ X2 Y+ p
- );progn
7 G$ t( T. E3 M! t - );if
1 Q/ r0 J( \! W; N4 B - );progn2 U3 M# [; N. ]" v
- (progn3 G+ N5 R! D; P+ j1 {
- (set_tile "error" "Invalid width.")
1 k( x" f o0 w* S0 g - ;(setq ewidth nil)8 i/ |) c$ H7 x5 A! r9 S1 A6 @; ]$ w
- nil
: q [2 N: i" q! E7 M" n$ U - );progn
, t0 g/ a1 h; ~0 G/ x5 i3 ^0 _ - );if
* O: d7 {, |4 B% S/ E/ N2 _! W - );defun
5 Z. {2 z8 q# |1 N1 q1 m5 X: q5 X! @ - ;;7 b' O% }6 ]; I- d9 d. B2 ?. ~
- ;; Checks validity of text height from edit box.
) V" p7 W! k; I, t - ;;
5 K4 t/ ]3 K! V - (defun getheight (value / rval)
' Y D9 E% s. z- q6 K" d" ~+ p$ a - (setq value (strcase value); G6 V, X; C8 a9 c% u7 H
- rval (distof value)$ m) n9 p& m& B3 w; I
- )
5 L: I, {) F' S9 E$ ` }, U - (if (or (= value "")
- z% p$ T* I8 R9 X1 m - (> rval 0.0)+ u) Q# l* }/ N) J
- )
3 o- b' C J9 O+ m3 {: V - (progn m# ]! P' B/ c [
- (set_tile "error" "")
: n- s# B9 t7 C+ {$ E$ P1 d8 c - (if (= value "")
5 m' m; T, ^! A/ ]3 e, s. R2 o - (progn' h: _1 U9 C0 ]# R* O4 D8 N, a
- (set_tile "text_hgt" "")2 d# Y5 v @/ c6 c; c. b! t4 X2 M7 Q
- (setq eheight nil)
, C/ L: k' U" V \ - );progn4 F/ { `/ C8 a& ^, a: f
- (progn
& b- }& ^; {( c1 J - (setq eheight (distof value))1 }$ m0 V9 F1 `2 A
- (set_tile "text_hgt" (ai_rtos eheight))
$ a' v! \) e7 W% r - eheight0 `( i0 z7 L6 j: [4 F" l
- );progn0 K, z; m: S. b# k+ O) ]+ n! X
- );if
- E# d2 h9 \9 Z# ?; I/ O& o+ c5 R& N - );progn
1 G M& ?) ]/ [" z3 @9 a/ V - (progn2 K' l0 _7 e" h) U: ?
- (set_tile "error" "Invalid height.")5 M. ]) ?; N* c" F
- nil: [9 G; \8 o% s. m. I. Q7 n5 _8 u; c
- );progn
$ m' v. Y7 R/ k& J - );if7 I, r, |1 v# Y: a+ k2 H/ R
- );defun
2 _ W' x# I9 B( C7 D# G
5 Q9 B9 Q$ |3 \* v- (defun getstyle (value lst / rval)
) Y5 y" L) y; h* |" ~# m' @1 L - ;(setq value (strcase value))3 s% Q3 l$ v9 T- X3 n7 g7 b
- (set_tile "error" "")
) r6 U3 F6 s8 s - (setq estyle (nth (atoi value) lst))+ v7 I) g2 n, f; z" I3 M' {9 k
- (if (equal estyle "")" K3 T7 C! G/ f2 V
- (setq estyle nil). N0 p' g5 T! e% b- ]7 u
- );if
) [5 B, H8 y1 z4 @ -
0 G4 a6 Z" F K/ a1 S - );defun getstyle# B% ~7 v9 k' ]- Y" `
; O, I2 N, i- m2 @: H7 t& q- ;;
" T1 w7 Z. D8 z3 j - ;; This function make a list called laynmlst which consists of all the layer9 p H" \6 U9 V' Z0 `! O
- ;; names in the drawing. It also creates a list called longlist which
+ l/ L7 K( S# L+ ` - ;; consists of strings which contain the layer name, color, linetype, etc.& u1 S" C; B* p8 [1 c
- ;; Longlist is later mapped into the layer listbox. Both are ordered the; B7 H- n$ g H& B
- ;; same.6 u2 \" Q8 Z) B \" h, q4 P5 ]
- ;;
; a8 d& {/ y7 o4 R; J; q - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname$ C1 y) A0 T+ V% C) W" I% ^
- xdlist vpldata sortlist name templist bit-70
0 g$ N, f2 C( u9 x! N% @% o - layer_number+ N, C$ s$ Y* M$ M
- )
3 {$ z+ q. q( x& Y0 } - (if (= (setq tilemode (getvar "tilemode")) 0) K5 v+ j0 \4 T- T8 L% V" e1 ]
- (progn& Q3 V" X' V" t5 M0 D
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
- m9 x: v# c' j( e - (cons 69 (getvar "CVPORT"))
( s# g1 B# x; G! [2 P - )& ], t1 |( x4 b( j' a0 B" v- @) B
- )) Y! J& ^4 M# M9 e* e
- )8 `& s/ f+ d/ _ T
- (setq cvpname (ssname ss 0))# ^- ?4 C4 g8 m6 E4 ^ [! p m
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
$ \( Z9 f$ R6 r5 i8 l - (setq vpldata (cdadr xdlist))
- }1 V: O* Z) G+ Q- Y - )/ a0 g1 d7 s. ?( I: B. `4 l( U
- ) M6 W* i& {+ U+ j& n1 h+ o2 i7 j
- (setq sortlist nil)
8 {7 ~6 `( q) F: }. m s6 L1 v - (setq templist (tblnext "LAYER" T)); u& R0 {+ L2 W9 J" W' {
- (setq layer_number 1)
+ L+ v9 N, ^) N9 v; X' U - (while templist5 V. V' \& m8 m
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
8 x* V! `2 N: I, E" y/ e - (progn 5 z2 Z: ?8 S5 [' Q# Y7 {: m1 _& X* m
- (setq name (cdr (assoc 2 templist)))7 U+ {& ` e" {& \& n
- (setq sortlist (cons name sortlist))- w7 B* D( I0 \; o7 j) V3 m
- ;; Not dead message...' s. g; F* U/ W; [) f
- (setq layer_number (1+ layer_number))3 C5 _$ @4 k: P7 {4 [+ \
- );progn
" Y# m4 b/ n8 \* v$ \9 w3 u - );if7 }2 z Z* ?6 R. H0 ~- A* E$ U
- (setq templist (tblnext "LAYER"))0 ^8 T$ e0 q2 }# j) X
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
) b& L7 ^) n8 L% ?% b - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))8 J' R" f; ] }) y0 G
- );if
- T' L0 X3 Q$ n! ~% ~; w1 ]' M7 f - )
; j V' Z1 g0 b( l) h - (set_tile "error" "")/ x& c9 h4 y) A! W
- (if (>= (getvar "maxsort") (length sortlist))' h; g. |7 v# H4 s" l3 R3 r& k/ T
- (progn
' G! y( V6 F8 D# X - (if (> layer_number 50)( d$ r8 H& F% ^0 G/ {% f2 m
- (set_tile "error" "Sorting...")
) N- p0 B1 E/ ?" k) Q( L - )
' `. a* Y: S7 N3 L4 f - (setq sortlist (acad_strlsort sortlist))
9 s( t; P/ C/ D3 m. x, G* R. J2 @ - ) u( I. ^1 s% X' R
- (setq sortlist (reverse sortlist))5 z8 g3 o) S1 _3 E5 o
- )
* A5 L4 T" e4 n* ^3 g - (set_tile "error" "")2 I' s4 G' j1 q9 m2 g
- (setq laynmlst sortlist)
& R a4 m! ~3 Z9 E# j - ;rk
2 X' S0 w% b: D" ?( [7 V* r) V, |/ U0 i - (setq laynmlst (append laynmlst (list "")))
" y8 U9 R# y8 ] @4 O. w - % Z& ?9 S. \/ j8 D0 _# f
- (setq longlist nil)0 i4 _ }$ g) C" u7 K( ?
- (setq layname (car sortlist))
& ]' Q3 P& n% @* { - (setq layer_number 1) J) G% M8 Y9 t- F- L i8 m
- (while layname
% F, `$ @' o: S) Z" l+ O - (if (= (/ layer_number 50.0)
2 q# ~3 T5 @8 K* f( a - (fix (/ layer_number 50.0))
* f) K7 F# v' K3 J" k! d; a1 G - )
+ h0 e' }( Z; q% s+ Z" f- F - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
3 t9 y* _( l/ Y/ o - );if" e: i% l; _- ^! m( J
- (setq layer_number (1+ layer_number))
4 V3 j) W+ h+ r) \ - (setq laylist (tblsearch "LAYER" layname))$ d3 X! Z0 q7 |0 A" k
- (setq color (cdr (assoc 62 laylist)))5 C( k: M# v9 K- R8 @
- (if (minusp color) a$ `( {+ Z" G1 T$ k: |
- (setq onoff "."): }9 f$ i+ J9 a; T7 P+ c/ Y
- (setq onoff "On")
( t/ z4 Z* U; C2 r0 w - )
7 a- k* T& }3 |2 m, J& Q8 f2 d - (setq color (abs color))+ q; h3 a! d+ M- P
- (setq colname (colorname color))$ b9 _4 Q& `$ e' }
- (setq bit-70 (cdr (assoc 70 laylist)))
4 I) x3 n' Q: y n6 j: o0 Z9 m8 u - (if (= (logand bit-70 1) 1)
5 A- ^9 `3 _1 p - (setq frozth "F" fchk laylist)
+ D+ t4 Y# U; i7 s" N9 C - (setq frozth ".")
1 h$ H# G- ~, P }$ k" t5 h - )1 p1 D6 m# q) z' i/ I0 @$ t
- (if (= (logand bit-70 2) 2)
0 i0 s% J* T+ r0 s" { - (setq vpn "N")
6 j' L9 ~' b* j6 ^$ ~6 x - (setq vpn ".")
8 V% w2 g! [$ ] - )
% u3 F1 ]6 C2 ]* l) I - (if (= (logand bit-70 4) 4)' [$ v+ ~8 f9 l) |; J- h5 Y
- (setq lock "L")
$ C3 @" O% X. O6 c. [: T$ [ - (setq lock ".")
& `4 e% f! a! ~# v - )( t! Y' w3 j5 o& ?: c5 {& F& h
- (setq linetype (cdr (assoc 6 laylist)))& X f6 f, L4 T4 E/ q
- (setq layname (substr layname 1 31))
+ ]+ p0 }- W: A$ y/ @- E - (if (= tilemode 0)) |1 |- n* q7 l
- (progn/ R2 z! R8 o0 Z! y; S
- (if (member (cons 1003 layname) vpldata)
; d/ W2 u3 t4 O- R6 |9 L9 n1 `0 V; s1 L - (setq vpf "C")5 u, ?1 ^* {! X8 z
- (setq vpf ".")
# P4 O/ B y" K: j: K1 W2 E9 M - )1 ?' K6 x, P) O, _5 m$ W* ^, Z4 v- f
- )
4 G; ?) E j; ^& p1 X; X - (setq vpf ".")
- L# N; S6 @# q) \- p6 { - )
{! n/ m( w% A; s( j# G; H, I - (setq ltabstr (strcat layname "\t"
, e8 A& e0 e6 E( }! g* c - onoff "\t"& t3 G6 q1 k) P# p- c! n" u7 E# r
- frozth "\t"8 W9 s" f# v. x( u0 f' k. n2 ^
- lock "\t"
! H4 C7 Z8 d! k4 q - vpf "\t"
8 J0 B0 X" S$ R - vpn "\t". {& Z% R+ ]: s
- colname "\t"
6 P, I# I) {+ v" T' t/ _ - linetype
% w* _5 q% e Y6 A0 S$ ?9 _ - )
# t0 T( P6 Q1 n# V - )
; y, N# }# g g! C/ R - (setq longlist (append longlist (list ltabstr)))
3 B, G+ F) X. ]9 V. r* u! J' {4 A - (setq sortlist (cdr sortlist))3 f) b9 E5 \" U! |
- (setq layname (car sortlist))* D e" y" {+ t. v8 L. \- r
- );while+ x$ j& }! G s! M: b+ L7 Z$ s
- (setq longlist (append longlist (list "")))+ W6 _# U H" B0 A
- (set_tile "error" "")
& S# j2 w& f1 r* n3 J% Q - )
; _# Q9 j3 t5 i" Y2 Z - ;;' B# X) y/ X5 S8 {! Z
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of1 p, s# I! s- f0 @2 g
- ;; linetype names read from the symbol table. Mdashlist is list consisting
? k7 e! ~7 k* l - ;; of lists which define the linetype pattern - numbers that indicate dots,5 N3 w9 ]) ]. b9 V; g8 U8 t3 ^1 G; H" v" O
- ;; dashes, and spaces taken from group code 49. The list corresponds to the# u: F& L: S# J( H6 M; W! }+ i
- ;; order of names in ltnmlst.8 B4 ?+ [4 Q% D' G
- ;;5 ~5 _: d2 r# N p a H/ q$ b
- (defun makeltlists (/ ltlist ltname)/ C# o$ T" [( P' i2 t9 I& X
- (setq mdashlist nil)
* y) h. [) C S i* ~9 U4 P* m5 B7 c' q { - (setq ltlist (tblnext "LTYPE" T))
# X5 y2 E' t* A4 W( K: h - (setq ltname (cdr (assoc 2 ltlist)))
( \: V( w0 V6 G W - (setq ltnmlst (list ltname)), _! A1 I b; t5 I
- (while (setq ltlist (tblnext "LTYPE"))
- D% y+ e4 V5 t- ]8 |4 a - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
) U7 g7 c+ @% z" ] - (progn
2 ?# a: `5 z$ P' O9 ^, z i - (setq ltname (cdr (assoc 2 ltlist)))' k+ \- M3 e5 n2 i$ x* k
- (setq ltnmlst (append ltnmlst (list ltname)))0 _. Y+ ~+ c* b f" P% G
- );progn1 R& W0 d v3 w O
- );if ) i) t3 Z6 {7 ]- o7 f$ m. C$ ^
- );while" G7 ]9 e4 j( a2 n. I% M# B
- (setq ltnmlst (acad_strlsort ltnmlst))
7 R( `# Z. j5 J. r& S0 o - (setq ltnmlst (append ltnmlst (list "")));add by rk
) V+ b/ s+ y/ x7 ^! Z6 b3 u+ m! ? - (foreach ltname ltnmlst
6 L. H: G. W( W5 _& S* H1 h - (setq ltlist (tblsearch "LTYPE" ltname))
( g, f A0 J8 y' M$ `2 _ - (if (= ltname "CONTINUOUS")/ D3 v8 ?6 P0 ^$ D/ B
- (setq mdashlist (append mdashlist (list "CONT")))
+ R' C. ^' [+ x: Q5 F, b - (setq mdashlist
6 ?/ Y. h; o5 g - (append mdashlist (list (add-mdash ltlist)))
m6 S/ g$ y. s1 s$ v - )
! o$ T) _/ T. T* _ - )
0 q# |, r/ ^/ n( ? - )8 y% y5 {5 m9 @& r
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
* {! }' q: v3 C+ h7 @ - (setq mdashlist (cons nil mdashlist))
3 F5 l/ f8 }. J/ b! W4 W - (setq ltnmlst (cons "BYLAYER" ltnmlst))# f. a" _/ I# I% v- I* F( H/ Y1 ^
- (setq mdashlist (cons nil mdashlist)); ~% P+ _% S5 J. h
- )# U$ `1 v1 d3 X& Y7 Y) a+ w
- ;;+ u+ C2 B, n$ b; I
- ;; Get all the group code 49 values for a linetype and put them in a list
& Z4 k# Y% \2 g; b: a; P$ P0 W - ;; (pen-up, pen-down info)
5 i1 {0 n3 O2 N6 c - ;;
. i3 Y6 T V/ p0 B! Y: w' w$ I - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
$ m6 @7 a4 C# ]: m9 T% N - (setq dashlist nil)" d+ {* T8 S/ k4 ]6 g0 x$ \
- (while (setq assoclist (car ltlist1))6 _' Z- [# K4 Z& m; _9 q! [9 |
- (if (= (car assoclist) 49)$ q4 a/ Z% R& J: n# z
- (progn
7 q4 d% f8 q. p' k" B - (setq dashsize (cdr assoclist))6 I! U" w; t; N: ~/ o9 D
- (setq dashlist (cons dashsize dashlist))8 x- ~9 T! [9 \5 s; v
- )# T. u+ n1 u- G8 c) t* j7 v5 f+ t+ {
- )- ] E$ \, c9 m
- (setq ltlist1 (cdr ltlist1))
" y( A, m w8 }' k5 |# R5 x - )9 _" J) k, v; v0 }" o M# I
- (setq dashlist (reverse dashlist))
: Y1 s( l' n: ?6 i - )
2 ^# k, T+ s& ~* C' ~ - ;;
9 ]9 d# S; E! s2 h. |/ P0 h - ;; Color a tile, draw linetype, and draw a border around it
" B& N1 Y6 P C- | - ;;% S' T- m2 F$ U, k0 U% `
- (defun col_tile (tile color patlist / x y)
1 E9 ~' ~4 G$ _$ d" i7 D5 M2 a+ X( n - (setq x (dimx_tile tile))- N4 _- y6 @* u4 a. Q) L
- (setq y (dimy_tile tile))
. O7 I6 w- Y7 z0 y- s# e6 p+ v/ g) A - (start_image tile)
9 B( X. Q$ ^" a- r# k: b2 p4 ` - (fill_image 0 0 x y color)
! Q3 J' B5 \- e+ k( u+ t$ D, X1 ^ - (if (= color 7)
9 s2 ?" Z6 N! D5 _" W$ ]( S1 m( y - (progn4 X0 L/ W) B$ z/ V# G" z, O
- (if patlist (drawpattern x (/ y 2) patlist 0))
# f \& O9 j: N" k- ]# P - (tile_rect 0 0 x y 0)0 k0 B4 d H4 Q; l
- )
4 Z v! l, ]) n" _3 b- K p7 n - (progn
* S! @. @6 I; Q. j8 x8 D7 C* w - (if patlist (drawpattern x (/ y 2) patlist 7))5 Z! _/ D @( A, z1 u
- (tile_rect 0 0 x y 7)0 G3 ?0 `7 F' F
- )# d% H- P, A) l# j1 F. ?9 r
- ), I8 U8 K1 l+ n/ ~% q+ x
- (end_image)
0 X" R9 \" Z6 `9 B7 E - )6 H6 s, P9 K% d7 g
- ;;
9 H. [3 W5 Y5 J. J% R; K7 o - ;; Draw a border around a tile% {' N' e3 X; s7 X7 E& L
- ;;, A0 ]% x8 }8 |
- (defun tile_rect (x1 y1 x2 y2 color)$ O. F+ J& z; B) m
- (setq x2 (- x2 1))
) v+ v8 H, O4 G2 |0 H8 `6 a - (setq y2 (- y2 1))
% m" f, e: m Y" J$ T# U( G - (vector_image x1 y1 x2 y1 color)$ u' d- z/ x/ a- i2 G! Y
- (vector_image x2 y1 x2 y2 color)
" t$ R2 ?6 V, V6 R- A0 L - (vector_image x2 y2 x1 y2 color)0 |4 ?% E, o1 `3 C! o6 }0 F/ l, f
- (vector_image x1 y2 x1 y1 color)
; {: u" W/ a6 R$ I1 \ - )$ [2 a3 {. v/ c, D9 b! \* @
- ;;
0 \8 W/ `% }4 n: }: h - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image" G2 U7 o4 G( M5 j; M
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
0 C+ t1 a0 B' P - ;; list of numbers that define the linetype, and color is the color of the* x8 W5 e* K# x% {2 ]1 e$ g
- ;; tile.
% N6 x: }. W2 r: n: r - ;;
" h3 P7 e# b& c8 Q* ^ - (defun drawpattern (boxlength y2 pattern color / x1 x2
- \( b1 P7 h5 @8 R% U& o% A - patlist dash)$ h1 U( m6 T6 f% h% O1 Z
- (setq x1 0 x2 0)
: }; ?2 |8 {- m0 O q% @ - (setq patlist pattern)
. r9 G8 w. t+ R8 q1 O6 u - (setq fx 30)
* _( V/ L+ M# E4 ^ h7 s. v - (if (= patlist "CONT")
% V# b- L% ]* A5 T5 z - (progn
! \9 h; [& h) E1 ?/ ] - (setq dash boxlength)
1 w: r1 S9 p# i; `) [! h2 J! N3 { - (vi)
1 F' k' k2 b* G/ ]# ?; d3 x - (setq x1 boxlength)) S* I7 I- n F" h
- )
/ u" U1 h$ R4 t/ a& D - (foreach dash patlist! Q/ d# E# U6 l2 K
- (if (> (abs dash) 2.5)* [. {: C' \, K4 }, \: J
- (setq fx 2)
. V V1 s, d" u& I: F* t, ^ - )
7 i5 F& f+ s" O1 k& q6 R - )4 D( N) Z2 ?+ p1 z
- )
; D" G1 @" V3 A$ v5 d8 K8 }. L - (while (< x1 boxlength)1 c3 [5 [* h- t1 b* C3 m# m
- (if (setq dash (car patlist))6 [( }8 b! w5 _6 C
- (progn1 ~% q* y2 Z* \$ N
- (setq dash (fix (* fx dash)))
* ^9 [ Y V: j: r6 H - (cond4 M$ f+ x3 z5 k% `5 f" G9 V
- ((= dash 0)
: i" r, R# {7 v8 }4 I - (setq dash 1)
: V) _0 j8 w& A - (vi)
+ H' w6 a6 ]7 p. }9 H, z: B - )
& l v$ g! g; ?1 E& ^; }( l - ((> dash 0)8 A: I; z% k$ h! s
- (vi). y5 D' y# r' m" P7 w
- )
4 r, U4 x% t) }4 _8 |! j - (T
3 }+ a M' R% ^ u - (if (< (abs dash) 2) (setq dash 2))
8 g! z7 F1 o3 X( `4 `8 f8 Z+ ~ - (setq x2 (+ x2 (abs dash)))
/ s: @! o3 x T - )
1 E% J, j' K, d9 g - )
$ z6 }5 L. l/ W. z- ?# o# Q - (setq patlist (cdr patlist))- r; k* [' L/ R0 X
- (setq x1 x2)
; s6 ?1 o5 i. T k: l - )
: d' r6 _; l! ]- z. t6 J% | - (setq patlist pattern)" b) j) D( T& R3 {6 A$ u+ |6 s, T
- )! K% p9 R6 n+ S& y' |: P
- )
6 Y) l- |* p7 }0 X( W - )4 y2 @) R+ t$ T
- ;;* z2 f% _. [+ f( H4 a. O3 C
- ;; Draw a dash or dot in image tile l- A3 O8 W1 k4 N Y& P# x3 M
- ;;- q- d S9 `! s9 ]
- (defun vi ()1 l( L( O, l% H' x
- (setq x2 (+ x2 dash))4 ~- R7 f- a5 Z* D0 F, }
- (vector_image x1 y2 x2 y2 color)6 R, X3 a3 |$ E. t
- )
& Y* h* Z7 u7 ]
) L0 N0 f, [5 f( e8 Y- ;; This function takes a selection and returns a list of the color,
4 C9 f* m" N$ f) y9 @# Y# \ - ;; linetype, layer, linetype scale, and thickness properties that* S$ a3 P! m* o. n. F
- ;; are common to every entities in the selection set - (color3 L* q/ |$ ? s% q. K+ F
- ;; linetype layer thickness). If all entities do not share the same) l. V" n: o* b: v) q& Y
- ;; property value it returns "Varies" in place of the property/ `2 t/ D- r: O0 x. i
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
9 ?0 q: Z' ^" O. c! n$ [2 ~ - ;; The last item in the return list is an integer flag for the
$ t8 F: G0 N* j8 L% O7 A - ;; homegenity of the selection-set object types.* t$ ~4 W& ^9 S. x: s
- ;; 1 = All polylines
# s, E4 R4 d- A/ y - ;; 2 = All text or mtext or attdef, or a combination of the three( S5 L' [5 D% F' k+ B; J% I
- ;; -1 = Any other mix of objects5 `6 u7 X0 k9 k5 P1 i) s
# f% l2 x8 X2 E0 f- (defun getprops (selset / sslen elist color ltype layer ltscale thickness# ~ ]/ S3 v7 U. T0 v4 A
- width elevation height go ctr ' {. t# T/ q# c7 B5 u( a6 @- F
- eflag
; S; S0 H, L5 @* }# u - etype temp
! m6 M, a( N' U, @5 B4 Z - txt_ss ;;;;rk 11:24 AM 1/30/97
5 K1 w" C7 ]* D. O' W - tmp * m' A3 |. o- w" P2 y" Z8 Q' p& u
- poly_ss 2 }2 `; b& ~% ~- U0 y. g
- style; }' l( J6 F. ~9 X$ u W/ p. B
- )( r3 L* F' D8 @
- , V$ Q6 q" [! w2 [* C
- ; r0 f: q a3 w7 I4 o. B
- (setq sslen (sslength selset)
/ G$ x! p. f5 G; ` - elist (entget (ssname selset 0))" F+ [0 b- z7 q2 ?. v- b$ P" h
- etype (strcase (cdr (assoc 0 elist)))' U# I, y, a" H n7 S% h* P
- color (cdr (assoc 62 elist))4 ~: Y' ^8 T P$ f: X k k, L; \
- ltype (cdr (assoc 6 elist))- y- q2 Q; Y, K
- layer (cdr (assoc 8 elist))
0 }! d+ H* J) ^ - thickness (cdr (assoc 39 elist)); f3 R7 `( B4 J: f" }2 b# G
- ltscale (cdr (assoc 48 elist))
- M8 R& m, s0 P y+ U - );setq
: V, P2 G7 m* C5 H% }, W
, Z- S: |9 U5 t3 w0 t4 n2 m- R- (if (not color) (setq color 256)) a' @0 _) f2 P% h" i0 q+ J w
- (if (not ltype) (setq ltype "BYLAYER"))$ `3 P+ @8 N$ U8 x; z
- (if (not thickness) (setq thickness 0)); f* i- @; \: {9 q2 E! U; E
- (if (not ltscale) (setq ltscale 1))
; d! _7 `6 S2 j; h/ G
( ^: C! D0 o; N# G& D- (if (not width) (setq width ""))
+ \* J" L2 m: F: a; v - (if (not elevation) (setq elevation ""))
: o2 C3 b' G# F. S - (if (not height) (setq height ""))
1 E5 n- j: O3 q* d. b0 M - 7 i8 R4 \* G& E' o, z a9 h6 M
- (setq go T
- G4 D8 E. c7 n, v; _( z$ x - chk-col T
# |( |0 B& j# \* [' M; w4 ~2 J - chk-lt T 4 T/ W4 S* C* A, Y, N0 T9 T
- chk-lay T $ S- U) {( G2 y* w6 ~
- chk-lts T : {2 C4 _4 g* T, V% _
- chk-th T 3 k2 l4 [/ u7 ] Z0 I3 ~
- ctr 0
! V8 _) u, W% v4 |3 i6 m - );setq
; t+ h- c5 ^2 z - ; Z0 N" ?2 |- v/ A4 H! C4 X
- ;; Page through the selection set. When a property
( `0 x( a' L% G5 R; _: Y# D# y* Q2 J - ;; does not match, stop checking for that property.
, b/ \% C- e' S3 {0 P - ;; When the selection set is not homogenous, stop checking.
" a) g; T, ?, ?; j x - ;; If all properties vary and the set is not a type 12 v: E* i3 C" X' I N/ J
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging." Y5 t5 m5 w- x0 @1 r# v8 X6 I
0 s$ E+ J/ a7 U$ p- ;Lets set the eflag so we know if the selection set includes any . F4 N) Q* c Y/ X
- ;combination of polylines, lwpolylines, text, mtext or attdefs.
( U. q# Y/ z) W7 f- j8 i
B% U4 D$ x0 M4 V+ |4 l- d4 h- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97) x; |4 ?5 h. B9 q4 i
- (setq eflag 0)
; v( U( V! U7 t/ g4 q: G) e - (if (setq poly_ss " h. ~" \# l2 K; ?
- (ssget "P" (list '(0 . "*POLYLINE")6 L& Q; h6 q: @8 q' u
- '(-4 . "<AND") 5 H1 I6 c! i9 o) p
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")& E. m# ?/ u7 A5 T9 N' o0 x
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
% c/ h; [& v. q2 b. ~ - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
4 U1 v" B$ k( G9 c- w, x) q - '(-4 . "AND>") % ^ C, E7 P% z$ W# }: _) `6 q8 N" V
- );list; ?( s. i6 ]- F8 d+ \
- );ssget get 2d polylines (legacy and lw)
# ?4 s; ?/ N0 N/ `* l6 F) n - );setq' T& B' i* K) `) c% J9 Q; B9 x
- (progn
7 r6 |; W* J+ R6 ]# B* k - (setq eflag (+ eflag 1))+ T: f7 ?# L& V
- 8 `, X% E% H1 L4 J: T
- (setq tmp (entget (ssname poly_ss 0)));setq
3 B* g( V+ _2 I: d: s - " R+ ?$ ^ W2 i
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))9 {) p9 B% a, X2 o7 T
- (setq elevation (last (cdr (assoc 10 tmp))))+ ~3 M0 K% ~8 g" v& P' w
- (setq elevation (cdr (assoc 38 tmp)))1 w- ^5 a- }1 A
- );if
9 U' W( B& x5 y - (if (not elevation)
* \. @2 `3 Y- B: v2 m$ W, v - (setq elevation 0.0);setq( }9 u6 s2 N9 p8 @* [
- );if$ A% ?& e% A& M
- " V* c( w3 @5 D) a7 [
- (setq tmp (ssget "P" ! d: @5 d( ^5 k) p1 A/ v0 g5 g, {# T
- (list & A. P- B6 E9 n, ^$ ?( F6 _; v
- '(-4 . "<OR")
" @8 \! U( P* y* {1 S6 K5 S3 U - '(-4 . "<AND")
( ^' \+ m% f0 k5 o - '(0 . "LWPOLYLINE")4 N X( h" I4 k% ^* b- @5 d
- (cons 38 elevation)" r' A1 a+ k1 E6 i& S* @% ^
- '(-4 . "AND>")
) v) i6 J4 |! K9 Z' i9 f) I, P, D. N; S - '(-4 . "<AND")
; x7 U. G9 n1 e7 d8 K) l+ l5 o - '(0 . "POLYLINE"); f$ o1 [" s2 A; Z+ I
- '(-4 . "*,*,=")
) d& ~! i- M6 q% @: K - (cons 10 (list 1.0 1.0 elevation))
) }* Z% X) J4 z - '(-4 . "AND>") ; r% b; a$ |- m. z1 v2 P# _) {2 K. _
- '(-4 . "OR>")
6 y9 O! N" o8 d& f- j - );list
T+ ?, R# C2 q. b& p - );ssget) j$ Y3 [7 W3 h+ L! D, u
- );setq
D0 d- o) O! d' l. D1 P% @: e% V - 5 R8 U' t4 e: J8 j7 I; ?
- (if (and tmp
+ p/ ~6 z) ]- {, Q3 R4 o - (equal (sslength tmp) (sslength poly_ss))1 M1 U/ U, D0 P
- );and
Q5 R1 e- w: D* F8 N3 S0 \. X0 B - (setq elevation (ai_rtos elevation));setq
! e3 L3 U1 ~0 l. m5 ~ - (setq elevation "")
" y$ n% t" I1 ~3 k9 f, V - );if& A v' [7 l6 {, M$ n0 E
- ' [# E) O& ?. l W
- (setq width (pl_width_getter poly_ss));setq
5 G3 f: m; i1 z5 D* D7 z+ Y -
; o1 F/ c( b6 U1 M! J7 b - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!! A+ V8 }4 N+ |
- );if
% h! n7 S+ H G/ v+ h- x7 L - (command "_.select" selset "")
6 N" Y1 G, o# f - 4 H6 R* g* i& A* x* ^+ R/ _
- (if (setq txt_ss
) }$ M& ]8 N, G - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") ! F$ r2 g) F3 O u9 E
- (0 . "ATTDEF") (-4 . "OR>"))
% Y# Q/ R1 A7 L% Z$ t - )
4 _& U+ t0 c3 t N+ y* ` - );setq
3 A s- x/ l% X; h7 V" x8 c - (progn" ?, g, Y+ n) y
- (setq eflag (+ eflag 2))
5 i0 r5 ?6 O8 T9 X5 Q# o - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))9 R8 E$ g4 C& w6 l3 C0 i
- tmp (ssget "P" (list (cons 40 height))) ' ^0 v3 n9 e1 F% M( E
- );setq 1 @' u' d3 D1 }$ c* [. ]
- (if (and tmp0 D* z9 r* z/ U
- (equal (sslength txt_ss) (sslength tmp)) s2 | y7 U. N# I8 V
- );and
- z2 t* l% e ]! N$ l9 R - (setq height (ai_rtos height));setq ;@rk need to translate from float " k8 o" T$ r' {3 y+ m
- ;to string and back again easily, Y E w. x* ~
- (setq height "");setq else the height varies
5 Y% h4 o0 G4 f, { - );if
+ R) k' j$ I8 ~! l& Z2 {( i# \ - (command "_.select" txt_ss "")
7 S* r7 Y3 w( d d - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0)))) |* s, z# V ^$ b& {
- tmp (ssget "P" (list (cons 7 style))) , l ]0 g j4 Q$ ~% L( E4 t
- );setq
( y+ R% N0 T% ~# ^- d1 ^ - (if (not (and tmp. ?* k: p; I1 e, z2 q; c( y+ n
- (equal (sslength txt_ss) (sslength tmp)) ; u6 l* S3 J, c
- );and' a( a. E+ c, O' ]
- );not
9 y! i; t+ M) p3 I - (setq style "");setq then the style varies ; B& a4 N5 y7 @7 f ^$ L% c' O9 _
- );if$ t7 [! K3 J+ g1 g$ Q4 l, b
- );progn the text type objects are in the selection set
7 Z/ P! F! s" z. P& M6 ]$ M: L - );if+ X- d) L% f k7 k1 v8 ?( p; ~
- (command "_.select" selset "")* s# }( d. p& K$ Z
-
* h& C4 d) B; b" M - (while (and (> sslen ctr)
( N1 ?: y j! q - go
3 }9 o" M7 J$ o2 m4 y# j/ A - );and
+ b' L, B" T1 d9 h; f1 _ - (setq elist (entget (setq en (ssname selset ctr))))( f( ~; D+ z* l: b7 {: x, Z) e
) L4 U: S* Z" N) |+ f- y9 n- (if chk-col (match-col))
1 I% o, A5 g' F9 |, E2 z0 W' k - (if chk-lt (match-lt))6 G0 `! n- r" W4 d% e! w3 A
- (if chk-lay (match-lay))
; s% _) \' `2 e, r4 O - (if chk-lts (match-lts))- ?( Q7 s9 a' D% {/ D9 c
- (if chk-th (match-th))
6 \5 g4 a8 @, f2 y; X. d4 u0 ?( ` - " U4 `0 |4 q1 \( h2 L/ [
- ;(if chk-etype (match-etype))
$ U+ \& D: ?2 E% X9 T1 Y( J
|1 _. ]% M2 {+ E6 i- (setq ctr (1+ ctr))$ z4 |6 }. v) R1 w6 K+ Q
- (if (and (not chk-col)
+ o/ t1 H0 r$ K- m* e - (not chk-lt)
- t- s# x3 |7 }. U. [5 a- f) R - (not chk-lay)4 [" r0 T( R0 `% n% f
- (not chk-lts)& E; G+ L8 P. c8 P* J) K9 a$ u
- (not chk-th)
1 L( ~. N, R$ |& P: z8 ] - ;(not chk-etype)
1 S: i: j" C- j( n - );and( w$ Q# Q3 L8 Z8 y2 F
- (setq go nil)' B3 c5 i% @6 x$ y* L
- );if
1 P; j2 @8 D8 \2 G( i: C1 g - );while
9 N v- G# P4 y: g% W: C- ^ - ) o" H8 ~' u9 {1 J
- (list color ltype layer thickness ltscale
- X) J2 O- I, b# R$ t K, Y# C - width elevation height eflag
8 G: [. ~3 t$ b6 A4 N& d& G/ m- t) N - style poly_ss txt_ss
8 { `% w% |/ M2 P0 |8 K - )
9 `9 d. i+ k3 T9 R9 k6 F - );defun getprops
- C; ?! Q9 c, ? p7 d
4 E% e7 w2 P- B5 ^( k- ; This is a speedy little routine to tell whether the polylines in 5 I4 u% S" f: d4 J$ \" ^2 S
- ;the selection set argument are of varying width or a constant value.
6 I9 x0 o8 l! D' Q# u - ;Looping through the vertex's has to be done for old polylines when 0 t* u7 }5 H/ Q- ^
- ;the polyline header has width values of 0.0. Basically, in this case, % I( A, V( p) R5 x
- ;information in the polyline entity header is abmiguous. Width values i7 x5 t" ]' i. C; Q
- ;of 0.0 in the header entity could mean the polyline has a constant
4 ~: y- }# P" ]7 N$ N# T - ;width of 0.0 or it could mean that the polyline has vertex's of varying 3 I I# ^2 B0 h4 n/ g5 p
- ;width.2 q8 |; O6 v# _7 e
- ;
0 r& m% y+ K2 S* O9 A- \. q- n - ; It's all in wrist. Err a.., I mean it's all in the 'if'
* j' [& u2 N8 U2 W4 I - ;;& h" @9 Y4 o* E3 N N* E6 T) p
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
$ C, T2 q- F9 _( I, @
( H' Q: `6 I% K; M- (if ss
; ?8 X/ Z6 e- e% S - (command "_.select" ss "")
; F1 F3 t7 K& o: m/ j5 _ - );if
8 w6 L5 D5 F2 Z2 ^1 ~ - (setq width ""
$ c" z, d. ~, M' h - flag nil8 n) W2 p Z: f/ F/ ]1 i$ V! C
- flag2 nil$ I! P, @1 }- h6 o
- );setq
) k- n9 g; K# \' Y - (if (not
( s. Z& m0 h( v \7 h# j, [' O - (and ss2 T- A; D. o- T! P% G+ t
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
8 N5 p! w2 Y8 q# i7 o! C - (setq na (ssname ss2 0)' c7 c9 \/ q7 t- F& e n7 d& i2 S+ `
- width (cdr (assoc 43 (entget na)))
) }- d; C8 n! t3 ^6 u! P; ~ - );setq
2 ^* @; E' P* V3 j" ?2 R" n* ~ - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")5 p% Q8 y8 i8 U4 k1 Q% ]! [
- (cons 43 width)
/ C% l4 \$ d* F - );list
+ q3 v$ G. E4 v; y - );ssget. \ N* G5 c6 A# e- m
- );setq' M/ _" J# b1 A8 X
- (setq flag T) 9 y: h6 l0 a4 o* }9 e$ V( Y0 U1 D
- (equal (sslength ss2) (sslength ss3))
7 k; }! }9 K9 [/ J; }! `$ V - );and4 ~! u9 H# g3 q* x
- );not
- \2 I9 B2 `) p4 j, T) _! n - (progn
! e. e0 F& D; @$ x$ x; b - (if flag
/ ~+ S/ X3 d( e - (setq width nil)
$ m$ u$ m F3 d4 D4 w - );if+ y' [( o/ n4 W& j
- );progn
2 N4 Z+ f O- y7 p - );if ' Z. R7 G0 `" F- R: i$ h
-
& z/ L$ A. s* L! K7 S" d* }, o - (if (not ; B/ ^: W' Y1 u% s7 M9 P. v6 f3 D4 N
- (and
+ X6 Z% K: A" c8 \! i - ss
* C7 E/ v+ m9 T- m; ^* F - (progn (command "_.select" ss "") ' V. v7 a( `. a7 p
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
4 y1 E+ q( _0 M w/ s3 _ - ) 7 a' ^. u' X( j# Y: m4 R" a f7 |
- (setq na (ssname ss2 0)- c) R: w$ X) V$ x3 r9 x: s
- e1 (entget na)
! a2 _ U( A, e$ h. f - width_a (cdr (assoc 40 e1))& j: _, B1 D; H% q
- width_b (cdr (assoc 41 e1))+ B/ q' W* }" S; T3 G3 N
- );setq
8 [8 O3 b. x4 j - (equal width_a width_b)
6 f, v7 ]" s$ U* }6 m% w - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")2 p/ d0 ~# ?$ z) n4 C- I
- (cons 40 width_a)
4 y$ m3 a4 }+ _/ E2 t0 { - (cons 41 width_b)
- k" D7 W, r0 a' d- e - );list# n" N" w0 X) E0 g2 `! n, [
- );ssget
4 R* ^( }# R" o7 ]6 o - );setq
1 b! u2 G. Y! |6 G0 i - (setq flag2 T)* |# ?- C$ ~- ~/ ~
- (equal (sslength ss2) (sslength ss3)): i* c+ G0 v7 W D4 a
- );and
+ q4 |5 S1 Z6 q6 A3 e! [. x - );not
( S4 N( Q* A, Q" ^' x' y }" a - (progn
7 q' g8 i1 B. l X - (if flag2$ c a5 X9 `$ q; `+ `
- (setq width nil);setq
9 y' [3 {. B' S0 J# {* ?9 g: P3 A - );if' q! }0 \4 Z, T& M3 J5 @8 p
- );progn then: L Z3 W- K2 I0 J2 @; m
- (progn& d9 {6 W2 M' }. H4 F; x7 [
- (if (or (equal width "")
$ U& H" Z% Q3 |! W$ Q - (not flag)
, G1 k2 K9 c0 C0 V2 r5 \, q - );or3 ^6 z+ ]8 g# e9 [
- (setq width width_a)
% C4 C+ T. S# A c - (progn0 N4 s# Z I2 h
- (if (not (equal width width_a))
9 g& {) t% }; t# Q' B) K" ~+ ` - (setq width "")
. d7 K# a" d5 B6 e: o3 w* A - );if
$ K) O% o0 Y* }% B) J - );progn
) a& ]1 s8 \$ ^, h& N {; `9 o - );if
' ^4 j+ }6 f0 G0 q! {8 ^ - );progn
9 e2 P' g! ?! D7 n* S, N - );if y c4 R6 f0 l5 Z c
- ) r J' q# \4 H h1 ~3 e
! _# m1 Q: }" Q. X. Q1 N g9 x- ;now for the special handling for old polylines+ \) A! M* D( |; i6 V5 ~2 k
- (if (and width
( R! R6 d) ]; O% B2 V - (equal width 0.0)9 O: e9 ] }7 }4 u S( o
- flag2; {/ p N* A: ~
- );and
. W2 D; ]& Y, K7 h T6 B - (progn
; Y$ N; d; i( u+ W' V1 S6 t - % l* l$ y3 L; M
- (setq n 0);setq. J- t2 r/ y4 L( K% ~0 b
- (while (and (equal width 0.0)3 I' X$ }& W& J3 \
- (< n (sslength ss3))0 Y9 g3 |) o) I# X6 M2 H; u
- );and
: k1 `. r2 \/ K0 G - (setq flag nil6 z$ m- g* k3 e" N) Q9 ~
- na (ssname ss3 n)
3 C6 G/ F8 A% h7 T3 H - na (entnext na)
" K. @+ U; a- b/ D9 n+ g; a) z - e1 (entget na)/ r1 E0 C" @9 n. P2 B& i
- );setq
: o" U! U/ k, D; B4 y - (while (not flag)
! R6 [1 f8 C, [, w$ T8 ` - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")* Q8 ^0 N$ z8 M: K6 i0 O# I' M
- (not (equal (cdr (assoc 40 e1)) 0.0))) y( V; P- Q) W7 D- `6 t2 J
- (not (equal (cdr (assoc 41 e1)) 0.0)): u: |: X$ A3 N% K6 l6 r* w0 V1 B
- );or2 x& j+ Q% l5 Y# [
- (progn
4 ^& u) P6 N" B& m7 b7 |, y: L5 G - (setq flag T);
( b$ m% ?# y C* E, z K' F0 y - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
2 B9 f; a. h$ f7 C h3 p4 L - (setq width nil)
3 q; h2 j; w7 P" n, Y/ ] - );if
5 [; V6 [; P+ _. B% F, b1 O [ - );progn then jump out of the loop: f# w- e4 R+ L" q. M! Q L
- (setq na (entnext na)( N$ i, R9 q7 j3 a' d) P
- e1 (entget na)- \0 H3 b- L# h) a
- );setq
$ C7 B! g% m% X r5 @. Y* f - );if
# v* s2 F& N4 O. m- G* ] - );while
% E5 h- D8 N. m, u2 [ - (setq n (+ n 1));setq ! f# |1 {5 o s& M! ~$ E. ?6 ?
- );while
" T4 a& G- w& m q8 h -
" N5 K! m! @+ v2 q y; ?% r - );progn then it's a legacy
q, I0 u# e* M! Z& i/ e; M - );if ;legacy polylines that may have varying widths
5 y; {# l2 s1 g' {
0 e0 |3 c; v) w( X/ F- (if (not width)4 t2 Y9 W* `2 ?9 f( k0 @' z; b! t
- (setq width "");setq# q7 q( ]; t5 B4 v3 T- z
- );if
# ~; X: \$ \0 S: J( @ ^ - (if (not (equal 'STR (type width)))" P7 x3 n) N- k+ F2 y$ A
- (setq width (ai_rtos width));setq * F9 _/ B1 {& U2 b0 Q
- );if ! D1 X2 Y+ ^& A, M% ]8 S
- $ v/ L E4 e9 b2 B
- width
; W3 W- D* j4 F, l. p' d K0 t - );defun pl_width_getter! ]' k h! N! w: g+ i5 N2 y% c6 _
- x1 l, n5 ]% A! B( e4 v# b
- 2 \6 ] V' s6 G! |
- (defun match-col (/ ncolor)
/ v/ E7 [8 d y4 n0 a - (setq ncolor (cdr (assoc 62 elist)))
9 t& W/ O: `$ b! W/ J - (if (not ncolor) (setq ncolor 256))0 {9 l+ g3 W7 S& k; v3 K
- (if (/= color ncolor)' i! ~: H$ u8 ` l* p# u
- (progn
9 _3 P4 W9 b+ ^: G - (setq chk-col nil)$ w" g$ W6 F+ r$ _) |* w
- (setq color nil)4 k H | Z7 n$ i0 R
- )
+ c% W9 [6 C* X9 X - )" ]/ l) u6 W* W0 E2 H6 O5 ^( l" Q
- )
8 z# g+ C1 Z7 _( r% b2 n: V
1 w2 x4 r: s# [! P2 z- (defun match-lt (/ nltype)
! Z( N* v. \. U4 A6 H/ l - (setq nltype (cdr (assoc 6 elist)))
; ~" ~5 a1 A- `' E) ? P - (if (not nltype) (setq nltype "BYLAYER"))
8 u% E0 g/ j2 I8 l8 F% b5 Q) G - (if (/= ltype nltype)
' S8 N3 A1 F, K- c - (progn
; b8 `8 K4 p3 P. U3 `" ?' D' p" f - (setq chk-lt nil)) S7 W6 c! ^8 j3 s/ E3 {+ B
- (setq ltype ;|MSG0|;"Varies")9 o' x, h2 x8 h! |- L
- ); g6 C: Q1 N7 E5 }4 M4 A' L
- )+ N W, [& r" E& f& R& w
- ). d8 e2 p0 j `0 ?' M0 [: f8 `8 M
- 1 Q4 y; a/ V' \9 r& |: {
- (defun match-lay (/ nlayer)
[' A9 c/ p( s' W - (setq nlayer (cdr (assoc 8 elist)))! Z: N; G: ] a0 K; P
- (if (/= layer nlayer)) o4 ~3 H, p) ~
- (progn
# z6 f8 M9 l1 @% h% f/ L: Y s, J - (setq chk-lay nil)
5 B5 o4 m* S) H5 d - (setq layer ;|MSG0|;"Varies")
! L1 i u2 w: T - )
. Q+ \/ Q4 Y1 e* o# N: _6 M8 a2 I; l - )
* R9 W& o# Y8 G0 u - )
* W. w. @$ I1 E6 V
+ [; g- I. m2 F0 G6 w$ J) Y- (defun match-th (/ nthickness)
: j8 v: i* Y9 N! Y9 l - (setq nthickness (cdr (assoc 39 elist)))
@! I3 m4 p" S& [) x - (if (not nthickness) (setq nthickness 0))4 M' w8 f4 c R
- (if (/= thickness nthickness)
# f: j) t4 h& W6 V - (progn: A5 ^" @+ ^( J0 m
- (setq chk-th nil)
* {+ R" Z% G" n, E) C- t: Q" H - (setq thickness ;|MSG0|;"Varies")$ o3 Z: D9 b" n) ]
- )
1 A* W. h' Z3 H' T - )8 L$ K' g( C1 g# N' b! s0 @
- )$ w K- s( o+ ]# h
- ! [5 [ d4 R9 k
- (defun match-lts (/ nltscale): L" E' ]! p/ x2 }1 Q
- (setq nltscale (cdr (assoc 48 elist)))( ^1 s4 I! I3 R3 a/ {/ U. x
- (if (not nltscale) (setq nltscale 1))0 N# r) }$ H& o
- (if (/= ltscale nltscale)
% D& I6 Q$ d# t9 I) J" {3 e5 ? - (progn
8 q# |5 ~3 q9 G" ], v - (setq chk-lts nil)8 S9 t: C7 S8 l
- (setq ltscale ;|MSG0|;"Varies")
$ D( V8 i0 u, R# D K - )+ \/ U2 \7 S5 ~: V2 b
- )$ B9 e2 J6 o3 b v1 u( i
- )- d! \; A; d) t+ a% a3 \
- - z( B2 p" J0 M- H$ @6 U
- ;;: o4 l8 q: B5 o
- ;; If an item is a member of the list, then return its index number, else
2 F b$ A5 g# `$ e8 W$ J, z* Y - ;; return nil.2 N" Z# b# C7 l) V! n* P
- ;;% r5 F0 N1 q" c/ T w% | _
- (defun getindex (item itemlist / m n)
) d7 H' X% `' y& ? - (setq n (length itemlist))
- G/ F& O- h7 _' J* y% q+ | - (if (> (setq m (length (member item itemlist))) 0)! `9 j/ R3 g8 p" X0 Y, \: P* v
- (- n m)8 h `% e( Z0 ~% B
- nil8 |* A0 X+ }( l$ `( z6 w8 r. d
- )% K( o8 j8 m6 L5 ]& c& N
- )
' L1 f4 z+ ~! F - ;;
+ C+ L u! i/ T+ n5 X' Y - ;; This function is called if the linetype is set "BYLAYER". It finds the
' l2 I" B$ A& S5 p" s - ;; ltype of the layer so it can be displayed beside the linetype button.
$ z+ X0 T ?0 m6 _. v - ;;8 C. d$ f, x7 w- p* Q
- (defun bylayer_lt (/ layname layinfo ltype)0 l: }7 S4 J# F( i
- (if lay-idx
5 J. u* |5 I# ~- j- g6 _ - (progn
' }# A# |* P' A2 J% C( }, Q' e - (setq layname (nth lay-idx laynmlst))% @0 \* i" f* M' L/ A+ a, d }9 j/ o
- (setq layinfo (tblsearch "layer" layname))
! E( ^, v, M8 @% m/ P4 _ - (setq ltype (cdr (assoc 6 layinfo)))
5 P+ \# T, s4 s+ p - (strcat "BYLAYER" " (" ltype ")"). F- D' O7 A- U" \
- )- K9 b- L/ R8 T( B& r# `7 s, L
- "BYLAYER"4 y: C# f1 C$ H0 g
- )# p& |6 k9 s% [) x! Z+ ?
- )4 v' n2 o% i% p% j
- ;;
5 v* w6 `5 o9 e8 H8 r/ f/ T - ;; This function is called if the color is set "BYLAYER". It finds the7 X2 W. Z4 {3 I, ]2 @" x6 X
- ;; color of the layer so it can be displayed beside the color button.
3 q4 a2 }) T3 C& F* R3 j - ;;: M0 p4 h \7 h" a) m* r
- (defun bylayer_col (/ layname layinfo color)
2 D% i6 F! Y# C' z6 H7 o% E6 H0 q - (if lay-idx* W. p9 D8 G$ }( `2 N4 O+ `
- (progn) A* _3 b9 W7 t$ @
- (setq layname (nth lay-idx laynmlst))! x$ F- t7 {5 B
- (setq layinfo (tblsearch "layer" layname))
; D' r/ v; v# k, g1 W. [ - (setq color (abs (cdr (assoc 62 layinfo))))
}) P/ r* m& q* ^ - (setq cn color)
. y3 S; W. c, Z* G( c% Z - (strcat "BYLAYER" " (" (colorname color) ")")
+ W: M6 w' v* w& j" J5 }" c2 @5 ]$ @% t - ) B) J1 R# b2 t4 B/ R& \2 r
- (progn. E* [* t) F6 Q* W3 [
- (setq layname elayer)
: i0 W$ l* C! M5 O' ]3 y - (if (and (/= elayer "")* P) w+ H+ |/ z d
- (/= elayer "Varies")2 w7 W+ o6 K6 t$ P# e4 x
- );and2 }4 L, M! c1 i: L1 @' w$ y
- (progn
$ F$ ^! h( F4 E - (setq layinfo (tblsearch "layer" elayer))
0 S* Z @5 l5 [# L - (setq color (abs (cdr (assoc 62 layinfo))))
+ s5 |) e; P5 x5 |; f8 p, r% z _ t - (setq cn color)
b, |5 @5 a7 @. W8 s" F - (strcat "BYLAYER" " (" (colorname color) ")")6 [7 ]: c- H3 A
- )
6 n2 v. g3 M' y( F" V j! c1 J - (progn% m y& Q$ c* G, j1 O+ t% |
- (setq cn 0)
! y; a+ l# o) L3 J - "BYLAYER"
) ^2 t! T* A/ c8 Y - )2 ?4 o/ q. H: @! s$ }! T7 z
- );if
" u1 t% l2 ?1 r0 O - );progn
% v2 g+ ]# `6 O5 `9 [" z. o - );if/ f. k M* o$ q+ t
- )# r% {( [/ _7 R" y5 x" y
- ;;+ K6 G/ w5 U4 |. Z0 u
- ;; If there is no error message, then close the dialogue
- `/ T% E" w2 t; r - ;;
& @6 A2 x1 N8 i) D - ;; If there is an error message, then set focus to the tile
4 R a g- H; T6 i - ;; that's associated with the error message.
. d3 S& E8 i) D, L! r7 A - ;;/ W+ C; O( Y9 Q! w( X, W
- (defun test-ok ( / errtile)
' b9 y! k) T% z - (setq errtile (get_tile "error"))$ R& G6 u4 w. b L7 J- m
- (cond
; s8 c1 r6 z$ ?2 B; x$ m - ( (= errtile ""): s( {; i# S0 B5 S0 _
- (done_dialog 1))" q7 Y3 j% `; I6 n% S" _+ E$ V
- ( (= errtile "Invalid thickness.")/ K9 E1 N1 S/ L4 h# V+ l& ^
- (mode_tile "eb_thickness" 2))
4 M4 h! n7 \+ }% i+ b - )
+ G* A$ g M2 D; e5 k - )* x! _5 a# d- Z, P+ a5 g
- ;;$ |2 @ X. v# |& n0 y6 o# y+ G# V
- ;; OK in main dialogue.2 _, P ~+ Y3 \9 m5 v1 a/ W0 d
- ;;
$ c8 S1 u( [# b( {/ v9 J, l" E - (defun test-main-ok ( / flag)8 H% R5 \" b* D( j. B
- (setq flag T) ) c- @3 F& a3 j
- (if (not (or (distof (get_tile "eb_thickness"))' K+ m) q2 f- `/ c7 {
- (= "" (get_tile "eb_thickness"))5 ~) v0 j4 _, m s2 g$ F) m! \7 P
- );or, a+ c5 p/ P' z
- );not
/ O4 L* |1 @5 b7 W - (progn
, W5 `0 T) y' ]" T" O# p - (set_tile "error" "Invalid thickness.")
9 F. E' N$ E) J1 [! G% R# u - (mode_tile "eb_thickness" 2)
7 E: a, ] o3 f6 I - (setq flag nil);setq; X) N( E, O. ~* F7 o# | S
- );progn& a' Q/ F, e) ?* g9 C, h
- );if
8 c; Q s f. F4 S2 H% M - (if (and flag
`# x9 o2 ^2 s/ T3 _% e7 W0 O - (not (or (< 0 (distof (get_tile "eb_ltscale")))
* c* r& Z) E0 h( ?/ @# x: r4 n, B - (= "" (get_tile "eb_ltscale")); T, @ j& m0 `& x6 ?2 E
- );or ) @( Q k2 b3 d# C/ u1 K: I5 t
- );not
3 n1 V; J0 K6 S# c7 O6 ]' P0 [ - );and 3 M2 Q; J) b. C% i
- (progn0 D+ m7 F1 t( J$ Y8 B
- (set_tile "error" "Invalid ltscale.")
# R6 E# e* K6 y Y* g - (mode_tile "eb_ltscale" 2)
9 ^. x# K% p* N - (setq flag nil); ( T9 q% J. X: |
- );progn then' l G) k4 h& G! Y9 D/ B4 g5 P
- );if2 U% j; D/ o4 j
- (if (and flag
2 Q G( O0 |4 A7 D/ w4 t - ; Don't test the tile's value unless it's enabled.
& U7 m# f) P- V - ; We're not set up for the display-only value
1 e+ r3 }! o( b8 q - ; of "" here in the error handler.8 a7 Z r' l! c7 Q
- (= 2 (logand 2 eflag))
I4 ]5 H2 ~* q+ ?0 [ - (not (or (< 0 (distof (get_tile "text_hgt")))
3 H& ~/ K5 E. z { - (= "" (get_tile "text_hgt"))" j: l, e! m2 M' w" X' d: r. i
- );or
. s* c# B' _2 n3 p8 l/ u' ` - );not( Q# s1 I2 O! k+ O, i* G
- );and
/ F$ n& Q1 w$ b/ I - (progn; g: _1 l8 m* Q* u/ V) w# k. T" u
- (set_tile "error" "Invalid height.")
0 Y; j! V6 H# S6 o$ M; v: q. t; a - (mode_tile "text_hgt" 2)
+ C- s3 F7 u; c4 v0 v - (setq flag nil);& a% J+ b n% S! m+ [( Q
- );progn then
; R! a5 Q' T1 z, N: H - );if
& W- u3 n5 D; Z1 `& Z+ u* I - (if (and flag
2 L; t. m7 ^' S- `6 ` - (= 1 (logand 1 eflag)); n+ d5 i9 Z8 t. b0 n( k: @
- (not (or (<= 0 (distof (get_tile "poly_wid")))+ F& P& k" E; f# }
- (= "" (get_tile "poly_wid"))5 v4 y$ V9 `( n* }, s. o
- );or' b6 n. ~7 c/ {2 l- M
- );not
/ H+ P3 p9 R a% h o; U, n1 W - );and* q% _1 h$ x+ Z! w! h
- (progn; S1 S5 V9 f7 u; P) Y! h! k
- (set_tile "error" "Invalid width.")
1 h9 Q6 d& W* J3 X% Q" y# f - (mode_tile "poly_wid" 2)( ^0 r5 j0 D M# z) X
- (setq flag nil); u4 k: u4 P2 V2 S6 T
- );progn then$ f. r) Y5 `3 r2 s( z. w
- );if
: P4 P1 f4 B& h# E - (if (and flag2 X7 Z4 {9 ^+ s2 ~7 C3 W
- (= 1 (logand 1 eflag)); ]0 w" \! h7 N/ z
- (not (or (distof (get_tile "poly_elev"))
* N' s+ Z% w* H9 v t* _7 l - (= "" (get_tile "poly_elev"))
# `/ z& V! ~% U/ q - );or
& r0 ]3 o( V- Q" B - );not
+ a5 Z6 ?0 Z% y6 x" w - );and2 t5 b% [7 N+ h& q0 A5 N% g. E- j
- (progn" l( F: w9 q2 }, d) V/ Z7 ^1 W
- (set_tile "error" "Invalid elevation.")
! x; f6 ?8 C; Z) w2 c$ O! t - (mode_tile "poly_elev" 2)# ?5 ? g& K' z( ^( x
- (setq flag nil) m. g/ Z3 u2 w B; B& X
- );progn then: l! e* I, Z8 K- L+ {% O! h: m! v
- );if ' g, Z& i( m; s V! c9 _% x
- (if flag ! \! ?- O$ k( u
- (done_dialog 1)
$ V1 }/ H; `, d7 a1 N$ c8 ^+ u7 M - );if
2 `8 Y. |: y4 f& V3 W- q% J - );defun test-main-ok, \' f. D! _$ z1 T- t6 g
- . ]/ \2 U1 |6 U6 ^1 }
- ;;
& z& b: y. \$ F7 Z1 A8 i - ;; A color function used by getlayer.$ S% b: O. g+ Q! p4 B+ k. C
- ;;
* }; U2 a2 \% G - (defun colorname (colnum)
2 o6 C! r: K! v4 ?( w4 [9 g) D- I - (setq cn (abs colnum))) s0 K& r" H8 g
- (cond ((= cn 1) "red")$ H* E' b' Y; k2 u# f9 c, ?
- ((= cn 2) "yellow")0 n. o. u9 l9 N9 y
- ((= cn 3) "green")
: n. b; G- k* @0 [8 _: l - ((= cn 4) "cyan")" D2 q4 I7 y- O
- ((= cn 5) "blue")
5 z6 @# s) N, \+ H0 j - ((= cn 6) "magenta")) `/ [2 T# U; k. b
- ((= cn 7) "white")* f0 J4 N* F" N5 x
- (T (itoa cn))- w* s+ Z# x4 B: B
- )
7 Q0 x! j' k8 Z6 O2 b - );defun
* {; \ s4 M1 r6 `! U+ D - . a4 ^- v$ S) W6 S( Z
- ;;; Construct layer and ltype lists and initialize all
4 v& y2 C! j T5 r - ;;; program variables:
/ s0 a! T4 }9 }+ p! H' v- `- Q - 7 {& v; }5 D8 e0 \8 A! F, |
- ; (makelaylists) ; layer list - laynmlst
: m9 D* d; N" \8 T - % _0 i9 X/ f) |6 i& b
- 1 {% y' f6 p! p! y& V4 j; L/ J9 [
- (makeltlists) ; linetype lists - ltnmlst, mdashlist6 C6 k0 j* J8 M* }+ M# `0 K; A
1 ~& U. x- k: `+ A% }0 p- ;; Find the property values of the selection set.
1 Q- D& {) r8 d: i" @ - ;; (getprops ss) returns a list of properties from
' E7 O! X5 p, V" g/ ?, h- f - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH)./ f1 s# }4 D0 ]( `
- * U8 Z" c4 I6 s% w
- (setq proplist (getprops ss));@rk interesting things happen here
# Z7 W. z3 \5 f7 ~; U
/ [ X( F" P" E) u: ^- (setq$ y4 X6 j; }- D' N7 m, x4 [
- ecolor (car proplist)
0 s$ @3 |$ ~5 N& k2 t+ c% \3 g c - eltype (nth 1 proplist)
( {: k8 N i0 c. z# ^: m - elayer (nth 2 proplist)# e# Q3 x/ [1 o. }% c
- ethickness (nth 3 proplist)+ v6 g+ `$ m& w/ s# [
- eltscale (nth 4 proplist)
8 t1 q% b! a0 T- r h$ z' `! Y - ewidth (nth 5 proplist)+ x# g P5 }" @, D ]
- eelevation (nth 6 proplist)7 H7 T! f# `. c+ A+ g6 [
- eheight (nth 7 proplist)
: w; y9 C* Y& v( h0 | - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
( J3 _- U t- B - eflag (nth 8 proplist). R9 H! J v8 |5 o2 J+ T% r/ c. |
- estyle (nth 9 proplist)
( H( s6 ^7 Y2 O' {* D6 B& A - poly_ss (nth 10 proplist)+ S; `$ J5 n& T. E' s
- txt_ss (nth 11 proplist) p. x0 D* P/ q7 [; a
- );setq
0 {# W: ]6 Y# c0 y - ( d f" ]( Q0 B" Y9 W
- ;; Find index of linetype, and layer lists- P; z' W \, Z1 s8 P. a
- (cond+ Z1 H) M# }% z5 x. ?( d
- ((= eltype "Varies") (setq lt-idx nil))* G( ]5 ^9 N6 k) ^3 E4 I7 c
- ((= eltype "BYLAYER") r* u( e; ?5 n) K+ G: t( B0 }
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))3 g2 P& k$ J8 @
- ((= eltype "BYBLOCK")" {0 N4 g- } n) V! Q! X! h
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
# F6 l+ J5 ^2 }6 r5 w* L5 B. | - (T (setq lt-idx (getindex eltype ltnmlst)))1 I1 h$ F+ r. W# @2 _# T; n! y
- )7 [- S3 Q$ o9 Y9 G3 k0 Y
- (if (= elayer "Varies")
) |( b3 J$ z! r$ l: b8 } z& I$ [2 N& m - (setq lay-idx nil)
. u2 m% I% ~2 O8 z. d8 F, V - (setq lay-idx (getindex elayer laynmlst)): L' A) F2 w2 ^# \8 R: e& m! s
- );if
9 I" \( f6 C: B! w+ T; l1 S6 e/ l) } - (if (= ethickness ""). P! r0 x5 W' R4 \2 N
- (setq ethickness nil)) ?" Y+ N. j; t9 @4 X P" d
- );if. l0 m$ q, D' V. f1 I% A1 T f2 Z
- (if (= eltscale "")
6 I8 y' f; ?& J- E - (setq eltscale nil)
' ]! |$ P6 Z: P6 G4 n) q5 Y0 k - );if' i1 X2 X( G# s: ~8 G# g! t
* z( ^, ^/ J5 ]- );defun ddchprop2_init ; end (ddchprop2_init)0 o/ S9 C; F& h$ {" z4 z3 Y4 ~5 e
5 ]5 F1 i& A! x" ^2 A0 U- ;;; (ddchprop2_select)( s, }5 Y% M5 J- k$ O" L# j, d
- ;;;
. j( Z3 }6 Y0 t6 } - ;;; Aquires selection set for DDCHPROP2, in one of three ways:
3 v1 K8 H* u" {/ d% S - ;;;
: X3 W4 K& ]& Z& \5 `# @3 L7 B - ;;; 1 - Autoselected.
! f! S' y n7 D& _4 ^ - ;;; 2 - Prompted for.6 |3 Z, P" S: [0 N! h
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )) @6 t6 L2 _" L9 ~
- ;;;3 |- U5 p, P1 @6 @! f9 l
- ;;; The (ddchprop2_select) function also sets the value of the1 J |$ I1 _( L f. l% e8 L
- ;;; global symbol AI_SELTYPE to one of the above three values to
# w3 O( n# T# m+ z o- c. W. u T; Q" j - ;;; indicate the method thru which the entity was aquired.. ^" q- P h9 v/ q2 K6 k: _( I
/ z I* I0 F9 Z; u. Q$ h+ e- 5 n; g5 R8 J7 v
- (defun ddchprop2_select ( / )
& _" ?3 a+ F4 l O; J - % M9 `1 V( H: n- D
-
3 }( Z8 M' D7 {# _ - ;returns only entities in ss that are in the current space. 7 k& u' J0 ?7 q, D, j5 W
- (defun ss_in_current_space ( ss / a cur_space ss2)3 j; t7 @! a9 I+ k& m
! e+ ]4 v* k$ c. [' J; s: }- (if ss9 u3 |) R! b1 d" e8 C
- (progn
* L/ t7 q6 U! q0 P; u+ P/ q0 F - (if (and (equal (getvar "tilemode") 0)
. D0 R1 Z: a) I8 E - (equal (getvar "cvport") 1) N/ q% m& W; Q8 c/ K
- );and
" Z8 t% |. \8 x+ @* u% I5 j$ O. f - (setq cur_space 1);then paper space is where we are.
9 ~. l' ~) V, P/ t! V! Q4 @- j - (setq cur_space 0);else model space.2 ~6 J; ]9 E" o h5 K) A! }
- );if9 p: N7 O. f2 G4 y# N, ? ?
- (command "_.select" ss "")
' | n9 r1 Y& p7 \& ` - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq( G' U& D. V0 ^. G
- (cond ;;;;;tell the user what's going on.) q* d) Q8 L6 V
- ((not ss2) (princ "\nNo objects found in current space."))
# R( ?2 k3 {% |" ^ - ((not (equal (sslength ss) (sslength ss2)))
& s& T" s0 ^' D R7 }1 m2 n - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))/ B- v, l! h7 f$ U2 X+ v
- " object(s) were not in current space."; R6 E6 @$ C8 s$ g8 v' F
- )3 O% ^# P, f0 N6 x' t/ e
- ) }4 N# J2 G6 f& y5 g
- )
0 j* M0 A4 n' \ - );cond 5 x; O @$ Q8 q% s) A
- );progn then
' w' y* J& S7 G' p - );if
7 ~- G9 z; b) C* }5 t4 M0 |/ S" G - ss2" B! B( z1 b5 V, J. n' J
- );defun ss_in_current_space
2 [/ \/ ^! C6 Z W- m o u' K - 0 Y0 w- q* l6 f6 c( Y3 `+ @- N
. J& X$ y6 h$ P, I5 c- ;;;begin the work of ddchprop2_select+ s* |/ x/ r5 F/ k9 f8 G( ]
-
, V, ~( o T8 F0 H - ;; temporarily restore original highlight setting.
4 q) [9 q8 w0 X3 E0 I! Z" U - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
8 b* u) S- E& S - (cond
; ] @* H& ?9 X) D& @0 h% n - ((and ss 6 D; q0 V: z. l/ ?' q6 \
- (eq (type ss) 'pickset)
@, k* T1 Z+ b5 c% ? - ) ; selection set passed to
% ]2 Y0 S7 y! W5 P2 P - (cond ; (ddchprop2) as argument7 W# M& T' [, ^
- ((not (zerop (sslength ss))) ; If not empty, then
! Y3 J0 U. v3 T' b0 c - (setq ai_seltype 3) ; then return pickset.' B# C+ b; ]7 w* M8 K
- (ai_return ss) n4 J, U% N& U
- ). j, \* V7 D4 D0 r! a
- );cond close
* M% F& m0 G( Q* v0 b0 L- ] }# j$ L; J - );cond #1) Y2 \5 J1 F) R3 R4 w g, i* X
- ((setq ss (ai_aselect))) ; Use current selection
8 U2 K. @- G/ a- N6 I6 a/ A - ; set or prompt for objects
6 e! H/ L% Y+ K1 E - (T (princ "\nNothing selected.")2 v8 j( C1 h& {+ c
- (ai_return nil)5 D/ c5 K d( q) C/ F
- )
% Q; u. L5 }9 A- O8 u3 Q - );cond close
1 M2 |9 }) P% y8 u - (b_restore_sysvars)
% G w+ ~4 D6 S0 U( [! o j& @
( a7 `3 Y8 r" C* M5 {$ X- ;(if ss
7 J! o/ d4 I3 Q5 |+ F0 W5 l+ F - ; (setq ss (ss_remove_locked ss))
! `6 o x8 C% Q6 A - ;);if
" X$ `2 T' f$ u - (if ss
) E7 q$ s5 X! v) t$ M2 i( E - (setq ss (ss_in_current_space ss)) * H& }& h2 b( t, h, E* M% _1 g
- );if" y! N6 w2 k4 k+ X+ a8 F# ~$ ~% {
' J# ~) Y# Y1 n1 C- ss3 W) B4 x4 a5 Z2 W9 Y
- );defun ddchprop2_select0 W- V- A/ F+ I% o! f3 c
- 2 K) F% f# l }, e- {9 g) A
4 W7 m' p: z1 ?2 P! g; e- ;;; Define command function.
$ L3 u# ~5 x" f# o - (defun C:CCH ()
# `7 z8 M; V0 y. q( ~, ?# }6 y - (ddchprop2 nil)- l/ v- g% j! k D4 x* L% D! W' Q
- (princ)( |6 L. r. w: c4 l
- );defun' U$ y& o. L! C/ m1 M. @0 v6 I
- 2 Q0 L# {& b( `3 q
- ! x: T0 ?, X _" _0 i
- ;;; Main program function - callable as a subroutine.7 M9 G3 b- o5 M) N
- ;;;
+ N1 R, o/ k5 ~* ] - ;;; (ddchprop2 <pickset> )& s0 X) V$ m0 I' d ~
- ;;;2 x& u8 `2 ?6 e" N# T3 |' m1 Z: J
- ;;; <pickset> is the selection set of objects to be changed., K h, l+ d, ?5 ~4 B
- ;;;3 m% |5 D4 w0 Z& K8 I* J* Q- d2 M! q- ]
- ;;; If <pickset> is nil, then the current selection set is
; }) [. T0 t: j! O- e - ;;; aquired, if one exists. Otherwise, the user is prompted" e0 F& b% {: M1 z m6 c3 \0 a
- ;;; to select the objects to be changed.8 V$ P) n' q* S2 m I# M I
- ;;;. y3 r0 @1 E0 s* O! m! Y
- ;;; Before (ddchprop2) can be called as a subroutine, it must) ]& R; P; n1 z; q* T% `
- ;;; be loaded first. It is up to the calling application to7 X% m1 I z7 S' p* s
- ;;; first determine this, and load it if necessary.. _: |# e* @+ z; A+ t- W: R7 k5 e3 _
- / I( X3 p" Z3 K" c" V; D2 C h
- (defun ddchprop2 (ss /
' K; i; {3 X, S/ D2 K
0 j' ]- T+ Z+ L' a9 r$ t- a
) C# e$ r6 n$ Q: f! M - add-mdash4 K) Q( a% z8 r0 |% e6 U
- assoclist
( B# b3 V. A) j' z8 C5 I. S - bit-70* @7 j4 S) ?6 W9 |/ V/ s
- boxlength
6 T$ ~4 M2 d3 }# t7 \ - bylayer-lt% `; W! j/ z% Y3 ^$ j6 o. d1 n
- bylayer_col
# E, \0 J+ ^* j& z: ]1 W" h - bylayer_lt! P4 h3 V/ J Q* P6 @5 h
- call_chp2
6 j: G; t, V4 K$ N# Z9 g - chk-col
?% j% s8 \# Z9 _' I w; M$ ?+ s0 Q - ;chk-etype ;var removed by rk
; X, R) L) w9 C8 ? - chk-lay
. Z- s5 D' k8 `4 e. [7 C - chk-lt
. x2 o. e7 W6 a0 x; x4 ] - chk-lts ;var added by rk 5 q* P+ n. H! n, }
- chk-th
1 a; i$ O% f: V, w- O- e; S+ b3 K5 A - cmd2 }. B6 ~; [8 C6 z
- cmdecho% Y" L9 p9 v9 v: s
- cn
$ _' G' x8 X" _' C) I; @2 I - cnum) R% u$ S6 [' p, S+ [
- col-idx) z( C. Y& k8 j6 c/ J/ H
- col_def/ \3 U7 {) a6 I1 B; ~
- col_tile
7 @) E3 }( d9 @+ M - colname- Z$ H, ^. G( ]5 ^% o
- colnum( Y0 d. a6 s! v. ?# s' A
- color3 ]6 Q% ?* B, A2 ~. c
- colorname9 V0 ^. {6 Q1 V& q
- cvpname
0 F6 ~ D5 t8 `5 W0 S v - dash, S, M* B# g2 d: Q1 t/ `8 |
- dashdata, R$ p0 r4 y7 A
- dashlist
' c, X6 W" E1 V- _# w - dashsize. K+ T& P$ b3 g, k
- dcl_id6 P4 ~, ]( Z& ^: O6 E& w
- ddchprop-err0 L" r! k+ ?$ V! X( U; `
- drawpattern, C: P5 ^; p' T
- ecolor
: B# e2 q8 Y# s6 R5 z8 v) k# b - eelevation: A3 C/ y1 k, N7 s: F4 m" {
- eflag
$ o( [; ~; N( C - eheight% D; M$ u. U2 U2 J7 Z6 }0 `$ @
- elayer
! n2 C) G3 \* L7 V( W - elevation0 R+ s8 {2 |$ M4 g2 j R& ]& L
- elist
# `* D* _8 C. o - eltscale _9 f! j& X- h4 p8 H7 _
- eltype1 A! Q: d$ D* ? J
- en
$ S' J$ R9 B% V! Q! @ - ename
8 M4 R6 Z" \! @6 X4 X3 K- l - ESTYLE ;var added by rk
) T* `% m4 V3 a1 x" {* A! I2 k) e! m - ethickness- e; ~5 J7 w) _# e
- ;etype ;var removed by rk
0 S, [+ p' L. k* g! W E- Q& V! ^; A - ewidth! ~3 i2 v; V5 f8 b }
- fchk$ x/ ^5 J" b; `4 j0 h
- frozth6 ~1 D# h9 S+ k: l X. F
- fx
' M- j: t* T5 r" \* T6 a1 d - getcolor
3 G3 ?& `& @7 p1 F5 m" I! K: F, _+ F - GETELEVATION ;function added by rk
$ r* ]9 f( c6 }# J" g% V+ _ - GETHEIGHT ;function added by rk" C0 H1 {7 }, X
- getindex
6 h5 _1 R* p, w( I. a( |! ^ - getlayer
* V6 C- o; \. p) u4 r - ;get_locked_layers ;function added and then removed by rk ' ?7 D" ]: a* N; V/ D. N
- getltype% L. p8 V K. u. ^& J+ N
- getprops
3 \! R; a4 @0 p* |9 `2 W' Q - getscale ;function added by rk
& _. M5 m' {4 V% S2 u - GETSTYLE ;function added by rk/ h( x7 x; L* V5 d
- getthickness7 ~8 P, Z7 z# }( F0 G
- GETWIDTH ;function added by rk
- z0 \5 l* g8 g. l2 J k' f3 I/ [' _ - globals% D4 }% H9 g# J; o
- HAIR_STYLE_LIST ;var added by rk
* p1 A4 I$ d/ g - height
& Y4 B W/ h8 l - index ]) k) X9 Z1 T4 A
- item) L; X: A ` d7 c5 M9 ~
- item1) O3 B: i+ j2 ~' F4 w8 `& t
- item20 z% X2 I) g( A
- itemlist
- B" S- a. S& }+ G" _9 } - lay-idx8 T( g; W/ w m, Z& B
- layedit_act
1 q5 `. O$ i7 W ? - layer
$ w2 G3 Y; B4 f/ ]$ Z" l/ ~; o3 t - layinfo
4 q L0 Y/ y4 K. i8 a, N3 h - laylist# A7 L+ S9 K% `
- laylist_act4 X" M, {7 }3 k- f
- layname3 T" K @) v" d: b* R# Y. e
- laynmlst. [- s% ?& c, F: K) O5 X' Y v. K
- layvalue3 w& ]* a* U& O' I. Q
- linetype& y1 k" F/ e, B3 @! M% O
- list13 o! A! W. w% Z/ c9 z
- longlist3 t: M% N* X; V% K: t1 L2 F
- lt-idx" w+ g b( \& E Y4 s: q9 W, M& C
- ltabstr
2 W: Q% X! H- J5 [ - ltedit_act
1 {$ q* T: d6 Z1 w2 W - ltidx$ P% @ f# m! i r
- ltlist/ p# w2 c _$ W/ _
- ltlist1- x& n z9 ]+ W$ h4 _6 r: G+ s
- ltlist_act* J0 J/ P1 K1 d
- ltname5 w! M4 N- k9 R" Q
- ltnmlst
; o7 b' n; ^1 p( g7 @ - ltvalue
' q# V2 x# @% V$ ?7 G. L0 G - ltype
7 O: g& {# ]/ y- i6 I - m Z3 E) m9 X7 |! o) v) C% ^
- makelaylists
, W4 l, U$ x" g6 O - makeltlists
; }) E7 z) H# q, O - match-col
; M( O5 d; g' ^0 C2 j" |( [ - ;match-etype ;function removed by rk
6 Y; K; P: Y9 g5 D$ T+ M - match-in( a! M2 y! P/ b* C( r
- match-lay; e/ q/ ^2 t2 S& O5 S R# r
- match-lt" m' l+ W/ }* e2 P
- match-lts! K+ I# B( O* l& E% @8 S( g" y
- match-th
) |$ d% X% J# Z: D8 f( [# w - match_col
; ^; | N+ q$ ^4 B& M' f - mdashlist
5 X% e7 ^7 M5 j& ?+ J- Y1 c& w) S - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk0 a; I2 j/ A! \& r3 a3 @
- n
! e8 a+ }, }3 P5 {& N! \& f - name
0 a! P4 Y" e1 e7 i# I) p/ m1 V5 q9 D - ncolor
- V8 Y3 _4 `! g+ e - nlayer
) \) l% J" l' u$ F - nltype0 `. D; t2 J8 }. _& D- j& W! u) y
- nthickness; |* L1 l% P0 z/ A4 t2 ?" }
- off
4 V* c# q6 g' m/ t6 W - old-idx/ X# {3 n9 b; m* H
- olderr. n; s; @! s5 w+ e$ I
- on
% Q+ l8 E) h- {5 x0 o1 u6 _- e - onoff
6 Y- g8 S% Y8 [$ ^ - patlist6 W; D. b' _4 C$ y) Q/ ]. P
- pattern* ?" Q) L; o$ k& L q
- PL_WIDTH_GETTER ;function added by rk3 ]( k3 r7 e0 o7 D- u+ Z' q
- POLY_SS ;var added by rk" J/ a2 M0 ]: E4 ^4 z& V
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp! t& @0 N3 D4 y( v) K
- proplist
& Q9 I1 t+ H; m+ e- y) e - reset-lay
! j& _5 f3 d% [ - reset-lt
% L+ c& x3 i7 q5 F: C- F6 g - s& z# K. E7 A" x/ I+ G0 c
- selset
! a1 {6 C o! L0 @8 Z6 b - set_col_tile
; N. K7 j2 h A# v/ { - sortlist/ p% D, ]6 J$ P% V1 A
- ss' }6 i, s5 I+ k; u3 @# H0 ~. j/ v5 F
- ss_in_current_space ;function add by rk.
( A, d. G/ Q7 [, U+ E; X - ss-index. a, D, j. c+ n* J) j @
- ss-length8 @' J4 [8 E2 m- v* S
- ;ss_remove_locked ;function added and then removed by rk./ c9 m; N% W& d: q# v+ _8 ]$ _
- sslen
$ Y/ k0 T5 L. g0 d, E* \9 ? - temp_color6 N$ u, Y2 @) x0 V: h5 ^
- templist7 A: m2 K0 Q; _$ R
- test-main-ok
$ {- _ _( R* D9 V, N5 A - test-ok
8 x" j1 w4 d' k - testidx' B. d$ W" G& W- r' T, o' i
- testlay
_9 e: V* _, ?7 Z7 ^; E( u. O, Z - th-value
2 x8 N9 C8 b. d( b9 Z3 I - thickness
9 X% ~2 S! S, n9 o% Y1 S/ T' Q - tile
9 W7 x5 E7 a3 k( W7 L, I b - tile_rect7 N# f% R- i$ s& \% r
- tilemode& e. H- b l* t# S1 Q. y( J
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk4 X% y# M0 i# V& B) E( t6 G
- TXT_SS ;var added by rk
+ r1 T9 n# g! r8 w6 G; S4 }% d9 j - ;undo_init ;removed by rk.
( }2 C! }* G: i3 W - vi) o3 X& h* s ~9 V# h5 J
- vpf$ z' V. P+ B, z. O2 J
- vpldata% u9 A9 h ~# O/ _+ d8 `! @
- vpn
, E4 E/ j# W8 j - which_tiles
* Z1 ]0 y# r5 t& G - width
) H$ d5 X& s, w' R - x
( S! k% d2 |# p, k5 N! e. O - x1' x, Y1 T' t$ M, a& E% Z& l/ O! P
- x21 Z' X; T. q7 S! L
- xdlist
b; n8 e. g9 |+ t5 m4 y' P: I - y
* C2 @! `5 K) ]) K0 z c+ D - y1
* u1 h0 K- H* H* |- _/ w - y2
% J! m# M7 v+ M8 L* o/ d - )
/ @, L- _2 I/ v - ) p: B5 ?. T* p) l
- (if (and (not init_bonus_error)
; u) a( C. ^4 i% h4 Q - (equal -1 (load "ac_bonus.lsp" -1))
; ^1 V" D- s1 \# H" z) @. ` - );and
: W( ~# W& F1 @/ S - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
, B" F! X: c5 u- h - );if1 c) Q% D/ T s$ W
- (init_bonus_error (list
1 v4 r% R" ?, D0 B' Z- w. M C - (list "cmdecho" 0
/ ]8 z& ?. }; m, F" Q. r7 t2 ^ - "highlight" 02 J- M* t; P0 u3 l e' }8 I
- "regenmode" 1, i; @& K4 R$ Q' m, `
- "ucsicon" 0% {. z6 K0 Q" W1 M$ e$ J8 O6 J
- ) , s( l. ?! G; I" Q \! T- Q
- T ;flag. True means use undo for error clean up. 7 g5 o5 u& ]- U5 l; w" o, k
- );list
( J* p/ E/ B1 O# I - );init_bonus_error- g! h, B+ F5 i7 O$ W- r
( ^& C; M2 d7 I0 b( |& {- R5 X- (cond
) Z! y# V, B4 B5 f - ( (not (ai_notrans))) ; Not transparent?- S5 s4 Y- v/ g
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
# ^. W$ [. s& H: r$ e - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
6 W5 n/ ^" H. k' S9 y - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
0 w- |+ y, B/ T" q6 d7 g6 C - (t / {7 W6 I. p- w* U
- ;(ai_undo_push): a% a" P- F& i4 {7 P/ x# b
- (ddchprop2_init) ; Everything's cool,0 h! P0 Q& j; V4 q3 X) E3 U1 Q2 ~
- (call_chp2) ; so proceed!
: H3 O1 A( T n+ W - ;(ai_undo_pop)' X8 L. V' ?3 w3 B
- ), Y/ u# ~, e8 h* V5 A4 I9 Q
- );cond close
+ @- d( R! R1 u; W% K5 W# C# B
% z6 O; l* E: L; D0 m5 E: o- (restore_old_error)2 P. |8 |4 }3 M) S3 b8 S
7 Z% Y( n' k2 H1 S7 u' k- (princ)
0 t* r; ^6 U. X# ? - );defun ddchprop2
6 |3 ?8 G, y1 J3 f; N
, S% j! K- L! e' X* R+ G. ?- ;;;----------------------------------------------------------------------------/ h0 R9 k* Y* |' H
3 }! ~8 W5 }! p4 n) i. Z% k- (princ " EXCHPROP loaded.")# Z1 a; Q2 V. v1 o
- (princ), I* u! P" w# j+ }2 U6 `* E
; H8 X) b8 ?. J7 X! [- ;;;---------------------------------------------------------------------------- a3 _# n& J, D4 `) ^' W/ N
- ;;;---------------------------------DDCOLOR_LSP-------------------------------- h7 N/ a9 D, [( j
- ;;;----------------------------------------------------------------------------, O4 o! i }& B$ o: ~
- 4 z6 k- T f* f/ X5 f. W0 d' t5 z
- ; Next available MSG number is 24 2 \" j1 o6 |) M# T
- ; MODULE_ID DDCOLOR_LSP_2 `$ C9 g5 z! S
- ;;;
8 O, D# Y" x7 q2 @ - ;;; ddcolor.lsp
4 p9 N. K- k$ ]" R. e9 m3 \ - ;;;
6 v' B2 J( [3 K; b - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
3 @ \/ Q, p1 i% q0 l - ;;;
4 p; I# H: j g2 s4 q - ;;; Permission to use, copy, modify, and distribute this software+ j( r4 O4 V/ _: B: a3 m
- ;;; for any purpose and without fee is hereby granted, provided, }! U9 \- i+ {! A( j0 J& I
- ;;; that the above copyright notice appears in all copies and/ X2 G8 E; U, s5 _
- ;;; that both that copyright notice and the limited warranty and
! D% g L( V9 D, s5 _% y1 D* ]7 W9 d - ;;; restricted rights notice below appear in all supporting
- C; d! V4 d; Q3 A& K6 M - ;;; documentation.# D2 O9 x) I @) w2 a
- ;;;
% _1 ^ i4 }6 R8 T - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.7 t" L! |5 m% z( d2 O0 t4 k
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
& T! ]) y3 l/ Z% ?; S4 ^7 A - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
3 P- ?7 b; o& O; k' @9 `0 v - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
6 I3 a, W8 H2 N - ;;; UNINTERRUPTED OR ERROR FREE.
. \. K' ^; n! g+ ?8 l& ` - ;;;; ?. v( M7 U( o9 X: y
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to: z( L9 A1 P7 q6 K* L
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer! c% g/ O# p' s: n
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) % q' M. Z3 n a& J; w7 X! G
- ;;; (Rights in Technical Data and Computer Software), as applicable.
: ?& r, j$ v& v - ;;;' U7 T7 N ]2 C: A2 w: D4 o
- ;;;.8 W5 Q* V; c1 g
- ;;;' m$ N9 Q8 D/ v: N9 e
- ;;;----------------------------------------------------------------------------
! Q& c% o h8 I S, K- P - ;;; DESCRIPTION
1 `) Y6 n. ^% v8 G+ B0 x - ;;; " Q0 ]$ r) ]! B% o1 \
- ;;; Chromatic Pallete style color selection dialog.9 a( K4 `* W7 D$ R% z5 s' e
- ;;; # O7 Z1 |0 x3 q" m
- ;;; Globals:! H( v4 v7 n7 ~ J1 n* b1 n
- ;;; B- c+ m3 D1 B. h9 @
- ;;; chroma_color - Integer color index. The last value selected
' M8 N4 ?: E9 i) u& t. R6 @* k - ;;; by the user in chroma dialog. It is not cleared or reset
+ W( _, R* q- S \' }; W& L4 A - ;;; by a cancel. Only used for communication between callback
$ M& l7 x9 s- E - ;;; functions and the (chroma) funciton.
' @' a; O2 R+ `$ a - ;;;
# \% G6 y5 U, ` - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
/ A1 I E" l/ h! F6 s - ;;; 3 _( z j- X$ y% z# {6 o
- ;;;9 n6 h; s3 b- G" J( U! m
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma * i+ O) X X+ p4 @! ^3 K0 X! a1 n
- ;;; pallete style color selector.
1 u# D0 c2 d( Q% v6 Z - ;;;
& O# ?9 H- j5 |0 O, T7 P - ;;; ===========================================================================1 S$ p, u+ A0 Q: d. I
- ;;; ===================== load-time error checking ============================0 ~9 @( a7 H8 U& k: `2 {* n0 i$ o
- ;;;* z8 M: q) g: o' ^. }+ H
+ |4 a5 ~9 g% A- (defun ai_abort (app msg) \$ {6 D5 m2 q9 N
- (defun *error* (s)7 w9 e6 U- P2 `# r$ U1 N
- (if old_error (setq *error* old_error))
! K" t5 F8 z, t6 Z% ` - (princ)5 `/ }8 C8 p3 c9 w
- ) ]) J: H7 H/ {/ w7 N* {4 ]
- (if msg
2 s q2 l# P. n* u - (alert (strcat " Application error: "
& O2 y. i A$ N R! D3 q, a - app+ S2 x% |) m- G. s) Y7 m
- " \n\n ". @0 R$ C" \+ J- z1 A* @
- msg1 e/ x6 U4 @; r/ k
- " \n"
, T7 O$ ]& t& Y - ): Z: K* t- C6 X& q; ?$ b2 q
- ); C9 b; `# Y; {" O* \% S
- )% q2 T1 k r V) b
- (exit)
( _+ [. K7 u) `2 t7 f - )1 } H2 ]. k) [) q& K( y
- ' p s% q! T7 N3 t" } S# F- J
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
8 W% M( C& [) X" p - ;;; and then try to load it.
$ I6 y; V6 C! n% a" B% H - ;;;
$ c' d( F$ P+ J2 I( s d - ;;; If it can't be found or it can't be loaded, then abort the' I+ Q1 V9 E6 S- | ~) V
- ;;; loading of this file immediately, preserving the (autoload)
- O X# X4 {: e) n: D& ] - ;;; stub function.3 P; _% T( q! {2 d2 }
! R: i3 m5 `2 M; f3 L/ K- (cond
4 E% H- ]: j; W( d5 i9 U2 F+ ^' I7 W - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( Q4 M( ]4 J" n0 Z9 g' W
" x: b4 q3 D+ T v! b! |- ( (not (findfile "ai_utils.lsp")) ; find it7 m- ]/ `. ?% T- ?4 f' O6 E: b/ f
- (ai_abort "DDCOLOR"
}( [+ u. k: E. S - (strcat "Can't locate file AI_UTILS.LSP."2 h$ S6 E' D0 Q6 t0 j9 r4 l) s
- "\n Check support directory.")))
0 Z* w8 u( \4 _9 t2 M' R# H2 d, j - ) r# R+ b, c w
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
- t; o: h2 i0 E9 P# ]# b4 Z - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
9 S4 ]3 w, X# w+ ]3 o - )
, u6 E* G. t1 M2 ?0 D - 4 [' J) {+ o* m/ i# n
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP1 Y4 \$ \8 {9 d- k
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses( C& N1 c( s% [3 i4 F/ V- B# ^
- ) ; ai_abort's alert box dialog.
2 m2 U% u, {- ~ - 2 Q. ] x) ^4 Y7 u7 e
- ;;; ==================== end load-time operations ===========================
* p7 v* h5 q* E - + Z0 x+ H+ r- I" ~' X% n% ^
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
4 c. a: w+ C$ y4 }# S% Z' `# S - ( d0 t% N5 e- J
- ;; Main Color function, called by setup code.% n" a- n+ F6 q. X k
- (defun ddcolor_main()
, ~6 R0 q" i: V( Z7 t6 m+ U - : N' w( i3 y7 F f W
- (graphscr)
$ H2 `( `+ T. Q- W - - z8 A+ q$ `' v% r/ @* I7 H# d" P
- ;; Get the color of the current layer, for possible BYLAYER color swatch.
5 \4 J7 y1 R0 v y8 ^: S- Y - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))2 ]& K! N( o6 L- r p1 E
- / U( U9 r1 R+ s$ i& B5 V# F" c
- ;; Call the dialog here...
; k* N2 O+ h( t# L) {: G; H - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
3 w* j7 w4 q2 j
3 E! Q& X1 \/ D1 A- (if clr
6 k# ?5 I% i" k* C% G* x( T# T7 ? - (setvar "CECOLOR" (citocs clr)))
) l" z# C! z% b - )( U9 Z9 Q7 k" O7 v- T4 R9 [
- + Y/ `: w( [2 T% x
- ;;;+ L! u- C8 Y1 Z
- ;;; CSTOCI -- Color string to color index
6 w* B% K$ b5 t+ u" S" } - ;;; Convert an arbitrary case string into a color index.
. g" X% P# p7 G+ X2 Q. h6 E" l: q! d2 d - ;;; Returns nil if string is not a valid color.
0 R* A" J) P8 a' L! t9 _/ S - ;;;
5 Y9 _9 s. F A - (defun cstoci (str)3 U$ q2 w0 ?1 b9 Z
- (setq str (strcase str))/ i, I/ D9 K, W- x- c! H, W, w1 j. k
- (cond; e9 h" a0 B/ ]" k* v! U; \5 U
- ((= str "RED") 1)
' d% ^/ G; m5 V9 @ - ((= str "YELLOW") 2)
/ ^: S! D$ Z3 z( h5 \- M3 H - ((= str "GREEN") 3)
7 k+ q( @2 @" M$ l& _/ O - ((= str "CYAN") 4): _ ^) C. {3 P+ n7 r6 b# M& v
- ((= str "BLUE") 5)
, u8 N$ Q1 j. G5 B- x! m - ((= str "MAGENTA") 6)0 {, I: ?" R) L; Y, x
- ((= str "WHITE") 7)
i/ e# {* l7 L2 l; p( {- I8 V - ((= str "BYLAYER") 256)
! D3 ^" {8 x+ V - ((= str "BYBLOCK") 0)
! e6 }9 V5 R. r" s - ((= str "BY LAYER") 256)
; f' E- d: l c$ K& o! ` - ((= str "BY BLOCK") 0)
& J+ g7 k7 D% O7 Q, @0 \+ ]0 ~6 {' l - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
) X' {9 y& l: ]+ F6 Q% i& u; a, S! R - (nil))
0 e, p6 T) x& v% }8 J4 q - ), O- ^9 q7 y2 f# a
! A' ~% m" d3 U; G2 L9 \ M+ I- ; p5 C7 h* \- J
- ;;;: s; F8 U5 P3 j6 ?3 ?
- ;;; CITOCS -- Convert color index into standard color name.$ \0 B+ A/ K, b P; X5 s2 T9 s
- ;;; Will return the standard and logical color names as text
3 r& D9 x: F# `1 s- s/ ^ - ;;; strings. Returns nil for out-of-range color indicies.
8 C; L6 q8 j* E& c- z7 f) n) _" Q" ^ - ;;;
' b- S( {& { x& b" Y: l- u, f0 m# a - (defun citocs(i)
2 g5 T: q {9 G" N- S - (cond( T5 r* i- v: w0 A% {0 C
- ((= i 0) "BYBLOCK")
% x9 f% L0 y" w: n/ X. H6 s0 W - ((= i 1) "red")0 c7 m# R& g$ K4 X' P* C( N1 }3 ?
- ((= i 2) "yellow")
: e# ^. u. B% ^4 n* ^( n$ j' p - ((= i 3) "green"), J, X$ _* \5 l3 M5 a y% o7 @5 k
- ((= i 4) "cyan")' d3 \! l1 g; c4 W- G! B
- ((= i 5) "blue")5 ]$ s& ^' ~% h0 ]. e9 E" } ?6 ?
- ((= i 6) "magenta")+ e" q4 U0 Q3 ?' ^5 w
- ((= i 7) "white")3 F y2 V% T$ W4 Q4 F
- ((= i 256) "BYLAYER")* g I( p, Z8 A! q7 O# D$ e) m! g
- ((and (< 0 i) (> 256 i)) (itoa i))$ v; p: U2 @- b# _8 X1 ^
- (nil))
4 [9 M" }* w& l - )
8 o. D5 ?* U7 u: I; s - 0 i; h$ M' `# n& y/ n# b0 Z9 O6 ? Q
- ;; Start of ddcolor2 X0 U0 a4 Q; z) H. u s8 L# x# `! I7 Q
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho2 v! F/ D4 `, ~, U* y6 @" z7 S
- old_error *error* ; save current error function, G$ T$ Z9 e/ k$ g/ n& _2 H
- *error* ai_error ; new error function
1 @& j) T- l, Z9 E* S& K/ R6 j0 Q - )
8 @' Y) t) Y1 n) w2 p$ Q! P! t - : I; l$ m- f$ I# G" z. n
- (setvar "cmdecho" 0)# j! H0 r/ M8 q
2 I q5 M# d5 Q- (cond5 D9 s& M; T, ~ h; r
- ( (not (ai_trans))) ; transparent OK
1 a3 `; y* r) S+ ?' L3 [& z w - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
3 O0 N: _4 S! [2 a! m
. Q. r$ s* B8 G: `5 t3 V6 E$ Z- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
' O, G& l% {) x4 `/ c' y, ~/ x% y - (/= 8 (logand 8 (getvar "cmdactive")))4 T* d" v |$ p, d+ n0 i
- )
/ a/ f, c* D& X+ z% z- i* Q" C% d2 ` - (ai_undo_push)
" o' W# [4 S4 y \ - )$ |2 n/ M1 b, u
- 2 s, l/ y, u) U2 ^6 V6 y3 j8 E
- (ddcolor_main) ; proceed!
4 {- o" y- Q0 C: u4 o
; L2 K7 D4 u6 ?$ S4 g4 D: I- (if (and (/= 1 (logand 1 (getvar "cmdactive")))6 v) F9 G$ X+ O. x, J1 R
- (/= 8 (logand 8 (getvar "cmdactive")))* V4 Q- ^' ~: @! X/ T x1 x7 @
- )+ H9 X; K3 l, R# ^0 Y
- (ai_undo_pop)5 P2 ]8 a% R- N
- )
+ r+ `6 d T: K2 c6 b& _% p - )% H* t8 Y8 ~. h, p% @
- )7 ~: y; {* X- O) Y4 Q! s
- 2 g$ I, |8 M+ M8 T/ ?+ Z8 U
- (setq *error* old_error) 0 [( B2 ]+ M+ z( A8 o& t, I
- (setvar "cmdecho" old_cmd)# _7 l/ E* V! I; n
- (princ)% m+ N1 w. [+ w: @6 Q* \
- + |/ k) x/ a' M% `) A
- ), H! m" }! Y8 g' S: L5 g/ n: u
- % \; p6 x6 [/ c% F& \
- ;;;----------------------------------------------------------------------------+ F1 f- M y1 r: v$ U
- # ^2 ^% @+ |$ v% R$ S# H
- (princ " DDCOLOR loaded. ")! d1 E1 s8 S1 G( k6 c2 s* I2 ~
- (princ)
0 ]$ {/ X6 w8 I0 ?8 a. s9 b$ {
$ D6 C) |! R/ m) w, F, s$ F- ;;;--------------------------------------------------------------------------;
5 t6 n) X% I" b9 p6 \ - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;4 L1 w- H( H3 K7 B$ O% E2 k+ \
- ;;;--------------------------------------------------------------------------;; l7 c6 ]% `) S5 U4 D5 [$ V$ Z
- ;;; ssx.lsp e" f c7 ?5 a1 p8 u
- ;;; Copyright (C) 1990 by Autodesk, Inc.
) Y6 f7 ]( Y, M+ A - ;;; Copyright (C) 1991 by Control Systems, Inc.
* `- s! `/ N4 i$ D+ m; r, X( F - ;;;8 X/ ?+ u% P8 v/ f _
- ;;; Permission to use, copy, modify, and distribute this software and its2 F* q: S! D, _/ z
- ;;; documentation for any purpose and without fee is hereby granted.
) M3 V- e# m9 F* t3 `8 T/ ` - ;;;
7 W6 Q6 h5 T( `2 K - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.5 i2 i' ^3 k" s% X
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
1 [, U& w; t% i$ w9 E - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.! g F! o, y( N2 ?7 e/ x! x8 t" D
- ;;;6 e. D, M+ \! S2 o, B9 Y1 N- l
- ;;; Larry Knott Version 2.0 7/18/88 F: f$ U8 J; N9 H' |8 |
- ;;; Carl Bethea & Jan S. Yoder Version 3.02 N! t* y6 U! i6 y* ?2 V( q
- ;;; Enhancements to (ssx).9 G w" s( v9 S. o) q2 W( o! I
- ;;; 15 March 1990
4 t' Z6 T; a% C - ;;;
^" g3 B( d2 g2 E, W5 U - ;;; ARTIST Software, Inc Version 4.0 December 1991$ y, e2 z5 A6 H: ]2 O6 g2 T
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
) |. p$ X6 r, o - ;;; use Flexicon menus
2 e3 {' @, U1 }, C - ;;;
# R" C0 J6 E! \4 J+ |# b5 S - ;;;--------------------------------------------------------------------------;& z' ]3 X; b" F- D3 t5 C
- ;;; DESCRIPTION) h! a1 A. y# q3 u% g9 N
- ;;; SSX.LSP
& x( @& O+ `! ^# s - ;;; ) k+ q X6 i0 R# w& A: ^& Y& ^
- ;;; "(SSX)" - Easy SSGET filter routine.
; [/ L8 O1 _+ g, B - ;;;
& `+ }& ]$ X" }( a4 @& e) G - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
7 f1 C: [9 f: k/ l, X: q* i6 w - ;;; to create a "previous" selection set or type "(SSX)" in response to 5 P3 u! a5 v0 @) N$ S0 _
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 6 G' ?5 c* h9 \; {3 V; t
- ;;; entities and "(R)" to remove entities from a selection set during 3 }5 P D$ ~/ o# ^/ S, M a' } Z
- ;;; object selection. More than one filter criteria can be used at a
. K* B% {* ] R9 j. k - ;;; time.
3 Q+ y2 ^6 p+ X C& Q - ;;; ! `5 z; z7 K, F/ W2 ?
- ;;; SSX returns a selection set either exactly like a selected
3 R* O# V6 e7 E. C6 @: i4 N - ;;; entity or, by adjusting the filter list, similar to it.
* o- [3 B; j. D0 a# B/ c8 W - ;;;
/ y4 U8 r2 J6 w2 ^! c' @, }2 F3 ^ - ;;; The initial prompt is this:5 } m4 ~, s$ ]$ ?4 }8 u
- ;;; + F. t! V6 N- h' \* a+ c* a8 O6 `" R
- ;;; Command: ssx& d0 q* m/ y. @' n) @
- ;;; Select object/<None>: (RETURN)# |8 z6 Z0 w! V8 k2 ?
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
) `& T) x- m9 v% r2 H) @ - ;;; 3 `8 V7 m0 v% E C3 ] o) g1 O. t
- ;;; Pressing RETURN at the initial prompt gives you a null selection
, T! h! E* }5 J$ U% v1 f3 ^ - ;;; mechanism just as (ssx) did in Release 10, but you may select an
# y' _& j0 C* d; M4 Z0 c - ;;; entity if you desire. If you do so, then the list of valid types {3 ]( z o, z# |0 h4 E
- ;;; allowed by (ssget "x") are presented on the command line.0 ^- r; a# h7 Z! X1 m
- ;;; ' V! q3 n. `9 Y; U7 b) _, E
- ;;; Select object/<None>: (a LINE selected)
3 Q/ `# Q4 Q' k - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 9 R8 z+ q9 g$ w
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 1 S% ?7 Z4 o$ ]7 L! z) t$ k
- ;;;
" _, m7 U6 S- v; E9 B- c - ;;; At this point any of these filters may be removed by selecting the 9 s" s' b1 R* [. L
- ;;; option keyword, then pressing RETURN.
8 h# }; X. N4 _1 o7 N - ;;; 3 e7 R. \' t7 z9 S- u* b7 i7 ~
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)" M8 q2 N. h W! G8 z0 X5 j* k
- ;;; 7 z# b+ Y q# l- u% Y& u5 w
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))2 H, U, a2 ?* d4 p3 X
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 9 b+ T3 h. \# i- B
- ;;;
& L3 I7 O7 {" [, H - ;;; If an item exists in the filter list and you elect to add a new item,
1 |3 x4 p* p- j1 m+ {- e - ;;; the old value is overwritten by the new value, as you can have only
$ E. R% C, ?( F7 D: j z - ;;; one of each type in a single (ssget "x") call.' r; M8 w S4 R; k6 }6 R( L
- ;;;
# i( b$ M6 Z4 T } p - ;;;--------------------------------------------------------------------------;2 a5 R6 E& f" I
- ;;;
& _; D; u7 V% K5 j. x& T% \' x - ;;; Find the dotted pairs that are valid filters for ssget
' R/ w0 m4 A; M+ S7 p - ;;; in entity named "ent".
. `" D' k: D3 @4 Y - ;;;
& h2 v* e4 e. @1 n: { - ;;; ssx_fe == SSX_Find_Entity' t; e: @: u# m/ u$ |# P
- ;;;
5 T6 v G+ p( t9 R2 o0 L - (defun ssx_fe (/ x data fltr ent)) r$ s* T, F" [2 V: c
- (if (and (= flexvar 1)(/= t2 "Pick"))" B1 R3 D2 X/ Y
- (setq ent nil)
1 N4 X4 x* r4 W2 { - (setq ent (car (entsel "\nSelect object/<None>: ")))
+ E. \& E- p9 H2 j d7 N" e - )
( E" ]0 u. Y. h) U( B* G% d. w - (if ent; S8 `+ X# }( }& d3 z, L
- (progn
1 g# Z5 G' g. k! \" g. ? - (setq data (entget ent))
: q! u2 k! @1 m' j8 Y8 x; Y - (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38/ Z8 a- B! D: e) |- o
- (if (assoc x data)0 b% K/ M" E0 m& _
- (setq fltr / U0 W- r2 t9 i! S* F
- (cons (assoc x data) fltr)
: n+ @7 C" h" C3 |0 \) t7 E9 A( w+ d - )& l, `+ x% w5 T9 d& |) K
- )* R- p, ^% A m* M$ h0 I
- )
w- _7 v1 p4 S - (reverse fltr)$ c' M4 p$ e' M0 `# y
- )
3 W/ e" T9 d* d/ C/ W4 R - )
3 }( ~: b, x5 h& N9 X+ l, \ - )& S+ b% W3 o2 L
- ;;;' o. m" c, n6 h5 r9 G
- ;;; Remove "element" from "alist".
- Y7 Y+ Y; | z. ~) g [ - ;;;* _0 {: B4 y6 c3 f
- ;;; ssx_re == SSX_Remove_Element) o5 }0 i! B) o5 K, w7 P& H
- ;;;
( s8 {/ m# v" S6 v: [' I) | - (defun ssx_re (element alist). w5 v7 x. {$ h- v1 e) [
- (append
1 o/ n) H/ l$ T1 ^2 f' x/ l1 h - (reverse (cdr (member element (reverse alist))))5 `9 B- \, Y5 p5 V8 M2 s6 @
- (cdr (member element alist)) 6 @- ] w, V. f
- )' E2 Y; V- k# v8 e. R3 }9 Y, M$ P
- )7 N* |$ b+ F0 r8 `, K
- ;;;
, M0 i2 l% ^! d5 Y& ? - ;;; INTERNAL ERROR HANDLER - q8 u7 }8 R5 [& d1 _& D
- ;;;
3 d- U3 O8 Y( B9 p s& g5 ] - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs: c5 l! c5 p: z6 I% {5 L
- ; while this command is active... O5 T1 D8 B( z% B `6 Q
- (if (/= s "Function cancelled")0 L8 L6 ?: G& E0 F0 X N; r; i
- (princ (strcat "\nError: " s)): Q& v3 b9 S; S! `' x
- )7 F- p% B# q5 }/ G5 O) ]* A! |
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
0 G0 W' {2 \, c- x. E - (setq flexvar 0)
* Z/ A* A+ ]$ t" S - (princ): M+ h) D2 S8 C3 p
- )/ T- h2 Y+ s& p4 S
- ;;;& j7 ^3 S: k! D4 H. }" r6 F
- ;;; Flexicon call routine; y. i, s4 b% M0 K/ S
- ;;;. E5 U( E+ e' }( n6 c, [
- (defun flexmnu (a)( n# @' i, i- x! W: @
- (if (= flexvar 1)2 m8 r% c) J+ ^1 A8 {# ]
- (command "FLEXICON" (strcat "FLEX" a))8 C2 J2 a6 l$ z( a, V9 w
- )
% A9 Z1 t, v- C' z- f - )
: F, A) r' G3 \/ ^2 Y: E
8 g3 \7 u3 t- a5 q0 v+ W2 s- ;;;
3 H S9 }. m u' n, G - ;;; Get the filtered sel-set.* i h5 [) s4 w e% K8 E
- ;;;
- `. b% ]. l4 N+ s$ y - ;;;
+ b! {# p9 i1 j) } - (defun ssx (/ olderr)
: T( B% X9 A7 T - (gc) ; close any sel-sets
+ v5 n" g/ U3 D) s - (setq olderr *error*
- }( s h2 X$ N( A7 B - *error* ssx_er
9 I6 ?4 h$ c7 u - )
) u( ~& S$ [. V7 F1 y- t# g; i - (setq fltr (ssx_fe)) , i2 J6 X4 g4 \) C+ d
- (ssx_gf fltr)
- R6 ]8 g W; x" k& Q. { - (if (= flexvar 1)
, ^* e& a9 j! y6 S* G - (progn8 @. n& n8 m' C" X) f% d1 F
- (prompt "\n \n \nNow select the required EDIT command and (P)revious."), D# D2 p. S( M( q7 L8 q
- (flexmnu "EDIT"): t$ u/ w6 ~; i' f7 T2 {
- )9 J% y7 L' Z* j! L6 E$ x/ Q" e
- (command "p")
9 x# N' x) Y( u9 ~ - ); D8 X w+ ~# b' X# q
- (princ)
5 ~/ t3 c2 a6 D7 f* O8 ` - )6 y7 @: B" e) Y# a6 k; d4 D
- ;;;
D: q/ A6 ~! f) n: [- B, ?" s - ;;; Build the filter list up by picking, selecting an item to add,& V! H8 K5 D9 H
- ;;; or remove an item from the list by selecting it and pressing RETURN.
! c0 y; {! h8 t# q2 o, {( b4 r/ s - ;;;
3 f: A8 Z% ?/ c0 x/ q4 l, |0 a0 V - ;;; ssx_gf == SSX_Get_Filters4 l8 k$ G; Y/ Q% i; L' H+ E
- ;;;* V# ~) s9 o( ^2 W
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)6 G( q2 O5 }% ^9 `$ R# c/ z
- (while ' A( z6 O$ G% h3 x k1 q
- (progn. d7 w$ l5 m ?( j- U- y Y
- (flexmnu "SSX")6 r0 r( H6 n! n+ X" ~$ p
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
, D. ]0 l9 }* ^1 V4 i - (initget + e) t. l! ~2 y) g) \
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
. v1 u" V% B; l5 _: r, A$ P \1 R+ E - (setq t1 (getkword (strcat
2 ]" C5 U7 d$ ?5 L2 N5 f( ?3 p p - "\n>>Block name/Color/Entity/Flag/"
0 e' k9 O9 v8 B5 t' G' E; c - "LAyer/LType/Pick/Style/Thickness/Vector: "))) " Q+ K$ Y5 A; i
- )
9 k3 Q$ H; s) Y' V( Q- ~1 u - (setq t2
" G3 V l7 K1 g! F - (cond* m1 s! u6 |/ l) W q8 R9 M( x% {
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)* f: H0 G6 P; Z/ b9 G- {& B$ \4 \$ @
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
7 O% |' ~9 m9 Z- f% j8 V" V1 Y6 H - ((eq t1 "LType") 6) ((eq t1 "Style") 7)
7 U; h$ Z6 K/ ?2 o1 c - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
, r5 R/ t. r6 t9 A- H - ((eq t1 "Vector") 210)
; n& A0 L; `7 k ^5 O& h7 k - (T t1)
3 O4 s1 E: x) ] - )
( |6 X/ P; r9 H0 E - ). z. s' l! ^% A6 Q8 ?% W
- (setq t3
0 a9 R F) T g9 c# D - (cond4 a A) q* y2 G! B' B
- ((= t2 2)
# G" w& W/ P% b) U8 D5 u1 G - (if (= flexvar gtads 1)+ ^+ [5 S. g2 c) w: x0 J
- (progn4 z& }. |/ y2 S: g N! [
- (prompt "\n>>Block name to add/<RETURN to remove>: ")2 }8 E2 s. ]8 z: a
- (gttable "BLOCK")0 L L7 v3 U! A" v6 T; v
- )& l3 Y) j: P# U) b# J* }
- (getstring "\n>>Block name to add/<RETURN to remove>: ")
( R9 U- q A- a - )
/ c: d" z2 q) f6 t* Q - )
6 J: l: Z4 Z+ q9 ?! M - ((= t2 62) (initget 4 "?")
, t/ R) b0 C; G% j9 R7 ? - (cond
# u* f7 H( @9 m' V - ((or (eq (setq t3 (getint
3 X3 n; V" y9 `1 x' Q+ G - "\n>>Color number to add/?/<RETURN to remove>: ")) "?") 8 V; a' V) d3 X0 ^
- (> t3 256))" E: {- G* H% n4 q) t
- (ssx_pc) ; Print color values.
. p6 u3 c* H6 ~" C0 k% E# _ - nil
1 L) ~+ i3 Z( C( E - )% X# {4 T$ a% }* H+ Q! ~
- (T, F: d M6 Z& _8 ^5 I c4 d$ u+ I
- t3 ; Return t3.
4 r) K; U5 Z$ D$ Z) d3 x - )
3 [& M1 x& c4 t c# r* x - ): d2 ?( a; \3 l0 l& |
- )
& [: ]5 h0 A p* a0 p% ?0 ~) W - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
2 r+ L0 D, f* V& e [" X - ((= t2 8)
( h4 b: d$ p" ^ - (if (= flexvar gtads 1)
- X5 Y) [5 k9 N; o9 ?6 t6 \ - (progn3 B5 o; v- ~% M
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")
1 j: Y" E% {+ I2 G+ L% ~ - (gttable "LAYER"), k1 l1 Z5 ]8 x
- )
1 J, p9 \1 O. g" ]! ]1 g" R - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
$ k( P2 m) c# Z5 l - )
# m% I$ B! x3 T$ a, t6 |( D: M - )
% R# f" _) d6 l& }8 b9 _, J$ P - ((= t2 6) ! l: ^7 }3 J( x' N4 c
- (if (= flexvar gtads 1)& J W- f l9 e8 e6 t
- (progn
0 |$ \/ U- x9 W! g! w, { - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")- n/ x& K8 u5 n+ H
- (gttable "LTYPE")
b3 x# {! G; I - )8 A# y* K a8 P6 Y
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
! `& v( S4 T' W - )
) c) Z8 \! Z0 i+ p; L) {0 o - )2 k+ M: j) z+ z' v5 P7 b/ |( @" M$ G
- ((= t2 7)
8 W- E' B/ i3 {. Z - (if (= flexvar gtads 1)3 S; p( I4 _/ ?4 X
- (progn1 Q- n; {" ~2 V8 P. p, a. V7 u' B
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")+ x4 k( B% O$ J) z5 I' ^
- (gttable "STYLE")1 \9 M6 Z% ~0 v9 w' F% ~; H5 |
- )2 Y; ]: |# g, I) d/ ^: a2 N
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
5 X( ]' g8 F7 B - )
7 c* ]6 B: z1 m8 p: ~; c+ j - )
3 X! B* @" Y5 M; t7 Z, \) j2 S - ((= t2 39)
2 d$ X% G3 x& |& b' f - (prompt "\n>>Thickness to add/<RETURN to remove>: ")$ a( I- `: o6 y- A% X5 C
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))) R9 _( G1 v6 E: G2 k
- )" k! K" g* J/ i6 i9 ]0 |
- ((= t2 66) (if (assoc 66 f1) nil 1))
9 Q, ~9 f! n# e - ((= t2 210) ) |3 U) U, r! J: N
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")0 b% [/ O% n3 j
- )' Q3 C% Z( M3 d- I# y F+ Z
- (T nil)
, @9 H1 d) `/ r, d: Q$ U- x4 x - ); s8 s6 k) k6 B6 w4 P. @$ m% {# x
- )# Y) y* y- U0 R. x6 G
- (cond( a6 y. j. ~: s9 H& S+ L3 g
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
, r# j# b; L6 v" A# x% z - ((and f1 (assoc t2 f1)) ; already in the list; I) [7 k/ x7 o; y
- (if (and t3 (/= t3 ""))
' V) M4 p9 H. b S) e) X - ;; Replace with a new value...
9 K; S6 P9 k9 z6 ~2 { - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) 6 ^( _ M( [- }2 x9 q
- ;; Remove it from filter list.... A& G1 j9 f% }( u" H+ U4 |( f$ Q0 u
- (setq f1 (ssx_re (assoc t2 f1) f1)) 3 ~8 m/ E* ^9 m1 i4 i6 W
- )
, E, ~; f9 n; o0 Z+ J - )
- R3 g7 {& v4 g& |6 z! V7 T/ O - ((and t3 (/= t3 ""))7 j& ~8 A8 @6 }& C5 m
- (setq f1 (cons (cons t2 t3) f1))
- o2 r9 D* j# i+ c# x% a - )* f" ^/ w, H3 T
- (T nil)" q' \& n( V" _3 w+ _ z: h D/ E
- )
9 s, ]$ l3 W3 Q- S0 ?# b/ ^7 a8 l - )3 v' ^: z3 S" e h. B0 J& l p0 ?1 {
- (if f1 (setq f2 (ssget "x" f1)))2 {& v: s, Y' A& d5 B
- (setq *error* olderr)
1 g u8 M) |# z+ I( G' Y4 w2 w - (if (and f1 f2)
+ I/ f& b; s: L5 u$ S. a6 k+ J - (progn4 g6 z8 z2 P3 P
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))+ c y q N' t" E) n u* ^. T% s# M
- f2
. |4 G6 m. y! Y - )
: W' i N, U) k0 x& L; f8 n$ M - (progn (princ "\n0 found.") (prin1)) e4 k u* L/ ]: l
- )
, q" A# K; O. R9 ?% ` - )
) K: d% r' Y& S7 }5 f1 ^ - ;;;
; K/ g& }5 W! F, P. I7 J. n - ;;; Print the standard color assignments.
1 j: G* V9 j0 P( h - ;;;' ?$ R8 \3 a* |* N. b( d! L
- ;;;& ?3 p! o) G P- p, v
- (defun ssx_pc ()1 O ]( X( g; l/ I h& J, d
- (if textpage (textpage) (textscr))+ v8 z5 O( J9 {8 Y) k. F0 l
- (princ "\n ")
) G0 w5 P; W3 \4 W- q& C. F) w - (princ "\n Color number | Standard meaning ")# E& T5 f9 \, i6 }/ u
- (princ "\n ________________|____________________")+ E: V% C7 I. g9 K3 {2 ]. J9 |0 L; a7 ~
- (princ "\n | ")% R* \6 q) h+ f$ s
- (princ "\n 0 | <BYBLOCK> ")
7 p& b0 _, Y+ k* z9 J; T - (princ "\n 1 | Red ")
' t; k+ N8 D. M9 t5 ? - (princ "\n 2 | Yellow ")
2 s- {; k* v) j) U" n! y - (princ "\n 3 | Green ")
+ ~8 B( y& x7 _, r - (princ "\n 4 | Cyan ")
% h% I5 v& [+ L+ ~ - (princ "\n 5 | Blue ")) f% T3 E" i. a# m" y
- (princ "\n 6 | Magenta ")
+ l8 x) ~( @# `) L; O9 T - (princ "\n 7 | White ")6 \/ b6 f( [2 X6 n
- (princ "\n 8...255 | -Varies- ")
$ C6 K; S; X2 ~8 W5 b8 U( n) ` - (princ "\n 256 | <BYLAYER> ")
8 C( \. `# A* g, K5 w+ U% m. R - (princ "\n \n\n\n")4 P. x8 z6 P! W" K7 T- U
- )
% s2 M3 Q1 s9 f$ {! ]4 ^ ] - ;;;
6 E1 ~1 F& A! [) d, I6 a( v' V# P - ;;; C: function definition.+ }' t7 w- b; I$ g
- ;;;0 n: w K" ~. S4 C; |
- (defun c:ssx () (ssx)(princ))/ U* X& s& F0 B: q1 W3 n$ O3 ^/ p1 W
- (princ "\n\tType \"ssx\" at a Command: prompt or ")& g. m) ]! o7 z" | O+ t1 p! j% l
- (princ "\n\t(ssx) at any object selection prompt. ")
' U' u& [6 ]: o - (princ)
% H7 K) Z3 Z* U- A) A - , c) Q. f7 F% ~/ I& ^
- ;;;--------------------------------------------------------------------------;' _3 F3 ] q2 N& k" ^
- ;;;--------------------------------------------------------------------------;
, ]% V1 X2 |/ D& J- |) u1 ^ - ;;;--------------------------------------------------------------------------;" i0 H7 S) j; M% q x
- (defun S::STARTUP ()1 x& h8 ^! d0 _8 j0 L
- (setvar "cmdecho" 0)
! J4 F6 ~' Z% J0 Z3 U0 k - (setvar "cmdecho" 1)1 \& r/ C1 ^$ r+ d& X: X( l
- (setvar "LTSCALE" 10)
6 F& Z% j, {! D! r' N+ ~( j% k
; w5 p0 N6 k' W7 j2 y- S; W# w- ;(command "_load" "chenKH.fas")
9 I" s! R# P4 U( e/ W, B, j - ;(command "_load" "ctcot.fas")
( e" g$ C) R* A8 r - ;(command "_load" "damdoc.fas")# T. Y8 X4 m3 a3 r2 v( d+ D$ B
- ;(command "_load" "ghichu.fas")& x( k" g# r1 Y6 M6 b$ z( T7 M
- ;(command "_load" "hamtutao.lsp")7 N3 B7 [/ m: Y% }9 |* A
- ;(command "_load" "KHOITAO.fas")3 E0 W- F/ X. Q, _' l
- ;(command "_load" "KHthep.fas")
5 D- z I6 t% f' a" g5 V$ e - ;(command "_load" "mbmong.dcl")
6 `; u( t* E9 }9 I$ q: M - ;(command "_load" "mbmong.fas")
% p. p9 h+ {' u5 N5 Q# W5 j - ;(command "_load" "mccot.fas")
2 Q k4 D' D- J* `3 d+ @ - ;(command "_load" "mcdam.fas")2 R+ _; d0 e( u% U$ H& n
- ;(command "_load" "mcmong1.dcl")
! U; A' E* h, G% ^ - ;(command "_load" "mcmong1.fas")
|5 H/ t9 V# ~% c) s - ;(command "_load" "mcmong2.dcl")& R' ?$ a8 N/ v7 r! F; g- F m
- ;(command "_load" "mcmong2.fas")4 m# E' ]: @7 y" u3 \) m6 ?
- ;(command "_load" "mcmong3.dcl")! k2 s$ O0 {& b7 ^; `8 Y
- ;(command "_load" "mcmong3.fas")+ s+ c% @2 `" k) [
- ;(command "_load" "mcsan.fas")
: l( d( J* N5 d* r8 E3 x- z' D" { - ;(command "_load" "thepdai.fas")
" l; ~. g; e3 \ - ;(command "_load" "thepdoc.fas")! C! R- d; |* [. y* T% n o- y
- ;(command "_load" "thepmb.fas")
- J3 S! W; B) d# l" R - ;(command "_load" "thepphbo.fas")8 x( j) G' x# l. K4 }" ?; d2 {
- (command "_script" "thongso.scr")
5 R0 T) h9 L4 |0 W% B. X, p - ;(command "_load" "thongso1.dcl")! b, D D; T$ z# W( \
- ;(command "_load" "thongso1.fas")
" U/ @% I. X) M+ F1 ]7 i - ;(command "_load" "thongso2.dcl")
: G6 u( v! j' E; b! _ - ;(command "_load" "thongso2.fas")8 e% c2 B3 X' }5 |
- ;(command "_load" "tietdien.fas")8 b0 ]' f) @- i) Q
- ;(command "_load" "vehan.fas")3 S9 [0 n, R0 ?8 x
- (command "_load" "phamDuy782006_TKT.lsp")
5 [6 m% }- N; d! a1 H - (command "_load" "phamduy782006ganhtd.lsp")
5 u4 K/ \! P( n - (command "_load" "phamduy782006ganhtds.lsp")$ Q$ V' V h8 j2 A$ n5 e
- (command "_load" "phamduy782006htd.dcl")( D, z5 Q! E. `' j6 F
- (princ)* A* T$ L$ I- i& f' q
- )
6 A t5 P5 ~. z4 l& Y - % z N4 n2 B4 u. Y4 w0 V4 M! s0 h
- ;; Silent load.
- q" [5 ?4 X: E6 Q& E$ ?5 T- r - (princ)+ [% d: S' \( i
- 2 J" H5 ]. a7 _$ I- ~; `: v* A
- * A4 }3 Q; O, ~
- ;; Silent load for the Express Tools.
& B7 U$ g+ C: c. \1 P+ I: _3 B - ;; Altering this line will affect Express Tools functionality
2 o& m7 \7 Q( `" [! f - (load "acettest.fas" (princ))
0 T9 L+ U, n6 a2 @ - �32
Sao chép mã
: P8 w1 P" v/ ] c& q00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ. A P- m7 ~: W
|
|