|
|
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 |
- ********************************************************************************
+ Q* O/ L' Y8 Y( A2 q - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *. w/ k7 d3 C4 |) Z& N, x! j
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *2 p5 A1 A3 E# d8 @" b1 b& x
- * Suu tam & Soan *0 a, m) B+ M9 m0 r
- ********************************************************************************
8 |* Q- ?& P6 x7 g* y3 e - 9 H' Q! D d8 a% a
- ; Next available MSG number is 104
/ Y) H. S4 ~. V% a$ z5 h0 D - ; MODULE_ID ACAD2000doc_LSP_' S7 j/ s s! e3 C+ |1 W
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 20008 g& R! e7 r" O
- ;;;1 e4 W6 i# d+ k, _7 j! X
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
5 Y5 L9 b% S. N5 q+ q7 ` c0 L4 \ - ;;;6 i3 W: R9 _8 `, Q" w
- ;;; Permission to use, copy, modify, and distribute this software: y' {; c2 V* R* d5 h
- ;;; for any purpose and without fee is hereby granted, provided4 Q" V) u5 s( w8 x/ W! s$ G8 O
- ;;; that the above copyright notice appears in all copies and
* @8 i E6 h' T - ;;; that both that copyright notice and the limited warranty and
) g, i1 P4 F- _8 j- V. Q' X - ;;; restricted rights notice below appear in all supporting& T- T7 E+ R# I* j) g; q
- ;;; documentation.7 ?1 s1 o3 x" d2 i: |9 y
- ;;;; O8 x" E+ e( P* |
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.8 y* a1 s( a0 E% Z0 A
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
' n8 r. @9 K& q$ N - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
% B: Q, ]% W; W, K0 q+ n - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE- e X3 a1 F( @/ d- \( W
- ;;; UNINTERRUPTED OR ERROR FREE.
& G; {5 a I. v" P" b- r - ;;;) q B+ T* v1 Q9 y
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
# T( @, n2 I9 f- o+ M- e) `6 q5 ] - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
) I$ t3 K' ^' ` R. o$ s+ G) J( c - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ( `4 C* U. I7 k+ {& Y: K: C' G" d
- ;;; (Rights in Technical Data and Computer Software), as applicable.
: n' T' l" m( n& [8 m2 ~0 ~. l - ;;;
0 T* Y& o/ R* e+ c& @ - ;;;.
3 {# C1 N. ~1 a, k% Z# o# b7 i P - ;;;
% c5 O0 k( H) X' O - ;;; Note:. C9 \+ B; `( A/ Y9 `4 ^
- ;;; This file is loaded automatically by AutoCAD every time / j* `/ S: P& M$ q6 H
- ;;; a drawing is opened. It establishes an autoloader and+ K C% _. H# H$ ]1 U' b
- ;;; other utility functions.
; p+ H# P q" W& D5 X, M$ b - ;;;
2 Y& h T' E+ r - ;;; Globalization Note:
- O4 ^! v" ~4 R* u% I3 M, w9 P - ;;; We do not support autoloading applications by the native 4 |% p6 x- A/ O( q0 P9 A# e
- ;;; language command call (e.g. with the leading underscore+ N5 S, ^1 R# f+ Q$ D
- ;;; mechanism.); g4 C. T/ F# Q' |2 ?) }
1 X! {8 r+ a2 i; V
6 D) A+ p3 b) `- ;;;===== Raster Image Support for Clipboard Paste Special =====
. L# V! A0 @& p* G$ | - ;;
7 N, [( {! Y; M5 Z8 k- c# H" v - ;; IMAGEFILE- R. r- T4 R. E9 q# V
- ;;
! [1 F, m1 c( ~$ K, ^5 O* [ - ;; Allow the IMAGE command to accept an image file name without. j4 H2 ^+ z# K# A( \
- ;; presenting the file dialog, even if filedia is on.
( j0 q, ~$ p' H, d4 L - ;; Example: (imagefile "c:/images/house.bmp")
- ^& R. \3 n7 u - ;;
: S+ m& N' a' A - (defun imagefile (filename / filedia-save cmdecho-save)! d6 A8 t# ?& B, p1 G) R& @4 \8 L* A
- (setq filedia-save (getvar "FILEDIA"))
. Z% t, r4 p+ i: N0 G) { - (setq cmdecho-save (getvar "CMDECHO"))
- j9 H! [4 k) q7 v0 m - (setvar "FILEDIA" 0)9 C4 b* L9 a; \$ }6 T
- (setvar "CMDECHO" 0)2 }9 p$ C0 m* d6 I6 Y5 A; c
- (command "_.-image" "_attach" filename)
# W) }6 B$ v1 m0 i ^ - (setvar "FILEDIA" filedia-save)
( \& i2 x' C- U - (setvar "CMDECHO" cmdecho-save)/ n# g* ^; U+ T% M' _; x
- (princ)+ b/ F) |" j. Q* d1 U
- )
1 N, V' E- j4 m( S3 m1 e - * Q( D6 N" U5 n e1 z, ~4 p
- (defun c:zx () (command "zoom" ".5x"))( w" B; N. d0 D; v+ v
- (defun c:zz () (command "zoom" "p"))
$ o" H2 e$ N: _* u3 f1 W/ _9 c - (defun c:za () (command "zoom" "a"))
! A9 D0 R* }, D( c - (defun c:zd () (command "zoom" "d"))
6 y/ e8 G8 X6 g6 J - (defun c:ze () (command "zoom" "e"))
# o8 r T; G+ n- A+ P& i - (defun c:zr () (command "zoom" "" ""))
' `& `0 x2 A- W& Q( Q - (defun c:vv () (command "ucs" "v"))
. p4 Z0 f5 I& H6 n- M - (defun c:co () (ssget) (command "copy" "p" "" "m"))( |: ], M/ l& m4 e' m
- (defun c:c () (command "circle"))
. ^; ?1 Q8 y- V' e3 J/ r) P - (defun c:rt () (command "rotate")); x$ o) `; Y" z( g4 C$ v3 @
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
% E7 ~: g$ h1 u; s9 R1 o' q - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
. I# z& @/ B! U/ C e: _ - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
, x! V# z/ g( c( E" ~ - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
+ W6 k, ?" u/ w: d1 r - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))( T/ W. O+ E. P
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))+ w6 p; [7 |, N' ~* ?3 T9 F
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
; n; @; O1 l5 v5 ^$ F8 k - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
% c8 }) s+ j, c, p( j J - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
# j8 X* b Q7 M5 [6 b - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
2 ?% C+ s# B8 H [" O2 K - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))0 Q& |7 v; w4 L+ ~- p* f4 {
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))1 n/ \- F' H6 w5 c, p% e
- (defun c:fd () (command "find" "p" "" )(princ))(princ)( n+ u( a% E' t8 S1 K
: k5 V* B9 S& q% F. D* b3 p! ~- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
& ~6 e8 I) ]. p5 i) P$ _" b - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
) i' a9 {* i( a8 k) e5 E - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
/ n; J* B3 V, \* w- [ - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)* |; T) C7 [5 ?- u
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
- Z0 O0 p0 _% W/ k4 F6 K( D2 l - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
+ R ]* ~1 M0 Y0 G& u5 n8 H - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))2 Q9 Q$ H. R& j, R; u$ }% `2 n
/ S' `5 o) A2 d6 _- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))! ^& w3 `' [- b1 s& P' a3 {+ o) Q
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
" M, E/ i0 T. E, F0 W1 o( L - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
; F: e k+ F5 n( W - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
" j$ j* `5 z' f$ s8 z: _ H* e, k/ Q& T - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))" [/ g/ o% d' @( `6 ?
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))" R% J2 H2 X( y$ q# {1 r$ p2 z
- . Y1 L4 E) G1 H% r/ J0 ~' u, D- a
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file/ ?: ]! z4 j# j& p
i6 e) `3 J7 `0 M, P/ c- ;free lisp by cadviet,cd2k44
! ~7 n" A0 s9 i q! V, l+ ] - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538309 m. v, z; ]# n5 ]/ P1 S. |
- (defun c:FTEXT (/ ent tstyle )/ E3 E1 y3 ]8 l6 {, i
- (command "undo" "be")! U8 M+ Q% q" M3 f
- (setq ent (entsel "\n Pick text :"))
$ E+ G4 p J% o! X z* x - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
# L6 h" ~) P% k" j+ l0 n - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
9 |. i% T, L3 m* D - (setvar "TEXTSTYLE" Tstyle)
+ B* F0 y1 s/ r6 { - (command "undo" "end")
0 `1 {* o- Q1 F - )
; l3 G' z0 o" d5 C1 G - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)' ]8 _+ W: r6 S3 x
$ Y2 T% O" v0 y. L6 e1 ?- ;free lisp by cadviet,cd2k44- k6 r5 q; u; Z- v6 K2 F$ B
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830: f6 P* V/ x- U9 l
- (defun c:Fvnh (/ ent tstyle )
" Z" q! s. Q- D - (command "undo" "be")2 g& N7 H7 T* M/ b2 {
- (setq ent (entsel "\n Pick text :"))
0 U a% k4 {1 C - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))): ?6 F; I& T( s
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
]9 U% q* [5 A% h- U0 B - (setvar "TEXTSTYLE" Tstyle)8 F- F8 i8 \% @! u% U& X
- (command "undo" "end")5 Y9 `9 n: o9 R# ^
- ): T# \& f% R, B5 C
# D# p. K) o# J( W2 @4 E8 h- ;free lisp by cadviet,cd2k44
0 _0 W( S3 C8 Z# |4 n - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538302 N( Z, L1 J5 w. b4 p6 H
- (defun c:Chbg (/ ent tstyle )
i% N" J% L( c4 k( ? - (command "undo" "be")
) S* |' ?* d u - (setq ent (entsel "\n Pick text :"))
, R; R v5 Y0 {- n7 A( n - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
8 ] \7 a+ T: \* ~/ X/ W8 [1 Y. N- x - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
| D/ C: e; c# w) F - (setvar "TEXTSTYLE" Tstyle)
% `7 \6 Z, a! x8 \" P0 |3 E - (command "undo" "end")
3 u. Z7 }$ u2 R - ), h- r/ X4 G* w$ I M$ ]- \& k
5 u( m9 |! R1 z* y+ L' I4 @' Y- ;free lisp by cadviet,cd2k44
0 e2 e3 _* M0 O" H7 y - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830/ O* Q% a9 B. Q, _/ b Z4 k
- (defun c:Chsm (/ ent tstyle )0 n/ b, h; i! U- e6 ^
- (command "undo" "be")
- c# o! z# }; \0 h- f o2 V - (setq ent (entsel "\n Pick text :"))
& Z2 ~& c2 p5 r$ H7 N7 t8 X - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))/ m7 x2 B8 I `+ |. y4 ~6 }6 @
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")1 w) D2 A; ^/ ]7 q2 ?4 g
- (setvar "TEXTSTYLE" Tstyle)
6 v* g ?" G) Y0 Q# o - (command "undo" "end")+ w$ e4 B; c. e0 l( \
- ); b+ ]2 p; Y, M- G
- 6 @8 B, l4 l% r1 J X3 o
- ;free lisp by cadviet,cd2k44 F2 t, X! }3 {7 u
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
1 k) I' S) k$ {& Y; T" l8 {% } - (defun c:Fttf (/ ent tstyle )* x, a: _7 D& O; p
- (command "undo" "be")
6 q; X: o6 B5 f: F" B, w - (setq ent (entsel "\n Pick text :"))
% ]# W, L" o/ I5 ^5 H. M - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))" {& b$ x& N9 B# Y
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")0 P3 Y; Y$ G' M+ K
- (setvar "TEXTSTYLE" Tstyle)6 N1 b; M+ m6 }0 r0 h# O
- (command "undo" "end")
. T9 X, `" t5 D' ` - )% v# d* p* {# P, C0 L; E" {3 W
& C. i9 U) O r, l- ;;; ============================================% m: n# R6 I e z' ?
- ;;;, ~4 [( S9 y( g' t2 n$ l
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
- x! k( v g( Z0 _# S - ;;;: m1 ?3 W$ z5 W) d, H9 w' V) ^
- ;;; ============================================
. t( V; n; X. G% W# ~, P - % Z- K+ t6 j" k) Z3 S+ s0 R3 h) Z. M
- ;;; ============================================6 `/ b X% |/ x# m% B7 p
- ;;;
' w2 |5 f8 z; K1 W* G) X( V7 o9 F - ;;; CREATING FROM AUTOCAD2000" ?" ?) K* n, i v
- ;;;9 a( M5 j6 T5 ^; Q; I5 d# u+ C$ A
- ;;; ============================================. z8 K$ d3 B. m# {3 D( B
- % |" |+ ^0 C k+ V; o" j6 i2 `' F
- (setvar "INSUNITS"4)
" }# M! ?7 o* M' C6 ]* P$ Y5 { - (setvar "ANGBASE"0)
, a4 w! B- y! l% d* [ - (setvar "ANGDIR"0)) q$ C# O2 ^) O* g8 _; U; R! Q
- (setvar "AUNITS"0)
- o b5 k" u% q. n - (setvar "AUPREC"8); S2 ?+ e. d) H6 g. f. }9 N$ S# r
- (setvar "LUNITS"2)- [/ _7 c# i+ Y2 _+ M) l& f
- (setvar "LUPREC"8): D0 v) m) K- q5 x" A9 g
- (setvar "ACADLSPASDOC"1) # I9 |/ B( z, }/ P3 d* ^" W
- (setvar "pickbox"5)
: r% B' |0 Q6 }2 L - (setvar "blipmode"0)
$ @1 ]: B6 T/ E0 a - (setvar "mirrtext"0)
3 N6 I- Q; j0 B. k% a/ Z. c- f2 u - (setvar "cursorsize"100)# r/ ^$ y( ?, g; L1 q
- (setvar "ZOOMFACTOR"75)* o0 v6 R. d u
- (setvar "LTSCALE" 10)" a; Y6 z' z( } E1 O0 l
- (setvar "lwunits"1)6 ]7 X) l3 n/ K5 R7 J: M
- (setvar "DIMBLK" "Closed"). W8 t# X2 Q6 r' y
- (setvar "DIMGAP"0.0693): c1 R- e3 w, b o# V$ ?- ~
- (setvar "DIMASZ"0.20)
6 N) F* f( W7 Q- e% B# {' @, B - (setvar "DIMCEN"0.2)/ L0 W- o) G0 x+ u( i# S
- (setvar "DIMDLI"0.1)
6 O) |7 h! q- u2 v) Z - (setvar "DIMEXE"0.0693)* ^+ [3 k( g6 a4 i- R0 Z0 {
- (setvar "DIMEXO"0.25)
7 w& ^4 d( Z; b. i' ?: J - (setvar "DIMDEC"0)" ~" s4 V# [, F0 i
- (setvar "DIMTIX" 1)
5 ~- L2 u1 z6 Y' A/ T9 K) E9 }. n# F - (setvar "DIMTXT" 0.099)
% A! d( v7 `5 V2 ~1 k - (setvar "DIMCLRT" 7); t$ U( k& _9 P0 Q. E
- (setvar "DIMTVP" 1)
2 I) T) W6 i6 i% d) t3 d - (setvar "DIMJUST" 0)
; Q' ^; R: K/ p* Y8 B# Z - (setvar "DIMTIH" 0)
1 `5 e: p/ f3 F5 {, e - (setvar "DIMTOFL" 1)
/ @+ a3 G/ I, \$ J0 ]8 s - (setvar "DIMSCALE" 1111.1111)! i& }6 ]7 {8 [# V' u; B0 [
- 0 `4 I2 b* ?5 X8 P
( o* y, F, _ s8 G$ A4 q- # [" _- t, V. L/ N, }
- (defun c:zp () (command "'.zoom" "p"))
2 m) {3 _5 m% d, K( o1 k) F - (defun c:zz () (command "'.zoom" "p")). t2 q3 a- @* {
- (defun c:ze () (command "'.zoom" "e"))
& V9 V, [; V6 I, G7 r1 d - (defun c:za () (command "'.zoom" "a"))8 q4 F9 j0 K! Z0 x
- (defun c:zd () (command "'.zoom" "d"))
7 T( k3 {. R% k9 b% D - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))/ v. `" r3 P, ]
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))& j! z0 n; p2 Y' U+ F; e3 p
- (defun c:de () (command "ddedit")(princ))$ b( b5 T2 [8 C$ O5 i, _( }! E
- (defun c:dda () (command "Dimaligned"))
4 J: {/ g" M2 K! D - (defun c:ddb () (command "Dimabaseline"))
' w. o, G3 }9 {$ }9 [2 R - (defun c:ddc () (command "Dimcontinue"))7 f0 r$ K3 \9 \% s- ?2 v# t# r
- (defun c:dde () (command "Dimtedit"))# E1 t2 w {; C& D# c
- (defun c:ddf () (command "Ddattdef"))
. _7 ]' z% a! o- K3 A - (defun c:ddi () (command "Dimdiameter"))
8 I# T3 I; q0 D* [" G - (defun c:ddl () (command "Dimlinear"))
G' ]1 d& D. p4 A - (defun c:ddn () (command "Dimangular"))$ e2 p7 F2 Z |& w
- (defun c:ddo () (command "Dimordinate"))+ J: e& O* k# u
- (defun c:ddr () (command "Dimradius"))
/ a% I e1 R% b0 u9 B" | - (defun c:dds () (command "Dimstyle"))
' I5 o/ x# F, J
# b3 d9 M" K! b i0 W6 C8 b- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)5 N' S7 P- `" @& c+ W9 P- i
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)3 O! R4 l: |4 B6 G4 Z$ h/ ?) t I( ]
- (defun c:UU () (command "dim1""update""all"))
$ A0 Y2 b9 H X& m) k) q - (defun c:ded() (command "dim1""tedit"))4 ?; A; q! D! F" W/ \' U
- (defun c:da () (command "dim1""ali"))' Z5 ]2 F1 K! o0 r* Z V
- (defun c:dll() (command "dim1""l"))+ a# Q F V- _' B: g6 s
- (defun c:dan() (command "dim1""an"))
" A& l, R" v5 `, _ - (defun c:d1 () (command "dim1""ra"))
: [! \5 C2 z8 d" W, o; j; Y1 w - (defun c:n () (command "dim1""new"))
/ v9 @6 h! v7 G/ w9 K3 X - 4 X6 @ _$ G& h d0 [( n
- (DEFUN C:PE () (COMMAND "PEDIT"))! A1 m: y6 H/ N" A: `$ r' |
- (DEFUN C:PL () (COMMAND "PLINE"))" u4 B I Y4 L0 N! D
- (defun c:dd () (command "dist")(princ))
2 B2 ` S( Q. I - (defun c:w () (command "pedit" pause "w" "au")(princ))2 o% v7 _& a$ _, U; F
- (defun c:pg () (command "polygon" "polygon")). [% l s' I% J( b
- (defun c:el () (command "ellipse"))
4 l2 w1 A0 Z- Z* b" [5 u - (defun c:xe () (command "explode")): C: w, ` s4 o! s
- (defun c:eex () (command "extrude"))
+ Y1 s2 Z. h) f1 Q4 g - (defun c:xg () (command "xline""a"))+ o) P& s+ @( S9 Z
- (defun c:xh () (command "xline""h"))
9 o% c% k4 k) a& R, Q& k9 Y) V0 ` - (defun c:xv () (command "xline""v"))) X9 H4 g7 k! [' c4 a: i& r
- 4 y% n' Q! q* b9 G5 V8 x
- (defun c:oc () (command "osnap""cen"))6 V+ x& |/ Z5 x* c( N/ ?3 x" B0 r
- (defun c:od () (command "osnap""nod"))0 a1 W6 K. D8 l
- (defun c:oe () (command "osnap""end"))
9 y1 b& B; n: t# J) w W! z - (defun c:oi () (command "osnap""int"))& v8 Q; q2 A: `
- (defun c:or () (command "osnap""per"))
) }. `5 ]5 _$ E: ]! [, s. ^ - (defun c:on () (command "osnap""none"))
- y A! Z- H2 m( L - (defun c:oq () (command "osnap""qua"))3 K9 q+ p; k& C) C! X k
- (defun c:om () (command "osnap""mid"))
0 ^3 X% w3 d6 m - (defun c:ot () (command "osnap""tan"))
3 t6 E% _5 y- s5 ]: p - (defun c:oin () (command "osnap""ins")), j" @, I+ b9 ~2 `6 J [5 Q. u
- (defun c:oa () (command "osnap""nea"))
3 @- l) v) {8 S$ U$ J1 D+ u, Y - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ)), ?# {9 G( b" e7 v5 }
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
+ c4 k1 i! l4 _: e8 c - ;(defun c:nn () (command "new" "y" ))* S5 U$ V* x1 l
- : }/ z* {" Q5 |/ _# g
- (defun c:/ () (command "limits"))" H% J5 P) y9 l& G
- (defun c:`1 () (command "region"))! O f4 T) h" F$ V1 E1 B p
- (defun c:`2 () (command "subtract"))
% a6 q/ h" p) W K# M. t - (defun c:`3 () (command "union"))
" X6 s* e$ J, E4 X& w% p" s1 L- }! Z - (defun c:`4 () (command "intersect"))
0 g7 {; b' a5 r% m$ f! X! A - (defun c:`c () (command "cal")). B0 _ U% K6 d% y' w0 x
- (defun c:`g () (command "Polygon")), H: c% L' ]5 f6 I# S& ^* F4 ^
+ w" ? n: A) l0 x% `0 H5 G5 [- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
) H4 b% d+ p" A! c1 `+ w - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
n+ d2 e0 c/ ?. C) a+ c - (defun c:ip () (ssget) (command "print,_plot" ))(princ)
, v( {8 [# ?# V& d$ y
# ]! s- B; f9 \7 s- (defun c:ddm () (command "ddlmodes" pause))8 D7 l+ d3 r* }1 S, F, H1 S
- 6 Q) r( {( }0 F2 ?
- (defun c:sha () (command "shade" pause))! N) b, `0 o8 M
- ; r, S- b# b4 u; b$ ^3 ~
- (defun c:sr1 () (command "surftab1" "p" "" pause))* a- E$ |2 y8 S) ?; O6 u
- (defun c:sr2 () (command "surftab2" "p" "" pause))# g, E/ _# \( b! b" o" V# L1 j2 v
+ A8 y' \0 e1 \, v/ r, x! }- (defun c:ad () (command "audit""y"))
) F% I9 j( ]; G$ R - (defun c:q () (command "quit"))
1 z& a; N; h5 H2 B0 }" ?5 J) _8 B - % u4 E9 _8 V/ D6 z5 p* v; `2 @4 \
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))! j1 K' v: W% R
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))3 J3 S# X4 Q7 a, z
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))& y b' ~$ E' ]8 l7 D( E4 x
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
5 Q& v9 N2 h4 @! z O - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
1 ]9 Q1 I( b% N9 q - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))+ g, A/ m8 y1 P4 u+ a, l7 F0 e
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))% x' {2 V c7 I
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
/ S T4 Z- Y6 r# m' l - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))$ F# {: D- n6 M4 r0 ]
- ) X& e/ D/ H+ G9 W
- (defun c:u3 () (command "ucs""3"))) s9 W( c( W2 B( V. [
- (defun c:ue () (command "ucs""o""end"))+ T& A8 g7 O) p+ }8 l# w
- (defun c:ui () (command "ucs""o""int"))
* S% }' d6 o9 U" W* P - (defun c:um () (command "ucs""o""mid"))
& c* c ~) x- H% s4 C: R - (defun c:uc () (command "ucs""o""cen"))
( g3 U6 H; O; Z- H5 m - (defun c:uq () (command "ucs""o""qua"))
+ G4 ]7 A0 o# I4 Q& g4 h5 G - (defun c:3s () (command "ucs""3"))
& ?2 ~% H( w- Z u# U - (defun c:sx () (command "ucs""s"))3 c7 x1 @, w7 a; A3 L4 v) S: g
- (defun c:sf () (command "ucs""o"))) {! B2 \: n. x0 H. G9 y) Q) P8 y4 {
- (defun c:sz () (command "ucs""p"))- [- E/ g7 Q# l0 A9 K. ^3 ]
- (defun c:sr () (command "ucs""r"))0 q/ A% \6 [- J3 ?: O
- (defun c:sw () (command "ucs""w"))
& H" s3 o6 H* N/ x- `& p" h - (defun c:fv () (command "ucs""v"))
3 o: A i8 K3 H" \* ~ - (defun c:ux () (command "ucs""x"))8 W A) m8 s4 ^+ M; _7 Q
- (defun c:uux () (command "ucs""x""90"))' d* Q( l9 Y' L& N1 p- T
- (defun c:xxu () (command "ucs""x""-90"))
8 d& i D# g+ I) r! Z2 Q - (defun c:uy () (command "ucs""y"))0 E% K) Z% i) Q# X u# o
- (defun c:uuy () (command "ucs""y""90"))) Q2 b2 t4 w# k/ [) s, s( V9 @
- (defun c:yyu () (command "ucs""y""-90"))" T8 r4 g- |# L
- (defun c:uz () (command "ucs""z"))4 i* r& h" ], S) i) D
- (defun c:uuz () (command "ucs""z""90"))2 [/ }9 x7 d, }% y3 ^7 y @# k
- (defun c:zzu () (command "ucs""z""-90"))1 _5 z2 @2 U8 s% |
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)
7 z; ^1 W3 m8 g# H. z - (defun c:ucm () (command "ucsman" ))(princ): k- Z n8 ?4 I) {5 @' S8 e8 w$ t
) M" c4 M. x" `. ?4 b' _7 o8 V! O2 _- (defun c:sa () (command "vpoint""_non""-1,-1,1"))9 `* y2 c. j1 h: x; ^8 b
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
- M0 ]' ]2 P0 M2 T6 E! ]" x8 l - (defun c:se () (command "vpoint""_non""1,1,1"))
% u7 G( B7 n% m/ k8 e - (defun c:sq () (command "vpoint""_non""-1,1,1"))* ~, M# _8 V8 [4 ?" B2 H0 P$ \+ v& |
- (defun c:vc () (command "plan"""))
8 H3 F/ r. g" i - (defun c:vd () (command "dview""all")). M* E4 B5 p* C' w# Z
- |# V% W: a8 q( k5 M, b
- (defun c:TT0 () (command "tilemode""0"))' p2 \/ I$ x7 G1 z) `
- (defun c:TT1 () (command "tilemode""1"))9 I* [5 Q# F- z* n- J" M- _
- - o9 K% J, b, u3 e9 q
- (defun c:vt () (command "vpoint""_non""0,0,1")). g* Y" n0 E6 u% i! {
- (defun c:vb () (command "vpoint""_non""0,0,-1"))( D/ _8 q, _1 i2 O8 n# ^
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
# O- O4 c+ ^7 j$ w - (defun c:vr () (command "vpoint""_non""1,0,0"))" T6 b; L2 k1 J$ p
- (defun c:vf () (command "vpoint""_non""0,-1,0"))
( K, \; H1 x3 [* b1 s - (defun c:vk () (command "vpoint""_non""0,1,0")). s: s) K3 x. {/ M5 o
3 [6 L# E, x% N3 c9 l" ~+ ~- (DEFUN C:MM () (COMMAND "MIRROR"))5 A( F1 Z1 {/ J% b: y0 N& e
- (DEFUN C:MP () (COMMAND "MOVE" "P"))$ ?+ n8 H; b: |7 ?' V N5 U
* F% `; ]: u7 I1 X) t- (defun c:mee (/ a)
- [& m* x! j$ c5 ], q* }" ?/ H - (setq a (ssget))(command "move"a"""end"pause"end")) \& I4 d9 y3 [6 ^5 [+ O8 I5 b+ g
- (defun c:mc (/ a)" J/ ^; i- f/ I- V$ [# g: u) D: I( k
- (setq a (ssget))(command "move"a"""cen"pause"cen"))
c4 X, W- V9 h( S( N - (defun c:cc (/ a)
0 H& U% ]+ [4 `/ y1 Y7 Z+ M+ h - (setq a (ssget))(command "copy"a"""m"))
7 C7 ?; O9 R6 [4 o: h - (defun c:ce (/ a)
+ T3 X/ K2 w5 X$ n* y( d3 F6 o - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
& ?9 ~5 W0 {) z8 F4 y+ v# J, y - (defun c:cn (/ a)
# q5 H6 o: |6 f6 e- l% G. Q: N - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))+ N% e, Z( v' A4 a& p" L4 z& c
- (defun c:tl ()(command "trim""l"""))8 t( S- p0 w5 k( u5 p" u7 m8 C
- (defun c:tf (/ a), B& x2 L9 S+ c% r" a( v
- (setq a (ssget))(command "trim"a"""f"))# H9 f, V+ @# L! ]: G' h: p. B2 a' F9 K
- (defun c:el ()(command "extend""l"""))4 ^2 |: p" O* {" i! q. T
- (defun c:ef (/ a)
0 S2 Z+ h( q0 ^8 @. ~1 }' n - (setq a (ssget))(command "extend"a"""f"))5 C* D& O d9 m* D* |
- $ ^" X' _3 ?' u6 }+ c. O" y! q1 ?& e
1 G; @" W x) m# t: D- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))/ Q( P6 }. C$ y2 d; Q
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
. X5 g; c2 m: I, L0 @! ^, l - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
1 V) Y4 F0 }/ a2 s% ]2 x- Y+ a - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
- a$ {6 w$ f5 J - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55")); @$ ?5 L! `8 l) Q
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600")) a+ U0 ? \4 J, s
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700")); x( j& G0 P$ x; f& f7 d2 c
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))" |+ {* l/ d: Q% a5 G% _$ c1 R
- (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))5 B0 H5 y6 U/ G9 e6 p" O9 u
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
, m9 U( r$ ^ W" x; I% ]5 q - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
- m1 C6 }. l9 t# K1 G; n3 O, s - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
( A, m4 H" v& w; O: ^" j& X& v - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))$ }2 P6 k4 S @5 U& m( d+ |, V
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))# G' F G6 _$ l3 ^1 V6 |3 A
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))7 T0 Y! v* Q9 }0 r
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))+ }8 g4 n& e8 A% d
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
/ u* T* S$ ~2 `7 @* \( Y
3 D* m: ]# d" r6 y0 I! F- (defun c:mla () (command "-mledit""av"))
" [5 ~7 s! k+ L z" S, g9 W3 | - (defun c:mlc () (command "-mledit""mc"))+ h$ v- D' I2 ?+ [
- (defun c:mld () (command "-mledit""dv"))
8 _4 ]. F" U2 r# X - (defun c:mle () (command "mline""end"pause"end")), y5 y3 P! T% K r! ?6 ^! g& [
- (defun c:mli () (command "-mledit""ca""int"pause"int"))' B: q. U; Y( r' @
- (defun c:mlj () (command "-mledit""cj"))6 D% q) l5 e$ T! t9 v4 J
- (defun c:mlt () (command "-mledit""mt"))& b5 p6 w/ V# [) k$ y
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))9 v& L1 o# d/ I+ F8 C8 h& r
- (defun c:mlw () (command "-mledit""wa"))# c* I) n% y% X0 d- @; ]
4 V( F* m2 A4 ]9 ?9 ~3 [4 u' G( C4 G1 A- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))3 n4 }( o0 g9 o
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))+ ]! Y$ e$ T/ [- K( h
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))* V! K8 P/ o2 B [
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
9 E r! [1 R! Z# L% O( R$ ^ - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))* W2 r* P3 k* J8 p& h Y* f
- 1 l8 G: j0 a" U y
- (defun c:p0 () (command "pline""""w""0""0"))
( R& d7 f F. J2 y7 r l' q9 U - (defun c:ot () (command "offset""t")), ?4 k" G4 E/ e, T+ g* Y2 X7 |
- (defun c:t () (command "mtext"pause"j""bl""h"pause))
) @8 [, P) z* X - (defun c:uo () (command "ucs""ob"pause))5 ]8 g, `+ ?1 B$ f6 [
- (defun c:f0 () (command "fillet""r""0"))' v2 A' {8 E, y
- (defun c:fr () (command "fillet""r"))
: w+ y' ^+ w4 {+ T2 _$ i4 }1 u - , }8 V( W: z& J- s
- ;CHAMFER
) }1 F% r9 }9 `/ c1 f4 ] - (defun c:cf () (command "chamfer")). e9 _' Y5 m ~) ^9 E
- (defun c:cfd () (command "chamfer" "d"))
0 R& P3 K8 O2 ] - (defun c:cf0 () (command "chamfer" "d" "0" "")) I" `$ `+ z4 \7 X0 e0 n6 k
- & e9 S! }# p5 d
- ;FILLET
9 m B+ S6 }/ h, x - (defun c:f () (command "fillet"))
2 J1 v" f7 S1 D - (defun c:fr () (command "fillet" "r"))
5 _4 D _: v O: d- `/ E - (defun c:f0 () (command "fillet" "r" "0"))3 H+ Z. x' I# Q. I5 c6 J. A
8 {: A w( n4 H. M' r* S4 o- (defun c:OO () (command "oops"))
" f4 A' G W( M) c1 R7 W; G - (defun c:dln () (command "dimlinear"))
6 f2 t/ \- A- y1 p7 r g# f2 | - (defun c:dan () (command "dimaligned"))
& y% u& j0 N" d - (defun c:ddc () (command "dimcontinue"))
- B% y5 ?- A4 q+ `/ `/ O
1 ^( \7 T! O; _' R* C y- (defun c:sc () (command "scale" "auto"))
7 z' u. g( h2 m - (DEFUN C:XO () (COMMAND "snapang"))
- M/ }. w+ C6 A5 p. \' w H7 v8 K1 R - (defun c:cc (/ a)" \$ _% }& }' T$ }" C
- (setq a (ssget))(command "copy"a"""m")), } n* ~* s4 P# R
- 9 E% v: _% L2 m" }8 z
- (defun c:PJ (/ a)
0 ~* h' k; J# Z5 K; c# z h - (setq a (ssget))(command "pedit"a"""j""all""y"))+ w$ j7 M$ i$ F! w0 i5 n7 x
- (defun c:JJ (/ a)3 N* x- _, J3 b) s' r8 O! {3 o
- (setq a (ssget))(command "pedit"a"""j""y"))4 M; e. _, X" v* C: v5 ~
- (defun c:TN (/ a): d& B* o. T* p. N1 V8 E- l5 R
- (setq a (ssget))(command "change"a"""p""T"))- t- l1 N5 M" T Q( H1 |
- U: m- ~% X* Z! l$ J0 |
7 M& F) C5 E& b* U$ j. [- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================5 I) d F" t1 A! ^/ K& i/ f
- / { u* G- h% Z+ W3 v
- (defun C:IB ()(setvar"cmdecho"1)# q7 T8 a3 b2 u* A/ ^
- (setq pt(cadr(entsel"\nSelect Block:"))): D) w8 s: Z. M9 ^% }2 R
- (setq e1(ssget pt)) ' }( Q( e2 y1 Q
- (setq e2 (entget (ssname e1 0)))$ t" S" x/ y( Y/ B
- (setq blname (cdr(assoc 2 e2)))$ J L5 C! {% W9 w# S
- (setq oer *error* *error* err2)(command ".insert" blname))
& y8 F% Q' X* A' j: I R# a/ \$ U! |
0 L4 m( o' K3 d" e4 q) r# r: J; ~: h) e- (defun c:II (), z6 l: |3 K; @) ?! _! w: j
- (setvar "cmdecho" 0)' Y: Y5 z6 T! {7 [. w& `
- (setq olderr *error* *error* myerror)3 U0 z# V9 s/ \% w% U% {
- (prompt "\nSelect objects: ")
; K5 z) }; h5 u - (command "select" "au" pause)' a2 }4 T N* G9 {2 r
- (setq sstxt (ssget "p")
& a3 K8 a" m# S3 ?$ h - sslen (sslength sstxt)
- r8 s: v5 P9 L, A - ctr 0* [+ [/ {3 Y8 B% d# j
- )) K: o; i5 q9 C$ K7 t% f+ U4 ?
- (command ".undo" "mark")3 W1 Q! ?# G% H) C# ^% J! {
- (while (< ctr sslen)9 d i2 W6 _% G& v
- (setq listxt (entget (ssname sstxt ctr))
* P6 C8 p3 n3 K& D, h - txttxt (cdr (assoc 1 listxt))" [1 s r' [, w2 L( `- w
- enttxt (cdr (assoc 0 listxt))8 W) D3 Z% e3 _& H* |
- )
3 R$ R9 e' X4 P( W) k# \ - (if (= enttxt "TEXT")) w7 s' Q/ }/ j7 {. S5 e: R" x
- (progn. E7 n& ~. W7 N. M2 ]
- (setq testxt (substr txttxt 1 3))
I: Z* {8 v( k0 o - (if (or (= testxt "%%C") (= testxt "%%C"))
' ]0 {5 I4 N: u. o8 l - (setq newtxt (substr txttxt 4))
2 _3 Z4 R& I+ x. i0 _0 ^, |4 } - (setq newtxt (strcat "%%C" txttxt))$ H: H K7 l8 |( {- Q2 m3 a8 d- \
- )/ X% q4 C* K$ m+ N
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))8 ~( i/ {2 c" @5 d, f0 f9 d3 `" ?
- (entmod listxt)
, c! w! Q, N" v; m, \. i - ): q$ S. g$ y# M) ^4 H
- ), C0 E1 ^) i& I/ u
- (setq ctr (1+ ctr))7 l) y- {; d. ? M2 y: D
- )
5 |/ y1 W0 x! Y2 w0 E& o) S3 R0 `7 ^ - (setq *error* olderr)$ H+ z# I3 @4 y
- (setvar "cmdecho" 1). U3 _6 D$ a1 T- M0 r
- (princ)
, t5 i/ V" c8 M6 I; v - )
" M) t/ h) ~& S# F$ d1 n: w - 8 Z; s! A( _) [4 w7 ]
- (defun c:DG () L. Q- ]8 H. ?. x2 ]. ~
- (setvar "cmdecho" 0)1 B% E" y! K4 y
- (setq olderr *error* *error* myerror): Y2 s" z/ z4 V9 I' P
- (prompt "\nSelect objects: "), s7 J4 m3 s+ D, n" S" F
- (command "select" "au" pause)
: u9 g- V; @, O - (setq sstxt (ssget "p")& o" D6 w- \4 t+ U% `% C& r6 @9 }( p0 Z
- sslen (sslength sstxt)1 K- ~3 J1 c- [. z, S/ s& o9 l
- ctr 0
8 S7 U& J( k9 }0 d% n l - )$ C7 Q _1 M7 q: b0 r9 b
- (command ".undo" "mark")
0 {* p1 |/ |" N" ~& I - (while (< ctr sslen)9 J" s/ }+ ?0 E" E
- (setq listxt (entget (ssname sstxt ctr))
7 |7 h) r, v) `( v9 p# V - txttxt (cdr (assoc 1 listxt))
/ E' {- Y, m% {' d4 w2 M - enttxt (cdr (assoc 0 listxt))3 T& `3 b; x! N D5 y
- )# P0 N. o6 e) {' c; E' T6 E& y
- (if (= enttxt "TEXT"): B4 }& M" v) H; N
- (progn8 Y! ` B3 h' U( U* y) q0 r
- (setq testxt (substr txttxt 1 3))
( [5 ~4 ]" p2 v" t' P z5 y+ w& U - (if (or (= testxt "%%d") (= testxt "%%d"))
+ l) p* e2 `* N: K - (setq newtxt (substr txttxt 4))
8 f6 x1 p ]" h5 R0 d' `) M: ~ - (setq newtxt (strcat txttxt "%%dC" ))
# y& ~8 S: ]2 P; f4 p5 X - )2 [$ m5 o( ~. M% s7 W
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))( c! u( S( x# u$ a- T4 p
- (entmod listxt)
8 X! e0 }. S5 k - )
# ^9 B# G( }. s9 E6 [4 ~ - )
) D, \( u8 j6 u% @% w& `' ? - (setq ctr (1+ ctr))1 N7 |3 O; @$ X0 b$ ~9 l
- )+ S. `& A; Q C6 v$ u$ y3 e
- (setq *error* olderr)$ D- A, x3 [8 F* @7 x0 ]4 e: j# }
- (setvar "cmdecho" 1)
' k. ^$ B0 v$ [ - (princ)/ Z3 v2 Z2 q. h7 c/ G; X
- )
) R4 o* x! h, L! J, y. F3 { - * ~* u1 G& S) q) ^6 ^( \( t
- (defun c:PI ()
. v" F y5 B% T! m - (setvar "cmdecho" 0)% W8 x m- y" S$ O
- (setq olderr *error* *error* myerror)- o% |- e3 K4 H3 G& v' ^; C7 \
- (prompt "\nSelect objects: ")
$ j j, X3 z( f& R: B. B9 v - (command "select" "au" pause)/ C0 O+ e1 ?% @4 k+ v3 a5 p
- (setq sstxt (ssget "p")0 C3 ~2 s; T/ ]4 z$ Q+ @- Y
- sslen (sslength sstxt)
" Y5 D( Q: I/ [! `- i - ctr 0' E$ g7 c/ R" e+ Y' o$ j' Q
- )" q- p/ I. v6 q; O1 T, t6 u
- (command ".undo" "mark")
. J7 Q1 |; r4 X1 t8 t- Y3 t, `; w - (while (< ctr sslen)
0 y, z7 ^) v4 j/ B, X: d! h V - (setq listxt (entget (ssname sstxt ctr))( p- K7 Q9 u% M5 e
- txttxt (cdr (assoc 1 listxt))
3 T$ a* y5 V) Z7 j9 ? - enttxt (cdr (assoc 0 listxt))/ I* s9 _0 }! p$ K! R9 p) }
- )) R1 S+ h/ g$ E5 v
- (if (= enttxt "TEXT")
' W& v9 |6 s; u7 y; i - (progn( Q* M' Y7 C; {1 T5 v' Z
- (setq testxt (substr txttxt 1 3))
3 ?5 L" f5 n8 a \: b - (if (or (= testxt "%%p") (= testxt "%%p"))
+ L" w2 S1 Y3 a( m7 u8 j) w+ Y* b - (setq newtxt (substr txttxt 4))
. T8 F2 N$ C6 i6 s+ s- C* {+ L - (setq newtxt (strcat "%%p" txttxt))
4 M' {' i; }, S5 Q - )+ i3 `$ T! ^+ O u. ]9 t/ i
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
2 ~. g0 \. P3 j& d6 R6 q - (entmod listxt)
) c& c& T6 S$ K0 ^( c/ C2 E) ? - )
4 U) j8 l7 o3 q( j/ r3 l7 V( d/ Q - ) f1 N3 {0 C% ~. T b' z$ f3 w2 ]
- (setq ctr (1+ ctr))9 M, n2 D& p5 w
- )4 _+ U. A4 q2 k5 a. d# b% g! x. U. K# I
- (setq *error* olderr)! z$ |& M" F W: S9 l8 D, }/ I# @# ~ g! t
- (setvar "cmdecho" 1)
$ L. k1 m2 x) `, u" { - (princ)
8 X% i4 k$ Y2 P- |4 N' ~ - ); q" V# u7 D1 B9 I7 {8 i) E" r; j/ U
- 6 B( \+ C* X; d1 k4 P
- (Defun c:CB (/ a)
" S$ [1 E1 F2 j8 |$ U( C8 a - (setq olderr *error* *error* myerror)( Y" N0 a. v) s" z4 S, s v
- (setq ocmd (getvar "cmdecho"))- ] B: F2 c) C& o
- (setq oblp (getvar "blipmode"))
& c f8 r1 z8 |8 L) t - (setvar "cmdecho" 0)
# e/ [0 R6 M% t: d0 _4 u+ S Q% C7 q - (setq a (ssget))3 M9 p, H: Q6 z
- (command "CHPROP" a "" "C" "bylayer" "")
5 P% _- U7 x3 A - (setvar "cmdecho" ocmd)
j l: f; k# }* F( `: | - (setvar "blipmode" oblp)
) j& f# W. k. @; K) p+ `/ B - (setq *error* olderr)
1 c6 A2 f8 q$ L0 q, V - (princ)
" e5 h, e* J5 @ - )
z s h% W! l' }( K6 V0 \
, \9 d( P2 M( c( b& v- (defun c:LCC (/ co43 obj23 la23)
. M: r+ R% f4 D - (setvar "cmdecho" 0)
5 l ^. _' Q' f+ k& {3 `. q0 w9 S6 n - (setq co43 (getstring "\nNew color : "))
5 l8 P1 d% v" B/ p9 U. w( I: r - (setq obj23 (car (entsel "\nPick object on desired layer: "))); n+ \; Y& d2 E& c
- (if obj23 (progn
1 _1 w; e% B3 f- l; [/ y$ ^; H - (setq obj23 (entget obj23))
- B2 J5 e& {4 ^) m - (setq la23 (cdr (assoc 8 obj23)))
& t6 \7 p1 r; \: T% e* m. i - (command "layer" "c" co43 la23 "")
1 v' V6 Y/ N: v( f* l0 t, H - )
( U" R. ?' v# J; N - )2 A5 ?& c7 j: n& i9 {1 e1 N
- (prompt (strcat "\nLayer has changed..." la23))
. h9 R/ W& O: H7 G7 T$ \ - (setvar "cmdecho" 1): S8 k. I6 u" m% h& c v
- (princ)
1 @: j5 a! f- `+ k5 D0 { - )
$ d* q8 B( m" m# z
7 ^2 \$ w; G4 N- s3 k( i- (Defun c:RP (/ a)
* f# `# ?4 H9 y( s% q$ G0 Q* e - (setq olderr *error* *error* myerror)
( Q! w u% X# K# x3 o( ^ I - (setq ocmd (getvar "cmdecho"))
6 t& P1 \! l- D+ B' U& M* l+ ^ - (setq oblp (getvar "blipmode"))
+ X5 s1 m# f5 v& X0 p) l. l0 T - (setvar "cmdecho" 0)
! A9 s: l2 ^% K: @3 ]2 m - (prompt (strcat "\nUSE: Delete object(s) belonging to"& ^9 N( g! X0 q" n; I
- " the layer of the entity picked...!"))
& ]2 H$ ?* H# r! l - (setq a (entsel "\nPick the entity with the desired layer to delete: "))
) z4 I2 t4 J1 i% t - (if (/= a nil)
- X d; b x. C; U& C+ f - (progn (setq a (cdr (assoc 8 (entget (car a )))))* W# x9 M9 ?0 p, ] V2 @
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))$ a- I4 J# P: T
- (prompt "\nNo entity selected!"))
% D, w4 W. t5 h5 }; m - (setvar "cmdecho" ocmd)
6 C/ {$ D% w; H - (setvar "blipmode" oblp)
) Q* E! {5 O i - (setq *error* olderr)+ l4 O8 N2 r# _% X, M$ n
- (princ)
4 e/ v) d! W4 Q% L; b2 o! b - )% q/ u2 N- W: j f
4 A0 Y ~) a x5 @' J1 j- (DEFUN C:WL(/ SSET NET SSL M)
: C0 [; \7 m& R9 Z, n. {+ \1 d - (PRINC "\nSelect lines :"); ^- T8 e1 m& W5 D5 o
- (SETQ SSET (SSGET))& G3 q* z$ D6 _( ^8 ~, q) e
- (IF (/= NIL SSET) (PROGN* Z: J) s8 y8 p% [$ ?) l
- (SETQ SSL (SSLENGTH SSET))5 I1 V' N- [8 o+ Y0 j
- (INITGET 4)$ ~" a& Y* U2 ?- {" K" C
- (SETQ NET (GETREAL "New width : ")): c. X/ n, A& f8 k X
- (IF (/= NIL NET)% b; L: p( C0 A' ]# i6 b" X- j. A, ?
- (WHILE (> SSL 0)
; T6 J" r: N5 `/ q - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))3 I. o: c- F+ P( P) k
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
b9 `1 o9 n( B3 Y f: m& n - (COMMAND "PEDIT" M "Y" "W" NET "")
6 [& x2 F h% k" V - )
3 G" x0 z+ M3 _! F4 h* \0 E0 Z - ) % C* A& @, j( [4 A& L
- )))
, k* ]$ [0 H0 H5 Q. I* h - (PRINC)$ O0 `: _; F+ r2 V
- )
( Q: S+ o4 H. b6 c
0 J( a6 B7 e) [" M3 ?# [- (defun C:MML (), p! M1 h6 E# `
- (princ "\nSelect objects to move to another Layer.")
6 O9 k7 t4 T9 C, u) k - (setq ss (ssget))
# L' m8 L( Y! O0 n7 v& Y1 w - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))# _, i) T& l) U4 `0 c& N
- (setq counter 0)! t7 D- D. e2 z
- (prompt "Moving to layer.....")(princ ul1)3 ?/ P+ r4 ?" H9 u# O
- (setq e (ssname ss counter))8 ?- \4 Y* m9 S$ |- j0 u( `7 {0 H
- (setq l (cdr (assoc 8 (entget e))))
, w/ p- Y# v$ \- ^ - (setq S (ssget "X" (list (cons 8 l))))
' j) `$ Y; D! C# e& w) ^* b - (command "CHANGE" ss "" "P" "LA" UL1 "")
4 Z! Q/ e8 J8 [* m z" m; l9 Z3 T - (setq counter (+ counter 1))
6 J3 U/ M" z1 i- i7 @) W; B - (princ)
9 d4 a ^. Q" @( Y6 M/ ^ - ) 6 P0 {& c+ L! F8 {' P4 t- W* \9 x' O
- * L* `" W: A2 k; u9 n/ q( D
- ;;; ================================ GHI CHU ============================
; S! c( c9 e" R; g7 x y - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
- N/ D6 b! r! Z& l) n - ;;; =======================Thuong Dung Font Romant.vnh===================: w' D( F& r- ]9 z9 w& z4 k% ^# e
' t7 `& W1 g5 Q" k! b- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
4 R5 Y# {7 p' _ b - (setq oer *error* *error* err2)+ I# E& b: [+ }8 g- |0 g$ Q' X9 E
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
; W; ]8 Z. ~4 u r: Z* U6 X - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))8 A6 R% h8 } a4 F+ j0 A! R
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))( L9 ^+ @& E4 C" L! j
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
9 v& D6 }; L, Y- |: L! C - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
4 B# q- R' K; k; Q& N - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))4 Q+ A- Z3 w9 P$ \& e5 v
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
: k6 Z2 O7 _' L1 C9 z" o$ s - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
2 N; o' I2 W# x M2 c - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
. P5 { ?5 H' ?: E$ h, W - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
8 H; d3 r+ s3 v7 Y# o h8 k9 _ - 0 l. F( ?' z" }/ ~! H* H" j& A9 l$ {
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))9 W; G9 {5 e! A1 s4 Z; J1 @- X7 J
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))1 F2 p x1 a9 p O6 i8 b
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp")): V3 |% l/ Y: ]1 s7 M/ u
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
7 V F. ]4 x0 K1 C - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
! S* v4 }1 }0 |# w+ h7 O! W - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))# ?2 |1 E6 L1 W f E2 R _ ], r6 {
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))( J7 [6 U s |2 {+ x. I6 ]
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))6 J3 q/ U4 O/ ]5 t3 R+ q8 }
- # S6 d; A& c+ U0 o0 ~0 z
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))% n: U% g4 W6 U3 c2 s
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
; S) u2 O1 l: Y, v5 |! _ - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
! t1 _( F2 M3 c! ?0 }9 L6 I - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))0 q8 S Q) l* P
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
, X' E# H3 n& |4 ^ - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
& P# i3 Y! l- D - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
" W2 e9 C2 A, l. y; L: Y - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
+ G" C) r: z8 ?4 \; R. I - (setq pta (getpoint
# C m, C# i8 M! T& p9 s - "\nPick first corner. : "))4 b9 r% O% t D7 F
- (setq ptb (getcorner pta- F/ B+ ^0 t) n# K
- "\nPick second corner. : "))" H$ _/ m4 U1 C+ e4 H5 C
- (setq ptc (list (car ptb)(cadr pta)))
* O0 {# D# }4 b3 x5 z. M0 _ - (setq ptd (list (car pta)(cadr ptb)))& V B9 D6 G" ~: ` e' c
- (setq ang (angle pta ptb))
, ?8 [9 x" f3 l8 J - (setq d1 (/(distance pta ptb) 2))
9 `5 E/ p+ L5 m6 N - (setq cp (polar pta (- ang (dtr 0)) d1))/ r. k. T/ A* |5 @( M
- (setq X (distance pta ptc))$ v }' j9 D% C# v/ D
- (setq Y (distance pta ptd))
. @- C1 ]' ]3 U; N - (setq X1 (rtos x 2 1))% J0 f: v2 n7 ^! E% X! U
- (setq Y1 (rtos y 2 1))
( y% p4 T( f; p - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
$ W" P1 [8 c/ j - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))5 o1 @7 }8 S. J) N- c6 I
- (defun dtr (angg)
s8 ]% Z6 | X2 o3 d: P* @ - (* pi (/ angg 180.0)))/ e; F# j5 E8 [! _. z$ f
- P, y/ i- n, E5 A* L- (defun c:WS (/ pta ptb rmsz pl1)0 S4 W) H1 @2 X- w4 R
- (setq oer *error* *error* err2)
P- m% b2 U' u t4 x% g - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")% D+ E' x0 q+ y; o& u8 l
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
) ]6 _6 \0 z& F9 @8 |6 j0 l
& h, X1 E: _2 }" T& ]- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
2 E7 y# i* I$ ^ - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))# S7 K3 e k9 l+ a9 ^
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
' Q7 S: h) r& T+ g+ t0 ? - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
/ z( C. Z( K% s: h. \( D8 H - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
3 K3 s, {7 N4 a$ {- [7 q4 H7 R- ]( N0 B - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))+ V% ^! ~9 D. q; L/ ?- r, v) J
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
2 {; j! ]* }/ J) S! ]+ o. @
9 T0 a5 m2 ~* j0 K* k- (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"))
; b) o; s6 C! a) k. | - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
. Q2 y/ _' K5 K - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))+ ^: j2 F& L y/ V. n/ y
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
, d: b2 R+ F! ^% d! {2 h7 o - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))2 g7 r. p ?2 K4 L8 X
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100"))
2 i8 x! ?; I3 Y# @ - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN")): n# S: G9 R4 v. C' o$ e
- (setq pta (getpoint
. ~, o) l- J3 ^. H9 W4 s; a+ S: P - "\nPick first corner. : "))
! t+ a- }$ D3 Z5 p0 r - (setq ptb (getcorner pta* i& B6 O' d" V/ ?! d- a
- "\nPick second corner. : "))! e9 G2 K4 O( [
- (setq ptc (list (car ptb)(cadr pta)))
0 @/ i: W, t2 E0 z) D6 k4 U - (setq ptd (list (car pta)(cadr ptb)))
$ t' \$ C. U# w: Z - (setq ang (angle pta ptb))
1 w- l' E" P9 j2 o& W8 U6 X - (setq d1 (/(distance pta ptb) 2))" o) Q0 k3 k/ D
- (setq cp (polar pta (- ang (dtr 0)) d1))5 M% O) @ l2 t H/ a
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))8 c X9 J" \9 `. @& `( i7 g
- (defun dtr (angg)1 g& S3 ^, }+ b8 k/ ^
- (* pi (/ angg 180.0))); I; e0 R- X: C/ w7 q9 `
- # m/ s& j9 ]. A, e, \" A- F
- ;;; ================================ GHI CHU ============================
* b; f+ t7 M# d# W+ J - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
# }+ N' z# X8 R/ x. `/ W - ;;; =======================Thuong Dung Font Romant.vnh===================
% K2 f# p3 ^% ? - " Y! z+ a+ O2 a% c. C
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
1 f7 ^" _% m6 m0 r! v: c; ] - (setq oer *error* *error* err2)6 U% r- z( I# K2 d5 G
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")- @' u( X; {/ n# \
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))6 p( J- {0 H c" @
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))6 M* y- i/ L2 [5 X- y: U! i
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))7 J4 {. D6 W1 @4 V6 E
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))) L" n; q7 b* e. y, b. p0 a
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))# R+ b( J! V! c6 s C2 Y$ j1 b* b
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
* h4 Y% l& s+ \* |+ K9 O - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))8 U3 L3 j* w7 l9 V! i' ]' n
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
9 t! D% _& b* a - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?")) w# Z: F+ {: Z0 d7 K
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
- Y$ F" v. d6 D; g - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
0 q5 ~* x1 w+ {4 Z - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
' o, ~7 g2 F% V" X) f. Y0 n9 F - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))/ n# M! y8 \' Q6 K% M
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))" Y& H5 C; a- S9 S- e/ }; ~% n
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))2 }/ H) q9 I7 E, B' U8 \: ]
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))' f6 z& }- e4 Y( W& R+ i2 J
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
0 C5 v& l6 `. Z% j- B - (setq pta (getpoint: r: N; q; ]6 U) e4 U
- "\nPick first corner. : "))" N$ X; t1 }7 Q& u1 K; V( R
- (setq ptb (getcorner pta/ x) K5 I: c# v: w8 R; q
- "\nPick second corner. : "))
6 s, w! [9 R. T) ~, u g' r - (setq ptc (list (car ptb)(cadr pta)))" K9 n0 Q7 S" x+ j3 ~% ?6 P
- (setq ptd (list (car pta)(cadr ptb)))
( o" e+ O, |% Q. w0 j1 [7 k% p9 f - (setq ang (angle pta ptb))
4 g5 C" W5 p9 a - (setq d1 (/(distance pta ptb) 2))1 u8 c+ v2 h& W$ p i' J F- ~
- (setq cp (polar pta (- ang (dtr 0)) d1))
4 s8 L1 M3 p) d8 f - (setq X (distance pta ptc))/ k1 |: A: ]9 j9 s
- (setq Y (distance pta ptd))
* Q+ x7 z8 Y- ?) X7 V - (setq X1 (rtos x 2 1))
) Z. c6 ~: Q5 \3 P+ x - (setq Y1 (rtos y 2 1))- {- W4 J0 b! _/ _; d: d% L
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
9 r6 G# ]! l. r - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))) G6 X0 T0 r: e9 F$ [
- (defun dtr (angg)( y% V1 a# o- p6 Z3 J9 M
- (* pi (/ angg 180.0)))
1 ~ d9 w" [- x* C! B - 1 b6 S9 ^: t8 c5 N: G
- ;;; ================================ GHI CHU ============================
) V* p- V0 q- a5 X, O - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
7 M; w6 ^& _+ k) b W - ;;; =======================Thuong Dung Font Romant.vnh===================$ ?: C2 }( `; s/ B% q
6 k8 f( w& t+ } s* x- (defun c:GS (/ a b c d)
6 J0 j# j% C v1 {7 \ - (graphscr)
+ ?% ]/ p5 M; v" ]) }( t - (prompt "\nSelect text to set style....")( T) V: @, A6 _2 u& m+ k1 i! a
- (setq a (entsel))2 f/ ^$ L& D& J/ W3 s. H
- (setq b (entget (car a)))
* I7 c8 E% `# t4 R3 z - (setq c (cdr (assoc 7 b)))
; V3 B7 M1 _9 Q9 | - (setq d (cdr (assoc 40 b)))9 F8 F" }. q+ J8 s" f3 ]
- (command "style" c "" d "" "" "" ""))
( P9 h# U) e; r2 N4 }. } - (princ "\nType GS to set text style.")% K/ L* F+ b% w+ L6 J% p
- # _; P2 G. B# t; T5 |9 T
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
) V9 z2 _7 ?) \7 J - (setq olderr *error* *error* myerror)
- C( ~1 M, R" P - (setq ocmd (getvar "cmdecho")) o2 x4 K# c3 o4 k
- (setq oblp (getvar "blipmode")) y/ d. Q; p2 h: _ A$ _
- (setvar "cmdecho" 0)$ B4 \! o; F8 F- ~# \
- (initget 1) ;3D point can't be null; D% {; S" [; i
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
8 w; D6 O8 \" F: X' Z; v9 _ - (setvar "ORTHOMODE" 1): [! M/ O- [5 e& x1 p
- (initget 7) ;Length can't be 0, neg, or null' R6 m1 \5 H E: V% [
- (Setq l (getdist pt1 "\nLength: "))- Y% Z6 x" b! U/ W
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
) R; q; A6 e6 Q! T - (grdraw pt1 pt2 2)
' B; O& c# ^: h - (initget 7 "Square") ;Width can't be 0, neg, or null
5 ~7 \ {8 D( t7 |1 a3 t - (setq w (getdist pt1 "\nSquare/<Width>: "))) Y2 c1 W! A* ]$ Q' k
- (if (= w "Square") # w8 t2 Z% T! T+ B2 d
- (setq w l)
. O% Y& U& i3 k - )
3 V) w% J) [0 L% O% B; Y8 | - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
$ p0 X4 r1 y. Y - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))$ Q4 T. [! f8 K. F/ u( N4 l( r
- (grdraw pt2 pt3 2)
4 k# v' V/ @4 T D - (grdraw pt3 pt4 2)7 F) }0 {& [7 p/ p, A; e' ^( K' `
- (grdraw pt4 pt1 2)8 F* S5 P/ ]$ O+ o( C" S8 }
- (setvar "ORTHOMODE" 0)
6 B8 Y6 o9 S1 y, W) k4 e - (command "pline" pt1 pt2 pt3 pt4 "close")
% T" [8 M. b3 q5 h- v9 W - (setvar "cmdecho" ocmd)8 Y- l) Q: C3 c
- (setvar "blipmode" oblp)" I G* v# \- V8 ~0 a. ]
- (setq *error* olderr) ; Restore old *error* handler
5 q% l( c8 f" N. g, j2 g0 |; J - (princ)
; X7 {9 v* A- V- A8 |* D# I - )0 e# \5 g) V+ d5 D
- , C, O+ @) r* `9 X" F/ G8 c
- (defun c:SG (/ ent pt1 pt2 ang)& V: H* B) e- [0 k2 F
- (setq cmd (getvar "cmdecho"))
- `$ r7 U. R7 a5 c) T" t - (setvar "cmdecho" 1)* W! H( H, Z8 Q: ]
- (prompt (strcat"\nSnap angle will be set to angle of line")); {( p' r& |0 r
- (setq ent (entget (car (entsel))))" Q9 q: A6 k7 v! i. I) D1 h1 V& }1 A/ }
- (setq pt1 (cdr (assoc 10 ent)))& Z3 [, b/ `- m2 }0 A+ ^
- (setq pt2 (cdr (assoc 11 ent)))
( C6 e7 Y3 l3 P) A+ \" E - (setq ang (angle pt1 pt2)): U0 }/ o' b. d1 E1 Z2 J
- (setq ang (/ (* ang 180.0) pi))% P- L! p* M9 q8 n! x
- (setvar "cmdecho" 0): T" m, d* K7 i& v ]/ y( i/ j
- (command "setvar" "snapang" ang)
5 B0 J$ Q% ]8 k$ h - (setvar "cmdecho" cmd)
( n i2 I! l+ ~* g - )1 U; x) m4 I% A; c
- . S0 C. h% R1 B6 M
- (defun C:TG ()
! F1 g1 c1 c/ K& J& x - (initget "Increase New")
& J7 o. Y7 ?! o0 F! T& T" n: o1 X - (setq ans (getkword "Increase/<New>: "))
5 v/ u1 G- `& A6 A) P( O - (modang)
) ^8 R# z5 r h! J( X2 Q; x - )( p8 U6 k2 c+ t0 B3 c
- (defun modang (/ ang ss ca e na ssl)
9 z0 S9 I: ~! o9 ^, P - (if (= ans "Increase")8 h, L, J+ z& s% h0 m7 s. R9 V T
- (princ "\nIncrease angle for text by: ")" K# D$ u6 h: i4 V4 e# N; `
- (princ "\nNew angle for text: ")5 ?8 B# D A y9 \% B
- )
5 R0 {( a8 u, l B# ?. O - (setq ang (getreal))7 l0 S- p# M$ k; c
- (setq ang (* (/ ang 180) pi))% P1 c4 C4 L' a: M; i3 _! m* A
- (setq ss (ssget))9 v5 P7 y' E! [$ e& {8 }( j7 I! I1 c
- (setq ca 0 ssl (sslength ss))! i# m$ c- V% _
- (while (< ca ssl)
. T2 ]8 m0 @# `3 D$ H9 ]* H% } - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
; @ \& N+ l5 N' v - (progn; l; H: K+ X9 v: A8 F' ?
- (if (= ans "Increase")4 i s0 x5 S8 S8 k
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
4 w, G( `; L0 o! X% [4 ]. _ - (setq na (cons 50 ang))) q0 ?. s/ y! _, C6 k0 _& j; N
- )$ z4 R3 }% M+ N) k' j$ A }7 i" I
- (setq e (subst na (assoc 50 e) e))# b9 q$ `' V$ d/ V: r- P$ T
- (entmod e)8 B0 { `' j; T. C$ i8 L/ }6 D3 b
- (setq ca (1+ ca))
- k6 e1 \/ L q. ^ - )
. r$ x) r3 a/ E$ k$ M - )
; L9 \& \) M1 F0 ^$ [6 k& | ]) \ - )
3 D' f& x2 h6 s$ R- |' z$ g; L - (terpri)/ n+ x8 `- E, H C/ P& K& K1 p
- )" \" h/ ]% t8 c) D
8 F5 u p8 \1 G. I- ! _5 A9 r! M( a- |2 x4 N
- (defun c:WL ()+ K; |) @. A; L, R
- (setvar "cmdecho" 0)
( f* U3 |" |9 t) }0 g0 N7 x2 D a - (setq a 1)
, T, h7 _4 j/ T/ O/ k1 ~# v - (prompt "\nSelect Polylines to change: ")1 M5 G9 i! H) z$ s$ P; S) n4 S0 z
- (while (/= a nil)
! U D# W7 i8 @# \6 p. J6 V% S - (progn
* E) \0 W* v6 N4 v) h - (setq a (entsel))
9 f4 f8 l; l, s5 T" P - (if (/= a nil)
) n1 |$ x1 a$ R! p1 P5 | W; h; w - (progn" `% F, P5 x. Q& {. @! I# M8 k, w
- (setq b (entget (car a)))
& ]7 a* t& f4 k8 d' n6 A: x: K - (setq c (cdr (assoc 40 b)))
, V' p" \! V; n& E - (princ c), _ D3 b5 P1 V+ e/ x, ?+ {" l( e
- (command "pedit"a"w""lw""")6 U8 t) q2 v; _/ ^, [
- )))) - R3 _8 Z# G& ]) N
- (princ)4 @ E9 y6 h4 a. |& g8 U9 e$ C; R
- )% _! N5 W" r4 Q
- ! _ A( z1 j4 b% G
- ;;; ================================ TEXT FIT ============================/ g) g# I3 M. g6 G
- ' W% Y) T/ h L0 i3 w, q4 V8 v$ V
- (Defun c:FT ( )" I5 }8 l0 o ]$ b8 t
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )! `5 g/ |8 r5 r) } l* |' P6 q
- (Defun LL-xyz (arg) (CAR (TextBox arg)) ). }" D5 w. i% O
- (Defun UR-x (arg) (CAADR (TextBox arg)) ): y& |% w/ L+ k& ^% [
- (Defun LL-y (arg) (CADAR (TextBox arg)) )( K4 x! R" e( J5 u/ M3 V" P
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
0 Z2 {1 F/ p2 m! Y6 s - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
/ o* I2 P) ?' b0 z. f - Textent (If ename (EntGet ename)) )
; @) W" ^- Y: T* k/ ]2 z9 r - (If (= (CDR (Assoc 0 textent)) "TEXT")
; ?' I$ B4 p# | - (Progn (initget 0 "Start")7 H3 ~% z% {; z* Q1 o4 V
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )4 K# }8 d4 w4 W% X
- (setsnapang Textent) ;set snap along text entity
6 p" t' n, h9 A) ? - (setvar "ORTHOMODE" 1) ;drag along the text2 ]' o5 E3 H6 a3 B8 X/ R) Q
- (setq - C# E! f E; g; ], Z8 U5 p
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") ). Q! X# A1 M1 O4 `) P# f: x3 D
- (setvar "snapang" 0)) y) y' q0 u# O
- (cond% ]' \4 S! r. k P: I6 o( y
- ((= (type TMP) 'STR) ;;new starting point to be selected
1 e+ W: q7 a4 i) z - (setq Start (getpoint "\nPick new starting point: "))
9 u3 F9 `; F) x) v - (if Start (progn# }3 C! B7 C( }. } a- Q, d) U
- (command "_UCS" "_E" (cdr (assoc -1 textent)))9 |& n7 Y9 w% x
- (setvar "ORTHOMODE" 1)8 t* Q0 P8 d/ o9 A5 i9 K. P9 p
- (setq NewPt
( |: A4 b ]. ~% F. Q& J - (if Start4 k* u7 |+ e: H. L4 N: B- L
- (getpoint (trans Start 0 1) " ending point: ") nil ) )
! u8 d8 U7 G4 v U - (if NewPt (setq NewPt (trans NewPt 1 0)))
5 p/ i; f* f: f8 }' r( R - (setvar "ORTHOMODE" 0)
; c) V' m1 f) l; Y1 I+ j7 B - (command "_UCS" "_W") ) ) )
8 ~5 a0 U/ R7 n5 H4 J4 } - ((not (null TMP)) ;;new ending point selected( P; x1 ?) Y4 G& H3 p$ y
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
6 M6 `9 T5 c k4 s. s - (t (setq Start nil NewPt nil) ) )3 ?9 e; T1 Q' A6 L" ~3 M
- (if (and Start NewPt) (progn
: y8 e; a' f, C1 I' p- P - (setq Val (Assoc 41 Textent) ;;current width factor
" U" q- |0 V1 w7 }% l6 |; P- b2 T - Val (if Val (cdr Val) 1.0) LTC_% 6 L% ~3 Q( E. a0 |* ]
- (* (/ (Distance Start NewPt) NewEnd ) Val )
) p( ?7 m4 l; n: ~: T - textent (Subst (cons 41 LTC_%)7 e5 W* J' ]' r# E
- (assoc 41 textent) textent)/ S% @2 p' n0 C( {- P9 G
- textent (subst (cons 10 Start) (assoc 10 textent) textent)- i! w! {9 w/ ~- f+ C* f4 G
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )+ h6 [ e: Y [1 S7 m
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))6 M# \, `5 N6 u( Q' r
- % `+ W( N% v4 z- u! k/ p+ O
- ;=====================================================================, |1 L X# k* ?( [* U) h& }
- ;=========================COPY + ROTATE ==============================. I: A/ I7 W Q K( x
- ;=====================================================================" x" c/ {' e% P# k( L' W' w+ Y" k; A
- 2 P4 Z3 v4 q3 V8 w
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2): A! G. m! k* r, U+ A c7 i
- (setq olderr *error*
9 D1 M' s# M& Q; T - *error* croerr)
/ a: B% c2 |9 ^; G' C9 _* R( P - (setq cm (getvar "cmdecho"))7 n4 x7 W& Y" {; z) _. |
- (setvar "cmdecho" 0)
4 V+ S* K- K5 {" e+ d: k G+ i - (setq loop t)6 S8 j( ^1 y( L1 Q' {9 e4 ^9 w% w- m: D6 a
- (while (not (setq ss1 (ssget))))
* o- [- w6 |( I - (initget 1 "Multiple"): U8 A2 e b6 j, f0 K5 |# g4 ~
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))- ^& q- w( ?7 F. M
- (if (= bp "Multiple")7 A6 p% Q; I2 c c; ?9 _
- (progn
& l9 J2 \9 t. K, _ - (setq bp (getpoint "\nBase point: "))- f$ O6 H# q4 r% w" h
- (setq mult t)1 i! Z1 O1 Q$ \9 a5 V5 B
- )& T& \$ E+ l0 Q9 k: Z
- )
6 e- z4 W" c- K! w - (while loop
& v+ L' `8 E6 x! H$ e" _/ ? - (setq loop mult)# l0 r2 v/ K& W. T i W
- (setq lent (lastent))( o X m# P+ k% ]" ]- V5 E- U
- (command ".copy" ss1 "" bp bp) V) v; P. C9 M! E% ]: \
- (setq ss2 (lss lent))
2 Z8 M$ h+ J. H6 Y( r - (setq lp1 (getvar "lastpoint"))
" U4 f+ ]0 d! v Y% I: e - (prompt "\nSecond point of displacement: "). u8 O* G8 [# }: e/ _
- (command ".move" ss2 "" bp pause)
) c) I% D* c, ?# `3 {) ?! @9 o - (setq lp2 (getvar "lastpoint"))) k/ q( O0 x1 c" R! _
- (redss ss1)
2 u' Q7 X3 ~" B( `' j - (if (and (not mult)* P7 B1 U7 @# Q5 R& l$ J p5 P u
- (= (distance lp1 lp2) 0)) x T# C9 o7 ~+ l
- )" _' G8 b/ A( s, z: y' m
- (setq lp2 (getpoint "\nRotation Point: "))
% Z. l( G" X- v8 b1 x7 j - )
" r3 D: L' h5 V+ e, L9 S& | - (if mult* C. y* m1 }' e$ Q* x
- (prompt "\nRotation angle ")
* ~2 u, p8 }% O9 v+ p# J - (prompt "\nReference/<Rotation angle>: ")2 s; h) N5 O% \$ N7 K
- )/ g8 I7 s* u B$ K( _9 Q/ C7 I" e6 P
- (command ".rotate" ss2 "" lp2 pause)
' U. F! d6 f; {" z' H3 F% `( F' d) l - )
/ }! S6 @9 E4 |. C' V* s - (setvar "CMDECHO" cm)4 n7 j/ P2 |, E
- (setq *error* olderr)
7 }7 J3 C& }5 q( X5 x - (princ), J( G: [* G( z+ i
- )5 U' t* G, |6 \ g
- (princ)! T) {3 B8 H. Q" E9 i
- (defun croerr (s) - I! A$ L& w# v8 _( f( W1 U# ]
- (if (/= s "Function cancelled")
7 ]$ m& a$ S! X* D# _: h - (princ (strcat "\nError: " s)) U! \2 d5 M' x* r% X. k
- ) " Y& d% R: u) q* Y
- (setq S nil)
/ q7 j3 i2 |0 K. Q1 O4 Z/ P - (setvar "CMDECHO" cm)
0 K0 |$ O. L2 T - (setq *error* olderr)
" T1 `! R" g Q5 p - (princ)
6 P4 @/ }7 ]2 B4 u - )* W9 E0 c$ p, k1 O0 j' o# Z
- (defun lastent (/ a b)' a/ }, Z+ d4 c$ |* }
- (if (setq a (entlast))
9 c6 g) {% K2 E+ W) b - (while (setq b (entnext a))9 e0 P: Z6 G# f: e1 e
- (setq a b)
4 s/ n7 g, d+ u$ C! a2 O - )
2 G% D3 E# m* U4 i% l0 Q5 ^ - )4 E( M9 T! m" U8 M1 r
- a
7 ~' D2 z, {5 F0 `& l$ e - )# l4 U4 s% p1 X# s+ m+ m! u" V
- (defun redss (ss / en i)
7 ]9 O9 G1 c/ @5 l b6 u - (setq i 0)3 S4 K& s6 j; }: r5 U, B
- (while (setq en (ssname ss i))
$ j: D1 m5 K$ J( D. w - (redraw en 1)
! G% \: f% Q9 }! Q: r0 O - (setq i (1+ i))" ]7 v8 O2 f! ?* N
- )) p: s3 U2 n% B- I6 H9 p
- )5 _( l/ V, D! d
- (defun lss (en / sels ed)# ]' i) g7 f$ ~! \# d) e/ `5 B
- (setq sels (ssadd))( @! j* V- U2 S
- (while (/= en nil)
: n+ O. S$ g8 I8 R5 I - (if (setq en (entnext en)) (setq ed (entget en))), W* w; `+ @2 s& K7 O
- (if (/= en nil) (setq sels (ssadd en sels)))( v" |9 W$ G/ }' p" |: r4 _
- (if (or (= (cdr (assoc 0 ed)) "Polyline")
9 E, h* n$ r' V - (= (cdr (assoc 0 ed)) "Insert")
1 g( w' |3 b9 o - )
, _* C$ t0 G w# [. ?( i - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))1 T$ ~- Y& n6 N- Q7 O) Q3 F, x
- )
* t" R3 S3 X. | M - )8 P7 u9 }+ W' [+ t" W( u
- sels
" z5 u+ u R& K' R - )# T+ K' ]2 s7 p( W
- ; o# h! {) V' V# e9 L4 n' a" W
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================& F0 _5 S9 g0 x$ `* X
& h+ q0 ]/ ?% k `$ o- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
9 a+ L. `7 c( a2 m - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))3 m8 G; h1 `) _; l! r. J
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
0 M' s& C% j. D - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" "")) j" _, H: T& s
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
! Y" @5 @0 z- e2 q - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
, y. q' @$ ], d$ q: U - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
d# r% ]8 J) A. F& q$ z+ t5 F t. v - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))) @: A) o6 z5 b0 K
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
5 M% E! B! w( D& J8 x - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
$ d" \0 J; g) b& x5 Q& |' m7 R - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
$ v' k7 o: B3 O f9 m4 Z - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))! {+ G9 [ J9 }' Q7 L1 c
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))8 x0 x1 g" e& D* L N# T
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" "")); N% [" |9 {" `4 B2 h( n2 Y
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))4 s* W+ [) {, M; r1 Y- D+ q" r3 u
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
4 K J) Y/ I( y. } - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" "")), C! A& I! f6 a) Z) G. J( T. p6 [ f: @
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))3 C9 E) ?' \+ }. G
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
' q ]* e# B1 _4 n% s - . d2 R! T" y# D' s/ R
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
, k0 i' p; _- |2 _: r) }( i) j
) u3 J' f, G& M; n$ Y! L- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
|0 w4 {* n# I2 v" J1 @# R ~ - + w! P; L7 G" V2 X7 ]
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")% H5 S; c# u2 e, F4 g8 ~' R+ F% `
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")6 Z$ c% O# [, T* E+ [- Z1 Y$ N
* y2 x% M9 M; X; [8 J9 D, J' `- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
# \1 C3 T0 Y* F1 L! k
: t' L2 Z/ h) w: N% A- ;(DEFUN C:netxuatanh ()
/ p% b$ M. w8 w6 H, ?. |; F - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
# W9 R0 E c# T6 H& ~: h - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
/ w6 Q9 [, g/ H k! E v - "M" "MANH" "C" "9" "" "Lw" "0.5" ""* `" `& s) ?0 D& c: O( O4 n4 j6 w$ C& }7 s
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
* I) w& W8 p! W* c - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
5 U3 y: V+ A }! \0 U - "M" "THAY" "C" "7" "" "Lw" "0.7" ""1 z3 T" ?; w9 k" u
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
( R; Q) K& }# m& s - "M" "HATCH" "C" "5" "" "Lw" "0.35" "". r# b4 B6 B) z; K3 N( Z
- "M" "COT" "C" "2" "" "Lw" "2" ""
. n! J8 R; U, y/ \ - "M" "Defpoints" "C" "7" ""/ Z& Y6 \: R( k( N: @ S u
- "M" "0" "C" "3" "" "Lw" "0.5" ""3 n3 i; F9 S7 k
- ; "M" "1" "C" "1" "" "Lw" "0.5" "" k, U" O2 G3 Z7 j7 V) Q: x7 J6 A
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""
% H8 s( m) S- d6 o8 P/ c - ; "M" "3" "C" "8" "" "Lw" "0.35" "", l# A/ p4 Z: n
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""! b2 @- k) t* j0 A- P: ?5 M0 r! H c, v
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""
% Y- b" h( P J% F - ; "M" "7" "C" "7" "" "Lw" "0.4" ""
& b v" q' N) P1 C6 L% { - ; "M" "8" "C" "8" "" "Lw" "0.35" ""/ n! j: Z1 c) }% A. Q/ k
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "", V1 V( ~6 }' V4 Z3 g
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
2 w+ a/ J$ g% a: [+ t7 g - "M" "KE" "C" "8" "" "Lw" "0.3" ""1 [4 E! g% e7 `( G
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
# f# k' U5 _) J/ a9 \7 V( I6 Y - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""' |# N7 _2 F4 o
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" "" m% Z) y l; B4 t2 y; J6 S8 Y
- "M" "TBD" "C" "2" "" "Lw" "0.8" "" d' j n% _, K) {/ u/ O* a/ r
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
( ~/ U" V1 F: A; v8 ~: a - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
! [; T$ `' f6 g( ?* ^: l - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
' H3 l: b. |+ U1 g: P8 A - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" "" C8 r- a" k+ ^- V) A+ h5 F
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
4 }4 H; q( h$ J, ?, _: L s$ H# g5 E - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
! C- F7 B; W; T& s - & \1 i; E5 u, O+ \. ]
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===: c ~5 I8 w! d
- & M' {6 h l0 x( J) s
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""4 D: V* W5 O2 T( T- \
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
# ]) N: \6 l3 _% |" P1 ? - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""* G7 \$ j8 Z6 _. }$ P% {- P
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""
2 `* }- A7 P* J; | - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""; d1 d4 a4 m$ z' O
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
# r+ K8 d6 R1 C: x( i7 _$ p; A
" C* x/ ~$ a5 E# P- f, w3 c- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
2 _$ x4 u% f2 r# S - ;===================================30|04|2024==============================
2 t) C1 E& w( ^2 B7 J
- h4 E3 S) ]* U. J- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )7 g# { T k4 O" m, B
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
! G, l* R0 t3 I& l0 T9 k8 R z( A- k - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )9 k$ E- {! S5 j. S; h
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )% ]. l) U. L# @; b% K9 `/ L7 d
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
8 H( ?6 J6 V$ i5 r7 v - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" ): ?( ~6 W b" w6 ~
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )$ ?6 O- A; I E
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )4 [4 c( O) u5 x: h6 ?
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )* I# q2 i8 n& t. ^
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ). G6 O- n8 w9 E3 F" g6 U! Z }$ @
2 z3 ~! W: y2 ^3 b2 K! G, u) D. _ }- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=/ J6 o: y c, b8 s2 k D" B/ [: s
- ;===================================17|10|2024===================================
8 e2 B" G$ j( C) K; f- T
, w) w4 T9 X2 e B8 }- (Command "DIMTXSTY" "ROMANT-DIM" )* T/ C3 Z; a+ S% D
- (Command "DIMBLK" "" "Closed" ); t+ B/ W0 y, `" H. W! L' B
. \5 G: U0 H- ^9 j* F) T j* ~- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
) O4 q9 G! K7 y2 J k - ;===================================17|10|2024===================================
3 K' c# o% i% m9 \% }( M
* K8 z+ ~& L' V: `7 w- ;(Command "-units" "2" "8" "1" "8" "" "N")" G- Z2 e, r4 b# i
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)) g, S" i6 f* Q! D
- i! _) e3 `! B5 q# _- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=( `+ [0 _) d7 m# J) r( A! O$ D, [
- ;===================================17|10|2024===================================( d* Z8 M& C T" w) x& o4 o
' {+ J9 X% p9 x# b! S) B/ f! p- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
" O" r5 W2 y; I9 I8 U o/ l/ Q. }- X
0 _& @, l6 _: \2 A- h% [7 z X- ;======================== DAT NET IN & TI LE BAN VE =============================' F: j \# \# y* [
. s: h5 s5 Z$ l g" y4 E- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================9 m4 O2 P6 ~7 G
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
+ v, q% {7 O; P - ;=============================11|07|2025==============================
5 n" J5 r8 f! G - ;Ti Le Ban Ve - 1 : 100
8 d0 ^% i2 E3 S) w - (Defun c:kta4 ()
. s, M3 G6 W$ \9 c" j! c9 F - (setq mv_sc 100);Ti le ban ve# k7 |8 b& r: x, M* @8 L% {
- (setq x4 297)1 r# _8 x: h8 w0 C3 T; T( ^5 h
- (setq y4 210)
$ o- l/ @1 {3 a8 s, E$ A: G R - (setq x4 (* mv_sc x4)
( ?* N; }* F' b0 s# h$ K; k' N - y4 (* mv_sc y4) )
, g \' O% ?" Z1 s6 |$ S. z' q6 g - (command 4 x5 w4 `) y, t* N
- "LIMITS" "0,0" (list x4 y4)$ W( M* p* \, ~: A6 c& g
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"( ?0 G \9 U3 E* \
- ;Khung CHU NHAT Chinh
5 V3 _$ |/ s* j$ v% ?* d2 @ - "RECTANG" "500,500" "@28700,20000". q! ~# t, r; v) b* t" `5 [0 k
- "RECTANG" "700,700" "@28300,19600"
2 [) K& o& w+ `- [( [8 b - ;Khung Ten Chung3 I4 p: n1 Z1 p# x( B
- "RECTANG" "700,700" "@8000,1250"/ A& r& J+ X9 R8 c! `) [! q. q
- "RECTANG" "700,700" "@17300,2500"/ \* ~( h& `0 ~, H; v
- ;Ten Ban Ve
4 L# Q( Z. I7 Q3 U$ H - "RECTANG" "18000,700" "@11000,1250"
5 @( P+ U! r8 C+ P2 ]2 b - "RECTANG" "18000,700" "@11000,2500"
2 g |2 G. Z$ K" i& H7 q8 `2 o+ k8 P - ;Khung Ti Le + Ngay Thang Nam
- H* b, q* [9 I, i2 }( |0 p3 u - "RECTANG" "22500,700" "@2000,2500": S- B7 {0 m' T1 o) p
- ;Khung CHU TRI
7 a3 ?" H' c: B& a, ~ - "RECTANG" "8700,700" "@3800,2500"
8 X' ^) }, E* W5 M& I( g - "ZOOM" "_a" ))
$ A. _2 {7 A8 X) z! [ - ;=====================================================================; L! l- h# Z4 s4 d6 U, Z
- ;Ti Le Ban Ve - 1 : 100- A- l( O8 x' ~' M- P1 K; O8 k
- (Defun c:kt4a ()6 ^# ]# ]% k. f+ D, Z. n
- (setq mv_sc 100);Ti le ban ve
8 z! Y' l8 h+ v! V) D" B) A - (setq x4 297) \8 G8 E! E4 f1 a
- (setq y4 210)
6 g) G0 Q' G l - (setq x4 (* mv_sc x4)
3 [+ z7 `, I. o& P# b8 P! e - y4 (* mv_sc y4) )
3 w. q, ?% g; l/ Y: f. W! I8 p3 y - (command
8 J5 l3 P0 u7 Y7 R - "LIMITS" "0,0" (list x4 y4)
/ L' h# \: @8 j% Z3 H# d9 A - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"0 {3 L% X' [. k$ h
- ;Khung CHU NHAT Chinh ' M, q: R! e% M
- "RECTANG" "2000,500" "@27200,20000"
5 |( E1 `- q3 l4 A+ w+ z/ I- H - "RECTANG" "2200,700" "@26800,19600"7 @0 q0 I8 q* O( P2 U
- ;Khung Ten Chung8 Z+ B r4 W* I& ]! s, l
- "RECTANG" "2200,700" "@6500,1250"2 h* Y( @' @6 }, y* b5 S
- "RECTANG" "2200,700" "@15800,2500"
/ X# U: z( ^3 ^7 Q, A9 ^ - ;Ten Ban Ve" M' v% M2 v: @8 m% r) W
- "RECTANG" "18000,700" "@11000,1250"
* D; G: ]4 V* J - "RECTANG" "18000,700" "@11000,2500"
: s* Z! A* J6 M1 _ - ;Khung Ti Le + Ngay Thang Nam
2 |& w/ ], \9 a9 M - "RECTANG" "22500,700" "@2000,2500"8 L5 D9 e% G3 I$ r) p# n# X( }' a
- ;Khung CHU TRI3 a. A5 n6 P( l8 T
- "RECTANG" "8700,700" "@3800,2500"; m) m: j0 t7 V+ W; D* z% K
- "ZOOM" "_a" ))
% U7 t7 N7 K& h/ k' i5 B - , p/ r e3 e: _9 o( s
- ;;; ============================GHI CHU Khung Ten========================
0 s) O7 B8 y$ Z. M! {/ P" X1 v - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========+ @! V, g l8 Q* ^# U4 T% c, E
- ;;; =======================Thuong Dung Font Romant.vnh===================- J" M8 \$ U+ N
/ F+ V5 ~! G: D. X8 w2 l- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)9 A8 _: z4 B) ?" M' Q
- (setq oer *error* *error* err2)3 U( b5 a/ p P: Q7 b, {8 _3 O
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
/ C8 i4 Z( x6 H: y" S - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))* v& [- }4 [" Q/ f8 @4 k% h% z
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
8 V$ M' W( D/ X8 @+ `9 C1 l C$ ^ - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
$ e: K. L' I; |% _2 S; ~ - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))# n- F7 v! r' V4 |. b; H7 c
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
6 w6 S2 B7 E6 z; { - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
. U4 g: E$ H5 |" s - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))! v% q7 V4 o/ \/ e& Z" e7 n
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
3 I6 I* d" n% L# B - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
% z+ U- h2 y7 r; H - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
4 p7 B( `0 E# W0 d3 ?: p+ G - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))5 S9 R9 T) P/ m/ @4 j& r8 T8 \
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))6 Q" k5 r2 T/ o0 E1 {, C v
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))- U. v5 l% m9 s' s
- (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
5 ?2 ]* l9 C! n+ Z - (setq pta (getpoint/ u1 d8 y+ Q/ R2 M" {7 g. g
- "\nPick first corner. : "))- M/ ^1 O: ]! J6 E% i: q% k
- (setq ptb (getcorner pta" l! B* x$ ~% h% j
- "\nPick second corner. : "))6 L+ m, C1 O" j5 t, i
- (setq ptc (list (car ptb)(cadr pta)))8 p/ {+ ]4 m. v& s! Z5 j
- (setq ptd (list (car pta)(cadr ptb)))
4 J/ H H3 ]% C5 X( [3 r0 d# ~5 E0 J - (setq ang (angle pta ptb))/ R5 `3 V/ y2 I$ H
- (setq d1 (/(distance pta ptb) 2))7 [0 s7 @4 v# o' U% y5 X
- (setq cp (polar pta (- ang (dtr 0)) d1))
2 z- H9 T2 r1 O$ L3 o7 K) k - (setq X (distance pta ptc))
( E1 ^4 h* N# ]1 S - (setq Y (distance pta ptd))
& X% }& y, ~$ f. ~9 Z2 x - (setq X1 (rtos x 2 1))2 \" k, f" ^, ?- Y
- (setq Y1 (rtos y 2 1))5 C3 A: J& `' v0 n) |
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
6 ?1 [- v: y5 ]1 j1 o" w/ n) E - (command "TEXT" "c" cp "0" CPT "text" "" rmsz)); n/ O) |) F/ i6 s$ p
- (defun dtr (angg)$ L& E8 i- d7 M& L" K" z
- (* pi (/ angg 180.0)))
) m7 ]" q s" ?/ c - 6 D9 G- F" A) p' @" }$ s+ s c
- ;=====================================================================
5 Y1 V& \/ [$ X! Y - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
! N- f% ]/ p+ D6 }8 b - ;=====================================================================
2 D5 [. N& A5 W, H( c4 C7 Q5 \
5 F& ~: X/ q$ d$ a+ U, |2 q9 V+ x# A- (Defun c:a6 ()& L. S/ E$ e$ }% d) K& q
- (setq mv_sc 100);Ti le ban ve
; I. v! w* t5 |7 L* ~" f4 m' K - (setq x4 74.25)9 G& x; c4 t1 c& K* {4 F7 y2 E/ a) n
- (setq y4 52.5)
+ a& ?4 f2 e ^: z9 \ - (setq x4 (* mv_sc x4)
" l' \% L+ T. ^3 V! ^ - y4 (* mv_sc y4) )
9 I2 C* _) z$ r m+ q. D - (command , t/ p1 x# l! h9 N
- "LIMITS" "0,0" (list x4 y4)
$ H/ R) i5 P+ Z8 x& r" C; B- C: ~6 Z - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
0 X7 v6 [3 ]( l" E( Y( R - "RECTANG" "125,125" "@7175,5000"
- E/ {) s, S! w$ e* F' y - "RECTANG" "175,175" "@7075,4900"8 u& l, Z9 h/ [+ r( j- g: w. S
- "ZOOM" "_a" ))
0 ~8 @0 O1 o$ c$ w - ;=====================================================================
. b4 P4 a+ M2 B9 R - (Defun c:a5 ()9 E$ Q- Z5 s, ]4 T/ a' _: o, F0 H
- (setq mv_sc 100);Ti le ban ve
+ D- ?$ t, w" ?. N - (setq x4 147.5) h0 V) f- g2 x' z! ^* X3 j/ R
- (setq y4 104)
" V) {; ~& y' x% N$ R) ^# H - (setq x4 (* mv_sc x4)
2 j: d7 `, E W - y4 (* mv_sc y4) )
7 K* Y1 _7 z& z. r. H - (command
+ `8 O8 @. ?" Y1 x - "LIMITS" "0,0" (list x4 y4)
; h; \ d& [6 D* S) B: q: { - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"2 D" c# D+ j9 w) B# @- {
- "RECTANG" "250,250" "@14350,10000"
6 C: G x- o8 ]/ b; x! N - "RECTANG" "350,350" "@14150,9800"0 E% j5 y L, t9 ]; M
- "ZOOM" "_a" ))
' U0 T M3 f+ R% r2 ~7 N6 V1 ^: Z - ;=====================================================================, L8 n/ _8 k- u U) s8 @# F( s2 k
- (Defun c:a4 ()5 o* w0 K" V5 I/ A- \
- (setq mv_sc 100);Ti le ban ve
/ X o/ u: k b, J - (setq x4 297)
% ^( [0 e) m( X# d* |& w) o# C - (setq y4 210)
0 _! R+ \3 x. u" ]! {. s! V4 D - (setq x4 (* mv_sc x4)
5 l E5 e9 F) I$ n9 ^0 \/ J - y4 (* mv_sc y4) )7 ^% {4 O. ^& A: C- M
- (command 9 F0 n2 t& u/ [* T, g L! R) u
- "LIMITS" "0,0" (list x4 y4)! @1 l1 h0 E+ f( L5 n% i# t
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"5 r' p U% Z7 X p8 i3 ]
- "RECTANG" "500,500" "@28700,20000"* j' k- k+ p: \- A- _! b
- "RECTANG" "700,700" "@28300,19600"9 L! d9 ?5 j, q4 w+ M
- "ZOOM" "_a" ))
; y2 O# P# m0 r7 D4 Y& S - ;=====================================================================
, s0 e' X9 H( R - (Defun c:a3 ()
8 m9 q4 O# n) ]4 S. e - (setq mv_sc 100)
1 x$ r$ B: ^" `& T4 V - (setq x3 420)
' ^/ G/ C% O# k, V/ [* [1 h - (setq y3 297)
0 c& d& r, r* L( `( [0 C( r1 g7 D - (setq x3 (* mv_sc x3) 7 `/ f5 S9 u1 U, F
- y3 (* mv_sc y3) )
+ L8 M2 S( ?) e3 ? - (command
/ u9 F3 M$ \( Z- J6 w - "LIMITS" "0,0" (list x3 y3)
, r9 _5 S3 Z! p# m - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
+ N$ j- m: l( l. i. C - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
- D, S7 s! C% S+ t- @ d - "RECTANG" "990,990" "@40024.28571429,27720"9 Y) ^+ c" M7 T i) s+ x9 t
- "ZOOM" "_a" ))
" ]! P r: F9 @ v, C - ;=====================================================================% |2 r' G ~3 D! }$ }1 W/ T
- (Defun c:a2 ()
( M; w( h8 `3 h) W) k9 ^) x2 v4 f - (setq mv_sc 100)
u- R5 N, `: V - (setq x2 594)
) e& z! @6 d3 D6 R8 ~ - (setq y2 420)
! \$ }, \& z' e7 W! T; d - (setq x2 (* mv_sc x2) # b! X( l( S* e" U
- y2 (* mv_sc y2) )
3 d$ y0 T( ~! l6 Z! [7 Q - (command ) c# w3 t9 A/ B0 v* ^7 w8 u8 F
- "LIMITS" "0,0" (list x2 y2)
6 f5 u, e* v7 e. E# w8 k3 K3 E - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"" C: e j8 A) f: s5 y
- "RECTANG" "1000,1000" "@57400,40000"
: b# z7 x+ Y# z- j: b8 V* s - "RECTANG" "1400,1400" "@56600,39200"$ Z6 T, e4 i4 |8 g+ B5 J8 b
- "ZOOM" "_a" ))
0 s- ^; a- P: S, k) h - ;=====================================================================
* Y8 [( t$ x0 N - (Defun c:a1 ()( W+ [9 y9 q( c. o
- (setq mv_sc 100)3 S. f8 Y h5 m) W! I
- (setq x1 840). i( S# y6 y9 o) C
- (setq y1 594)4 C4 c: e& ?9 K. p, f
- (setq x1 (* mv_sc x1)
' J4 Y$ c% A( F' e - y1 (* mv_sc y1) )- |% G6 T4 p1 l
- (command
6 C& D! @! z: [' u: p0 r4 F, j Q - "LIMITS" "0,0" (list x1 y1)) ?7 A8 `; P% ^, o1 m6 f+ H
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C", p4 k" r# @; b/ d7 s" V9 ?' Q
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
) T: E6 |" U) M( }4 Y" f/ y - "RECTANG" "1980,1980" "@80048.57142857,55440"
) ?! O% V1 z; Y1 ~& e0 Z+ ?+ n - "ZOOM" "_a" ))
4 d1 p0 l' [/ f6 ?3 ^: ] - ;=====================================================================; n0 |7 `4 ?: f8 ?* k7 v! T
- (Defun c:a0 ()4 d2 Z2 U% Z" v( Y+ Z8 O9 \
- (setq mv_sc 100)
, C# r% k! u5 D* v5 c( q9 B# ` - (setq x0 1188)) l* ^% X1 ~ T- {
- (setq y0 840)% x/ \% L3 r/ W3 E1 l% }% k; u
- (setq x0 (* mv_sc x0)
! o& i- a) {/ u! m4 \ - y0 (* mv_sc y0) )
. t, g9 |: i1 J5 X0 g - (command - t8 ?4 _$ ]# i: ?9 L' v, t4 P" M
- "LIMITS" "0,0" (list x0 y0)6 m& p7 y, t7 |/ {7 p5 u6 R4 X- J
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C") P5 j8 q5 Z2 D( Y; U
- "RECTANG" "2000,2000" "@114800,80000"
% h. u. x" U: M: z9 }! ~, `! C - "RECTANG" "2800,2800" "@113200,78400"
4 K& V& n2 T4 H - "ZOOM" "_a" ))
1 W) e, O& M: i1 n( P
8 r7 `& }8 U2 m2 i3 l& m! ?3 A, W- ;=====================================================================+ @( X9 v# J- Y# F2 ?5 j' L
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
. q" q& P+ b0 l+ G' D9 H4 c - ;=====================================================================
0 V* U0 c( \8 g3 e1 \ f; y - ! |, t9 S( l1 Q
- (Defun c:6a ()
' w1 |3 ^& E% E - (setq mv_sc 100);Ti le ban ve
/ G& B, X$ |4 n" {8 Q# V - (setq x4 74.25)4 ]$ e" u& N' }% a( P0 {
- (setq y4 52.5)" V0 o p5 w+ Z R+ e7 v J
- (setq x4 (* mv_sc x4)
; ]% X4 }; ]8 y3 c# {4 ^ - y4 (* mv_sc y4) )
: |5 G6 _9 E t3 ~. B7 C- R0 e8 V - (command
4 a9 n) j$ Z3 L9 Z) {" p4 ` - "LIMITS" "0,0" (list x4 y4)
" O& ?7 x% G1 N; ?( q - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
3 p; B/ E+ ]1 o9 V$ I. Z - "RECTANG" "505,125" "@6800,5000"
$ S: K! Z, b z0 ~5 }1 ` - "RECTANG" "555,175" "@6700,4900"5 M# W' V: g% f/ N5 P0 i
- "ZOOM" "_a" ))* U2 E; _' J3 _$ E# G* q7 G
- ;=====================================================================. @. q8 z) Q. O' U" z3 j
- (Defun c:5a ()( s, Z, X5 u' [) T, }
- (setq mv_sc 100);Ti le ban ve* X1 t5 t( ~; z5 a) w( m" V
- (setq x4 148.5). H% J' F! Z" E7 I$ L
- (setq y4 105)
3 Q/ ^, h- D- M0 `" B$ O1 d7 B0 Q - (setq x4 (* mv_sc x4)
: z% _ P& N! P - y4 (* mv_sc y4) ) v" c0 p9 r1 ~! Y
- (command
0 a+ C" x9 s, K6 x( Q0 o& ^% r - "LIMITS" "0,0" (list x4 y4)3 ]" q2 ~/ ]9 d+ \/ `; Q2 b; T
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"9 J) [" j2 |( l. ^
- "RECTANG" "1000,250" "@13600,10000"7 V4 p9 p5 v. n d- L; @! B# A5 F) _
- "RECTANG" "1100,350" "@13400,9800"
& U a) r1 K3 a1 T3 h - "ZOOM" "_a" ))
! ^: z. n. z* r( N9 V - ;=====================================================================
' I6 A. x$ m$ p - (Defun c:4a ()6 Q2 Q+ F4 _4 a3 d& P' o N
- (setq mv_sc 100);Ti le ban ve
# y% T% B3 a; C4 F) m5 U - (setq x4 297)
$ E5 `9 l5 q) E4 K - (setq y4 210)! `& U! E5 X. e
- (setq x4 (* mv_sc x4)
5 _+ O! p6 m: f1 G) f) v; e5 E - y4 (* mv_sc y4) )
4 k" m5 S, k7 ~ - (command
- }+ d3 L$ |! I9 Q4 P1 E+ Y7 c6 F - "LIMITS" "0,0" (list x4 y4)
- b( A0 \! l i6 E) m - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"8 |) u3 U& F A# @: R6 @
- "RECTANG" "2000,500" "@27200,20000"# d: s# j( a! n1 U
- "RECTANG" "2200,700" "@26800,19600"
M5 p# D+ R; `9 r- }* g6 s O9 o5 V - "ZOOM" "_a" ))
" J9 T$ L9 J* q$ c+ m9 B4 { - ;=====================================================================; k8 O. {/ ^7 m3 l+ Z4 O% L. q
- (Defun c:3a ()! k+ H( P# ~% Y3 u# ~
- (setq mv_sc 100)" y6 v! f$ L A$ |9 s6 t
- (setq x3 420.0428571429)+ C, s$ Y0 `& e8 C4 i M9 A
- (setq y3 297)
5 E; ^+ x0 f, y2 j5 Q& s4 i- T - (setq x3 (* mv_sc x3) 7 A5 F5 ~# p! U6 j& M, d
- y3 (* mv_sc y3) )3 H+ M! a( g$ ]" H# S8 t ~) W+ x
- (command
! z% l$ u' v1 P& T* h - "LIMITS" "0,0" (list x3 y3)# ]! [) S4 @& o* w4 k8 l0 C
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
" ], l& n% s1 L5 Z3 l$ R - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
2 H3 t6 @4 F8 _& m - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"* Z, f2 }, _( O2 k* ^+ e
- "ZOOM" "_a" ))$ u O# p4 ]+ A% u ?
- ;=====================================================================: P3 Q1 q3 ^% f4 U0 U' Y9 U5 y
- (Defun c:2a ()8 \" j& U1 S9 Z4 B" E
- (setq mv_sc 100)# Y" W, @4 u+ i
- (setq x2 594)
( F& \: B. U" t( A5 H0 P; b - (setq y2 420)) X$ t Z+ A. H
- (setq x2 (* mv_sc x2)
7 M! o6 q3 N& X8 q8 D4 x - y2 (* mv_sc y2) )2 \% g$ b0 q$ X K7 y" ?
- (command , v+ F* q) @6 q. r! R
- "LIMITS" "0,0" (list x2 y2)1 }' p: I3 D3 N+ e v
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"/ Q6 c# l9 c0 W2 F
- "RECTANG" "4000,1000" "@54400,40000"1 `# }8 F! r" K
- "RECTANG" "4400,1400" "@53600,39200"
" F6 X' ?$ M: I( H( l' w& V+ \ - "ZOOM" "_a" ))
; i' E% O9 q" F& a4 j* l* D) ^7 X - ;=====================================================================" p+ N3 R3 D, f# \) S4 ?% d
- (Defun c:1a ()
* A6 q- j; y+ V: G* f, K, G+ ^5 W - (setq mv_sc 100)# E, y7 J3 p" ]9 Z6 U' L
- (setq x1 840.0857142857)- O5 D- {+ Q' B" _0 s" M2 K# f3 L
- (setq y1 594)
5 O+ V0 m* V6 f7 C' \$ r% N - (setq x1 (* mv_sc x1)
7 Y' k, x+ Q2 h - y1 (* mv_sc y1) )
' [% t) \/ [- G( t - (command ( _ u5 z' w+ I- ?$ r) Y
- "LIMITS" "0,0" (list x1 y1)
" _' i0 Q1 M0 P, ? - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"2 G4 s) W, t- _# k
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
) _, Q2 k" \0 i. [7 @0 B i( k - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"& [" \$ q5 W a4 i
- "ZOOM" "_a" ))0 B4 t; m, _+ X! v* j( {9 Y$ f
- ;=====================================================================4 t1 S+ x1 x% \
- (Defun c:0a ()" d. b7 c2 I. y( O3 q
- (setq mv_sc 100)
+ M2 d, x8 h/ W; i( I8 k - (setq x0 1188)8 {) B" g' I. g9 R' S8 |7 h0 u
- (setq y0 840)* m u w( `& d0 K& C' C
- (setq x0 (* mv_sc x0) ; F: E' L+ ?% ^. R9 Q7 W! v
- y0 (* mv_sc y0) )% O) u4 m* `! i" k( Y+ ?2 ?& }4 l' T
- (command
( k }$ y' x+ ^9 q( k - "LIMITS" "0,0" (list x0 y0)
2 Z2 [1 z( X9 J0 I+ ]5 F9 O# I - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
) p% U$ |: g, I9 O - "RECTANG" "8000,2000" "@108800,80000"
2 q2 m, }$ J! [# d" _$ w+ r' P - "RECTANG" "8800,2800" "@107200,78400"
+ h; s) e$ B1 X6 r - "ZOOM" "_a" ))
1 b9 n J, q, g0 _5 ?4 ] - ! S5 i# X- t1 o& D! O1 { ^5 a
- ;=====================================================================
, y: x9 T( G( o. q$ g) q0 G - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
! `0 Y8 t% F3 H' W: k - ;=====================================================================
* ]3 T( |3 S+ |. O$ n: s - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)$ B# b5 W6 c$ V/ x
- (command "undo" "be"): N( C. ?7 c/ K1 o: ?
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))+ G5 q8 R7 S- `" l4 E' F
- (setvar "CMDECHO" 0)
5 s, ^7 X* G) d! E3 w, H, F- @ - (setq a (getpoint "\n chon diem chen :"))+ E' i, E4 w1 K0 B- q' k
- (if (not TL) (setq TL 1.00))0 u T% C, P, a
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))! d" J% U4 v2 p: _5 r7 d& r: V
- (if TL1 (setq TL TL1))/ u8 e A4 i6 p) d8 w
- (setvar "osmode" 0)
$ X& V& f+ M: N0 V7 ? - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
- y5 [; J* d7 s - (initget "0 1 2 3 4")- Q# Z- x, U2 \/ K1 M5 {+ x
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))" q6 i: u0 c1 c+ }- K) s, j2 ]. t
- (if (= kho "0")
( F6 ` `( a" m+ C - (progn. P7 E( g ]) E( K7 i$ H1 y
- (setq b (polar a 0 (* TL 1189)))
- S3 c* {4 F' Y5 A8 f8 }1 } - (setq c (polar b (/ pi 2) (* TL 841)))7 J8 [* u1 ^1 q7 F8 @5 y
- (setq d (polar a (/ pi 2) (* TL 841)))
" Y8 _3 g& `) B - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))) v7 [$ g9 m0 c1 ]0 j
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
4 S" E3 C3 E5 b, k* Z' ]( G - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))! ]- [2 {1 N# {8 o7 c
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24)))); y# p& v- q) ^ ~, k
- (command "Pline" e f g h "c") 3 o* M* T1 [( Y/ T0 f
- (command "change" "last" "" "properties" "layer" "0" "")
7 U8 y4 C: t C - (setvar "cecolor" "4")( U! D! h6 n6 w5 P
- (command "Pline" a b c d "c"); ~$ {9 {$ c; A$ Z. N- ~8 k9 g0 v7 Z
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) . p6 b1 B, U% ^) _
- (if (= kho "1")7 z# J2 U0 r5 F$ k& h
- (progn
' c" E) `. D* W2 [ - (setq b (polar a 0 (* TL 841)))
0 c3 I/ o" r/ F - (setq c (polar b (/ pi 2) (* TL 594))); J- L1 Q7 |* J- G
- (setq d (polar a (/ pi 2) (* TL 594)))
9 `5 L$ Q' M9 i$ c. | - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
& z5 v. W0 C, N: k2 B - (setq f (polar e 0 (- (* TL 841) (* TL 24))))1 n& l* u& _. h0 U" ]- ?
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
( q. k" F' [7 e' H3 U5 {! d - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
3 ~1 c" F6 c# F" s- C' j* P9 N - (command "Pline" e f g h "c")
* G2 a: Y2 |2 w- m4 w( ? - (command "change" "last" "" "properties" "layer" "0" "")
3 D6 R/ w F" O5 e' f) T" i: h$ Z - (setvar "cecolor" "4")" }& u# a# S" B7 f; u/ B) O
- (command "Pline" a b c d "c")2 t0 d: Z. u7 a+ X% J' p' Y
- (command "change" "last" "" "properties" "layer" "defpoints" "")))# f2 f/ Z+ j) {
- (if (= kho "2")
3 L9 x% K* i% N5 P) X$ i0 c ^ - (progn
: H) ~1 Y! u8 u8 e! [1 i - (setq b (polar a 0 (* TL 594)))# c: N7 u* T. M; e: o
- (setq c (polar b (/ pi 2) (* TL 420)))% ]: y, U! p- t9 u3 E2 Q+ C( ?
- (setq d (polar a (/ pi 2) (* TL 420))); a/ e2 l( U* A. }
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))' l$ E. a' z3 r% h
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))7 i2 D3 v/ B' g+ c/ \6 l
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))5 }" |. x1 b9 U) w3 Z2 ^
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
& W* P* e0 h) Y( w; _ - (command "Pline" e f g h "c") 2 p% ]8 n) R* Z% J! y
- (command "change" "last" "" "properties" "layer" "0" "")1 f' W% M) l6 ~6 y
- (setvar "cecolor" "4") [) g* _- j2 h: h* ?) W! u
- (command "Pline" a b c d "c")0 N3 U3 ~& u S, P7 T/ x
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
% `7 l$ Q, y4 c& J+ }, [/ G - (if (= kho "3"). }; c3 S8 O. V4 v- h9 z
- (progn2 a9 I0 B% z+ m
- (setq b (polar a 0 (* tl 420)))
/ j3 C" e' y- i1 j4 n$ Y - (setq c (polar b (/ pi 2) (* TL 297)))" C! B( x( g' z8 ]; m
- (setq d (polar a (/ pi 2) (* TL 297)))
) i( \; W( t. j, N6 l! }: M7 M S; H - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
, X B/ z' o# r: v - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
: F8 q9 \6 O$ u" ? - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))9 Q% ?6 r* T$ l8 w- \3 s
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
6 r& m! B! J ^) i8 D - (command "Pline" e f g h "c")+ s6 `/ }2 Y$ \* F1 i
- (command "change" "last" "" "properties" "layer" "0" ""). J0 i( q. x, o8 B- b
- (setvar "cecolor" "4")+ c- V5 d1 G4 E" o
- (command "Pline" a b c d "c")
) q! w" s* w; y* d8 G3 L9 O - (command "change" "last" "" "properties" "layer" "defpoints" "")))
6 a7 `3 O5 w1 T1 g1 Y; R! ^ - (if (= kho "4")
# C) c+ _, L" U! F, N* h+ [. W - (progn7 m* h6 P. B b- G {' F% n
- (setq b (polar a 0 (* TL 297)))
# k; m0 q" N6 r' c, P - (setq c (polar b (/ pi 2) (* TL 210)))# i9 l! F" `8 ?" h
- (setq d (polar a (/ pi 2) (* TL 210)))3 g: Q0 A" U9 S- m% X
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
9 z) ?" r! F: b9 ]4 z - (setq f (polar e 0 (- (* TL 297) (* TL 18))))
' F; |: \" _5 f7 l3 I - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
! W& p! a: O/ ^ - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))! M" h$ w( b- Y o8 x- T
- (command "Pline" e f g h "c")
+ L$ X9 k: l- e: H - (command "change" "last" "" "properties" "layer" "0" "")
% k( z3 g$ A1 e$ G - (setvar "cecolor" "4")
( Q1 z* U+ |4 p. A2 k - (command "Pline" a b c d "c")
/ o2 P& y6 _; O9 l - (command "change" "last" "" "properties" "layer" "defpoints" "")))
( y# l0 L; U0 U* ^ - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)/ N- J& V, C" @2 o2 |
- (command "undo" "e")4 ?1 y! T* w4 v( o
- (princ)). F' v7 D( [ p
- ;=====================================================================4 K; x2 m: d" b4 n9 k$ w9 N
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
- `5 P& C, j7 N8 n: z9 C* x - ;=====================================================================
& L' S7 `3 p4 x; ] q4 L9 W
+ N; a" P1 `" p) W( H, Y% M- ;=====================================================================8 b: V' ?2 ?) @+ {7 o
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================& o1 D2 R) s, I6 z9 i
- ;=====================================================================2 F; V3 V- q) T! P
- 0 A: R+ n- e- v1 q
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
2 h& P0 Y: K8 ` - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
; Z) \, q* ~; w. |" h: ] - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
; ~( C* S# P0 x u3 T* @ - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""# S2 U* m! K1 n7 H
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
, j! i% s/ a: m" m! {3 S( C - "M" "THAY" "C" "7" "" "Lw" "0.2" ""# ?( y5 x T, v4 Y
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" """ d" _9 f2 ~* s2 b; n% `
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""' c" ]+ j) J: N& S, V
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
# u) i) T+ h" g$ c& D$ F% _& G - "M" "Defpoints" "C" "7" ""6 Q7 a# m: D/ b: w
- "M" "0" "C" "3" "" "Lw" "0.12" ""
_5 u- J" G2 Q. u0 H - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
% d7 @7 m/ Q& y+ Q6 S7 p - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""' x4 X" } A2 t: t) q$ S
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" "")); |" D6 w( q# D0 L) E- ~
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""4 Y2 ?1 ^, U3 L& Y7 T9 ?
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""' |$ Y7 q- }" R. b
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
. p7 r0 h9 J, z; ? - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
+ {& D4 _8 J" c; ^4 h - "M" "DIM" "C" "1" "" "Lw" "0.2" "" M% F& ?: }9 b* }" K3 P a
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
" l& o0 t" E O% R - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""# q' v7 M B( d" N5 e
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""4 c4 e& e9 X: o B! C; r
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
l: s4 U: w' X6 G4 w/ Y - "M" "Defpoints" "C" "7" ""
- H+ ] l$ T) P - "M" "0" "C" "3" "" "Lw" "0.2" ""
; D" q" {. K) r- Z - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
/ B7 t4 S$ |+ R( O7 v' b - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" "". j" {" y# w0 H5 N
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))' l* c& a$ x3 k3 y/ y3 A
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""9 F- q/ | R' Z. S, m5 F0 }' o9 _
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
" m E% P* O1 h' ` - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
}+ B& P" K4 U1 d4 ?- W* T - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""$ z6 p% Q! u1 Y
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
9 c& c* t+ ]8 B/ e - "M" "THAY" "C" "7" "" "Lw" "0.35" ""' S" R; r/ g; J+ f4 K2 e9 t$ i8 f
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
$ L1 [! q7 L" j5 n - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
/ y1 V* ~9 f4 ]9 w5 T - "M" "COT" "C" "1" "" "Lw" "0.6" ""
2 F! D- ~- s9 H% V/ T - "M" "Defpoints" "C" "7" "", p& y: F7 L. D3 `
- "M" "0" "C" "3" "" "Lw" "0.25" ""/ @* K, E1 R! q
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""/ V( h/ E8 ^, O; r* R
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
- C4 {- D7 q, }- w. x+ ]" N" h% j - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
# v- Q* ~# s: P% h# N -
/ P* d$ E+ Q* R8 i! P - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""2 x4 X& H( f' v, C) B) [% K4 z
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
( d) T% y( }6 Y - "M" "MANH" "C" "9" "" "Lw" "0.25" ""0 E& B: ?: v# p
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
$ T" X. X% z' c5 r - "M" "DIM" "C" "1" "" "Lw" "0.35" ""& I; B* Q9 J) u- f4 b6 R5 i
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
( F( ]; T* T; P - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""4 u. y5 f. G* x! j! ~) ^" \
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""* `/ C6 V2 Y) t1 Z% q0 B
- "M" "COT" "C" "1" "" "Lw" "0.7" ""+ k, W7 I0 f- r
- "M" "Defpoints" "C" "7" ""3 ]4 ]( G. `) g' X- c
- "M" "0" "C" "3" "" "Lw" "0.25" ""
2 e u7 O3 g; V0 {# ~ - "M" "CUA" "C" "6" "" "Lw" "0.35" "": r% O; S5 e9 y
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
% h4 n& g* f7 W1 M5 r - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)9 z) E% n/ @1 _: A4 `
1 K- e( h9 w4 U3 a- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
f+ _' A7 k, l8 o6 W - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
: o5 E% t6 ?' f# I. q - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
6 J \% Q" c1 h/ H/ K; O - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""6 ?. E, o0 l- J3 _
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""- _! X" x; ^2 N' P; _+ m
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
0 w! \- m" |4 ~: z; q8 B - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""9 c. \9 m7 l3 Q- j, t
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""5 y; v$ G/ K) o" N: A6 X0 |! X
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
3 H4 {" y! k7 M" H7 N9 G - "M" "Defpoints" "C" "7" ""! L$ Q3 X' I$ q0 Z4 I
- "M" "0" "C" "3" "" "Lw" "0.35" ""7 ^: K) e% a& Z- q5 z& J2 x
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
( B5 c; W7 f" c, @ - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""5 b8 c N k% @2 L6 Z, \6 Z
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))( n/ K* F) I) w; l- R4 _
- ) R3 U% C- v7 _# n. J1 f2 U
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""6 W1 u$ W8 q: C
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
- O. r9 V( t" V. y( f% u. q - "M" "MANH" "C" "9" "" "Lw" "0.35" ""# G0 D6 L% K, _- t6 u% n
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""% l K( n8 K$ T1 e% {
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
( S, |0 I5 }: @: _ - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
8 X4 a/ Z1 h1 _9 Z) X m/ A+ C# ~ - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
" Q2 w, I, x: E. ^& D# l$ d7 S - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""- g, T) o0 D* u' [/ f5 c
- "M" "COT" "C" "1" "" "Lw" "0.85" ""
6 Z0 `- ]0 R- C1 O - "M" "Defpoints" "C" "7" ""' G6 F3 g* ~- f* Z2 t6 Z7 G
- "M" "0" "C" "3" "" "Lw" "0.35" ""
7 p# r' C& M$ ?! t* @( E - "M" "CUA" "C" "6" "" "Lw" "0.4" ""+ i, H5 g' G+ r" @6 t
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
$ q* _1 ?, c, {) W% `& h/ w3 J - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
1 i9 z- u. {% |% z5 g; N - 8 Z1 F# M% q+ O
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
( @$ u4 y: l* A% z - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""# d: \) {7 D. _- {7 {7 m9 t: T
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""7 A1 a7 I+ e& S- x$ [! o2 Q
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""& Z& o9 r: j8 ?+ q
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
" X! Y- q! u) p. ~* ^$ S - "M" "THAY" "C" "7" "" "Lw" "0.5" ""0 f4 W: P, q4 I0 ^4 u5 h4 e( \# ~
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""& r: N4 |! X7 u6 ?9 e: i
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""2 L. P5 s: J2 H3 X% \
- "M" "COT" "C" "1" "" "Lw" "0.1" "" z2 D; q! o; A* r. x
- "M" "Defpoints" "C" "7" ""
! B, k' c, S/ o8 f - "M" "0" "C" "3" "" "Lw" "0.5" ""1 U1 B8 X/ r( z8 W& O
- "M" "CUA" "C" "6" "" "Lw" "0.5" "", k8 u) T! K' S! _# `$ ^: B
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
, N" P" \0 x" _" n7 X; I0 i - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))! I- Q! Y, Q, q) I$ {/ w- O
- (DEFUN C:O () (COMMAND "OFFSET"))
/ l! r9 P" [6 Q - (defun c:s1 () (command "surftab1"))
( T) e. Y" t( M4 X* x1 I! P - (defun c:s2 () (command "surftab2"))3 Z9 T. E$ n+ |: Z
- (defun c:ep () (command "explode"))
! G& E8 U2 t+ r - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
; { t- O7 T$ N - (DEFUN C:QV () (COMMAND "QSAVE"))/ F! g" ~* Q' p! c2 k0 b
- (DEFUN C:S () (COMMAND "STRETCH" "C"))
7 m0 w8 k5 Z: j5 r5 i, r8 I0 e3 `
/ z' ^! C- [. _4 m& y# [! E- ;************************** CAT DIM **************************
1 {" h1 k+ L$ {$ `3 {4 @2 |- } - 5 w E& n. L! A0 \, T! @' Q& X
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
7 `1 z7 ^ [/ w: A - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11); c& {! ?) J& H2 G0 }' J
- (SETQ CMD (GETVAR "CMDECHO")), x* D" @# ~3 A: M' j: z1 L: L
- (SETQ OSM (GETVAR "OSMODE"))
5 s: B- D% R% j& f - (SETQ OLDERR *error** {2 H6 c6 ?6 S
- *error* myerror)# n1 e! `7 d) V
- (PRINC "Please select dimension object!")
# d; F0 L' m! P2 [( q1 T - (SETQ SS (SSGET))
" j. u; e) [+ H# Q; { - (SETVAR "CMDECHO" 0)
0 I6 g4 Y3 L! f! P - (SETQ PT (GETPOINT "Point to trim or extend:"))* C) l5 {2 I2 ?( [ t' t8 S
- (SETQ PT (TRANS PT 1 0))- h1 q8 \) K/ \0 g: w6 l1 U/ F
- (COMMAND "UCS" "W")* H q c9 Q. g
- (SETQ LTH (SSLENGTH SS))
9 }$ g' ~/ x, \ - (SETQ DEM 0)0 m. f" R+ r8 Y0 ]# j1 V# U, r
- (WHILE (< DEM LTH)8 a7 F1 t; Y. p9 P0 g0 U
- (PROGN E+ Y+ V3 r0 e+ ^1 j5 ?. v
- (SETQ DS (ENTGET (SSNAME SS DEM)))
+ ]$ u2 S9 ? }3 Q# W% F7 a2 E - (SETQ KDL (CDR (ASSOC 0 DS)))
: C: S0 W& J- F) N- B0 O- m - (IF (= "DIMENSION" KDL)
& f) S( ^0 X" w# S4 q# a: q$ r - (PROGN
9 E1 [5 X; N( m8 O- i5 [ - (SETQ PT10 (CDR (ASSOC 10 DS))). m, B2 D* L+ d8 X5 X- G
- (SETQ PT11 (CDR (ASSOC 11 DS)))
D6 J, r5 Y! S- g A - (SETQ PT13 (CDR (ASSOC 13 DS)))4 X2 C7 C; T9 b) b. Q: E
- (SETQ PT14 (CDR (ASSOC 14 DS)))
2 q$ X9 m1 S* X& t0 i - (SETQ N70 (CDR (ASSOC 70 DS)))
( V/ ?6 f; S' S# j5 u3 S - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))# r- z t) r7 [9 w
- (PROGN- j3 n: l4 p+ T9 I0 X( E& N
- (SETQ GOCY (ANGLE PT10 PT14))
) Y5 D F5 i1 c( n1 w |3 M - (SETQ GOCX (+ GOCY (/ PI 2))). g! L- E. x" [" b! _: W% g
- )0 C9 A3 B0 u& e+ M: O: H& o
- )" N+ M [5 b. N2 h6 e& n
- (SETVAR "OSMODE" 0)2 b8 M9 W8 S" N9 U; Y* f
- (SETQ PTI (POLAR PT GOCX 2))
: F' ^, ^3 n- s( E( G- n0 G6 T - (SETQ PT13I (POLAR PT13 GOCY 2)): A# D+ v" W n
- (SETQ PT14I (POLAR PT14 GOCY 2))
1 P3 P7 T$ I' @) W; I- H - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
. l: w( r& S3 ~$ N! {8 t' z, g - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
6 G, r7 s8 {! ^, M* ]0 ^6 @& l - (SETQ O13 (ASSOC 13 DS))
7 d4 p7 b2 g+ u$ f, m' x/ _ - (SETQ O14 (ASSOC 14 DS))
; E$ J% w; q) V8 Y& P8 K - (SETQ N13 (CONS 13 PT13N))
8 d/ Q1 e8 S7 ^ - (SETQ N14 (CONS 14 PT14N))+ F0 O; c2 G0 S" o9 u6 v
- (SETQ DS (SUBST N13 O13 DS))' N7 F: a/ b: x7 O
- (SETQ DS (SUBST N14 O14 DS))
) F8 H) S1 v L5 _3 |5 v) M% T3 \, G) | - (ENTMOD DS)
- [9 U, B' S8 p. s0 h& g - ): N( c" c& L' N# A" ]3 ^
- )
3 D4 [" n% a0 Z% C) g6 ~* c - (SETQ DEM (+ DEM 1))* H _2 a- A5 `( r$ k# H9 `* v9 \) W
- )
8 l8 ]4 K4 \1 B5 A$ l - )
; Q2 ^; R Z1 H- p m4 W8 Z- \ - (COMMAND "UCS" "P")0 Q# b& |( ^# l, v
- (SETVAR "CMDECHO" CMD)5 y/ c: Q% L6 o
- (SETVAR "OSMODE" OSM)
1 Q/ |& z8 ~( p% U# B - (setq *error* OLDERR) ; Restore old *error* handler
$ H5 g& l$ ?+ y% t& C+ f - (PRINC)
8 f9 i6 g9 d% J& {" T0 F - )
/ L: O0 W& ^) A7 ]5 F - + R& ~; F( J' l, ~2 F5 E2 K
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI0 K8 _, e* e b
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)3 b' K! A5 Q, a7 I/ u; E
- (SETQ CMD (GETVAR "CMDECHO"))4 y: w/ r) \5 f
- (SETQ OSM (GETVAR "OSMODE"))
+ ]: f( q, j& Y2 x# z7 s( u$ I. \ - (SETQ OLDERR *error*
- i1 n& [ U' e) a- G2 Q - *error* myerror)
/ p6 ^' c# m) Z- c4 k - (PRINC "Please select dimension object!")
; f: d o( U$ M* J7 i) i- _: C - (SETQ SS (SSGET))
* g# u" Y' @4 { w - (SETVAR "CMDECHO" 0)4 t' E7 [' k) V5 U* U1 a0 n
- (SETQ PT (GETPOINT "Point to trim or extend:"))
$ g1 N$ Q! p6 R - (SETQ PT (TRANS PT 1 0))0 y' w9 Z: u0 g
- (COMMAND "UCS" "W")2 H: ^; h# i" o; i! n% w+ }
- (SETQ LTH (SSLENGTH SS))# o, f2 I$ d# o% y6 K, R# H% d4 k/ |
- (SETQ DEM 0)
; z0 U( N: V/ M* Z9 h0 t {/ ~* ?6 c - (WHILE (< DEM LTH)! ?4 u$ a2 m% {) V, I
- (PROGN
+ _: \6 t5 h8 q' W6 h - (SETQ DS (ENTGET (SSNAME SS DEM)))
$ h# K! A" F( T - (SETQ KDL (CDR (ASSOC 0 DS)))( p8 }: k& f0 m0 j/ S
- (IF (= "DIMENSION" KDL)
+ q2 i, w$ i& O [* m0 k y7 K" K8 [ - (PROGN2 D3 {: P3 c' k" s3 A, x
- (SETQ PT13 (CDR (ASSOC 13 DS)))$ Z. ~0 m% Z9 }. {
- (SETQ PT14 (CDR (ASSOC 14 DS)))
0 A1 i/ n4 D Z# i - (SETQ PT10 (CDR (ASSOC 10 DS)))
. N2 F1 F3 w' G7 `+ i# `* ]6 M - (SETQ PT11 (CDR (ASSOC 11 DS)))9 O n5 Q3 }3 E# `0 j
- (SETQ N70 (CDR (ASSOC 70 DS)))
* j8 ]: ?3 J! R0 B7 @- S* t8 W1 F& F - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
. c7 b, a9 B2 ` x- o. o - (PROGN
5 F3 h- m5 t( ?# k - (SETQ GOCY (ANGLE PT10 PT14))
$ t; D4 E. `3 J+ V& U/ A( X - (SETQ GOCX (+ GOCY (/ PI 2)))0 }% s1 h" T) k u
- )
& } M0 }; B ]" p7 W9 X l! y - )" Z& B' d/ g3 [6 L4 g
- (SETVAR "OSMODE" 0)
]' w" B) O( ]' J - (SETQ PTI (POLAR PT GOCX 2))( t7 X& s3 U! ~9 i
- (SETQ PT10I (POLAR PT10 GOCY 2))4 }2 e6 n# e2 P& o+ Q! W
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL)). i4 J. C1 _ @8 \0 g% S* S- h
- (SETQ KC (DISTANCE PT10 PT10N))& ^0 D& Y, k7 n1 H$ V$ K$ k, m$ \
- (SETQ O10 (ASSOC 10 DS))2 }" V- Y( N) U# T3 \1 R* W1 B
- (SETQ N10 (CONS 10 PT10N))7 k' }. m+ i' w/ ] F x6 l% W
- (SETQ DS (SUBST N10 O10 DS))
/ Q9 |/ W/ R8 i* p5 i4 W" o- B - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC)). Y; b2 ]- h/ R' r
- (SETQ O11 (ASSOC 11 DS))
' P: k( Q$ O/ A5 g, s+ c. }" H! Y - (SETQ N11 (CONS 11 PT11N))* e5 b9 \; T# q( ?# V& ]& T, @) G
- (SETQ DS (SUBST N11 O11 DS))3 M2 Y0 n, B! j+ b
- (ENTMOD DS)
/ a: a* O1 d( u1 @1 n6 o, r - )+ y M0 q8 L) ?, B
- )" A- ~& ~, x. q }: O/ A
- (SETQ DEM (+ DEM 1))& I, F3 Z/ G7 l q
- )
. ~ ?; \ `3 u; R- _ - )
8 {4 Y" {1 ~3 a0 o - (COMMAND "UCS" "P")
a$ E0 c6 J: [) ~: e - (SETVAR "CMDECHO" CMD)+ s1 m4 e! ?, n4 Q
- (SETVAR "OSMODE" OSM)9 Q- y* \5 R& s# u4 \# U
- (setq *error* OLDERR)
( o' ^$ {4 p! f* b- _4 K+ G - (PRINC)
6 ~! i7 E- Z# t4 a - )6 j. q4 ?- z0 Q7 x- W, V
; U S: b" b2 ]$ D- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================+ t# n, o$ X' ^) m: ]* k
- % ?6 p7 {7 E7 R4 ?# E
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")- P5 }) \9 T' |1 c
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
& w c8 E0 W) P( |4 V5 U - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt4 M0 z3 e, M) R; K8 I
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
! V8 [" B7 e- ~ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")1 K* g; W7 J5 z9 C2 p2 U- K
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
. P; m( w' {. n, X# R8 g7 K# W - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))% r, ]! s# D8 D n. E
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)) e# P5 L1 Z& @+ J* |
/ `) `: g9 H, e4 b/ F- ;;; ================ CHEN COT (TUU) =================
. N( ]2 @) G' a. I3 `6 t5 d4 _
& B% q0 Y% `/ G1 J5 `9 [9 I- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
Y3 B& }# T+ R - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
' ?# \8 Q: Q) t, e- n - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
0 u) N# Q( y6 _7 |* Q6 p5 U - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))! E2 x$ W6 z& }( H# ^$ p$ T1 B2 {
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")2 w7 G! m4 |% B1 Q9 b7 {% t
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
* a J; x, ~/ C6 c - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
0 k7 e0 z: { y4 `5 |: L4 P# r! f - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
, M0 g( M O4 d9 y/ ~* V- X
8 Q/ e/ t5 Y, [2 G( i, R/ q- ;;; ================ CHEN KY HIEU THEP (TP) =================7 K- ^& v. v! s0 n, ~( e: P: H
- 7 ?$ K0 o, S2 d5 s/ i
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")% Q% t+ P+ j1 D1 i8 I) u& i
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
/ r' M/ B5 x5 S9 R3 t - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
$ C1 p8 }$ k: l: [1 L# p. d - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
1 f9 E t2 P! P! N8 b - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")' Y, X1 }/ O$ V# E' I
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))+ ^! u: j- C3 V' a3 R! n# O: P
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
8 g8 k1 F0 c4 K9 R: x$ a; q* B. O1 P) g3 d - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))# u; z% C$ T. f
- ' C+ B0 k- A |
- ;=========================== TAM TUONG (TAM) =================================
' F* [4 E# ?4 i. Y! g
! i6 Z w q9 W/ T$ \- (defun c:tam(/ data_m)9 ^- L. v. e4 k/ t
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0)) M& q7 C! O5 \$ ^: L
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))! a. V) O6 n, T4 p
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)3 s& W1 y1 L+ j
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset/ X4 o! D% n+ {$ h( ~& y' {
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
% z/ B$ g1 ?* h9 i' `; f - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ), F8 `: y6 \9 c7 V# I$ p; q
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
1 A! J% `& i7 Y- s' I& H, K - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1). U- S8 p+ h! Z. `( f
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
' w: A- t6 [3 s. V- `, n0 s - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1))); A) _- C% q7 U V' G
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<. ]9 C& }' K$ `# i& E5 M5 G
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)- y' e& m0 L* o; r
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))1 R' ?1 b/ D% p/ w# f- t
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
8 B1 {/ J0 z3 {3 p. L - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not0 t8 n1 l* q, k& ` M
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget. c" G6 m' e" V3 t# E
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))) g( I! l- D+ ~* O% ]( d
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
+ W& z& |; M% ]
% L; s/ b; k4 I4 Y1 Z- ;============ GHI CHU PHI (T1) ================4 o: k* y3 ^& _$ `
2 [7 e/ w( t; W8 G- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1)); a1 [/ Q5 [* x) I$ x& ^
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D32 x0 s% P' s' @) B; F
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
* H# n+ J( T6 {; Y5 j; J - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
4 n( S- Z& Z1 o, ^ - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
* B/ H+ @0 |8 O5 J - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)8 m4 \/ c2 P. J# c9 Z4 K) g! _
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
/ G+ `9 M3 S7 V9 h9 Y% [+ f+ `# z - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
, N' K: H6 s6 }% u8 Z/ o5 d - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
5 P' {. d |* P; ?+ y - (command "ddedit" pause))' r& w4 K# D: H( k- l
- ( E% ?7 n x" E/ k# Q
- ;;; ========================== Join (J) =================
7 x, @& k( p4 U4 X, y: m
. G$ x% k4 K: M/ B+ ~' I& o9 ^* U5 r- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget)): N" x: b7 M5 y9 G
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
. K7 K' p( g& q+ b$ A - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp); s) f# H' p W
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE"): T4 R4 u- q) @4 n4 F
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
& B+ G4 i4 }. m; f# S - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
3 ^ B$ v7 l e, @- [& [( s, c1 y - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
, d# Q8 D7 b: I7 t; `# } - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
, F9 I+ k9 ~& z3 ]& J% I; s9 U4 O - (setq *error* m:err m:err nil)(princ))' T$ A V/ Q( ~( ~7 ]. Z0 Z' W( o6 k
. s+ `& P, u! C0 s$ U- ;=====================================================================
( ~7 ]% q2 ]( ? - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.( T0 J4 D1 c" [) ~7 ]
- ;=====================================================================. ~8 ?% `, W9 w- H3 |; [
- 3 ?- T! \- ]9 r- Z) A
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
. r Y7 t+ q6 l - (setq old (getvar "OSMODE")) 9 M! K4 N/ R6 u4 C
- 5 L0 D/ L. d, g& N0 o
- (setq p1 (getpoint "\nStart point:"))
, W5 z$ _( l3 m9 h - (setq p2 (getpoint p1 "\nEnd point:"))
: Y; M0 l, Q% S7 p$ {2 J4 S - (setq side (getpoint p2 "\nOpen side"))7 d. R Y# J) V3 @* ~
2 }# o4 m/ J% F i4 f; f0 F- (setq dis (distance p1 p2))
9 s4 W% Z4 ^; c4 R3 u - (setq ang (angle p1 p2))
& A, T% R. I+ N) Y9 d- R' f# @" \ - (if (< ang (angle p1 side))) L [. [' I2 [4 s. \$ f5 p/ A# ?
- (setq angside (/ pi 2) )
v5 f$ d; l; m0 l! m4 h - (setq angside (- (/ pi 2)))0 G! u( p8 u5 b% r
- )2 v0 F+ }; `; `8 _) G3 s4 P/ E
- (if (>= (- (angle p1 side) ang) pi)
! i& B, z' U, C7 f, b - (setq angside (- (/ pi 2)))( L! b s w0 _$ i
- )
; o5 Q/ H, i E5 J: S+ v - (if (>= (- ANG (angle p1 side) ) pi)
# [( Z S3 g2 e4 K% o5 y! A - (setq angside (/ pi 2))
]" \+ S. C4 s; m - )" M0 o. a. \! `* W; X' h; W2 S
- q5 }/ T0 a# Z/ M- (setq p3 (polar p2 (+ ang angside) dis) )
, [$ v a$ E/ |4 u$ ~$ q$ j - (setq p4 (polar p1 (+ ang angside) dis) )
5 ^2 e9 L3 M, b5 p8 k' t* a - (setq wid (/ dis 15))- ^8 O& \1 Z7 P/ w, x7 h
- 6 T5 k- ?9 i, h$ Z) `: \, _4 w
- (setvar "OSMODE" 0)2 ~) H1 T! r0 _! p- [3 H
; A$ Y2 z, i# t6 C' T3 c- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 . g7 ?8 `" E" N6 Y* R6 {0 C
- (polar p2 (+ ang pi) wid) ' V$ k/ U( v( G9 J6 f
- (polar p3 (+ ang pi) wid) % d3 V X9 e. a
- "")6 h8 O; L- Z3 H" L3 e7 e
- ! L, I$ s3 |) p
- (setvar "OSMODE" old)
- v' ?' Z) e) x9 A - (princ)
4 Z( d R2 [$ s7 b. m* u: t' o - )' F, F9 v: m& ?2 D% V/ {
- 5 |( M& M% s' z
- ;=====================================================================8 p @5 M2 y+ e$ w3 T6 b! S
{. C# ?# E$ _8 Z- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)) R* g! I7 H& [( e8 s5 Y v( _
- (defun cua1 (pt1 pt2)5 k S$ ~. e# u, d. y2 e1 R
- (setq p1 pt12 [# u @. t7 B2 X& f8 s
- p2 pt2)
2 n/ x3 x6 j8 y5 t4 \' O" o$ |& S( m
: ]$ m+ `4 W/ e' w/ f* H- (setq ang (angle p1 p2))9 P1 Y" [. o. Q
- (if (< ang (angle p1 side))
6 j& Z1 [* J E& p+ h3 Q" ` - (setq angside (/ pi 2) )3 A4 s, b v% O1 d& t; [, i
- (setq angside (- (/ pi 2))): i% V c4 ]+ E. r/ d
- ). {& X4 @% h6 C1 p4 B% B6 V
- (if (>= (- (angle p1 side) ang) pi)) K. L4 A7 G. Y9 r
- (setq angside (- (/ pi 2)))
3 b! Q% q5 a9 F9 ?6 S - )9 s' z8 b9 i7 L+ p# y
- (if (>= (- ANG (angle p1 side) ) pi)
( V: z+ w2 I' L: d' ` - (setq angside (/ pi 2))
; D( X3 t- G/ M) R* s* K - ). x; g( P* \% S8 R+ u
; c( u \ S' |& \ T) z2 T- (setq p3 (polar p2 (+ ang angside) dis) )
# d- n1 k1 x+ f! P! V4 W ^) E - (setq p4 (polar p1 (+ ang angside) dis) )
& p. b, [7 ~' E# W: [! `' e - (setq wid (/ dis 15))
" j. \% K3 [) J% p3 ]$ W5 W
9 \ k/ G5 i4 L7 M- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 , ], z: V/ E% j9 C
- (polar p2 (+ ang pi) wid)
k3 g3 Y' _ L1 G+ `9 L; R# p' k/ I - (polar p3 (+ ang pi) wid)
( ~% O: [5 l; c2 G F - "")
8 T5 d2 j* l, j" Z( P - )$ c6 f; O" i8 D6 m4 R/ I2 ?* v
- ;=====================================================================
! V9 Y! X6 v7 k+ O. N; p - (setq old (getvar "OSMODE"))
G. b J# q4 \: W* S4 y7 F" T - 1 S6 O0 s4 I( K" w
- (setq p1 (getpoint "\nStart point:"))
: w# t$ f/ R. m - (setq p2 (getpoint p1 "\nEnd point:"))/ P! o# {$ {$ u
- (setq side (getpoint p2 "\nOpen side")) ]; g1 N0 A1 U( ~# Q$ E
% [% ~+ J' ?: V0 [" e0 p- (setq dis (distance p1 p2))
) `: M7 z4 E! L! e8 M4 L& } - (setq dis (/ dis 2))
. E- k9 ?* p7 d
" c8 E. j t5 v$ @& g, a- (setvar "OSMODE" 0)
7 B; d$ U0 D7 s# w% k
% w9 \% k# J& ]% ]- (setq p1 (polar p1 (angle p1 p2) dis))
8 E4 y. t% e6 p# ]8 Z2 B - (cua1 p1 p2)
- K0 ^1 `, J# I8 W" ~/ k' T
( T0 h( {( P: N, F1 \; h( P- (setq ang (+ ang pi))/ r" P8 V2 n% `7 `* T( H( U* Z
- (setq p2 (polar p1 ang dis)). T8 m" r/ e4 a9 j; Z# q+ ]
- ; (setq side (polar p1 () dis))
- C& U6 D5 u9 Y2 | - (cua1 p1 p2)
3 k% h. ]1 v8 ]
" e p: k/ n% K9 x- (setvar "OSMODE" old)
: g. L3 N _8 i" q6 E4 P: G9 ] - (princ)
' Q. {! y& O: ^& E, w% D - )
2 W H7 K8 D) p- V/ j* n6 t6 C z - % g) @) L0 w! p0 i# M
- ;=====================================================================
" F& k4 P2 ~5 P - ;"Glue" text strings. All adopt first's properties.0 u1 g7 a1 A4 i: S6 C2 X6 e
- ; Author:
# O! H' [# |- L1 i# ? - ; Henry C. Francis+ O9 N+ t5 D' a1 C! P2 D
- ; 425 N. Ashe St.# K0 U0 ?+ @- X
- ; Southern Pines, NC 28387
5 Q H7 S) H/ a/ S- g+ N: i - ; http://www.pinehurst.net/~pfrancis
: M4 x+ Q5 l0 B- W! O& n - ; e-mail hfrancis@pinehurst.net
4 n$ ]% _0 B' e3 c$ Q - ; All rights reserved.; [" {& a' g, P4 L
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11) H# H! J/ \7 m0 c, U
- (while1 |9 ~. r6 x; t) l% P+ k
- (not
$ i5 n7 y, t! t ?8 ~ - (and! m7 A( l: v5 f3 U# z, z2 S: X6 T
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))* j& m5 d" p* B8 D' d
- (setq ent1 (entget ename1))9 N" c3 M6 l- Z1 \1 e
- (eq(cdr(assoc 0 ent1))"TEXT")
, B# R! C- D2 ?& b u. r( g - );and4 S! ~1 D' [4 V7 h
- );not
; c4 V! u9 V3 r) N - );while
# d( E) ]+ m+ _3 e - (setq old1 (cdr(assoc 1 ent1)))2 D* ^7 Q% P' f
- (while
& G! |3 y$ [! ~; R' N! _- q. Z, e - (not8 T1 G+ U+ e) K5 ~% a
- (and
: R( }4 m' L( X0 [. l - (setq ename2 (car(entsel "\nSelect second text string to join: ")))
/ e/ B7 @6 g, x6 w - (setq ent2 (entget ename2))( [& x1 L+ B; p" m
- (eq(cdr(assoc 0 ent2))"TEXT")
) q# h) Y$ X/ { - (not(eq ename1 ename2))
; d/ g7 g5 U8 T! _4 p/ Q3 a/ H - );and
$ t, e. g6 H1 T, U: t" o: C5 W4 i - );not% g$ j' h7 x% o! @$ M2 [8 e' _
- );while* w; V2 c: v% R3 [! g) v
- (setq old2 (cdr(assoc 1 ent2)))
) h; a+ m1 A8 d( K! P9 Q8 J3 d - (setq new1 (strcat old1 " " old2)3 o5 M. M* c, B2 Q
- ent1) R" ~6 L. ?1 n' @% I& G
- (subst (cons 1 new1)3 M$ u$ m" T6 f" w: l5 I
- (assoc 1 ent1)9 K9 z* p: K3 d% H$ m! M
- ent1)
" n7 y. J" ~6 v# a. F4 ] - );setq# {8 F5 W" \( R; A; W0 |
- (entmod ent1)# w, Y' T* {1 v4 W2 M
- (entdel ename2)
: q( @$ V9 H" E7 H - (princ)
2 O: H' d! X& n8 R& ~% e* ~+ m$ E. i - );defun
8 U3 @6 W5 x% Y4 u8 Z& \
* d7 j6 s" _- o3 a+ w K- ;=====================================================================& \# L% @. I0 j" o0 p2 L9 o! c
- ( V# B8 b/ R" W: E3 s q
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
2 O) N* w# q2 `# o, m4 m" r2 q3 B8 f - ; x8 P. K. ^5 s0 w0 P
- (defun nterr (s)2 G+ c; z( d: N; k; P" e1 Z4 ~
- (command "_.UCS" "" "_.UNDO" "E")
2 B/ S* O! C0 |4 n1 o' N - (setvar "cmdecho" 1)9 P: s- n' e6 k0 ?
- (setvar "blipmode" 0); k# z( f) W9 D0 \6 |% X- _
- (setq *error* olderr)
' J. L, d$ P, @1 ~; a: ^ - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
' [7 S- h* C }, i |8 N% Y G2 h3 T - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
, q1 n# s! l4 O q) K) k/ P% y - (princ)
4 ~# m' L" @, { V K- k - )6 F" Q' g! \6 K1 K5 W
- 4 |2 e( _) g( \ f' F; i- L% V: U1 ^" Z
- (defun tim_in (dt / p01 p02 ktra). D* C$ `" V' B3 v
- (setq p01 (cdr (assoc 10 (entget dt))))" z# J; @5 s' ^) j# z, v% p
- (setq p02 (cdr (assoc 11 (entget dt)))) z+ i$ e3 t. D: T" V
- (setq ktra T)
4 z4 G5 z5 B8 @; b8 B - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) # G% T! J1 [: l8 K9 A3 s1 _7 I
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
" J, I5 d8 } P7 o4 m* F3 T - (setq ktra nil): j/ r' k& ~' X' P
- )- V( H' |9 [1 p4 k; P
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
1 h \) W* k; C$ y6 m' X! n! w - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2))). d/ g! {) G2 {" k. j
- (setq ktra nil)
* }9 S9 Y* W& b - )4 b5 f4 W+ Z3 B8 F4 u; v$ X
- ktra% s/ |# R) T5 V; S: y, e
- )
. |! M3 `. h! p2 X. i2 L - o$ X3 h0 h( p! x
- (defun timdt (dt1 dt2 / p01 p02)
- M9 y$ ?# F9 b* } - (setq p01 (cdr (assoc 10 (entget dt2))))
. `4 z$ y& b# R' ?) ? - (setq p02 (cdr (assoc 11 (entget dt2))))
9 k% k% L! _3 U3 n- p1 m) d - (setvar "ucsicon" 0)7 {5 H- T' H) W, }8 q2 ~1 v
- (command "_.UCS" "E" dt1)
8 R4 C: [! m' W( ~* } - (setq p01 (trans p01 0 1))7 H& t4 Y+ B" v$ G7 B
- (setq p02 (trans p02 0 1))* c7 \2 I, e A0 H: {, R$ s
- (command "_.UCS" "")1 L' c! Y3 s8 p4 o! w9 r9 y
- (setvar "ucsicon" 1)5 }5 y$ E8 I7 b. J2 U$ e
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
) k) B; U4 E/ |9 P$ f; N) R3 b - T
9 J; R2 ^$ o8 Q' N( `" w5 {7 z - nil* y0 V: C6 C3 E) J
- )
( a' e1 ]5 d F! q* ~ - )
9 b I# Q9 ~3 b. |% Z8 n4 L" Y - 1 r; P) F2 }3 I" O0 E/ q8 q, ?/ \
- (defun tim_out (dt / p01 p02 kt)5 [8 k1 _% F5 \1 |# n
- (setq p01 (cdr (assoc 10 (entget dt))))* C: I. N% S$ f. S; y
- (setq p02 (cdr (assoc 11 (entget dt))))
0 _) X' T( H# c. I' g: f - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
. N3 b" K4 t! x+ S9 M$ G* ] - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
* Y8 ]% K3 a7 S# X' i; d7 } - (setq kt p02)3 Z9 M# i- l: h, v5 z) m
- )
: ^) C; H& o7 O6 J - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
+ y/ k3 ?* x% X' }6 {9 B - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2))): ?$ S8 b2 h& y5 D3 j' J2 d
- (setq kt p01)% ^* o; S6 S0 v' n2 V! L
- ) ]- G4 U( Y5 |, k
- kt / L% s( B0 M$ w9 j3 D
- )
3 W: e# j& a- W) Z - * }, w1 ~) ?, t0 @
- (setvar "cmdecho" 0)3 c' W5 c! |/ D+ } ?
- (setq olderr *error* *error* nterr)6 F7 o4 V! e; n' N+ g8 r6 U
- (command "_.UNDO" "G" "_.UCS" "")
/ p1 t- K9 z- ~, X) W2 H& J - (while (null ss1)2 @0 f' g8 M- v
- (princ "\nChon tuong muon noi...")
5 P. e" g0 z. B4 k! ` - (initget 1)
1 l; v# ~% E, |' B - (setq g1 (getpoint "\n>Goc thu nhat:"))
8 m8 x+ s# e! @- m# q - (initget (+ 1 32))
/ p8 e( V, Q k. v3 q d& l( } - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
! [% [$ r5 }( L, g) I+ r - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
5 n/ \6 A+ ?% B# s! C; w - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
/ t# ~! F5 H9 P! N- [ - )
+ Y0 C, K! ?8 f8 T2 t8 T -
; a' a, d! a5 i+ {/ a - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
! z# R# ~0 Y6 o" V8 g" Z, q8 E - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
! t. w, C# I& F* ^* `. \* r - g1 temp)
2 }! v' J% n5 [: U8 s9 {5 `( a - (setq ss1 (ssget "w" g1 g2))
" q m. [7 F2 S& v* ` - (if ss1 (command "_.ERASE" ss1 ""))) t# s; m+ a) J' {" }! X
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))% m. _ w3 P0 w$ X
- 5 R, t) u& x* [# [" f/ ~% F1 w
- (setvar "blipmode" 0)2 k6 x: }& G% G" }6 m* W( q
- (setq i 0 l (sslength ss1))0 a7 q+ q) o0 K, F
- (while (< i l)
& g7 `* F h2 h- M0 ~3 f - (if (tim_in (ssname ss1 i))
/ K2 h/ K7 o0 L( `2 z. l# z - (progn
: K4 }' H8 p2 h% o7 p Q5 e - (ssdel (ssname ss1 i) ss1), E' V1 h" T& }0 X" n- m* V
- (setq i 0 l (1- l))0 U$ s8 h2 D+ f( u" F, g& K9 L& x
- )
3 |' N3 l. u/ n& c5 f0 [8 L4 o - (setq i (1+ i))2 K# B0 |; N* V. t) N" k
- )
$ Q8 P8 ]( l m - )
L$ }" k1 v* Z9 x: O: Y - (setq l (sslength ss1))" W# D3 \+ p. o) Y# _
- (while (>= l 2)& k% @9 `4 T7 c: S2 Z
- (setq e1 (ssname ss1 0))
7 K$ g6 u/ }2 ~( Q& ^; c" l - (ssdel e1 ss1)- m& @& A n- W, b) l
- (setq e2 nil i 0 l (sslength ss1))
0 i0 o0 m) Y7 W$ H - (while (< i l)
8 b8 t) {. x/ k# f' P - (if (timdt e1 (ssname ss1 i))
) x6 Z6 v9 r7 j - (progn: U0 z* [$ f: e: y4 G) ^
- (setq e2 (ssname ss1 i))
5 z5 X2 g# x/ m6 O1 s - (setq dd (tim_out e1))
" {+ {/ i+ k! V; Z9 y - (setq dc (tim_out e2))
6 D M& y2 l& ~; E& m - )
: k9 P$ J. n! E: b( i- D( ]8 s+ _ - )
2 q/ [/ L+ S' d" A+ B9 k - (setq i (1+ i))
9 ~( Y5 ]; ~6 ~5 m* F0 E8 H - )* m2 ~6 [- u( q. h. I
- (if e2 (progn
5 [3 p, e* k* u8 ] - (ssdel e2 ss1) ! ~7 A. s4 R2 I1 c
- (command "_.ERASE" e2 "")
) n2 ]9 N! D& s - (setq temp (entget e1))1 K+ L; g* y" [3 f
- (setq old (assoc 10 temp))
2 ?8 u' {' ]. z& L% k( |5 p - (setq new (cons 10 dd))* |6 Z) r$ f Q/ X0 z9 \ X: v
- (setq temp (subst new old temp))
& \% `4 D3 I/ g8 y y0 T B - (entmod temp)8 d; V/ K$ H0 P9 `" L% j& n9 i6 Q
- (setq temp (entget e1))7 x) E) f- G7 ]$ i# F
- (setq old (assoc 11 temp))
; F# C" ?3 _# L* w' G - (setq new (cons 11 dc))
1 ]1 R$ z+ I$ K4 {+ o - (setq temp (subst new old temp))1 \$ _9 B ^" }- s" T0 ~/ V0 I
- (entmod temp)
. E- L. K4 H" |9 C1 n, N4 G - (redraw e1)- W7 n7 Y8 H5 F6 Z
- (setq l (sslength ss1))
) G7 `/ ^: ?, {* a( E9 e, u - )$ c+ X4 H H' Q @; e W% F: K
- )
7 X3 j# R& {3 ?0 P - )
3 X8 S% I R$ G8 ^ S- A
" V. s( [ g% V2 z- (command "_.UCS" "" "_.UNDO" "E")
/ X& f7 ^: u* D8 D - (setvar "cmdecho" 1)9 l5 m" q. C C( x. _6 K4 p
- (setvar "blipmode" 0)
) k! T' N8 N8 @5 n2 c4 z# G( B - (setq *error* olderr)
2 I5 [! f3 `5 m8 A) o' ~' N - (princ)1 b) y- b- Q" e6 z- A$ A
- )
0 i# y' i a& O( W - ;*********************************************************************9 n1 c4 z3 B* Y( \. ~, j& w# g
- (defun ketthuc ()( y9 ?/ |' f/ b$ u
- (setvar "cmdecho" luuecho)
7 h- I4 d% ^$ Z0 o$ [, ?/ s- ?) I3 g - (setq *error* luu
/ j* {& X' @: H8 _" K; B* O - luu nil
3 `( x$ g& o4 r+ d m- w( t - luuecho nil
8 d& Q! _/ [! q+ i1 j - );setq
( |& O3 A' A! z' @ - (princ)
! |. J+ j8 p3 r* v3 @ - )
* L. q- r8 n. d - ;*********************************************************************2 ~$ ?# l; ~( c/ Q: l ]
- (defun modau (), s: T4 m! F7 k9 x. k7 r
- (setq luu *error
6 U* j8 G) K" W3 x/ C T$ }# o - luuecho (getvar "cmdecho")0 e* q7 J' H* s6 L+ z+ [
- *error (ketthuc)8 e# ? p1 l6 q! h
- )
3 I- W9 S5 ?3 U2 { - )
( y8 w! A% W) r- v - ;*********************************************************************% ?6 K! \1 a" C4 w/ a
- (defun xulytext (text / kytu ma sokt luusokt lui )
: }7 s% T- J7 O1 V - (setq kytu (substr text (strlen text))
' { |: j9 G. @7 S$ h+ h - ma (ascii kytu)
( I1 p8 c( w0 @" Q - sokt (read kytu) % c, ~- j* x' L% ^
- lui 1
& p" x; c' {8 i# L5 C5 L5 j9 b! q - )" q! |) @( F' u9 l
- (if (numberp sokt)
) {2 |' V& @1 n, \7 @% m$ T - (progn# {0 C0 E; ~$ a( M( G% W/ m8 i; \
- (setq luusokt (1+ sokt))( h% Q( ~. \6 J- l
- (if (and (numberp sokt)
& ]. S9 p. H; S! K7 C) w' g" Y8 T8 M$ _ - (> (strlen text) 1)
6 i: v. I$ B, S q- p$ T - )
, g$ M, F: Z5 e2 w$ C9 f' @$ H - (progn
( C2 ^$ _, x& b) }$ T( c E( D - (setq kytu (substr text (1- (strlen text)))' d: d/ ~) @4 O( ?
- sokt (read kytu) 7 c6 Y" a( `9 O. |
- )5 ]7 W0 |, V6 O: M2 o- U# F6 T
- (if (numberp sokt)
( \) _9 J3 L, [* o5 A* i+ z) H3 m - (setq luusokt (1+ sokt)
6 S H4 W. z1 M, M) ?5 o - lui 2
6 k" v X" r3 D - 7 v: u% z$ t: Z7 Y
- )+ |, D1 S; m( B& t# b0 {2 \% w
- )6 L' \" z: I! K L* ]/ X, x8 N' X
- );progn * x$ j" n: I+ F5 \) K2 H
- )
/ \" l* @( a& d4 P$ h, {$ P - (if (= luusokt 100) (setq luusokt 0))( [. z1 {) m q- z) X
- (setq kytu (rtos luusokt 2 0)
1 s1 s" g0 B+ }+ M - 3 u+ Y- y, A8 y; Z) G) j& {( H
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)" o* m0 j. C, V1 I0 Q
- )
0 S- A# m9 T/ Y" |) F, { - );progn , g- m0 i6 _9 W" x! t9 Q1 }, q
- (if (or (= kytu "z")1 Q' ~6 y! S2 o' g# O. v
- (= kytu "Z")7 K" U6 \& f, b" ]! a
- )" ~) Z5 f0 V1 O; e9 T
- (setq text (strcat text "0")9 l8 |/ {% G- J9 \+ y0 P- o/ `
- textxl "0"
% z2 U: f# Q! E! l - )
! _' u! O# l9 O; a8 ]1 ]5 `/ C - (setq ma (1+ ma)5 C- W n" e d) S! w
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))- A. x- i1 k; Q# f L2 N
- ) M( Z' o2 b1 j% P+ e
- );if
9 A% U3 f0 s# @. N: o8 g1 ]$ f - );if
* a0 Y Q6 z, l$ X s( {, q; [ - )
+ o, c1 G5 b8 j2 f# X6 f7 b6 @! E" u - ;*********************************************************************" x+ o$ f6 g# m8 x, u
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)+ a4 \$ F- i5 m4 x; P5 z1 Q# }& P
- ;Neu doi tuong la text thi tiep tuc
/ I" I4 J* y" @6 N - (setq doituong (entget tendoituong)7 l8 u9 H2 ?, j. \/ T
- kieu (cdr (assoc 0 doituong))7 ?# p. N/ a, }2 w- H: ?
- canle (cdr (assoc 72 doituong))% X7 L! H1 }, Q2 M
- ) 7 k& |8 E' f; J2 B* A& W& T1 G
- (if (or (= kieu "TEXT")
9 c! I0 P8 N" N - (= kieu "MTEXT")
) f8 d# ?* g- q( M - )
$ `1 l& W1 Q8 N4 C( y; A E - (progn
6 z4 b }" ]4 m" S% z) O - (setq textxl (xulytext textxl)
a/ h* H# y. _& S6 s! Q3 E2 P0 V - text (cons 1 textxl)8 T) k- E& p( C2 `& v) L
- vitri10 (cdr (assoc 10 doituong))
" H0 v/ [& n% D2 n - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
% R9 x# d! D6 E( L - vitri10 (cons 10 vitri10)
, j0 J) {- t0 \2 c' b* E - vitri11 (cdr (assoc 11 doituong))4 b1 q2 S2 W W; N& j9 z
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))1 d7 C+ J0 a; \; W, |( J; H9 [
- vitri11 (cons 11 vitri11)
6 C+ c# _4 B" m, S% K. g+ G4 ~ - dem 0
& v6 w+ f( Q* \2 `* k - dsach nil2 j) ^2 g, r2 U" V9 w4 f& f6 g* F6 c
- )- z* o; M L; c
- (foreach tam doituong
' C0 _* I% ], [' b7 R1 R: n - (cond, Z! g0 v) F7 }' S$ L) w
- ((= (car tam) 1) (setq dsach (append dsach (list text))))* Z* L) H" b8 q# t, N. a+ R6 s& C
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
6 w2 e! C, [! T* m - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
; F2 s( y S' u - ((setq dsach (append dsach (list tam)))): ^+ N# d; T. R% U4 V
- )5 |0 v: ]$ o' `1 i' E; Y
- )
& M$ m( |1 c9 k2 P1 `/ o, Y - (entmake dsach)4 e( _, e/ `: Q' o& ]
- );progn5 j1 T: U4 q8 N6 v' \0 i
- );if
: D) _ G& n4 g - );& V- [$ h+ \* }2 C( l4 I
- ;*********************************************************************$ R3 J( `$ `$ n4 j9 \0 z- I1 a
- ;sao doi tuong cu sang vi tri moi5 |6 z0 X: p, p1 Y; N
* V. d) ]! n- |7 k& L- (defun copy_dt (tendoituong )
" A- \, ^0 W4 m- e - (command "copy" tendoituong "" goc toi )6 h" M4 c) g. H8 B
- );defun+ ^* j* m* e; D/ T
- 8 b% J1 v9 U* Z% y( _4 f
- ;*********************************************************************. @0 ?; Y: E4 ?, l% _- H
- 3 |* ~0 W: Q, e' K- e6 I
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)7 e" t2 b6 [( E$ N: i( Y* O
- ; Khoi dau cua chuong trinh
0 x8 R$ p! g, W' B! i* p' ?8 u - (princ "\nCopy Inteligent...\n")
, l# Y+ S6 G7 I5 R, `8 K3 I( d - (setq luuecho (getvar "cmdecho")
2 a% f; W. ~" \; H4 z5 G# L- [6 H - luu *error*
~2 ^2 ]/ K- W2 M! q4 K - *error* ketthuc
! T$ k& E$ C7 r! B9 b - cumdt (ssget)
" A7 l" ~8 j5 g' f7 h6 c: ?/ e - dodai (sslength cumdt); [1 S, T% h; q! `# @5 b* ?; p
- goc (getpoint "\nSelect base point:")8 D; E g/ A1 ~ o7 B
- thoat nil- Q3 g4 i, h5 X! j7 l3 \' E; J
- dem 0
' {8 E% ?8 [+ V$ u, o, L, \ - textxl nil
) _5 K9 Q- g3 i8 Q0 W; } - );
- I( H3 [2 }7 s9 d - (setvar "cmdecho" 0)# n1 @) j9 \. j9 L
- ; Loc ra duoc ong text de xu ly) n! B8 v- L: K. S
- (while (and (= thoat nil)
7 h; c/ @2 a/ h% @# _* p3 T7 S - (< dem dodai)
1 C* l2 ^& c3 u6 }6 J2 I# P - )
5 M1 s2 J9 u3 B) J Q - (setq ten (ssname cumdt dem). a4 E4 ]) @- R8 P% J' [; T. w1 P" G
- dem (1+ dem)
- a7 l. @9 G8 ]( q N. f' J: g - doituong (entget ten)/ X% g; u0 a, B" Y4 l8 e. {
- kieu (cdr (assoc 0 doituong)) Q: i0 T& V# r- i' y
- )
. T3 U' \" i9 P/ _: J - 6 x) L0 p* x9 H9 S" L \
- (if (or (= kieu "TEXT")6 \6 n; {/ V H/ y1 R& f
- (= kieu "MTEXT")
$ }( B0 J) ]8 p1 Y/ i* q - )3 O- h" q9 N) Z) Y/ L- D$ N
- (setq thoat T
+ |* N9 h: A: P1 ?- b" E - textxl (cdr (assoc 1 doituong))
. v1 Q7 J% U4 h+ W$ ~/ [& L1 H - )
: p) M. V. r* U g# q - )& j+ i9 B3 ?8 s& t& M f! N
- );9 }# i! ^0 v+ U0 ~3 w5 q, U% V
- (while T ' |/ @5 {4 Z Q
- (setq toi (getpoint "\nSelect next point: " goc)8 t& H' f' y- `+ i( u' W1 y
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))) V9 \+ t4 N8 v P: j
- dem 0( K( n9 b1 ?: X4 g( t
- ), z& u, y. v& \9 h( Q
- (while (< dem dodai)1 G7 ?7 P- z3 W
- (setq ten (ssname cumdt dem)6 W) _1 R1 G5 h& U3 o* w
- dem (1+ dem). t, V/ X) v: S9 i( J( @0 [
- doituong (entget ten)
/ J/ P% P# B# P: h H0 N; R - kieu (cdr (assoc 0 doituong)) * m) C8 H: `# R' i
- )
; q; e p6 W5 b8 P5 S$ X8 J- x - ( S5 }) P* u. B" A3 E
- (if (or (= kieu "TEXT")
6 f$ P6 V8 t1 K I# R: w- B, ?4 E - (= kieu "MTEXT") / v" A5 C8 e( ~7 z# J1 ~5 i
- )
- S7 i/ {+ _, w - (doitext ten), e9 q. n/ p5 P$ \9 H: W* ]
- (copy_dt ten)
1 {. Z/ f# ]0 E, D
5 o. ]% X" v/ i! v; r; J- );if+ }( t* D& Y0 H9 s7 U- {4 }
- )
! {' Z/ [9 f" ?9 d - );while, S& q: V( D/ M
- (ketthuc)
* G# Q) j, E% Y$ v. j* @- S - );defun
/ _0 ~# E) p" \$ R- Q - (princ "Type \"DG\" to start")+ C+ m6 W+ i7 K8 t* ?
- ;Note: bien toan cuc: textxl vitrilech
+ s: |1 P6 n2 s: [ - * |# P. X) t5 F+ k
- ;=====================================================================
0 r3 z+ D/ A Z/ a7 b+ m0 a/ Z8 X: n - ;;; PLJOINFUZZ.LSP% T% ~+ e5 J" G, A/ ]* u; Y( b
- ;;; Joins lines, arcs and polylines using a fuzz distance" V0 K& x/ U4 Z( A
- ;;; If only one object is selected it tries to join to all objects that are possible% ?8 G2 I3 |6 _
- ;;; By Jimmy Bergmark
# ?' |/ S4 ^6 k. v5 L: @ - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
& a! X' q9 k2 z+ {2 V3 O - ;;; Website: www.jtbworld.com$ z( S; p2 T$ v) K; A
- ;;; E-mail: info@jtbworld.com
9 [, [2 p3 C. @6 A; Y - ;;; Tested on AutoCAD 2002,2004 and 2005
/ O7 ^4 C( o8 c0 F, z, d6 f6 D c/ W - ;;; Latest revision made 2004-11-11
' L. ~% Y8 X* ~' Q! ]# F* o0 v - ;;; Minor code cosmetic change made 2004-11-133 W, R1 \$ ~- d. P
- ;;; Bug corrected 2004-12-23
- m. o+ z; _1 m - . j4 z2 E5 }' u9 _& C
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
+ A# @+ a) `. K0 P! @$ i - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
0 G" A: @2 v B, F - (setq oldcmdecho (getvar "cmdecho"))
2 k: P! H" M% }' f - (setq oldpeditaccept (getvar "PEDITACCEPT"))
. D$ A- e) d. n; c - (setvar "cmdecho" 0): o9 ~, V) w) B' W5 K, I f. F3 U
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
[* Q( U% q; `/ t( N - (if A2k4 (setvar "PEDITACCEPT" 0)); N3 M0 m, e/ Z1 Y- L) H0 T- |2 j
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
# T7 s$ h+ s( w3 u3 u" e5 @; S! [ - (princ "\nSelect object to join: ")! W q0 V/ e: b
- (setq ss1 (ssget okObjects)), i' @! V3 a8 y1 v. S, q& z! |
- (setq fuzz (getdist "\nFuzz distance <0>: "))
& B' P' g9 c! u: ?4 M - (if (= fuzz nil) (setq fuzz 0))/ R6 m$ m: Q% C2 O Q
- (if (/= ss1 nil)+ f; g( I: k% |4 W/ R
- (progn4 a: r L9 b: O5 L( D, I9 g; ^* j9 a
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0)))))): e, k# j) d5 @, V6 i9 {
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))2 F; ^8 C0 U4 C0 E8 p
- (if (member objType '("LINE" "ARC"))* _ _0 ^2 I; F: U5 k m9 c
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")" A) m* i* Z K: J
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")) E0 Z* V/ k, i( t' g, @
- ) } x. h1 e( F* i2 w, s; ]
- )/ |$ ?' c) f% P& Z: v$ m! f) U
- )
0 I3 L( |$ ?9 ?1 F- J' x% l - (setvar "cmdecho" oldcmdecho)
) ^4 i. H% z! H& p9 I - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))- W: |; P. `. W) o; V
- (princ)
0 R) q- x/ i0 z1 o" e* P* o - )
& C2 B$ R9 C4 l - " w6 E5 Y+ W, [3 R: K/ c* k5 a
- ;===========================VE CAO TRINH===========================
6 v- o" p- p: h2 [- Q% D
; w* G9 [! j, X7 [7 I- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL* ~% o z4 y. B5 W- z1 Q& p+ q$ \
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR), C4 p) T3 S+ U) i. j* J }
- (SETQ OLDERR *error*
2 l' k1 g- A' Z2 l) r% E - *error* loisb)4 ~+ u! ~+ E% b6 a' e" w: G
- (command "layer" "m" "dim" "c" "" """")
, T' L: \$ L! F# L4 h+ o7 u7 o - (SETQ CMD (GETVAR "CMDECHO"))5 W; z9 z0 u5 z* Y: ?4 a. N
- (SETQ NBC (GETVAR "CLAYER"))
8 |' ]* h& T$ k; L, \ - (SETQ OSM (GETVAR "OSMODE"))
2 `. i, P# c5 Z& Y; J: d9 _ - (SETVAR "CMDECHO" 0)2 D3 F& B! x/ L1 _$ M
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:")): ?( T0 B- w9 b! y
- (SETQ TX (GETSTRING "\nCao trinh:")) T& y; T% j4 B" t" u
- (SETQ FCH (SUBSTR TX 1 1))
: e# S3 g+ k4 ~, C0 t6 P - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))6 {* C1 T" h6 m' E3 H7 T) m
- (SETQ CRST (GETVAR "TEXTSTYLE"))* b1 n2 \1 w2 j; Q2 [8 N
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
2 g. \" k+ G. D+ U3 e - (SETQ TSIZE (GETVAR "TEXTSIZE"))
/ r' J( q0 W5 ]6 T7 t* Q2 D7 n - (SETQ STR (RTOS TSIZE 2))+ `! k, p4 v4 b$ X) \; x
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))* Z5 F* G4 ^. p
- (IF (= RSIZE 0)* ^" Y1 b7 W* Q9 e6 }7 k
- (PROGN6 b9 T; k6 a) G: K
- (INITGET 4)* X! y) P6 R" \
- (SETQ TSIZE (GETREAL PRMT)), @$ S4 d( G; q/ e3 ~
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
6 V& u# H5 ~4 [5 \% v! B - (SETVAR "TEXTSIZE" TSIZE))' Y$ I' B! E, p$ E" \& S4 a1 ^
- )2 D9 x4 H- z/ M3 m& a/ t
- )+ W# y* }# |* |1 ` B
- (PRINC)
0 ?* r. D! `& x7 |0 Z! H* ^3 P - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
) Y, F6 [" B; I/ y - (SETVAR "OSMODE" 0)
* @) R8 r C; f+ V' I; o" X - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))+ D# o! @! G# T
- (SETQ NPI (/ PI 2))
) j( {6 e8 w- D/ a n - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
( X0 y# Y3 x9 t6 ^8 ?! x - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))6 x! V. u! R* t! B+ G4 j
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
1 c7 R+ x+ `. n0 D0 K1 M0 V - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
4 c. b8 A! n& S" ^ _7 b3 l - (SETQ PT6 (POLAR PT2 NPI TL))
7 s. J+ w2 J' @( L - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
P4 T2 _# i2 i; ` - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
# |" m- r) D# x: e2 c - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
# O$ b: K: D8 U2 } - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))/ q$ ^% B6 L9 d: s, a* T1 ]3 D7 u
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))& h' X* L" u: z$ b' X: {/ u# Q
- (COMMAND "COLOR" "7" "")0 ?, z9 {! N5 g7 M
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" ""): D( s5 L/ @: Q; p
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))+ ]& g; p A2 N- S4 i. @7 K( d% `
- (COMMAND "COLOR" "BYLAYER" "") ]( H9 i( I- f; h
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")7 N4 g$ R4 o: g8 a! h
- (COMMAND "COLOR" "BYLAYER" "")
; Y+ u, X2 M3 H8 M9 F, z7 ?% d, N3 |+ h - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")7 |; W6 ?, C8 e G7 k
- (SETVAR "CLAYER" "0")" w: u; M; _5 M3 t( [
- (command "ddedit" pause)
1 M" @8 g$ B* W$ ?. Q0 h% {1 `+ ~ - (COMMAND "COLOR" "BYLAYER" "")
/ ]. A( |5 ?8 b% W4 B - (SETVAR "CMDECHO" CMD)
& o$ F# X' t- f3 n$ j: B - (SETVAR "CLAYER" NBC)
9 o. p d% }( ~- A6 |( y3 E - (SETVAR "OSMODE" OSM)- _1 x& Y0 ]: _+ } {3 V% D1 t
- (PRINC)0 H4 i9 \' a+ q. N+ G# H9 x$ i9 ?
- )) H& W9 ~" g. v$ K) k/ K4 I5 g8 o4 h
- ; {4 z D+ k1 W L
- ;;; =========================== VE NET CAT CHEO (GC) =============================
" B. B- P, k( q: r6 X -
7 a) v% |2 i( H5 u3 [ - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
5 L9 w6 D. h! ]: f. ` - (setq x (getvar "osmode"))& ^9 M$ Q: u$ W! N& H0 p5 h7 x8 x9 ^
- (setq p1 (getpoint "First point : ")
! d# ?- m5 s7 x# X* B7 z9 g - p2 (getpoint p1 "Second point : "))
8 e& }) r. Y4 K& b2 Z1 N - (setq l (distance p1 p2))7 k9 c9 Y$ {; ]# a) T4 z
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))4 L5 V" E& T" h( j. Z( G& k
- p12 (polar p2 (angle p1 p2) (/ l 5)))0 ~) S, J" ~, O7 i4 M* P
- (setq ang (angle p1 p2))' \* L1 J7 Z* O/ I# x
- (setq p3 (polar p1 ang (/ l 2.5))( U% c/ [- G; K) y3 y4 \
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
4 {- ?# f' z0 M- n! [/ z% H$ y) d - p5 (polar p3 ang (/ l 5))
8 C: o/ j2 l( H - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
( J8 w, H- j" e+ z$ ?; J9 [ - (setvar "osmode" 0)6 v' I; o8 `: _8 \" o N
- (command "pline" p11 p3 p4 p6 p5 p12 "")
- \% E: x) Q( J% y - (setvar "osmode" x)$ j/ f4 Y; g1 o4 }, r, F
- )
) f; Q$ H- n7 b9 Y* c - ;----------------------------------------------------------------------------------
, {! b( h/ e B5 ]+ D4 X _ - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf67 t& v1 \$ \, q* Z$ M
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE")), u* V( r6 H# z. J+ n3 W3 S/ u
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
: f9 F+ S; N2 x+ o - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
# h0 q$ u8 O: E3 v5 F6 k - (setq sb 50.0 sh 200.0 se 20.0)
6 r& `8 d1 C7 W% | - (setq ang (angle ps1 ps2))
: P5 q. U% F2 m+ p* B& h1 L - (setq pf1 (polar ps1 ang (- 0.0 se)))* ?) Q" f, \2 z2 V: M
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))8 m) [. n# @" |9 ^6 F; v3 T7 u
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))0 |' w9 z& ]4 t8 P4 K# ^
- (setq pf5 (polar pf2 ang sb))# d! ^& z% k; p- v' x8 A6 V. M
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0))): s0 u; a9 }# @3 k
- (setq pf6 (polar ps2 ang se))
( e8 I' ~% M1 f# r - (setvar "OSMODE" 0)
0 K6 Z. B* y% Z$ g v - (setvar "BLIPMODE" 0)& Q0 ^* Y/ W; r, g9 f ^- Y
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")7 g: a' X0 q2 T( k5 ?# S
- (setvar "OSMODE" 703)
6 u+ s, X V! T) y) U - (princ) ): O- \2 S8 O& f: ]" m
- ;----------------------------------------------------------------------------------
$ R9 F G: A. k2 \ - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
( V: o3 }" ]! u - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
/ V- L; Y W: t5 }, z - (setq ps1 (getpoint "\Chon diem thu nhat: "))$ c8 Q4 K, g. Q6 E5 n
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))4 e; Z1 Y: g) m: m- A5 D$ b# w
- (setq sb 100.0 sh 150.0 se 20.0)
7 C$ Q! [4 `- F - (setq ang (angle ps1 ps2)): ^: M" N& C/ J! p& y
- (setq pf1 (polar ps1 ang (- 0.0 se))); Z- E2 u4 }, F3 ]* x" Q) P; g
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
( F% L9 c7 n! u* q' x3 B9 s. |, G - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
, R4 d! R8 Z+ p7 M( _+ v: n: q$ g - (setq pf5 (polar pf2 ang sb))
% L5 _) z3 g4 v) M( [! z, ^7 `) u - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
% H! V# j/ B0 B6 ^# j - (setq pf6 (polar ps2 ang se))
6 k- |2 L. P% v% L6 N - (setvar "OSMODE" 0)5 V9 h. h- X1 A# y, b
- (setvar "BLIPMODE" 0)4 I/ `' B& n; L" W
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
& S) E8 b" R3 Y5 {. e, T - (setvar "OSMODE" 703)
) q. q& @! u# Z& D - (princ) )
3 T4 M) W0 z: q, j# q+ b- G - ;----------------------------------------------------------------------------------
9 U) p6 `: y, t" N - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf68 ~' ^! U- {! ] I
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE")) }9 m0 b1 Q( p
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
9 M* g9 U8 T8 H8 [* }" \ - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
! M% c Z7 a# N6 c2 b - (setq sb 100.0 sh 250.0 se 20.0)
s5 z2 J) T @' A! }- \ - (setq ang (angle ps1 ps2))8 t& B R7 u. ^+ F
- (setq pf1 (polar ps1 ang (- 0.0 se))); f4 |3 j. ?4 D, S6 g
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
3 }$ ~9 c4 O8 L q. ]' j - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
, o; W% i3 m* Z: p+ s - (setq pf5 (polar pf2 ang sb))
; \1 `# @. J# r& k - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
, B" K9 W8 i% b* J! k- \ - (setq pf6 (polar ps2 ang se)), w1 O; ~* J$ S) V
- (setvar "OSMODE" 0)
, A4 T7 n! i' E B% ~ X1 t" n - (setvar "BLIPMODE" 0)/ d8 M/ K- o7 q" X7 ?
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 ""). ^" W9 G1 b6 Z4 M
- (setvar "OSMODE" 703)0 n8 X- D; Z! M0 Y2 x) W D) I
- (princ) ) P4 z, e( K4 n u* w) I& a
1 ^4 r& l) B1 h# S0 F1 o/ x) {- ;==================================================================================
( S' l- d( p) j9 |) u - (defun c:ang (/ ent pt1 pt2 ang)
8 B$ B; o0 }6 | - (setq cmd (getvar "cmdecho"))1 `- k* k9 Z; X M
- (setvar "cmdecho" 1); R9 n% K8 R% E) R3 q. ~) r
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))) F S$ O* a6 }7 d
- (setq ent (entsel "\nChon duong thang:"))9 b P5 N9 Z! m: H( P! s6 R) r$ [8 l
- (if ent
4 W) m0 f: p/ c# Q - (progn
+ i: s& n5 m( t ]$ f2 |6 v - (setq ent (entget (car ent)))3 g( l; K' P9 j1 {4 j9 L$ t, ]
- (setq pt1 (cdr (assoc 10 ent)))
Z" `& c) j! x( v, N - (setq pt2 (cdr (assoc 11 ent))): P4 E# j9 O* F7 s2 J
- (setq ang (angle pt1 pt2))) F7 L& C/ m& U& q
- (setq ang (/ (* ang 180.0) pi))
1 Y9 J6 d$ C+ D. B, B - (setvar "cmdecho" 0) \' V, v4 Y4 v7 N' K9 }1 S+ l
- (command "setvar" "snapang" ang)9 V" M' I: Y3 `% V2 M' c
- (princ "\nGoc cua truc toa do moi : "); B1 J; v! R l+ H. {* t! R
- (princ ang)8 T9 _0 |6 J! ]* O8 d8 Y
- )2 U! O& q+ L) j0 \, ?
- )
1 H% \8 r; i2 E - (setvar "cmdecho" cmd)% C! r3 S/ ~( h2 l. d8 A0 c
- (princ)" A# I+ `0 l* i% G
- )
! j( \+ N3 s& |8 n- ~$ h - ;==================================================================================7 t& [) ]7 ?: W' i4 C
- ;============================== KY HIEU DOI XUNG ==============================
1 x( P0 z- [. q4 [' `& ~ - ;==================================================================================
/ w! a7 P$ c# Y f B9 ^ - ; l- ~9 K! w4 {" }. [4 \
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9; y: z: |* d, H# \9 ~: c& P8 J
- SZ G45 G135 G90 G180 SS loi)
+ _% E- L$ c5 X/ V0 X - (defun loi (s): c& J/ Y0 [) U
- (if (= s "Function cancelled")( H; r' J, U' O. n5 r8 G, s H
- (princ)) m% P1 Z5 A* t8 N3 w6 o/ P2 R
- (princ (strcat "Error:" s))
6 w o% [+ ^1 h8 J - )
' i7 D0 U, V$ u - (SETVAR "CMDECHO" CMD)
8 B! k0 W) L0 o$ J, j - (SETVAR "OSMODE" OSM)
, Q% B" S8 }/ v* r7 \; p* c- s - (SETQ *error* OLDERR)! h, G4 }, B2 @/ c7 D g- @
- (PRINC)
0 W8 \9 R3 ^+ N& J- v% w. X - ). l, I, P" t4 c6 m& ]: x1 {* a
- (SETQ CMD (GETVAR "CMDECHO"))+ V x0 ~; k3 j! {. Y& u3 Y
- (SETQ OSM (GETVAR "OSMODE"))
& k; w8 F9 m3 ]" Y- G' e - (SETVAR "CMDECHO" 0)
; k: ^0 \! z5 V: l" A4 | - (SETQ OLDERR *error*
" M" ^7 z7 y$ H' L0 X# T5 D - *error* loi)
$ _, j, _3 s5 Q+ a; S - (SETQ SZ (GETREAL "Size <1>:"))2 M+ q k: \( F0 L: y$ @
- (IF (= SZ nil) (SETQ SZ 100))
0 Y; J' Z& k3 a: `0 Z0 D z$ J( e c - (SETQ G45 (/ PI 4)). w$ Z1 H3 J. D% O0 s
- (SETQ G135 (* 3 (/ PI 4)))
) ^2 K$ c3 L& I$ n; {% Y - (SETQ G90 (- G45 (/ PI 2)))) Y/ U/ |% D) Z, I: {
- (SETQ G180 (+ G135 (/ PI 2)))
1 x( }1 v- f- `. W8 w" g - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
% ~2 K. @+ H6 o; y# a2 u - (SETVAR "OSMODE" 0)5 h$ y* Q- l3 n& T- F
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))% v. @# t/ h6 k7 W9 M
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
( w6 g ?% S8 G, n) j - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))8 A8 h- Y% ?0 j2 \, g9 w& k) }& T9 Y4 D
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
* x9 {* h; D ?+ K1 }; n - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))6 x* }% e) _! X5 i- g1 r7 F! E) o
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
% K" w1 j8 R% F - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))' @: z/ B1 {( l( ?
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))- G' M7 h4 W$ J3 P. n
- (PRINC "\nGoc quay:")7 b" ^/ Y9 ~: p" R: c
- (SETQ SS (SSADD))
( ]7 ?/ f# m' F6 Y8 u+ b - (command "layer" "m" "Dim" "c" "" """")* O6 `" h3 w; A$ \ c7 I: r
- (COMMAND "COLOR" "1" ""), ?" A) K( O U6 l7 P
- (COMMAND "LINE" PT8 PT2 "")' b3 i$ ]6 ^$ w1 `
- (SETQ SS (SSADD (ENTLAST) SS))
' l5 A9 W! R8 |8 k - (COMMAND "LINE" PT9 PT5 "")" L2 P; {/ x p6 h/ P8 a) ^5 v3 U
- (SETQ SS (SSADD (ENTLAST) SS))5 ^, d/ T- w4 h1 m
- (COMMAND "COLOR" "1" "")" [$ B d- N/ B, A* K
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
2 S& _4 W. o& ]% c( f& @ - (SETQ SS (SSADD (ENTLAST) SS))- ^0 K; d# \, V" T# A0 k: q' g+ O$ g
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")3 t, {, G2 U, |# v
- (SETQ SS (SSADD (ENTLAST) SS))
" c7 s, b) F+ F8 w1 F+ u2 B - (COMMAND "ROTATE" SS "" PT1 PAUSE)# \- B8 j, m ]
- (COMMAND "COLOR" "BYLAYER" ""); O& N, t( D' J
- (SETVAR "CMDECHO" CMD)
6 U# z3 s9 d; ?" Z$ [ - (SETVAR "OSMODE" OSM)
. e, Q W* t& d4 b; v; @1 Z& r6 d - (SETQ *error* OLDERR)1 c F: P2 d U2 e6 m# }
- (PRINC)
2 S; V$ a# ` E - )6 _' }! n" s# R1 R- a4 G# N
' d* O) G/ W2 j- ;==================================================================================5 p) m+ F+ r5 N+ V; D1 ]
- ;================================= KY HIEU TRUC ===============================: I0 i- P R: X
- ;==================================================================================- O( H9 _+ {: | c D# Y
- ' {. {3 {* `# f. b7 S
- (defun C:vetruc ()( u$ p- Y6 j: g/ p6 E, Y
- (setq bk (getvar "USERR3"))
0 `" @2 X0 {5 w! \ - (if (= bk 0)
$ O: V; q0 t6 M% o1 Q3 c - (progn( I& s6 W+ C! [6 @
- (setq cont "1")
V; K1 E8 i! ?$ B - (setvar "USERR3" 1)) m" O) j- g. y( [/ x
- )
) T5 M7 E1 d1 S @7 ]9 C - (setq cont (rtos bk)); S$ \2 b- `. T$ m C9 P, |
- )
& C+ n% t6 T% U( E$ \/ d; Q z - (setq pt1 (getpoint "\n Nhap diem dat:")); B0 N# b# @( a0 }1 H
- (command "layer" "m" "Dim" "c" "" """"); I9 N L& Z$ s3 a. b- [% j8 N
- (command "osnap" "")
: `* k+ Y% v/ Y/ U - (COMMAND "COLOR" "7" "")
, R* Y, H9 _! m( i' B0 ] - (command "circle" pt1 150 ""): a5 s) y1 V: i8 ?* f# p
- (setq pt2 (polar pt1 0 150))
3 ~4 E, _& X% o0 f8 n' j - (setq pt3 (polar pt1 (/ pi 1) 150))$ b% M1 d1 {" u% u
- (setq pt4 (polar pt1 0 300))
0 m% d; b8 k4 h! a9 _$ S% m - (setq pt5 (polar pt1 (/ pi 1) 300))
2 L: M- |9 m+ A6 S' t - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
a9 i! J8 W2 G& _ - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))( D, H) }& {+ }( g8 E9 K
- (setq pt8 (polar pt1 (/ pi 2) 150))
$ J- y$ Y( v0 ~* r% ~ - (setq pt9 (polar pt1 (/ pi 2) 300))6 o! ~1 L/ B! N2 S1 ]- v8 g+ f: q
- (setq pt10 (polar pt1 0 150))
) I' N' z4 O3 |( L; C# T2 F: _ - (setq pt11 (polar pt1 (/ pi 4) 150))( f; q7 |8 M( }! X7 w4 U
- (COMMAND "COLOR" "BYLAYER" "")
$ [( t: X2 g/ g' U; w4 R0 A% } - (command "line" pt2 pt4 "")/ W( f; V, N1 w- a8 B$ c
- (command "line" pt6 pt7 "")
# X! Z0 a8 Z+ |/ m; M - (command "line" pt3 pt5 "")/ r9 L+ x: H3 [) E
- (command "line" pt8 pt9 "")
4 ?) v( w' o0 I$ P - (setq dk (strcat "\n Size:<"cont">"))
2 \. d) `0 {& Z5 Z ~6 m. O9 ` - (setq bk (getreal dk))0 ^2 a, h" n; }7 o! h$ z7 n; `$ L; W
- (if (= bk nil)
J4 W6 [$ w; v/ n W - (progn: ], t. K0 H+ x+ t; ~
- (setq bk (getvar "USERR3"))1 }9 o6 f+ a8 U: u0 a/ d+ o0 Q
- )
( Z$ t2 c4 [. x; o1 C: ~- g" _ - (setvar "USERR3" bk)
0 T& r1 g9 o; h3 C# E+ Q4 p - )
3 y& [/ ]6 a5 D4 {& P4 b, \) G - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
8 A- j6 U6 S1 d3 s& F - (COMMAND "COLOR" "7" "")
3 d8 V' N' ~; b - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
# @8 w; ?/ O! `% h$ ] - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") $ d& v+ r! W' _. x
- (COMMAND "COLOR" "BYLAYER" "")3 m6 _' \& @# Z, h) i( X
- )# R' [6 ]% [4 v% n' }8 K: G
: c5 [: V& c8 W! _- ;=====================================================================6 J2 i- w' t: M0 Y3 t6 _; X
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
. ~7 h; v) T9 ?3 a0 ] - ;: E! \/ B4 J! B+ Z+ v0 a4 |
- ;Jeffery P Sanders
6 l' y! R9 ^4 G: g) N) s - ;
! q/ }+ A& H3 u8 J' @ - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
s2 j5 c! L7 S/ ^ - (setvar "cmdecho" 0)
" |8 u/ J& y1 N; I - (if(setq en(entsel))$ X7 I6 n3 {" p+ j' s* {
- (progn/ c: ]' b2 I$ D2 o8 |
- (setq enlist(entget(car en)))
4 t& ~- }6 y0 ]) S" ^) Y% ~* P+ i - (if(= "TEXT"(cdr(assoc 0 enlist)))
* B. c* _" S2 c& o2 J0 J - (progn
4 t$ s3 {& }: c2 a3 X! L - (setq tx(cdr(assoc 1 enlist))
' v) \# H5 ]% M; | - newtx "" cnt(strlen tx)
; q! Y1 n o. ~2 F, I& E/ `4 `8 c - note "\n...CASE Reversed. \n "
! N! ^1 R w; A - )* I6 [# x! B) U; R' ]
- (while (> cnt 0)
8 c7 C6 U% O4 g3 I l9 ]$ r - (setq tp(substr tx cnt 1))
7 C) h9 e; \- q - (setq asc(ascii tp))
0 p. G2 R% X( X7 N - (if (> asc 96)) s$ D) r( b- Z* t
- (setq tp(strcase tp))" R1 N8 \6 ~9 H! @' m/ \$ s
- (setq tp(strcase tp T))
' E0 R7 K; t- V5 c9 t" y1 q i - )) [, r7 y' V. H/ D& M# ?
- (setq newtx(strcat tp newtx))3 w, O9 X1 v6 a5 ]. T* E1 m6 G; J
- (setq cnt(- cnt 1))! H( Z6 [9 D4 {0 F2 P; }7 X
- )+ G3 {5 U! _; F+ M
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
, S, _& X4 _- u7 o% _0 r - (entmod enlist)
- s. ~" x3 }3 J& m1 F - )
! R, O: N+ A& P8 j' @1 t, h - (setq note "\n....Text Only Please. \n ")
# Y! Y8 n( z+ x. ]3 G2 u# j - )
: v: }. }: ~4 }6 D+ e$ g# Y. o - )
# c4 \' u& N1 l/ @5 k8 l: k4 U! I+ @ - (setq note "\n....Nothing Selected. \n ")! V" `9 V6 y+ @$ R( o
- )* ^. P% h' W* X9 N
- (setvar "cmdecho" 1): b1 _+ I* o2 m9 M& P5 H
- (princ note)& f( @. v% \ N( R
- (princ)
7 S; g# |( j! A( l6 l( V - )- u- ?7 P( \' c5 H, g$ _
b8 J7 Z/ {6 O. e8 L3 z- ;=====================================================================
3 O! w7 X9 j4 J8 K - ;==================== NEW TEXT STYLE UPDATE ==========================2 j5 g9 o1 U0 @& G$ ^" P
- ;=====================================================================; f& {6 f; P7 ~% F
- ; j2 N7 ~: P8 a- ~1 ]& ]) a
- (defun c:nS (/ tdt ssdt sodt index)4 L/ x" M% G M% f, o" h& R
- (defun ObjName (ssdt /)* \$ p/ _4 o5 T7 G
- (cdr (assoc '0 (entget ssdt)))' g# u: H8 o, n
- )
. R2 C! Q2 i2 P: Q- C1 s - (defun MoPL (ssdt /)
! s- E: z V, ^; O# U% ] - (= (cdr (assoc '70 (entget ssdt))) 0). S) ?- a! S* a, Q2 ^6 T# g
- )/ D1 t6 e- Y5 O+ [1 h
- (defun NoiPL (ssdt /)
2 H; |% ^; j# J% C) v: R - (if (MoPL ssdt)
) r" X5 S! @* n3 m - (command ".PEDIT" ssdt "J" "All" "" "X")# G- N1 T! H* i
- )% Y: a. k( R6 \ E3 t5 X
- )( F) V" |/ g6 ^; x/ o4 H
- (defun NoiLC (ssdt /)
, `% L1 j% a" E* G; z/ i/ g2 L# L - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
9 z v3 L" H( ~& p) b - )
0 A, x( l! `+ G4 ?: }4 `% e - (setq; k% K; J; B. R) Z& ^% f7 q) p
- tdt (ssget)
- }/ y* \" B, C+ i$ w - sodt (sslength tdt)
7 ^* ~% W8 a4 y: C8 o - index 00 p' {: g* o- h) o: Q, K4 _, ^
- )( a2 g: ~# z. P; \3 b
- (repeat sodt' i& f! u* I! U8 x# E5 Z, t/ c
- (setq
+ N* r, u# V8 B7 M - ssdt (ssname tdt index)
$ U# V% j8 G2 L# ^$ ?- F - index (1+ index)) [+ W. ]7 O# p0 G2 V2 {
- )
, q7 u9 Q V t* v/ V7 n - (if (or (= (Objname ssdt) "LWPOLYLINE")# N' ~* B" T# A4 D! J/ Q4 m
- (= (Objname ssdt) "POLYLINE")0 S1 ^2 A# R( F
- ): g1 w' B( `4 S' t. S1 m
- (NoiPL ssdt)
5 ]8 t0 ~9 b" r, g( R$ L - )& X0 }6 j+ d4 B* A' P7 L
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
2 r0 k4 Z9 _6 z! O. K# ?4 ?' o; Z - (NoiLC ssdt)7 n+ m9 @4 X" {" J0 X
- )
; H0 @" A: n T+ P - )
, R# ]2 X5 ^$ }, ?, A - (princ), ]; l+ K: n; X- r, w! D9 y
- )
8 Q; ^+ ^) S6 a) L) h: t$ s& q - / o& D {6 j u( V) d% p: ^* B
- ;=====================================================================
5 [2 G1 m0 r. ^) S- `" I - ;;; AREAM.LSP/ W8 M( `2 |7 T0 U$ b
- ;;; Function: Calculates the total area of selected objects5 d2 K; M7 M7 w- S3 r, Z4 T C
- ;;; By Jimmy Bergmark
# `4 N% M& F7 }. B6 V5 H - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
' x$ e" z+ j$ g& w8 [8 ?; } - ;;; Tested on AutoCAD 2000
7 I# f1 T% V4 Z- g$ R' C( ]
3 G7 t# [& H) Z; w9 f# U- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
+ z& g# S& u1 b' w. s# f - (defun errexit (s), n; |0 f N& o- r
- (restore)
{' `2 f' }7 W- j( v/ X - ), y" m# ~# X% e1 S
- 8 a. c( w9 E' W1 p' M) ]. D
- (defun undox ()4 F1 N2 h3 S4 _$ G
- (command "._undo" "_E")) \5 \" f' M* i+ C
- (setvar "cmdecho" oldcmdecho)4 ^! C O, h0 q8 Y! e% [
- (setq *error* olderr)
# B8 s1 ]! S7 D - (princ)
4 o4 m! ^/ ?% {5 `0 F - )+ ~5 M' y- a( B& a8 M, q1 p9 \
. o3 k& b0 ]" U; S8 u3 }- (setq olderr *error*) K( ^8 M& N$ y, H* R% }
- restore undox/ \6 M4 q. X$ n* @8 l5 L
- *error* errexit3 t3 r( A& P% f0 t( N6 V: m5 P
- )
$ _% e; g' p: f1 S! O - (setq oldcmdecho (getvar "cmdecho"))7 P) H1 k* j& b! T& M- K: R
- (setvar "cmdecho" 0)
0 C* ^/ O% m8 G6 Q& A2 O5 \ - (command "._UNDO" "_BE")
8 I6 M$ d* ]( k! q7 z$ t- O - (if (setq ss1 (ssget '((-4 . "<OR")
' s* [& ?/ r( W8 f4 p+ H - (0 . "POLYLINE"), p3 G6 Z; \: E0 o
- (0 . "LWPOLYLINE")
: n, H2 J6 v6 i/ d! H0 o8 O% k- ?3 g% L - (0 . "CIRCLE")2 t. j9 h1 G1 j4 f- s: a2 J% W( |" ^
- (0 . "ELLIPSE")
( ^1 _7 C) M3 F) f8 f) O3 R - (0 . "SPLINE")
/ J8 ]* _5 W# L! X - (0 . "REGION")! Z6 j3 |1 Q# \. }
- (-4 . "OR>")
5 B, k* p2 K: N/ R, b$ N - )
# C- F, A9 g \6 O: K( N3 c - )
( K: w4 V) W/ u) `/ v% |* J# N - )
' _( J+ G8 X1 S9 {+ @' {1 @ - (progn5 i$ V" ]! H. |" s
- (setq nr 0)6 z$ o! v" f/ l* @1 t# K3 l; a- b
- (setq tot_area 0.0) a5 R. [) Y/ l% `
- (setq en (ssname ss1 nr))! Q0 q2 f$ c4 o; m1 ]8 Q2 w- g
- (while en
' I! K. o8 Q8 |- @" O! b9 s - (command "._area" "_O" en)
! H% i1 q/ A7 F, ` - (setq tot_area (+ tot_area (getvar "area")))' D+ @3 E7 D. b7 \0 f" ~* k( N) @
- (setq nr (1+ nr))
~8 ?/ j/ \0 X - (setq en (ssname ss1 nr))
* {7 P2 V% C, W - )
6 }/ Y3 U. o+ ]& n - (princ "\nTotal Area = "): |9 F! h/ I# w& t3 M
- (princ tot_area)
! s8 s3 u e7 r) l1 D - )3 j5 n' N4 x/ n) s' H4 L
- ): `% m7 A- ?6 w5 r- o$ |/ I1 t
- (restore)
: m) e! R( o8 |0 i - )
6 B+ z. C% Z+ J+ Q5 L7 i
3 H: c. Z% _- N- ;=====================================================================
' h6 t$ e; [1 j6 t3 w' B! |% R$ @ - ;;; By Jimmy Bergmark
/ ~; V4 _7 s6 W$ W! \ - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
. K5 L! A4 Q g - ;;;
* R2 [' t; u) ^3 s) d - ;;; Created: 2008-03-31
; d: }% ?7 B$ Y' H' w; Y$ V1 j5 J - ;;;% S* `6 N z- B3 z+ E t
- ;;; Convert Attribute definitions to mtext; s8 ]$ ]" K# e: T. g/ ]( n2 }
- ;;;
% k% H8 N M/ D# p: @/ d. _5 Z" J0 i$ I - $ F( C- H/ m( O" k* m
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
) ]$ F* v5 j! d/ _* K - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
- v& u% o9 B [7 j& R - blkcnt 07 d% _" L- z0 x9 y3 p1 B
- )
6 ^6 f e6 |( a5 ^ u1 D - $ @8 `. |* _, M! K
- (if eset1( S4 H- L4 p9 W. r6 [9 e* I
- (while (<= blkcnt (- (sslength eset1) 1))5 K: m* q/ i T) _% U+ d
- (setq en (ssname eset1 blkcnt): k& l) ]/ c; G" p: R% r- B% S" _
- enlist (entget en)+ w- X4 P& _, \# Q0 E6 g
- ht (cdr (assoc 40 enlist))) A) R9 m9 C) F2 Y! ~
- pnt (assoc 10 enlist)( o0 s' y+ t8 B+ |( u% A1 }
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
4 C1 H4 Q) Q5 D5 G, K- ~% t+ e) Y5 U - space (cdr (assoc 67 enlist)), L4 J* h: L& ]7 ]& O" p
- )
( u0 V) E1 d; x+ h( K - (setq vl (list( A# S' r& p$ e+ m
- (cons 0 "MTEXT")2 F- \: D" M5 f0 q+ u# i) w* s8 K. r
- (cons 100 "AcDbEntity")
; Y$ n- x4 X2 C* m - (cons 100 "AcDbMText")2 Y7 m8 K5 e+ J, V+ |) y
- (assoc 7 enlist)
. g- Y& O1 _& b3 D h6 N2 A8 p* B2 { - (assoc 8 enlist)
# q7 {2 b7 k3 I4 F - pnt; \- S2 E. V! w& x
- (assoc 40 enlist)
# J9 d" g( e8 T4 N" ]; D - (cond ((assoc 62 enlist))
; R5 j& [0 i% _, j - ((cons 62 256))6 C" W* R$ V' M" m5 V1 a6 q2 b. D
- )! s! {! W% `" s9 l
- (cons 1 (cdr (assoc 2 enlist)))
- M$ _& m0 I4 P9 y ~ - (if (= space nil)
0 I! |( x, e$ |1 T - (cons 67 0)3 y6 \# V) A- i' C3 }8 s+ d1 B
- (cons 67 space)
9 ~! w% ^5 M4 ] - )
2 }) T$ J Z. ?. L5 Z7 H# e7 i - )
7 w Y9 V, @& T; A' p3 O. N* w - )
/ Q1 D4 t4 r, K - (entdel en)
, \0 d) N0 e, l( q2 k+ m - (entmake vl)
' {( ~% D3 @+ s" f9 s) D - (setq blkcnt (1+ blkcnt))
/ Y# O& Y9 M' X1 {& H3 D7 y - )
@! F* X) w1 k; ?! V4 y* D - )# P4 W# s2 e/ @1 }4 M ~
- )
" A x+ Y# h8 W) r, L% W
+ R& ^6 {, y1 ~- ;=====================================================================" W6 R6 F6 j/ u5 C# H( A7 s
$ {4 E9 {: ~" g4 M( T1 {* D8 P- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
: Y9 D9 t! F' y0 E% ~6 o: M, T - ; Khoi dau cua chuong trinh
1 s. W2 U8 t* d+ i) Q: | - (princ "\nCopy Inteligent...\n")
: c- s1 R# S$ t% L/ g8 w - (setq luuecho (getvar "cmdecho")% _4 q) n- ~+ A5 `& H
- luu *error*9 C9 a, l* O, x/ H( E( K4 {# ?
- *error* ketthuc
) } R2 `% g7 }/ {7 O2 N - cumdt (ssget)9 N+ X# ~2 a% y6 R$ m& M
- dodai (sslength cumdt)' c/ {1 Q, U# W, c0 [; r
- goc (getpoint "\nSelect base point:")+ [7 z* u) _8 r. r8 O
- thoat nil' W. Q- G7 @9 }$ Z
- dem 03 y+ t5 Y, @/ o5 V+ x
- textxl nil7 U, q" x5 l, e( Q- B
- );
2 B5 u, V/ I, V& }! t0 K3 m7 p - (setvar "cmdecho" 0)
$ `' ]5 t0 x2 p3 ^- E8 N - ; Loc ra duoc ong text de xu ly1 s7 H' u1 u( X8 A* L( S# r2 X* ~
- (while (and (= thoat nil)
) F, _/ ~2 }6 E# \ - (< dem dodai)! R1 ^" t3 \/ j8 _( N7 h/ h
- )
' }& e$ _9 d3 ?) {( q2 S4 J9 O9 g - (setq ten (ssname cumdt dem)5 ?) {7 y2 r" X" T# H L) Q7 c: @
- dem (1+ dem)
& Q! N/ W# x# a' L; j I - doituong (entget ten)' [; s+ y J- n
- kieu (cdr (assoc 0 doituong))
6 h0 h$ S% @: {9 n+ r1 [ - )9 i$ b) k9 z3 _
-
4 H1 e- g9 g, Q8 ]6 m - (if (or (= kieu "TEXT")
/ R0 l" G3 S9 g - (= kieu "MTEXT")
& y/ y# R4 }8 F: f. s - )
% g5 |% r- [3 k - (setq thoat T* O* y6 X1 w7 Y4 H5 n8 k$ x
- textxl (cdr (assoc 1 doituong)) ) g4 x1 }$ H v" a
- )
9 b4 M7 K7 F& s! K - )
+ L. G7 b& d7 m z# T - );
* p/ y# N7 o' Q2 N# L' L- x6 @ - (while T ; P4 |, ^6 k) S8 V- j, g
- (setq toi (getpoint "\nSelect next point: " goc)4 e4 ~- a5 d, ^) O' w- C4 w# n2 F
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
3 o4 V$ C I' f - dem 0
; Y7 x" P6 m7 B/ Y* A - )9 ~2 j% w' c4 q( ]5 G& S
- (while (< dem dodai)9 E( v' A0 y# B; e6 ^* r# o x) t0 J
- (setq ten (ssname cumdt dem)) m, { ]( I" U% A- |, G* U
- dem (1+ dem)5 }2 q2 e7 I6 D; W
- doituong (entget ten)
( t9 `7 s5 L0 K+ A" s - kieu (cdr (assoc 0 doituong))
6 |& Z+ I* G# l$ ?8 T' z2 U$ Q! I - )
6 j j1 \8 s3 d: t# B - 1 a. m' ? @+ U" Y1 d+ t
- (if (or (= kieu "TEXT")' ^) y* B) J: Z) B. ~: {4 w0 l
- (= kieu "MTEXT") c J+ m/ X7 { w' l9 L/ n
- )
, a* E3 b4 a) c5 u- z. E. s) M - (doitext ten)
5 F% k& A, H! j! j) { - (copy_dt ten)
; q6 R6 ^' V: g
/ v; ~! O0 n& | [- );if
C h& V3 _4 c3 S0 g+ m - ) V! X1 z x9 E: Y; K% D
- );while5 u6 x# N" x; }6 P) Z9 q
- (ketthuc)
]6 ^! K& A9 j* M/ \& }1 f - );defun
" ?8 j; g) t7 c5 [- @ - (princ)* v3 v* |$ G" n
, A+ K% _; n" p/ X% A9 T- ;=====================================================================
+ s: |& c0 M) X5 y* k - ;;; By Jimmy Bergmark
* E4 F5 Y' t: B( d, h9 ^" o6 C% |) Y" S6 @ - ;;; Copyright (C) 2008 JTB World, All Rights Reserved, b, x: h0 z5 r- e% N) H6 o: I
- ;;;
! W J# Q$ F% ~0 A# B: B - ;;; Created: 2008-03-31
' t8 a$ n3 ?6 F7 |) l - ;;;
, K; A) [$ q( N b. m+ I - ;;; Convert Attribute definitions to text
" ]. y0 M' L# \, Q - ;;;6 f$ O" c* P7 A ~
- : w) Q& y4 c8 }' I# C
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
6 L5 o8 ~# [* t O3 i2 \% i - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
+ p5 n9 c* K% N# V X. J5 G- I - blkcnt 0
9 }0 ~% i" n: Q( Q5 J) M - )
$ \) k9 w: X& \5 ]6 @ - - E- j* X! W# h7 M% k
- (if eset1
& K. l( D# E+ K! J - (while (<= blkcnt (- (sslength eset1) 1))3 C7 ]' Q8 o# y8 F9 \
- (setq en (ssname eset1 blkcnt)
7 d3 O o; m8 O/ k8 ?9 E9 a$ {+ u& I - enlist (entget en)0 i t N! \; g2 _) x1 E+ B; e
- space (cdr (assoc 67 enlist))
, j7 {- H0 p. ]; c6 K0 R - )
8 E$ z" ~6 V5 U' {$ n% N - (setq vl (list6 G3 h1 ^+ ~/ ~
- (cons 0 "TEXT")7 `2 `5 G& b0 v7 r$ q5 Z
- (cons 100 "AcDbEntity")/ Z$ k1 }% ^8 }
- (cons 100 "AcDbText")
0 C8 { Z! j# n2 y - (assoc 7 enlist)
5 ~) f6 z4 ^# B& c% l - (assoc 8 enlist)
0 g+ l; h# R1 k e4 [ - (assoc 10 enlist)
+ r e7 M" {, T+ L O% d" F - (assoc 40 enlist)1 e$ A: |( p, k7 k- H
- (cond ((assoc 62 enlist))
' q! U5 W* u% I$ i6 d - ((cons 62 256))
) a7 n2 J" Q1 I6 j$ }9 c - )
2 o* [, g! r3 b" N6 z3 u1 A - (cons 1 (cdr (assoc 2 enlist)))
9 \" U9 i; o, q$ d7 A - (if (= space nil)
" S: n2 `5 X3 e+ q4 w - (cons 67 0)
; g( l- K3 R$ n: ^ - (cons 67 space)
+ G/ P% y8 K% h+ O- S - )0 Q9 g( A$ A7 h0 G6 r- b9 f: u
- )9 L s* a+ e9 P6 E+ i
- )
0 ~- q p1 t% x" T& D" y - (entdel en) z3 j; I3 Z' M+ U/ C# b
- (entmake vl): ]) d' | t( k- |
- (setq blkcnt (1+ blkcnt))& r5 V! i: b5 t( `# a. U
- )
4 u2 I+ v- c3 r0 n) ~( H0 d - )
8 M. C4 R# h& z - )' w5 f3 F! T* |6 Z
- ;=====================================================================- j) ^- H% f* r! E
- ;============================ Doi Truc ===============================
( z4 ~. s. f' i - ;=====================================================================
9 d3 f+ V& Y" b/ {% X) i3 l - 6 C4 X7 r. v+ `4 [* |6 @% @
- ;=====================================================================
" \# Z& }+ e$ M5 _& e - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
" M* z& m& a5 Z( R6 P" m" `( a - ;=====================================================================
# I/ O$ \7 r1 \1 i8 P q1 a" \' z - (defun c:ga1 ()
# I2 ^9 @+ l) c - (setq a (getpoint "\nChon diem: "))2 m. C6 q& i) v# k% g/ P
- (setq b (getpoint a"\nChon diem: "))4 m A p# l1 }/ Y! p' u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" G0 g% C6 r3 }$ J# q% x$ U% W$ |
- (command ".circle" c a)$ o, L' i4 d) k T5 @- w1 H! r, a
- (command ".line" a c "")
( _- o! V y+ h# a* a - (command ".array" "last" "" "p" c "1" "" "")1 V0 V1 m3 r" r/ |
- (princ))& y% q* w/ e3 Z
- $ u9 F' \- P. F2 n+ {5 c
- (defun c:ga3 ()
' l$ f) {. N% _1 O+ Q$ t( ?) o3 d - (setq a (getpoint "\nChon diem: ")), g2 u+ ^6 n/ ^( |. |
- (setq b (getpoint a"\nChon diem: "))' u( L+ t8 Z+ E; j7 B
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& _( v$ [4 F9 h4 V9 a - (command ".circle" c a)0 c6 ~- F% |. t2 J* n, A. a# c: y
- (command ".line" a c "")% a/ d2 e k. k" a
- (command ".array" "last" "" "p" c "3" "" ""). c7 e x# A" S9 U" {; A
- (princ))* W- f. _/ e5 O( i; {
% p" v7 B u1 C- (defun c:ga5 ()2 X8 i! y9 ^& @+ j: g* e9 `+ j1 l2 k
- (setq a (getpoint "\nChon diem: "))
. O) o& e- j/ @5 \ - (setq b (getpoint a"\nChon diem: "))) N- H& p6 X h
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! n( c) {/ J- H# V& m5 C/ G
- (command ".circle" c a)
8 W7 d# o, D7 U; |% R R - (command ".line" a c "")
6 y5 X* y4 o0 D, J" {4 j - (command ".array" "last" "" "p" c "5" "" "")# r5 r3 O- Q' J( m$ |6 j
- (princ))/ D# W3 p' A3 Q2 H: z2 r! p
6 j$ p8 W e6 z& J4 @4 c- (defun c:ga7 ()( p- Q3 L2 @/ A1 t, x
- (setq a (getpoint "\nChon diem: "))
8 L( y( Q% B& j* [& q: ]0 n - (setq b (getpoint a"\nChon diem: "))9 }: e S2 g2 ?" v4 n+ j
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" N1 _6 G/ e+ Q* t4 g( ^; H, e! Y+ P
- (command ".circle" c a); Q2 i& M" q5 f: K1 k- j# ^2 U
- (command ".line" a c "")
: L) E5 n1 F$ O! J" t) c - (command ".array" "last" "" "p" c "7" "" "")" c9 L% E" n1 V, L% F
- (princ))/ X: @. C1 i# B7 `. @7 t
- ! s2 o2 M, S8 @( l; M9 \9 s1 c
- (defun c:ga9 ()
' S v; O: u* } - (setq a (getpoint "\nChon diem: "))
, r1 B. n% l, g% x! v - (setq b (getpoint a"\nChon diem: "))
* w; Y+ `" T' `" t - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ d* J& i1 V4 u0 C1 @ f - (command ".circle" c a)3 U! Y f2 l* {7 n2 E' K
- (command ".line" a c "")
& A0 O) _* o6 _ - (command ".array" "last" "" "p" c "9" "" ""); S- n- O- b3 z/ |- h2 p
- (princ))
( g! f' T! D+ f7 ?6 X
7 u. E; }# v% c6 E7 l1 D- (defun c:ga11 ()
: v; ?0 p: y0 z, i; U C - (setq a (getpoint "\nChon diem: "))4 \) ?9 a8 T0 N% g( S
- (setq b (getpoint a"\nChon diem: "))
2 }; Q9 s, N" l& j; G7 d$ ` - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 ?3 \# s6 [& U' m, l; x# v" B
- (command ".circle" c a)
2 B' `1 j! L7 D/ A8 m - (command ".line" a c "")# u1 z3 Q- g4 A. O! G, E7 U
- (command ".array" "last" "" "p" c "11" "" "")
/ C; X4 [3 b1 V4 d5 r - (princ))
* F" ?" K6 K/ m! ]0 u6 s' k( {. s! w. V - ) C) L) [+ {5 B& p0 S
- (defun c:ga13 ()
/ e, \ C4 g8 @5 r - (setq a (getpoint "\nChon diem: "))8 |: }) r- r0 z7 O; j5 T
- (setq b (getpoint a"\nChon diem: "))3 x8 [& A7 \: @
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ l; n Z2 _: A7 f" ~" z/ |5 e& T
- (command ".circle" c a)7 L( O# [% [6 Z% l' Z
- (command ".line" a c "")
. K- C" R6 j Z3 {4 _4 z! O - (command ".array" "last" "" "p" c "13" "" "")% O5 A/ S6 j" t, E X* q. ]
- (princ))0 `4 Y" y) g& Y" P" l! m1 [
- . G8 b& }9 ]" f( i4 N; |1 c
- (defun c:ga15 ()
7 m3 B5 T9 E/ I7 c! i3 l - (setq a (getpoint "\nChon diem: "))
; t6 X! }) [0 A$ O/ W7 [7 v - (setq b (getpoint a"\nChon diem: "))8 E8 |- s7 ?+ D# ]* P9 B8 q
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: L9 W [: r$ J - (command ".circle" c a)5 y. N0 b* q. e& A
- (command ".line" a c "")
: H: a! t& X2 A; E% `2 J - (command ".array" "last" "" "p" c "15" "" "")# \1 x1 D7 n3 M- M1 ]: b+ d
- (princ))% {6 h% z" q+ C( n# A
& ^8 ]' f7 x3 ~5 @; S6 T( P: U P/ r- (defun c:ga17 ()9 f }/ X8 w! o/ G0 K }
- (setq a (getpoint "\nChon diem: "))& e4 C9 n. K1 }! P) K9 J+ q6 P# `
- (setq b (getpoint a"\nChon diem: "))% `! ?0 F5 x; a) R! ~) j
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' j, s3 I- K- K, X* N5 `5 A; n) \ - (command ".circle" c a)
2 [ L8 u- `6 C/ ]/ Y8 P& c8 o/ J) w - (command ".line" a c "")
+ R l" A& B( A/ r$ Z( x - (command ".array" "last" "" "p" c "17" "" "") }6 P7 o, J9 B
- (princ))1 K6 g4 e- \( i- ~* I
- / P$ a0 m. o! B* U2 Z. i' t4 |& O
- (defun c:ga19 ()
! j5 P4 R$ U& U" p$ x# f - (setq a (getpoint "\nChon diem: ")): a* t$ B6 T0 U. l" R
- (setq b (getpoint a"\nChon diem: "))
) [8 v! e' f8 W - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' V, j& t; b( H% F - (command ".circle" c a)- L q1 J- L# q2 y2 [
- (command ".line" a c "")+ f- q) ^1 t: ~7 _ {4 T# Q( _, b
- (command ".array" "last" "" "p" c "19" "" ""): x+ I1 f. o2 e9 {7 o! X
- (princ))- _* V6 a% g- {$ W+ c$ p- j
+ L( f$ J3 x6 r# {1 b5 Q/ f- ;=====================================================================8 G) @) g4 O6 M9 \* C4 r* R: O; {
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============+ `% y" @6 K" P* J) U: `
- ;=====================================================================4 Q2 \, h4 Y( J( C6 g
- (defun c:ga2 ()
E! E' x% r% U2 \* M, Z( L - (setq a (getpoint "\nChon diem: "))
, y0 J6 E' G0 X3 V; v( J - (setq b (getpoint a"\nChon diem: "))) ^+ A3 x* Z! m! w' l+ Q
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 @/ d8 E3 ?$ V$ ?0 x
- (command ".line" a c "")
' v0 J9 \ _$ \8 C3 U5 i$ J" U! u - (command ".array" "last" "" "p" c "2" "" "")
9 T: j4 N' M5 ]% ^1 n+ u2 r - (command ".circle" c a)# G0 w" b" \/ a3 D
- (princ))
; X; T B7 @ S - 4 D9 F$ |+ r+ W
- (defun c:ga4 ()$ a7 V9 u9 B; D- X
- (setq a (getpoint "\nChon diem: "))' l; b7 i4 R( o0 D+ x1 B
- (setq b (getpoint a"\nChon diem: "))
& g- f6 w3 |6 R$ Y* J# t9 e! C - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# L7 f" s8 L6 z- J0 k
- (command ".line" a c "")6 o0 j9 I" W" j. y/ Q; e# _
- (command ".array" "last" "" "p" c "4" "" "")
; ^$ Y; u/ b' Y+ O% f0 o - (command ".circle" c a)
5 Q* V% _( Q# f. S0 C - (princ))$ R- `/ J0 {" t
- * s [- n9 Q) u1 c3 t* f
- (defun c:ga6 ()
* w2 ]9 Y. b( b9 Q6 R - (setq a (getpoint "\nChon diem: "))" S7 k" K, O7 b( R! L r# @; a
- (setq b (getpoint a"\nChon diem: "))
A5 v9 {9 q, _ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 C6 F; o1 g7 t+ I& j1 W& V - (command ".line" a c "")5 h# W$ L& |% X
- (command ".array" "last" "" "p" c "6" "" "")3 c* S: P9 o( \( B
- (command ".circle" c a)! U$ f) k+ Q# X1 r1 U0 T# q* A. x
- (princ))
2 E( ^& A& j5 A B1 o - 1 W1 d i8 ^3 f" n; I* s
- (defun c:ga8 (): o% X. }# }, B8 e& A6 H ?
- (setq a (getpoint "\nChon diem: "))7 K; @. C; W9 n7 O0 q
- (setq b (getpoint a"\nChon diem: "))5 M6 C5 @/ `* E* Z. v
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ H/ P" V: f& A - (command ".line" a c "")# n; Z: R. \. V l' ~7 R4 [: G
- (command ".array" "last" "" "p" c "8" "" "")
. Z3 f: H( v& J6 A0 @; L - (command ".circle" c a)
8 z9 O3 l3 K1 d& }5 i& o - (princ))
/ l. a' g5 S9 S+ Z$ `, |/ g$ ?5 v
3 U/ M; D3 ~% a7 z- V- (defun c:ga10 ()- y2 {3 W) j- f5 U: E+ A! B
- (setq a (getpoint "\nChon diem: "))* v+ a1 n5 |, F2 h/ y& f
- (setq b (getpoint a"\nChon diem: "))& y0 w# Q6 [ @
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 @) c$ Q5 k' u - (command ".line" a c "")! f, C' T( G2 ~) G- k5 S' Z2 W8 c( ^
- (command ".array" "last" "" "p" c "10" "" "")
$ S0 j9 o1 v5 s" K" m" L a - (command ".circle" c a)
% h+ Z0 b: K1 Z. K0 s$ D - (princ))
' D7 l; a5 E( X; q! |
, b( Z1 o8 F: z& }. L- (defun c:ga12 ()
4 w9 T( A# B P2 N/ a - (setq a (getpoint "\nChon diem: "))
0 G3 I, c2 J. i+ y0 h - (setq b (getpoint a"\nChon diem: "))5 B O. O% f+ H5 c' v M4 _
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 x: K7 ^# C% {
- (command ".line" a c "")- g7 i- O/ |6 t3 h6 Q% ]! }
- (command ".array" "last" "" "p" c "12" "" "")5 Q* N4 r1 }8 @$ T' u7 P
- (command ".circle" c a)
. C$ b* ~ S' K+ |! b, r; y: i6 f - (princ))! m! g C7 F$ @ i
' z* U: E) r e2 b- (defun c:ga14 ()
' s" X3 e7 [+ i. k' _ - (setq a (getpoint "\nChon diem: "))
9 W# N' z5 {8 K2 Z9 J1 P# ~* c - (setq b (getpoint a"\nChon diem: "))
/ a. ~. n4 F: @$ P - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* L7 w6 l8 M0 o
- (command ".line" a c "")
# h8 s0 x) K9 W8 V6 B/ W - (command ".array" "last" "" "p" c "14" "" "")# s1 ~) b& }, P6 B9 M
- (command ".circle" c a)
{8 x5 H$ C/ G$ V - (princ))
( x5 |0 P$ \9 }! ]1 W% j( F9 i - ; N% M$ y' A7 v7 x' Z1 F
- (defun c:ga16 (); g1 Y( p" q8 A+ i" c; c/ d6 H2 H
- (setq a (getpoint "\nChon diem: "))
' P) P3 j- X. H8 q# ]1 s- E - (setq b (getpoint a"\nChon diem: "))9 p; p1 H# z( t% r% I r/ m5 ? x2 v1 @
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 ]0 @" g c6 N4 s0 T8 t- g) `
- (command ".line" a c "")
7 K! `0 D& D9 [" W - (command ".array" "last" "" "p" c "16" "" "")% t5 H$ f3 X* t4 l) i
- (command ".circle" c a)
9 r; F5 |3 f. H. r6 U3 l7 \ - (princ))
! u s( b9 g+ X1 G, S- O, l* A# Q - 5 v) f, K; w/ z% I
- (defun c:ga18 ()8 Y" a P( O& W
- (setq a (getpoint "\nChon diem: "))& X, k0 v" x6 k8 g- N
- (setq b (getpoint a"\nChon diem: "))9 h, M& k: g2 K$ Z& z5 y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& A4 S% t* O: g0 c R - (command ".line" a c "")
* O( R) x/ |+ u! g' y) E& [4 D; t - (command ".array" "last" "" "p" c "18" "" "")- Q. t5 Z. j! V* a1 s. q" _1 u
- (command ".circle" c a): f( `- {1 N; `5 @3 P
- (princ))) Q0 Y3 b1 S" P: |
: d5 {/ ~4 `; Y) l- (defun c:ga20 ()& e8 N- Z7 `8 d
- (setq a (getpoint "\nChon diem: "))
% C/ k% k! w) b& u - (setq b (getpoint a"\nChon diem: "))# A3 Y) R: A& J1 E
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 H0 ^" r, J* K7 \ - (command ".line" a c "")
; W7 x+ T. \+ u: ]4 D3 C" ` - (command ".array" "last" "" "p" c "20" "" "")7 m. @2 o" h* R# R/ s# F" E
- (command ".circle" c a)6 j0 j0 }: F; ]0 ?; _ M; O
- (princ))
. H3 g& @. C0 H$ q O
2 b5 A. c( ?: r1 m) K9 l- ;=====================================================================5 r/ G) Y* @) |, i& r0 E
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
2 q+ |* o/ d, V1 D$ S7 N. { - ;========================== 06-11-2016 ~ 18h00 =======================
$ u5 T& j, F. u' ]1 A - ;=====================================================================
+ H& {8 M% ?0 d! @4 d Q' o - (defun c:ga ()
. R) g, I) D! l - (setq a (getpoint "\nChon diem: "))
, z a% e# _7 S4 Z8 D - (setq b (getpoint a"\nChon diem: "))( ~5 |2 r& z i- M1 s
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ x, z1 M$ I) o$ |+ \0 o
- (command ".circle" c a)2 u, V$ }; c. o$ P! s1 R5 h
- (command ".line" a c "")
. L7 Q8 T* {; n5 G7 l - (command ".array" "last" "" "p" c "NUM" "" "")$ d/ i7 C* {% l' N# h
- (princ))4 c% u) R. Q- r+ y8 o( |
! k9 U! b5 i+ r) g- ;=====================================================================
5 s" ]! D3 k2 n7 k; F8 F2 E6 n; v( K - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============2 F9 g9 M2 c9 b$ K6 r
- ;========================== 06-11-2016 ~ 18h40 =======================: N! z" v+ E9 W/ i+ g
- ;=====================================================================
' i, h* O: |" Z8 v7 ]) N - 8 g5 h% V2 E7 y F* s7 G
- (defun c:hoathi ()
0 a- I. T7 Q: E" u - (setq a (getpoint "\nChon diem: "))
$ z( W" ^) ~( w4 L1 D - (setq b (getpoint a"\nChon diem: "))
$ M2 p: Y. u% h6 i! f! I# j4 s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& f" {% J. E- k+ v) G: s
- (command ".line" a c "")
5 W+ n3 q/ q+ i% F- i - (command ".array" "last" "" "p" c "NUM" "" "")
$ I, E: s* e' L5 C+ h* M - (princ))
. e9 d4 v5 S& P5 Y4 Z5 }7 o
3 N) B' `& ?) U% O U1 t. U- ;=====================================================================) F5 v! G' U9 f" N
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
1 n2 }# T7 R3 ?' L+ F - ;========================== 03-11-2024 ~ 19h33 =======================
! q6 J! H6 _( Y5 c [6 T5 O0 C - ;=====================================================================
- u# [. r1 ~- N3 V1 G5 a, H1 h
; M% f2 X6 P( t* a% K! h3 Z3 g- (defun c:cung ()
- s" L) j {# Z E - (setq a (getpoint "\nChon diem: "))" {$ T) j5 g% w+ Q' \% E s
- (setq b (getpoint a"\nChon diem: "))/ S" ?9 C+ _) l3 E8 R
- (setq c (getpoint a"\nChon diem: "))
/ W( m a' b e! u) ^ - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# q) R, g0 P4 a1 b( o' o - (command ".arc" a b c ""); _( t" h: w! I: Y7 h3 f
- (command ".array" "last" "" "p" c "NUM" "" "")7 P* O5 l7 W" |& T V0 i( n. x
- (princ))" k$ i/ u, l6 x/ l+ a/ r) v5 [
- 0 s, l0 W {% t9 T* t8 }+ m
- ;=====================================================================
' c% t1 e% P# G/ q- c/ Q$ u - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============9 y7 Y7 b7 _/ e8 P$ ~
- ;========================== 03-11-2024 ~ 20h02 =======================
! x: F( L0 P. J5 L - ;=====================================================================2 G! F' W9 s; t2 J" ^
- 9 | Q- I& Z0 J# N4 m/ Y
- (defun c:hecloic ()+ ^! r& s; s2 w2 T+ c& M- H6 C
- (setq a (getpoint "\nChon diem: "))7 n1 r3 @5 J6 _; O( H g
- (setq b (getpoint a"\nChon diem: multi "))
% e& l% m; y4 r0 H+ k! V - (setq c (getpoint a"\nChon diem: "))(princ)/ N7 p8 b( |8 K$ x6 f' q
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ Z3 r9 v& O; n$ X1 k+ d2 N - (command ".arc" a b c "")
/ t% Y) v. q' w& L9 q1 t4 T: M& g - (command ".array" "last" "" "p" c "NUM" "" "")
! B ?5 W4 s. J2 ]3 n6 i8 c - (princ)). j, W$ y* L4 ~2 Z( o" z. M0 T
) v3 G$ u8 ]4 V( K8 J3 m3 D- ;=====================================================================
% ]) s# t M# j5 f* V6 d8 x" s - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============3 u( x& l* h+ V# R) K
- ;========================== 03-11-2024 ~ 19h38 =======================% V9 a a# h/ d; _
- ;=====================================================================
6 F, r- X2 j$ f9 j0 }4 [6 o# C - . K7 [% n2 X6 |: K! w% [9 c4 |8 Z+ n
- (defun c:gay ()
* N( {5 K! f- M; C9 J' u6 z - (setq a (getpoint "\nChon diem: "))" h) A) N! | \3 L! M. m/ D/ a
- (setq b (getpoint a"\nChon diem: "))
6 F+ K! Y; Y3 k& m1 a: d; Z0 I g - (setq c (getpoint a"\nChon diem: "))(princ)
' N* q1 X- t& j, f% B' U6 I0 o9 N% L - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' a( W X! K/ M$ _ - (command ".pline" a b c "")
# m7 W# I1 v v" c3 w - (command ".array" "last" "" "p" c "NUM" "" "")
$ d5 a! O& b q' v: l: K# z) d" B) J2 p - (princ))1 n" H3 B5 U. M {& U
- % Z3 K' Q, y. L3 [
- ;=====================================================================% g6 @" V3 O% N7 l/ x
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
. w1 P& C0 p/ ]) f' g# [ - ;========================== 03-11-2024 ~ 20h02 =======================
g; p9 n c! A/ \ - ;=====================================================================# L g% d6 t; I5 e- Y
9 H0 z3 h) H( V: r7 E- r. g- (defun c:hecloit ()' x: ^/ t% ?! Z! X: I8 @$ I
- (setq a (getpoint "\nChon diem: "))
9 c/ U9 n, Y& n. S$ C; w - (setq b (getpoint a"\nChon diem: multi "))9 O& e" c/ P* V8 _: g% P
- (setq c (getpoint a"\nChon diem: "))(princ)
9 i+ a+ {1 u. o5 o+ Q1 _9 ` - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), x# J3 d, O$ ?$ B- J# I
- (command ".pline" a b c "")
4 L, s/ D% g, `: p1 J; E! i# z - (command ".array" "last" "" "p" c "NUM" "" "")" X" M% _# L% T
- (princ))# z! I$ Y: s i
8 u2 M, D( e, d# S, H3 G$ v- $ X5 Q; x4 k; D! e) G9 B
- ;;; ============================ Merge Hatch =============================" N8 I: A9 ]' x! N
7 t; X& C' q6 e! X: P8 x. d4 |/ k- (defun c:mh (/ ss entht sl i dt dtht)
3 W8 Y8 o, n8 M- l - v, Y$ M. A# c( h
- (princ "\nMerge Hatch - free lisp from CADViet.com")! b! l' q) L+ V7 \) ?% u' g
( j. B4 Z+ Y- I! W, e- (setq x. K2 m. e* u6 K. K
- ss (ssget '((0 . "HATCH")))
( l8 y' s1 r& P - sl (if ss) D% v- J5 r' E H
- (sslength ss)
$ D9 S3 N' b! n* }5 N - 04 T( V2 i6 S' w" T, J
- ), Z! j, ]; f. Z9 _5 e; B) }
- i 0
+ [! _ f/ L8 _+ r' |. k" W - l 0" @' L6 ?( Z, B+ C
- )
9 i* H' L3 D* m) k$ r - ( r! S' O7 Q+ \1 z4 E# [
- (repeat sl4 h! u4 y* G7 A! Q# t1 T) s
- (setq
' f1 {3 S* Z! S, `" Q; T: O - entht (ssname ss i). y1 l% r9 n. t* N8 E6 J
- dtht (getbdata entht)1 _( N, |+ f7 L% W8 S d6 C
- dt (append dt dtht)5 h4 ~7 G- q$ R3 M9 N
- l (+ l (cdr (assoc 91 (entget entht))))& x! A4 n$ {; G/ b
- i (1+ i)
$ i& k4 G7 i' L0 T! j/ y$ K - )4 c3 i. W3 @5 y( P/ p3 _
- )
) c$ V% P, k# K: g- z - * }* g! r$ _$ t. A# A: H0 b$ K) [
- (setq ent (ssname ss 0). X) X: i2 g' J* U( m- c" q5 V4 s
- ss (ssdel ent ss): |0 q, d: [) d" B6 c0 z
- tt (entget ent)
: D& b# M8 f& E- y) ^& b - duoi (member (assoc 75 tt) tt)5 H9 p5 k( s- L# U- k) u
- dau (reverse (member (assoc 91 tt) (reverse tt)))
: y6 o+ i. p7 l/ N - tt (append dau dt duoi). L3 [8 o- q* q- G( g
- tt (subst (cons 91 l) (assoc 91 tt) tt)
' i8 S: ~: B3 z) h2 a! _ - )
" t0 U7 n" w8 @- i - (entmod tt)( I/ N! U! v' y W
- I0 }: p2 N: T0 A9 D. C. K7 Z- (command ".erase" ss "")
% j2 v' r% h, ^' L/ C - (princ)
- ^0 T: d# e9 w - )! {4 p. G0 h( j; x) m4 A+ h8 j
- ! U" N$ j8 G9 m5 a1 u& [2 h
- (defun getbdata (ent)2 e* E: a3 i- x; ]" L" j4 c, R
- (setq tt (entget ent)1 v5 f* G, b# P2 Q8 U! L0 d
- tt (cdr (member (assoc 75 tt) (reverse tt)))
7 z" `! Q3 K8 p7 L( P3 ~9 ` - tt (cdr (member (assoc 91 tt) (reverse tt))) e4 c0 S9 h9 Z4 ^8 i q
- )7 b: i5 b4 O- U+ w8 L5 W
- )
9 G0 p G' `* Y - : M! i* |4 D7 B. I) Z
; N9 S( _& M# Y+ M- (princ)) v; C8 t0 E5 M
- j4 v, R' y9 h, O% P- ;;; =========================== CAC LENH LAYER ==============================
4 u! n" x6 f( ]8 Q: G7 O* h - ;;; =========================== Layer hien hanh =============================
' J$ t& _0 E0 \( ]" K; `8 T9 t
3 @) I, v4 Z0 B, H& V; P- (defun layset (/ LAY) (setvar "cmdecho" 0)& `2 \ @1 Z. j2 ?: _! @
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))) V) n6 B( r- W- ^4 `2 ?/ d) j8 f
- (if LAY (progn 1 a3 I" x$ o, _$ A8 O1 v* E
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
) m* V3 N6 r0 n7 x; T# p - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )3 k2 P4 M r- L/ W# \
- (progn
2 E" @% i1 M1 {- y/ y, Y - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 1 d- y* y J O' v$ F6 y3 ?) `; m
- (progn
+ [) f" h r, x0 Z1 g' o+ ^ - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
3 Q3 \3 r6 v3 M2 N7 m9 p+ W - (defun c:LLL () (layset))(defun c:LAYSET () (layset))7 ]0 @' O3 G) Y. }: U* ~+ a1 J1 r
- 7 k% r N6 L; H/ B% C( U
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================) Z% C" t6 G; n% M1 N* ~
- 4 f; `4 q& {& j0 n9 {8 n2 U
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)- W: `% q7 T& w/ J) \
- (if (not (setq SS (ssget "i")))
* E; J3 q3 d3 |+ q& D+ h6 s - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
7 Y& ~) ]/ h* L; D4 V. y - (setq SS (ssget)) ) )
* Z0 o1 D+ y7 G' k# P - (if SS (progn1 W$ E5 m$ u! n8 e0 ]" S7 t/ Z
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
5 k9 P0 w$ p% d6 W" X - (if (> (getvar "cmdactive") 0) . b. |, F' H4 r4 p" ]
- (progn" \5 Y! }3 J- \; G& r
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
4 W- c$ Z1 p$ a/ I - (setq SS nil) ) (if (> CNT 0)
8 Q: Y' j# b* q+ y - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
% @: c1 _$ B' ?$ \2 |4 V# q0 s - (if SS (progn: F. V: f' [) P) a/ D/ E [
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
. O- c# E' r5 v - (if (= (sslength SS) 1)
0 K ^+ @1 t( H& e - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))* C( d$ A1 C/ ]% o
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
4 z7 M5 E9 r! H# j - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
; s2 t- a7 v8 {4 w) G; a' R0 ]0 X - 6 v: C- p$ v# T; p
- ;;; =========================== Layer Iso ===================================- z# l. \ l/ O6 B& o8 F4 F5 @
0 Q1 c0 }( q( |; C( f0 j8 ]- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
; C. _1 p K" K& R - (if (not (setq SS (ssget "i"))) (progn) }, S1 E; W% K$ W" \0 g6 H7 k. a9 M
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")& D6 M; R9 h: A) ^3 v/ i
- (setq SS (ssget)) ) )" p/ N( N( i: v/ ]2 u4 |
- (if SS (progn (setq CNT 0)
5 g- q: w$ z' \; |; ` - (while (setq LAY (ssname SS CNT))
. x; J4 e0 |1 t - (setq LAY (cdr (assoc 8 (entget LAY))))
. }; o6 R" F" D* M1 l- M, J1 j/ Y - (if (not (member LAY LAYLST))8 g" l. J7 O. f
- (setq LAYLST (cons LAY LAYLST)) )
+ ~# l/ I- G4 m) y p I' Q - (setq CNT (1+ CNT)) )
: k6 K* z; `, ~) ^0 t$ t - (if (member (getvar "CLAYER") LAYLST)1 F' d( F3 }9 \- V
- (setq LAY (getvar "CLAYER"))8 e# ?! r4 k3 Y3 _& c) q
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
4 O: @4 C* {5 R1 y% N3 W; E3 X8 N2 x - (command "_.LAYER" "_OFF" "*" "_Y")
3 M2 z3 k& c+ l4 x - (foreach VAL LAYLST (command "_ON" VAL))' ?% {* e+ m/ V8 ~
- (command "") (if (= (length LAYLST) 1)/ L7 P' i5 E# `+ Z: B
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra.")), L- |# L& L6 W; A. Z8 L
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
2 b2 |% `1 ?7 L, K - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )% Y) f0 b# k/ P. P( _ v
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))
/ _) m' \8 u8 E+ q& S" D - ) z2 c6 V7 |6 ]( N
- ;;; ========================= Layer Match ==================================# M! L$ k& Q0 x8 {
. s- |. c& W& f! a- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)8 o/ e) _2 R; A# {( ~
- (setvar "cmdecho" 0)
& t" b2 F' g, q- [2 p4 X7 i, f' \9 { - (if (not (setq SS (ssget "i"))) (progn( I, k/ S1 @; Y( U: u
- (prompt "\nChon doi tuong muon thay doi Layer : ")+ m A6 n' c& P+ D( x7 H
- (setq SS (ssget)) ) )9 i) B5 x4 {: g7 e/ D# N" M4 ^
- (if SS (progn, ?9 ]. d [- h
- (setq CNT (sslength SS))
! K( i' e; f; X - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") 1 c! m- V# Y9 P- T+ f
- (if (> (getvar "cmdactive") 0) (progn
( g5 G" V* l# k" i - (command "0,0" "0,0") (setq SS (ssget "p")
7 v- I5 T5 u8 p9 {+ c* u - CNT (- CNT (sslength SS)) ) )6 ?' h5 b. m6 u' f
- (setq SS nil) ) (if (> CNT 0)
+ M( [$ m- O# k- ?! ^( v9 u( x P- F - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
; z, t5 \4 G) v+ ^, [ - (if SS (progn
) u+ |1 S! x/ h! S* Q - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )* l) I$ r3 V$ G- h/ }) q
- (while LOOP (cond
$ O- Y3 a5 a( ]1 F - ((not LAY)7 [% j& l# {: w# f% B9 G
- (prompt "\nKhong chon doi tuong.")
% j+ s' I K( p# b+ V4 c; v* p - (prompt "\nSu dung layer hien hanh? <Y> ")
( \' _2 [8 e6 T* ^1 |" I - (setq ANS (strcase (getstring)))( e; L0 l/ c6 @# w9 G. h
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
! a: f8 |$ ]; N) b5 R" j# d9 S- ` - (setq LAY (getvar "clayer") LOOP nil ) ) )
6 ?' k: I( | M9 E7 A5 N% Y8 y) O - ((listp LAY) (setq LOOP nil) )
' t4 n& I2 i3 H; z7 U, Z - ((= LAY "Ten")
+ |7 _- P' w1 h/ h - (setq LAY (getstring "\n>Nhap ten layer: "))3 r' Q. l/ s! | }2 e
- (cond
% r5 P( s0 D C) f( M/ x - ((tblsearch "LAYER" LAY) (setq LOOP nil) )# p7 s, y9 k1 T
- ((/= LAY "")
3 i7 R- M I+ u - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
7 G4 A6 s* Z* A5 a* D" K( U - (setq ANS (strcase (getstring)))4 c; m/ M/ B/ k0 }: E8 n- N3 w
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))' O' x+ ?0 @0 [9 y4 Q% I- d
- (progn
: n! ?7 _( }& w6 S# r& \ - (command "_.LAYER" "NEW" LAY "")
i2 C, u+ c0 x! {( ]2 Z - (setq LOOP nil) )/ z3 E) Y7 K1 G+ A
- (prompt "\nLoi ten layer.") ) ) ) ) )9 { t7 B5 X* S. A6 A
- (if LOOP (progn (initget "Ten")
- ] H. t M. w7 C% K - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
- g2 t8 f" B' @/ j# _ - (if (listp LAY)9 }3 J# E( D+ |, N8 v
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
" s# C! e, u5 U# U- s - (command "_.chprop" SS "" "_la" LAY "")/ Y( ~8 ~! F1 \3 V6 [5 k3 g) `
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) ); a- q6 S; N! _( S& r0 T
- (if (= LAY (getvar "clayer"))
& n- r2 g; m2 [9 j# z - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) ) x) t" v: b/ A
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
* R8 r0 s7 i& U) h" A0 |
3 F* p' w% P/ ~; U) i8 {- ;;; ============================ Layer OFF =================================5 {' E) [( j0 l) M4 a. k( @
- ! F( w, F6 m T3 j9 ?
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
$ x9 G- U9 u4 ~( | - (SETQ SSET (SSGET))0 R4 B* q# s" @% O6 P; K! |3 A0 U
- (IF (/= NIL SSET)
5 L% p3 X2 i- `! n8 G6 X - (PROGN3 ?1 O [; d- Z
- (SETQ SSL (SSLENGTH SSET))
1 e. K4 |4 D, L3 \, s. S3 y - (SETQ LAY "")! V# M6 ]4 k* a- m& @$ T3 ~; s- m5 k% l
- (SETQ I 0)0 N2 I* ?' a+ W2 W
- (SETQ MODE 0) " |# Y) P) _ M/ m$ V4 ^
- (WHILE (< I SSL)6 w' t) A! W/ w( s ~' C
- (SETQ ENT (ENTGET (SSNAME SSET I)))
; w6 Q% f: F) U5 [; B; c# N4 p - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )9 t, e/ Q F! R9 f% Y
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )): e' u6 ?1 s: }& Q
- (SETQ I (+ I 1)) Z; P% F. f4 i) Z$ T d/ V; O
- ); ]" A) `' s7 ^2 N7 X8 f
- (COMMAND "LAYER" "OFF" LAY ""): ?3 d' D* _) X9 \9 x& r# U
- (IF (= MODE 1) (COMMAND "") )
1 p) L8 O* r7 K% h - )
]) d: [& J8 i- k$ Y8 q- c - ) I$ ]9 X' {) q! A! _' Q
- (PRINC)+ _* g+ J' m" K
- ); n/ t: u. S: N D! Z# h* ]: W9 x
- X- m" W# k0 q# m/ O: M/ z& p: e- ;;; ================================ Layer ON ==============================$ }9 U, E$ U s
- * W+ [" z! _- x1 O5 R
- (Defun LAYON () (setvar "cmdecho" 0)
/ g3 J9 ?& r' O4 y* T u - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")* r% a$ K) b' I2 D! {
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))1 k$ ]9 ]- x( v; K
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
. ^4 M- s/ d9 K1 t" k4 T/ |2 G# n- O0 j - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
$ J; b9 k& o0 T
/ o8 ?* u# |5 s! J- ;;; ============================== Layer Freeze ===========================% `$ d2 D6 e# c: V% \# @
- 2 q1 m6 {2 D; k, Y1 {4 B$ t
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
$ F7 f4 }. j2 v - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
. B9 v2 g0 L" g5 y; i4 U - (IF (/= NIL SSET) (PROGN
4 |0 \- ~6 ?0 x, O - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
, w6 ~* ?: a, J% { b4 `0 T# i - (WHILE (< I SSL)' o) D: a4 i+ g+ K( }8 w$ Z8 x
- (SETQ ENT (ENTGET (SSNAME SSET I)))1 M; _* z7 x& V+ E2 _+ C
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
m7 g0 a& v- v, @ k9 b - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
- Y) k i: C3 H$ @4 ]7 _, o - (COMMAND "LAYER" "FREEZE" LAY "")' B* V5 u' o, D( g1 U, T) i+ n
- (IF (= MODE 1) (COMMAND "")))), D+ {2 G. C$ [: s% b3 F, j+ s& ^
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)* ~3 `% S+ e6 y0 _5 i' k
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
# h5 z( f3 f$ p/ [/ I5 ~. R - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
) `. H1 d$ G) \8 Q, J3 x$ C a - / r$ k1 }* M9 j R
- ;;; ============================== Layer Thaw ===============================
* C" ?% e. m' @) `6 C
' z/ ?2 v; s7 ~6 V" {% b/ I- (Defun LAYTHW (); Z/ I; _* h' ^4 a" `% x/ S
- (setvar "cmdecho" 0)
7 ~ j% @4 M; j2 { - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")6 [+ j L" x D8 D2 s
- (Command "_.LAYER" "_THAW" LAY "") R1 ?# a* N6 M1 I! C
- (princ (strcat "\n Layer : " LAY " da THAW."))
D6 T; i" Y- A5 f - (princ) )( J+ O4 K& I3 z" h. |4 _0 q3 M6 t
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
$ l! {- y( Y/ m2 N4 T' k; q
* q& Y9 R+ @# I* P; y- ;;; ============================== Layer Lock ==============================0 ?+ ?0 W5 I# H! p1 U/ M; `' |
- ! x2 X. q$ N& B
- (Defun LAYLCK (/ LAY)
. }" F( ?8 D% {& \5 C e4 ?, T9 c: \/ z - (setvar "cmdecho" 0)7 l1 ^) u9 A, [; \
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
9 u7 Y, `# q* S! x" u6 y - (if LAY: o5 @ M. g7 ~; F
- (progn5 P6 N( U0 H3 \- Q
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
3 u" J2 C, w* Q* |0 H" D Y - (Command "_.LAYER" "_LOCK" LAY "")
# @* Q6 L( n- U( z# z: i5 J, D& T - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
% R! B+ _9 j8 ~ - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))! i4 h, M) c4 H' _0 z" u
$ R1 R" n# D9 a7 b& o- ;;; ============================== Layer UnLock ==============================
}1 Z$ N4 S- w; s - & `# W. S; q+ i' I* @+ x: T/ r
- (Defun LAYULK (/ LAY)
# ]0 T+ c. H0 Y' H+ r: y - (setvar "cmdecho" 0)2 W( j1 F, }7 ?' y
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: ")); M6 F1 P9 Z; K. J! M$ J/ R
- (if LAY
7 V7 X5 R6 X; V5 ?& \8 g - (progn
* `$ m! G `5 q7 f% o - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
9 M$ w5 l- A* P" {" O# C- P2 \ - (Command "_.LAYER" "_UNLOCK" LAY "")
( x. d& c3 f5 d* m - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
) ?' x8 o7 U( M+ s3 G - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))) A Z- n l. j3 T8 [3 z
- 3 Q" h& }1 t5 f+ K
- ;;;===================== Delete all objects of Layer ========================
. r: M% H' w7 ], i F - 8 W9 G9 z2 D0 c8 k E3 @$ h- g
- (defun DELAYER (/ ocmd L S) : B. P+ r. e$ Z/ i0 R7 y' _2 q
- (setq ocmd (getvar "CMDECHO"))
) F' {- |1 _ i, ? d; }4 z - (setvar "CMDECHO" 0)
/ \0 ^: H5 M3 ~6 y- x - (setq L (strcase (getstring "\nLayer(s) to delete: ")))/ j7 e5 H+ ?- m. y5 J3 _: V6 V8 `- N
- (setq S (ssget "X" (list (cons 8 L))))
* \! g" e7 p: J- I - (if S * d4 o5 e5 G; J% U9 k' z7 S
- (command "ERASE" S "") : n v) q8 f* |* T$ ~
- (princ "Layer empty or not a valid layer name.") )
2 u7 r8 K$ r1 r - (setq S nil)
. T; `* [/ X3 N# O - (setvar "CMDECHO" ocmd) / b( d$ _: J3 o6 Q% d [1 c
- (princ) ) 8 i3 Q4 b F' F/ ?, b
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
" J0 ^* U o& d5 T3 O/ P! B; n
; V' S& X" b/ d- ;;; ========================= HET CAC LENH LAYER ===========================" I* b1 O3 j+ j* c0 U
8 q: r2 L6 H) H8 V+ Y, m, V8 f- ;;;====================== EXTEND NHIEU DOI TUONG ===========================) C- x F. I, M
$ {8 ]" b; d$ i+ d- (Defun C:EET ()9 ]8 Q; b( n6 z6 {
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
' K. F( n; d! n - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
$ [/ }7 z0 x9 t! w; {: K+ v1 E8 ?; A - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
4 _6 f( l+ }, w) P; F - (Setq I -1)+ v$ b. B4 a+ H# N
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")& f2 l3 u: [! D! W
- (Repeat LEN
% x; y0 g! O- O: S# S - (Setq I (1+ I))
: S- `, u0 y M" N2 C$ G( ^ - (Command (List(SSname SS I) SIDE)) ) (Command "")
* e' A/ v; T3 a I/ [0 I - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )) ?4 M# p' W" _0 z
- 4 O7 S( C9 V' `
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
3 _5 T2 b3 x! M% l( h
% }) ?2 ^5 ^4 p+ q- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)( a' K. T6 V3 ^5 l9 l
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))* T7 {' x( ?& v' z4 f
- (setvar "osmode" os)
9 m+ f }# t2 ^ - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))$ \0 Y! J0 P! a5 M
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
4 e& ~6 P8 S, ]6 U( V- j - & e9 `/ h' G7 q. |
- ;; ================ Change width of polylines =========================
- M- Q/ c, _2 V% N1 `% }6 L; _ - ( \+ F a8 b; W
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
/ ?# \: n1 C5 G! j% X - (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
& [' \, }& T; G: b" Q: J/ {1 o - (setq b (ssget))
0 ^% d" k: d2 l% S - (setq sophantu (sslength b)) 1 R) V" ] Q7 o( t k5 a
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
$ \$ _7 p3 k5 C' z3 M" F' h - (princ "\nDo rong polyline <")
% J- u) @& t- Z2 m1 J, G3 s - (princ ha:wid)$ ?, X* N! G4 g1 B' M
- (princ ">: ")
6 b. y& Y+ b0 z# x9 |, H- L+ J) [+ }7 s - (initget 4)- @1 l I' l; I, V
- (setq ha:wid (getdist))2 @$ D; ~# T1 h5 }0 e: a
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
1 }- @7 g" m" P5 { - (setvar "tracewid" ha:wid)# l2 W! ]$ s$ e# J7 C: R
- (setvar "cmdecho" 0)% s3 Q( ~6 Y, C% A+ I
- (setq sodem 0)
- n- c( t+ z; W% G i8 v4 y - (repeat sophantu% B1 S& Q t& T
- (setq a (ssname b sodem))* v7 d: o# L: P
- (setq list1 (assoc 0 (entget a)))) Q! V$ y6 ]4 s% E( F) |/ g
- (cond9 I, d( e/ B. C* w: }) T
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
, c2 M: e" d' }! a1 g - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) : ^( X* d* x, ~
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
. u& \" A1 o; `- l4 j: v( Q - (defun c:wp () (wp)) (defun c:pw () (wp))
& l) G; E; K9 K - ) Q- u: x: d' J, U( p+ B* x( x2 W
- ;; ================ Change radius of circles ==========================# q" a( f$ Z/ X- L- |
- - k6 I" N% B* a. a9 }; J0 y
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))& y- `* X; A6 v6 N$ P3 y
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
9 U! ~$ m2 `8 v3 {/ O/ _ - (IF (/= RD NIL) (PROGN (SETQ I 0)4 I( P# u' M/ C; P" R
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
8 B+ g# F' B& s: {% e - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
4 D! M- ^* n% a - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
( M& R; K- x, @5 L1 I - " f H# j' P% T' o; {0 n- l
- ;;; ============================== TEXT Hight ===============================4 }% }; J6 ?+ [0 ^, j' p8 q7 r
- ! d2 c0 r+ D( i
- (defun texthght (/ ent hght)* o# D! y3 i! w. @
- (setvar "cmdecho" 1)
5 K: k& |8 j* t2 d3 F4 |7 j - (prompt (strcat"\nSelect text entity with required text height"))
6 ]9 s0 n2 {: S& j" h6 L - (prompt (strcat"\n."))
; z& D: R1 e1 U' S' e9 y- y# G - (setq ent (entget (car (entsel))))! Z6 b, U2 U: @6 i* p) w5 ^
- (setq hght (cdr (assoc 40 ent)))
2 f6 X; c1 x& j& d& A - (prompt (strcat"\nText height now set at "))(prin1 hght)* B. c T; y) h* X7 k& ]4 u) x
- (prompt (strcat"\n."))
" G9 E# ~' O" Y1 R1 Q9 F - (setvar "cmdecho" 1)/ L& c* G- B5 X6 s' h
- (command "DTEXT" PAUSE hght "") )% r* d. m4 f. n% I- V6 h( N
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
2 C+ k0 O) d9 g( R; p9 O8 S( {
. E7 L: S: k: y" h4 z9 P6 f. B2 z- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
( J P7 b0 t7 D! a0 _ - ' B* k, t5 S& k2 |. N/ `
- (defun c:tuu () (setvar "cmdecho" 0)
7 ?- F% r3 w4 m5 n$ N y9 l - (prompt "\nHay chon dong TEXT can gach chan ")
: k+ J: `8 ~$ V2 m: z" f - (prompt "\nSelect objects: ")
: K8 M/ M0 z! g' A - (command "select" "au" pause). J8 f) H. G; J5 U$ f0 t6 F
- (setq sstxt (ssget "p")
/ ~1 _* G4 f3 z+ G - sslen (sslength sstxt)
2 l8 j9 J; c; p& T- }2 m - ctr 0 )8 s8 J' L8 X5 g4 o8 a' `
- (command ".undo" "mark")% L C X7 u. T3 n0 X( d
- (while (< ctr sslen)2 {9 }; ~9 q# ]5 Y# ]7 m3 {; p
- (setq listxt (entget (ssname sstxt ctr))
j/ m: q$ K7 m2 W - txttxt (cdr (assoc 1 listxt))
* e+ u: G2 ~: p$ w - enttxt (cdr (assoc 0 listxt)) )7 Q3 g9 _8 o+ K. U* s9 z
- (if (= enttxt "TEXT")7 t7 } V/ f1 x
- (progn3 H( a' F" d, {
- (setq testxt (substr txttxt 1 3))$ g O. p6 r+ V% X2 `; ^9 u
- (if (or (= testxt "%%u") (= testxt "%%U"))
- y, V% \5 g" N/ Z) y) d# @* j - (setq newtxt (substr txttxt 4))4 m2 ]# U! j# O6 T
- (setq newtxt (strcat "%%u" txttxt)) ). n' u6 `2 n# W2 R
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 D- b# y7 O0 Z
- (entmod listxt) ) )
2 a+ I( l4 I$ v9 ]- y - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))0 T$ m9 T; V/ k7 q2 U
- , }; H& X# X) \7 k2 a
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
2 p% K& t( u. b3 }
( T) N) d ?1 l0 O% s. T- (defun c:tob () (setvar "cmdecho" 0)
) T# B* Y2 u" A! N9 } ] - (prompt "\nHay chon dong TEXT can gach tren dau ")
7 I; l7 p+ e6 y/ M+ L - (prompt "\nSelect objects: ")* V+ ?* p& q$ J& `- j. w# A
- (command "select" "au" pause)( I( K c- y1 K9 G) o
- (setq sstxt (ssget "p")+ I$ O& @+ Q+ s7 ]( X7 u
- sslen (sslength sstxt)2 @& a0 Y% x8 c% Y" n
- ctr 0 )
1 [+ \' e$ ~2 Y - (command ".undo" "mark")
/ v K3 l/ ]$ L4 u$ R - (while (< ctr sslen)! O! w1 u0 w! v; @/ O5 A
- (setq listxt (entget (ssname sstxt ctr))
* p6 h) V: M9 d2 P4 B - txttxt (cdr (assoc 1 listxt))
% B# ]% d; l0 D% } - enttxt (cdr (assoc 0 listxt)) )/ n8 B4 s" ]9 o) H0 m' l' [7 f
- (if (= enttxt "TEXT")9 }2 X. _& ?. v2 K1 d& x
- (progn
- |- T' l/ X% E: V% A - (setq testxt (substr txttxt 1 3))0 d0 c; q2 P1 s( @8 E" ^5 W% c' r# e
- (if (or (= testxt "%%o") (= testxt "%%o"))
- [: n2 r. G5 ?# g; _/ X5 Z - (setq newtxt (substr txttxt 4))
' [4 X+ b1 O* s/ j% D0 O - (setq newtxt (strcat "%%o" txttxt)) )
- @! e) ?* g- F6 } - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
4 T6 {0 M6 s, T4 A) r, b - (entmod listxt) ) )
7 a/ g: e9 e' C8 T/ F3 j9 g - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
! q3 e, @ C3 O3 r( `) m( i6 M
/ A, X( _5 {1 o- ~/ N8 w- ;;; ========================== Tim & thay the TEXT ==========================
8 L# g8 x# C/ ? h. M2 U
( G( `. ~+ M9 a x! f8 H( ~* w! V- (defun frstring (str search replace / str1 str2 index find)+ Z) r) ]0 B2 F+ m' D
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
4 z$ |) A7 Z0 D. K7 b& Q- ` - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
* B7 A A+ r- B& F3 L, S' m* I. t - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))' ]5 c" O* \9 |/ F
- (defun hai (/ dial)
7 h/ X) Z6 n' z( { - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
% [4 {# {) N N* O - (if (not (new_dialog "find" Dial)) (exit)) ;;, J4 H$ n; J% A r( P }
- (mode_tile "find" 2); Tao dau nhac tai hop thoai
6 `# A. |. z2 A. x4 J - (action_tile "find" "(hai1)")
% K& C8 u4 |, C# Z$ T7 J - (action_tile "replace" "(hai2)")
1 x j5 n7 f, H6 N - (action_tile "cancel" "(done_dialog) (exit)")% A% w& f" \( R$ C! E' n* o8 v
- (start_dialog) ( B' y! y7 y" Y5 a. M0 U* f
- (unload_dialog dial))+ |2 T+ {+ l3 g8 B; k! j
- (defun hai1 () (SETQ str1 (get_tile "find")))2 G7 F, r, F/ I0 p
- (defun hai2 () (SETQ str2 (get_tile "replace")))
) ?2 S' c+ ^9 U. c
' l' s) } ?4 M0 [- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)% r' [' Z- S) g2 J
- (hai)
4 a# H/ z1 ]$ x3 ]& k8 A - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le"): l% N! B' R6 Q B! b
- (progn' d, l. {) H3 X: f% v2 Z+ T. e
- (setq taphop (ssget '((0 . "TEXT"))))- I# E; {, B/ m; c# H
- (setq sodem 0)
6 Z' n# g8 H/ q4 G) ]/ c - (if taphop
5 |5 V- e" f/ {, t - (progn
7 H6 A2 u0 ~, a# B }/ x - (Repeat (sslength taphop)
, k2 f; A8 L0 p- T" S& o - (setq a (entget (ssname taphop sodem)))1 C/ j$ W9 X8 I1 X
- (setq str (cdr (assoc 1 a)))
# j& G0 e, a( U- G - (setq newstr (frstring str str1 str2))- H+ z; F/ N4 W6 J" \2 ^4 E5 }
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))
! E& [0 l+ o1 f% N$ j2 S- r - (entmod a) O {$ R1 A3 w Q' E" Y0 D
- (setq sodem (1+ sodem)) ) )& i6 m+ @0 ]. t+ E. g. d
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))4 D" _6 F4 M" s5 Q; X( i
- ~- N. Q2 o6 r! _. ?- ;;;============================= CHTEXSTY.LSP =============================" |1 A6 g" ?1 ^, `8 |0 e4 `* }
9 e( l$ c2 b5 u; F+ g- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")! @+ {3 Z4 W3 N* N
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
: ]+ [4 z) n& K# Z. O( ?, D$ @: Z5 Y - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A)), c/ x E2 F$ N' a
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))3 M9 s' c4 d/ I1 s
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
! |5 O) n, j, [4 \% E' h2 ~ - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
! n! p7 Q7 f; M4 N0 q! c - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))# _6 E) `$ J& E, A4 [3 S
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))* [) }6 l3 c x7 J7 I. K
- (Initget 1) (Setq A (Strcase (Getstring5 {- X' R% S; w$ V* u |+ g
- "\nEnter text style to change: "))) (Initget 1)( l& M g6 V' Q# H+ B! T( k
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))- s! q) B# Q: W i( r/ O6 t
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If, ~/ d5 Z* R7 H3 Q `
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))0 f& B: d# B2 s' ?7 G
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
1 s$ Z. k4 l) q& k6 d$ W# X4 O: t - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
0 [, L3 R) b7 [ - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))! b8 ?; p \/ n, k9 u
- ( c% r- @) ^1 t7 R
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
% n# r |- {* P" R* H7 @ - (Setq J (Cdr (Assoc 50 A))))
( q4 Y2 P A( k6 v8 w& j7 v9 x E
( ^+ G: N: }6 h' q) m* C- ;;; ============================ DRAW CLOUD =============================
1 r6 N' j3 d- S# S% b, z
& O% v4 g% c5 F: n- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)% [! ~6 L2 h4 m8 z3 j# q) D
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
4 ^! W# L1 [. }# Z- F! I - (setq la (getvar "clayer"))
6 P/ B1 H4 `# ^2 i/ W - (command "layer" "m" "cloud" "c" "5" "" "")- s" p8 _. \, }& C* G: P1 ^
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
, H) X" L. ^5 J- ~, Z - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
- e5 g- S0 P- k/ g7 a/ x - (setq cnt 1 ss (ssadd)) [$ I1 w8 E+ s: y6 X- t. N
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))4 |+ R4 C/ q( N# e
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
% D$ q! d* m* i3 z8 x4 s7 T - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
$ ~9 t( h8 Q5 K6 H6 ~ - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)" Q$ U* K% a* _' G! B% ]8 b" g
- (command "pedit" arc1 "y" "j" ss "" "x")
$ X4 I/ G l. F2 Q" U4 ] - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)4 E. e8 d2 `5 e2 S' i
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
% h9 o2 ~% `, ?6 L3 o; _4 H - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD)): K& O, ?, P, ]. H8 P( r1 `% v
- 6 x/ G' h2 L! R! P X
- ;;; ================================ Funtion-Dulieu ========================
% J" d- Z# ~3 p - ;;; ================================ Funtion-Dulieu ========================
0 n! ?( k$ T2 e: b1 X! i - ;;; ================================ Funtion-Dulieu ========================
7 B. k8 F9 O4 d( h5 y1 \
- o. M$ S7 r% R/ ], M1 x- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )) [) K+ I& R/ l9 X% |
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))+ R; v& P5 x: Q: x6 z! y
- (defun khoangcach (kh khq11 khq12 / h0 h1) (setq h1 (polar kh (angle '(0 0) (vectophap khq11 khq12)) 500)) (setq h0 (inters khq11 khq12 kh h1 nil)) (distance kh h0)) y5 d; N: I$ o2 ]1 \3 V
- (defun hacat (hacat1 hacat2 / hacat3 chon) (if (and (/= hacat1 nil) (/= hacat2 nil)) (progn (setq hacat3 (polar hacat1 (angle hacat1 hacat2) (/ (distance hacat1 hacat2) 2))) (setq chon (ssget hacat3)) (command "break" chon hacat1 hacat2) ) ) (princ) )/ {! F4 B+ V0 Z: m+ t( F$ L4 f% f
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
/ B' B. A3 h, ~& o; C - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
0 x3 B: w: `& L8 I$ [) t - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0)). w3 ^4 o( A- M. u& j/ Z0 p
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))* O* I6 W. p1 O. o8 R6 l7 J" T7 w
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))& c+ A7 ]/ z/ R& W( Z" ~
- (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)))% \1 }" s' t3 L2 g4 N0 x
- (defun dtr (dtr) (* pi (/ dtr 180.0)))7 ~/ H: S$ s" n7 ]
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))
; c+ {4 \/ F' g3 y1 c+ v, z: l: i - + R7 C) i. U8 e0 Q6 e
- ;;;==============================PROGRAME===============================
! ~- D6 `: c1 H* D1 ~9 l: n' R - ;;;=====================EditDiM Hien Hop Thoai Dep======================- ]1 Y# ~/ C; j, x2 m; `! _
- ;;;==============================PROGRAME===============================
5 a- \6 B' w1 W7 _! U* D
, W0 [2 |3 U; `% N- H- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
: \% s' S3 r% _8 K: v# } - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
+ b$ ^9 p: v/ N! L* ?0 G: }7 k4 c - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)# m4 K, e, ^) _3 Q# ^0 P
- (Setq Oldlis (Entget (Car Chon))
& S) O/ ^+ A- @3 n - Pt10 (Cdr (Assoc 10 Oldlis)). ~" j5 i U8 W: d) @3 e) _
- Pt13 (Cdr (Assoc 13 Oldlis))3 F. h( G5 |0 ]5 s
- Pt14 (Cdr (Assoc 14 Oldlis))
" X6 s4 J* c0 M% K( B - St (Cdr (Assoc 70 Oldlis)); E3 V# P% p3 B: k( A1 U5 G
- Dimdefault (Cdr (Assoc 1 Oldlis))! q, Q+ G" I8 _$ b
- )
/ S8 l4 n3 S1 s1 L" u4 \ b9 g8 U - (Cond/ m9 T! ]/ _/ f
- ((Or (= 32 St)(= 0 St)(= 160 St))
9 G9 m- N. h6 Q3 d. D - (Progn
; u" f# K; Z1 x3 p - (Setq Ang (Cdr (Assoc 50 Oldlis))6 A" {3 U: P {
- Pt (Polar Pt13 Ang 500)
* e& Z' g% x4 o0 l - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
- d% o/ V f4 A8 U3 {, W! K - Dis (Rtos (Distance Pt13 Hc))
' z; G# |5 _4 ?# o i: p( f - )
' I2 ?/ b6 V/ v# b, `& m/ U - ); S% ]: }2 P6 y
- ); A" Q- s! z( C. i! f: `% L
- ((Or (= 33 St)(= 1 St))
1 [2 M/ R: L, s' f - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
3 Q. ^5 S* I3 a9 ~& m$ ]. O' K t7 j - );;End Cond
2 A2 q1 Q' v& S/ e - (If (= Dimdefault "") (Setq Dimdefault "<>"))
# y8 O- `3 A( K. g# n3 \" E1 n - (Setq Dial (Load_Dialog "Hai.Dcl"))! x& ^; K+ {/ k7 F5 L
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
% f. D1 |2 k8 u/ _) G7 W - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))! g+ m& l" i4 _
- (Set_Tile "text" Dis))) a5 n7 X- ^' o
- (Set_Tile "ha:edim" Dimdefault)
+ }' c2 \3 S' _# F; c, |' L5 x - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
$ S6 f- F4 o- j+ y" ]- G - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
b& d3 O( \2 z) v0 K1 g) H& G - (Setq State (Start_Dialog))(Unload_Dialog Dial)# b# P+ j. O# C& ^" x; A- L
- (If (And Str (= 3 State))( g4 \( l) ~& X# x% v3 F5 G
- (Progn. ~5 m# g# G/ C. H. k8 k7 c) w
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))7 ?9 x/ w' E& A z; }6 Y
- )
- F! } V7 {3 ]8 T - (Defun C:EH (/ Chon Name )
. X# q6 ?6 k8 Z! b. \3 k1 L - (Defun *Error* (Msg)
8 {( e |+ ~. U2 t3 v8 D P - (Princ "\nerror: ")(Princ Msg)(Princ " ")
8 H: ~/ I8 E N4 d - (Start_Dialog)(Unload_Dialog Dial)
2 C- D* G' e$ X0 L - (Setq *Error* Olderr)(Princ)0 i8 Q# j7 S; R2 Y3 q$ U" s5 @
- )2 ]* g5 ?! F/ @* X8 o7 D" y
- (Setq Olderr *Error*)
3 F" ~) x, _4 E9 i - (Setq Chon T). I8 i" a! Y% j+ J H7 t
- (While Chon- j2 D5 I& o+ S' x* |+ }# v9 B
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))' N- J1 m' t. R6 D; b
- (If Chon1 P. L% z! T, H/ j6 u
- (Progn
/ m" k L( H i3 ~2 C- K& l$ w - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))2 \+ q. t3 G1 l. [. y
- (Cond' w& B' @# v$ w1 p) I( }" H9 d
- ((= Name "INSERT")(Command "Ddatte" Chon))
6 `1 u; p, r# C5 j, a7 d - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))3 Z, {) g6 J# q) S
- ((= Name "DIMENSION") (Hai_Edim Chon))* ?( B0 J. S6 F: {4 s
- )
; Y. q ]( C; R8 j# z - );End Cond; ^% a! W6 G8 O& @; L6 M
- );End Progn
9 U' K/ p& N2 L1 d' E: Y1 P - );End While% x$ w; W, Z, ]' j3 R9 w
- (Setq Olderr *Error*)(Princ) y+ H) f D5 N( S* f
- );End Program
: N* u4 C5 A* k' z$ ]
/ S( Q* |5 ~3 m9 e( Y0 R' C( U3 U- ;;;====================DDeditDim=====================( O. l! `7 k9 y/ p8 u
- ;;;=====================Hai.DCL======================
' a O: l: Q4 u8 N - ;;;====================DDeditDim=====================
/ E: _, ~: U$ ~4 p# x' U - 1 |6 u5 d- t2 ? ]2 o: P! ~
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)2 A& @. O# Y, G4 U8 p. P. N( t+ a8 U
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl2 h2 |, V) t" B8 R3 f
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
0 v# V# B+ k, Y$ R" v8 W2 Q+ z - (Setq Oldlis (Entget (Car Chon)); g/ k+ o- k# L9 O! W6 M d1 M) z
- Pt10 (Cdr (Assoc 10 Oldlis))! r5 z7 Z* ?9 o" [9 a$ Y
- Pt13 (Cdr (Assoc 13 Oldlis))* u, f4 `6 u3 T6 T
- Pt14 (Cdr (Assoc 14 Oldlis))
& H7 P) u$ W/ O `2 K% u( F1 ~2 l$ q - St (Cdr (Assoc 70 Oldlis))
' ~$ [0 s5 @' o% z' s - Dimdefault (Cdr (Assoc 1 Oldlis))) X2 T$ Y( U( J7 S) G
- )
% D' H" y$ I+ [4 Y' V - (Cond& ^. I# U0 F- n& s' X6 ?
- ((Or (= 32 St)(= 0 St)(= 160 St))/ k; Y5 c3 j* V, F! s) B5 T
- (Progn
3 ~% M& P; S- ?% a* e! ^) H - (Setq Ang (Cdr (Assoc 50 Oldlis)) }+ z0 L1 }' h
- Pt (Polar Pt13 Ang 500)
$ Y. X4 C. ?% V$ v4 b7 I3 i- R - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)4 B9 k/ i7 {7 O" U5 `: [; P
- Dis (Rtos (Distance Pt13 Hc))4 F3 O3 A1 ~- `% W* |
- )% |+ T' J# `9 g; s! U( ]
- )
: w) c* F' S* M1 X - )! [9 E; |3 j- R4 |
- ((Or (= 33 St)(= 1 St))
9 }* G* X& V v; y - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))- \: i4 K7 @7 i# j" u) A- {
- );;End Cond. j U) G+ S h3 E
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
4 O! t/ W" K' o: g4 B - (Setq Dial (Load_Dialog "Hai.Dcl"))
# g- a8 Z/ K( M1 t' P& X% b - (If (Not (New_Dialog "eddim" Dial)) (Exit))$ @( h( Z1 `3 ^# E8 A
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))4 p% x0 i+ c$ v4 M* u q! ?; O
- (Set_Tile "text" Dis))! N9 V9 T' }: T$ Z. t! b
- (Set_Tile "ha:edim" Dimdefault)$ P0 ^) l0 X8 n' ~/ b! P% j
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
7 Q# r$ a; g q) p& I: W' @ - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
: m- s4 [' _# `8 k% Z: ~/ s" a- o* z - (Setq State (Start_Dialog))(Unload_Dialog Dial)' a& l1 B# r: C+ e* m
- (If (And Str (= 3 State))
$ q+ b) y8 t& u( Z2 Y, ~9 G3 ` - (Progn
. [( v0 b. L: k% y! W- a - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
! c( H0 M. s. g! W2 W - )$ T* S; C& |$ z' X: r2 F" z
- (Defun C:EH (/ Chon Name )
" E' e# ?; U0 W: e6 R+ t3 O - ; c: [+ z5 G) T9 o. N; @
- ;;;********************Du Lieu********************- ?6 N& u4 {- C. p/ Q3 q* s4 `! S5 s
- % C9 ^% H/ f/ [. g7 A- j$ i
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh")) a( J2 g3 P* s4 l! g; x' T
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)2 N- x, y. v: @
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))0 Z; V0 B! P, r+ I2 P+ y
- (Progn; S; t" u. j% G* i2 f. q5 w. N
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
# L. M S% e* r) V7 t; c- L. y8 H - (Setq Chon (Ssget Hacat3))5 b/ i* g! ^3 M
- (Command "Break" Chon Hacat1 Hacat2); L+ W) H% w: h! P: Y6 X
- )( Q( }: ?/ Y( ?+ n$ v
- )+ Q5 _& M! H8 @) o/ w. Z
- (Princ)/ [( @4 n0 H' T+ |4 m9 x& k0 o; B
- )2 a( @3 s; |9 P" _3 Q: Y
- ;;# [3 v/ w) N+ \1 A0 H; {
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
. W- V: \9 ]( ^7 ]1 e0 _1 W1 I - ;;
# x( A, r9 X9 L* j$ f' S - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
9 ?- X9 ~8 Y' i; i) t$ s5 I - ;; {, ]3 X+ I+ P
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))( X) `. d- l/ o0 c b- q
- ;;
# } u9 z y E2 Y - (Defun Reinit ()(Setvar "Cmdecho" 1))
) }" i9 E% o, o - ;;
- M+ x$ `+ X- _: P5 U - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))% H7 y; u/ H& o
- ;;) q! H& Z, d G' |. w2 l) X9 Z8 a
- ;;Cho 2 Diem Tinh Ra Vec To Phap! ]2 W. ^1 R6 {. [' |) ~
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))- g+ s \; N- ~8 l$ A
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang1 r; }, F2 N$ U
- ;;Da Biet 2 Diem Thuoc Duong Thang
# ]- M* `9 A6 x' d( z - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
z3 S% m. g \5 U3 m0 Z - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
2 |% V% C3 d2 ?3 ^ - Hc (Inters P1 P2 Dc1 Dc2 Nil)))% Y+ Z2 i. W; l
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
. j) [+ {! X! n. s: W4 X# _# [% J - ;;Da Biet 2 Diem Thuoc Duong Thang( ]# E% h2 X# G; j$ q
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)& d! T' G) s1 z; ~+ J4 u
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)' D8 J) i) j! P
- Hc (Inters P1 P2 Dc1 Dc2 Nil))
3 Z5 h( |$ I8 V8 @; } t6 r: } - (Distance Dc1 Hc)7 g. L6 l% Y8 d: B* V9 _
- )
: \% w: ~* E) Y: {) u - (load "nhapcua.lsp")
1 E+ y7 D3 B) B6 v P7 ^% n1 L& x1 { - (Defun *Error* (Msg)
s8 M: o* _: Z' x9 l, @" x; m - (Princ "\nerror: ")(Princ Msg)(Princ " ")+ U; x6 ?. y- g# q( S% T0 G
- (Start_Dialog)(Unload_Dialog Dial)+ K# e2 {( N# ^: A8 c& f
- (Setq *Error* Olderr)(Princ)( u0 E. I7 {- w5 N
- )9 j! x1 L0 w- E4 A2 }1 a% d
- (Setq Olderr *Error*)) o, O& J9 i( O( e
- (Setq Chon T)
) s% K) ~, @6 F' m, _7 r0 H - (While Chon
6 P8 p9 T) C! f1 U - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))4 C1 i4 m/ u5 b# n
- (If Chon
4 x+ B; V! j9 ~( W - (Progn2 x+ E' Q+ Y0 s i( H- M+ [( _
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
' \! H5 x* f" ?$ p( D" _ - (Cond5 j1 O% S" a+ T' j, `, d5 ?% p
- ((= Name "INSERT")(Command "Ddatte" Chon))
* p3 G d2 @0 N( G- M - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))* U% S0 J: H n! W" A$ u
- ((= Name "DIMENSION") (Hai_Edim Chon))7 H, o" Q! ?& {0 _% {
- )
# U" F0 {( P) s# `2 t; k - );End Cond) i/ m/ q* f/ D. F# V O9 y
- );End Progn
5 O( V( j p- r" v8 O - );End While q5 g1 y2 i/ @8 z/ V1 U! G, [1 q
- (Setq Olderr *Error*)(Princ)$ G' k2 M3 R( _+ E1 V
- );End Program
% N5 @5 ]& A4 F _7 [ - 6 y. i' a+ A6 W: A, m3 {
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================4 _; U8 o" g' r; L! F" F
- ;====================================Nhapcua.LSP====================================, D5 N$ n9 P/ ] K+ B( N
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
8 n& W% G# U' }# G- b2 w - ) a0 F1 [5 J% L/ F& \9 P& w
- - {7 Q) ?; q0 m2 t
, @0 f3 l2 f7 ^9 `7 N- ;*******************;*******************;*******************;*******************
0 e0 l8 T. Z3 a2 x; H" K - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
- T; w0 p) ^2 [% s% l! A. O - ;*******************;*******************;*******************;*******************& I8 C% b# H; A" E ]; [" o: U
- ) Z; ~, f. O! A
- ;VE HINH BINH HANH3 t2 B' @+ }% @/ V! R
- ^4 k* U9 w6 G3 T! w- (defun c:binhhanh (/ p1 p2 p3)3 |4 j! p. `# l. i7 l- e! t
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))3 F5 |4 q1 g0 A$ u* Z6 @
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
$ [$ @# i( v I7 P - (setq om (getvar "osmode")), V! b6 x2 }, c5 d8 I* G0 s
- (setvar "osmode" 0)
) ~9 h8 n* }# C) Y0 ?- s - (command "line" p1 p2 "")
' o, e3 r1 Z/ A4 I - (setvar "osmode" om)
4 c5 ?2 @7 }0 T$ q' ] - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
) H4 I3 i5 m! a9 p# K$ m$ H - (setq a (angle p2 p1))
# o. W) B" x$ d; y0 w4 Z3 x5 } - (setq d (distance p1 p2))
# r/ l/ c9 O1 F$ d" b- b# p - (setq p4 (polar p3 a d))
- T4 f2 X8 z9 T, b4 R& M2 `- W9 ^ - (command "OSNAP" "none")1 Y8 z2 Z! R9 ?( P) g D7 P$ `& q
- (command "erase" "l" ""): {! T$ F% a" W" g0 A) a- Z
- (command "pline" p1 p2 p3 p4 p1 "")
1 \+ F+ j/ x1 }1 G" j# J4 ? - (setvar "osmode" om)
! ^! I8 n4 Z7 u, P f - )
1 G; F4 ?1 O5 Y: i - / l4 y/ D. @' ?, s, E
- ;VE LUOI COT4 d( |5 y# f' M- N5 ~3 l
- 4 q& E5 M( n( n/ r2 H; S/ K9 {
- (defun c:LuoiCot ()
; v- l" C9 {7 F8 U - (setq om (getvar "osmode"))
/ B8 t: m" ]8 ^: T1 K - (setvar "osmode" 0)
5 q! k5 R# V* h6 ~4 J7 h, n/ b - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
8 g& @5 `* S* K& Q T - (setq p0 (getpoint "\n Chon Basic Point:"))
* z/ T {. g _) E8 B: v7 h$ v - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))! t2 U3 k: g4 S
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))# f; D! q: ]4 ~: _
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )6 R$ `, Y9 r L
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
% u+ [ B1 e2 X3 i" z - (command "rectang" p1 p2)
2 a0 a/ f& j. R+ M- D4 v: @ - (command "hatch" "solid" "l" "")
. L* {( f0 M) z4 t, w - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
" G9 l3 a: ^* E3 A; j - (setq nn (getint "\n So buoc cot phuong ngang : ")), R. Y+ z e. ^* V0 H4 O( h
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) ); ~/ D. M0 h% u& ?" D$ k
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )8 C6 w2 @! S# I8 I4 U
- (command "select" "w" w1 w2 "")
" v: S V# Z( b" O9 {& b* t - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
8 z+ z- P" H9 l* x3 O) `/ B - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")* P% J: I) z& F; ]4 M( m$ R ^
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))) Z6 a) Q* B6 F/ q3 g
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))) ]* u: ^9 r/ [7 K/ @! E; w+ z+ B
- (command "zoom" "w" w1 w2)
4 ~& l0 g* W9 h$ @# p. n ~0 k" g - (command "select" "w" w1 w2 "")" Z" c* z7 r: ]% ?7 Q6 a
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))4 V/ p0 i6 u7 A
- (setq nd (getint "\n So buoc cot phuong doc : "))
+ o9 {4 _' l5 L7 E0 e, J- G - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
, E# o+ h* y; l1 ^8 b- c$ u - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")# P$ k9 o8 ?. |8 Q9 {2 \8 X2 f# u/ r8 e
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )5 \! ]( N* c( k% O+ P! ^% q4 c
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
* R: R; ^) r/ v8 \# Y% m& X - (command "zoom" "w" w1 w2)
% `0 M6 ]7 `9 h1 m7 ~8 I) ], N - (setvar "osmode" om)
( s8 {: T2 x' e: `% K; o - )$ c3 U" H* p) i, E' a" B
5 l5 Y8 ]5 d7 {6 h3 k% N \- ;VE CUA DI
H6 q ^4 A0 Q8 @5 j7 f( W
+ {* t$ |7 k6 b+ ?. P; J# B- (defun c:cuadi ()
0 }6 a) r# _6 G9 V3 K9 E; N - (setq om (getvar "osmode"))
/ l; o% G+ d# |7 i9 f - (setvar "osmode" 0)) Z/ K7 [7 E2 p# }- L
, ^0 O# q w, [4 o) k- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x=")), n6 v5 [; ^$ U1 K/ c4 s
- (setq b (getreal "\n Nhap be rong cua : "))
' Z6 p1 s4 Y6 l0 `0 N* C, | - (setvar "osmode" om)& N+ |2 L+ e5 P
- (while (< 0 1)
) {! T4 R s: k( |( G# s% m0 a% c - (progn7 n0 a: \8 r" _6 {1 V, P
- (setq p0 (getpoint "\n Chon Basic Point:"))
, t6 p' ]- U% ~, E. y - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
`7 R+ J+ y" T* u - (command "osnap" "none")1 A$ v3 ^( J/ {9 {7 @- y* y
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))3 @& {7 `( G5 p! ]: E
- (setq a1 (angle p0 p1))) _9 o3 f5 e* r. N
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))7 U- M: B/ F0 \1 |6 y, f- i" v
- (setq a2 (angle p0 p2))+ K- c4 B; W2 T6 T7 w' P
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
5 ]3 N) y( y6 h9 r# K) { - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")! F; k4 u: c* I3 p& q. X8 \
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi)); C% ?$ J& r. e: H3 \
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) 2 F+ _; @2 m W' Z+ S5 d
- (setvar "osmode" om)
1 {- r" D5 f, ?& P - ))
8 u: y* |3 G* U, F - )4 I, _% J+ q- @& L2 F7 L) R7 L: y
4 b! d& {) ^7 U$ Z4 A- ;VE CUA SO C( s, }' w# [' S" C5 I
- ' i7 C: g" j1 f! {* w+ [5 j; a
- (defun c:cuaso ()2 z2 s% s- D w' m
- (setq om (getvar "osmode"))
+ T+ E( s8 t9 X) C3 O2 [2 f$ v - (setvar "osmode" 0)$ \# u% Q+ { \3 f
- ) l; `6 Z5 T6 U% j
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))1 k! m# q0 J4 S; F
- (setvar "osmode" om)
4 z5 I# U' p- d" @: G8 O - (while (< 0 1)
9 |3 r! B( l7 [6 e/ _ - (progn
, ?( a1 b3 h6 o9 p6 _ - (setq p0 (getpoint "\n Chon Basic Point:"))7 j* L; J1 q' e2 C$ u4 H
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
, w; N# Q2 Q" N& U) \, f - (command "osnap" "none")
: C' f: _0 I: a9 {3 c2 }4 D - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:")). e. ]; [2 V5 }2 U$ {7 T6 m8 T- X
- (setq b (distance p0 p1))
, k6 O& W* z6 X+ l) b! h$ u) ~: B4 f) |/ r - (if (< b (/ (* hstl 600) tile)) (setq du 50))! G }& ^5 y' y. O4 @
- (if (> b (/ (* hstl 600) tile)) (setq du 150))7 x1 A) F6 h7 w b. a
- (if (> b (/ (* hstl 1800) tile)) (setq du 200)) o* R. |, J/ ~, D
- (setq a1 (angle p0 p1))
: e$ r7 z y1 r, X( `% k5 b6 |# O - (setq a2 (angle p0 p2))
- Y1 s8 l4 x3 r+ r! o - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )' l! J/ M3 ~9 k# y, n- q
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
- S8 T: v# F8 D7 | - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )% x" F$ V5 g0 p
- (command "pline" p0 "w" "0" "0" p1 "")
6 w2 [. Z4 L4 v E7 e. d$ J - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) ""). R3 Z" L3 `8 v3 r
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
- ~4 B- X8 C1 n3 k4 q - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) & L2 U$ @* a# M$ \" W5 M9 p4 ?9 l( y6 j
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")% ]* Z# C: @& e6 f8 x# d& @& t% V
- (setvar "osmode" om)
& M0 t. @6 S" _0 z - ))
! ^8 u( s: B" @; ]( P - )
0 _1 x+ P" }% ?! Z - $ N( r& W1 i0 p1 s, x/ g' M
- ;;;=== General Utility Functions ===9 {! u9 m4 g$ d/ \
- - B: s. J* H! H' [/ i7 @- p: @/ r
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
" ~* |* g7 ]0 U" u5 H# z' J5 T( Q - ; ADS function. Now it's a simple AutoLISP function that calls the 4 n) u& l, L( c- \/ z5 u; ^
- ; built-in function (help). It's only purpose is R12 compatibility. " H$ I+ i5 s( f( b
- ; If you are calling it for anything else, you should almost certainly
& P, a6 M9 h: h- m0 h - ; be calling (help) instead.
& p4 p2 G, V! Q6 A3 t) H -
2 `2 b2 T8 R8 O. R& p( q - (defun acad_helpdlg (helpfile topic)( v6 J6 X" G |2 A. |" r5 r" L
- (help helpfile topic)9 w6 U4 G. J6 F* J7 \' c
- )
( h+ B9 k+ m, x! p# v' k* x
% N, |- [+ s% y2 r; I# X
. f0 ^0 b' |9 @- g8 c& g1 I- (defun *merr* (msg)
# @5 c l4 u* P - (setq *error* m:err m:err nil)
4 O1 @1 F6 z+ d7 k; i" v4 W0 n - (princ)* a" A' w5 @8 I% Z Q, w
- )
( e) x' {* u1 T( Q4 Z - 9 v; `5 k$ V8 A4 h
- (defun *merrmsg* (msg)
, h6 r' f2 M9 `; [! D' P O& n - (princ msg)
3 w/ j4 L5 ?0 D - (setq *error* m:err m:err nil)
* A+ T2 A, O/ [3 b - (princ)
+ y5 k' B7 v4 v+ X6 V - )
, Q0 G2 y- U; ^+ p/ M+ Q2 y, a - - ~8 g, \7 }8 b& u& g7 b) B! F
- ;; Loads the indicated ARX app if it isn't already loaded3 h( k9 h4 Z" C3 u% |$ }( N# j
- ;; returns nil if no load was necessary, else returns the
$ k! v0 J% l- S. h$ S - ;; app name if a load occurred.3 S' N6 _8 `) S( G9 f2 H
- (defun verify_arxapp_loaded (app) ! N% n5 } c) L$ T. b
- (if (not (loadedp app (arx)))$ _! V! ?2 ?( p; }5 z% ?7 r# q. Q
- (arxload app f)
6 X+ n; i5 g1 \: j0 v - ): [9 Y$ R0 ~5 Z
- )
% [, M! ^8 {( s+ n& W - * S9 `& M& ^4 G6 ~9 W& [! e- d5 u, ?
- ;; determines if a given application is loaded...
" u) a2 e! c/ |0 N9 P. j! k" X - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or.... l, o' {; W% Y, y
- ;;
/ y$ A( B+ ]% {! Q3 \, X - ;; app is the filename of the application to check (extension is required)
' N! i' y" M8 h+ g& I - ;; appset is a list of applications, (such as (arx) or (ads)
: G, J# d9 P% s$ a' h - ;;
/ M" ]' k ~7 K, c/ Q - ;; returns T or nil, depending on whether app is present in the appset" r% v8 z" D4 R
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
% F& O' U( h, Z8 b' @/ W1 l - ;; Also, if appset contains members that contain paths, app will right-match, P* g T; o0 P8 [ @( @
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
( [$ g4 m( z% R: S) `+ O+ x - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
6 J6 y8 O) g, }. ]8 ^& c4 ? - (defun loadedp (app appset)# z. c; E6 e) U" [$ w; E5 G0 }
- (cond (appset (or
9 i9 ~1 w# R# U4 O$ o: P - ;; exactly equal? (ignoring case)
' {; u$ H8 @* A9 `6 e - (= (strcase (car appset))+ r* r* a- m4 l+ I
- (strcase app))% F. ^9 e- s! }
- ;; right-matching? (ignoring case, but assuming that
% q7 z h- e5 L4 W - ;; it's a complete filename (with a backslash before it)) z' k: x1 n9 e& p; I7 C
- (and
8 P8 c$ o9 g! ?9 H, v - (> (strlen (car appset)) (strlen app))7 R1 g9 a8 {/ E
- (= (strcase (substr (car appset) $ a$ a+ ` b, P
- (- (strlen (car appset)) # U2 w/ d" X& h6 m* e4 R
- (strlen app)
& Z3 Y) W$ Z& T - )
5 M5 \5 m# \( X0 r2 J - )/ p- G+ \, |8 R+ n( V* \6 z
- )
4 n4 [! ^0 N$ [9 m8 _4 M5 r - (strcase (strcat "\\" app))6 H) i7 I b! J% w6 D( K
- )
( j6 a3 F! V% L( p' _% V - ), C& U4 s) l$ J
- ;; no match for this entry in appset, try next one....
9 p. M5 p7 _3 @$ T- Y( \ - (loadedp app (cdr appset)) )))
3 S6 P4 [3 A; ^. q - )7 `! j9 |* v5 X+ t; m4 X7 \+ C
, q, ~6 r" J) T( |! w! b- @! K- 3 Z' ]& [7 ]3 i/ L, O$ A
- ;;; ===== Single-line MText editor =====+ g2 C+ R! [& N- {! @; m
- (defun LispEd (contents / fname dcl state)6 W" W. s9 j; `& {+ |2 u9 t
- (if (not (setq fname (getvar "program")))0 O* h8 R3 A2 h. Y! ]
- (setq fname "acad")$ Y5 r# h! r# R! s6 ]3 `' {
- )5 ^- T1 L( M( T) V5 k& j
- (strcat fname ".dcl")* W" E4 H f) T; ^; l# D
- (setq dcl (load_dialog fname))6 y1 h/ D8 v: M A8 C1 q* |+ p
- (if (not (new_dialog "LispEd" dcl)) (exit)). A" }+ z6 f' j/ |! q3 u& j; Z; H3 F3 {
- (set_tile "contents" contents)
- B( W) h' N, ~& R- K( ~ - (mode_tile "contents" 2)
+ y1 Z' W. s0 M# Y! | - (action_tile "contents" "(setq contents $value)")) w! z7 B6 Z& l: n; M
- (action_tile "accept" "(done_dialog 1)")
9 O) X3 e# u$ h W7 M* E - (action_tile "mtexted" "(done_dialog 2)" )7 c+ J/ m" u% F& Q! d
- (setq state (start_dialog)): n+ R5 @ r5 h/ x& C
- (unload_dialog dcl)5 t, e5 F# Q% X7 C- M
- (cond
/ \+ Y3 t/ L+ c: d3 J6 X& Z' v, [' f - ((= state 1) contents). v) s+ ? q( S2 X
- ((= state 2) -1)* X0 \+ }6 l3 w. s" a
- (t 0)
, p9 M! R# H \- D8 M P - )
! p9 h3 j8 [* P6 I# B+ h - )* `2 k" e; X% t1 q1 F: \
6 P& A, D* B1 [( X% @% g- ;;; ===== Discontinued commands =====
( @/ l- Y8 W0 j( m1 N! V- G - (defun c:ddselect(/ cmdecho-save)
5 m3 ~2 j) q6 C# w3 ? - (setq cmdecho-save (getvar "CMDECHO"))
/ \ Q& W+ ^/ B# U - (setvar "CMDECHO" 0)+ ?4 Z( Q7 b9 W3 p& z
- (command "._+options" 7)
# H8 _3 ^2 e" _! v% l - (setvar "CMDECHO" cmdecho-save)
! {4 u- h8 y" ^5 {6 Y' @9 T - (princ)
X, ~2 C6 k+ E. D- L5 T; L+ l - )
7 }3 f7 T% d4 p" x. Q ?0 c8 V# O1 \ - $ d$ i& `2 n7 w% l
- (defun c:ddgrips(/ cmdecho-save)
1 ~ J8 @2 U" Z0 L6 G - (setq cmdecho-save (getvar "CMDECHO"))
; ]$ C6 D, W/ x" y4 z - (setvar "CMDECHO" 0)( {$ |% M$ Q# Q" C4 g' y
- (command "._+options" 7)
" R! f( E% [: H0 O, R) W: C - (setvar "CMDECHO" cmdecho-save)! f+ M0 R& U8 m7 F& S' [
- (princ)
$ I) d' x8 B6 c% H4 { a' X. n - )
7 {6 Y9 I* X `+ w
5 u1 {. x4 @+ l6 |; ?0 \" M9 I/ B- (defun c:gifin (). ?$ d1 o2 x* I c- D1 B- b7 n
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
6 {6 ^. _, B$ s7 d9 I/ g, ^* p - (princ)$ x$ e, Z7 q5 `" T7 B' l+ S
- )4 S. E& f# J$ ]4 X6 t( O
- - f' B! {5 ^ W+ ]% Z* D0 t
- (defun c:pcxin ()
9 u$ A! j: R7 W& K( g$ M - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")( `- u* L: q9 H; h5 V3 z
- (princ)( u1 Z9 k; v, v& u+ Z" m/ j
- )
: _' ]8 J- o$ l. p) }4 C. g
+ M4 S2 m s: e# P C- (defun c:tiffin ()+ C g- _! f9 j- C: c, A- z
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")4 E5 q* ^3 Z7 ~% E/ D4 Q4 Z2 b- K, W
- (princ)
w: L6 O" ]) D0 Q; f" s1 e7 I - )+ Q! y8 \+ i0 B2 k- ]/ J
Y' t, m$ l# u) s4 S( P# @8 b- (defun c:ddemodes()
9 K- p/ y! y5 @! }, T - (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.")+ k. Z; H. g- X# z: M: P3 ~7 f
- (princ)
* \% b4 }% b0 S) F' u, G* k. {: e - )
) C2 j# U0 j: s$ y, Z' g
2 Q% P3 _2 L# J' t" x- (defun c:ddrmodes(/ cmdecho-save)* u H, w0 }! X: K0 }8 C) C0 D6 V
- (setq cmdecho-save (getvar "CMDECHO"))
( t1 K" B% ~* r4 b0 b3 Z. U- X - (setvar "CMDECHO" 0)" Q' T+ p( _+ B! }# C/ e
- (command "._+dsettings" 0)
0 N) U: R5 v+ ] - (setvar "CMDECHO" cmdecho-save)
4 o- H' `2 P4 D2 [( w - (princ)
7 R) R& o( _( W - )
: i8 q/ m% a3 O4 G8 q - 2 H' y$ i! Q7 q" n
- ;; HPCONFIG
) L5 u+ S1 ?! D* ^ - (defun c:hpconfig (/ hlppath)
' Q" h8 ]) K7 K9 H: c5 ^ - (if (not (setq hlppath (findfile "acad.hlp")))
# R9 Z, j/ |- _; k; j- u - (setq hlppath "")): m1 y) {2 e2 t% U* z& J8 j
- (help hlppath "hpconfig"); t- C* O, x' M
- (princ); B# Y+ C" _6 d( r& `
- )0 a9 k1 p2 |8 y- f* l$ `
7 A/ S' x/ p2 k8 N" A. O0 V- ;; OCECONFIG
2 t' Y$ { Z8 [! Z - (defun c:oceconfig (/ hlppath)- Y: {* s3 P& o/ G
- (if (not (setq hlppath (findfile "acad.hlp")))
8 q9 T1 Y" E* G! `; x8 i - (setq hlppath "")); c: g7 @- m0 f# Y8 x( i4 W0 Y
- (help hlppath "oceconfig")3 o9 t: D3 k) j0 V
- (princ)
6 Q+ C0 S2 ?' V, ` - )
( i! E" K8 d) }2 M- ~ - % z. `; H. a* J5 O% ~
- ;; CCONFIG
" M: A3 o' V$ H! B - (defun c:cconfig (/ hlppath)
; {# S" ^+ p, S# n2 E4 U - (if (not (setq hlppath (findfile "acad.hlp")))
/ ?9 n( D" k- E+ T - (setq hlppath ""))
V* x* K' S' A! q$ F4 V+ V - (help hlppath "cconfig"): I/ S, R$ z8 K+ |( |2 h
- (princ)
; z+ G& u% F- N - )
" h) Y9 {; y9 z* @5 K
' |. K; h2 H8 u% w$ }5 g# c- ;;; ===== AutoLoad =====
* L; }; J1 G6 |% F/ J5 A - 2 z9 j5 Q! a; \" |* u8 r9 g
- ;;; Check list of loaded <apptype> applications ("ads" or "arx") {0 i6 V4 S2 I4 ?
- ;;; for the name of a certain appplication <appname>.$ X% l$ P* s- n# [' E
- ;;; Returns T if <appname> is loaded.: [% d& N9 V* C
' \ {, l+ j0 ~- q1 C5 H/ K! W a) }- (defun ai_AppLoaded (appname apptype)) X" K5 V- n6 m N6 t i7 j; L
- (apply 'or
8 Z1 c5 }6 ^8 H* t7 K6 X - (mapcar 7 D! _. Z9 O8 m- r
- '(lambda (j)
- ~8 Y- h7 J0 ~9 w$ [# a6 V - (wcmatch5 @" X; z ^( s
- (strcase j T)" I# w5 G/ M7 X2 V3 S
- (strcase (strcat "*" appname "*") T)+ ?6 W8 x8 I) i# X( o4 E
- ) 1 o# j% b2 C+ \+ X' q
- )& O. Q( K4 D4 L, }
- (eval (list (read apptype)))$ ], R4 G$ R8 [& e, i- ~0 H S! _
- )
) _3 F! R* J+ f3 a w% E - )
2 W9 h9 o, e% @2 f( z/ C2 u/ M - )
( [, F: U) r6 E' F6 G0 x
' e8 p- m" Q! S6 E. F6 s2 I7 f- ;;
- Q/ P1 Q, ^$ ?9 c - ;; Native Rx commands cannot be called with the "C:" syntax. They must R" Z4 @4 [3 {% q- m3 Z' P
- ;; be called via (command). Therefore they require their own autoload
6 q/ @4 S) h- E$ g - ;; command.
* P& |9 ~+ C _ O
8 y1 f9 j+ N5 M/ ~2 I- (defun autonativeload (app cmdliste / qapp). U- n9 S, P" O( i: G: {) Y: e
- (setq qapp (strcat "\"" app "\""))
. M, n/ x7 _0 T- I5 c% [0 s a - (setq initstring "\nInitializing...")/ n; d! Z, O" S5 P2 y) \7 Z
- (mapcar
% }1 }9 k9 z. X& S: o - '(lambda (cmd / nom_cmd native_cmd)
7 h8 a' I0 Y4 }, k6 j$ Y - (progn
: [! c/ q& j+ S A2 K* P% H0 _5 e - (setq nom_cmd (strcat "C:" cmd))
( Y5 A8 }3 G8 g4 d+ k - (setq native_cmd (strcat "\"_" cmd "\""))
7 M* j5 s7 D2 `" r* w - (if (not (eval (read nom_cmd)))
) g- u% |& d+ v( y - (eval1 w4 \" b% j4 W! a" q( i
- (read (strcat, V2 C' X, Z: c/ R% u8 r
- "(defun " nom_cmd "()"
, ?+ U. ]" d+ O6 ~ i- Y! @ - "(setq m:err *error* *error* *merrmsg*)" r1 j7 |% B y2 K
- "(if (ai_ffile " qapp ")"1 l# @, f5 ]( R. T( N" z
- "(progn (princ initstring)"
% j% Z$ _, n4 U, r3 ^; V - "(_autoarxload " qapp ") (command " native_cmd "))"4 S$ E6 ]0 l5 Q! m i
- "(ai_nofile " qapp "))"9 n8 F4 b# Q# c: f- Y8 ~9 G
- "(setq *error* m:err m:err nil))"+ i& S8 x2 y O' w4 r1 t
- ))))))
; S1 [2 V3 z7 e. x2 ~* l - cmdliste)
& b; j" I' T8 M4 P1 Z: k - nil3 W# y5 q+ T, p' e
- )
6 k* m1 t: d! {, g - + y1 B3 p$ o' x/ m3 A ] r* m
- (defun _autoqload (quoi app cmdliste / qapp symnam)8 p) c, r! D8 K1 ^; ?. X i( H ]
- (setq qapp (strcat "\"" app "\""))- M8 c5 J" i1 |% d4 Y) R
- (setq initstring "\nInitializing...")0 m9 I! R5 T6 h3 i2 H
- (mapcar
( s$ G2 i/ t `# w - '(lambda (cmd / nom_cmd)" X# a b9 Q2 O4 K' i8 V' s
- (progn8 X' w1 ^& ~8 c- a% ~+ a
- (setq nom_cmd (strcat "C:" cmd))
+ G7 F. L' U( ]8 P) a7 u |0 e - (if (not (eval (read nom_cmd)))' Y+ H9 O& j6 L( g1 i6 x- A Z
- (eval
7 c/ I' |: S% G9 x! T - (read (strcat
& w$ w! ]; J( b1 h6 B7 N1 L - "(defun " nom_cmd "( / rtn)": k! F' q/ K. h8 z( {5 B v
- "(setq m:err *error* *error* *merrmsg*)"
+ x$ Q3 T2 y, p. {7 L - "(if (ai_ffile " qapp ")". r* }5 `3 s/ J
- "(progn (princ initstring)"! e, q9 F; S1 Q3 C: N
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
# R- o" X4 M9 q9 F$ ~ - "(ai_nofile " qapp "))"$ ~4 G7 b5 m; J4 v
- "(setq *error* m:err m:err nil)"
* T# J4 r( p+ b( o; m* R - "rtn)"2 e; r7 a9 C& M9 f
- ))))))3 k2 x0 R! z" I, E
- cmdliste). h2 w0 G! V* m) g& @+ d2 b1 D }
- nil0 u9 w. f. l# [# m8 E4 g) ^; H
- )
/ L6 ]# B" t a6 T - ; R' T" J4 A" ~+ J' c3 b, p6 b( a
- (defun autoload (app cmdliste)5 t( u6 W& k' O* C- y& z. @
- (_autoqload "" app cmdliste), j A1 F3 c: p' ^
- )
; f4 h% F4 L3 z( X! `. J - 9 h* l6 ^+ I' R. I; ?
- (defun autoarxload (app cmdliste)
5 Q' K6 ^. o) n* s3 F - (_autoqload "arx" app cmdliste)
5 v% P) F5 E7 J9 Q- `: T* W - ), X9 [$ _; J2 P, E; K S
5 R8 ]7 C$ p( e0 Z- i- (defun autoarxacedload (app cmdliste / qapp symnam)
" W- F. m9 p l0 m - (setq qapp (strcat "\"" app "\""))
# W7 a7 W* e# ?0 k3 w+ O* C - (setq initstring "\nInitializing...")
; x2 v& a# ? A* d% ` |6 v - (mapcar
9 M# x, g: ^) i! ?! u- |0 r - '(lambda (cmd / nom_cmd)' P, G; u5 N# c7 _* L5 u: j
- (progn
# Q' B$ u+ p/ d# u1 q+ W - (setq nom_cmd (strcat "C:" cmd)) H( D! @3 z# E
- (if (not (eval (read nom_cmd))), G+ {1 P8 [& A! z$ D. r
- (eval! o) f7 O' `3 J9 P3 W! N6 W! _' ~
- (read (strcat
, |7 t/ E5 Y. P/ g0 T - "(defun " nom_cmd "( / oldcmdecho)"
4 v- m% f) C# r* C% [! d j5 f - "(setq m:err *error* *error* *merrmsg*)"& Z( V z6 Z6 Y+ b3 w% ^
- "(if (ai_ffile " qapp ")"
8 F+ A3 K- p" |8 [: X3 Y) l - "(progn (princ initstring)"% V# a6 i: n ~; o' a3 E- C
- "(_autoarxload " qapp ")"; }3 m5 t0 U8 w- y& Y
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
6 B: y3 ` l- f - "(setvar \"CMDECHO\" 0)"
2 O1 X7 W0 z$ d; D! g* u - "(command " "\"_" cmd "\"" ")"" d* r! `& E! U
- "(setvar \"CMDECHO\" oldcmdecho))"! z0 ]: ]& D) F' `
- "(ai_nofile " qapp "))"
. q I; L, ~, B; n$ m- f - "(setq *error* m:err m:err nil)"
& E4 ^' A) ]$ I G9 Y0 X - "(princ))"/ }) Q$ p# y/ Y. [
- ))))))
# q& S& _9 y+ ?" G# k - cmdliste)7 a, R0 r6 i7 Y, v# p1 ?
- nil" ?5 ~% J4 }9 u$ c
- )- T+ h" k n1 Y* C
* Q! v+ U( p5 E: D- (defun _autoload (app)
2 u$ T6 b2 N4 \* `( g) g# r - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)% B: m1 X/ B1 C
- (load app), J9 c1 f- Y {1 @( K
- )- H$ ], i$ w" {1 c! R" J
3 k% N4 Q5 k- } f, c" c- (defun _autoarxload (app)# A# G" d* B! B5 l, u" S
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
; j& y6 r. L2 A9 C4 |3 K4 e% R3 ~ - (arxload app)7 \/ x3 n/ ~3 s& ?& Q, e, @6 _8 `
- )
J0 M% b2 O# @# ^8 h c1 F8 W - ) m' B4 S% J; l l# S$ _
- (defun ai_ffile (app)9 k' `3 A: l8 }
- (or (findfile (strcat app ".lsp"))9 \# g* ^ E! c( b
- (findfile (strcat app ".exp"))8 e0 l' ?$ U9 B5 @
- (findfile (strcat app ".exe")). R8 F1 D" h8 k1 Y8 ^: o
- (findfile (strcat app ".arx"))
: r/ N* X5 h$ m( y6 j4 g3 T - (findfile app)3 B% J' ?% F% l* }+ }% A# H
- )
% b( p. ]7 \0 u: p Z& v4 U" s - )8 u' j3 W, |/ `% R0 g- X
- ) S0 i* Y9 P4 S }% _ B0 F
- (defun ai_nofile (filename)* @/ K) F5 V/ g+ K
- (princ
+ M) G, l# b1 s - (strcat "\nThe file "0 K& W" I) Y7 j# Y
- filename
# @: m$ N3 `% K; M/ X - "(.lsp/.exe/.arx) was not found in your search path folders."9 L3 c& E! c1 f
- )( I! [, |9 M$ b" m( T
- )
! K/ u" c" B. n0 C9 `2 w% q9 W - (princ "\nCheck the installation of the support files and try again.")
. e, W* A" t3 f0 d: ~0 E1 p - (princ)
I- l. p( E2 S+ ^0 ~ - )
# N. f' @) V) k1 Z
7 |4 c5 W/ q; C/ e# }- ) Y0 D+ z- k: Y2 Q
- ;;;===== AutoLoad LISP Applications =====
0 s, }* X3 d8 j - ; Set help for those apps with a command line interface
8 i+ Z' e/ Z+ q+ Y/ |& w
2 d- ]7 w; q7 e; T: m9 {- (autoload "edge" '("edge"))
3 P6 G- _9 C. }( l7 G - (setfunhelp "C:edge" "" "edge")
0 v# V8 ^9 s) w3 Y. D - ! S2 |+ e* P& }1 r
- (autoload "filter" '("filter " "filter"))
, w2 |4 }% e1 z, P3 h5 t$ K3 b
- N1 T# Z' @, W3 _; j- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
# s: D6 {& K6 ]) H6 u( u0 \7 @ - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
5 d% E3 D5 j$ `# j% \" a - )
7 s9 {' [ f) t4 Z+ s( s; g - (setfunhelp "C:3d" "" "3d")
$ S; v, ?1 P7 J8 q - (setfunhelp "C:ai_box" "" "3d_box")
& C( j& s* O E' X$ o1 y3 i - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")/ B. O" u5 f! I4 ] s, Y
- (setfunhelp "C:ai__wedge" "" "3d_wedge")
4 n) d8 G$ p2 X - (setfunhelp "C:ai_dome" "" "3d_dome"); C7 P7 l4 J8 s* m& n: F9 C
- (setfunhelp "C:ai_mesh" "" "3d_mesh")
! S0 ~1 S* |- `8 Q - (setfunhelp "C:ai_sphere" "" "3d_sphere")
# }3 x( n2 E+ _ A j% `5 v" b - (setfunhelp "C:ai_cone" "" "3d_cone")
( g# v7 ~6 F& T0 d/ _# | - (setfunhelp "C:ai_torus" "" "3d_torus")+ t- b5 O) |- L9 b/ |$ Q1 G0 W
- (setfunhelp "C:ai_dish" "" "3d_dish")
# q( D/ P/ t5 Y6 m/ j8 r3 B - ' h3 r- z g4 B6 b: m
- (autoload "3darray" '("3darray"))
% F; y* z! {* h! t4 U) o# v' n - (setfunhelp "C:3darray" "" "3darray")
; ^* \9 I: i8 Z/ d/ g, H6 I
' H3 z+ O5 _2 |3 E* i- (autoload "ddvpoint" '("ddvpoint"))
]. c( Y# o, M# k" B! }1 r
, x" \4 g" k0 \- s. D- (autoload "mvsetup" '("mvsetup"))
. ^* n; u; |2 p* w. U$ k - (setfunhelp "C:mvsetup" "" "mvsetup")
5 a5 Z2 L2 W- M* y+ \$ L- r. A' }% v - 1 _, h4 k% T$ F
- (autoload "ddptype" '("ddptype")). a$ v1 P2 e& c3 S
- - W9 [2 R7 L% W1 X) K
- (autoload "attredef" '("attredef"))
- G% M/ G! S9 p y - (setfunhelp "C:attredef" "" "attredef")
# B; E3 F* v' I* k1 C1 _
* ?$ U( C" v$ T3 U2 e; k- (autoload "xplode" '("xp" "xplode"))
0 ?6 H4 r6 m% q& m2 ] - (setfunhelp "C:xplode" "" "xplode")
+ F/ t' i, c4 [' I
# D% D0 }+ }8 o& ~9 x1 s- (autoload "tutorial" '("tutdemo" "tutclear"; m, n/ Z2 g. a. f( u; {6 H: j
- "tutdemo"
D1 n, w4 \* C) e! [' m - "tutclear"))& N6 R' g8 S. Z
- 2 r3 `* p- u+ m7 G. Q2 G; i$ D( f/ @4 ]
- ;;;===== AutoArxLoad Arx Applications =====1 x% O# D& k4 R! d8 l# L
5 r/ c5 U# n5 h: Z# h: n/ I) {! H0 [$ ^- (autoarxload "geomcal" '("cal" "cal")), H! P/ \6 Z0 l( r0 F: ~
- - j( `6 C8 w9 C, }
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"* g/ w4 b. [2 q1 }6 F2 e
- "mirror3d" "rotate3d"
% h6 V# v: p% ?' P o8 o2 O - "align")); u3 s% A3 q* b/ ]
N( c9 Z7 H7 p4 u1 B- " a% `) `7 N/ B* u7 S& l Y
- ;;; ===== Double byte character handling functions =====
& Q5 }2 X1 a! w! U
' o, A e0 w1 w) e$ t1 P; A4 T1 C- (defun is_lead_byte(code)
6 d4 V- w+ r0 \0 z+ w! A - (setq asia_cd (getvar "dwgcodepage"))
, _6 ~( o9 U; M - (cond
, Q& i/ Q6 m& K" g8 j( |6 _ - ( (or (= asia_cd "dos932")% Y. E- [# P, m
- (= asia_cd "ANSI_932")9 ~2 D2 e$ ^8 I2 {6 {6 n- Q( p
- )! ?9 P+ c4 l7 Z' ~$ Z
- (or (and (<= 129 code) (<= code 159)). k* q9 }/ Q5 v# i% a: R
- (and (<= 224 code) (<= code 252))
9 }* }. _6 }& r5 B - )
8 A! i& N! \2 |4 J3 @" t* w9 d& C - )# D+ Q/ E$ _4 ^. B8 ~1 Z3 c
- ( (or (= asia_cd "big5")9 }/ O; f# i7 y
- (= asia_cd "ANSI_950")
; O- R5 o5 a0 ]) x# l; { - )
" f0 o* \) k; _3 X# r# X9 K3 r - (and (<= 129 code) (<= code 254))
1 c8 p) m9 u8 b; n' ~ - )
+ @- ~* E/ ]) Z, N - ( (or (= asia_cd "gb2312")
% [) Q x/ n9 m8 s' b) m - (= asia_cd "ANSI_936") e/ @5 X+ o' ~( [8 v& C' F
- )! N2 j" x4 X2 P+ i. p. r4 i
- (and (<= 161 code) (<= code 254)); T( B1 y) h% v3 U# ?) z# M8 M+ l
- )# O1 @; U5 Z% l' P
- ( (or (= asia_cd "johab")
b$ Z' ]6 P" U4 b+ D - (= asia_cd "ANSI_1361")$ p/ v2 Y) K) F" }# j7 Y
- )
0 X' {3 O. y& f5 N- ?+ w8 s% ^ - (and (<= 132 code) (<= code 211))8 K/ L0 F$ n4 T0 f
- )
1 S3 \8 |" P; s7 n/ x1 a3 F - ( (or (= asia_cd "ksc5601")
5 {8 \. J7 b7 d3 e6 O - (= asia_cd "ANSI_949")* Q4 m$ `! f0 n/ Z, M
- )! C7 p7 {4 B# Z# `7 o4 V
- (and (<= 129 code) (<= code 254))& ?0 z% }7 K5 p) |0 j) t
- )
/ f/ ?& {! a7 R- J9 X5 n - ). |" K( U7 G3 _* M
- )
3 I) X& ^9 X* Z' d% r, C% T - $ x- C% Q$ u! h7 q! i9 o9 R+ W& c
- ;;; ====================================================
( I' S! m, w0 ]- ]" P
; J6 F5 L9 e* `6 h4 S! X6 L- & B7 ~/ q; d$ m% W, P% [- C
- ;;;3 G6 _7 C# x* s" j! `3 s4 q
- ;;; FITSTR2LEN2 p2 c7 R. ^' k. E2 L [+ ~
- ;;;: {* I7 ^" E9 g7 m- d( _; @
- ;;; Truncates the given string to the given length.
% ~ h8 a0 q7 | - ;;; This function should be used to fit symbol table names, that: V- {9 F; V( g2 C! A- s7 D. W
- ;;; may turn into \U+ sequences into a given size to be displayed
8 U- i% B/ z ~5 Y/ ]1 E& H1 l - ;;; inside a dialog box.' T$ u$ }4 ?! E+ g
- ;;;
6 M A! H* r9 U# \4 g - ;;; Ex: the following string:
" h( p s( b+ B - ;;;
, y4 k4 l6 V9 J4 X; O. P+ H1 t - ;;; "This is a long string that will not fit into a 32 character static text box."
- g1 _9 G9 v( y q) N7 V - ;;;
8 `# D' I" i" v& E: l0 g) K - ;;; would display as a 32 character long string as follows:
6 S) E1 R8 t7 v6 h- J) ^ - ;;;3 `& D' T2 p2 Q7 v# x& f! H
- ;;; "This is a long...tatic text box."
; c" y! a" n+ g; U) y* k* [$ b - ;;;, m$ x4 ~9 s! O# {9 R
- ! R: N7 c& a3 d j$ J/ U6 k" [
- (defun fitstr2len (str1 maxlen). C' q# H$ d' p8 @
- 7 T3 g! Y; S( [+ @% D
- ;;; initialize internals
- }+ ^, ~: B0 h% H- \ - (setq tmpstr str1)$ B2 q4 s. `) J* x3 k1 e# b
- (setq len (strlen tmpstr))& A7 b+ l5 c, W' s3 V( P
8 w0 i- D) E! T. D( ]6 q) q1 p, C9 p- (if (> len maxlen) 1 [5 o0 E5 D" M/ N% ]! V
- (progn- {! |5 q- i% {3 u
- (setq maxlen2 (/ maxlen 2))$ `( v% F% z- H$ O
- (if (> maxlen (* maxlen2 2))
8 X7 f1 l" X+ G8 J+ ?1 O1 r - (setq maxlen2 (- maxlen2 1))/ Y5 T2 a$ A; f$ p" V' h' r% r, b
- )* q" L2 L& f' \( `: I% W/ A
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
. D% B1 O5 N1 ~( B# L0 r( X+ h - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))5 D0 B* N S3 O3 Y
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))- G3 }7 V% X4 y9 q! i
- )
; i! Z; q) k* g0 T - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
+ m' Y( V+ t1 z8 H - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))% q/ n* C3 k. E9 e
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
+ E9 b+ ~7 v1 [ - )
& T* a2 s6 Y1 h: I3 ]) s( Z2 v - (setq str2 (strcat tmpstr1 "..." tmpstr2))' W% k) ]6 Q( t8 @
- ) ;;; progn& N" T4 Q4 a) q
- (setq str2 (strcat tmpstr)): _5 c( m/ Q/ ^$ u6 z
- ) ;;; if/ u" C/ u5 j/ x* Z2 M( T. j+ P
- ) ;;; defun" H3 p9 @: ^' _0 u m
- J9 g; ^) ]/ N' B0 h* \3 s! b- $ f( g9 I7 X! p8 z2 D5 d5 u
- ;;;+ ^) n7 \ S% T2 Y/ r& b1 A* A' e. {
- ;;; If the first object in a selection set has an attached URL
8 n! V2 x8 S- v: b - ;;; Then launch browser and point to the URL.2 g8 M1 ]6 Y* g) q
- ;;; Called by the Grips Cursor Menu
! Z. z0 n: W0 t1 Y5 \( X - ;;;
) d/ f+ n! O: s6 m+ b% e) P4 C
. E) _! @0 H! Y2 c( L0 Y- (defun C:gotourl ( / ssurl url i)
" r) B; r. p: s3 F' p ~2 L - (setq m:err *error* *error* *merrmsg* i 0)( t6 N* {; K7 p7 Y/ W
0 D w) j$ W8 N! Q$ p l- ; if some objects are not already pickfirst selected, & |2 k. a' Y8 G3 M" H5 J
- ; then allow objects to be selected
* T! Z( H( ?' C( w
$ k7 K2 h9 o9 C/ \9 L8 `: n- (if (not (setq ssurl (ssget "_I")))$ x( {! C5 A Q7 p
- (setq ssurl (ssget))( `3 h/ p0 S6 d. b& _
- )8 u) t! Y. W7 ]$ D
( c3 A0 @/ Y7 f* Y( P9 h- ; if geturl LISP command not found then load arx application, c _; }1 E/ d4 _: ^
- 4 W$ e- @: _7 |( `
- (if (/= (type geturl) 'EXRXSUBR)2 \0 [3 Z2 j. [! P! j" o0 o3 A
- (arxload "dwfout")* O! A/ `) f; K/ V
- )
4 p; f5 d5 x% N5 H -
. h0 l3 g/ o y - ; Search list for first object with an URL% o+ v; A4 _, B
- (while (and (= url nil) (< i (sslength ssurl)))
$ g ?' ~; y& z$ ^ W& q" j* n! K3 K - (setq url (geturl (ssname ssurl i)); C! A# J m* }
- i (1+ i))+ a7 V# X: x* A
- )# A- C" G, g1 G0 K: P
8 ~* c% r V4 u0 ?, ~% z8 l- ; If an URL has be found, open browser and point to URL, \* ^% ]. L2 B0 I$ R& v' o
- (if (= url nil)
0 Y+ ~1 K2 B2 p2 u9 H! \2 o' _1 e - (alert "No Universal Resource Locator associated with the object.")
2 a* D+ w; K0 Q' p# A - (command "_.browser" url)! `3 ^4 [' s8 C: Q9 {
- )# M$ N6 @5 F+ F2 y$ ] g' M: ?
- 4 d6 i! }7 e- ?( B/ I/ }
- (setq *error* m:err m:err nil)
* b( ?, v' T0 I- v/ P A: l - (princ)3 p' w* `! D4 @* M8 Z
- 8 G% L( z7 X g+ A0 |1 S0 _
- )
9 Y# u/ X& T" k& n: ]0 |3 M. r; Y - 5 C* r; l4 @/ D, S9 ?
- ;; Used by the import dialog to silently load a 3ds file: Y4 |6 j& S8 \( d2 F! s0 I
- (defun import3ds (filename / filedia_old render)3 Z9 ^5 L& g& a3 J/ C0 ]
- ;; Load Render if not loaded! R: W6 u4 z# n; g# J4 H
- (setq render (findfile "acRender.arx"))
. P+ {- {, f- ?" R, i" | - (if render
) J9 Q7 q/ D9 s- L* w - (verify_arxapp_loaded render)
+ `* H. S4 Y) Z6 z8 n9 ~0 {- s - (quit)! d3 s- q( w, ]$ K3 x' T1 ~1 _; ]" {0 ^* ]
- ) |0 ~ z9 ]' N9 V5 {+ Q
- # a$ C) g* Y5 c, k5 c
- ;; Save current filedia & cmdecho setting.! [: y# n, R. j( T2 m z* q
- (setq filedia-save (getvar "FILEDIA"))
( j2 m/ b7 i; G& a3 V5 ^& t1 { - (setq cmdecho-save (getvar "CMDECHO"))2 p/ ?6 _$ M, w1 ^- J1 _
- (setvar "FILEDIA" 0)
, q+ K% b6 e" F, u! S3 _8 t - (setvar "CMDECHO" 0)
+ \- q1 }" ?; {& _ - $ |% @7 V1 |3 V! Q- v4 ^3 t& V
- ;; Call 3DSIN and pass in filename.
5 ]+ I+ _) i- y1 {( P7 o1 p - (c:3dsin 1 filename)
r5 Q; h5 V/ b3 ^, [5 y
/ B. @+ g4 o6 X, _3 d- ;; Reset filedia & cmdecho" ]* j0 P. O( g1 A; {
- (setvar "FILEDIA" filedia-save)
; \: s4 p4 @" h4 } - (setvar "CMDECHO" cmdecho-save)1 [9 r8 ^; o& ?, e( d
- (princ). N# l4 e6 ^- P# l% a1 Z7 ]
- ); f6 [. L, E0 T# n; p
2 q; W. o' R: f2 U! J" ?8 N8 @- % z6 J+ N' I* s7 ]2 ~, `& _ }7 \
- ;;;=== Menu Functions ======================================
' L* I: X! s: G4 m - & b1 @5 k% c m8 f
- (defun ai_rootmenus ()
; W' ~# Y- c: l9 C- x - (setq T_MENU 0)
I4 _( |4 N8 W' P% A - (menucmd "S=S")1 A4 m/ P' e* b
- (menucmd "S=ACAD.S")0 v. ?# c( @9 x" U4 E6 c
- (princ)
* E3 i4 V$ u5 a( |. x) { - )
" }; w' C: s" W* u) ` - . k: W( u- X$ m" v( M _- e3 G
- (defun c:ai_fms ( / fmsa fmsb)1 N# C7 w R ?' V
- (setq m:err *error* *error* *merr*)
0 C/ [% L0 @8 i) x' X& p* } - (ai_undo_push)
" N; k: G8 E3 s5 N( ?; a - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))+ [% o& m5 K4 m5 A1 t
- (setq fmsa (vports) fmsb (nth 0 fmsa))
& y3 U8 N% `! j - (if (member 1 fmsb)
' }' `8 a: L% f; \& h5 E6 T: s - (if (> (length fmsa) 1)
/ v% \$ |2 o, x# y; z( N) [# g - (command "_.mspace")9 h8 p8 b% g& [9 o: h8 ?
- (progn
$ \$ f: F2 ~/ w" c - (ai_sysvar '("cmdecho" . 1))
% d7 K/ ]$ N1 f8 I; | - (command "_.mview")
+ ~ F% i& _8 w. a V# e' G7 k$ P - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
" _5 ^& x4 m" N) z4 T - (command pause)* c- k% k9 A* M6 M" D, D
- )
! _6 P2 H% R4 {" s. H2 [* _: @ - (ai_sysvar NIL)! b, \% L. h* Z3 f6 ^6 K1 S+ y7 }% \
- (command "_.mspace")! E @& O) Y) ~
- )1 R5 b: h- A- X0 {
- )# `/ Z7 E+ T+ u7 m
- )4 B2 t$ \- c; K/ z) Y% w H3 m
- (ai_undo_pop)
# P( Z5 b I% Y1 P& {( Z. a. U - (setq *error* m:err m:err nil)- Z, C. J- w$ A# E% `) `
- (princ)4 u' c! Y6 B l8 O- k" Y
- )
8 E4 n( r8 b! C4 \0 c - . @) A/ E3 A7 b/ `( ~! @
- (defun ai_onoff (var)
+ d5 ^7 O. i! {8 r - (setvar var (abs (1- (getvar var))))4 _: b; F! R1 q$ [0 k9 P
- (princ)9 t. c. f9 Y1 S4 Z( w
- )8 R4 h( v* I$ l$ o* Z3 ]
/ g$ {3 T/ ^/ w- [/ d/ Z- ;;; go to paper space
! x- n) M6 f. i) @( K) c, \ - (defun c:ai_pspace ()
% c/ O6 R2 V1 W6 J0 d( C/ D - (ai_undo_push)
6 `7 A4 N9 ]( }! b - (if (/= 0 (getvar "tilemode"))5 w+ l5 W. @" v6 H/ q5 [& ]5 }
- (command "_.tilemode" 0)
2 Z. Q: x7 \6 S3 A/ G7 s - )
8 u3 w+ O2 |7 u# K - (if (/= 1 (getvar "cvport"))- U6 t( O, Z2 }1 o% T
- (command "_.pspace")) X- g* V( V: j1 U4 J! O/ T
- )
3 ]3 v: Q# [! K F - (ai_undo_pop)- O% p$ m* v/ W& b2 D @$ r
- (princ). }% Q8 ~+ S$ F) T. X0 t- L1 E# @( \% o
- )" w# p' ?, F* s# G
- 8 g# [0 ~0 d! m1 }5 a
- ;;; go to tilemode 1
$ R9 D9 O% a4 o) U( o - (defun c:ai_tilemode1 ()
! e- c1 b& W1 b - (ai_undo_push)' `4 Y& I9 W) W+ f \" `
- (if (/= 1 (getvar "tilemode"))
- g6 p, {! Q4 @: @5 G5 Z* _ - (command "_.tilemode" 1)
3 A5 u! M) `+ T0 ] - ); P" a7 {3 Y3 c- w5 M9 V# V+ _
- (ai_undo_pop)$ Z5 j. ^- F$ e
- (princ). |( A+ y! A1 T8 A! w
- )
* I6 d/ c7 Q8 ~" J+ ^ - / a+ R8 E. G$ X- O+ F
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered. x6 v& V& U& f' l+ A1 U2 r2 U l
- ;;; Toolbar Dimensions/ Align Text/ Centered
4 z9 L7 k! V' [$ H4 e - 6 F, A: Q6 r& n; R$ j8 x3 |! q
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
% h" L' L! c: `% _ - (setq ai_sysvar (getvar "cmdecho"))
' D( y" R) t% \" e. ] - (setvar "cmdecho" 0)5 q; W0 T: t" k: d: U' H' m
- (cond
# v& J- Z$ o5 B - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
& v2 ~; E1 v- X" K$ e9 y - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" 0 C0 B3 \! l( ?' m
- "_.dimtedit" ai_dim_ss "_h")
3 M4 i# U' U9 F9 [& o. l - )5 X$ t9 c, u0 T# M5 ^
- (T nil)5 O+ l% a2 c6 A6 ^5 |8 x3 s; M/ c0 b
- )5 o3 s$ o9 u3 A4 I" p* ]; T8 U6 G
- (setvar "cmdecho" ai_sysvar)) [# W: G D4 H7 a; T7 y: i8 Q
- (princ)( U- O9 M9 P% [" L* A
- )! C& t* p, G9 M' n4 `+ P& x
- 0 Y: g7 G0 u2 l, D/ {
- ;;; Shortcut menu for Dimension Text Above " ~, r; w9 `! w3 h: L2 P1 w
9 Y9 D7 V3 w8 ~1 D% \3 H- (defun c:ai_dim_textabove (/ ss)7 e( a/ W# d! j* ^ u, M) I7 D
- (ai_sysvar '("cmdecho" . 0))
3 ?( h" ^7 Y2 u. U0 u. R - (if (setq ss (ssget "_I"))
+ m+ |5 a8 n; T( s - (command "_.dimoverride" "_dimtad" 3 "" ss "")
$ @7 Y5 ] |. `6 H0 c: U - (if (setq ss (ssget))
: g6 K7 P6 C3 S - (command "_.dimoverride" "_dimtad" 3 "" ss "")
+ \6 p7 V/ }( G" Z" W4 g - )
; \7 @& k; `5 P/ w - )
; N: [8 [/ J- y" R1 F2 ` - (ai_sysvar NIL)
, `( H. M4 z% x, ]: _( O; ^8 ^$ U* F - (princ)
. U$ E& c/ i) b+ W6 @ - ): v/ b5 A" G' o
- ; ?9 b2 G; L! \5 _2 o$ s2 [1 G' @
- ;;; Shortcut menu for Dimension Text Center & f3 A# h8 Q0 ~# o
- / y% p7 ^, ~$ {/ ~0 V3 \. v
- (defun c:ai_dim_textcenter (/ ss)
I5 k! n0 j* q6 Z7 r% q3 I. q - (ai_sysvar '("cmdecho" . 0))+ c: L+ g0 ?1 ~; K5 ~ w
- (if (setq ss (ssget "_I")) c* ~" P, _5 _# P2 n
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
5 x$ R: m" z4 P, h - (if (setq ss (ssget))& Y! y7 T" v `( E" T
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
# _ C5 s3 s! V1 }& O - )
7 ~. \( O# P" r - )) Z7 ^7 p$ G9 p: n& }
- (ai_sysvar NIL)" n$ j9 J6 t! M1 c8 D" E' H# h
- (princ)
0 \: D) P; U6 \' J0 K; u - )
4 w* z: D) W9 U0 y5 u - / X Y) n [5 t3 w C
- ;;; Shortcut menu for Dimension Text Home
6 P$ [# }+ l: g6 n - 8 V8 x+ n3 n) k& @5 h; K1 P5 ^0 k
- (defun c:ai_dim_texthome (/ ss)2 s0 H2 d @! o' G! h
- (ai_sysvar '("cmdecho" . 0))
; @8 E; Y1 x% g% u K4 m - (if (setq ss (ssget "_I"))1 f/ k/ K1 v9 N$ O* m T7 l: M# y
- (command "_.dimedit" "_h")& z8 K& I' w) d8 c$ x1 a
- (if (setq ss (ssget))
# B' @& ^# t" v; p - (command "_.dimedit" "_h" ss)- l; A. k U; R* x
- )
( {4 n( a5 m( ~* Z( B1 A - ): K* O% N3 c, ^9 r
- (ai_sysvar NIL)
; M, Z' W2 j1 H1 D - (princ)
& M. u) c, x& S+ x - )& G4 s; @& b$ i+ J: J# I* U9 k( W0 y4 Z
. C* v& {% n. w0 H0 N6 X5 J! V- 5 B* C' ]! h: S2 v- M; y
- ;;; Screen menu item for CIRCLE TaTaTan option.
; w. J5 S2 U0 _6 N - ;;; first, get points on entities
V8 y/ e5 q* {9 E0 P+ l - (defun ai_circtanstart()1 p4 h% d1 n( ~' ], ~7 P
- (setq m:err *error* *error* *merr*)
0 g, v+ Z0 Y* G7 Y: T% j0 r7 y/ g - (ai_sysvar
* `% r, ?) H" L' c D - (list '("cmdecho" . 0)
7 y" q$ s7 `% a1 Y0 t; Q: O - ;; make sure _tan pick for CIRCLE gets same entity
3 R. \4 J* W2 ^3 ?% j, k9 J - (cons "aperture" (getvar "pickbox"))
! G7 e; `9 m V- J$ K( x - )4 z U- \# L7 D0 v# O
- )4 D8 |2 e: s; p1 j* q( d- @
- ;; prompts are the same as CIRCLE/TTR command option" r" L0 ^2 W! A( A u( X
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
7 O! o3 ^; M( H( U0 p8 B& H# H - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))0 U8 a0 B4 _+ w
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
6 i' q W5 H( l/ V2 F+ W - )
6 j) `! U/ G( o d: f - ;;; Command-line version- |' w6 L% z! _5 c+ u
- (defun c:ai_circtan (/ pt1 pt2 pt3)
2 w; u9 p# t$ | - (ai_circtanstart)
' H" O* `. W7 P+ c6 K2 W3 U - % [: e# n. K3 |+ y
- (ai_sysvar '("osmode" . 256))
: i$ b) L. u- u) z( j+ J - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
( c9 D) b' U* H* I& @ M - ) B; N- q. \8 s3 J2 R) O7 N% B
- (ai_sysvar nil)' h; v9 }8 X* M9 j+ D
- (setq *error* m:err m:err nil)
& M# S4 l: I. p0 M - (princ)
. W* l7 Y, {& u; Z: a - )
7 W/ M% S, s- c* R! k: U- N+ \ - ;;; Use this if CMDNAMES == CIRCLE
8 J- x/ r' c1 R& K - (defun ai_circtan (/ pt1 pt2 pt3) i# o! t3 }: T" p
- (ai_circtanstart)
/ n9 n/ a5 [0 W- r+ _7 t0 ~ - : |- j8 H' S0 U$ ` {
- (ai_sysvar '("osmode" . 256))
5 j! Y* E7 k$ N; F - (command "_3p" pt1 pt2 pt3). q- }$ A, J, l4 |! {& f& W
-
, W5 c+ |) N& q8 o6 q: A x - (ai_sysvar nil)
9 X: |; m8 p- L2 _ - (setq *error* m:err m:err nil)! I! k3 }" k2 ~
- (princ)
! r/ d& c6 A0 v+ w - )
" G! u- y% {" a - G" h' t6 p* }6 h+ V$ a+ [, f$ R
) l( Z4 j9 Y4 v8 t- 3 Y3 V# I$ s' T! J& W
- ;;; Shortcut menu Deselect All item.9 j; t H8 B) G4 P
- . u8 }" ^) s8 s* `
- (defun ai_deselect ()
# U6 U, a- ~1 a/ R) W# k8 _ _ - (if (= (getvar "cmdecho") 0) ;start if- V& Y) u0 M- i, [# l
- (command "_.select" "_r" "_all" "")
6 R% g# n: x" N6 t2 P# c, | - (progn ;start progn for cmdecho 1
, S/ Q i" j! g; K8 p k0 o - (setvar "cmdecho" 0)0 F9 ~0 r) u% R4 a' }( b( Q
- (command "_.select" "_r" "_all" "")9 A/ F& Z6 ]/ V' J% _
- (setvar "cmdecho" 1)
( v3 S$ `5 l( j2 [6 J; ?, s - ) ;end progn for cmdecho 1, P+ ~ r5 ?. M# T4 O. _$ ^1 ~7 Z2 _( M" s
- ) ;end if
" o6 a4 o |& I - (terpri)
" J& E$ R/ `$ V" ~/ g t - (prompt "Everything has been deselected")
' u5 R$ }6 F$ E. x( Y$ r% z* z2 n - (princ)
5 G7 n! h) J% B# ~: k" G/ E - ); { o3 k$ k; e1 e' r
- 0 E8 W, u4 M7 |
- ;;; Command version of ai_deselect to be called from the CUI& y/ Z$ p) v: Q/ |0 ?- b( D
- ;;; so it gets properly recorded by the Action Recorder# [" u+ Z* @, ~* b& L
- ;;;
0 a0 l% t" Z9 i& ^% Q9 v6 Z - (defun c:ai_deselect ()
0 k- l. e/ [: R/ X) \ - (ai_deselect). K6 h/ }) o1 E& f7 n
- (princ)- D! p0 V$ g6 x
- ). o& e6 C3 g+ ~
! C- ]$ h4 M2 ^! R+ j3 I" L- ;;;
: D9 J% w8 d4 ]$ a' t1 c3 O - ;;; Enable Draworder to be called from a menu& P) L2 K% O) h. N+ \4 K% d9 H; Z" L
- ;;; Checks for Pickfirst selected objects
! W3 h1 R0 h/ L - ;;;+ ]: G5 f7 a- k3 ~, K' K$ ?, x. Q
. y2 G: a+ V. |; j9 b8 b- (defun ai_draworder (option / ss )8 X& l0 S* P/ g/ ]
* P' l& K$ G; n6 a6 H. z- (setq m:err *error* *error* *merr*)- @$ V) L# }7 @9 N/ I
- (ai_sysvar '("cmdecho" . 0))
; S' {6 [) ~# O, b
, \* T1 j) H! X0 q- M1 a8 {- (if (setq ss (ssget "_I"))1 S4 e! O. D2 }1 j* L
- (command "_.draworder" option)
1 i, o# Y# }/ w* F2 u) E( ~ - (if (setq ss (ssget))8 l, s2 h& L4 ]/ D! |: s$ M9 Z
- (command "_.draworder" ss "" option)
8 \$ k* \! L) x! N1 z' S X% c5 D - )6 p; L, [1 A4 n" G. {
- )
" ]& w, R* O6 ?, T - (ai_sysvar NIL)) S9 v# r+ V6 y+ @# ]- @
- (setq *error* m:err m:err nil); \- h! _0 S( ^% ?/ K
' W1 C1 ?- m( S ^# ]9 K" h! ]$ _/ i- (princ)6 c$ x9 U6 f# o) T
- )- @9 D8 @! o/ G. E( m
- @: k q; e2 \ F9 @5 S- ;;; Command version of ai_draworder to be called from the CUI
( t+ v) A5 N0 D# A - ;;; so it gets properly recorded by the Action Recorder( j- l! T6 W; H/ f
- ;;;
: S! u) @% Z9 | - (defun c:ai_draworder ()
2 n6 H0 V( \/ I, P* r - (initget "Above Under Front Back")& E* T- v, x. J5 ^8 y0 w6 ~
- (ai_draworder (strcat "_" (getkword)))
: M$ j1 m0 I; z Z5 F% c - (princ)
) H0 }' p* [0 P. w; v - ) a0 ?1 } \; s# H+ M5 a
- ; A0 i" f1 v' H7 V# _9 ]9 }. @# Z
- (defun c:vlisp ()
. r! c. {$ g$ c; y) d- g- G - (if (/= nil c:vlide) (c:vlide))* E- ]; s1 A$ o; A+ I
- )0 ^+ b6 U" I8 }% q. u
- ) f6 Q; ? n( y# \4 Y# r
- (princ "loaded.")
; I5 b, G) Y$ p8 \/ H8 q - 5 N: a" E8 i6 L6 e" z% S, w' x
- ;; Silent load.
) M4 H% c& \- U7 i7 V9 T - (princ)
v1 X1 b: v% n2 y0 Y - 0 y: m( u! Y8 {. }
- ;;;----------------------------------------------------------------------------$ y0 f) F; `. c
- ;;;% s; E6 R2 i* P7 {
- ;;; DDCHPROP.LSP Version 0.5
! R# l% s. G' D2 T8 H0 ^ - ;;;6 l% I" E, X2 s3 D: I/ P9 A
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
|' x9 ^) `1 P8 N - ;;;
5 l1 V+ W @+ E& |% H. M; B5 J9 D - ;;; Permission to use, copy, modify, and distribute this software
; E8 P X% ]2 J- I# O( ^ - ;;; for any purpose and without fee is hereby granted, provided" q% j! z( R# z1 F6 f
- ;;; that the above copyright notice appears in all copies and that
3 e: j: ~3 H' Z# T - ;;; both that copyright notice and this permission notice appear in
6 s% C0 d6 g# a- o - ;;; all supporting documentation.
, C& {& x' h8 A - ;;;
& T" i3 R1 b/ M& Z - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED3 @3 M3 e( `% a z) Z
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
% h( W& Q# J- l% c0 w: O8 ] - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
+ k9 c5 v; U- \' e& D `9 n/ b - ;;;4 j6 K$ } P& D+ Q( B2 e" R
- ;;; 2 February 1992* j( G3 t2 r7 |. J0 f5 ^3 X* H
- ;;; $ l' U; X3 d+ @ u1 O
- ;;;----------------------------------------------------------------------------
3 @; N9 {1 g6 J: Y& K - ;;; DESCRIPTION. ]9 G: K9 P* `& \- J
- ;;;----------------------------------------------------------------------------1 u! M4 [+ a# B; v
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
- P6 E% W0 \- X+ I& e& n - ;;;$ Q9 Z* ~( j' Y2 G
- ;;; The command looks similar to DDEMODES. The main dialogue has an image " N0 Y: L1 ]: u& Y
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). & Q |! ]( ^0 @ \2 B) O7 h
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. ' A+ ~9 m5 U w. ]) T2 u
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.
- o i, F, K0 T: R' l2 E - ;;;8 f) f4 a9 n* K; u1 R$ T. d, W9 e
- ;;;' [) k3 v& b" Q6 Q, H7 r$ l' ~. d
- ;;;----------------------------------------------------------------------------
9 w9 ]) E& G- ?) A - ;;;----------------------------------------------------------------------------/ r9 }9 i' A! A. B( z
- ;;; Prefixes in command and keyword strings: f$ A7 L! W2 n& a# P
- ;;; "." specifies the built-in AutoCAD command in case it has been
; }" i$ a3 _% Q( v/ j7 h - ;;; redefined.3 Y' s& S- u& g* N% t% j
- ;;; "_" denotes an AutoCAD command or keyword in the native language( R' {; z! i0 O4 w# c- o5 L% B$ G
- ;;; version, English.
4 L# h3 S" q$ k - ;;;----------------------------------------------------------------------------
/ S: d$ k7 W$ P: ^+ j7 ^6 a, r" G - ;;;0 t: r7 `& i. ] x: q% X: r
- ;;;
% o F5 H8 x1 K) @" N - ;;; ===========================================================================, J# ~" w& f. w/ L9 p/ z" B; A
- ;;; ===================== load-time error checking ============================
* L, }2 R7 q; R0 q5 s; v" Y - ;;;
9 _! |% v2 e# Z4 ?; w
( h8 X& o5 c! K' _* w- (defun ai_abort (app msg)
- L4 @ _6 I0 S2 a1 x9 y - (defun *error* (s)7 L3 q2 Y' ?; ?" `
- (if old_error (setq *error* old_error))
1 {+ v* W5 A! v6 B( G0 k8 {* T - (princ)# ?+ N$ t/ a* ]8 C) G& i
- ), T+ @" `% |1 b& H' T
- (if msg
9 q3 } u' Y& e0 J }1 e7 u# U# z A - (alert (strcat " Application error: "; b5 J( K$ G; x y; ~( p: @# w; q
- app
$ n$ k3 w0 N7 g. ~! ^ - " \n\n "4 K/ A' m$ V' V. Z- L
- msg
3 |# v4 |) A5 o5 \- W - " \n"! Z& F# o" ?5 Q5 D7 V
- )
& a; [% ]5 ]9 Z: y" v - )
3 u# B8 ]5 v# H, f% H - )* C& ^! D7 [6 y7 H0 X( i! N: @0 r
- (exit)
/ k! M& s2 r8 k8 g# @ - )) r, i. q$ L9 b7 k
- ; Q; D; w0 S) C
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
; c+ a1 m! q0 i, v1 j3 R. J, w - ;;; and then try to load it.0 F+ ]( G) g/ ~4 `+ U/ U* R% J5 s
- ;;;0 l, \4 [) {6 `- F- u. X- t n
- ;;; If it can't be found or it can't be loaded, then abort the" s7 ?' X" P7 t
- ;;; loading of this file immediately, preserving the (autoload)4 p( T5 j$ }) L a, E
- ;;; stub function.
. B8 _1 Z+ l1 V3 ]0 ]8 x. { - * J% A: d4 H! s" B/ }( q* _
- (cond! ~8 M7 O4 [0 V1 R" a
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
. a5 _1 e3 ] x9 n5 x
# r/ T( x: ]6 a# Q- ( (not (findfile "ai_utils.lsp")) ; find it
) V$ r% v+ _5 |* T8 [7 O& n" b# C0 v+ A - (ai_abort "DDCHPROP"
- ^0 W; j' T) Y- u; L. W - (strcat "Can't locate file AI_UTILS.LSP."
0 C6 f; F* C Y - "\n Check support directory.")))
5 P6 H7 }2 ]8 ~
& _; Y# t, h4 y1 d4 ^- ( (eq "failed" (load "ai_utils" "failed")) ; load it" ?# q- m5 r5 g
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
2 m& H! i3 Q0 C6 r, @1 f/ y7 W7 ]. { - )' x) g7 R2 |$ }8 W7 l7 m
- - `9 N1 W8 h- L- w& n6 A
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
6 n; G/ {% _5 f5 K' ?# d4 V; Q - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses/ ^; n' F4 Z- N$ P% Z
- ) ; ai_abort's alert box dialog.0 Z& y; J5 e' V
4 t; Z8 W8 d" H" V3 S- ;;; ==================== end load-time operations ===========================
* R. E; [$ X9 L4 }- g' G: [
5 `2 X3 w2 u* {8 X" I5 C1 g- ;;; Initialize program subroutines and variables.
% N* E+ @+ a) a# q" F( ?
* t1 w6 Z5 j5 e2 z5 _' \- (defun ddchprop_init ()3 ~8 E% l# A7 Y2 ~& b
% @' S$ v; D/ Z4 S8 g2 @* b8 S, h: ?- ;;6 W/ w2 J8 _7 }' `/ w
- ;; Define buttons and set values in CHPROP dialogue box - l+ \) E$ W% `, M# f3 `' C
- ;;
) X0 T/ z& n9 b3 u* R) E - (defun call_chp ()
% X" c! B6 O) z# F7 {- _& e - (if (not (new_dialog "ch_prop" dcl_id)) (exit))( L/ |" c, k1 V
- (set_tile "error" "")
( M$ J, G# ~1 W6 d) Q3 k; [ - ;; Set initial dialogue tile values
; \' ~0 \, K% D0 G7 v8 _ - (set_col_tile)
2 c3 d& Q. n% V; X8 ^3 a6 ~) b% t2 d9 D - (if (= lay-idx nil)4 q; R0 O- l! ?3 Q
- (set_tile "t_layer" "Varies")# f; h) L* Q' J" i" g- I0 b1 B
- (set_tile "t_layer" (nth lay-idx laynmlst))! G4 e' Z, u7 d
- )
! y' i1 G" r2 {+ D - (cond
& T$ Z# D6 v' B, Q - ((= lt-idx nil)- z' i# I/ k+ w7 v o& V/ L1 l, P
- (set_tile "t_ltype" "Varies")% K% f; A% U. e* D" ^
- )
* h, ]' z' W0 N - ((= lt-idx 0) ; set tile "By layer & layer linetype") @' J6 q- x1 u' m1 K) B: x
- (set_tile "t_ltype" (bylayer_lt))0 c# j: b0 z5 H1 N. p0 S3 N" u% D
- )
4 K; x# U. ^4 l5 q' h9 x; E/ w - (T
! `2 |8 r) E# U, J8 h - (set_tile "t_ltype" (nth lt-idx ltnmlst))) r! o( k! O0 p& E3 A1 Y
- )7 ^5 p6 a1 @4 u5 ^* d. F4 c
- )
! p5 i0 H; b# h9 ?4 i2 `+ x. R+ T - (if (or (= ethickness nil) (= ethickness "Varies")). v& D3 D9 W) J/ H
- (set_tile "eb_thickness" "Varies")
6 Y6 ]1 w( P8 @ - (set_tile "eb_thickness" (rtos ethickness))- O6 s8 ~2 t. R: @) S' _
- )
% Q0 c D( F; E9 F - ;; Define action for tiles* m+ o* D; @5 u( T7 {$ [3 I/ N
- (action_tile "b_color" "(setq ecolor (getcolor))")
8 J: d" l0 J% I/ N |" Z! l - (action_tile "show_image" "(setq ecolor (getcolor))")! k, C$ ^# }# b$ g! B& O1 r
- (action_tile "b_name" "(setq elayer (getlayer))"). o+ F1 X% \8 z- y' R t" V& i
- (action_tile "b_line" "(setq eltype (getltype))")
9 ~9 r& P0 _) x/ j - (action_tile "eb_thickness" "(getthickness $value)")
; Z- ?' W0 n3 e* D' K - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
! Y; y5 ]1 C# f2 f/ I8 v0 _. F - (action_tile "accept" "(test-ok)")
2 _" d; z5 z/ B- z' c8 v - (if (= (start_dialog) 1)( B8 M. b9 J3 h( \! q# e
- (progn0 o3 J6 D5 Z" d6 E3 F' ]
- (command "_.chprop" ss "")
3 l) c; i$ f* m# a8 o0 J - (if ecolor
, T$ I1 S, X8 n1 i - (progn
% K0 O; ~* S: R. D/ m: l - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))& J2 g: m7 P& P* ^4 b' w& M" K
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
: S0 |; F4 r8 s2 y - (command "_c" ecolor)2 p0 O8 ?! b. z* x0 [2 ?
- )
- l, @ D& Y/ E! W - )+ r% J# l( y- Z6 v& ?% B
- (if (and (/= eltype "Varies") lt-idx)
6 b/ G, \* l' {8 j - (command "_lt" eltype)) {5 e* Y( O& _1 d4 ?' {: [! r
- )! ~7 R/ a1 z, p) C+ |
- (if (and (/= elayer "Varies") lay-idx)
/ y+ j9 @% d& ?5 v - (command "_la" elayer)% l, L+ C _5 @! h% u ^
- )
. O7 d0 o& u9 e - (if (and (/= ethickness "Varies") ethickness)) w7 g' R& s/ w* g; z4 K
- (command "_t" ethickness)1 M/ L3 l6 P8 R/ S7 ?
- )
) }+ _) m& w. e6 j- r - (command "")
4 f# ^6 \% i- Z, g' z& ]( W - )1 b. G' r; T2 c- Y) l
- (princ "\nProperties unchanged")
) V! k, R+ o( [( k2 m0 h4 O - )3 M" v( G7 i4 H" i/ [5 ?- ?0 c
- (princ)7 {# m! M$ M j2 J+ n
- )
! H9 N+ K4 N8 K - ;;4 j. n3 | [/ F0 W; x( ]# ^$ |
- ;; Function to set the Color text tile and swab to the current color value.) X5 l+ e4 u% Z+ }, n
- ;;
4 e- Z, d' q2 ]0 W/ C( n9 A - (defun set_col_tile()! o4 K( m5 Q9 X5 x1 e& H
- (cond ' e" r% s# x; D! V. T4 I8 {1 ]) e
- ((= ecolor nil)2 ], C. R- m* Z3 b# @- T, E/ F) P
- (set_tile "t_color" "Varies")
4 W: M* W* Z4 O) P7 W - (col_tile "show_image" 0 nil)
8 F- c5 c( b6 O. Q7 O1 ` - )+ l/ u) } s: T5 I! s* D
- ((= ecolor 0)( A/ d* `! m0 O9 {8 y) Y
- (set_tile "t_color" "BYBLOCK")) `! H( X# \+ i* @
- (col_tile "show_image" 0 nil)' Q0 |6 v; \6 I9 j$ G: V2 N
- )
1 g% [! `# ]. q* D# K9 | b8 ^ - ((= ecolor 1)5 B u; w) w- I5 k) T3 [' K
- (set_tile "t_color" "1 red")6 x; a5 ]0 o; ~6 t, a) E. z; q* y
- (col_tile "show_image" 1 nil)4 ~6 c6 z! y- y5 v3 t
- )
2 r, T F9 y0 G* ^) h - ((= ecolor 2)
/ r* G$ O3 a/ z& s, d - (set_tile "t_color" "2 yellow")
: r# q3 Y: b$ l4 f* \; X( t: V: J2 | - (col_tile "show_image" 2 nil)
) I. S' o9 Q. B1 m8 i - )
' S% |, J# ~4 z* `- j# o - ((= ecolor 3)
: N% n6 O) K& s+ k5 o9 i - (set_tile "t_color" "3 green")
% I$ _6 o G, W& C+ z - (col_tile "show_image" 3 nil)
) s$ t! [7 a) n# a4 C7 ^ - )( \5 R) L; F$ } t- ?9 j
- ((= ecolor 4)
: H6 D; E! ?) L' g" q - (set_tile "t_color" "4 cyan")! h* O! }, P) q3 U
- (col_tile "show_image" 4 nil)+ _" Y! ]4 h; ]% z5 {' `
- )$ x) G" X/ A" C
- ((= ecolor 5)
6 k, K8 X) Z2 M3 Y% A% X* q2 s - (set_tile "t_color" "5 blue")6 P1 {9 _2 s& L$ Q* Y( ~6 j, e
- (col_tile "show_image" 5 nil): X: J' ]; j3 ^6 w2 T$ n
- )
B9 ]3 Y A! P6 B - ((= ecolor 6)
) M' j* e" D) _ - (set_tile "t_color" "6 magenta")
! {/ a0 m9 E' z7 U* J - (col_tile "show_image" 6 nil)/ W4 \& J1 e" n* y1 O: J
- )
+ t: o$ j5 x9 K - ((= ecolor 7)# T. K. s) T) A9 Z q, c
- (set_tile "t_color" "7 white")- w+ M1 E" M1 z5 u) q
- (col_tile "show_image" 7 nil)
. v% Y1 C/ Q) h - )( F; {6 m% Q6 J8 N0 Q3 D L
- ;; If the color is "BYLAYER", then set the tile to( c4 h# a4 ^6 O- {
- ;; show it's set By layer, but also indicate the
& p# q0 {" ^1 P' k( G# ] L - ;; color of the layer - i.e. By layer (red)# E7 c% c2 B* k
- ((= ecolor 256)1 Q Z& g* f% H$ E3 y
- (set_tile "t_color" (bylayer_col))! s, u5 G+ P( n
- (col_tile "show_image" cn nil)
9 `# b' E0 m# f - ): g1 w: J( }4 r( h
- (T ( D7 ~4 v, K3 V4 o
- (set_tile "t_color" (itoa ecolor))
8 |. R0 _- o% d, j$ f - (col_tile "show_image" ecolor nil)
7 E' k5 z3 ?( j& @/ H - )
4 |' o6 C% F( d0 P - )2 G0 q( E; A) e; h* C6 r) a0 {; A
- )
9 o) a0 s9 f+ P# D - ;;
7 {4 G+ j) d% a# _4 K; E - ;; Function to put up the standard color dialogue.& f2 i; \! A, I6 m' F
- ;;/ M8 f6 R( V8 R6 A
- (defun getcolor(/ col_def lay_clr temp_color)
5 U! T9 U5 \6 `' ]8 e8 q3 _ - ;; col_def is the default color used when rq_color is called. If ecolor
! }' Z9 W* H& D' h - ;; is nil (varies) then set it to 1, else use the value of ecolor.
1 m" \- T( r+ ] - (if ecolor
. V: D1 e, ^9 W, y% K2 f - (setq col_def ecolor)
( N/ H6 ^$ E* H - (setq col_def 1)
& L" \* ~/ f- J- y% U3 x, Z - )
: \ y' W9 V( Y7 \# F& F - , Q. p/ C3 d+ x
- ;; If we're working with a single layer, get its color
$ c2 R9 H$ o" \- G. d! a% J - ;; for use in the color swatch if the user selects color BYLAYER.8 M9 ?) t* C1 U
- (if (/= elayer "Varies")' @. |$ I3 M* \; F( s
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))+ S+ E1 x) F3 r* Q, O6 b
- (setq lay_clr 0)
* S$ d7 F2 F D+ ^ - )
' o$ v+ I0 C9 o! E# ~$ e - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))( \ Q8 I6 j1 g. C7 L- Y
- (progn9 P; t9 ~, c6 A' p9 e
- (setq ecolor temp_color). n: ^8 S/ U0 {
- (set_col_tile)
( m. U- ~% o9 x p2 T" q5 Q7 m5 ` - ecolor
3 J& U' Y# O0 d( J7 O5 W4 j* B - )) u T6 t& C+ @) r C$ z) J" _
- ecolor# {% Q" \- c: g' }
- )
) r" @4 \+ c5 T' F9 n3 v+ ^ - )8 b8 m+ Z# { D+ s
- ;;. W( y6 Q- X9 H5 w% J/ [
- ;; This function pops a dialogue box consisting of a list box, image tile, 2 K6 C/ ^; E1 X E% L% L! t, r
- ;; and edit box to allow the user to select or type a linetype. It returns
( w. E% J0 Q0 o" D! g6 G - ;; the linetype selected.
1 Z7 Y! u+ ~, P" A( q - ;;
6 h! {$ ^* p& v' y - (defun getltype (/ old-idx ltname)$ n# x& B1 j P& K
- ;; Initialize a dialogue from dialogue file' w8 i0 P9 W6 X/ q" q
- (if (not (new_dialog "setltype" dcl_id)) (exit))" I9 z$ i0 w7 ?
- (start_list "list_lt")
2 @; v. U' {- e N4 r% ] - (mapcar 'add_list ltnmlst) ; initialize list box
/ o. k" k3 c+ Y: h/ E7 ^ - (end_list)
# t# v# j2 K. W( s+ m9 y& C - (setq old-idx lt-idx)
- w1 i: h. h1 A4 c# b; h - ;; Show initial ltype in image tile, list box, and edit box
, C' x6 G6 k/ Z( `5 K3 d0 F" X - (if (/= lt-idx nil)/ m( ]! |6 T% R! q
- (ltlist_act (itoa lt-idx))
6 a1 D( K3 e" _# `2 g - (progn' P# \+ c9 X) S0 n5 m1 h
- (set_tile "edit_lt" "Varies")9 j" u6 K) q# G/ W! w
- (col_tile "show_image" 0 nil)" D H8 {% i% a, p
- )' @* j$ l2 e# n) n: a* k' `/ ^/ P
- )
. t5 X: J9 o4 l/ | - (action_tile "list_lt" "(ltlist_act $value)")0 x% I# z: n9 W6 }8 W" p" V) l+ ^
- (action_tile "edit_lt" "(ltedit_act $value)")
" n5 a- O, J) a2 ?, ] \4 I - (action_tile "accept" "(test-ok)")
9 z+ E8 _* w' A7 z - (action_tile "cancel" "(reset-lt)")8 L8 k) o3 O: R% N @( Z
- (if (= (start_dialog) 1) ; User pressed OK
9 p+ j1 U1 Q* o, A - (cond . S3 `* u9 @3 U* G. ]! h) H
- ((= lt-idx nil)
/ X4 |; K- R; p0 h; K# l+ p0 z/ Y9 e/ D - (set_tile "t_ltype" "Varies")
0 h0 S3 n4 Q" \. B) \ - "Varies". z& u0 z/ o' L! q
- ): T! y+ l4 i* C! v, f$ [0 K
- ((= lt-idx 0)
% K; f% L- y; t+ P9 Z - (set_tile "t_ltype" (bylayer_lt))# d) i% N3 d J7 D
- "BYLAYER"
9 |/ O9 x# P' X% I" U6 s' @ - )% L/ t. X2 \; c0 F8 e& |0 r( V7 e
- ((= lt-idx 1); I9 u& s# K3 E" t2 a. L- k
- (set_tile "t_ltype" "BYBLOCK")
4 b. t; I6 j* C% V9 m/ R' _ - "BYBLOCK"" L# h" m( a& \% X/ n1 v1 ^2 q
- )
) y8 z% z: C# I - (T : z9 l/ G2 M1 L6 ~# Z6 b$ q
- (set_tile "t_ltype" ltname) 0 d4 W* M" s# B& t
- ltname
. B; D5 L. d4 z+ _3 G, Z# P- t - )# ?8 N$ ]8 o! D
- )# N' K) z6 ?- \7 c' B- ]
- eltype- s7 i; @4 z5 E( C- H; P
- )
, w7 O3 S+ Z/ h/ P, C; I) T7 T - )
" v' K, u. `2 e# z/ g) V. b% ] - ;;; e2 P# \( ?( i* @# }+ k- s
- ;; Edit box entries end up here8 }- n* X1 T- Z1 w: ^8 y. ?; N
- ;;7 c3 M* v( u% W) i' V$ C4 Q
- (defun ltedit_act (ltvalue)& J) R( d4 m' \' {: e
- ;; If linetype name,is valid, then clear error string, & Q+ H5 ^% K, e& S% J
- ;; call ltlist_act function, and change focus to list box.
0 E+ N" z, g6 P" v) p - ;; Else print error message.6 {$ s$ ~% ` p/ J6 O$ [+ m4 g; h1 V
- (setq ltvalue (strcase ltvalue))
$ e4 e: _* U/ X! W. n# {: \ - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))6 ?4 X1 n4 L5 Q5 x% E
- (setq ltvalue "BYLAYER")
9 e0 y8 ?1 F5 [8 e& J, M. f8 I* X - )+ ?' a5 F; `8 q- d7 o
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))3 A8 i7 R* T: `$ c! E* E
- (setq ltvalue "BYBLOCK")
: _0 P. o( f0 b- B% Q2 G' M. p: u; b - )
8 ~6 W9 h" X- Y' B9 p# i/ Q8 q2 C$ K - (if (setq lt-idx (getindex ltvalue ltnmlst)): T- H) K9 g7 O
- (progn
) I) u: q6 s# \ - (set_tile "error" "")
/ }' o# G1 @; N5 k+ w x# k+ E) n - (ltlist_act (itoa lt-idx)) ~4 F* y! d- |8 ]1 a1 G. u
- (mode_tile "list_lt" 2)- g8 Z( ~% [* B7 e2 ^) U
- )+ L& p7 D+ _$ K- m( ]
- (progn
4 U' N4 ~* l! I5 S9 A - (if (/= ltvalue "VARIES")
, u: T8 X0 n; |; {. W - (set_tile "error" "Invalid linetype.")
# @! l. u: P( ^7 ~ \( V- i - ); w. D, d& H H% g; ?
- (setq lt-idx old-idx)/ T% n% l! b: s9 t4 H8 v0 K
- )
; k5 Q& z) s7 [: h( @% Q; N2 s - )
' Q% w0 H) R9 |! m8 `! I - )$ K* A- k* ]! i1 k6 `
- ;;! L. M5 J" z0 g( N
- ;; List selections end up here
' ~$ L& c4 p7 n) @5 x9 [8 H - ;;# T8 h- o8 ^4 h$ {* o9 C$ Z' D
- (defun ltlist_act (index / dashdata). j; W2 f6 X5 |+ P4 W
- ;; Update the list box, edit box, and color tile
& f0 d" i+ y2 g# k - (set_tile "error" "")5 _# T) ^+ n: r+ [' K
- (setq lt-idx (atoi index))
8 [) j2 g/ \8 e( K" p4 M3 @ - (setq ltname (nth lt-idx ltnmlst))
4 ]0 o. M; Y5 } - (setq dashdata (nth lt-idx mdashlist))
3 ?6 [. b e0 Q! i - (col_tile "show_image" 0 dashdata)
7 E* S: w$ s6 r - (set_tile "list_lt" (itoa lt-idx))6 b ]$ j8 C7 }. x, I- E
- (set_tile "edit_lt" ltname)* {. s2 D$ i& s) i( J3 B4 a
- ); J# V% E7 b' h+ y, h
- ;;: O# e& y. t; M0 L' F
- ;; Reset to original linetype when cancel it selected
" o% S4 \! U, ~+ B( O' p - ;;: ^% o8 ]- D' O& P
- (defun reset-lt ()
/ l5 }6 s1 s) Q5 z' b+ a - (setq lt-idx old-idx)
/ |7 ~9 r; g0 Q4 J - (done_dialog 0)
. W* q* f8 z; n2 ^- s - )
6 @9 a" P1 M3 v! y; W- `; D: K - ;;& l5 x0 L4 k6 k0 F$ w# ^
- ;; This function pops a dialogue box consisting of a list box and edit box to 7 K K& a, m1 q1 `9 e
- ;; allow the user to select or type a layer name. It returns the layer name
! @5 [- \. {% S" l) q, V E+ ] - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the " g. V# F8 d+ ~, J# K! ?
- ;; drawing.
0 `) D) v! W) `# E& Y - ;;
K5 i9 g5 F" H2 h, H- b - (defun getlayer (/ old-idx layname on off frozth linetype colname)
, }. u5 e, n: ^9 J$ t4 g - ;; Load a dialogue from dialogue file
3 c# Y: a$ _% o - (if (not (new_dialog "setlayer" dcl_id)) (exit))
* `( d: k: ~, O" _) B- k - (start_list "list_lay")
1 |& R+ p/ v& Y! [* @3 P% \+ x - (mapcar 'add_list longlist) ; initialize list box" d7 t* }8 ]3 M s
- (end_list); P- w! f+ t* F8 O4 t
- ;; Display current layer, show initial layer name in edit ) T. ?7 b0 c F
- ;; box, and highlight list box.
) W D. B2 |' n9 Z T - (setq old-idx lay-idx)
0 T: e- |$ i2 _2 h. t - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))6 c0 g% Z( X! }& N7 E, H
- (set_tile "cur_layer" (getvar "clayer"))) `' h, {! x3 k3 G$ I% G" C* }! }
- (action_tile "list_lay" "(laylist_act $value)")
' O0 E9 N$ K6 ]4 k! u - (action_tile "edit_lay" "(layedit_act $value)")5 y( n( u6 S) H5 w4 a, r
- (action_tile "accept" "(test-ok)")
8 ^8 O+ T, ~, g3 [6 E# K; ?2 c: M+ ] - (action_tile "cancel" "(reset-lay)")# \& S+ Z/ N, Z J
- (if (= (start_dialog) 1) ; User pressed OK
; E! {% S7 H% Q1 f$ | W3 v% y; L4 q - (progn
; M& B9 G- G6 N0 }& p7 y/ e - (if (= lay-idx nil) (setq layname "Varies"))' p* P; y( Z- p$ ]. G2 w% i) ?
- (set_tile "t_layer" layname)
w# s7 k) v5 D2 K ^ - ; If layer or ltype equals bylayer reset their tiles
/ k4 n) Q6 n, Q" t+ A( T - (if (= lt-idx 0)
/ M* U1 u$ U" O- m7 o - (set_tile "t_ltype" (bylayer_lt))6 @1 Q' R- i4 H- W4 D
- )
- ]1 }2 U, g1 V$ L# [! K9 l - (if (= ecolor 256)
7 a; W2 Q1 {( Q' \5 a - (progn% K( w9 C: M; |/ G% A \% k8 M
- (set_tile "t_color" (bylayer_col))
4 _ n+ L2 w2 H - (col_tile "show_image" cn nil)
- y ^: k+ L. S1 W0 p - )
6 ^. ~: B! i3 x. }7 ? - )1 J* Y( F5 u, o2 F- D: e
- layname% u& H2 q- ?* W0 t1 _5 b# G9 P
- )
3 K# Y) Z3 W5 }# N* E$ A& e& k9 n! Q; n - elayer3 U0 E/ K7 `+ B% b0 d; B0 y# @7 D4 v
- )
) y+ U' Z# r3 @; l5 g4 q - )
, r q4 \7 e4 ]% o - ;;0 F! h4 c1 [" ]- {# ^; A3 b' A! k
- ;; Edit box selections end up here
* D7 x Y; i) G: K - ;;6 d8 T% Z- \, \8 d& D5 y
- (defun layedit_act (layvalue)
( Q/ ^7 N) R0 ^+ A5 k* g4 j- P - ;; Convert layer entry to upper case. If layer name is8 t9 H+ h* @7 `. @4 m" j
- ;; valid, clear error string, call (laylist_act) function,7 N. ]# z/ H; h6 c
- ;; and change focus to list box. Else print error message.
8 x4 ~+ [9 I; q: e8 N& N - (setq layvalue (strcase layvalue))
$ k3 u7 o M1 \- Q - (if (setq lay-idx (getindex layvalue laynmlst))6 ?" y. L' m0 z. w4 P) u
- (progn' a ~# L* c5 J- }
- (set_tile "error" "")
H* c1 T% ? Q" L$ m' X - (laylist_act (itoa lay-idx))1 c7 R- n/ A' e# h8 n
- )
1 ^6 v7 {# X3 c - (progn5 @" F2 M! _* K0 v( E4 _, Q& i) [
- (set_tile "error" "Invalid layer name.")! E/ K* \/ c- ?9 L
- (setq lay-idx old-idx)
+ ]' e$ a$ |) m% i) z, r+ o - )
/ A9 ]& I4 b3 `7 X- Y* j - )3 D2 D+ B3 F: ?! r- k7 Z- |( g
- )
' e6 {( [$ O9 @# A' s v; \7 g - ;;! [$ |) T7 r# l/ q' a) H* `- e
- ;; List entry selections end up here
5 z1 J+ f" Y" i/ w - ;;% [! S4 K1 @6 U8 f" ^+ A- \! D
- (defun laylist_act (index / layinfo color dashdata)) G; M! ^" E& H1 e" h1 h
- ;; Update the list box, edit box, and color tile# E! Y _; g/ f; b
- (set_tile "error" "")4 Z6 E* U8 ]1 M2 h2 w9 e i, t
- (setq lay-idx (atoi index))
s5 P0 A2 h; g# |2 T' I - (setq layname (nth lay-idx laynmlst))
# |+ X3 a) W2 }( a5 N - (setq layinfo (tblsearch "layer" layname))
) w/ q: u: f- \) `& A - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
5 T3 l* M. I; A) q# |: b1 w. t - (set_tile "error" "Cannot change entity to locked layer.")0 q j( F( L1 ^/ \: k3 S
- (progn
( A) z1 F) V% M) g4 O - (setq color (cdr (assoc 62 layinfo)))% V: o+ q. T+ D4 @* {
- (setq color (abs color))1 M p3 \# I/ p; z% H9 ~
- (setq colname (colorname color))
) l) U" ~6 B7 ~ Z, r# L& v - (set_tile "list_lay" (itoa lay-idx))
5 h9 |; r$ q& O8 @; T/ ^ - (set_tile "edit_lay" layname)1 H; F5 D2 P: `* K! Y& N
- (mode_tile "list_lay" 2)$ X2 }1 G G" o2 V0 v
- )
- U2 e6 H, d) f* M( `7 K4 L - )$ \, N$ @1 b* V! Y3 m' N5 A
- )
6 R! |+ }- y% Y5 y D - ;;
* i' }) k# A9 Q9 h - ;; Reset to original layer when cancel is selected
' Y9 l: f% I1 w+ H0 } - ;;
) m# O7 ^( w7 F8 l' @6 A9 C# T - (defun reset-lay ()! {9 i: o/ J2 \& g4 I' C9 J
- (setq lay-idx old-idx)
! x ^" \5 X) S- q' f, o4 T - (done_dialog 0)
' V( p1 s; M. N5 E0 s" \) l. m - )1 E0 H: X% R4 |! z- p G" q
- ;;
7 |2 d6 k& X* a. x0 o - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
1 s3 w/ _8 B# H* i& k& k; G - ;; string can't be converted to a real, this routine checks if the first , B$ p, _" d' b. e6 e6 ^
- ;; character is "0". It also checks to see if the value equals "Varies".4 Q* f4 ?( E6 `* ?* m Y# A$ |9 A3 T
- ;;: A$ H0 z( h- w1 o8 |& e
- (defun getthickness (value)
/ @% }8 D; M5 S f9 V G( ]% j2 N5 v - (setq value (strcase value))
/ N: ?3 ~& V6 ~" I - (if (or (= value "VARIES")
7 d8 N" `/ d9 `$ O+ A - (distof value)
1 I) s+ } W9 j! V t. K- G - )3 z) }! T9 V/ o( u) d
- (progn
: d _, ]' B3 b' S( E - (set_tile "error" "")" V/ ]4 q& M! b1 K8 ]
- (if (= value "VARIES")
6 O6 c# d5 g, ]! N0 \1 l - (progn
# R' h, f/ q3 N! \0 U) V. @5 m( r - (set_tile "eb_thickness" "Varies")
/ }% S6 |: y$ w, }$ Q4 z7 H - (setq ethickness nil)
$ q& Z M% t% w4 A) p - )
- m. w0 |7 ^1 r* T2 E5 M) u - (progn( {- @# x" E( |1 w( S, i
- (setq ethickness (distof value))" P& H& J1 ~5 F
- (set_tile "eb_thickness" (rtos ethickness))3 I& y! \4 u& T5 `3 G3 E
- ethickness9 J, X+ J D& `4 N' [! g$ j/ h
- )
) Z% r' X8 c/ z% A- C - )
& }' b( F2 x' v \( _ - )
' i9 ?' K ^8 W5 y5 M, R' I - (progn
7 x2 d/ ?' f8 A! M$ t( E; \ - (set_tile "error" "Invalid thickness.")+ b) J$ ^! [) M5 j' ^! V W
- nil
' _4 T R! M% J$ p$ W! v: k - )
* M' g! j2 _' X - )
( Q3 c6 w; D. a/ q$ T" v6 \) P- I - )2 J8 L8 E3 i1 o g' ]2 E/ f
- ;;9 }" J7 C: ~2 u& i
- ;; This function make a list called laynmlst which consists of all the layer
. |5 V. [! e9 O4 v! p+ O4 Y8 Z/ | - ;; names in the drawing. It also creates a list called longlist which
; |% V: O* s. \6 p. E% W - ;; consists of strings which contain the layer name, color, linetype, etc. & I% V' i/ o5 N
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
2 r& b8 }1 u. h5 f - ;; same.8 r# Z0 \# Y, T, m$ D& s8 n1 T
- ;;: c, _. [3 H- i
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
r3 w3 A6 c' G+ B1 o6 |! B - xdlist vpldata sortlist name templist bit-70* w8 U9 e* M# n; D- t0 B
- )2 M' K, b9 Z. d# r+ u' w
- (if (= (setq tilemode (getvar "tilemode")) 0)
6 z0 E S* D& @* D - (progn
' {) q* Y5 C# ] - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")" X6 B; d: c' t% r
- (cons 69 (getvar "CVPORT"))0 B8 x# m1 q& h `, c: P+ h& U
- )8 r9 T; @; }! C8 K. E
- )
3 w9 F K0 F3 d# G) ?5 v. ~" c - ) 1 B, J- x- N- M1 N0 w
- (setq cvpname (ssname ss 0))
0 m. [2 U, ~1 ? ^, n/ D - (setq xdlist (assoc -3 (entget cvpname '("acad")))) Y4 o& K& ~4 D& W8 D8 ~ i
- (setq vpldata (cdadr xdlist))
$ n" ]' l! G o" D. Z8 i - )* m% {: w2 p. f6 H
- )9 h+ D, y/ b! `/ ?/ ?
- (setq sortlist nil) ~ [8 @8 p1 V* O; g$ }) y
- (setq templist (tblnext "LAYER" T))
# B- R0 d1 y# v6 P' S. D5 x" O( u - (while templist- n* J1 g& f, p% ? C7 w
- (setq name (cdr (assoc 2 templist)))3 D) `1 y$ N( Z
- (setq sortlist (cons name sortlist))
) Q K: l9 m' F9 A6 F$ J - (setq templist (tblnext "LAYER"))
7 o p) w7 }% l& h% ^ - ) : z1 m' @8 m, \+ q# ]6 r( w) P& n
- (if (>= (getvar "maxsort") (length sortlist))& d+ C3 r/ q9 L. }+ s7 ?: ]
- (setq sortlist (acad_strlsort sortlist))
* u" F0 \$ O1 O. u: |. X - (setq sortlist (reverse sortlist))
% _3 y8 N3 O) X) t4 |& d - )
+ W4 u8 ]0 ^, v& ? - (setq laynmlst sortlist)
& K/ N8 A- X* r1 ^5 n0 Z - (setq longlist nil)7 J$ l r. i# t2 L! X
- (setq layname (car sortlist))7 @+ ^6 R( E. g/ ^
- (while layname' c% T( a1 N7 X/ D& a: ?& q* ~$ C2 _
- (setq laylist (tblsearch "LAYER" layname))
0 f9 {& t1 o7 `* w. @" J& a - (setq color (cdr (assoc 62 laylist)))
! G8 r% F' K9 j - (if (minusp color)
; J \6 P2 W, y - (setq onoff ".")
" P1 L- A! U' i) S) C2 o A - (setq onoff "On")* D3 a- u" y; H: `9 s
- )4 t) O# l8 R- p
- (setq color (abs color))3 i! @7 B! S! t. `! H
- (setq colname (colorname color))
% ~' y6 `7 z0 d0 N - (setq bit-70 (cdr (assoc 70 laylist)))$ k, m( w1 J: P
- (if (= (logand bit-70 1) 1)6 `: s, `0 A" l B3 R
- (setq frozth "F" fchk laylist)
: k9 c5 l# ]% ~ - (setq frozth "."); i3 Q1 j7 ` x8 z. g. @
- )# [! V* q( m: x+ a4 @
- (if (= (logand bit-70 2) 2)* M# i: |3 E* }9 n
- (setq vpn "N")
9 K( h; w* {$ k' F* f# c - (setq vpn ".")5 }( E# d' ?3 @& o/ Q% n
- )
: @+ T6 g0 W3 I7 B6 d q! ~ - (if (= (logand bit-70 4) 4)+ j, n7 }0 t; i2 j8 D7 }
- (setq lock "L")7 s2 }. Z" ?9 ]2 t: p1 ^
- (setq lock ".")
) o6 ?, t0 Z& h8 C( {( i% g - ); ]+ |( S( c: D. ?
- (setq linetype (cdr (assoc 6 laylist)))
6 ]# d. K; Y+ l$ W. N0 ] - (setq layname (substr layname 1 31)): w: U4 \3 z: L. }" `+ `
- (if (= tilemode 0). X2 P0 ~& T3 Y/ K
- (progn( j8 c2 [: O8 M, C
- (if (member (cons 1003 layname) vpldata)
, W7 _" Y4 n5 h, |9 r - (setq vpf "C") t; W* n) D" g5 h2 g/ _/ @# u
- (setq vpf ".")1 V4 u+ l9 k$ H$ i9 ~- |6 Q7 O( P
- )* D9 [5 D9 M' ^7 O. f
- )
; f( ]9 b9 Z8 H, e+ Y3 r. f# j - (setq vpf ".")# H# W) [. H( e1 G/ e$ Y* W
- )
5 ]2 H! l; r8 O9 n4 u - (setq ltabstr (strcat layname "\t"+ G' h0 Y$ g, a6 O7 g: H( i$ m
- onoff "\t". o* A/ c0 t5 C5 p4 ^
- frozth "\t"
' K% o" x2 e+ [/ M( \4 z% d - lock "\t"
( R' @8 E, W3 e3 |/ b( c - vpf "\t"7 {6 }1 J: U' V2 b8 i: v
- vpn "\t"; C4 s0 O7 t% |) B2 L& h
- colname "\t"
% _! W/ s: s. o: ]" ^9 [, H7 J2 @ - linetype1 ^; ^/ C* F, ?; S6 H1 G9 w
- )
9 I2 t$ X- H4 y. {- R, T9 G: B+ l - ) T0 P. W3 C6 v+ N e
- (setq longlist (append longlist (list ltabstr))). P1 _3 Y5 K/ l' r7 s3 r
- (setq sortlist (cdr sortlist))
$ a) ~; s0 l( ^( R1 f. V$ H8 @$ R* E - (setq layname (car sortlist))8 J7 R0 I( W* V o* s2 N5 N
- )1 n% W5 p/ `! l, e H5 Y8 q( A
- )
) i/ c8 I/ i9 C8 e# ] - ;;9 V: o7 Q# C9 r9 R: k9 o" C
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
% ~) b6 \4 H6 _+ I - ;; linetype names read from the symbol table. Mdashlist is list consisting 4 P5 J8 H% {3 E/ [, Y9 Y$ I+ E9 \
- ;; of lists which define the linetype pattern - numbers that indicate dots, 5 u8 f- Z: i/ l
- ;; dashes, and spaces taken from group code 49. The list corresponds to the 2 u# @; I) [; w! C9 v" j" u
- ;; order of names in ltnmlst.# l, j# l5 `* o' Y9 D
- ;;
$ S; A2 R8 U1 {) ~; T$ `, j# f( h - (defun makeltlists (/ ltlist ltname)
4 q6 c. p1 }% s7 N: M5 E. s: J - (setq mdashlist nil)
g: O- L( J; R - (setq ltlist (tblnext "LTYPE" T))
6 X2 |/ C+ m8 n8 |0 H0 @ - (setq ltname (cdr (assoc 2 ltlist)))% h9 C3 l# X! y3 m$ e; s% i
- (setq ltnmlst (list ltname))
* h! f/ N; C: x8 d6 F - 9 W) r6 C; D! f0 a+ \2 `) P0 M
- (if (= ltname "CONTINUOUS")5 }/ q9 X2 F( L
- (setq mdashlist (list "CONT")); v( k+ K1 F5 r6 p
- (setq mdashlist
& ^( c7 t- n* i3 m: e - (append mdashlist (list (add-mdash ltlist)))
5 s8 ^$ I1 L5 Q2 i - )
" X6 r5 \/ h/ [, x2 u - )5 o4 m/ f8 H! ~6 k
- (while (setq ltlist (tblnext "LTYPE")): t, n/ r8 e6 u, k e+ m
- (setq ltname (cdr (assoc 2 ltlist))): N# i1 c2 N% u: f' f6 N8 v2 h7 O
- (setq ltnmlst (append ltnmlst (list ltname)))
; |+ @& W2 q, o$ ^ J - (setq mdashlist ' W- E' b6 f4 R7 A( u
- (append mdashlist (list (add-mdash ltlist)))
, u3 }1 {# Q: S7 i1 k* t - )
+ f4 o2 x) T* Q% K' g' x - )2 Q+ ]( R% r7 k3 T+ {' H6 z
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))" t$ P! O; M' Y$ h" `# X( t" z
- (setq mdashlist (cons nil mdashlist))$ I( Y6 V9 k2 |4 m
- (setq ltnmlst (cons "BYLAYER" ltnmlst))5 c& [' t6 m1 J) c& c
- (setq mdashlist (cons nil mdashlist))
3 i& @# d; I. n: B - )
[4 V# ] P) M2 Z/ } ?" [0 w - ;;
% R& Q4 k$ t5 G- g. c' l8 W - ;; Get all the group code 49 values for a linetype and put them in a list 1 O. p9 P* ` C& t/ l$ x6 C" ?
- ;; (pen-up, pen-down info)* m* ~3 s) h. Y9 i/ K6 n# U( S
- ;;2 l8 Y2 q& E+ ~* g: }) B+ C# u$ k
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)' P, X6 p' J! D6 k+ k+ p0 C' I: t
- (setq dashlist nil)
4 o2 d! C' V7 b3 Z- L' a - (while (setq assoclist (car ltlist1))0 [" `: R( V4 D+ s6 ~: s
- (if (= (car assoclist) 49)
! X g1 D- p0 e - (progn
% s$ q* m0 M0 E% e" } - (setq dashsize (cdr assoclist))* A( g1 C6 c1 Q3 I4 n
- (setq dashlist (cons dashsize dashlist))
: Z j1 b1 |: b6 l. f - )8 t. [( L" y, G& v
- )
" P" N4 h/ C( F# ] - (setq ltlist1 (cdr ltlist1)): n, R1 `! K/ s; h
- ) ]. @/ M# J1 {/ h
- (setq dashlist (reverse dashlist))
Z6 Q) K% r' g - )0 I# v) |# E0 Z
- ;;: i2 z% F6 \7 L! B1 w5 {
- ;; Color a tile, draw linetype, and draw a border around it
3 h7 E5 g0 }% E4 C: L - ;;7 t3 B/ a8 U9 E5 n
- (defun col_tile (tile color patlist / x y)/ C( f4 S2 U4 o5 B4 b+ N) z
- (setq x (dimx_tile tile))
+ U2 t R8 t) G+ X5 O - (setq y (dimy_tile tile))
/ k6 ^" J9 l, N9 ^) @8 j% B - (start_image tile)
: y0 f: ~( h: D9 Q% E; L, b/ N - (fill_image 0 0 x y color)% p% B) D2 I+ v. c
- (if (= color 7)
: {( O' k: J* e- I - (progn4 d' t' Y: Q: T7 |: g
- (if patlist (drawpattern x (/ y 2) patlist 0))3 b2 k3 t. _% G' d
- (tile_rect 0 0 x y 0)
3 J2 ^, G7 s4 C7 e( k1 ] - )* j0 y% b- M0 [8 q
- (progn* }5 V/ b5 L! E# T! ]4 v
- (if patlist (drawpattern x (/ y 2) patlist 7))" y. |& x! }$ C* p1 B. ~: \ f
- (tile_rect 0 0 x y 7)
6 n8 N' G( Y2 R3 d7 ?, B) g - )
2 C% g4 _6 [7 J: m! f - )$ v; j4 B5 K' m" T- |2 |2 c
- (end_image)' c, q* ]$ w0 `5 `; l. Y
- )- x5 ~+ X9 E1 F8 {
- ;;
5 A% i% O/ `6 f) ]$ q - ;; Draw a border around a tile
; q3 ]" |4 g6 |! @5 l- k! y3 l - ;;
7 ]& Z7 Z4 w4 Z8 ]" C - (defun tile_rect (x1 y1 x2 y2 color)6 X3 M9 F) l, ] @2 O7 v
- (setq x2 (- x2 1))& R% J5 W4 c; Y( y" P4 `
- (setq y2 (- y2 1))9 b8 e+ ?( Z& _/ G$ }3 ~- b
- (vector_image x1 y1 x2 y1 color)
+ A6 _4 A! |+ B0 D7 _ - (vector_image x2 y1 x2 y2 color)
j( @* {) M) N% y5 k7 z; K- L* O0 f - (vector_image x2 y2 x1 y2 color)
/ \9 N" h$ H/ H - (vector_image x1 y2 x1 y1 color)
! L9 |7 O/ b0 W7 ?1 s7 g, ? - )
2 l6 R+ ^0 }% ~3 ^ - ;;
* y) G4 s9 K; v2 r( I - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
# q& V+ n2 \4 G - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a ' ?, v& U9 L7 Z* ]$ d
- ;; list of numbers that define the linetype, and color is the color of the " t/ W X# @$ L& R# U) U
- ;; tile.7 `8 M L: `2 o6 B! w7 f1 n1 K7 e
- ;;
7 B3 F9 i v* R! N" `5 k - (defun drawpattern (boxlength y2 pattern color / x1 x2
# g3 e7 }) o; ]% u. a3 ~7 N4 [9 I - patlist dash)
6 Y3 i4 |4 h* s e- K) w/ Z& s, O - (setq x1 0 x2 0)
$ Y# M4 ^; H/ k- \ - (setq patlist pattern)
" S5 c/ @: P; Z0 }# Y, l - (if (= patlist "CONT")
& w1 G! h+ F2 R: L& l9 }: n& \% y - (progn 9 i+ H9 O. k, X! i' X$ |2 X
- (setq dash boxlength)
- e4 A/ e# ~% _9 N - (vi)
! ?0 R0 j0 {1 c% Q - (setq x1 boxlength)$ ~& h: |3 \* v; [
- ): M8 p2 W/ J4 V2 X8 F
- )
# m% Z7 V2 N9 b2 t, C - (while (< x1 boxlength)6 U/ T+ g( A+ D5 A
- (if (setq dash (car patlist))# k' k& z6 m( ^* X
- (progn
9 `/ q& m+ U+ Q J$ V0 H - (setq dash (fix (* 30 dash)))+ m4 V4 R8 \5 N6 `' @- x# M
- (cond ( n5 X9 i! G" \' V; G7 U) E0 c1 U0 d
- ((= dash 0)
9 C- `( j4 Q9 ^" ?# {8 z - (setq dash 1) ) T# E! m/ F2 a- i7 l, z0 Z4 x3 O
- (vi)
0 T# j2 Q1 u# V. j1 f1 Y - ); N: B7 ]! Y* e/ T' h3 X
- ((> dash 0)
& O6 b2 B) o; j! ] - (vi)
' I2 _# z% o( L6 }2 ] - )
* g: R$ f, x* C+ z f - (T
1 b C) H3 _" M$ ?7 g; g3 u, p+ Z - (if (< (abs dash) 2) (setq dash 2))" m0 Y6 P5 u9 W' [
- (setq x2 (+ x2 (abs dash)))6 P$ Y0 H5 k9 H! T x) Z
- )$ _1 p+ i5 V# Y
- )
; b- A7 d% c2 @; q - (setq patlist (cdr patlist)). e! \: Z0 x* z. w* k3 S
- (setq x1 x2)" v9 _# H; R2 L: G7 O' t
- )( N; [' ?! d/ Q2 {7 u5 L
- (setq patlist pattern)
. w7 e! b( U: ? - )
" `* F6 X; x! u p1 l7 e - )+ Q; K. f1 n& E9 A7 E2 s
- )2 W+ b0 ?7 F# k; B; K" ~
- ;;+ N# j% C, v; E6 ~: o1 t
- ;; Draw a dash or dot in image tile
. r. c# r/ s1 x4 Q$ X) | - ;;
- C" U/ Z; M+ M& I, ^/ v - (defun vi ()
& j( C- l* v$ X" u. C - (setq x2 (+ x2 dash))
8 ^: o6 t7 z; b! X, W - (vector_image x1 y2 x2 y2 color)
; ]+ L6 _! ?- K+ `# m7 h9 l - ) ~% y" K# z3 U$ }7 [% l7 t' N" z
- ;;* e/ S& ~# L2 k$ b3 `
- ;; This function takes a selection and returns a list of the color, linetype, * }2 c, _0 d& U
- ;; layer, and thickness properties that are common to every entities in the
s# }0 c6 ?: G, j: \: E - ;; selection set - (color linetype layer thickness). If all entities do not 6 {; u0 N) \# m
- ;; share the same property value it returns "Varies" in place of the 4 ~. Q4 O5 A* A6 F0 v2 b! b, C
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
$ v, T, c9 P% ], a) H+ A% Q4 p - ;;" x, A1 _6 B6 e1 Q
- (defun getprops (selset / sslen elist color ltype layer6 \# A/ s; `" d" ~& r
- thickness go chk-col chk-lt chk-lay chk-th ctr)
( g/ V: X7 o+ L6 i/ l - (setq sslen (sslength selset)); P/ B# D) N5 A4 V/ N
- (setq elist (entget (ssname selset 0)))
: j4 S( T, E( y. @2 r( Z3 t - (setq color (cdr (assoc 62 elist)))
! ^: w% W4 M- W# M) F# K; v - (if (not color) (setq color 256))
; U+ e2 m7 d. z; I - (setq ltype (cdr (assoc 6 elist)))1 O& b; f ~' T8 t
- (if (not ltype) (setq ltype "BYLAYER"))
" Q# g; @* D, x. e/ n/ ~ - (setq layer (cdr (assoc 8 elist)))
$ p& I# w9 H9 X- ^ ~$ R - (setq thickness (cdr (assoc 39 elist)))
; f8 v& g; s/ [% L+ B/ a ^6 A - (if (not thickness) (setq thickness 0))( d% t5 I) w2 i! v" f
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
6 G" m0 {( E; C) r4 c - 9 N& w/ Y- b0 a2 k* {( l" u: Y
- ;; Page through the selection set. When a property0 t- u$ N( f3 @0 s: k# w" l
- ;; does not match, stop checking for that property.
|2 u1 g3 ^% h6 `( o - ;; If all properties vary, stop paging.
( h' V$ R6 K. x6 v, j* M- R: f
( n5 c* _5 F) }- (while (and (> sslen ctr) go)
% R1 P( q! E) I# L. I6 I8 E - (setq elist (entget (setq en (ssname selset ctr)))); v$ D1 s: n3 Y8 Z4 j- y- h: E
- (if chk-col (match-col))
2 X7 Y6 T H% W8 v" J3 a z - (if chk-lt (match-lt))( W* G4 v9 z8 r/ P: W+ t. E# X9 b
- (if chk-lay (match-lay))8 U, o" F/ {% U3 C' \; P X
- (if chk-th (match-th))* L& E! J' G0 _% a/ |
- (setq ctr (1+ ctr)); R1 Q! F/ [" V" C, c
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th)): I8 T. y& @' y! x3 q
- (setq go nil)# t) n( N y& A7 C
- )
" K: M% k6 f; u* e! @, F - )
0 A+ b, `& r+ u9 e4 v# g - (list color ltype layer thickness)4 ?. i8 M: Z$ R) A7 w2 E
- ). _6 s* B+ }! R2 y# r
" I) y' r4 W( |- (defun match-col (/ ncolor)
! `0 J! ^% E4 g& ^% W - (setq ncolor (cdr (assoc 62 elist)))
7 g+ I1 v8 k9 d - (if (not ncolor) (setq ncolor 256))$ S7 r6 j- e. J' x& p; ?
- (if (/= color ncolor)
* }) W& x+ q0 l( U7 t - (progn
% i6 Y w4 m( Z/ F( f: @ - (setq chk-col nil)
+ t" Q- \' w3 g$ j; l4 q3 O - (setq color nil)( L5 C: }5 M* [# E
- )
6 P8 M: h3 u1 X# X" e, J - )
4 v& _: E3 O% p) \5 |1 {& W! E - )( g* O" p) [& p y I ?0 ~7 `8 Q
$ G5 e" V& h% T- n- (defun match-lt (/ nltype)! p! q# Z; R8 ?2 P# W
- (setq nltype (cdr (assoc 6 elist)))! s" y6 ^& \% C; ~3 O% E) Z9 A
- (if (not nltype) (setq nltype "BYLAYER"))
C& z) Z7 w' A - (if (/= ltype nltype)
4 N% ~( v( {/ p6 P - (progn
1 ?1 Q+ p6 L3 E# _' H5 i - (setq chk-lt nil)! @2 N/ g, q& d6 y
- (setq ltype "Varies")
+ ^$ r1 m# z: x" R, N7 ?: ?% u - )# `$ H% w' u1 u7 e1 |" c
- )" K" l9 e3 K `2 D9 y* l
- )6 B$ ^% t' o% ^- W
- - h# {+ ~/ ^6 O S0 U5 o
- (defun match-lay (/ nlayer)
7 F- M7 t1 s m6 P( @8 ~5 k - (setq nlayer (cdr (assoc 8 elist)))( ?( b* U o8 K) I
- (if (/= layer nlayer)+ i) {/ O8 e2 K! f
- (progn
z& F' M* t4 H1 l2 ~: [2 o# _ - (setq chk-lay nil)
, Z+ ]) P9 \2 A" {, x5 P" N: @- G - (setq layer "Varies")! l# T) F1 l7 x0 W @1 [5 m4 Z
- )
! p+ x) M& U7 c* g! ^" S; J6 L# R - )
6 w7 Q- {8 B7 w' g* s- i - )
' j) Z; _, L- b - ' R2 c1 I v# o0 @: u
- (defun match-th (/ nthickness)1 C4 ]" P N) a- l5 e, F
- (setq nthickness (cdr (assoc 39 elist)))8 h( e( n! M, o9 \3 C% n+ H
- (if (not nthickness) (setq nthickness 0))
3 x. \# F" f" U; {% j0 `! M - (if (/= thickness nthickness)2 T0 i' L9 g+ t; h+ i5 c
- (progn" }) U1 p- N% _) q
- (setq chk-th nil). ^) L" Z- ? |5 C4 t
- (setq thickness "Varies"): O! r1 C7 s2 [
- )9 A6 W! ~8 w/ x
- )
1 ~8 l2 ?& d* z- o: F; l: R - )
1 T# A9 s- Z( C8 {: G* [8 T4 s/ ~4 d - + B, h. k% y/ o4 Z8 k( V- k8 S
- ;;
. [% }6 M9 z/ y7 t% O' ^, c6 x - ;; If an item is a member of the list, then return its index number, else
7 a* U9 U( L* i& e( H - ;; return nil.
+ Y% A" c, q/ l1 f8 h - ;;
# R% o- I, l7 x( |, y. [" U! z - (defun getindex (item itemlist / m n)
5 m5 a# u4 d( r% O4 u - (setq n (length itemlist))
, s6 |8 o: t, ?" X$ c0 H - (if (> (setq m (length (member item itemlist))) 0). d; ^0 A* A3 F% C' V* W" c
- (- n m)
# b8 k- L8 X6 K9 y - nil
; ^3 U& c6 O4 g6 f - )
$ F8 \0 a: g! F- g - )
8 U' n0 _9 w7 j C5 G1 B2 n - ;;9 Y4 A9 @" H4 K. |1 {" L
- ;; This function is called if the linetype is set "BYLAYER". It finds the ! m# P0 j/ J, ~' l2 D
- ;; ltype of the layer so it can be displayed beside the linetype button.
( R8 Z3 ?, r4 h+ M - ;;; E! F( T9 T8 x L; d
- (defun bylayer_lt (/ layname layinfo ltype)
9 g# O2 _+ u$ L9 w1 k - (if lay-idx7 Y$ m8 V6 B: a! Z' i
- (progn# H# _- }$ V2 g5 q$ T6 Z! L
- (setq layname (nth lay-idx laynmlst))! m1 z% J; [, k% {, W0 R- A
- (setq layinfo (tblsearch "layer" layname))4 Y: H" |4 N/ U% t
- (setq ltype (cdr (assoc 6 layinfo)))% t, P2 U. \0 C/ o
- (strcat "BYLAYER (" ltype ")")
/ d4 q0 ] a3 F- _2 Y6 u - )
) ^) }! ^. P3 U& I# M - "BYLAYER": v$ t2 E4 U1 j) ]9 k1 x: Y
- )
. d: Y$ x% ?, q, O) O0 p& c; h - )5 K$ Y5 F+ y; v5 o7 J' I
- ;; m7 |3 @6 i( g& t
- ;; This function is called if the color is set "BYLAYER". It finds the # n% {) H- ~' B/ J! P
- ;; color of the layer so it can be displayed beside the color button.
$ ^; o0 W. C6 z - ;;; V% r3 S! t- G! I: P
- (defun bylayer_col (/ layname layinfo color)
5 a* Y0 X; G+ R+ i0 A - (if lay-idx( [8 R- i% Q- \) k' g
- (progn
8 `$ R8 [1 s$ c6 g - (setq layname (nth lay-idx laynmlst))
6 Z& }3 I# l1 t - (setq layinfo (tblsearch "layer" layname))% r/ }4 S: m- u$ C
- (setq color (abs (cdr (assoc 62 layinfo))))' D& r8 J* R% U( P2 F& u
- (setq cn color)* Q& ?5 w, s- u+ d. F! q8 v
- (strcat "BYLAYER (" (colorname color) ")")( n! a% a1 R5 [" c/ {' c2 J
- )
2 q, s- C; r8 }/ Y - (progn
' l! U, Z2 X, ~ - (setq cn 0)
+ ^# ^" W# K) P3 r* W$ j: f) J - "BYLAYER"
* ?6 |' ^6 p# c. o+ s$ o - ), k2 m' J3 b" b) L2 ?" E) V
- )4 U6 m9 G4 m, W/ |- X$ e
- )7 c# X$ }. E/ N9 Q0 O
- ;;
7 Z0 d! s! d3 w - ;; If there is no error message, then close the dialogue
8 p% j P+ ]5 n2 d0 o$ j( V- l/ E - ;;$ a1 h3 k/ l6 A4 ~- \3 g( R
- ;; If there is an error message, then set focus to the tile+ A3 y6 i) s5 y4 G6 a. q
- ;; that's associated with the error message.
& g4 G( P& z% p4 v1 h% O4 \0 ]1 ? - ;;
/ @6 o2 {7 E2 t" U - (defun test-ok ( / errtile): C2 L# `6 u! Q
- (setq errtile (get_tile "error"))
. `2 a# S2 q$ X' b& g1 W - (cond" y/ Y# X) y' B! {% T
- ( (= errtile "")$ r- {( {0 P5 t7 V( B' E4 w
- (done_dialog 1))# Z/ _' a, C& a" s: y" ]; F2 v
- ( (= errtile "Invalid thickness.")
x9 f/ ~8 k6 l0 j2 l - (mode_tile "eb_thickness" 2))
$ Y8 F6 r+ K3 X+ P - )
3 Y. q0 V" [4 Z- m' R" s - )
/ w3 e) j& W3 H2 v - ;;
8 k9 N( M0 v' r - ;; A color function used by getlayer.7 t, S+ P3 K/ o. E) ?/ ?6 n
- ;;4 G- y1 n* ^6 ?$ }6 A
- (defun colorname (colnum)
/ K% z. h3 W. V j& f - (setq cn (abs colnum)). p7 U/ r. f* ?4 R/ J
- (cond ((= cn 1) "red")7 L4 R4 M# ^: _+ Q, J6 d
- ((= cn 2) "yellow")
1 R$ O$ J( t& y+ }6 V$ n - ((= cn 3) "green"), k' D/ T" G; t. j) @ ]
- ((= cn 4) "cyan")
Q( H. ~& @. h8 X7 C) O - ((= cn 5) "blue")
( E* i* O% k1 X0 Z - ((= cn 6) "magenta")# e) i- C, z3 g+ O; L& @1 t) ?
- ((= cn 7) "white")
' T3 n. b( ~! m7 n0 M, v/ f; ^ - (T (itoa cn))
2 x% m" `0 s" a& v - )
% i# H! K/ F6 R( [! U3 P - )
3 m: `4 R; {8 F! x1 G8 d7 y - " D8 ?' O. W( \, U/ g
- ;;; Construct layer and ltype lists and initialize all
f Y! {, x) ~% {6 w t: m - ;;; program variables:
) s6 \4 A" z* Z) ]+ \5 N
$ G" e0 h; A0 A r- (makelaylists) ; layer list - laynmlst
' Q8 j% Y# L. l' B - (makeltlists) ; linetype lists - ltnmlst, mdashlist3 K9 c4 R1 _2 b: J( A) _% U
- ;; Find the property values of the selection set.
( T% M: B- X m - ;; (getprops ss) returns a list of properties from
' ]8 E7 [; e4 t - ;; a selection set - (color ltype layer thickness).
2 k# F% O. B7 Z- o; R! v: k6 P- g; | - (setq proplist (getprops ss))! Z6 q* T( H$ ^4 L$ C7 m$ s" N9 G
- (setq ecolor (car proplist))3 Q; v( X/ F0 R' D
- (setq eltype (cadr proplist))
' q# I+ X( B H/ d* A - (setq elayer (caddr proplist))+ z& R! j$ Z6 [) C/ _
- (setq ethickness (cadddr proplist))
$ o' T n0 S- K& }+ P - ;; Find index of linetype, and layer lists" o$ t4 [2 |) K5 N
- (cond
1 X( a) U& H, p - ((= eltype "Varies") (setq lt-idx nil))
. q+ c0 z4 O% o: i - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))& Z2 y, M6 R+ e, A5 F
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))% S2 r) c; w) L" h1 ^* y6 C
- (T (setq lt-idx (getindex eltype ltnmlst)))5 G1 b" ]4 J9 B) g1 q/ o) o! h, x
- )
! m3 g; i$ u1 F6 ?1 A - (if (= elayer "Varies")/ H4 T' k( k& g/ @
- (setq lay-idx nil)
+ o6 f7 S+ [3 |7 B7 q% m v" j - (setq lay-idx (getindex elayer laynmlst))
, ^2 A+ g+ ^; p# M( ^ - ). A+ q0 n4 p0 e4 j
- (if (= ethickness "Varies")
+ b7 Z" e2 z2 Z& ` - (setq ethickness nil)) S5 d5 m9 \& t+ P" M
- )+ p' ^( L! j6 `' z$ V+ i
. {# Z, T0 j. z7 P- ) ; end (ddchprop_init)% M/ U6 u/ z: }+ j+ X+ v
2 Y* |. p( m0 R: m! R7 L, g- ;;; (ddchprop_select)
" u' }9 n1 u2 r1 P+ `- @ - ;;;
$ w }6 t1 y) H - ;;; Aquires selection set for DDCHPROP, in one of three ways:
8 J, p) E8 p" E( u8 W- } - ;;;" |. ^ B3 ^: M; D
- ;;; 1 - Autoselected.
8 l5 y1 R- f7 l' J8 Y8 Y - ;;; 2 - Prompted for.
/ `! I8 c4 V( e - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )3 j6 Z3 F1 u' r2 ^0 V9 G
- ;;;" m- d- I! z- [9 j% L3 z, T4 r7 e
- ;;; The (ddchprop_select) function also sets the value of the( V M7 L* S5 J/ l( }* j
- ;;; global symbol AI_SELTYPE to one of the above three values to
9 x3 {3 d2 Y4 A. g' M - ;;; indicate the method thru which the entity was aquired.. A* N% x* E! @; g! f
, T# y$ S* |! c+ I- : B d$ y/ _+ @- ~3 m# q: g
- (defun ddchprop_select ()
, O- }2 t+ x+ D5 G! w( p% E - (cond
/ X2 S9 b2 t* o8 @" @# z8 t - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
7 Y$ M5 b+ Z8 }4 m - (cond ; (ddchprop) as argument
* o( |2 {) Z5 q, B) R# ` - ( (not (zerop (sslength ss))) ; If not empty, then v2 d# T& E' s6 M2 K' Z6 h2 O
- (setq ai_seltype 3) ; then return pickset.
2 t' a) r, P7 `+ j% K! x8 W( \ - (ai_return ss))))0 N- k' N' l6 Z
% w/ v2 Y/ f- P8 n- ( (ai_aselect)) ; Use current selection' u7 ^2 p+ a9 V5 r% Y% W
- ; set or prompt for objects
4 T# K% k4 X3 ]' O - . c. V" C' P. B+ Z
- (t (princ "\nNothing selected.")* i/ H: S$ S, p; Z2 @: _/ U3 h
- (ai_return nil))- s( j n! R2 p+ V5 A
- )
! {8 p% p2 v( a+ w/ K - )( t" l; u k$ ]
- 9 O' B2 P' g& o8 I, m
- ;;; Define command function.- {0 ?) o3 r4 w5 f& F0 s0 j
- ) R6 l; X0 T1 ]. A9 J9 r [: s
- (defun C:CH ()4 `5 \3 S7 u( s, \ G
- (ddchprop nil)6 n: u: N( Y1 w# z N
- (princ)
/ v, E; H& p% u- [' w \9 { - )
4 Z: f# y- C7 h! P1 Q6 n
; T: i- j) C1 m+ Z# j3 D; N2 d
; Z' `" {1 u* R- `* l1 e4 a9 V4 W7 [- ;;; Main program function - callable as a subroutine.
) W! Q7 A! v1 R" O - ;;;! D: O2 ]: {) }/ q( ?3 ?
- ;;; (ddchprop <pickset> )
0 m( ?( }& G5 Y- H - ;;;2 ?8 b8 u5 s6 P& J
- ;;; <pickset> is the selection set of objects to be changed.
/ f+ q; U, _/ F9 u0 o8 I; @. k2 H - ;;;1 U1 a3 L2 y6 v; g
- ;;; If <pickset> is nil, then the current selection set is
# T9 B, S8 K4 F' M8 {2 p% N - ;;; aquired, if one exists. Otherwise, the user is prompted
3 i( H& e) v. `/ _1 Q - ;;; to select the objects to be changed./ }6 h4 ^/ O% W3 o
- ;;;
* x2 E9 N: N: V$ p+ E - ;;; Before (ddchprop) can be called as a subroutine, it must
) U @7 e( Y$ e$ g" ]! N - ;;; be loaded first. It is up to the calling application to
# o" y X% X) _ - ;;; first determine this, and load it if necessary.
$ k% F2 P, b' L; `0 `3 N - 9 N, [2 i3 Y& {, u
- (defun ddchprop (ss /
, Z! R' G' M0 L - : P6 Z4 K1 W6 |# W5 q
- add-mdash ecolor ltedit_act s: q& Y1 x' c8 F' s0 p( |5 _
- assoclist elayer ltidx selset1 v( l' |9 r9 \% C" {
- bit-70 elist ltlist set_col_tile
% v% {( g, l& g7 c5 E - boxlength eltype ltlist1
_3 @8 R) ~7 o$ b4 l; Q* [# [$ E/ X - bylayer-lt en ltlist_act sortlist
% u0 ?: d8 q0 S0 ^ - bylayer_col ethickness ltname
4 d$ {. y, A. Z: a - bylayer_lt fchk ltnmlst sslen# Z9 Q4 e, t, i
- call_chp frozth ltvalue templist& { x6 F0 }( Q. p. F+ U; M
- chk-col getcolor ltype temp_color* K! Q( c+ G6 H5 ?
- chk-lay getindex m test-ok" Z# |( h C* d4 P! c1 J2 q3 F
- chk-lt getlayer makelaylists testidx
1 Z, \( S% h! w, M - chk-th getltype makeltlists testlay
7 w' }/ w( H/ @1 W - cmd getprops match-col th-value9 w1 w& d% w% Y, V
- cmdecho getthickness match-in thickness# Z1 L5 r: r% S% C/ Z
- cn globals match-lay tile4 G$ O! A* C8 v: s2 }! O' |
- cnum go match-lt tilemode
& R n& T3 Z& |& T6 l1 Z - col-idx index match-th tile_rect5 m7 d1 C) [7 Z5 d6 D4 ?
- colname item match_col vi
( F0 z6 U5 w# | - colnum item1 mdashlist vpf
8 A% E. K5 l a - color item2 n vpldata8 z+ K' F9 i, O
- colorname itemlist name vpn
' M4 S; j; Q0 a6 F/ P* t) h - col_def lay-idx ncolor x
. Y `! o* s* Z. X6 v6 a, v3 z - col_tile layedit_act nlayer x1" q( |3 l8 t( W
- ctr layer nltype x2- C# P# R0 g- x7 O# a, i
- cvpname layinfo nthickness xdlist
4 v8 e5 E, r3 u5 G - dash laylist off y' ]5 q& `& l0 b6 o3 G$ Q9 \4 Q! [
- dashdata laylist_act old-idx y1
' K* L: j1 _" y - dashlist layname olderr y2
1 {/ Q) ]- M; [9 [* y - dashsize laynmlst on undo_init
$ O9 n" j* B$ I4 d8 E - dcl_id layvalue onoff; [* e6 v2 m# x& G
- linetype patlist
: Y {1 \" I, S1 x# f% ^ - ddchprop-err list1 pattern
* f1 w' d2 y( Y! O+ U) O5 }0 U - longlist proplist
$ ? ]* ]2 U" C! R$ {& M9 h - lt-idx reset-lay2 e+ u! e8 s1 e# W9 }" f) x
- drawpattern ltabstr reset-lt$ ~% f* o0 @* y. u
- )! E0 K6 j5 Y' N3 o- \+ g
- , S8 P2 `7 { Q& _, T- t' j/ P5 l7 c
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
3 M: X6 O8 m( Q: h; N3 H - old_error *error* ; save current error function3 v" \7 m, g& i1 }
- *error* ai_error ; new error function
! Z" W! l: W- h$ f - )' a* @3 J6 C. B! K
- % l5 m1 y7 X" U {% T, m1 g
- (setvar "cmdecho" 0)) c- L2 `2 b* K! }. P
- 6 L6 J* K" _' Z! B3 A& H1 L
- (cond
+ M* O9 J9 M1 f$ ]3 w* D R - ( (not (ai_notrans))) ; Not transparent? [/ e* p2 a6 B2 D: S: I
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
4 _9 J9 Q: e2 p; Z# X& T: l - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
( c F+ F, u% R1 Q1 E& \% h - ( (not (setq ss (ddchprop_select)))) ; objects to modify?
' Q7 f) j" n( ^& Z/ p" m2 ~8 a
8 q& T0 B3 a% g8 \* c6 X- (t (ai_undo_push), s1 C8 G2 L& `7 e. f0 ^, M
- (ddchprop_init) ; Everything's cool,/ |9 ~7 Q g& U' U
- (call_chp) ; so proceed!) `3 ~5 S/ h7 u b$ H
- (ai_undo_pop)( t; P: a! g( [: ]2 I* m/ H
- )
' T9 J! P/ @3 Q: O8 e - )
- {/ N$ L7 W: [ - " V; N: c( m7 }1 R3 _, p
- (setq *error* old_error)
+ f6 l) S4 d8 ]. u/ m - (setvar "cmdecho" old_cmd)
. D# U! M* `% t$ g1 C6 ] - (princ)
0 J" D* }# A1 ?: \& C2 w( a - )8 r" U. K) _7 Y# G
( o U v8 u: c, f8 _( G _( Y# ~- ;;;----------------------------------------------------------------------------5 x3 A! C$ R1 \$ h' R
- ) C0 _- \$ \& v A
- (princ " DDCHPROP loaded.")/ K" `$ b N! {! _6 s
- (princ)+ v5 z$ E* | }, ~0 z
e( C; J4 ?: p9 c# v- ;;;----------------------------------------------------------------------------
8 F+ q* {2 w# C& p
: t! X! A( `1 r+ |- ;--------------------------------ddmodify.lsp----------------------------------
$ q, ^# v" Q4 i3 j2 w% b - ; Next available MSG number is 111
: H7 P$ c2 s4 b' i. j' K- i - ; MODULE_ID DDMODIFY_LSP_
- ?! o: t" k+ L* n - ;;;----------------------------------------------------------------------------
8 }5 f3 M/ {6 G. ] - ;;; DDMODIFY.LSP
% V: W2 b2 A+ y- _ - ;;;
9 F% J$ E. u* B5 a# q - ;;; Copyright 1997 by Autodesk, Inc.
% ^" f x$ `. y% I/ ]1 y - ;;;
: y8 P9 ?) U) u - ;;; Permission to use, copy, modify, and distribute this software
, N7 B+ z; h! Z - ;;; for any purpose and without fee is hereby granted, provided2 Q2 _, _2 @2 v6 r
- ;;; that the above copyright notice appears in all copies and
x) G" g- R- J2 N. _1 t3 e3 `( O - ;;; that both that copyright notice and the limited warranty and( y9 j! _% m$ V# E
- ;;; restricted rights notice below appear in all supporting+ r) P& s8 `& }, R* d0 B2 O% }
- ;;; documentation.
3 e1 U: s, D5 |" j0 ~% l6 x - ;;;& }- \9 [. i4 p7 E& |2 M0 A
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.3 C$ p; |5 Q$ G7 ?; c2 [
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
3 O$ ~6 |7 x* [ n( E4 w: L3 Y2 R - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
9 [& u0 S4 ~2 P- x' W9 L - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
% J5 b8 q" ?0 L. m" \ R. Y - ;;; UNINTERRUPTED OR ERROR FREE./ [ {! S, K7 x2 b9 P: p, f% w y% ~
- ;;;$ A# c) M/ K$ J2 F
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
' l9 F* \/ P( R# p7 G - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer9 T* l0 g U& G1 o+ s
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
' ?( P3 m3 s. E5 b - ;;; (Rights in Technical Data and Computer Software), as applicable.
4 J0 u! S" J5 g( y - ;;;
" Z5 w$ }2 \2 U4 h: |* G - ;;;.
1 M% }9 h- ^" j# j - ;;;' W& `' Y/ ]2 @" F, V
- ;;;----------------------------------------------------------------------------8 c; Q& W4 d: ~: J, h
- ;;; DESCRIPTION
1 V2 Y) M# \% w/ K9 U' d( S - ;;;3 P0 s1 F ~, d' i; y6 `% v$ F' n, A! c
- ;;; This function allows the user to get a listing comparable to the LIST A; b9 X- ]! s# m4 X1 l
- ;;; command for most objects. In addition, most object fields in the
8 }2 r7 H! |/ r; j - ;;; dialogue box are editable. Points can be specified dynamically by% `1 A4 t. ?: @. F
- ;;; temporarily dismissing the dialogue box. Each object has a unique
g/ t- M5 I8 y+ }# C3 u - ;;; dialogue.( Y" }( U/ I! e1 v" u0 [
- ;;;: g: \& b. ~/ U( Q; w
- ;;; Naming conventions
3 u( E) L. _9 T- R' p/ S4 E - ;;; Long function and widget names may use an underscore "_"% o. ~4 @9 P( o& R% t
- ;;; in their names to make them easier to read, long variable W5 P4 L+ T! Q5 P: F2 ?
- ;;; names use a dash "-".3 r0 a; \ z: K# {3 Y4 ~- v; k
- ;;;----------------------------------------------------------------------------
9 p% G. @4 s# r) b2 W2 G4 X - ;;;----------------------------------------------------------------------------
2 J8 K" O3 _- J9 e2 U& }2 @ - ;;; Prefixes in command and keyword strings:
: Q1 ?8 P* l u* E - ;;; "." specifies the built-in AutoCAD command in case it has been. j7 k# ~) Q% l8 E) \1 t4 D) l$ {
- ;;; redefined.
4 b3 Q- l s" g. }" ` - ;;; "_" denotes an AutoCAD command or keyword in the native language
0 X+ p) O4 s# h% V - ;;; version, English.# n2 `; R' P% A
- ;;;----------------------------------------------------------------------------
) D: i. Q5 n- v# x& _, W- _ - ;;;
4 M9 ^: T$ i2 l$ d6 D$ \ - ;;; Avoid (gc)s on load to improve load time.* e1 S5 H6 f3 [* c. J" f" X g2 ~, ]
- ;;;: e( b4 J8 [1 f- Q- M, w. Z
- (defun do_alloc (/ old_allod new_alloc)
0 r' T' Y" [8 b" ] - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))$ b' t" {3 M3 ?# e, J
- (expand (1+ (/ 17000 new_alloc)))- _- U0 ?& ^- ]1 _8 a: K; L4 h5 L
- (alloc old_alloc)
+ x! a3 `# }3 T0 U Q' s - )
. U+ u9 B$ s- b( [4 N: J - (do_alloc); ]& y# L# |" K6 R
- (setq do_alloc nil) O% _; O4 N' \8 U+ Y' e" X
+ y4 v2 \5 i# J. S/ L- ;;;/ D8 V; D1 x# c3 I
- ;;;' r' R; H0 V4 P! r8 L9 h
- ;;; ===========================================================================) T: R3 B6 O4 C) G; \ \3 g" i
- ;;; ===================== load-time error checking ============================
) u- D* n6 W9 g/ \; N, } - 6 x- f" H; C* C# M
- (defun ai_abort (app msg)0 _, G' o' J" l9 u. @
- (defun *error* (s)+ M+ |7 h) z( U- f1 {6 }
- (if old_error (setq *error* old_error))6 t$ N8 g1 @( q( ?6 k
- (princ)
; N& [8 L6 W$ R- n- S0 k - )( ^( F. R! G8 d+ @1 K- j1 z+ G
- (if msg' O5 g& U- e; S/ y
- (alert (strcat " Application error: "
1 j0 X! }9 ?1 g& S - app
: E: g- _# b/ A. K. g0 k - " \n\n "1 O/ k% Z* K, k. r
- msg
7 R7 _) g0 `, Q+ {2 t4 o6 C - " \n"
9 u# ^" S' _5 D5 Y- `( {, p - )
# x! ]) l4 _% E9 r2 ~# @3 [3 D - )
( X, s1 m; T8 b5 F6 @7 c. i# L - )
" F$ ^% R3 K( P& \7 p# e @ - (exit); W {! @7 w. c1 R! [; g& f
- )
$ Y# ^' ?1 L' S0 e9 D) ?
2 u5 F5 g9 j6 ~) j4 _9 y- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,* t/ r6 ~- N! N! e
- ;;; and then try to load it. If it can't be found or can't be2 P# F6 e8 \- Y* r& o2 F, G( Z
- ;;; loaded, then abort the loading of this file immediately.6 U0 C" j* t2 i1 W3 C3 F
- 7 o2 I- t0 W/ r. M( o- P+ t% \
- (cond
: G" g" z8 Y8 x+ y+ J/ ~, N" N( I - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.: r+ ?: s4 p* N- k( ]
0 [. A# U( U# ?$ O$ t W8 @- ( (not (findfile "ai_utils.lsp")) ; find it
& ~+ r0 ?4 S3 j - (ai_abort "DDMODIFY"
) e3 L2 y: r) r( s - (strcat "Can't locate file AI_UTILS.LSP."
4 @7 C2 P- H1 p - "\n Check support directory.")))) q' w. v7 }! B$ n( u: k. c
- : j' w" v* {6 y1 C
- ( (eq "failed" (load "ai_utils" "failed")) ; load it9 Z8 e* p9 `8 t( I9 T
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))( @/ }" ^+ `1 {* _! m: R
- )
, m$ h$ d0 b/ ~ G! }: ^, O y - # k: j5 C+ H0 n" j5 ~. H* ?* [
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can& J6 Y0 L" V0 P- m. E0 @
- ;;; be assumed that all functions defined therein are available.
$ V0 M7 r( V, R2 h g( B - 5 [/ t4 l3 b" O* D
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort1 e9 k" F0 i! i S1 @: e7 u
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP& D: s/ K( C- u3 R5 O3 M9 \2 v
- ;;; does not abort the running application itself (so that it can
. O) ]5 V( f+ _9 m, d2 Q - ;;; also be called from within the command without also stopping/ R, l' B! |6 s( g
- ;;; an AutoCAD command currently in progress).0 _( e5 D% Y |8 ?3 h
; W* a: j3 Q1 p% b6 V/ L- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP3 V2 A, U, j7 y9 c0 Y* U
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
8 A! g0 o* H K3 k; p - ) ; ai_abort's alert box dialog.- U; x- R5 H9 M9 P3 w0 L) O7 V. v
, I0 c7 X/ |) N' T+ I8 T9 z, {8 X! Y4 {- ;;; ==================== end load-time operations ===========================
( `0 a6 S0 A' X$ f t0 s - ' W" M8 a# Y {% s5 m
- ;;; global variables
: h( V5 k% v" q4 b: l) X
* [/ H8 f; \6 b7 D" O- (setq hatch-elist nil)
( l1 Z& d% T# m: F& E - 0 W2 f7 Q9 V. A$ {* e8 Y0 j/ Y l7 T
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are* Q8 y- T e) t* _6 |' M
- ;;; assumed to be available.% u- s( [2 V$ \
- & K' M6 R. x- p& q( J7 Y
- ;;; Define and encapsulate all subroutines that are declared4 N/ f+ y: S9 C; i' y
- ;;; locals of the (ddmodify) function.
& {: m! s9 y" q0 j; F& q - $ V# M0 M9 v# n; ?8 X+ X1 ?
- (defun ddmodify_init (); O) r% b$ ]/ ]/ ?% K
- ;;
6 O+ [* ^3 G5 O. b$ P) A - ;; These three functions modify the enitity list for common properties. Since3 q/ ~# v$ U3 _
- ;; color, ltype, and thickness are absent from the object list when they are
; z7 B/ Z/ ~; m8 f4 _9 _ - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
2 c# G. D- ^8 k7 r - ;; SUBST is not possible./ i o0 y' ^ ]9 D5 j1 p9 h" W
- ;;
# o5 Z* E$ W6 r3 n) R - (defun modify_properties ()
2 ?+ x, Q3 `( g - (emod ecolor 62)
: ]4 ? w z8 I& Z3 K6 R - (emod eltype 6)
% {9 O# [& H# f$ C1 u3 E - (emod ethickness 39)
- c$ p( @- ^* _8 G7 Z4 O* q$ @ - (emod eltscale 48)
5 k( ]) u9 z7 u! m0 \ - (tempmod elayer 8 nil)
% @. u" S( m" P' p3 B! j - )
: A# {. }1 C2 l& ` - ;;
7 x R' }" @! f - ;; This function is used for modifying common properties of the ACIS
# Z! ?7 x9 _1 q( m( r# E6 M! r - ;; based geometry objects. Thickness is not valid for these objects
" d" t8 k6 k7 A( [ - ;; so it is left out.* {# C9 w" z% T4 X
- ;;
% R ~- A3 @( B7 E0 D3 Q9 h4 u - (defun modify_prop_geom ()4 }5 [+ r$ U+ S
- (emod ecolor 62)& T( r N8 U8 V' X! ?+ Y/ i( ^
- (emod eltype 6)6 g6 Z5 Q, E) |/ Y* M& z1 w* E
- (emod eltscale 48)( G5 ~2 U/ t ?" e" f
- (tempmod elayer 8 nil)
) L: v1 j: `/ H+ C% f - )
) `" T: X; H1 u( h4 [ - 4 E( r% k! O6 Y* b0 v: P7 q+ s
- (defun emod (value bit) o5 z. P6 B7 J6 V- z' z8 z! Y |1 s
- (if (= bit 62)
$ U8 `3 F+ d3 L% A - (progn
$ `. I8 _( O3 e' C - (if (or (= value "BYLAYER")9 F$ {4 ?/ i4 |0 k, @' }
- (= value "BYLAYER")) (setq value 256))) @- x- d) E* U* n, [
- (if (or (= value "BYBLOCK")# a3 ?- c4 k& G' _
- (= value "BYBLOCK")) (setq value 0))- c7 G; A; f3 o- u! D9 i: Q3 _
- )
: ?* A5 T$ n. t& C - )
7 g, c$ S' D* d5 S - (if (setq oldlist (cdr (assoc bit elist)))5 G+ c6 N/ V! N8 r+ m- b; F
- (tempmod value bit nil)
4 P. Q" m; o7 w7 k* L+ y$ B - (setq elist (append elist (list (cons bit value))))5 \2 S3 b0 o- H1 @3 T, N
- )2 V: N* C y/ y* W' x3 ?
- )
( y( @) E" Q9 p% r7 R - ;;& R5 W! a# }8 j( e; U# s
- ;; Resets object list to original values. Called when the dialogue or1 n6 N0 w- o- p; m `7 `- u
- ;; function is cancelled.
2 c8 {5 @6 b! \ i2 a8 Q) _ - ;;5 ]$ p" B% p/ l1 G/ H3 O4 z# T
- (defun reset ()$ M% m" _# m; H: }( y; d. [( g9 D
- (setq elist old-elist
L2 i5 E, M, h# Z% d - ecolor (cdr (assoc 62 old-elist))
/ @" v9 @. ?7 d0 m1 b - ethickness (cdr (assoc 39 old-elist))
C j* f7 `' G/ L( z) p" R6 R - eltype (cdr (assoc 6 old-elist))
5 p* P' X. {6 R: | - elayer (cdr (assoc 8 old-elist))
! V$ B* r a! I1 X X4 Z - eltscale (cdr (assoc 48 old-elist))6 b& P! B5 q/ I1 i9 e, z/ b" ^0 \/ t
- )
# ^- F9 l8 h3 G: V h' U: b( M - (if (not ecolor) (setq ecolor "BYLAYER"))
+ E" P8 l% [/ B1 O - (if (not eltype) (setq eltype "BYLAYER"))
% r0 M- \: {6 \6 u0 j - (if (not ethickness) (setq ethickness 0))
- A* f/ y& l* ~ - (if (not eltscale) (setq eltscale 1))
% x+ X' a& X3 k) r9 Y - (modify_properties)
6 F8 v# W) _5 ^3 E - (setq reset_flag t)
9 C; C/ k/ u( }$ x) y& F/ X( s - (entmod elist)" K2 s, o- }! o! g- G; H2 a. Q& [6 X, S
- )7 V: P6 k7 ]" W; o z
- ;;
& A: d, l' @: B/ R7 T8 y9 _ - ;; Modify object when dialogue is temporarily dismissed to reflect latest
: _2 Q' y3 G4 L/ I" J - ;; settings of dialogue. It converts the point from current UCS coordinates to
& ^. y% ?- B# N$ {' H& v - ;; the proper object coordinates (world or object).- r% m3 H3 |9 b8 n
- ;;
8 C/ P5 G( k$ _9 ~. q! Y; @" d - ;; Arguments: value - in current UCS coordinates4 R4 K: C/ G* u8 e9 q1 ~
- ;; bit - object code (i.e. 10 for start point)2 {7 {. O8 ?0 r7 U6 E9 E4 o& D
- ;; ptype - point type 0=world 1=planar
0 B: B6 f' p; y0 L8 k - ;;
# k0 f2 X+ M- y) c - (defun tempmod (value bit ptype / newpoint)
9 n+ X0 @7 G- b9 v7 R% g) l+ D, m - (cond
' r' H) `" n1 ^6 n: u1 @: T* o( O - ((= ptype 1) (setq value (trans value 1 ename)))
4 W1 l( E% G( g9 K( f3 [ - ((= ptype 0) (setq value (trans value 1 0)))
5 T, M' ~: b% C! O4 A4 [$ _5 Y - ) v2 g8 V4 _/ D; S* {* |
- (setq elist (subst (cons bit value)
% o3 ^4 p& X& d - (assoc bit elist)
5 l' v( T1 n% h& I# Z- x% M - elist
* j3 T+ B, n. r% O& L- V4 |! K - )
' M; t) D8 ^& F- o2 h( p - )8 S! X& g& Y. G1 s" C, v* V; g( Y% O/ U
- )- i2 Y2 L7 b: P( j, i" q
- ;;4 z; {6 ]; ~5 J9 P* t
- ;; The following functions are called after a dialogue has been temporarily8 ~7 j. q" o7 a9 e4 z c
- ;; dismissed and the user is selecting a point. If a point is selected the) j, j" \' L8 q+ W' x
- ;; object list is modified and new X,Y,Z values set. If no point is selected* ]* m2 k) L) H2 _- a5 c
- ;; (null response), then the point is reset back to its previous values.. M6 X* ]* V- @$ f
- ;;- ~7 G2 b$ F9 K' u
- (defun ver_pt1 (ptype)2 z7 o* u! _ J& }
- (if pt1
" l) m- d1 l: k( _, a) N: V - (progn& D: j$ m) d% ^3 b- Q" e% ~
- (tempmod pt1 10 ptype)
# [0 Y; ]9 l4 M% N% {$ O, J - (entmod elist)
7 G1 f3 C5 p6 d& [1 z) ` - )
& H8 K! Q# E7 u$ H - (setq pt1 (list x1 y1 z1))
* V: {# k d% K! X$ K. } - )
' _: p: g# D0 C0 W8 H M* w - )
7 s. V; H6 I, r' X
& J* v9 c) ?; d+ x8 }3 N9 E" A' } S- ; (move_pt1 <ptype> )
% }8 G3 l% y/ V* w - ;+ D0 y' x L9 ~0 a
- ; Called in liew of (ver_pt1) to translate block insertions which
" x5 f. `9 C% f9 K& s) \ - ; might have variable attributes attached to them. If the distance
) K- t G4 K2 d' q - ; the block is to be moved is < 1e-6, the move is deferred.
, H7 \$ p# p+ w! p" Q- |/ m
8 [) }& q- ]7 s5 }; I( D5 Q/ Z# a- (defun move_pt1 (ptype / basept hi)" e- D: W6 k& F3 ]+ y" ~( k
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))1 v9 B8 |2 f( r
- (cond
1 l/ D/ h* m `0 [( n0 J - ( (not pt1) R& F g3 X) p
- (setq pt1 (list x1 y1 z1)))
2 O, S6 _! |5 ^( v# ]1 l; }
- B: c E$ ^, _* N; Y- ( (> 1e-6 (distance pt1 basept)))( l$ V7 ^3 @( X4 U6 |; l9 R3 u9 m
S) C0 T6 U: q+ p, Q. n- (t (tempmod pt1 10 ptype)* ~/ {; s, {0 O7 f2 [( O
- (setq hi (getvar "highlight"))
4 P! T/ E" r7 {% A6 [ - (setvar "highlight" 0)8 q6 D- {% H4 Q- ~
- (command "._move" ename "" basept pt1)) Q, R/ @, u- H$ j1 R
- (setvar "highlight" hi))
3 q/ d* }2 |! C: S: Z/ | - )
% x1 o# h3 B9 l- {1 V6 C2 d - )
+ w' O1 g' k/ _9 |# E) F: i" {
# ^; U! K! i% i1 h+ {* p- w9 _- (defun ver_pt2 (ptype)" h0 v) _$ ?' T1 n
- (if pt2
0 I/ Z& G4 L& y - (progn) r, Z0 m x* q2 }$ \3 |2 ~
- (tempmod pt2 11 ptype)
- m# l+ @4 t! x G4 B0 g" F5 I - (entmod elist)! k, |; Q8 B" i# h8 T% {& O O
- )
2 ?: k2 p, Q# T0 w; |6 H - (setq pt2 (list x2 y2 z2))! I' g7 M5 T9 w2 p8 ?: ^. y
- )+ ]8 B9 Z6 H9 G' e" b# |
- )
5 H6 m. P7 h& B8 m8 L
( y4 Q5 B) F8 J# R- (defun ver_pt3 (ptype)' x8 Z* J$ ~2 _7 v" X
- (if pt3
% {1 M* S0 @& y+ i) S - (progn
: E2 [# f0 `( p; Z0 Y' s9 v: y - (tempmod pt3 12 ptype)
1 I6 F' o5 h3 W* Q, { Z. o2 l - (entmod elist)
5 W$ @& G( }1 K2 f$ p - )
) g3 _9 J" K7 O - (setq pt3 (list x3 y3 z3))
3 V6 Z1 l' v& q/ f* t4 v - )
! R8 o7 i( x7 o D& N - )
3 _( z' n" X' i- k - ' q9 W" s% v+ V0 z6 s9 B
- (defun ver_pt4 (ptype)
) J% b r5 ]$ {' k* E" r- | - (if pt4
' Q# |3 U5 H$ w$ }- G - (progn( Q# N( ~4 c3 \
- (tempmod pt4 13 ptype)
0 F6 i9 F6 s j) J# C - (entmod elist)
1 s3 h- C* l; [7 \; h6 D1 j# [ - )
3 H# O! G3 e3 V. F; R) v Z - (setq pt4 (list x4 y4 z4)): {; f0 I& d" G5 w; z
- )
5 ?& O0 n7 S- h2 ^! w8 ^ F1 s. [ - )
" e- I9 |' `8 o: r# k - ;; Xline/Ray" @; X* p. _. U. M% M h. h- ^; M
- (defun ver_xline_pt1(), I$ @5 q6 T0 N" E0 X( l5 ]2 l0 z
- (if xline_pt1; y5 a3 a* s) g8 Q7 w. u, g- E6 E- t
- (progn; o/ }; U* |; Z3 V" e; J" b
- ;; convert to WCS.
7 i' V: q3 m, ~0 x6 N( S$ N - (setq value (trans xline_pt1 1 0)): W- b Z( `8 L3 X
- (setq elist (subst (cons 10 value)% b" w7 s) Y: M) V3 ? w Z
- (assoc 10 elist)
$ ]2 L" V; \% I( _( z1 X" d0 U+ o5 U ? - elist
2 [* P. W( d8 R d - ) F' @- n! P0 w2 R
- )8 ]% U8 S. k! d8 z$ ^& Y/ T) ?
- ), ^- z3 r& @/ U4 b) [2 ~7 i
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
4 a" b q9 b E d) l2 l7 E0 \ - )4 _9 ]) T B0 z) B2 \' U: \6 v
- )
; g' c. ~& `6 z6 T% l3 [ - ! M9 R2 S& ]6 R8 n: E1 w5 n# n
- (defun ver_xline_pt2()
7 r9 Z- E, I5 u3 U6 k1 l2 a% M7 W% ` - (if xline_pt2) o, `" v6 e( w2 b. M2 I
- (progn
7 v) o2 ^# H0 N2 j, I - ;;
4 K; G' j n, K7 @5 r6 d8 G - ;; Calculate new Direction Vector WCS
# M' C- U* ~5 ^ - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))9 ]% \7 g6 W1 x
- (setq temp_dir (trans xline_pt2 1 0))7 _( |' d6 N l, O* r* g: B, G
- (setq temp_dir_x (car temp_dir))0 }& S/ E9 x$ S; G0 q& o" ?1 j
- (setq temp_dir_y (cadr temp_dir))
7 q0 d; K" X `6 y& S1 F - (setq temp_dir_z (caddr temp_dir))/ N! w! }' L9 Y
3 F" E0 g" J7 s; J" n& X- (setq temp_xline_pt1 (trans xline_pt1 1 0))
$ r6 y- t' b( D G( y - (setq temp_xline_x1 (car temp_xline_pt1))
# Y8 x5 {* B; O+ H% O - (setq temp_xline_y1 (cadr temp_xline_pt1))
0 r. |% @) q+ c6 k% c - (setq temp_xline_z1 (caddr temp_xline_pt1))
; a7 J& H( P/ S: ]3 @6 e) X8 Q
& }, ?4 y9 b3 r4 [- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)% C3 T. V' n/ f3 y1 t1 ]
- (expt (- temp_dir_y temp_xline_y1) 2)
$ J/ ], d# B: P; x4 M x- ]6 q) Q6 @ - (expt (- temp_dir_z temp_xline_z1) 2)
5 \) Q- c) k1 X) A. A, @1 V! Q - )))+ d6 P1 k( `2 D! [" C8 D! X
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom)): } X1 d$ e$ P# u! f
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))$ p+ s8 ]3 e) r
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))- U; l6 Y: R- O/ @
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
O0 b: Q6 Q1 E7 o - (assoc 11 elist)" f1 h0 {$ s3 o) O+ I9 j( H
- elist2 }" k2 ^! G* K' b6 i. b
- )& }6 ?4 }. q- } I: c% R3 w
- )
1 M, \7 L( A; ~ i: e% ] - (entmod elist)+ j2 W. ^. h, c8 b9 e
- (setq xline_x2 (car xline_pt2))2 |" x# _) o" ^1 W. U; Y
- (setq xline_y2 (cadr xline_pt2))0 T6 {" ^1 r e6 P* m
- (setq xline_z2 (caddr xline_pt2))
& o* m7 B3 u- V% K/ X% S
7 `# T3 G& ?, L
' X0 b# H8 ?3 {; I: Q5 {6 q( \& b- )+ |( S$ h7 z" r" V! ?" a
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)), \' l' V h; f% I! H# v
- )3 u; S" n# l8 A& _6 Q @
- )% X6 d( n2 U- e9 V
8 [, G7 m! t# g" R( B4 i" B1 Y- ;;
9 k+ k) u" J4 v( O' V: ~7 @ - ;; Common properties for all objects2 V/ G6 s% v$ A! B
- ;;2 b. Z- j. r: w# a8 o" I# J' k s- a
- (defun set_tile_props ()9 E. z. g8 v0 a1 L3 L
- (set_tile "error" "")
' B6 Z& p G0 X' o m, O! K - (setcolor)2 n- Q5 w* y ^6 u9 l4 K
- (cond
* h# R0 u: C/ l8 w. G; e e% E! m! L, I - ((= eltype "BYLAYER")
$ J+ r# A7 P( { - (set_tile "t_ltype" (bylayer_lt)))0 C+ H& c" x: p: \/ W! g
- ((= eltype "BYBLOCK")# R. Y' |$ v7 P8 z m! |8 h
- (set_tile "t_ltype" "BYBLOCK"))
* W0 F# O8 |3 v& k9 y - (T (set_tile "t_ltype" eltype))
6 l/ S! \& k2 H. d. Z3 B3 C - )
4 z5 V% @) T/ y' M$ Q - (set_tile "t_layer" elayer)
\" Q4 K5 y9 J3 h. H - (set_tile "eb_thickness" (ai_rtos ethickness))) y. T6 X$ S* R' q& T
- (set_tile "eb_ltscale" (ai_rtos eltscale))
: J% }$ k4 l+ i# ]9 t% Y! ` - (setq which_tiles (ai_common_state etype))
9 S* p- C" v: w$ | - ;; Disable tiles if need be...
! z* T6 u, }: f - " I5 \+ d. D1 [ E S. e
- ;; Layer Button and Text Field" `0 M6 G! S5 r0 J9 ], V
- (if (/= 1 (logand 1 which_tiles))4 v* e6 ~! C! I
- (progn4 Y/ K) b S3 C6 o1 X
- (mode_tile "t_layer" 1)
3 `3 W3 K0 ]2 L+ ?$ y9 q( } - (mode_tile "b_name" 1)
5 O- J# R* t- H" U/ X% d1 q - )0 g, ]% d9 f: k3 [ u% a; R
- )
* \2 O0 t8 |$ n - ;; Color Button and Text Field
7 J, d4 c5 ~4 r% K+ D- q' S4 H - (if (/= 2 (logand 2 which_tiles))4 L+ H, m0 L7 Y/ j( m) }9 @0 l
- (progn
3 U# r' @3 ]. i9 t3 [ - (mode_tile "t_color" 1)" a% A- C- k2 g/ t% j
- (mode_tile "b_color" 1)8 K# N0 c Q5 f% |5 f: k; I
- (mode_tile "show_image" 1) a- f' e* \4 p; b, n) x i
- )
" f, f9 `9 m3 j8 N: R+ r5 \( b - )
% \) p: G1 _) F* a* G - ;; Linetype Button and Text Field7 v/ k Y: P5 ^ F* g3 i$ S6 k$ {+ ]
- (if (/= 4 (logand 4 which_tiles))$ T& Y# U; j* B- M* D
- (progn
R+ j4 \" H: D1 ? - (mode_tile "t_ltype" 1)
4 l. a2 O O. }4 } - (mode_tile "b_line" 1)
: G8 b- P+ q' m$ p! ^9 {" i3 R - )% N1 ^7 H) r2 y
- )! k4 ?/ Z5 s5 T$ f6 A3 w
- ;; Linetype Scale Edit Field8 r# \: [! j1 ~! h
- (if (/= 8 (logand 8 which_tiles))2 h# Z% X: _8 P; c" D6 p/ W+ i7 G; l
- (progn7 l% [5 i- L" H' L5 W7 ]& }
- (mode_tile "eb_ltscale" 1) O% x$ u( [, Q" q [! r' e8 a
- )% t# C' ?7 k! f" h' K
- )5 h$ ]9 v, `& [4 ^- H
- ;; Thickness Edit Field.
2 x+ U, f% E l& V8 C7 p - (if (/= 16 (logand 16 which_tiles))4 a1 x( V: D2 A+ ^; i# [
- (progn2 J0 g; I* A0 G7 Y
- (mode_tile "eb_thickness" 1)
- b/ j/ Y# R1 R - )/ P4 Y7 ~9 Z% ~ f* ?- t. k, [
- )
+ e3 T3 T2 S# Y. _7 L: @; x, h' q - )
# o7 P! @* ~' i - ;;, ~- I U0 d. h! X; m1 J/ C
- ;; XYZ Point values for all enitites
7 H: T) S4 d; b9 C- D - ;;' q& S8 y9 t- n
- (defun set_tile_pt1 (ptype)
# Y" o, g: {' }+ C+ W, K, y - (if (= ptype 0)
( {' p. x D! r& k8 O - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
% A( R2 J+ ?) _8 Z - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
) `/ ?; S' @' _; I9 x! L - )- P6 L0 I! I. B
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1)))): a" V2 g! F- o: W$ j9 n: p6 `4 C
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))* f+ e% O& X7 R4 b7 U& ^. E0 N! m
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
$ V2 T+ k$ y0 i- q9 m# m - )) u# W. s+ l# [0 I& @' q
- (defun set_tile_pt2 (ptype)
, v2 [# e9 T2 k, @8 Z: s% A - (if (= ptype 0)5 K2 M* c& j' R. V' y- v# [
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
1 P' ~! y- j5 o2 M6 K/ e - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
- b, h) P3 Z4 U# R, ?) Y - )5 h8 Z! Q" Y$ i% I5 Q4 _. d
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))- x! \+ R1 J0 P, Z
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
g, G2 ?) U$ V - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))% Y- o& R/ k K2 h1 y1 n
- )
/ a" k$ c. _' l: }( I1 b3 S: {5 z - (defun set_tile_pt3 (ptype)/ w: X: {8 o7 Z
- (if (= ptype 0): i4 |& Z( G3 i4 c' i* q
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
/ ]; R6 \* x7 c; ^1 j - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
% ^& N4 v' G' J- q( Q S, r - )" E. v; B+ J0 h5 n" I% x1 [4 u- @) w4 b
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
5 @ V" k6 E- ? ~- v6 c- O! O6 Q - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))4 N9 |) A3 @6 k% V9 t% M4 U
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
; M* }7 _4 N+ P - )
4 N3 w- ^3 K2 N8 Z - (defun set_tile_pt4 (ptype)
: e8 b% ~ D: n/ _ - (if (= ptype 0). l$ A# l' ]0 ]
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
" L, u P2 E8 a - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
+ f# ^- S# s! e6 d& i - )
" h" l* N) i4 j6 Y5 i - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
. ^& h5 P7 K7 y3 U# K- v2 A3 W' D6 | - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
1 z* p5 Q k5 s, f8 q) ] - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
7 ~8 D u' n( B$ I# }. c( g- e2 c - )
7 n8 ]4 n* k( K& P - ;;
8 [' h* W3 n" _ S - ;; Xline/Ray
+ a1 U2 ~% Y- ^* I' E1 D- l6 R4 J - ;;$ r- U. f7 O/ r7 D u0 i+ e
- (defun set_tile_xline_pt1 ()4 I: t$ d1 G1 i( O) M
) p; K0 n. a2 q) }- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))# V3 }$ x& R$ y% b6 e
- 1 t( l. n: R0 m1 L" {7 P, E
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
9 o6 i" b: J$ @3 ^" N4 M - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))8 I( t) y. m {6 M7 C6 ^; W8 N2 a
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
$ p* X7 x* V) @. |9 P* ~5 i - )
" p9 S' X) I, k+ ~6 g* F) \5 O - (defun set_tile_dirv ()" w3 t2 H. [: N/ W- {
- ;; Convert 11 group to local UCS (displacement)
/ h3 T, X8 ?( o7 a8 s - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
4 Z: G1 V+ ?( |2 _. p$ ~ m
& X" t. J p9 \- @! C- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt)))): U5 r, {' `6 P1 {: L
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))/ T4 ~& l1 e) p1 F! V
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
0 H- ^! j- |1 X - )
) q- v* s2 ?6 D* A% Y7 t: n* ?4 m - (defun set_tile_xline_pt2 ()
1 Z( ?" e, |4 e2 ~+ M1 r - (if (not xline_pt2)7 Z2 o* e; T/ G' I5 x/ C
- ;; Initial second point is Root Point + Direction Vector+ ^6 \' N- ?; U0 o9 [9 |+ c( w
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
: |' H9 r x; \/ B - )
& E1 M) d% x9 v$ g' ]: L - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))# p# ]% i7 h0 y# u) T- E( w
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
( ?; I3 C& V5 \, N% j( H - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))+ ^% `! y; Q) p1 V: l' T
- )
; o0 z0 d# ]0 Z* X" X6 W8 ~- f g - 7 m6 z( i3 [% N g( L+ v
- ;;/ q) N5 E0 q! R
- ;; Handle for all objects
6 k, x5 C$ a7 c3 {- v; v0 a - ;;6 N, i% G* `5 U& a4 Y. u; m; t
- (defun set_tile_handle (); H) o7 z0 l: \ f( u& l: m7 K
- (if (setq hand (cdr (assoc 5 elist)))
# g' _7 ~% t f+ x, s/ ^1 X/ p - (set_tile "Handle" hand)
' i9 f1 O* W1 M8 \: b - (set_tile "Handle" "None")
" R* G$ U# S8 g - )
( O7 f5 K, [% t3 f6 G$ l9 b# v. J& @ - )
4 t/ P8 Z2 N0 D% X! J$ N - ;;
( f1 K/ o% Z, @) d- _ - ;; Radius for ARC and CIRCLE
7 C: q$ T6 j' T J( }( P3 r - ;;- X* z3 B( J' ^+ n# R
- (defun set_tile_rad ()3 E$ m8 g1 M3 s4 z
- (setq radius (cdr (assoc 40 elist))) G6 s. i3 z- W8 I+ k0 B& V& Z
- (set_tile "radius" (ai_rtos radius))! p( W6 C, E% m% V
- )' ]- H) Q% |$ A- ?7 ~$ \
- ;;3 J8 V' e @" C( B' K
- ;; Start angle for ARC
7 Z$ q( K' ?" m5 l7 ` - ;;
. @ e- K5 K0 }% W - (defun set_tile_stang ()! x3 _+ @. C- F" V
- (setq st_ang (cdr (assoc 50 elist)))5 p4 c+ ~ u$ m3 }9 x
- (set_tile "st_ang" (ai_angtos st_ang))
1 g I6 ?$ T0 S: G$ F3 z - )
0 f/ Z: x" `3 V% Z+ g Z7 Z - ;;
% j; s$ w8 k; V9 o - ;; End angle for ARC
1 v2 R' R/ q6 E8 B6 x - ;;$ _1 {& V! ~7 N& B! R
- (defun set_tile_endang ()
! y% M; Z' u. U - (setq end_ang (cdr (assoc 51 elist)))& I& r3 t$ q1 D! V2 `6 t* U
- (set_tile "end_ang" (ai_angtos end_ang))6 M" l3 a. P1 t3 M5 p; k
- )$ N8 {+ A6 @' y6 \! q
- ;;( T7 i) r* q* G
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes- A8 K* @8 Q. L, c) s' @: Z
- ;;
( P8 n7 t z# o; R9 T. j - (defun set_tile_rot ()
$ V7 e! B0 l* D& u - (setq rot (cdr (assoc 50 elist))), Y O7 @* f' t# `/ z2 Q
- (set_tile "rot" (ai_angtos rot))
* q6 h1 G9 y( x& s3 D- C2 i3 K8 j - ) W/ X- c2 I- V% ^' q) ?) l
- ;;3 l1 o2 Q3 k; ]" b) k# ^5 Z t0 g
- ;; Height - Text, Attributes and Shapes w) w( v I/ _& I) u ^
- ;;
3 X. Y. z# w; s, u `& O$ p8 [ - (defun set_tile_hght ()
: M$ w0 x2 B# ~4 { - (setq hght (cdr (assoc 40 elist)))
9 q* z+ K7 o p - (set_tile "hght" (ai_rtos hght))
# k" r8 M/ n+ _ `) z& I; n0 x& M - )
, U7 N1 h" L. ~( v - ;;
- B8 j4 K) E% g - ;; Width Factor - Text, Attributes and Shapes4 q! E8 N' ~ l
- ;;
^5 F% a8 {" t' }% s) O - (defun set_tile_wid ()
$ I& o1 x, ]' f4 c3 U- \2 l1 R - (setq wid (cdr (assoc 41 elist)))
- b: a3 T% j) L- ?0 D- [1 ~ - (set_tile "wid" (ai_rtos wid))' l3 I# O5 ~$ `* {( K- A2 {
- )+ u# N" O5 S' D3 {5 ^4 P% t
- ;;8 F7 I' T% Y- a# e9 G1 U
- ;; Obliquing Angle - Text, Attributes and Shapes/ I; M3 _9 X# f; }' |
- ;;
& ]0 n* k, a* {. k( B- d! r* I - (defun set_tile_obl ()
; ?' V0 a Y/ i - (setq obl (cdr (assoc 51 elist)))8 ~; }; l: c0 g8 {/ J
- (set_tile "obl" (ai_angtos obl))) k Y3 n4 q; [
- )8 K/ i! r9 W" e# Q j# R3 @
- ;;1 k: ?+ y1 ]! q
- ;; Text string& j; f9 e# U# b
- ;;
9 H1 ]1 D3 E: r - (defun set_tile_text ()2 ^4 ^2 r4 p6 C" _2 x. ^* l( [$ t
- (setq text (cdr (assoc 1 elist)))0 I5 {) t! f# h( i4 m. _
- (set_tile "t_string" text)) ~7 j9 X$ P$ B! t0 n3 [# A, D* L8 y
- )# m$ Q. I/ ^* }; i
- ;;
! T P% [! ~5 b5 Z4 s8 w) K - ;; Attribute Tag
; @4 p# o, |6 z' K8 N( A - ;;
' |4 A% f2 Z$ e5 |1 H - (defun set_tile_tag ()
. I; [5 v* v2 A3 E1 U - (if (= etype "ATTDEF")
5 h" D# B8 G1 t" q6 I! g - (progn. s, j; p6 V8 T: G: S! g. `# b0 t: o
- (setq attag (cdr (assoc 2 elist)))
! V% Y( T% \' T0 y! t( e- g - (set_tile "tag" attag)9 _' g/ A' J4 ]* h V5 C8 ]
- )( O5 I/ h! B& n& V! t; U8 k7 Y
- )
% m( a- c! ?9 R - )
% [! r9 M. z0 Q. h6 j, a$ Q) | - ;;& q+ @0 p6 v. e2 u$ ]" W9 C
- ;; Attribute Definition) e0 t# B) o1 u, h7 g" J& q$ _
- ;;. W7 r0 S! ]/ d$ D2 ~
- (defun set_tile_prompt ()
& A, }3 C* S( U- i2 v' I2 H! p - (if (= etype "ATTDEF")
+ U. B& o2 p% X - (progn
9 r. @+ y9 i8 A7 {+ S/ { - (setq atprompt (cdr (assoc 3 elist)))
& B3 F4 j/ P" d w; ?7 v - (set_tile "prompt" atprompt)
5 Q; K5 F6 O1 ~; t# t - )+ K' ]) m! L4 b7 S
- )
3 A- Z. Z D1 J) F - )
( \6 e1 ^ p* |/ ?/ c- o/ ] - ;;5 T' O+ S8 N7 O; J7 J7 b
- ;; Justification setting for Attributes and Text. Initializes' ~/ I. C0 C3 m9 ]( `+ U
- ;; popup list box4 D. \& o/ u1 f4 W2 F7 q4 Z& t" r
- ;;
. h2 V0 t- C% U9 @1 O - (defun set_tile_just ()
9 a6 q- P6 r0 \1 ` - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
# K2 C# K0 u9 A& G# |$ [ - (setq va (cdr (assoc 73 elist))) ; vertical alignment
( \2 g* n; W; S J" v; B5 V - (setq ha-prev ha)
7 y, U* H8 m/ m1 @6 U2 {/ h - (if (= etype "ATTDEF")
1 \( u4 W3 M+ l3 s - (setq va (cdr (assoc 74 elist))) ; vertical alignment
1 s7 I# w; I6 a7 |4 ?2 O - )
- q0 \8 v4 d) w( p% X - (setq jlist
# e) N* n8 {9 L+ d8 r+ W3 o0 b - (list "Left" "Center" "Right"# I9 }4 x8 Y2 S7 K9 m
- "Aligned" "Middle" "Fit"
* M3 a& ^) p) k3 B' O* _: M) h - "Top left" "Top center" "Top right"
# b1 Z3 S' o+ q" B& i - "Middle left" "Middle center" "Middle right"
' s: L2 \) a5 x+ Z( V - "Bottom left" "Bottom center" "Bottom right"
$ D$ t5 N; Q: L4 E - )
3 O9 X0 u" p% L* u - )
; M! z5 {. B( \0 @ - (start_list "popup_just")
3 B9 y5 T2 _0 \ - (mapcar 'add_list jlist)# R7 ?# v% O+ |3 Z9 L; ?
- (end_list)
: a9 z8 Z; ~2 i+ \+ O, G: B6 Y - (set_just_idx)$ Z3 C1 B7 \7 t% }5 W$ b; j, k
- (set_tile "popup_just" (jlist_act just-idx))
+ F+ y$ f6 ^6 B - )
, Q6 T# Z f3 Y& V) D - ;;1 w: C- U" u6 t9 ^4 `" l
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
$ {( I5 f$ Z; v j, M7 {" ~$ s - ;; box.
; n: k# B" ~9 a0 a - ;;
' v- s) H6 K& V; A6 z - (defun set_tile_style (/ sname style-idx tlist)
$ c1 c, P1 e- j - (setq tlist (tblnext "STYLE" T)2 H( T" k! {6 U- n1 d+ m ]9 a8 J
- slist nil)- U( g [" b5 s* j9 O! x
- (while tlist& H4 ` q+ V5 c2 s9 W
- (setq sname (cdr (assoc 2 tlist)))
2 k# w- H9 z! o! C$ K - (if (and (/= sname "")" _% I$ l# M- D+ w' I* h
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))
% o9 I1 ?% E& ^& V# O+ ^ - (setq slist (cons sname slist)))9 |: F2 e e& G& X( O/ }3 [; D6 C
- (setq tlist (tblnext "STYLE")))
5 s# r0 G2 l! w6 @- z. c4 b4 w - (if (>= (getvar "maxsort") (length slist))
' Y: L4 p& I; j% o$ a - (setq slist (acad_strlsort slist)) ; alphabetize style list5 x0 W6 T6 s5 f6 K% l5 H1 ^
- (setq slist (reverse slist))) ; or reverse it to put it in DB order, t3 F) f$ b1 G" o
T$ h- ~3 J( b& }& Q/ D" N* V" a7 e- (start_list "style")
- d: l! k! l: R - (mapcar 'add_list slist); p: L5 x" _5 v5 J
- (end_list)4 b# [( W2 G1 h' @. n7 c
- (setq tstyle (cdr (assoc 7 elist)))" ~9 D. x& n6 n y
- (setq style-idx (getindex tstyle slist))9 {9 m8 n5 Q8 J$ N6 Q* }
- (set_tile "style" (itoa style-idx)): j# H2 j; T8 o" b
- )
5 p- J2 C! ~9 \; x3 J, S - ;;
& X# w7 D1 \+ I2 @ - ;; Text and Attribute setting - upside-down, backwards) u3 G- c2 L( T: A( U& U
- ;;$ u7 S) y7 s- t8 u8 C* R' P
- (defun set_tile_bk-up ()
- r" L2 u9 W ]% q# h9 p - (setq bk-up (cdr (assoc 71 elist)))
9 g i1 m9 J# y6 R3 b' K - (if (= (logand bk-up 2) 2)4 n1 Q# d* A, x1 j+ H. p, x5 C
- (set_tile "bkwd" (itoa (setq bkwd 1)))6 F2 ]0 P5 J! K2 F |
- (set_tile "bkwd" (itoa (setq bkwd 0))). ]- `- D: Y" T
- )
5 H5 R# m- \( J; w5 I& w - (if (= (logand bk-up 4) 4)4 T2 ]+ f7 y& M! _! e: G
- (set_tile "upsd" (itoa (setq upsd 1)))# [. H& @, T2 ~1 s
- (set_tile "upsd" (itoa (setq upsd 0)))
+ G& y1 I6 l9 J1 E( p - )
% _# t' Q" a, {; N - ). X2 ~5 o# |- A5 O5 Q" n, |
- ;;
4 h- f2 c/ l% ~' ~$ X - ;; Attribute setting - invisible, constant, verify, preset' m' S' A/ z9 |
- ;;' |/ I6 t, |# B! W" B7 }+ v
- (defun set_tile_icvp ()
5 U! a/ X5 q: t2 x0 o' t - (if (not (setq icvp (cdr (assoc 70 elist))))1 N9 G# F9 o' L$ \4 } @& @/ E5 v
- (setq icvp 0)
- u2 r' J& k- Q0 D3 M - )
1 ~" ~7 R: j3 a: r) b* G - (if (= (logand icvp 1) 1)( P- I& P C6 |: B8 G/ l1 m0 I8 M
- (set_tile "inv" (itoa (setq inv 1)))4 S5 |; w0 q( `
- (set_tile "inv" (itoa (setq inv 0)))
! h1 }- K: l7 m0 ^7 I6 D8 j" { - )
, L: m2 @! K( d8 H2 j% V - (if (= (logand icvp 2) 2)4 y8 Q' ?* V. K* v s6 B4 T4 c- r
- (set_tile "con" (itoa (setq con 1)))
7 ~$ H) `) R2 D# i4 ? - (set_tile "con" (itoa (setq con 0)))3 ~. u' F% s) o3 E# z4 e' m' _
- ); j$ ?6 P! j! e8 @1 v
- (if (= (logand icvp 4) 4)
8 m! B& P8 B1 R - (set_tile "ver" (itoa (setq vfy 1)))/ d9 Y9 s* P7 D3 W
- (set_tile "ver" (itoa (setq vfy 0)))
N& q6 Z& J- c& @0 G - )( n( _9 s4 I. P- K$ X. G
- (if (= (logand icvp 8) 8): ?2 I6 z( v3 w
- (set_tile "pre" (itoa (setq pre 1)))
( l) |/ }! S2 R: ^: R0 P - (set_tile "pre" (itoa (setq pre 0))). V1 T1 h0 V1 F+ z
- )9 M+ X5 [- T3 B0 O6 A; ?
- )
* H/ }- w, v5 B& k8 F* Y - ;;$ b8 v8 c, \* k% L p1 [% y
- ;; Scale factors for block insertions
* |% _1 O. M9 _, x - ;;! z8 V, ]6 n2 A/ D* h+ q
- (defun set_tile_scale (/ temp)
4 {; k$ m5 ?7 T - (setq temp (getvar "LUNITS"))$ ?3 f0 e+ D. j6 M: \) A
- (setvar "LUNITS" 2)
8 _" Z; G$ q: O. F2 i2 _. Z - (setq xscale (cdr (assoc 41 elist)))" H# o3 ^) r6 O+ k
- (set_tile "xscale" (ai_rtos xscale))+ g, g+ G0 v, Y" H3 j0 C) k. p4 n
- (setq yscale (cdr (assoc 42 elist)))
. e9 J" n) N3 C* v) _8 ?" o - (set_tile "yscale" (ai_rtos yscale))# J# d0 w! s5 `# D, o' E
- (setq zscale (cdr (assoc 43 elist)))
* T. N9 I+ L3 w - (set_tile "zscale" (ai_rtos zscale)); I0 \, N! M& i3 r) Q' v* I$ W
- (setvar "LUNITS" temp)# r4 M$ u) v4 ]1 M$ b9 E3 L# D
- )
( j3 i3 |* Z2 O3 G- M - ;;1 Y5 Z$ y! E# ~6 `
- ;; Rows and columns for block insertions
# {* r& n4 v& B7 E6 Z - ;;
4 X# H- U$ k$ o7 d) N2 B. v - (defun set_tile_rc ()
5 C' B# w8 |" ^7 A - (setq columns (cdr (assoc 70 elist)))
, [9 j" D5 A, R - (set_tile "columns" (itoa columns ))7 L) Z; c9 L$ M5 G/ |: U/ i; s {
- (setq rows (cdr (assoc 71 elist)))
& L7 `8 Y! D. u5 v - (set_tile "rows" (itoa rows))
4 V' C- f2 h+ ~* r& g) T - (setq col-sp (cdr (assoc 44 elist)))
8 N. @! ^ D8 t$ {: o4 H6 H - (set_tile "col_sp" (ai_rtos col-sp))
& w4 P; w" S2 R! b9 _ x9 d1 U - (setq row-sp (cdr (assoc 45 elist)))3 n8 [5 N* t8 V& U
- (set_tile "row_sp" (ai_rtos row-sp))
1 b& M( H+ H( F - (if (/= hasclip T)
" d1 \7 x0 \2 _8 |# B& O - (mode_tile "xcliponoff" 1)
$ u1 y$ K4 l5 a1 { - (set_tile "xcliponoff" (itoa xcliponoff))* x9 ]' t% m6 z; X. E* N( C
- )
- n/ _7 |% Y" R# a6 A - )
v- e% m- {; \, }1 V$ O9 o3 q - ;;
9 A5 w3 |, G; m" }) r; ^& b+ G - ;; Invisible edges for 3DFACE6 w6 Z8 L9 U+ F& i# \% p2 W
- ;;
/ Z4 j" i$ P3 a2 m e/ r - (defun set_tile_edges ()# {9 X" F: |+ j! I7 @% D
- (setq f-vis (cdr (assoc 70 elist)))6 u& d% J+ u7 B- D8 m: `% u% U
- (if (= (logand f-vis 1) 1)
: w$ f, q8 m) A* {: ~3 h - (set_tile "edge_1" (setq edge1 "0"))
( T( v, ~2 V8 s/ I: _* C% _ - (set_tile "edge_1" (setq edge1 "1"))
) E( ^3 j" C; K1 u2 V - )0 T4 H* L2 g/ U# s
- (if (= (logand f-vis 2) 2)
" A% T( }$ j- C7 g8 ~ - (set_tile "edge_2" (setq edge2 "0"))* K1 i- S6 ]! n: E: @
- (set_tile "edge_2" (setq edge2 "1"))
+ @. q2 n7 e: d' V9 q - )
8 p- O# R% w* B! Y$ J9 j - (if (= (logand f-vis 4) 4)& x4 h6 o" t+ \/ m" K! I$ ]
- (set_tile "edge_3" (setq edge3 "0"))
% C' F! L/ k1 b7 h7 P6 P - (set_tile "edge_3" (setq edge3 "1"))
- L# X) x; E# |' o3 B3 S - )' |$ ^& J& ^) E9 I9 x3 Y6 D
- (if (= (logand f-vis 8) 8)
) Z/ _" m8 ]/ t - (set_tile "edge_4" (setq edge4 "0"))0 ?: N8 Z$ a3 O0 E
- (set_tile "edge_4" (setq edge4 "1"))3 e/ {# { X9 Z
- )
7 V @% p$ {( p: Y# b1 b - )
. Z6 Z9 z/ j* P$ M - ;;
$ q0 }/ @* X$ n# f3 ?- X - ;; XYZ Point values for polyline vertex
1 c& E* d1 J. F$ [ - ;;
& [4 Z! X/ l) I6 Y* i - (defun set_tile_vpt (ptype)% _& g5 V( \% Z+ v3 _
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
( c ^) G9 c( U) e$ a# |1 O - (progn( L& U; m+ j' g3 |) u
- ;; ctr is 1 based, vertices are zero based.0 X1 X- N. S4 `! x( [
- (setq vpt (cdr (getLwVert (- ctr 1))))0 E6 E1 c1 G2 L# L( q' t2 s
- (set_tile "xtext" (rtos (setq x1 (car vpt))))4 o+ Z" L8 m+ ^4 D3 H7 V
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
' O) [- H- d( w+ H - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
. E; y4 b! t# C% d5 k- U' U M; L - )" b1 }5 I. N- Q- t
- (progn
6 @$ C7 J0 T. A3 Y - (if (= ptype 0)
( g3 q+ h1 A" x4 J% p - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
& G7 G5 l( W$ h) B - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))( x. e- g; B' s6 R8 J* K# h) h1 p5 t
- )
: G* u& g, M1 s7 C' w
1 f; ]1 H; ]3 L& Q2 j- (set_tile "xtext" (rtos (setq x1 (car vpt))))
0 U/ E$ R# L: P* Y7 \! \ - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))& X6 {1 j7 L# ^# {* j/ m& u. T
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
]+ a2 V( w0 v" a1 m( M! ~ - )& x1 V# N9 e' F: [/ P3 p* }
- )1 N' b6 k$ T4 ]. x
$ i/ ^; t# }( |- )1 Y4 O9 C. |# }* J3 J$ A
- ;; This is the equivalent to doing an entnext on the heavy weight6 c9 l+ k0 i) I! y+ W6 o
- ;; polylines. The hard coded '4' below allow stepping over the$ l f2 J4 W+ z7 S& g
- ;; 40 41 and 42 group code information. The while loop finds the; q9 j/ x' s# [9 J/ S; ]
- ;; first vertex which will be used as the starting assoc in the
2 B i. x- j' e# M! ]/ S - ;; call to nth.3 G. @; i, |* }
- ;;
: U9 H6 v. T, L+ H& ?5 g - (defun getLwVert (tmpctr / count tmp)
8 {6 c) N" j: R' J9 ~5 ~5 r - (setq count 0)
: o7 g& E; c+ {1 l( T7 U K g+ C - (while (/= (car (nth count vlist)) 10)
& y, X# F. W3 N2 O. R3 Q2 A - (setq count (+ count 1))5 ]5 }7 {9 O" K# H9 Y
- )3 _' c+ v9 H( Y0 @! l) r$ y) E
- ;; If the counter reaches the number of vertices,! Z5 q! K4 z7 j! H3 T4 l" v9 u# G
- ;; reset ctr and tmpctr to zero again.7 r5 i% @1 s: _7 Z
- (if (= tmpctr (cdr (assoc 90 vlist)))
# O, S; h: h0 i8 [6 I* _2 U - (progn
6 K8 t4 l; T1 p# `" v# ^ - (setq ctr 0)
9 [ K" N+ C/ B4 \% } - (setq tmpctr 0)0 P. z6 F6 R6 f3 |/ D6 p2 J: [
- )
5 z) [( A8 ~7 C4 p) O% T% O - )% \, h# e$ W0 [, M: M. d( P O+ H
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))% z+ H2 i0 G# H0 w/ C h r
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))0 o) C% h6 B8 a. q$ w
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1)), p& H' G+ h' ?' n8 D
- (setq tmp (cons 10 pt1))
) x6 ~% V- F5 M. _1 |. V - (setq tmp tmp)
6 o% E# G7 f1 I* l+ I - )6 {* n4 I( Q) [! e6 c+ U
- ;;
5 d& y* j1 _7 Y* i# l - ;; Set tiles for Spline properties. If the spline is rational then we
$ k1 }, q3 {8 Q/ P/ B6 r' p - ;; need to display the weight values of the control points, so set
. f0 V. v* m' N0 T8 Z - ;; flag to 1.3 Z' ?3 D$ K* h8 w+ U" _4 k8 t
- ;; 1 = rational spline/ A% c% Y* n; o) d( V+ d/ Z
- ;; 0 = non-rational spline# X4 h7 c ]* F
- ;;$ _# k) }9 J4 N! c$ u6 R
- (defun set_tile_spline_props ()
6 a, `. D( _1 {4 I4 G - (setq rational_spl_flag 0) ;; initialize rational spline flag
/ i. y# }9 D4 w8 [" ?5 [/ i8 U6 K' F - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
; O Y( x! S4 O j% H6 x* O - (setq bit70 (cdr (assoc 70 elist)))
$ k! [2 s5 l7 C. h1 \+ ?6 M( n - (if (= (logand bit70 1) 1)
9 J& s2 s6 D7 N; K" e. R- b' n - (set_tile "SpProp4" "Closed")4 ^% t6 \) s1 p; N, }1 ]$ q: L: l6 a
- (set_tile "SpProp4" " ")+ M: q. s( G/ j" |" x$ `
- )
& v. _2 N# t6 R5 B! x* P - (if (= (logand bit70 2) 2)
4 }+ R) M( G1 |6 m. B. Q: Z - (set_tile "SpProp3" "Periodic")
* ]2 D3 u6 `. b! a7 z: ^ - (set_tile "SpProp3" "Non-Periodic")' T N* q1 A& ~' v4 ?, U
- )
9 E3 C6 p& r. G7 j - (if (= (logand bit70 4) 4)
) p$ ~2 r6 l% P- t - (progn
! B! j2 d4 z1 p, _# m% V - (set_tile "SpProp2" "Rational")
- C7 H) h2 I( W( E& t4 l - (setq rational_spl_flag 1) ;; this is a rational spline8 y" ^3 C" f- Z) l& o+ ^
- )8 O1 r' o, ]2 N* x" h2 B
- (set_tile "SpProp2" "Non-Rational")
. W5 S4 V. z4 ?4 q" `% _/ H - )4 G2 }0 C" U( k& ~
- (if (= (logand bit70 8) 8)
1 q# j2 n' {, \! Q$ m4 H) K& p - (set_tile "SpProp1" "Planar")
3 a7 l/ H6 c8 f - (set_tile "SpProp1" "Non-Planar")
2 [4 `) f5 |" ]0 _& G+ K - )8 K* l5 g7 d; V2 Y; C
- (if (= (logand bit70 16) 16)" h; \! R0 K+ B
- (set_tile "SpProp5" "Linear")1 U; g: u7 l* Z9 |* k
- (set_tile "SpProp5" " ")' ]1 | o9 h# W* o4 f( m& r
- ) b6 _' ~' a! ^1 W
- )9 q3 \. u# ^5 \1 ~7 T
- ;;
T# l# w/ G% n! l; L7 V) c' } - ;; XYZ Point values for spline points
8 F8 D$ {" S: {( y7 w+ ~9 ~4 I - ;; Need to account for WCS/UCS( P- [% o5 x/ T
- ;;
# v; L& M) a2 O. t* V* R' b1 H - (defun set_tile_cntl_pt ()- V$ Q7 ~- j' Y: v+ b" P- r
- (setq cntl-pt (cdr (assoc 10 elist)))* K' B W4 {6 _8 O/ ]7 }8 n$ n. W
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))- [* W/ F) L6 \) W. A
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
3 T) ~9 p/ K1 x - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))5 r3 B3 E/ i: x. u
- (if (= rational_spl_flag 1) ;; if rational spline) R2 `% ^" Q q$ g2 [
- (progn ;; show weight5 v+ N2 T1 {( e: f+ n8 L$ x
- (setq weight (cdr (assoc 41 elist)))
- w: e) O1 m: J) B - (set_tile "weight" (rtos weight))
( ~$ P& c7 _) a3 \( N0 v* t, r8 h - ) ;; else
' R( t D+ U. |# B4 I& u7 Y6 l4 l - (mode_tile "weight_text" 1) ;; disable weight field% i6 ?/ D: {8 I* l
- )! Z2 v4 g! r" L, J
- ); U) y5 n' C% Q" z4 j, j
- ;;
* H5 T0 e5 c( i - ;; XYZ Point values for spline points
! `) Z# Z8 w% Q- C, j2 n7 i) V/ q - ;; Need to account for WCS/UCS% w; k; Q& K2 X2 i X2 T8 @
- ;;( K) z# M' d; D* z. H
- (defun set_tile_data_pt ()/ h0 u G8 N R2 c8 C9 \
- (if (not (assoc 11 elist))
( c, T3 z5 I8 R r" m - (mode_tile "data_pts" 1)
9 N0 m! h, W+ g1 ^& W$ R: o5 z - (progn0 |$ B* ?0 J- J! ^ E; i
- (setq data-pt (cdr (assoc 11 elist)))
; G K' m- l8 O, q - ;; display points with current precision.* D) A; I' T) N; i) B i
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
" M: g) A4 Q/ M( s, ?8 N - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
( f5 S8 ?4 B0 O# M, ^$ m* ? - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
/ Y. x( J5 \1 X: W - )
; w2 {/ S- [ l: b" u, q( ^! m4 Q - )/ j9 X4 L- e: G* A) E z' b0 O0 v
- )
4 g( ^( N+ v/ W) P - ;;! @. s+ `* T% ~
- ;; Fit curve, fit spline, or smooth spline surface setting
3 a& O5 P5 t8 {! ]3 k% [ - ;;
: O' A% |5 B# E+ {& y6 @* I - (defun set_tile_fitsmooth ()" e; j6 Y6 d+ [* e5 [
- (cond1 Z& w; {- y5 P1 K
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
5 m% V, g8 S( `5 k1 E* N - (set_tile "none" "1")
& @" O6 W, R* u o- @7 f Q: K - )# m+ H4 V' U& U( T9 e x. G! N
- ((= (logand bit70 4) 4)
9 R9 K' i; H$ J- w% t# ~ F - (cond
: i1 B; F1 z; H( b5 T, U& c - ((= bit75 0)
5 X4 [# Q& k$ {) C7 D/ g2 w) m - (set_tile "none" "1")
, ~5 W2 Q; F' Y6 @$ r - (setq spltype 0)( k. f) y- Q4 f' x) n
- )" R$ _) E1 @' t2 h1 Y# a9 R
- ((= bit75 5)
% p7 n( f! e: F& T - (set_tile "quad" "1")
$ X( |1 d* `- \9 V' ] - (setq spltype 5)
" N" i+ E9 W0 y8 T5 U - )
) _7 b6 I) a* ~2 i - ((= bit75 6)
, w6 q9 }+ M; ?- C) f" V - (set_tile "cubic" "1")+ B4 d! A9 j' g! P9 Y6 q" T6 D$ L
- (setq spltype 6)
' i, ~. n4 h' a+ B; Z4 G9 ` - )8 q) I6 k% {6 j* i
- ((= bit75 8)" @! Z. o9 V U& [; k! k% `+ [' S
- (set_tile "bezier" "1")2 }' V5 L# K; M3 l n4 @4 t/ R
- (setq spltype 8)
/ }' }1 Z7 Q4 c! q - ). L, h w1 ~0 w* i9 f- P
- )4 j& p+ ]2 e0 Y' z2 d! Z: |* v
- )) g+ b% {- k" u6 X% X( d
- ((= (logand bit70 2) 2)
0 Q6 Z: u" Z1 U' h - (set_tile "fit" "1")( x6 Y: n, n+ J2 p& m, z1 n
- (setq spltype 1)
6 K. q8 D; a0 g5 I2 }- S- ~3 _ - )
( V0 I5 S: e! I - (T (set_tile "none" "1"))2 @6 M( b: h/ `7 }
- )2 V; C5 M/ G' o9 C$ B5 p
- ): A+ T4 n V& F/ c4 P
- ;;. f4 w8 W; ?0 J; K% Q
- ;; Closed or Open mesh and polyline setting
. q3 N' ] q8 m) c6 [ - ;;0 q' |- p3 o& z3 t% R5 n2 V: f: X
- (defun set_tile_closed ()
U6 U. d9 ~3 Y/ g. m" B2 {- v - (if (= pltype "3D mesh")
/ c2 `8 k$ v" L2 b. d& ^ - (progn
1 V+ m9 C1 R j! v F" \) {7 { - (if (= (logand bit70 32) 32)" E3 |% ]) ^" U" s& b8 x7 N1 @
- (set_tile "closedn" (setq closedn "1")) X6 q9 p7 J- [6 u
- (set_tile "closedn" (setq closedn "0"))6 r) D3 _+ \' _3 S0 u- {' F6 Z) V
- )
+ o+ q+ F/ h; u! V" w% c- W - (if (= (logand bit70 1) 1)
% d# g# o8 C' Z - (set_tile "closedm" (setq closed "1"))* s- i6 B1 b! E) U& s6 D
- (set_tile "closedm" (setq closed "0"))4 _- e+ t1 [) L9 S( X6 W( [
- )& l* X1 r L, G) m, E: N+ z+ H
- (setq old-closedm closedm old-closedn closedn)/ O! h ~6 E% Y
- )$ S- R) u" j# E$ b; ?+ m0 F
- ), ~4 u9 V) l, C( K6 P1 q& K
- (if (or (= pltype "2D polyline")7 i+ ^ N4 h) @7 p
- (= pltype "3D polyline"): ]2 _' m; t! S+ Z- a2 _. v, K% ?
- )' O, |3 |( \' H! t
- (progn
& |) R/ I% u' B$ z- v - (if (= (logand bit70 1) 1)
6 Q7 ^& f8 f' _" z" Z: F - (set_tile "closed" (setq closed "1"))3 R5 n4 p* P) e4 i" a0 [
- (set_tile "closed" (setq closed "0"))* \: g9 K9 p& \3 L s
- )
- }+ | M1 N7 |0 |0 Q - (setq old-closed closed)
# ^, ^! i, D" m8 i# F - )/ y* \: H3 N" [! H7 g- {
- )
3 n5 `) m) X; ^$ B3 v - )/ P, T* B* d5 G: H* p
- ;; Set common action tiles$ ?! B# b* B) k
- ;;* y0 l/ m" o* {% ^
- ;; Defines action to be taken when pressing various widgets. It is called& S$ `5 i- N6 a- T8 d
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
, W% J4 X9 V* V+ J! |4 r; X - ;; but defining an action for a non-existent widget does no harm.
6 `7 s/ z3 G3 }7 p - (defun set_action_tiles ()
5 u0 F$ b; y1 w8 b6 B& D - (action_tile "cancel" "(dismiss_dialog 0)")
1 [) F* G+ E4 u, a; T0 z - (action_tile "accept" "(dismiss_dialog 1)")* b) Y, p, h, `2 X1 P
- (action_tile "help" "(help \"\" help_entry)")
- [( { l% C1 h2 C - (action_tile "b_color" "(getcolor)")8 H) v/ p6 J# ?) g
- (action_tile "show_image" "(getcolor)")5 V0 X6 r& h1 U5 h" i7 [
- (action_tile "b_name" "(setq elayer (getlayer))")& r) ^- L! n' A8 U
- (action_tile "b_line" "(setq eltype (getltype))")
* a& A* a3 U, o! @' N - (action_tile "eb_thickness" "(getthickness $value)")- g! b( i1 }5 d7 }7 G; K
- (action_tile "eb_ltscale" "(getltscale $value)")8 Z2 E8 p% E- [3 Z% [
9 ~4 [' v5 J) X- (action_tile "pick_1" "(dismiss_dialog 3)")0 k" W% o1 h2 W: l8 {9 j% E
- (action_tile "pick_2" "(dismiss_dialog 4)")
8 L/ B$ Z) A. k1 W - (action_tile "pick_3" "(dismiss_dialog 5)")3 V# C9 g: E) o
- (action_tile "pick_4" "(dismiss_dialog 6)")# Q2 f3 f, u: G) ]9 Y4 P. z; ~: D
- (action_tile "x1_pt" "(ver_x1 $value)")' Z9 ]! W. ]: D* A4 h
- (action_tile "y1_pt" "(ver_y1 $value)"): |6 B( n; N3 l5 U, M& m* l
- (action_tile "z1_pt" "(ver_z1 $value)")
$ w) F! ~ q9 v+ U; @' s# G - (action_tile "x2_pt" "(ver_x2 $value)")
6 }. Q6 v2 k2 I7 h% L3 g1 ~ - (action_tile "y2_pt" "(ver_y2 $value)")
k6 D! O3 B: ~' u1 Q) ^9 L - (action_tile "z2_pt" "(ver_z2 $value)")1 x$ M9 c6 Y! K2 m; U, b2 i
- (action_tile "x3_pt" "(ver_x3 $value)")
4 K" T( A# N! L - (action_tile "y3_pt" "(ver_y3 $value)")
, X+ _% T& S& i8 g$ ]" _% ]% p - (action_tile "z3_pt" "(ver_z3 $value)")
7 R6 X/ N/ U' \4 a - (action_tile "x4_pt" "(ver_x4 $value)")5 t2 T9 [6 a5 l- X" d
- (action_tile "y4_pt" "(ver_y4 $value)")4 Y5 U# N- Y7 R
- (action_tile "z4_pt" "(ver_4 $value)")
- H+ f' i5 v* w; K7 U/ x - 0 @) z# P0 [- j9 U2 n4 d8 i6 _
- ;; Action tiles for Xline & Ray
; k* N: U$ H2 F, L6 ` - (action_tile "xline_x1" "(ver_xline_x1 $value)")
3 H$ F8 I x+ [ - (action_tile "xline_y1" "(ver_xline_y1 $value)")
7 L7 _7 Z! v6 d9 G7 ?$ d - (action_tile "xline_z1" "(ver_xline_z1 $value)")
1 o/ r' p1 t8 B" \/ b4 S0 L - (action_tile "xline_x2" "(ver_xline_x2 $value)")! _/ K, A# z; U5 x# r2 a, k: t
- (action_tile "xline_y2" "(ver_xline_y2 $value)")
8 ?. `& b; `0 g- p' J. f4 ~ - (action_tile "xline_z2" "(ver_xline_z2 $value)")
F' S0 y& C8 t5 V
, j1 J0 |$ J2 S/ C! H ~2 J- (action_tile "edge_1" "(setq edge1 $value)"). q" m1 j( ^' r: Y
- (action_tile "edge_2" "(setq edge2 $value)")
! l6 {+ E) P: H- q - (action_tile "edge_3" "(setq edge3 $value)")
: g6 s" O, T. M - (action_tile "edge_4" "(setq edge4 $value)")
9 {0 Q5 p1 K+ z5 n! y4 C - 0 r0 N9 b1 o! S1 J( v1 T# p$ D; a
- (action_tile "radius" "(ver_rad $value)")/ H% @" ]5 \, K0 _3 U
- (action_tile "st_ang" "(ver_ang1 $value)")4 Z, u% @( S0 Z; X& S6 E
- (action_tile "end_ang" "(ver_ang2 $value)")
/ @* `! C3 S0 T; b" a, ^ - (action_tile "end_eang" "(ver_eang $value)")# k" ?# o4 ?2 v" b6 [( w4 [
- (action_tile "minrad" "(ver_minrad $value)")
+ G1 P% L9 t* `+ J P- b7 ^ - (action_tile "majrad" "(ver_majrad $value)")
. a. D; r. @2 e( A- n4 |
" @6 K* |1 u. B- (action_tile "xscale" "(ver_xscl $value)")
9 ?" o; x# w$ ~. A5 H - (action_tile "yscale" "(ver_yscl $value)")+ O& y' O, Y2 V$ D
- (action_tile "zscale" "(ver_zscl $value)")
2 H/ p: x% W9 d- E# o# B$ w k! Y - (action_tile "rot" "(ver_rot $value)")
) u3 L# e2 O# R - (action_tile "columns" "(ver_col $value)")
! N' W3 \/ w/ r' ]6 A - (action_tile "rows" "(ver_row $value)")6 i: d) k' Q5 u% X3 u0 V- v" ?' g6 C
- (action_tile "col_sp" "(ver_colsp $value)")* s$ U1 ]0 s4 g: n; O$ c8 L- `4 h
- (action_tile "row_sp" "(ver_rowsp $value)")
# g( h- ?+ T) N3 P) Y9 @# P
9 M! y/ x; C' c! ~ a4 H- (action_tile "hght" "(ver_hght $value)")
* ], y0 H2 X4 J. b0 t$ }& O - (action_tile "wid" "(ver_wid $value)")3 R& q3 {" i d4 @+ L0 g
- (action_tile "obl" "(ver_obl $value)")) G! o' j/ W& }' n9 d1 n
- (action_tile "style" "(style_act $value)")
+ n: D9 A0 f U! t
1 n# t1 Z# Z( c) o" s* G- (action_tile "t_string" "(ddgettext)")/ T% I. V/ S3 Q, t e/ B
- (action_tile "tag" "(ver_tag)")6 p2 v. [) s0 O4 _
- (action_tile "prompt" "(ddgetprompt)")3 C( u$ |* z! e. g1 ^. `# I& \0 S
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
% T# p' Y1 @* r1 ?# O9 L x: _9 S - (action_tile "upsd" "(setq upsd (atoi $value))"); R$ z! z0 c" k
- (action_tile "inv" "(setq inv (atoi $value))")& n$ q, @9 I( p
- (action_tile "con" "(setq con (atoi $value))")3 L+ R' Q, E0 I8 Y+ w1 @: h
- (action_tile "ver" "(setq vfy (atoi $value))")8 ]# H# A4 m* d' [0 n3 \. @& |
- (action_tile "pre" "(setq pre (atoi $value))")
8 O% ]( b# w* r* o0 E1 y6 | - (action_tile "popup_just" "(jlist_act $value)")
) q* w" ^) T* x# u' v - % A9 a0 u! f- }( W; b F
- (action_tile "closed" "(setq closed $value)")) `/ k+ d/ s L
- (action_tile "ltgen" "(setq ltgen $value)")& z7 h' U v: ~3 r3 g
- (action_tile "closedm" "(setq closedm $value)")
* _! h* {; ~, f S. @* h/ Z - (action_tile "closedn" "(setq closedn $value)")
\% M) ?& B- L4 ^& o+ f - (action_tile "next_v" "(next_vertex)")6 r5 M4 B( [& Q2 a5 L9 }
- (action_tile "xcliponoff" "(setq xcliponoff $value)")$ `( @- L" N1 L/ D q
' M: P4 `1 W4 @- (action_tile "next_cntlpt" "(next_cntl_pt)")
8 Y' R" q5 x6 Z1 ~8 @6 D - (action_tile "next_datapt" "(next_data_pt)")$ N+ K- e9 N( c- a# j
& t" y. \2 b7 [/ v. {$ R- C- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")6 D+ z9 l( [( T5 y8 R5 k8 o% c) D
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
* P+ m3 ^" T- \9 g2 O - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
2 A, S" P: v' v& c0 N - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
7 q0 n- g G1 G3 G - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")3 J; \2 J- F" N3 x
- 0 q# D+ R, Q9 |$ x7 m
- (action_tile "u" "(ver_u $value)")& Y) L" B1 W" H. |& _- R& A5 \ v- X2 J
- (action_tile "v" "(ver_v $value)")8 C3 H% ^9 n8 ~( h3 [
- )
9 x$ @8 T' t3 A" a8 R. l! G - 3 ?5 h, B" q! s; D0 ]+ D
- (defun ddgettext()
. x. Z0 R* E; A k# G4 T5 ?+ q& b - (setq text (get_tile "t_string"))$ x6 S8 T' X) ]3 g/ n
- )8 {, i' M' C: |9 n. Z+ \# K! ?
- ) a7 U. K& K! B8 v- c5 z7 d- U
- (defun ddgetprompt()
9 d, M" _' X2 T+ B( }9 S - (setq atprompt (get_tile "prompt"))
" D: P, Z! G# e3 _+ e0 v - )
; U2 R" F. x+ V' C6 B% O6 b4 T
1 g; W4 B3 ~& \! h2 w- ;; As OW doesn't support disabling of individual radio buttons within
$ K* e# C0 ~" j5 C0 ?, L - ;; clusters, a check must be performed as to the legitimacy of the7 ?5 F* B) E* z" h% o1 b
- ;; button pushed and reset if necessary." E4 `9 @9 |2 a' _1 B
- (defun radio_gaga (pushed)3 u, X5 G' I, i
- (cond
& X0 H$ L9 X+ L3 G+ p* V% V - ((and (= pltype "3D polyline")' D* F/ ~, Q2 o5 W
- (or (= pushed "fit")5 K: w2 M" G8 s& k( L) c) l3 P
- (= pushed "bezier")* T/ @ L" y7 C" s. X
- )
! O6 [+ {4 J: \0 _- Q: i! ` - )
2 C( r7 V6 R1 G/ c P3 ^ - (set_tile "none" "1"); X8 k g+ I! v# f1 Q
- nil
& t3 D. W) G8 R" S9 d+ ` - )
6 t; c9 d' O7 w( L1 x- Z - ((and (= pltype "3D mesh")
- I9 H) h" X% ~3 [# Q - (= "fit" pushed)( I3 p. ]& d( B5 q! s1 z
- )$ ~7 b) ]; c$ l! S5 _
- (set_tile "none" "1"), v Q- A) Q6 {- f
- nil9 K1 L+ o% R0 B
- )
; |: w5 X( O' d. I - ((= pltype "Polyface mesh")
* q3 o3 H0 W) h4 [' G, F" H - (set_tile "none" "1")! l5 @6 `1 X# b7 x9 t* e
- nil
: U% i! ~3 v9 {: n& m. h% d1 b - )( Y8 c' O( m* _( Q1 ^: J# D
- ((and (= pltype "2D polyline")+ E: N9 ~. w! Y/ O. }6 t% z
- (= "bezier" pushed)% U1 V3 L8 ` i- T( s
- )
: q& e# A5 L( |, ^ - (set_tile "none" "1")- }& g$ W; p$ w- Y& n; ^, Y
- nil
* `/ m0 D. ?9 ]4 @$ c# i: b: V* O - )) K/ W8 e+ X/ D7 K0 R$ m# L ~
- (T)* |1 O1 W* P# g: g5 N
- ), ?( i1 O7 @7 v9 T$ @& z8 L% p
- )5 b! |' k X: G0 P3 p* G0 N
- ;;' C9 z2 [: J6 D. r( W$ K
- (defun set_uv (type_n)
7 i& N: V! n- x: D- U! Y - (setq spltype type_n)4 W& h' R2 J% [; [! F
- (if (= pltype "3D mesh")* ~2 O4 {3 D1 p' }( H2 @
- (if (= spltype 0)
/ b+ B3 ~0 L% I# h - (progn) M& Q; V& W# j% F' `$ b
- (set_tile "u" (itoa (setq u 0)))
3 p Q' j$ B) N. x - (set_tile "v" (itoa (setq v 0)))& E; M! K8 W! N0 P
- )
# |' d/ J: V; @ B& y8 _ - (progn
1 [( }( s9 z6 c0 e& O/ ^ - (if (= u 0)" G) M+ u. Q) v9 A7 \$ B5 l1 {
- (set_tile "u" (itoa (setq u (getvar "surfu"))))' P b# f( b* S! p
- )0 T, K2 z- L' A9 y. `4 N
- (if (= v 0)& U8 V: O; ]+ {
- (set_tile "v" (itoa (setq v (getvar "surfv")))); g5 R. ^4 t3 }7 G* u, z* |4 y
- )
( F* J' w" k- x - )
8 g$ D4 f; j/ g J% d5 F% N - )
! S# K/ ]( F' p2 g' b& R/ { - )& Q7 G- L! z4 m5 E' _( h" d
- )
$ ]4 Y7 \9 m4 ?% J1 U5 o - . V8 I. m" B$ M8 r" F
/ T/ T- {* P0 z+ H- ;;
6 L4 V; _) `* A; y) c/ d: ~ - ;; Verification functions
+ B$ o- n2 x% f - ;;+ }) R" M1 [2 l
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or
7 x4 V# @9 z6 }7 ^7 Q$ e - ;; distance value, the tile name, and the previous value as arguments.+ ~7 `3 ~. h( @4 t
- ;; If the distance is valid, it returns the distance and resets the tile.) e; J, Y) N* N
- ;; Otherwise, it returns the previous value, sets the error tile and keeps
; j* T2 y: z6 z9 h- H& B/ J - ;; focus on the tile. Shifting focus to the tile with invalid value can y# J$ D3 A$ B/ K3 n
- ;; trigger a callback from another tile whose value is valid. In order
3 \ ~$ p) V( B V1 g2 H0 [ - ;; to keep the error message from being cleared by this secondary callback,
! v& C4 ]( ?% E0 ^0 k$ u2 W - ;; the variable errchk is set and checked. The last-tile variable is set
$ F) @& e2 o+ J8 Z - ;; and checked to ensure the error message is properly cleared when the
/ g/ Z0 E. F5 E; x - ;; user corrects the value and hits return.
. z1 K b6 o1 R4 v$ J( y/ T - ;;
# ]* R0 p! F0 K& X: U - (defun verify_d (tile value old-value / coord valid errmsg)
# i( p* {+ c! d; l - (setq valid nil errmsg "Invalid input value.")
* @& [$ K3 j( H: [" c4 Q: a5 E - (if (setq coord (distof value))
- K" Q V# [6 U ^: ~+ I( C9 T8 ~ - (progn4 u5 U* S) x1 J( H, u
- (cond, g$ H% d) y$ B$ {7 K" C5 E* S
- ((or (= tile "radius")* U |7 \( O; h2 H8 x
- (= tile "hght"). ~6 K: ]4 ?+ r W
- (= tile "wid")
' C% I R* K6 M8 o2 u5 v - (= tile "majrad")4 \% H3 }. ^& a" C% T$ T$ A
- (= tile "minrad") y0 W4 o2 z, }! O; x: x$ N
- (= tile "eb_ltscale")
# B( w! S0 o- W* l9 k( C3 f; I - )) G4 ?/ d; G; ?* H
- (if (> coord 0)3 H# s6 x3 y% N8 o2 ]( Q' E
- (setq valid T)
) R+ x/ i( ^8 W9 K. m - (setq errmsg "Value must be positive and nonzero.")0 d* h0 \# t. W _
- )% _" o* W3 R/ U
- )
7 h; B+ F, Q' R7 a8 T - ((or (= tile "xscale")
" y5 i: L# _! d$ l" } - (= tile "yscale")
: m" q* j) T1 f: c E - (= tile "zscale")
% T& f Y( L. t - )/ p# g. v3 ~+ P8 c$ i& j
- (if (/= coord 0)
8 g$ a. S! l6 l8 ?4 Z' m - (setq valid T)
; s& D& X8 n3 |7 A" I8 F - (setq errmsg "Value must be nonzero.")
7 j4 A, `8 ^( y- R8 @ - )
. ]: y9 N8 J8 v, |' R - )
0 K% |( T+ a& A+ q - (T (setq valid T))
* S* Q) W4 D9 U! g! Q - ), r W1 J ]' A7 R c
- )2 S" n! c+ h) j& r
- (setq valid nil)# ?; V4 w& B2 Q0 ~$ e
- )5 ~2 a, V" D- E! ^( r* h
- (if valid
" H( [3 b: f v5 o- z& |( f - (progn
: ^! y( D, g, _ |6 W' z; T - (if (or (= errchk 0) (= tile last-tile))
4 P" a0 A- [' ^: }! A" o! G x - (set_tile "error" ""). c A5 c5 U0 ?+ O
- )
, \+ o( {& }8 R0 K - (set_tile tile (ai_rtos coord))- q; C: K" N1 h8 u
- (setq errchk 0)
, m) {/ T. P7 t- b$ N' A - (setq last-tile tile)
9 Q. S& Y* o4 @) C) e5 _! o* d9 t& k - coord0 y) d# `2 {8 H. b4 x# `( F" E% u
- )3 K1 t/ W* ~, E& G5 H# ]
- (progn
6 ]- ^/ F* e) J7 F - (mode_tile tile 2) ; Move focus to offending field
" t- U: L3 g* c - (mode_tile tile 3) ; Select offending text
3 ~7 ]0 Q) R7 R( n - (set_tile "error" errmsg)& J/ C6 C# @+ R7 }; u
- (setq errchk 1)
* \8 [0 n" ^) P& M$ ~ T - (setq last-tile tile)
: ?9 F4 V ~0 M' }% v. ^ - old-value
4 M8 [& w* g$ a - )
- ]9 K0 b. ~' R% A: [- U/ a - )
7 ?0 K" c) G. \& T% ~3 ] - )
' T, w, q+ G4 W% ^ - ;; Function for Xline coord edit box checking.
1 U0 S* t" p3 T6 A, e* ]3 O - (defun verify_xline (tile value old-value / coord valid errmsg)
! E6 c! G* y, r C( k3 q - (setq valid nil errmsg "Invalid input value.")
) G& ~0 G1 F! c+ `% e3 c/ y - (if (setq coord (distof value))8 T: r# L( m: H1 ^
- (setq valid T)
9 k: f& Q J( H: a( y2 A - (setq valid nil)6 s R- ~& H3 }7 a, u5 Q
- )
9 Z6 }0 G& x( L! A+ J7 i - (if (and coord
1 ~+ {$ T8 y+ N- v) l" a% k; ?( X - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) ) H) m0 x) a' j
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )1 j0 M8 `! p( G" E, }! O9 \
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ). I) ^# b- B. G0 `7 u. \ \
- )# y- C0 E. S% |6 I& A' C1 ~$ a$ m
- )
* Q' D4 ~& |/ W( x# w4 [ - (progn: z4 B9 I* V0 C9 u9 n/ G$ l& `/ `) C
- (setq errmsg
* @9 b+ y7 j4 U) E2 H& @# C - "The Root point and the Second point cannot be equal.")
' j. ^9 n3 \3 ^/ V' j- | - (setq valid nil)
8 G- Z) m; i; |7 o# W - )
& m- {7 O) q$ k9 T0 l5 N+ S) W - ); V' o% d6 A( x# j9 Y2 x( d" C
- (if valid0 d/ D8 Y9 M. J8 h; N, r0 v
- (progn z5 ]8 h9 B5 G: |1 o2 y0 @
- (if (or (= errchk 0) (= tile last-tile)) w% ]) t; h2 R3 H3 _
- (set_tile "error" "")" D1 j. n6 e7 K6 O
- )
8 f3 q, ]: `3 Q+ B4 T$ q { - (set_tile tile (ai_rtos coord))
+ ^3 `5 R$ t7 \, e - (setq errchk 0)* ]+ v/ B" W' P/ ]0 C2 B; Y
- (setq last-tile tile)
c+ L8 R- }* n! r- o. v5 D$ A - coord
1 \: D) T4 V) ^: A7 w( {: Z6 { - )
F* j& T( [+ B: u" Q* }* M8 {9 @ - (progn. f$ r, w2 g! U8 H7 w8 I/ T
- (mode_tile tile 2) ; Move focus to offending field
5 A$ q6 {( ~! L) U) W - (mode_tile tile 3) ; Select offending text5 X. H7 k5 D/ i( {0 B5 T
- (set_tile "error" errmsg). E; a, J( ?/ T! y
- (setq errchk 1)
- C+ M9 i4 }, `6 L$ L - (setq last-tile tile)
! _5 c7 n! L6 N" P; n2 o* V u - old-value
9 p% g9 q% {1 [, ^ F - )
8 W, i3 {* }( u - )# j$ N( l+ g& l+ L( E" V
- )1 G5 C9 S$ R0 r: r& \+ c0 f0 A
- . M' }% g: [* d- [; ?$ W) w1 {
- ;;
7 {6 i( k. P- T2 U! g# a$ E - ;; Verify angle function. This takes an angle and a tile name as arguments." X ]' ~: M+ S5 d4 B5 H7 ^9 n7 x* S
- ;; If the angle is valid, it returns the angle and resets the tile./ G* }# J& q a9 w& {* y& r [2 O& P
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
( \2 |8 E! y6 D - ;;
) `+ i! b( S! u% L9 v' K8 q! ` - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)- L" w$ h% }3 \3 i( W
- (setq valid nil
5 m( D2 I1 z% c- ]+ G1 M - errmsg "Illegal input value."
. K; p( a2 p" H- L% | - ), q0 l8 L& w& x; {% T& N' ^8 p
- (if (setq ang (angtof value))# b! t' H6 F' O6 {; x4 y
- (cond, x5 y* Q6 j" ?. @2 S) S
- ((= tile "obl") ; Restrict obliquing angle
. R* h6 [$ N' B' E - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
; e$ l r' @: _" @% } - (if (or (<= ang oblqmax)4 O2 ^4 d( P% t: y* _7 t
- (>= ang (- (* 2.0 PI) oblqmax))5 _& p/ G; Y$ m7 j1 l8 |6 z" S
- )3 S; ?( X) F! A `- g0 K7 J5 o
- (setq valid T)1 i2 m1 `% i# J7 K
- (setq errmsg
* `7 h) G9 W- V* u& ]" y - "Value must be between -85 and +85 degrees.")5 z- E* @/ ^& M( @# a
- )! b: A8 c7 T* H; u/ y$ o) R6 ~
- )
6 {4 ]6 t0 `+ F* o - (T (setq valid T)) ; Other angles not restricted9 X; X3 M9 C7 X9 g; _
- )/ I# C1 [* m% Y; Q G/ T
- (setq valid nil) ; Invalid angle input/ N( ` ~8 k; w- `. c
- )3 r1 i4 b4 v( S& R3 y% \! q, j
- (if valid
" x7 z% I$ L5 r$ z- z% p - (progn2 j4 S$ Q+ l0 L a
- (if (or (= errchk 0) (= tile last-tile))' F% N1 Q0 K- W
- (set_tile "error" "")
5 Z- Z3 ~" e4 B - ) O1 Q& Y+ I1 v# S8 L. K- r7 V$ X1 g
- (set_tile tile (ai_angtos ang))! [1 ~3 d: O, G
- (setq errchk 0)
3 h$ L$ h# a0 m, b. U6 d - (setq last-tile tile)+ m. s3 `$ p2 C8 Q( i
- ang( k6 V8 E' Z1 _( d
- )
9 V% v/ Z2 t8 f" B8 Y - (progn$ {+ A7 M2 U/ m, X2 f
- (mode_tile tile 2) ; Move focus to offending field
- X2 j8 H8 M3 X, s; J - (mode_tile tile 3) ; Select offending text
* D+ A3 q0 o: B: c4 ` - (setq last-tile tile)& p: d% \$ E$ q
- (setq errchk 1), z5 M0 @/ ^ t
- (set_tile "error" errmsg)/ ?" I- X, ?2 q8 r
- old-value, S) c. l) S& r+ r
- )
% {& \- M+ x% \8 T3 r; I - )
' i4 V3 s1 E7 T4 X% e - )
3 G2 Z9 d/ Z3 m* b - ;;# t: ~1 O* _% q/ W
- ;; Verify angle function. This takes an angle and a tile name as arguments.6 d1 B+ Y" I5 S% t6 B% c
- ;; If the angle is valid, it returns the angle and resets the tile.
3 E" @" i$ Z; Y6 Q9 t9 |5 o O; Y - ;; Otherwise, it sets the error tile and keeps focus on the tile. f w, f/ S* P' j
- ;; This function is specifically for the end angle of the ellipse object. If
# E5 l& o" z, |0 Q- z; \) |6 B - ;; the end angle resolves to zero then we want to display it as 360.6 W& M! z/ r# D5 A
- ;;, b- L* W C8 g- f2 D/ g( t4 L# m) @+ _
- (defun verify_ae (tile value old-value / ang tempend)! f6 v# N8 V# ?1 ~8 W7 _4 l
- (if (setq ang (angtof value))
# F* M. G4 d3 j* P, c' E - (progn
4 I$ F h" X# s- J" X- t - (if (or (= errchk 0) (= tile last-tile))
* R2 p8 ` w0 t! T; S6 C( I - (set_tile "error" ""), Z1 w$ X9 j( c. ]' T
- )* D; ^6 \8 c( u! _9 q: H
- (setq tempend (ai_angtos ang))3 c: z! g: s( ?' |
- (if (= tempend "0")% x4 @- x3 [0 Q g
- (set_tile tile "360")( n4 Y. x: d4 f$ B
- (set_tile tile tempend)) O3 y5 C" g9 K- Q8 p. M& C3 F
- )* P, a2 a7 @7 _$ D! F; \! [
- (setq errchk 0)
3 J; H* U0 {5 @& F5 V6 p - (setq last-tile tile)
2 R. R; G6 p+ w2 M: ` - ang9 ~. }) ?' w; i* v- B
- )
" Z* a0 r) N% m- ? - (progn Q9 N7 m6 P! S, ~% C' L8 I+ Q3 E! @
- (mode_tile tile 2) ; Move focus to offending field. W7 A: b6 P6 ~: h; M
- (mode_tile tile 3) ; Select offending text
; i8 V: U$ J$ N% |: j - (setq last-tile tile) A: I9 w) q' J: ^
- (setq errchk 1)+ M2 t, {* p1 U$ p( p$ h. _: U
- (set_tile "error" "Illegal input value.")
8 f: w* D( a. r& O" z. `! K - old-value: `( s* r- Q$ T: {
- )
8 c/ W: W0 B X2 d - )
# t# I2 ^' `; y. N5 I7 e - )
4 }- P0 _5 i# D" z( r4 b& z l9 c - ;;: g* T1 }& s1 f
- ;; Verify integer function. This takes an integer and a tile name as
0 v! Y1 [: r1 K - ;; arguments. If the integer is valid, it returns the integer and resets the* a" Y+ y; S; \
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
/ P$ b } a* g. R - ;;) M7 v6 Z6 J8 B$ A2 S/ J
- (defun verify_i (tile value old-value / int valid errmsg)
0 q0 F* w' S* Q; Y$ t" |1 U - (setq valid nil)
7 M( q# t) `8 { - (setq errmsg "Value must be an integer.")
# S' w0 b3 Y7 Q& e2 U - (setq int (atoi value))
. _. I$ g0 @3 ?0 k - (if (setq intchk (distof value))
) l8 D B5 j6 b9 w# t - (cond
6 D" k) D) l; n; C7 f* z" @6 X - ((or (= tile "columns") (= tile "rows"))
; h, c1 ?$ @5 A! `: V4 d - (if (and (= int intchk): v$ A2 R4 E. s2 h
- (>= int 0)
9 h) T; H, i t2 U! P& N+ R5 G' Q% ^ - (<= int 32767)5 w0 S# C6 i1 @3 }/ B8 u5 r* E! H
- )
( M' J/ r) D' i - (setq valid T): i) h0 W. v, ^! f9 i
- (setq errmsg "Value must be an integer between 0 and 32767.")* F8 f* w/ x/ |. a. e3 j- a9 U
- )% L2 S e H* |) w8 [7 u
- )& U. i I$ Y. W! e9 N, e' O2 f% E
- ((and (or (= tile "u") (= tile "v")))2 a. K" M! C* a( l/ p% f! e" | b
- (if (and (= int intchk)
1 v4 J4 P/ c9 [+ F! ~3 u - (>= int 0)
8 J6 a) A9 E/ O& P* Q6 I - (< int 201)7 Q0 m8 p% I) f" W# v) _- k
- )
7 o, Z& k3 l, D7 k' L - (setq valid T), n1 \- L: K, o; A. m" ^
- (setq errmsg "Value must be an integer between 0 and 200.")
5 T7 E7 ?, A: V - )! W/ a) h5 @3 b3 M
- ). w1 ?. O& {2 g# R3 p7 Z* j8 x l
- )# X+ f) `" ?& z0 X; f) m u: C
- )
+ D' h8 J6 @! r - (if valid
Z7 ?4 D8 u! ]0 ] - (progn) B* `3 ]( h& l. C' H' R5 r
- (if (or (= errchk 0) (= tile last-tile))
6 D, {9 H r$ C' t+ P6 Y - (set_tile "error" "")
& f) F2 ]3 J3 G - )" U2 K# Q+ A4 N
- (set_tile tile (itoa int))
- z, c7 z V9 J - (setq errchk 0)
- c5 v0 q4 `; z+ Z5 J - (setq last-tile tile)) K) a' D7 H7 Y& t4 L
- int
1 ~/ Z; d$ t- V( y$ N | - )% l' y3 F) I) f- a r
- (progn
8 X# l' m) d1 x: G- [" u - (mode_tile tile 2) ; Move focus to offending field
: I6 q0 i; J6 @0 ~6 ?5 M) J7 y - (mode_tile tile 3) ; Select offending text
; c5 h" L# t* G6 p - (set_tile "error" errmsg)
7 R& |2 f* K9 W# c [9 B9 ~ - (setq errchk 1)
' R- {0 `1 c# v+ E8 m7 ~ - (setq last-tile tile)
+ J* x* ^1 \( i- k- D3 C( R6 Y - old-value% i b- R0 ?" [6 s8 U
- )% k% J6 g+ _" d- A$ \2 [% `
- )- d5 `7 G2 t9 U4 s
- )# ?6 w: y8 d; M( [0 P; l$ n8 m
- ;;) x' I- j/ f. G" h+ b8 e
- ;; Functions that verify tile values for integers
2 y, ]3 S2 M+ J2 b T - ;;3 ^6 h8 q; G! e" M' Q/ M
- (defun ver_col (value)
" \8 I2 |3 d- V, _. L8 c- Q - (setq columns (verify_i "columns" value columns))
' U8 F; q) p% d4 v; L - )3 m' w2 d' o3 k, p2 r2 [4 s, V
- (defun ver_row (value): H% G5 o3 e" x1 @" p
- (setq rows (verify_i "rows" value rows))
9 q$ O+ \% Z9 ^! l - )! P! A' i& y" i, l( K
- (defun ver_u (value)
) M8 B7 h" V! T- j+ p - (setq u (verify_i "u" value u))
" p8 C" c- c2 v; _5 H( _ - ) Z; I& ]7 s B! a4 S2 P8 `
- (defun ver_v (value)
. Y0 c7 \/ Q# D9 j+ m J4 Z - (setq v (verify_i "v" value v))
1 K' o' u3 r6 ? - )/ k4 N3 x& w. F9 n, v$ B; a
- ;;: E# j8 n7 U/ F
- ;; Functions that verify tile values for reals6 }8 T$ y4 \9 M0 e2 Y3 R% t+ B# v
- ;;
5 A3 K1 I) M- D) B% S1 |6 m. D - (defun ver_x1 (value)( h; x1 y/ L3 w Z% O x4 l! P
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
8 V& r1 P0 l! }. F- ^' M - )! n+ z# O: S' w9 P
- (defun ver_y1 (value)
6 w3 _7 x" y6 g u1 ~+ C - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
% }$ `0 [* O0 @ - )
5 G3 S7 n, Q& K+ ]0 E; b6 g - (defun ver_z1 (value)
# }6 @, X& s; D' C$ ]1 v - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
" F* o' o# J+ I, b) c - )
* F8 s) i% k. ]9 Q - (defun ver_x2 (value) b1 e9 j- q; {. M9 A( R
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
, h! U! o8 x [% m: \; Y& _ - )* A0 u0 A3 L1 d2 V" K2 ?3 |
- (defun ver_y2 (value)8 e# T& r' r. }* z6 A. W! A
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
5 n7 R4 c, w% u( f( | - )
( I. G9 j) |: G3 @ - (defun ver_z2 (value)2 f( F; S2 X# P
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))4 @) u0 X: Q& [% _/ R
- )
7 N: c. x Y2 B. k& E7 y& L - (defun ver_x3 (value)) L7 f9 ?3 A I
- (setq x3 (verify_d "x3_pt" value x3))
4 G4 \& p0 n0 `. Y3 V - )
& ]/ a# h! U0 s3 N& S - (defun ver_y3 (value)8 _! d# e. T$ w
- (setq y3 (verify_d "y3_pt" value y3))- x( v6 }* w) m3 P9 e' e2 ^1 o M8 x
- )+ Z/ `$ Q) B* g0 G+ J6 V
- (defun ver_z3 (value)
+ [3 m5 Q+ w" }" o, P# M4 ?" C - (setq z3 (verify_d "z3_pt" value z3))5 x! q1 [3 }6 Y! g, D {& c1 h ]
- )" y J8 ~$ c- ^- T
- (defun ver_x4 (value)
" V' E; x6 P/ Y, h - (setq x4 (verify_d "x4_pt" value x4)); Y! _! ]! ]9 t% @1 {
- )/ t" @9 A' o2 L# U0 z
- (defun ver_y4 (value)- e0 n5 T& h* b. T8 u! G' w
- (setq y4 (verify_d "y4_pt" value y4))3 O- o7 ?/ G2 J) [2 p( Y. D
- )
$ I3 m6 I) `. \9 }* I - (defun ver_4 (value)( b o$ o7 U: L! w, {7 T$ z( n
- (setq z4 (verify_d "z4_pt" value z4)), W# l& L& E$ B+ f" E6 ^( S6 u" J
- )
2 |2 ^- O6 t3 i# i9 l - (defun ver_xscl (value)
1 }4 }7 D7 n( l" z. x5 V - (setq xscale (verify_d "xscale" value xscale))
4 f( f# M/ C6 v+ s% @ - )( N' N1 ]: r+ W
- (defun ver_yscl (value)
& [ {; r& r( k1 n) A - (setq yscale (verify_d "yscale" value yscale))
9 ?; v8 `2 ?& M4 F( c/ C - ): A( P8 U$ p% a2 |, X" t
- (defun ver_zscl (value)
! q7 V8 z" W, }4 K3 a! h. |% v - (setq zscale (verify_d "zscale" value zscale))
. h6 f" M/ s D - )% i' s5 X' |, L+ y
- (defun ver_colsp (value)
2 E: i( m% M3 [ y - (setq col-sp (verify_d "col_sp" value col-sp))
3 c$ y) y4 p6 `' f2 o' A# |/ H' e# i2 e - )
: y* c1 J; u# ~ - (defun ver_rowsp (value)3 v' w' z e# ~1 ~+ V4 R
- (setq row-sp (verify_d "row_sp" value row-sp))
" p2 W6 O# s( ?7 O - )
$ s1 M' U: z; ]' n( i% J - (defun xclip ()
7 {& Q& g1 K- y G: @, R" E - (setq xclipmode t)
% _* y- _$ T; l) g- Z - (if (= xcliponoff "1")
9 y- p6 b& L w, i0 Q* `8 Z8 s - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
" Z$ m! q: f5 _: B1 q - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
. I9 x/ G" ?- V - )" T9 I$ ~0 }5 }% y9 C
- )
& q; {( O" m+ l% L7 S8 C/ T% s) W - (defun ver_rad (value)
5 F# N9 k- [) B( S6 z, n7 T - (if (setq radius (verify_d "radius" value radius))
! u6 ]/ ~3 m9 f# s) j7 I - (calc)
( P. H; E$ |9 Z7 V$ y7 v - )' G4 F% c4 R# L8 i; |9 T, T
- )
) z* ~. Y$ b, G - (defun ver_majrad (value)- g$ z; {, U4 t! z1 K
- (if (setq majrad (verify_d "majrad" value majrad))
! V* u, N, T x0 t) D. Y - (ell_calc_newval "majrad")
" n. F1 t5 W7 @2 D9 o2 N9 g - )
' t6 ?% p6 B5 u - )( \* j6 K0 X" M a+ l8 T+ M
- (defun ver_minrad (value) w: s$ _, ]- A p4 E
- (if (setq minrad (verify_d "minrad" value minrad))
8 h& h7 Q2 ~, P - (ell_calc_newval "minrad")
- S3 o4 {- w. [# u6 u; X! M7 F8 R - )3 `( f7 p! N+ y+ t9 f
- )& c: q- H- f$ B' G+ @9 L, _: l% P+ `
- (defun ver_hght (value)
' y1 T* o9 X; V& k# Z3 i$ s0 B - (setq hght (verify_d "hght" value hght))
8 a2 Y9 {( W% O1 u- w - )
8 c1 M/ u4 m, |! E* ~" G- B; z& B8 r - (defun ver_wid (value)
' \( h2 G+ w+ q- Z" l' H) z - (setq wid (verify_d "wid" value wid))
6 l$ g& F2 S5 p! Q) k$ Z( n - )
( I5 k8 R9 C4 l4 P& n - (defun ver_xline_x1 (value / temp)4 ?) G/ z6 D7 T R7 D) p# f# p
- (setq temp xline_x1)
. A( ? R1 C/ K1 t - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
! w6 U W4 C) s6 _0 w - (if (/= temp xline_x1)* e; D# g2 K+ U/ H( ~$ [$ l
- (progn (modify_xline 0) (set_tile_dirv) )
# f3 L5 J5 _9 _$ B - )4 g- }( g# C8 D% c* C: y- `
- )* m X$ C! r" O5 N. b
- (defun ver_xline_y1 (value / temp)- Z: U& _, ^9 z
- (setq temp xline_y1). Q) @- M# c8 e6 O$ E! F* E
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
* b# a, J9 U7 N - (if (/= temp xline_y1)) u" F* B3 `8 I H3 y3 b
- (progn (modify_xline 0) (set_tile_dirv) )* ?5 M3 f+ Z8 }2 z# Y) l
- ); k1 P% y- z9 p1 |6 Y, }
- ), A- ?" }9 j! u+ k- v
- (defun ver_xline_z1 (value / temp)! W z, I* o% t0 C" I
- (setq temp xline_z1)
5 V5 P- u4 j3 u - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
9 y# u3 s; `3 ^$ c! s' f - (if (/= temp xline_z1)6 o/ V3 s5 z" Q; N& }) |
- (progn (modify_xline 0) (set_tile_dirv) )* C7 Y2 z" X7 E5 J/ e
- ); p( r; g( g0 Y! N
- )
! ~. _" r: Q. p3 w; d - (defun ver_xline_x2 (value / temp)/ x ^( d7 {9 D9 N: V6 Z
- (setq temp xline_x2)7 `# n- U5 o5 a! |) _% R1 p
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
$ Z6 e6 Z T) p0 n! |4 n L. m) d - (if (/= temp xline_x2)
# a1 P+ v3 I" d3 c7 w" a - (progn (modify_xline 0) (set_tile_dirv))
, ~- o* ~; a ?" a - )
" J: L$ n L1 m+ @ k - )" \ G1 i2 L/ L$ L! f' N
- (defun ver_xline_y2 (value / temp)$ {; M* c5 g/ v& M
- (setq temp xline_y2)
7 N5 R# S6 A# T" e. V" U - (setq xline_y2 (verify_xline "xline_y2" value xline_y2)): |4 t, z0 g# H& [, w% h: F/ d" x+ a
- (if (/= temp xline_y2)
! ~. A2 I% p4 o( g+ t6 D& H - (progn (modify_xline 0) (set_tile_dirv) )
! K0 N% i! M8 u& s! a3 w - )% `5 m' F# E. P; E4 _5 m
- )# h" \. ?# h) T3 S$ H7 x$ @3 Q
- (defun ver_xline_z2 (value / temp)
3 E6 q' j( j5 n& K - (setq temp xline_z2)
6 l9 U" c; v& r5 l [0 D; k - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
0 N- `# c4 X" v6 p- S5 Z, ` - (if (/= temp xline_z2)
% ?7 d7 X0 w% l# m `& t - (progn (modify_xline 0) (set_tile_dirv) )/ G4 D+ z& J8 X8 Z9 o0 s& R5 n/ t
- )' s" M4 N9 P5 k3 J& ]% a
- )
5 B7 F7 g. {" ?4 l3 K3 Y9 n - ;;) ]: Z+ P# |3 g1 d! o* ^- \- A# L
- ;; Functions that verify tile values for angles7 H% R; ?- U6 C" A8 Q# m+ Q- \9 p% w
- ;;
, U5 y a* v- o: O' O - (defun ver_ang1 (value)
& D% Q. _+ |7 }1 u1 T - (if (setq st_ang (verify_a "st_ang" value st_ang))
7 a: o9 K: P) t3 b: ?/ f: b0 ]: \2 _8 r9 q - (calc)$ [3 X; Y: c9 K4 P) r0 ?
- )
2 V# }/ T2 H1 W9 H6 O - )8 O# M- F$ z5 `
- (defun ver_ang2 (value)
& M9 c3 J, c2 y' I4 O/ {0 o - (if (setq end_ang (verify_a "end_ang" value end_ang))5 u6 ^2 l @- k: s- h0 b% |( L
- (calc)% H% p* U8 R& G" G0 Y2 v! F
- )7 A7 W9 s. q* G' V' C
- ), h. V- H3 C4 J8 x, l! D; X
- ;;" J' h- T% D4 h3 d' F
- ;; Verify tile value for ellipse end angle. Handled slightly [1 @* `2 }! w3 S9 }
- ;; differently than the other angles.
2 G7 e5 v: N- R3 q - ;;
0 G& Y. J p* t3 R. E+ A3 m9 d - (defun ver_eang (value)
+ d' `* Q. P. _ I1 [ - (setq end_eang (verify_ae "end_eang" value end_eang))
) f+ E8 n2 H$ N: f( I2 B - )3 f( g' {7 n6 U6 ~7 W9 s5 ]& w* s
- (defun ver_rot (value)1 P2 b4 O; s# H4 A! A
- (setq rot (verify_a "rot" value rot))
! a. r/ U- s- ^* m% B( {- S - )7 w! G: u2 ~3 j+ @" F) Y
- (defun ver_obl (value) s# S z( t" [* h. ~0 H$ L
- (setq obl (verify_a "obl" value obl))5 K7 E2 U2 v; v2 }4 B7 A
- )
4 {7 N, l2 T. O1 u) W8 n - ;;
0 L' W% o: U8 }* s; B* x - ;; Function that verifies attribute tag field for null string,1 t0 u% m X1 i( p7 _7 s
- ;; or a string that contains one or more spaces. Tile value: @: u3 q7 K8 E, ~6 f$ E
- ;; is also converted to upper-case as well.; }- a8 Y, M2 i& f0 i
- ;;
4 l7 M! b* L3 e/ ^; L, a4 }" N - ;;) K0 R$ B& z% D+ V% h7 l: x" r
- (defun ver_tag ( / tval)
! T* B# p% q+ y/ s, w/ I" Z - (setq tagval (get_tile "tag")). p3 J5 Z! }% h! d9 N9 K, k" X
- (set_tile "error" "")
- o" W( y. A- |7 L - (cond
) _3 |2 a2 n& D7 r- S7 Q; f t. s - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
- l1 B; `8 k' R! k9 ~ - (wcmatch tval "* *"))
9 l( }" w8 E, d! Y1 E, y7 { - (set_tile "error" "Invalid attribute tag.")! y/ f+ Z+ k* i4 {: i s( K
- (mode_tile "tag" 2)( K. S/ k. N( p8 I
- (mode_tile "tag" 3))
4 V) k# m( a4 F" ]$ \1 g - (t (set_tile "error" "")
7 M# A$ P% p, v) d9 a1 v - (set_tile "tag" tval)
7 E ]# a, @& e, D7 D - (setq attag tval)))) t- U# ]2 S1 N8 i; Y4 m
- ); l! a8 [) P( Y. }/ p& D3 @+ r. R: X
- ;;
% \" b0 K2 e2 {7 b' ] - ;; Calculation functions7 V3 h' [7 U) D* s7 {
- ;; Z4 j. R) i( Y0 s
- (defun calc ()
E: B2 X& a# b. p( w7 N+ b4 L - (if (= etype "LINE") (line_calc)) r, {0 z: @+ }, T# ^5 C, \
- (if (= etype "ARC") (arc_calc))
! w6 ^+ k9 w. g! x - (if (= etype "CIRCLE") (cir_calc))5 ^6 s M3 k0 b {5 a
- )
# {/ A/ X, A1 z3 @5 w O - ;;. ?( S5 c2 r- V8 u4 t; Q
- ;; Calculation functions for lines, arcs, and circles' x$ J- g \2 B* W. \8 q& T
- ;;4 L. x" U$ q( m; a- R. T8 w
- (defun line_calc ()
e; z5 z* M. J' F8 I1 Q3 e - (setq stpt (list x1 y1 z1)) w% H. J) q$ y4 u/ p
- (setq endpt (list x2 y2 z2))
' d, Q4 p% \% z' A - (set_tile "delta_x" (rtos (- x2 x1)))$ r- ~) B$ t/ P
- (set_tile "delta_y" (rtos (- y2 y1)))
6 |* V U: O g2 ^! E" A - (set_tile "delta_z" (rtos (- z2 z1)))
6 s. f4 {9 {% q4 v) c - (set_tile "l_length" (rtos (distance stpt endpt)))# m8 Y+ t# o1 `, p3 d( V) o5 [
- (set_tile "l_angle" (angtos (angle stpt endpt)))
L9 q5 u1 q3 y - )7 l$ E$ h1 u! g9 J
- 7 v- u7 F+ o9 W0 k; {9 j
- (defun cir_calc ( / area units)
9 a* b6 k* d7 A6 V6 L - (setq radtest radius)# A8 i' }9 b, R0 B# w! F- M0 ?0 t
- (set_tile "Dia" (rtos (* 2 radius)))
" r" o A6 U& U! T - (set_tile "Circum" (rtos (* 2 pi radius)))5 L. q& G$ J& D. q, V
- (setq area (* pi (* radius radius)))
+ }( }7 L: @1 y3 R/ ~% R - (setq units (getvar "LUNITS"))
5 l" r/ x: K. C; F - (if (or (= units 3) (= units 4))$ @' k# s- k/ s @+ q8 j
- (progn
7 `4 q' {6 C7 c: q& D, X4 z, c: k8 m; Z" S - (setq area (/ area 144.0)), U5 N% _$ V+ j. S- W
- (set_tile "Area" (strcat (rtos area 2) " square ft"))
. U$ v2 X' U' a0 B7 M - )
r# w- w/ o' [( W2 p. H- e - (set_tile "Area" (rtos area))
) t+ b5 G+ V! Z- g7 C - )
3 u" n& ^. g$ A$ M5 y# x: P - )# h" I% [5 `8 o* X6 f& ?3 U5 M
3 g- l9 X6 z! {3 k! O- (defun arc_calc ()
! `# c) \' x5 ]6 R7 Z7 ^1 T - (setq totang (- end_ang st_ang))
- Q& d9 d( F( i. K* U- N - (while (< totang 0)+ {3 d3 M, n+ M* P- r7 X+ O
- (setq totang (+ totang (* 2 pi)))
! E: P/ v3 P' G9 d1 p - )
/ z5 C# R5 L3 b9 U - (while (> totang (* 2 pi))* z; n. Z+ [0 E8 S) C7 O& _4 i4 W0 v/ S
- (setq totang (- totang (* 2 pi)))8 E* w# f! l% x6 I$ x2 b E) l* s8 l
- )! W8 [( N% G; |- w, @
- (set_tile "tot_angle" (angtos totang))
- m8 E+ {9 \9 s0 ^ - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
5 q: c- u/ |; }( T- \) z' F7 u. Q - (set_tile "arclen" (rtos arclen))$ t& T \7 J# w9 C2 ?- W8 y
- )" K8 V) w ^* W) u0 O |- H! z3 a
- ;;0 X/ E( l; G- p
- ;; Calculate the major radius, minor radius, major axis direction.
4 s7 `% w* T# w3 m' A - ;; Get radius ratio. Convert Start, end parameters to start and end2 a$ ]3 u! X" u' ?) P' W9 V, y
- ;; angles. Save Major Radius value in "old_majrad" in case the user; B. j% j! }0 ^7 x$ E1 P
- ;; chooses to input a new Major Radius value later. It's needed to9 W/ j% ]* ^9 b7 ~
- ;; calculate a new Major Axis Vector value.) z0 b( H7 a$ h0 ~1 ?# q4 M1 {. _
- ;;, \* H! Z# H- Y# n4 y5 M4 t7 N4 r3 \) z
- (defun ell_calc ()9 K/ p( @2 b) S/ |/ z
- ;; Get major radius from the major axis vector.. F' l. H" `7 D
- (setq majaxis (cdr (assoc 11 elist)))- v6 ]- x( b7 l# B
- (setq xx (car majaxis))
% {) k; M' M7 j$ Z - (setq yy (cadr majaxis))
_' Y4 M Z8 s( _# L$ b - (setq zz (caddr majaxis))
: a. o0 D! K! Y2 _5 D - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
1 c* s5 _ G1 V: }) t3 \ - (set_tile "majrad" (ai_rtos majrad))
' x! O8 |5 r, x, e - (setq old_majrad majrad)
8 K% b% T: I6 S9 Y1 }# S - ;; Get radius ratio
t0 C* d/ U# a7 U8 J. R" C - (setq rrat (cdr (assoc 40 elist)))
; i, e. w a0 v- r - (set_tile "rratio" (rtos rrat))
) l0 `9 [* d$ }1 o - ;; Calculate minor radius! ]0 k. G" s5 w6 Q9 k
- (setq minrad (* majrad rrat))* }# R/ `' h: }# J: h; ]3 Z
- (set_tile "minrad" (ai_rtos minrad))( o) |9 R4 J- k7 d" M
- ;; display major axis vector3 L' @: Y6 a3 u( o
- (set_tile "Majraddirx" (rtos xx))
9 b+ W8 h% m; |2 W, G+ F - (set_tile "Majraddiry" (rtos yy))
! p0 r! q0 ]& E - (set_tile "Majraddirz" (rtos zz))
% t+ K0 K6 }# _; T6 o
" q) `) L. O1 o; b- ;; Convert start parm to start angle2 Y4 R3 ]2 C$ ]0 C& _- ^/ d+ P
- (setq stparm (cdr (assoc 41 elist)))
- A; {$ J3 X' b' S1 T1 b - (setq vecx (cos stparm))
. N/ C. _3 O: I" b - (setq vecy (sin stparm))
5 k$ @, I% A( {8 I - (setq st_ang (atan (* rrat vecy) vecx))
6 X6 Z- u3 U4 u, I - (setq tempst_ang (ai_angtos st_ang))2 j$ _& F# }3 o/ X: |. t$ X
- (set_tile "st_ang" tempst_ang)# d1 w$ Z; \* ~
- ;; Convert end parm to end angle. If end angle evaluates to 0! s0 |2 Y" }* r# v
- ;; degrees then display it as 360 degrees.
/ K( X) Q- F: ^ }2 F$ Q4 R - (setq endparm (cdr (assoc 42 elist)))
. S& G) F Q4 C4 u! y+ y# Y - (setq evecx (cos endparm))
+ C5 K/ `0 j7 [5 Z2 c! H+ G - (setq evecy (sin endparm))2 D) G- o) u: Q, A0 S# H" \
- (setq end_eang (atan (* rrat evecy) evecx))
4 p" i) I' W V% G - (setq tempend_eang (ai_angtos end_eang))
2 g! f7 I; G. e$ X! i0 V$ a - (if (= tempend_eang "0"), t# l; _* a' I% ^
- (set_tile "end_eang" "360")
1 o3 w8 C7 P( N% ~2 E8 m G2 g - (set_tile "end_eang" tempend_eang)
, b. p! k n/ G- j: ]1 d% ^ - )
% o& R7 C& v. q! _( \! {8 T. B+ Z8 i - ;; Get area of the ellipse.
1 F$ y% V" } z. K( `' Z - (ell_calc_area)
4 c$ s9 ~! Q# [5 k- b - )
5 ]9 q8 t9 E2 S8 N - ;; Calculate area of ellipse. If it is an arc then* q3 A# x3 h- R5 o8 h5 C
- ;; grey out area display.+ u0 y1 d% \* o* Y0 E
- ;;
7 w) V& }8 U9 } - (defun ell_calc_area ( / area units)
& q% n! k& G2 ~! l - (if (and (= tempst_ang "0") (= tempend_eang "0"))/ c M+ ] i2 Z" M& D
- (progn- ^1 T7 k. Z4 |, h! c; n
- (setq area (* pi majrad minrad))! R- K8 m/ o" p- }. \
- (setq units (getvar "LUNITS"))2 o8 N) h3 B( j" y$ z3 ]
- (if (or (= units 3) (= units 4))
4 k) q5 J" s( @. \4 D+ d - (progn
( s2 r! O/ z* {8 B) h0 E - (setq area (/ area 144.0))
" Z8 y1 }' v4 ]9 T, x6 V) D* M0 T - (set_tile "Area" (strcat (rtos area 2)" square ft"))
' G- u) h# Y; I! o - )
# W& @& r' p" J7 L - (set_tile "Area" (rtos area)): B4 P/ b4 ?. C
- ). I6 [4 ~( i& K, c! |
- )* |. e3 V% f/ b$ a7 R
- (mode_tile "Area_text" 1)2 l( v8 ]% {: y& o7 n
- )
! o! I; ]/ o% u+ D( G* C7 ~ - )9 J4 B9 T6 O! M% P8 ?- o$ p6 O
- ;;. I. D4 @- i+ y( d% U
- ;; Calculate new values for ELLIPSE+ o3 {0 \. R4 [7 f( j: w. V8 a
- ;; Minor Radius, Area3 b9 @4 O& K6 ]( Y
- ;;. D9 m- o9 O8 Z7 O6 v; Q5 q- f" C
- (defun ell_calc_newval (ell_tile)( u, i3 @! m0 L, [! V- Y6 w
- (if (= ell_tile "majrad")
9 J: j% H$ r- _' V/ P1 f - (progn
8 K6 ]) x9 h8 H3 ~ - (setq rrat (/ minrad majrad))
- i) J- w% g2 O/ D2 ~) f - (set_tile "rratio" (rtos rrat))
- c1 k4 V/ ] o) ~' u - (ell_calc_area)4 @/ M2 m; ?, r) n3 d% F) ] D- [
- )7 P: n' X) l G& o; F& R5 [
- )
) A. h! d% Q3 R! I - (if (= ell_tile "minrad")6 ?# w# T! q7 w Y
- (progn
" p( C* m$ j. V' |: t - (setq rrat (/ minrad majrad))
6 i+ o; l! ~1 s, j. y3 t - (set_tile "rratio" (rtos rrat))
- G/ H. i. H7 B/ Z' ^/ J - (ell_calc_area)! b# i. q( X/ k/ ?- X
- )" V+ @/ v+ ?1 ?0 l( T
- )
\$ m6 ]2 s& X1 l0 B& A9 R" s% d/ b - )
& U2 W$ q5 |/ A- I- z
5 W6 G8 K6 r! g: }- (defun set_dimen_props (/ loop a stl txstyname)5 G V N2 [* S T/ A8 u
- 2 U3 s" C, o9 M, p* m) `4 o8 k
- (setq stname (cdr (assoc 3 elist)) ; get style name7 E1 ^4 ?7 Q& H$ W' O
- stl (tblnext "DIMSTYLE" T)
, Y2 T, k. P3 U) `$ V5 R - stlist nil)
0 Q7 n' ]' ]4 V" Q - ;; Get all style names and list them in alphabetical order
7 Q& t7 s% a2 {5 @ - (while stl
6 v! O! L# N) l+ v# f - (setq sname (cdr (assoc 2 stl)))
& m5 N8 X5 `* T" e0 x - (if (/= (logand 16 (cdr (assoc 70 stl))) 16) @) p% S) c8 d/ \/ t( c: d
- (setq stlist (cons sname stlist)))3 S- a0 o/ _( z u! v
- (setq stl (tblnext "DIMSTYLE")))
3 Y% D$ B2 h# m" C( a% P
) @) U: g: y, L7 r2 ^- (setq len (length stlist)
! j- ^8 C2 D$ x+ ]8 L, y# I% G - loop 0
) A# ?. D) O* y1 | v' j7 a; ^: R1 r - dimsty stname9 v& m( M, ~ \0 W. c1 [, s/ a, E( {) j
- )
& w9 x, _9 t; W6 _1 }( {& G - % G8 S2 p8 Q) _7 B( [* p6 C, l
- ;; alphabetize style list, depending on maxsort t6 u9 B3 H4 P `
- (if (>= (getvar "maxsort") len)
5 h0 W. c. X, x: _" R- ` - (setq stlist (acad_strlsort stlist))9 u3 L! Q. J% _% S& c% v
- (setq stlist (reverse stlist)))
3 c; s8 C; T1 k% } - % P j, e% a6 o+ d: Y, ?
- ; *UNNAMED style (dimsty = nil at this point) is replaced with& {, E8 e) B! y
- ; the current style. After R13, we require dimensiosn to have a
& n4 Q& |: E6 L w) \" y - ; dimstyle, so we plug any holes where we find them.
( `( p) ^1 A: f2 s - (if (null dimsty)
0 q8 s R" A- C$ f - (setq dimsty (getvar "dimstyle")); {. e; {! s( T+ F9 ]
- )8 g4 I6 ?2 U. I
- ; Show the styles in combo box$ {2 s$ k4 C1 {
- (start_list "mod_style" 2)
8 H/ n& n$ N) |: E/ L - (while (< loop len)' |! u, v5 z7 o7 X2 Y, p
- (add_list (nth loop stlist))
+ P! a0 j3 J* G [# }* d - (setq loop (1+ loop))
( h, `9 X7 o1 i6 q! V w - )
" ^5 w6 m, c! l5 U: e; k8 ?7 u - U, Y8 Z# E2 e( r1 r, p
- (end_list)* b7 k; r+ \5 L% F+ d, z- p" {( ]
- + G* o% F- L7 s- ~0 r
- ; Hilight the style name of the selected entity
( s5 J& R0 v& p, ?6 V) e - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))3 q k5 t: @5 p4 f1 B
- (setq loop (1- loop))
) K u* d4 ?5 {( v5 J - )7 | J- c1 o; T7 H$ Q
- (set_tile "mod_style" (itoa loop))* p3 \% x0 Z6 v0 U1 ~
- + E/ E- ]% g& ]& q7 a% H1 ~
- ; The following is the list dimvars. It must be sorted in the same1 a# E- l, o% P; y( |5 X' t6 Q
- ; order as the resfub returned from DDIM (ADS module).+ G; }* ?9 |4 k, C& D/ p1 F
- ! x- G8 M9 q* @/ M8 R5 g
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"# `, E0 P4 o+ r0 q9 }- Q1 q
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
% Y1 ? y3 y) _1 {4 I - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
5 V: B$ f2 w' C- }& ` - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
0 P4 K3 e) |. v+ ~5 x( O7 F - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
3 T. R) I& `8 m - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
" ]3 p+ V: ^6 o - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
5 G" G2 L4 J* q7 T2 O( v7 U - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"$ l' o" `" H0 c/ D5 K1 f: `
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"" |9 W; W/ `& K% Y4 ]5 S& b: W
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
2 t9 }, N, `6 ^0 C; g - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"* m' D" [) Q; n; m2 l9 Y4 G
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
) ^" E2 B, e7 O. U1 w/ c l - "dimtxsty"
/ Z s( l x: V5 ]. B - ))$ R0 Q% g& C# s% U! x
- (progn& T( z2 w5 A' h) L* M" B y0 x2 e
- (setq sv_dvlist (ddimen_getostate dimsty)" |% D$ M; v" v+ X
- txstyname (assoc 340 sv_dvlist)3 ~/ v# i: p! R
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
$ k8 h+ ^& E4 t8 A9 v - txstyname sv_dvlist)3 h; \ G% ~. w6 \
- dimlist sv_dvlist" i( Z- [ Q8 Y( {) U2 Z+ T) m
- )# e1 ]1 }+ ^" w2 ^. x! \' E$ Z7 ~, h
- )
" x0 o/ Q0 Z& A( w& {+ ~ - (if (= dimtype "DDLEADER")
/ @- y; I& N8 U7 v/ o8 V - (mode_tile "mod_format" 1)
" n0 b. t0 @6 H' \1 T8 G6 P - )
, F4 R+ u- ^, ?- c4 e0 R4 D - (action_tile "mod_style" "(setq dimsty (ddimen_style))") {5 H; o' U( a. V* E
- (action_tile "mod_text" "(done_dialog 4)")' \& d }7 U0 G3 W/ v& H# H: j
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
1 M% p, u: I5 T( ~- i - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
. @+ ]4 e( t0 ]+ c; o$ H M - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")) \9 L" a5 r. i6 G7 z
- (action_tile "accept" "(done_dialog 1)")
% U: h7 t( [$ q9 ?4 c( u - )
t# }3 {$ j8 t: x+ x4 g" ^+ V2 D6 ^7 O - ;;0 P$ v3 h& T( ~" u1 W
- ;; Get dimvars that have been restored.
' X1 t( c& n- f' [2 ^' } - ;;$ t; M- S3 \/ \1 Y M
- (defun ddimen_getvars (/ elm dvlist dv i)
# A* V0 ^) r# U - (setq i 3
0 r5 n' m8 r3 C& k; v% J9 L - dvlist (list (cons 0 "DIMSTYLE")( C# }8 c( Y# Y% o
- (cons 2 (getvar "dimstyle")) (cons 70 0))7 v9 j1 [* x9 |
- )% ^1 M8 Q' Z* V/ g8 _ ^5 d5 w" I
- (while (setq dv (nth i dimtbl))
/ I7 z! s6 E! {( u, f; q* Z) ? - (setq elm (getvar dv)
8 o" t& Y& g5 c1 y) S8 d: H - dvlist (append dvlist (list (cons dv elm)))2 P( T4 Q9 `: @) ~4 ?: q7 }( n/ d
- i (1+ i)5 u7 a; t' c+ d1 S: {4 S5 }
- )
3 _+ r8 ^: P+ \ - )
# h* r' v3 @3 U" G/ q% `5 M - dvlist
9 @) y$ e! H2 H - )
( A8 N) q+ j, j8 F% k N
7 b4 J# I( ^# `- ;;
/ O$ s& q! } y( N - ;; Get the original states of dimvars. This is for DIMENSION entities.
9 o5 i! M- ?0 R. Q - ;;
- [5 z+ K: `" _* k& A* S, ? - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
" M% D! {8 r, R( ^8 k8 t - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list! {8 u* f& ]+ ~! M
- dvvars (ddimen_getvars) ; Get dimvars for that entity4 n* U' J2 T/ M; T) h7 {
- i 17 y: J8 B* r; n" {1 X+ Z
- )
. G+ O* ?$ f; J5 [1 T# G, j - ; W. I$ y) \& I4 W6 s3 O: U; z
- ; Create a list that contains values of the selected entity.- J, ]" C& [9 G! |- v+ s3 D3 ~
- Z g, Q) K: p9 L2 y! E z
- (while (setq elm (nth i dvlist))% _+ e4 ~5 @+ V0 n2 W
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
6 V9 f4 u7 h2 n- w - i (1+ i)& }% u2 g5 ?6 k) @( K
- ); z: r# r. y: V& y2 Z6 t
- )
# w; C% N6 H9 N% E - dvlist
2 D( I5 D( I: D8 A. X - ). m( m: V' J, E% s0 i. C
, p( {: Y/ Y4 E Z- ;;
2 M" q. _( }) b+ z - ;; Restores dimvars of the selected enity., P$ A9 P5 Q* f4 P0 d; x% J
- ;;
7 T- k9 l; ^# u4 q$ o5 e - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)6 H; M7 s ]* c0 @
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
9 p6 n; C' f" T4 x% [6 y - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
6 I) G9 c& w1 h; x1 f - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"2 s% b2 s% ~* N$ E, V# H; R
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"' z1 z. A- @' a, M; ]
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
, p$ z @+ c7 Z. D - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih": r4 `. l8 p! p |- g8 h: h2 P- {
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"2 p4 _, S& U. e$ k0 s9 i1 |
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"6 Y7 u# E- n& E, Z
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"/ R8 @$ n/ X1 P) Z) d4 k
- "dimdec" "dimtdec" "dimaltu" "dimalttd"* [9 }* ?& Y$ @7 O+ U0 O6 t
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"+ n. r8 P# c4 ^' ~9 g
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"' v- g( s3 O$ D
- "dimtxsty"
# X* K- J) ?0 w3 `/ V- W, t - ))
9 g) C1 x# z2 v2 ?3 A- q - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
# \, z3 V; e- n - (progn1 N: _/ s C# U' p5 z1 D& y1 g. i
- (setq en (cdr (assoc -1 elist)))( @) e: n- c) K& I
- (command "_.dimstyle" "" "" en)
* n6 u+ ]/ B5 Y - )
% ?4 g6 }' Y, T# }) Q* J- Z - dimsvcurset
1 ~/ X) w; z2 K& B8 V - ), K" m, T, ^! [5 E
- ;;
2 ]1 U( k9 G; q* v - ;; Modify Leader
8 B7 U% [0 T# U o3 z! t+ [ - ;;
8 x1 A2 d$ x) ]0 I - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl3 g$ q3 T- N: K9 n2 ?
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist+ a$ _8 N5 o6 h+ L+ M! }' D+ Y5 ~
- dimtype dimsvcurset)1 _5 ]! u% G" \! l- Q# K
- (setq dimtype "DDLEADER"
! d' H2 O9 } D6 }( l' a - dimsvcurset (ddimen_dimsty_restore): ~1 J. y4 i. Z$ Z7 a4 P+ b: ]7 e$ t
- ) f3 E2 j8 ?: @8 R0 Y( I6 z
- (if (not (new_dialog "ddleader" dcl_id)) (exit))! B# O$ E( Q" R+ B
- ;; Set initial tile values. | z# F+ h# x6 G# H! b
- (set_tile_props)
, o, C! e f4 ^) p5 i - (set_dimen_props)
, y3 A- h# `4 i+ Q4 ? - (set_tile_handle)
: M$ j( L4 Q7 F; x: U/ b - ;; Define action for tiles6 d, z! y6 n- {+ ~$ _
- (set_action_tiles). u* N! [0 }# @, _' u. I
- (mode_tile "mod_text" 1)
5 ^/ K% l& f9 u - + n4 ~$ W! `- y2 n) a
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")2 B& U$ V) k% t f! m# G% ~
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
* r" M# g9 n' J# f; O0 x - ;; Get ARROW and TYPE.3 m: M/ c* H2 m6 ^2 S# X
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))9 F5 j' h+ ` P2 M
- (if (= 1 (logand (cdr (assoc '72 elist))))8 e! V4 r5 B* n8 E" r% w% [
- (set_tile "s-s" "spline")
; C4 I% U) m* R; E% f - (set_tile "s-s" "straight")
5 ]0 Y( v* F; T# [7 d& h - )
1 R) g' W4 f( Q/ G7 E0 j - ;; Start the dialogue.2 s4 @9 b9 O2 P1 P, e$ I' ^1 J g
- (setq dialog-state (start_dialog))
' p* M. ?; E6 p. \! p$ e - (if (= dialog-state 1)
+ o' Z) v: q5 K8 x W, [( v1 A$ o - (progn
3 t/ q" R% s% m0 w5 z5 I! _ - ;; update the style9 k4 f6 r4 S9 j* Y8 L) z: ^% g
- (if (/= dimsty stname)
' y' P9 n: k* O7 J - (progn
& j& `6 Q( y* ]1 l: @ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
3 v+ r& P, k: r) N; a - ; doesn't have it.
! Z* S9 J* i" k: N - (if (null (assoc 3 elist))/ ]- o# R/ X9 j( i+ I
- (setq elist (append elist (list (cons 3 dimsty))))) |' D9 G4 [+ o9 x* s# ?) d
- ; else just replace it.
0 \/ N: a$ r. m! J& a1 O1 E - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
$ }$ K2 \5 K& k( t5 L" a - )
& x/ Y, I/ G8 w- h - ; refresh sv_dvlist with new dimstyle.
4 t3 B8 P. ~: t# i \& } O - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
, o! i" z! r' T7 [% M - )
) m W% R$ ?3 K; p& Q0 m e - )) _: O1 l0 |+ C" c# A o
- (if (not (null dimlist)) ; attempted to change dimvars
) O9 \- Q% t' q/ `6 g - (ddimen_complist sv_dvlist dimlist dimtbl), }- v& E' L* q- b; I
- )
) i$ B( H$ Y* A5 n+ _$ f/ } - ;; update for ARROW.
: i8 T' N! s' V$ C6 j% Z - (if (= "1" arrow)2 p* B, M$ l- m/ _# ~% ]. k
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
9 q+ F' Z9 b* e" l9 g - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))2 o/ I& I; Y, { J Z
- )
/ z: }7 u$ d( L( G6 Z. ^! K - ;; update the TYPE.; M$ u5 [1 t% ^
- (if (= "spline" leadtype)
3 d8 S8 @$ y3 n- n% q/ S - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))% A8 G, P9 {5 }' D V
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
( }; I$ ~. V7 P6 V# F/ m# p# H - ) O# u6 K8 }* J' f% W: r, M
- (modify_prop_geom)5 [1 E7 g' {# A; N
- ;; update the Color
6 W# c7 _1 U* B - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
, [5 Z+ x6 P" o) {6 N - (entmod elist)' s3 B; y0 @, i: k( I/ ~+ |
- )5 C! J+ [0 B, v5 Y4 a/ Z2 l7 E& x
- )9 Q o% X8 Q5 U# H' `* D7 ?
- (ddimen_setvars dimsvcurset) ; Prepare to exit/ m( \) k8 G; B: T" ]6 [
- )' `- r+ O" d' G: O. k$ z* O
- j. B6 u9 g# q, A. @
- ;;& O- L+ y, ?) G$ y) Y
- ;; Get dimvars of a dimstyle with overrides.' s9 I& |! i. B- q% f
- ;;' L2 Y$ G. C* H# ^0 F7 C' a$ P
" X: k$ C0 ?. l7 g) h+ r3 u; x) f- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)+ X- r' ]2 c5 ^$ G; S; x
- " c% Y; f7 h4 G+ L A
- ;; Get override information for the specified entity.5 h7 X" Z, t0 Q$ T
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
" D7 x0 L0 S; l! `* U - ;; must obtain override information through this tedious operation.
4 G, b2 g: ~3 [ - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))$ G3 U+ |& V8 Q( T7 t5 Q
- dvlist (tblsearch "dimstyle" dimsty)
3 u# Q4 j) n* Z+ B- F5 |( }+ a& j - i 2- N2 N4 ~& m* f. @- z% z
- )
& w. E5 c# a6 R& c: g- ] - 6 I- |" w* J/ j v$ Z3 Z
- ; Update the list with overrides if overrides exist.% A# m' E/ g2 O2 O5 T4 E6 b
- ; B# w$ m$ l& U: ^1 p; ? v
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr)))): I4 y0 s/ V; Z% @" c: E! W
- (progn
N5 h# c# u; H" n - (while (setq elm (cdr (nth i dimovr)))
0 r4 ~$ P# m, W3 e0 ~4 p - (progn, V4 ^8 B& y4 ~0 B% x% }0 Q
- (if (or (= elm "{") (= elm "}"))
" b! C( e# X; }9 ^3 I - (setq i (1+ i))$ E9 E4 |* d& V/ L' Q3 f: R# ?
- (progn4 n$ L; q$ T! g+ ]2 y
- (if (or (and (< 180 elm)2 O H; w, Q* Q$ N- A0 L1 n
- (< elm 190)
9 L) L! e: }+ P. V6 [ - )) d3 W: g% Z# u3 P2 |
- (and (< 80 elm)
! a& S& N0 w) J4 C& M5 P1 c' ~: m2 | - (< elm 90)6 [- s2 X" O3 n) M" _! A/ h
- )3 j% @1 V0 H; w) y. b* a
- )
! q# E% x3 [) d C3 l - (setq elm (- elm 10)) w0 N" M+ ^6 F
- )8 a5 ^8 E2 ` m) l U
- (setq i (1+ i)6 E0 T' \5 n! Z+ b2 C0 \3 t" B9 V
- elm (cons elm (cdr (nth i dimovr)))
x! ~% U, k6 s# {; ?% F6 [ - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
5 W T' y$ F- }: u7 p/ @6 y - i (1+ i)
4 v! u" ?$ j* ^" e* d% k - )
. i( h. ]+ A. g2 T* a, r% u - )
2 e- Y8 X, h; ?. o; `4 {) c - )% W8 _3 g% w! M! D8 |9 [! N
- )
1 Q8 W0 B0 l& L - )
( `; c z& `# f5 Z% T - )
. j( K4 V) P+ T* R, K3 e - )+ p: I) k2 _- w6 }1 h5 t1 e
- dvlist6 l. x7 R, S5 c6 T: S: \5 ~- c
- )/ `! E. i1 r8 z& c) u# k4 I
9 G) x, b( m( d# f! U4 I- ;;
( g7 x) |/ Q2 Y) B' [' ^ - ;; Modify POINT
5 m& T6 C/ F1 Y* I( P - ;;7 z9 G, n7 s- W
- (defun modify_point () l7 z# j5 w1 z) L+ w* c2 J7 E3 K0 k
- (modify_properties)6 e5 ]) p7 k$ {7 n
- (setq pt1 (list x1 y1 z1))
' n9 Z* V% J P7 e3 f1 m - (tempmod pt1 10 0)7 T3 U8 z3 d3 r1 @7 n0 R9 E
- (entmod elist)
- O, P6 Z; {% M" `! Q' o - )
+ r7 |! J+ Q7 ]) W; u - 7 q+ P: g! E/ z8 [3 F
- (defun ddpoint ()" ?- q2 Y& N6 E& B3 Z
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
' k, M3 r8 Y% p5 k; I - ;; Set initial tile values' _3 g P& r& h
- (set_tile_props)
7 n2 p' X+ s7 ]. }$ I9 u4 d% | J* O - (set_tile_handle)
4 M* u6 R: y2 ]# Y - (set_tile_pt1 0)
0 `, |: ?" P1 m, t# F - ;; Define action for tiles
m' `3 Q) W; i* T# D* j - (set_action_tiles)
8 ^6 H9 B0 y! O @ - (setq dialog-state (start_dialog))8 h* Z* p5 {# d; R
- (if (= dialog-state 0)
8 W" J$ |0 m- X4 ?5 z+ r! j' W - (reset)# p5 K' z& q8 ]+ v* O" ]% d
- )
3 H/ l( j) \8 D; e+ ~ - (if (= dialog-state 3)
0 R6 E+ }. B0 Z2 G4 K- w - (progn6 S, Q9 { A( V( v
- (modify_point)
6 i! I; L, u3 o" P" r7 d1 d - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))/ y* x- \" f3 ^3 M8 a) r
- (ver_pt1 0)' \% }# f; g3 |2 |7 T: z+ z! [
- (ddpoint)
2 N9 u3 D' L9 P; m - )3 g( X" ~8 w% U e' l+ V
- )% D8 F- `: E. }
- (if (= dialog-state 1)
. X4 \# Q3 s! @+ p3 h - (modify_point)
+ O \: }' N& w) J9 Q - )6 S4 R" U$ L/ {/ X+ g
- )# G, t2 Q( S6 B
- ;;
' x# T V. s0 |' @5 h; W7 h4 f - ;; Modify LINE% C' p; ^$ _, y) d2 L) {
- ;;& o. S# C8 J5 l
- (defun modify_line ()
9 Q6 ?2 N) K& y; Q - (modify_properties)
; k4 n6 }2 O# l4 v3 S4 q1 a - (setq pt1 (list x1 y1 z1))4 B3 |1 J1 ]) A) u7 Y
- (setq pt2 (list x2 y2 z2))" O; P2 q7 V& ]% ~- q$ A; m2 p
- (tempmod pt1 10 0)5 F. J" Z6 |$ {
- (tempmod pt2 11 0)
" e3 \( x9 }! o; {( t& R& P+ z$ s: R - (entmod elist)
2 j8 N# T- \0 C, o. e - )1 J; Z% r6 u9 h: l) R& o' |
- (defun ddline ()* a5 g! {3 z% F# [0 x3 C
- (if (not (new_dialog "ddline" dcl_id)) (exit))& P+ z4 Y# ~' E& |
- ;; Set initial tile values
. m7 }2 {$ y& x( g - (set_tile_props)1 T D8 a+ u2 q. M$ ]0 Q, k
- (set_tile_handle)
1 g& ^( z4 I& r/ H% @$ T; w - (set_tile_pt1 0)0 Z) r' F4 ~& h6 v, i
- (set_tile_pt2 0); m1 W* @; T% q4 V
- (line_calc)
# T5 u+ m1 K1 t! M% \ - ;; Define action for tiles' N: Q: F0 e1 U( N) y8 h/ K
- (set_action_tiles)+ g6 B/ F% t: Z; O/ e3 h: }! p8 V
- (setq dialog-state (start_dialog))
( `5 R, e# g4 V: V1 A t - (if (= dialog-state 0)+ ]5 u/ L" u3 ?% I* e4 v
- (reset); W; V4 h% l& a8 w. y
- )
; m- {) @0 O5 ]' L - (if (= dialog-state 3)
4 Q, a7 k+ A5 k# |( w" z' y1 y/ q; ] - (progn
2 c0 G% E+ `$ b4 j - (modify_line)4 s! @( m! N7 S: ?; ^" j( x x
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
( P- q5 w$ p( T - (ver_pt1 0)
' D# E) b$ t+ S$ [* o3 @ - (ddline)' X" s% m% p' h x% t9 V- ^) @# i
- )
* X" \/ b* W9 j: x8 r - )
6 ~9 j7 V. ]$ ]8 W$ U8 D& l$ [. N9 e - (if (= dialog-state 4)- o% |4 J# i7 e) N2 G4 @
- (progn
9 R9 [, K1 u- I8 A - (modify_line)) \/ f" ^# B% p4 e" I) i# B
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))) k6 l7 R* |, Z
- (ver_pt2 0)1 _3 v# V& O+ e' f4 y& A
- (ddline)
% O' s$ v! ^$ Q" H" q - )
7 Z, Q+ q! i) V e - )" |% v0 }1 Q- M' u
- (if (= dialog-state 1): D: f& z7 O; ^7 h8 d' Y
- (modify_line)
# b, ?. m; d6 T+ y - )
) z4 v9 I' I0 M - )( t5 ]# F5 k4 x
- ;;- ]$ T0 ]. W8 q7 U$ K& w
- ;; Modify MLine: s( x9 k- D% A
- ;;3 n6 a, U7 C2 X) [& P2 B9 }- | F
- (defun modify_mline ()
' B( Z5 Z I3 G - (modify_properties) O( i* D% ?$ z; ?/ l I! i
- (entmod elist)4 S( w) Z! u# c7 S, X& X
- )
" F9 p$ Y ]/ V0 e4 q0 E7 d - (defun ddmline ()* E, N; U7 g6 s7 C9 n& T
- (if (not (new_dialog "ddmline" dcl_id)) (exit))
. ~2 y! \2 w# b" D, R1 |1 o+ ~ - ;; Set initial tile values# }/ `8 L. W0 _. b& W) A# ^! ]9 m- V
- (set_tile_props)6 e2 |+ G! { Q9 ?7 G4 R& C. o: k
- (set_tile_handle)
9 S7 @4 s8 H' X* |0 e - ;; Set mline style text field.! b) L+ Z& }# [, j/ l
- (set_tile "ml_style" (cdr (assoc '2 elist)))
; l6 ^. L& [- d0 s8 K" O; _" _3 h - 6 k+ c: L* l! G; @) U/ T" m" h0 {) v
- ;; Define action for tiles1 ^9 g* z% i+ Z4 q h
- (set_action_tiles)
# q4 D1 T, K, a, h' |0 I* T - (action_tile "ml_edit" "(done_dialog 3)")
. z) }: ?- U& a% E3 ? - (setq dialog-state (start_dialog))
# Q7 I% a& f- J - ;; Dialog cancelled, reset to original values.
K. X7 V6 b: |( m2 U - (if (= dialog-state 0)
! H: ^: }' U, W0 y- [% `7 d% B2 e - (reset)6 K) E- s f0 Q' e' O
- )
1 g! H$ w( t, Q - ;; Dialog OKed, update the mline." c) b+ m3 ~9 @: l1 Z; B
- (if (= dialog-state 1)4 k, Z! @( ]) t& q) J
- (modify_mline)( R/ Y4 `" Q- c4 x: M
- )0 A5 e1 { O# r! Z M- l5 e- X
- ;; Edit Mline, call MLEDIT.
6 T: a2 Y! e/ E, }( b - (if (= dialog-state 3)
& P" y9 ?, f9 H' Y3 ~4 @+ g - (progn
1 o, i% [( r# m+ v2 r - (modify_mline) @" \+ @8 E: o! z* b
- (command "_mledit")" C' H7 W, x# p" C
- (ddmline)
% D' n9 T% n/ @2 A. V) ^8 e - )$ {: k+ {, R% I! J9 i( l) ]
- ) U. K& J- H$ e' }' `
- ) |$ c9 a" Z3 T o- J
- ;;6 i% {# w1 g6 {- k& Z
- ;; Modify Xline
8 S" {& }0 _! }* q3 r* b. | - ;;/ M3 f! L9 U) n3 C! P4 m
- (defun modify_xline (flag)
6 A, d8 b% q0 ? - (modify_prop_geom)1 B% e U8 C2 v' V5 u# N
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))$ F; l0 K. v' t. l: A' r$ b- [
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)) ?9 |0 n7 [/ q9 G* o3 R8 h
- ;; Update the Root point.
/ a; O$ u3 b9 b! h7 }; E, s - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
5 F7 N! _7 _* A E$ ~7 o - (assoc 10 elist)) b) x( B o7 y7 b1 I# H9 A# c8 H
- elist, O: O3 u4 W9 V' a; J0 I @2 a: Q6 d% a
- )3 F9 L# l# ^4 A2 |9 P
- )
6 V6 O4 N* O. C- N: J9 g( q$ M - ;;# w1 |7 [/ S& V# e
- ;; Calculate new Direction Vector WCS
( _3 m" @; B. ^) Z9 U$ ~ - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))$ B' a9 P; h. |: O+ E- ~- G% H' V
- % C- ~; X2 a; z. J6 K6 j/ K
- (setq temp_dir (trans xline_pt2 1 0)). m% n0 m, G/ g: s, G
- (setq temp_dir_x (car temp_dir))7 s1 o( B0 ]2 V6 s Q3 c2 T/ i) J
- (setq temp_dir_y (cadr temp_dir))5 ^- O; \: Q7 d) g9 q
- (setq temp_dir_z (caddr temp_dir))' M* C, e8 u- G. Y8 }% h) m1 M
- 9 r1 `/ F& B8 }
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
# _& S2 \$ @ m, T8 ]1 u$ b' n - (setq temp_xline_x1 (car temp_xline_pt1))
* r# U4 p3 q% c3 s& s5 l - (setq temp_xline_y1 (cadr temp_xline_pt1))
& ~2 h! g7 v5 P; y - (setq temp_xline_z1 (caddr temp_xline_pt1))# w! q2 i% M! K
- # _: U' h9 W, ?* z p
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
, j5 F# h* J5 `) X - (expt (- temp_dir_y temp_xline_y1) 2)
3 E+ E* f( q7 R6 Z2 T - (expt (- temp_dir_z temp_xline_z1) 2)
5 r! x- i c$ b8 z x9 n - )))6 b3 T2 k8 o5 `; j
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))! J: x" s) n3 n
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
& Z7 u& S1 l/ _% ^5 t7 z - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
4 B; J9 O9 F9 V; e - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
% N+ L; O5 @: X: \ - (assoc 11 elist)& X& L3 F7 R+ q) r! M* f, Q
- elist. ]# y# W4 E6 l9 D
- )
9 L: ]8 I9 b" ] - )
6 I! P/ \! ?6 a - (if (= 1 flag)- o8 [! u/ R6 I8 e) _' y1 _
- (entmod elist)
% y: H, c$ X8 X9 j2 l - )
5 Y( F* p$ ]* i# `3 } - )& S0 T7 h5 F; v% i2 }4 d
$ ~3 i/ N# y/ T- e- (defun ddxline (): F4 z, d( Q$ n; B0 X p
- (if (= etype "XLINE")
& l7 B8 A, T( m+ h - (if (not (new_dialog "ddxline" dcl_id)) (exit)); m. p6 n# C9 V3 J8 g$ k+ x1 ] W
- (if (not (new_dialog "ddray" dcl_id)) (exit))* t, [ U m0 u5 k! V' w
- )
! X1 k7 Q1 J/ M% d2 B! P* k - ;; Set initial tile values6 [6 y, f( M3 Q$ s5 s3 P9 L9 G
- (set_tile_props)7 E3 Q) J( Y! r1 Q, U ~& R
- (set_tile_handle)# R8 x) r8 J; i% Y O* p5 q7 r. Q
- (set_tile_xline_pt1)
- T; d. |# M- I2 h5 T3 o - ;; Convert to UCS and post Direction vector.
/ F7 q; t7 B Q - (set_tile_dirv)
9 u. |0 e2 x! d5 q - ;; Calculate second point by adding Root Point + Direction Vector.9 o" j ?# v; }; B8 E
- (set_tile_xline_pt2)
4 W& t& N9 ]5 n _8 P/ { - ;; Define action for tiles
3 }! G3 w) v' W, {# u - (set_action_tiles)
2 O v: p. Y( V: ?, x - (setq dialog-state (start_dialog))
2 H/ i4 Y5 C6 C7 N - (if (= dialog-state 0)
1 v; Q3 f1 G t! I - (reset)
) E: Z8 W) _' T. W$ I - )( y, i4 P. ?5 o! D- `' F' B$ s
- (if (= dialog-state 3)& Z$ m) D' a7 X% @
- (progn+ k( P$ O! ?* G8 ^2 U
- (modify_xline 1)! J: H. D% x3 R) J* X5 }4 P! j
- (while (equal xline_pt2' L1 A& | R: C, j
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)! Z) u {" r, z# k9 Q1 ^: o: G" T% M
- (princ "The Root point cannot equal the Second point.")0 c6 l8 M7 y9 M3 `
- )* ^3 T2 |# X8 I; X
- (ver_xline_pt1)6 f# I* ?0 X0 F- \ D
- (ver_xline_pt2)" [: N( Y: `) M1 @: S4 I
- (princ)
& Y! t" h" [- p' b2 i - (ddxline)
' L) U7 {2 L; F& J - )
- i7 {& _$ Q e( Y% ^; b- u. D# w - )
. _1 O5 x( y% f4 D1 E% \& | - (if (= dialog-state 4)
J$ V/ l" Z0 m+ \# ` - (progn
3 m- l' V5 }. ^3 q - (modify_xline 1), S a, b$ `" `- l9 V1 o
- (while (equal xline_pt1/ e' \/ S. a3 s2 e. b y
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)8 m7 k* e) ~" n3 ]# _2 o
- (princ "The Second point cannot equal the Root point.")* g' j! V) [8 [7 u
- )
; O7 m8 Y, z* L; ^: A9 ? - (ver_xline_pt2)# t. ?9 v* w2 H% o. b6 a% r1 Q V
- (princ)
8 P- x& C. h& S( h+ s, U - (ddxline) ?% y+ k* B1 f+ U$ E; x' q
- )4 Z) o+ X1 d* N# k, s
- ) s7 g7 p0 D% l9 h! A- t
- (if (= dialog-state 1)
% ^ A! q. c( W2 E, ]% i6 H - (modify_xline 1)4 k2 t# V) j1 o8 {& u7 X' e; R
- )# |% U% e6 \# q
- )/ C& D! R) M; s3 F) W( f# o
- ;;
; K( O l3 ?1 ~! v' S - ;; Modify ELLIPSE
2 G8 d) P! A# r7 o1 k - ;;
7 |0 `& T& T9 ^- Q: E7 ]2 S - (defun modify_ellipse ()
) B) }) }7 d. B; P$ l# s# s2 L - (modify_prop_geom): s; ]; x e1 D+ o- y/ F8 {
- ;; Update Ellipse Center Point value.8 \+ _1 r6 J& X8 L7 T4 d7 C* N
- (setq pt1 (list x1 y1 z1))7 l. w7 L( m$ A, \
- (tempmod pt1 10 1)
. X: Z9 Y |/ I1 Q( y* C - ;; Update Start Parameter value.
# h+ K: g# a# |' y# s6 Z% A; K - (setq y_val (sin st_ang))
3 t% f6 m& }3 d7 U Y# |5 R - (setq x_val (* rrat (cos st_ang)))' S" D3 N8 Y6 ~- B# M- I4 c
- (setq stparm (atan y_val x_val)) C$ V1 D3 M2 M$ B3 L
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
4 |, G, h: |/ K& L, c7 Q% z - ;; Update End Parameter value. Normalize it, if it's less than2 [- G; P- \! X$ }7 C8 f9 S
- ;; the start parameter.$ B, ^) v% l( I6 q
- (setq y_eval (sin end_eang)). ~* ~; A0 q% ^$ U2 R
- (setq x_eval (* rrat (cos end_eang)))
2 w+ Z7 P# c9 N9 W) `/ E - (setq endparm (atan y_eval x_eval))$ [3 C: e' M) m7 ^% [
- (setq diffparm (- endparm stparm))
Z% m& N m, C1 r. y1 {: Q - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.! H# X! E: m" L
- ;; Since zero length arcs are not allowed - construct the full# S* d& Q+ M8 R
- ;; ellipse in this case.
' a! z5 O& |5 u) m6 U' Q$ h* Z - (if (<= (* diffparm diffparm) 1.0e-12)
5 a" L0 A5 ^5 L& w% O, Z - (setq endparm (+ stparm (* 2 pi)))
- M* \$ u$ C! A" e- S2 |% u2 U - )4 Z* N- |9 z1 \9 v8 |: T6 P. D4 n3 h
- (if (<= endparm stparm)
9 A( N% e; t' m0 Y! C6 y1 @ - (setq endparm (+ endparm (* 2 pi)))
9 z* l9 p, `* r, d/ k - )5 F: p* v7 N% W+ Q% }" [
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
( m* B) n; j- h% e: q - ;; Calculate the Major Axis Vector by first calculating* _9 w8 q$ d7 U8 ~' a0 D3 u
- ;; a unit vector using the old Major Radius value. Then9 g9 s8 P3 f- i& l0 ~) B. i
- ;; Multiplying that by the (possibly) new Major Radius
# L! J# r0 _. h3 N; `# O7 k - ;; value to get the new Major Axis Vector value.! V$ A$ G' I1 _/ \+ _
- (setq unitxx (/ xx old_majrad))
8 m4 x7 N5 a/ O. |; } - (setq unityy (/ yy old_majrad))
1 y" l8 u/ z7 U- y, d - (setq unitzz (/ zz old_majrad))
/ G9 q! B, [7 l6 l' W - (setq newvecxx (* unitxx majrad))
3 U8 I6 f# e$ H" s0 D/ ]( v6 e# I - (setq newvecyy (* unityy majrad))
1 ]6 v! u: T3 V) J S; Q8 K. ?, k - (setq newveczz (* unitzz majrad))
# u) z% b% K, E% d - (setq newmajaxis (list newvecxx newvecyy newveczz))- e5 b) R% K. b6 V# o3 ?8 o
- ;; Update Major Axis Vector value
, {0 t1 f4 U! f: ~ - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
; n* I! S. n! }& _1 X5 A - ;; Update Radius Ratio value* J- f' n2 {8 x3 K& b& H P6 k
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))# L8 x6 D( f$ G6 y& d
- (entmod elist)
r! V' Q( b; n' [0 _' o$ [. X - )
0 c( R5 d1 {( n' K( Y# p/ c
u; a' B. e% G( i8 `- (defun ddellipse ()
2 }# i( S& G" H4 Y, j - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
0 I9 _- e7 A+ K5 ?; e - ;; Set initial tile values- K* @# d, [2 r( }+ }
- (set_tile_props)
( _' D G' w+ M, M# l2 x) h" } - (set_tile_handle)
+ P1 K4 H6 M5 I! }/ r* b/ a - (set_tile_pt1 1): y# S R- F. f
- (ell_calc)" a4 Q; |+ m. Z; G
- ;; Define action for tiles
2 {3 H. C- j: X! S$ `' I9 N - (set_action_tiles)
0 s# n$ e" l- a6 q! b - (setq dialog-state (start_dialog))7 ^( e5 B0 N7 |# }
- (if (= dialog-state 0)
2 z# m. S2 Y/ u& E/ U - (reset)9 R. j: ~& V$ I1 t ?! A! d# z; H
- )
1 l' w$ i/ U1 x8 O3 x8 G1 B - (if (= dialog-state 1)- {, e: f! T- u. `1 A' b
- (modify_ellipse)% c d! {' ^5 _5 b- l' t/ m
- )
: P2 ]# K, h9 B - (if (= dialog-state 3): g: a, ?+ x4 i2 e3 C0 P8 J, O F
- (progn
" G' Y& t" M$ s! c - (modify_ellipse)* n8 b' G# h- n9 \6 u
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))/ [8 A% l" D! J* N! r/ H! p9 X
- (ver_pt1 1)
: Z7 y5 j) T" @9 B/ [ d0 h, S, V+ p - (ddellipse), i& ?- t: A9 @& T+ P
- )
; M8 f7 l' T7 H7 ]) J7 K* |. B( G - )
( b4 U" @' T% R& V) W- h - )
1 m) h8 A& X( q; H- U/ v - ;;
. y( G7 I- F: \0 { - ;; Modify REGION
' P9 V" R% M& }9 x( S- R - ;;
# y+ Y) K7 i. ?/ D! I - (defun modify_region ()
( `7 L1 j& E- x' h! L1 o% \% U - (modify_prop_geom)/ O$ l; z; `5 |( `6 L; Q9 y! q
- (entmod elist) s3 {* b% c$ D$ Z6 X
- )1 g+ }; d9 B* m
- 2 o8 ?/ z/ c' c& ~0 W* q
- (defun ddregion (), W, i* v3 f7 D) D
- (if (not (new_dialog "ddregion" dcl_id)) (exit))" O8 h9 [' J: A# a
- ;; Set initial tile values
9 L/ h. r. n0 L) ?, F6 c* e - (set_tile_props)
) B) T n9 }& L2 |. m* Z+ n - (set_tile_handle)
/ O5 Z* ?" e4 r! M - ;; Define action for tiles
+ u0 b( H1 V9 p/ L4 U$ p3 F& Y - (set_action_tiles)
0 {4 ^) f( }* S0 S - (setq dialog-state (start_dialog))7 c# M2 l/ `" A# `3 s* M
- (if (= dialog-state 0)
% u' U! i) x5 X" O' v3 S( z - (reset)
* d2 \4 e3 K2 L4 M9 ]: I8 A - ) y8 Z8 D" b- D$ ?; i
- (if (= dialog-state 1)
( A' T; M: k2 I6 C/ o - (modify_region)2 m W- @% Y9 n" W
- )
0 k% Y# g6 ?6 c* |- u+ ~1 S5 A - )
1 g8 j* Y9 \3 S* m4 n# B - ;;
- R* a9 W' Y$ \1 U5 F3 E/ c - ;; Modify 3DSOLID9 g; b u8 z; p) ~
- ;;' d# ]$ i) S3 K% y& l0 e: L
- (defun modify_3dsolid ()9 R( j% h) s) Q/ k h( n2 h6 t
- (modify_prop_geom)
$ M, c5 X& k$ ~/ e+ o+ }6 M - (entmod elist)
, T0 m5 X" E$ n9 F) @ - )
% h; ~: c2 C& Y8 n - % M5 \( `8 w/ `% a
- (defun dd3dsolid () K2 u [, h/ V
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit)); i/ T! Y* L4 I' V& D1 l
- ;; Set initial tile values
3 d- R0 V9 C* V) {! H7 T& @2 g- z - (set_tile_props)
9 z, O% W+ o: i1 I* X - (set_tile_handle)
* c; L7 e3 C+ W+ c: |# ^* @. U - ;; Define action for tiles2 k* h2 p; v7 Z4 s
- (set_action_tiles)
5 M9 w' b6 `1 D c$ z: z - (setq dialog-state (start_dialog))% D7 F* M k! @. X$ e
- (if (= dialog-state 0). m; Q, k2 n* e+ @, M
- (reset), I: I& ~# O* Z+ M3 E& `; p
- )# c% B. q8 W( j% s9 N8 T4 ^
- (if (= dialog-state 1)3 v. j9 b5 @: u
- (modify_3dsolid)
, u2 X0 V3 d: U! v: u - )
. N9 a9 `6 B' k3 J4 ]! q7 u - )
! E9 ?- h5 ~+ F- o& P! R5 V - ;;
7 [. t3 Q: ]( s; ?' N - ;; Modify AcDbHatch. b9 B/ M2 |$ G, [1 K; r
- ;;+ ^" k! G- ~" X+ H/ E5 v
- (defun modify_hatch ()# q' b8 H. j! Z& [, F; N
- (modify_prop_geom)+ X; V: e7 t- d
- (entmod elist)
% }3 o! {! w, x) b* c - )
' Y; a ]0 A3 X" v
- ~0 J$ g8 ~: r- (defun ddnewhatch () f- t/ [9 [4 Y+ c
- (if (equal hatch-elist nil)
2 R- _# A/ T5 I& n - (setq hatch-elist old-elist)
) G8 \: H) N4 y7 o$ S' D6 C8 H - )
& @* I! E& u+ n) u5 y - 7 y5 ]: I3 B: F" O! {. I9 Z
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))8 q) {. V" f1 g3 F
: F5 | O* Q( o% {! }- ;; disable the thickness tile d, v; _, O6 P% U
- (mode_tile "eb_thickness" 1)% X- [$ y) Z$ n' R
- (mode_tile "e_thickness" 1)
: X6 x4 y0 @( I
- k8 P* T5 {8 }5 u( q- (setq help_entry "modify_associative_hatch_dialog")0 f' I+ l! Y$ P. I7 O
- (set_tile_props)" k/ G7 @2 _/ c3 M: i# ~
- (set_tile_handle)
4 y! X$ Z: i, s2 Q, n" Y$ ~
) N/ Q7 d" S) y! \% O8 q- ;; Define action for tiles. R0 [: N# Z0 o& ]' z
- (set_action_tiles)% u: H1 k5 ~) h
- (action_tile "b_hatch" "(done_dialog 2)")6 @5 x* C' y" L, \! j! Z
- (setq dialog-state (start_dialog))
/ p( g* y" i, R5 i7 e3 F - (cond
) t2 D J7 h3 Z2 ?6 K - ( (eq dialog-state 0)
" J3 m* N! N- b, z7 w - (setq old-elist hatch-elist)$ _7 A) b3 c) ?. ^; l8 Z# ?. A
- (setq hatch-elist nil)- F# A! M0 S! d0 z
- (if (= (checkforlockedlayer ename) nil)
" \: b5 k$ B' h- q - (reset)# ]6 h! Z* R# u; {
- (progn ;;; special handling for locked layer reset
% d$ H' L2 ], O# A; h+ ?* m8 G - ;; unlock the layer
/ C5 X5 N& M) l- |! \ - (setq layername (cdr (assoc 8 (cdr (entget ename)))))# I% K; Z6 ^. i/ i( r. {) ~( h
- (command "_.-LAYER" "_Unlock" layername "")
/ e9 c# @3 S l - ;; reset modifiction
' f' A7 i( ]* E - (reset)
7 \" k6 h Q" w; R5 v - ;; lock the layer again, \ I; h/ p8 f+ p& f- J
- (command "_.-LAYER" "_Lock" layername "")% n5 Y4 j( \2 W
- )
0 S, @5 W& ^ G- A' l! h5 J: g3 S( e - )
7 @+ z t# P$ W$ U - nil ;;; makes (ddnewhatch) return nil for Cancel0 P" c1 f, v9 k- j, U, c
- )
# O2 j' A+ w$ Q - ( (eq dialog-state 1)) l1 ~" b: ^/ v! q! W3 i
- (setq hatch-elist nil)5 R2 h6 ~1 {2 Q/ [
- (modify_hatch)2 E0 t8 ?; C7 J: V' F1 x, ` \
- T ;;; makes (ddnewhatch) return T for Ok
. t3 R" e3 b. X0 { - ); q9 W% T7 |; x5 b
- ( (eq dialog-state 2)4 x; u) c C0 y
. ~; j0 A0 A* P. J: X6 _' C- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer))) m+ f4 Q, g' _
- 4( d% h# B9 q$ V8 w9 x
- )
1 Y$ e/ g& {9 j; r/ V v2 O" d - ;;; new selected layer is on a locked layer6 u+ \8 q5 \& r* J
- ;;; we can simply modify the hatch properties
. m. a, D( T* N - (modify_hatch)) c& N! I& ~! ~* m* W6 A2 `
- (progn$ d1 ?" X6 H j0 J$ W+ t' w
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
, a. m! J0 M# r, T" n9 x; ^ l - 4% E7 d( ^, ?- i I: {, S8 p4 `$ k1 v
- ) * k2 D. P2 D1 F& Y. Y/ {( y
- ;;; We changed the layer previously and now the hatch lies on a locked layer.9 Y6 ?! {& Z! Y% U$ f2 n2 r- J6 I
- ;;; We have to unlock the layer forethat we can update the hatch properties./ a% R' |! J3 I+ j! z% U8 r
- ;;; If we don't do that (entmod) fails to update to the new layer.' W! l" C6 j1 h1 _: ?% I
- (progn- V% ?# n1 T( w% U% v% i
- (setq layername (cdr (assoc 8 (cdr elist))))1 R% H% k+ E' T# B
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
1 U8 v& C4 @: ] ]# [ - (modify_hatch) ;;; update the properties" o/ I1 g" _7 Y8 c+ l7 ?
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again6 w. R3 p; ^. g
- )4 B! ~' M$ C/ K! \
- ;;; All other cases we simply update the properties, k Z* e3 D" |8 y Z
- (modify_hatch)
3 ?% {# j! b% l - )
/ H, X* e! h' _5 o8 E6 w1 m: S/ x" i - )% b g; h, E9 _
- ) ) @4 \( ]8 W: Q1 y. d
- (if (= (checkforlockedlayer ename) nil)
/ q1 @0 V, A6 M d! T, u - (command "_hatchedit" ename)
7 d: m- [; f C" L l9 m1 T3 V - (alert ;|MSG111|;"The hatch object is on a locked layer.")
# K( k# h. ^ a# d% [9 ]7 } - )
; M2 R9 {3 p4 }% z" n3 F C - (ddmodify ename)) ~, r: g/ A- H$ d: Q( }
- )5 h3 R6 {. D ?! B
- )
5 A, x: k* W; }- u# a* v% T l - )& O2 {% A8 e3 W6 N( X
- ;;
4 m8 z( `+ j* I: Q; n" x1 t - ;; Modify BODY" x+ H% D3 R7 K* e1 d
- ;;' T9 c: X; O& F, W: p
- (defun modify_body ()
" y( S3 F, K% s. j - (modify_prop_geom)
. v" }$ X8 M, k& b+ V2 } - (entmod elist)
& G" ^' E8 }/ x, F$ d; { - )5 K7 k: n. b- u# L
- # y* b- b: @9 T0 d
- (defun ddbody ()
+ C. X+ i6 \) g6 q0 Z' _0 @; L - (if (not (new_dialog "ddbody" dcl_id)) (exit))' _! Q, ~, `& i7 v: q( p* D3 a2 @
- ;; Set initial tile values
1 ~, N$ v; O- ? - (set_tile_props)
- a, U; ]% d/ K$ Y - (set_tile_handle)! W2 j6 _9 X& j6 ^
- ;; Define action for tiles$ F8 b( ^8 H" N
- (set_action_tiles)
+ _! K& a9 ?( D: ]6 U! F - (setq dialog-state (start_dialog))
6 i6 P7 g+ s1 W - (if (= dialog-state 0)9 \# D! z! j1 |& K! M2 h6 F
- (reset)
# D3 l: V3 y0 k: ^$ i% [1 R$ _) g - )1 y0 R% [4 V- b2 F+ R
- (if (= dialog-state 1)# ~4 I; E1 k5 o
- (modify_body)/ w2 ]: j3 z7 d
- )
( [4 ~+ l: k* U2 x4 Y - )4 B; W3 d( d' F g/ i
- ;;
/ L% S3 Q8 q% {6 W& c0 b - ;; Modify CIRCLE
. g8 U- {" M: p - ;;/ b& k, q+ I$ T# ?( @7 o; G8 W
- (defun modify_circle ()" i5 J7 b1 m& P5 @* f) Q& _. K
- (modify_properties)
6 q8 P% {6 z. G: r: K" g) L1 A - (setq pt1 (list x1 y1 z1))
! Q, S( g2 `3 \ [. q0 X - (tempmod pt1 10 1)
" Q) y! t {$ E. o4 X! N& J1 u3 [ - (tempmod radius 40 nil)
$ _* V% F4 m9 g- g+ u - (entmod elist) s# `; a; e& i6 W9 _
- )
5 L6 T7 E7 ^+ W: V4 a+ L G0 S' f
$ d7 i3 L/ b3 r* @0 M. p( ~9 C- (defun ddcircle ()
9 j/ ?& |4 P4 o1 n: G - (if (not (new_dialog "ddcircle" dcl_id)) (exit))
7 w) g' ^! i2 h) c) U; N& W5 ` - ;; Set initial tile values9 ?; L. e3 L) ^9 Y
- (set_tile_props)' d, s( M0 K3 Q/ W0 x% c, F! ^2 J
- (set_tile_handle)" p$ X5 n8 D5 U3 Y6 _( |5 `3 b
- (set_tile_pt1 1)
$ g2 T6 v3 g( b8 o - (set_tile_rad)
- b, z0 q7 E0 Y6 p8 s - (cir_calc)
a: d0 Z' z' R$ Y$ x- } - ;; Define action for tiles" y' a9 l+ q# y% X/ x7 w
- (set_action_tiles)
7 U; x0 c+ B. E6 j - (set_tile_pt1 1)1 N, i& @- F: U- h$ Z; |
- (setq dialog-state (start_dialog))
& n% J5 z2 h8 C$ a: @' ?' n% G9 I& E$ X - (if (= dialog-state 0)
& n' y; X% {3 t$ z# \0 C1 R - (reset)
8 J; U9 C' K, p! @( n - )
6 t1 z1 t: ]) Z/ [ - (if (= dialog-state 1)
. R" u! {& G# d# g4 H; E5 l% ` - (modify_circle)
% u p, j* b4 [0 \ - )' L4 N/ ^6 \4 U6 k: t8 ^
- (if (= dialog-state 3)
2 j4 C `- @( C - (progn9 U1 B# |5 u5 `- R- z: Y6 Z
- (modify_circle)
" q1 n" }6 N! }, O - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")) y* c! o' g" t6 G- D' i
- (ver_pt1 1)
* O7 |4 |1 z' z# u7 s( n - (ddcircle)* r5 ]9 \! v" w; M: }
- )
. b- ]7 @8 }4 X$ [ - )2 @3 p' j- ^3 V1 H8 l5 L: N
- )
1 t/ B* t1 i0 y0 o/ w - ;;! ?+ ^' E3 N; n
- ;; Modify ARC
) S5 f# O, d2 ? - ;;
( S* D( I0 S8 m m - (defun modify_arc ()
" ^& X g* `# E' `% B - (modify_properties)
: x' {0 @9 G4 c - (setq pt1 (list x1 y1 z1))0 r' y+ v9 R: f# W9 I
- (tempmod pt1 10 1)
$ Q% p8 x0 q* R T6 ^* `5 m4 m6 y: ?# r - (tempmod radius 40 nil)+ d, e$ W! v! n
- (tempmod st_ang 50 nil)
6 M8 K) |. D8 H- c' v9 q - (tempmod end_ang 51 nil)
, ~" W6 w! K- m4 x+ b1 T/ _/ f - (entmod elist)
& y" q( U* T6 J9 ~, h - )+ C p2 ?# i% d8 @8 Z
- (defun ddarc ()4 a% Z3 H8 q) s% B1 P, M( {" a& P
- (if (not (new_dialog "ddarc" dcl_id)) (exit))
! o% y* @- R2 _8 L" N - ;; Set initial tile values" w s$ l) v1 h1 {" V
- (set_tile_props)
; k/ ~1 {% Q2 x4 }2 @ - (set_tile_handle)
7 H8 N1 d! D! G$ S6 E - (set_tile_pt1 1)
# F; c. [; S2 d/ X. S# r - (set_tile_rad)
' A( Q# F/ `3 r* h% X - (set_tile_stang)
+ C6 G; }# V0 M' c# U8 l9 X. x9 ] - (set_tile_endang)
7 | ?2 T! E8 m/ ?8 r6 L! z - (arc_calc)6 X2 `' \6 L) M, c( Z( h% m' `
- ;; Define action for tiles
9 K; F8 a; @+ |3 T4 U - (set_action_tiles)
; r5 \, |' T# f2 k; l9 p - (setq dialog-state (start_dialog))
4 G( P; o0 s" {- I - (if (= dialog-state 0)
2 e5 N1 Q1 Z! f' v - (reset)
8 j: b5 ~# g! [; y* @+ e - )" C5 K7 \6 E7 s* }: G8 V1 j' v
- (if (= dialog-state 1)
( C* ]. v; Q2 x - (modify_arc)- o. v; b9 N5 q8 `0 _
- ). X! a6 u7 u' {( U M
- (if (= dialog-state 3)
+ j' p4 ^4 B# \+ d/ \ - (progn' |, T: ?, b. w9 e5 e9 Z
- (modify_arc)
, @1 S1 I4 Y( f5 |1 A - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")): K2 d$ f2 x: J# K7 o
- (ver_pt1 1)
* V/ G+ ]( R, B9 {, L - (ddarc)
# I) z( Q- x, p1 v# [6 W - )9 \7 O/ f. a. B5 J$ R. x& F1 c, R# o
- )+ U( a7 N: x* E# v' |3 ?, K) K3 d* p
- )
9 H# x; R- E4 }( l/ T - ;;
; f& F3 q' L+ {: v# { - ;; Modify SOLID or TRACE
: W9 V2 [* J6 T' d8 D/ ?' i - ;; Note the Z value of the object is determined by the Z value of the fourth, J& O: Q1 z3 c" [' z
- ;; point - code 13. Changing the point values of a solid or trace from a UCS# D2 j/ n: l8 ?6 _0 P7 X
- ;; that is nonplanar to the UCS the object was created may confuse the user.
1 Z3 F: I9 n+ m - (defun modify_solid ()2 n4 p: h N- c$ K' l+ f
- (modify_properties)7 o G7 f1 Q( M2 X- F
- (setq pt1 (list x1 y1 z4))
9 C+ K8 w" R( n1 S' O - (setq pt2 (list x2 y2 z4))
: Z# ?+ p/ K ^0 k$ S5 S - (setq pt3 (list x3 y3 z4))$ s! t$ C0 J7 L
- (setq pt4 (list x4 y4 z4)) {7 d$ n8 \9 |% _3 c Y
- (tempmod pt1 10 1)
. ^( Y# [' ~' z5 F - (tempmod pt2 11 1)
7 ]5 t+ r, m0 Q, g" Z/ @# @0 ^ - (tempmod pt3 12 1)4 h. f. z1 U3 t0 m3 D3 ^& P
- (tempmod pt4 13 1)
, T: `; H5 ~9 y( a! R9 C - (entmod elist): U# F. ]8 i& C% V2 K: \
- )
1 s8 |- W3 E6 f/ P
& W: |4 M' U0 f& `$ O; r) i; b( m' w- (defun ddsolid ()
( ^* P2 b6 h0 p - (if (= etype "SOLID")' c* t; Q: w( g. k- C
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))$ _& }1 }6 |! T7 S2 s J1 J
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))2 P" g( _1 f( e# q
- )
1 J4 l. c) b- K9 W) x3 { - ;; Set initial tile values
- O! ]! X4 A' G( i - (set_tile_props)
5 N# ?. R! v, }# J - (set_tile_handle)
% z8 T, B2 w$ g! B8 R; K - (set_tile_pt1 1)
/ M d0 V o8 I# q0 I& E3 g - (set_tile_pt2 1)6 w2 w1 m5 B4 y6 o6 C' n
- (set_tile_pt3 1), m8 ^+ R4 @2 J" V
- (set_tile_pt4 1)
1 |7 \( x. |* f9 I& o" n* Q - ;; Define action for tiles
# ]! g; C0 Z1 K0 r# D$ a: @ - (set_action_tiles)9 C, b6 I" j1 a) J b6 b6 K
- (setq dialog-state (start_dialog))
; ]' N2 w- N7 ?, b8 v - (if (= dialog-state 0)) l& |) E5 Y0 Z7 X
- (reset)
) P8 c+ }9 F1 ^* Q - )5 Z4 O8 X: _6 c$ C
- (if (= dialog-state 1)( F; ~7 i; _# N4 v6 A
- (modify_solid)$ E2 T; D$ R4 z0 B( [, `3 \- D
- ); E: Y# Y: {# I) v/ f0 N# c
- (if (= dialog-state 3)
8 c2 E" {( R8 c6 p6 L$ x - (progn9 ^5 B5 i6 \+ q5 u" u- c
- (modify_solid)2 x0 t) l( h6 K/ x
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))6 c5 G2 |; @" p9 {7 A% d0 f
- (ver_pt1 1)
' d' S; C# V1 K8 S( ^ L - (ddsolid)
9 c9 f! L( S" e7 x" W - )
1 T6 d7 f4 t; `( B7 X - )
7 N" |/ z! T2 z8 f - (if (= dialog-state 4)2 Q/ E' a6 Y; r
- (progn
/ S4 U2 @: A5 c* i1 f; T - (modify_solid)2 F' W5 o# r8 W! M, ^$ @! W
- (entmod elist)
0 z7 I. @8 B9 X5 u; d* e - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
0 s8 M. L K7 q( c, R; a. } - (ver_pt2 1)
3 e/ r w5 @% d6 b: ~ - (ddsolid)8 l: s: f, J1 u3 F" b
- )
$ O3 l9 s$ N) u - )- r2 K' ~- Q6 R
- (if (= dialog-state 5)6 ]' t5 ?/ {2 e9 F' m
- (progn$ `* b2 }% u6 Y1 t$ J- R
- (modify_solid)
7 M& O$ {: a V! W8 r" ?- ~3 A - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))! T9 B4 x- s; R b3 H! P: u8 Z
- (ver_pt3 1) ^' [- U$ u- s7 e E
- (ddsolid)! N; B. m0 L; G/ C% C2 I
- )
' E5 C: g) `' b4 z. h - )
$ O8 }/ E( z" i F" j! A - (if (= dialog-state 6)
1 t9 r: S4 M& _' ?, F - (progn- A+ v2 @2 A" J1 }) {
- (modify_solid)
, B' Y1 ?4 T8 G5 F( w - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))& {! j& p V2 o4 y& R( h
- (ver_pt4 1)4 C3 {0 O3 [( h6 i2 D6 T/ v
- (ddsolid)
! k1 z2 k {8 I2 y - ). \* H- O2 Y+ W' d) L6 q4 p
- )* ?8 X. P9 A5 |) L. @
- )
& T& k( w2 \2 s) j) ^* _ - ;;
+ Q7 S5 ?0 z, v- u" R - ;; Modify 3DFACE
2 P$ N- S% o" b+ y8 n2 d - ;;! Q) X5 U, ]) T X
- ;; Check visibility of edges
* H: `: A7 X6 H4 Q1 _ - ;;- O3 y. U4 a6 g& \* X- ]0 V, `/ L
- (defun edgetest (/ bit1 bit2 bit3 bit4)
, | Q+ v( ^. i( o9 n' r' P - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))7 c5 N1 b+ N1 w
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
1 u! I- ^# d$ c1 k q - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))8 q' s2 I& a4 m! s
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))- T+ X( h* r) l( j, x& k9 `+ w
- (+ bit1 bit2 bit3 bit4)
) q- o/ R3 |4 T7 i# S+ s - )% w4 I5 a# V! P( t4 p
: q! Z$ R( O/ n/ I) h# S8 x% O0 }- (defun modify_3dface ()
4 J0 B; [' G5 m' u1 A; s- z - (modify_properties)
: i4 j2 r! {2 m% v7 [ - (setq pt1 (list x1 y1 z1))
8 f1 Y. I( h% {9 ] r9 e9 `2 J+ K - (setq pt2 (list x2 y2 z2))! Q6 v, N# k0 t* V1 h. {
- (setq pt3 (list x3 y3 z3))5 ^7 c2 x2 y' c- q2 g4 e& @( g; m
- (setq pt4 (list x4 y4 z4))
6 }7 r( x9 y# G% U; j: t8 I - (tempmod pt1 10 0)
3 s! `/ b2 c4 z( J - (tempmod pt2 11 0)
. [: Y, v# C: L" H$ q. W0 q3 f - (tempmod pt3 12 0)5 d# Y: v$ k# _8 l6 ^; \& [& B5 w
- (tempmod pt4 13 0)* m7 i2 Y; \2 f4 @2 z8 k( ~$ F
- (tempmod (edgetest) 70 nil)1 O/ J8 g/ }" o9 J
- (entmod elist)9 e0 d3 I' K/ W ^& [. A" D
- )
- G* z {$ C8 L+ L; r6 Z3 ~ - ' }- s0 V. G* l D3 w: K
- (defun dd3dface ()$ ?# W7 j6 s( p$ v2 D/ \: e
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))
/ `' p5 \. B- Q ]) ~( N - (set_tile_props)& [* q8 }: _$ v5 X; l2 a
- (set_tile_handle)# k; U6 _$ G! P+ [4 o* t
- (set_tile_pt1 0)
0 [8 D4 ^ B0 F# K; G6 K4 ` - (set_tile_pt2 0)4 j+ D' F# c) N9 A: Q
- (set_tile_pt3 0)8 B& E7 B5 b$ `0 y9 u
- (set_tile_pt4 0)
: _2 |3 |" v) I. m$ d - (set_tile_edges)
! f7 y( U, p E6 X6 i; r - ;; Define action for tiles
1 @# |/ i4 J7 H - (set_action_tiles)
% ~3 W' Z+ I% X" X- g - (setq dialog-state (start_dialog))
/ z8 ?1 H5 k9 T- t; U/ ~# M - (if (= dialog-state 0)( C. w5 r: D: a5 ^% t. ~( k* t( D2 d
- (reset)
5 t( J7 R7 `; Q! T - )+ m! K, T. H% m+ B0 Y
- (if (= dialog-state 1)
- t" ?7 J* ~! m( x9 Y - (modify_3dface)2 q+ D) X- V5 C
- )8 j* w6 ~. Z" _* o# T& g$ t
- (if (= dialog-state 3)
5 U( A4 |" X0 B5 ~( R C( @5 H7 { - (progn5 N, s$ J3 l; L$ v' k
- (modify_3dface)* R2 p( t0 r, c! v0 i x: V4 H
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
$ M: y6 L$ U" I$ R, [1 J' w/ p - (ver_pt1 0)
) W: X$ i! d+ Z - (dd3dface)3 U# q: b; Y% M2 H1 G* [: f: J3 s
- )
/ c/ |. T) O$ h3 D - )
$ [7 R5 b2 u5 t, d& W& f7 C* h - (if (= dialog-state 4)
) a+ n8 X7 _0 ~! ?3 t+ e - (progn, N9 N! q9 ~4 [& U
- (modify_3dface)
- v) f* f6 u# a+ | i- _7 V9 l' k - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))! ~2 Y; C( k& f$ O8 R6 Q
- (ver_pt2 0)0 {" R+ V7 h& A; s% Y
- (dd3dface) B5 ^6 o: v" D$ ?, c
- )
/ M! J A9 a$ u4 {9 g - )
. s' m; ~. c9 U9 V - (if (= dialog-state 5)8 ^1 E. M: f# {7 k, y) U
- (progn P; _5 H& |0 K) y. u/ \
- (modify_3dface)
8 Q8 `; }+ W- o3 H - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
1 Y9 o0 j, z l4 d" | E+ L - (ver_pt3 0)8 f7 L$ k; R# ]& d% c0 _4 x
- (dd3dface)
: g1 w0 A9 i5 Q" M - )& G+ ]$ P5 w( l4 j- S
- )7 `" y/ U7 q: j7 v9 L& _7 }+ s
- (if (= dialog-state 6)) C3 u& D; g2 o- h4 r
- (progn3 q- I9 g8 c/ B9 O5 f! {$ a
- (modify_3dface)
5 i7 h# l; [# C2 i: N! G$ D - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
: G. Q) T8 c; \2 ~. s( X - (ver_pt4 0)
/ W" m& V. p2 Y& I9 W" o - (dd3dface)% U6 @) l% D2 n
- )' t6 s( [- L2 |, v; ~2 [/ p
- )
5 t$ h9 N1 \+ o6 _# X, _; | - ) Z3 t T+ S) \7 N) M; S
" w& W$ h$ |8 ]- ;;
0 h4 M8 j" W# K - ;; Image functions+ B6 \0 L- C$ C+ |3 p! n& {
- ;; g" D$ w) c/ z, n# h( I
- (defun image_scale (/ upixel en n userscale temp)( t# v1 B+ n) g& M; M
- ;; Calculate the size of an image pixel in AutoCAD units F) s* V, P) W, p# _
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
) {5 I3 a. L; H4 ?* @$ j - ) U- ?' B! J) c/ t" D
- ;; Retrieve the user scale3 N1 V$ E" T0 H" E0 j& j" z" c I
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
$ _% H. i; l g V/ z; B
4 C0 u, b, O4 |/ N: B- ;; Next, extract the image units and pixel resolution
& c$ f6 X& b7 _6 J9 A) d, K. R - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
" M" x! i# g/ S' b; H - (setq image:scale (* (cadr (assoc 13 elist)) upixel))
8 K' T* Z9 A4 ]% _* Y - (progn2 n$ y @* \; q+ ?% F; s
- ;; Convert the user scale to the proper word4 y9 x" Q0 l# @% ?
- (setq n (cdr (assoc 72 en)))
! Y6 q. r; E0 h: c& i( n) N - (setq temp (getvar "LUNITS"))
$ o9 G! S% u3 g* D, |/ ~* t9 u4 | - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))3 n; o* ? W- d# u, g& e
- (if (= n 1) (setq userscale "Millimeter"))
* d) p0 u8 ?7 ^) Q - (if (= n 2) (setq userscale "Centimeter"))
' r3 N) n% B5 x6 O; `- r4 I - (if (= n 3) (setq userscale "Meter"))
6 k, S' `7 M% I! k+ J# { - (if (= n 4) (setq userscale "Kilometer"))
2 q9 |' z V1 H - (if (= n 5) (setq userscale "Inch"))4 a1 W q- x6 ]$ _8 @6 ]
- (if (= n 6) (setq userscale "Foot"))
8 Q6 ?8 A1 Z% z3 [$ |4 H - (if (= n 7) (setq userscale "Yard"))
/ S2 n2 w( z5 }. N5 D4 d; s - (if (= n 8) (setq userscale "Mile"))
* X3 ?# b9 \4 I- z- T6 g - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
( I% k0 k- g) J - )& }7 s1 a) j3 | k+ J3 _
- )0 L' c, p$ _% j- y8 H S% M
- )
6 G, |. J3 C5 W& K' b/ |
/ a/ w" s8 M. [5 H- ;;
' G* ~9 S; W# k - ;; Scale factors for block insertions- K, U: \, Y6 ?5 z
- ;;
3 C, d6 V. n7 a - (defun image_set_tile_scale (/ temp)
: a1 R8 @% B0 L% Q& L+ P) Y - (setq temp (getvar "LUNITS"))
% h' J) {% Y/ q' L1 H - (setvar "LUNITS" 2)- B$ ]; [% ^( f4 d7 p- n( @
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))5 g: R8 z1 v- G
- (set_tile "wid" (ai_rtos (* image:width image:mult)))( f/ J9 a/ [1 y
- (set_tile "hght" (ai_rtos (* image:height image:mult)))
3 c+ M3 n7 g8 `8 |" g$ W - (setvar "LUNITS" temp)) X; O: N% U; t- r3 l% l5 T q
- )
5 H% |. R$ A+ F - * w6 Y+ d6 E8 U8 s h# O
- ;;% |5 Y3 d' L/ W( L
- ;; Set the scale, width and height values appropriately.2 h% Q( {+ E* J4 k
- ;;
' g6 x8 E# Q) B& A, o# Y$ @& q/ g" j - (defun image_update (field value / orig_value new_value mult)
0 l3 r' I; z P# j1 \( u - (if (= field "xscale")
9 B4 x2 \/ {1 A - (setq orig_value image:scale)5 U" W% n" x# C j9 r
- )
- X# g: t) c) C' C, q - (if (= field "wid") t2 c! q5 f1 b [6 O) E4 [
- (setq orig_value image:width)/ E) e! L' t. i0 o
- )/ i* C) z! c1 V1 O# b2 E2 o% ?
- (if (= field "hght")1 n2 G% _4 X, F& U+ u2 b. r
- (setq orig_value image:height)$ b- f0 b# B! X% _ p& m v7 t, x6 O
- )
$ F1 V+ ]' y8 p. p3 s& r+ c0 i! X - (setq new_value (verify_d field value (* image:mult orig_value)))
' ]- |5 a5 m. g1 _ - (if (/= new_value old_value)
+ C7 A0 y* ~' u+ ~- ]3 i) n3 F2 E8 f+ `% O - ;; Make sure the user has entered a sufficiently large value
7 [+ V' h* t3 i2 y* n) ^ - (if new_value
6 l; D4 p4 Y0 F A$ L+ q4 S+ L - (progn S0 C" `' p% Z
- (if (< new_value 1e-8)1 X4 z9 `6 h4 T' Q' M
- (setq mult image:mult)0 ?& b) o" P5 w Q+ V" a
- (setq mult (/ new_value orig_value))* Z% z. O' b- s, G& V
- )
4 c3 S8 w8 g2 l) ^: j; O - (setq image:mult mult)2 Q' V4 }- d, c3 g& C
- (image_set_tile_scale)
/ h3 G/ U$ W6 X - )
# L- ]+ C4 e: M4 y& q y- J - )
( P2 C* h7 D. z+ i6 b - )
( r& T7 Y! w7 J) F0 ]' r; n) C. H - )8 z& V* ^: A& ~ {
0 t- r6 x2 Q8 i! ~; a- (defun image_disp_opt (bit)4 _6 M& Q; M! b
- (setq image:options (Boole 6 image:options bit))% ^/ H2 c* h0 P- F; \: F
- )( s; x. N/ O( n4 g8 _
- 2 q& @, y* Y. L `' k2 F
- (defun image_modify ()9 r9 e6 \! @! @/ l- v6 K
- (modify_properties)
$ \) H. p0 S, D+ I ~9 [; L - (setq pt1 (list x1 y1 z1))7 k8 x7 R2 s6 t2 q, S* e! c4 {8 ?% W
- (tempmod pt1 10 0)
, E" x# v9 A5 a - (entmod elist)
. r* L4 L4 e7 `3 M8 y @: E - )
; T5 x' q3 W+ V9 C: a, y - ! A' T3 |# M2 m* q
- (defun image_clean_variables (), P2 W( a) i9 l) h! h( `
- ;; Clean up global variables used here! p9 d# U: l) x- y S& h
- (setq image:scale nil)
% ^8 Y V% Z+ J' z# t - (setq image:angle nil) i7 z) o: u' ~: U0 M7 W
- (setq image:width nil)
+ u1 o) N# O+ D& ?# V/ y: n* C - (setq image:height nil)
3 z2 q z6 y, b4 U- L - (setq image:options nil)
! H" n* h5 ?2 y" N+ o) X; i7 w' C - (setq image:oname nil)
( B( d, {3 }% D6 Z2 { - (setq image:olist nil)" _4 j3 l7 s. R( C0 I- s5 u
- (setq image:mult nil)
/ {' l0 q) b, n, Z* O& U- ? - (setq st_ang nil)
+ F. K1 @# ~( c$ T/ U" k - )
% h$ m. t/ _4 \% X0 l
, J( ]7 l* [$ x: |$ e7 z( g8 t9 F, u- (defun image_scale_vector (v1 value)
" o0 J) a9 S# z! {+ w! S - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
% Z+ ?* Q: C& Y2 X - )0 t) M4 B1 P5 w. Y, u0 D0 |
0 y; l: @ Q. ]% T- (defun image_cross_product (v1 v2 / vx vy vz)
8 s- E) v1 O2 @8 ] - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
8 n+ A5 b) v* g8 L* k+ s6 c3 A2 P - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
( [, Q/ t: j, y - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))* Q4 c9 X, _' b+ Q8 w h
- (list vx vy vz)
; X- C8 Y9 c) i: o$ H - )2 k) j6 P9 r* _4 L
- ( s# ~1 p- w! a9 f
- (defun image_dot_product (v1 v2)
8 q/ v7 `% r5 e) A/ f% L0 T - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))) C$ o; d* C( W( Q' i6 c: U5 E8 Q- L
- )# B7 r$ h4 I* ?0 \- |
3 u+ \7 n! s! X4 R) d- (defun image_add_vector (v1 v2)$ D. v2 J# I: s) g
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))! y( w4 ~% f; B# e ^! V. ?
- )2 `. N( A M: k+ F! Q* A" b V2 W
- 4 G: H& O) S6 c/ A8 {6 P' U
- (defun image_subtract_vector (v1 v2)
8 y0 e4 V; y, E - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
# z& q7 j5 j: T; I - )1 ^0 j6 L) y8 U* b7 F
+ n: T% E, O4 b) J; r% u' w- (defun image_normalize_vector (v1)
& s+ A$ k4 t' m' f6 ^ - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
1 n i$ Z) R; N" F, c - )' d( N* [ e) x8 u, \2 Y% X
- ' ~% x/ m2 W, s2 k: A1 k5 v3 G6 H
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
8 Y- @( ?6 L) |8 h/ T - ;; Normalize the axis. F( T4 U! b. q# Q6 j( d" }
- (setq axis (image_normalize_vector axis)); s% }! O) B( E0 n' C
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))' x+ @0 u5 j# M$ [+ Z) i
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))& r W. U+ I, C$ a" F1 E$ j: K
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))6 |' B. e$ _$ Z1 n
- (setq in_rot_plane# W" q4 n6 b1 B3 Q
- (image_add_vector) f& T1 ? e. p) I# l2 ]
- (image_scale_vector axis_x_in_rot_plane (cos angle))
8 V5 r U H& r: H! [0 F* { - (image_scale_vector axis_y_in_rot_plane (sin angle))
) B, L: D" c, N% h* v - )
% C* m0 `8 j4 p) O" \7 B# x - )' U4 O9 R' ~. h$ N: @
- (image_add_vector along_axis in_rot_plane)
& }1 _1 e7 U1 x - )
4 }0 W7 S* y5 N3 ~5 |! K2 Q - ) l& Y$ t+ ^1 o9 U
- ;;
. H' x. ~# \( H6 O2 y: O - ;; Calculate current rotation angle if appropriate.. F) m6 o6 R. O, r* y6 y
- ;; If not, grey out the rotation field.
1 `: U$ D6 C4 @# ?# d5 o+ [+ C5 L - ;;
* M" y' y4 B, K* t - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
0 O' ?* R$ ]8 u, A+ ?( U$ K - ;; Determine if image normal is codirectional with
! c, D1 X: m2 L" z; d$ W/ R. d - ;; the current UCS Z-vector.
% c n+ ]. J, h: _( P# }# ^ - ;;- `3 S. J& K$ K$ y
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
# e( V1 S! D' y- R' O$ [7 Y1 C - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))( s& k' ~: D# |8 i
- (setq zlength (* (last normal) (last normal)))8 h% r' P r' ]2 [( C3 X
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
2 V9 ^/ p. c H8 n2 L: s" X0 h - ;;
$ u- p: g! y% \4 U: s - ;; cos(.0001)^2
R& [ A. H, Z2 S, k6 L8 P - ;; Tolerance = --------------
/ x( Y9 J- Z; ?8 \# [4 K& Y - ;; sin(.0001)^2
( K1 S. O, J% A# v$ H( l - ;;# @7 O! [2 U. d/ C7 u: f' G
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))3 S' V; }6 D% g2 ~0 {( c
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
+ `( }3 r) Q/ R; q* `% Y - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
( F6 o4 ~! O) `) J2 }& l: h+ M - (progn
G7 p7 k, V7 X$ c - (mode_tile "st_ang" 1)
& e$ r! T( T2 [0 t/ d - (setq image:angle 0)1 G8 h% d( f9 Y, l' m% v
- )
, F$ C" |" s8 P; U' ]) L: G - )4 I# k% l7 I) @/ o( g
- )
* F$ Z' F& o! W( y% n1 |
2 t. ~# ?1 [& ^7 s( I( y6 ]- ;;% |$ T: D- T# f: f" i9 V
- ;; Modify Image
_: |! q3 o! D3 |) u) F - ;;9 w& \$ U+ J. a: Y! h
- (defun modify_image (/ u_vector v_vector z_vector)5 a/ g/ O9 \5 y
- (modify_properties)5 ^9 x& ]8 n, T, x. X
- (setq pt1 (list x1 y1 z1))& p0 h) Z' Z8 c% T4 H! G5 q
- (tempmod pt1 10 0). e& ^! f4 T& Y0 l ]( t4 b) O
- ;; Make display option changes to image t9 r q. Q% M1 f- ^5 a& L0 I- p
- (emod image:options 70)
4 z5 l1 L( B9 C5 `( y3 O7 S - ;; Get the u and v vectors; y! _5 w3 A' F8 `
- (setq u_vector (cdr (assoc 11 elist)))# _" F( ^9 c# v6 f- {
- (setq v_vector (cdr (assoc 12 elist)))) \0 m' W w, ^' y) Z# B. k
2 W/ E& q1 C9 m0 w; U- ;; Make scale changes to the vectors
/ x6 k7 ?6 h6 X6 o1 K |) P - (if (/= image:mult 1)5 R( L; t# Z+ c5 J
- (progn2 E3 G2 j/ `7 T# d' m$ H
- (setq u_vector (image_scale_vector u_vector image:mult))
7 s" c+ T. i0 s# ~* g# A7 e! V - (setq v_vector (image_scale_vector v_vector image:mult))
* Z% f! F) L. N7 z - )
" y& ^ `" g8 Q5 m! A - )& z! q" b0 l, s- F I' p
- ;; Rotate the vectors
8 r1 E p7 s: e' f. F - (setq st_ang (- st_ang image:angle))
7 y7 T# W; c( z( w* r( @" Q4 o - (if (/= st_ang 0)6 ^0 b a( O0 \& P; X2 Y
- (progn
- x. p1 w. l/ w - (setq z_vector
+ e4 \7 I- S8 | - (image_cross_product9 o) _! m9 @/ s- g
- (image_normalize_vector u_vector)
' o. u: n- K9 h0 | - (image_normalize_vector v_vector)* v; A4 U6 W' g5 a3 Z
- )
" F$ D: v A: R; N; {+ ]; j/ ~" | - )
9 X9 R% a$ I2 W# V; x - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
. _0 I5 M: p% G' P$ r2 a - (setq v_vector (image_rotate_vector v_vector st_ang z_vector)). I! R' ~% e/ b3 r
- )- ?4 y1 ~) ?& o$ Y
- )
! a' O! j7 r$ ~2 C) l - (emod u_vector 11)% X" h8 o7 J" P. L7 O
- (emod v_vector 12)
% N0 f6 {. c9 D, F' G6 N6 Q - (entmod elist)
% @. r8 n% u/ o) S" R. B - )
2 I9 Z7 H) j' o% I+ ?) ?
9 ] g1 Y8 a8 x- ;;+ Z& q% b: c; D# r c- l
- ;; Run imageadjust on given entity, working around possible9 h' Q" p2 a- ^, R: m+ c; N* g
- ;; re-entrancy problems
( w% B) V7 J; H, Z! C, E - ;;
1 f8 A8 n( u E - (defun image_adjust (ename)
8 R) \1 O4 @9 w/ {* d - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...% g" M- `' X! n: e$ q3 f+ n" j
- (imageadjust ename)) R( R: K$ c3 u% \# q' H
- )+ r# g: o2 z1 t- O/ j. ?
( X2 {5 E. P8 I/ s$ o- (defun ddimage ()
5 f9 H: q. Y5 x8 L: B( A( N: p9 Y0 I - (if (not (new_dialog "ddimage" dcl_id)) (exit))
. f1 \1 e: h5 y# }* U1 S8 K$ O
' a" f& D2 }7 o m# z0 ]1 B: Y- ;; Grey out the thickness field.1 O I6 \: R0 a1 F$ b2 j C- j
- (mode_tile "b_thickness" 1)
0 A' M$ C1 L& F J; ^ - (mode_tile "eb_thickness" 1)8 }. K& Z. E& n. k; L9 {+ C* [
. I' k; V0 N9 ^) J- ;; Get the associated def object.$ V: D! {+ C! E
- (setq image:oname (cdr (assoc 340 elist)))% x2 M, [5 x7 Z4 A+ n* _6 C& z
- (setq image:olist (entget image:oname))! S/ R) y" g4 W
- . D) s: x/ F6 d
- ;; Set initial tile values5 _0 `+ A0 a C- |
- (set_tile_props)+ r. _/ S' I# P% m9 i7 g
- (set_tile_handle)( y+ V' G0 x- e. e1 U% l# M0 V
- (set_tile_pt1 0)
9 f0 X' x0 w, N" x - (setq image:scale (image_scale))8 j* y/ U9 [1 ?
- (setq st_ang (image_rotation))
/ Q/ O( w: M, m/ S - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
9 K2 ? i: X( V! {5 E - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
9 N7 U7 v4 k0 M; Q; ]2 R" [( G5 ? v - (setq image:options (cdr (assoc 70 elist)))
1 y3 A* L; c% G$ [1 b$ b, U8 v - ; R0 E* w0 J' i6 y& e% p
- ;; Record the last multiplier for use in image_update function
! |" E' ^3 J: j" W$ m3 p; t - (setq image:mult 1)
8 q) [. B! L; b- T - 6 E; c/ A" y% V/ @. J' n
- ;; Retrieve the image name
% q: ^, Z: c' O, a" S - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))/ P. _. r B4 E+ L. \
- (setq flag 0)
J# i3 [% m& V3 B7 } - (foreach n fn
* [, R, p$ \* l5 T% Y$ a - (if (= flag 1)" d6 K! \4 u# ~# C. v/ H0 D0 N8 r
- (progn/ D% n: k' V+ C3 |- a9 a
- ;; Display the image name
0 ?6 Q5 y. w# x m4 S8 C" E - (set_tile "image_name" (cdr n))
, Z( C/ K n- k0 H+ |* S - (setq flag 2)* P: C F8 Z1 P; g/ v* X
- )
% A/ F. k3 v) ` - )
; O2 X2 }5 [, @* Y - (if (= flag 0)$ ~! R. }. j$ o! @
- (if (equal (cdr n) image:oname) (setq flag 1))
' v$ {% p; v+ q, \* q _ - )
5 B& C a- d' g; Z7 d5 M - )
9 j* T/ |) C. B& X L, `) A# N - 6 q6 c/ H/ q9 Z1 l6 x
- (set_tile "image_path" (cdr (assoc 1 image:olist)))7 V1 f8 f2 _% o( v
- (set_tile "st_ang" (ai_angtos image:angle))
8 v" E) b% D$ @/ s1 S x1 G - (image_set_tile_scale)
# f6 I5 {4 W+ s R4 X
; ~% u; k6 R/ ~, V9 i$ |) {1 U5 T7 u) @- ;; Check the appropriate boxes n: H: k- f& P2 F2 k
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
9 u" |! \; l! |$ o7 S) h - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))- t3 s2 j: U Z! g
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
# d2 |1 {& m$ e8 X& c( Z. m - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
" l9 B r2 M- X+ h) [1 W) H
- O9 R9 l2 }! C+ l/ D& F* N: C; o. f- ;; Define action for tiles
V2 A# ^ x, R" \ - (set_action_tiles)
. U& ?. e# l$ ]1 R0 t - (action_tile "xscale" "(image_update \"xscale\" $value)")
* a/ K: ?. a/ l* N- G% ^ - (action_tile "st_ang" "(ver_ang1 $value)")/ P. N0 L: F+ }8 K! S) R& \
- (action_tile "wid" "(image_update \"wid\" $value)")
v0 t8 a9 o2 w8 E7 |) M8 c - (action_tile "hght" "(image_update \"hght\" $value)")
6 @ S- N& Z) N4 q* A( h, W. d& N - (action_tile "image_show" "(image_disp_opt 1)")
/ {$ a, x- V6 u, t - (action_tile "image_non_ortho" "(image_disp_opt 2)")- \; n7 @9 U& w
- (action_tile "image_clipped" "(image_disp_opt 4)")1 g: ]$ S, |: M' A: q- |
- (action_tile "image_transparency" "(image_disp_opt 8)")
$ O3 M2 O3 H& a7 P) K- d - (action_tile "image_adjust" "(done_dialog 4)")
e) H# q6 `/ S- l6 B; ^ T9 F
5 b8 h& R& V& C+ K! x( J* ?- (setq dialog-state (start_dialog))
2 G2 B$ Q- {2 \2 u - (if (= dialog-state 0)
$ M) A0 c2 s3 T% p9 e - (progn
* `! v' V3 q5 o- g! Y8 e - (reset)+ T4 {$ c3 w+ q+ j7 |$ A& q% t5 S
- (image_clean_variables)
9 h' i& y- g4 @ f/ v - )$ x7 g. U$ J/ V7 w
- )
5 _: @ A- l) `3 h$ @ - (if (= dialog-state 1)' x; y ^3 g, j7 y& `( V/ {
- (progn5 a! P+ {6 @" p" c1 R! W# a$ h9 {
- (modify_image)) Z2 Y% a$ J `0 S, d' s% f
- (image_clean_variables)
) i! c0 |7 i( b5 l - )0 w1 X, p) p! R Q3 C- a3 T$ q
- )
: c1 ^. M- g0 Y - (if (= dialog-state 3), I P4 D8 T; V3 [/ A& j4 O5 q
- (progn$ Q- r* Z, v% m9 p( t
- (modify_image)
% j3 c8 r; U* h$ U0 N - (image_clean_variables)
8 T1 X! I" g- U* N5 q" j$ ?. w5 V - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
& I! `( |1 X! J x$ A% w' u% \ L - (ver_pt1 0)
: ^. h0 o* p0 m* }; J& r - (ddimage)) ], R {- ]7 k. V
- )
0 Z' k$ ^' Z- q$ \& _6 @9 { - )
( v2 A+ Z: `2 K* B7 S/ j5 ] - (if (= dialog-state 4), M5 G8 |! O2 h! B9 T' R8 y- w
- (progn
: a$ M% _( `' |* I. o( N4 M% Q - (modify_image)6 C* ~4 c1 H7 F- H' }* g* G
- (image_adjust ename)% X: M/ y9 T( e
- (setq elist (entget ename))
6 T! R% b3 r) v9 z ^2 J: R2 b - (ddimage)
% q. Q* z- [2 ^6 z - )
! O& Z8 h6 B8 w: o6 g: X - )$ D; h z- e' {& n" K9 B0 s
- )
$ n1 }2 e& X. r T
k3 C& z( n1 q& X- ;; ]6 b4 b" J# ^6 v1 C
- ;; Modify BLOCK (and its Attributes, if any)
3 r4 a& C) l6 G$ D - ;;1 l7 @* {6 V% O. q
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr; _7 w. w1 K( M- E) _
- new_wid old_wid old_rot scaling old_scale
% j" H' G+ }! [1 B4 q - xdelta ydelta zdelta xbase ybase zbase ipos)
3 O5 R' g& ^ E - (modify_properties)
3 q" S- Q6 F$ |5 f3 y
/ [1 E; i, X$ w. V- U1 s. q- E- ;; First, translate and scale the Attributes, if there are any.8 w- s$ s9 i% `. D+ z
- (setq old_rot (cdr (assoc 50 elist))" N% W4 ]# t) u* }3 u2 S; \
- old_scale (list (cdr (assoc 41 elist))& }6 m' j& w! _0 B0 J" v
- (cdr (assoc 42 elist))
6 w6 U& ^1 y" t% R# f - (cdr (assoc 43 elist))
x; x6 S& o7 m) A3 {. W; g. e - )0 n m# K$ |( x5 x
- scaling (or (/= xscale (car old_scale))
: g; Z; Y8 ~$ i0 h2 w - (/= yscale (cadr old_scale))
8 o, t0 |( X& @3 \# ]/ j6 M1 C - (/= zscale (caddr old_scale))) u! k# L$ D. V1 L k& |
- )9 e; k8 H! a3 V4 X; ]
- attr nil ; No Attributes modified yet
7 }5 ` @; w+ z9 g5 D - )
2 B. v1 i. u+ x - (if scaling
: a7 I8 e- c' @9 k. x5 p - (progn4 c: p3 c" \: w1 ^
- (setq xdelta (/ xscale (car old_scale))
# _. Z m) g! d6 A" H, l - ydelta (/ yscale (cadr old_scale))
6 ~0 q6 Z: h4 I. x$ G - zdelta (/ zscale (caddr old_scale))0 ]5 K, U. _7 @
- ipos (cdr (assoc 10 elist))
$ I0 a7 i* @+ n! X - xbase (car ipos)% Q- z) m; D* d& S+ @" |7 \& F
- ybase (cadr ipos)
8 ~( K7 p5 @3 a# ^& K5 u0 D - zbase (caddr ipos)
2 ^! \7 `9 b' i V& M5 G- g" ] - en2 (entnext ename) ; First Attribute1 I7 R6 V5 m. z$ j- f
- )
( a/ v8 \) `( {$ {9 X3 m - ; W& i* y% X X; ]
- ; If the Block is rotated, temporarily un-rotate it, along( |7 I8 J0 O" w0 C
- ; with all its Attributes, so the scaling/translation of the
* l) ?1 P2 P" u3 e& }% v z) { - ; Attributes won't have to take the Block rotation into account.7 M7 Y( q0 H Z8 o, g5 s' W) W
- (if (/= old_rot 0.0)! `4 k. c6 V* Z* G% X7 z7 f% y
- (progn
) k% S! x/ L& o' O+ u& B, y K" P - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
' L! _5 T/ G0 X, K( I t( S - (setq old_rot 0.0
2 v+ x2 o# B4 c; `& O - elist (subst (cons 50 0.0) (assoc 50 elist) elist)
9 K$ b: K, @3 X q - )
& t ^3 t! O: r4 |8 r% B' N1 Y* A( e* P - )
7 _+ S" X4 F9 U H! J. O ?$ H - )
( c& D! G2 w+ O0 u - + t: A& d" ^* J2 V, C8 P
- (while en2. r, c; `& B) L$ f' Y8 M" Y
- (setq el (entget en2))
3 c: F3 O: W9 M* u7 C" G - (if (= (cdr (assoc 0 el)) "ATTRIB")
- Z4 n7 N$ z# r9 q1 z - (progn
4 ]+ W6 p2 E3 [! u - (setq old_hgt (cdr (assoc 40 el)) ; Height* k! I( G6 J$ h: ]- @) e: Y+ M
- old_wid (cdr (assoc 41 el)) ; Width-factor$ a4 Y% |& e5 U; K+ l; c
- oldp1 (cdr (assoc 10 el)) ; Generation start point8 [' l2 O* |3 C+ N& @0 Y: i
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
: E" \2 F# C- Y( A7 |3 q - ha (cdr (assoc 72 el)) ; Horizontal alignment
- s" U) E4 @! N+ J. K7 _; q/ H - va (cdr (assoc 74 el)) ; Vertical alignment9 F" x6 w( ]; G9 R8 m
" R M; w. o3 d# }& k- ; Translate gen. start point
: d; {( J: B" d! ]1 V' i# a3 ?+ n - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
) X7 _" W2 Y0 v - (+ ybase (* ydelta (- (cadr oldp1) ybase)))5 f! p& ?; h2 t. A9 A. s, R3 P2 f
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))6 d3 q: k; {) Q0 S6 w: k0 Z* Y
- )' ?9 p9 J+ y5 J1 E3 G% x/ q
- el (subst (cons 10 p1) (assoc 10 el) el)
" y9 Q. `% z8 P3 k. Q - ); u6 F+ `% N" l) t
+ U v8 U( J0 i: c. o# `4 A. x- ; Translate alignment pt similarly, if present and applicable6 {2 n( ]: F: h2 O5 {/ z
- (if (and oldp2 (or (/= ha 0)" g4 c8 `" v9 ~& n' ~' u
- (/= va 0)
" ~6 b4 \4 W# i, d# w# l; y - )
4 k! _( y. m' O) q: B - )2 ^% m2 m4 ~7 i* R) M
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
& N9 r; X: G) u" X) B - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
, [) y ]8 f1 Z - (+ zbase (* zdelta (- (caddr oldp2) zbase))); _6 R% L! q( M, D# X5 [1 \' ^
- )
0 a* W5 c8 Z" ~3 g" W f( Q - el (subst (cons 11 p2) (assoc 11 el) el)
+ ]! Y- T$ Y) ~; l) q0 N' T - )8 O. O6 ~% L' ^" o
- ); a$ O- n5 g) |# w9 j
- 2 G2 o3 r1 m" H
- ; Each Attribute's height and width-factor were computed
1 }9 h+ Q& M2 Q+ e2 N* P - ; based on the Block's scale factors. Adjust them now,% D! ?) Q z, M9 T& |
- ; by first reducing to values for 1x1 scale...: e, T4 B/ b8 e+ u( d. q
- (setq new_hgt (/ old_hgt (cadr old_scale))
: q7 a; z4 c+ Z2 q; t - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))/ o; V* F- i; G/ ]0 ?
- )
) c4 B7 d! i# W* X6 @ - ; ...and then rescaling.. Y8 H5 A5 G6 e& ]9 n( K' y3 Z
- (setq new_hgt (* new_hgt yscale)4 O$ \9 z3 ]9 L) e, _' c
- new_wid (* new_wid (/ xscale yscale))
8 [, R% p5 I" L2 c% E+ w' F - )9 ]+ @3 v* _1 b t4 ]4 Q
- (if (/= new_hgt old_hgt)
: P: r" T. C- o" Q8 g - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
* [& [! R1 A5 ] - )
% l% E, C' d- e: u0 ]9 @- v. E - (if (/= new_wid old_wid)$ I& V" X. Q5 Q0 M8 w8 D8 V7 D
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
, A: x2 ]# C3 [/ |; ?, I7 x6 V7 @ - ) R" d% h1 Y& Z6 A$ Q4 a8 O2 x
- (entmod el)
+ U% D3 d* ~) q! s9 k - (setq attr T ; At least one Attribute modified7 ^% \. g3 {; Z' H1 O
- en2 (entnext en2) ; Next Attribute/ L0 a1 d9 }8 [) E
- )+ Q: e& o8 u$ T$ h
- )8 x/ v; e7 z. a# L
- (setq en2 nil) ; No more attributes9 c+ A' i2 M( i0 V! h: u' J6 E
- )! E9 N g2 F/ q- I/ U+ F) f$ W" {! f
- )
( C# K5 U. ?0 g* [1 G3 q - ): U) U+ g; C+ e
- )8 h, f2 E: E8 y
- 0 r) c* F. Z4 @" m
- (setq pt1 (list x1 y1 z1))' Y# a+ t/ @2 J3 _: `4 C8 l% @
- (tempmod xscale 41 nil)4 V# M7 p( a! T) i
- (tempmod yscale 42 nil)
9 i" L9 X7 `/ z2 _# J+ z2 X - (tempmod zscale 43 nil)
% G6 L& b0 q7 v3 l: k- k8 | - (tempmod col-sp 44 nil)% r3 ~; T* y% }- e
- (tempmod row-sp 45 nil): a5 \2 f- e- x/ [8 @7 F7 S
- (tempmod columns 70 nil)+ q5 v, W- i9 u1 g" j" _
- (tempmod rows 71 nil)
3 e6 h1 b/ V/ a$ ~) y' u, F - (if (= xclipmode nil)
2 e6 @: i3 B7 @8 [ m. w, ? - (entmod elist)! G. \# J5 _, J! G2 r5 F
- (setq xclipmode nil): b$ _' A& Q. z. ?; }2 m: u% r
- )
8 m; t, a% s+ @- f9 ~ - (move_pt1 1)
( O6 {+ K* I7 d1 t( m4 w - * E9 K$ @) M- f& R" q1 g
- ;; Now do the rotation with the ROTATE command. `( M- }+ b0 u* Y: b( J
- (if (/= old_rot rot)" `9 \3 I+ V, Y0 D
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
/ {& \* O0 X5 {3 p- r J- r - (if attr ; Else, if attributes were modified,
# w+ f2 a. v7 p$ y# W2 _ r - (entupd ename) ; just regen to force attrib display
% q1 ^% f( {+ ^* o1 n. E+ O- T - )
. Y+ J. `5 X r% I* a - )
0 S/ o( S# I+ _; s - (setq elist (entget ename))
! U) [+ m; k. V0 f% v; ` - )
& Q1 R# w" d* h3 g& t9 n* a @# S - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath), ~1 ]& X) L2 V5 c
- (setq newhatch 0)# Y- Q3 L) p2 S' {6 Z
- (setq blkname (cdr (assoc 2 elist)))
) o, c d- ]4 s3 S) q$ k - (setq blklist (tblsearch "block" blkname))0 {: A; G/ R& R, M0 L, M
- (setq blktype (cdr (assoc 70 blklist)))
; J8 D, @* C8 B- }7 A# i0 v! W - (setq xcliponoff 0)
$ Y+ H( M5 W0 r. F - (if (or (= blktype 0)(= blktype 36))
" R6 o! C) I& d! @5 F% o; n1 s - (progn
/ d5 [/ R" S" }. `7 w - (setq xcliponoff (xclipon elist))
7 I( m4 B8 `0 B# r ^ - (setq temp_xclip xcliponoff)3 O ^) t$ B3 \7 [% }
- )
* P; x1 t7 G# Y0 y6 G - )
/ n8 W2 c6 ~# e4 y - (if (= (logand blktype 4) 4)
; y M% M* I7 q( Q7 q - (progn
6 h0 g" A' `- ?6 M( N - (setq xrefpath (cdr (assoc 1 blklist)))7 T& B. U+ N5 M$ n" p
- (setq help_entry "modify_External_Reference_dialog")
) z4 U6 Q; ?+ c% S - (if (not (new_dialog "ddxref" dcl_id)) (exit))
3 j9 N5 L4 u. j* A( O) z7 E - (set_tile "Bl_name" blkname)
& K% u+ Q8 m% Z- | - (set_tile "path" xrefpath)7 s% k8 d* Y5 J3 k* m( f
- )2 x0 C) M1 Z l7 e# V1 T- [# l
- (progn6 X9 O4 o. }: @1 q. v
- ;; Get program name for use as Xdata app name
2 }$ X7 N$ A* `5 _ r) L - (if (not (setq program (getvar "program")))9 Z3 O' Q4 X8 ^
- (setq program "acad")
9 w" D7 k3 c, k) x/ P- E% u9 |) V6 J - )
# W6 H& }# I& r' `) S- `% y$ a- Q - (if (and (setq temp (assoc -3 (entget ename (list program))))5 U9 c! z; h7 j
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
+ a4 y& |9 a! w/ S' l - (assoc 1005 (cdadr temp))2 B, d; K# i& p$ a
- )
) N5 X$ X' x& H! i; S - (progn
& g+ g( O% S9 x( W/ @/ Y( l( E - (setq newhatch 1)
4 \0 X3 V$ X, [: K - (setq help_entry "modify_Hatch_dialog")
2 N) L& L! @- G* v2 F; Q - ;;; convert the object into a new hatch
* e; a) T7 c m" F; b - (ai_undo_on) ;; enable undo
$ n* ~6 S. G0 y- g2 x4 C6 J9 E3 l2 ^ - (COMMAND "_.UNDO" "_Mark")
$ m/ y' @- u' g4 b7 E, C9 j - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
* b: [8 N5 f. G p, `: B( h' ~5 o - ;;; suppress nasty message from convert command: a5 @' o% W. Y7 |' V" b
- (princ "\r \r")* {2 ]0 t; W* Z E/ w5 r7 Y
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))1 \( o+ o% a K2 ?" s# c, V0 \ \
- (setq old-elist elist)
4 m% Q& T3 {" j4 z9 U! ~& N - ;;; If we have cancelled ddmodify- ?) W# S. L+ r
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
4 F/ l" G+ F4 i1 B% t - (command "_.UNDO" "_Back")- r; Q6 m2 d9 u0 @( J
- )9 k6 U& J' z# r9 D& {
- (ai_undo_off) ;; restore undo state
, `4 l1 S# C! T! {# O - )
7 O1 _% e- u3 O/ E( V, R - (progn; }$ G3 i3 U9 _# B$ h/ _
- (if (not (new_dialog "ddblock" dcl_id)) (exit))
V+ {3 l6 [9 y/ ` - (if ( = "*" (substr blkname 1 1)): o/ w8 O, g, E$ t# g; Y
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))2 h/ T1 h( g: m2 f2 P- ?
- (set_tile "Bl_name" blkname)
! E. x. M0 X3 s9 T! m% i - )
' t% e; }- Z Z { e6 N - (setq help_entry "modify_Block_Insertion_dialog")
2 m5 |" \) j L7 U2 R - )
7 a1 u9 T/ M. E$ |3 @ A9 K - )
9 g* c' z) O8 q - )0 o4 U" U9 ^8 E9 J
- ), I V: x1 V$ |* P/ i
- (if (= newhatch 0)( k" r2 b3 M! m' [* E/ I
- (progn6 |- d; g- K0 Q5 M0 x
- (set_tile_props)- Z5 |3 I; `& [4 ?' Y
- (set_tile_handle) t! S) a+ p( ^
- (set_tile_pt1 1), O( E7 A5 q1 \+ h4 q7 p5 d
- (set_tile_rot)
3 ?" F/ E4 D8 S5 f3 t; Q - (set_tile_scale)* b) N8 v9 {3 y% F% W' q4 J0 ^
- (set_tile_rc)1 z3 e6 R( E, x2 Z0 S' }
- (if (= (logand blktype 1) 1)
7 P4 t: Y _0 [5 m/ _* F - (progn% n- k+ Z7 U" X' f2 S1 H
- (mode_tile "xscale" 1)9 B) b; Q- Y* s
- (mode_tile "yscale" 1)
$ G1 H' f! s, E4 F0 H - (mode_tile "zscale" 1)4 c( z1 c9 F6 T" l
- (mode_tile "rot" 1)
9 z/ N4 I8 [+ O, G% H( B3 g* h - (mode_tile "columns" 1)
l2 t0 Z# X4 R5 n9 p - (mode_tile "rows" 1)
9 b/ q* j5 o- s, f' [) ~7 |6 U2 e - (mode_tile "col_sp" 1)
; N" t, E# ?% K' ]( [, _. K- B - (mode_tile "row_sp" 1)1 x. N3 Q- A+ g9 p
- )
' _1 r$ C/ _; C. I3 A c - )$ C$ e/ {) j# \3 n2 ?4 V& e( ]
- ;; Define action for tiles
+ z+ k' S' m: H - (set_action_tiles)
; j( Q$ j1 S( {- i9 H/ [ - (setq dialog-state (start_dialog))
$ e- D* x2 E l; u G - (cond2 C6 x) X G, r( X# W1 D
- ( (eq dialog-state 0)
% r; V/ Y; Y/ {- f# _4 K - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
2 ~" v! y4 Q. l - (move_pt1 1)
0 m8 g0 U5 a+ a, b0 f: g+ H- _ e v - (reset))( t4 ^( \0 d: r8 w6 {7 o6 i
- ( (eq dialog-state 1)6 P' l, p# X2 S- \
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
) y2 a; g. F$ ?3 z2 [/ d7 V8 p" k - (xclip)( K0 O' k/ W9 i& p% J, Y4 J
- )) J; R* `0 L8 X. m
- (modify_block))
7 X" Q" B( ~8 t* V+ K x - ( (eq dialog-state 3)
& G5 {9 s2 S& w5 i+ q4 z' Y - (modify_block)
8 K9 ~& Z) `6 j' ^9 V. K( @ - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
8 t e' c( Q/ W - (move_pt1 1)
: T! q. ~ |* c9 Q, c4 w - (ddblock))' {- _! R0 M; f2 ^
- ( (eq dialog-state 4)
$ l- E$ `3 L3 ~5 I a1 \ - (modify_block)
$ J0 b4 W; J S q5 ~* W: C* a8 K& [$ }: w - ;; Get current handle.
- e' \: P0 _. w/ P1 } - (setq hand (cdr (assoc 5 elist)))3 J/ I" p: E9 V7 V& Y
- (command "_hatchedit" ename)# b3 q8 ?% W1 M- D6 } T4 [$ S
- ;; If OK in hatchedit, a *new* entity is created and the old one
. P- O/ A/ `9 r: L! a$ }4 \/ F/ @ - ;; is deleted. So if the old one exists, it must have been a
- s$ j. l9 t4 D+ Z4 R' y" T4 w( Z5 ~ - ;; so rest the entity.
* m4 y6 ?8 r8 [' ?4 L/ H - (if (entget (handent hand)) (reset)). y! S: r6 ^2 Z( q) p
- )
/ Q' o) q% o3 V0 L4 O/ E - ). S1 g2 E, u/ _$ y
- ): y4 f: v2 T( C. w
- )
# y/ r0 E+ n4 x* D - )% J* [ n7 s6 s2 P- Q9 b
- ;;: u* @ K. J5 K- Q
- ;; Modify SHAPE
5 U8 |- e" D* F) ` - ;;
n" Y% u. a, i& f; ` - (defun modify_shape ()
: d8 K9 X: N; _& |' P( S - (modify_properties)
7 W0 U0 a: X: { - (setq pt1 (list x1 y1 z1))
( K( c( R- W Y# B& d4 h - (tempmod pt1 10 1). S2 n; H2 m) m6 m0 d
- (tempmod hght 40 nil): P! x4 e* d! ~$ L
- (tempmod wid 41 nil)& p6 X% \0 x; r9 `, p: G
- (tempmod rot 50 nil)9 t) c% F$ ?, R2 X) T8 H. R
- (tempmod obl 51 nil)
2 |9 K; |/ z! E; t5 M1 s - (entmod elist)3 _( b8 G9 o; q- \! M) C8 W3 y% a
- )) N7 R# C; J% D; q- y
- 3 N* r( \( [" v; K) J
- (defun ddshape ()
$ n7 i/ O3 m$ F - (if (not (new_dialog "ddshape" dcl_id)) (exit))* |# h1 d& e5 B9 c. @
- (set_tile_props): O: [6 S7 f. ]# ~# a; d
- (set_tile_handle)
6 R8 g7 y% \ Q Q3 W - (set_tile_pt1 1)
3 d: J" D" ]1 V X+ _ - (set_tile_rot)
; B3 ]/ O+ E3 c6 W - (set_tile_hght)9 |1 m3 K: D6 e: i: r7 ~7 U
- (set_tile_wid)( P _& B. O1 b" K3 |8 t
- (set_tile_obl)4 G/ [* G' U% N O- Y: y- d& h
- (set_tile "sh_name" (cdr (assoc 2 elist)))
( _8 ]/ d" z: @2 q - ;; Define action for tiles% F, Q* m8 k6 b9 Z/ N0 T6 s4 j
- (set_action_tiles)7 k7 H3 e3 C" y2 [5 L6 K6 H( w6 Q( K
- (setq dialog-state (start_dialog))" j+ V- D* b" ~
- (if (= dialog-state 0)
# Y3 g: r# m5 K: o7 s; @ - (reset)) |' L7 d1 k4 ^1 I
- )
1 B# Z" Q8 c; ]0 a% H+ o - (if (= dialog-state 1)+ l6 a6 \+ P+ ]4 \
- (modify_shape)
. j7 x% b, |) i$ {, V t - )
, w% R/ ` j+ |/ A5 o - (if (= dialog-state 3)
. `. c& P Z/ ]7 @5 ]: ~) J - (progn4 m# u' C. q0 X2 `. \8 N) I
- (modify_shape)! E2 C) w' ?% ]* Y
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: ")); K4 q6 ^! | Q
- (ver_pt1 1)$ o7 V# X" j( O, l$ u1 R6 H. O
- (ddshape)) D9 I7 t I% M" n
- )) `3 Q9 k9 @, u. `* A
- )
1 t& M( U* O; T G) h5 X- q# A - )
u1 ~6 @' Z# r1 l$ I; p W( K/ i% q7 G - ;;
9 O) {0 i5 r' L* H! |) P - ;; Modify TEXT or ATTDEF/ R4 x" k0 n7 I$ j N
- ;;" e g! w, U$ y& i5 e1 t4 y+ ^
- ;; Set bit code for upside-down and backwards setting& z. ~. t8 D& Z, o+ c
- ;;' z+ n; ~+ g& ?8 n \
- (defun code_71 ()) Z/ Y& E9 I# L* X
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
% w% T8 w9 ~. V - ((and (= bkwd "1") (= upsd "0")) 2)
B4 c- }" F( A9 i M - ((and (= bkwd "0") (= upsd "1")) 4)/ n. ^( w* ^1 G: }& I
- ((and (= bkwd "1") (= upsd "1")) 6)+ }2 w: k+ E+ M9 }1 ` j
- )* ?, n! F+ A+ s
- )9 \ q5 z4 Y! Q1 T7 K! ~7 L5 y s
- ;;& |; d$ Q9 z' H5 c# u) I2 p N r
- ;; Style action. Reset widget values to style defaults( O" k" n. m2 U! k1 W3 r
- ;;9 M0 [% \5 k) q O1 o Z
- (defun style_act (index / style-list)
/ g; h- T4 U/ i( Y& @( _ - (setq style-idx (atoi index))/ W4 |5 f$ U0 F5 W4 w$ g) |; U3 W
- (setq tstyle (nth style-idx slist))+ m7 w, N9 S6 c+ B1 y) J7 C8 M
- (setq style-idx (itoa style-idx))
7 g$ D; d7 T; i( Z1 x1 d - (set_tile "style" style-idx)$ A, u0 z. r' y( E z1 y
- (setq style-list (tblsearch "style" tstyle))
- y4 J) {5 B; G$ X. @% U: k - (setq shght (cdr (assoc 40 style-list)))
7 s2 ]. q7 `* W c u+ T - (if (/= shght 0)
/ P( m: g- R0 M; d# U( o - (progn# r: _0 z% b7 z
- (setq hght shght)9 L) e2 `3 x2 ?8 w1 \5 }
- (set_tile "hght" (ai_rtos hght))
% {8 e8 ^+ A0 c/ O% } - )
& m3 U+ }( s, i( y2 z- H - )
8 S9 F' J, [9 B - (setq wid (cdr (assoc 41 style-list)))$ X* i* E9 u& a/ W8 M) [
- (set_tile "wid" (ai_rtos wid))
) n0 ^. l% [/ T( t, } - (setq obl (cdr (assoc 50 style-list)))- I" u, A7 t# U$ b2 _
- (set_tile "obl" (ai_angtos obl))
, T" m: n2 h% E7 [6 ?( C9 M0 K - (setq bk-up (cdr (assoc 71 style-list)))
4 L& f7 Z0 U' q. s# c* \ - (if (= (logand bk-up 2) 2)" {8 g" Q9 x, ?; Q
- (set_tile "bkwd" (itoa (setq bkwd 1)))
, f/ c, J: l- ]7 i0 f% Q% ~ - (set_tile "bkwd" (itoa (setq bkwd 0)))* h7 @( }8 n6 h1 ?8 w3 L5 Y3 A
- )6 W% {: {* r2 ]. n4 E
- (if (= (logand bk-up 4) 4)" E+ n T7 \/ V$ ^. ]
- (set_tile "upsd" (itoa (setq upsd 1)))
" T4 v$ H; C# q' d( c - (set_tile "upsd" (itoa (setq upsd 0)))2 w1 ]7 H' b( r5 @
- )1 G7 Z; @8 [- l
- )
0 l; Q$ f' P$ W9 j% J3 ?( m5 ? - ;;5 y: L( g7 T. [ x ]
- ;; Justification action. Set vertical and horizontal alignment variables,
# T5 v# U, e3 _0 o2 u: }" c - ;; grey out rotation and height if alignment = "aligned", grey out rotation. A' l! C/ `/ E0 D% g2 v
- ;; if alignment = "fit".+ R- h# W7 \$ u# B5 j6 t& v
- ;;+ y7 M/ `- R g2 E, l7 z
- (defun jlist_act (index / templist)3 }9 J9 b, e# R1 T6 B3 _* |( I
- (setq just-idx (atoi index))+ g$ n+ R2 t$ Q; {0 e$ t R! K, _
- (cond
, w. s! n& r0 t4 ^: B2 t) V0 ?+ } - ((= just-idx 0) (setq va 0 ha 0))5 D1 R' d8 \6 u
- ((= just-idx 1) (setq va 0 ha 1))0 ~6 t) c! Y' a5 ^' W b2 C
- ((= just-idx 2) (setq va 0 ha 2))
. {; x8 X0 @' v* Q5 E - ((= just-idx 3) (setq va 0 ha 3))9 ? G# R& U& x/ n( |# g) M
- ((= just-idx 4) (setq va 0 ha 4))2 J/ }1 M$ j% i; K/ i$ o; y4 i
- ((= just-idx 5) (setq va 0 ha 5))8 H6 |+ t. V4 ]/ R: |
- ((= just-idx 6) (setq va 3 ha 0))
; k$ l% @% t! ?2 C' E. y, X' S - ((= just-idx 7) (setq va 3 ha 1))
- e8 ~4 E8 h5 j6 c9 S5 t - ((= just-idx 8) (setq va 3 ha 2))
* D4 Q4 C3 O, c* F' G - ((= just-idx 9) (setq va 2 ha 0))9 J) @6 a2 x6 E5 A8 [4 X/ w- [
- ((= just-idx 10) (setq va 2 ha 1))1 H/ J$ R6 s& E, b
- ((= just-idx 11) (setq va 2 ha 2))& H: i: j1 t& y* b( I! o
- ((= just-idx 12) (setq va 1 ha 0))
5 Z3 o2 G2 G" ?* z, r - ((= just-idx 13) (setq va 1 ha 1))+ D9 n1 |! t% O4 }
- ((= just-idx 14) (setq va 1 ha 2))
' x& b* ~! S5 m& h$ _: ^1 } - ): }* ?/ n7 ^' G. \
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text7 u# G7 A1 n2 Q, c1 I a* S2 J
- (mode_tile "rot" 1)6 |1 z( _$ B7 g' Q2 N0 p2 r
- (mode_tile "rot" 0)/ J# P; N+ Q* _2 ^% M
- ): p& q+ B4 v0 z5 D
- (if (= ha 3) ; If Aligned text
" a% T8 W: P, j! P - (mode_tile "hght" 1)
* `: T3 Y9 `! x, Y - (mode_tile "hght" 0)8 B, d# |( e" Y) e! ^8 D0 K0 K
- )
6 F: B" l; W& `; p# D - (if (= ha 5) ; If Fit text/ c, X1 ^- L5 t2 ^' e
- (mode_tile "wid" 1)0 w7 @' H% i- F2 p0 v
- (mode_tile "wid" 0)
& I% P% z* V* u4 | - )
; m/ y; q; Q, }! C: B) k* i6 x8 Y - ;; Reset rotation and height if changing from aligned.! F: Y$ C8 s- K# m- W9 O
- (if (and (= ha-prev 3) (/= ha 3))
+ Q! j( K2 f, L( n& F$ f$ s* K, y - (progn
' r2 X: }0 v* r. @0 v - (set_tile "rot" (ai_angtos (setq rot 0.0)))
3 [' J, [( V( U7 c& Q" W2 Y - (set_tile "hght" (ai_rtos (setq hght 1.0)))! N/ H% c# v) V6 `2 t) E4 s; h* |8 |
- )& F8 }% z9 k1 j9 x5 j
- )1 I3 H' L& r% m2 B R/ u
- . r7 }, n' [2 _" a3 m+ W8 b$ j
- ;; Reset rotation and width if changing from fit.# f2 ~+ G) v9 m9 t/ |3 o1 h7 ~ o
- (if (and (= ha-prev 5) (/= ha 5))
2 j7 E* b# r8 c( X, o- @5 h - (progn
4 h) ?4 ^0 g( [" s# F* C* u- W5 R5 c - (set_tile "rot" (ai_angtos (setq rot 0.0)))
! S: f$ j( ^8 E9 D% ?! y2 H* [ - (set_tile "wid" (ai_rtos (setq wid 1.0)))
) I2 H j4 E. v9 i+ n - ); l2 }2 |% `/ c2 o7 P/ C
- )
- i9 v, c: N- H/ [$ j( u7 O - 1 e! S% m; d/ r0 S! S9 e5 t
- (setq ha-prev ha) ; update ha-prev for next time
: `8 l, r9 I$ ?% K - (setq just-idx (itoa just-idx))
}7 W+ D% g: j. b5 m - )
9 h0 e; [2 g* W' X - ;;
; j1 J6 ^2 Z* z1 {5 |/ S# U! A" m - ;; Set intitial alignment setting based on vertical and horizontal alignment% j$ i- x }6 ], r
- ;; bit codes.
+ m' l0 ~: j! |( `4 C' y - ;;
) V( i" F* B, I+ x$ U+ \- R - (defun set_just_idx ()
' L. i# A/ q) Q* V( _9 U. B) { | - (cond
+ _# I4 H" i, O* j0 ?2 v9 W - ((= ha 0) ; Horiz alignment = Left
6 P/ C+ m) ]. _+ i7 b/ A$ F" l - (cond
2 H7 i/ t9 G) p" E4 ^% E. U9 A% I - ((= va 0) (setq just-idx "0"))9 J0 H# z: g6 \ ], [9 M# z8 U
- ((= va 1) (setq just-idx "12"))9 y0 ~5 a% O5 y0 ?: y. a0 Q1 y
- ((= va 2) (setq just-idx "9"))# k/ L5 j E# r9 F& | X0 o
- ((= va 3) (setq just-idx "6"))0 _8 U, v. R. y$ { |
- )8 |; \$ \8 s& Q: b' B1 p4 s
- )3 ], t& l( Y3 \" G. D' E
- ((= ha 1) ; Horiz alignment = Center
2 F7 _& v$ P/ H& {+ }: t% s - (cond
: f' z( Q" m7 L9 c - ((= va 0) (setq just-idx "1"))
: J3 p ` ?2 e& S3 t2 O6 k - ((= va 1) (setq just-idx "13"))
& W# @3 X, T# u* J( e) |; L, X& Q - ((= va 2) (setq just-idx "10"))
* f( `" u2 x+ w* g. b. z - ((= va 3) (setq just-idx "7"))
( ~, Q- R* [9 }0 T - )
- U& B9 R" ^& g$ q: K - )
+ Z" T+ _8 k" |6 ^1 Z0 Z - ((= ha 2) ; Horiz alignment = Right
/ a0 `) c2 `& |( e8 ]/ E8 w - (cond
& d0 n; s6 P3 E2 F - ((= va 0) (setq just-idx "2"))) v' C+ l) \3 g, Y0 f3 {) Y
- ((= va 1) (setq just-idx "14")) C- u# ~$ z" @6 }% Z4 L7 M: D1 d
- ((= va 2) (setq just-idx "11")), Y/ p, [( y |, M5 j
- ((= va 3) (setq just-idx "8"))" V1 X( i+ e3 T+ N L9 ]0 C
- )
p( ~6 K: d+ x+ o9 j# I7 r$ _% ` - ). J9 J7 Z6 r% l7 j
- ((= ha 3) (setq just-idx "3")) ; Aligned4 u3 N2 k8 l( O- _; l9 ^8 s m
- ((= ha 4) (setq just-idx "4")) ; Middle- i# l7 V2 J- {- d
- ((= ha 5) (setq just-idx "5")) ; Fit) e0 ~7 Q' [3 ^
- (T (setq just-idx "0")): l; ?, q; D: y5 R% M
- )
+ V( u( X) o+ `* W6 i1 z2 H. } - just-idx4 s1 w1 ^" H5 |9 U" S5 S
- )
2 b& b2 E5 R' g9 r$ u4 C - & w! I/ z0 O! u9 w+ e$ R
- (defun modify_text ()4 Y! o" Z7 h* N: E% }/ g" O
- ;; insertion point
+ D& |( p1 t# w - (setq showpt (list x1 y1 z1))2 a% N# d' d8 v
- (setq bit-10 (trans showpt 1 ename))
3 g" T! n' ?; Q% |1 g - ;; alignment point) [. D' V( ^5 f
- ;; for 'Aligned' or 'Fit', alignment point must be different$ u( H7 ~: v2 t& L6 C& j9 Z% ]
- ;; for all others, use insertion point% B' a7 R6 t6 s" m, a' y8 m
- ;; (ACAD will recompute insertion point)
9 q9 } c3 m0 f F8 p/ Y4 x - (if (or (= ha 3) (= ha 5))
7 K6 j5 Z9 B' l& B" { - (progn
$ d1 m0 k% _3 d - ;; if no alignment point, fabricate one7 r& u6 `( b7 i7 } n
- (if (not alipt)$ K" J! H2 V3 P; ~0 M8 f& K
- ;; add text width to insertion point* [+ D4 c" h5 J
- (setq alipt% }8 a( S4 i3 R* \! l; I+ L: F! a( x
- (list (+ (car showpt) (car (cadr (textbox elist))))4 L" D5 _2 D& Y q$ [8 G6 m
- (cadr showpt)
6 p/ ]! I+ o8 x# }$ U8 b+ U - (caddr showpt)
, n4 d3 j5 l [9 o0 ~3 G9 Y- w! @" ] - )
! o% O }1 M* J1 U' z - )" ^; [6 L0 j1 f8 y0 J! F
- )
) D: k e8 w7 s4 ^* S" R; s) | - (setq bit-11 (trans alipt 1 ename))
* ?" `, `& P5 q x9 s - )
/ M: W6 {7 \7 C - (setq bit-11 bit-10)+ M" I. V/ [. x! s3 N( a+ a( }0 K
- )" r1 j! x+ t, ^9 h4 f/ n% v, V9 F
- (modify_properties)
4 e7 X2 F- l. H+ E- m+ |7 i) A - (tempmod tstyle 7 nil)' ~4 f$ p) E5 m U$ Y4 @
- (tempmod bit-10 10 nil); g( c* K" H& f: W7 ^7 e
- (tempmod bit-11 11 nil)
% y" f b9 I* c) D9 { - (tempmod text 1 nil)% B3 m1 g+ C" w/ d6 \" J
- (tempmod hght 40 nil)
! i- y y1 n. j4 s/ s9 l" S - (tempmod wid 41 nil)
- }# ?( z$ A' G - (tempmod rot 50 nil)- J! L$ w) a O
- (tempmod obl 51 nil)
9 @: N: ~6 V7 K3 S - (setq bk-up (+ (* bkwd 2) (* upsd 4)))" \. r+ k( K: O0 ]5 v5 j
- (tempmod bk-up 71 nil)
: z' A8 T% f- J3 s3 S. ` - (tempmod ha 72 nil)
4 w8 m( L; }- r4 v% u - ;; Attdefs use 74, text 734 L% Q" ~ [5 X! g5 U
- (if (= etype "ATTDEF")
& s5 A# B5 P, _0 a; W! z - (progn
2 C R; }7 d( c4 d9 Q - (tempmod attag 2 nil)4 M6 c6 o1 [& L1 i( p5 b7 v8 `6 j
- (tempmod atprompt 3 nil)
5 P6 T/ ]; L8 c T - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))5 I/ w- {; W5 E1 [. C) O
- (tempmod icvp 70 nil)8 ~$ k L% i# ]3 n s$ V
- (tempmod va 74 nil)+ F- @" G* q( q1 ]: z
- )7 i# d w' B' W
- (tempmod va 73 nil)( P' a, ^5 S/ g% \. C
- )* e% H4 Z" o6 z8 I
- (entmod elist)
4 Y0 z, e1 {* r3 V Y6 e- Z- d - )
/ u$ Z, g l9 u: d7 G& j0 X7 {
- A& F0 \$ i( `; ~* ~7 ?1 ^, i- (defun ddtext (/ 2ndpt slist i): r( R9 I0 ^4 K0 M
- (if (= etype "TEXT")6 H" n; }* |9 ?% {
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
3 ^$ h( p1 e9 k/ j) B' o - (if (not (new_dialog "ddattdef" dcl_id)) (exit))
2 A z1 q' k( |2 V2 ^8 P - )
; t- [) u; a: B/ {. o: ?$ {, _ - (set_tile_props)
& t4 V# i! D6 F! L6 D - (set_tile_handle)
# ^. J. h, S. z4 ~3 s, V - (set_tile_text)! w; L6 `, v/ K4 A9 |
- (set_tile_tag) ^. O) q7 b$ [- x+ K; O4 h, a; Z f
- (set_tile_prompt)
0 w( u5 E$ I! Z( L - (set_tile_hght)9 }( R' `* `; I: {, S
- (set_tile_wid)
: q0 w+ k/ Q H" @! I - (set_tile_rot)
0 P* G' ^: k+ J% d8 Z* V$ M |# { - (set_tile_obl)6 }+ O9 S. @9 P5 {& F0 U
- (set_tile_bk-up)% m2 p7 L% }9 i4 f1 s5 a' O6 W
- (set_tile_icvp)8 M0 R& o. v0 {% l) r8 v
- (set_tile_style)
. E: g; Q0 {$ W1 V! [, V0 R - (set_tile_just) E3 n. X" @2 U T. S
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))7 P, P& z5 |4 C" r( f
- (if (not (assoc 11 elist))- _6 b x0 n* A
- (progn (setq pt2 pt1)+ s* u& R# q4 [( D
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
% M. P5 r$ W; p5 n) M# T* ~ - )
* z# E' f* `: x& f; s0 j - ;;(trans '(0.0 0.0 0.0) ename 1))
7 e4 T. V2 Y8 v - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
- I+ ^, R! G% G; W - )+ G, A% R* O) G3 C& d% w6 e ?
- (if (or (and (= ha 0) (= va 0))
7 J6 @! H; c* B0 H6 S) v - (= ha 3)
/ u% I( j' ~ p3 o' L - (= ha 5)
4 y5 U1 l, F Y5 t2 Q+ A! ~ - )4 Q2 W \' F4 E! {( Y' p
- (setq showpt pt1)
' K9 t$ B; W' {5 ] e6 }2 H$ A - (setq showpt pt2)6 a: y% c. T- B& O# g
- )9 y2 |8 z( M4 t! a# q8 E
- (if (or (= ha 3) (= ha 5))
% A5 A Y/ O* ~: Y - (setq alipt pt2)' e2 x( q c4 R
- (setq alipt nil)) X( g/ h% B/ }
- )* ?. i' N! Z- r; P
" n7 x* X& |; ^8 s8 j" x; x" q- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))3 I0 {! m* L7 A- U" l; u7 L6 C
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
1 Q# p0 p1 w+ N- @: I - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))3 X* n+ ]* M G4 g5 Z' e
- Q- c2 N3 B$ D( V
- ;; Define action for tiles
+ e4 H3 m1 t6 D$ w) W - (set_action_tiles)
4 V5 D C: b' K" G - ;; Set focus initially to the text edit box.
: D4 [8 j* r- q, t - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
) A. k9 ?! ~! L9 c( w: r+ H - (setq dialog-state (start_dialog))
: t0 \- H8 _8 \% O6 r - (if (= dialog-state 0)
% W, x- B" h+ N8 B - (reset)# k. y- {5 q. J: f9 k T$ W
- )
& @, Z7 i) M- W5 ]7 \ - (if (= dialog-state 1)
- X0 |8 n0 g; b' V - (modify_text)
+ I) }. F# E$ l G8 A7 o - )
+ E5 [0 M- S3 _' m$ k - (if (= dialog-state 3)
4 d6 x( n1 D/ }& i& _+ \ - (progn& w+ d* E* r- L: R3 W( U [( d3 Z
- (modify_text)% Q! B) D l: ]. p5 q
- (if (or (= ha 3) (= ha 5))( S6 _0 g' W, z+ S
- (progn5 M) l; [! ` Z/ U, D
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))6 q0 b2 X& E1 Y0 u# d: }2 T8 P! z) z
- (if (not showpt)6 t3 @7 ?: Y' x! Q
- (setq showpt (list x1 y1 z1))
: o* m: `1 o- A' l- K! x* N3 e* l - )
3 B7 F9 O2 s( b$ a - (setq 2ndpt (getpoint showpt "\nSecond point: "))4 b7 w7 p1 e/ S; ~7 l* Q
- (if 2ndpt0 M$ a' ]( n+ p3 Z7 L+ E i
- (progn
1 U/ U( u* Q* k$ o b6 Y; q - (setq alipt 2ndpt)
5 [/ @+ {$ o4 v& H - (tempmod showpt 10 1)
- R) v4 L0 J% @' \8 ^, j - (tempmod alipt 11 1)7 I7 n4 d- \1 {( ~
- (entmod elist)
1 I* F4 B" j" x# G - )% {! R4 q# l6 ?) v. R- \
- )& `* t) h' @+ t6 t: l: i- J
- (setq elist (entget ename))0 ~: X' j: S) |8 a" A
- )
* t: Q7 ?. I, Y9 Q2 l* _" K - (progn9 F' B q2 R& {5 ~6 s
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
* ~, q2 d; ~: G4 G- V/ f - (if showpt
" b1 s u# l" u( F& k, Z - (progn# ]) e8 A% V2 W: F: c
- (if (and (= ha 0) (= va 0)), J7 r: N8 n4 N& J7 @& Q! g$ M
- (tempmod showpt 10 1); N# |' ]2 |$ V% I. c
- (tempmod showpt 11 1)
5 T0 h# w# G* T" g - ): _$ c3 `# F4 w9 }1 X8 r% H2 k2 s
- (entmod elist)
" Q2 f: I/ N9 w4 A/ h/ c - )/ u# G6 d/ [3 T4 G2 v2 I2 i3 I9 Q
- (setq showpt (list x1 y1 z1))
- u! k8 T$ o, i, x - )( a$ W1 n4 T1 `7 L* b) n
- )
1 A2 u* _7 t# i: R8 n5 d - ); ^# t, o" G1 k6 {% v4 r5 J7 i2 g
- (ddtext)9 F" X! Q# P: c6 g, K3 P: a
- ); e) k, }7 c4 f2 ^1 F2 {
- )
' v2 M( @; r( X |# a" a5 n, p2 G$ V0 g - )# d. T9 x' N; H' _. i: w
7 D- {' u5 N+ l8 o) r: x! n; k+ e) l- ;;
8 G) _. h. M1 g' v - ;; Modify MTEXT
& _/ G( r. q! K# k* b - ;;0 Y1 r$ z5 \. `' Q# O- x
- (defun modify_mtext ()2 Q, y7 t2 v6 x1 @) @( }
- (modify_properties)$ {6 E. c2 ]6 q/ T4 {1 e
- (setq pt1 (list x1 y1 z1)) X! u3 a, g: E3 e0 c# N7 B
- (tempmod pt1 10 0). s0 n) ^( U, Q
- (tempmod text 1 nil)
" b5 e' q3 x4 i6 z! N8 f+ W; { - (tempmod tstyle 7 nil)
. F. h: Q: j3 i9 P& X - (tempmod just-idx 71 nil)
6 A& I2 k! c8 F3 l- W$ c - (cond+ T. C) x" D0 j( L5 G* G
- ((= dir-idx 0) (setq dir-idx 1))/ N( x/ y/ l( z$ d V5 U
- ((= dir-idx 1) (setq dir-idx 3))
1 M6 E; ]: J" @7 [% T* I% { - ((= dir-idx 2) (setq dir-idx 5))
& C$ ?" j# n2 Z9 O2 A3 D - (T (setq dir-idx 1))0 b7 ?- s" h9 o4 k# K( N% Y m
- )
" n! W% [0 o8 f - (tempmod dir-idx 72 nil)
* B2 i: |- G. {* v% \; O4 G5 \ - (tempmod hght 40 nil)5 H; l1 Y# P* ?
- (tempmod wid 41 nil)0 N: D% k) Z% H* z
- (tempmod rot 50 nil)3 g/ R/ `; M. ^ _' y
- (entmod elist)
7 g( u& \% o/ T/ i7 p v4 V$ U - )
]3 F: r* I& C1 _ p" u6 R& H$ d9 C0 K
4 r$ i1 ?. h; |& F- ;; Set MText text style
6 `$ _& b; t8 h9 j, Z - (defun MText_style (index / style-list)3 \- o; Q2 s- ?( f6 g
- (setq style-idx (atoi index))1 p8 c" H m7 h3 T- X4 Y
- (setq tstyle (nth style-idx slist))/ ^( m- r' h/ z$ Z. h5 q5 ~
- (setq style-idx (itoa style-idx))& ~0 i, r: Y! I) R2 j% C
- (set_tile "style" style-idx)
, ]# y# ~. p+ C" e t/ P E - (setq style-list (tblsearch "style" tstyle))9 g7 e# q0 w0 X, \1 b; D; Z
- (setq shght (cdr (assoc 40 style-list))), T. K7 V6 t3 w6 g1 u
- (if (/= shght 0)$ ^( N( j3 p% _
- (progn2 S: f% u* n6 d$ j: J
- (setq hght shght). e6 ]. e5 }& a6 P) Y3 Q& r9 y
- (set_tile "hght" (ai_rtos hght))! B: R( R% T( b, s
- )7 X, G& r4 j. P$ r% q9 _0 } k
- )
9 ~% w. F4 {% S$ i, q5 S y3 d - )/ h0 u4 n' C% m9 a
- ! l7 c' ]) p8 q; l3 W
- ;; Run DDEDIT on given entity, working around possible re-entrancy
. v' Z" Z' n" O7 w - ;; problems with MTEXTED" J: x& ~' g6 i; q# L& N7 t+ s
- (defun safe_ddedit (ename / orgMTextEd work)) p6 h1 |% X9 d( [5 V5 D* m @ {
- (setq orgMTextEd (getvar "MTEXTED"))5 h2 Q1 q# t) d1 A7 ~7 v# V, V
- (setq work orgMTextEd)
4 M$ a+ D9 I" l% I" n# }! } - (if (= ":" (substr work 1 1)). g% v6 y3 o% R5 t
- (progn+ D$ A6 ]4 t, y" }7 V0 v* r
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))- a( u& i0 l. v& b" | A
- (setq work (substr work 2))
; ] Y5 t3 |5 F. S1 ]5 A( T - ), \& P* j& u- U- u
- (if (= "#" (substr work 1 1))4 v' U) B. D8 {& R5 }0 ^5 y
- (setq work (substr work 2))7 V' V- p: l7 M) I$ e- [! N% T, [
- )
[. k; T9 ]6 l3 ` f0 \) b$ w2 o - (setvar "MTEXTED" work)
# \/ V+ O$ e X0 @ - )7 P' w: h, E' K% _7 v
- ), ^& w% ~( s- a* X
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...) u, T; ^) B8 u, D: Q
- (command "_DDEDIT" ename "")& J2 l: |* w! Z9 k
- (setvar "MTEXTED" orgMTextEd)
, f& A9 S& |) h& r7 i4 l5 C9 K) ]5 J - )
) r# @% J" M' u3 W( J: e - % X D9 T3 f0 I& O+ E
- ;; Verify MText object width4 W% T+ u% o i- v
- (defun ver_MtextWidth (value)
: j& E o; ?! m( o8 o9 O6 B - (setq value (distof value))
0 \* p, D$ U& U - (set_tile "MTextWidth" (ai_rtos value)), }% y% n+ N. b
- (set_tile "error" "")
Y) h, V% m# c& f \) q - (if (< value 0.0)
- ]: \- W! [ e: _, k, b# _ - (set_tile "error" "Value must be zero or positive.")
' a4 J& _& H% @' t5 p) w* E - (setq wid value)
a. m1 J$ _8 p# `- } {1 q - )' T6 I! }! G" Q8 x% r$ V
- )
5 i+ h( w& i) k
& L; J6 t4 e9 K+ D- (defun ddmtext ( / gc3)( R# m9 w- z" g8 A! K6 |
- ;; Get dialog
% a! p/ c, W" i. ] - (if (not (new_dialog "ddmtext" dcl_id)) (exit)): b; B) r3 f6 E( m& x7 t7 A
" Z) T! c) L! Y$ q- ;; Load list boxes
" ]( w! Y: j$ h5 _ - (start_list "MTextJustify")* ?6 C5 q- R$ u; {
- (mapcar 'add_list '(
6 J; R+ d: }$ J4 `3 k1 u0 M N' g - "Top Left"
# ^* Y4 L# A* y - "Top Center") N/ J3 m: u0 K" ^, c$ u8 r! ~
- "Top Right"# o' e' l. F# l% v t2 m
- "Middle Left"! k6 X( _8 P6 w& o- H4 i
- "Middle Center"
: f- O) q. \; E - "Middle Right"
. O# n% X7 {6 T% y7 k- n8 ?/ R - "Bottom Left"
" |- \% H& c! \/ a; @1 V. ~9 J - "Bottom Center"
3 S/ g. I! ]6 Y8 A - "Bottom Right"6 _5 m( H% L. C6 n
- )
. Y$ o# i% x D - )
& T* o* T, K( ?7 X: g - (end_list)1 S% m7 q# r6 c- w; k
- : s" b& ]7 x4 {( {( a5 y: w
- (start_list "MTextDirection")
1 |& H( _% }/ D G - (mapcar 'add_list '(
2 n+ s: A$ f& c& f# Z5 a - "Horizontal"0 ?/ t8 d4 N4 \3 x4 y! G
- "Vertical"
" V$ \9 k3 K& V9 l: L - "By Style"5 X" R. @: P: M1 ?& A: f
- ): b& J3 l% Z9 c. n! _) h/ b5 G
- ); |( e1 a$ e$ V; G, Y
- (end_list)
9 @0 \+ L1 M9 t$ N/ y" B, O - % y9 y1 I# B; Q& l/ @
- ;; Set initial tile values
3 W7 x8 M3 L' |% P( N - (set_tile_props)
+ X. Q* ] ^3 H& T4 J. z: W - (set_tile_handle)% {: c3 l3 J9 o! o
- (set_tile_pt1 0)
( M+ D g P; C+ x - (set_tile_style)
# O: D4 f4 g0 K' u3 ~ {$ t - (setq just-idx (cdr (assoc 71 elist)))
9 Z2 N' S; F# ~8 P! o6 ` - (set_tile "MTextJustify" (itoa (1- just-idx)))
% e/ M2 P r# w2 p- F6 Y - (setq dir-idx (cdr (assoc 72 elist))), E) E" ]% D* h% }. k- I2 a
- (cond# w5 g5 [4 C- }0 V& Z0 L
- ((= dir-idx 1) (setq dir-idx 0))
4 s4 N. y5 k" y/ [- k7 |7 M- F - ((= dir-idx 2) (setq dir-idx 0)), C& d" y0 x" L, f6 L g
- ((= dir-idx 3) (setq dir-idx 1))
$ {4 U5 P* y9 I# `0 ]/ u - ((= dir-idx 4) (setq dir-idx 1))' p0 R& ?( I! z; d3 D2 g
- ((= dir-idx 5) (setq dir-idx 2))6 |2 v8 k% D: S6 g
- (T (setq dir-idx 0))' L# A5 _' x9 D8 \ M& }1 C
- )
8 k/ k- d& p6 x$ z9 z U - (set_tile "MTextDirection" (itoa dir-idx))
- g; x7 { o; H2 s2 r9 z - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
, e; y# f$ f8 m+ I. w9 O% c - (set_tile_hght)( h/ Z) r. v# R0 w
- (set_tile_rot)
) s/ ^% U" h) G: L. |7 F - 3 g1 k: y$ O* b: u7 p7 I/ U' `
- ;; Set edit box, disable if too long/ c2 |/ F3 F K
- (setq gc3 (cdr (assoc 3 elist))/ n6 R; _6 \" ^3 i+ `* ^: Q' ^# c
- text (cdr (assoc 1 elist)))
" \1 X8 g) `! Q2 j - (if gc37 y' q' x3 I9 P7 Q
- (progn ;; Text is over 250 chars, disable edit tile
- r) F w3 q3 p2 C - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))9 Q) D3 B4 O/ ]" o2 F" y
- (mode_tile "t_string" 1). u4 a/ g# v1 z0 B- r; v A# C1 {, a
- )
7 Q9 _& c% A6 Y! M2 l - (if (> (strlen text) 80)1 H! K; f6 P$ o6 ? U! n/ V
- (progn ;; Still too big8 Z4 K/ Q, B) t' d: c- N
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))% u9 x* Y- m" h# h$ N# F
- (mode_tile "t_string" 1)
% Y5 [! v, l0 ?3 t$ Q' Y - )' A" d! h! }! K( ~
- (set_tile "t_string" text)
% n7 c |% B+ a7 K - )' y8 ?, h8 @0 s3 h9 ]) }4 x& U: ~
- )
5 q! B% \" `/ W9 E$ E) x& E) \ - 7 \0 Q' _; e' [1 I5 P4 y9 O& @
- ;; Define action for tiles
( S G4 l) N- R0 O; E! i6 J* X- z - (set_action_tiles)# T& y" `8 d6 k9 a" m
- (action_tile "style" "(MText_style $value)")
1 T" x; C( C3 [ - (action_tile "MTextWidth" "(ver_MtextWidth $value)")
H. F* P5 i# B: ~3 a - (action_tile "MTextEdit" "(done_dialog 4)")1 ~" r9 T; z, U& @# C% w6 b3 {
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")/ ?! l5 ]$ V7 \5 ]+ f
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")" O3 a2 e9 Q4 R
- 9 Y7 ] h$ M: |
- ;; Set initial focus to text edit box.
9 J8 M0 F7 ]9 P, N3 F. t - (mode_tile "t_string" 2)9 l* H1 I0 q, n* _9 ?, m& K
" ]' m7 W' j3 n2 V( q- ;; Run the dialog
8 }8 H& ?" i6 `4 X h - (setq dialog-state (start_dialog))
' b4 z5 P3 A& {" |5 p0 }: y' C4 ^ - (cond
! |( z, P; @- I - ;; Cancelled - restore saved data8 o, R( g5 w, B
- ((= dialog-state 0) (reset))- {" K) W8 k0 E' j2 r6 o- e2 @$ i; s
- ;; OK - save new data
' g# f. J8 L) K- g% m - ((= dialog-state 1) (modify_mtext))
8 |) @4 g$ X( Z- G: M" r8 }% ~, d* w - ;; Pick new insertion point, z8 W8 J) L) w% M
- ((= dialog-state 3)
$ {6 _ e) [' M- o2 ~6 r - (modify_mtext)
2 c: k9 o. M7 | - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
- X) Q4 n# p" K9 w4 H: x5 w - (ver_pt1 0)1 C' b6 H7 N& r/ K+ ~. G
- (ddmtext)
5 u( y* c, l3 i - )
4 Y+ A8 T* ?5 a' j6 c; z& K ]8 Y* y+ j - ;; Run full editor
( k' ?4 q) o- o - ((= dialog-state 4)
2 T/ m/ T6 s7 K2 W3 i: ^+ Q. P, b - (modify_mtext)& m$ z: y: s$ {, x) W
- (safe_ddedit ename)
# v; N: h5 \, w- b) |) K: f, } - (setq elist (entget ename)). S0 ^4 c6 c. R) ]' a( }- {3 y
- (ddmtext): E8 @& f1 B3 Q. K
- )
" C3 A$ r( Z! s' n9 F - (T nil)$ h5 C: H- l, z% g, P# j, l
- )
/ g, r9 m5 P$ ~9 m' U4 Z# \ - )
; r: v1 Z; h9 f$ E! C - 4 I! w% s( H: f( s% c
- ;;8 ~; s8 p; k: `( Z
- ;; Modify VIEWPORT
J1 f8 Y2 _4 S( j0 J7 R- U - ;;" z& X$ g* b: x$ G0 R) K1 ~' }
- _% ?* L- S) g) T5 M* _1 p
- (defun ddvport (): N. G% z2 W7 `, g
- (if (not (new_dialog "ddvport" dcl_id)) (exit))* g( M, ^+ e Q4 k% z
- (set_tile_props)0 s3 E" w9 d: U6 S
- (set_tile_handle)
4 J( M( n( y- K - (setq vpt (cdr (assoc 10 elist)))
' T# N* i! j! ?$ [8 Y - (set_tile "xtext" (rtos (setq x1 (car vpt))))' e' M- U" F9 E# B( o
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))( X: z/ ^: ~- `: }- p3 [
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
7 t: n/ X. [' r/ X: t! A - (setq wid (cdr (assoc 40 elist)))
) y' Z% k! P4 O$ p. E: z - (set_tile "wid" (rtos wid))) {& d: \; M. a* s3 u7 W$ N2 v
- (setq hght (cdr (assoc 41 elist)))
/ C# k# }+ b! o4 R - (set_tile "hght" (rtos hght))8 @- R+ v; F$ s1 L$ `+ X
- (setq vpid (cdr (assoc 69 elist)))/ O8 P+ n; `7 |2 M% `
- (set_tile "vpid" (itoa vpid))1 X+ F9 S6 D5 I
- (setq on-off (cdr (assoc 68 elist)))
5 b, x8 q; l) [$ G: h) x2 U5 J - (cond
5 x) L5 \) e! B" J. G0 g6 J - ((= on-off 0) (set_tile "on-off" "OFF"))3 O/ F. J1 `' {9 e
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
2 {" o$ I4 n7 i; q" v - (T (set_tile "on-off" "ON and Inactive"))
3 h) A" h; Z: u2 U) Z$ }3 b; _2 @" k - )+ \* T) _ \# X/ t% {3 d! i4 w3 D
- 4 G, ^( p% |1 i. N ~
- ;; Define action for tiles
8 U# ^+ g5 n! m: Z- M* z - (set_action_tiles)
+ X) L( q% B9 k6 K$ c, N) x4 g) y6 Q - ( Q3 J, e7 k& |0 _
- (setq dialog-state (start_dialog))6 q! Y6 Y5 R* c
- (if (= dialog-state 0)
3 u& x% Q- H6 v; q) x: p7 M* C+ ? - (reset)8 l/ N3 ~7 q3 `0 Q9 D9 c1 C
- )" s0 p7 f1 w; `) _! h5 _- H
- (if (= dialog-state 1)
$ g1 |* _9 n3 N6 E1 E2 X9 `5 [ - (progn7 X G% O% m8 O( y
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
' n' R, L& _ X6 Z8 f* p4 i - (if (= ecolor 256) (setq ecolor "BYLAYER"))
% |( ?- I1 u7 y( u9 E1 j& p - (command "_.chprop" ename ""0 Q2 _% m# L% u1 I
- "_la" elayer9 i& e& l1 N; g3 {0 B" g. b
- "_c" ecolor ""
# O% I6 t8 N% m0 N) q) b, z% L - )
1 {3 w5 `* L$ d% \$ n" b7 s/ M - )
9 R* p6 \+ ^: i ~ - )
0 V, P2 \8 V! l - )
W8 g! m5 t5 T: X - ;;1 F1 p# Q+ q: ~! w" ^
- ;; Modify POLYLINE9 G9 z# a3 ?- x
- ;;8 s+ R5 r% ?& m7 o: W1 y
- (defun modify_polyline ()" j1 ^6 |: G- S; d, a# h' y
- (modify_properties)
- A7 f( Q: c# A/ a* L - (if (= ltgen "1")3 Q! d& R. ~* G
- (if (/= (logand bit70 128) 128)
1 i9 f' i/ b: K# @% ~+ o. g. ~- H - (setq bit70 (+ bit70 128))# ?" r5 r! @# m6 A, F
- )2 U' t6 ?9 A5 w( g
- )5 J8 S6 l$ ?+ W0 i, |
- (if (= ltgen "0")
- L0 J! F. c* d( D) x4 ^& Z - (if (= (logand bit70 128) 128)
+ ?# Y$ o( P6 h& T+ o - (setq bit70 (- bit70 128))
1 |: `- }' x0 X1 f; K# P7 m - )( X1 f+ l, u: B1 U- @* j9 \7 P0 f/ M
- )
/ O2 g, z/ {% B0 J5 ^' J - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))+ e) ?* F6 k* _9 [
- (entmod elist) M0 S$ J1 ^: @, G. B
- ;; Added to take care of updating Vertex information for color
; l0 ^' v9 h/ y - ;; and linetype.' \" c0 y3 P! u% B) D" ^- r
- (setq save-ename ename save-elist elist)3 M0 b8 C# D& }0 U( R8 E1 w0 u
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
, t+ G/ @7 L* |$ h$ Z0 d) o& O4 {! _ - (progn
+ [/ e1 Z! H6 L. N9 N& s - (emod ecolor 62)% q+ w7 c- N. V, F* R9 f% i
- (emod eltype 6)
* C. Q% z6 D" ^ - (emod eltscale 48)
5 b4 r8 m2 K. |) v4 i# V# R - (entmod elist)
! [" E; X8 @( g$ k - ) i2 r0 Y% X; r- b* e
- (progn! J8 P: \: ?; C1 Q: c
- (setq ename (entnext save-ename))
* k! k! Z. D8 a5 R P3 m - (setq elist (entget ename))2 O2 W# E8 N3 }4 H( u
- . G9 j8 p+ T0 x9 c' X: H' N
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
0 S. N. k$ x3 m) q& I% E - (emod ecolor 62)
+ j8 f, {5 q5 V - (emod eltype 6)
% g& P' B3 W1 [2 Y4 T - (emod eltscale 48)& d/ j! X v+ C2 H& {: Z
- (entmod elist), k! R; p3 y2 G4 T
- (setq ename (entnext ename))& B6 Q5 g5 s* _( M( R4 a& K
- (setq elist (entget ename))
5 f# h/ B% R* p9 J1 h - )! H' w$ r+ D3 V8 h
- )
: o/ K- r( e: T) A3 y. q - )9 g7 n- E2 X5 K7 Y- U/ Z
- ;; Update the SEQEND' d0 O- w1 x9 z0 G' b
- (if (= (cdr (assoc 0 elist)) "SEQEND")
T+ E( C: M, y o2 w! u - (progn) N' m- a- K1 I) E; [- B
- (emod ecolor 62)
; o/ t x6 `: V" p+ K7 }2 ~4 h% i - (emod eltype 6)
9 l; \. k% P% h - (emod eltscale 48). S2 o5 o$ t+ E2 j! J1 V! Q
- (entmod elist) ]% p/ h& L1 E7 Z7 _
- )
/ `/ H9 u/ I5 n4 t, _4 n4 d - ); J4 p3 V/ }' X8 d* O' k
- ;; Go back to header.
4 l( r# b+ k1 U: d& I" c: B; W8 ]; D8 T- J - (setq ename save-ename elist save-elist)) ]6 c. f& f& P. R8 F
- % }# p: G+ B7 u
- (entupd ename)# `/ r+ B5 o. g1 T2 O! s8 q( | Q
- )
! @8 X/ I6 N6 @: d& E5 f - W, U( [0 t; b: Y$ Y6 x& K. d2 P8 r
- ;; Increment vertex. Set tile values to next vertex
( S) V: l; E3 T" n - ;;" Z3 z c3 r0 i8 ]5 h6 s) L1 D
- (defun next_vertex ()
! n, T0 h8 r X - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
! d1 [9 k& r% N5 S; t2 A3 K: w - (progn
8 W: v9 c/ b0 i0 c" }& ?/ E- L - ;; If the counter reaches the number of vertices,5 u8 Y. [9 e+ F. V3 l3 b V; @
- ;; roll it over to zero again.$ `7 q) p9 `- h9 M+ v
- (if (= ctr (cdr (assoc 90 vlist)))) ]% S0 B- ^9 r% o, E+ i5 H3 a5 e
- (setq ctr 0)
& _: Y5 u" |* B1 _ - )4 v/ s }" D/ Q) ?$ D
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
4 X |' l& z3 r1 n) O - (set_tile_vpt pointype)
( x8 z2 l- Y& e! J2 U - )
' ^- x5 G* s" E* F- m' f - (progn8 C, Z- Z1 J& U& A5 E* Y4 m
- (setq vname (entnext vname))* k# T. T0 {, h& ^1 T
- (setq vlist (entget vname))
3 t" f( }+ g" m5 O' Y) z' d8 _ - (if (= (cdr (assoc 0 vlist)) "VERTEX")" X. m+ R3 `+ N- R* G
- (progn/ K9 w) f' _& O, m6 G
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr)))), _! x/ |3 Y# w( \
- (set_tile_vpt pointype)( J& e( d. A4 V( X, L# I+ O* O' G
- )) {1 q8 D T4 F6 l
- (progn3 K, t6 V9 C4 J; y7 N U4 u5 w
- (setq vname (entnext ename)). m7 b, u3 T( D9 F4 X! G$ C
- (setq vlist (entget vname))
; L3 k, t9 k& D" U6 x - (set_tile_vpt pointype)
5 h2 l4 Y$ ?' H - (set_tile "ctr" (itoa (setq ctr 1)))
% w# F# @9 H( b1 L - )
5 ^4 k; E; L7 X4 N2 r3 S - ): y* K' k2 X4 F# F2 n
- )
. F0 i; p' W" [ s( `; j0 h - ), A% J, t: e, s# Q" Q3 z
- )) B* L8 j5 s0 E7 L+ B, e$ X W* x
& |: g# F$ x2 _- y1 M$ z- (defun ddpline (/ oldecho)" V/ m4 M% a7 {( K) Z8 p
- (if (not (new_dialog "ddpline" dcl_id)) (exit))( k. T& c. l' P7 q6 e1 f
- (set_tile_props)
( J2 C. {7 V# A) t - (set_tile_handle)' ?2 @& h# d3 ^9 ]4 q9 A9 s5 X
- (setq bit70 (cdr (assoc 70 elist)))
# D( L6 W# H6 @+ f - (setq bit75 (cdr (assoc 75 elist)))
/ x/ C- k7 x, y9 F; _0 r - (cond
& {9 a0 {; J" Y [ S0 F - ((= (logand bit70 8) 8) ; 3DPOLY
2 a( d5 q" D7 B5 l8 A7 N2 t - (set_tile "ptype" (setq pltype "3D polyline"))4 ?. x) Q: a8 Q2 D0 N o
- (setq pointype 0) ; WCS or ECS point values( t, y& m9 r, H# Y
- (mode_tile "fit" 1)
% Q/ y0 X$ g2 D" t# b - (mode_tile "mesh" 1)
) h' A. q* U/ w) k - (mode_tile "bezier" 1)
) S" g& K0 [& y: P9 O - (mode_tile "ltgen" 1)* e$ G* M6 ^( R; ~7 |: {7 l& @
- (set_tile "none" "1")
2 `0 A/ X. A" k7 n - (set_tile_closed) c) o4 R, @. y2 ^" Q; z5 H. m" l
- (set_tile_fitsmooth)2 K R2 F2 V% S
- )
- Y8 C6 V+ a% d) a3 K - ((= (logand bit70 16) 16) ; 3DMESH% L3 t+ _) B3 H
- (set_tile "ptype" (setq pltype "3D mesh"))- T9 H* P$ k7 X% I
- (setq pointype 0)
2 U, w& }( {$ Y+ u3 t5 w - (mode_tile "pline" 1)
- l- R# ?$ `' M4 d! W: _ - (mode_tile "fit" 1)
; a- {. U1 u2 m" Y" { - (mode_tile "ltgen" 1)9 s+ n' A5 _1 g6 C; A" N6 ~0 b
- (setq m (1- (cdr (assoc 71 elist))))( [3 _- i1 |1 y( r" S
- (setq n (1-(cdr (assoc 72 elist))))
9 I, k q( J( G- U' u* ]. o - (setq u (1- (cdr (assoc 73 elist))))9 Q! g; t3 t+ E- r( d7 R) I
- (if (< u 0) (setq u 0))
; T7 |4 n8 f! }& _' }! x& r - (setq v (1- (cdr (assoc 74 elist))))9 G/ }7 N& }' Z3 N& ?# l8 v
- (if (< v 0) (setq v 0)), K! M1 U$ @: B- [; K2 l ~
- (set_tile "m" (itoa m))
" O6 h0 @, [1 \9 j" ]: P - (set_tile "n" (itoa n))
& Z6 u9 i" t1 A: N5 F, X1 u - (set_tile "u" (itoa u))' q) U$ E$ r5 P
- (set_tile "v" (itoa v))
6 `7 \8 h: h6 g& w9 f8 n+ I! H, u - (set_tile_closed)
5 R; I9 L) c0 k - (set_tile_fitsmooth)
# v' `# O* f" K# b - )
B1 Y& B7 L& h7 f - ((= (logand bit70 64) 64) ; POLYFACE MESH2 f' K: }% U8 ?! j9 W
- (set_tile "ptype" (setq pltype "Polyface mesh"))6 J! _" D2 e. D$ u J* k0 ~/ [4 Y
- (setq pointype 0)) r6 |7 f1 j% _5 C; V8 C
- (mode_tile "f-s" 1)
, X6 k. N c- _ - (mode_tile "mesh" 1)+ N: v% O) T# t; g6 t4 s
- (mode_tile "pline" 1)
) c# R1 X& n# k - )
6 b1 A% t+ M% N g8 U1 e( F" w - (T ; 2D POLYLINE
, Q) g) r; n0 r3 h! H3 ^ N" z$ D5 S3 U - (set_tile "ptype" (setq pltype "2D polyline"))
$ t R5 S- K) J0 H* ^& A- D - (setq pointype 1)
% ]8 j* R% o1 F! B/ P R - (mode_tile "bezier" 1)
% Z5 Q; J/ e$ \7 W - (mode_tile "mesh" 1)
/ v: H7 ^6 K D1 N. `4 `3 J - (if (= (logand bit70 128) 128)
& r5 h8 d* D1 F8 k6 I+ g: k$ v' v - (set_tile "ltgen" (setq ltgen "1"))( n2 y* F( t7 E2 d) E
- )
; m: Q2 @4 p" q$ {$ b - (set_tile_closed)$ c/ D: b9 P. y: b) o0 H
- (set_tile_fitsmooth); E8 |! P8 M! o* L& P
- )
' g3 ]# M6 l; ^% o1 p" u - )
9 C1 M7 F) b Y( Y# v6 g7 W7 K
1 A# B' _5 M0 r+ }% a- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
/ c m5 _: M, Y) R, J' q% n - (progn
. t ~; d T4 D, e1 c; [$ y - (if (not next) (setq vname ename))
" S3 q- S8 [4 O8 E8 \; |$ Y - (setq next T)
/ `- J& |+ N; _& p9 a, a" F* G - (set_tile "ctr" (itoa (setq ctr 1)))
6 Q# Q/ J. p8 |, [ - (setq vlist (entget ename))& g1 u1 c5 |! j: ~% a# O4 u
- )4 v3 o2 \+ U5 K8 x. {7 \4 i
- (progn2 q+ q5 p5 b x3 e7 t" l
- (if (not next) (setq vname (entnext ename)))
3 p4 m$ S S; d* G - (setq next T)3 ~) m5 o1 b0 j) E, ?6 ~! h- X
- (set_tile "ctr" (itoa (setq ctr 1))) V# z% V' {4 t- l2 W3 }3 l2 B
- (setq vlist (entget vname))0 B9 }' p: s, i
- )
* F% A3 y( A4 W* @& \# t* A; Z3 h - )& P( \7 k: z9 `# T& N2 J. l$ O
- (set_tile_vpt pointype)
+ s) y2 }3 C: _2 V - ;; Define action for tiles$ ~7 Y$ ?; ^ K& I* x, [
- (set_action_tiles)
; f; `* d) \3 l! Q) z$ a - (setq dialog-state (start_dialog))
5 X, t6 n- X) }% k7 ? - * | Q3 |% u& s9 V; b
- (if (= dialog-state 0)' _9 w- r& @$ X, l* |$ Q' p
- (reset)9 }$ b. @, `4 p( p
- )3 f1 o* b7 H ~3 |' E
- (if (= dialog-state 1)) c( \' q+ B- p; [
- (progn3 \. x7 l: v0 t% H; j0 R' F2 g
- (modify_polyline)
. c& \6 D- }3 A5 [ - (if (or (= pltype "2D polyline")+ f' a4 k4 I. w( R+ p
- (= pltype "3D polyline")
# N+ w4 T0 H. X$ {; }; \5 K q% \& z - )* a7 K: p, X. \% _+ U6 a
- (progn; J& Z! L7 p/ ]
- (command "_.pedit" ename)/ m4 y3 o4 N& l J8 @
- (if (= spltype 0) (command "_d"))0 |8 K: H$ p; V4 |
- (if (= spltype 1) (command "_f"))
7 J4 m I8 d& R1 x3 S' r - (if (or (= spltype 5)8 N6 {$ n+ y" ?; m
- (= spltype 6)3 X- i% M% c6 Q8 N' P
- )0 y8 m2 R: r7 f3 u# A
- (progn
) F" r. U/ _0 r/ ]: y - (setvar "splinetype" spltype)
! L$ k& R3 `# G- W - (command "_s")3 O2 B% J4 \! H, A$ v% P" G+ I3 |- {
- )5 z/ j/ ~* ~' r' p. y+ N* I
- )) k" O) T4 N# u+ r1 e
- (if (= closed "0")
- U" q2 ]7 }0 D - (command "_o")" W+ h% T) y' V+ Y2 M
- (command "_c")
6 \- x+ \, O9 U- g9 K4 o+ c - )0 R) Q! F3 C! G! }
- (command "")4 D; l) s# G! P1 V0 s8 k& Z o
- + w9 b1 e& W# W6 J% M* f4 E
- (if (= spltype 0)$ {, W( U0 Q0 ]' G
- (progn) E% x6 m+ t* Q) V& Q( O9 y
- (setq oldecho (getvar "cmdecho"))
6 x. A& y3 O; g% v0 p4 [ - (command "_cmdecho" 0), Y0 P$ V- ]. E1 a, q7 w
- (command "_convertpoly" "_light" ename "")9 B9 I2 [3 r8 m: d
- (command "_cmdecho" oldecho)5 G9 L* I) D- y: M* O) V
- )4 }9 i: z- @' {+ w/ m
- )6 I4 f- x8 W u3 n8 }" \
- )
2 {6 h" p5 v7 K2 I" i - )
' F1 M2 t- y$ K2 |8 v8 t$ ~" v - (if (= pltype "3D mesh"); {' s u1 j& C" t4 D7 j
- (progn6 G8 i" H2 y, e3 g% n" S1 l$ }$ g! C8 n
- (command "_.pedit" ename)
c5 @ D3 p: T3 D3 \# e( [; p! w - (if (= spltype 0) (command "_d"))
! e( f/ C s( V% P# ~. T# v - (if (or (= spltype 5)
/ B$ m% j" l. B1 _8 O6 Q - (= spltype 6)
7 f6 \% G: z. d& j' k0 ^' b3 G. X - (= spltype 8)( ~; d: K: R. e8 {7 a
- )
0 N; ]( o/ n1 p8 o) h - (progn
8 I+ }% M' H& r& D% J9 v - (setvar "surftype" spltype), u) i* g2 L: [% h1 l
- (setvar "surfu" u)8 K0 k4 v$ g+ N {$ g2 C
- (setvar "surfv" v)
$ i2 z2 r$ D. s; k$ \ - (command "_s")* g. _+ j1 X) @1 ^, V1 z* P
- )0 `9 R/ S( x0 Y* q8 I. Q
- )& G1 y" ?* b* n3 [+ n+ L
- (if (/= closedm old-closedm)3 U% F$ u+ j$ R- r0 H( ~
- (command "_m")
' J3 M5 b J) v& H0 d6 | - )8 F9 V5 P/ v: o7 E
- (if (/= closedn old-closedn)
5 a6 M! h$ N: h9 s( o - (command "_n")1 g9 l/ Y- U4 G6 Y! h
- )6 L/ J2 R4 `2 M+ z; a
- (command "")
9 p) I3 K4 _; _' B - ): ?) M0 ~& z- w7 ? v& y: I
- )
1 H* u' [5 Z M6 u7 P: Z/ g& K& x - )3 [$ Y; J6 n: \ r `6 @2 Z
- )! ], ?( N8 o, j( V m* ~" }
- )
8 }) h0 K; L# C( @& A, T" o$ ]* L - ;;
7 b6 Z: A v, k/ l2 k7 p/ L - ;; All the spline data is contained in a single elist. We must do some
0 O3 w, i1 G7 K* H) P - ;; tricky list processing to loop through the elist in order to display) A" K9 Q9 |/ N
- ;; all of the control points.
9 Y8 W" m# n2 A. n* l5 S - ;;8 d( K9 t) }4 z& i. |6 H- u, O
- ;; The structure of the elist is different for rational and non-rational
( v) ]$ J/ K6 }! i3 ^7 j5 C - ;; splines. Therefore, we check the rational spline flag.
" M- X" Z( w; b& E - ;;
& W# O, Z5 F8 C1 { - (defun next_cntl_pt ()
. Z; w" a Y8 G) ^ - (setq elem-no 0) ;; elem-no = element counter4 U) ?( }! e% ~0 V [5 Q: {; t
- (if (= first-10-time 1) ;; If first time, find location of first
. t$ _3 t7 ~% C0 @6 e; L/ B - (foreach list_item elist ;; cntl point element in elist9 C2 {: I( \" w- Q' X
- (progn
- }! ^! x7 i9 `0 @) `( z - (setq elem-no (+ 1 elem-no))& B6 K/ u( X( @3 t! n8 V) l
- (if (= (car list_item) 10)0 D, t: x& _ k4 Y/ J
- (progn! C0 f: m+ u# o" e1 U" U; F$ r& T
- (if (= first-10-time 1); E; ]% d5 X7 T" B
- (progn* T, Q- e; p( [1 {- e" X1 C
- (setq first-10-rec (- elem-no 1))
5 C: a6 s8 u9 F5 Z5 {. q - (setq first-10-time 0)9 x- ~, ~: F- i' s
- (if (= rational_spl_flag 1) ;; if rational
/ \; Z. r5 V% d! P+ I - (setq cur-10-rec (+ elem-no 1))
; J7 c8 _# [: V) [: _ - (setq cur-10-rec elem-no)
3 u: v4 q$ b. q P - )9 ~, e6 K4 Y3 T
- )
+ p/ j9 R1 }, [/ w( G - )
* D t; Z O( m) [7 t, ^ - )7 ^5 C" @) s! W8 w4 I
- ) S$ C1 X$ ^ W; ?( M
- )! g& H; ^! x/ f+ Z9 e
- ): r" o6 T R( _2 @2 V
- )& [% i0 ]5 p+ B; h" k! x% U& @
- ;; Now we know the location of the first "10" record; it's stored
5 G" P; n, j+ ?8 ` - ;; in first-10-rec. The first 10 record was already displayed when$ h ?* ~7 \7 G5 h# t1 L- G$ D, E, ?
- ;; the dialog first came up so let's display the second one when! Z& h& B1 I' r V
- ;; the user presses the "next" button (the first time through).2 H* D. A* H) e8 G
- ;;
2 t$ H; w' u( N4 e# _ - (setq temprec (nth cur-10-rec elist))2 S" i/ s+ X/ A8 O" E
- ;;
6 S% r3 s+ o) C& d1 K4 r3 V - (if (= (car temprec) 10) ;; if 10 record5 Z9 g9 ~- T* E; p) ~
- (progn; l/ @$ M! P+ p$ U4 Z
- (if (= rational_spl_flag 1) ;; if rational spline
3 |7 E2 T1 r" H) a6 V7 c/ { - (progn ~% }- G+ q7 K/ r+ ]& d
- (setq tempweight (nth (+ cur-10-rec 1) elist))
! M5 s, }! a! ^) N4 W, Z* ?8 [7 U: w v - (setq cur-10-rec (+ 2 cur-10-rec))3 ^6 y! |) W% n" [3 W# m, \
- )
1 Z; ?3 `2 h! Q8 D7 z, m8 l) } - (progn ;; else! c9 D2 X$ J b
- (setq cur-10-rec (+ 1 cur-10-rec))
3 W+ t9 `- j& F" l! C% ~ - )
' l8 N) ~ [. P1 ]' L0 z& K7 q# q% {. J - )
. Z: [0 F; l& H$ F1 `7 k @ - ) ;; end if rational spline: O& R' T3 X2 j+ g& I, |
- (progn ;; else reset counters
G8 y0 d; I# q) @2 j, } - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec! `, p, M' s, f9 N
- (setq tempweight (nth (+ first-10-rec 1) elist))8 M* O T0 J9 b3 z6 }5 x8 j$ m; ~ V
- (setq cntl-pt-indicator 0)
$ ^" K7 D$ O; t" t' A9 O; J - (if (= rational_spl_flag 1) ;; if rational- H9 ^% n. H% w4 n+ [9 f! w
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
. J0 L0 T. z) ~- b9 h - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec# C& O6 ?9 C6 N) f6 _* ^
- )# k; m5 b' V( Z* J$ g
- )
7 ?4 R" b) D: \+ M& {# E7 R: e; }9 { - ) ;; end if 10 record
& x7 [) d4 l3 @4 `7 B0 _+ {) e, `5 J
- R, K4 S7 F2 }- M2 q- ;; Display cntl point, weight and ctr. Increment ctr.
7 y8 @* s: n) j: a - (setq cntl-pt (cdr temprec)): _* z5 M+ ^. l' V8 y( r/ U: `1 L- T
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))# a0 V. T9 ]! _, w5 D8 [
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
3 J6 h. S3 f& Z4 n# R6 } - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
5 D9 U5 X; `% H l - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
4 @/ W ^% j) Y& M% Q. w+ r - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
# m( T. T0 W0 m - (if (= rational_spl_flag 1) ;; if rational5 l% t: r" i. i' o
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght0 \! p6 ~+ f: ]: Y6 ]
- (mode_tile "weight_text" 1) ;; disable wght
. a( j$ ]. H, t) B, ^+ X& c) S - )$ z, G0 w6 L6 l" I* _4 v# l$ n
- )
& X5 A) w: h) i0 S( @% I, G - ;;) `3 K0 z- A9 ~! y+ u
- ;; All the spline info is contained in a single elist. We must do some
- Y; R l$ o2 X$ ` - ;; tricky list processing to loop through the elist in order to display- a. i" M+ }$ U8 a' t( j
- ;; all of the user data points.
$ Q+ d. Y) E/ f! a! m3 K* }) @ - ;;
0 n: ]9 i+ q& d& _# F& { - (defun next_data_pt ()7 z) W0 f$ Z) ]
- (setq elem-no 0) ;; elem-no = element counter. A* U- y0 u+ m
- (if (= first-11-time 1) ;; If first time, find location of first4 k( }6 g7 n5 i5 I( }6 c
- (foreach list_item elist ;; data point element in elist9 L; W( k- F, R c
- (progn
9 ^ V; X: _0 S' _8 } - (setq elem-no (+ 1 elem-no))9 ?9 V. g% Y( e D
- (if (= (car list_item) 11)
( p/ {9 Z4 p- v6 l! ~# k - (progn/ S% A/ T0 E+ z7 Q$ p% @8 q
- (if (= first-11-time 1)
8 s; a, i ^/ @2 U% ] - (progn* N- U1 D' o! l1 @( g9 D
- (setq first-11-rec (- elem-no 1))1 J' O+ p8 `! j( G Q: x
- (setq cur-11-rec elem-no)
& T. Q2 u" f$ k: ] - (setq first-11-time 0)7 G# r4 G9 ?5 e- J
- )
+ `- w# p8 {) D5 k) |* g1 n - )
. p+ P" Y$ [' e0 s! v - )$ n. p& A5 K+ `3 o! S# ?
- )4 K4 [) m4 H# y, y3 |" d
- )% N- y/ L' C% _$ k
- )$ U9 y# ?7 d& C
- ). z" r) J8 E; V+ H1 U* C' I
- (setq temprec (nth cur-11-rec elist))
& N' c, J8 ^' @) s* w6 y - ;; If it's not a DXF "11" element then we've gone past the last" e: l9 a) J, ^8 n! _5 J- }
- ;; "11" element. Go back to first "11" element. Reset counters.
* K g4 k4 B/ A$ Z - (if (= (car temprec) 11)
! j" U3 ^* @( c" a7 {# ` - (setq data-pt (cdr temprec))
T' B' [% |. E: D7 q* n; } @ - (progn ;; else8 X' l6 i1 o9 `' b
- (setq data-pt (cdr (nth first-11-rec elist)))
( L6 F/ X' n" C2 N/ ` E - (setq cur-11-rec first-11-rec)
4 s( e5 P' s+ p1 `3 R0 c - (setq data-pt-indicator 0): S" T9 x; k# r1 E& z6 F
- )
5 M2 B2 w, s2 D0 s6 @ - )
; s- ?. m& [% S; G7 | - ;; Display data point and ctr. Increment counters.
$ [! ^- K" S- k% R) ?/ a' | - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))* q) l& B y% R
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
3 V5 P6 D9 Z0 C$ e/ H0 W$ } - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
3 k' k2 R- X2 P - (setq data-pt-indicator (+ 1 data-pt-indicator))
% e- I: w) _4 C - (set_tile "data_ctr" (itoa data-pt-indicator))5 A8 C0 I9 Z2 U; X A' z! |
- (setq cur-11-rec (+ 1 cur-11-rec))+ B* l! g3 M$ |1 K
- )
% t' H1 W0 m6 H - ;;1 [, Y) x. A/ k7 V6 R) ^
- ;; Modify SPLINE
9 b! n7 q" A D6 ], _ - ;;
. `6 Z; T5 j! E, r - (defun modify_spline ()
& A( h. }/ m* ^ - (modify_prop_geom)
! x! u |$ D3 |: r4 j: [; H1 t: h# j - (entmod elist)4 ?" r; h3 o' A! Q+ g* e: i
- )
( V3 a/ m9 f" N1 } - ' u; }; A) [- |: H1 m9 v
- (defun ddspline ()
* A: E, z+ S* `0 H7 ? - (if (not (new_dialog "ddspline" dcl_id)) (exit))
6 b. P+ f4 q& R2 C6 t9 k% m - (set_tile_props)1 ]% H1 U0 [) x, D2 m) Q- o1 E
- (set_tile_handle), D; K8 W, z- U T+ h9 F" [# I
- (set_tile_spline_props)9 x9 C; [9 [6 V, Q/ d
- ;; Display first control point- I3 D6 M; F/ x
- (set_tile_cntl_pt)
- [. V: |9 U/ h7 P( s* s - ;; Display first data point
8 ]0 f. D8 N" p* ~* B2 ^ - (set_tile_data_pt)
( k" q0 M: p4 S - , M: q: W7 d# H* }* h5 c7 R
- ;; Initialize flags to indicate first time through the dialog.
; |3 A2 x% r. g. J, Y) m. q, h: T - ;; For control points and user data points the "next" buttons
6 J& l/ h: u/ { - ;; in the dialog call the appropriate functions.
+ g5 C; f, p' T" H' |/ D& k- p - (setq first-10-time 1)
, |7 g; k4 q, `: u0 ?3 v - (setq first-11-time 1)
0 b, E% E; ?5 c! i& w& u - ;; initialize control point number counter
2 v* s6 V9 v! }9 a% G' q - (setq cntl-pt-indicator 1)4 d- Y# l4 C& }! ]6 v; P
- (setq data-pt-indicator 1)0 T( z6 o/ O) |, z5 U0 J& }/ C
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
, ~6 w0 E- v+ G9 D% C0 e$ a - (set_tile "data_ctr" (itoa data-pt-indicator))
# {5 g# a( X, u6 L4 D - (set_action_tiles), Y+ N9 ], X( p# L3 N7 T
- (setq dialog-state (start_dialog))0 h$ b2 i3 r% i9 r* G8 z
- + n7 H6 p% t X
- (if (= dialog-state 0)
" C% v( K; g5 C& h# P5 i - (reset)9 d$ e% X0 ]: E+ m5 K: R
- )8 @! R3 t; b( o* G8 b+ u. z1 P
- (if (= dialog-state 1)" U) Q# k( r% P. W# y
- (modify_spline)
5 }- K L% E2 ]# G - )
$ s0 p; k- @0 B$ b/ }' Y( q6 r* G5 C6 a - )
9 O7 D' Z4 A( m; [
# ~8 E4 E4 s; ]- ;;, j9 L, S1 p0 @
- ;; Modify DIMENSION" O* u1 l: I7 z# D( X' f
- ;;& z2 W& k$ \ d- d. [3 x# x3 B$ {
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
" G) z9 k) e# C& {/ h - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
$ F, G! A9 ^0 j2 f; H, {. I: i- | - dimtype dimsvcurset)
+ k" z% ~: y# F - (setq dimtype "DDIMEN"
9 P w9 [0 |8 A, B/ }/ ?2 a - dimsvcurset (ddimen_dimsty_restore)+ B1 R$ O& [6 y( B P% \
- )
8 I7 T" ]+ h$ r6 h6 B) y0 Q - (if (not (new_dialog "ddimen" dcl_id)) (exit))5 N! @; y5 `! q; B' Q0 x/ ^" {# x
- (set_tile_props)
/ ?8 Q+ z3 u+ G9 |/ \0 Q$ c - (set_dimen_props)
) Q, \+ w/ s1 Z) T - (setq dimtext (cdr (assoc 1 elist)))4 `6 Q9 ]$ H. d. ^% u0 y7 _9 X
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))# t8 k0 q7 E1 K7 a$ V3 r
- (set_tile_handle) A9 k# g1 i2 Y, d
- ;; Define action for tiles
, `1 Q F( o$ K: j - (set_action_tiles): U K8 W6 P, u. [$ z
- , g8 g3 {! {9 q2 X9 P4 P% [
- ;; Set initial focus to text edit box.
T3 X+ U6 X, Y# \4 E1 r" O - (mode_tile "t_string" 2)) R w! Z4 Z5 x4 W) C1 t# S
`: U. O9 b; s( K! A- (setq dialog-state (start_dialog))- a. F1 ^4 |/ O: O) P' X8 x* P
- (if (= dialog-state 0)
* Q1 }6 r( G) E: t - (if (= ddimmt 1)
; f3 e1 ?# `3 Z; _7 e" V - (reset)7 k+ h/ s4 S9 o4 c! Y' T7 M
- )
0 T; ? L. b& u S: V - )
4 U( _8 q. \# S, l* y - (if (= dialog-state 1)
: Y9 U) R$ ?/ j) ^. @# ^ - (progn; f+ R/ J! |3 D1 y( B. h
- (if (/= dimsty stname)6 i) E& p/ ^8 |7 B
- (progn/ i+ x# X: K2 D2 s6 f2 t9 F+ F
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
- Y# z! A. ]4 w* G& B8 N - ; doesn't have it.& M, D0 c k" }$ i/ `) O1 t
- (if (null (assoc 3 elist))+ _6 V# z0 o/ u0 C- \3 Y
- (setq elist (append elist (list (cons 3 dimsty))))
2 ?( B/ I/ q$ j' t# U7 P - ; else just replace it.
! B3 C$ @3 b; K; J7 r* \- X2 d: C - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))1 v7 }) x4 m5 M8 S! w( l" F0 z
- ). |7 a9 }6 Q3 j3 K
- ; refresh sv_dvlist with new dimstyle.
7 l/ J: h1 c9 Y6 D7 [ - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
. `9 h5 h' x% S6 G6 n; ]! R - )- h+ w/ _) o: q
- )% T0 z/ \& y( N) f0 S
- (if (not (null dimlist)) ; attempted to change dimvars
[" L; V5 h+ r/ L+ ~0 B; y7 T5 u - (ddimen_complist sv_dvlist dimlist dimtbl)8 K7 M" v1 p' J' L7 ^
- )" i& f$ \9 A6 n9 k5 e/ C8 R
- ; Modify dimension text
% `0 j l2 z9 ]# K6 u# A. o - (if (/= dimtext text)
; Z# c" n( ^+ Z/ _/ Y - (progn
$ |4 _/ f" z5 m* Q5 \ - (setq dimtext (if (= text "<>") "" text))4 c+ l# {- U* Q7 @% P
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))% D( a& D- `9 X% P5 x
- )2 z' }* P: b' I, Z8 ]; k/ F
- )
* M" `: n. z/ O/ B2 N - (modify_properties)
7 H( s, ^8 l! x$ w - (entmod elist)
0 @! o' g" q' _ l7 j - )% k) ~+ H7 f7 _) R0 k$ I" E) r
- )
% W4 Q/ G$ Y- m0 M; T, f - (if (= dialog-state 4)
3 W7 N9 O5 ?" K' g - (progn
- {& Y1 s3 u6 y# I* U! @! P2 E - (setq ddimmt 1)8 Q F$ M! D- L
- (if (/= dimsty stname), J; m- Q. N8 q: _
- (progn
4 ?6 D3 s; v# S% o4 t - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case# w- @( }+ v$ f/ e# [
- ; doesn't have it.
- m+ t% \2 {# C - (if (null (assoc 3 elist)). u& [# S/ s1 a
- (setq elist (append elist (list (cons 3 dimsty))))
+ r' q5 f& r- W$ t* ? - ; else just replace it.
# S1 l& J- h1 R; N" E - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
7 x- ~+ P) H" A- N( X - )0 h( |5 v, [$ |7 ~- u: f" t7 @
- ; refresh sv_dvlist with new dimstyle.
+ F: h5 V: q- |' `. G q - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
8 z- _$ R: D- ?. o% ` - ). o: h3 O9 f _% |$ o# m# U. M# c
- )
4 n I, u. ]/ x/ A% K% H& \4 z - (if (not (null dimlist)) ; attempted to change dimvars" ?4 I6 _$ Y" w, u% L
- (ddimen_complist sv_dvlist dimlist dimtbl)
8 r7 p7 t, p8 z4 C0 g - )$ b T* ?6 S6 ?, `2 j9 F8 L* a
- ; Modify dimension text
, p7 p' L' n: n m$ e0 x2 p" T - (if (/= dimtext text)
( P3 N3 ?; O7 ^ - (progn
5 n% u0 m9 y& g! n" `& | - (setq dimtext (if (= text "<>") "" text))
. j+ ^2 A" M6 @ - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
# X+ j. O" ^, f% Z4 X! B3 ? - )
m8 n# H$ x6 v+ M3 ` - ) {' A5 z4 j A
- (modify_properties)
% i$ `6 `: ~ s5 H$ n5 o - (entmod elist)2 }/ `2 ?% f( s2 Q0 P6 j6 B) r* J
- (safe_ddedit ename)% l$ J7 R7 Q1 E( O
- (setq elist (entget ename))
1 u5 p/ ?' @/ F5 Y2 A - (ddimen)$ O, \2 @/ n, y4 u9 v3 Z, P
- )
1 P9 `, W8 F7 F9 A - ) h o5 c: n1 Y8 ]. V4 G
- (ddimen_setvars dimsvcurset) ; Prepare to exit; L7 R e$ F/ P) G6 c Y
- )4 Y3 @9 E) {1 Y/ M. j( U% N0 L
5 K/ N2 b: C5 g2 F; T8 w- ;;
# p/ H/ j; J: F! n - ;; Modify TOLERANCE; S2 @0 X" }- R" L: M( o3 Y: U
- ;;
' d* f k) ~" M1 \' u - (defun ddtolerance (/ a stname n dimtbl
1 n7 ~ O( R) E6 s - dimsty dimlist dimovr sv_dvlist stlist dimtype
! s% g5 @ _& |' {6 c - dimsvcurset)" B6 ` h: r( I `" L3 A; M
- (setq dimtype "DDTOLERANCE"; f* d+ k- D5 @+ Z1 p: z
- dimsvcurset (ddimen_dimsty_restore)
0 G' @' d5 d6 {9 O - )
1 {" T: v( ]0 Q8 O% o7 b9 N - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
$ _; p: B) y1 i2 W, [ - (set_tile_props)( I- |6 Y$ M# m2 c, C C! u
- (set_dimen_props)
" g% k' g! n L4 W3 j9 Y - (set_tile_handle)6 U* @4 @6 c, j/ p
- (set_action_tiles)
7 J! \4 {8 \: S6 Y - (setq dialog-state (start_dialog))) ] Z1 x0 }& R0 i
- (if (= dialog-state 0)
; ~" Q% [# i9 ~' }: K - (if (= ddimmt 1)0 n1 r0 V- ]! t! Z }: I3 p9 d; O
- (reset)
( J$ \" Q; o* W/ e$ g. k2 `8 e - )
6 T0 F3 h6 W0 S# w2 I - )
& i- F# ]" e# C. I5 H9 y; V3 Z - (if (= dialog-state 1), D4 b" D* K$ f
- (progn
2 B a" b( g7 r2 y/ X- h5 ] - (if (/= dimsty stname)1 Z. l# F- M* }- f5 v6 U# G7 Q
- (progn X8 A, _, f6 Y7 g' x
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case# A, }: g3 i# \& M( g I
- ; doesn't have it.
" G/ _8 ~6 W' S5 K - (if (null (assoc 3 elist))
7 m# h( w, S0 G3 b6 F0 ?) Y - (setq elist (append elist (list (cons 3 dimsty))))( {7 _9 K- ~( F/ \, l: G
- ; else just replace it.
! V. P4 w, I- d5 T - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))5 H# }! M; A2 z n& v) r" ^9 N
- )
6 M; T/ ~* f) b9 @5 }& j0 z" Z: o - ; refresh sv_dvlist with new dimstyle.& C N+ }; S4 K+ N
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))7 B6 \ {5 Q, {) m
- )
4 c5 h! D( }! d% @5 w4 A - )
# Y; `7 ^: z- l4 X - (if (not (null dimlist)) ; attempted to change dimvars2 {8 |6 h) j; m6 ]3 z& J2 N& l+ ]
- (ddimen_complist sv_dvlist dimlist dimtbl)
; h' |' @2 O, }- D, m* \ - )
# v' t. z. G; F1 j4 |; J, h r - (modify_prop_geom)* \ B: a" b( S+ i2 }' q3 `
- (entmod elist)
; J1 n) E8 S! ]& Q7 C - )
# K, q' L0 g: P - ): `# d [# p- Q- ^! }: m- C
- (if (= dialog-state 4)
: P8 C* e1 l- |# \ - (progn9 P, v. x& F2 F5 Q* r* r7 p* O
- (setq ddimmt 1)
8 l$ i9 o8 r- E3 d/ | - (if (/= dimsty stname)) {6 K% D5 R+ n8 n4 l
- (progn
0 X: l! f! A" Y* c E - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
' P4 ^* {. t+ z) h3 i! y( Z! }7 \ - ; doesn't have it.& y& k, y9 [2 a7 G+ U8 G& |+ b
- (if (null (assoc 3 elist))
' M% c* ?. b2 S1 S: E - (setq elist (append elist (list (cons 3 dimsty))))( \2 g0 ], `) ^5 h& d& t8 }) y. ]
- ; else just replace it.( @ D& c% w2 P; t C+ G: j" o7 M
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
4 B% k7 P; l2 n# g1 d9 T* r6 J - ): o" G q9 P* r( l" H& n! d* P2 X
- ; refresh sv_dvlist with new dimstyle.
9 N4 i7 U2 |" n4 [6 u - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
2 m3 v1 N$ B% u5 `8 g' J - )
" ^% ?" @* h7 b' \( P( t; S - )3 K: A! X1 k% K! q; U2 s
- (if (not (null dimlist)) ; attempted to change dimvars3 c' O, a' Z+ }# z5 ^- X' P. o
- (ddimen_complist sv_dvlist dimlist dimtbl)% b# K: Y5 s6 D' [ I+ \: D
- )
$ w: T: y9 v0 {# G4 c) j - (modify_properties)
g1 G' X9 }+ r& g' {4 s - (entmod elist)
1 z' `1 ?7 ], ~: L+ }/ ^ - (safe_ddedit ename)% ]" x: e$ l5 ^' F; R9 w
- (setq elist (entget ename))/ Z) W) s* O6 m& B. D
- (ddtolerance)
& O, F: X' C; g9 Z: P6 n0 g9 S, a0 q - )
O. N3 u1 {: S9 y7 _7 K* ^ - )
" m: ]4 M4 p0 x, Z# [ - (ddimen_setvars dimsvcurset) ; Prepare to exit- a P, x* V: G: |* F, ^1 d8 v( [
- )
9 F8 |9 _$ t6 C, [
9 v# d! ^+ r5 m$ k( S$ Y- ;;
) E# H' V w L5 v# A - ;; ddimen_dlg - jump to ADS ddim module
3 y' P! K; y" y( G5 A7 y - ;;
+ ]0 P1 L" V$ ?
7 |$ N! u0 M5 J- }- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist); \& a y. v7 ?( q
0 ]5 ]/ z# H) B- ; Jump to DDIM with overrides if any./ S3 {" f4 R" Z9 r; V2 {$ s
- (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry0 Z+ ?; U4 E. n( r; ]
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format' L# X* ]8 N, {# Y( F0 [# Y0 Y
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
/ V/ _" Z# k& `" i - ) i7 f; p" r7 c# K2 K7 W
- )
2 {, i9 h' n1 [( ?. @ - 0 M& L+ [6 M8 Y( b& u: e
- ;;4 F! z1 n8 L( f, i
- ;; Dimension variables updated are stored as overrides.
# q; E" O8 |/ C* z - ;;
* M" S+ n' i- F- g' P
3 }6 V8 s: d& l6 n" l7 c4 @' T- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar' g, z7 h. T; y+ E& E0 a G; g/ A
- dv dime commandIssued)' @2 m& W4 m/ b- _5 N) K+ f+ L
- . s" B; A. D' g6 E- Q. d. J) @
- ; Here we skip the following first three items:. H% S' O. m2 Z( a: _) ^% N. b2 p
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
& g+ Z3 ]5 z8 A& j0 J3 |4 o) v* { - ;
( x$ d/ T: U( U& F: \2 D) {, W; t0 i. a9 n - ; The list comparison immediately begins with dimvar.. K; ~1 Y1 P0 G W% _
- ;
9 b: _5 F2 ^. {/ K - ; dimolist - original states of dimvars" h/ Z2 |( a a3 c4 K; N" l+ m
- ; dimnlist - new dimvar list which is of the resbuf's
. s0 J( s9 `& f2 V7 E - ; dime - entity name for the dimension+ z+ Q* B' S" y1 v+ V4 c
- ; odvar - value of dimvar for the dimolist
$ |( \2 l6 [% K! E7 `9 e) J1 V# ^- n+ `% L - ; ndvar - value of dimvar for the dimnlist
, k8 ^( _& _, P7 R$ U& @
, y% K u# m5 O2 r# h- (setq i 3
; j/ W( E+ H4 O; M. P6 m: O - dime (cdr (assoc -1 elist))
% a" \: B/ L; ^: m4 g* q# n6 F5 T - )
3 v" h( p# ]4 R+ ^& f9 `; o - (while (setq odvar (cdr (nth i dimolist)))
7 b, G! Y6 i1 {% K: f5 q! |. a5 ? - (progn
- w, B/ m; f# T- T; F8 \/ p4 W - (setq ndvar (cdr (nth i dimnlist)))! K1 {3 H3 ~* a% n
- (setq dv (nth i dimtbl))
5 q/ u" S* N2 k- l- S3 D - (if (eq dv "dimtxsty")
) e, d9 o9 Q: p% F7 ^6 g3 x0 l. @ - (setq odvar (cdr (assoc 2 (entget odvar)))' m' y# ~. i6 Y7 ]6 ]0 r. ?
- ndvar (cdr (assoc 2 (entget ndvar)))
9 `; ~* ^6 Z2 v+ H - )
n5 I+ b, o' w/ q - )
2 D& Y& ` |$ u# S& U - : b1 \1 |9 m) L; H$ `
- ;
9 I ?* @/ j8 ~ - ; In order for DIMOVERRRIDE to operate correctly with string
4 [/ u: e8 y. x1 D; A* E1 i - ; based dimvars, we must pass "." versus NULL strings.
# i* [5 m2 D, d; [, s) O( K# S. b/ \ - ; In this case ndvar is the new dimvar value the user wishes/ h% m- @/ N, T# d" w) d
- ; to update on selected dimensions.
' \2 ~* `- n0 G' ? - ;
% N4 R' Z* j$ \7 k - (if (/= ndvar odvar)8 C6 j$ N. t3 T/ k; F
- (if (= 'STR (type ndvar))
/ E+ L$ |( i7 ?' c( z# o, m - (if (= ndvar "")3 {( d; s# ~; o# \% T7 Y
- (setq ndvar "."))))
" V5 Z, d; u& D0 y/ X, W/ q8 \ - 6 w" u3 z" H5 g( K) s4 g% K
- (if (/= ndvar odvar)/ `" ?' l* N$ P; {9 ` m1 b
- (progn' T" e5 D; b2 D
- (setq dv (strcat "_" dv))$ w( \2 D4 l: x3 _/ r6 k
- ;
- y- c7 i: w* c3 I! I# y& y6 A5 M - ; Start the dimoverride command/ V7 F2 U4 i( t, [
- ;( }8 q F) U+ ?2 X
- (if (not commandIssued) O! _+ j2 R/ ^/ M* C5 S8 u
- (progn
/ k9 T7 t, y* G8 S" G( |) k - (command "_.dimoverride")3 G% ?9 B. O" ?# Y/ u3 u2 E
- (setq commandIssued "T")( V9 K% j6 S% {7 s+ {
- )( }3 a( z9 _. C! \2 R
- )
3 i* x; D: i2 b1 @, ^/ Y* O3 q - ;
% {( L, i0 T0 f* Y0 g7 F - ; Issue dim overrides( U( s3 X$ E1 g7 ]5 T; B
- ;
) U! N7 b# }2 D8 A - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
3 A" Z6 ]. B, S8 P1 d' Y- A - (or (= ndvar 0) (= ndvar 256))2 u+ W( p- [2 A/ O+ `: O
- )8 n3 ^3 n3 i7 q% b! Z( v: p
- (progn
* H' k0 t3 f7 x1 o6 \ - (if (= 0 ndvar) (command dv "BYBLOCK"))8 X* u: j9 a0 W5 e9 z }$ K5 H: V- M
- (if (= 256 ndvar) (command dv "BYLAYER"))
8 V/ J( d. R8 s; S+ R - )6 c) p' E4 D! \
- (command dv ndvar)) U( G+ s$ t3 Q& r/ u- b: r
- )7 ~: _5 \8 w: q6 o0 l
- )
( o+ j% l/ b* h# }/ u# p3 u - )4 i B, w B6 p, j$ n3 _$ _
- (setq i (1+ i))! }" J4 p6 `5 R
- )" {, \) E' `# ~. }9 Q/ o( B$ R
- )
! f! t- X# X* s$ b7 `( _ - ;
; d7 v+ }2 H. m$ C! }1 J - ; Select Entity and terminate command
; a, r' z+ U5 i - ;4 c0 G$ \/ p7 [! ~. I
- (if commandIssued2 X4 v, S; G2 q
- (command "" dime "")
' i% |" U w# k0 C. F7 ?3 \0 S - )2 z* C/ I4 O6 ~
- )
) O% l: U: V2 q1 p' R# c) H8 Q3 y
?1 p. E* ]! K3 b$ B" b# j6 C- ;;6 L9 i- N7 p) {; f
- ;; Get style name currently selected style name.
$ |' Q- I* |8 v6 o: h" d - ;;+ E; ^/ u" }, g
# K; o- K; X* i6 f- (defun ddimen_style (/ dimsty)
% f, u, B6 X* G; I3 C$ z - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
B1 I/ R: Z' R- ]* A5 O; q - dimlist (ddimen_getdimvars dimsty)6 h8 g& t: v( u l" m/ v
- ): R% Z) A0 g/ a) R+ j' j
- dimsty7 O2 E& S5 N3 p
- )
* I, Q/ c9 H/ K5 ] - 4 ^4 z$ C8 x n$ }% I
- ;;* e6 u# ~( }; Y$ F6 Q; N
- ;; Set dimvars
+ V g7 l3 a. Q" c; A* e/ F - ;;& W/ p! C8 H ]
- (defun ddimen_setvars (dimsvcurset / dv i)
! [, s% ~/ I" [( P9 Z - (setq dv (cdr (nth 1 dimsvcurset)))
`( _+ A, U4 s% K1 P& s. [8 c - (command "_.dimstyle" "" dv)6 ~; e# I/ o5 a$ y& ?$ z
- (setq i 3)) g7 Z g6 Z+ t4 G
- (while (setq dv (nth i dimsvcurset))% D$ O! [+ U9 v/ o+ m7 ^9 ~
- (progn
8 |) M2 V1 |8 f) M8 Y# \, r1 f - (setvar (car dv) (cdr dv))
, H ?( Z8 L0 G9 R5 E - (setq i (1+ i))3 T/ k% p: `; Y1 X% O
- )# e! b' B K4 t1 W+ N, f
- )
; x* |7 m& E! i% ?* E - )
% ~3 U; q5 x2 J5 @7 S - ;;1 H+ _: R2 s# v: o6 o' u
- ;; End-of-dimension
]' A3 e$ j3 D9 m O) ^ - ;; ==================4 C, j: N, w6 u1 g3 g
7 } o- b& H9 T. h! I- ;;
0 \4 T4 I' z0 F6 j. m7 ~( w - ;; Sub-dialogues for properties. Common to all object dialogues: L! I% J! }5 S' c0 N. f
- ;;
7 e6 Q! h5 X9 } f; v - ;; This function pops a dialogue box consisting of a list box,image tile, and; N, L" k8 G# k
- ;; edit box to allow the user to select or type a color number. It returns/ `; @; o: w( d# ]+ R6 l3 ?* X
- ;; the color number selected.# U/ E# K/ V4 F) k$ F- W
- (defun getcolor (/ old-idx colorno cname lay_clr)
" @6 x; O' R/ s" G5 l1 K - (if (= (get_tile "error") "")* }7 I. f4 |: H. C5 X
- (progn" O- U% R6 ~. C6 }
- ;; Get the color associated with this object's layer, for use
( W$ Z) q* g' A" I! f - ;; in the color swatch if the user selects color BYLAYER.
; K1 w& l3 l: ?/ W - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))6 |7 M; L0 X& g) j, B$ [- f
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))# [4 ^6 N/ ]& T
- (progn
3 N* t9 n9 x& z - (setq ecolor temp_color)" ~' W2 x3 A: I5 \
- (setcolor)( e( w$ M. k/ ~
- )5 [# \7 U( S Q$ q% a! p8 D% Z) P$ k
- (setq testcolor temp_color)7 M9 e( G1 |) K- `& R- @/ ]- A
- )
) K& A3 |1 \1 ~' a1 X% p9 z - )' P" ^8 F. M8 X' F2 U
- )
2 h5 H) d' ?3 D8 y: M& L% N - ecolor5 X2 z8 e) w: m( n
- )
6 g* W: F& @, R, H1 t$ [ - ;;
: R+ m2 Q7 f% ?, l - ;; Function to set the color tiles.
- i+ Y# f2 A+ u. ^ - (defun setcolor()
$ v1 K3 m# P2 a7 y O - (cond
* k7 |; D+ h* H2 J( p0 j9 N/ _ - ((= 0 ecolor)
5 S* ~( t3 w; k. G+ b! K: p; } - (set_tile "t_color" "BYBLOCK") e2 u2 Z' j) K0 J! c
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white5 f" h" M# \* E% q$ `( h
- )
& s! C+ j# X; W - ((= 1 ecolor)) ]# O1 s: x$ u& X1 C: ]
- (set_tile "t_color" "1 red")! a7 n5 v% s, Q
- (col_tile "show_image" 1 nil) [$ Q; y4 f' x
- )
! ]8 e' t% l3 l: E j - ((= 2 ecolor)
+ C& ]3 y- E; i* E4 C: q - (set_tile "t_color" "2 yellow")
% m& n0 \0 N1 h1 n5 ] - (col_tile "show_image" 2 nil)
8 S& N* T8 ?' K) S - )* C7 [% i# S% I5 U
- ((= 3 ecolor)0 Z4 S, U5 {6 N1 E9 [$ R6 C6 H# `3 j
- (set_tile "t_color" "3 green")( H- k- {% u* ~9 J
- (col_tile "show_image" 3 nil)
% i$ p& v0 c ^- x9 O- g% o - )3 P* {# a- W3 x
- ((= 4 ecolor)
7 x! S5 W7 `+ w5 Q l7 B5 t - (set_tile "t_color" "4 cyan"), j! t$ ~+ U% J( q; C3 L6 R% o
- (col_tile "show_image" 4 nil)0 H" p7 X' K ]% ]( u0 w
- )1 P* A7 C7 P! {) _ n/ h: K
- ((= 5 ecolor)
6 k/ ]. ^& u' A! X - (set_tile "t_color" "5 blue")/ {* u8 Z$ b% ~1 L# O' c9 g
- (col_tile "show_image" 5 nil)8 ~" Z# N" M, e7 ~, N/ e
- )6 R/ U; w# s# i
- ((= 6 ecolor)
" w2 T) n' |2 f, O4 ~' R+ M - (set_tile "t_color" "6 magenta")
5 I @8 X. V3 ?& O* l( Q - (col_tile "show_image" 6 nil)' ]/ a1 W0 K( m" q
- )9 u7 F* R& c" R0 X
- ((= 7 ecolor)
+ J# D2 Y# k3 v7 V+ t4 H j6 | - (set_tile "t_color" "7 white"). E7 V U: z; Y! ~+ i" b
- (col_tile "show_image" 7 nil)# `8 M$ Q. n) }# o K# T
- )* l* c. M1 N4 C8 A
- ((= 256 ecolor)5 b5 q7 \; V1 k1 A+ u' ~& k0 ^
- (set_tile "t_color" "BYLAYER")) j! R( x1 J/ c: u3 E) k+ e
- (col_tile "show_image" (bylayer_col) nil)
/ n# s3 D( O2 w - )/ I3 P, i1 r# P0 R
- (T
2 x, ?1 \5 ^/ ~4 Y6 r" a$ N( z - (set_tile "t_color" (itoa ecolor))
" ], L8 y1 a5 t3 s% P - (col_tile "show_image" ecolor nil)
+ Z2 {1 Z! Y. Z! a5 q/ f0 T" I, M6 D - )
' u# N6 y# c1 `& M) G$ Y - )/ ~0 Z( P) `+ l( Y5 z% ?! Z
- ); N" ~9 i9 G3 X& h
- ;;3 M$ w) y6 W6 j6 S9 s
- ;; This function pops a dialogue box consisting of a list box, image tile, and: j0 S0 B8 ]7 [) M
- ;; edit box to allow the user to select or type a linetype. It returns the
( e' l' t9 ^1 z1 g* k- O$ c - ;; linetype selected.
$ m3 t6 P* @6 w* n7 b - ;;/ C8 ?+ ?& M) c
- (defun getltype (/ old-idx ltname)9 W* _! b$ d, Z& ?; u" G& W
- (if (not lt-idx)2 \, E3 D8 q- s% T7 }% F
- (progn
" D2 m7 k. S. a% u) ^ - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
% c X" i) b1 x0 r* I - (cond6 D) z9 I0 U2 p# u {; l$ G
- ((= eltype "BYLAYER")
$ n" s. z* [$ n1 i8 p - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
. n, M3 d7 ~' t/ V/ m - ((= eltype "BYBLOCK")
( e- b! H. n! U* G' a7 \) P( p [ - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
; Z+ u6 B* p2 n - (T (setq lt-idx (getindex eltype ltnmlst)))
% h( I( Z% D+ Q8 i - )5 W1 d4 z: ?1 d1 n, v" V
- ), P2 w$ b U) Q# L, `9 o& t
- )1 o) A" p0 x2 D( j% e+ [( c
+ D2 { Z+ t+ Z, H8 _- (if (= (get_tile "error") "")# |/ u/ \& D0 ?9 k1 d+ V
- (progn
' c1 ?, g' c2 N1 G7 R! p# u! ? - (if (not (new_dialog "setltype" dcl_id)) (exit))
7 p9 d0 T% t6 U! {! `/ S3 e - (start_list "list_lt")% o d; y' z" `5 O& i$ ?8 x
- (mapcar 'add_list ltnmlst) ; initialize list box
, i$ m a8 e* W% i, G - (end_list)
) a: y; z4 ~# n, d5 ?9 | - (setq old-idx lt-idx)5 {4 h2 l7 J; U, Q8 F- w# q% S: t
- (ltlist_act (itoa lt-idx))
- b6 D8 `* o. |. `! N- \6 p1 [
% P$ o# M0 ]. f5 D- (action_tile "list_lt" "(ltlist_act $value)")) [- c2 i4 e t* D: m4 o
- (action_tile "edit_lt" "(ltedit_act $value)")
# x% q! z. _1 @7 R0 Q I. j - (action_tile "accept" "(test_ok)")
) G3 ~" ]7 X* O5 B1 I) l - (action_tile "cancel" "(reset_lt)")
) V6 ^. \* @" C6 O2 L+ i) x
* y8 W9 W- g% Q9 y4 y/ w! @- (if (= (start_dialog) 1) ; User pressed OK
$ H' ~1 Z, u; j% H2 A5 Q7 Y - (cond9 T: f; }: m6 X' q4 S
- ((= lt-idx 0)
' N5 M3 C( {6 w, @. O5 K1 x - (set_tile "t_ltype" (bylayer_lt))7 _. j3 J/ U4 P& |. G
- "BYLAYER"
2 v0 W& W; F: C) |4 r I - ) v# i) c3 S% t
- ((= lt-idx 1)
- [* q. ]6 a' k* y6 Q - (set_tile "t_ltype" "BYBLOCK")
% [- n4 Y4 `2 ` - "BYBLOCK"
+ q8 V/ I" {. e - )# h7 f/ \; \2 K% }
- (T (set_tile "t_ltype" ltname) ltname)
2 M& x! ?7 J, i, I - )0 s6 M0 [4 G* a; ? i% G
- eltype
6 E/ L. s0 n# t$ P c - )
. @$ w2 B9 l) N8 C - ): r; D8 n4 j; q
- eltype# \' y! B! |4 _3 c: ~' w) e L
- )
1 S5 Z1 c; u- M, A8 `: p - )
E* [" q, z& F/ U& ?1 R' F W& T - ;;3 I) f6 i/ r, e) _# Q
- ;; Edit box entries end up here4 u5 B$ X! w* f: ^; m: [+ k
- (defun ltedit_act (ltvalue)/ A1 X; }+ s5 G9 I% ~. [
- (setq ltvalue (xstrcase ltvalue))/ P! \1 Z1 k9 _0 O: |
- (if (or (= ltvalue "BYLAYER")
/ A6 E$ e, S( h' c1 G - (= ltvalue "BY LAYER")); J& ]0 ?8 D6 `( t: i# E- p. Z% a6 r: j
- (setq ltvalue "BYLAYER")
( w1 n* u8 X/ s& l6 N. Q - )0 a) B* |: k! S
- (if (or (= ltvalue "BYBLOCK")7 E: H& j, a! p. I: W
- (= ltvalue "BY BLOCK"))- b B8 C, L( m% l( G5 M3 [+ `+ `
- (setq ltvalue "BYBLOCK")
4 m: j0 M5 J; y; P/ e' q6 i - )* L6 r8 P$ `+ l; j, |
- (if (setq lt-idx (getindex ltvalue ltnmlst))
& Y4 e8 w9 q d$ d W) J* J - (progn
1 J: k5 B5 H" B0 G* g$ ~ - (set_tile "error" "")
2 @, z) N2 b* }6 h - (ltlist_act (itoa lt-idx))
- K0 U4 f! R( N* t8 S( Y' J! h: _ - )2 {6 P1 [( H- [* R2 R
- (progn( z4 [- l8 e( F& N% G2 k
- (set_tile "error" "Invalid linetype.")7 ^/ K A) t% ]8 d# G/ @; a5 a
- (setq lt-idx old-idx)
9 g2 O7 G& H6 w, c" g - ;; (mode_tile "edit_lt" 2)/ {0 X* Y$ V0 y6 H% U0 n# X2 ?7 J
- ;; (mode_tile "edit_lt" 3), z- V0 H1 T8 w2 E' x) f% c: D
- )
8 c1 ]7 y4 N: c; D; A" T' _ U: \ - )
# t# i D$ Y* L0 g$ o- W+ Z - )
" N. }7 A* c+ \% t# G# O! d$ T( t2 E: M - ;;+ m# @5 \0 A! z/ R. ^
- ;; List selections end up here. Update the list box, edit box, and color
% |1 {: @! Y: z- ]5 W2 ] - ;; tile.
3 r: s# w0 N- z' H8 K8 H. j - ;;* x4 D% M6 n# A! s
- (defun ltlist_act (index / dashdata): ~7 T& c- B5 C y4 |% q* W* S( s
- (set_tile "error" "")0 W- n( c, @9 S8 s- t k' O2 i
- (setq lt-idx (atoi index))
. ^5 ~: e7 L0 b {* c4 O. ] - (setq ltname (nth lt-idx ltnmlst))* ]) L( m8 a- ^: q/ t. `8 p- M
- (setq dashdata (nth lt-idx mdashlist))& Y4 }. k# ?8 W
- (col_tile "show_image" 0 dashdata)' Z& t0 _4 A& G( f
- (set_tile "list_lt" (itoa lt-idx))
; C3 O; p: U( s2 W# b+ V- D - (set_tile "edit_lt" ltname)7 X* Y) n$ w3 m$ S; W
- )' Z6 L8 M3 X6 p- p% |7 u+ }
- ;;* q$ b! k" K* v
- ;; Reset to original linetype when cancel it selected. H `- z# ^' w; v1 L2 ?: {( Y# z
- ;;
% m* F. N. S# c! Q) c - (defun reset_lt ()! e+ y+ S! S7 U o9 Y+ `
- (setq lt-idx old-idx)
% `0 U& z; e- O$ i - (done_dialog 0)
) [4 f# f6 u _3 P L - )
& H; `( k" d8 _& J6 q" R* F [ - ;;6 f' y9 o8 C5 f( h, B- M' Z
- ;; This function pops a dialogue box consisting of a list box,image tile, and# P# o7 F N9 n6 N) Y [! k
- ;; edit box to allow the user to select or type a layer name. It returns the
# E, }. h5 D. I4 q3 F* x - ;; layer name selected. It also has a button to find the status (On, Off,5 V) d8 i) Y% H3 [' `
- ;; Frozen, etc.) of any layer selected.6 M- g# h+ ~: f! p( Q. R: P! h
- ;;% \: V3 i- z4 @5 _* P; T+ f
- (defun getlayer (/ old-idx layname on off frozth linetype)
$ j1 R) Y, q5 L9 {8 U1 X# C% f - ;; Create layer list the first time the layer$ w" a' [" |& r4 E6 I2 A
- ;; dialogue is called.5 ~% x" g; C- s( e2 P
- (if (not lay-idx)
2 e3 S ] ?0 Y0 J1 Y - (progn
a7 l* r1 V8 I2 \! Y - (make_lay_lists)+ X% E4 K/ |0 K& {: X7 s
- (setq lay-idx (getindex elayer laynmlst))
3 {; h [# `' J" b% \ - )0 L2 g2 T7 s0 a" k2 y% E/ H8 m8 [
- )
3 @2 c9 j- v9 U }' q5 \1 D
* c, C( b! y! P- (if (= (get_tile "error") "") s6 O6 p' D$ |9 q/ c
- (progn9 M- {0 X. x; Y3 K
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
5 U' @ t! G; Q* v, B1 y - (set_tile "cur_layer" (getvar "clayer"))& G Z& c3 {" I
- (start_list "list_lay")
4 e# r: g) i2 `% g% C1 D - (mapcar 'add_list laynmlst) ; initialize list box
# P9 h+ V, _2 U8 ] - (end_list)
2 y" ]+ E. c$ R - (setq old-idx lay-idx), t6 e2 S7 N5 U9 O& l( x
- (laylist_act (itoa lay-idx))
, `7 K- r) o: b1 t4 k7 @ - (action_tile "list_lay" "(laylist_act $value)")' v8 e: q( J5 E
- (action_tile "edit_lay" "(layedit_act $value)")' [, M7 M- K( ]" A: i/ N8 v1 W5 t- o
- (action_tile "accept" "(test_ok)")
3 u% H& H0 x6 V+ R - (action_tile "cancel" "(reset_lay)")" V O! K `6 q! U# H* H5 ?/ U
- (if (= (start_dialog) 1) ; User pressed OK
# t8 [/ }4 f5 N2 x. o - (progn
8 a# Z6 |+ K9 x' w. a) M, a - (set_tile "t_layer" layname)1 [6 j2 h1 Z# N! G) j' h* V" C% `# j- g
- (setq elayer layname) e3 N! V* x, K% T7 S* D
- ;; If layer equals bylayer reset color tile
" o# V8 i( e D4 H* ~ - (if (= ecolor 256)! Y5 C" \5 `; J9 M+ h5 R* G
- (col_tile "show_image" (bylayer_col) nil)" g9 j: x; v4 _( b, \
- )+ _2 d3 Y* g+ y+ i
- layname3 E+ H; M3 x* N# c# m) m9 @
- )
9 m* d3 y5 t/ q) j& a. t% u - elayer
w7 D) g2 t4 Y - )
0 b" M( X( `/ r9 w" t - )
3 m& V$ l$ u* x2 l4 f - elayer
0 F6 P. ]# Z+ [- [+ {2 a. \ - )
8 g) [: V' ]8 t; r) f - )3 `. ~$ N, J3 Y% ?; M
- ;;
% s I% E0 n. V* K) H, m6 [ - ;; Edit box selections end up here. Convert layer entry to upper case. If
% v+ a) b9 _" B5 B; } - ;; layer name is valid, clear error string, call (laylist_act) function.
4 L; V( R4 N9 d" ]' ?- C& S; d - ;; Else print error message./ k6 _7 O1 p& l6 q
- ;;
$ E- R/ }9 W" I% c5 y" C3 I - (defun layedit_act (layvalue)
: h0 T% V6 W6 o - (setq layvalue (xstrcase layvalue))
( x% t. W$ ]$ i5 Y' {* V8 m$ i - (if (setq lay-idx (getindex layvalue laynmlst))
' |- \# H1 e: o2 s c" K& n - (progn/ R7 ?* d: J, \$ m- m. R
- (set_tile "error" "")
, a- J, D; `+ b0 c$ F - (laylist_act (itoa lay-idx))
9 L. f2 W6 q/ o' {, H0 }* { - )
; @0 u/ j3 }, A - (progn( s. s5 P+ b) f) D! ~
- (set_tile "error" "Invalid layer name.")8 E7 l! }; i; Z6 ~# p ?1 Y
- ;; (mode_tile "edit_lay" 2)
9 j' C) k7 k' j: y# V - ;; (mode_tile "edit_lay" 3); e4 `/ c/ q9 \( r3 h
- (setq lay-idx old-idx)% M$ v8 s: `8 {; r& g6 O
- )
3 e. r+ L0 [: Q - )
! Z3 |( [/ ? D4 ? - )
) H: ?, e! @" K - ;;! m$ d; x+ C6 U% O4 O, x
- ;; List entry selections end up here.
1 y2 t/ q. @6 Z - ;;3 e5 W) M# m% m8 y4 |- w+ p
- (defun laylist_act (index / layinfo color dashdata)0 L. u, Z: n4 {& H& y3 H1 A
- ;; Update the list box, edit box, and color tile.
7 L( } L( o6 s9 |9 k. b& L - (set_tile "error" ""): ?- M( v- n6 p0 ^* U( O/ N
- (setq lay-idx (atoi index))3 _" [- _# \! U' q |$ ?* k
- (setq layname (nth lay-idx laynmlst))* ~6 v6 ^- G9 g7 i/ U$ ]
- (setq layinfo (tblsearch "layer" layname))
! ]- B- U t* h5 \; } - (setq color (cdr (assoc 62 layinfo)))
+ t& o g2 g G. x- e- z - (setq color (abs color))
" u8 F2 |# Z; p9 i' | - (setq colname (colorname color))
+ l2 v- b3 c- `- p; X) @5 t/ p" ` - (set_tile "list_lay" (itoa lay-idx))
# B: I/ a* a) ?6 c - (set_tile "edit_lay" layname)
' T5 A2 O( w% R0 x - )0 R0 k: j5 z+ L) s! B, ^5 i
- ;;
/ v, _4 m8 ]) K2 U6 q6 y6 Y7 q3 o - ;; Reset to original layer when cancel is selected.' T6 F9 N' Z0 z- V
- ;;
4 `: Z8 ?! U! }0 t6 J: T - (defun reset_lay ()1 `5 J* O* ~3 H( B9 X' s
- (setq lay-idx old-idx)
! Y* f/ \5 Q U' u - (done_dialog 0)
, v, A9 f! T9 x - )
/ G" ^3 |7 s5 x0 ^2 ^. t' [ - ;;
9 Y: X0 k6 m- w+ w2 G - ;; Checks validity of thickness from edit box.$ G& b# u2 d, c! p
- (defun getthickness (value)* |% P6 B* f O9 H/ x, C7 o
- (setq ethickness (verify_d "eb_thickness" value ethickness))9 V$ Y6 j l* ^7 Q8 {$ p5 k
- )
+ X4 y: e6 c5 U; r { - ;;
) v, ^+ |' c! U( q' b1 X7 }6 G - ;; Copy of (getthickness) for ltscale. If more, make this function
! w; t6 I/ ^- G* D& T( l - ;; generic.0 P* y% o& I) z. x# X8 N
- (defun getltscale (value)% Q8 J$ p1 m5 b: S0 P* E
- (setq eltscale (verify_d "eb_ltscale" value eltscale))
. ^8 v; T- w9 K) z - )1 b3 t" k/ F& f; l
- ;;6 F3 r, @- N7 |8 A- I
- ;; This function makes a list called laynmlst which consists of all the layer* q' s! d* X8 ?' D8 a
- ;; names in the drawing. It also creates a list called longlist which
% g1 c* L4 X- S2 v7 @% L. M - ;; consists of strings which contain the layer name, color, linetype, etc./ D8 `+ [9 F6 A2 t$ P6 r
- ;; Longlist is later mapped into the layer listbox. Both are ordered the* u X7 T6 a) V6 o7 a6 j9 J
- ;; same.( K( v' L, }6 o: i! u, l) Y
- ;;
; `3 J# t/ {. E% p - (defun make_lay_lists (/ layname sortlist name templist layer_number)1 Y4 i. r: v, F7 r7 x9 O' f! V
- (setq sortlist nil)0 J' K; S% [: J' e1 `
- (setq templist (tblnext "LAYER" T))- m2 K' T. w; B
- (setq layer_number 1)- @+ d* o2 ?0 G) {( R; A
- (while templist
8 u t) }. i2 j; p" p, j' v - ;; No xref dependent layers, please.% D# x* p: H# G" ?' V S1 h( ]
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)4 {0 f- g% M6 [
- (progn
& e! V( }. P* o - (setq name (cdr (assoc 2 templist)))
; ?$ F4 d7 W" a, d - (setq sortlist (cons name sortlist))
. {6 A$ M$ l h! `( i - )
6 e' V; A% C$ Q - )& c! a- {) N* N
- ; Get the next layer. k) j+ X6 j; l( h b. t% V& o
- (setq templist (tblnext "LAYER"))
" E2 e! O. W: l& Y/ k! Y4 W - ;; Not dead message...
$ \5 A8 ]& P( r1 R. n - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))3 I$ g3 t0 w b) c. m* W" d
- (set_tile "error" (strcat "Collecting..." (itoa layer_number))); k$ q. C. O+ a
- )
) i' J9 C" R( R7 Z6 |; X) ~* G - (setq layer_number (1+ layer_number))
9 O) g u! Y; J# W& }/ T! O - )% Z* L* ?) T6 f2 C* F
- (set_tile "error" "")% `8 E5 I1 k" J8 Q! u+ g
- (if (>= (getvar "maxsort") (length sortlist))
% t# k" U8 m& u2 E9 [ - (progn* z! Z8 `9 X. |" K G
- (if (> layer_number 50)
i1 b: N8 s, z6 c( G. A - (set_tile "error" "Sorting...")
/ ]3 @% R+ m3 W3 _* O9 ? - )* U$ T! F; a( V# O3 A# @
- (setq sortlist (acad_strlsort sortlist))9 l) F- f/ q5 T4 W: M
- )/ Z2 r6 P% t+ o9 y
- (setq sortlist (reverse sortlist))
) d1 T3 I6 T* u& ?& w4 B4 F$ m3 Y% c - )% {. h# T/ I& `/ Z& h8 q, k) [% E$ O
- (set_tile "error" "")
3 p. R; F! S8 m4 q- t - (setq laynmlst sortlist) r$ a' ^& ~" v' T: J
- )
, n6 f; I' x. V. }% l5 O - ;;
. Q; s0 q, _+ ^9 O. p - ;; This function makes 2 list - ltnmlst & mdashlist.
8 K4 r X* T2 U! k8 F& e5 g - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist! l+ y' ], q- `9 ~5 C/ s
- ;; is list consisting of lists which define the linetype pattern - numbers
4 H" A, ]" H, ^$ m5 u - ;; that indicate dots, dashes, and spaces taken from group code 49. The list
5 g+ k, W, ]4 ?( S& x- ?5 D - ;; corresponds to the order of names in ltnmlst.8 S9 T! [% F" `4 ?) H! W
- ;;- j! Y7 \# S( ~- P n
- (defun make_lt_lists (/ ltlist ltname)& L3 H5 l, b0 P& ^2 Z7 O
- (setq mdashlist nil)4 u7 w3 J% z) J, w0 P# _- @# m
- (setq sortlist nil)
. O# f7 P( C8 e3 g* D$ i0 Q - (setq ltype_number 1)$ }# A1 y4 M% {8 N4 H5 D# F
- (setq ltlist (tblnext "LTYPE" T))
* v% ^1 k$ Z" b1 j0 ^" p N - ;;(setq ltname (cdr (assoc 2 ltlist)))
9 E5 O2 |0 u. l" K$ m. l& N. Z - ;;(setq ltnmlst (list ltname))
( f; l6 h, P1 Q0 v8 F - (while ltlist
. ]# C$ J+ I& j; ^. m) q; b - ;; No xref dependent linetypes, please.
; l2 v. ?4 X5 O; T - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
5 V5 c& I9 \ Z( ~1 ^ - (progn
, y- ]/ q1 P; `! S& w- B - (setq ltname (cdr (assoc 2 ltlist)))2 o! N7 U6 g% q1 U
- (setq sortlist (cons ltname sortlist)). a6 y, o1 q1 ?
- )
2 N7 _# P$ g" b - )2 `8 N0 Q3 @0 G9 v( q
- ;; Get the next linetype.
) D0 f! }9 s! f% N1 x+ r5 Z+ _7 k$ |5 ^ - (setq ltlist (tblnext "LTYPE"))2 h3 L; X, S# y" [
( f. V* P# c) _2 X) l' m1 N- ;; Not dead message...
. o* [$ d7 ]) ^4 F @ - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
/ R, p3 s5 f! i6 B" \: l6 ?1 H - (set_tile "error" (strcat "Collecting..." (itoa ltype_number))). {3 p9 G6 q; w# p6 l3 m
- )) |4 y# p) b2 M% e4 U+ ]
- (setq ltype_number (1+ ltype_number))/ k, S( `+ x3 j/ \* j6 c
- 6 m q: M8 d! ]( N7 B
- )7 {4 [' v8 u0 X( j0 n# ]
- 3 D/ ?1 w: E, V! L) `. U# B
- ;; Remove Collecting message.
/ t" W) g O. J- L& o6 u2 R - (set_tile "error" "")
, ]. r V# B& b
( x5 z3 E! d! X0 B4 x s( F- ;; Sort based on maxsort.7 X+ v4 K6 k$ ]! _0 X
- (if (>= (getvar "maxsort") (length sortlist))& Z" D9 u- s5 w# x
- (progn
0 _4 X+ i4 e% D; V6 c: D7 ^) @ - (if (> ltype_number 50)6 x4 N9 ~* c" V, R
- (set_tile "error" "Sorting..."); U1 c/ @( H( L2 C
- )
% T" i- e% F6 P; L3 c5 @* \ - (setq sortlist (acad_strlsort sortlist)), y3 ]: C9 [2 F, h- N1 M" J) h
- ); z0 v1 W z' H) ~1 E
- (setq sortlist (reverse sortlist))
3 \2 ~$ n: C( B% c8 z5 c9 w" C - )
9 k0 g. R3 H6 z9 ?5 I2 _$ j - (set_tile "error" "")4 f: q. {; q' u# |* s* C: x
- (setq ltnmlst sortlist)
4 [- h/ [2 j% G$ V7 ] - 4 i7 y' O4 W- \# _1 P4 m
- (foreach ltname ltnmlst
1 L7 s: g- C4 L3 F$ o, { - (setq ltlist (tblsearch "LTYPE" ltname))- K) o+ m5 }! P% z3 E; w
- (if (= ltname "CONTINUOUS")
/ m3 }/ ~ ?1 V2 X J6 L* f - (setq mdashlist (append mdashlist (list "CONT")))
0 x2 x0 E: @; v& C( @( l6 L - (setq mdashlist+ V& [( d( m6 y- I9 r' Y* L' n5 }
- (append mdashlist (list (add_mdash ltlist)))
6 Q6 O- ]5 H; b0 k - )
8 a5 D9 z2 [; q$ \" b( b& m - )
- N, Q6 M: A0 o/ S6 D" @4 Z - ); \% Y; ]' B, d" y
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
. a. {4 W/ c0 q& G - (setq mdashlist (cons nil mdashlist))$ Z3 P6 h4 x# ?
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
( q8 {7 Z7 _3 X. {, N - (setq mdashlist (cons nil mdashlist))5 I0 A) Q. w0 ~0 E2 a$ t& H8 R+ z
- )* N F; ~% O5 }! E7 b
- ;;. a% {9 B# w: R* q! p
- ;; Get all the group code 49 values for a linetype and put them in a list b0 i0 h) ~) Z6 r# o3 E
- ;; (pen-up, pen-down info).6 F ^; R: Z3 Z# y
- ;;
" u% M: k. w& w3 k# y" r - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
& s5 O3 h* P5 K. V - (setq dashlist nil)4 p6 f: M* F; r" Q+ A
- (while (setq assoclist (car ltlist1))% Z( d' b" N; i/ M
- (if (= (car assoclist) 49)
+ n* ^7 c$ _, K9 O - (progn
$ I7 [2 b% w. j$ V8 l - (setq dashsize (cdr assoclist))
) e$ Z: W9 u; ], f7 W - (setq dashlist (cons dashsize dashlist))
- {+ U1 W' P/ O3 I4 r - )# `7 W: E& Z) i* i$ O9 C
- )
& x0 I- T2 U# C; j - (setq ltlist1 (cdr ltlist1))
' L1 o/ o3 d( n+ F1 F/ z( s7 Y - )* h0 Y: L- \0 ]0 R+ u; `% P5 O6 h
- (setq dashlist (reverse dashlist))& n% G8 q8 F z( d" p
- )8 |1 j) \, M: F2 @) @& I
- ;;$ g: @+ G1 b2 l1 Z5 _$ y' Y& W' g
- ;; Color a tile, draw linetype, and draw a border around it3 t( N& d6 h" M/ B8 w0 _
- ;;# S2 e7 v7 {) E
- (defun col_tile (tile color patlist / x y)
, y0 Z; z K$ Y& ?( o b+ s5 i - (setq x (dimx_tile tile))
3 b8 A/ s/ c4 `0 t - (setq y (dimy_tile tile))' r& c/ W. t: X$ V% \! F
- (start_image tile)
7 m+ X6 P0 P6 g% r; a - (fill_image 0 0 x y color), F" Y2 g# @) O! [# x1 C
- (if (= color 7)
0 H$ H$ G0 x% `& ` - (progn/ i/ W" [9 W! H7 ~
- (if patlist (drawpattern x (/ y 2) patlist 0))3 i6 [7 P" l) E- M! O# J B
- (tile_rect 0 0 x y 0)
" t# x' H) [! }% p0 |. S( W' M - )
, a2 N2 }; q6 O" b - (progn* _4 G% D0 N7 E* v* e8 c
- (if patlist (drawpattern x (/ y 2) patlist 7))$ r" v4 q' ^4 p8 t) w$ y: @
- (tile_rect 0 0 x y 7)
. X' F/ `8 N: L2 K3 t1 J8 ~, W/ }) V - )) q6 |8 A" U9 j+ N( E2 x5 m/ p: ]
- )% u0 A, i/ r# X" ~: |9 S8 Q
- (end_image)8 {2 E$ h6 f6 Y# K3 J) M" _* r |% o
- )
3 r/ L8 \. W, B9 n( R - ;;9 E- o$ `( G' M, J: n7 I- d
- ;; Draw a border around a tile
9 c7 Y& t) E" u - ;;
8 B% d) N, n) A - (defun tile_rect (x1 y1 x2 y2 color)
h9 x8 E2 D, C( f; ? - (setq x2 (- x2 1))6 m6 g0 E( x; V. g/ V a5 M! ~
- (setq y2 (- y2 1))+ V4 ~: Z+ o& y9 o! p/ ?
- (vector_image x1 y1 x2 y1 color)
' O# X9 q+ a; T5 `! {% Y - (vector_image x2 y1 x2 y2 color)3 ~7 Q+ Q P9 R$ _& C" w( ?
- (vector_image x2 y2 x1 y2 color)
/ V4 L% m: O. q- z4 { - (vector_image x1 y2 x1 y1 color)( N! I6 J/ H( _4 d
- ), T# s7 }5 f- {0 o$ o: a/ m
- ;;
& n7 N( X i0 A7 _; @# \ - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image% b% E& a' C: [. [0 G4 i5 f
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
; O3 K$ j# V+ w/ @9 m$ l - ;; list of numbers that define the linetype, and color is the color of the
; D: ~6 \; U/ X9 }+ L: ?0 N* n0 U# ~ - ;; tile.! Z I0 Y! J4 Z* A2 i* A
- ;;8 \0 t. Z6 p- v# S; I
- (defun drawpattern (boxlength y2 pattern color / x1 x20 e" c& I; a" a ]5 E
- patlist dash)6 y! S& E2 a4 t/ e; c
- (setq x1 0 x2 0); G& @/ t( W1 c0 y' @
- (setq patlist pattern)
6 T5 h% k3 {8 y. H4 e - (setq fx 30)6 v) B6 b1 \! j' T" a; \
- (if (= patlist "CONT")
0 ^" ?- f4 f# E+ _7 l7 r5 Y - (progn (setq dash boxlength)
5 O( A2 \4 E! J2 u( m - (vi)
7 C, a0 q8 M6 H# p/ W" f - (setq x1 boxlength)
8 D* h& w3 y% G& r3 c9 Z - )
0 h) d% @5 l' J5 ~3 k" F - (foreach dash patlist
) W# r- Q6 v2 T* @' X# r7 h - (if (> (abs dash) 2.5). a8 o; @( r C
- (setq fx 2)
1 |4 z( a1 o6 z# m F! \8 s - )
3 v G+ l6 A$ i8 W, N% A( m - )
& w2 h' h$ G/ w5 p% I0 \ z' L - )/ |3 e. f# y) h# A7 P! A2 d
- (while (< x1 boxlength)
2 T& A H$ o O$ G3 P( ^4 v - (if (setq dash (car patlist))
+ r; B2 S/ T/ b) D& I6 p, H+ p - (progn. b7 v+ ^! l; {3 }5 e- L4 A
- (setq dash (fix (* fx dash)))
; _! L* G7 f1 f - (cond
% m8 N8 X9 c0 {- y) T, L! y/ E - ((= dash 0) (setq dash 1) (vi)) Z$ E& x0 [7 n
- ((> dash 0) (vi)). Y( `: r- e- @- I/ Y9 b
- (T4 h# r* ?: M$ E, E
- (if (< (abs dash) 2)0 R$ t* L4 [3 Q7 o
- (setq dash 2)
: q/ L( ~) q$ Y5 j# F - )
) c/ v, B- z; Y& w, G - (setq x2 (+ x2 (abs dash)))' I' _6 |% h! d3 w7 N) [/ g
- )
9 c: Z0 p+ u& Z, _$ e F$ e - )
6 g9 N6 J7 x0 R% I# C+ h - (setq patlist (cdr patlist))% L& ?/ d* K+ a" E7 y) ^2 H- d
- (setq x1 x2)
: p: U( N) v5 ]" Z. E: s. A6 m - )7 U- ` R( o) V% O& Q1 v
- (setq patlist pattern)
6 n7 H" n, B$ ` - ) A" E' Z* M& b- L5 F
- )
/ z+ N$ a* m. ]) o) G" \ - )9 Q; V$ f8 l; V: _; }
- ;;5 K( E; j8 T' Q$ S
- ;; Determain state of xclip2 a5 _6 I1 i; f) c1 g ?
- ;; Returns the group 71 value of the spacial filter dictionary.
6 n. t2 U4 w" k( v) i! `. { - ;; If the entity doesn't have a spacial filter dictionary, this2 W, x2 r% v4 V. F6 Y% D/ l9 a9 t
- ;; returns 0. If it does it will return 0 or 1 depending on the
4 V Y( p) C& e2 b - ;; current setting of the state of the clipping visibility., i" r6 C9 \. l6 _ \1 n
- ;;9 k& X( m( E) g! N7 [
- (defun xclipon(elist)( q, M# C7 g- I" G1 v6 u$ C# i2 T
- (setq hasclip T)% }) t# H. r5 `1 i2 X
- (if (/= (assoc 360 elist) nil)
) a* G' r [- r" d! c - (progn3 l) s. i% y/ l0 H- g/ J
- (setq tmp (entget(cdr(assoc 360 elist))))2 K! V9 F* J5 G6 a
- (if (/= nil (assoc 360 tmp))
+ N8 R" P8 \; m( G) @ - (progn
* m$ c& H, J, r; X$ n - (setq tmp (entget(cdr(assoc 360 tmp))))
# T3 d# |2 S- Y% G - (if (/= nil (assoc 360 tmp))0 z9 f5 J* ]" ~: Q. h y' }. i
- (progn
& |- A! C1 c- z! z3 ^ - (setq tmp (entget(cdr(assoc 360 tmp))))
$ _% z l" Z3 F# a - (if (/= nil (assoc 71 tmp)): x- W z! t2 C' s
- (cdr(assoc 71 tmp))
0 d% ]& \) `% I - (progn
w8 z! s! F. G4 {- R - (setq hasclip nil)
5 y# o* u% s: z/ j0 i - (eval 0)& \- \+ d0 D0 ?+ t
- )% F/ p5 I- ~6 p+ a
- )" K/ `$ p |2 L7 J- R; M
- )9 G( [7 o; E" \3 X
- (progn ( \1 q B! y. n6 R( }" H
- (setq hasclip nil)
6 ~. e- f" Q+ r$ V+ `) @2 K2 Z - (eval 0), g; n# j9 h+ ?, v! L1 k
- )
' K5 c8 c$ M! L' r( s5 \) T: ^ - )1 [; O* }" w) s, T3 |( E
- )5 ~) F$ B! ~6 j7 V9 j1 R5 f
- (progn
: L: F8 Y: y8 v0 p s/ M - (setq hasclip nil)* d: W T* V2 R P6 h& U+ ~
- (eval 0)
/ i7 s8 l6 g/ ?, x9 G - )0 L* X; @, v. g2 v+ }& X# h8 u
- )1 v$ G. b4 |8 U: X
- )' E5 T$ F5 c% U
- (progn
7 i& l& h Q+ U, y2 R - (setq hasclip nil)
j o( K1 ]0 l t; L3 z - (eval 0)% a4 S3 s* B$ D3 D9 C O6 h) k1 Q
- )
" u- K+ q9 x( a) E, F - )
: @* `& ^3 [; _3 z2 d2 \: L | - )6 {. V2 U6 M1 P/ a* D V" G3 N( |
- ;;6 Q& n: V7 |) @& D
- ;; Draw a dash or dot in image tile
: o0 I; D5 g* ^! p' @* t - ;;) Z9 l& @; t o6 ]
- (defun vi ()
% }- L$ p% E7 S. X% Z9 G$ t - (setq x2 (+ x2 dash))
5 k8 Y7 L# I% [! N# |& Q1 Z c+ e - (vector_image x1 y2 x2 y2 color)) K A! l6 G! \* W( T) A
- )
( m8 P( ?8 p! T: i- y/ m$ A - ;;5 \9 B: U8 T! t: w: j9 w R
- ;; If an item is a member of the list, then return its index number, else
& X1 K& b ?: M. Q% w - ;; return nil.
/ I, k3 o" z9 U7 a3 J" s% Z - ;;3 u' @- V: ?6 L8 C1 a' Z
- (defun getindex (item itemlist / m n)
* S; u. w. l% c8 h: k" l - (setq n (length itemlist))
4 U- s+ _8 j' l+ r4 B7 |1 f - (if (> (setq m (length (member item itemlist))) 0)
. R% J1 ]* o# _# A# J; S; `& E - (- n m)
+ D9 a' g2 X( a - nil; \! i, g& j A/ a
- )
0 |3 t) A+ M6 T5 D4 G# y& Y" d) p - )
' E+ K! \! ~( h - ;;5 c3 Y) C5 E# k$ N8 y: A) o; Z
- ;; This function is called if the linetype is set "BYLAYER". It finds the/ X# x" A- k/ ^4 u O
- ;; ltype of the layer so it can be displayed beside the linetype button.7 } ~# O1 {$ V6 [9 S# j0 P
- ;;0 s! w- y6 \2 O
- (defun bylayer_lt (/ layname layinfo ltype)
S: `$ Y! \/ |' F - (if lay-idx
% o/ X$ i* \" y- ?; G H - (progn. P# \) q, G' u3 Q
- (setq layname (nth lay-idx laynmlst))! @0 \- K6 O; g( g p9 K! I
- (setq layinfo (tblsearch "layer" layname))0 k7 V6 e7 W( Y- C; D) y
- (setq ltype (cdr (assoc 6 layinfo))), a+ w% d) E- P3 x" ?
- "BYLAYER") @+ Y% x' [! t4 ]5 q) ~
- )2 l% K1 Y" y5 V5 ?3 T
- "BYLAYER"
' r0 r; `( _) L0 ~ - )
' m( ]( l1 B) k- Y6 i9 k - )
9 I3 O2 k& p: x6 M( @, K0 a - ;;# M5 a" s6 f/ |" W
- ;; This function is called if the color is set "BYLAYER". It finds the color+ } o* _. q1 `3 l& N7 `) Q
- ;; of the layer so it can be displayed beside the color button.
5 i0 D& ]% ]! r7 z& R0 f - ;;1 S# e5 V" `4 d7 R* `2 `
- (defun bylayer_col (/ layname layinfo color)
; i9 k9 W: H8 A1 b5 m - (setq layinfo (tblsearch "layer" elayer))4 R1 R, V; s& J+ [. _/ B& y3 S5 K
- (setq color (abs (cdr (assoc 62 layinfo))))
" m( J' b, W/ t: P: V" t - )4 {# A3 H. \& \: z' g* F
- ;;$ |* v' g1 v& z3 y; V
- ;; Used to set the color name in layer subdialogue.
6 ]# R. s: H7 c j1 c - ;;# i% P- ~) m& q7 A: K" |
- (defun colorname (colnum / cn)' \/ p# i4 [* y; _
- (setq cn (abs colnum))( }! H( f- L: o! `
- (cond ((= cn 1) "red"), V5 Z3 d& S' }) _& J
- ((= cn 2) "yellow")
' T5 h2 q8 }* S/ S3 w* t - ((= cn 3) "green")+ U9 ?7 Z3 c# N% v2 v& ?' p
- ((= cn 4) "cyan")
5 I2 I! j0 }4 c. U. F+ Y7 X - ((= cn 5) "blue"), z8 o. h# T9 A- l
- ((= cn 6) "magenta")
; Y2 D1 Z( J Y9 r% p% a. X - ((= cn 7) "white")
N! n0 i. a; a! g6 g - (T (itoa cn))) o6 B1 l8 Y6 Y4 ~
- )
- g4 g5 I, T( _8 r% g9 }. { ^+ b - )
8 l9 q2 [) e" q7 d! F7 w- q* x - ;;
' ]7 x) W. v5 r" U. u3 x) L - ;; If their is no error message, then close the dialogue." X7 Q- A0 L4 [
- ;;
S2 n8 J/ r8 k+ O8 Y1 {& ^ - (defun dismiss_dialog (action)
" i2 v. N4 O Y1 w! S - (if (= action 0)3 [3 s$ g8 {+ f1 U
- (done_dialog 0)
7 H; D9 R I0 z0 D& g, g7 ^8 a4 w - (if (= (get_tile "error") ""), i. W* p I$ B. G5 m/ P
- (done_dialog action)
4 j4 ?1 E5 g3 A7 g! ~ - )
8 T/ G' K* D% H! o# d2 u9 w2 A - )
. U& F% Z# `7 W, v - )* p2 {, d5 O6 x! [3 D4 M
# |7 k3 A: l& ?# Q2 n. s) n N- (defun test_ok ()
$ q' C! L4 W7 d, p - (if (= (get_tile "error") "")
+ N4 ]9 p% |% L" J - (done_dialog 1)
' h3 n* ]+ f T- h8 ` - )
2 a4 T' p5 A- y - )
# U! E" E8 Y0 m! P - & T% {% g* M$ j, g
- (defun cancel ()9 p. i2 M" e& G! |! F, g
- (done_dialog 0)
2 j4 b" H1 ?/ L; u - )& a _: ^: N3 o K
7 u5 u" F) [ h- ;;; =======================================================================
" `) Z D8 Q0 v; d5 S6 i - ;;; SETUP layer and linetype lists for application, and initialize all
% I9 |, F# L2 S4 q, P( t9 ] - ;;; program variables.
! Y+ t6 q9 y* N% j; {) a
9 d4 d8 i2 t: i$ ?- (setq elist (entget ename)& t% `5 l" }$ p! K ^; q
- old-elist elist. Z$ a% ^* P8 \1 b* i& Y6 c
- modlist elist$ }5 Q# X, M% L9 ^2 [
- etype (strcase (cdr (assoc 0 elist)))7 |' @* O; y' K2 \; \; c$ p
- ecolor (cdr (assoc 62 elist))
! C* }$ K! ?# @( \: m. N, | - elayer (cdr (assoc 8 elist))
9 w) o( H; {* {/ u0 k - eltscale (cdr (assoc 48 elist))( E# u E! [6 {, t% a, A
- ethickness (cdr (assoc 39 elist))3 l- N6 w: y, V9 c) Z
- eltype (cdr (assoc 6 elist))+ M0 n- _$ Q' j
- )
" m; }# x( ?) M1 i5 b1 l3 m' O0 Z - (if (= (assoc 210 elist) nil): e1 g. S; X* u8 \5 _6 ?" U
- (setq extru (list 0.0 0.0 1.0))
! C$ Y3 G( @$ i+ [$ u - (setq extru (cdr (assoc 210 elist)))
]& n3 W. v0 [7 Y) Y- g - )" C \& L3 q9 I& Y* K6 [6 Y" \1 I
- % J1 D9 D8 W% I0 l% w4 q4 \
- (if (not ecolor) (setq ecolor 256))
- J9 i; [# f: R- B - (if (not eltype) (setq eltype "BYLAYER"))1 b- v7 E6 w8 @$ Y" a$ A0 E
- (if (not ethickness) (setq ethickness 0)). ?# E6 U2 t/ b' b
- (if (not eltscale) (setq eltscale 1))2 ?5 L1 [2 J+ K' r* v' S' @
- ) ; end ddmodify_init9 D- l* Q) M$ ?, z! c
- 5 Z2 R1 G$ T2 r! G0 Y
- ;;; --------------------------------------------------------------------------
4 K1 r2 J1 ~- _1 _& K/ w - ;;; Function: DDMODIFY_SELECT( x) h6 B$ y" N# r3 _5 B, m
- ;;;
7 X+ n3 N2 M+ X' H! k5 G - ;;; Object aquisition function.
0 F1 A% q$ p2 e# d - ;;;
" B5 S8 A. ]9 h' Y - ;;; (ddmodify_select)
& B9 `& S* X8 _8 L) x - ;;;
( O4 [7 o3 f: y8 r2 F - ;;; Obtains object to be modified, in one of three ways:
- c# M' L' q+ q6 }6 }8 u% e% \ - ;;;: C+ X8 x" z& L: Z. W
- ;;; 1 - Autoselected.0 g9 t8 H% y5 i
- ;;; 2 - Prompted for.6 H. b' w8 p6 D$ \4 }
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )" O3 X3 j2 ?$ h) [* i. R
- ;;;+ g$ |! [, i9 ` y4 Q
- ;;; The (ddmodify_select) function also sets the value of the* v \/ a* R1 |" `
- ;;; global symbol AI_SELTYPE to one of the above three values to) J E4 ]- u: l9 f- b$ D! ~7 B
- ;;; indicate the method thru which the object was aquired.
& @. |( h# O! r2 _# i - ;;;
1 {. A2 h: W7 o% {& s - ;;; This value can be useful to applications that want to RESTORE2 x4 e0 A( H2 P( I
- ;;; an object that was autoselected to its previous selected state
' I$ q! Q( G! F0 B: L - ;;; when they terminate, although there doesn't appear to be any, Q5 x1 ^9 ]% B/ X& p- E9 A( m
- ;;; way to do this right now.+ Y! s, i3 [9 u$ O: h$ Z% p- d
2 c/ N' f& B7 b- (defun ddmodify_select ()# F* i3 m7 z7 m4 W0 Q! ]
- (cond
4 ?* Q! K5 n: _7 [ y) ~ - ( ename ; (ddmodify) was called
0 y! F9 U* p5 d; g; ^ - (cond ; with an <ename> argument
. h1 s: R( }* n* Q - ( (entget ename) ; If object is non-deleted* E8 ] }, R1 i4 p
- (setq ai_seltype 3) ; then return its ename.3 m, g; f: ?2 |% J$ o
- (ai_return ename))))" y3 N* h2 S! G/ C. W( m# w
- ! H6 ]& r! ^5 P5 V, l$ q" i' L6 y
- ;; return auto-selected , see ai_utils.lsp* ^/ }& p4 H7 j5 p' ?, y0 _6 ^3 s; P
- ( (ai_autossget1 "\nSelect one object to modify: "))
2 z, H( c! O, k( \
/ w) K2 L. T% [3 t8 P$ p- P" J0 e6 Z- (t (princ "\nNothing selected.")
& Q$ T- W) k L( `2 N0 S1 L - (ai_return nil))
( B( i! J2 }/ }% Q& l6 V, X, r$ [ - )
4 b8 _: p8 A! v) ? - )
! u9 w9 H; B K7 ]; c2 Q3 Z
& I' k$ H. J( X0 H2 o! C- ;;; ============= Command line interface function =======================
/ _ a W }( `' b, d
! b1 f0 ?. E3 {; p- (defun C:MMO ()' ]. E+ x& R! b' m' _4 Y9 l& {1 t
- (ddmodify nil)3 Q& d$ _; s0 Q" v: D' G
- (princ)
! p3 D O+ `) }$ T6 }* y - )
* @) Z5 ?! a4 c, t v0 {
2 @, R, U% e% A+ t ?' z- ;;; ================== (ddmodify) - Main program ========================
0 x6 s2 L% B! z$ D( Z- d. \$ d8 K - ;;;0 P4 U% u3 J, p i$ v! U
- ;;; (ddmodify <ename> )
- ^$ T% d8 i! O' ]' t' g - ;;;5 m3 y) d6 r- n* U
- ;;; Main program function, callable as a subroutine.
. R! Z! J9 X2 S, b- g - ;;;
1 Y2 v, \: ^6 I( _4 I0 `* | - ;;; <ename> = object name of the object to modify.' g7 ?9 ?1 r7 j `
- ;;;" j. y1 I+ [+ I% i+ J/ g& `
- ;;; If <ename> is nil, then user is prompted to select
4 e% t8 A) O, N. u2 A, F) H - ;;; the object interactively.
1 I8 f; N% k0 M+ } - ;;;9 g G* e1 d$ X" k3 _) s
- ;;; Before (ddmodify) can be called as a subroutine, it must. N: |- p3 I0 ~" X1 N; P
- ;;; be loaded first. It is up to the calling application to
) p% n3 Z- e% u1 B. h+ E* @' Q8 N - ;;; first determine this, and load it if necessary.5 S) ?' z' Z0 @& q# K0 j; K& L) m
8 ^ {5 X9 H/ w4 n$ Z- [& Q0 K
8 D2 G( I+ o1 z! l3 H+ A- e# g" g g- (defun ddmodify (ename /6 l. c! s# {& z. g: h, I8 C) O
- 2ndpt ell_calc_area move_pt1 templist' W5 `6 K) n% `( W7 G: A- S
- add_mdash ell_tile n tempmod
( a% R5 t7 \2 k1 Y. B, c4 W8 s - alipt eltscale name tempst_ang6 k( J/ Z d; E; b4 O3 B
- ang eltype newpoint test_ok
2 {( V7 U( O" i! k3 ? - arc_calc emod next text' u/ v% ^) k/ ^3 L% L
- arclen end_ang next_vertex th-value f& y& P2 B# Z! T# z
- assoclist endpt obl tile/ Q$ p* a. ]7 \9 D. [
- atprompt errchk off tile_rect
. N- Y" S3 p8 Z+ Q - attag ethickness old_majrad tilemode
( A3 q0 B9 t( o2 ~0 j: j8 O9 c, l - attprompt etype old-closed totang: {9 U" Q- O0 h, l7 Q
- bit extru old-closedm tstyle( `; {0 ~/ ]; i# T! b5 t3 S
- bit1 fchk old-closedn u9 m5 h5 B7 d1 A2 n- [
- bit-10 first-10-rec old-elist undo_init W% Q8 y$ A0 W& P( z/ k
- bit-11 first-10-time olderr upsd* i- ]" j, P( ?) q! K& o2 J
- bit2 first-11-rec old-fit v6 X2 u, O# }# X" b0 c8 p; c: g" K W: q/ K
- bit3 first-11-time old-idx va. i% G" z3 m( A1 n5 J: h
- bit4 fit oldlist value/ l9 m" P/ Z, v7 T) ?( I
- bit70 frozth old-spltype ver_4. |& V6 H4 w @; Z1 N7 J% U
- bit-70 f-vis old-u ver_ang1- k( Q! ?4 r5 q4 D
- bit75 fx old-v ver_ang2
L; w5 \# }) J x - bk-up get_color on ver_col0 i. U1 s. K7 I8 h& r \$ B
- bkwd getcolor onoff ver_colsp
n/ L$ s8 W, v" E5 Q - boxlength getindex on-off ver_eangle* I+ h, b: U5 K- Y- t
- bylayer_col getlayer patlist ver_hght
, e' v& I8 }- d5 o - bylayer_lt getltype pattern ver_majrad! P) q! B, |; B7 B* \6 R, Q
- calc getthickness pltype ver_obl3 Y) b) l" v8 M; e1 Q) [6 M
- cancel globals polytype ver_pt1
N# C2 V' ?1 h5 N - cir_calc ha pre ver_pt2* t( l1 T) C% z8 ~
- closed ha-prev proplist ver_pt3
_+ k8 r+ h% B, D Q, Q3 r3 w7 t& N - closedm help_entry pt ver_pt4; K t7 W) k' R# w. h
- closedn hght pt1 ver_rad {% D/ A7 g. g
- cmd icvp pt1_eq_pt2 ver_rot
. P9 D: ]$ n0 w! h - cn image_add_vector pt2 ver_row c) J; |4 I( d; i! O
- cname image_clean_variables pt3 ver_rowsp% _$ y* X1 W* d* r: K2 T
- cntl-pt-indicator image_cross_product pt4 ver_tag# }& C0 I2 c* Y& X
- code_71 image_disp_opt ptype ver_u$ w) ?& H# Y [+ M
- col_tile image_dot_product radius ver_v6 B9 t6 \* v. o% Q6 f
- col-idx image_normalize_vector rational_spl_flag ver_wid, R7 B5 @) p4 q! k2 ^2 }
- colname image_rotate_vector reset ver_x1
, f* U3 z8 C; }+ k V/ Q; s+ a - colnmlst image_scale reset_flag ver_x2
/ R! d: S' p7 N - colnolst image_scale_vector reset_lay ver_x3
+ y( F/ G3 u) W - colnum image_update reset_lt ver_x45 N4 B2 J3 B- N/ }" V& G. q9 ^8 \' k
- color index reset_uv ver_xline_pt1
: \: c6 ?2 H: G5 G - colorname inv rot ver_xline_pt2
7 i1 V$ N2 {; s1 f; D3 L0 C9 j - colorno item rows ver_xline_x1$ C& O2 s- R' O! i& S, ?' O
- col-sp item1 row-sp ver_xline_x2
* x/ J: I% s* r( `4 B0 e5 N" t - columns item2 rrat ver_xline_y1' ?' R' O3 P( j0 A: W# v8 h3 l: X
- con itemlist s ver_xline_y2
+ y3 \- j" Q* B! X/ `/ t - coord jlist set_action_tiles ver_xline_z1
' Y1 D! Z4 s) z, I3 G/ R - ctr jlist_act set_just_idx ver_xline_z2
( Y$ V; D/ U6 D- D6 } - cur-10-rec just-idx set_tile_bk-up ver_xscl
) A$ H/ T$ ^3 x5 {9 p - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
0 Q/ a& d' }8 p' { - cvpname lay-idx set_tile_data_pt ver_y2
8 M% W3 A. q5 a# W& i - dash layinfo set_tile_dirv ver_y36 f5 Y; W" E- `9 d p
- dashdata laylist set_tile_edges ver_y4& a" c( @9 N7 @
- dashlist laylist_act set_tile_endang ver_yscl. W0 r8 y# F5 P8 O! S1 }- P. T8 |
- dashsize layname set_tile_hght ver_z1
# g) b$ v3 {7 q: h - data-pt-indicator laynmlst set_tile_icvp ver_z2+ I) L+ ~4 j! k5 f0 q2 F2 c; T
- dcl_id layvalue set_tile_just ver_z3
6 Q7 E$ K6 D. ~ - dd3dface line_calc set_tile_obl ver_zscl9 Q/ D+ A$ Y1 K: H
- dd3dsolid linetype set_tile_prompt verify_a
' k+ W- N) R3 D5 T! B" j1 H - ddarc list1 set_tile_props verify_d
5 X1 V6 }9 q7 M- P0 J - ddblock longlist set_tile_pt1 verify_i! \9 _, w& T* J/ K4 G5 l
- ddbody ltabstr set_tile_pt2 verify_xline8 Z1 X& N# j& w) _
- ddcircle ltedit_act set_tile_pt3 vfy
! |; K- }3 R2 s" m6 R - ddellipse ltidx set_tile_pt4 vi Q& j% Y, f% I( \$ t' F
- ddgetprompt lt-idx set_tile_rad vlist
& p5 I m' Q/ o' A9 X' z8 S K - ddgettext ltlist set_tile_rc vname+ {/ o0 {) o0 P/ \8 ?
- ddimage ltlist_act set_tile_rot vpf
! p( C, r& h) ^4 y2 A# X* W - ddimen ltlist1 set_tile_scale vpid
7 l- _& }) [! K - ddleader ltname set_tile_spline_props vpldata9 E. i" c1 l0 `' x4 ^! E5 Y
- ddline ltnmlst set_tile_stang vpn8 E, ~/ {, A! }: V) N- V
- ddlist ltvalue set_tile_style vpt: y. y6 ]4 o2 H" ?3 Z# A3 G
- ddmline ltype set_tile_tag which_tiles& q9 w" S$ ~1 c% }% u F$ c
- ddmodify_err m set_tile_text wid
4 ?+ z B1 [) F4 \0 g. J3 | - ddmtext majrad set_tile_vpt x% [/ T& F- J! d. a4 F
- ddpline make_lay_lists set_tile_wid x1, k4 ?5 W, E9 a2 o. `( p6 q/ p
- ddpoint make_lt_lists set_tile_xline_pt1 x26 \8 n, b6 U0 u% h! D' F
- ddray mdashlist set_tile_xline_pt2 x3
/ J# P3 S1 h5 D - ddregion minrad setcolor x4
0 ~ ~! C! x" e. {/ U - ddshape modify_3dface shght xdlist
8 E+ J ]- o1 Z! _. G( j, l5 u* } - ddsolid modify_3dsolid showpt xline_pt1; J# t& @! a( Q* A% {( Q1 Z! n8 R
- ddspline modify_arc size xline_pt2
7 R7 g# d. e# x/ w& H" S. l - ddtext modify_block slist xline_x1& L6 t! t, V( ]& K* d
- ddvport modify_body sname xline_x2* T% x" c) F' W' z6 j
- ddxline modify_circle sortlist xline_y1
. P5 C5 P3 u# @3 B/ [ - denom modify_ellipse spltype xline_y2
. F& V. `% p2 [* z1 H% ^ - dialog-state modify_image ss xline_z1
7 s6 Z! Z+ G. y: V, E* s- b3 w - dir_pt modify_line st_ang xline_z2
' {: Q" C+ `% {" }0 l' _9 |7 V/ w - dir_ptx modify_mline stpt xscale2 S& R0 _- W) W$ Q2 D% ]) V% _
- dir_pty modify_mtext style_act xx* l4 f4 p" W+ T1 \) G# y6 b' p
- dir_ptz modify_point style-idx y$ _" o$ _9 |' ]5 j% Z
- dismiss_dialog modify_polyline style-list y10 s. W, N/ I" h0 p' E6 T
- drawpattern modify_prop_geom tagval y2
! ~5 T" W+ T0 E/ F7 V - echo modify_properties temp y3
& g6 E- m1 K2 L- n5 B - ecolor modify_ray temp_color y48 b8 ~; F4 m! |% q4 G
- edge1 modify_region temp_dir_x yscale( H4 g. B6 M% j6 q3 w- w, h
- edge2 modify_shape temp_dir_y yy
6 Z- n4 O8 G* ~* P7 c$ r - edge3 modify_solid temp_dir_z z1
, Q3 ^4 v# Y, B) |- }7 W- m - edge4 modify_spline temp_xline_pt1 z2
& i* T- A5 r& G* `( t - edgetest modify_text temp_xline_x1 z3
' }3 n0 \8 ^; ~. D1 W5 F - elayer modify_vport temp_xline_y1 z4) k9 {7 M0 L/ ], \
- elist modify_xline temp_xline_z1 zscale! i3 ^' E- I( h
- ell_calc modlist tempend_eang zz
5 A4 b/ q; n [" q; n - dir-idx safe_ddedit ver_MtextWidth xcliponoff4 U( s5 B9 @1 Y
- MText_style
% L( c) F4 O) R# l7 [7 q( a! I - )
8 m1 ~' A' q! B3 B" T# h' W) s
8 ]- p2 \0 A3 O3 Z1 @# j- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
; Z9 H! ?( y. o2 b - old_error *error* ; save current error function
/ u: l% R& }9 O1 t/ M5 p# ` - *error* ai_error ; new error function- ^8 a3 g% w! U* A0 \
- )( H+ F5 n$ a( \: E( n
, b8 W# L5 W0 i) K. v5 L- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
$ j9 {" g2 A+ y9 I1 T8 P# U x - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
1 g3 W: S" X# Q/ p& Y; ^8 w - (setvar "pickstyle" new_pickstyle) ; bit and set to new value2 z9 A) {3 W$ g& p6 J2 I$ O
- 3 a; G, g0 o" q$ A2 N# h
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)/ `' ^" c# e. B4 ? L
- (t 1)))+ B4 a9 e3 y/ N3 `
- (cond; C3 Q) A/ p+ |3 \- ~4 A
- ( (not (ai_notrans))) ; Not transparent?
. J5 [0 w" c& c, k8 o$ e - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
0 E0 b6 k# W! z0 b- q - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?5 _& Z; S6 N5 U( { B! a }5 J
- ( (not (setq ename (ddmodify_select)))) ; object to modify?
3 c) j$ A1 F+ `7 P% P! Y- w4 o
( p! O+ @( u( j8 v4 y- (t (ai_undo_push)
2 @$ D- {2 M8 q! q" s - (ddmodify_init) ; everything okay, proceed.( v9 D3 `, ^1 l. W( S/ r; |
- (cond
$ J& H6 @0 C, G6 h9 y - ((= etype "LEADER")
# I, t b; D" ~7 i - (setq help_entry "modify_Leader_dialog")
& _( [- Z# h% V$ m3 T - (ddleader)$ d5 ^# [$ t2 \ r5 e- `2 A( e
- )9 C( w, ]1 |' q; V7 }
- ((= etype "ARC")
1 g$ w/ S! O8 m/ E2 r- c' e) ^& J - (setq help_entry "modify_Arc_dialog")3 J* ^$ y; P. M* L
- (ddarc)9 u7 w) f' g' }
- )
' w0 I8 ?3 R' U$ q+ s4 ~ - ((= etype "ATTDEF")& A- y/ y& n( T" ?4 _6 C
- (setq help_entry "modify_Attribute_Definition_dialog"): i* V9 r4 X1 Q* ~, @! w% ^
- (ddtext); @# r4 W$ O! s% A& e% B# l
- )
' ~ c/ w4 |* p# e; d - ((= etype "CIRCLE")
" b" C& _$ @1 M1 s8 I4 x - (setq help_entry "modify_Circle_dialog")
+ z2 }7 o7 y9 N( ?7 g4 E - (ddcircle). l& X; X: G- o# z% ^4 w
- )
# t# s( E1 i6 Y - ((= etype "ELLIPSE")
# f6 N2 p( A, U4 S9 ?# } - (setq help_entry "modify_Ellipse_dialog")* p3 P& p( x4 J3 r& F
- (ddellipse)
& Q6 n8 x* J: W ?" L# s( M - )
5 Q: Q( x, b$ I5 A4 F6 C - ((= etype "3DSOLID")
; g0 s) u% D0 _ ~& E( j! y6 t - (setq help_entry "modify_3d_Solid_dialog") I. y. A% w; Q; S% q
- (dd3dsolid)
! k, O8 o& C# e$ h0 {# b9 l - )
4 N, L: V- L* o3 ]; o - ((= etype "BODY")6 c! f9 h+ k: y) s0 E
- (setq help_entry "modify_Body_dialog")
* N- H0 E' D8 g* q( V - (ddbody)& h' d3 c. o% |. {% ]' p
- )
: w! b! ~# @: h7 L! t - ((= etype "REGION")
3 h; x8 z5 Q- |% R - (setq help_entry "modify_Region_dialog")9 g, H0 D5 u: o/ E
- (ddregion)
$ ^7 r; d7 F0 a! o) s& Q - )) |2 M9 N/ T- D# W
- ((= etype "HATCH")
# w5 R' D2 h, s, t& t - (setq help_entry "modify_Hatch_dialog")
& ^6 y: U, v) k - (ddnewhatch)
6 a" f) D0 Q3 ?/ D - )
6 V7 r8 ^8 Z, s# w, f( u - ((= etype "SPLINE")
7 p) u( ~4 h) H# Y$ V - (setq help_entry "modify_Spline_dialog")9 p; l3 u8 X z* O
- (ddspline)% V6 `: w( z l6 q0 z
- )3 E# A2 g* L& }0 @: {
- ((= etype "INSERT") ; see ddblock for help_entry1 P u/ ~4 }% ^3 P+ z& y; F
- (ddblock)
6 E1 }! Z8 s& a0 t2 |/ D/ p- B' q - )) l& z3 Z& A/ c$ b! b
- ((= etype "LINE")
9 o- q+ b e4 E, \ - (setq help_entry "modify_Line_dialog")
- l, @8 k9 g9 W' [: ^2 o - (ddline)
& ^9 B# }( X5 m3 |$ Y: e' ~ - )2 J. |5 c3 A3 D R6 U, S
- ((= etype "MLINE")( Y6 r5 U8 c2 x) h1 r( C
- (setq help_entry "modify_multiLine_dialog"). R' a @! j6 W$ P/ s" o
- (ddmline)
0 I- O. l4 i1 c9 c' U - )
. d- g# U0 o. k0 ?7 t - ((= etype "RAY")
6 C; w4 @( w- u: w) }9 Q9 b) D - (setq help_entry "modify_Ray_dialog")
* f O" O H1 N1 g* e* N - (ddxline)0 M. h* |1 d% M& B: Z
- )
0 D* t5 h/ p9 x7 p. S! ~ - ((= etype "XLINE")
, X( [/ P7 x% x, r$ f, n) C$ H - (setq help_entry "modify_Xline_dialog")
) ^ S* b; q" `6 F* o - (ddxline)7 o2 Q6 l% h6 J p: O+ W) J
- )
: V R) }3 n- ]- z% d7 R5 c# L - ((= etype "POINT"), j" \: n- m; o1 S2 H1 \; j: |
- (setq help_entry "modify_Point_dialog")
?& j. z+ `8 X" L) M! x# L: F - (ddpoint)5 `' I$ D3 \; }' Q, O. O4 O5 l! t; u& _
- )
& V# K; C* v3 g8 p3 q7 b+ }' U - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))& ? T% P/ R# b* ^# }
- (setq help_entry "modify_Polyline_dialog")
/ @+ `* c1 a) G" ~ - ;; If a 2D pline, check to see if it is planar to the current
, n0 o, w7 T7 [5 I) i( z - ;; UCS, reject if not. To see if the pline is parallel,0 Q" b2 W- B$ [6 M
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)( @" M4 K( U+ W/ ~: u* r, c, F
- ;; and then converted to the current UCS and checked to see if
6 C& M1 ^" U8 [# k k! X- ?3 L5 @2 I - ;; it is equal to (0,0,1).
' l! l' C3 i3 O% W
$ C2 @/ y/ r. K( T- d4 X6 n }6 T- ;; Incase the 210 is default and not in the dxf list.- O- A' k4 ^- l, M% p/ M5 a f) ^8 n
- (if (= (assoc 210 (entget ename)) nil)
( b% ^% Y" V+ Y# a, t- S1 F+ G - (ddpline)
, p) R- ?+ b8 ]. l - (progn) V/ o! e5 s2 `, b2 e' m
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
N. @& ? S" y7 ~/ N/ i- W - (not (equal '(0.0 0.0 1.0)
) ]: ?+ E' A6 Y- t5 f7 M$ x# } - (trans (mapcar '+0 o5 e: Y4 Y$ H! \8 f
- (cdr (assoc 210 (entget ename)))3 g' L* Y3 d7 i. C
- (trans '(0.0 0.0 0.0) 1 0)! v: f Z6 C0 ~4 R
- )
/ H3 S2 I# m4 g" F5 j8 `: s8 g - 0 1$ f+ b- S4 A+ }' Z
- )& D( O. \' [0 y& \- ?7 {9 ~4 s0 m
- 0.0000000001 ; fuzz7 ~' l0 ]; }7 c3 O6 T8 U1 L
- )
9 M/ X8 z' E) k1 w' g& V* a - )8 m) J; ~( _# F3 V- K. e& m7 M
- )
' Q# x, ]) F! D+ | - (princ "\nThe 2D Polyline is not parallel to the current UCS.")# y+ Y2 I9 _" n$ \
- (ddpline)
- z" e7 j( P; d. O; N - )) {. i: G' f) E' o. g
- )
. P3 f+ q4 O3 C" m% X2 | - )6 F7 b/ `" Z0 N' j. k+ U5 v( b
- )
6 F: [7 {7 L0 T - 7 M/ e/ D0 X( p5 }, B1 ?) V: v
- ((= etype "SHAPE")
8 q- u0 z* y: t0 | - (setq help_entry "modify_Shape_dialog")0 s/ v8 z) x Y: Y" x: ^
- (ddshape)! `" [4 | G7 g. j) H. u# x
- )
* J( ~/ H, J/ J' Z/ l( N( v - ((= etype "SOLID") N: }% e; y! L( B& A* ?3 L
- (setq help_entry "modify_Solid_dialog")1 `; ~' E* r0 E: u& o$ b
- (ddsolid)/ t. x ]6 W5 x- i% C1 J( H
- )8 C9 x& U! ], q! a; r7 {, A: U
- ((= etype "TEXT"), t3 }; k' Z) y) [8 M& Q
- (setq help_entry "modify_Text_dialog")) U9 U7 i s* m) E( L
- (ddtext)
: r3 z, ~6 p4 n3 k- `7 @ - )2 C" v+ f! J6 `- l
- ((= etype "MTEXT"); c; U) l: t' {' `7 R; c! m; ^
- (setq help_entry "modify_MText_dialog") J$ D0 |0 R( A6 h
- (ddmtext)
( E3 P, _8 B# q0 r" @2 o - )
! e8 U; f7 g, x& k, B4 M8 ~ - ((= etype "TRACE")
- D$ l8 k% F# V; ` [( R F( I# G0 ` - (setq help_entry "modify_Trace_dialog")
8 V7 D0 J* B* i+ i! W/ ` - (ddsolid)
+ E1 z3 I5 }7 I4 h- | - )
. C. ? K' Q0 ? - ((= etype "VIEWPORT")3 L ?6 J% j# b( C6 z% s! Y' b+ {
- (setq help_entry "modify_Viewport_dialog")
4 A9 ^* [" W$ A# Y1 j }8 g, c - (ddvport)- ]6 A2 k' k$ D# N; C2 s4 f
- )$ U# @/ R% ?" U
- ((= etype "IMAGE")2 b+ u& i5 W+ t
- (setq help_entry "modify_Image_dialog")! x) T6 K. o" n$ O# I# p
- (ddimage)+ ]' J+ B, X" m2 \+ ]% O
- )
/ d0 y; ~! G6 _/ l1 S/ x - ((= etype "3DFACE")5 N* a2 c+ F5 x1 _/ n; o* y
- (setq help_entry "modify_3D_Face_dialog")
/ E7 X4 @1 p4 _7 y, c$ Z4 s$ K - (dd3dface) p8 S( p7 D( I! ?7 }3 U
- )
8 G7 T+ k! T/ k+ f - ((= etype "DIMENSION")
# z: k2 x/ I+ `# r, G - (setq help_entry "modify_Dimension_dialog")
7 N$ T. x! g1 D1 {! R. c( ]4 a - (ddimen). @; n" C" B6 p
- )! w6 z' |! }. F- R1 ] }
- ((= etype "TOLERANCE")8 ]! q: y" L7 M1 ~" L
- (setq help_entry "modify_Tolerance_dialog")
& S" L$ L, \$ E* N% z4 r; a - (ddtolerance)
# a1 R1 T/ K3 r; } - )
& z! {& C0 |2 ?9 U% r Q - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
& |1 D) K& k" Z7 W5 H( C - ;; This allows DDMODIFY to work on any custom object or any new object type/ P: |& m0 }( U- I6 X1 x& }- w
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.
& p6 |$ t5 h* I, P - (t6 }' w+ ^$ u5 r7 J; ~
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
% H1 b& W: G$ j$ T H - (princ (strcat "No dialog support for object type: " etype ".")))+ Y K- j- g0 l$ S8 j P
- (progn
+ B7 i/ s1 P% S+ f3 K" `* S - (setq tempss (ssadd ename))" W) ~1 X- G' C8 F1 j3 \9 l6 g
- (ddchprop tempss), T; X+ x9 S L" Z) S& D7 t
- (setq tempss nil)
! K/ }/ F. e! ? - )$ `9 z* w) x+ I4 C3 }
- )) T) N4 q: H& h, a
- )
w) n3 b. u4 C& y8 R - ;; Previous fall-through condition.) g& q; Z+ _# K
- ;; (t (princ (strcat "No dialog support for object type: "
3 o0 s1 R6 B' K f) C" l" [ - ;; etype "."
) @4 j& H, A$ | - ;; )
& g' u6 `. \( g$ ] - ;; )$ s5 O* e3 J% M9 G1 `7 `
- ;; )
, S$ U1 f1 x4 v2 i# R w - ;; )
1 D% o2 L: l, z' n- y - (ai_undo_pop)$ b# p4 Z/ h0 P' M
- )
4 S' E; s0 ^- u - )& _5 _. S$ p" W: z) e5 a* s
- 2 D$ J% j3 z: C4 r
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle! c) X s7 T6 S' f; ]$ u9 }
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
$ |' ?/ {( O: A) \6 y3 `. F+ @ - ) ; to what we started with
8 b( k+ y- k& Q! D9 y - $ P1 s; s- Y# E/ |
- (setq *error* old_error)
8 ?5 F! Q; S; b3 k) G6 V4 j - (setvar "cmdecho" old_cmd)% f% r. h2 W' m3 `" b& g
- (if (not reset_flag) ; if object was modified, then- x" r9 x; ~9 G9 ~. v% t
- (ai_return ename) ; return it's ename to caller
' I: Y# Z$ M" ]3 A - )
$ g" g# W% z) r# d1 N - )1 R! H [% f3 J: b
- K/ t4 I: ]/ l4 _- (defun checkForLockedLayer (ename)' b* Z. G6 [) @
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))$ L7 c; d' E& C( {' H2 \% _
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
& L% O3 F% @. _6 a8 X0 e3 y - (if (= layerflag 4)3 V, I! s8 b+ b. O( N$ M" k4 u
- T P" w$ o6 z C3 B' B
- nil1 a( Y4 g( j8 k
- )
* L5 O% V# w7 X2 u7 F0 H+ a% N4 A - )
" |' v$ @& E" _0 _# n - 1 v( r) m" U. V6 K8 ~4 [2 T
- (princ " DDMODIFY loaded. ")
V+ F8 e1 v) v - (princ)
) Y( `) x$ P; n7 C3 h9 }/ C2 w- T0 ~& U - ;;;???;;;---------------------------------------------------------------------------------------
7 u, y1 k( B0 {5 G; M& r# L$ [ - . B7 b# @, D4 K* \, R, K2 S
- ; Next available MSG number is 8
S" b4 B3 e5 A6 z - ; MODULE_ID DDUCSP_LSP_8 V2 {9 e q& J4 ~
- ;;;/ I( `! N3 d" {0 v8 h1 F, N
- ;;; dducsp.lsp
2 x5 f! N4 w% M' ?6 y6 M - ;;;
% F4 X7 K+ v8 a# `3 Q0 w - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
$ ]% O- _$ h8 z/ J - ;;;
" i5 S' \. r* L% h! R$ }9 ` - ;;; Permission to use, copy, modify, and distribute this software! d+ u- J$ X8 c0 Z1 ?/ A6 Y* b6 K
- ;;; for any purpose and without fee is hereby granted, provided
; N# J2 J K0 I. @( U0 v - ;;; that the above copyright notice appears in all copies and( K3 u. C" o+ D
- ;;; that both that copyright notice and the limited warranty and
, U0 Y) |1 E, o1 A* _1 K - ;;; restricted rights notice below appear in all supporting
3 Z) Y$ N) e7 Y- n( Y - ;;; documentation., l: J3 S: b x
- ;;;
6 p L: k$ _; G9 y - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
" R. I9 R1 @7 y" L9 F( R- [ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
! N3 I/ S2 |2 `8 b! F# p. ^& D - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
4 `1 |, L. z$ ` - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
& n* A7 Q( |( c n3 J9 ] - ;;; UNINTERRUPTED OR ERROR FREE./ s, \7 v! ^; @. ]8 d z7 h
- ;;;
+ B* Q6 A. ?+ k! _% | - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
3 g3 n4 T5 m4 n: I: m3 E# _2 }! @$ ] - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer ^0 T2 y/ g" L; K8 }4 w
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
+ u/ q" i: ?" {% n' g7 r! E - ;;; (Rights in Technical Data and Computer Software), as applicable.
' F, O# ?* c3 i( R1 H9 h; ] - ;;;, b+ D) R" y8 r7 u/ ]
- ;;;.! J! T: ?! T5 F1 [9 _
- ;;; C:DDUCSP - User Coordinate System presets dialogue.) ^- K4 P7 H4 ?: A- F) V5 [
- ;;; * t) ]( O# d# t0 r3 }
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
* q" W7 p+ Y% k3 ] - ;;; slide images are in ACAD.SLB.% R9 P# B, t; a
- ;;;
; d; s$ G! V2 ?3 r r ?; I - ;;; ===========================================================================9 e9 _- ], q9 A4 c9 }
- ;;; ===================== load-time error checking ============================
. D9 ^, g& N2 N& y8 N - ;;;
( x. I+ S& H, e, K
+ K) B, R3 ?! E( w5 v- (defun ai_abort (app msg)
" C- J/ f# m7 G, A - (defun *error* (s)
4 x' [# ]3 x' _ @$ r5 m; B - (if old_error (setq *error* old_error))0 A' q$ T& w- F+ U4 Z
- (princ)0 R, v o4 }8 h
- )! U* }, E8 \* d$ K
- (if msg6 z5 P5 E0 {* ^* p
- (alert (strcat " Application error: "
# @0 y1 i& ^7 y' K+ G' x - app( y3 z. o5 g8 p* `6 U7 i1 h
- " \n\n "
% s2 T& u. Q1 _. y# D - msg0 r$ a# J- N6 X& `' z% L4 {) r8 l
- " \n"
: K; P8 D H1 `# Q1 O0 `7 `, R - )
6 S3 d% y( A7 j( O* X2 G/ e - )
0 u6 e8 U R6 E' B& j - ); V; X0 X8 X6 l' V
- (exit)
3 D1 S2 Z, s# \5 z% T6 d - )- u* p2 l7 o1 |- i+ B
8 ]7 k7 ?5 g' V+ c- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
6 ~! f1 A {$ y1 @5 r% i- b$ ] - ;;; and then try to load it.9 U+ w$ Z6 H: k
- ;;;" [0 c+ n9 K3 L+ r
- ;;; If it can't be found or it can't be loaded, then abort the
; e) Y* u$ K8 V K - ;;; loading of this file immediately, preserving the (autoload)6 m& \5 u2 Y4 P% |
- ;;; stub function.& z: w2 O3 @3 F2 o0 S; g# X7 ? T
, E' _" H8 @/ \8 U4 I5 B- (cond
- y! N0 Y5 r! v& H- r. o. ~' b) U - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.6 O+ }. a; P& i7 A( T9 R9 e
- 5 f5 T# a( ~+ _ u/ _
- ( (not (findfile "ai_utils.lsp")) ; find it
' h, [: A5 [) \ - (ai_abort "DDUCSP"
# e1 {" @, _, G" ?" U - (strcat "Can't locate file AI_UTILS.LSP."1 ^: v4 N* d- e; a3 |. g) h( T* X
- "\n Check support directory.")))
A G5 P) j; n" R& |1 T, W( q - 5 F. [6 U- s/ u$ H; W" s$ P
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
2 i3 K) k3 c* u c2 [1 I2 e. \ - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
4 h7 `2 p0 i- {/ N; U! Q - )* [9 Z1 x/ Z, T" q
- * a# k/ f: j4 p
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
/ M k4 g w4 m. q( F - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
| ~8 o" Y5 b! F/ w" Y - ) ; ai_abort's alert box dialog.2 E9 w* g* i4 h3 E! H S+ x
' {- E! m- g2 g& ?& `- ;;; ==================== end load-time operations ===========================
" J& N* x: N6 ?
8 |, p- Q! q8 `( I0 C' X, f6 j- (defun ai_ucsp_start ( / program)
% y& G( L, X7 B8 V - ;; Get program name
% o: w4 w$ }/ I' |+ ]( a. } - (if (not (setq program (getvar "program")))& D5 x& n* s# m7 J
- (setq program "acad")) x& a9 J2 r" X$ [' w7 ~
- )
0 V) Q# @3 T D - (foreach v0 '("world" "left" "cview" "top" "front" 0 @; ^& n" j* a5 y# p. A/ C" P
- "bottom" "back" "right" "prev")" Z0 C1 ]/ Q( f) ], j
- (start_image (strcat "ucsp_" v0)): o- `/ F5 e3 N( s
- (slide_image
3 ]6 `9 c5 ?% T2 G3 z& m* q/ ^5 g' r - 0 0
/ d+ Q+ J# L: r9 L2 X - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
# h6 u. m/ ?0 t' f/ ~9 r - (strcat program "(u-" v0 ")")
4 `* @# C; M1 ?% R. b - )( m0 M, o4 H( a' p
- (end_image)0 |( l6 Y4 G$ X* M. @2 k
- )- i: J5 t' d! S# t( z% r) a
- )
/ D" Q [7 z+ L7 Y; w5 Z - ; |- z/ M# S% I: j/ p
- (defun ai_ucsp_set ()( h3 v2 c8 S0 e3 H* O7 |) ^
- (if ai_ucsp_sv
1 b g5 c3 k. K1 @3 p6 Q, @( _ - (command "_.UCS" "_V")
; }* u; ^* G1 t2 \1 d5 d9 u3 l - (if ai_ucsp_prevs8 ~2 o" \3 Q: b) G7 d5 m% e- C' h% C
- (command "_.UCS" "_P")
1 R- V. ]: i9 r. M/ j" U. }, q - (if ai_ucsp_chg
, f5 E( }3 ]$ g - (progn
. Z- u, |- ~3 a( }5 f0 x7 k - (if (/= ai_ucsp_a "*")! }7 J. X' M/ L, H$ c7 J
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
: M/ |3 }/ W" B/ d. A" z' h7 k) { - )- \' O3 M! I+ W1 t5 p8 C' a
- (if (< ai_ucsp_pick 6)
# T8 u/ r+ u1 x3 g& O3 f2 @& I - (setq ai_ucsp_set0 "@"), c; h2 w/ b2 {
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")* i0 o) [ s+ V3 l4 ~, @$ l% m' q2 q
- )) H/ W7 K3 y" k0 l/ q
- (cond ((= ai_ucsp_pick 0)4 B& V, ?5 ^& n' I d8 i8 Y
- (setq ai_ucsp_set1 "0,-1,0"- c0 i' o, j! K
- ai_ucsp_set2 "0,0,1"+ v3 `/ K$ {3 h" z$ I- T8 L
- )
0 w1 S0 y6 V5 s0 D9 X1 R - )5 u ~6 _, E" J7 K4 r* g
- ((= ai_ucsp_pick 2)3 I4 B* d* f" B# `' N
- (setq ai_ucsp_set1 "1,0,0"5 A8 @: Q" Q( Z# f, R
- ai_ucsp_set2 "0,0,1"& [. G1 t3 V' x( _; N% n4 O1 }! u3 [
- )
3 b" a$ y( E2 c( i: j2 o( ^ - )4 g0 Y. w4 U) {4 \7 J: w
- ((= ai_ucsp_pick 3)7 ?4 I; b7 Z! z+ h
- (setq ai_ucsp_set1 "1,0,0"
' K& u$ Y# {+ Z% N% x. b$ T$ C - ai_ucsp_set2 "0,-1,0"
3 ?( |* L+ N- [$ r; a7 ^; y) } - )
, S$ Z& U5 k a' ^, L - )
& y) a! `- O6 L5 W5 b - ((= ai_ucsp_pick 4)
. [$ M6 T1 a+ {; H! Q- F# {3 p- j5 [ - (setq ai_ucsp_set1 "-1,0,0"% Q+ O' Y' k1 i4 o2 H, W! N; @
- ai_ucsp_set2 "0,0,1"5 c# f7 m8 u( c/ W, t
- )& j) B! p$ z) {5 p# H
- )
2 n+ C/ k8 S$ W+ E - ((= ai_ucsp_pick 5)
+ k: e' H4 Q( T5 ?; c, A7 j+ ? - (setq ai_ucsp_set1 "0,1,0"1 e- h; v5 S( ?6 Q W
- ai_ucsp_set2 "0,0,1"
/ d$ z: K& J, O0 g5 u - )
/ m9 @+ f& H* y# Q1 \; J. Q - )
% x6 B4 v u/ A- r' C5 F& {" M - (T
% x& g% d* q+ s D& I; G. o: h - (setq ai_ucsp_set1 "1,0,0"& _- k% R6 r" G8 S' Z9 M; d" v
- ai_ucsp_set2 "0,1,0"* m1 }: f7 ^7 f u+ g8 x
- )
" t( v: Y/ M! o, R - )
2 M# Q( v+ ]' u3 K. i% R - )
. g/ g9 B: r; w C1 S. V- C: w1 { - (command "_.UCS" "_3P" ai_ucsp_set0 $ c, B) {2 {$ o, K) o6 N
- (strcat ai_ucsp_a ai_ucsp_set1) 1 u6 Q% M& X, x! c, e @
- (strcat ai_ucsp_a ai_ucsp_set2)! Z( A- T/ n9 y% k! z. }- W
- ) - L: ]$ v L4 q5 L/ i( X
- )# }0 s' P" B+ d! i( K5 C
- )
# Y8 }" s1 d( A6 y, l - )
; Y0 |( V. {/ l% S; H - )
+ ]0 P/ ~$ T3 n B$ w4 s - )% c: x* }4 S! G9 Q, Z& Q
/ q* W$ H: w' g- (defun ai_ucsp_p (val currtile)
; `) t# |: G, ?# o4 {! ]/ M& u - (mode_tile ai_ucsp_currtile 4)9 H, Z- K7 ?! [5 X
- (setq ai_ucsp_pick val" d! h: C0 M0 n4 R+ a
- ai_ucsp_sv nil
: P3 N$ ^5 H, J; q* y - ai_ucsp_currtile currtile8 `3 e6 E' G8 y9 t
- )$ E( K. L; s- w! R+ z Y. w9 \. \% t
- (if (/= val 1)
& u& d; }' m% \6 f - (setq ai_ucsp_chg T)
6 S: I4 L. Z8 U# X- V5 u4 ] - )
" _% W8 s( h: ~ - (mode_tile ai_ucsp_currtile 4): `& P# p- H9 r8 I
- )5 o8 v S6 g) B0 q# D: d( F* h3 o
- $ g& @+ s% F1 Q ~+ V Z% R
- (defun ai_ucsp_swcs ()
, X; s8 {' |8 ^& \3 f - (mode_tile ai_ucsp_currtile 4)3 i" h3 n; e+ ~. R5 C" K
- (set_tile "ucsp_a_wcs" "1")) T( s7 ~# n3 K- @& ^& r
- (setq ai_ucsp_pick 66 _$ t$ Q) H; C5 S# b
- ai_ucsp_sv nil+ x, Y6 j* q; L3 d6 C) k
- ai_ucsp_currtile "ucsp_world"4 T7 N1 v" S6 N5 S; g
- ), a1 Y, c5 J; R1 W! j Q1 ~
- (if (/= 1 (getvar "WORLDUCS"))
1 D+ X; g, F! ^1 J! K - (setq ai_ucsp_chg T)' ~- R' _# v1 N
- (setq ai_ucsp_chg nil)
* K% W \, Q6 w6 Q2 j0 B+ v/ R - )
0 C' a9 j' T% G8 j - (mode_tile ai_ucsp_currtile 4)8 Y( q, B5 y9 q! d# S
- )4 b! ?* z* t4 e- [+ u
- ; X' q4 T0 x$ s- K' ^ D u/ f
- (defun ai_ucsp_cview ()
! |9 l* T% H* ?) ?& s - (mode_tile ai_ucsp_currtile 4)* m S- y) p; y3 o
- (setq ai_ucsp_sv T
9 r8 w: v# ~: D) C$ @! n* K2 q - ai_ucsp_chg nil, L7 ^2 N/ Y q! c
- ai_ucsp_currtile "ucsp_cview"
% E8 y9 _. R/ U& ?5 _; j) E& p0 L3 q6 c - )
% y! h9 z' e* |5 m% b/ q - (set_tile "ucsp_a_wcs" "1")
: N- J2 a4 K) ]1 ]1 W - (mode_tile ai_ucsp_currtile 4)5 w4 E! p6 Y& m7 r+ {- a
- )- B4 x j6 s4 K: j
2 n; F. @- \( @6 [4 u4 _- (defun ai_ucsp_rucs (typ)
% a% O- n8 V/ t& L- Q - (setq ai_ucsp_a typ) t( o, V5 j8 W8 y, w9 Y5 |
- (mode_tile ai_ucsp_currtile 2)9 p- F8 B8 L8 Y, g$ L
- )
5 a) H" U3 s3 k - / j; n. y) x7 l3 M
- (defun ai_ucsp_prev ()
8 r/ o8 \8 W- ~: B+ p8 v0 S) d4 w - (mode_tile ai_ucsp_currtile 4)" B, f% \5 |% Y0 E
- (setq ai_ucsp_prevs T
7 K% e" I7 J" y% P, p& G0 d - ai_ucsp_currtile "ucsp_prev"
1 p$ K4 [9 z" J - )/ x8 E! ^8 C! K5 Z. O/ w" @
- (mode_tile ai_ucsp_currtile 4)
! G6 [4 x |9 z; Z; m! @ - )/ B2 J- c7 x `( a$ I2 k
* d. {5 _9 B' z4 ]& y4 P0 ?7 d# w, @- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
! m; f* I5 p& {1 t2 D" P/ s f" L - (if (not (new_dialog "dducsp" dcl_id))
3 L2 {9 X7 |- T% ~ - (exit): q! ~) g0 D7 ?6 b6 T; H* g
- )
9 ^: v; M. c1 _/ e6 G' J
" g# H4 p+ a6 C8 C+ \- (ai_ucsp_start). `& p8 `7 G2 Y; }& P
- (setq ai_ucsp_a "@"
' n) M/ R: F+ Y, @ - ai_ucsp_pick 2
6 i. ~. I1 T+ |6 p4 U8 o - ai_ucsp_currtile "ucsp_top"
6 v2 {# |- u$ \8 P0 v5 V$ j - )& G% ]' H3 @% @3 e8 g" b( Y. V
- (if (= 1 (getvar "WORLDUCS")): e: E: W0 C: Y8 q+ G/ _! w
- (progn) o1 ^7 q! H Z, { a
- (set_tile "ucsp_a_wcs" "1")
6 e- r9 L; q/ h! v* x+ D, p7 a) P - (setq ai_ucsp_currtile "ucsp_world")8 M- ^# y4 x3 G m, y
- )
, t& r3 Q/ l$ o) Z8 Z - (set_tile "ucsp_r_ucs" "1")3 _3 G3 m9 u6 x
- )
6 `4 V! A; y+ S# w2 U# s1 ? - (mode_tile ai_ucsp_currtile 2)
+ d! ^8 g* s* @+ ^& ?4 y - (mode_tile ai_ucsp_currtile 4)
1 z3 ]$ H+ ]5 d - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
# r/ G* {+ v0 ]; @ - (action_tile "ucsp_cview" "(ai_ucsp_cview)")
3 r; `$ I3 H7 y7 I9 X - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
( F$ r) C- x; Y# e c0 N* T' ?% x - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
2 n8 F5 g* `0 r4 s& A6 C- G& o0 B - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
- k" F5 o& J4 f# v+ U' B" z0 ^ - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")/ D" p- e; h: v
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
$ L( s* f* |! f% f/ ]8 q - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
# H* M9 K+ O) L" a1 ` - (action_tile "ucsp_prev" "(ai_ucsp_prev)")2 J9 O- T4 c( h7 I$ U
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
4 l5 z1 g, s; t. R% b5 O- T* w v - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")" b1 b+ |9 N5 a; l+ o
- (action_tile "accept" "(done_dialog 1)")
. r! s5 `% a1 s$ i: A0 |9 r; p - (action_tile "cancel" "(done_dialog 0)")& X6 p2 ?, } h/ d# G
- (action_tile "help" "(help \"\" \"DDUCSP\")")+ x9 R, N' j# [ k! _
- (if (= (start_dialog) 1): b* I# u L" N* [; R N
- (ai_ucsp_set)
1 N! }% Q1 c( h3 ^1 \ - )! u& K" A4 N- G; y. T
- )8 b! s, K3 U* ]
2 N3 U2 A. p/ Q0 s4 M- J% d8 V* L: u+ Z- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
- {% ^8 U$ W E* e% ]6 e - ai_ucsp_sw undo_init)
% Q& o9 @6 X1 g5 R+ x5 h$ j - 7 L$ K$ t3 E* r1 r
- ;; Set up error function.
+ z+ I4 F* ~* Z- ` - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
: H7 F0 A/ x/ _7 N* b - old_error *error* ; save current error function
+ G+ J! f {" P+ i I: u" L' | - *error* ai_error ; new error function
" J* B$ ]( K! H* A. [9 @ - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
: \$ r$ r- ]% R: x- _5 V - ) g6 Y, ]2 K4 ?7 ~
- ) x$ O2 F0 ^" x. l& W# o: I7 b
- (setvar "CMDECHO" 0). b% S+ D# j' K% D' c! C6 F
1 s4 t- L5 z' \5 I8 K& k- (cond0 R: v) ?* A/ f) l( P7 D5 P2 g
- ( (not (ai_notrans))) ; transparent not OK
( }+ h8 O$ y8 q* O, @- V# x! g - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?4 h7 I5 H' @: n' J- w$ _0 d# r" s
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
5 L3 ~0 w# ]5 L1 J+ y - (T (ai_undo_push)% a# M/ m- F; P( }0 u
- (setvar "OSMODE" 0)
: m$ K0 x2 W- Q& R' Z ?5 M) m - (ai_ucsp_main)8 i0 h. B% g0 d
- (setvar "OSMODE" old_osmode)
, \4 o- m' o6 Y- C3 K0 w. v - (ai_undo_pop)
6 O! D2 b% S- t' U4 c - ): E, R! m6 L7 @. X5 f9 p6 v
- )0 [% Z& R' o" \: Y8 i
- A8 X# e- i6 u- (setq *error* old_error)
- k ~6 h7 s8 ]* u7 A& _ - (setvar "cmdecho" old_cmd)
. ]# R I9 t9 R A
% c) N+ M1 q7 f! B7 G9 T- (princ)7 v+ A3 F) U8 s3 X" r! {# x
- )# [4 U7 f$ S; @2 K# a
- 3 R- U- |4 @4 T; t9 k% P, W
- (princ " DDUCSP loaded. ")6 B r9 r/ P' L5 \ {& @" Q* y
- (princ)4 }" f f% W" z0 e o) Z
( S/ O' z6 `% `4 n5 d9 }6 ]- ;;;???;;;---------------------------------------------------------------------------------------: X k* v0 v, x' O
- ) t ]- l9 d) W |9 i* w8 k
- ;;;----------------------------------------------------------------------------
\, [9 Z- ?' b* ~# b) v' X - ;;;
; t- M2 `* I( {" Y - ;;; EXCHPROP.LSP - x4 r) o* N5 L9 }' E0 d( b. @
- ;;; Polyline and text modification capabilities added by 1 D6 e+ f3 V7 j t6 \3 j) z
- ;;; Randy Kintzley
1 K4 W0 Z1 n& p5 A0 U3 |4 H - ;;; + I" X0 F' ~/ F% F0 N
- ;;; Copyright (C) 1997 by Autodesk, Inc.$ S |! t: b* E4 w
- ;;;
. \6 `: q$ W0 n) G5 t3 o/ h - ;;; Permission to use, copy, modify, and distribute this software u4 x3 N& Q2 D4 _3 j7 F- H) V$ L4 `
- ;;; for any purpose and without fee is hereby granted, provided
1 S+ u* v& F$ `# d& A4 i* H; i - ;;; that the above copyright notice appears in all copies and
/ O$ [- a' O* P" T X8 o, _4 w9 Y - ;;; that both that copyright notice and the limited warranty and4 h5 c; M& \3 L3 ^' Z _( c+ S
- ;;; restricted rights notice below appear in all supporting% Q$ Y% a H* ] V, n& r
- ;;; documentation.
) O5 r! q/ k& t& e$ W - ;;;) Z# `2 f* o2 L6 y$ U3 v4 {
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.2 o" ~) m; Z! u1 X/ @2 q) r7 h- M
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF4 U5 ^4 Q$ ?- Q8 k3 o! J2 f
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
. n: z0 ?) @( t3 p( p3 @ - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
. Q. D1 L' b/ p2 m2 N1 F - ;;; UNINTERRUPTED OR ERROR FREE.
: e. B' {4 F- o5 |$ B) k% s - ;;;
; h" l2 [7 ~% K6 u! | J" m9 } - ;;; Use, duplication, or disclosure by the U.S. Government is subject to. `- Y& E/ M& [: w# \- M8 ~$ u
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
/ m7 {# e- }0 K8 I4 a1 N) _5 x+ x - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
* i/ w0 h7 r5 s - ;;; (Rights in Technical Data and Computer Software), as applicable.
2 H' I2 J- H M1 Q* I8 ?$ n- @- ` K. z* y - ;;;8 H( Z1 s3 {- S7 t$ `
- ;;;.
0 u; p: M2 V9 D' l - ;;; 28 February 1997' h3 C, e4 L+ p( T# c+ ~# M
- ;;;
& r- C2 @/ y- O0 i* `7 T - ;;;. O. y3 z. U2 g& t, S( V7 \' Y F2 N
- ;;;----------------------------------------------------------------------------0 R, u' y2 F) E: L: [" B5 v
- ;;; DESCRIPTION7 P/ u+ I" b, ~
- ;;;----------------------------------------------------------------------------
( Z5 {" `; \2 P8 h8 } - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
1 L! } b H9 b1 c5 k1 k0 @5 R - ;;; command gives the user the abilitie to change several characteristics
( l! h6 K5 |( Q) S0 P/ ?3 l5 t - ;;; of selected polyline and text objects. 8 l! a: F4 O& D: ?
- ;;; The style and height of selectected text objects can be modified
4 U4 c8 @5 k' E3 W8 p/ j5 ?8 |- z7 n9 Q( C - ;;; (including text, mtext and attribute definitions) as well as, width and 1 V4 V' N' ?( ?
- ;;; elevation characteristics of selected polylines (includes lightweight and
$ v0 v" M8 u2 g - ;;; traditional polylines.)
3 P! A: h: Y! Q/ k2 ^4 x - ;;;----------------------------------------------------------------------------7 a2 a7 `. b' M) o
- ;;;----------------------------------------------------------------------------
/ `. O! v3 Q6 h( N, G - ;;; Prefixes in command and keyword strings:
8 ?- b) d& N, b3 k8 |6 P' v - ;;; "." specifies the built-in AutoCAD command in case it has been
: C% D2 m8 t8 j& T, C( V1 k7 ] - ;;; redefined.
2 D& n- U, _$ _9 k! b4 h# B( g. c - ;;; "_" denotes an AutoCAD command or keyword in the native language2 U& `2 ]1 [- l9 h( g* s: l
- ;;; version, English.
" R7 {4 `+ P: J/ {6 y# Q - ;;;----------------------------------------------------------------------------8 n; q. n& ?! h* F7 u
- ;;;: O7 Z, U% [( @
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+ M# n' k6 ^1 s! q2 @$ V Z
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ~2 {2 ^5 C; O: f* G$ C - ;Functions created as result of loading file: exchprop.lsp
7 J9 j9 ]$ q4 p4 S - ; DDCHPROP2
7 Y& T) y6 K8 G/ r5 m- a# x - ; DDCHPROP2_INIT6 _ X7 Z' `* c1 X! h5 j# y
- ; DDCHPROP2_SELECT
- G% v. P. R6 J - ;2 L* `3 {# e7 W" A2 X* g, c! s
- ;Variables created as result of loading file: exchprop.lsp. n" j, U" Y# b) {) Z6 |# I# \
- ; OLD_ALLOC
$ J2 g, e' b$ P! |# y u' `% E% U - ;( Q1 Z6 i' W C( v, ]9 |
- ;Functions created as a result of executing the commands in: exchprop.lsp W' k" ]5 m' V# l
- ;
: p6 K& B, ~3 ]" r+ R4 K# M - ;Variables created as a result of executing the commands in: exchprop.lsp
/ E0 u/ Y+ M- F) T% z6 [ - ; AI_SELTYPE5 \: I! ~5 g/ v: H
- ; BONUS_ALIVE
$ L% V2 I/ q/ a2 o8 F - ; BONUS_OLD_ERROR
4 ?9 _! p y# b5 S0 y! o - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# n% D a- O4 d4 s8 C2 [/ ]+ ~2 j' x
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1 \5 f2 o L( E- B. }, P - ' M& }" {; n, O/ b) F$ h' q8 t7 ]
- ;;;
4 o8 z1 t) g' m: W - ;;; Avoid (gc)s on load to improve load time.
! g4 n( F% \# C2 m: W t - ;;;: d1 U! {2 {3 M8 u) Q
- (defun do_alloc (/ old_allod new_alloc)9 E/ W( g; {2 K% G8 D, |
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))9 ]7 C9 F! { P% \0 x! m
- (expand (1+ (/ 4750 new_alloc)))1 `; V0 m6 g3 p7 J6 Z
- (alloc old_alloc); t% K" b* [9 o2 e, h$ c
- );defun
4 F, h/ N/ S1 ^: Q
2 D6 H) u* Y- E! T) m- ;runs at load time - rk
( B3 [# S- r2 h5 S - (do_alloc)
3 S# o7 g; i! Y* D# _: F - (setq do_alloc nil)
7 {: M4 ?( ~( O5 ] j; U - ;;;
$ j% i* U2 v6 M/ Q- D2 D) @ - ;;; ===========================================================================" e* Y) `" s) `/ `& i
- ;;; ===================== load-time error checking ============================ {3 S4 @- O% M9 H- a
- ;;;9 c9 d t5 `2 w3 ?% X' _7 x
6 o$ m5 r) _/ O# F; M5 V& S: x- (defun ai_abort (app msg)
' J; u6 }! @5 o+ ]/ q; S+ V - (defun *error* (s): q( o6 k3 |# a6 f
- (if old_error (setq *error* old_error))
2 j( t, B& J# u, i; \3 u# ] - (princ)
7 @* I- w: y5 n' U% B0 m - );defun
# G* h8 y" t+ @) { - (if msg
7 R& ?3 Y* }% ^: D& i - (alert (strcat " Application error: "7 j8 t- ^, z+ T) n) e
- app) D- ~, j& D9 r, |4 Q
- " \n\n "
$ P$ n% r* D4 t* J - msg
; Z, n; a3 @) q5 b [ - " \n"
% P- T- n* p: m* z - )
) K7 Y, J+ V4 k# x7 E - );alert
. I# V/ O3 b3 u6 \, m& `$ K - );if9 B0 f4 ?, J c' g$ B6 g4 f
- ;(*error* msg)6 Q% t) M E4 p) W# [+ T* J7 F
- (exit)3 i: V! i7 `9 }, _) ^$ G9 i5 w3 {
- );defun ai_abort9 J+ [& w+ [) p9 P2 h& I! T
- & {) n0 D! p: ^7 N2 y' h% A
- ;runs at load time - rk
) H: V/ ^# D8 z/ v; r - ;(if (and *error* ;added the if wrapper around this - rk.
0 i1 c, w- Y, {2 v$ c! t; W - ; (not old_error)
4 |) z$ V B4 S9 H3 U - ; );and
, A0 |4 g+ z% V! W - ; (setq old_error *error*);setq3 D6 t# b% l6 q1 j
- ;);if" W' y$ T! f& _" @1 I- K
- $ {# I+ }9 [, O n+ {* R
$ W2 K P( K$ P1 j) c8 x- J- ;;; Check to see if AI_UTILS is loaded, If not, try to find it," X* r; {: t# a/ ]0 I# L
- ;;; and then try to load it.3 w6 U: T$ Y: i: L, e
- ;;;
2 f- h3 i3 Y4 y - ;;; If it can't be found or it can't be loaded, then abort the
% Z5 t; `2 ?: g' Z3 `/ L( n! h9 ` - ;;; loading of this file immediately, preserving the (autoload)
; i; @+ {5 l3 N7 h; H' \ - ;;; stub function.
. o( ]7 v4 ^2 V4 b# T' ~/ v" g+ s - ( O3 a' v. A9 y c! l
- ;runs at load time - rk.9 Y- p$ J8 K" M& w' v Y/ {
- (cond2 J0 Y4 |4 J$ e8 X
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.5 m* S+ c9 Z- h
- ( (not (findfile "ai_utils.lsp")) ; find it; M. ~) t0 |2 I( o& I; r
- (ai_abort "EXCHPROP"5 B k5 T7 w, W
- (strcat "Can't locate file AI_UTILS.LSP."/ i, R' U; r- D
- "\n Check support directory.")
7 j" a! |5 f+ K) Y; U! L7 r9 W$ y - );ai_abort
: r) ~0 w8 y' s4 O& ~ - )
1 Z" \& S# d3 `/ \ - ( (eq "failed" (load "ai_utils" "failed")) ; load it
6 h/ t+ n0 ]5 Z4 E - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")0 o! w5 M: S- ^1 ~
- )
2 U7 ?6 N( Z) ` - );cond close
5 H/ d4 O6 c1 {1 ?
$ l5 l6 i' L8 t4 j- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP' L% S# @$ ^5 O% i. h
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
1 y/ y6 g# g6 T' H/ |; m; y - );if ; ai_abort's alert box dialog.# g" C' C4 g5 Q! g6 b0 Q! D" M+ @( |
- ; N* B8 o. r$ Z8 c$ B3 m
- ;;; ==================== end load-time operations ===========================& X$ t2 X# B% {3 v; a
8 h" q+ Q* u: s' O4 f- ;;; Initialize program subroutines and variables.% I# V9 B# g8 v+ `
" T* z! l$ K1 Q/ w, b; W- (defun ddchprop2_init()
' O0 U& R3 E) J+ e9 t
9 k' |) a" B) N
) r4 X: a: W8 ~( w- E
+ Q b6 W( ]& N8 l5 u. J5 Y k. o" F) E- ;;
* n3 {% `0 Y0 @8 c! H; k - ;; Define buttons and set values in CHPROP dialogue box' f8 V- V' N! |/ Z$ E. L( b
- ;;
$ ]) f. p+ m; Q$ b4 F0 R - (defun call_chp2 (/ cmdact p1 p2)
$ n& E2 Q2 Z h; w% p& y3 Z+ w4 B
7 [" B; k( j2 G3 g- (if (not (new_dialog "ch_prop" dcl_id)) # K7 q$ F2 n% i6 ?+ H/ a
- (exit)
- F8 T' A( v3 L6 Q6 e: l" O - )
7 W+ H8 U- _9 I! P4 F1 G+ O
( O, t, `; M2 S- (set_tile "error" "")
1 G$ y1 o! F, c# p0 H: }( o - ;; Set initial dialogue tile values
3 @2 L9 z" t/ E- A% q - (set_col_tile)
, c3 L4 z8 [+ x% A - (set_tile "t_layer" elayer)+ K0 _( e% J( V/ `* D! d0 O
- $ F$ I' ?0 \' w" B
- (cond
4 ~3 \. A2 \ `: l) y - ((= lt-idx nil): X9 A, z" @1 Q9 S" m
- (set_tile "t_ltype" "Varies")
9 E# a# l7 m1 l& X: i - )+ }, H: j7 B* E' u/ C5 R# T
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
1 E$ Q0 C0 K/ D; n- L x+ T - (set_tile "t_ltype" (bylayer_lt))! r3 ^- [: i: Q$ V
- )$ f6 [7 p3 m2 `
- (T
8 ^; `* w% W+ b6 R$ x - (set_tile "t_ltype" (nth lt-idx ltnmlst))9 M+ @2 B3 u) T( |
- )" l' K0 u5 E G# e$ b% |
- ). R% U$ C. M; x
& M9 W0 m+ c' {* s- c- (if (or (= ethickness nil)
# A ^) o% `5 y - (= ethickness "")
6 N, c! L, `9 J- j7 Y - (= ethickness "Varies") 8 w; P8 {! e( M4 E4 A+ J
- );or' Y: b4 X/ a U3 c6 g2 g; _
- (set_tile "eb_thickness" "")9 b% O0 O6 ~' q- X: g& W
- (set_tile "eb_thickness" (ai_rtos ethickness))
- v, m- U% N" x: _ - );if
4 h8 j/ t7 S* S" M' s3 p' V% M. K - (if (or (= eltscale nil)6 M! A* i8 r" S: M# |+ G6 e# u' _
- (= eltscale "")
- t6 u# Y e9 I, n - (= eltscale "Varies")
$ |' \/ o" f/ l -
4 X' L$ z6 r5 ~ T* s+ p - )& c+ v$ G: e( `) x' w
- (set_tile "eb_ltscale" "")
$ x* Q4 |1 p) v8 K! j1 r/ r - (set_tile "eb_ltscale" (ai_rtos eltscale))
; V B: F, q" n B3 b" t9 e - )
9 X0 T/ M1 P; }/ A2 ]8 K7 W' h - (if" `' Z- N) `1 i( i0 F# ~5 t
- (numberp ewidth)
, x4 i* g" d8 [! ]2 ? - (set_tile "poly_wid" (ai_rtos ewidth))( X# b# n7 @5 ], h
- (set_tile "poly_wid" ewidth)
, B- a/ S: Z- | ^/ `3 O - )( b9 a3 n4 g, g h U) {
- (if
6 \+ b( d/ O) g c - (numberp eelevation)2 g M5 D: D! k D3 L
- (set_tile "poly_elev" (ai_rtos eelevation))! Z; y. Q( x5 K0 Y, J; u& p
- (set_tile "poly_elev" eelevation)# V3 r4 T6 b. u9 c1 V: C
- )
* T- p* N/ A+ ^: w% P: J8 t/ X - (if( ~! ~% U5 C6 f' }/ D- U
- (numberp eheight)
+ {8 H5 \3 R! V( G* t - (set_tile "text_hgt" (ai_rtos eheight)); T: X! ^7 J9 ? V
- (set_tile "text_hgt" eheight)* b# j; t# z9 c. x& N
- ): X# X! a4 ~% W+ i$ @ N2 u# |# _2 D
- (if (not estyle)+ E: ~4 u! f/ }5 M
- (setq estyle "")
6 M8 J0 m, d8 t1 `0 S - );if 1 Q5 M0 F+ ~, {# [' W
- (setq hair_style_list (tnlist '("style" 16)));setq! o4 i$ l$ z% U' ^8 H. M
- (if (not (member estyle hair_style_list))( P5 x0 t/ E/ n/ w5 ^: N
- (setq hair_style_list (append hair_style_list (list estyle)));setq8 M8 O S) `- Q" B$ ]; j+ P& \' l
- );if 4 W+ T4 m* X; R: ?* A# Y' ?/ z, ]
- & d6 P) G& K- M0 _1 c+ W5 m2 m
- (setq hair_style_list (acad_strlsort hair_style_list));setq
! w# B x9 y0 E& p - (mpoplst "text_style" hair_style_list)
4 A/ h8 f, v g - (set_tile "text_style"
9 b4 M3 x& M/ p" I - (itoa (position estyle hair_style_list))
) Q$ R9 O# u q3 ~ @% \$ H - );set_tile 2 ]6 L8 y2 a& h" R2 @
9 D0 J g0 } h5 F' n- ;; Disable tiles if need be... ;@RK
4 }4 C) c8 j7 Y: t7 z+ y( r( [ - (setq a 0); U$ b! [9 H) k# N# O
- (while ( < a (sslength ss))8 a2 X1 k1 I# C
- (setq which_tiles
" {4 j' T3 f+ \' n - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))8 g( I9 f S8 P7 |3 Y1 b" E
- 1 H$ k) N/ |* U4 y) [# G0 u2 x2 k! p
- ;; If all fields are enabled, don't bother checking anymore.
6 n$ v8 B m3 j: \! x6 L - (if (/= which_tiles (logior 1 2 4 8 16))
# c9 Y1 ]$ _/ l. k, } - (setq a (1+ a))0 x! y, i7 B6 I
- (setq a (sslength ss))2 ^2 l6 f2 R' `$ s X
- )
% P2 b* V! P' T3 H3 B - )
G L8 N, r# _( D - ;; Layer Button and Text Field
: c3 o8 r- v9 @1 Z - & d0 v& v0 i9 j; p' l7 [. o& p
- (if (/= 1 (logand 1 which_tiles))
; X0 N! _/ \9 T9 @! r- O" ] - (progn
, z- b0 }& ^+ w/ Z( ] - (mode_tile "t_layer" 1)- L8 u& F. [/ w) O
- (mode_tile "b_name" 1)
( G! q9 {2 j, g' h# ~2 Q+ @ - )
4 g W0 d( O& f' h; g! w# L - )
: T8 t3 T* D% Z P - ; B6 o8 j0 E4 S [- l% {
- ;; Color Button and Text Field8 a( s0 Q; B* O" Z+ d- }$ C
- (if (/= 2 (logand 2 which_tiles))
+ r# n5 Q A' [0 U6 p; L - (progn
" |- v3 Q6 t& x8 f/ C - (mode_tile "t_color" 1)
; h( t6 U( d5 @ - (mode_tile "b_color" 1)" u: @- F0 D3 ?. z8 W
- (mode_tile "show_image" 1)
/ E6 Q1 C8 s V - )$ {) v0 ]7 _ v) s6 a# m" J; n
- )/ _" A9 r# O% w$ X% T
- ;; Linetype Button and Text Field! `2 ?+ D( S4 y$ ^; |; i4 d @
- (if (/= 4 (logand 4 which_tiles))
1 s8 \1 h. Y( e. \- P4 e9 s7 }6 A- Z - (progn
0 C) I- P( L- N& D/ H/ ^; s" C - (mode_tile "t_ltype" 1)6 a# G: C, ]/ W5 i* E) {/ i
- (mode_tile "b_line" 1)
x5 o( T7 L% |( X l - )4 |7 q4 I; e! U
- )
) D' E4 A: a! T5 ] - ;; Linetype Scale Edit Field
6 f* g& ~2 d/ ?* C - (if (/= 8 (logand 8 which_tiles)): i8 l' I# l1 `# s, t
- (progn; s4 l4 f% D6 W+ j
- (mode_tile "eb_ltscale" 1)- g3 m1 _, y+ a
- )
$ D3 a6 Y1 i8 B! [2 A - )/ ^% U( _5 ]- v2 j; p8 x
- ;; Thickness Edit Field./ g! t. m$ m! K. d
- (if (/= 16 (logand 16 which_tiles))
, x& i$ V: y9 o$ [. v4 J - (progn
8 k4 z& Q" @7 @; u5 e% R/ }1 I - (mode_tile "eb_thickness" 1)1 X N1 f, X; R7 q# d
- )
# N& {( a3 d B7 ?, f - ). k3 `5 q1 E% M" h5 b9 G. b$ d5 \
- $ x: g& w9 ]2 N2 h7 e3 q4 Y
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
5 r! M/ C1 s, U5 ]2 F4 @ - (if (not (= 2 (logand 2 eflag)))
1 h& ^. t/ r* e# Q, B) S9 ?, {7 D - (progn7 U+ l9 O9 ^# t5 s+ T$ Z/ z% p
- (mode_tile "text_hgt" 1)9 P' h8 B$ r4 U8 K) E
- (mode_tile "text_style" 1)9 T& ?1 l( N6 g' P
- );progn
/ o8 ^/ E) V1 A t. A9 f9 E - );if+ E. j/ A4 a: j7 J% P6 |
- (if (not (= 1 (logand 1 eflag))), u R y- Z! `3 }2 a
- (progn : E; W2 Z9 c9 D/ P: h* u5 S3 B% h
- (mode_tile "poly_wid" 1)9 m+ |! }8 U% D, M
- (mode_tile "poly_elev" 1)
+ S j9 T" }7 i% _; Q; C/ s - );progn then disable polyline fields7 \9 j3 p( A* S6 w, S% \
- );if
3 g7 I+ u, o) @ - 6 w- e! m/ |( G0 P3 y0 F3 w
- ;; Define action for tiles
4 S) ?5 G" q; K. b& _: Z& q - (action_tile "b_color" "(setq ecolor (getcolor))")8 T3 [$ j% S: X+ F/ j
- (action_tile "show_image" "(setq ecolor (getcolor))") ^; I; U, S( K
- (action_tile "b_name" "(setq elayer (getlayer))"). s" L0 K) ?8 C: g: t0 N1 n5 t' B
- (action_tile "b_line" "(setq eltype (getltype))")
' I r* j) R3 M% k D - (action_tile "eb_ltscale" "(getscale $value)"): s ~! P& n; m+ T: X L! ]
- (action_tile "eb_thickness" "(getthickness $value)")* i! U: e$ O, ~6 n' M8 G
- (action_tile "poly_wid" "(getwidth $value)")
' {8 m a* X$ s! `- C; _9 a! y - (action_tile "poly_elev" "(getelevation $value)")
' K2 [ V' H" f( m# _7 G - (action_tile "text_hgt" "(getheight $value)")
* G6 h* x7 n/ s C - (action_tile "text_style" "(getstyle $value hair_style_list)") / B [! S: r6 m
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
" G! f- U- P# Y% B - (action_tile "accept" "(test-main-ok)")1 I0 t! P0 x3 |8 w% x, y5 G' W
- . P$ C- G3 N! d$ d8 ~
- (if (= (start_dialog) 1)* n: R# [: X5 X- Y
- (progn; v* X: b* X8 | m
- ; Update special properties for polyline and text selection-sets.
7 C9 N! u8 s8 K - . ^/ c- d e! {+ ^( Y
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop$ B8 q* J7 Y- W) U; _$ u; G* Q- W
- (or ewidth* {' H6 Y4 h* P" m) H+ ^
- eelevation3 i/ ]7 _) E) |; \# I" \
- );or0 g+ _ y0 F, m- x9 o
- );and
* e, T8 n+ [" t) v; ^, s - (progn
: F0 T# E( h2 F8 J- h - (setq ss-index 0 2 ^( ` {( k$ @9 {5 [% k
- ss-length (sslength poly_ss)
4 t# ?* _( _4 t - );setq+ }: X) g* }, y0 U
- (while (< ss-index ss-length)9 U. T7 R6 W' l( d9 k
- (setq ename (ssname poly_ss ss-index)
) ?* U8 x+ u |- \) { _ - elist (entget ename)# W) |/ |! \/ ?
- );setq
7 Z5 [. G- t. a; z6 w( d - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
3 d( A. z% J' _% R- X - (if ewidth
7 v% @# e5 @2 u/ V8 |6 X" d5 t7 } - (command "_.pedit" ename "_W" ewidth "_x")
0 s6 L' P0 H1 N - );if
/ L) H" m+ F8 j2 w2 p o/ B - (if eelevation 3 ?( K/ x( I ]0 e* S
- (progn0 T" J9 f9 o3 c: A! S
- (setq p2 (list 0.0 0.0 eelevation));setq. P' O5 Q- g. |
- (if (equal (cdr (assoc 0 elist)) "POLYLINE") U1 g2 q0 U; y* `/ l1 O" h& B
- (setq p1 (list 0.0 0.0
' H1 c& E0 D9 w& I - (caddr (cdr (assoc 10 elist)))! m; {1 X9 B) \ u2 q4 Q; G# j
- );list
~3 |; `$ R% E0 j4 t9 b& _2 B) q - );setq% M8 U) @0 l4 B. _
- (progn
6 [$ K" i; ]- q; n5 ` - (if (assoc 38 elist)
& `! g1 d" r: x6 j! N - (setq p1 (list 0.0 0.0
# Q5 `) z8 t6 g' @ - (cdr (assoc 38 elist)); K( m: ^& [! N
- );list3 S$ C; \9 ?$ p" b( ]! ~. i; o
- );setq6 o7 y6 _/ K* ?/ i& g8 E/ k. L# S8 Q
- (setq p1 '(0.0 0.0 0.0))- W5 }3 b7 L6 V
- );if2 b- [" N. o5 r) B- h; z
- );progn
% }. _, o5 [* t0 r - );if; b4 E! s6 a1 F( C( V# ^. n5 W
- (command "_.move" ename "" p1 p2)
0 F" e. ^9 {+ B& n; R - );progn then change the elevation of the polyline8 `1 a9 t" ~- h! `' \$ |) Q4 k8 t
- );if
+ I1 ?- z. b" l0 B" ~ - (command "_.ucs" "_p")! E+ x; m- \7 }1 ?# R5 z6 h
- (setq ss-index (1+ ss-index))
) _6 X( T( A6 v: v, d! l2 L - );while
: w2 L& H" T2 r( b/ W0 C# ~ - );progn then polylines are in the selset
: _. K2 g+ o+ k7 h+ Y( W - );if
9 C" _( K* T# A/ ~) B$ g9 v3 C - (if (and (= 2 (logand 2 eflag)) ; text
% r- r: v1 a: Z6 E- ?5 U9 a* M% @ - (or eheight
" Y2 G Q; M8 D0 Q. h+ s - estyle
9 g8 y f7 v5 i) V% S/ n1 ` - );or# \# ^; n" T* ?. z. i: M/ n
- );and, x* h& L" ]; f6 O/ V6 a
- (progn& g9 t# X* C- S( M( m7 Q7 `! h
- (setq ss-index 0 ss-length (sslength txt_ss))( `6 k0 m* H, m9 T$ S
- (while
* h' b7 T9 u' ]+ V& e4 r4 h) o! q5 H - (< ss-index ss-length)
4 U' K9 M) m( N/ f- K: v5 t7 Y& k - (setq elist (entget (setq ename (ssname txt_ss ss-index))))9 D& D& s1 X' R1 A! A
- (if (numberp eheight)
I" O a. ?% s9 X& Z9 e; R9 k - (setq elist (subst (cons 40 eheight); |# L! `0 w0 v) J" T! v4 j
- (assoc 40 elist)0 o1 s( T7 L c$ P0 D Q
- elist
: P$ D7 T# G4 C' Q0 D7 K0 O# T" X0 w - );subst! r* v" e" s1 B1 e
- );setq! ]' u8 U* V' a/ Z
- );if
" H$ a' n# V9 Z - (if (and estyle ;(not (equal estyle ""))
( f: V3 N- W$ u! Z, ] - (not (equal estyle (cdr (assoc 7 elist))))8 w; M% @8 q, M0 V
- );and
. q4 V& t0 X& b& N# l9 {6 c4 t: U - (progn V- n& \. z* Q$ I% R' X5 d1 `
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
5 _, H' u! ? H- X9 g9 @ - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))2 t8 S" h* }# j' ]5 z0 Z
- ; (setq elist (fix_mtext_fonts estyle
. M# N+ T& c/ n* A - ; elist
- X. [. {3 b! Y - ; ); A% o$ _2 X9 v0 o/ U
- ; );setq then
+ }; |& S) ]* j# F( ~ - (setq elist (subst (cons 7 estyle), T8 e1 M) P/ ^. r/ B) b
- (assoc 7 elist): X0 I7 P _0 Z( m. @. U7 \
- elist2 e4 Y, o: l- W8 x0 }6 o
- );subst
* f, `: ^+ x" r5 G9 n) i) E - );setq else8 H- l$ g/ o% _ ^3 _* a* D
- ;);if 6 g4 E$ O3 f* D8 ~
- );progn0 L# p$ x. Q" \1 u
- );if3 W3 L7 h/ J( t; l% E [
- (entmod elist)* B6 U9 k& r; A/ X
- (setq ss-index (1+ ss-index))5 R, t) b' x1 y9 y9 Y
- );while
, ^. ?: Y0 Q) m - );progn then% X v: g: p4 | U$ o2 j0 ^; l
- );if6 J$ l0 X9 C, l X. E, d
- y' k9 h( m' ?% v+ j2 Z- (setq cmdact (getvar "cmdactive"))! r9 r) w8 r/ C X6 @6 j% D$ E
- (command "_.chprop" ss "")
- D% u+ G9 L2 J i - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
' k% A) t3 o1 s& a - (progn& ]) N% U# \% p. I% Q5 G
- (if ecolor) |( Z2 f; R+ g0 i8 f# L, c
- (progn2 B; H4 [/ V' l% C" ~& |7 F
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
2 H/ G4 ]3 `* g. _+ o5 p- H - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))) u& U+ S! C/ `* E8 c
- (command "_c" ecolor)
, k5 o- N6 }% | - );progn then
8 v+ Q, J; z) l# T1 s& f* T - )$ g5 H4 o1 r/ s9 w m$ I
- (if (and lt-idx% d6 y# _0 d( W5 o0 K
- (/= eltype ;|MSG0|;"Varies")1 `- G! @* i" p. q8 @/ q/ M- H
- ): v( c/ W {8 Q4 A& g5 h
- (command "_lt" eltype)6 a: C8 c* o' i) _
- )3 o" g3 m9 c! G
- (if (and lay-idx 0 `+ h( w# m+ M( o$ [6 m
- (/= elayer ;|MSG0|;"Varies")
: f/ Z! L0 f1 `# @3 `; L k - )
- y. k: u: s" m0 l+ m - (command "_la" elayer)& \/ Y1 z% k, x; J
- )
$ f, M j" E7 J% R - (if (and ethickness 0 f! ^$ M4 p5 i7 R0 j5 v
- (/= ethickness "")
" j z$ _ z9 y }, @1 d, R' [ - (/= ethickness "Varies")
4 h9 I, y! d2 l) \- | - )
4 [2 C9 B& W, ]! i9 [4 ], Y5 e - (command "_t" ethickness)
; j' H6 @, Q+ h$ x r% d: K+ v - ), b4 H, N D( Q. \+ T$ W) s
- (if (and eltscale (/= eltscale ""))( t' ]. m6 k% ^+ x N
- (command "_lts" eltscale)
% p6 s3 P' S) h- _ ^ - );if
/ ~* J% @! W- e& S* V - (command "")
2 Q/ D3 ~8 Q# g6 l; }) g4 ^ - )
% i1 u6 \6 e, r$ T( x' t$ O/ H - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
& I3 Z# F* K7 \ z/ ~ - )
' q( l7 i j* S. P0 I - 9 l5 c2 p% M9 _: D" f3 U, k
- );progn then OK was picked in the dialog.
7 p1 n2 `6 t$ q; i0 ^. _/ m! [ -
& P+ a. e" k# {+ O8 { - ;; Fred GERBER - 25-AUG-94
# N8 g/ L5 m: C# z6 ? - ;; Don't print the "Properties unchanged" message when the user cancels
! h! t! A8 U$ z) V% X. M - ;; the dialog because he knows that already (otherwise he would have
, }9 B. e [: U8 q# K$ R - ;; hit the "OK" button). Display the message only if CHPROP fails for0 u" ^! ~, z# H, _; l) F; k
- ;; some reason, because it is not the expected behavior of the command.8 a0 G+ L( j0 `$ X8 k) }) m( x
- ;; d" C. N8 I. u3 m% ^) B A
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")) U' y c% \2 \, H* q; q. ^+ Q
- );if
- t$ a; H0 y4 ~( ~1 N& j - (princ)
& N- F+ F' j& m( ]2 b% A - );defun call_chp2
7 ~, f- E* r% ?& t - ;; O+ E$ d0 d! D$ ]
- ;; Function to set the Color text tile and swab to the current color value.9 w/ P0 b/ T+ I) u
- ;;
! ^& g1 V' S$ ~! X! Q r3 k - (defun set_col_tile()6 ~* c+ c4 J# r6 Y' C3 w3 s3 Q2 v. M
- (cond+ Q$ x1 c5 B% h9 s# \ h
- ((= ecolor nil)/ Y2 q$ }8 c8 w+ `+ D4 l0 d
- (set_tile "t_color" "Varies")
7 a1 B' m: {) r. ~/ L8 Z. @ - (col_tile "show_image" 0 nil)) A4 P8 u) j! }2 r2 a) o" T
- )/ O+ A" w7 I! V" g
- ((= ecolor 0)" M; \1 D d8 ]3 ^# H) k
- (set_tile "t_color" "BYBLOCK")
+ ]$ }: b$ L# x c ?8 a0 J$ I - (col_tile "show_image" 7 nil) ; show BYBLOCK as white2 F4 l6 J Y7 Q" I
- )1 F. }9 E' y/ C( u
- ((= ecolor 1)
) y+ V+ W; q1 W0 I; `) E @ - (set_tile "t_color" "1 red")
t+ H6 u- j6 T' T/ ~ - (col_tile "show_image" 1 nil)0 X* a# n8 s+ r: J3 [
- )
* E/ T+ g& i/ r5 D4 ?1 a - ((= ecolor 2), t& ?4 j' J. |) X
- (set_tile "t_color" "2 yellow")5 v+ _* L4 v# r7 p, {% L2 b
- (col_tile "show_image" 2 nil)
5 F3 E6 [+ }/ U1 e. ]( E - ). I' r) d- |0 }1 u6 K7 P; p; j0 I! e
- ((= ecolor 3)
9 i2 J4 J u# h* x) W1 d" C - (set_tile "t_color" "3 green")
; f& j( Z* b- X; I - (col_tile "show_image" 3 nil)
' {9 B7 [+ ~- l) L$ Z5 K - )
% {& D: g4 Z# V8 s6 B - ((= ecolor 4)8 {$ |- F2 L1 D* A: u" f7 S
- (set_tile "t_color" "4 cyan")
$ ?% a* W( |0 p) y2 ?# E2 M - (col_tile "show_image" 4 nil)
l' z/ [' `1 n, E* \; u" B - )
9 {6 A+ N% w1 r: C: q+ q - ((= ecolor 5)+ @2 T" X* q; e1 F
- (set_tile "t_color" "5 blue")
1 j. u# X5 x" C- @: R4 F' w - (col_tile "show_image" 5 nil)
1 D) [2 V1 i0 F' x! C' } - )+ b8 i" c8 _+ \6 t
- ((= ecolor 6)
( x* r7 K9 ]; D* |! v - (set_tile "t_color" "6 magenta")
2 b# _' {1 B. q - (col_tile "show_image" 6 nil)
( K6 ?) B" D( w" T, X8 r% B/ t. R - )# V$ D9 c/ D. D$ s* K/ I0 a( S
- ((= ecolor 7)
% }- d4 g# g( j; J, C* c - (set_tile "t_color" "7 white"): [) v7 M! t1 j& Y5 e2 |
- (col_tile "show_image" 7 nil)
: g& a7 Y! k# E: W: j% v5 ], K - )
4 [9 r1 a* p6 O' k1 {% { - ;; If the color is "BYLAYER", then set the tile to! N3 }4 c+ u2 j
- ;; show it's set By layer, but also indicate the
1 m$ u4 o& b3 v - ;; color of the layer - i.e. By layer (red)
3 U: H) V0 w2 d( V$ S - ((= ecolor 256) h3 m' } H2 Z
- (set_tile "t_color" (bylayer_col))- ~ W# \: H6 p. a- b, p
- (col_tile "show_image" cn nil)& H8 e7 O+ Z: `
- )
4 ?" V, `) ~5 l: U9 c5 i N F - (T
% J( ^; P8 g% t* g y0 m8 _ - (set_tile "t_color" (itoa ecolor)), A. n4 ]" G: ? ~
- (col_tile "show_image" ecolor nil) B% k' y3 T; ]& P$ p
- )$ n, M- X6 t) g
- )
' u6 w. g, R7 R0 H% G9 p4 a - )" S5 ?& y, f; {3 ~! i. x: V* t
- ;;- l! |4 t8 q7 f1 z3 M4 k! w f
- ;; Function to put up the standard color dialogue.+ [. Q1 t* ?, i* F7 B
- ;;
) E2 `2 l' b2 u0 b - (defun getcolor(/ col_def lay_clr temp_color)
" |- V0 B% V% f - ;; col_def is the default color used when rq_color is called. If ecolor' R% \4 X7 c1 L0 T
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
1 ?0 f7 s$ r! ^2 v1 K9 Y8 x - (if ecolor
! a: M* L2 c( U! ?; v5 b - (setq col_def ecolor)
" E0 d* h3 g, E9 B1 d$ M3 c - (setq col_def 1)
4 n9 O1 Q4 G" d - )
; V' e$ p6 z# _! p1 \. J8 y - * g/ u! m8 }/ i" l+ F) |
- ;; If we're working with a single layer, get its color' e. E6 ?0 Z6 @8 j0 W8 F
- ;; for use in the color swatch if the user selects color BYLAYER.: T Q+ J& Y9 X5 B5 e
- (if (/= elayer ;|MSG0|;"Varies")
' @: Z9 p* y# _2 l A - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))6 G( p4 c1 o1 j- m1 X, f
- (setq lay_clr 0)( l% X! [! h5 v* T# B7 _
- )( q7 \- M; c9 R1 Q* W
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
B8 |" t. i) _/ I' Q - (progn
/ `: i6 F6 B( |4 B$ K* J - (setq ecolor temp_color)0 O8 q5 q7 s) f: y+ ?+ l% q+ C4 }
- (set_col_tile)/ \: G! M0 U3 ^- `0 p, S
- ecolor
! b- L) M' Y2 K$ r8 o: }6 P - ), C) \: d, o9 d" h' q# o
- ecolor
9 d9 o* r$ [0 u | - )# C( V5 f; S% |2 i4 r5 z6 U7 E9 ~
- )
, H' E. a8 `* \* o% O0 { - ;;
6 \* V5 `6 U" L6 @7 B" N+ \ - ;; This function pops a dialogue box consisting of a list box, image tile,
% A" o, m, ^/ k8 [8 Q3 I - ;; and edit box to allow the user to select or type a linetype. It returns
3 }& y" S: ?+ ^4 A - ;; the linetype selected.
7 |, m# \1 U, k$ w - ;;+ I! I& O! R5 e$ W
- (defun getltype (/ old-idx ltname)
+ B3 w7 O) x: @6 O/ E8 F' A - ;; Initialize a dialogue from dialogue file* X+ J. \4 v+ Q8 d' _4 Z+ V
- (if (not (new_dialog "setltype" dcl_id)) (exit))+ ^0 s! g% y, Q- R8 f
- (start_list "list_lt")3 P) R8 i+ F% P1 ^3 Y
- (mapcar 'add_list ltnmlst) ; initialize list box, F% M9 b }$ O
- (end_list)7 j. i% Z' @5 u: b/ h
- (setq old-idx lt-idx)
* I# n+ I8 d3 q& p& b: g1 O/ Y7 P - ;; Show initial ltype in image tile, list box, and edit box" _7 ~4 H/ e9 L# Z+ y
- (if (/= lt-idx nil)" }8 P# W6 X9 D+ ~) r# Q/ X
- (ltlist_act (itoa lt-idx))
S. ~. L+ l, p7 y - (progn
c. N: q5 Y b, J; P - (set_tile "edit_lt" "")
% j3 Y, v7 [" O - (col_tile "show_image" 0 nil)
: k! b: C: |4 S9 i0 H - );progn else& R, w% ?3 w, e, d1 i; R/ k% {/ R
- );if. c7 S/ C9 y$ e! k4 Y, p
- (action_tile "list_lt" "(ltlist_act $value)")
) s% N9 {/ g8 [0 W - (action_tile "edit_lt" "(ltedit_act)")
( t; v; F9 M7 f; [, [/ ?0 | - (action_tile "accept" "(test-ok)")+ M2 y# j* a" ^6 k
- (action_tile "cancel" "(reset-lt)"), A6 R4 o1 p8 `3 O
- (if (= (start_dialog) 1) ; User pressed OK+ i ]" ~( @) u4 H5 l* O* D# Z
- (cond j" B* o4 \& o. e" V) G" d( M
- ((or (= lt-idx nil)% x. w; |0 _# z, K
- (= lt-idx (1- (length ltnmlst)))3 c( O$ ]* D! [3 T
- );or5 G4 }# o) a, l
- (set_tile "t_ltype" "Varies")% P R, @: I e
- ;|MSG0|;"Varies") r1 |( S- l( N* z" Q
- )' o% n5 A; a/ H8 c. O- z5 O
- ((= lt-idx 0)/ ]4 p( Z& U7 q+ R/ `( q
- (set_tile "t_ltype" (bylayer_lt))) L+ k" C! @7 y% L3 g' ?7 ^4 C
- ;|MSG0|;"BYLAYER"3 G' g1 f- \4 ^$ g2 d
- )
( e3 k# i y$ V, ?% ] - ((= lt-idx 1)
. Z9 o: J" d a, D+ j8 q9 M# G. g - (set_tile "t_ltype" "BYBLOCK")0 G: h1 _- ]/ S8 }7 Y4 b
- ;|MSG0|;"BYBLOCK"
8 G: l/ s" r8 p- k# S - )+ [! x' T. {) c8 Z% S4 z" Z% d
- (T
. A. p$ b9 f) @9 ]+ P' o2 p - (set_tile "t_ltype" ltname)
8 \6 g. l; k# U. D! k - ltname* M4 ~3 D7 [7 b5 O
- )% E- M2 T% k; w" [% S8 b4 H8 \3 t
- );cond then" Y Y- S$ f. M: R) |6 @
- eltype n/ Y' |. F6 z# [. A& p
- );if
. r8 L. V2 X, r! u* x - );defun
& c- H5 E. _% {7 M4 m - ;;( A9 T7 V; _5 w9 s+ \
- ;; Edit box entries end up here
# M, q/ D9 h' I5 D4 y; _ - ;; w" @: W! i/ p C
- (defun ltedit_act ( / flag)
) x4 b" C C8 v; K+ ^ - ;; If linetype name,is valid, then clear error string,
6 ?5 ^0 S4 ^! T9 g. @6 i - ;; call ltlist_act function, and change focus to list box.
! g1 D" X, `7 y- [ - ;; Else print error message.
( _- h) z4 Q+ O" v) m -
: s& [; s0 K8 c8 i7 e( Q4 i& s - (setq ltvalue (xstrcase (get_tile "edit_lt")))
, z: r h. C+ h" Q M9 B - (if (or (= ltvalue ;|MSG0|;"BYLAYER")
4 n: w D# Z u, y. f - (= ltvalue "BY LAYER")
3 b: n% _$ Y$ e - )
& C# t( ]" v% I - (setq ltvalue "BYLAYER")
/ D1 m% a6 C* y, q4 Y - )6 O# C2 b: r/ ]1 Q2 p( K8 Y: P
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")8 G8 {. p2 Q7 v8 m, }. s9 l/ Y- g4 W
- (= ltvalue "BY BLOCK")7 }" |2 m# ]$ a9 [- b0 E9 H
- )
# b. ~6 q0 J5 z: l - (setq ltvalue "BYBLOCK")* y# C8 A4 z; a4 R U3 ?
- )
( t5 Z! q+ F( ?6 k% P! q9 l4 [ - (if (setq lt-idx (getindex ltvalue ltnmlst))
3 d! ?' s1 ?3 D. d. q3 o - (progn2 Y1 E4 v# z/ p! r& _8 A
- (set_tile "error" "")( ], Q) `7 g5 v$ E9 T) L
- (ltlist_act (itoa lt-idx))
) e) V: p3 m+ `' [$ Z+ K - ;(mode_tile "list_lt" 2)
k/ z, Z' ?4 ]' i4 V8 } - );progn then( ^. v& c! b) X
- (progn
) e* }- ~+ R3 b- Z L. F - (if (/= ltvalue "")+ R* b' ]6 D* ]; |; g) @
- (progn' s2 I& D6 m3 n3 ]6 r
- (set_tile "error" "Invalid linetype.")
% m% N' G$ h. E& J( k; M - (setq flag T)
8 J, C7 s( f8 Q7 g, `5 Q' D - );progn
P8 ]7 k8 D) w% M, C- l+ d9 H1 E# J - ). l1 Y2 H- y; Z" q. A
- (setq lt-idx old-idx)
; s$ b. h3 T7 ^& w - );progn else
% N$ e$ n& ?) Y# S$ [ - );if
0 E2 J" R$ I$ O - (if (and (not flag) ;added so a return will take you out of the dialog.7 L5 K3 z2 t0 x9 k4 w/ z+ B
- (= $reason 1)
$ ^/ V1 s% x8 U - );and
% r- I- A, q% r) g - (done_dialog 1)
% l [) C6 Q Q5 K) R2 z7 q - );if P6 K' N4 ]" i+ T
- );defun ltedit_act
1 U& X3 A% C% |6 ^9 z, Y - ;;
9 |% c: p! n A4 T; b) H; {, ^4 L - ;; List selections end up here
4 r+ M9 b- A! _* f( H - ;;
& y2 v5 B# ]; d# E - (defun ltlist_act (index / dashdata)! _* {* N J P, ]
- ;; Update the list box, edit box, and color tile
8 ?5 ]: o- B* C9 v2 w - (set_tile "error" "")
- h% U0 k- c4 t - (setq lt-idx (atoi index))
8 O+ ~+ S% Y" x4 r& }! Y - (setq ltname (nth lt-idx ltnmlst))7 M4 \5 N% d- ^! _ d
- (setq dashdata (nth lt-idx mdashlist))
# o4 z* S" E c% q' V$ S - (col_tile "show_image" 0 dashdata)- K; P6 o- `! _+ N# @1 B
- (set_tile "list_lt" (itoa lt-idx))0 @! @7 h( S: m$ n6 }
- (set_tile "edit_lt" ltname)
1 s% e7 B+ p W9 D - )- E* ^4 o% h' I0 p6 Z
- ;;
( Q' b2 v) }( C1 F [4 s2 O - ;; Reset to original linetype when cancel it selected
- ]$ b t, ]& S. b) W% L - ;;) O: l9 V5 ^* L: z$ p
- (defun reset-lt () ~$ X' G8 {! X: d
- (setq lt-idx old-idx); W: ?& z5 Y: |" }2 q. ^
- (done_dialog 0)
) ~2 B: \" q& h) W - )
0 S! \3 i9 x6 a - ;;
+ M- g, F" p' A* ]$ K( ~ - ;; This function pops a dialogue box consisting of a list box and edit box to2 ]. W4 }% a) ]: |% x, g* G Q, U
- ;; allow the user to select or type a layer name. It returns the layer name- p# |/ L: }& ^
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
/ e7 c4 ^4 C5 p% N, y - ;; drawing., O" t: ?/ L8 k9 E% O
- ;;
2 q& `: f1 q9 S - (defun getlayer (/ old-idx layname on off frozth linetype colname)
2 e9 s I% m2 M4 P - ;; Create layer list the first time the layer4 ]8 S( l! o1 D1 m# w" y8 ~# {
- ;; dialogue is called.# A$ F8 d; w) Z6 Y0 y7 r
- (if (not lay-idx)+ r# ~4 e3 E5 M( _
- (progn
+ d. {% T! B |! `/ y. M" m - (makelaylists) ; layer list - laynmlst
8 U9 v @8 z: \ - ;rk0 z9 k; q2 F2 U
- (setq lay-idx (getindex elayer laynmlst))
* B; n+ \" _& g# q - );progn
) X; k% e$ O6 I m - );if
6 n! q- i" ~6 F4 j+ \ o& h9 V - ) i; `. Y6 J6 Y' L
- ;; Load a dialogue from dialogue file
/ _: G: F+ e- E3 q/ u- G, [+ M - (if (not (new_dialog "setlayer" dcl_id)) (exit))
' {% ] k' F4 M& H - (start_list "list_lay") s2 V3 O }( R; ^4 w: H
- (mapcar 'add_list longlist) ; initialize list box1 N: E$ t( Y. W7 S/ ?) D( ^
- (end_list)
2 I- h+ f3 T0 L1 L5 z/ b" s - ;; Display current layer, show initial layer name in edit
2 Q# T5 q% r& y9 X' S3 r - ;; box, and highlight list box.+ r- X. g2 r, Q e5 X* A
- (setq old-idx lay-idx)
7 c* s! _+ ]/ _; m - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))/ _% M) R- _8 }/ Z
- (set_tile "cur_layer" (getvar "clayer"))
. L/ ^9 Q; [6 E/ F3 Z" ] - (action_tile "list_lay" "(laylist_act $value)")8 Y/ |# j2 I6 O8 l1 k" [
- (action_tile "edit_lay" "(layedit_act)") B$ t/ n" X$ x& E: m V( m0 u
- (action_tile "accept" "(test-ok)"), m- O" w( X" o! L5 [2 V# v6 C1 C
- (action_tile "cancel" "(reset-lay)")
3 f0 D1 m! Y2 ]% N - (if (= (start_dialog) 1) ; User pressed OK
! G/ Y n |8 ^) q1 G# g - (progn
) U+ E p$ S; w# p' T, [ - (if (or (= lay-idx nil)
: V; `2 {9 U# T/ l( Q9 R& s - (= lay-idx (1- (length laynmlst)))- O. Y7 H# W" T& h
- );or
0 ~$ c1 B* k/ v3 {6 P0 M* s - (progn
0 D; P2 u/ q% ^/ N - (setq lay-idx nil) 9 d& Y/ @. l u5 J' S' M$ ~) O
- (setq layname ;|MSG0|;"VARIES")5 N; ] P( h2 }
- (set_tile "t_layer" "Varies")
2 e8 v. e4 p5 B5 h- a - (setq layname "")
+ @7 Q. p# _0 ^6 I& Y# h$ I* L4 S3 R8 \ - );progn
3 t+ e) n: p M- |' j - (set_tile "t_layer" layname)
# |! o- n$ ?$ m0 U# H - );if+ Q/ H: {2 N, O( y
- ; If layer or ltype equals bylayer reset their tiles
9 N1 N( W8 U9 E: r - (if (= lt-idx 0)
" l4 f& k9 w) N- a* Z - (set_tile "t_ltype" (bylayer_lt))
) Q$ N. |& c2 X* S. _! q - );if8 S+ U! Y$ u# z8 Q0 T9 Q
- (if (= ecolor 256)
; L& @" Y. e3 C" U" E: z - (progn
) e5 u1 S5 Q/ R1 m) S2 E - (set_tile "t_color" (bylayer_col))& Q& q2 Z5 Y W
- (col_tile "show_image" cn nil)& g+ C" t7 \+ \( ?
- )
4 I% [% W2 p, r. V) r - );if
; ?% p { o) c: h- ^ - layname+ L' o- G- |3 Y) y! |$ b3 K
- );progn' X/ b4 C$ y1 k' t7 B
- elayer
S" x2 e+ I7 Q t+ u/ y# e i - );if, G0 ^% [' R+ |5 i8 E& L/ w$ {& S
- )+ W( d' k' n6 n3 m, F) E
- ;;3 C- E( Y9 y# E/ ]. L& l4 k
- ;; Edit box selections end up here
0 f3 U# b$ Z" A9 Q- A( F - ;;0 U+ T$ O' Q G& \+ g1 U
- (defun layedit_act(): O, _# U3 H/ H. y
- ;; Convert layer entry to upper case. If layer name is3 u5 Q8 U, Z, W5 ]+ V! ^
- ;; valid, clear error string, call (laylist_act) function,
6 |3 R" f% b: ^1 P4 N5 `7 F - ;; and change focus to list box. Else print error message.
8 d: ?; ?* }, u - (setq layvalue (xstrcase (get_tile "edit_lay")))8 e9 B& N. J* D0 e
- (if (setq lay-idx (getindex layvalue laynmlst))
1 i, F3 }( T; Q - (progn
4 m, v: x1 {) c$ G2 c" c - (set_tile "error" "")
* Q/ W8 @' ]4 [; J8 X r - (laylist_act (itoa lay-idx))
5 \) ]# a! [' }0 Q% q1 U - )
# _1 x/ Y$ u# G - (progn
7 j: U! P- Y) N F7 y1 \3 w - (set_tile "error" "Invalid layer name.")" K) s; ~* ~& U& H3 q
- (mode_tile "edit_lay" 2)
& k$ w' l3 T$ ^' @' | - (setq lay-idx old-idx)8 p* f- }% U" l- C8 d" A# E
- )
+ ^. f# ?/ u+ f$ G$ B+ o - );if
( e& P# G$ j, ]) t - );defun+ N: d) W: V p+ ]+ C# F
- ;;/ S% I* e' E$ ?0 [: d4 L# F
- ;; List entry selections end up here" h$ @9 Q1 d5 E
- ;;; n! u8 D7 w) E p" ~
- (defun laylist_act (index / layinfo color dashdata)
0 T s. S% G( R" v& [$ [ - ;; Update the list box, edit box, and color tile/ f, Z2 W9 k7 f
- (set_tile "error" "")1 c: {, r/ j/ F9 c/ k& [# o
- (setq lay-idx (atoi index))
: i$ u0 o7 N {6 w+ b/ }. Q - (if (not (equal lay-idx (1- (length laynmlst))))- |+ q& g" S j- k6 S$ V, `/ t. m0 C
- (progn
& {% H" d8 B0 j' }0 r$ Q) m - (setq layname (nth lay-idx laynmlst))+ V* ]) q p$ b
- (setq layinfo (tblsearch "layer" layname))" ~* J5 M- s3 a7 A$ T! _0 r7 D" u
- (setq color (cdr (assoc 62 layinfo)))
- k( H! e8 {7 s/ _ - (setq color (abs color))5 Z8 o' m' ?8 e% _ X9 S z$ b
- (setq colname (colorname color))
; z# J3 o: p/ P3 `% E - (set_tile "list_lay" (itoa lay-idx))
0 G+ q5 y7 Q$ @ - (set_tile "edit_lay" layname)% i4 N0 K$ ` c, ~1 z$ Y
- ;(mode_tile "list_lay" 2)9 U$ d4 d8 P' M& Z7 C4 a0 U
- );progn then
0 ^" e1 x9 [$ S& O# P) V' [% R% {5 { - (set_tile "edit_lay" "") e5 j f( k+ m: H7 _
- );if $ i9 }0 w& V( D1 R0 l F" N
- );defun laylist_act
& k' \% [- O& [" M( N8 F/ h6 T - ;;7 n k# G/ e& I
- ;; Reset to original layer when cancel is selected$ _! a& [4 O9 E/ z" g
- ;;) o4 x: i) @1 I2 X2 O& P0 e
- (defun reset-lay ()5 W% v4 L7 m0 U1 I9 Q
- (setq lay-idx old-idx)
( T u0 ~, L1 W" Q3 [ X - (done_dialog 0)' k3 v$ _3 g8 C, T* l2 k1 X
- )- Q1 K. g7 O6 {6 d% h9 k1 `7 N+ z! i
- + J: ?7 x9 a- l
- ;; Checks validity of linetype scale from edit box. It checks to, Q6 k3 I* Y! C1 P# c& D
- ;; see if the value equals "Varies".
, [* m7 R% ?7 P- Q) l Q
0 ^7 C+ u5 [0 S0 H2 z) G' j8 h6 U- (defun getscale (value / rval)
- u0 q+ b- I4 V. w, Z0 S - (setq value (strcase value)# c- d4 F7 \" D0 l3 j$ m9 ~1 B
- rval (distof value)3 s4 u6 ^& }2 j
- );setq/ L, N7 z1 f4 O c
- (if (or (= value "")
' f. F8 y0 r' \( `- k/ [9 y - (> rval 0.0)
* G2 _8 X5 P: b - )8 e; _% B! q& k6 k9 {& c" F+ `' \
- (progn/ ^& _3 y) Y" a2 x: e/ ?
- (set_tile "error" "")% y& H+ |$ j* L
- (if (= value "")4 a2 {/ ~( ]8 k/ c0 H5 o, [
- (progn8 }' R8 V3 U- J( e, e- u8 n
- (set_tile "eb_ltscale" "")4 p# x6 j' H4 J3 H0 R$ ^
- (setq eltscale nil)- E F% V5 p4 d( X0 n* p: d0 ]
- );progn then
0 N) }/ z6 U2 P1 t. g1 j7 b - (progn- Y! M( r, I/ U
- (setq eltscale (distof value))
; m' i- K& {8 O# q6 J" W - (set_tile "eb_ltscale" (ai_rtos eltscale))
2 O+ t e# f3 e7 P - eltscale
7 `: U' w& u' @( n5 K8 u6 r6 m4 r - );progn else5 O5 Z5 C4 O4 S6 u* b6 C# z9 k" @. v
- );if
5 c. r' N8 p9 x, ~ - );progn( ^* T! h0 j; x. V6 }9 y! L' V
- (progn
4 I) s& S; v. N4 J - (set_tile "error" "Invalid ltscale.")
# U4 ]- ?% I3 } - nil/ `% G. q% d$ T$ m. @: m& ^
- );progn else; p2 H2 r9 U1 _" w, m
- );if, _+ { Y; y4 b" H/ G4 _, Q( Z
- );defun. i5 s" T' m4 ^% T1 W
- ;;% T1 p4 [# O5 g3 I6 {& B
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a& ~# e' Z: r+ d8 P, H( ?
- ;; string can't be converted to a real, this routine checks if the first0 h$ F+ d! G" I, m6 R9 k( g
- ;; character is "0". It also checks to see if the value equals "Varies".
( g5 B/ O1 ~- f+ j - ;;; p% L. F3 ~, |+ ]
- (defun getthickness (value)
0 X# h5 N& ~& ^- E" K - (setq value (strcase value))
: }! E1 x% t2 @# V+ n - (if (or (= value "")
0 X' f$ [2 X0 C& @! `4 A* Q - (distof value)2 A2 ?2 s' ~/ v: v- _
- );or% l3 k6 n' p2 S3 o
- (progn5 T. P8 A' ?! a% p& o, S1 k- S
- (set_tile "error" "")
# k" g* h- M# ~4 }& t$ f9 L - (if (= value "")( a+ E% \- T9 \3 _$ e6 J4 ~1 S; W
- (progn
" Q( D- e1 e0 b - (set_tile "eb_thickness" "")
$ o" C8 g# y, C+ _; q' i. Z2 M: U - (setq ethickness nil), f" T0 T4 a% ]7 t1 J* h( I7 \
- );progn% W* [3 X* I, i: v
- (progn( q, t4 J' D& e; t+ r% V! T. z
- (setq ethickness (distof value))
' K$ V0 C, P1 s0 @ - (set_tile "eb_thickness" (ai_rtos ethickness))% b/ h" E: z6 `" u1 b9 d. q: A
- ethickness9 ?/ L$ _# Q6 T8 J: ?' d
- );progn- ?! ?6 S7 K$ Q; y4 K1 V
- );if
3 w) {1 ~- J5 e" F - );progn
8 C6 b9 c1 Z1 v6 B$ s* i: ?$ m - (progn
" X5 F6 t! L- F- w - (set_tile "error" "Invalid thickness.")# L, g2 J. ]) i/ W: ^+ C
- nil: T! r, T3 c+ I, l
- );progn" G- k M2 L! q1 t$ W9 {5 ]
- );if
! f+ P& c' T9 i, T* J1 A( d - );defun
0 t R& c J7 m. R0 k) u! W - ;;
, c7 g2 }: c. o - ;; Checks validity of polyline elevation from edit box., t6 F/ K( _- H
- ;;, ^) K, i# e# k$ X3 M
- (defun getelevation (value) Z) O: Q U4 C( m) m
- (setq value (strcase value))
" c9 G, n( r* k - (if (or (= value "")$ ]" Z6 @' n. j- V
- (distof value)
) V$ K5 n F# T) g: }4 e7 A" S - )
3 o$ m' b( }9 v" U2 j - (progn
/ {, N R1 x3 _3 ?7 ?- z - (set_tile "error" "")
4 w$ O* p. J' m- v1 q8 E - (if (= value ""). j: ~: s- W2 x( V
- (progn& v0 g, V3 l% ]" s) B
- (set_tile "poly_elev" "")5 j7 ]- y9 a4 z/ x% o( c8 C/ u* B
- (setq eelevation nil); j. d0 J W5 L& i/ g: z7 s
- );progn- V, r" ^9 N" w' k
- (progn3 k d3 p+ R& u2 J& C
- (setq eelevation (distof value))8 [5 F9 R# ]5 W- P$ Z- x
- (set_tile "poly_elev" (ai_rtos eelevation))7 `% _- D5 x7 J9 g/ [
- eelevation
" I7 C0 m/ k) e6 u7 z; V+ n - );progn% q$ d. k# B( k3 K+ | X
- );if. L8 z% j/ u: c! B5 f
- );progn
+ e% ~9 I' p/ w" |# ^4 ~/ j! w! E& R - (progn
, O/ `' S2 l3 v$ K - (set_tile "error" "Invalid elevation.")
3 o5 {, L" i4 D7 n, Q4 M. C - nil2 p& R* D7 S' j6 J. C0 X! d5 b
- );progn
H) B8 X6 ^3 X w! J, [ - );if" O9 B9 M/ i; ]4 u3 \/ d# e5 W8 {
- );defun
0 j( `. S0 [4 ?7 a3 i - ;;
& o3 l3 o0 o$ N1 S& U! Q - ;; Checks validity of polyline width from edit box.
( @. ?2 ~4 s; {4 f, Q! e; k9 w9 | - ;;: F0 o9 x! t2 F: `2 J7 T
- (defun getwidth (value / rval)5 h6 b% p$ M/ Y, Y
- (setq value (strcase value) L0 l2 ^* Y8 D4 o
- rval (distof value)6 `* \/ }/ n8 ?, ?1 {4 r& y' l' w
- )
S0 R6 m" d; @. `- Q* ^% ~8 K - (if (or (= value "")
& w; w& w0 F6 k0 @ - (>= rval 0.0)* {1 n m& L5 {( F! k" t
- )1 {& U1 V; Z K0 @9 r& {" W
- (progn
3 t" F6 \4 L9 a1 U4 J8 j7 j - (set_tile "error" "")
6 z N: y- K9 r0 V - (if (= value "")
0 f, ^/ b2 E0 m* n n" I- O7 l - (progn
: C) F+ T) E; p3 D - (set_tile "poly_wid" "")
# G5 |% a: [; f* q# X* ~ - (setq ewidth nil)$ B, q7 S7 w e& e/ u6 f; B
- );progn
7 R# f) ]4 i' z" R# K1 e8 f - (progn
, k, e# H* W: W' [0 z# u - (setq ewidth (distof value))4 V/ G* D0 [) W& ~2 ?' P
- (set_tile "poly_wid" (ai_rtos ewidth))0 v1 T" D6 t/ O( u- g# c. o
- ;width9 h5 A3 R( \: c* }- X+ l- b
- );progn
- J- Z4 W& \6 ^; V) k- a; M" R) B - );if! w8 V/ v* D$ f+ O) ]# G
- );progn" s/ h" c0 x @& u9 s- N# c9 `& z
- (progn. T9 `0 I4 V S e
- (set_tile "error" "Invalid width.")
) ?7 @7 i' ~' i! S* n; F; q8 L - ;(setq ewidth nil)
4 `1 m+ ^. m S - nil 8 \% s4 R/ _7 l# q/ G# Y
- );progn3 N* u; B7 f& k& R8 y9 t- w* q7 ]6 F
- );if
6 m5 H9 Y" ~# P8 x5 {- l+ r! ^/ s7 x - );defun! j2 s/ e" Q1 J5 d* b' G
- ;;8 ]7 h' c1 L. `7 O# r2 F5 G# @6 u5 _
- ;; Checks validity of text height from edit box.
4 a* {4 ]9 D3 ` - ;;
, V+ n+ B* h* b& d" Z) F) Y9 e - (defun getheight (value / rval)0 n, s$ v( z5 l7 i
- (setq value (strcase value)
7 f9 N7 |1 p# U' H& H8 k - rval (distof value)
* ]" G- C( c; }9 W6 a - )
- i1 @( p I% v4 D) `& Q4 n5 M - (if (or (= value "")
3 @* t: V& `) `! T$ P% R9 o - (> rval 0.0)) Z% K; M1 H$ V* L+ m
- )) N3 }5 Z4 q# ^$ Q: G, [
- (progn
7 p+ m0 w( f& D* Y3 n& [. S7 L+ ] - (set_tile "error" "")
* I% v4 ], _, H% n1 H - (if (= value "")
+ }* E8 @7 n. |: ~; R3 K" V - (progn0 L8 D4 k: C' d1 f. v3 }: h1 A. V
- (set_tile "text_hgt" "")% j5 P5 R0 z D) }! T: j I- V# C
- (setq eheight nil); c7 N. v; a* p8 z) ^
- );progn
3 v8 W I+ [1 x9 P8 `/ b$ S3 `7 T - (progn
M7 [! B w: _' i' q3 W - (setq eheight (distof value))$ m3 L- ^& T# l# x! u
- (set_tile "text_hgt" (ai_rtos eheight))
9 y; ^' J2 q* x/ z - eheight8 I( ?5 {" @5 c" t& E
- );progn
% W' D& _# t2 n# F0 h - );if
( D7 W9 T3 l$ W) U7 h8 P - );progn
& v: I+ N: D( P; l - (progn
9 R; v( n+ Y8 F: k4 j - (set_tile "error" "Invalid height.")! v7 o- \; w. E! i6 x/ A* a; f1 p* o
- nil
" c9 j+ a; I$ m: _: X - );progn
2 Q5 \) }% U# ]$ t5 E - );if( \; `' h6 g% _# n& `
- );defun
, B3 B$ u9 S1 c4 {! g$ C - % j7 S1 L) q7 V* H5 {
- (defun getstyle (value lst / rval)
6 [. n0 \" k; g9 e - ;(setq value (strcase value))% G9 [8 { x) T8 k+ u3 ~
- (set_tile "error" "")8 z/ l6 r1 W% s! p3 X, ?; o
- (setq estyle (nth (atoi value) lst))1 h x; j2 T. E3 h$ T
- (if (equal estyle "")
4 k; X; {* ]8 n& `) A - (setq estyle nil)
/ Y- {% F' h$ b1 u/ I) n0 \& `* Z" e1 c - );if
" G+ \/ ? q( [, v/ ?4 ` -
! g: m* g# p" h4 c( \ - );defun getstyle- ^8 U- Z( _! }, L6 m! T& e2 }9 A- k. G" t
- * R, L% `& q' x4 I
- ;;, R2 V; A4 s# K. |7 p
- ;; This function make a list called laynmlst which consists of all the layer+ o, ~8 o- f' r* Z
- ;; names in the drawing. It also creates a list called longlist which+ S1 w0 I; [$ l: J. N' w6 K) r
- ;; consists of strings which contain the layer name, color, linetype, etc.
$ M3 K {1 ]" D - ;; Longlist is later mapped into the layer listbox. Both are ordered the* F: l4 Z! k7 U' _5 P) x0 R
- ;; same.0 ^: V8 \7 J! ~! X% T" a* y
- ;;
4 ~3 q. S, K; R8 @/ r, {2 n5 s - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname6 _, H8 I: B; @8 \
- xdlist vpldata sortlist name templist bit-70
0 L+ H: y0 p1 G2 x5 p - layer_number
7 s; ?5 M) x) E; u t( B. E6 z - )
2 Y3 i0 q" A& ^) O3 P+ E: h' a& g9 x* J - (if (= (setq tilemode (getvar "tilemode")) 0)
# l1 z; g6 A" j1 A8 s - (progn
1 z- T2 e3 A9 g - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
$ g' Q' i) N, {4 I - (cons 69 (getvar "CVPORT"))& x7 [7 r7 ^ A& j% ]' w) F$ a2 y
- ). [! E( J# g; _$ _; H/ a" T1 |
- )
8 U# _/ s4 \- U; M4 ~ a6 m% t - )' F/ _, ^1 P5 Y
- (setq cvpname (ssname ss 0))
9 S" N5 n+ u- V: Q - (setq xdlist (assoc -3 (entget cvpname '("acad")))), A8 ]; b2 X% b9 B" R
- (setq vpldata (cdadr xdlist))9 y2 ?4 S/ l a* [, `
- ): o4 h: G3 h* R B# N
- )
% d! i0 u! q" ~! }6 m: ]. h' x' \, S( v - (setq sortlist nil)* A7 j& {# A7 Z* {) f W
- (setq templist (tblnext "LAYER" T))/ B, m8 L& f$ z- U' J2 O
- (setq layer_number 1): K# t2 O1 N: l9 K
- (while templist
4 [' f9 t9 x/ J# U' ~6 H7 M - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))0 E3 |9 Y# O& l7 m" S. _1 _& ?
- (progn 0 t- P/ ^; ?. T7 }: V. N+ A
- (setq name (cdr (assoc 2 templist)))3 t: s9 O# e% Q5 P* ]% E
- (setq sortlist (cons name sortlist))- a% D) R7 w* A6 ~* E( ?
- ;; Not dead message...
; h0 a. U; H5 C9 L+ U) f" u4 i, q - (setq layer_number (1+ layer_number))0 G g$ e' z- b
- );progn: C: |9 A$ A. p0 [9 O M
- );if$ X6 M4 n$ F W, a
- (setq templist (tblnext "LAYER"))# J( i* x9 z8 g
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))/ d( U% [4 o$ l+ `
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))2 R/ l3 |2 _1 L6 C. t
- );if
) i: B' [# ^7 E9 _. n4 D - )/ x) {6 t# d. h; P- p( W' p4 Q! R
- (set_tile "error" "")6 `! [: o! H6 |
- (if (>= (getvar "maxsort") (length sortlist))
3 C( k. G5 Y% `0 y& q - (progn* C5 t$ t; K& @* A) e
- (if (> layer_number 50)
T' Z" f4 }+ Y- R9 l - (set_tile "error" "Sorting...")
) G0 z" C. e( _, a. }5 }" c - )! [, @, A0 M4 W9 w% u) i
- (setq sortlist (acad_strlsort sortlist)) _. L4 q( f: u( K& H; r
- )7 L2 T: s* _% Z0 X' E0 N4 i5 z
- (setq sortlist (reverse sortlist))
# x* Q4 d9 I% p - )
! _( \4 D! p3 e2 G5 J6 U4 P+ V - (set_tile "error" "")
6 s4 ^/ m( |/ `2 j" O) p0 d' | - (setq laynmlst sortlist) A9 t$ v9 e, ~1 ] r+ b/ U" ~
- ;rk - R/ U, E' ?7 B6 |5 h+ G. y0 W
- (setq laynmlst (append laynmlst (list "")))
+ Q% C& |+ S6 K. V: R - - W2 t( X" u8 B' S
- (setq longlist nil)
. m; M4 R( G/ @6 E4 ] - (setq layname (car sortlist))" s- l. n5 M8 O1 X- J& B r
- (setq layer_number 1). ]1 V: m6 @. T+ ^5 A4 O: v/ U
- (while layname1 k3 Y6 q' [$ M; T9 l
- (if (= (/ layer_number 50.0)
- ~) }) b; _; c1 I- K" g - (fix (/ layer_number 50.0))8 r' x; K- t3 s0 I$ C
- )
, u B9 Q* s/ l0 f3 ` - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))9 S# o8 R( O* v
- );if
% [: `4 ^; `' p* ^ - (setq layer_number (1+ layer_number))1 W: s% J: D4 {9 X$ M5 f+ V
- (setq laylist (tblsearch "LAYER" layname))6 M2 O6 w) b8 [1 r2 o& K/ C
- (setq color (cdr (assoc 62 laylist)))6 c$ j7 C) H1 V! O; [+ N8 }$ a
- (if (minusp color)1 t6 M# G+ U; `1 N5 J
- (setq onoff "."); P1 `% v; K1 E3 K
- (setq onoff "On")
$ ~3 ~5 z) X: z6 @( }5 k - )# ?) c3 V8 u2 f' R
- (setq color (abs color))
& o/ A+ W, D- c! S1 b - (setq colname (colorname color))0 q( B/ Z$ R! J# h3 C% M3 ]1 A
- (setq bit-70 (cdr (assoc 70 laylist)))( U; T3 ]# b+ F( q! B
- (if (= (logand bit-70 1) 1)
- D9 U$ ]/ L$ o - (setq frozth "F" fchk laylist)7 s/ x$ D' A7 u
- (setq frozth ".")
5 H" c/ V6 ~: c - )* k, u! r% ?" k6 T. G
- (if (= (logand bit-70 2) 2)3 h5 K/ I9 j! J
- (setq vpn "N")
/ ]% Y& r# v* n+ }3 s) w7 i7 _7 M - (setq vpn ".")$ M/ b" f. h/ P# Y4 _- c
- )
/ _' j: I( L, Q8 o! E7 _6 B e - (if (= (logand bit-70 4) 4). k( T C+ V& K* d0 Q; `, d( x
- (setq lock "L")
; r4 I4 B- H5 R - (setq lock ".")
3 P/ y0 C; G9 i+ e - ). P$ l" l) B/ c/ u& D; L: ~* R
- (setq linetype (cdr (assoc 6 laylist)))
# E Y4 {- d, v( ~0 q, E- e - (setq layname (substr layname 1 31)): ]8 Q# |$ [4 }, ]! e
- (if (= tilemode 0)
6 ~" O) `! F/ J. N$ _& L: | - (progn9 U: Z, S0 |! I% Z `/ t" f1 ]8 n
- (if (member (cons 1003 layname) vpldata)
( N3 I: C2 e* D6 u3 f' K8 H - (setq vpf "C")& Y' g W/ S2 u
- (setq vpf ".")
8 W9 g- Y" k8 q) R: N* b - )
( I1 @6 f5 n( l8 r# {6 M5 c - )
# W. B2 g0 z. C; [' h' w - (setq vpf ".")
$ K: ]# `, b4 m8 u8 G* q - )
+ A- ?# x+ B. L/ h; }* v( w+ w - (setq ltabstr (strcat layname "\t"
6 n4 @$ j; _! N! V - onoff "\t"
( Z4 K& N( K1 L8 u4 s5 {! O. [" p - frozth "\t"( d0 c2 I2 }* O! u# s: _
- lock "\t"& z/ m: d4 T% Z1 _- p" @/ `
- vpf "\t"
9 G7 L6 K; A+ q1 `/ y5 k% M - vpn "\t"8 @9 R4 s/ c0 Z1 ~) E5 V$ u
- colname "\t" t/ j2 V, B- i5 k$ A; f
- linetype
4 @) ~& t7 B$ B9 P m* r+ S - )
7 n" U& D) y5 f- o - ) I, [+ t* h9 `
- (setq longlist (append longlist (list ltabstr)))
& \8 b/ t8 L& u) Q8 e) n - (setq sortlist (cdr sortlist)); U" m3 p' h8 o3 T6 T5 P" U
- (setq layname (car sortlist))
& t# q0 O+ [. F! k' @; ~- A& [ - );while" _( N. L' a% k9 f
- (setq longlist (append longlist (list "")))" N7 G) e2 m' q" j
- (set_tile "error" ""); J6 V% o; l- ~$ f, L+ ]
- )
/ f- l- w' |' E* Q8 z3 B% N% f2 `( Q - ;;
0 {) }7 z T, T% \! J# P4 V7 }, N - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
2 G F. Z5 z; _$ R& @ - ;; linetype names read from the symbol table. Mdashlist is list consisting, }$ o$ Q" [# H- B2 T1 S# p
- ;; of lists which define the linetype pattern - numbers that indicate dots,
: g/ R4 ]& f. _* {" } - ;; dashes, and spaces taken from group code 49. The list corresponds to the) q4 ~. ^( K& m* p* A
- ;; order of names in ltnmlst.
9 b: p( z& e8 o& t8 ?* d - ;;3 N2 B/ S% X; Y
- (defun makeltlists (/ ltlist ltname)" O U$ n! L4 E
- (setq mdashlist nil)
( u: c/ t; |# \/ n% G# d/ Y1 e. d - (setq ltlist (tblnext "LTYPE" T))
2 i3 x0 ]: }/ o8 u& I& c - (setq ltname (cdr (assoc 2 ltlist)))
, z) P6 N/ P: x" m - (setq ltnmlst (list ltname))
" s7 A2 z) B/ m( B- S - (while (setq ltlist (tblnext "LTYPE")) ] \" G& ?4 P0 y
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
* Z) \2 p- ~' X/ b( ~ - (progn
3 J6 f+ n, d6 `) L; u u9 \9 Z1 T - (setq ltname (cdr (assoc 2 ltlist)))
/ j, J6 v" C6 N1 f+ x1 W- q/ `4 l- R - (setq ltnmlst (append ltnmlst (list ltname)))
8 Q7 p' l1 K1 t - );progn* {, ~, z6 M" y* h
- );if ( A8 B" U! k- |3 o; y
- );while) K6 X! D* E( q3 J- v% s/ O/ e
- (setq ltnmlst (acad_strlsort ltnmlst))
$ `7 H& M. V# j - (setq ltnmlst (append ltnmlst (list "")));add by rk
3 G; _) @+ a$ g4 {. ?6 p% U - (foreach ltname ltnmlst7 f0 O# K' \* Y: S
- (setq ltlist (tblsearch "LTYPE" ltname))
! y6 F5 D) `) o% v# B2 j) x& } - (if (= ltname "CONTINUOUS")
{* w1 w0 _$ E - (setq mdashlist (append mdashlist (list "CONT")))1 N9 b: o* m. ~: S3 h* ~" L
- (setq mdashlist) W) q; V5 q- o3 I' u' i6 e/ f3 C' P
- (append mdashlist (list (add-mdash ltlist)))
2 h7 n! v2 r3 l/ b+ b8 h - )6 L" U, i2 N0 L* N7 h( B% S
- )9 A0 P3 `+ W% X' {
- )7 W: ?, z# F% B' S% ~* T& y
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))0 D6 ~" u; _! p. D5 R# M
- (setq mdashlist (cons nil mdashlist))
; `0 j( x3 n: M4 o - (setq ltnmlst (cons "BYLAYER" ltnmlst))
# g8 {8 E; m; G9 ]! W - (setq mdashlist (cons nil mdashlist))% g, h( d8 }) v
- )3 S# X2 v$ o9 C& L$ y* S% X7 D( D
- ;;3 l' _/ o' o$ E
- ;; Get all the group code 49 values for a linetype and put them in a list
& n5 S( O0 P0 U6 ~# }9 N3 l - ;; (pen-up, pen-down info)
( K( G, G5 j3 _ - ;;
3 a6 L& K) W0 T$ k) Z - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
5 y! W( J6 X" g" Y* \ - (setq dashlist nil)9 p. ~$ Q/ S- r5 g
- (while (setq assoclist (car ltlist1))
$ Z+ T( V8 f* u. k# n - (if (= (car assoclist) 49)
( R/ `9 |3 y* J! o, E+ M* x5 J - (progn
) n2 g" j! O6 u7 H/ ~% s - (setq dashsize (cdr assoclist))' N& F; H. f- x, ?; r8 q0 @( i
- (setq dashlist (cons dashsize dashlist))1 c; P7 o! B% e5 J3 a0 l9 e
- )) i- k1 ~- T8 p
- )& h8 x, Q/ u/ c! _ B
- (setq ltlist1 (cdr ltlist1)). l; Z1 s9 f7 M9 p i& _3 A
- )1 M5 a1 _8 W2 O
- (setq dashlist (reverse dashlist))2 Q/ @0 j! W$ z- _5 @, j E5 B
- )# I) \2 s# }0 n
- ;;1 v% F/ x: b5 K. y# `
- ;; Color a tile, draw linetype, and draw a border around it
: f( U" H" h& N) U$ e' g; w - ;;
: k/ D: e/ P7 o: ~6 N4 l; p - (defun col_tile (tile color patlist / x y)
, N! n( e" X, o, T - (setq x (dimx_tile tile))
5 u5 U. J3 Q$ @8 S( m - (setq y (dimy_tile tile)) l- C/ I9 ]# s: j
- (start_image tile)
; p( j4 y; g9 a3 N- s1 x - (fill_image 0 0 x y color)$ K3 n5 q- u& G8 l! _: n. b) T
- (if (= color 7)
$ H0 T k n$ t+ H O) f/ r2 Y( ~ - (progn2 ^7 C; a) L5 P( [
- (if patlist (drawpattern x (/ y 2) patlist 0))) l j8 m& G4 ^3 x
- (tile_rect 0 0 x y 0)1 U* n+ Q0 U e/ E! `
- )
0 ^$ b( R1 n* r$ l3 ?. W; w# a - (progn4 a. V& R. C& q s
- (if patlist (drawpattern x (/ y 2) patlist 7))2 k# {; j* f$ ?( V7 i
- (tile_rect 0 0 x y 7): I, Z5 u8 ?, X' h9 V. [
- )
4 y, c$ n/ ?2 \! y# r/ ] - )$ \: l Y# j2 E0 ^
- (end_image)1 R" N; S; I. ^/ ^1 L4 o
- )
; f5 k( v/ Y {4 ^ - ;;
2 k1 s) o/ W, o, _8 a u# V& E9 `$ L [ - ;; Draw a border around a tile. t/ T0 X X; y8 W" {
- ;;" i7 j/ y1 ~" e0 E8 k6 X
- (defun tile_rect (x1 y1 x2 y2 color)
5 P- ^4 R& a- ] - (setq x2 (- x2 1))" B$ j n t9 w: G7 r
- (setq y2 (- y2 1))
* u+ g4 Z+ w/ y: y5 k - (vector_image x1 y1 x2 y1 color)* j2 o. f4 Q" x9 K8 B& p j
- (vector_image x2 y1 x2 y2 color)* x9 j: X! n; F
- (vector_image x2 y2 x1 y2 color)+ {& c+ g) j& D v! ?. B% z8 S" z1 Z4 p
- (vector_image x1 y2 x1 y1 color)
( V5 m) d0 J. V5 H; r - )( R8 X, }0 Q! _; X" r) r. G2 F6 Y
- ;;
9 ^2 p3 Q1 U+ |+ K( V* O - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image7 q8 _! F6 \& r9 I1 A
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
8 a. h& j& W3 A0 a4 P6 g( {+ v - ;; list of numbers that define the linetype, and color is the color of the) B: B/ s& {7 l: y7 H
- ;; tile.
" U3 g; c, U! F - ;;, [) \. `. V9 d }" Q9 J; X
- (defun drawpattern (boxlength y2 pattern color / x1 x25 }. I; |9 X6 }
- patlist dash)
8 {5 I U2 t2 Y1 n2 b8 r - (setq x1 0 x2 0)
$ X* `% L4 _0 {: ~) H) L/ ? - (setq patlist pattern)
( O3 m6 }9 v/ b! p& ~ - (setq fx 30)
. Q6 n( u0 k5 @6 c - (if (= patlist "CONT")
( V2 _# C; s7 ^ - (progn2 Z0 [+ ]& t s% ?
- (setq dash boxlength)
, m$ F4 ^+ \9 r, [) e - (vi)% [. p1 `3 M7 \" o2 S
- (setq x1 boxlength)4 h; Q& W! @# Y8 _ R# O
- )
/ _0 `& ~- E) ~7 p - (foreach dash patlist4 d% J& U. N- n$ e
- (if (> (abs dash) 2.5) f" ^1 h X; r0 j; A1 ?* B
- (setq fx 2)
7 ]1 c) Y' [4 Z5 U - )
0 \: Q- ~& C* L. G - )4 }; p J5 r+ W( L0 R; ]
- )
+ V4 W8 V% c# O( ] - (while (< x1 boxlength)
[3 }( A u r4 b6 Y2 p - (if (setq dash (car patlist))
7 O7 p3 D; I: t6 v: @ - (progn
" D9 M9 U$ X' I7 i8 \3 W8 @( N - (setq dash (fix (* fx dash))); W2 c! m9 n) T+ {
- (cond
0 n. g |4 S2 O* m5 H5 V# }. y - ((= dash 0)& D8 ]$ ]8 R& i( \) Y4 A$ c
- (setq dash 1)- _4 `5 z: H2 d( q; V6 C) z7 x* e
- (vi)
: G8 N x; L9 P/ s - )
6 b$ Y/ ^$ _) e" m% U - ((> dash 0)
4 x% G' ]* ^6 w/ X3 @ - (vi)
) Z. S5 w8 d' x7 e' s, S - )
$ U/ [$ J8 g% V0 c - (T5 l8 T! Z. B" m: N5 j* M8 |
- (if (< (abs dash) 2) (setq dash 2))
, ? \& Q7 _3 v: R - (setq x2 (+ x2 (abs dash)))
u; a6 D4 T1 }6 u" c0 f - )% U: D* `( r% z( m& e
- )( p# Q3 ?6 p; U: Y
- (setq patlist (cdr patlist))
0 D! i# i6 b" t9 m) d! O, f$ R) Y - (setq x1 x2)
" @# w, f4 `7 A z: b5 Z* y - ), n* l( }& x `! \( R8 e
- (setq patlist pattern)
& V& b% y* Y2 v* b! ]- L* \ - )9 s9 f: ]/ l/ o( |
- )
* p% x$ c2 P, } - )
. @$ g. d- \0 |# Y6 f: S - ;;* h) S" N0 j& Q1 s1 ^/ y+ `
- ;; Draw a dash or dot in image tile
* s3 N) k1 h' C$ G* E6 |, N9 o - ;;
3 [: j+ e% @* a8 c) W; z - (defun vi ()) U: d8 f( i- t$ L# P: p8 F" |0 x
- (setq x2 (+ x2 dash))/ m9 S% ^, m7 G$ Y, T$ e* x$ m
- (vector_image x1 y2 x2 y2 color)
! [ Q1 ?/ e4 a& n E9 T! b T2 n8 m - )- ~' a9 l/ `# o% S& p- _
- 1 \* c' f9 \9 x$ E. I, F/ y
- ;; This function takes a selection and returns a list of the color,) I M! M3 Z9 `; X4 E
- ;; linetype, layer, linetype scale, and thickness properties that
5 _+ Q7 \$ N- \' P6 f - ;; are common to every entities in the selection set - (color
, [( r6 a+ e4 I1 H. v - ;; linetype layer thickness). If all entities do not share the same
4 i& e- J, \- U - ;; property value it returns "Varies" in place of the property/ w' [8 L$ W- d# \
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)9 d0 r6 I* }" n: Z4 S* @( F0 W
- ;; The last item in the return list is an integer flag for the
$ @8 ^9 s7 b0 H, U - ;; homegenity of the selection-set object types.. ^9 y0 e# ]9 f: v/ v
- ;; 1 = All polylines
0 u& k% v' L$ }2 _& y% d% A, y - ;; 2 = All text or mtext or attdef, or a combination of the three
8 V% ~5 Y% ?( `& a6 b - ;; -1 = Any other mix of objects
* r1 r. Z2 Y$ N2 \7 h! D6 H4 u1 p! f
7 O6 T/ ~/ H2 G* e, S- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
- |% e7 [8 h9 s( q# F5 e - width elevation height go ctr
( L R: B, b( H, r' p - eflag
4 H5 q4 I6 W- i- W; l - etype temp : u0 a' \2 W2 W+ V
- txt_ss ;;;;rk 11:24 AM 1/30/97& R# z v8 u. L' Q7 T! G0 |+ |
- tmp 6 |& I, h3 ?, F0 H9 S# Z
- poly_ss
* x, p0 \% }1 ?: i" k - style' g2 f; t: e! D# I
- )
4 B7 ~8 k- p1 e3 } - 4 w6 p) V8 ?# R
, E0 O+ [" Z( z" R4 ^- (setq sslen (sslength selset)
k$ y0 j: A& l4 s& P - elist (entget (ssname selset 0))- m5 q6 R5 `4 s% T2 Y1 ?$ X* S. N4 T
- etype (strcase (cdr (assoc 0 elist)))
( e$ K" K* w* t/ s - color (cdr (assoc 62 elist)); X2 S8 j/ G3 L9 o0 {, z
- ltype (cdr (assoc 6 elist))
8 j: b" f3 s4 M3 j; _/ A! h - layer (cdr (assoc 8 elist))
- B, U4 x5 d$ S' v5 N - thickness (cdr (assoc 39 elist))
" j- Q7 {9 W4 w: H# T) l9 C - ltscale (cdr (assoc 48 elist))) v. \; o1 c) g3 v5 Q
- );setq7 {, @$ Y/ Y) @, M3 ]
- U Y% N4 c. u8 K0 b. z4 ]
- (if (not color) (setq color 256))
8 ~) ]6 x& A* S6 V; Q3 c2 s: O - (if (not ltype) (setq ltype "BYLAYER")): H) F: I; T2 O# k* {
- (if (not thickness) (setq thickness 0))
- ?" n. V7 z$ b: U7 r; |6 y: T6 A1 b8 r - (if (not ltscale) (setq ltscale 1))3 N" \7 [# z/ Y# H5 o" @/ @
- 5 D* V% U7 P. a2 L4 z
- (if (not width) (setq width ""))
& l# ?6 O1 m8 m) y! y - (if (not elevation) (setq elevation ""))
9 o# H1 t0 e! z+ L! L* f5 a: n: N - (if (not height) (setq height "")): t% V {8 ?+ V' @/ t) ^, W
7 K! W- j4 |. O6 D* ]' i- `1 L) i* O- (setq go T ; _0 L2 O6 p! u2 Q" U/ `9 p
- chk-col T 8 d$ i/ z$ O( b/ q3 S2 g
- chk-lt T ; K# d" g+ w1 W9 i2 d
- chk-lay T 6 K* V' f3 Z8 D8 h- H; C+ h
- chk-lts T
: I8 D( `$ ]& H3 o; h/ Z - chk-th T $ n; [) D" u0 g9 H
- ctr 0
/ y5 b0 Q* L i* S O8 C - );setq! D+ @- {" }$ b# \! S9 M
3 W3 [# e# l8 w- ;; Page through the selection set. When a property
& M; {, @) c0 c6 b - ;; does not match, stop checking for that property.( }, W: E2 \$ W7 M6 ~
- ;; When the selection set is not homogenous, stop checking.
7 M7 m% R% U U3 R. g3 v - ;; If all properties vary and the set is not a type 1. u( c5 a3 m' v1 _
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.; O6 g# [' q9 e! F5 N. B1 k
- - ]$ C& h4 i( z% V7 U6 a3 P
- ;Lets set the eflag so we know if the selection set includes any . |, c- N e! u) ^2 J) t8 W
- ;combination of polylines, lwpolylines, text, mtext or attdefs.
' ]# a" p+ y/ y& k9 Z
$ V) b$ c/ n1 U) I% n) |* J! T- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/974 _6 Y, ^: l6 R9 m: I9 w" C3 Z
- (setq eflag 0)8 Q. @ C. A# E* w, F& C- B: ^+ ~& M
- (if (setq poly_ss
j$ ^9 h1 K1 Z; A# m2 d - (ssget "P" (list '(0 . "*POLYLINE")2 R4 |( G. N& l- Z; r4 F
- '(-4 . "<AND") ' K3 D7 }; H8 z( q- b. q6 d q
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")& ?# \/ t8 J3 j2 v& ~
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
. w' ?) `' k$ t2 u - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
" }, @; ]3 l( d4 a3 d" C - '(-4 . "AND>") / Q4 b6 \: E! T3 q0 ?: C: I
- );list }2 ~8 q) e% h7 u0 S8 A
- );ssget get 2d polylines (legacy and lw)
( F8 b3 L, c( j - );setq
3 c z0 v% O* y, |! P8 M! m - (progn
# a; g& J0 I- q' w4 ]0 W - (setq eflag (+ eflag 1)); Q* r; J% F$ M) q/ Y% F
- , w4 S# I" y3 v& |- n
- (setq tmp (entget (ssname poly_ss 0)));setq
* E8 x# [* s7 k - 9 _& j3 u$ p) E; A; P. a
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
, B& ^. q7 B5 r& K$ F [0 ? - (setq elevation (last (cdr (assoc 10 tmp))))
' q9 s$ C/ T6 Q$ D - (setq elevation (cdr (assoc 38 tmp)))
0 d1 o- `' O% c' F& _; w - );if1 i2 d0 W% V, B7 o
- (if (not elevation)
9 I* V9 ?* z) \1 {9 w5 ~. l - (setq elevation 0.0);setq5 i3 I. [# ]$ b! B4 ?
- );if
4 q- i2 z+ h/ H# E7 S W - ; N' s' w" u$ M
- (setq tmp (ssget "P" 8 m; w# J$ E" z1 U) X' t' L
- (list
6 U3 w, ~4 N3 S! d, Q - '(-4 . "<OR"); u B+ S1 W! o" K. q) O: ^$ y
- '(-4 . "<AND") * J) j( s2 u: e x5 ?. T0 Y
- '(0 . "LWPOLYLINE")$ c0 l0 I0 A# n$ W
- (cons 38 elevation)/ _1 w, F( l0 L+ K
- '(-4 . "AND>")5 {3 j7 _; f3 C0 h/ v4 X
- '(-4 . "<AND")
, i3 H3 ~% z( f4 B6 _7 e7 K9 K4 p - '(0 . "POLYLINE")
5 G6 U2 f1 k8 p7 w# U - '(-4 . "*,*,=")
# `# {; k2 O k) T: r F3 w, H u n - (cons 10 (list 1.0 1.0 elevation))
+ \3 z+ g/ r8 [# A: Y* D' z& |" o - '(-4 . "AND>")
, q# Y& a8 j$ c2 j% N8 a# d - '(-4 . "OR>")" K/ s+ b2 u% E# {" h1 U* x
- );list6 S* m& |/ R) T$ p. v b- @
- );ssget: p2 R" o2 c2 L: G8 }/ Z
- );setq7 f0 \- A8 z, E/ J9 G
- 0 K6 E. v3 W" F. \
- (if (and tmp
" `2 @% H" |; f - (equal (sslength tmp) (sslength poly_ss))
0 k) f. `( u! a1 L3 M- W- A9 y - );and
9 B# h. f( }3 g% @$ q, S/ ] - (setq elevation (ai_rtos elevation));setq+ e8 O. b4 U+ X" I# e! k) \
- (setq elevation "")8 B& h* ], ?) c0 u
- );if
# r, N, w: ]: R1 K% C$ r -
8 F- l8 T0 c* _. H" C - (setq width (pl_width_getter poly_ss));setq+ N# }8 p) A- M% r
-
, J' P i# y0 Y( H, d - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
7 d" B3 T+ R8 y. I, `& A9 U5 E: C - );if
# K' r" R6 R; H; L; x6 _ - (command "_.select" selset "")% a$ {+ Y* S) E& R: l
-
. A; e2 V: g2 O5 C. p2 H4 M - (if (setq txt_ss
0 m2 Q0 I0 t6 c4 M. F$ B - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
. t, {- `$ x K# r1 x: @. R$ J. u - (0 . "ATTDEF") (-4 . "OR>"))9 x+ n5 p4 q! ^' Z
- )
$ ?8 _9 X" E# n* Z& x3 v - );setq, U- C0 i# T" S7 a; S2 E
- (progn
7 \1 _, k3 G' u, B6 a! r - (setq eflag (+ eflag 2)): n$ ?$ ]' T t; X
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
$ G2 t [: C. b' x - tmp (ssget "P" (list (cons 40 height)))
+ T' l5 m' j+ L; z% ?5 V - );setq 3 g8 m0 H. ` ^, [. ]. x( U
- (if (and tmp- D6 V1 [8 b ~' s4 t+ i( J
- (equal (sslength txt_ss) (sslength tmp))
- ~- \% `! t6 M9 c# X( Y( A7 e f: o - );and
; H1 n; G: a9 p - (setq height (ai_rtos height));setq ;@rk need to translate from float
% U; P( [- p9 x9 U( y0 F2 j) a - ;to string and back again easily
6 l" ~. P( y+ @/ [5 e0 S, I - (setq height "");setq else the height varies $ _- \3 c( t1 k' c$ S6 I
- );if
& e; f8 Z* a9 [$ h Z - (command "_.select" txt_ss "")
Z& F" }! `3 U- Y - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))7 k/ C8 c* H: k0 g( N
- tmp (ssget "P" (list (cons 7 style)))
0 ~) W. u, y% u/ z' u. d9 W - );setq - r2 G0 d, `6 w3 h/ {# E* j8 u
- (if (not (and tmp9 k3 c4 p- r- j* K( M+ o
- (equal (sslength txt_ss) (sslength tmp)) - P7 n$ b0 f' A' A% l1 D ?, |
- );and1 d* g# Y) a! J1 S: m
- );not
4 S. y' D' U( [7 r3 c3 J# b3 V - (setq style "");setq then the style varies . I) a( V4 {1 v- B- v! B5 O* H
- );if
; O# n/ K9 d7 c& x k; x6 X - );progn the text type objects are in the selection set
8 Y* o6 V- |- t* `+ |, U - );if+ E0 {8 C' `, z9 D3 X
- (command "_.select" selset "")) X) v& L3 A! Q! O5 \ [! H
-
8 _ @% }0 B( h9 u, E+ O j - (while (and (> sslen ctr) . b3 J' e9 \5 c
- go/ r2 v& X, D) D. }' O0 g; ^
- );and
4 A+ Q7 i0 S5 _/ w, s( f# I( [7 i - (setq elist (entget (setq en (ssname selset ctr))))
& D- F# f5 E9 q+ ]% L' b( ]7 D
2 P/ f N" ^! c# h- (if chk-col (match-col))' G! j6 s! L4 d2 S9 c
- (if chk-lt (match-lt))
; e1 S% a1 I' o; d - (if chk-lay (match-lay))- [5 t, ^9 R. O7 t& A. h7 T% H
- (if chk-lts (match-lts))
7 R" Z2 O3 x$ [2 R% l; H' ` - (if chk-th (match-th))
& r- P l! i2 G( e7 {$ W - 3 ~5 P+ R5 w3 ]; b" D' \5 r$ f
- ;(if chk-etype (match-etype))
8 j( i7 }( O7 d' a; C# x
% m- X) _7 D# t4 b5 y+ }- (setq ctr (1+ ctr))
. d6 \# F; l4 w& |" m - (if (and (not chk-col)9 n0 k4 K" l% W' C7 d$ \
- (not chk-lt)
@% G! Q% v; {0 y - (not chk-lay)
: y1 j/ M- J6 F: K0 s! y - (not chk-lts)
3 ~ R/ d$ V9 v, h- w - (not chk-th)( ^) n* b1 } g& u
- ;(not chk-etype)
5 u h' l" c: Q2 i - );and
; Q% u, x; b7 U% Q8 u) k - (setq go nil)
, p( V! f1 H- |; E5 v - );if9 q( b! ?5 M; F9 F- q$ f3 F) s; d9 g
- );while
% j. l% a. ~5 E; R; n7 i -
2 [3 N4 _8 w0 r+ C- O J+ l - (list color ltype layer thickness ltscale
: h! Z4 P- N! R1 O3 V - width elevation height eflag
O; Z) o7 |8 T% |- q1 p$ F - style poly_ss txt_ss
1 d* e0 [6 _& o$ T - ): E& Q# u2 m+ w+ A; Y, H, H, ?' n! P
- );defun getprops
9 v: M7 E' `: v/ o
& C4 _2 f5 B) n* e- ; This is a speedy little routine to tell whether the polylines in
9 w$ k4 U$ l" R8 | - ;the selection set argument are of varying width or a constant value.
e* [: @& ~- u. K - ;Looping through the vertex's has to be done for old polylines when
6 s. o! o* _% z8 [7 @2 r) q4 U - ;the polyline header has width values of 0.0. Basically, in this case,
, |6 q4 |+ |1 x `9 w - ;information in the polyline entity header is abmiguous. Width values 8 x8 c- l) j1 S2 H* n
- ;of 0.0 in the header entity could mean the polyline has a constant 8 F6 ?8 |: Q' d( a
- ;width of 0.0 or it could mean that the polyline has vertex's of varying 9 I% Z% W" i/ w# ?
- ;width.
8 U$ t9 a Z1 ? g5 C8 W3 x! E1 W- T - ;, |: O+ Q: W, H% ]
- ; It's all in wrist. Err a.., I mean it's all in the 'if'8 u. c2 f% A; ^/ T* u0 v
- ;;
& h( B5 q' I3 w# p. i" Y - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)% v. l% G/ K8 T, J* o
! g0 H# ^! g; Q% D3 W- (if ss " @5 b8 D6 P% y! l! k5 w8 v
- (command "_.select" ss "")1 Q) @. E$ Z) ?8 |& Z; z# k
- );if
: Z& m0 _, }7 `+ @% s$ i6 J! q - (setq width ""
. s0 O8 \; a. j- w% X7 y - flag nil$ ~: H: O8 N4 ~1 ?+ z& a1 w
- flag2 nil
: n7 d1 m. B2 X4 |0 u - );setq
0 j$ w. W, Q5 T' b6 ^ - (if (not 1 P" [9 V' V# c6 s) i
- (and ss
4 h+ ^8 C6 v) { z! } - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
# ~& l' E' {% Z8 g1 h+ E' u - (setq na (ssname ss2 0)9 [6 t. @) z K) w
- width (cdr (assoc 43 (entget na)))# | s5 D0 ]7 e) D! \0 e; [) @
- );setq/ V& c! |, |, J$ r
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
) v2 m. X$ }! E6 w+ z$ v - (cons 43 width)
0 q& H8 `" }9 p I1 M7 i - );list i" y4 r' M3 ^; `: _
- );ssget# m! s7 E- |) d S0 S9 k% {- n! ~; \
- );setq7 j: g& e0 M' l, v- I3 J
- (setq flag T)
0 m( a6 P$ F% ~; `" ^; o - (equal (sslength ss2) (sslength ss3))
9 Z" Q. `, l, t - );and) P3 a$ {" F4 c6 h) x0 }0 Y
- );not/ g+ Y; m1 ^# z( u
- (progn' p3 G0 L9 \$ e" }2 V
- (if flag
+ j) J" f: f3 v5 G { - (setq width nil) # _$ j# u ^+ E% N; P ^0 n
- );if
* z6 D) E4 y# t' O - );progn
1 _7 L+ W; W* W) O' O+ C - );if ) H" K+ t: M' } ^( \- l* {
- 0 r( T% w. W9 M8 Z! H* J' w
- (if (not
0 i1 P& n. F+ | - (and 1 a/ ?% d* c q: q, ^( Y: l
- ss% @* O" [5 U" `8 _# I
- (progn (command "_.select" ss "") ; s6 s( ~2 R6 U! h1 `# R! G
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq3 g: @- j) @' J6 W/ n6 \
- ) # e! @4 T5 U% U
- (setq na (ssname ss2 0)
) w7 B6 l; M( S5 d - e1 (entget na)0 M( }$ l, x% C2 V
- width_a (cdr (assoc 40 e1))9 K5 A2 J* E, M, c# e9 O7 O
- width_b (cdr (assoc 41 e1))
& K+ t z$ g F1 K - );setq6 y0 `3 w% K+ M# J
- (equal width_a width_b)# K* A; I* H/ T5 G- n6 x3 A$ _
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
$ C* g. N9 T& I" s- H" \" r - (cons 40 width_a); L& d0 @* F+ n8 n
- (cons 41 width_b) ? ]1 b) n0 M3 M J
- );list
( N, e" j- ?& g - );ssget; M! z# @9 R& a4 H9 y( n m
- );setq
3 j f2 T, S# H7 y - (setq flag2 T)3 h* Y3 [) o8 v! e" W6 A, ^
- (equal (sslength ss2) (sslength ss3))6 e2 A' L1 [" _8 a4 B5 U" J' q
- );and a* s4 l& I% L/ E3 _
- );not
5 ~7 S t3 \7 ~& X! i - (progn) d5 Y: H, h* o
- (if flag2
: K1 J& E& m2 Q, R9 r - (setq width nil);setq8 r2 k+ }. ]5 \( G5 I, ?
- );if
; W x" U6 ^: s5 I - );progn then
0 R u; J; n% }8 L - (progn9 C9 B* U! |% ^3 v
- (if (or (equal width "")
: p+ K2 E0 a7 \2 X8 K1 l m - (not flag)
2 s& A9 N% j: W" d0 ~# z% k - );or
: }% C! G! N* a - (setq width width_a)- H% I% E7 x2 R
- (progn/ c; {, k0 v9 A5 Y2 \2 a3 [0 H$ y% {
- (if (not (equal width width_a))4 Q; M3 g, z3 P* ]' Z8 n7 c3 U; x
- (setq width "")! q1 O! G# b/ @' x3 Y
- );if M* |5 k" m9 J8 X) \
- );progn
5 E9 V% M+ I% m( F2 d& @ - );if0 ^" c- k5 b! q
- );progn
/ Y! f2 \2 p* Y# w* s1 M - );if+ T$ S, q' @ ?" C: i* { K3 Z7 S
- 2 B5 H% [ G2 d5 U7 V/ j
7 f' v! N7 ?, J4 r7 e+ }: t, u1 r- ;now for the special handling for old polylines1 ~: E. U1 R5 r6 w @( E' w2 P
- (if (and width 2 o: c1 E3 b7 o) S5 A
- (equal width 0.0)) W0 D& [/ W( @% H
- flag2
2 x7 W* z. {! s+ U; [9 l# S6 e - );and
, j* W) o2 k2 | - (progn
( E8 ^% }, b2 s0 Y2 g- Y - " m: J% @* [7 K
- (setq n 0);setq
* w$ _9 U0 b0 j$ j$ D* U - (while (and (equal width 0.0)# V+ w ?" F5 H8 U# O
- (< n (sslength ss3))
5 J& x( c5 | D& p2 C6 A+ Q" c3 o: Z - );and+ t9 A' r6 ?' G {, O
- (setq flag nil! S* R1 ]# a3 ~6 P0 d% ^/ S
- na (ssname ss3 n)
$ W/ e! H2 D/ e0 z) J - na (entnext na); `9 \; T+ ]2 z5 f
- e1 (entget na)1 H/ X5 r5 z( v# x$ {7 O
- );setq6 \1 A/ u+ g0 o( b8 O: K7 ]) ]
- (while (not flag)# v& N- \ i4 b0 b
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND") x, m, t$ y, t1 C7 ?
- (not (equal (cdr (assoc 40 e1)) 0.0))
) ?/ q: ^$ |8 @ l1 u' q - (not (equal (cdr (assoc 41 e1)) 0.0))+ C: G, ]/ }0 P
- );or9 \, |( a, h# Z! ?4 B2 l. U2 t L6 `! h
- (progn) {* r4 }# k. T% _! c- R: @
- (setq flag T);& M ]! c3 i1 d1 A. [% Z- N( G$ b
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
: P/ [$ H9 a+ `& ~* S - (setq width nil) 1 e8 x9 q! @: _; z
- );if
0 X$ {5 i9 E: f* O! t7 D - );progn then jump out of the loop
# ]0 C: \7 P, d8 Q5 P - (setq na (entnext na)
( r$ F+ H/ |+ f - e1 (entget na)
# k$ K5 t% X' k6 [, q) N - );setq 6 U5 M0 x' }# Y8 V
- );if
" x! g9 D/ l3 \0 t - );while
1 [( V. {; v U1 T. N m" R - (setq n (+ n 1));setq
' W9 C% x# k1 L! H" Y - );while
6 G. B! r% s) u7 {$ Z) ?5 C7 Y -
" V8 X" W! x% w$ N - );progn then it's a legacy
4 O4 l5 H: c9 ?) w9 g- n& ?4 t - );if ;legacy polylines that may have varying widths 4 y( z5 I% T1 V2 }( J& c
- 8 W7 P9 G( R5 i0 z/ ]
- (if (not width)
" ?5 B; @" o `1 B$ M2 e! R - (setq width "");setq1 t- A' m% r1 v; O0 z; n
- );if' B9 O0 ~7 X# r" R& F1 P
- (if (not (equal 'STR (type width))) U- v8 v+ R6 R" U
- (setq width (ai_rtos width));setq
! Z/ g2 q. D, F - );if
; L0 F3 n8 @0 m" ~& ` -
8 y$ D9 E, h6 J3 O* y+ d - width ; i& g; C6 S' ^
- );defun pl_width_getter; V* g0 w1 y0 d6 l1 M
. k' H1 \, R/ C4 u/ A- 8 a6 i- f3 H7 [4 e9 h+ q
- (defun match-col (/ ncolor)
$ Y: b# f+ c+ \3 e - (setq ncolor (cdr (assoc 62 elist))); a, T: |4 Y/ Q* B( \4 P
- (if (not ncolor) (setq ncolor 256))7 j2 }' S; B1 ~- F9 j* v3 \$ V _
- (if (/= color ncolor)
% A' `8 k/ N( |" d - (progn' x6 O: d( k! i/ B3 g2 O
- (setq chk-col nil)* f" |9 g5 I9 ]5 r }$ v
- (setq color nil)
0 F3 E9 c, n- ~/ }2 p - )
+ ?3 g* a7 Z- U5 l1 x& _& i8 V/ N, O- { - )0 `3 b2 q% f) z3 h4 j9 v% S7 O+ n. Q
- )
6 ^9 S0 R6 P* m. P# N: o. r: `
; F/ x A# Z9 L- o- (defun match-lt (/ nltype)
# F* [; G( x& n& r( n9 { - (setq nltype (cdr (assoc 6 elist)))
4 U& A* w2 I- x1 G$ [9 R1 j - (if (not nltype) (setq nltype "BYLAYER"))
# K; F1 t1 n$ S - (if (/= ltype nltype)& O( {+ h$ ~8 }2 D, E6 P
- (progn
2 u* q0 j! e3 N/ w8 O - (setq chk-lt nil), [* g% T6 k6 E# @
- (setq ltype ;|MSG0|;"Varies")
/ D+ @3 ?+ x) n, E9 C2 h( v% P - )
4 b0 Y# x: {7 O& ]0 K - )6 b4 K/ `. Q. T3 J. D) J
- )
5 c7 t! n8 A7 n4 o7 q - # N/ r( X% J" t2 \* L$ W; V" ] `2 L
- (defun match-lay (/ nlayer)
; \$ W: J5 F- F) S - (setq nlayer (cdr (assoc 8 elist)))
8 b. d3 L4 M2 X+ } - (if (/= layer nlayer)
8 I) P: N) U# E - (progn: N# o5 b( A* H# @8 h
- (setq chk-lay nil)
4 q$ Y3 E$ v4 U - (setq layer ;|MSG0|;"Varies")
8 L% p* {6 O9 T% S# o* o' N4 |. o, P - )+ d/ a! ]& Y5 j, h" o/ Z3 C/ `% @
- )
1 l, O- G9 T+ D& n6 w$ c2 C; R! \ - )
% u/ {7 a3 L2 x0 e8 G5 k - 4 _, q; [% J. F6 R! [9 e- e+ \
- (defun match-th (/ nthickness)
( z" G. U2 }) b" b - (setq nthickness (cdr (assoc 39 elist)))
7 u5 Y. ?% F1 V& `7 D - (if (not nthickness) (setq nthickness 0))
. q6 o' M* L9 Y2 \$ W* H$ ] - (if (/= thickness nthickness)# L/ I( q; n% H8 W- ]
- (progn
4 {* ^2 `$ f3 B - (setq chk-th nil). T I/ g2 }" x4 `/ O
- (setq thickness ;|MSG0|;"Varies")- K9 m9 ?1 q( n+ D, [
- )+ |/ F8 S- e. ?, y. N5 k$ W
- )6 @$ d4 W+ D* _0 Y7 X% I4 K
- )
( B5 L( b( A X3 _( K$ r! a
* [6 ~' c! I, F* _! N- (defun match-lts (/ nltscale)
8 D, i1 z; X* l1 }6 ~ q - (setq nltscale (cdr (assoc 48 elist))): Y* |& v! M) t3 F
- (if (not nltscale) (setq nltscale 1))9 Q \7 l. A( L' C
- (if (/= ltscale nltscale)! h8 j9 }) g- j% l/ L3 W
- (progn
( x6 ?1 @; ]1 |3 [+ y; @9 p: D - (setq chk-lts nil)
1 k" K0 M: M" m2 @ - (setq ltscale ;|MSG0|;"Varies")
2 K% u$ c. N4 u- B- f, Q) V3 g6 f3 @ - )
0 T8 S- x6 R1 c, O - )3 i% R0 H3 \& [
- )
+ k0 a: y+ Z( e) d
- V3 X+ X C8 u- ;;
) ^2 o! K* h. k, @ - ;; If an item is a member of the list, then return its index number, else5 D6 O' y; a/ c7 d R+ Z' @- v
- ;; return nil.) M2 e7 Y! X0 a8 `2 P l6 o% X
- ;;
4 g$ T. M' U, j _1 Y - (defun getindex (item itemlist / m n)
0 G+ B+ P# O \% _4 s/ D - (setq n (length itemlist))
2 b( o1 w$ q- N$ N1 z5 g - (if (> (setq m (length (member item itemlist))) 0)8 }6 i5 g, o) W$ C f3 ^1 A
- (- n m) ^/ \, O- D$ e- o, } _
- nil0 }& z3 u7 [# f9 f
- )
% G0 A+ Q y4 a% f' d/ c% X - )
8 [# Y6 A# y9 @# O! A; S$ r - ;;
; G; v0 ]3 [& J, `. y, I; w - ;; This function is called if the linetype is set "BYLAYER". It finds the$ y, e0 q/ s* o8 `+ h
- ;; ltype of the layer so it can be displayed beside the linetype button.
7 Y" ~7 J# ?' {# r# ` - ;;
Q: V1 ~3 |3 ?/ m3 k - (defun bylayer_lt (/ layname layinfo ltype)! B! L! J8 w" y
- (if lay-idx4 \3 x8 R, X, k: A; s! l
- (progn! c- b" H! n+ x B
- (setq layname (nth lay-idx laynmlst))
6 N; B9 h4 [* L& |* ]* e# |9 ]) v - (setq layinfo (tblsearch "layer" layname))
# q' Y! H) d8 e# [8 r B8 x - (setq ltype (cdr (assoc 6 layinfo)))
" N. F) \. @) M, U6 G" K3 \+ _ - (strcat "BYLAYER" " (" ltype ")")
$ R( Z, s) }) v- W - )
5 S) V: f: y7 c v0 w* t - "BYLAYER"
/ e7 s+ U! D& J: q& q& B8 M& P - )" ~/ i* {& C. P6 R6 z9 ~
- )
* G6 R- R; ]7 ^$ D - ;;! v+ F7 d4 ^$ G( W( s! b& f2 f0 g
- ;; This function is called if the color is set "BYLAYER". It finds the
. Z4 ~% Z, \/ o1 q3 V - ;; color of the layer so it can be displayed beside the color button.! k- Q8 ^# E' ]9 U" L6 c
- ;;
, I; e% y5 \& l2 H; c - (defun bylayer_col (/ layname layinfo color)) r) f+ u* U! {0 w
- (if lay-idx
/ c4 ?3 F) \/ ?, _% y - (progn
' A: L4 F3 q, o' _- I+ K( G - (setq layname (nth lay-idx laynmlst))3 t# C, r. v/ S( Q, J: k& M: s
- (setq layinfo (tblsearch "layer" layname)), ~' N2 P- J8 z6 @" V$ ~
- (setq color (abs (cdr (assoc 62 layinfo))))
) S/ E3 o$ K7 }2 _6 E* D; d - (setq cn color)
5 x! Y3 ?' \9 ~, w8 K - (strcat "BYLAYER" " (" (colorname color) ")")
. @, V( ~* o) a2 T( i" p - )4 B. o* T1 B2 f- l
- (progn
* U3 R' f) d% _4 ~" i1 X+ `& j - (setq layname elayer)) ?% p5 f& N6 i
- (if (and (/= elayer "")' I& }/ E7 ?# F# ?
- (/= elayer "Varies"): Y0 l* k; b1 I' f d
- );and5 s1 ~* R: }, Y B: ^; ^" I9 D; f
- (progn
5 d7 K# D2 d( k0 {; j - (setq layinfo (tblsearch "layer" elayer))) G$ O: _; F% D0 l
- (setq color (abs (cdr (assoc 62 layinfo))))
8 j# G, ]1 f6 @% f - (setq cn color)$ k( E& T) V/ J" t
- (strcat "BYLAYER" " (" (colorname color) ")")( I- c! f6 O0 [8 x( J+ E
- )4 i/ Y; a2 u6 S% R2 |
- (progn
/ u3 e# H9 T0 c+ T - (setq cn 0)
2 ^1 F- G" C3 F - "BYLAYER"
7 v6 S0 \% s0 k0 S' ]- F( ` - )) J. X e# s# L" p6 ]/ y9 H& U% O
- );if" A/ ^. y' T+ |3 `& U+ u
- );progn9 A7 x( z s# e" J1 f
- );if
. t F( l# l5 @ _3 K& I - )
( {3 Z! ]2 |" h6 {: h$ B - ;;
4 m5 p# a" g+ n0 }) ]7 V/ ? - ;; If there is no error message, then close the dialogue1 `: `% m& `: }0 ?
- ;;5 W7 o# Q- l- p; O5 v+ b
- ;; If there is an error message, then set focus to the tile4 c2 B9 Y$ `3 F& B9 x" w
- ;; that's associated with the error message.
, b2 F7 x" Q& S! Q' N, Y9 l: m - ;;6 d+ L* @) N7 b# [$ Z& t/ Y
- (defun test-ok ( / errtile)" o: o, \6 r' |" ]) K" x. d
- (setq errtile (get_tile "error"))
* i( r: v, P9 Y - (cond
/ l/ W4 N1 k4 w9 X5 `) R( Z/ c3 b' _ - ( (= errtile "")
: s; }8 O0 P) K" z9 t - (done_dialog 1))* e& C' Y; ?- C& E: X
- ( (= errtile "Invalid thickness.")
" t- W4 Y' b; ?6 ]6 \ - (mode_tile "eb_thickness" 2))4 E- y9 O6 t; n6 b
- )
: M, f- c! G; A C3 t) C2 { - )
: o/ M9 ?$ Y1 {% l4 P; F - ;;9 i6 X, H9 |6 U
- ;; OK in main dialogue.' a$ h0 x6 B& j0 z4 \& _
- ;;) M# J& M0 X$ H9 Q1 m3 o# r
- (defun test-main-ok ( / flag)6 R4 _/ I; \0 ]6 s- s
- (setq flag T) $ e- R6 r- C5 j2 x/ I! W
- (if (not (or (distof (get_tile "eb_thickness"))
: |1 V: D2 b2 P, C - (= "" (get_tile "eb_thickness"))
4 O J9 U \& o( _, B! s - );or
: U. F) f* m" [% w' ^9 w W+ T - );not
8 b1 l4 D" _. c5 W. s2 D - (progn
$ b( k: C4 y8 Z - (set_tile "error" "Invalid thickness.")
- [5 S+ Z `5 F+ h( i5 ^ | j& V" c - (mode_tile "eb_thickness" 2)
& @8 p) j' H" Q1 @5 V/ h& F - (setq flag nil);setq i: u$ Z" l. _, s$ ^
- );progn, l" G0 \) s, M0 H+ w K
- );if
. \" x1 H7 E! c8 @# J0 U4 N - (if (and flag
, g) E. D9 ^9 X0 \ e! S - (not (or (< 0 (distof (get_tile "eb_ltscale")))
, P. v) P7 S) d5 Z2 J: y - (= "" (get_tile "eb_ltscale"))
! ?9 [6 P4 @0 w: O - );or " H# W; s- }+ F0 j1 E8 k
- );not
/ ^6 t7 C! \3 ^7 g! t - );and - r$ c# @5 y0 r" z. j) ]
- (progn y/ [; |5 u4 p0 q' B! x
- (set_tile "error" "Invalid ltscale.")
$ k2 v# O+ o( W - (mode_tile "eb_ltscale" 2)
' u0 m/ [8 A: [3 b Q - (setq flag nil);
9 K% u# Z, c( u0 f) \/ A- p( Z - );progn then
# @- J% `3 i& ?% Q# }" Q6 y - );if
$ g2 b, J2 M# z. W6 K0 k, t- j - (if (and flag z$ \% X- L& }+ W
- ; Don't test the tile's value unless it's enabled.
' l( O5 a; X7 e: `& i: y - ; We're not set up for the display-only value, I( D! [& E* V) L! M% Y5 q
- ; of "" here in the error handler.
7 z! y6 ~6 n! _! N% ?5 y - (= 2 (logand 2 eflag))
2 h3 F6 i; z" u( I - (not (or (< 0 (distof (get_tile "text_hgt")))
" ?3 k, h1 d A# s - (= "" (get_tile "text_hgt"))
/ t0 U, i- L0 t X `3 Z - );or8 V8 _- V( ?# ]* N' U; E
- );not
! }% ~& X& \2 i `( p4 B( U- t - );and7 V5 K5 `0 }8 ~7 S6 e% z( D T! m
- (progn
/ e1 h. `, B. q( A& V8 m6 G) x* @ - (set_tile "error" "Invalid height.")1 ]% h! X. `$ I1 G% c7 Q) [( _( Y9 y
- (mode_tile "text_hgt" 2)
; C' f& n2 s F9 w, m1 d0 A; v: W - (setq flag nil);
3 L: H/ r: [3 H& E( W: B; } - );progn then% O; E. B; i F* b' A8 C5 l/ {
- );if1 h$ m* D j9 F* C6 h
- (if (and flag; j* v9 {! t/ f8 h. x0 K! m
- (= 1 (logand 1 eflag))( X; o* j" q9 C/ X# J
- (not (or (<= 0 (distof (get_tile "poly_wid")))
# `0 k4 i9 X6 X4 }' w2 `# @& X - (= "" (get_tile "poly_wid"))5 J6 r# P( D% V* S/ n$ H
- );or4 |7 n4 V- w4 [+ Z
- );not" h3 i! y* B- y; y# A4 W
- );and
2 l: ^& a- C3 h - (progn
3 Z% h$ N: E$ j - (set_tile "error" "Invalid width.")+ E8 h: \) e% a/ r
- (mode_tile "poly_wid" 2)2 G. K1 \0 y# R+ M: J
- (setq flag nil)6 n- B3 E. A. r/ z/ Z% t9 k
- );progn then8 X1 X& d; _. j: t& F ~
- );if
* T; Y" ~, h: T* ^- G0 E3 q7 C5 R - (if (and flag
. j$ d+ A1 M" i/ M1 M - (= 1 (logand 1 eflag))
4 _+ U# H, e+ @" d4 t - (not (or (distof (get_tile "poly_elev"))
; o' M; z) g( Y* ?2 s2 q - (= "" (get_tile "poly_elev"))
9 m* T1 t' Z* R - );or' K4 \0 l% o8 c2 G
- );not# i. U9 n3 {- U2 u4 I" d# V( W
- );and
. o% h H+ l" h! M0 ~1 M( ?6 t0 e2 F - (progn
- B4 U' ^( B& P8 Y1 a" y - (set_tile "error" "Invalid elevation.") T1 f( K& I+ j% e$ ]
- (mode_tile "poly_elev" 2)5 }9 _5 C$ _3 V* C; E) `
- (setq flag nil)- F* ^" h) I" H2 |( Y
- );progn then/ q$ C8 w2 _. R3 u
- );if * L) i: ]3 K+ E+ d+ B! J
- (if flag - D/ e$ C9 K9 s, ]7 j" r2 H
- (done_dialog 1)
# I$ K3 X% m2 e! E9 m - );if: \- q i7 M( z p+ Y& S9 C$ b3 `
- );defun test-main-ok$ ^9 m" i4 Y. }" h' G2 U O
8 G" }2 A( {; n: ^! v1 _8 j& n- ;;
4 q5 m, q, U, A3 Z" ?" f - ;; A color function used by getlayer. e: a4 f5 e) F) e$ O% T- y
- ;;3 W( D0 U. P" f! t+ O- s
- (defun colorname (colnum)
: P' D1 {, a9 F; s - (setq cn (abs colnum))
$ C6 s& W# U3 [+ S. A - (cond ((= cn 1) "red")
* n* [ F' H. s; E, G {) N - ((= cn 2) "yellow"); X: t p: r& w
- ((= cn 3) "green")
% g4 `; ]5 A+ w7 C0 { - ((= cn 4) "cyan")
) v0 J0 G1 j4 j$ D$ c2 b - ((= cn 5) "blue")
) S- n, O" K9 J9 K- ~$ M - ((= cn 6) "magenta")+ G7 t( F- s* m9 B D4 \$ K
- ((= cn 7) "white")
, z$ D4 U. D" l$ b& Z" r4 ?* Z - (T (itoa cn))9 S/ z% k _2 Q+ b( N7 {
- ) r5 u! x+ I" Z
- );defun2 k1 a+ l( a& h: H& E
- ) ?6 P, w, C8 i8 x5 ]
- ;;; Construct layer and ltype lists and initialize all1 Y1 A: Y4 j! _3 x* S
- ;;; program variables:1 x+ w0 u& _! z+ ]! u
- : i3 \9 @" d4 Z- c& d) @5 T
- ; (makelaylists) ; layer list - laynmlst# |6 h" H4 r+ e1 ^. v3 y
- . y- R. X8 C# K
7 a6 k6 b$ {! f. C- (makeltlists) ; linetype lists - ltnmlst, mdashlist
0 `2 z+ U M9 o( y - 5 s, K ^+ B9 W/ w) H# `, {
- ;; Find the property values of the selection set.
# Q$ Z; o: Y& T - ;; (getprops ss) returns a list of properties from+ z* h* d; g! o- T- \
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
" [ w: N. X. I& @ z) c - % j7 z' p2 f; _1 Z
- (setq proplist (getprops ss));@rk interesting things happen here6 ^9 p2 z/ `. }8 G) [
% O* m! J6 X! R* w) v- I- (setq# I, y/ r$ n2 i r( } i# w4 o" I _/ r
- ecolor (car proplist)/ X5 ?5 K- J( S& j8 T. N0 \
- eltype (nth 1 proplist)
* n" u" |% h' i4 _ l - elayer (nth 2 proplist)
) b# p- F; ]1 S5 H# P2 d - ethickness (nth 3 proplist)
- \. y" Y5 {/ i+ M& I% Q - eltscale (nth 4 proplist)
) K; R( y D( z - ewidth (nth 5 proplist)
9 C; q' S. b- T* U5 T! z! _9 M - eelevation (nth 6 proplist)
; @5 ^ T. z* F. l5 @ - eheight (nth 7 proplist)& E& q0 E- z" t' m% h+ Y$ r
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK." ~" H4 ?( S, L% _
- eflag (nth 8 proplist)
9 o6 R# u: z! L3 `8 f - estyle (nth 9 proplist)) s, Y2 |! @- i3 l! S7 c' E: ^
- poly_ss (nth 10 proplist)! E/ h% \( N& P$ ~/ V* U
- txt_ss (nth 11 proplist)
/ K# |) d+ {7 M& q: ^! ~+ J; t' C - );setq
; |' ^3 o" }3 O - 9 w1 ~( K# Y$ L: {
- ;; Find index of linetype, and layer lists
' z5 \0 V, Y2 ~8 A+ ]3 n3 p - (cond
: j) s, L1 s3 c3 U1 u, Y - ((= eltype "Varies") (setq lt-idx nil))
# {1 m6 J) h4 i* \ - ((= eltype "BYLAYER")! M5 a* n- p) f& T
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
3 y; J4 D9 t. m% d; z - ((= eltype "BYBLOCK")9 d4 ], M9 S, ^7 Y4 O5 Y
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))0 c8 C6 l- u0 O9 J8 C& f$ v
- (T (setq lt-idx (getindex eltype ltnmlst)))
6 b* _6 m! Q9 U* e - )9 ?2 p5 S4 Z. A* q
- (if (= elayer "Varies")
6 {6 N: Z5 z* z' z! n - (setq lay-idx nil)
+ `& V+ c( d9 }8 Y n - (setq lay-idx (getindex elayer laynmlst))5 z! S* i; P* i" I/ z$ l9 G5 m
- );if( n- X2 J# t% c7 z2 ]/ T4 l
- (if (= ethickness "")
0 v7 N' P, k3 V+ [( i$ U - (setq ethickness nil)6 d0 l6 S h2 ~- B
- );if% E: g' ~/ ^2 N& x+ E8 m+ r
- (if (= eltscale "")
: v0 \. |7 V/ Y- Q7 n& o2 q - (setq eltscale nil)
" g* |' r- d- \ - );if) ~' R( }. }( Q8 S
+ |- c1 z* q" o0 l6 u! O: {* A2 M- );defun ddchprop2_init ; end (ddchprop2_init)# V0 F3 E* F9 K/ {" Q) Y
0 @ A; `* \; v$ E/ \0 p G: k8 q- ;;; (ddchprop2_select)6 n3 S z' y |/ H) x+ b
- ;;;. k% I& r% F, t& _1 {1 O
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:/ s( ]7 o m- X* ~" a! q _7 E
- ;;;* J+ V% D, t) J8 }$ p! \+ l' m! Z
- ;;; 1 - Autoselected.* \( y2 k! q3 P) Q6 p! d2 ^
- ;;; 2 - Prompted for.
; l" C1 {! a5 Q - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
y8 q0 B c/ X' w5 P% ], `, B - ;;;
4 n0 D: G7 Z6 v# s) f& N - ;;; The (ddchprop2_select) function also sets the value of the
% r3 `: t$ \' m3 \7 N - ;;; global symbol AI_SELTYPE to one of the above three values to6 Q! K6 n0 ^4 d9 _" r: V
- ;;; indicate the method thru which the entity was aquired.
: I! P+ ], W! A- }- x
' d$ @( |8 d" B* \, e- ; r# A4 E0 g9 \( y9 U8 a: {
- (defun ddchprop2_select ( / )
F1 o3 E& Y7 V# n" c
* `8 C4 g0 c2 L-
% F, A/ ]6 D& y! \) j8 @ - ;returns only entities in ss that are in the current space. 3 F/ d1 W8 S: Q; d
- (defun ss_in_current_space ( ss / a cur_space ss2)
" U" o# G9 o* u/ S
; u2 M* F# U1 e4 l- (if ss/ T7 _% [5 I Z! v/ ?8 T
- (progn" X% `, Z f6 R* z
- (if (and (equal (getvar "tilemode") 0)
$ i' H) f; |, U( ]+ k$ o - (equal (getvar "cvport") 1)
: C# k; p: @. V9 E2 M# n - );and
: e& p, N& I; t; \# V ?7 A - (setq cur_space 1);then paper space is where we are.
" `9 F% ?' P7 J5 ~7 c0 i7 x& d J - (setq cur_space 0);else model space.
( a, V% d$ B" y; A8 \" a4 r - );if% ?4 S/ v8 k, Z
- (command "_.select" ss "")
" T7 h( J$ A' d7 Y1 @0 s - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq7 o6 @ ^8 R+ G7 w/ Y1 @9 h
- (cond ;;;;;tell the user what's going on.
" J( c' q5 a4 D* t1 ? - ((not ss2) (princ "\nNo objects found in current space."))2 c6 M5 A2 K$ B
- ((not (equal (sslength ss) (sslength ss2)))& f" @& F& P7 y, q% ~2 G- R
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))+ U. `% N! C& T" I% x4 o8 B& j
- " object(s) were not in current space.") { v K' P5 [5 }
- )5 z9 D4 y4 j t/ s9 q& G# E
- )
, p8 |7 ]# x0 @; U T. k4 t' w! v - )
! ^8 X. a5 n3 E7 \7 } - );cond * d: d9 z' ]# S( ]# o+ [$ l( @
- );progn then( V. l- ~, O' e9 e
- );if , u; c! x- Y4 i4 @
- ss21 ~& h6 d9 `2 d/ f! X; L# s8 B8 D
- );defun ss_in_current_space
& [2 r* I" v6 `3 J, O$ J% T
# Y+ M, m" T! x8 U: p& r
# l$ E- H; L; \. W* B- ;;;begin the work of ddchprop2_select
; Y+ {4 e9 n. }1 o, g -
5 N8 s6 C0 \- Z P9 c( [ - ;; temporarily restore original highlight setting.7 {: T. q) o9 H
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))# U- `2 u4 x5 z: A! r
- (cond
9 r; v7 Q# G; B& x8 j4 l, D+ K - ((and ss
r. A2 Z. }4 h1 | - (eq (type ss) 'pickset)% P9 V9 O4 z4 |1 o l
- ) ; selection set passed to
& |, m: c( ]3 O- u8 `( t - (cond ; (ddchprop2) as argument" o1 n% M" }# ?5 m0 m2 j
- ((not (zerop (sslength ss))) ; If not empty, then
7 L: H4 s1 A! p% w$ m* f - (setq ai_seltype 3) ; then return pickset.! R; V0 [* X" D3 Z
- (ai_return ss)
; I: m z8 l5 r& q$ L - )
" m9 q5 e8 Z& l' Z# M0 e - );cond close _9 d' Y, D7 @
- );cond #1; W0 Z5 L. Y R! y, I
- ((setq ss (ai_aselect))) ; Use current selection
; a ] e# P* i7 S! y - ; set or prompt for objects ~' H) ], w( a) y! e
- (T (princ "\nNothing selected.")% Z* a/ H5 j$ |2 Q0 s; p: K
- (ai_return nil)# @6 l+ `2 \! S" {& ^! Y* O7 {
- )/ M! m5 F' ?+ o5 u% x
- );cond close: D: w# [% m. O% T' B8 h3 F
- (b_restore_sysvars)8 N6 ]. U+ i, h6 @3 Z) l* h/ _
- 5 f; e( w2 |# t9 E+ f
- ;(if ss
+ }7 D4 B* l# l0 h S - ; (setq ss (ss_remove_locked ss))
9 k) K3 e2 a0 e+ R4 ~ - ;);if! F5 Z7 w' {# x* ]
- (if ss
Y7 r% C( B; ~# E1 A8 ] - (setq ss (ss_in_current_space ss))
' ?, C* p( s4 A0 V( F- r5 X/ ?6 M - );if# k T9 S+ k9 \9 L$ Z
- : U; H5 U( Q ^
- ss
4 B0 ]$ G5 C F! O4 R* v - );defun ddchprop2_select
6 }# ]4 p j9 {8 ?6 v - ; l, N1 [ n2 q
- 0 S8 ?- W; Z( w, @' a
- ;;; Define command function./ I' E1 r" M1 Q- k0 }4 |
- (defun C:CCH ()7 H4 x* W; F# R
- (ddchprop2 nil)
9 R2 Z: I2 P2 U# l2 G* @( P) u - (princ)
6 }- P3 D# G0 s8 g2 ?) A* h - );defun
) W7 H" D/ F. i# e* }, F
% ^% j5 H P" w2 k$ O, u- ( Y" J3 I- Q5 e- H$ s c) Y9 ^
- ;;; Main program function - callable as a subroutine.7 M- N* i }- Q' L% O+ N0 m
- ;;;
6 B/ r4 ~6 A7 m4 K - ;;; (ddchprop2 <pickset> )5 D6 C/ C" I5 g5 H- u
- ;;;# k: O7 e5 D- L% J7 i: \* T/ _
- ;;; <pickset> is the selection set of objects to be changed.
- Y& t' h6 \! E9 w# A" ?4 A+ V - ;;;
' t A# O( B+ o& Y* E - ;;; If <pickset> is nil, then the current selection set is; w6 X+ b) K8 {' T. G2 R& E: u, G
- ;;; aquired, if one exists. Otherwise, the user is prompted/ Q9 P% W% R7 R6 t; R/ D* y9 Z: e9 {
- ;;; to select the objects to be changed.
$ d# L T9 t2 D5 ~' ]: O - ;;;" G5 i; x0 R0 i: X9 P
- ;;; Before (ddchprop2) can be called as a subroutine, it must" ^3 D, u% C6 \0 i: C/ v/ _$ p
- ;;; be loaded first. It is up to the calling application to; j+ x' @, \: t( ~& t) [ i
- ;;; first determine this, and load it if necessary.
# `. s/ q. X9 O& b- j3 Z - & i' p$ b( A. Q) ?: c
- (defun ddchprop2 (ss /
+ ~5 Y7 f8 |3 i _3 a - 7 }, B6 w% A# p. Q
- a1 _5 M# P$ b5 X9 g6 i/ }
- add-mdash
+ y/ j. d3 |' N/ y) B) @ - assoclist9 c8 b2 f' V: o
- bit-709 P c; m- q4 k3 H
- boxlength
) u- J K' m- T) @7 s4 e( _ - bylayer-lt
6 V% M# N% t' D. ^- g: I - bylayer_col
8 O D; W4 k* @. H5 T - bylayer_lt- T g4 ?" k1 O
- call_chp2
' v' w9 h- |, ?) I# F - chk-col8 u8 ^4 N9 p$ A
- ;chk-etype ;var removed by rk * A( ~3 T" n, E1 f3 W
- chk-lay
) r) |# J9 b2 t/ z2 y* |2 Y2 b - chk-lt' a' v: S6 q |& E8 Q" L
- chk-lts ;var added by rk 8 ~$ z6 v" w4 Y2 }. |4 `
- chk-th! i. G( J! l# @% M
- cmd; H, c/ a- j, H# T
- cmdecho1 Y" W H# n% L$ U% ~* i w
- cn! F$ Q+ W0 P( v2 M! {8 s0 E
- cnum
6 x; V1 t* f' H! P r - col-idx
_0 u8 X1 W/ l+ T7 C- s; n, e - col_def. m( h, \0 r/ y( w
- col_tile
7 V6 u* v! D) F2 e: j1 M9 K+ ] - colname1 b1 M" R1 H4 [! E
- colnum5 ]/ K' `, D' [- D- h
- color1 h/ |& z: J, B+ ^" L" L/ z& V
- colorname
4 D5 Q) C0 {0 T: F3 ? - cvpname' X% j$ D* r3 A
- dash
U* F0 Q& n) V+ N/ }7 B. c5 c3 u5 { - dashdata
' c( O* G" A( j3 C: X% c - dashlist
) @ ]: ]" ^2 p' l; G- \" u - dashsize- r( U( N/ E- x1 x% z: C
- dcl_id5 Y, \; ~$ [4 `+ q
- ddchprop-err
$ e1 w. k8 t) G( [# n3 j) N - drawpattern& X0 ~& P! A2 s* C j
- ecolor
8 s( G4 F# R* v- C7 R* g2 ~. P9 M - eelevation& b. o7 M& s( N4 W$ c) n
- eflag
8 z0 ? g* ^6 F - eheight( T2 s" g( P; ^" Q0 X% L
- elayer
+ P6 M, j! k# G( `( t - elevation7 E9 M4 y8 f8 B2 o
- elist
( Z% d! ]) a. X: _ - eltscale* W- F% f7 N; O* |6 w
- eltype8 |4 m+ B j/ I( t' q+ |- G5 J4 R
- en3 e$ f" P1 }, j5 b9 z% l8 m+ L
- ename6 W! M1 N1 u: ?8 f; w2 v0 |
- ESTYLE ;var added by rk+ r4 ~ C; I3 Q" l7 k
- ethickness
' L$ W+ w- B: ]- u4 G8 O, J: v% _ - ;etype ;var removed by rk1 U# ]$ ~' x6 P. a: `( V0 F
- ewidth: C' W, N: q( ?/ |. ~6 X
- fchk
: o( S/ n$ _: J" u, J r" P4 z: j - frozth
, z- E6 V0 [9 i7 Z* Z4 a) J - fx. s/ g+ L: ^. ^8 n! i. N6 j0 k
- getcolor
4 {- A5 U) \- h5 P* u+ T4 M; [" o7 E - GETELEVATION ;function added by rk
& z8 b4 _ S* ^% ~. G* l. W& \! ~* ` - GETHEIGHT ;function added by rk
3 i1 k9 ~5 D! O; U5 {' { - getindex
1 q* N- V7 b. G4 A8 F+ ` - getlayer$ ?4 Z- \) v: Q2 V: i0 j9 F, M7 Y
- ;get_locked_layers ;function added and then removed by rk ) E" g2 m+ |$ J
- getltype4 D: s: E1 g' V0 W4 A" ]( M% U: M
- getprops1 _" n+ ]+ z1 Y; A
- getscale ;function added by rk
+ E' `7 k% Q. k4 U* i K - GETSTYLE ;function added by rk2 t/ B. L8 S h7 P, X7 w
- getthickness1 Y7 B6 s' p% c4 v+ r4 E- b* f( j: \
- GETWIDTH ;function added by rk
9 ]; r- t9 m+ w h - globals6 ~3 Q/ a* J3 V. a+ z
- HAIR_STYLE_LIST ;var added by rk
9 Q6 [ ~" [- d9 T$ H - height9 K% o3 K* I$ Z; s: _: c( `
- index
# S; J3 {, T' s6 K' h1 S1 F - item# G; m" C! j0 S2 |( i
- item1
: K& n+ B" f0 U - item2
3 b) U9 H1 b4 W* A9 }( V3 X - itemlist' y" I3 n9 N" M5 ^
- lay-idx# _8 `. |' f$ q( u1 f4 x
- layedit_act
# d2 J7 P# b( U p - layer5 {" W7 H' R' O o* d" g
- layinfo
n5 l0 t! q; U& G - laylist
: l/ n& ?8 F# q/ K( t* F/ c& @5 r# P - laylist_act4 S, O7 @: L6 G: ^9 o
- layname0 ^5 e$ f4 F/ b% [% B+ Q$ f1 R# ~7 H
- laynmlst. t0 C* g8 `& R& `5 A1 @
- layvalue5 ]" t) F% y, {
- linetype7 v4 l9 S; B3 c, Y
- list1/ Z# T/ R$ @7 w0 r; _$ P; X7 `
- longlist
: ~6 Z \: C5 h+ Q8 b% d$ o - lt-idx4 T- ?/ |- ?0 ?0 W h
- ltabstr
1 I9 B# w& E8 {3 Y* Y - ltedit_act$ q* _% P2 n( V0 E4 D/ C6 Q, F- f
- ltidx
2 a8 h, {( A/ [3 o4 Z1 m! V$ ~9 w - ltlist
( o" z; w4 T2 `3 |3 D) m - ltlist1
3 y$ C7 `, C' i- G4 Q$ N - ltlist_act
, ]) t) r- | G6 z( m - ltname. t( Z7 \* [+ }4 w! x$ `. t
- ltnmlst
& J8 T8 j9 E& K6 G - ltvalue+ \8 |& X# w, }9 y
- ltype
4 [% l. w" v$ \) n- E$ V8 v$ ]9 u - m
& k {1 G# d# S5 F- ^ - makelaylists
! f3 @- v6 I0 t& [3 ^ - makeltlists
! \. F' o" h/ M0 G! ]4 j7 c3 Y - match-col" c3 g5 f/ f- v, p: K0 Z8 ]
- ;match-etype ;function removed by rk
8 x. J% w2 r, l1 t - match-in
' ^7 N7 O/ z, K& Y8 U) [1 R5 Z - match-lay0 l, O& o* _/ F" h, ]
- match-lt
* q0 b* i% C4 Y - match-lts0 w+ p- J; Z2 [0 s6 |- t
- match-th" [ X$ q" P9 p; l' V- \2 R9 m1 ?
- match_col. s8 X" {4 v) l! ^( I
- mdashlist
6 Z5 N# C6 }5 Z& k9 S& a, T+ z8 O2 _( R - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk7 [* L7 C- w4 ^) b9 n
- n
# g& G5 Z6 S! Y! b - name! p0 U3 c4 |7 D' L0 _2 T& C8 t
- ncolor D9 K+ l; T8 O# w& u( w
- nlayer
1 N3 h5 b# Z' Q5 b+ \4 Z* w2 e1 N: t - nltype
) M6 A2 j, ~2 v& O. g6 z( F+ W - nthickness: u' `+ U. D" k/ m
- off8 w5 f/ Y2 X% d. B W5 ~1 Y. @
- old-idx5 _/ _7 Z3 E. i5 U
- olderr
( M- J p1 U- b( B. C7 |2 v - on; S# ] s6 ]9 z/ @' O/ s! S" j; D
- onoff
: u! A" ?$ E G - patlist
7 |3 `- k/ A: y- l4 F2 m, C - pattern
' w& ~4 m2 g0 h3 J7 X - PL_WIDTH_GETTER ;function added by rk$ Q/ w* U, c+ y( R) {0 m
- POLY_SS ;var added by rk5 |3 s5 w' T5 E4 Q
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp; ]; i3 j( ]7 |8 y2 g* q6 P" {8 s" b
- proplist. s/ H& [$ f; I. B, i
- reset-lay
1 [) a2 {" e. Z; V; U - reset-lt
5 h( ~) x% T" |( A% { - s
& P7 E+ h6 F$ g6 d: H' P+ i - selset
0 d) C" `1 _, @0 w1 e0 Z) `- N - set_col_tile
4 J* n: Q6 V) l" N$ | - sortlist
9 Q7 n0 `5 \' t% b: }% S - ss3 v8 ~' W4 g. X! Y' h
- ss_in_current_space ;function add by rk.
* \7 W* r, c- p* Z - ss-index9 {' ~8 l6 @! V/ x3 d
- ss-length8 G0 k# d7 H8 i1 A0 u. A8 Z* ^6 G
- ;ss_remove_locked ;function added and then removed by rk.3 }" _9 U# q% e1 Y4 z, V
- sslen5 ]) Q4 }+ G- f" \* U" Q4 g6 ~, H
- temp_color8 v# B- e3 U9 g# k% S) x
- templist( w+ B$ O# q0 P# g ]8 v2 T
- test-main-ok
( U) z) o9 B$ x - test-ok8 P& R) m8 k( L+ m U3 W u8 u
- testidx
; @# \. h) P" k' g) w, E - testlay
. X( ?; X. q* s* Q - th-value
2 K# T6 Y, o# _7 c - thickness: d" A( u0 b( c) {9 I' ]- r
- tile4 j' l" ]3 k% V! l$ y
- tile_rect2 W& v, \' A/ U/ y
- tilemode
- ]7 K8 ?: {+ U7 ~8 o% C$ N; A) d - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
+ @* [% c5 \3 W. g- F - TXT_SS ;var added by rk
7 Q9 {3 C2 }4 W( N2 |% H) I - ;undo_init ;removed by rk.2 P$ {2 I! O# h
- vi
$ v1 _9 Q* F- v+ Y I; \ - vpf H/ F! z3 L+ U7 l
- vpldata
% V) c4 @) X4 w& s - vpn0 A, d, }$ A6 x, I7 {: h- c5 b
- which_tiles
8 e$ Y. Y* M+ B - width
. r# Z7 q2 A9 L* | - x
0 C# \2 n: {! }1 h" f0 \& @! m - x1
% }0 C& @+ Y" T - x23 y/ l! r. [* g }$ X# {0 V' e
- xdlist
5 V% r' T: x C& {; w6 a - y
2 d' R. X* a* C0 [4 f1 { w: Z - y1
+ U, M7 P. N9 ?& V: w+ }, k% ] - y2
) X3 c& F" u" `5 s; q* Z - )5 @# @7 }8 B$ h' x: q2 d
- . N0 W$ f, h s; M
- (if (and (not init_bonus_error) 9 Y- |4 J+ H \3 ]! j3 S4 A7 b
- (equal -1 (load "ac_bonus.lsp" -1)) ( f u2 n" v0 |; e: S
- );and
, b9 `9 ~, ?+ y- U - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))5 U1 U# w5 ~8 _7 b1 n% S7 O$ u
- );if3 ?. ~- b1 b, A; z
- (init_bonus_error (list
# n2 c4 l" |* ^; x$ }9 T, w- x - (list "cmdecho" 0 6 \" @: i9 P* Q* S- t4 K* N* R7 p
- "highlight" 0
/ H8 ?7 i9 c Z. Y4 E ]' l( l - "regenmode" 1
7 R8 L: C, R9 j1 b0 L - "ucsicon" 0
* J4 a p- E& \5 i - ) # j7 [* k* T- o1 j$ ~, x
- T ;flag. True means use undo for error clean up. 9 a5 | }: U8 S: z5 e
- );list 0 j k+ m4 E5 Y3 ?1 ~4 d P6 `; u# v
- );init_bonus_error7 I2 V6 W. ~, D, x2 ?9 M
3 f. h, s. _ ~7 X1 b1 L- (cond) H4 Z2 Y5 s" f" a
- ( (not (ai_notrans))) ; Not transparent?/ Y& G9 ?6 L2 ?# j! D9 C
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
5 x0 W) l; Y y$ l# u- D7 i - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?/ o, R: I5 h: Q4 i* |% i; V
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
2 j* J: O5 f" x ? - (t
3 R# ~& j2 w' m* @& n% ?1 T/ ]4 i: b3 _ - ;(ai_undo_push)
1 L! b) m. ~ H2 i# w - (ddchprop2_init) ; Everything's cool,
/ M- Y2 {# }. \/ H% U# v' I - (call_chp2) ; so proceed!3 e" ?6 M; H" |( z I4 X& ~9 z* x
- ;(ai_undo_pop)
, i4 x F" v3 i1 ~, Q6 X, D4 M - )
4 I6 D' ?$ U% Y) P/ W+ @ - );cond close, i( U* h" ^9 a0 M7 W# Q2 @
! Q( v6 j X& }& L- (restore_old_error)
3 p7 o* P+ e6 k& z6 W
( f @+ o9 _5 D4 q6 f- (princ)
3 i# b: n, Y5 O/ r5 S6 V$ e4 d - );defun ddchprop2, _# |* L1 v$ o
! c& Q. T! K2 {3 t5 b- S' L+ e6 B- ;;;----------------------------------------------------------------------------' u, g& l0 T T+ R7 j2 F
5 n2 ^, z9 r9 F6 y. r1 V- (princ " EXCHPROP loaded.")
2 n% c8 S% N/ K S1 _ - (princ)
' }$ `0 q) ~ k- p6 Z - . h9 U8 d$ ^7 T
- ;;;----------------------------------------------------------------------------: T+ g+ s' i4 B* g" |3 u" `2 S
- ;;;---------------------------------DDCOLOR_LSP-------------------------------- I" n4 h& T9 j! Q; ~: w
- ;;;----------------------------------------------------------------------------3 O( R; n9 m' n! s
- ' u3 V V1 w9 \$ J" `. q
- ; Next available MSG number is 24 5 O( m5 N9 v9 G6 b. f" R; }* e+ G
- ; MODULE_ID DDCOLOR_LSP_; R- J2 f/ P: c/ I) e
- ;;;
5 |) w2 O% d5 C7 z& v/ n% _1 N2 E - ;;; ddcolor.lsp, I# q! G- G+ c% w
- ;;;
1 H3 [4 G' ^. B& h( F - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.' n2 k; ]4 |! A8 O
- ;;;9 ?" c) |+ p/ ^9 A( n+ A
- ;;; Permission to use, copy, modify, and distribute this software
l. z& s' e9 ]' i( s" y - ;;; for any purpose and without fee is hereby granted, provided) b- f& Y2 \* z9 g. G9 c# n+ A/ q/ h9 `
- ;;; that the above copyright notice appears in all copies and& Q/ J/ m' d, n5 F' G: S
- ;;; that both that copyright notice and the limited warranty and: A2 O- H+ R. F5 N5 G M
- ;;; restricted rights notice below appear in all supporting
: U& g2 K5 n2 V( e. a0 P9 @. L - ;;; documentation.
3 o% C8 f; n# ?4 Z9 g% D - ;;;( Q, Z/ ~; K% I G4 w4 n1 Q. n
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.1 `' ~0 d' o, F- a4 t0 r$ R
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF$ f; E! |4 Y/ x# i$ M+ Q6 m
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
9 p _% }( v6 u7 k - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
$ m$ l/ l% z/ y - ;;; UNINTERRUPTED OR ERROR FREE.
5 q1 L2 d, O8 q) O7 `' m9 E* O+ o - ;;;
3 a2 l& h2 [/ e- t - ;;; Use, duplication, or disclosure by the U.S. Government is subject to! m a( n7 P9 M
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer; ` z% k5 a p+ _
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) , h, h: |% v+ N: `& b
- ;;; (Rights in Technical Data and Computer Software), as applicable.& ^3 @+ b% v |3 d
- ;;;% o1 |- l1 p- o% ]+ p- Y. o
- ;;;.0 L0 P& U$ S( X3 z& v
- ;;;9 u, e; I( _% U
- ;;;----------------------------------------------------------------------------7 J! t/ j& l. `0 d
- ;;; DESCRIPTION
7 t5 h+ D5 @4 T/ Y, f% W - ;;; * W+ I, x5 Z4 @7 }8 A
- ;;; Chromatic Pallete style color selection dialog.
1 c+ P) B" u1 P! |0 [; v& ~ a4 \6 N - ;;; , @& d: v+ t4 e; S
- ;;; Globals:
$ o. ]5 q& Y3 | - ;;; & B5 ^" a3 n- u8 b* @9 K
- ;;; chroma_color - Integer color index. The last value selected
2 H" W* m) K' x$ B \ - ;;; by the user in chroma dialog. It is not cleared or reset+ l* q1 m0 m0 w
- ;;; by a cancel. Only used for communication between callback$ {9 V4 w9 J% W3 Y+ |) D q
- ;;; functions and the (chroma) funciton.1 [4 X* @7 b0 W' K7 o: s( S0 u1 ]) j
- ;;;
7 B! t6 F( g8 \4 d0 N - ;;; Depends on the definitions for the dialog provided in chroma.dcl.6 F# [) t/ X" r% I
- ;;;
3 j/ w) w& M- {8 g3 S+ ~& Q1 U' i - ;;;; W2 Q8 \/ z& u. u* x
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
; Y, L }& X: V4 J3 [- e - ;;; pallete style color selector.- p; n+ X8 m# ]3 Y2 P' F
- ;;;2 z& ]3 U5 V: g) r* u; B
- ;;; ===========================================================================
) \& A0 _/ j5 Z" s+ d3 j - ;;; ===================== load-time error checking ============================
2 t" G Z+ B, ]; I - ;;;
% I: R; f }( U7 b/ Y
2 \) b8 m+ y P: G& V- (defun ai_abort (app msg)' V* o5 X# g9 L3 I
- (defun *error* (s)
! k/ d) e% M. |9 g+ i - (if old_error (setq *error* old_error))
( h1 I! V% p3 `/ t$ q$ M( C - (princ)
8 U1 @. C t, y- s; \% h" W3 A - )1 L$ n; o, M4 ?, E4 X/ |& D3 j
- (if msg% ^$ T/ k" L$ [, b# j( l6 \. y9 z
- (alert (strcat " Application error: "
% @. T& l/ V! @1 F! G - app& ^0 K1 {% X% T) U
- " \n\n "
' [+ c" x9 O. Z - msg i" s1 e, U7 D
- " \n"
& U: H. j& c( s- D0 m! o( Z; b4 T - )
% ?5 ~$ [3 H' X. V, \ - )& e; R( m. W6 e7 `6 ?1 G4 d$ Q- t* c
- )& m9 \2 `8 R: y2 B: r/ }6 u
- (exit)
; b. p. p% `' w" j- U# F! J - )( w/ U; U. r! M4 @6 p
N/ }( \- K/ E2 |+ h# J9 d, W8 K- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,$ K6 b- f8 [" J7 V' j
- ;;; and then try to load it.; E- j$ _$ B, c3 Y, ?6 Z2 @ o
- ;;;5 W! N$ X# R0 K; a4 ]. \
- ;;; If it can't be found or it can't be loaded, then abort the
& i" X% F. P: `) [. t4 l$ b. U - ;;; loading of this file immediately, preserving the (autoload)& y R h2 x; |6 }6 D* }* _
- ;;; stub function.
& b, G( p- M/ n1 k1 H, o( b
& l- ]; N( I' s4 I/ M3 } b# d- (cond
- s8 u- }( R/ {* k' ` - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
1 w5 v- L6 H! r3 L! A) F
' Y! V$ \' L0 y+ |$ f8 j- ( (not (findfile "ai_utils.lsp")) ; find it
3 U7 d/ j' S. F$ E6 W4 w- S" c& T - (ai_abort "DDCOLOR"; Q3 ?# P8 b5 O; O8 h
- (strcat "Can't locate file AI_UTILS.LSP."" a9 R8 z4 R7 l& V1 B R+ U
- "\n Check support directory.")))
% r9 Z6 B4 Y6 N" n) D4 x3 W/ T4 i {! I
$ W1 Z, J% |1 U! O0 ]/ z! a; ~! N$ p- ( (eq "failed" (load "ai_utils" "failed")) ; load it& B/ [! w" c0 k" V4 p
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))9 Z2 R, \+ g3 F8 H
- ); V8 {. Y0 B8 h2 V( y% M7 Q" u, ^
, I1 l8 x$ J( o2 C- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP2 C+ v, c- s' L/ f
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses3 q+ H* o* H& I9 T' h }: Z7 K( F
- ) ; ai_abort's alert box dialog.
+ O' P( ]. t% A5 [. c$ G - " y5 X6 v5 r( A; r* z! z
- ;;; ==================== end load-time operations ===========================
" {8 z% |7 Q5 Y6 Z$ r" l
& w: v8 H, Z; r. l- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)( _$ {& w, V/ j
- / V' {+ H3 x$ x) K5 }1 P
- ;; Main Color function, called by setup code.; b0 e- R1 C1 a1 N2 }+ U9 [
- (defun ddcolor_main()
6 ?& _/ p- U. N
' x: f N" w2 @- {- (graphscr)% T; z2 I" _# b+ m% h
- : }, R/ K! }0 b' T% J3 Q6 K J
- ;; Get the color of the current layer, for possible BYLAYER color swatch.& @% V# x }9 W0 N! ~
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))/ |4 D7 N( _+ n- _& j. Z
- 4 B! B) g$ k9 ^$ D. x" s
- ;; Call the dialog here...
) l+ U: Q. Y) ?! } - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
, w' P/ a3 l1 j - # k6 g% H" D" c4 x# e5 J: b& I
- (if clr: [, p2 S: l( M1 v8 X$ o% h
- (setvar "CECOLOR" (citocs clr)))
, x7 \9 Z3 f- l4 \9 K - )" c1 x0 s# m# j* N
- 7 j$ X, s2 e' d+ q
- ;;;
+ c: k6 s6 l _! x0 l/ L - ;;; CSTOCI -- Color string to color index4 h$ ~8 ]5 \) K1 q1 B3 E, r2 y
- ;;; Convert an arbitrary case string into a color index.' U0 M# y% O. G9 n* g
- ;;; Returns nil if string is not a valid color.
1 |, w5 ]# H. z - ;;;
1 X; m% `9 }+ s8 X1 u - (defun cstoci (str)9 ~9 V& O$ L" k* i4 v8 m. u; i; x
- (setq str (strcase str))
, Y& T% ~; C8 }( i. D - (cond& Q- j4 e' B( W# E
- ((= str "RED") 1)" ~& v% n6 K: j/ }" P$ O
- ((= str "YELLOW") 2)
5 P' L% i$ ^% R, w6 S% D - ((= str "GREEN") 3)' a; ^0 v7 I6 ]
- ((= str "CYAN") 4)
) ?1 A/ r( ?( u! K - ((= str "BLUE") 5)
! q. x, E4 @: W5 C( G0 n - ((= str "MAGENTA") 6)
1 b, i9 f# ^2 V2 k( V+ I. K - ((= str "WHITE") 7)
. V; i( l* q$ K - ((= str "BYLAYER") 256)( T: O5 P' Y1 g5 K- l& @
- ((= str "BYBLOCK") 0)
% [1 ~; u& R) d2 L4 P - ((= str "BY LAYER") 256)3 c3 e6 O- f; \9 T) W0 y3 m8 o
- ((= str "BY BLOCK") 0), ?. ^! h c6 C# h5 _0 B
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
7 G2 S+ z& Z: H7 D7 B3 W - (nil))# P0 L8 l; J, c7 _
- )! [4 R/ a2 a1 [. I& t: U
- $ x5 @# x& e, }1 q7 _+ N
- 1 _7 ~0 W* Z) i9 H! n' u k6 e
- ;;;
: z8 s& H4 z7 ]! T3 P7 j2 H, O - ;;; CITOCS -- Convert color index into standard color name.* M8 c. w* t8 f1 L8 f3 X% D9 w! C, M& ~
- ;;; Will return the standard and logical color names as text2 N4 L* S" T* V3 w% e) R# _4 O9 A) q
- ;;; strings. Returns nil for out-of-range color indicies.
/ R& t( W0 F' E5 }& S! D - ;;;
7 P9 a, N/ j8 t7 e8 ^- C: L/ X; { - (defun citocs(i)
- J$ n/ P6 o8 E$ t6 e8 K/ J" L - (cond
2 K- a' H% h% T) ^. Y; _- S - ((= i 0) "BYBLOCK")7 j+ b' n3 Z/ m) w4 B
- ((= i 1) "red")
! o7 s; K6 L7 ]$ |& f! b- o - ((= i 2) "yellow")* f& ]3 j, u2 H% Q7 X5 \
- ((= i 3) "green")' ~& e7 a& t) }
- ((= i 4) "cyan"): @8 O6 J9 e, r6 d9 y3 J
- ((= i 5) "blue")1 O8 |* N9 I. _4 B9 W3 _
- ((= i 6) "magenta")% P* D ]" m C& A9 o. B
- ((= i 7) "white")
5 B( c; B' E! H/ U - ((= i 256) "BYLAYER"): I$ \' z3 L& _: Q% y+ w% R
- ((and (< 0 i) (> 256 i)) (itoa i))4 f" Y& u7 [# d6 h3 i
- (nil))& U+ v# w* v' p3 c- |
- )% Y! ~7 k! K8 W4 T
- 8 j) D% U- [3 [9 k
- ;; Start of ddcolor2 o$ a$ V. j! B1 ^. Q
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
% V- Q7 m3 E* ~! i - old_error *error* ; save current error function) y, ?( q7 L3 ]
- *error* ai_error ; new error function; S4 v: D: @) W9 L9 z: V
- )8 T3 M( N3 W! E1 |. u) b% y. M/ Y1 H) @
; b2 f7 q+ z/ ^* E# m4 g- (setvar "cmdecho" 0)
) C s$ }* i% I3 y# I% h2 Z, w
. Z" _6 B( q- B, |& ^- (cond% H7 `( q, j8 e' u8 t, u6 T3 Y
- ( (not (ai_trans))) ; transparent OK) Y" H1 q* R7 z, R# }
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?+ X/ `4 [+ K. |% s
% B( C) f- Y' i- (t (if (and (/= 1 (logand 1 (getvar "cmdactive"))) d) }, Y) E) ~; E9 O
- (/= 8 (logand 8 (getvar "cmdactive")))
/ k7 w+ l# I# H - )$ x* M( M; ~8 q
- (ai_undo_push)) f9 U v+ h6 y
- )+ S3 Q2 y6 Z" ~' Q- q
- : Y" K% f; ~5 R, |5 J7 X; i5 X9 f
- (ddcolor_main) ; proceed!
% w0 d* a9 m4 A9 E, z9 T1 ^
6 V9 y# K, C. }( ~: U0 D- (if (and (/= 1 (logand 1 (getvar "cmdactive"))). g3 R" `/ Z' ^# F
- (/= 8 (logand 8 (getvar "cmdactive")))# ?, }/ r: z) S- q* d; I0 e
- )
' a1 u% E+ O( x9 z. m - (ai_undo_pop)! V$ B4 q: A; B8 P# n( j1 o) Y
- )6 Y7 h) h* A% w( h. m
- )) C" u2 _* W, B* f4 Z+ I7 H- ~
- )
7 U |& z1 ]& Z U5 a - - y& T' r5 y6 b7 i+ L% q2 j
- (setq *error* old_error)
3 [# O& x- d2 r8 T1 V+ Z5 m - (setvar "cmdecho" old_cmd), S7 p4 P% s( n4 d: c& c0 `
- (princ)/ A' G; I4 s8 l* P2 e9 \& A# U
- 3 p2 {- g" p+ U5 @2 z. Z6 a
- )
) D) Q8 ?# o' R8 l+ W
; o' r: r- r2 F5 M9 ?- ;;;----------------------------------------------------------------------------
: }/ L. U1 H6 t( I6 \
/ A; N' `& Q: d5 e2 B- (princ " DDCOLOR loaded. ")) k7 }: c8 W k' C
- (princ); Y, ^/ U/ d2 J" J$ w) m
( c# X! P3 L: T% X: v+ w8 T, i- ;;;--------------------------------------------------------------------------;
8 K' b7 Z# M3 \7 l8 n - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;7 i9 w& G# U3 o! A" x q
- ;;;--------------------------------------------------------------------------;
& p8 F3 A$ F' h1 V1 n R: O3 n - ;;; ssx.lsp# K4 s0 Y3 \& p+ Q! ?2 z& \6 x. T
- ;;; Copyright (C) 1990 by Autodesk, Inc.
+ B3 L" U& p$ }, q; O0 W3 j - ;;; Copyright (C) 1991 by Control Systems, Inc.
& ~! W" ?* D: ~- Y g - ;;;
6 u0 O, ^) F* o - ;;; Permission to use, copy, modify, and distribute this software and its5 u5 f0 ~ o7 k
- ;;; documentation for any purpose and without fee is hereby granted.1 \, v3 M' b, g! ]3 t s
- ;;;
' u. P# u7 y: J; h - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. `% H5 h6 ~/ R, ?' O. D
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF8 H* i) m2 M( N' n S) M
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.2 {7 ~+ C" i# g
- ;;;
" J* w. M1 `0 h( N5 Y3 v- L - ;;; Larry Knott Version 2.0 7/18/88* P+ t( I2 f% B' c2 w
- ;;; Carl Bethea & Jan S. Yoder Version 3.0
0 M0 Z( q) [" {% i - ;;; Enhancements to (ssx).
6 ]4 O7 I4 P6 G5 m, J' I5 V: R% q - ;;; 15 March 1990
& t; X, J% F/ @3 A; }. H - ;;;
$ h6 @% S5 V* K! J7 M+ w5 A - ;;; ARTIST Software, Inc Version 4.0 December 1991
% `% ^5 x2 \" u9 w( _ - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,( @( P6 ^4 i: t5 v v J
- ;;; use Flexicon menus6 t; q9 S% ~8 f3 L$ P5 E
- ;;;7 n( ~. z, ?) E9 ?( m1 W1 W# \
- ;;;--------------------------------------------------------------------------;
- e+ M+ S b# ]+ d s - ;;; DESCRIPTION
# \& `6 h4 j; @! x' H7 | - ;;; SSX.LSP 6 G ?9 r' J* g V. o4 S
- ;;;
. i" h. |* G7 F$ D& ^ - ;;; "(SSX)" - Easy SSGET filter routine.
1 j) ~: N! l6 a$ C" V* v4 M - ;;;
( m+ b0 G" V0 C" T/ h - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt # |4 n0 L& }, c
- ;;; to create a "previous" selection set or type "(SSX)" in response to
/ V* d. O3 W. t - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
; V9 u' h4 g4 I: g; ? - ;;; entities and "(R)" to remove entities from a selection set during
5 W) t! F# T* ?4 {0 `6 ]/ Z - ;;; object selection. More than one filter criteria can be used at a
7 ?+ ?3 A% G1 R - ;;; time.
( u* g1 E* g- z" t# \) ] - ;;; - Z$ I* W0 d }; P, B# B6 Z
- ;;; SSX returns a selection set either exactly like a selected5 M D2 n! @. c7 R
- ;;; entity or, by adjusting the filter list, similar to it.
7 ~4 L8 H0 I L/ @; ~1 e - ;;;
, P/ t* @8 b+ D! O) U1 T! C - ;;; The initial prompt is this:5 U1 h6 G/ ~( f8 ~1 o
- ;;;
, g v- r7 Z4 D2 X' g2 j9 ` - ;;; Command: ssx! u: D4 Q3 g( O: Q! `$ o
- ;;; Select object/<None>: (RETURN)9 M" _9 `# f2 L. W
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 8 c9 [+ d7 M+ s
- ;;; ; `; ^6 S! }+ T7 Y3 U& H
- ;;; Pressing RETURN at the initial prompt gives you a null selection
3 S# u4 @0 f6 L3 c: F - ;;; mechanism just as (ssx) did in Release 10, but you may select an
" r1 ^' ]6 z7 ?) |+ | - ;;; entity if you desire. If you do so, then the list of valid types 9 F* y1 e- {5 Z" P- i$ P
- ;;; allowed by (ssget "x") are presented on the command line.
1 \/ c7 t" z+ _% F6 [8 U - ;;;
; G# |; a4 Z5 O& @, v- t% [ - ;;; Select object/<None>: (a LINE selected)
m9 U9 R2 f) A, s - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
' ?4 h+ T& r6 D2 A/ s6 T7 R2 F - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
' |# [! P( I$ O0 ] - ;;; - l+ E" h2 o1 Q: I% \3 e& q T
- ;;; At this point any of these filters may be removed by selecting the
, |8 v$ _& e( ^+ i: u& z) s6 _ - ;;; option keyword, then pressing RETURN.& `4 E5 ?* t) e% X# E, D9 l$ `/ z5 ~
- ;;;
: O- L B, F3 d" i, O - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
; u$ d, B% I% H% H: x - ;;; 9 j2 T _0 ]% ~2 S* x* B$ I
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
9 M& E/ _# u1 `, M6 m% e( t/ [ - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: & U7 P: N/ b9 V; p/ `. d6 {0 v
- ;;; 9 G( S, q1 l1 G. w: N
- ;;; If an item exists in the filter list and you elect to add a new item, 0 a0 N6 o9 I" B, y$ [. d7 A, u
- ;;; the old value is overwritten by the new value, as you can have only - v- e6 C8 s" A* r
- ;;; one of each type in a single (ssget "x") call.9 v2 m$ j8 \0 f2 @. w+ X/ {5 E
- ;;;
. e7 \4 z+ o5 f - ;;;--------------------------------------------------------------------------;# b. r0 d1 ?0 V! y
- ;;;
7 U2 U f. H( \- [: F4 D - ;;; Find the dotted pairs that are valid filters for ssget
5 L- t. U8 S) s$ g" \9 r: W+ B2 W6 O/ t - ;;; in entity named "ent".1 C- W& K: I: s: D& X }7 Y2 L% K
- ;;;
! L7 Q: u! D( v - ;;; ssx_fe == SSX_Find_Entity. C( @: A: A$ r/ _- t& P
- ;;;% }' T8 n% ~- {# d
- (defun ssx_fe (/ x data fltr ent)
, Q# U) s, c; k' A4 ^ - (if (and (= flexvar 1)(/= t2 "Pick"))1 q& g, K, }. G' I
- (setq ent nil)
- ?% h) {/ l* u1 S$ B6 j# h/ n2 ?! K - (setq ent (car (entsel "\nSelect object/<None>: ")))
" V# Z- J0 Z: {1 [1 N v9 K - )! y/ d2 Q$ M, A x3 [0 e
- (if ent
$ m! r) I1 g# _; f0 r% j - (progn3 b( D: e: B1 |9 J3 G" D
- (setq data (entget ent)) v7 f" {- Q7 E$ j! U
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38& H+ O0 c" ~7 l3 [. ~# |) m6 E
- (if (assoc x data)
0 J) P, p+ c' y2 }4 t - (setq fltr - B+ H U z% r
- (cons (assoc x data) fltr)
% y; v. I4 ]& h - )
2 V5 U. t( V: l' ~4 p$ w5 Z/ @ - )0 l; A8 f/ n% J* Z7 i5 {6 ?
- ) % [% s: x# m( ?" Y! v
- (reverse fltr)$ j5 x0 z! d' D" v& w3 t$ M
- )
( d5 z1 T! F- F0 t0 C n" N' _ - ) 7 V- R/ F' u/ d% K
- )0 D6 J$ g: w) R( F" x
- ;;;
3 V) j8 ~8 F b6 P - ;;; Remove "element" from "alist".3 ]5 K! P2 e* C, L8 U
- ;;;- ?3 J% I- _/ t7 s' f+ c
- ;;; ssx_re == SSX_Remove_Element- L" r; R3 x7 U6 k* u6 g# o
- ;;;2 N& J1 h) Y! K, L; J/ [9 u( k2 G8 E. e" z
- (defun ssx_re (element alist)9 H- i/ [7 F& c
- (append
" q: {( c& F6 C% O3 V/ a B - (reverse (cdr (member element (reverse alist))))4 q n# c/ e, D; q1 \5 x% k
- (cdr (member element alist))
# @2 f$ L4 ]6 R0 G% H/ y4 X. C - )
/ ^4 W) d& ~+ y - )
$ v( Y- K3 Z+ \: S! x0 u - ;;;. e/ w& F/ p( a9 D7 m
- ;;; INTERNAL ERROR HANDLER
% c, s7 Y! Z% }# x! q - ;;;
& i9 G: {3 d6 R' M - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs! l) s' V3 \1 n0 D
- ; while this command is active...
0 c" W, U# [2 X' F# M& W9 G - (if (/= s "Function cancelled")
' g# g l% W1 a" t" R t; S - (princ (strcat "\nError: " s))
3 R; t5 X$ Q/ v - )# p y4 i6 O8 ^5 D) h3 s
- (if olderr (setq *error* olderr)) ; Restore old *error* handler# V P ~7 S& d+ Q) c @ O: H
- (setq flexvar 0)- t8 V! M7 a" Y1 a2 C
- (princ)
, n" J9 H6 b* T% x) f$ v - )5 J$ Y9 q6 r5 D2 ~8 I; t# l
- ;;;
" G) ]3 C" f% V5 V r1 a$ k - ;;; Flexicon call routine% W* J' E: h# O2 b* X
- ;;;3 x. Y4 j- d' a: i
- (defun flexmnu (a)
% s: Q" v2 R2 }, p4 q - (if (= flexvar 1); | e. h p- P- S }
- (command "FLEXICON" (strcat "FLEX" a))5 q, X6 l9 N5 p' U0 ^, u6 g3 i
- )" v+ m# J$ n+ a8 w+ X
- )
5 O* v# k: W; \! A4 K. S7 @
7 C3 H/ i* W' q& U. w1 U' h+ i- ;;; " E: z3 c3 J! c2 h. n
- ;;; Get the filtered sel-set.
( W' u J2 o/ W6 ~& A7 t0 g5 }/ j0 R - ;;;4 J0 B1 M% Q" \
- ;;;: D, ^, w* g7 j. K6 Z8 ^
- (defun ssx (/ olderr)% t) g1 ^( v& S" O( Y |2 h
- (gc) ; close any sel-sets ; {& y6 r+ w. y0 t
- (setq olderr *error*
/ C. b# g/ B7 c y - *error* ssx_er
. Q* D6 w8 F/ l, M& w T, l - )
6 O( x- l# L+ s0 l - (setq fltr (ssx_fe)) 6 Q+ n) |- u) s- E1 P1 x* ?+ p
- (ssx_gf fltr)
6 G7 Y% |" X& [+ T3 H - (if (= flexvar 1)
2 n: k5 Y7 e* V o% J: c - (progn
/ _) F8 u0 D! h; H) d - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")3 p, [! s! h4 P2 t: o+ U
- (flexmnu "EDIT")
- |. c4 @" S- `( z) i) z; n - )5 n% ?0 F+ V# S+ s+ w1 C. x
- (command "p")4 Q. s5 T" N/ h$ P9 G1 T2 s2 X
- ); X+ t {. O' H8 S
- (princ)1 H7 T( V. H* k# P- a1 B
- )
! f' E9 F0 o ]4 ]7 v" Z+ s - ;;;- j! Y. O1 X5 }5 |( T
- ;;; Build the filter list up by picking, selecting an item to add,1 e* W0 r/ m. ]) J$ P/ v
- ;;; or remove an item from the list by selecting it and pressing RETURN.) Q O( U$ N( @3 r. u
- ;;;% F% l/ _1 n1 |" v
- ;;; ssx_gf == SSX_Get_Filters0 b& }7 F8 W7 ~$ \& C$ s4 l
- ;;;
# t% ~2 ^2 J* U - (defun ssx_gf (f1 / t1 t2 t3 f1 f2): U* F+ A+ e$ e
- (while 5 x1 q! G" C9 B0 G6 u% C/ Y) |# {
- (progn
, {. i O; q1 y0 s1 Z - (flexmnu "SSX")
) b5 W* F1 n9 Q3 b! _4 m; ` - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))+ J# z% W/ U; d7 F7 u% ~
- (initget
f4 H# O3 D$ N6 v' d- i8 a/ C# [ - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
7 R- b/ M, \/ i8 `% k% f - (setq t1 (getkword (strcat
+ B$ n* l5 y, ~- x - "\n>>Block name/Color/Entity/Flag/"( I8 ~" X; K7 ]7 w
- "LAyer/LType/Pick/Style/Thickness/Vector: "))) 8 H- ?' o4 J9 a4 b
- )
8 H2 J8 Y/ ~. ?1 d) f - (setq t2
$ S) @3 p( r0 j( O% ^7 z( z - (cond* L& [* f7 M$ e: S2 A$ `
- ((eq t1 "Block") 2) ((eq t1 "Color") 62). T* p- c4 {5 A. A
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)4 ]) V$ d6 D7 c" j7 Z0 ?4 N
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)
% C' v- Y" K: G5 u# E' O3 R - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)' M- z4 d, E$ [6 }6 k
- ((eq t1 "Vector") 210)
3 o- x9 a. k; Q D$ ` - (T t1)
+ |' A+ _1 e6 [$ T# |% ] - )0 t7 ]4 V3 |% d
- )
1 j& Y4 a2 z# f3 C - (setq t36 m) M. v9 N( P7 Q. D: l5 U- Q
- (cond3 m) e! z9 ?# N7 @ t* U1 y p2 r
- ((= t2 2)3 @. e1 j" X7 x' X% s/ {
- (if (= flexvar gtads 1)) A& G5 G5 [& b8 z
- (progn! E# |1 L. I" i9 a2 E. _1 v4 M
- (prompt "\n>>Block name to add/<RETURN to remove>: ")9 C0 a5 \. j, e" p* [2 F
- (gttable "BLOCK")5 c ]# h! D, a& U) p; G
- )
) U# ^& I+ j; q0 a - (getstring "\n>>Block name to add/<RETURN to remove>: ")$ c' x) `# J' t
- )
/ X" ]4 {! U% }: A - )
8 o. V; ?; g5 J9 g8 a- c0 D, m - ((= t2 62) (initget 4 "?")
5 o! y* n. {' `; b; V- a3 ~ - (cond: E: L7 z" ~# i% t
- ((or (eq (setq t3 (getint 2 L$ E( M- D# F6 ^& S# F" P9 T4 p
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
( P: ?" k b3 L& w' G: V, ~ - (> t3 256))7 R. C% O* D9 K3 A5 C$ E' u
- (ssx_pc) ; Print color values.
7 E- N5 x6 w6 ~ - nil- b# B: W S) K; K
- )5 G; \% c- h0 U h0 t4 U0 |
- (T. h$ f* Z# U k# `
- t3 ; Return t3.
1 `, O" b( L* S8 `7 {* Q4 _ - )0 Y9 ^& G) _( g
- )
& C' w0 i9 d! V - ); A2 N! y+ |6 f9 _/ k; H
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: ")), {5 ~! y3 @0 B4 M5 G
- ((= t2 8)& c! V1 G* z; x( T
- (if (= flexvar gtads 1)
& K; }, a( N; w& z- n, T - (progn
& [& D( r# l. q( I3 w - (prompt "\n>>Layer name to add/<RETURN to remove>: "), l3 t& d: h. j* F
- (gttable "LAYER")
. N, R7 u0 s6 a - )* s7 U& }1 w$ z: Z _; O
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")
$ d1 \* p4 c' t( [# p/ ` - )/ }- c3 u- s4 s6 p5 n( y+ V- L* I( K
- )
. H+ F0 h) {, Y - ((= t2 6)
, O1 r# g( m0 k' W! e# x8 j - (if (= flexvar gtads 1)
7 R2 ^3 D+ y6 ~ - (progn
( s$ `3 n: P- E% t }3 `* ] - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")4 o" i% \7 ~2 i
- (gttable "LTYPE"). G; J; Y0 {1 U6 Y4 c0 ~
- )
% q$ J1 y8 P7 Q& |9 C3 N' M - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")7 a: g1 N* }4 i8 C6 K$ y
- )7 i" y6 {4 @$ X# O
- )8 t4 h* Y2 k) G1 j
- ((= t2 7) 3 z. O& ?! M& @5 L- c
- (if (= flexvar gtads 1)
5 b" q7 ?1 g$ i% p } - (progn
- f( y! T* W) U1 d - (prompt "\n>>Text style name to add/<RETURN to remove>: ")3 Y0 Q: y; _ k6 l+ Y
- (gttable "STYLE")& r6 D' X- l+ t$ I$ M
- )8 z8 g/ p2 Z- R. N) o W
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")3 P: f7 I g0 f. i
- ); ?- Q# d/ s d, o A
- )
$ B3 c0 d) ~0 |) Q - ((= t2 39)
$ L" a7 M D* v [+ [ - (prompt "\n>>Thickness to add/<RETURN to remove>: ")& V# A4 U5 E7 T2 R; Z3 i5 }. _
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
* x4 Y/ o9 A4 J8 N$ W& Z - ), n) y; h5 S7 q5 P% x8 G
- ((= t2 66) (if (assoc 66 f1) nil 1))# P5 p6 ~+ k4 G* p% J
- ((= t2 210)
' x3 W- M, l: j& V* o" V# U) f3 Y - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")! m+ s3 k& R; y5 t
- )
2 k2 P2 l9 a Z4 `$ J! | - (T nil)
3 Y. z7 R' a7 b! Q+ j1 D& U - )
4 u+ b1 ?3 y2 N/ w+ }) [ - ). T7 Q1 ?$ o, t& f7 Y+ m
- (cond/ }( x5 f. t2 ] T
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
* Z/ ]2 Q e: ^9 q5 T - ((and f1 (assoc t2 f1)) ; already in the list
" v* O p( ]' g6 U( m& a - (if (and t3 (/= t3 ""))6 S# T' k6 I1 b" x" E: M# g2 O# u
- ;; Replace with a new value... & Q% i- D9 \& `" M/ b5 w" h* \8 |
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
; F5 l+ t, E! Q2 r5 H- L& G - ;; Remove it from filter list...5 y, K% k- ] O F; i5 o
- (setq f1 (ssx_re (assoc t2 f1) f1))
0 H3 [' N, V$ u( l1 c$ p - ) , ~/ T* G G1 ]4 y! g% R r* h3 g
- )
% W3 q9 r2 _- \( n6 E - ((and t3 (/= t3 "")): i/ @# p# A; {+ G) }
- (setq f1 (cons (cons t2 t3) f1))
6 p: C3 N5 N# z# ?& m! N* G2 _4 | - )" ~* U6 Q% E( q9 N) f# O
- (T nil)
% Y# I6 ^$ n% z$ p0 Z& v - )
3 }" x# U0 t- }! t - )
8 B5 C Y- J" S+ i. G4 a - (if f1 (setq f2 (ssget "x" f1)))0 R3 f I- T5 ^3 a/ ` w
- (setq *error* olderr)1 j/ i5 D: e8 t0 c; R1 ^9 v, }8 L
- (if (and f1 f2) 9 t* x8 ^6 A0 C" R
- (progn
+ p5 f) Y3 O! `$ d" s# k9 S4 d' t - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
0 O5 Y/ A5 Q" a6 T# V2 n5 _ - f2 ! L8 n1 Y, \: X7 a$ e6 z
- )% h1 r* Q! y/ l# ]" Q) V
- (progn (princ "\n0 found.") (prin1))# v2 u3 q# {: v& A, R) K
- )
2 j8 o A+ R: u+ S6 _9 r1 J& X- |% E - )
9 ?5 I v9 x+ }0 m - ;;;
+ K4 [2 b# Q# g - ;;; Print the standard color assignments.
& D. ^2 H& m5 K3 o4 d - ;;;
$ @- G! t$ |5 U1 T. C9 Z" }$ t - ;;;% S# u* A+ ~% E6 o5 S+ [
- (defun ssx_pc ()6 V' e7 d3 \: J0 }
- (if textpage (textpage) (textscr)), G+ ^( @. K9 O3 y6 g) G& I
- (princ "\n ")
6 V& N, H1 A- U( V; f - (princ "\n Color number | Standard meaning ")
# ^ Q1 R4 H3 i. e* o - (princ "\n ________________|____________________")
3 D, C3 B1 `6 }- I/ X* }( F - (princ "\n | "); m! D0 }+ ], E% y/ K
- (princ "\n 0 | <BYBLOCK> ")
+ n: a9 x% y- J% w/ ^0 n0 F - (princ "\n 1 | Red ")8 k3 V8 r/ {. c
- (princ "\n 2 | Yellow ")
2 N5 h" i8 n' Z, t' {: K( J2 J - (princ "\n 3 | Green ")
$ M1 l+ U5 K# o% j( a8 { - (princ "\n 4 | Cyan ") `; b |; `6 T: c% z- A4 J3 }/ ^! b
- (princ "\n 5 | Blue ")+ H0 y3 [/ Z5 }9 w3 F1 g. |4 b
- (princ "\n 6 | Magenta ")9 t$ v- g7 J6 ?& V# T4 Z+ I
- (princ "\n 7 | White ")
9 A2 H3 [& o# l: |( g - (princ "\n 8...255 | -Varies- ")/ e, _+ S, ~2 c5 o6 q
- (princ "\n 256 | <BYLAYER> "). ]1 b. {, X- {: o
- (princ "\n \n\n\n")" |. w x$ d( E+ s8 [" q
- )
( B C" K" V4 p/ a - ;;;
! m, W' N+ k, ?. W$ N* t - ;;; C: function definition.. \6 ~3 w- {, J5 Z& z
- ;;;
( p1 b% V! I% S" R! c* X; C1 { - (defun c:ssx () (ssx)(princ))
0 w: A* h, }3 N2 n' c* O - (princ "\n\tType \"ssx\" at a Command: prompt or ")
o j) f" W% ? Y& T - (princ "\n\t(ssx) at any object selection prompt. ")
" B* k+ w& ^, i - (princ)2 V( [: S6 b# B
% W5 J3 V4 T- R8 c' T% X- ;;;--------------------------------------------------------------------------;8 Z/ i$ W% z4 X$ j& R# J/ `
- ;;;--------------------------------------------------------------------------;
7 y8 R6 ~2 F+ V! u0 I% c | - ;;;--------------------------------------------------------------------------;
6 S J1 E) E: o0 U( W" h, D: E/ K - (defun S::STARTUP (), V X' Q5 o& s- u7 V# r0 x
- (setvar "cmdecho" 0)
& B9 a* u+ T; o. O' @4 T' S - (setvar "cmdecho" 1); V/ o2 g5 R9 Z+ @9 z' G9 W- i
- (setvar "LTSCALE" 10)
$ A$ M. G2 z1 D. ^/ r$ F
7 d7 a' a( {/ W- ;(command "_load" "chenKH.fas"); N. Q3 ~- I# @5 o4 J; g: y
- ;(command "_load" "ctcot.fas")
9 j6 C+ @3 L/ a" h, C4 | - ;(command "_load" "damdoc.fas")0 B9 k W5 ~2 E( K* Q
- ;(command "_load" "ghichu.fas")
, Y) o5 Z' i" K0 v3 Q! x - ;(command "_load" "hamtutao.lsp")0 L: a3 s. n- ~+ ]& [. B- r
- ;(command "_load" "KHOITAO.fas")/ O/ Z& E, A% I" M+ f$ D5 f) I
- ;(command "_load" "KHthep.fas")
# @% x7 n7 A# `% s9 _ - ;(command "_load" "mbmong.dcl")) F2 {0 A9 F, o( {+ w( V
- ;(command "_load" "mbmong.fas")
8 M5 F- i- T4 J: ~8 Y1 w - ;(command "_load" "mccot.fas")
6 L- N3 e0 [" I: y - ;(command "_load" "mcdam.fas")3 k% M' f- [! J/ I6 B2 j# i
- ;(command "_load" "mcmong1.dcl")
" e3 H1 W. h u3 Z4 [0 x& S - ;(command "_load" "mcmong1.fas"); S5 j% T* S! I( O/ e* j
- ;(command "_load" "mcmong2.dcl")5 x; l; i6 E4 J' [+ X& ~* ]! v
- ;(command "_load" "mcmong2.fas")# _2 d. K: [4 i
- ;(command "_load" "mcmong3.dcl")
4 Z6 e0 L& }* z# n% }5 _) ~ - ;(command "_load" "mcmong3.fas")3 T1 b1 N; O( P1 M. M, z; U2 ~
- ;(command "_load" "mcsan.fas")! h7 a$ A" B* s) c+ {4 O h9 W
- ;(command "_load" "thepdai.fas")9 c- X' r$ }0 A: T+ w
- ;(command "_load" "thepdoc.fas"), E# H5 o8 k" N. Z
- ;(command "_load" "thepmb.fas")7 T+ P5 B/ P, A) A! U# A* [1 v
- ;(command "_load" "thepphbo.fas")3 O% P$ b) w& A4 y& h4 X7 ], K
- (command "_script" "thongso.scr")
# P" C( u8 e a. W7 N) G/ v - ;(command "_load" "thongso1.dcl")
5 k# O1 `0 v. Z3 t# ? - ;(command "_load" "thongso1.fas")
8 O; y" m& D. c& z- e" W - ;(command "_load" "thongso2.dcl")+ Y' k. L% ?) I. ^& o+ A
- ;(command "_load" "thongso2.fas")
# ]* H3 ]7 _4 n( W4 e. M. C- W; o - ;(command "_load" "tietdien.fas")
" m E0 I8 O$ m- | - ;(command "_load" "vehan.fas")7 @/ g& h; A# e( z, g( I
- (command "_load" "phamDuy782006_TKT.lsp")
/ W$ d; P, E+ Y- z6 y6 ?& Y - (command "_load" "phamduy782006ganhtd.lsp")
: q5 a6 E9 K/ h" ` - (command "_load" "phamduy782006ganhtds.lsp")+ O9 l+ H. |( G1 m& l
- (command "_load" "phamduy782006htd.dcl")
1 ?, L6 I. i5 A1 g# m - (princ)1 N8 R6 d% ?- d8 {) h8 @2 p/ o8 N* v
- )/ n$ l' W7 v' d- ?4 |' y( |* W/ D
9 i8 Z9 s& f; h* n+ o0 h- ;; Silent load.
6 V( {- p8 Q4 t: v5 F# E8 i - (princ)* b0 ?8 ?8 D+ o5 K2 Q/ r
- % u- F) S0 j# k% ?) j% v4 Q
- % |2 c3 U& F9 O. p+ z, R
- ;; Silent load for the Express Tools.
3 r6 _* S( r, f7 g" j - ;; Altering this line will affect Express Tools functionality, d* b9 M# v( L. p( A+ G/ s5 @/ g
- (load "acettest.fas" (princ))
4 L$ Q& n* g& j2 Q$ \ - �32
Sao chép mã 0 c, g0 w/ c* {
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
3 E9 ?' I) @ [9 x" \ |
|