|
|
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 |
- ********************************************************************************
" `% l9 v: g% n, {6 O* Q - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
5 U5 H+ i& O) K. e) x - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *2 k( D/ ]7 ^# N' J! u( T ]4 @- d
- * Suu tam & Soan *1 A7 h7 W! B' ~" E' P' g9 a
- ********************************************************************************
+ y: h8 q) A" B) b. H$ \
5 c" g2 F& I6 o; I |& g) R- ; Next available MSG number is 104
) p& A( e: T" L: \5 b! W2 l3 B - ; MODULE_ID ACAD2000doc_LSP_
! E$ @$ H& U7 v' Y% w - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000& y0 a1 K2 A/ O5 L
- ;;;4 Y1 H' R0 F3 _; M9 h
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.4 ~; V# ]: Q1 V7 [# S3 M8 U, ^" Q3 t, U
- ;;;; ?" r9 i3 r) V1 I4 p
- ;;; Permission to use, copy, modify, and distribute this software
2 J" n7 q5 M6 v" u6 J, x - ;;; for any purpose and without fee is hereby granted, provided" M% Q2 M% l: [# Z! G- f9 d6 T
- ;;; that the above copyright notice appears in all copies and
, P/ A9 x$ d4 ^8 y' F% i - ;;; that both that copyright notice and the limited warranty and' t4 J; m( Q, w. {
- ;;; restricted rights notice below appear in all supporting o2 ~ U! p( {! T3 a2 m
- ;;; documentation.) H6 K0 S3 B' j
- ;;;
9 K" X( G: f8 C& F - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.9 D6 {3 e* T5 k9 F+ F1 W
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF( t" u' O0 O; T' q. F$ A
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.( n I9 v5 ^# i: m P
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
8 i* n7 W+ \+ W1 C- h$ e1 R! Y - ;;; UNINTERRUPTED OR ERROR FREE." \; J) j1 I4 f
- ;;;9 a7 f& y- x! V
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to u! \ X" J$ b/ j: g) _+ M
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
: i, \5 g2 S% I2 O6 y - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ( C2 ]+ V+ o3 j7 U) W' J* }
- ;;; (Rights in Technical Data and Computer Software), as applicable.8 u" A9 A8 Y( `
- ;;;* I3 V8 ?' v! w4 G$ }( L
- ;;;.
# J" @ h. b! e& S( p - ;;;
3 x6 K4 y& h- r& V& G! M0 w - ;;; Note:" g' m7 o# _% M# x7 q9 b) X( w
- ;;; This file is loaded automatically by AutoCAD every time 8 J2 I* O3 Y( T: M7 T
- ;;; a drawing is opened. It establishes an autoloader and
' u" u+ Q$ _/ t6 U5 X - ;;; other utility functions.
5 i5 Q7 B5 ^ M& h6 t) {2 } - ;;;" V: t; N( ^5 J+ E4 P
- ;;; Globalization Note:
/ o8 \2 O' z- z9 l4 s( S' c" R - ;;; We do not support autoloading applications by the native 9 f' h9 k6 L2 T; t8 J
- ;;; language command call (e.g. with the leading underscore
@+ U% j1 I0 T( @" Y) f3 o( i - ;;; mechanism.)* [- [6 G' M) I5 g$ r
3 @6 o& L$ o1 r5 G& z
8 |1 B# b2 Z- M; Y- ;;;===== Raster Image Support for Clipboard Paste Special =====+ i {5 A& m* P8 Z2 [
- ;;+ x, Y. G3 a- k% J5 ^6 e2 L
- ;; IMAGEFILE
* l' K/ t6 Z" n" g; ]! v: E" n4 m+ t - ;;2 J$ \( n& V, S; ?
- ;; Allow the IMAGE command to accept an image file name without3 P6 A7 T K( B6 O# ]. D
- ;; presenting the file dialog, even if filedia is on." T9 k$ [3 Z0 P) F* `: W: J. ]' E
- ;; Example: (imagefile "c:/images/house.bmp")3 V! c& r; W5 ^- n# W
- ;;
9 _% ^: s1 X2 V, t6 N& S0 U, B8 I - (defun imagefile (filename / filedia-save cmdecho-save)2 ]- R% J& y4 g+ O/ X7 {$ e
- (setq filedia-save (getvar "FILEDIA")), G# ^0 K2 A# _
- (setq cmdecho-save (getvar "CMDECHO"))& ^$ g& O5 H! z
- (setvar "FILEDIA" 0)8 l' r. E6 f7 b! r+ C! W) A
- (setvar "CMDECHO" 0)# \1 l1 B7 V1 [0 D" R6 n" u6 Y I
- (command "_.-image" "_attach" filename)7 o W$ w2 F3 m" `" R% @8 o( B. A
- (setvar "FILEDIA" filedia-save)$ t3 `" y# q9 y" M7 D" _: H
- (setvar "CMDECHO" cmdecho-save)
" g9 I s4 V0 R+ Q/ [$ q0 u/ M - (princ)
' G0 z- g/ V( h - )
) `3 ^- c: g% e2 ] |1 C - ' H0 [5 {( A/ l# ^
- (defun c:zx () (command "zoom" ".5x"))
- B" |8 v1 l# ~& R6 L" X; A6 S3 j - (defun c:zz () (command "zoom" "p"))
- z) p1 u: h' ? - (defun c:za () (command "zoom" "a"))
- i# D8 G' v- ?! p9 X, N - (defun c:zd () (command "zoom" "d"))
+ L- u5 |5 o8 p5 r; S5 \( y - (defun c:ze () (command "zoom" "e"))
- N& X7 w5 t H+ l - (defun c:zr () (command "zoom" "" ""))
/ T8 J/ Y2 |- Q" W# {6 | - (defun c:vv () (command "ucs" "v"))3 F$ t4 |9 O- A
- (defun c:co () (ssget) (command "copy" "p" "" "m"))
) \$ G$ X* |3 X4 L7 n - (defun c:c () (command "circle")); M+ X5 r1 m: ?: `
- (defun c:rt () (command "rotate"))
1 l; C5 f! H( e7 N+ d+ q+ ~ - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))2 k( {0 R* _8 l
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))( r- K9 b5 \% M- a" a- I( X
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
9 v( b6 E8 L n. [! o - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))( s/ }5 a- U J' \5 M8 v4 a4 f
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
* Z9 L# I9 F' ~$ c; X, Q; B - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))5 u5 y( C; i4 n: l+ L7 q; L
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))6 n& r: a- i# w9 [
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))+ o1 Z/ T7 A9 E# Z* N: p. D% q
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))6 M. u( ?2 d( t) t" [
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))& s- E2 K( G) T# n, D0 E
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))2 R, C8 g @6 W/ u* E1 i* [ v9 B
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))2 y* n, Q0 j: C$ a$ v w j
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
) u k) Z: c* l0 x3 |/ H' n - ( a$ \7 B6 U; R# ~
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)6 x( n6 m! m8 l1 j4 u0 d
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
! G- n9 Y: P& U* D. J+ H - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
8 N% O2 o, {% t- m* @" _( { - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
6 ]7 o3 F) J/ P( D9 W - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))( l3 h5 Z3 m4 I I7 D7 Z
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))5 q4 g& K) X4 F+ p7 \" a) a, o5 u
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
- u& p' I9 V! K6 o4 i& Z. H. E' Q T8 M - 9 |) Y8 J6 n" A5 G! i1 T2 u2 Z5 v8 ]
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
$ d3 @* d! o) A - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n")), `6 a. B/ }" h* N% m; ^3 E
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))) `/ `" q# }! Q, }
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))$ d6 ^ [1 @+ I. l: g
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
. f3 C7 O+ ~) |3 K; ]5 p - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
: V4 `% u& v% K$ M- F* S
/ H, h9 L( X, z- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
5 v. ^4 y7 }: R* q$ z5 P - - z3 M$ t5 E3 X: x; ]+ [' B
- ;free lisp by cadviet,cd2k44, y# f+ c' \/ l% G
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538306 I% V; c5 q4 N3 a# q* b# j+ J
- (defun c:FTEXT (/ ent tstyle )) v2 d6 h" S |8 g
- (command "undo" "be")
0 @& n0 y3 _2 h' c - (setq ent (entsel "\n Pick text :"))
4 }$ K- o" L$ G3 U - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))9 |6 ?1 u6 V* D @6 A
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
& F* O3 w6 _; a# w - (setvar "TEXTSTYLE" Tstyle) M9 x$ A( A" E! V( Q t0 k5 K
- (command "undo" "end"). G+ Z5 t: ^% s0 V8 I3 b
- )7 e) C* d: H' v& l# V
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
. D# N1 `) @+ P - a `3 y3 B& N: v, M
- ;free lisp by cadviet,cd2k446 C2 c; v+ ]5 Y3 ^
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538305 B8 j7 d& }; @2 p; r
- (defun c:Fvnh (/ ent tstyle ). @; w6 L0 b. Z
- (command "undo" "be")% n8 l) l* l5 i9 l6 G5 e
- (setq ent (entsel "\n Pick text :"))
: H! Z, R% n6 c6 z/ o; x - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
; F9 |3 Y$ |9 Y7 K ?* f - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n") u' G" P, r9 p5 @* z4 Y0 x7 J
- (setvar "TEXTSTYLE" Tstyle)
' I- N' }: n0 y2 z# w - (command "undo" "end")" a3 J; m# m2 B: i, E3 {* N
- )
! Z" S5 v) f0 h) W& n$ D( r - : y$ J# b" m4 @) B' \( o( L
- ;free lisp by cadviet,cd2k44) Y$ H7 l0 W1 K" H! y1 ~& J, o2 [
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
[( f" S0 O$ e* x - (defun c:Chbg (/ ent tstyle )
7 l6 f0 d5 C: h* l9 r0 h# q - (command "undo" "be")% X F5 z- a' f$ w2 R
- (setq ent (entsel "\n Pick text :"))
/ T f: R- _# K( e - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))); z2 O0 u; p% w! T/ V6 [ R
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")% |$ K; V( i- P0 U' [
- (setvar "TEXTSTYLE" Tstyle)
6 o' d# p5 P3 e+ T! g - (command "undo" "end")
z" h, V( ?' E$ y - ); I9 ~1 ~8 K: C* N) G! X$ w
- / B8 ~2 I: a- ?( M9 T: d2 ^$ D
- ;free lisp by cadviet,cd2k447 M- v: `) ?3 e
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
% t7 V U& V) B: I, `2 \ - (defun c:Chsm (/ ent tstyle )/ s/ d2 g3 g4 ~7 z
- (command "undo" "be")! ? L0 F* M% F/ l
- (setq ent (entsel "\n Pick text :"))
/ K6 H9 s3 l4 ~( _: q& C2 c - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))) D5 c, J) Y+ ]& T( [5 Y# f
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
# x( f o; M4 V3 x2 h$ S H - (setvar "TEXTSTYLE" Tstyle)
8 L0 d1 P, ]- X7 I4 f/ M - (command "undo" "end")
) g# S2 ?; }( X - )
# y/ c9 j% W0 U
4 `0 ^3 L2 L" e: \; U. r( o8 i- ;free lisp by cadviet,cd2k44
$ H4 L* h$ s z& ^ - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830: J1 h2 p# g; M3 P
- (defun c:Fttf (/ ent tstyle )
% f2 s) t( t% g0 ~8 I; u& [/ c - (command "undo" "be")6 ?2 S: U) L: {4 _5 A5 h
- (setq ent (entsel "\n Pick text :"))% a& \/ { m- X' L3 G G
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 W2 h4 s( r8 i7 Q A! [
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")4 }, ~/ a4 b, X* D, j I
- (setvar "TEXTSTYLE" Tstyle)
( e) M; J, t* ]4 r - (command "undo" "end")
& }- u" p7 o3 F" U/ q - )
0 B* ~ }1 F v e - / o {" ?* D" Q( N; J
- ;;; ============================================6 _% h+ x( a. M5 `9 |# C
- ;;;, _/ a, N. z4 k4 ~
- ;;; LISP Creater Tao Duong Dan AUTOCAD20002 E8 T0 A+ `+ k6 @, t% E
- ;;;
; c2 R8 w1 @0 H. W6 D" `. R - ;;; ============================================
% V# l3 @9 j1 c- C. Q ~
: _7 @' N" u. L/ S2 e8 s' U% y1 Y- ;;; ============================================4 G& y/ A& M4 Q6 M# I
- ;;;* G& A" ^" }. n& W( i, i* Y( E
- ;;; CREATING FROM AUTOCAD2000: @- b$ I) P6 }2 e, C/ y
- ;;;
/ o/ B- G' }0 K! y, ?* Z - ;;; ============================================
* D; R. r5 {$ o% _! ?
4 b9 ^5 \. |6 z, A- (setvar "INSUNITS"4)
3 T/ O& Z# V4 ~ - (setvar "ANGBASE"0)
6 b0 b- q( ?' Q& q& c& K0 z- u - (setvar "ANGDIR"0)
+ Q: W+ s; M& k2 m, t4 A - (setvar "AUNITS"0)
F& [: ^- |/ \: |& d; ^( ^1 i - (setvar "AUPREC"8)
# e1 y2 r3 ~# E8 I1 _; P- L - (setvar "LUNITS"2)
' ^% l2 l5 J& X" w$ s9 ^& q: v - (setvar "LUPREC"8), c8 A$ J3 C& E: ?! n; B" X5 `
- (setvar "ACADLSPASDOC"1)
/ a+ ]& n1 C* u9 s - (setvar "pickbox"5)" M1 n1 o$ W; j4 @% p
- (setvar "blipmode"0)2 G8 r# J) [# d- G1 y6 ^* N
- (setvar "mirrtext"0)3 x8 a: X6 T( j( q' [
- (setvar "cursorsize"100)$ _# d8 `8 `5 ?, @' x# }
- (setvar "ZOOMFACTOR"75)7 Z" j! n0 m8 `* ~ `+ Z" y0 y
- (setvar "LTSCALE" 10)
3 u& q' [8 K+ F! V7 O& w) L - (setvar "lwunits"1)
# | R" b! e' I - (setvar "DIMBLK" "Closed")
# H* G% S" I+ O P; q - (setvar "DIMGAP"0.0693)
. B, K3 O5 e6 R. {0 l- u& t - (setvar "DIMASZ"0.20)
7 b' H5 g" {) I8 H" O - (setvar "DIMCEN"0.2)
: `9 _* a* l) ]% L' ?6 {4 K - (setvar "DIMDLI"0.1)# a7 A& _/ N$ m5 D
- (setvar "DIMEXE"0.0693)
4 q8 w- Y- D' w4 Y9 P- E - (setvar "DIMEXO"0.25)
- S* ^8 w* N( M4 X | - (setvar "DIMDEC"0)
# M) A6 u9 R: {& W: [) i$ t* f - (setvar "DIMTIX" 1)
- K9 X0 i& g" N1 m - (setvar "DIMTXT" 0.099)7 Y) z1 E: i7 ]. E( ^7 I2 ?1 b' j
- (setvar "DIMCLRT" 7)7 f% l0 v* ?% x( V: N N! u
- (setvar "DIMTVP" 1)
) ~, n% B/ O2 x, C8 i! A - (setvar "DIMJUST" 0)7 { r; }5 e$ n2 ~2 G5 B" T' E
- (setvar "DIMTIH" 0)3 z) ^7 v* u! L p; m
- (setvar "DIMTOFL" 1)9 U* b# L0 ]% M8 Q4 ~
- (setvar "DIMSCALE" 1111.1111)5 D1 N* }2 k+ d h1 S W
- * C$ @: x# H! l2 w. [7 |* n
3 p- h4 }7 [2 G; w1 T+ M- c
8 S K# R! T/ {7 e, p- (defun c:zp () (command "'.zoom" "p"))
$ f8 _: U+ B: F4 z7 ?/ b5 ~ - (defun c:zz () (command "'.zoom" "p"))
7 n! T5 b3 G6 Z, z/ o1 t+ U - (defun c:ze () (command "'.zoom" "e"))" m2 I% @% E8 k
- (defun c:za () (command "'.zoom" "a"))
|, J& F( v: b$ F - (defun c:zd () (command "'.zoom" "d")), N F/ B$ _3 P) T; e
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
. r5 p: K# |* i' w" M - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))/ O( E2 J/ T! s. v/ V9 `0 b
- (defun c:de () (command "ddedit")(princ))5 G. x9 V5 S& x2 `
- (defun c:dda () (command "Dimaligned")); L0 G/ u f! n" Z3 R' V6 f( C5 j
- (defun c:ddb () (command "Dimabaseline"))6 q0 Z. A6 r a9 G
- (defun c:ddc () (command "Dimcontinue"))
) ~: a& p+ b+ S ^ t' o - (defun c:dde () (command "Dimtedit"))' H2 S, t; F. M, ^ R! ]3 _
- (defun c:ddf () (command "Ddattdef"))& @. ~* r5 {. j, w8 m
- (defun c:ddi () (command "Dimdiameter")); B9 F: T( s/ ?7 @2 B$ O# @
- (defun c:ddl () (command "Dimlinear"))
`, @2 l: U1 u, Z4 j# @ - (defun c:ddn () (command "Dimangular"))+ V+ ?4 a- o) o7 \
- (defun c:ddo () (command "Dimordinate"))
- i+ ?( r# s; _4 u! e* s2 y, s _# F - (defun c:ddr () (command "Dimradius"))
! e' u; ]% o4 w# P; V4 N( P p - (defun c:dds () (command "Dimstyle"))
# w2 N+ V; t/ X' \ - % w% ^6 N& A, W8 w
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)0 B" |* ? F# d
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
! `7 H' K" r' h3 P& e6 ~' f: a - (defun c:UU () (command "dim1""update""all"))$ H( q9 U/ m2 ~" U
- (defun c:ded() (command "dim1""tedit"))! |6 ~' n0 r; R
- (defun c:da () (command "dim1""ali"))
% U% }' u2 V1 U1 F$ l: k: a - (defun c:dll() (command "dim1""l"))& p# W4 e: p: T$ b5 x
- (defun c:dan() (command "dim1""an"))% e% t- @. B2 z1 x( N2 |3 h
- (defun c:d1 () (command "dim1""ra"))
0 b ^ c7 E, Q - (defun c:n () (command "dim1""new"))# \+ ~5 G$ v# q9 t+ W! v
2 S. ~+ G3 ~1 N- (DEFUN C:PE () (COMMAND "PEDIT"))
' f' {' t9 x4 F1 e8 ]! J6 _ - (DEFUN C:PL () (COMMAND "PLINE"))9 _, ^. O9 L, L' _* O2 O2 \8 W
- (defun c:dd () (command "dist")(princ))! s3 M3 q, D9 z/ _6 g- p( I7 \- I! z
- (defun c:w () (command "pedit" pause "w" "au")(princ))
8 w- f( L) C8 r, V6 [2 r - (defun c:pg () (command "polygon" "polygon"))
" O' |2 R- O) O6 [5 W - (defun c:el () (command "ellipse"))0 g6 E% v8 n. h+ i7 R& f/ t
- (defun c:xe () (command "explode"))( m- r& p# ` m% x- {& I: }
- (defun c:eex () (command "extrude"))! \) M/ f% U+ x2 k, r
- (defun c:xg () (command "xline""a")) N. U9 u5 N% O' O# E! r
- (defun c:xh () (command "xline""h"))2 X6 E6 b% H+ F* N4 ?' n" ]
- (defun c:xv () (command "xline""v")). O8 Z2 r; [1 v
+ L' @9 T6 D2 t0 x- (defun c:oc () (command "osnap""cen"))# J8 e R% @. E k% ^
- (defun c:od () (command "osnap""nod"))7 B# o0 T# f2 @$ j. s4 W/ z
- (defun c:oe () (command "osnap""end"))* d: p" s8 L" t, c3 b5 h8 M
- (defun c:oi () (command "osnap""int"))7 V* b; P( d! @4 J. U0 i3 C. z
- (defun c:or () (command "osnap""per")), C! h y: H! D7 G/ o
- (defun c:on () (command "osnap""none"))
7 c* q7 n3 `/ c9 I& v- T' \4 q# f, W5 Z - (defun c:oq () (command "osnap""qua"))
0 v: p, C6 r- T: l! l% K- e1 H- G - (defun c:om () (command "osnap""mid"))* f9 }- } x- @% r8 z& r
- (defun c:ot () (command "osnap""tan"))
6 t( S1 Y8 ~- A% y6 p* i$ s) p! T - (defun c:oin () (command "osnap""ins"))
3 t% b& u# l3 x8 t - (defun c:oa () (command "osnap""nea")); q% [/ b5 h- H
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ)) x- J" {8 ]& h: o' ?; M
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))' G9 G8 |; L" l$ [* r; e2 L
- ;(defun c:nn () (command "new" "y" ))
5 L* B' S7 S, [9 H1 V4 a# z
. Q0 O$ Q/ L, I2 h6 `- (defun c:/ () (command "limits"))0 }0 _& g: O" \% @' t
- (defun c:`1 () (command "region"))0 w) Y2 `# k4 y6 D8 ^1 ?
- (defun c:`2 () (command "subtract"))/ p$ k8 Z) }; b, M( [6 _4 f9 w# p
- (defun c:`3 () (command "union"))
+ k& ^' S$ g& D6 O - (defun c:`4 () (command "intersect")). x3 L1 S0 w- w% v* y
- (defun c:`c () (command "cal"))) i, U" G8 r0 f
- (defun c:`g () (command "Polygon"))
, l Y5 @0 }& l. O& }/ F4 X - 2 Q0 P: m: c8 c D8 M5 ~- F
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))$ N) W& d/ T. Y. i5 ?1 K
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))/ r! X7 |* l7 D+ U& `
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)! N) L% a+ R; a
( I8 `$ h9 D0 l- (defun c:ddm () (command "ddlmodes" pause))
+ Y" [! R* `8 ?5 Z2 x; {! z$ @ - 9 |- J# X" k) `; B
- (defun c:sha () (command "shade" pause))1 b3 ?% w7 ?7 w5 d s) R" a
: n$ c9 C5 h! m. j* s0 T9 e: l- (defun c:sr1 () (command "surftab1" "p" "" pause)) X$ r+ D' q8 _& R" R; @
- (defun c:sr2 () (command "surftab2" "p" "" pause))
6 H% Z& E6 y& u, T
6 R0 m" o0 j4 Y- (defun c:ad () (command "audit""y"))
" \- A0 f% z8 O# f- q2 l - (defun c:q () (command "quit"))% |1 F. r4 {, _9 j
2 f, K' H# g, x- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30")); V/ K) V. r, L+ v0 t1 | z8 U6 k
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))7 p; p/ D# m! a# g! i3 v, ?
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
, ^$ R; G/ T3 Z7 W) v$ b - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))7 H( N h7 s# N. c) y( j- R3 z
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))* {* f8 a* [6 ^7 I7 f* ]! d
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
2 X J/ A& ~5 f$ @" k* ?, V X0 d - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
; H- K- `6 B% \6 Y7 A - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))+ \1 e, u' B2 {4 G4 ~; n
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))- n) N( e& g: Y7 ~- i+ Q( N
- 6 J$ m5 o4 e/ p& ~1 f, u* i
- (defun c:u3 () (command "ucs""3")) v- q1 B, j9 @9 {. @6 u1 \
- (defun c:ue () (command "ucs""o""end"))
( G B" `0 |9 f' I6 w6 i8 B* U - (defun c:ui () (command "ucs""o""int"))- u) K9 i" \- r
- (defun c:um () (command "ucs""o""mid"))
; @, w, [* q, m4 H) `- D - (defun c:uc () (command "ucs""o""cen"))
1 o X; j) U1 ^ U+ K# {" }0 r# y - (defun c:uq () (command "ucs""o""qua"))
& w& f; ?0 \4 I" M8 F - (defun c:3s () (command "ucs""3"))
. s" Z* u3 U" m! @8 O - (defun c:sx () (command "ucs""s"))7 ^* p) @- I+ z* }& g! n: c
- (defun c:sf () (command "ucs""o"))+ s( _/ T Y; x2 m8 |* v' }
- (defun c:sz () (command "ucs""p")); J: I0 I% T2 x7 _# E- c
- (defun c:sr () (command "ucs""r")). e- S- x+ d( g
- (defun c:sw () (command "ucs""w"))
; V; C9 p' U$ V( \; N/ y3 r( O - (defun c:fv () (command "ucs""v"))+ A; h1 t c4 Q8 o1 j& Z/ R
- (defun c:ux () (command "ucs""x")): V s, M2 a/ H- E
- (defun c:uux () (command "ucs""x""90"))4 U% y Y4 t. x2 K: N q
- (defun c:xxu () (command "ucs""x""-90"))$ B8 Q4 K3 w- r
- (defun c:uy () (command "ucs""y"))
7 z9 G2 j% a8 m$ N - (defun c:uuy () (command "ucs""y""90"))
2 W* w2 G+ b- h) j5 ^- s* t2 P - (defun c:yyu () (command "ucs""y""-90"))
4 y M5 @) ~2 @" C - (defun c:uz () (command "ucs""z"))3 |5 h% D% U0 `3 h
- (defun c:uuz () (command "ucs""z""90"))
- l6 r% a8 c- P6 {+ o! W# } - (defun c:zzu () (command "ucs""z""-90"))0 s$ Q- i- `9 c1 W
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)' }3 P; |+ ]. D T* n8 o% x
- (defun c:ucm () (command "ucsman" ))(princ), x6 k* G$ X7 V1 {0 `
- 9 r: F+ T% P: G4 n4 J
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))5 I7 E: s4 E3 v
- (defun c:sd () (command "vpoint""_non""1,-1,1")), Q$ K4 H" P4 J- ?8 ^
- (defun c:se () (command "vpoint""_non""1,1,1")) L- m/ R8 v5 _" X/ k
- (defun c:sq () (command "vpoint""_non""-1,1,1"))
+ i* o7 \- V9 t' y |* Z7 A& v- Y+ R - (defun c:vc () (command "plan"""))* Q1 K" B% p/ U% l
- (defun c:vd () (command "dview""all"))
1 S/ ]3 }9 z2 V: ?5 d0 t0 a
: Y: s. X( |' v% C! A, p- (defun c:TT0 () (command "tilemode""0"))
5 N$ v9 b0 q6 B2 D, r - (defun c:TT1 () (command "tilemode""1"))
' W( _, H) F6 p9 _: _
1 g+ B) m, c, c" N6 K, t$ b- (defun c:vt () (command "vpoint""_non""0,0,1"))
" p6 H8 S P* k+ q# q. H+ C: m# x - (defun c:vb () (command "vpoint""_non""0,0,-1"))) H6 }. _6 O# I0 V# {8 s0 N
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
( }0 r8 C2 g) {. b, a - (defun c:vr () (command "vpoint""_non""1,0,0"))7 t2 I2 c% [4 ^: s9 H+ X) k
- (defun c:vf () (command "vpoint""_non""0,-1,0"))
# j) i" z) B( z4 P - (defun c:vk () (command "vpoint""_non""0,1,0"))5 O/ |1 L4 m3 O$ X
* A. c: V( q: F- (DEFUN C:MM () (COMMAND "MIRROR"))
! I- n: J! g) C% j( ^8 U0 o: E - (DEFUN C:MP () (COMMAND "MOVE" "P"))" E( s7 V5 {, J
- j; H, U8 C: r8 y7 \6 x4 x5 Z, U! T- (defun c:mee (/ a): ~* ]. L1 W, Z" ~, h- ~$ O
- (setq a (ssget))(command "move"a"""end"pause"end")). {# h" a7 L) m+ N2 n$ o
- (defun c:mc (/ a)
' o7 L1 x0 ~6 N, Q: ~5 C$ z- Q - (setq a (ssget))(command "move"a"""cen"pause"cen"))
: l0 |3 ?$ h) M9 q! \ - (defun c:cc (/ a)
9 k' z/ Z2 {4 ~1 t9 l# k - (setq a (ssget))(command "copy"a"""m"))0 ?3 f, F- X& t5 y- g4 R* n
- (defun c:ce (/ a)" [, T, K' m& m
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))$ D' u* F% p* Q% _) `* z
- (defun c:cn (/ a)# C. M3 H9 x- v
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))5 A3 A# G8 P H0 m2 ~ s
- (defun c:tl ()(command "trim""l"""))
/ F# E/ L& ?) X2 j: L$ T1 K' o4 m - (defun c:tf (/ a)
# i' i3 c7 n; A1 I! o0 I - (setq a (ssget))(command "trim"a"""f"))" r8 }; Z0 h N
- (defun c:el ()(command "extend""l"""))& \+ X: n& X4 S+ V
- (defun c:ef (/ a) h# P6 l$ z @" T# b* d
- (setq a (ssget))(command "extend"a"""f"))+ \# V( t8 e& }) w/ V( J( G' g
- + x) V7 Y$ N5 b
- 5 K5 }7 m W" D( t
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
& p6 L) U6 D% g( v+ y3 } - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))6 S& x; ?6 q6 w4 {0 S$ c
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
* b/ A% k0 P7 k" J7 q - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))% d' l# t: b9 D; e0 j# o
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))7 N) y9 Y! N! f; h' O
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
# D6 ~9 i! F/ a& R - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700")): { `% @9 E! `' _
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
/ t+ `! U: E2 l" f - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))2 J5 ]$ I' Z5 y1 T9 @$ a
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
6 n' N$ B" U; W! w- C6 m - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
8 v* `0 t$ k6 k _5 Z - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
5 P, A. ]0 r) E" Q - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
9 h0 ~3 T& A( I7 ] }; L4 E - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
9 ?' Q2 _* z1 S- V( u+ N - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))2 p* M* u0 m" L; }
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
: D+ Z# F' T7 J - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))2 V3 Y. n7 J- | a+ Y$ t
- # ~& x0 E' X# `+ \. O1 D% x# J
- (defun c:mla () (command "-mledit""av"))8 R, W/ A& d# K
- (defun c:mlc () (command "-mledit""mc"))) x. v" k, G% D4 x: c& F' y- s2 h
- (defun c:mld () (command "-mledit""dv"))
3 g6 e' f; r: r! m1 ?9 X - (defun c:mle () (command "mline""end"pause"end"))
) i$ Z3 M3 ?+ C- l# z - (defun c:mli () (command "-mledit""ca""int"pause"int"))
% X, ]# A/ ]+ A - (defun c:mlj () (command "-mledit""cj")): A$ d# _6 M) D& a- K8 ]! v
- (defun c:mlt () (command "-mledit""mt"))
, P' t, o- }( m - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
+ A- v" a, ]$ t9 o - (defun c:mlw () (command "-mledit""wa")), K4 R" F% P# x! y' K7 ^; ~
% K5 Y2 M0 k! G: [9 |8 J- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
7 P. [, X8 n) ~) Z Q9 e - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))- t ^ y+ w% V5 W+ c
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))8 {- c& J* }, Q, r! }# x7 S
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D")) g9 Z$ G, r4 l3 `3 N6 t
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z")); ], N( L4 t; ]4 l9 s
0 _2 V) n# Q2 V h. H9 @- (defun c:p0 () (command "pline""""w""0""0"))- a# H5 u5 j4 [% ?; m
- (defun c:ot () (command "offset""t"))
3 a! B& p5 r& o' I - (defun c:t () (command "mtext"pause"j""bl""h"pause))
: Z% m' C2 c1 f. u B4 m# W# L7 G8 { - (defun c:uo () (command "ucs""ob"pause))3 H; m, _9 T; z9 `3 q! @
- (defun c:f0 () (command "fillet""r""0"))
0 W8 y$ a$ l+ G% x v( V8 d - (defun c:fr () (command "fillet""r"))1 y7 n$ A C1 @( c: r1 }
- * g! y( w( Z& c- ], G
- ;CHAMFER N. b. f4 W" k9 k% d
- (defun c:cf () (command "chamfer"))8 ~- t+ s2 g' G
- (defun c:cfd () (command "chamfer" "d"))7 X+ s# e. i" p$ @- U- l
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
+ B1 f/ F4 T' p0 ]" ]# H% Z
4 Y; K/ r+ x7 {( ]$ p4 `- ;FILLET& U; \$ T: h1 M" ^& \( `8 R `$ E
- (defun c:f () (command "fillet"))4 l! L5 p q0 b! _
- (defun c:fr () (command "fillet" "r")): b- m6 u2 Q0 E7 ]3 R
- (defun c:f0 () (command "fillet" "r" "0"))& a. A* a0 n8 z6 v
- / A; ?( [0 u$ E0 S) ]! z) g
- (defun c:OO () (command "oops"))! d" s0 o/ A; E2 r( ?3 K1 r
- (defun c:dln () (command "dimlinear"))1 t. F# Z0 J! q4 H9 e, Y
- (defun c:dan () (command "dimaligned"))/ U4 ^' D- h- l* ~ A/ k& b
- (defun c:ddc () (command "dimcontinue"))0 e/ Y% M2 t1 z- }) v- ~: I. G4 k
- : A5 c6 Z' \9 I: J! w! t( W" `
- (defun c:sc () (command "scale" "auto"))( k! r+ A1 b. Z2 K7 e. h9 D* O
- (DEFUN C:XO () (COMMAND "snapang"))
+ h+ n* ~1 o. ~2 ~# U1 `! H$ l# @ - (defun c:cc (/ a)4 p" z# r- A5 T, J
- (setq a (ssget))(command "copy"a"""m"))- _. D2 g" p* j
) A; U% Y1 Q; H. ~0 Q- (defun c:PJ (/ a)6 f! [6 A/ a6 b; ^& P
- (setq a (ssget))(command "pedit"a"""j""all""y")), N5 p9 r. t5 u5 R
- (defun c:JJ (/ a): P/ G O) \8 n# b& m' f ]7 e' o
- (setq a (ssget))(command "pedit"a"""j""y"))
" D) a- B9 Y5 H - (defun c:TN (/ a)
- D0 `" k+ j. p6 e, H - (setq a (ssget))(command "change"a"""p""T")): n# m, o& q! L
- : D: ~7 e9 [' q( r( Z
- + |' a2 W. ^, w+ A
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
% g& o# m/ g+ `3 o) t8 u: i5 _: c - - Q8 f! | \; w9 F
- (defun C:IB ()(setvar"cmdecho"1) t9 ~9 V$ O: I+ }
- (setq pt(cadr(entsel"\nSelect Block:")))
. q, Y2 ~. I$ G ~7 ?8 T$ ? - (setq e1(ssget pt)) , a' p# b/ x9 p5 j
- (setq e2 (entget (ssname e1 0)))
- r) r6 v* v: u& _" G - (setq blname (cdr(assoc 2 e2)))
/ v) i" |0 c- g: i; ] - (setq oer *error* *error* err2)(command ".insert" blname))
: c& M2 a+ ]; h, O, u. y
4 ~+ w* }& u5 x" D- (defun c:II ()
$ z$ T1 C B8 W" u - (setvar "cmdecho" 0)
; h1 }5 H" w* F5 ~% H0 B+ C) Y - (setq olderr *error* *error* myerror)
f7 S9 C5 P. a& A' U+ o X- y - (prompt "\nSelect objects: ")& J8 d+ _) K0 _0 l# l7 g
- (command "select" "au" pause)0 v: T4 q* u% ^2 w$ X* m, u
- (setq sstxt (ssget "p")
3 X* S& R5 ?8 z! t2 i. ]1 F - sslen (sslength sstxt)
. Z S& }7 [2 h' [; l - ctr 0
! a3 x2 \9 }& Q# Q. Y- {. w - )
( E" F/ f; X5 J4 s - (command ".undo" "mark")
+ T5 A9 i- G% \: O - (while (< ctr sslen)# Y- ]6 {; ]. ?) C5 E3 H" J) L* t! Q) e
- (setq listxt (entget (ssname sstxt ctr))8 k" Y( {# p6 r7 ^; y2 h8 J
- txttxt (cdr (assoc 1 listxt))
* g) D2 E8 I- J7 L - enttxt (cdr (assoc 0 listxt))
, M6 M- O* x* C* D/ t" Z - )8 v! b7 u# Z% \) e/ M
- (if (= enttxt "TEXT")
1 h0 R8 j' {; y - (progn
( R2 ^: ?1 D3 I2 f n% f! J - (setq testxt (substr txttxt 1 3))
- A" y# Z& Y* g# v; i8 h! _5 m - (if (or (= testxt "%%C") (= testxt "%%C"))
; k! [8 g- l. u0 Y& F: Y - (setq newtxt (substr txttxt 4))
$ C( U% m8 P6 Z - (setq newtxt (strcat "%%C" txttxt))
. H5 X/ d6 e% v% d - )
& ?5 Z* b3 [/ t1 m* E6 e: {2 ] - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
8 S& k) f a0 w+ T2 _; e. b - (entmod listxt)
# `( s3 _7 \& T2 R0 W: N& R! w - ): t+ K% z5 o% }3 A) H1 I
- )
* f6 N: m' s! @/ P5 R - (setq ctr (1+ ctr))
9 |% _* y( z$ X, ~( @! z- } - )4 z+ d8 E+ W) `& T4 v$ [
- (setq *error* olderr)
8 f- H0 Y I. @# a# t2 W1 O+ Z - (setvar "cmdecho" 1)+ k; Y4 C6 r, T! b
- (princ)
5 {, e- O# ~" \7 }: v, V, {) j; E - )- P5 V. V% A |5 l; d& E5 j* j
- 3 \3 c9 R4 U7 w8 z4 c/ B
- (defun c:DG ()6 F% B4 _( h$ F$ y3 j
- (setvar "cmdecho" 0)# w" m; v0 I" t9 a% C
- (setq olderr *error* *error* myerror)4 k& ~. @( s: N
- (prompt "\nSelect objects: ")( C0 Q2 _! R3 z$ L U
- (command "select" "au" pause)# c. a& }7 M; a: X' p# A& G
- (setq sstxt (ssget "p")1 m5 H; z8 L2 }( o% |
- sslen (sslength sstxt), N! S) ~7 T9 g. q8 m$ N& U
- ctr 0
. g6 L f/ p4 m) n, I% b - )* i* ~. N4 l- S! q/ u9 ^
- (command ".undo" "mark")
" D& @7 O+ J' E+ y1 o. k" s - (while (< ctr sslen)) Z: z# |; M' Z, K
- (setq listxt (entget (ssname sstxt ctr))) @* J$ ?5 k8 W2 `! ]/ u/ U+ t
- txttxt (cdr (assoc 1 listxt))
/ }5 e) ?4 d' M* M' \ - enttxt (cdr (assoc 0 listxt))5 n- G% @7 q/ t7 _0 Q4 a
- )( M& E2 j6 P% [2 J, S
- (if (= enttxt "TEXT")
! r8 o$ h: b' f: C' K4 r - (progn
0 `" p" l) A, l3 b - (setq testxt (substr txttxt 1 3))
1 b6 |1 w: u* \ - (if (or (= testxt "%%d") (= testxt "%%d"))8 F& ]$ c4 T! u1 G/ \) ^
- (setq newtxt (substr txttxt 4))
4 f: j/ ? k3 k2 C6 P6 x - (setq newtxt (strcat txttxt "%%dC" ))& {# e! k( ~" s5 C$ l$ b
- )' e3 S, w* |" b" C4 A3 t
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
0 s* u4 W% Q5 t4 a* L) g - (entmod listxt)
( @: N$ \. c2 J8 j - )2 y n+ `) o+ ?& I( o8 `
- )# p" \# u' y6 s7 Q+ h+ x
- (setq ctr (1+ ctr))/ S! F. U( ?+ c; \+ E
- )( k" z& |2 c9 b& N, s3 o1 ?3 d) F
- (setq *error* olderr)
3 Y% P# g0 S+ m# z - (setvar "cmdecho" 1)5 ?& m, f" P& p6 v) K
- (princ)
. K: c1 f) d2 H' |2 {5 A U/ ^ - )
" ~+ E% R2 s/ r - + h6 {. @5 N _7 m7 {
- (defun c:PI ()5 I" S" K: j7 S- f3 r2 U0 X' e
- (setvar "cmdecho" 0)
% l9 O$ _( ], P! q" k3 U - (setq olderr *error* *error* myerror)
. l4 a$ o) I$ { - (prompt "\nSelect objects: "), a4 ]; s7 Z* w/ J3 w
- (command "select" "au" pause)" h3 A% U+ U) V& |# W3 _4 N
- (setq sstxt (ssget "p")9 W2 D/ f# h% G' W
- sslen (sslength sstxt)
- Q6 z$ E! ~( n# ]. G - ctr 00 ^: k) Q7 T; c) T
- ), g7 S2 h" x( s" r/ M/ J
- (command ".undo" "mark")
# \) o+ f; v7 h' T+ y* F - (while (< ctr sslen)9 F6 C$ G6 t+ [$ ~9 J* W
- (setq listxt (entget (ssname sstxt ctr))
! ]8 Y# m! U. a {- o( Y - txttxt (cdr (assoc 1 listxt))* A6 w6 o( A' a1 Q- ]1 i
- enttxt (cdr (assoc 0 listxt)), q* U2 s; t4 y: C
- )
: \( M+ f5 F, r- k& g7 ~* ^3 p6 m" s - (if (= enttxt "TEXT")
' r. [. @) j4 G4 S0 \ - (progn
: X6 U& i/ E; n: O4 o+ i - (setq testxt (substr txttxt 1 3))
, T2 X6 S* k9 q* c9 [: n - (if (or (= testxt "%%p") (= testxt "%%p"))
6 t. y& k1 R n - (setq newtxt (substr txttxt 4))1 [) k1 B. g6 E% F+ E
- (setq newtxt (strcat "%%p" txttxt))( t4 L: r6 q! h) N/ z g+ t
- ); |( ~+ B8 n( Z. |6 B% Q4 P2 \0 x- J
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)); G! }& @5 R2 ]; C3 N& F
- (entmod listxt)* z6 l' O j- R1 |3 I; d" W# {
- )4 l3 [4 C* r6 B' _! i; i/ L# R
- )
0 T' [6 m8 j f" v - (setq ctr (1+ ctr)) R+ N2 s6 U5 l, f/ E1 o4 j0 S
- )
2 H* u6 |' W& Z$ \& u. G - (setq *error* olderr)3 j% q s5 r/ P- V" K! V8 Z
- (setvar "cmdecho" 1)5 I E$ R" c: n% @1 i- {2 k
- (princ)5 |/ G- X& t+ P: K2 `
- )0 F: i/ A# Z8 r3 h B) n) g2 t( h
- 0 R7 d; E- q6 D7 d6 X9 e
- (Defun c:CB (/ a)
5 K7 V! z) @! b1 R ? - (setq olderr *error* *error* myerror)
# Z" ^; x* V% i2 i T1 s, W - (setq ocmd (getvar "cmdecho"))
+ {( L) c1 d* ~4 _5 @1 T+ ?5 o. d - (setq oblp (getvar "blipmode"))6 v( R% U/ _2 S6 Q, X+ ]! X3 M% A
- (setvar "cmdecho" 0)
5 h* E+ B3 q ]: d+ \ - (setq a (ssget))3 M7 \, j8 z8 Z( |; B. Z0 F
- (command "CHPROP" a "" "C" "bylayer" "")
& E3 R7 P7 f3 K. F! `* w - (setvar "cmdecho" ocmd)
" y4 }- l7 u7 r; U/ p! c! \& N - (setvar "blipmode" oblp)# b1 U. Y& U% K( p7 I
- (setq *error* olderr)' P5 r1 _& [0 V2 T/ b: i8 q5 S% k
- (princ)* @# Q; @4 c) d8 c/ k: m. V0 j
- )
( Z1 _* v% r; [. i( a. l - 9 k. d4 {0 m( c8 F+ Y* s7 v) ^& X
- (defun c:LCC (/ co43 obj23 la23)
* `8 }! N; N; x) B5 s - (setvar "cmdecho" 0)
# u7 k; c% n( T, B8 e, R5 J3 P - (setq co43 (getstring "\nNew color : ")), Q/ `0 o" s0 ?% f1 H) z
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))
* |( f- g1 B6 L) M& g+ O6 F5 ~ - (if obj23 (progn+ y3 N. e6 N- H7 a
- (setq obj23 (entget obj23))' G3 U/ _! l. B" c: r$ q0 ^5 [9 U
- (setq la23 (cdr (assoc 8 obj23)))% d8 ~: }+ p8 G" K4 X* W1 {
- (command "layer" "c" co43 la23 "")6 F0 e+ k' S( K: u
- )
3 J. E3 W) S+ |7 m' m v) y! S - )
* f6 ~- c5 J/ z! M J - (prompt (strcat "\nLayer has changed..." la23))
# Y' A# ?6 s! }5 p: \* Y - (setvar "cmdecho" 1)+ d: H7 Q6 B3 A! a" H4 j* }- u
- (princ)
" ` `2 t6 c" r9 J5 C6 r - )
& P/ S- }% \1 o. J1 y+ U - & ] j. D; q. |5 Q& h' S$ M
- (Defun c:RP (/ a)7 m) f. }" s( s8 S0 o& l& m
- (setq olderr *error* *error* myerror)
' K6 D3 ~+ @. C- {. ?7 K - (setq ocmd (getvar "cmdecho"))( \9 _. T* |0 F/ q; v
- (setq oblp (getvar "blipmode"))' z4 R& z" R( r' w0 t8 f9 Q
- (setvar "cmdecho" 0)
6 Y2 C' _" v9 c: } - (prompt (strcat "\nUSE: Delete object(s) belonging to"- s2 S0 Y. o, K6 I
- " the layer of the entity picked...!"))& t) Q0 r2 R; S6 A* @
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))
# h& q6 T2 T3 o# Q0 x8 T( g9 [% z - (if (/= a nil)7 m- u, ]4 D" b
- (progn (setq a (cdr (assoc 8 (entget (car a )))))7 |0 e# H( \. B( _% }) K+ a# {
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
V; Q- P* h# s3 \0 p: b; i - (prompt "\nNo entity selected!"))
2 Q& A i9 Z$ W* \% ?& N' { - (setvar "cmdecho" ocmd)
& R0 r! [2 B; `7 B" H - (setvar "blipmode" oblp)( N7 U& ]3 b b |1 ?' y
- (setq *error* olderr)
# J3 s% ~0 e% S) [2 w0 a& B - (princ)1 X6 l' L! e8 }- r3 N6 c2 q
- ), M1 m3 O1 f- M% Q. d
7 N* N p4 n% |3 j8 ~) U: ~$ y/ o- (DEFUN C:WL(/ SSET NET SSL M)
$ A, O* A2 Y4 @' f6 u5 [& s - (PRINC "\nSelect lines :")
l! r5 ]2 t; z- h1 Q6 h$ d - (SETQ SSET (SSGET))
# {- Z" s8 n9 @1 Q( [$ _& G8 L- d - (IF (/= NIL SSET) (PROGN1 n- I" _$ h$ K/ x
- (SETQ SSL (SSLENGTH SSET))0 K l: {) i+ i3 v2 g6 P
- (INITGET 4)5 p( H1 N3 r1 o1 W3 G" A
- (SETQ NET (GETREAL "New width : "))
9 H1 I( ~) n7 T h2 ?$ G - (IF (/= NIL NET)% ]) U( ]& Z# ]
- (WHILE (> SSL 0)
' S/ v% P! v. E8 A - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
3 U, H# U0 w: G4 o* ?# k - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") % V7 k8 n. {7 L: Q( V
- (COMMAND "PEDIT" M "Y" "W" NET "")
+ d% L! J, h; ?0 [. s - ) : I1 k P* N" B0 z m: f
- )
/ h! H" S+ g" s5 M# z0 } - )))
8 ^6 |+ w0 J( V% q. ?: i0 ~9 Y7 p - (PRINC)( k/ L+ N0 ~; O8 c+ V, p0 {
- )
+ n6 p/ y7 O) I7 O
, A* a! w2 G* U, b- (defun C:MML (); I, e- W9 e6 S/ F: e
- (princ "\nSelect objects to move to another Layer.")' t; c8 S& W4 k* C; B4 r( ?) r
- (setq ss (ssget))
* h) M4 B7 a6 f. |2 K - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
# i! W, u. h, H6 ?5 x# O. p - (setq counter 0)) e4 }; N3 r L+ ~4 N# V
- (prompt "Moving to layer.....")(princ ul1)
0 r+ e' W6 Y2 e1 j - (setq e (ssname ss counter)), `6 k% Y1 @+ H, [' q5 k8 u
- (setq l (cdr (assoc 8 (entget e))))6 u2 _7 l+ U/ V: F# B
- (setq S (ssget "X" (list (cons 8 l))))
) ?+ t9 @# N/ S, U! E" z - (command "CHANGE" ss "" "P" "LA" UL1 "")! m* q. \! T2 a8 V$ s7 G
- (setq counter (+ counter 1))
& n2 H6 _" b. Q4 Q - (princ)
# l) X3 f4 e3 n' n% s" f. G - ) . g' z W! `9 M5 k: c P
- 1 U' W' |+ E! H" T
- ;;; ================================ GHI CHU ============================
) k( i" b+ z! y+ } - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
3 F! g# \; v2 j" R/ S+ Y" i( x - ;;; =======================Thuong Dung Font Romant.vnh===================
+ d: x( F) M5 P2 \' d* F! ]5 _
! D: G$ [5 {; l3 e- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)0 C1 X* H- t/ ~. h% [8 j
- (setq oer *error* *error* err2)8 |6 ~& z i2 j3 @2 l& h( l' c
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
8 x: V1 \$ I: x& `+ @' @& n4 i W - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
) ?4 m9 U* q: M4 P$ z' J& o - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))
, R+ Z& q8 P1 b) ? v+ Z0 i1 m - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
6 N% `3 s) N7 k6 \. N& J& F. ? - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))% ^6 v Y$ o- ~- r' i- T
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
* f2 N; E/ r, d) z3 O8 \ - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
d, \3 P. P& r5 m/ V, z. O, I - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))+ {; W' m% X; B
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))2 I( C5 [' c2 O" Q6 Z
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))( e' c( I7 @3 G! k
4 G( N8 B& O( {1 g9 k' |- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
2 @) O6 X$ @- ?1 w: V0 Y) q - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))$ L$ }0 \# O, c- z) @& b* ]
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
3 T: H A$ [, f- \& e0 Y6 J - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
' t! q5 A2 z* h- V - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))& H a: A `8 A' X( O" R
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
0 z' g2 p8 J0 I+ r+ ^7 V - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))5 m0 G5 u" J5 {- D& b4 s8 ~
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))+ Q$ X$ w% T+ V8 w5 _
-
8 n8 O+ H C* t' K$ o) _- X: L - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))* I5 ?, M0 i& C8 Z' g! C8 n0 Y7 \
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
7 p$ h# B: E- g2 o: ~" J - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
; d7 O6 D3 V& E' U* e+ z' g, V - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))3 P7 D3 X# h1 M8 @- {
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
9 \9 d. I! o8 F( F& Q3 I. ^$ A - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
+ ~% M, _) }- Z+ H0 g - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
1 s9 W$ ^0 k) ]5 D, }9 W3 N - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))- G: |: u6 @! }$ S
- (setq pta (getpoint8 C8 D% K9 e2 [; s5 [+ O! M
- "\nPick first corner. : "))
5 t* F- g7 J% d; k1 m2 E - (setq ptb (getcorner pta
8 P2 s! x1 y7 h- B) o2 f/ u% s - "\nPick second corner. : "))0 N$ H, u4 s- N( W2 ]
- (setq ptc (list (car ptb)(cadr pta)))
% V) q$ p* [' p+ Z. C - (setq ptd (list (car pta)(cadr ptb)))1 Q; f% U e8 g4 g
- (setq ang (angle pta ptb))5 u$ R6 @% Y/ W/ @' [2 r
- (setq d1 (/(distance pta ptb) 2))
6 }. O2 g- ^1 D3 O3 F - (setq cp (polar pta (- ang (dtr 0)) d1))
2 G" h9 l% y& b/ i - (setq X (distance pta ptc))
. I3 h+ Q m# ?6 | {7 A - (setq Y (distance pta ptd))
7 K* p( a5 c% l1 R1 q) m - (setq X1 (rtos x 2 1))
: G1 t. N+ c* M4 H - (setq Y1 (rtos y 2 1))
% ~0 O+ A5 _4 U# p7 n' W - (setq rmsz (strcat "(" X1 " x " Y1 ")"))) ?+ ^- _% f7 O- r6 ~- s1 f
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
8 I3 t& ]% f# i* { - (defun dtr (angg); I# W! r. l4 T9 F3 W4 G3 }+ g2 T
- (* pi (/ angg 180.0)))5 I5 J" K; P! J
- ; ?7 A$ q% L" W+ q
- (defun c:WS (/ pta ptb rmsz pl1)6 T/ l5 O2 a* M7 g
- (setq oer *error* *error* err2)
' U* i& U, }6 H& g4 C( g - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P)."). k0 @* r" ~5 U$ T
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))& Z# v' I: \+ v2 f* d
0 b/ l5 W, D' V- p+ [- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
/ d2 \- d" O& k$ l3 J+ D! d( S8 k: Q - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))5 x, ~& C8 G+ q* a7 R8 O- r. r, z2 `
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))2 n% M6 b, t; W* V4 o, ^
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
9 ?: t/ _4 i3 L: s9 Y - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))6 a3 g+ f- O; q, K& z' o
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))6 P4 C5 A$ q) J- E% p
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))/ e6 i# Z& C+ _8 q8 {' f. E& @
* Z7 ?: k G7 Q! K5 E; C* i: V- (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"))4 \6 P5 M8 |3 N/ j; R# l/ n! y( ^
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
\0 V1 @. R( t* e9 T0 ]3 r - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))1 J; @& G" L9 U, \; {' c8 v1 e
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
# d3 i3 P$ X1 Y3 p. w$ q - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))# W. s4 t- x k$ F. r
- (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"))& U5 @. F. \. U. P T/ G) J6 g
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))% n: T* c( d0 W% ~
- (setq pta (getpoint% n4 K$ d$ U. U: V# F5 m8 _
- "\nPick first corner. : "))
6 P# U5 \ X# V9 b$ V8 g) E7 f - (setq ptb (getcorner pta) H( i' d4 i8 o: k/ p& G
- "\nPick second corner. : "))
; ^% a9 Z0 }# r( l. c - (setq ptc (list (car ptb)(cadr pta)))
/ l; h3 I# F+ U1 M1 G - (setq ptd (list (car pta)(cadr ptb)))# i% z0 ?& p8 ~# s9 r
- (setq ang (angle pta ptb))
. I0 t) x4 ]/ j& M: o, P, S, s$ { - (setq d1 (/(distance pta ptb) 2)): y+ S ]! b; F0 x# a
- (setq cp (polar pta (- ang (dtr 0)) d1))
6 Q/ T' s# g- l4 _ - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))7 o) H( O7 Y: D1 I7 [: i; U c
- (defun dtr (angg)
# B6 m$ ?% R) _ - (* pi (/ angg 180.0))) r% S+ s" D! Z! S$ o& J' W" Y
- 6 l* }/ \2 o6 [6 x
- ;;; ================================ GHI CHU ============================. K5 r$ l& V" }2 L3 l3 N8 h
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
: h* h: K w4 F4 T- _: O: X - ;;; =======================Thuong Dung Font Romant.vnh===================
6 N# p# E7 H+ m5 e# t
: q/ n* E: m$ ]3 S8 I) o- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)$ X; L2 P* _- ]0 @; @+ c3 o. \
- (setq oer *error* *error* err2)9 D7 b+ m8 N/ n+ _; d& X
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
9 G8 k7 [+ u# l3 b" m9 b0 t/ W6 Y - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))8 f) v# y* ?" P/ v2 d
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))) f P ~" D A% w4 Z
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
) ]7 H3 ?- F& g - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
" E0 g# a% T9 E - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))9 A* w( R0 j% {) o& @
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
q8 S# C. _3 E7 S- M - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
2 Z' }" s4 u) R/ w/ J - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho")), `5 L$ j X9 ?7 S
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))1 S1 E6 ^6 G1 J1 ]
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))* u0 Q6 I& m( I4 U2 G* m1 _& V
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))) b: {* L% R3 L6 f. H6 T
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
2 y9 a- F; c( R# U - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))( ~0 l, ]3 E8 r. m0 z& B
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
2 u/ i( P g' F5 Z G* } - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))/ F6 U% k: K, o/ L% {: u4 Y
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))- i9 F- o" q2 t' d
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
7 z2 ^% U" g5 M4 r7 c* D# V! j - (setq pta (getpoint
7 q8 Z1 m6 ~9 m; N$ A* S. G6 I - "\nPick first corner. : "))
# a. C- I" o" P - (setq ptb (getcorner pta
8 @" s& N, \7 h& j( L7 S - "\nPick second corner. : "))
r; g+ D3 ]: i6 \ - (setq ptc (list (car ptb)(cadr pta)))
4 {' U# f8 A3 b. D6 w - (setq ptd (list (car pta)(cadr ptb)))
. m6 f$ Q+ H4 a, A7 U - (setq ang (angle pta ptb))" c- }) N3 W: Q z
- (setq d1 (/(distance pta ptb) 2))7 m9 q- c5 y) s$ G
- (setq cp (polar pta (- ang (dtr 0)) d1))
- h* O- m3 l* Y) a! V7 g - (setq X (distance pta ptc)), j$ R' M0 h! W- Y( @. K6 h* G4 h
- (setq Y (distance pta ptd))
8 ~0 }1 m# X2 K9 ?5 @9 h" } - (setq X1 (rtos x 2 1))
5 N) x8 F6 l' w# }+ A - (setq Y1 (rtos y 2 1))& l' f6 p* K& l* S8 p& M' V
- (setq rmsz (strcat "(" X1 " x " Y1 ")")) `' t5 z( W0 w0 g; H. X
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
& `: y- U1 a/ y4 L+ G - (defun dtr (angg)2 N% O# x. L2 _( i3 T: u
- (* pi (/ angg 180.0)))& Q) G( `3 F6 o; l* V
. t5 f2 t" z$ A6 O* \, L/ o5 ?- ;;; ================================ GHI CHU ============================
! a6 D/ f0 U0 N - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========/ f* u' ~6 g9 k8 `( ^. T8 k
- ;;; =======================Thuong Dung Font Romant.vnh===================* ]# H: k5 ^8 p: z& b! [" w1 t
1 {- I6 a7 Y- Z) p6 e0 T4 C- (defun c:GS (/ a b c d): q! M1 w+ }; [4 M- ^
- (graphscr)3 G; x5 u T& N) s- Q4 o
- (prompt "\nSelect text to set style....")
4 s9 a' h: h' {7 n T - (setq a (entsel))0 _* k5 M' q9 N; z
- (setq b (entget (car a)))
6 w5 n2 ]( [% C' h) w' X - (setq c (cdr (assoc 7 b)))
9 L% b* a& L3 a: f$ L% {) L - (setq d (cdr (assoc 40 b)))
4 _% L7 V6 n% H8 ^, s - (command "style" c "" d "" "" "" ""))
) X, ?# A3 V4 C+ v* u3 U$ g - (princ "\nType GS to set text style.")% v- ?) K: G5 D3 N A* i
) V: w' R" ?9 e+ f+ e& U- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
) ~0 O% Z9 B: _% c - (setq olderr *error* *error* myerror)4 u" J' e$ W3 e6 y
- (setq ocmd (getvar "cmdecho"))
, h6 _3 g2 s" D) N% ^$ o1 t - (setq oblp (getvar "blipmode"))
5 W: R! l3 U- p& S: o+ Q! P+ p - (setvar "cmdecho" 0)2 r2 e0 a, E7 b$ O0 k3 M
- (initget 1) ;3D point can't be null3 v9 A* c; c, c. P8 Z6 d1 G
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: "))); B; _- P5 u/ e6 P! F1 [0 {8 U
- (setvar "ORTHOMODE" 1)- C7 b' P( m% y: K* X1 [
- (initget 7) ;Length can't be 0, neg, or null3 }( z* [6 q' L
- (Setq l (getdist pt1 "\nLength: "))
; b$ l1 a& i/ n2 C - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
; ^4 f. ~( r/ m/ g6 j/ ~% J - (grdraw pt1 pt2 2)
1 l' Y* V l: @ f% a - (initget 7 "Square") ;Width can't be 0, neg, or null
6 h5 a6 x9 S: v, z - (setq w (getdist pt1 "\nSquare/<Width>: "))) `7 _! M1 M' D0 T8 G! `
- (if (= w "Square")
' p" Q1 _0 {+ S) y - (setq w l)
( m! N! [; i2 ^3 ^ - )
$ m4 Z# l+ j- m' m5 C - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))# v4 G6 H, H0 S& X+ f; u; k
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1))) x. c: C/ a4 J; d
- (grdraw pt2 pt3 2)
8 j4 V% t0 A2 p; u4 {5 C( ] - (grdraw pt3 pt4 2)' `# a# Y5 B( r/ m0 v- v L2 b/ v
- (grdraw pt4 pt1 2)" p/ O7 O; L3 Q7 U- }
- (setvar "ORTHOMODE" 0)$ t7 F* l4 p2 q u% V
- (command "pline" pt1 pt2 pt3 pt4 "close")0 y, k$ F9 U: W/ C, L
- (setvar "cmdecho" ocmd)7 k) I% G8 c" j, z; v
- (setvar "blipmode" oblp)6 y0 x% e: g( i2 B: b$ \% }6 I
- (setq *error* olderr) ; Restore old *error* handler9 B0 r' w: I& h( [" a0 o3 X# w( x. S
- (princ)* e5 x6 ]* X H9 l$ Y; R
- )/ _: U( W. H6 g! e7 K& d4 |
- 6 g7 ~7 ^1 \/ i; q- H
- (defun c:SG (/ ent pt1 pt2 ang)
% Y# Y7 a$ N9 I8 m, g0 ~ f. Z - (setq cmd (getvar "cmdecho"))
) z8 N# C0 h- B, N, {) c - (setvar "cmdecho" 1)
Z0 U N+ M' w( n - (prompt (strcat"\nSnap angle will be set to angle of line"))- n! y* k5 X+ B0 p( X; ~2 {- ]$ x! F
- (setq ent (entget (car (entsel))))
) D- ^) X8 n) A4 D - (setq pt1 (cdr (assoc 10 ent)))/ F8 v8 r* m! h
- (setq pt2 (cdr (assoc 11 ent)))
. e- [# R' M. u- l9 ~5 d k - (setq ang (angle pt1 pt2))& [2 R; ]$ k5 O2 @& I. V. ]
- (setq ang (/ (* ang 180.0) pi))
: w6 ~ _4 R- w& b0 i. f, d6 R - (setvar "cmdecho" 0)
H/ a, n. A% V w8 p - (command "setvar" "snapang" ang)
3 L' q$ p" @$ }6 E9 n. J4 [ - (setvar "cmdecho" cmd)8 x6 n4 W) o: u7 W8 g) ]4 E
- )# V0 O( b7 p' }* f
- m) U* r( c3 h+ L1 W
- (defun C:TG ()
8 u. A) }' V% I8 N# l( a - (initget "Increase New")% `# K- \3 V2 L* n0 j9 ]! e* g
- (setq ans (getkword "Increase/<New>: "))
2 B; S5 b7 c: u5 W* U0 q+ A% Z - (modang)7 h, X! R2 U' w p& G
- )
" f$ [6 C% v. a6 I - (defun modang (/ ang ss ca e na ssl)! a1 J9 j' F) s7 n4 \$ W5 y4 ]4 A
- (if (= ans "Increase")
" o$ t+ n4 H* y1 d% a3 u+ t# J6 X! x - (princ "\nIncrease angle for text by: ")6 a6 f% J6 G5 T- b- B5 K; g( a
- (princ "\nNew angle for text: ")
1 q! B6 q$ ~, w" J, t8 G - )9 v) H# m# ~0 _( G4 M- I) U0 E: e- K9 z
- (setq ang (getreal))- x0 E" O( i0 l3 [
- (setq ang (* (/ ang 180) pi))" a5 _. W7 d& _! s( W
- (setq ss (ssget))
0 ?+ R3 W( o, v* Q; F. }3 L$ ~ - (setq ca 0 ssl (sslength ss))5 P S& e$ d( b
- (while (< ca ssl)
! n$ @, R/ G( y: H# K - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
6 k9 T" p& V* c: C) Q - (progn
, X$ w( x* I( P% _ - (if (= ans "Increase")
/ E) k) z& Z# O3 T9 T0 B2 g - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
. E* Y) _. ?7 \, q# f - (setq na (cons 50 ang))2 D- X ]( R. t( I
- )4 ]. b; V& m; T. i3 W' p5 m
- (setq e (subst na (assoc 50 e) e))$ t- b f, ^1 J( k" C" r1 P
- (entmod e)
( [, |# D: _" _/ D& z6 t - (setq ca (1+ ca))$ _9 K% g$ H. [: v% F7 I
- )
) z6 l* c% i* D, h) A8 Z$ W - )) l+ G( i3 J/ C
- )
. Q- [. l$ q& B5 `6 Y4 S J! `. S) l - (terpri)
3 ^) E" p! F# e8 l" z8 Y - )
+ m& a* H8 F9 k( N" P
* v ?8 H6 h( K' M- ) {2 m+ E/ h1 |: x
- (defun c:WL (); A. j5 `% w6 H& ?
- (setvar "cmdecho" 0)
: s" t& ? m1 e, O0 c% J- n - (setq a 1)
- b" }: S* i3 f/ J5 L) L& s! q - (prompt "\nSelect Polylines to change: ")2 ]$ ~. i4 M+ @( z3 B0 [& g) ]
- (while (/= a nil)$ G+ K. Q6 s( D* y6 z
- (progn
. A/ |& \+ Y) E9 n! W3 F$ ?* f& p - (setq a (entsel))* j3 `+ F: e/ i; |* H" q1 p
- (if (/= a nil)
' n# w, L" y. X2 M2 r/ k - (progn
3 p* }: A. r) Z+ {! \' `/ ?1 o - (setq b (entget (car a)))
# x3 ^4 Z( q9 l1 W, t; ` - (setq c (cdr (assoc 40 b))), Z, ~7 e1 m; n8 q5 }- d% |: I
- (princ c)
2 F* R* ]+ U3 W& {" x v( s - (command "pedit"a"w""lw""")- f1 s1 l9 v/ }' `7 E
- )))) ) ^( n& T; ^+ a8 i, `
- (princ)
, o/ U. l" F* p7 T2 n" D# y( W - )
2 ^; V# j7 W1 W3 z/ @# c+ g - - L6 h$ D% E8 H6 k$ i8 Q; v
- ;;; ================================ TEXT FIT ============================
. A: w7 `' ]1 ]( Y9 e
4 [) C# r& @7 J3 v7 S3 @- (Defun c:FT ( )
, N4 F# S# G/ U& v9 J6 h+ o - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )( P% e W1 |( o9 t# i/ |
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )! W9 `/ m }6 P+ t2 m; e
- (Defun UR-x (arg) (CAADR (TextBox arg)) )3 U+ P+ F9 E6 @. d' j
- (Defun LL-y (arg) (CADAR (TextBox arg)) )
( B9 @8 [! m- f- X1 [1 ]& P - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) ); V* }! E5 _ Q7 A9 E( A ]( ]% i9 z
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )* F) L2 ~9 U# @, I! K
- Textent (If ename (EntGet ename)) ) , b* F1 X) c- A7 W* F9 D$ Z
- (If (= (CDR (Assoc 0 textent)) "TEXT")
: V) q' w' T6 l6 m% n. U" h - (Progn (initget 0 "Start")3 O, p. O, {+ ~9 o; }& i6 @: O
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
8 s# \& m& Y* v4 G# d6 _. [- \ - (setsnapang Textent) ;set snap along text entity
' W/ A6 [2 @. R - (setvar "ORTHOMODE" 1) ;drag along the text" U' j* C J5 N+ k7 U4 \( c, |
- (setq
0 M# N# v! d4 V h3 K/ d - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )5 v& a% s* _1 N$ h% R. l( a
- (setvar "snapang" 0) |6 y$ ?$ l" @& T/ x
- (cond. Z8 S8 o& Y7 y, B
- ((= (type TMP) 'STR) ;;new starting point to be selected: Y7 ^- q$ U. S# [
- (setq Start (getpoint "\nPick new starting point: "))
/ @; O( x7 M7 v( Y - (if Start (progn' `+ h) K' {+ P4 T' C; V
- (command "_UCS" "_E" (cdr (assoc -1 textent)))" T: J6 |5 r" }, J/ J# x
- (setvar "ORTHOMODE" 1)
7 G. N5 x; g/ l3 H }: e4 k - (setq NewPt$ n' _: {8 R$ G# P/ N$ U! H
- (if Start
/ d" G0 q3 f* S2 R6 j8 N8 U - (getpoint (trans Start 0 1) " ending point: ") nil ) )
u7 }' P# O# y: O - (if NewPt (setq NewPt (trans NewPt 1 0)))
/ Y ^% W+ L5 b7 ~ - (setvar "ORTHOMODE" 0)
- b$ j, L/ L1 p; {5 ~7 z - (command "_UCS" "_W") ) ) )+ h- Q9 Q7 G- j" q
- ((not (null TMP)) ;;new ending point selected* k$ b* }+ j5 [ I) H
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
* h0 d. G6 H, D. o( a# k - (t (setq Start nil NewPt nil) ) )1 Q% w3 l, _6 c$ h$ ^# p# n% I
- (if (and Start NewPt) (progn7 _2 N0 x& w9 ?$ u- m8 Y
- (setq Val (Assoc 41 Textent) ;;current width factor
/ d/ @& r' t$ M' f7 q' Y! Z# y - Val (if Val (cdr Val) 1.0) LTC_% / y$ H9 z; q$ f) x" @, J' s2 t
- (* (/ (Distance Start NewPt) NewEnd ) Val ), l: J3 C) ^1 R# S& K
- textent (Subst (cons 41 LTC_%)" @: H& ^3 C" b4 |# \5 b' ?4 g% S/ ?* y+ p
- (assoc 41 textent) textent)
+ Q- K" z8 k6 Z# y& F% \$ U; x - textent (subst (cons 10 Start) (assoc 10 textent) textent)3 E+ u) M" s( u( k
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
+ n6 \; F! Y1 F3 C7 W - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))9 v+ V8 ?: `# H2 E$ N! g9 Y
- 7 g6 w; ~$ }+ I: s' w- v' W( _$ h
- ;=====================================================================
. I0 }! i1 M( K' _7 l; a0 v - ;=========================COPY + ROTATE ==============================
# W9 a$ k' w2 L% y7 P7 q9 d - ;=====================================================================
0 j2 G8 t. `( ?1 p& ~1 t - $ q0 W' }: K5 d. a0 a+ Y
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)$ K3 O" p+ K9 x E5 ^' t& h6 {) U
- (setq olderr *error*
6 e; c! }! W. V& G7 a+ ` - *error* croerr)( f3 K( L# t# X$ a' i7 K9 z
- (setq cm (getvar "cmdecho"))- A$ |# p5 d& M' D n; R4 U
- (setvar "cmdecho" 0)
) p; |7 |6 e7 ]8 S - (setq loop t)
2 X5 ]5 q/ z5 Z* ~# I - (while (not (setq ss1 (ssget)))), R( j, q7 w# p! R' Q
- (initget 1 "Multiple")
% t1 X4 W0 Y. S. q& G. q+ A( c - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
. W1 ~1 ?9 y+ \6 D2 z - (if (= bp "Multiple")2 D1 @: F4 M/ V" Y
- (progn! I+ b+ F' T. Q; n
- (setq bp (getpoint "\nBase point: "))% o8 \' C. T* C1 ^
- (setq mult t)$ u7 p& F) t6 _( H
- )
. m. T3 @" [. K( e1 y$ l6 e - )2 L$ P0 d) L# ^" w1 g' o7 z
- (while loop
7 V8 c) j, ]% L1 u/ |: s - (setq loop mult)9 \; K5 c+ I3 ~9 X) d
- (setq lent (lastent))& [& E" H% X1 d4 [; _
- (command ".copy" ss1 "" bp bp)
! J" n) L \/ g# w) W: X - (setq ss2 (lss lent))! b; W# O! F# j, J. x0 g5 S
- (setq lp1 (getvar "lastpoint"))) J( \4 Z8 J8 z( l; o7 T
- (prompt "\nSecond point of displacement: ") y6 ^* O R1 y$ l
- (command ".move" ss2 "" bp pause)
/ R' B* n9 X1 k5 H, S - (setq lp2 (getvar "lastpoint"))* s1 t5 t$ y& Y8 l
- (redss ss1)1 o! Y) T) V$ B4 a! Z
- (if (and (not mult)0 C p3 [ T6 v, |2 p6 Q1 [
- (= (distance lp1 lp2) 0). L( q) a1 h6 }9 S5 T' |. a
- ) o' P, W7 Y( }2 C% ~- R- T
- (setq lp2 (getpoint "\nRotation Point: "))
0 V1 } ~. U3 ~, [) J - )
2 K ?2 P$ j/ z+ h - (if mult% u7 o6 U# \! M( F9 j& z; o
- (prompt "\nRotation angle ")3 q ^( q; A: _/ O6 G7 z
- (prompt "\nReference/<Rotation angle>: ")
! v% k! _& T( p* g; h! I4 R, D$ X2 Z - )
$ G w8 ~' h8 d$ `4 h - (command ".rotate" ss2 "" lp2 pause)" x! S+ [: z) g: B- ]7 M9 t+ \0 j
- )
: U! d1 P- O: P; z! ^ - (setvar "CMDECHO" cm) H2 Y8 n9 `, E
- (setq *error* olderr)
/ I% q" t$ y+ o! E0 d6 O6 s - (princ)& q/ `+ E1 J( k, {) t
- )
3 Q4 q3 I7 F; ? - (princ)8 e3 f1 \4 I2 n+ w% K1 P* P. G
- (defun croerr (s)
! L' d1 `! U2 x6 ]! S/ J - (if (/= s "Function cancelled") 8 E1 j; F# D, |; P" ?
- (princ (strcat "\nError: " s))
; g: j- k: J6 \ - ) ) N n5 N0 ?3 ]7 s
- (setq S nil)
D# ]" t$ L+ i/ v* W- { - (setvar "CMDECHO" cm) S0 Q0 m1 A. e7 U# D" t
- (setq *error* olderr)
6 B3 w J% K. E1 e - (princ)
8 d$ J3 @0 ]; H$ w7 p* r - )
/ _$ J V6 q5 m9 S& e. l9 `0 R - (defun lastent (/ a b)
5 x4 J, G3 S2 A% N8 n! C - (if (setq a (entlast))
4 }; }8 s9 Z" T - (while (setq b (entnext a))* a, X, y/ n6 {2 I
- (setq a b)
' Z$ s: W ?% q Q% {& i - ), o, V& u; E! ^' s
- )
9 l n/ j. P! `' ^6 ]- k3 Y - a* l# G7 z. J v1 z7 w4 M
- ), g! X# ]3 N# Z
- (defun redss (ss / en i)
' i( Y, U4 ]4 s - (setq i 0)3 [1 s V6 c, A* i. D
- (while (setq en (ssname ss i))
/ L0 I0 A/ e/ X. h+ {1 e- M - (redraw en 1)& G" C4 s& i7 C. k/ Y
- (setq i (1+ i))
. H6 W8 O2 Y5 ^- Q - )+ [$ u, F& o- H8 i. A E
- )
3 u' j9 C: t4 ~7 T! [ - (defun lss (en / sels ed)
, n% Y; h( h, l - (setq sels (ssadd))
) e- a4 b9 }+ P$ U1 [1 _$ `& Q+ X - (while (/= en nil)
" `, L5 `$ H% X6 P9 Y$ z - (if (setq en (entnext en)) (setq ed (entget en))): _# ?6 }9 u* g) c+ y, v! B
- (if (/= en nil) (setq sels (ssadd en sels)))
8 x6 d! B) Z/ k; Y$ Q# j: } - (if (or (= (cdr (assoc 0 ed)) "Polyline")
+ W. f! X- w7 G' N. W, g - (= (cdr (assoc 0 ed)) "Insert"), e( o# N) {* b: o. \
- )
) t6 s" |( J) }% W - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))( E" b; F/ g: u @4 P/ l. R6 M
- ). Y9 F( ? Z' ^3 \$ i6 h9 x
- ): l0 B$ S3 M; b) ?0 d
- sels. U2 J( n q# s$ K$ l: t' ~5 ~7 J
- )3 N- u# _5 n; O2 Q+ ^7 B) p
l1 x# @' V* i1 g. E1 j5 S- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================1 l& X. R! [# ?1 B& Q
7 a5 Y! W! D7 g+ z% I- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))3 A+ q/ Q4 X9 k
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))# Z% t. b; J* _, f
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))+ l/ B5 Q2 J% O0 o, z
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
9 z' o7 |* ?, Z4 [; h, S7 d" } - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
9 o) L; Z5 @( K# R. z9 g - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
F% ^' x5 d" A8 x8 B# M# d/ s - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
7 V9 ~! d& \ c - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
3 S; O. d% q7 c& y4 Y7 f - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))( G: O! H1 h4 `* E
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
$ Z4 c- s' n. g' R5 j - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
" d% d/ i2 w# n O, O p0 C; ~+ m# \/ g( Q - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))* p0 b, ^* f0 R- [' \
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))6 x+ `+ i' S2 r5 o4 y! q
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
" p- u5 ~- x( R o$ n; S, ^* O - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))6 i5 S3 w; v7 L5 i
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" "")), u* E( e& h; Z. Q& T
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))4 |: N9 V* U3 a. C; ^
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
( h$ q) P- T4 l& `1 P( M - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))5 [! \0 ^; Q5 U1 w9 i
- 7 s* x$ z6 U$ n$ n
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============# k9 H! f) I( _
+ [+ H- V& W9 R/ E G/ f- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
; S6 T/ r8 I# b2 u$ k7 u' }3 o5 } - 1 E, Y# O+ i0 @2 ~
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")! ^4 F, n0 t0 y% R& [
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
9 @) i# {% R0 D6 [$ o
& D! `/ {: ?# F: v$ Y- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===; S" h+ J* o# \3 I; O5 ^+ V
- % Q+ j2 n% Q; m
- ;(DEFUN C:netxuatanh ()0 u% @4 E7 E0 y
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
* e, n, V$ ?. k/ T; a) |( F - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""- a1 s. l8 A' a2 v8 m% _: H% v) u! q
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""4 F# L& Z; R' i& q8 M4 }
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
. Q0 {3 f y) `( m7 A; U - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
6 y- n' N8 n/ i' N* G) K - "M" "THAY" "C" "7" "" "Lw" "0.7" ""
# @! P$ _; L$ U" A - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
' ~0 @! a0 b0 @0 i - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""+ E% B) k0 N7 n" i! l
- "M" "COT" "C" "2" "" "Lw" "2" ""
t* d: I! w K& h4 [, K8 U - "M" "Defpoints" "C" "7" ""
+ C1 u( P6 f c$ `/ V% X# @9 U - "M" "0" "C" "3" "" "Lw" "0.5" ""
$ z7 i: B8 a8 `9 d' ?, F - ; "M" "1" "C" "1" "" "Lw" "0.5" ""4 U8 `9 k9 w+ E- h
- ; "M" "2" "C" "31" "" "Lw" "0.5" "": e& B( l8 u' Z% m5 Z) M
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""$ L D3 L; \. T# [; H% [
- ; "M" "4" "C" "4" "" "Lw" "0.8" "" v# c" f3 \" }* O1 t# _) c& I& J
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""; B/ t- Y" p5 g; {/ }
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
& f' a j9 o2 N. q1 \ - ; "M" "8" "C" "8" "" "Lw" "0.35" ""' e/ D6 @6 ~ o6 v$ G: {
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
) K) z4 Z$ E: t - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
4 ?. w4 ^; t" w3 X; x - "M" "KE" "C" "8" "" "Lw" "0.3" ""2 V! ~* A6 U6 i& F3 \( F" Q# e
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
, e) N, C- Q$ B5 x/ E) N! y - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
: y0 R7 m7 t: v* z2 A5 f - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
/ S0 L1 f' Y8 R3 j* F - "M" "TBD" "C" "2" "" "Lw" "0.8" ""% l# E* V$ v* N6 L) e6 q
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
0 }7 U. J' ]4 f! c4 d - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""$ x% \ x/ s" n! G' ]" J
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
* {0 v8 [ r+ o R7 E( E0 t - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
: u. g9 l1 d7 y5 F: m @: I - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
7 ?5 V; E1 Q/ k0 x7 ]% s' x - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""% q: c4 c' ^; q+ V) Y$ y1 }: V: k
- 3 s8 q, D$ L1 \* m
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===8 U' i7 c- Z: \- s
9 d; ?! X2 @+ q' t) Q; f- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
9 B' R- K6 Z+ n) k- L9 d1 m- J) X5 _ - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""1 {! F: V0 ]; D7 x- H% R- x* u
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""# z3 P6 D% }% h8 Y1 h
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""3 x( N; ~; ` u, X& V" }
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
9 X2 K& f R7 D! h - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
7 B& r( ]: j8 S( Y
* a6 C$ t ?% [/ a- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======8 z" ]5 c2 }. R. D& S* _$ E5 B: }
- ;===================================30|04|2024==============================2 U/ y0 p6 h" |7 }' z4 z
- 7 D* T! w: S! `* S3 _+ E- D
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )& z$ E) t( w6 i8 n
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" ): y7 ^6 ^ B$ j6 F6 W
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )! S3 D9 c2 d9 |' |" I7 C" J
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )* N: U" Z; p4 J, G# s7 D" |6 n
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
* z, N& C5 R& }. P) Z5 ~ - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
6 j ^7 o9 M" C2 }5 f! ? - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )- w6 Q( C+ w& P1 h6 S
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
# g0 l2 l3 ?. a. j - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
, x, q1 G$ V7 {. w - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ), o3 _6 t% p6 ]+ n
3 b! E) d6 G7 a8 K {) O- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=) b, q+ A' X/ _$ |- k
- ;===================================17|10|2024===================================7 ~0 b- D& l" C9 J! N7 r3 g% K
- ' `% d5 ]1 I8 t/ K& ?5 e- U h. [+ j
- (Command "DIMTXSTY" "ROMANT-DIM" )/ x) h$ M" F8 X! }
- (Command "DIMBLK" "" "Closed" )
" j/ J: n3 s" h - ) _9 M- ~3 @2 j0 v6 ^0 a: o
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
: ~# Q& r, H: A$ p( g - ;===================================17|10|2024===================================
( ~7 E, c8 S; x3 S' N - 8 p8 W' W. @3 u! y2 Y! q* H( m
- ;(Command "-units" "2" "8" "1" "8" "" "N")& ^$ ~- j. E) r
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)- k1 [# X" `/ `6 Y' {9 e8 A
- # {5 e5 U( h3 U4 i4 \* m3 K
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
9 h; M5 @9 c$ h; J! M# \; a* y1 Y - ;===================================17|10|2024===================================, c: o* |1 @: c$ _ U+ A9 B# Y
- 5 D% d0 e4 \8 ^ c
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
6 {5 c6 D. e1 D- p6 i8 h
% A6 H, P- a% c- ;======================== DAT NET IN & TI LE BAN VE =============================6 K, t0 n/ \2 w. `
- % M, r; z" p7 G6 b, `1 [6 M/ x
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================( r( u# H( P5 c# G( b- C5 D
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
, J- g! S4 L& V8 Y+ } - ;=============================11|07|2025==============================
: v6 n, ^. T6 L b) T3 F/ o8 A) I - ;Ti Le Ban Ve - 1 : 1001 M0 t, ] G% Z: d( L5 N
- (Defun c:kta4 ()! s8 @: k% `# X" T( h
- (setq mv_sc 100);Ti le ban ve
E- l% l8 O: Q - (setq x4 297)
' _! B) V$ b0 ^, I# A - (setq y4 210)
8 V9 t; C0 w' p7 I! l# r - (setq x4 (* mv_sc x4)
( d2 g1 W ?0 v) R) @( ] - y4 (* mv_sc y4) )
! U+ y @( B" p6 z/ k5 B3 f2 C5 m - (command
( w' G8 D6 ^$ f/ j1 e/ S - "LIMITS" "0,0" (list x4 y4)2 D# O: @7 D/ x2 N% w$ l
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
* d0 g" r" ~- x' C+ ~' v, j4 \ - ;Khung CHU NHAT Chinh
' |& c4 K0 W& ^% @# z3 G - "RECTANG" "500,500" "@28700,20000"
& m0 t E) {3 i# M - "RECTANG" "700,700" "@28300,19600"
6 N4 d- P5 m% g+ r6 @) F - ;Khung Ten Chung
! y+ O. j# }1 l- [7 v- Y( ?; I K - "RECTANG" "700,700" "@8000,1250"8 Z' q7 Q q8 [( ?% B _$ `
- "RECTANG" "700,700" "@17300,2500"( S8 ~5 M3 z- W- a+ y
- ;Ten Ban Ve
. P c9 U7 F9 r6 q9 ~- C - "RECTANG" "18000,700" "@11000,1250"
' J4 T( C& T3 w1 Y - "RECTANG" "18000,700" "@11000,2500"
. Y: M! d C; Z - ;Khung Ti Le + Ngay Thang Nam
' I5 F2 n3 O, F - "RECTANG" "22500,700" "@2000,2500"7 H, n8 P6 n0 K+ \- k
- ;Khung CHU TRI
; f# u. P3 d2 X9 w: ?. { - "RECTANG" "8700,700" "@3800,2500"
' K, t) T$ Y" E O$ m: f) s* J8 [ - "ZOOM" "_a" ))
! `' A2 S7 `7 H+ o' K; R- X - ;=====================================================================! E1 L' z1 z- h9 {, f+ N' }! m4 w! o: z7 t
- ;Ti Le Ban Ve - 1 : 100
* |7 W' e5 J( F- u - (Defun c:kt4a ()
9 k) _( K9 a% X - (setq mv_sc 100);Ti le ban ve1 r1 f; ~4 S7 B! W @
- (setq x4 297)
, }7 T# o3 [0 w7 k$ p# r; I* o - (setq y4 210)
/ P. m$ r) t% n _& N( V+ R - (setq x4 (* mv_sc x4)
7 E: ?- i6 k+ h D - y4 (* mv_sc y4) )
9 N( f9 q1 C( \8 Y. M/ w1 B: s - (command 0 Z8 s! Y5 \( b6 i8 c7 J
- "LIMITS" "0,0" (list x4 y4) B3 T5 H( H' |9 D0 l7 p
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C" J5 p; |- F; m; L( d! r
- ;Khung CHU NHAT Chinh " s9 [8 G6 E" q y" U
- "RECTANG" "2000,500" "@27200,20000"7 S# Q+ r2 h$ q& l) p) H/ [
- "RECTANG" "2200,700" "@26800,19600"% b- Q9 E- t- l
- ;Khung Ten Chung
2 t+ D4 o& k# D" U+ v! w - "RECTANG" "2200,700" "@6500,1250"$ T* C5 u& E1 V: W0 A% D& s
- "RECTANG" "2200,700" "@15800,2500", M8 I- X" T6 k" W1 }; Y& ?
- ;Ten Ban Ve
7 T+ j' ?$ e0 }8 S) Z - "RECTANG" "18000,700" "@11000,1250"
# o7 K; D8 b% i; S$ y) v% W - "RECTANG" "18000,700" "@11000,2500"" \$ |1 J$ F9 M+ ]7 K" x F0 C
- ;Khung Ti Le + Ngay Thang Nam
+ S2 |* G; C) s! @% `3 C: x. q( E - "RECTANG" "22500,700" "@2000,2500"* r7 ~2 _- U6 K" p2 f
- ;Khung CHU TRI
4 r$ k' ^7 g* V, U - "RECTANG" "8700,700" "@3800,2500"0 k% y- s, \8 p% F3 p
- "ZOOM" "_a" ))
4 N5 n: Z2 M0 e. ~. w: d2 |9 E* `% ~1 I - . L- p5 F- Q% ]
- ;;; ============================GHI CHU Khung Ten========================
o0 H+ E) z+ p2 q2 A - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
. S! p5 T5 v- w2 u; M7 [ - ;;; =======================Thuong Dung Font Romant.vnh===================
/ d0 T/ n1 n6 X; w) ]- O9 O - 7 Y# p) l& N5 d/ ]( [
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
u" H2 b: S% h/ Q s& ?6 e - (setq oer *error* *error* err2)5 H- k0 V. m1 G1 O! |# [. a& a& }
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")' o2 b! V5 v- U- ~3 A
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
) V4 t) e0 V9 U& N - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
2 y( i9 b; h' e+ k - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))" y* X) Q* A& h b5 d. u; g
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
% }7 W" f9 o4 c$ P% a$ V - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))% X& y3 Z' |" X
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
+ A0 \1 j9 @( g* M: ? - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
5 ~) M3 ?* O' \( t. X* Y - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
. r6 K" N, J7 d: M. v/ y! L - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))" W, e- J i! y4 }
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))' B0 }/ k( d: j9 ^2 O/ W
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))+ d" E* K5 M4 P* Y5 M7 D! d: F/ _' T
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
4 `2 W! m3 T b$ L - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
: A9 R4 w& I" G1 K% s3 S4 |4 x - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
I2 S: U# `0 z) P/ \( }) y - (setq pta (getpoint
) z, ~* d5 W& W+ j c* ?; J. g - "\nPick first corner. : "))
. F0 J3 T! X8 M7 B - (setq ptb (getcorner pta% T3 G2 P( a, ], J7 u4 i6 r. Z
- "\nPick second corner. : "))$ w- J1 K- e4 m6 [5 M1 S( `
- (setq ptc (list (car ptb)(cadr pta)))
9 j9 T6 r. i" w9 \/ ?# q# s& u - (setq ptd (list (car pta)(cadr ptb)))
6 g. {5 h* M4 J - (setq ang (angle pta ptb)): r8 Q5 c' u! S- v
- (setq d1 (/(distance pta ptb) 2))! ^" c7 w# a) q# W$ s# }
- (setq cp (polar pta (- ang (dtr 0)) d1))/ y% ^ k: e# B$ t) w& ~
- (setq X (distance pta ptc))- p! O% i0 v) T* k/ J) e
- (setq Y (distance pta ptd))
4 N( a! g* N1 ?$ `4 l2 ^9 a - (setq X1 (rtos x 2 1))% P% K; m5 v% C6 l K
- (setq Y1 (rtos y 2 1))
+ H# g+ d: J9 s - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
3 l( J5 G* h4 V! l2 B p - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
2 g( C$ u, C7 z; r ^- A$ M5 U - (defun dtr (angg)
. b4 a8 t% m) U8 v, V - (* pi (/ angg 180.0))) p/ n0 K5 G5 ?8 c+ f: q
% h7 r' N3 y- {( ]% C# F- ;=====================================================================- z% H8 q( {% M) o' k: J' v' U+ t9 h
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
$ k7 c: V" z& S9 M - ;=====================================================================
* ^. C* Z# t$ [" w# A
4 d0 u. X: ^9 E1 w! ]' u3 h- (Defun c:a6 ()6 @* t4 D- \6 U4 b: y
- (setq mv_sc 100);Ti le ban ve2 q3 N1 x1 P" {) G% G, `
- (setq x4 74.25)
2 G. o3 o- ~( |% h6 u5 V4 h% e - (setq y4 52.5)
. u4 \: u( C; I4 P' ~* \# O1 _ - (setq x4 (* mv_sc x4) $ b$ o( }4 T# Q) D+ G# D
- y4 (* mv_sc y4) )2 {$ T4 [$ P0 Q7 n
- (command ; d0 e0 u0 Y* M* x
- "LIMITS" "0,0" (list x4 y4)9 P& t# Z v7 m
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C" W5 O* W- C0 A8 y
- "RECTANG" "125,125" "@7175,5000", N0 [7 H, V' P0 r3 i
- "RECTANG" "175,175" "@7075,4900"
; ^) H, F! {, A - "ZOOM" "_a" ))
1 t# S& z: a" g5 L - ;=====================================================================' B6 ^0 h! _* T" u7 K9 _1 L
- (Defun c:a5 ()3 i& m) I1 q+ [. L& W- y4 _8 f
- (setq mv_sc 100);Ti le ban ve# t% `: B, u( `9 A# a0 V
- (setq x4 147.5)
6 N: v3 W# M' v# P; a4 I' L - (setq y4 104)2 ]4 M. g% w. v# S
- (setq x4 (* mv_sc x4) ' q8 k/ {6 e* N: x% V, U
- y4 (* mv_sc y4) )3 }5 J* P4 [' k; o* O- ?) E
- (command
9 `9 z' T% j/ a! o& F9 { - "LIMITS" "0,0" (list x4 y4)) F; ~' z! n! J1 A, G! K/ `3 R
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
$ s6 j p3 n. x! |: ` - "RECTANG" "250,250" "@14350,10000"
0 g+ q B- m9 r+ _$ r2 m3 u/ ~ - "RECTANG" "350,350" "@14150,9800"$ s. N6 Z7 ?, v, z
- "ZOOM" "_a" ))/ z# s- ^! j0 r' U
- ;=====================================================================
- U& }/ K9 j8 \2 ~6 I: s* ] - (Defun c:a4 ()) j. i) r) j8 `( L' t }0 z; K O
- (setq mv_sc 100);Ti le ban ve1 M+ h/ D5 r- H; l: b0 ?
- (setq x4 297)3 [- F, Z, e5 A7 Q
- (setq y4 210); U" v7 R& U& t& e
- (setq x4 (* mv_sc x4)
' N8 [! C: `' Z/ T - y4 (* mv_sc y4) )
: a+ v: |; x4 g- M' V% n - (command 1 m2 H* d% e9 A6 R. r9 ~7 Q
- "LIMITS" "0,0" (list x4 y4)3 |5 W S( l* V! v$ G1 j2 S
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"9 {, T1 Y9 m2 W) E- {+ c6 ~
- "RECTANG" "500,500" "@28700,20000"" Q4 t4 @- N7 h2 v4 [" s! B [ |
- "RECTANG" "700,700" "@28300,19600"% l( a/ ]. N& `) @# |' w
- "ZOOM" "_a" ))
; O1 I5 Z; U0 w v - ;=====================================================================% a' n5 R4 c( E
- (Defun c:a3 ()
4 f' b8 H7 y2 ?$ p) J# {1 K% | - (setq mv_sc 100)8 j' j, P1 _$ r4 ~/ l3 d7 J
- (setq x3 420)
$ B( G2 t2 g! [- T - (setq y3 297)4 Z. O# v; \% v6 P* P
- (setq x3 (* mv_sc x3)
0 ^* R4 c0 P/ u3 W/ Y2 d - y3 (* mv_sc y3) )2 Q2 y; ~8 ?1 d; Y3 x. r0 D
- (command
" }9 |! U* g6 y+ c( V7 e' R: M( a - "LIMITS" "0,0" (list x3 y3)% i/ B# X6 n- g
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"' D B- F7 k9 D9 J6 P6 H' ?: w' Q2 H
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
4 `( x1 s# K- _1 D0 [" t - "RECTANG" "990,990" "@40024.28571429,27720", ~% s- F5 @4 G
- "ZOOM" "_a" ))8 b. o% i7 }+ u) i9 O U
- ;=====================================================================
/ z; x: j8 {. O3 o& C4 S - (Defun c:a2 ()
" {( Z" K, I$ I; |1 S- X - (setq mv_sc 100)- x9 W0 q9 k% h6 \
- (setq x2 594)% @! `5 D9 r5 S! k" x. r* }+ d
- (setq y2 420)$ o( B2 ]0 k5 ]6 `( D1 ^. }
- (setq x2 (* mv_sc x2)
5 M: f- w3 p) q1 f; W - y2 (* mv_sc y2) )
3 J3 O/ ]0 Z4 P/ B$ U A - (command + M; o6 w0 {- k# ]! I
- "LIMITS" "0,0" (list x2 y2)" y+ O" a$ j) [, ?( o( M: n2 g8 a _
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
2 p& @* l: r: k8 u( J \. T - "RECTANG" "1000,1000" "@57400,40000"0 W2 G( l# t p$ z: @, K' `% N" m
- "RECTANG" "1400,1400" "@56600,39200"
, Z5 |9 G/ U) J7 t - "ZOOM" "_a" ))
+ a: e0 N2 ~9 u7 u9 T2 A; x( b - ;=====================================================================
& ?, K& E2 j+ E9 s6 Z - (Defun c:a1 ()
3 M9 _' o% T% B5 s* U7 ~. E& v - (setq mv_sc 100)5 S$ e/ }: i; b/ E
- (setq x1 840)5 ?. m; ~& }) c* T: x! a* g g
- (setq y1 594)
+ g& V/ K3 L. n+ _ - (setq x1 (* mv_sc x1)
8 d9 j0 @6 A9 P! E - y1 (* mv_sc y1) ); u5 \) |" ^( o% {9 V
- (command
7 S$ d/ T+ b: A+ N, b7 _8 H - "LIMITS" "0,0" (list x1 y1)
! u/ r, x4 u* w: T* e - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
' t( o, [0 R0 B9 v" u8 D1 C* \4 x - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
" j! P# }. N1 I ] - "RECTANG" "1980,1980" "@80048.57142857,55440"; t) Q% [0 J$ g* M( u; [" L2 r
- "ZOOM" "_a" ))" V" x$ y! P! E _4 t) ?. u
- ;=====================================================================
0 \$ U: k9 r4 l; E) p- ~2 M6 ]- g - (Defun c:a0 ()
$ f* Q5 q- {9 c3 } - (setq mv_sc 100)
% I6 u4 r( t+ ^* C, ~* n - (setq x0 1188)5 f5 m' I5 ~8 z+ {/ Q
- (setq y0 840) m; E4 P8 a3 |: ]' q7 B
- (setq x0 (* mv_sc x0)
4 |( l& }- q; h. | - y0 (* mv_sc y0) )) o9 B2 ?- G2 G: Q" ?
- (command
q" N8 w- r' Q% ?( S+ ` - "LIMITS" "0,0" (list x0 y0)
, _( K) ], Q1 j& @( ^- B - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"8 N$ T A' l" ~) Z
- "RECTANG" "2000,2000" "@114800,80000"# s: ~* z0 E+ B# {
- "RECTANG" "2800,2800" "@113200,78400"! q0 q6 ^# E2 x/ y* K. C7 ^
- "ZOOM" "_a" ))
' E6 l7 N' K. R! S. T l- _3 _$ q - / ?9 R) X' p" j2 v1 U3 I/ J
- ;=====================================================================
8 n1 S5 F3 W$ y2 Z$ U1 t6 Q1 T - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================; K' ~- s# l% y
- ;=====================================================================& k( `2 B @0 R/ ^" }. D
- $ c6 V; a( t8 ^* F; D4 ^0 c) W3 u# C
- (Defun c:6a (), ~! |. p& }. d6 r8 I+ M
- (setq mv_sc 100);Ti le ban ve3 l' j. a( X, ^( [* d5 h$ |! V
- (setq x4 74.25)
! f* S1 O1 y: \+ Z% e* E - (setq y4 52.5)
8 q# ^7 K4 j) \7 Q r2 U( Z - (setq x4 (* mv_sc x4)
0 A3 {# Q9 E6 ?. Q: u# ^6 Z4 A - y4 (* mv_sc y4) )
% T( d% M- M! ? - (command 4 N& _! y. G( J1 g& S
- "LIMITS" "0,0" (list x4 y4), Z! U( J7 _9 m: k$ {1 p
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"/ p3 M1 H+ D( K W! ]" X
- "RECTANG" "505,125" "@6800,5000"6 S( g/ E P; G) D* {* F
- "RECTANG" "555,175" "@6700,4900"
$ ?: N `# ~+ Y2 O3 x' \ - "ZOOM" "_a" ))
6 U4 }6 V8 y. X' ~& i) k. m - ;=====================================================================5 x. `% v- f0 H9 n% A( T9 O+ o
- (Defun c:5a ()% y8 m% i7 v# e/ U# Z9 K
- (setq mv_sc 100);Ti le ban ve( M% V; w5 x5 G# P- U
- (setq x4 148.5)
# }2 \ E* Y* M4 x - (setq y4 105)
* y2 f! z$ C* t* k - (setq x4 (* mv_sc x4) + Y9 u& c- F5 f; h3 X
- y4 (* mv_sc y4) )7 X" O/ B' B* @& [ K/ ^( l/ ~
- (command
" d0 j* q/ J( ? Z+ Y( C7 n8 E - "LIMITS" "0,0" (list x4 y4)
* h# E/ U' }# n- F e - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"+ O2 j! Y4 p+ ^' [- i
- "RECTANG" "1000,250" "@13600,10000"
3 L1 G3 C8 j" Y* V/ P( z - "RECTANG" "1100,350" "@13400,9800"
% E# R5 H3 P, G7 r - "ZOOM" "_a" ))+ U- j8 D2 D5 E9 `4 ]3 u
- ;=====================================================================3 l L; v. V% d/ l7 ^; |
- (Defun c:4a ()
; `* N: ^( f- b, o( Q* V8 v3 b( x - (setq mv_sc 100);Ti le ban ve* j: C7 W2 j- G$ f% ~. L: r
- (setq x4 297)) E, d) W. ^0 y& R" S; \( b
- (setq y4 210)
* v E5 Y; [! S$ ], k - (setq x4 (* mv_sc x4) 4 ~. f: n8 J6 M1 ]6 U0 F( m
- y4 (* mv_sc y4) )
/ M* _/ u s( n0 C% I! x7 ~0 T/ B - (command ' J6 I$ s1 S* i" w) @* X2 B+ _
- "LIMITS" "0,0" (list x4 y4)
, g7 D7 l! i) F# i - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% L& q0 e1 q7 G5 J. @4 A% N* L
- "RECTANG" "2000,500" "@27200,20000"
# j! h% D; f0 ]* j g+ j - "RECTANG" "2200,700" "@26800,19600"
1 _6 u6 n1 W& Y3 h$ w* b, u4 q, f% S - "ZOOM" "_a" ))% G, F* p) }# \8 j% Q- @$ w
- ;=====================================================================
! t% S! g7 w( b# Z' d, q; b - (Defun c:3a ()
8 t/ f( ]% ?: Y% m6 t" p( q+ b( g - (setq mv_sc 100)
1 @+ C0 g& t6 ]8 M - (setq x3 420.0428571429)' |! }$ J& F+ K1 P8 x* d6 S& k
- (setq y3 297)/ ]0 a+ U1 b9 d1 V5 b) Z7 H5 _5 O
- (setq x3 (* mv_sc x3) 1 Z2 [# V+ T$ x$ ]7 I; _' g* W
- y3 (* mv_sc y3) )
$ _ V9 e" H! K* @- `* {- ~ - (command
0 K0 ~8 }+ R. C( s1 J! |, d7 [ - "LIMITS" "0,0" (list x3 y3)
; P! L. f( m- \$ S* W' q6 h - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C". {9 G9 J( U- E0 b! h6 `
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"+ F9 k, U6 b" d6 z2 V
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"$ r: [ Z% D4 Z n- a) e& y
- "ZOOM" "_a" )): O6 k& z- o2 E7 t5 I. }
- ;=====================================================================1 q- L/ c1 u5 s, H X5 c4 o
- (Defun c:2a (). f. k, Q6 c" W$ @: J: w
- (setq mv_sc 100)+ B7 H+ Q$ B. q0 v7 _
- (setq x2 594)
( ?3 s, X5 i) T/ J - (setq y2 420)
' L3 d( y5 {) C - (setq x2 (* mv_sc x2) / h6 I# @. d; n D) ~
- y2 (* mv_sc y2) )
' P3 s( g3 _2 w2 X, v* u3 }2 ` - (command
g" d" A: b4 t( ~3 i6 w. i - "LIMITS" "0,0" (list x2 y2)
: w* `+ Q% G4 }& Q5 a7 x7 o! l8 T; ]2 t - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"0 o" k' K& X9 F
- "RECTANG" "4000,1000" "@54400,40000": I/ n( n' M- n! z H1 b0 x
- "RECTANG" "4400,1400" "@53600,39200"
1 u7 L; [. O" S& m- r) [: R* q - "ZOOM" "_a" ))6 q1 ], N, F2 M4 Q) D) P
- ;=====================================================================
7 B! u" m" b* ^5 X5 |. s - (Defun c:1a ()& ]3 u# b% N$ K! q$ h o
- (setq mv_sc 100)4 b/ s* w% j6 D/ l8 U! |& b
- (setq x1 840.0857142857)
/ {1 N M( Z& O - (setq y1 594)( @: f! R& L1 v; [" u& g" e) T# C' |
- (setq x1 (* mv_sc x1)
a* S9 i2 A* i3 W$ M& m T - y1 (* mv_sc y1) )9 b# L6 O8 O3 p# L- C2 q
- (command
, R9 m: N' a0 w - "LIMITS" "0,0" (list x1 y1): a" U2 u$ i( Q! b. T' ~5 B' q& S( P
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"; h4 p: U( \$ E& Y3 A! ]
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
! m" K$ W8 \4 c" Y4 ?4 x+ f - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"$ G( N: f O, P! @& A, L
- "ZOOM" "_a" ))
. C9 ^% a+ n" S( D8 I - ;=====================================================================7 n2 Q8 F& ?& V" G) o; `* |
- (Defun c:0a ()
% f1 }9 Y0 C0 A1 i - (setq mv_sc 100)
F& S3 q: k$ J6 B6 \& K - (setq x0 1188)$ ^5 k3 ]5 V: |/ [
- (setq y0 840)
f* E r) Q6 b9 p3 ~( U - (setq x0 (* mv_sc x0)
9 R# ?5 R; b) |+ z4 H - y0 (* mv_sc y0) )* z( h: |) b3 @5 s Y E0 d, h
- (command # [. _7 \- i; r0 x' S8 n, m8 K
- "LIMITS" "0,0" (list x0 y0)
3 y! P2 D2 @% i+ ?! R6 O; _ - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
- H. C2 C9 b0 U. p, R$ X; h% b; x - "RECTANG" "8000,2000" "@108800,80000"
* A4 s6 m ^2 A1 Y a- G4 x) Q, M& g - "RECTANG" "8800,2800" "@107200,78400"
2 N M# r% e) V/ J& A - "ZOOM" "_a" ))8 M* p9 F( T- S' ~
d; P$ B) E Z6 b5 S+ ?1 P- ;=====================================================================+ s% ~/ w, Z2 E' T) q
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
/ B0 b. Y8 \8 r5 u4 K N% I - ;=====================================================================
# \! k( {6 ?4 j0 W8 x7 q( A {) j - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)# ^1 {: e1 Q- a6 V
- (command "undo" "be")
) j& N1 a( K( \0 X$ T( [& X - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
8 C5 c. o' Y) v' _$ j( H - (setvar "CMDECHO" 0)7 v1 D$ @' d' m2 B$ {
- (setq a (getpoint "\n chon diem chen :"))- P" f6 P3 Z" A) e$ d% V$ G Q
- (if (not TL) (setq TL 1.00))
" b0 s! a+ Z/ w% `3 z H - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
& I6 L: ]' Z; T* ~. e6 D# n6 T# D$ R - (if TL1 (setq TL TL1))
+ o; o( c7 C3 L, @ - (setvar "osmode" 0)
2 z3 y$ e/ C1 C - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))' i' w" i# F0 S
- (initget "0 1 2 3 4")
6 g: w6 w0 V. ?8 ~ - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
" g: ~5 E, ]! n6 m5 A0 |8 d - (if (= kho "0")3 t' D5 m1 Q. v" P% h
- (progn
6 u* A ], Q) [. y, t2 e, U: L! O - (setq b (polar a 0 (* TL 1189)))" Y' _$ e! K! E/ Y' V
- (setq c (polar b (/ pi 2) (* TL 841)))
+ q" `* R, B; P, } - (setq d (polar a (/ pi 2) (* TL 841)))) a' `( v6 S" h$ v3 e6 [
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
' {8 [9 k3 e! f3 X9 r - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
& U8 E7 o/ L5 W+ o( t - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
3 V6 M( ?+ O0 X5 H - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
5 T2 L( F$ \( D+ |* f - (command "Pline" e f g h "c") ! `8 ~) E. b4 C& ^& w0 @
- (command "change" "last" "" "properties" "layer" "0" "")
; |- g8 c4 P" Q# U - (setvar "cecolor" "4")% e1 u+ ^( K% K7 U
- (command "Pline" a b c d "c")4 ~3 w5 W) \4 I! z7 r3 M I3 v
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
! v+ @; X0 D! m$ s - (if (= kho "1"), \6 V4 r$ c+ R
- (progn
3 Q$ L9 Q; [7 h" s7 e; U# i - (setq b (polar a 0 (* TL 841)))
/ j) r4 C# E7 v' E+ W0 f- g- h2 A - (setq c (polar b (/ pi 2) (* TL 594)))
% F4 j# j# `+ o/ {7 Q - (setq d (polar a (/ pi 2) (* TL 594)))
* n% \3 Z2 \+ m - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))3 b* n: [$ Z; C+ A, b! M4 _
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))
2 a8 N( ?$ I' x - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))6 ?# ^9 J- n' Z8 s' A3 [! T
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
' k5 d3 o; I& w! {( h+ h6 _) v: a - (command "Pline" e f g h "c") 4 h) Q! m6 a% x1 ^3 i5 c9 n
- (command "change" "last" "" "properties" "layer" "0" "")5 K6 u8 a- k p. j
- (setvar "cecolor" "4")2 ~" r: [6 ]/ {) \: w: p2 w4 m: M
- (command "Pline" a b c d "c")
7 i8 k' K) S7 ]/ t0 p z, c0 W - (command "change" "last" "" "properties" "layer" "defpoints" "")))
$ `3 h3 |5 Y7 \ N. l( S o - (if (= kho "2")
* A/ P) o) ^9 p& d- C - (progn
+ l4 Z3 Q# {; X - (setq b (polar a 0 (* TL 594)))
9 q/ _+ y, y f - (setq c (polar b (/ pi 2) (* TL 420)))9 F" U* {" S! X$ H1 [
- (setq d (polar a (/ pi 2) (* TL 420)))3 t2 D4 u, C0 k* @7 H
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))) R1 ?- a6 n9 ` X I) b4 P
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))
9 W) _8 [/ [8 t, }5 Q' e - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
S( r, _$ q8 @0 Y& j - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
8 o3 M: |9 {. A: n' [0 P+ M - (command "Pline" e f g h "c") G- Y8 \ g, Y0 L a$ D9 Z) D& {# r- v
- (command "change" "last" "" "properties" "layer" "0" "")9 r2 H8 g6 S( K: o X
- (setvar "cecolor" "4")
" |2 \- E7 \1 s. N - (command "Pline" a b c d "c")/ h! c* |2 K& i) R* e
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
4 x& V+ F( @ w; i3 Z3 B3 D - (if (= kho "3")
$ k/ |" l( J; r, g2 H0 F7 V - (progn) P/ z: _2 b* |" v
- (setq b (polar a 0 (* tl 420)))( a7 o$ e$ K# n4 Q3 D9 ` k' a
- (setq c (polar b (/ pi 2) (* TL 297)))* I; ]' P6 `4 w O7 l3 R
- (setq d (polar a (/ pi 2) (* TL 297)))
/ S6 F7 E* x) j0 ^% a( p! I5 @6 t - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))). T1 s: @. O0 R( D
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
3 u5 R9 k& X5 w4 ^) x# O - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
# i" g2 {8 {+ y W# B! e5 o/ d - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))# ~2 q9 o+ h# g9 ~# G
- (command "Pline" e f g h "c"); b3 `& r2 J& P
- (command "change" "last" "" "properties" "layer" "0" "")
3 w2 }% d7 P( S6 j - (setvar "cecolor" "4"): b) }# ]; [+ W8 U' y1 R, F* f
- (command "Pline" a b c d "c")" [* ^$ D! c7 Z a- P/ }2 K3 N, `
- (command "change" "last" "" "properties" "layer" "defpoints" "")))/ ~! b$ ~/ o; K& _" c
- (if (= kho "4")' E" S2 T2 ^, J3 o: J
- (progn
' | V/ |8 e; e: E- M! t+ t' o - (setq b (polar a 0 (* TL 297)))' \: |# g4 y3 A, H6 {) e1 y ~
- (setq c (polar b (/ pi 2) (* TL 210)))7 u: g' H; E+ x+ f# B$ l) a( I
- (setq d (polar a (/ pi 2) (* TL 210))); r2 M3 F# P, d' }" Q
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))+ e- z# e% s; [5 Q# G1 h
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
' g( \7 h: A5 U$ e - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
0 e/ F5 Q6 Q* G* C8 ^ - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
: p+ v( G# |# D% g+ m# `- o - (command "Pline" e f g h "c") 6 N7 z; B7 _3 L2 N2 K9 s: X: a2 k3 A
- (command "change" "last" "" "properties" "layer" "0" "")
4 R+ v$ d2 X6 L d2 S - (setvar "cecolor" "4")7 w6 S% c( a3 k2 G( z* x
- (command "Pline" a b c d "c")) {% y+ ?5 @- n1 @
- (command "change" "last" "" "properties" "layer" "defpoints" ""))): a9 f& V! c* z6 l8 [
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)% I1 ~! D* T4 ^8 N5 ]0 w: c. `
- (command "undo" "e")
0 Y3 } v5 I% r - (princ))
7 Y; `7 ]' L8 W$ _( `- j* J3 F - ;=====================================================================
c9 R, D' J4 `5 v' r( r, N - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
* b2 H+ `- z& A/ V6 Y6 r - ;=====================================================================. g0 \4 U1 v- V& B# o8 D: E
- * R+ I: a6 b; a+ m) z; R$ v, q
- ;=====================================================================/ E9 F" D$ s. C* ^# C- V4 x
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================1 K( r* `% K6 f5 q
- ;=====================================================================( [% c. W' M! m+ n3 {& q
/ X* l( c! ` m( k. S! l6 v0 r1 y- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""9 E/ i4 r* F: E+ e+ w5 ?
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
2 c; R6 B2 T" O& S) L0 U - "M" "MANH" "C" "9" "" "Lw" "0.1" ""* ^- e3 ^7 b5 L3 m& ?0 G
- "M" "TEXT" "C" "7" "" "Lw" "0.12" "": v- n/ C' _& Z, I/ n; d
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
, o, d( u2 r$ R; p - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
: j- t$ R, D8 E" L% e - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
5 f3 w+ ?4 \$ I: m - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
& |' v6 J9 O7 f& J4 o - "M" "COT" "C" "1" "" "Lw" "0.3" ""0 _# k- ~2 I7 k- Y
- "M" "Defpoints" "C" "7" "": w- K6 N+ u" G; {) S9 q( j
- "M" "0" "C" "3" "" "Lw" "0.12" ""( H0 k$ q% | k7 H0 d
- "M" "CUA" "C" "6" "" "Lw" "0.12" "". p' `" Z$ Q' p& E6 @
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
# E/ c0 \3 V* B9 w8 W - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
! C5 k" t0 b( Q# B h - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" "") z- x- y3 G0 D% b" ^, ^/ y; N$ |
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""& I) V) D5 A, h
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""/ [; i2 `% B/ J
- "M" "TEXT" "C" "7" "" "Lw" "0.12" """ S" A4 [, J7 I& }# k4 ^
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""4 N$ u( z, k* B* S
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""0 I- n' t$ p4 ~7 M
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""0 |- Q% }5 t. \
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
8 T. ~; D1 v* f) Q/ M# l0 i - "M" "COT" "C" "1" "" "Lw" "0.4" ""
9 u" l) }6 _3 m8 U0 R; g+ G) J - "M" "Defpoints" "C" "7" ""
: B: {6 s+ z( i9 ~$ r* H9 e, o& a - "M" "0" "C" "3" "" "Lw" "0.2" ""
5 E4 P# D' v6 O4 V. c( | - "M" "CUA" "C" "6" "" "Lw" "0.12" ""% a0 q& z. ~3 c
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""7 B6 Y( V# |$ `/ X
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))% C$ Q2 W* o, u3 G
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" """ h" M1 k" X: ~9 T1 a4 W
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""3 ^$ ?9 ~, p, V8 ?% l+ ]
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""- A% d' C9 {. `/ ^/ `, [9 ?3 y
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
! p3 U- J; d" P; S. \ - "M" "DIM" "C" "1" "" "Lw" "0.25" ""& r. V% L. Z" ~ P9 u
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
( B- }# A; J5 V# d5 L- z5 m$ u( f - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""- A, S7 p1 c J `3 j
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""8 I# Z; S1 k1 _7 ?$ H2 h/ |2 W# m! S, F
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
$ z" [' t( O5 F. W - "M" "Defpoints" "C" "7" ""2 h+ p7 o0 ]) ~6 e L2 ]6 T
- "M" "0" "C" "3" "" "Lw" "0.25" ""3 p7 Q( ^3 O2 N! b- V5 e; J& {! J
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
' \* P. O# M* s; Z7 z8 Z- J - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
& B5 h! m$ y. O9 p. F - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
7 z$ g* `' t. E' I Z - ; q2 x) b% D) a) r
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""* ]. q( ~+ q( J' ^' L
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
& r& U" s. V6 h5 A# n - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
0 a, T5 {6 F1 U7 y9 v* H9 } - "M" "TEXT" "C" "7" "" "Lw" "0.2" "", ~' X' F1 e2 `' G1 S: ?
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
( w# _; c. q# R E - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
( p2 D! U& L( P# Y' s - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""3 ? G( `' l( L3 l& p% l! u+ @# j
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
& T; h" V3 A7 W8 h2 d! L - "M" "COT" "C" "1" "" "Lw" "0.7" "" ^+ U+ @2 R, ]
- "M" "Defpoints" "C" "7" ""4 h# z, Q4 e: w/ j' ~3 S5 d, z d! Z
- "M" "0" "C" "3" "" "Lw" "0.25" ""
5 _3 ~& e- d3 @# b4 y - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
: t; y- F/ x2 Y' `/ B+ J" s - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""3 T/ |; W# z- R8 U1 X$ Z. N
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
: {0 ]) c2 Z1 }. b f! w - L, l. b& ^, m' {
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" """ J2 v- G0 e: U. }. Z5 D0 d
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
% {/ z$ |" |4 q5 J8 e( R - "M" "MANH" "C" "9" "" "Lw" "0.25" "") _2 j9 n! u d' I
- "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
8 N5 H2 \5 K u% j5 s. r - "M" "DIM" "C" "1" "" "Lw" "0.3" ""6 b/ J I7 H: V; Z3 I9 n
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""% [ W7 D+ Z* R
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""* ^" T8 G. x- h" P
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
9 [; U( D! D4 C- v8 u d: P - "M" "COT" "C" "1" "" "Lw" "0.7" ""
, C( c) {, X# d! p4 e( ?. D; z - "M" "Defpoints" "C" "7" ""7 g4 u( S: w) `6 l; O- ~
- "M" "0" "C" "3" "" "Lw" "0.35" ""
2 g1 l; r8 n4 z) \0 n - "M" "CUA" "C" "6" "" "Lw" "0.35" ""; f) c. D" P3 ~4 o$ k
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
- G/ a; e1 R r) y6 Q+ p - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))( [* L# G* t$ k# J7 \7 f' P
- 8 X$ }' X$ f+ G; A% \: y8 c" N
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" "". z1 E% a/ B+ [% Y3 v. d4 R
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""% R4 K5 a1 L) s% E
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
8 H" a0 y `8 K- g! Q2 [ - "M" "TEXT" "C" "7" "" "Lw" "0.5" "": X8 U! q4 i y# {3 m4 U
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
9 D, s& E f" B0 v1 B3 P$ m - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
' R2 e* [; S$ ~- [ J/ ^1 f4 B! ] - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""9 B" ^) [8 r. B! s
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
) S5 r. w6 _; f - "M" "COT" "C" "1" "" "Lw" "0.85" ""2 ]% Z1 c( h5 i/ _1 \( V: e7 g1 z4 B
- "M" "Defpoints" "C" "7" ""
6 T: J! W4 k3 p% |* O! H - "M" "0" "C" "3" "" "Lw" "0.35" ""
1 z1 C8 L4 }& x - "M" "CUA" "C" "6" "" "Lw" "0.4" ""6 W8 V9 Y. R9 Y
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
" @2 F Y* V7 Y; j, j - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))* G# M/ ^1 H' y3 D) ?7 F. i
-
! S1 |' Z) z- }/ A5 Q+ { - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
5 V/ \$ \" q y: Y7 H - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" "", W3 [ p- w: l% O+ z5 ]7 \
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
/ ?3 |0 B. T! _7 W - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
( s d5 a5 h2 j' P: i2 @# r - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
* h h6 S! B) b- N! c9 O6 H - "M" "THAY" "C" "7" "" "Lw" "0.5" ""5 v# s( I/ D5 Z
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""6 V/ x& H! _5 j7 \
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
8 [2 n9 ^1 B1 H# L& u2 ] - "M" "COT" "C" "1" "" "Lw" "0.1" ""
) X3 s& t: `0 O, ] m& O1 E @ - "M" "Defpoints" "C" "7" ""
. B3 Q& c" w E3 D, o( D; H - "M" "0" "C" "3" "" "Lw" "0.5" ""
' @ R# \8 V" V) F; G [ - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
* A% O- W, Z+ g' d* h* q# H - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""( ~% I" _1 V0 x! z% G
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
# n* ^0 t7 h3 b( K1 y - (DEFUN C:O () (COMMAND "OFFSET"))2 e" Y& T, B" \6 Y! A
- (defun c:s1 () (command "surftab1"))' Z4 T' D; y* i7 m: r
- (defun c:s2 () (command "surftab2"))0 D2 }1 a' U0 n. e6 _
- (defun c:ep () (command "explode"))
( M4 O, M9 U. z1 A& |9 n3 g - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
) U9 O- L/ d9 A - (DEFUN C:QV () (COMMAND "QSAVE"))
# N' n) c- Z- C - (DEFUN C:S () (COMMAND "STRETCH" "C"))
* K& X3 r" m, E$ v5 W, r( C - + l, b9 X* z) C! b6 @1 A
- ;************************** CAT DIM **************************# U H$ L8 t) j: p- Y
- 2 r# I9 P: Q. \- X7 V( g( a/ v# m
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I5 m' \" Y. L, |$ g8 c
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)* L5 p {. @/ a: y$ F9 ]
- (SETQ CMD (GETVAR "CMDECHO"))
# j6 N3 S8 b2 N& K d% u; | - (SETQ OSM (GETVAR "OSMODE"))/ y; g4 l C4 O3 _& v- a
- (SETQ OLDERR *error*; b. A' o" E5 Z0 ]
- *error* myerror)
7 h$ g- i7 z. ^; ? t2 e - (PRINC "Please select dimension object!")
6 ?6 O8 j5 E4 {5 F - (SETQ SS (SSGET))
! t: f- k$ F6 e2 v: S; i - (SETVAR "CMDECHO" 0); x8 m6 F& S1 q& N' `! g+ Q! [& m
- (SETQ PT (GETPOINT "Point to trim or extend:"))
9 l0 z5 b9 P, V - (SETQ PT (TRANS PT 1 0))
3 D6 E( A% q8 g) y+ p - (COMMAND "UCS" "W")
; r9 I+ H9 @! l' p! |/ A7 ~- i - (SETQ LTH (SSLENGTH SS))
( w7 L; i$ K7 m2 Q! ~9 a& R - (SETQ DEM 0)
9 z8 _5 P5 O1 ^- ~7 J% c - (WHILE (< DEM LTH)* {$ N3 p2 S( N/ O
- (PROGN# u" l5 c+ w8 m' t% |, }
- (SETQ DS (ENTGET (SSNAME SS DEM)))* F, O% z) D6 e. W
- (SETQ KDL (CDR (ASSOC 0 DS)))2 U2 ?1 f9 Y; v# V/ r
- (IF (= "DIMENSION" KDL)
. {' j7 u& L" S - (PROGN2 Y, J5 z; F7 k1 F
- (SETQ PT10 (CDR (ASSOC 10 DS))), r3 |! T/ ^1 f* m5 J0 B- y$ a
- (SETQ PT11 (CDR (ASSOC 11 DS)))
: X1 j" e& l7 Y5 F. e - (SETQ PT13 (CDR (ASSOC 13 DS)))
- s/ W. l8 L q - (SETQ PT14 (CDR (ASSOC 14 DS)))
* N3 O1 a, N/ d5 s% T% i - (SETQ N70 (CDR (ASSOC 70 DS))); U' P4 C. u5 T& m' m# i
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))* U+ T& U4 w8 s4 Q" w# q
- (PROGN- U. b9 }: N' ]4 p) p
- (SETQ GOCY (ANGLE PT10 PT14))
% |: q7 \- d5 D! `. D3 W - (SETQ GOCX (+ GOCY (/ PI 2)))
5 G! m& y8 p2 a2 V8 i% l - )
2 w% C& ]5 Y! R8 o - )
- H' j/ z9 i0 ^; f - (SETVAR "OSMODE" 0)
0 d; V c% o$ }& U8 k/ ] - (SETQ PTI (POLAR PT GOCX 2))% ], h7 P8 ?( J
- (SETQ PT13I (POLAR PT13 GOCY 2))
+ Z0 m( a' T* c: m* C8 r - (SETQ PT14I (POLAR PT14 GOCY 2))
" C% l) n r. [# v+ @ { - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))! C/ E3 a7 K: S: V
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL)): f: [7 _, r; l
- (SETQ O13 (ASSOC 13 DS))9 A9 ?" p' C1 D/ [
- (SETQ O14 (ASSOC 14 DS))- J5 @, K6 n- Y/ X
- (SETQ N13 (CONS 13 PT13N))& C" v7 G# D' ]$ y+ b2 P6 _
- (SETQ N14 (CONS 14 PT14N))5 X" k* j: b9 _- ~
- (SETQ DS (SUBST N13 O13 DS))- R% d( u& \3 a( q1 U9 H9 Z" W! c
- (SETQ DS (SUBST N14 O14 DS))
/ e3 ?% O; }. p - (ENTMOD DS)9 ~$ u, v0 q' s
- ): O8 M. `7 P; a) h# M* b7 }
- )
5 O+ N" x6 Y- H2 p4 W - (SETQ DEM (+ DEM 1))
& h1 B, d$ a* C( O/ ] - ) V; i. o% W, t! w6 p" S
- )
0 U2 F: L; E6 \2 V5 g - (COMMAND "UCS" "P")
# I: \2 [" d, |9 J8 B; d+ T" U2 ?5 I - (SETVAR "CMDECHO" CMD)
' N& D$ Y# \3 H7 w! [& K - (SETVAR "OSMODE" OSM)% q; C: J5 \- t/ E5 h- Z9 d
- (setq *error* OLDERR) ; Restore old *error* handler2 ]2 d8 G6 w- M3 R5 \8 H
- (PRINC)% n" H4 }* h2 M" n& {5 [/ G* d5 R+ o& t
- )
5 p0 T. r" t: }* v
" V4 n9 I3 G% f1 P/ H( @) ]- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
* A$ l- p. K$ {6 v0 K4 [6 x+ B - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
; M5 I4 L) V& | - (SETQ CMD (GETVAR "CMDECHO"))
: ] P" v2 Q& M8 h2 s - (SETQ OSM (GETVAR "OSMODE")), f1 {( p. P4 b0 B5 d% P o* H
- (SETQ OLDERR *error*' o4 g6 z$ C* L' ]' q. l# }
- *error* myerror)3 y# k- j, v( r# [6 L
- (PRINC "Please select dimension object!")
: ], |. C# w- y+ d - (SETQ SS (SSGET))$ E' O' M- n+ e4 E# Z
- (SETVAR "CMDECHO" 0)
, L$ z( f3 Z3 E( b u8 c) Y - (SETQ PT (GETPOINT "Point to trim or extend:")); o# d$ Y5 [% d
- (SETQ PT (TRANS PT 1 0))
& Y7 S3 O3 @5 e: Y! x: y - (COMMAND "UCS" "W")
! M( F) y" l- M" A8 N( O9 O - (SETQ LTH (SSLENGTH SS))( @; D( O0 c7 z" Y
- (SETQ DEM 0)& H* d! |6 I4 f8 \1 {9 w" e+ h, i. s R
- (WHILE (< DEM LTH)
* T$ `: P% m) p; L+ @1 B% ]9 e% v - (PROGN8 K* S4 O- k3 ~6 Z; A
- (SETQ DS (ENTGET (SSNAME SS DEM)))
: P9 ]* F5 |9 o$ {: \ - (SETQ KDL (CDR (ASSOC 0 DS)))8 \$ d9 r/ A( f) D; E
- (IF (= "DIMENSION" KDL)& ^! A6 ?; X8 Q2 c5 ~6 h! G' D
- (PROGN
/ P& `2 Z* J9 j. r* f9 I - (SETQ PT13 (CDR (ASSOC 13 DS)))
: O2 r) Z9 n& S9 q7 j. l - (SETQ PT14 (CDR (ASSOC 14 DS)))+ ?$ U. i/ p9 W* x# L
- (SETQ PT10 (CDR (ASSOC 10 DS)))- d9 y1 _! F1 G& ]
- (SETQ PT11 (CDR (ASSOC 11 DS)))
; s1 S6 q% X5 j3 U, c - (SETQ N70 (CDR (ASSOC 70 DS)))* s; G3 {, h) L1 Z
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
& [! d) f1 N7 v - (PROGN' U& O. X9 ]4 k( @) M0 i
- (SETQ GOCY (ANGLE PT10 PT14))
" F+ v2 [* x \ - (SETQ GOCX (+ GOCY (/ PI 2))) n G! [5 K8 F# B0 |( g3 w
- )
( ?8 W8 |" b) O. m, h0 q - )5 _+ H' J& _5 y$ @) v
- (SETVAR "OSMODE" 0)( E0 K# e" Q% S
- (SETQ PTI (POLAR PT GOCX 2))9 L2 w. |! k+ O; }+ I# T5 R6 i
- (SETQ PT10I (POLAR PT10 GOCY 2))
% W' h* ?$ @! M9 y) a C; v - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))# |5 h. F: R! f$ u' C" @/ v" x
- (SETQ KC (DISTANCE PT10 PT10N)). g/ J/ y! [6 Z1 L+ a/ Z
- (SETQ O10 (ASSOC 10 DS))& F# p) p0 m* D; k1 B
- (SETQ N10 (CONS 10 PT10N))( y( K# o7 G f9 p
- (SETQ DS (SUBST N10 O10 DS))6 h* u5 n9 ]3 C6 M( j2 D: W
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
9 F! t. @0 K" K( y - (SETQ O11 (ASSOC 11 DS))1 D. M* `7 n! Y. f6 u6 D' S
- (SETQ N11 (CONS 11 PT11N))4 r6 x5 e* p: U& ]
- (SETQ DS (SUBST N11 O11 DS))6 u: ?& \$ K; b9 [3 b( |3 n
- (ENTMOD DS)
& O! V- H `7 h) l9 [7 [ - )( [4 V8 Y6 ~0 S" ^
- )
, P: z ^/ M ?4 p7 Y - (SETQ DEM (+ DEM 1))/ W* u. ^! E* s; Q6 g8 W" t
- )
& T) Z. K- X& O+ p' O8 i5 Z - )
- J0 t# r/ z5 J% X - (COMMAND "UCS" "P")' h3 ]/ ~' W2 T) {% S4 ]# [
- (SETVAR "CMDECHO" CMD)/ A4 V5 G% f% |+ r/ Q1 Q% s
- (SETVAR "OSMODE" OSM)# }, P5 @1 Z- C- S: b9 P* r
- (setq *error* OLDERR)
. k1 K) f5 X1 [% ]$ R5 c - (PRINC)
- t7 T3 x8 E$ B/ P2 o$ b- ~ - )
, _ q. ] U/ G# E y
: m, a, [* [+ N2 e, `1 J! L o- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
% A% L# s* \' C5 t5 ^
1 a# n# c5 c( W* w- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan "): I) d9 `' F; M4 p9 z
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
: o* l1 G+ z* m! f0 I - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
2 F* o9 H8 ^- M" t. Q4 P. z& L - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
& L- d }! N9 V6 v - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")0 S7 A) v: S1 R- W
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
8 x& l9 c4 [- E. p# J, k2 i% j - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))5 _' A' m* x, _& |' p
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))# I4 y& e9 O+ {; @* t" y9 ?! G, s
' x) n2 ]" N' D9 Z8 ~- ;;; ================ CHEN COT (TUU) =================
( y% b6 ]3 M; C) z4 h
$ C! i: ^5 Q" A- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")5 f& C& {9 p8 d4 d
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
$ [5 A" m' j/ v' K; @0 B - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
& R- r* l" A. T) H. _ t4 | - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
0 b4 q w( _5 y a" R - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")* s+ x) t! A, \- N& }
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))! g8 T7 a y! c% q, S2 l* v
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))6 C8 |" `3 |* c0 {3 S( \7 G
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))+ w7 e7 \/ a) ^6 Z2 v
- $ e9 v* }! t9 c+ c
- ;;; ================ CHEN KY HIEU THEP (TP) =================3 e) D! \' ]0 s: i
) ~& ^7 r2 @3 M" g; Y- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
1 r3 Y- I$ a" Z7 W; b* E/ h - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
0 N) s# ?6 y1 H+ M' K: A9 q# H - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
$ @, L2 s, p, z; i+ h - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
# [- l+ `) b$ ?, i* n8 o - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")# H' ~ a5 h5 @8 \; j- ^
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
5 q. J7 E9 A9 u6 l' g. W9 t - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))0 B% r, I6 R+ r
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))# i7 b% z, r+ }
# G+ P, Q( }) N# ^3 V1 F! e5 u1 d- ;=========================== TAM TUONG (TAM) =================================
8 [7 X Y. p" [! k - ( E3 V0 k) {" e9 S4 U
- (defun c:tam(/ data_m)
1 `" j( J( u% r3 [5 r" @ - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0)): l" ^* W2 D6 |6 x1 `1 {
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
5 G; x" q/ d0 Z V0 V: Y9 H- @6 p - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)6 L2 U. ^) U6 F
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset R* e/ o! e: E; b, p% F
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr$ W8 Z% }# R1 D' w7 i
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)3 b* l6 K6 F3 w2 E; I
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
% x$ f2 l" V# P3 P0 w" C - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)% B# c/ [1 z! P( a! j; W1 k! N
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
/ z: K( Q+ m' x: Z! R; H) E - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
+ Q2 H' e# a0 e; b2 x" k' h' K - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<3 _5 c6 \, ~" ]) @: k+ C; |# X# m
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
) ~# s: D- r z4 x) J - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
6 T, i2 _9 s$ F# y$ ?9 ` - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4; A7 Q1 C! A8 N9 {
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not7 A. C# T+ T0 q' J% @
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
6 D3 P- A% _! c; z; _/ R - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))/ ^- c0 i# z+ L& S y
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))1 E8 a' M3 I: S9 r" a9 L9 j
- 9 A1 I1 J: z0 v0 p
- ;============ GHI CHU PHI (T1) ================/ _3 H9 p4 T9 p# I' B
+ U- r: n. i! y& ^9 y( Q9 ~- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))7 A4 Y! U0 m& \' v/ U
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
2 r; X4 L- h- e8 Q7 t& v5 B+ o - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
: j; }7 ~; I, i/ y- b" |/ b( D - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)4 u# M% P4 N2 `1 I2 r2 H/ L. e
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
. _, y/ g* d# |0 d/ S' L: \ I/ a - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)) `7 N4 T8 l8 w$ F: o
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)& V; M7 C' F0 e+ U( m; I* [( @
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 ). B& e& l& v" o" ]6 u
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")! S+ [9 E/ } z$ L- c# N! \6 N
- (command "ddedit" pause))
% u j' D. k7 H8 x- _ x - ! Z R, F. v- O" p
- ;;; ========================== Join (J) =================
8 N% I E$ W8 w# K. f5 L8 M - ; x; q8 y8 x# s/ i6 r
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))% }$ l! D$ d: ~# t; W ^1 z
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
4 l) {5 Z. j: Z' O. K1 G - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
. r- o K! j% P+ B0 w - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")5 b2 w: W N$ `9 X+ l; }% I, a- O
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))) A% _2 I& m) Y' Z/ d* o
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
; q0 I/ v l3 d9 F! N5 l - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) G: g: V: }$ u
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))& t) d# }% H; l" {! T
- (setq *error* m:err m:err nil)(princ))4 H& a. f J. B7 {4 i& i( u1 U
- 7 E2 m5 {5 T# m9 y: t
- ;=====================================================================
, B, J! x! G$ N, e' X9 g' S - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.6 p: C: u' e& `4 F/ [4 z
- ;=====================================================================
Q ?$ _; X4 W3 \
8 T! ?2 D" P' D, \# {3 y$ w- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
3 f2 ^4 v7 e& ^ - (setq old (getvar "OSMODE"))
) ~/ u* @- }1 [) ]& I: B$ f @7 t - ; Y" k: [$ ^/ Q: a+ [
- (setq p1 (getpoint "\nStart point:"))
, a1 E' N- m( g2 k i9 z - (setq p2 (getpoint p1 "\nEnd point:"))
$ M1 V8 v$ z, i6 k/ o2 ^5 q - (setq side (getpoint p2 "\nOpen side"))* ^' j0 l, u$ C1 r5 P# j7 i
2 F& M# o M' ?% V" }- (setq dis (distance p1 p2))$ H3 i! u, m) F2 q
- (setq ang (angle p1 p2))
- C, D) d3 p8 o. Q - (if (< ang (angle p1 side))
) E% X! c1 R. j! ]( K" H N4 n - (setq angside (/ pi 2) )
% L' K* }7 ~' K- B3 v - (setq angside (- (/ pi 2)))3 e. q N! v9 d" `$ B
- )0 O0 m, C, W) Y
- (if (>= (- (angle p1 side) ang) pi)
* R. g, _/ b2 ^! u. U- [. s" @: n R - (setq angside (- (/ pi 2)))/ \6 U4 W9 E: v. h) ]* ]. g0 G6 x( X
- )
# q8 U) l J2 I* t Y% Q' U - (if (>= (- ANG (angle p1 side) ) pi)4 g# @& _, }" b+ q
- (setq angside (/ pi 2)) g2 _ M" r3 [9 h j* g. J- F4 N! i
- )2 }0 i! V3 T& C W$ k
+ F7 @: M/ B/ a$ [/ b- (setq p3 (polar p2 (+ ang angside) dis) )0 J8 D" w0 A F3 f! f) \
- (setq p4 (polar p1 (+ ang angside) dis) )
5 x* ^& l2 _* v* p$ M - (setq wid (/ dis 15))
+ n) P/ N: g% y. N' V4 P
6 z% \6 g& `* n4 c v4 i6 Y- ~- (setvar "OSMODE" 0)# P* B( [9 t/ f9 v8 l
# [# Z2 b2 a% l# C4 L- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
* F* s* T { s6 r8 ] - (polar p2 (+ ang pi) wid)
: b, {8 x8 [' x3 `0 V% M - (polar p3 (+ ang pi) wid) & [% P( F: q, v% Y% r# ^
- "")
/ h! J" m8 C9 O9 d# E
! e. g8 h6 S2 B$ A! {8 `0 Z; v( j- (setvar "OSMODE" old)4 l5 K( W! ?, a5 |& |: z- G
- (princ); ? w$ R: H" H2 d `; W
- )7 F( X- \2 i% l5 n2 c: n% T( W: S
5 [) \6 ~' `, L. ~1 d/ v8 w- ;=====================================================================$ R8 j3 Y3 T; ]3 X
' ?' @' ?9 `9 e9 Y# [. x! N& x* R; b- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old), @/ P; h9 p \8 C% J' C
- (defun cua1 (pt1 pt2)- D- u. m7 J3 k( Q- f
- (setq p1 pt10 _' a% a2 O9 H+ [9 |6 \" I
- p2 pt2)
- x1 l- X U2 X+ o+ g
- U; O# ]9 g, ~! i/ q, @- (setq ang (angle p1 p2))
6 B9 ?* G/ R0 v+ y g# D5 S - (if (< ang (angle p1 side))6 F4 j$ V- ^/ [
- (setq angside (/ pi 2) )
9 u: t" H% h6 v - (setq angside (- (/ pi 2)))) W' F- ]) n( c( j
- )
; m- W& `1 K0 e& g3 A" g$ Y - (if (>= (- (angle p1 side) ang) pi)7 {1 Q, } ]; i5 c# e
- (setq angside (- (/ pi 2)))
* r3 b+ [! _* x' j8 h/ h0 n - )* K3 \$ W6 @2 c2 z% W- {/ P
- (if (>= (- ANG (angle p1 side) ) pi)
( \/ z& V' ]* T7 t4 ?2 j6 T - (setq angside (/ pi 2))
# w* _ k3 K5 s! v( K/ A - )2 T' _& e" T) }8 j
- ! c- K% R2 B; z6 ?
- (setq p3 (polar p2 (+ ang angside) dis) )
, F# r' M4 W( F# X, A - (setq p4 (polar p1 (+ ang angside) dis) )& B2 I) y; L: @* I+ B* K
- (setq wid (/ dis 15))* r7 l! u1 b1 s8 O7 w" c7 G' \
- * Q2 f8 y+ _ _+ q4 o) t) E- C7 D8 t
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
9 [8 @; x/ U- p; o6 ?, z - (polar p2 (+ ang pi) wid)
9 H; D* U; u# q) M: i; ^ - (polar p3 (+ ang pi) wid)
1 I& y; b+ b1 s" ~" b y$ e - "")
( ?8 q) \1 N* ?" k4 n - ): y) Y0 C! X( b$ l9 z: a3 G7 m
- ;===================================================================== C5 I$ P6 b* A9 s
- (setq old (getvar "OSMODE"))
; h/ d" c0 f( P% x" P2 s - $ l# C3 r" U4 u
- (setq p1 (getpoint "\nStart point:"))
- j' s, z9 N6 t5 i, i - (setq p2 (getpoint p1 "\nEnd point:"))) a) H& ^$ j( |& n S6 X
- (setq side (getpoint p2 "\nOpen side"))
6 g7 ^2 n8 j5 h0 M# E( b - ; J, G0 h6 n8 B0 X$ \$ j5 W
- (setq dis (distance p1 p2))
+ }/ p( e4 ~7 h: c - (setq dis (/ dis 2))2 V3 ]5 K4 a% \! D* h9 A' k
- 3 t3 @$ t u# X
- (setvar "OSMODE" 0)
/ q" J3 G5 a( Y9 D- t" ~3 k
Y+ e, X5 e% L( G* o% C/ L- (setq p1 (polar p1 (angle p1 p2) dis))( w; W/ b$ R V/ j! D
- (cua1 p1 p2) & k- T2 a$ I/ U* L6 R' \, t
+ s* f) m' g9 Q/ K% n) G/ ?- U- (setq ang (+ ang pi))
) G0 K( P7 `1 M/ \- v- j - (setq p2 (polar p1 ang dis))6 F9 R8 y; E( R% S2 E1 G
- ; (setq side (polar p1 () dis))
$ D4 g2 m$ C, I7 \9 W5 Z; l - (cua1 p1 p2) O% w4 v7 [; Y3 q+ \
- 8 L) r/ y) _2 f# f
- (setvar "OSMODE" old)" @2 f% J5 X3 ^( F3 }
- (princ)/ u- r( {& u* J- y0 M
- )4 O& T$ {9 h. x- x, D5 Q
- ( y1 z- J- n8 u% o, m
- ;=====================================================================# T, m- @+ n6 |7 T2 A" F
- ;"Glue" text strings. All adopt first's properties./ h, C" y' z# c7 H5 w
- ; Author:: W6 a' W6 g8 T) F N4 i
- ; Henry C. Francis) \; r9 n6 J# H' y$ C+ B
- ; 425 N. Ashe St.
# [6 r: @* P$ _ - ; Southern Pines, NC 28387- W. R0 P4 ]1 t$ Z: Z1 P) w6 U6 x
- ; http://www.pinehurst.net/~pfrancis
4 v* V& V+ f/ ^. ~ - ; e-mail hfrancis@pinehurst.net" F3 A( c7 b+ D# k8 |
- ; All rights reserved.7 }8 l4 X! L% Z. U/ Q
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
$ X# R: r1 }- p6 V - (while4 W& W8 s. D" u, R1 N* o. Y
- (not2 E z: S% p& e& O
- (and! r% j' r$ t* \# b( q
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))
3 A0 Q2 s8 N3 _, W% p L - (setq ent1 (entget ename1))+ ^7 E2 B2 ^5 e# k3 x' q- k# c
- (eq(cdr(assoc 0 ent1))"TEXT")
( t2 i' E* g# {1 C5 J6 ]& k - );and
4 y8 \: [$ ]( V+ }' O$ \ - );not* t2 J6 a- x( _# j
- );while" L( _" r. A! _6 L5 r1 M$ H0 D0 {
- (setq old1 (cdr(assoc 1 ent1)))6 C* y7 B* g/ g+ g4 V8 C3 |% c; G
- (while
* w9 V! x/ I! r - (not
- R* k# ~0 z& n' b( i9 U - (and4 |/ g x. A3 [; H& q! L( @
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))
- I7 N/ Z' Q1 I1 C" R; x D Z& } - (setq ent2 (entget ename2))9 Y5 r. D( }) }1 H4 {# ` k
- (eq(cdr(assoc 0 ent2))"TEXT")
1 I1 [! p$ `# L, Q - (not(eq ename1 ename2))
9 c) ~5 r" ~6 ^0 _! x. R( ~) `( | - );and; e# a2 B8 A& f! Z0 _; m
- );not
/ d1 F1 w1 r0 x - );while
3 Z+ Q! _3 `6 p. N$ T6 Q+ Y - (setq old2 (cdr(assoc 1 ent2)))
' I' h& u _2 p7 [ - (setq new1 (strcat old1 " " old2)
! k K3 T. m+ `* m, H - ent1
E0 @) W# P0 b2 c4 U# C - (subst (cons 1 new1); W& G& c# ^" A9 q
- (assoc 1 ent1)4 X% U' D* N8 O6 V2 |
- ent1)
2 R9 ]3 ]: ^3 T4 k' d* @7 s2 i3 {+ v - );setq( e/ h* J, ~/ |+ M6 {
- (entmod ent1). E ~ ^8 L8 ?" @, ?
- (entdel ename2)
& F* m/ p4 ^2 c, q - (princ)
1 o" B$ X, S5 e `! X9 R - );defun* V: `% V5 S5 n3 r3 C: R
& W# v1 U! w! o2 ?6 N- ;=====================================================================1 V' R @4 Y$ i6 C8 W. R1 X- Y
4 E: I. p1 p6 b7 X9 w- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)7 c* N' {( f1 P' |
' S5 r9 I% [3 l5 k/ u5 v- (defun nterr (s)
0 [5 W2 S% l y( \% L - (command "_.UCS" "" "_.UNDO" "E")
4 L3 j* p2 e% a; o4 M4 e& Y% l; Y - (setvar "cmdecho" 1)
4 c1 [2 c! ?& G: i4 v1 e$ E - (setvar "blipmode" 0)' D3 {0 M/ |- s4 ~
- (setq *error* olderr)
% K8 p5 y) S( P: q( s - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil 0 z7 g) n5 E) ~; _! B5 b* l, u5 D
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
. ^& n5 V, Z$ l6 i4 ~ - (princ)" @7 w0 f, I* Y4 y8 s7 G
- )$ c/ e) s3 k1 Q) l. K( v
L, q- d8 N( n- (defun tim_in (dt / p01 p02 ktra)" y; j* U+ j2 W1 x# ^- v% ]
- (setq p01 (cdr (assoc 10 (entget dt))))4 c u+ \3 Y1 f: [: x& l$ J
- (setq p02 (cdr (assoc 11 (entget dt))))
7 V4 E7 C5 d, O1 M, L* \, Z - (setq ktra T)8 ]% K3 A4 [, y
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
) ]# q. s# v$ c' a7 q - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
3 P8 R; i9 o4 o# O1 q p2 V% M Q - (setq ktra nil)
- j! {) R# W0 a. E0 [ - )# j+ W) z. f" J& p% P7 F* X3 a
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) # o# i) Y Z; [5 M
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))1 }! n5 Q5 T" z* `( v1 q8 s; a# D
- (setq ktra nil)
0 A3 O/ ~' _% z! ^& D# Y& l* j+ ] - )$ g( D- \4 e3 ]: B: ]- N" a+ l; b! m
- ktra
+ t- N, Y+ f* i, B) G3 n6 A4 k2 V. q - )
9 M8 D9 n- P4 i# T6 w - ! U6 W0 z! S0 L/ G5 L
- (defun timdt (dt1 dt2 / p01 p02)
1 I4 f9 U8 T& ~4 U* c- P* {" ~ - (setq p01 (cdr (assoc 10 (entget dt2))))
0 b/ |- A4 Q6 x - (setq p02 (cdr (assoc 11 (entget dt2))))
# p! p) }( c! d7 w1 [ - (setvar "ucsicon" 0)
+ |9 u- R9 }3 S$ ]! g% G - (command "_.UCS" "E" dt1)
+ C& z8 ?) G; g' [) }6 H! j - (setq p01 (trans p01 0 1))
4 \' H8 }, b! M( d+ }* @' M. f( A9 ^ - (setq p02 (trans p02 0 1))
3 E. ^4 K/ k8 C - (command "_.UCS" "")
: _; G1 O/ l) Z - (setvar "ucsicon" 1)/ X& K: q9 w4 J/ [) l# J. E
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))% k/ C8 c' d; D% E) B" y2 k
- T
5 B8 U% i6 s6 o! [& |8 @4 W - nil* e* o3 ?4 p" u" e" [% p
- )2 M: s, A2 r1 d$ v4 G( O7 Q
- )6 I0 z. n8 @: X/ j, F
* d3 s1 m# ]4 r! S" F% V- (defun tim_out (dt / p01 p02 kt)9 O7 ~ o p. v0 J1 k
- (setq p01 (cdr (assoc 10 (entget dt)))) L5 G( E5 ?+ Z/ I- C: k
- (setq p02 (cdr (assoc 11 (entget dt))))2 T0 f' m$ R; G( C
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) 7 p3 c" y; S* K% z; [1 @6 X
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
$ S' h6 b8 B7 r9 N X, y1 p - (setq kt p02)
% `6 I5 Z, n- ~; t/ f- j - )
- X5 P* m; Q. z0 C: x' d2 y+ } - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
9 C5 I2 V1 k! s& { - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))3 k/ F8 N- h# |( v
- (setq kt p01), ^: w4 B8 t) A% |$ N
- )
5 N# I0 u- T5 j# {+ T - kt l3 j; f1 ]5 j
- )
& C0 r% H4 o2 K7 ^ - 0 T& q! [ q/ A: `) p2 e
- (setvar "cmdecho" 0)8 C5 ^ U; w8 l
- (setq olderr *error* *error* nterr)3 ~( a3 c v# g0 z/ v7 J: ^; s1 N
- (command "_.UNDO" "G" "_.UCS" "")+ h/ A* u' g- U ]* V1 B0 r- E
- (while (null ss1)
# {4 K2 ]; w% g: S) P - (princ "\nChon tuong muon noi...")0 }" C/ a! \% B" _3 p! S5 A' n& F* l
- (initget 1)
: K" N" K6 s n' ^6 K - (setq g1 (getpoint "\n>Goc thu nhat:"))% C" G: A. ]$ P) T
- (initget (+ 1 32)), `" I0 n2 p6 q6 i
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))
9 j6 u1 \) S: c! M! j) L - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))7 n# @& f$ j" s" W* r
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))% A- x$ P: I8 V. J& [- n. K# w
- )
" ?3 G i# H. l5 {/ p( Z: h% k/ O -
A: U3 j6 H; g5 }5 Y' d - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))0 ?4 W: ]! r9 Q8 D
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
' ~; L# G' I; K5 W. o. q' q+ @1 B7 R$ K - g1 temp)( O# S- X5 u1 u# d' h2 W4 w6 }8 H
- (setq ss1 (ssget "w" g1 g2))( U) ^0 w# N- ?$ ^- l, R# v( X- L& w
- (if ss1 (command "_.ERASE" ss1 ""))% F2 |6 R1 h6 d' b
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))4 @- e- l( `, g$ E
- / \. F% H5 a( V& G, K
- (setvar "blipmode" 0)
2 Y( d: T- U& r0 d% P$ C$ A, F - (setq i 0 l (sslength ss1))) ^5 U! v% J! k6 G& B
- (while (< i l)
: |2 g7 f- R# l* D) ?& Y5 ~- M - (if (tim_in (ssname ss1 i))/ a3 k5 q: U0 Q
- (progn / c/ q5 k& ^5 f( n- P, E
- (ssdel (ssname ss1 i) ss1)$ t. w- z% G, ^4 ]2 E, Y
- (setq i 0 l (1- l))
2 U& r0 M( t' s$ H3 @ - ) 5 S% Z( Y) n& F. A! P1 Q! l6 q8 P
- (setq i (1+ i)): ?: B+ E) e3 a- c3 E
- )
; T8 f4 B' k( Y( f, `! v - )
6 ?/ i+ ~- L i0 L4 _; q- } - (setq l (sslength ss1))- O5 n7 K: y& H% \
- (while (>= l 2)7 \& w T( M8 C8 Z1 n( U
- (setq e1 (ssname ss1 0))! l/ l0 n) [5 b* \9 E) A& \" M
- (ssdel e1 ss1)% n8 b+ ^) R5 G2 ]* f' e* X
- (setq e2 nil i 0 l (sslength ss1))3 ]# R% @/ T {$ j* T. {8 O D
- (while (< i l) ' i# E6 M8 z& e) k0 m( o. N$ m
- (if (timdt e1 (ssname ss1 i))
% V9 y0 ]4 d* c: J9 W. D - (progn9 [. U6 n- V7 M/ @3 U- S/ ]; c# X
- (setq e2 (ssname ss1 i))/ A: e! ?4 c* ^1 `1 S, c) [1 u7 x
- (setq dd (tim_out e1))6 q& \- f% f R" w0 y
- (setq dc (tim_out e2)), J0 ^7 z) q% } I$ |& v9 }
- )
' v, R2 N: l6 N( L, M; p# @ - )% @& C3 `4 B% o
- (setq i (1+ i))
, g Y2 _5 T! ~/ n - )! g+ V! n# O* ?+ r) }
- (if e2 (progn
( G* f% @. S& Q' ^# ~ - (ssdel e2 ss1) }' y: z3 t; B. Y* @* Y( N
- (command "_.ERASE" e2 "")
% x" w+ g' b$ l& W1 K& F. \ - (setq temp (entget e1))
/ E" U( m' Z3 C( w# k; g& @/ [ - (setq old (assoc 10 temp))( y& A, k* f3 F) D5 {+ {6 K
- (setq new (cons 10 dd))
3 ]" P+ _1 E8 l8 y+ h% h$ A) E - (setq temp (subst new old temp))
$ {( M3 F9 A1 @( t9 V - (entmod temp)- r7 J" M1 D, N, l7 {; {% i- I1 ~* E
- (setq temp (entget e1))* g$ h- \" ]7 `7 ^
- (setq old (assoc 11 temp))
4 F) Z$ q/ N2 q Q/ T - (setq new (cons 11 dc))
. ^' M: \) X L5 v2 H - (setq temp (subst new old temp)). y7 R& ?8 E; l1 F5 A7 Z
- (entmod temp): x/ N0 l5 D8 m7 Q; Z6 d
- (redraw e1)
: Z* P. _7 \2 m Q: O - (setq l (sslength ss1))
, K) a) [# }- @4 u9 V2 m - )
% k ]* k' x$ m - )
. _: J( \3 v2 Q( p - ). t/ B/ Q* x# a" U: o& D. g
- ) q8 o- z! D4 R
- (command "_.UCS" "" "_.UNDO" "E")' T' Z* z9 z8 ~4 j
- (setvar "cmdecho" 1)+ P, n+ F& A( c' q, d
- (setvar "blipmode" 0)% e% m. X) a9 h2 m4 k" ?8 [& P5 R/ K
- (setq *error* olderr)# I# w; @6 p; \
- (princ)
. p; a% h9 h G+ b1 N% u+ r& m - )
& a6 N% j& M- y1 e/ e+ l1 F - ;*********************************************************************2 ^6 q' F+ f7 k7 ?
- (defun ketthuc ()
6 h: S5 T# \# W6 w - (setvar "cmdecho" luuecho)
]% t$ Q) A6 e" z8 B - (setq *error* luu
! ^2 W( D; X7 H) ]1 J& @' W0 r - luu nil 0 n7 ^0 ~' n' |) Z7 s! ^4 I
- luuecho nil" v. ?4 r4 e5 B! `
- );setq
1 q/ L; F# e" H L - (princ)* x; ^1 C+ R8 h
- ) + m- m$ v- W, s8 T
- ;*********************************************************************
9 J# a, i! w# E) v - (defun modau ()
! \7 s3 H) Q# U9 t9 B - (setq luu *error
, P7 Y: y4 f, @) h" e0 f - luuecho (getvar "cmdecho")
' w B9 b1 |( s- r/ M% h - *error (ketthuc)0 c0 }$ X' O" P) t; [# n0 ]
- ), ^+ r! t0 f0 ^
- )
. e$ L3 t* K2 k% N - ;*********************************************************************
: M2 [* [" ?) T& @/ S' G! f - (defun xulytext (text / kytu ma sokt luusokt lui )
5 |$ N! H" D: z: y# } - (setq kytu (substr text (strlen text))
( {8 Z' g9 ^) @' C, C6 q - ma (ascii kytu)/ u. w8 K& j F! D2 `9 p
- sokt (read kytu)
& W0 s: j0 G- g* o - lui 18 Z' e/ ?3 |7 c2 U0 A/ {3 C
- )
4 T' g3 s: x2 Q7 S6 t) F! @6 _5 _ - (if (numberp sokt)9 ^# Z; X3 L( f0 H- D
- (progn
# i! a/ i/ h0 k4 C9 [ - (setq luusokt (1+ sokt))
4 j$ s( \ M# e6 q; s - (if (and (numberp sokt)
3 N0 z% {# i: m- O. P - (> (strlen text) 1)
* |8 c( W/ E1 d& X( z0 s - ) ' f, Y2 ]8 ^# }* ?
- (progn
, r) V) {9 w0 Z- R; i2 A - (setq kytu (substr text (1- (strlen text)))
1 K+ D* Q, C) c% q7 y8 B+ n - sokt (read kytu)
* f* L6 ~4 B# S* a2 O7 u - )1 }/ w) G9 U |; s9 b) _1 {; B# v
- (if (numberp sokt)
7 g" F- W% r; _. x - (setq luusokt (1+ sokt)# z5 K) Z2 H2 t l# r8 S3 T
- lui 28 f+ c+ s( \4 \( j- a2 A
: F. A$ I; I1 r) Y: Z7 |- )2 u6 e3 [, B8 N- f* i6 |9 f i( F! l
- )5 o9 t. Y- L% m. {1 p# o1 \
- );progn : t9 c/ C. b3 x6 @
- )
1 w& u2 q& _( n9 P+ X - (if (= luusokt 100) (setq luusokt 0))% u: [% D G5 {. U
- (setq kytu (rtos luusokt 2 0) k3 Z) Y/ c* @0 C( Q/ M
- 0 g' e% v4 Q/ B6 }
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)
. Z o" h4 W" @. B* i - )
, H1 e- r- B& p/ |9 N; g2 A* u/ Q - );progn
9 F" {8 Q* K8 x - (if (or (= kytu "z")- Z' Q" a H" l" H! |* P
- (= kytu "Z")
5 q* @4 h& A0 v6 i9 q' ] - )
. q# g4 e* C9 y9 W0 A7 Z, M4 S - (setq text (strcat text "0")( ]" I- c* ^) `% @( A9 H
- textxl "0"
' \& u! ]" X, R. k [# `& }4 \- u - )
4 A8 P+ w& S: }: y) Z5 z. f, |; { { - (setq ma (1+ ma) [4 G5 g4 H; A0 S* t* o/ q
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))
& A. w* i4 C- t6 r9 \3 ^$ l - )/ Z: Z T7 g8 ~" x& |; T
- );if5 Y. C5 i) S& D. |! u, ~
- );if" f0 j; S8 @: b, S
- )+ e+ m' o, V2 H/ B: P
- ;*********************************************************************
" F6 j/ o: V2 X - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
6 A R. v9 M( d& D - ;Neu doi tuong la text thi tiep tuc9 l3 z' m4 h8 X
- (setq doituong (entget tendoituong)
' ^! D( Z- P; D% ] { - kieu (cdr (assoc 0 doituong))
' [% w2 v* ^# V9 y, B1 o" _1 | - canle (cdr (assoc 72 doituong))
5 Q8 c( h* j8 i* ~9 l( Z3 g0 g! y - )
4 E+ ]+ C! \; b' Y) A5 K - (if (or (= kieu "TEXT")9 z6 c+ O1 \$ g
- (= kieu "MTEXT")
$ X9 `3 z. y: N7 [; E# Y - )
" y7 G. Q; r0 [ b5 [* j - (progn
' }$ B% v+ g3 b( G B( ]! X - (setq textxl (xulytext textxl)
7 p' Z$ e" {7 Q% X; N - text (cons 1 textxl)* `: u6 i6 \: J) A
- vitri10 (cdr (assoc 10 doituong))
6 F% F' j! E. K, ^$ D6 g/ f - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))* {# @( X- m( `( e+ J ]3 e
- vitri10 (cons 10 vitri10)0 f% E$ Y8 d0 X6 g; O
- vitri11 (cdr (assoc 11 doituong))( n! y& ^( o* y- ^. g
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))7 g8 Z% I9 a4 \+ ^" v! o
- vitri11 (cons 11 vitri11)0 ?% b% \% P8 }0 B! p G
- dem 0
- R% i4 r3 j& F; N5 S" u+ Y x - dsach nil
1 B- f- h3 }( a, J* X - )
+ Q% B% P! H7 f/ } - (foreach tam doituong
% C* n7 a( v( R+ d* F - (cond3 C( i7 ]0 b, N5 C
- ((= (car tam) 1) (setq dsach (append dsach (list text))))
( M, C' `) C0 d$ @. m7 k! P - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))# d' I1 N4 t, K1 [
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))5 A; n h9 i( @# ]0 }" X, ?) `
- ((setq dsach (append dsach (list tam))))
: N- c' b# ?; u' _5 m1 N% R - )6 \4 W& R: o) d) g) h
- )
& i1 \* O6 u4 P0 I% O - (entmake dsach)) T' E2 a) j5 \4 f, { ~4 ]' ~
- );progn: I ~$ L$ \6 P
- );if* C% }. M) j0 {" D
- );
8 _# y7 k; Q2 g1 g$ a# P/ S - ;*********************************************************************
1 v5 q1 Y/ c* W' p, B - ;sao doi tuong cu sang vi tri moi( p* A4 t, E0 `- e( H
- 0 O3 L! s6 X& w% I2 w0 M
- (defun copy_dt (tendoituong )
/ X5 g, M8 ^0 V* y4 u6 E, L k - (command "copy" tendoituong "" goc toi )
' p( x7 i3 Z: P2 d @ - );defun/ c3 D) n& q- t) l7 a7 X
- " ?$ z7 s4 h0 ?( O _( Q
- ;*********************************************************************2 L, O0 U# \7 B4 T" V4 c6 c( j
- , @! Q& ]) ?3 E# J
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
$ A/ I3 K, e0 Z, e) ]9 ]& ]4 ^% K- X - ; Khoi dau cua chuong trinh1 Q1 P8 ]! a: [7 g" X! U
- (princ "\nCopy Inteligent...\n")7 j* @- B7 M9 k" L
- (setq luuecho (getvar "cmdecho")1 e6 p9 d0 f6 W2 P. O- }
- luu *error*2 [; |; P. P) S! l5 k7 r' {4 x
- *error* ketthuc
% [2 g/ V) O* I - cumdt (ssget)
2 Q C& B7 j, j* D0 j& u( ~ - dodai (sslength cumdt)
2 [2 P( N% P( i% V5 ]" @ - goc (getpoint "\nSelect base point:")6 p0 d7 o2 V5 E+ G# ]3 H1 |" R
- thoat nil0 a, ]8 I# c3 W( X R% W
- dem 0; `5 q5 g9 g: b+ R; U$ c z5 m
- textxl nil; }2 x# [! u( _* P0 {0 n
- );
( O1 t4 R8 b- y) Z1 {- W* J5 ? - (setvar "cmdecho" 0)) ?$ {; v. V, u! G
- ; Loc ra duoc ong text de xu ly
2 f4 P8 i, O) c. |2 V J, W - (while (and (= thoat nil)
. \- Z& x4 W0 H+ O4 S7 h: Q - (< dem dodai)- U( f8 z3 _( {# @' B, z: S
- )3 K( s4 K3 u; G5 ?9 b$ o9 D v
- (setq ten (ssname cumdt dem)
& a Q/ g7 c( O - dem (1+ dem)% T1 i0 ]0 _, M0 `2 H) T) |
- doituong (entget ten)6 r( M. p* H/ A7 m# B
- kieu (cdr (assoc 0 doituong))
; W8 C7 B7 n$ i5 a - )
p; Q% ? L: v6 e1 E. z - ( k0 v7 e7 L5 J2 v/ k% Q, V4 E' @
- (if (or (= kieu "TEXT")
& a1 Y% l- b8 ?. V9 h' h% b - (= kieu "MTEXT")
1 k( H o+ k9 Z" X& `* I) h - )5 p/ _- M% D3 q6 o
- (setq thoat T/ ?! \2 |4 ]* Q! ?
- textxl (cdr (assoc 1 doituong)) ( s0 X# p2 _2 ^7 ]# A7 r
- )
. S& }! | P" G( z. s' @9 ] - )
! P) d4 q. \0 T' s/ i - );
& Q- p# N+ \# Q2 V2 _ - (while T ( S7 X) [5 _! P0 E: X; I# X( E+ k
- (setq toi (getpoint "\nSelect next point: " goc)
, Y0 Q+ h/ {( t( T- l - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))); @# k# x8 p! s4 J8 h) u
- dem 0 a, c* t e+ u) l7 \+ z
- )
9 z; L7 ~1 \& t5 c - (while (< dem dodai)
: ^( C" J2 Y! M) q4 ?6 `; C1 M - (setq ten (ssname cumdt dem)" G3 o- b+ |/ f
- dem (1+ dem)
$ N/ [( C# D5 t/ `/ m3 r - doituong (entget ten)
7 L, \( |# _4 V H* S$ o - kieu (cdr (assoc 0 doituong)) 4 x8 m7 c$ ~& E7 Z$ V
- )$ R& a |2 `& e/ ]1 H
" |* W( F, Y A' J) n5 w, L' Q7 J- (if (or (= kieu "TEXT")( k9 B; I6 y0 G# D; O
- (= kieu "MTEXT")
, ~9 A, _8 r$ c) i4 k - )* t4 t; M7 @; Y7 e5 y6 c- L2 s
- (doitext ten)
# M& }* g5 i/ ?; [$ @4 O - (copy_dt ten)
) Q/ [$ y- i2 R
' d, E6 {& j4 r5 P) D# a- );if
1 N l6 j5 n, H# _) Z3 Y - )0 F/ a' h$ N0 q: _: l
- );while& A p+ R& r, ~" {4 q( \$ t+ j6 g
- (ketthuc)
% [" X( p8 D0 g4 q$ N - );defun
I4 }- n* B) [; `, L' p5 @ - (princ "Type \"DG\" to start")+ M5 r& m% @3 Y+ ~2 B7 D
- ;Note: bien toan cuc: textxl vitrilech
$ q# g; p* w+ P1 J, U/ g - % [* z. m7 d9 Q `5 n6 t
- ;=====================================================================) ]3 i$ ]+ w% o5 s' B- }
- ;;; PLJOINFUZZ.LSP
) q0 U0 H% H$ Z ` K - ;;; Joins lines, arcs and polylines using a fuzz distance
7 J& }# m+ i6 d - ;;; If only one object is selected it tries to join to all objects that are possible( u9 N8 m) X4 w1 U
- ;;; By Jimmy Bergmark
9 b6 \# y& V4 A& @ - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
: Q" H# Z5 q6 H - ;;; Website: www.jtbworld.com
* V A2 K+ t% J, A5 q - ;;; E-mail: info@jtbworld.com, O4 T9 N. h8 {5 A0 d0 W8 L
- ;;; Tested on AutoCAD 2002,2004 and 2005
, q# M1 l* e1 i3 h+ N# S) d - ;;; Latest revision made 2004-11-11
* Z9 l" u: [4 c7 _9 A! @ - ;;; Minor code cosmetic change made 2004-11-138 A, w$ E( D( m/ ~( h2 B: l
- ;;; Bug corrected 2004-12-23
( y9 K$ l+ `" O3 ?2 ]/ g+ I1 V
0 [1 Z; ~4 L# R* Q+ a' m- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
0 f, S1 Q$ I# {; I* l7 o5 s - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
3 S/ { \1 _2 g# _- Y - (setq oldcmdecho (getvar "cmdecho"))
+ W! b6 ~, D# o8 p5 n. k5 X- m - (setq oldpeditaccept (getvar "PEDITACCEPT"))
! h9 \9 o6 H. H- K+ I: O- w* J% N - (setvar "cmdecho" 0)1 W) F: H" j. {& ]
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))' j" P5 t8 k6 S- R* e' O2 j, j7 `/ t
- (if A2k4 (setvar "PEDITACCEPT" 0))
# A: [$ X. ]$ ]$ `- {+ X6 Y - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
2 u' S/ C6 W3 L - (princ "\nSelect object to join: ")# G& u9 U& T- X; `
- (setq ss1 (ssget okObjects))
/ @9 C6 N. g$ {# ]: H$ s9 f4 j - (setq fuzz (getdist "\nFuzz distance <0>: "))0 y7 |4 P/ l# q2 L/ a8 u |3 { p
- (if (= fuzz nil) (setq fuzz 0))
/ [' ?) H G5 Q1 D) u" r - (if (/= ss1 nil)( c" V& c! F! S1 A$ `8 ?! O8 ?
- (progn
# i% i3 s) K" \2 X9 S! G& p - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))4 H: V- s+ }6 s
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
R- a9 k/ D/ J% ? - (if (member objType '("LINE" "ARC"))0 R" n- Q$ l$ N# X4 ^
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
. X2 H- X2 }( t& t7 K - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
6 c; H+ p: M/ a0 v$ [6 A+ d - )
! n' A0 z( o' L( Q- b ^. H - )
# P4 A) K. Y& U$ y5 l" U2 `) R - )3 A) i% F0 G6 Q: g; e J% D
- (setvar "cmdecho" oldcmdecho)
0 N% q. B$ J' M5 \/ ^: A - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))3 @9 e- e* @6 ~! V# F# G
- (princ)4 ]2 Z0 |0 t# H+ W# [' w3 H' m% l% x
- )1 S2 A; U+ v, Q
- + Y2 C* X6 v1 }& |1 ?6 [+ ^
- ;===========================VE CAO TRINH===========================/ c0 ~# r" r! i9 E9 q6 J
" Y: g7 E/ W5 X @; V( Q' T( Q+ ]- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
5 z) ?$ H' G9 E6 t - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR); ^9 q$ W: V+ F+ F
- (SETQ OLDERR *error*# V$ G( B8 [9 l1 z- L
- *error* loisb)
3 c) u* \7 o. x0 u3 Y - (command "layer" "m" "dim" "c" "" """")
2 n1 z+ z2 t4 n" i! d0 t0 p4 u - (SETQ CMD (GETVAR "CMDECHO")), j0 V5 r' N* N; X
- (SETQ NBC (GETVAR "CLAYER"))
8 t$ M6 _5 Q& i7 }% ^$ q+ l - (SETQ OSM (GETVAR "OSMODE"))7 A9 p2 U9 s- ]5 H
- (SETVAR "CMDECHO" 0)
- d6 C" j: ?3 `$ V5 l - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
% C) b$ |0 y1 Z8 u - (SETQ TX (GETSTRING "\nCao trinh:"))
% K8 p! h7 f% r( }2 ] - (SETQ FCH (SUBSTR TX 1 1))
0 p; W( X( E5 O1 r1 T4 ^ - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))2 c, f, T) ~( @9 A
- (SETQ CRST (GETVAR "TEXTSTYLE"))
; D+ Z. @. s2 K" C+ X, m - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
/ D1 {/ M/ j' q8 ?" P - (SETQ TSIZE (GETVAR "TEXTSIZE"))+ F0 }3 R \3 C9 J
- (SETQ STR (RTOS TSIZE 2))
4 v) H: B4 U1 ~! }% i7 h8 a( v - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))3 Q4 \9 D4 z/ W
- (IF (= RSIZE 0)
0 @: q0 s. N, t& H - (PROGN
8 |- ^' t, R5 G! I/ ? - (INITGET 4)
: ^( j. a7 b, H* I c/ M - (SETQ TSIZE (GETREAL PRMT))
1 r% O) B! V# w6 a" l3 v - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))# [! m! l8 A* A, Q% i& I% C
- (SETVAR "TEXTSIZE" TSIZE))
1 x9 B& {8 w( o" |6 ?, f' n - )
% N; s* t6 \( G2 J - )2 c5 ^+ d3 U, m, L3 A
- (PRINC); z3 `% V% v5 K3 T# Y
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2)); I1 R( e+ J# D3 ~! b" {; P
- (SETVAR "OSMODE" 0)
; `; I/ j4 f# H9 a$ h* i0 Q - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX)))))) J- g% Z# i! e( B O
- (SETQ NPI (/ PI 2))9 H4 `# D* r% C6 Y, z
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))( t( r- ^! [1 O: Y
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
, L% j( i @: a: |% O: a/ X3 x: U - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))0 N" M0 ^' a7 s' s( p4 R$ T
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
6 R- i1 I; l( B9 k - (SETQ PT6 (POLAR PT2 NPI TL))$ }8 d9 Y5 [( a1 Z* y5 v/ Y8 ~
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
+ ^2 {) B% H/ {2 c8 c- b/ g* c8 [ - (SETQ PT8 (POLAR PT6 NPI (* 1 TL))), S5 P' |5 u& }' ?/ [$ x
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))- o# d, y! b5 g8 n
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))$ s$ x) S- Q% _ E9 f
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))0 q$ n5 m, s. e. u
- (COMMAND "COLOR" "7" "")5 o3 D r- I( E/ ~" e4 X
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")1 R2 p- T' @, {9 p
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))) l% R$ j7 D2 _: E
- (COMMAND "COLOR" "BYLAYER" "")
/ [7 K4 _8 X, b- l) Z - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")9 w" {1 W2 \9 P
- (COMMAND "COLOR" "BYLAYER" "")
4 X" Y5 x$ M( x7 s - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")' V* F9 |5 n# V9 t! o% u/ U$ R
- (SETVAR "CLAYER" "0")
2 Z8 x6 d- A: O. p1 ^* s - (command "ddedit" pause)0 [( ?4 B- u5 X$ i, e
- (COMMAND "COLOR" "BYLAYER" "")
0 R' |9 J7 H+ b - (SETVAR "CMDECHO" CMD)& e; {0 w4 [1 J: J- Y6 U% [
- (SETVAR "CLAYER" NBC)
$ t7 e7 B0 o( m7 i6 V9 \ - (SETVAR "OSMODE" OSM)
/ @! M: j8 Q) ] - (PRINC)
+ @, [8 {- K% \8 c: L - )
" ~3 {3 {4 t7 L - ( y& F4 x9 B1 I& H+ A* c, X( v
- ;;; =========================== VE NET CAT CHEO (GC) =============================6 x; _+ ?3 X# T2 m9 Q
-
4 B$ X% X& ?( {/ g; B7 V. T - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)+ i+ {: L2 [2 [; Q' b/ I
- (setq x (getvar "osmode")), L8 q8 I9 w. o1 |; h! |& D
- (setq p1 (getpoint "First point : ")2 y* ?$ q, u* l6 ^& s4 c9 K- s5 W
- p2 (getpoint p1 "Second point : "))
- X& u5 \, m$ c h2 u - (setq l (distance p1 p2))8 i# B& ^0 W* e7 F0 a9 R! z- O5 j
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))! Y! i: G; [: w1 A0 [ Z% {8 d6 ~8 y
- p12 (polar p2 (angle p1 p2) (/ l 5)))
5 d! z3 q9 q6 u7 g - (setq ang (angle p1 p2))) g$ E% K6 T3 J* g7 R
- (setq p3 (polar p1 ang (/ l 2.5))3 M2 N8 X; w( ?- |' w9 x4 w2 Y
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5)) j* M/ x# E9 K. N j
- p5 (polar p3 ang (/ l 5)). g; G) F7 D- Q
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
, B7 A% ]% E1 C' A( q) N7 |8 x- ?5 A - (setvar "osmode" 0)
5 C/ _' | H" Z3 ^1 C - (command "pline" p11 p3 p4 p6 p5 p12 "")
0 [% Y) U# g4 X( X4 A - (setvar "osmode" x)
( ]" V G9 H! |. f" X4 u }5 S# u4 Z - )# J4 G" `; R& }% t Y: p
- ;----------------------------------------------------------------------------------
8 T9 D' h) j1 h - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
6 ?+ i# x2 X& L9 }- |6 s - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
% L5 w7 ^2 ?& B( w* r - (setq ps1 (getpoint "\Chon diem thu nhat: "))# ? _/ o' ?3 `7 C5 \9 N0 j3 [4 Z/ X
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
, [+ ?2 [6 c! {1 h; }9 V7 M7 R1 d - (setq sb 50.0 sh 200.0 se 20.0)
$ z! _3 E- a5 T( O - (setq ang (angle ps1 ps2))
2 Y/ X. T, q1 n6 U+ F+ p - (setq pf1 (polar ps1 ang (- 0.0 se)))1 s: N, X, G4 J, ]% T' j
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
$ M. o# q% h! O$ _) W, O - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))8 K# l0 a) ~! j) N5 K
- (setq pf5 (polar pf2 ang sb))' y& F$ A3 E7 x; c! a! ~5 B! C
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))/ C* V/ ?1 f b3 j2 s' r
- (setq pf6 (polar ps2 ang se))6 O2 ]$ D! y9 v: p# M4 H4 p* }
- (setvar "OSMODE" 0)$ Z1 C3 z- O3 `& e Z
- (setvar "BLIPMODE" 0)
0 d2 s, r( I% ?6 J% q& Z; d7 u# G - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")1 a; p2 B- J( ?( x5 [% N/ B
- (setvar "OSMODE" 703)
" U5 N7 I! h3 C4 z4 M - (princ) )
1 G2 d: Z8 w9 r8 V! @ - ;----------------------------------------------------------------------------------
7 e6 G) r, X8 l7 v! G - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
# s6 c# z9 G% h - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
. Z( Z, g! e2 N& p9 P7 |3 B - (setq ps1 (getpoint "\Chon diem thu nhat: "))
2 C, @ o6 m$ }! c: H - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
# c7 Y$ n7 q5 m1 c/ H0 Z5 `1 [ c - (setq sb 100.0 sh 150.0 se 20.0)
9 d9 ~; O2 g6 w- n" {+ E - (setq ang (angle ps1 ps2))
/ _0 Q3 o4 z& G8 @6 s9 V' N8 j& A - (setq pf1 (polar ps1 ang (- 0.0 se)))
- Z/ Q, K/ j8 k0 a2 L - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))1 R6 ?, {* R# T, p* c
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))0 z# N8 L j) N, |
- (setq pf5 (polar pf2 ang sb)); H7 B+ d) K% p0 Y
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))% y1 Y, n. U: z5 b9 J* O
- (setq pf6 (polar ps2 ang se))& Q2 `* w& B9 g3 R1 A
- (setvar "OSMODE" 0)
# O5 k ^, o( ]( m8 d8 l5 D4 m9 d: C3 U - (setvar "BLIPMODE" 0)
- }2 { ^# E$ \# S5 q* N( h8 o8 u - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")( k$ u9 s; O5 k. H! ]8 {
- (setvar "OSMODE" 703)
4 N0 E' ~ f6 i2 z3 V8 C C - (princ) )" g1 O& U. \( S% r [
- ;----------------------------------------------------------------------------------
* G! n% L+ L8 g - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
* b/ k% @1 U( g0 _4 u2 f! ?/ L6 U1 _/ S - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))' c9 \' i" x3 Z% {
- (setq ps1 (getpoint "\Chon diem thu nhat: "))7 c) X! ?7 D7 R5 y
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
) G2 u' Y+ a/ E: t - (setq sb 100.0 sh 250.0 se 20.0)
' a7 X# H! y9 @: ?7 G - (setq ang (angle ps1 ps2))
' V& ?8 D# c O - (setq pf1 (polar ps1 ang (- 0.0 se)))
P0 e: B5 \5 ?% L/ d9 r - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
% U. F" b$ E% o, x2 ?1 I, w( ^ - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))% v3 l5 B* n) Y7 x3 ~3 R
- (setq pf5 (polar pf2 ang sb))' S# A% z5 X8 A& g
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
0 |. |0 y2 {8 n$ S1 k - (setq pf6 (polar ps2 ang se))& w0 I; A8 r* g" [2 s4 J. a z# l
- (setvar "OSMODE" 0)) O1 ^- Q( A/ W6 O8 W/ s
- (setvar "BLIPMODE" 0)1 b: \$ @, G) n% f% O7 B: E9 e
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
: C5 ~/ ~% K% `5 L' ? - (setvar "OSMODE" 703)9 N9 R, ~. e9 g; \+ T1 t/ m4 V
- (princ) )
8 S# {7 F7 p. q/ `$ c& e( H" }. Z - . A# B$ _' p& S/ v7 l+ Y
- ;==================================================================================
" j% b4 [* i/ D8 Y( L# } - (defun c:ang (/ ent pt1 pt2 ang)
( C$ u8 [" K* Z/ x o - (setq cmd (getvar "cmdecho"))
% k2 e e7 P! r- f& u) K; g - (setvar "cmdecho" 1)+ T. U' ?- T" F0 g4 P
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
% d3 u, e X; ^% G: _8 j: L - (setq ent (entsel "\nChon duong thang:"))' ~0 n+ s. ]" |
- (if ent
5 O; c+ h% a5 B - (progn
; T3 O+ P; u6 O" Y* [) V+ O+ f - (setq ent (entget (car ent)))# N6 d: n: w! y+ f8 K* T6 w4 U
- (setq pt1 (cdr (assoc 10 ent))), j0 a3 m2 X" c* \! ~: X: P
- (setq pt2 (cdr (assoc 11 ent)))2 V( s! w8 I5 R7 T0 z9 z ]
- (setq ang (angle pt1 pt2))
3 `! A, G! j, E - (setq ang (/ (* ang 180.0) pi)), b/ H! [9 E( G, I1 @7 Q
- (setvar "cmdecho" 0)
% A& _) I. r# K$ X- } - (command "setvar" "snapang" ang)
' P* N" o: l' d/ u. d: R - (princ "\nGoc cua truc toa do moi : ")
0 k; S6 ?1 f* v3 \ [ - (princ ang)
9 V6 m3 |' X; r. x L - ). D( j' k$ p4 d; ` ~
- )
8 D4 f$ Z( b; r4 V - (setvar "cmdecho" cmd)* e' g; @7 \% V
- (princ); V. p; V/ w' h! t q
- )
4 g% X; k, R. ] - ;==================================================================================
' `5 z- ?# Z" S) ? - ;============================== KY HIEU DOI XUNG ==============================/ u1 k4 H5 A5 {
- ;==================================================================================
' ^, H) P( o0 p0 o - ) ?4 ^0 ~2 n1 a$ I
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT99 R, Y% C8 Y% y
- SZ G45 G135 G90 G180 SS loi)$ t% e4 a# ]/ r2 ]5 S
- (defun loi (s)
) S' O0 K; k; ]- q d - (if (= s "Function cancelled")- x0 y0 j0 A* o
- (princ). e9 O" A- P s* ?* C7 y! s! k1 Z
- (princ (strcat "Error:" s))
' E' @% O- f6 \$ A* S4 e' T$ b - )
' c& m3 B$ ?2 D - (SETVAR "CMDECHO" CMD)
- @: E. l; j. E, H S, f0 w' [- c8 F - (SETVAR "OSMODE" OSM)
$ j, n8 Q! b; k+ c/ I5 m - (SETQ *error* OLDERR)
& R/ S; Q% J- \: N& C/ f, {; j5 ~/ L - (PRINC)' i& p. a( N. x6 I
- )
4 B3 | v5 \) @! z( q/ G, \ - (SETQ CMD (GETVAR "CMDECHO"))( ?. z' f! M- y9 V1 [! }
- (SETQ OSM (GETVAR "OSMODE"))
+ w1 L# C5 [( D - (SETVAR "CMDECHO" 0); }4 V" ]2 C$ H
- (SETQ OLDERR *error*0 ` J( t6 z4 w- I
- *error* loi)3 C7 x, q7 U0 x9 V4 o0 a) e
- (SETQ SZ (GETREAL "Size <1>:"))
" D$ d! T1 L9 m9 h - (IF (= SZ nil) (SETQ SZ 100))
' B: @1 ^# O6 [/ r. N$ I5 X - (SETQ G45 (/ PI 4))+ J) p( g$ }% m4 x
- (SETQ G135 (* 3 (/ PI 4)))4 q* Y! `6 h. E# z
- (SETQ G90 (- G45 (/ PI 2)))
* R- B) b7 Y" b- S- l( j+ p - (SETQ G180 (+ G135 (/ PI 2)))( X9 g$ g/ ]7 ] u# F7 H
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
6 n& ^ t v$ F7 t5 m! L0 _% q* @ - (SETVAR "OSMODE" 0)
8 b4 d* Z! C) U. L! {) N) l - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
$ X4 }- w; }+ m4 `1 ? ^ - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ))); k$ ~5 o/ ^7 I' T
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
8 u. {# v/ F$ z1 E9 y2 V$ |- `4 Z - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))& m6 R; v/ r9 x/ @: Q
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
5 I/ g! }9 c; m2 n; T - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ))) o7 N% M8 F$ U9 }
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))$ c9 b! ^ l# z1 a1 n/ l2 o2 K
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
, r! }$ c9 ~. @8 ?! t7 [% O: X+ a - (PRINC "\nGoc quay:")
: v! l0 c& V; p2 N0 Y - (SETQ SS (SSADD))
s' i5 b8 Y* q - (command "layer" "m" "Dim" "c" "" """")
+ m5 }0 [% C, [2 U* e* b' U) q' i - (COMMAND "COLOR" "1" "")1 m n3 D, j& Y* n* L* K
- (COMMAND "LINE" PT8 PT2 "")
F% q* r& }9 T- D } - (SETQ SS (SSADD (ENTLAST) SS))" [9 b4 y% w# E' _' ]8 P
- (COMMAND "LINE" PT9 PT5 "")
4 m& q1 e8 g. H' x; B, H. F - (SETQ SS (SSADD (ENTLAST) SS))
: _% J) s8 F2 n/ |" ~5 A - (COMMAND "COLOR" "1" "")7 Y# g0 G% d4 Z4 @4 C2 b
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
; o L! k5 [) v' s. y - (SETQ SS (SSADD (ENTLAST) SS))0 e. I! Y9 l6 b+ @" e( L' C
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")
$ r" @/ V* Y) g" v. U! H9 Y) r - (SETQ SS (SSADD (ENTLAST) SS))0 P, w5 i4 D6 L3 V: B* ~+ d
- (COMMAND "ROTATE" SS "" PT1 PAUSE)4 t9 L+ W: W( G5 _
- (COMMAND "COLOR" "BYLAYER" "")) }) }' w/ Y( x+ O) y
- (SETVAR "CMDECHO" CMD)
) r, m: F7 ` b9 w - (SETVAR "OSMODE" OSM)$ i) ~+ V1 {! }* _! ?
- (SETQ *error* OLDERR)! w8 I8 [0 _, Z
- (PRINC)! k) I' C+ i% M5 K/ n8 ^- d4 x
- )5 r4 ?% L6 f, a, a% r
- 8 ?) |1 N) J r
- ;==================================================================================, {; I' y4 @* S! j
- ;================================= KY HIEU TRUC ===============================
( |: s+ i* L& [2 s- }: ]/ Y! z8 v - ;==================================================================================
- j8 t; F6 [$ C( J$ R# N m - , @ Q- N4 J- `( L+ v
- (defun C:vetruc (); S5 I/ P% i0 E: i4 O6 ~! b
- (setq bk (getvar "USERR3"))
$ m. g1 r6 `* k; G8 F; f - (if (= bk 0)0 \* b7 G. L# X2 e
- (progn6 m( v6 m* u; Y/ F- o- L. Q! H1 T5 a
- (setq cont "1")/ q4 V% h3 q1 J( K$ k6 L9 Y
- (setvar "USERR3" 1)
' u8 c/ q- }& `) v - )) {) q, ~8 Y* R4 S) J
- (setq cont (rtos bk))
9 \" ^3 R1 s' o; M - )
* H1 a7 t5 S4 p0 ~ - (setq pt1 (getpoint "\n Nhap diem dat:"))- U m; E3 f$ C$ p) Y
- (command "layer" "m" "Dim" "c" "" """")
# G$ e2 X# _; x {) ^ - (command "osnap" "")1 H2 l6 K5 p( W$ k; ]0 H; Z: T T
- (COMMAND "COLOR" "7" "")) X/ L9 B0 g- n8 _
- (command "circle" pt1 150 "")
2 a( E7 G! X' _2 r# Q - (setq pt2 (polar pt1 0 150))
/ J/ W$ e* l; l - (setq pt3 (polar pt1 (/ pi 1) 150)): g( K; G1 m( b1 `- u
- (setq pt4 (polar pt1 0 300))) {7 X) b; N7 U2 T/ H, m/ P
- (setq pt5 (polar pt1 (/ pi 1) 300))
7 C: U! G1 Y8 y' J - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
8 W2 ^4 e! I+ y. R z' \* {* o - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
& o9 h. ]5 T) f# u' ~ - (setq pt8 (polar pt1 (/ pi 2) 150))( q4 m% y; k* ^& R
- (setq pt9 (polar pt1 (/ pi 2) 300))
( r; o# V6 M9 y# r, A: ]6 _ - (setq pt10 (polar pt1 0 150))- Z/ U }" V# A3 _5 p' l, W
- (setq pt11 (polar pt1 (/ pi 4) 150))0 O; n0 @- B) Z& A' T
- (COMMAND "COLOR" "BYLAYER" "")
! Z/ e7 I7 R r6 G7 P- y' e [4 q - (command "line" pt2 pt4 "")" |" Y6 `. g& G8 n# w
- (command "line" pt6 pt7 "")) w+ L9 V& ]( ~# ]8 Y& P
- (command "line" pt3 pt5 "")0 Y+ S8 N2 V6 d) ?+ p, D! j
- (command "line" pt8 pt9 "")
7 B5 o" m- F" b7 o/ Q, { - (setq dk (strcat "\n Size:<"cont">"))
. c1 J; R9 d$ V! @ - (setq bk (getreal dk))4 k# ]1 i p; ~& `4 Y) W% q1 j- V1 ?
- (if (= bk nil) u+ `3 h3 p5 s b% o$ C
- (progn
! A, j) G+ p! l& L/ H - (setq bk (getvar "USERR3"))) w2 {6 l' e" D/ _, s0 q
- )5 g" W+ ?* _% H; [/ x( _ O
- (setvar "USERR3" bk)! T3 R5 B* A- \5 A7 z0 q- }0 o7 R
- )
. Z; i3 {4 g: h$ _2 X5 ?5 A - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
2 S2 B/ V& ?( z+ c6 j0 C! K0 o - (COMMAND "COLOR" "7" "")
' v% d! g" G' l* W2 D - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
& o$ g6 t3 }. R) a& y4 u; [/ w - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
0 i% A% s; X$ a - (COMMAND "COLOR" "BYLAYER" ""). {. X! Q9 q5 H! ?
- )
% \3 ^1 u2 G( m3 v0 [7 ?$ V5 P - ; D; K0 i) e, ~8 I
- ;=====================================================================
) @* W; W4 d# m( e8 B5 x - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
! u0 f0 k! M6 W8 m C - ;
& `; I+ t- p4 M0 o& y - ;Jeffery P Sanders
1 V' }8 u& e- ?) b0 e2 \ - ;
# W( }; u7 v" O! T, C$ E - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
" Y0 a7 ~* i1 r0 Y: H' ^. b4 @ - (setvar "cmdecho" 0)
8 T! ?! `/ c! \! F K ^9 o - (if(setq en(entsel))6 _. n. t _1 t( S% k4 a' J
- (progn+ z4 ^7 E n$ s: _- `
- (setq enlist(entget(car en)))
' l$ Q- t) C1 e - (if(= "TEXT"(cdr(assoc 0 enlist)))) F' m- k/ `4 @3 P+ Z: D
- (progn
7 G# Q- ^; m% R4 }+ d - (setq tx(cdr(assoc 1 enlist))
6 }' u+ Y5 J( M* H - newtx "" cnt(strlen tx)
( B7 o- Z2 z- v6 v) [8 j - note "\n...CASE Reversed. \n "
8 l0 |) D6 x4 U. h - )
3 }# L Y! k3 H# r - (while (> cnt 0)7 L/ e A7 V2 d# _5 _. r) ?) U
- (setq tp(substr tx cnt 1))
- S1 I0 p' u6 C# S% l3 i - (setq asc(ascii tp))
6 ^, v6 \8 w" F! X0 V; ` - (if (> asc 96)
- o8 n" E0 C5 z; _ - (setq tp(strcase tp))6 Z) @8 ]7 a- n# P+ p% e3 H
- (setq tp(strcase tp T)) i9 f' l1 A( a6 p
- )
- U6 |+ V* Z6 o+ A - (setq newtx(strcat tp newtx))7 P0 r6 W% ~8 {7 l, }2 T/ {" ~9 d
- (setq cnt(- cnt 1)) l4 u9 C) Z) `* Q
- )
, X/ d4 y9 p( Z( I1 u7 e - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))& X. s% m2 f6 J0 W" L
- (entmod enlist): P' i/ o: L0 N ?+ f
- )
* A# l. l' K' p1 I8 R$ x - (setq note "\n....Text Only Please. \n ")% ~6 M1 l, H6 l u7 v# M+ y# j
- )$ z1 J- K# m) L3 j% `4 V
- )" v# m7 v; Y( [; A x4 Q- i: G) j
- (setq note "\n....Nothing Selected. \n ")
; c! e% L- y: t+ w/ J5 m - )- P$ A7 f' l1 n- u# k+ F6 E
- (setvar "cmdecho" 1)
; k# G6 J" H( D2 ` - (princ note)
' t& D. U! V$ H+ m/ ]6 }0 | - (princ)% I3 ~( [2 }: Q+ W' I& K
- )+ P% P/ x/ B5 W. z
- * b F; E) f' E% P
- ;=====================================================================
# f. c: L9 L, Z/ N- F) P - ;==================== NEW TEXT STYLE UPDATE ==========================8 y4 h5 ~* ?$ I. \* y7 R
- ;=====================================================================
/ f: r- c& W. R7 L; ? - ( _0 Q* k" r6 R3 ?7 Z' c$ h' d1 e
- (defun c:nS (/ tdt ssdt sodt index) E: B- e: y5 a5 X B# r5 [. f/ h% q+ c
- (defun ObjName (ssdt /)* m: | L2 v- w: q
- (cdr (assoc '0 (entget ssdt)))
+ U1 ^/ B8 i) W - ) |( R: z( @; p3 q+ L( k; y
- (defun MoPL (ssdt /)
) o K8 p8 v3 l: E6 d9 G - (= (cdr (assoc '70 (entget ssdt))) 0)" F4 f5 p0 @8 ]/ k Y5 T w H9 K9 z1 e
- )
6 P( F1 |8 ~: b/ v - (defun NoiPL (ssdt /)
% J" O# j5 M$ t. H - (if (MoPL ssdt)1 S& G- C c! j* r2 |5 O7 h. e7 @
- (command ".PEDIT" ssdt "J" "All" "" "X")
8 `& d6 E$ B _9 K( p - )4 i# n, H7 L' K
- )% `7 g8 O9 T1 Y% I1 ?3 h
- (defun NoiLC (ssdt /)
5 {' d' u2 l# \: B/ x4 o/ { - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
1 ]) F& ]6 e3 q - )% u# t* Z8 }. q% h# F
- (setq( M& U$ ]7 r" s& r% W' } |- T
- tdt (ssget)0 S; w) ^, ~ m0 L! K
- sodt (sslength tdt)
) s- a" S% p+ F - index 0 \9 X S2 k: t, R) o. r$ P2 n% S
- )7 h6 M" z1 _) D* Q9 t
- (repeat sodt
1 N9 n3 Z A9 v. e3 n# z8 G U - (setq- T0 K( P- j. E: Q6 o9 y: B I
- ssdt (ssname tdt index)
{, }- }3 `( C" V U6 ` - index (1+ index)
. T! @: e% {" K7 }; b- I3 I9 { - )- J5 d5 ?" Z8 t$ X& @
- (if (or (= (Objname ssdt) "LWPOLYLINE")
6 [1 d! ~) j' k - (= (Objname ssdt) "POLYLINE")
- a4 D+ Z( x1 M9 C/ U - )
4 }" {, O2 w# a) f% v+ X# Z - (NoiPL ssdt)6 j. j7 U6 _9 x3 W+ o! Z1 [
- )7 r! l5 r+ D Z) E* b/ r3 Z1 ~
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC")). q6 i! H* c6 |: a" K
- (NoiLC ssdt)
V! |# Z- l, o/ N* e0 t* c - )5 u& a# R. _! A4 ]* O* c
- )
+ w: }$ N" K9 I( J - (princ)$ p" L: G* D5 N; ?* C
- )* ]. Z4 d4 X; _
- 6 B$ {' U; z( o0 e" l) w. O4 W6 [
- ;=====================================================================$ @3 B; j8 _- A( G4 G1 x) l
- ;;; AREAM.LSP- P: p7 A" U+ ]; v# @4 A
- ;;; Function: Calculates the total area of selected objects4 t* B6 H- j G
- ;;; By Jimmy Bergmark
8 u% v* i/ m5 x9 X" r. Z) x - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved/ s6 B. t" X- }, O5 x
- ;;; Tested on AutoCAD 2000
/ x9 f. y$ ~ v+ B$ n( f - . k! b2 R4 o/ V; q* y# l
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
1 Y s7 n. a9 A* X* [ i, `0 x3 F - (defun errexit (s)
' M3 h" b8 [" Y+ `: m1 N - (restore)
) d2 o: d$ w! A/ M - ); y1 k+ f# X& k# ]) A3 L8 ?+ o5 z
|1 F+ Z) [8 R8 e# u- (defun undox ()4 @; p) Z1 I6 G! B! a
- (command "._undo" "_E")* v$ b! y+ a r
- (setvar "cmdecho" oldcmdecho): M# T0 `6 H8 C/ b
- (setq *error* olderr)
# s8 b3 `! M9 Q+ g% r - (princ)( Q+ E- q' v9 n! Z4 ]. r
- )1 s2 R U- u2 B, l F
- ) o7 X9 }! q8 `- W+ K) d
- (setq olderr *error*5 q. M* R& P; D+ [3 d; Z% @
- restore undox
7 O. P. [8 p+ y# Y - *error* errexit
$ g' T/ v- v/ D0 j E - )- r8 k% ?) O9 T$ P, o
- (setq oldcmdecho (getvar "cmdecho"))
" [9 k2 j4 E4 d$ d8 b - (setvar "cmdecho" 0)
& q9 I2 s: i3 @, F7 s0 M - (command "._UNDO" "_BE")
0 p- C9 q1 q+ i8 m - (if (setq ss1 (ssget '((-4 . "<OR")# V+ k$ K3 K4 ?4 w6 r
- (0 . "POLYLINE")3 V1 P; ^# m- Z+ [- Q1 V3 u4 x
- (0 . "LWPOLYLINE")
0 U1 _( j) W6 r8 e# x2 ~* x" R - (0 . "CIRCLE")5 c8 R! a; d$ ^2 ]$ X3 G- _% T
- (0 . "ELLIPSE")/ o( u, z& v$ F# p, i
- (0 . "SPLINE"), @7 p) V+ U. v- [
- (0 . "REGION")
& Y) N- r& j& x/ |+ K/ I - (-4 . "OR>")
7 s f* W0 m3 E+ U( G' Y' x9 t - )
. c. e& n* O( D5 w& t) { - )
- n1 J3 S7 Q5 e% } - )
4 P9 h- u' R' Y r - (progn. m" J. W' ]3 z$ z! d8 O
- (setq nr 0)6 ^$ B" B# P# U1 ~$ N: P
- (setq tot_area 0.0)
# |% i* w& M+ e; Y1 s: E3 C - (setq en (ssname ss1 nr))
" V* s% ?) }0 v) ~& v- x( a - (while en7 F0 {& c; L0 ^) J. F2 _
- (command "._area" "_O" en)
6 x) n U3 w+ c" E+ u1 ?2 r - (setq tot_area (+ tot_area (getvar "area"))): z# z1 L( T, w" Z
- (setq nr (1+ nr))$ v" m. B6 Z3 r" E# Y8 ^
- (setq en (ssname ss1 nr))1 @. |$ @/ Q7 O+ @
- )
) k. \# S7 K+ e- N' F+ f - (princ "\nTotal Area = ")4 G, Q4 |2 I3 n2 e# ^; L6 g
- (princ tot_area)
. t# G7 t0 a6 F% u/ { - )# M o6 q0 c5 I9 u
- )
" ]; ^: z+ H) I' {7 u - (restore), a2 a3 n7 Y% l- M0 @8 n4 A' m: z
- )+ A* B0 W, J0 {& B) \) \$ A
- 3 p3 f. v6 M$ A' x
- ;=====================================================================4 h! H- ], {, V5 Q
- ;;; By Jimmy Bergmark- c z' z; }5 L8 ~! }2 J" v
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
( |5 U! q8 o! y/ b - ;;;
2 T, E E$ N% R( } - ;;; Created: 2008-03-31
+ ~4 h; _' y1 m* G3 O$ a( W - ;;;/ t& L4 T0 d8 O+ c2 V
- ;;; Convert Attribute definitions to mtext
3 a1 A& D/ o" n$ S - ;;;
$ h3 t6 J7 n! w6 N9 K7 t - + \" R# G( e0 s0 b5 J3 r R% p: f) z
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
0 l/ v, [0 ]( [( [% Z t( @( ~ - (setq eset1 (ssget (list (cons 0 "ATTDEF")))$ ~8 v" y( g+ |9 ~' X9 D- g5 u
- blkcnt 0
# u9 H& t+ o3 W - ) |7 d" v4 l& D4 f8 E" W
, ^0 o7 c' v8 V- (if eset1
9 W) s% A; z3 i' G t - (while (<= blkcnt (- (sslength eset1) 1)). w4 _ s, k4 {
- (setq en (ssname eset1 blkcnt)$ D7 O& M) O: L: |. ~
- enlist (entget en)4 x* j6 R1 Z/ ^: G- \
- ht (cdr (assoc 40 enlist)) Y7 P" X a. Q# o2 p
- pnt (assoc 10 enlist)
. e J/ J0 A! S2 w* j' w - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
+ D! J0 v! `" g8 _2 L `/ Y8 N - space (cdr (assoc 67 enlist))" B: j7 O C6 O9 \" s( k
- )
) _1 N8 E1 a6 \1 ~+ V% w8 ~; U - (setq vl (list
; g- [* n) X; j - (cons 0 "MTEXT")
) |) l: e* e1 H - (cons 100 "AcDbEntity")
) v+ u: h- d& C4 E6 f3 B - (cons 100 "AcDbMText")
o- F& |9 \* n/ t9 F/ {6 G3 w- |6 ` - (assoc 7 enlist)
4 M* I$ c1 m+ W% P" ~$ _4 g - (assoc 8 enlist)' A. j2 v% e, F6 K5 k& K) i Z
- pnt
9 B5 ?( O( q3 J, i1 n2 \& o' } - (assoc 40 enlist)
' q6 U! y. m& A - (cond ((assoc 62 enlist))
* M1 P4 T" E. e' R" z - ((cons 62 256))
% D% O; f P1 M: }2 W; g9 G" m - )3 H) J0 A y v; _. e
- (cons 1 (cdr (assoc 2 enlist)))1 c$ i1 a, P* u" `' u
- (if (= space nil)/ h) B/ q8 Y" z% I, m. v+ x
- (cons 67 0)
0 x% d9 W3 f0 B& N' |! n0 P - (cons 67 space)# r: Q: R1 e u1 ^& `' {, m; x( s. D
- )
& e: A; [2 @ N - )( [6 `, n+ G6 t6 h
- )
+ y; n' o% `% l* t - (entdel en)
3 k# h0 I# H6 A8 L - (entmake vl)
% n. a+ s" u* g& W9 V) \ - (setq blkcnt (1+ blkcnt))
' z: T$ c9 L+ e, i' n" S/ z - )
* M; ]/ V a- a' J* C% ] - )
) Z% p& U& N* e7 J4 V6 o. k8 o+ O - )* [& m/ j" r$ j/ Z$ ^7 h* h. T5 X
- / ?! p6 Q/ {0 @1 x
- ;=====================================================================
9 B& n- ^: q& u- J/ K' E1 {
, k6 N$ s `5 G" `8 O- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)3 @; M4 u* @: ^9 Q- p: u( H
- ; Khoi dau cua chuong trinh3 z. |5 C* f# Y8 d# A6 [" o
- (princ "\nCopy Inteligent...\n")' l( r7 a) e7 @% U+ j# j
- (setq luuecho (getvar "cmdecho")* `5 A( k- S# f: _
- luu *error*
/ M! O. h+ w. _3 S0 W - *error* ketthuc9 Z6 Z/ |9 @) |8 E3 G
- cumdt (ssget)
1 v1 Y8 i- q) j5 { - dodai (sslength cumdt)
0 @% K2 M; G0 t; q$ o8 w4 i - goc (getpoint "\nSelect base point:")1 D5 c: \6 k+ F/ ]6 I4 Z, G
- thoat nil
7 O5 ^: ~; q, S/ h3 J2 u - dem 0
/ g. M8 J" u, X) s! _ - textxl nil
/ n" E6 o! W( s; @7 _ - );
6 T) x+ `" O4 g! N# ~) ` - (setvar "cmdecho" 0)
; ]0 d% s4 x; p, s; O - ; Loc ra duoc ong text de xu ly2 |+ T8 X6 I* C9 h: Q9 j
- (while (and (= thoat nil)
" ?& I3 ]+ _3 r- V; f( S$ X; x - (< dem dodai)
' [2 X. i6 F/ L7 k0 |. B - )
8 F1 R4 x3 X9 r% @: f% [ - (setq ten (ssname cumdt dem)
* B. H0 Q8 i- c - dem (1+ dem)
, [1 }4 K- g8 S6 X6 l A/ c. K - doituong (entget ten)
4 j! m3 A H1 b2 Z - kieu (cdr (assoc 0 doituong))
2 s- j+ e3 m! V9 x& }0 n2 ] - )
% n" H: t a: [! N -
, g9 b; M; m* K3 s1 W - (if (or (= kieu "TEXT")! [$ H* z5 w o0 d; t& L
- (= kieu "MTEXT")
1 x" j% D1 C) q; R* d2 ^ - )$ K8 `% \+ j% Z5 `" q: _ F# w" g
- (setq thoat T0 l$ h1 y. _) ^4 C2 y
- textxl (cdr (assoc 1 doituong)) 9 e( X- n. N1 J; Y/ b
- )0 j" r% @( p4 {8 g' O p* I6 n3 Z) I
- )) ^8 ?2 ~# D# {* _. L
- );- I: J( m1 Q$ \
- (while T 8 w6 Z0 H3 W" }
- (setq toi (getpoint "\nSelect next point: " goc)
4 a% O; L: W0 |8 G, U5 S - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))1 b! L* ~& ]6 [; q3 h4 n" k! p
- dem 08 |$ k* y* |. c1 Z- M, z2 P: G
- )
# H) H3 T3 B V* Y$ J3 n - (while (< dem dodai)
- Z% M9 _1 R* a) ~8 \ - (setq ten (ssname cumdt dem)
( o% o/ e# F3 B( h- D2 d7 v - dem (1+ dem)
# h6 f j# V. d' S7 |* w: K - doituong (entget ten)* v9 `5 ^, e6 @3 B
- kieu (cdr (assoc 0 doituong))
j: {; N L' X7 H" j4 x4 \ - )
) h6 p% Y/ [& o2 o9 ?3 D5 a( R - " P6 {& O, z% {% h8 ^
- (if (or (= kieu "TEXT")& j# P f4 v2 v, F3 G- g
- (= kieu "MTEXT")
: E* ^: w" L0 \0 D# y - )
5 q' E' a, X! d: X' B5 T; H* q - (doitext ten)3 Y- n' v5 R( n0 d% E
- (copy_dt ten)7 S, f0 ]3 K) `1 a5 y0 b
- ( Z" w" ~2 I7 p( w$ F
- );if
m& u* f# O9 F; V- d# G$ Y$ W - )
5 h5 n9 `4 m/ _3 d - );while
. L7 ^, L m6 `# w7 g E2 k4 G9 \ - (ketthuc)7 n8 H8 V: {5 g& T
- );defun' W; D& y1 @: P/ P1 G" P. k
- (princ)( z" N# R: T5 i3 o( a
- }, \: R, c, \2 _2 w6 N* l
- ;=====================================================================
( ?/ {4 Q' A% A* G+ X - ;;; By Jimmy Bergmark
) c+ w( B' }/ r" {: x; P - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
7 c) g3 k; C2 t - ;;;
$ A; P3 C8 ^, d% P/ F - ;;; Created: 2008-03-31
$ F2 Z3 F; f& _ - ;;;
& }2 _2 F9 y0 \2 Q! V" w - ;;; Convert Attribute definitions to text
2 m: H( n% y! | - ;;;% T7 C% k8 Z. L S7 s
- ; f- S$ L) L+ I1 d
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
/ `3 s' I) {$ _1 ? - (setq eset1 (ssget (list (cons 0 "ATTDEF")))2 F6 M- r+ S$ I- f
- blkcnt 06 F. Q& o' i! ~ n& Y, n
- )
8 ] N( c& J* W+ p& ] - * z+ _2 O* Y' x) r- l% p+ Y) E, l% C% k
- (if eset1
+ ~0 v# `5 F3 t5 A1 y3 q7 o - (while (<= blkcnt (- (sslength eset1) 1)) ^1 [8 ~% `' `; S
- (setq en (ssname eset1 blkcnt)& Z% B6 G! \9 s; d
- enlist (entget en)
}4 O6 w+ F# p- A: |1 K# R) h" B$ N - space (cdr (assoc 67 enlist))$ P6 i* i- }% B
- )
8 Z H# G2 T# Q/ z - (setq vl (list
. F# w5 ~: _6 S0 n' C9 C - (cons 0 "TEXT")
) T V6 A0 {8 u! d. v9 C% I - (cons 100 "AcDbEntity")
% ^2 C5 x" v" X - (cons 100 "AcDbText")
& [: d9 L \! i' P3 B& Y - (assoc 7 enlist)
1 F; W2 q8 e0 E" W4 A; l/ M7 D - (assoc 8 enlist)8 K' g n* S+ T R6 j2 P/ y
- (assoc 10 enlist)
/ c: U2 Y/ p: H# e' M0 I - (assoc 40 enlist)5 U" W3 ]: H* Q$ H$ e- M( E9 A
- (cond ((assoc 62 enlist))
& y* G( A/ m- v! z" L8 _ - ((cons 62 256))3 T6 g% c P/ @( [$ w. O2 G5 P
- )$ H& ?0 B% g8 f [# H' G" O) w
- (cons 1 (cdr (assoc 2 enlist)))
$ p8 I2 N# ]8 P- T" B - (if (= space nil)7 h0 g( L* m( Z1 g( Q
- (cons 67 0)5 X) g" v. R! z2 e% h& p O
- (cons 67 space)6 ?! i7 Z2 T8 `) @
- )5 X; k; ]1 F# G) v* d m
- )
9 c; I2 v& Y1 w2 F- R8 X - )
' I* y% N9 p4 [9 ]$ n - (entdel en)0 q0 r5 w* X( g% n; A
- (entmake vl)
& z' [$ D6 q8 p - (setq blkcnt (1+ blkcnt))3 t9 [4 h- [3 A1 a0 G
- )
' H/ p; F8 t) O - )$ p! }4 W/ J, I) p k, `: o
- )7 U% ~0 o; @) [9 X: }
- ;=====================================================================
4 H4 j+ R6 T8 i8 I6 w! q - ;============================ Doi Truc ===============================. ~6 J0 N+ a+ H' f; @" [& o
- ;=====================================================================
% P" m/ J( {8 i: u$ x - * s9 h2 F: k" W/ f( k8 y
- ;=====================================================================9 _/ u6 ]9 }; ]+ b3 r
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
8 e: Y+ w# q3 s - ;=====================================================================) [" l% w% w% u
- (defun c:ga1 ()3 K# u6 V' Y X2 H) ?
- (setq a (getpoint "\nChon diem: "))
1 S/ N; A8 E% p( ~/ ?7 _7 V - (setq b (getpoint a"\nChon diem: "))% w: ?4 `/ g5 U" G' x4 F6 h
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- D; ?3 f, T$ O2 Y+ g
- (command ".circle" c a)5 ? L+ |$ C+ B3 {' X4 T+ j
- (command ".line" a c "")3 x' L3 v& |) e- t: k: ]6 T
- (command ".array" "last" "" "p" c "1" "" "")5 ?% Z2 q1 U. m) O/ y5 r$ h% s
- (princ))* \7 e: b- ]0 S* i" _
# p6 P) z3 Z9 D9 [- (defun c:ga3 ()
) Y, R+ r( I* _3 b - (setq a (getpoint "\nChon diem: "))
- R+ l" e+ \+ M - (setq b (getpoint a"\nChon diem: "))
7 z5 j% m+ E% a. I6 H. F: {* [& y - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# h' G0 P# _+ ` - (command ".circle" c a); ^+ H7 s4 @5 n
- (command ".line" a c "")
, d* h# c$ C% \% }, [ - (command ".array" "last" "" "p" c "3" "" "")
* S D; @2 P$ M; S8 W - (princ))
# S2 H2 ]( V% V. T! J f% b. ] b
9 G+ S/ S$ C+ o& s5 W9 r- (defun c:ga5 ()
; @8 `# g7 C" W0 O- a/ ]+ A, Q - (setq a (getpoint "\nChon diem: "))# o9 F0 S8 t% R! q, r) F! t
- (setq b (getpoint a"\nChon diem: "))9 a5 {/ @5 S/ _3 U
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 B, }, v( P4 ~# n7 n; J - (command ".circle" c a)) v# I- W: u' a7 R" I2 q
- (command ".line" a c "")9 z3 S, }0 R& Z W4 v$ U
- (command ".array" "last" "" "p" c "5" "" "")
4 ]) B& X- J+ u/ N, C - (princ))" i1 c# M5 a) N" p- h0 w1 w! F) x
- 4 ]8 J3 v$ K* C% u
- (defun c:ga7 (), `4 k$ Y& n Y# I3 f
- (setq a (getpoint "\nChon diem: "))
. ~* V% A% f2 B3 k, W - (setq b (getpoint a"\nChon diem: "))2 m0 E3 u$ `9 \ q" k
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 ?% m% K* u. w - (command ".circle" c a)4 O# R: H8 I, ~: G1 S' v
- (command ".line" a c "")
: e4 L# }' a' T+ }6 t - (command ".array" "last" "" "p" c "7" "" "")5 J: t9 F! [4 L
- (princ))
' X! N/ v N' H/ N$ q5 f - ' s8 D# f* o& ~4 T
- (defun c:ga9 ()
6 S$ f+ j" N& _0 A - (setq a (getpoint "\nChon diem: "))9 E8 M4 R; A/ g, L1 e- e
- (setq b (getpoint a"\nChon diem: "))3 W8 } L& n. Y7 \0 @$ F8 o& m
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 ?9 J5 T- ^0 g; S: [/ o: R
- (command ".circle" c a)
K& a1 u6 j# P( e& e3 r) B - (command ".line" a c "")" C; f" G8 B1 N2 H. L% w; {
- (command ".array" "last" "" "p" c "9" "" "")
3 ]( ?1 Y6 Y0 E& \% G% L1 E7 v - (princ))5 d4 [% P. E i: c5 u! L1 T
6 g/ a( \% f" v& r5 i; e* O- (defun c:ga11 (), V6 N0 }/ _; q0 y [
- (setq a (getpoint "\nChon diem: "))! H* }1 M0 ] a. ^8 I
- (setq b (getpoint a"\nChon diem: "))9 x X/ i- d9 f: _) h; ~$ W
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. U3 ~% f3 Y: T! D: V$ [. X* @2 Y1 O - (command ".circle" c a)
! a8 a i5 ` T1 W - (command ".line" a c "")
6 b" D0 ~2 S2 H - (command ".array" "last" "" "p" c "11" "" "")
/ I# X- R( [, g& s: B - (princ))
- F5 L' O" G0 _' w1 B8 \: d& x( u: V - 3 q) E% m. v' @- [2 w
- (defun c:ga13 (): t j9 _- j: w t
- (setq a (getpoint "\nChon diem: "))$ L) r9 h; w$ H- O7 N
- (setq b (getpoint a"\nChon diem: "))
e @' T+ r7 c3 Y' u - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 F4 J. q- R/ d; f% z6 b+ x) @
- (command ".circle" c a)' E/ ~- a& _/ D2 X
- (command ".line" a c "")
! w' i: ]" H6 F/ k1 P - (command ".array" "last" "" "p" c "13" "" "")
* \. {5 T: H6 ]1 @& ?* x% | - (princ))
( ]2 U% R" G/ V7 y# E7 W - + n c) L# L% }* z8 O
- (defun c:ga15 ()# u3 X+ b% O8 O% y2 {
- (setq a (getpoint "\nChon diem: "))
0 j i8 M: B* t p - (setq b (getpoint a"\nChon diem: ")). H0 E* ~/ r0 n
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ A: D8 O) c4 f) ?9 A8 D: e$ Z' u3 A - (command ".circle" c a)7 T' @ z9 f6 R: I
- (command ".line" a c "")
, T1 g' \6 k& @" `& u- A: U - (command ".array" "last" "" "p" c "15" "" ""). `: G: R s0 Y/ H# s6 ~
- (princ)) c. J! g6 y2 i' ?3 A: w3 O5 H. f
, z2 s" g) J9 g* R6 i6 q4 X8 ?- (defun c:ga17 ()6 K7 p* L) ?5 E
- (setq a (getpoint "\nChon diem: "))4 K0 U' L# d0 J8 V, D
- (setq b (getpoint a"\nChon diem: "))
: X. e3 m T, } - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ t* Y: J) O( M7 \3 q& I
- (command ".circle" c a)' Z6 R+ [; f# J0 y
- (command ".line" a c "")/ s1 x1 a( p# m! y5 F, r$ M* U
- (command ".array" "last" "" "p" c "17" "" "")! ^6 J# c7 U% _2 a
- (princ))
5 f8 S1 G2 a9 w( M3 c" T
: v5 \# ]5 ]! s2 o! [ @- (defun c:ga19 ()7 r% s3 _5 l o0 `9 N/ I1 }
- (setq a (getpoint "\nChon diem: "))% y% T8 [6 M6 t Y- a! W+ V
- (setq b (getpoint a"\nChon diem: "))
|" D% ^+ I) ~9 Z9 b# b. p' D6 k - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# |0 G7 |2 `0 {( O5 b
- (command ".circle" c a)0 {" W1 V, Q& K. Z6 ^0 F" v
- (command ".line" a c "")8 q2 z& ]* @+ V6 {( q4 b
- (command ".array" "last" "" "p" c "19" "" "")
( j' b5 _7 n1 z9 x# a) g6 l5 w5 x- {: v - (princ))1 Y! g4 ]8 }. S( E' R* _
( H0 ?- b$ T" e& S9 d0 c- ;=====================================================================$ C- m" A9 Z5 ~; F4 K2 I2 S
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============! U5 s5 l" F6 r2 D
- ;=====================================================================
+ ~. h$ y0 z; k: S' i1 o$ a: v h - (defun c:ga2 ()8 K6 h% G1 |* q6 J* ?+ z" l1 s4 x
- (setq a (getpoint "\nChon diem: "))1 g+ Z4 W3 n# [' [
- (setq b (getpoint a"\nChon diem: "))
; P0 n6 m) G5 h; f9 m1 G/ K6 q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 V+ D% r" s2 ]: W - (command ".line" a c "")
: P% A3 A1 _# x! g6 R& F6 T$ p - (command ".array" "last" "" "p" c "2" "" "")
. v8 n( [4 y% \ - (command ".circle" c a); g: c( s; d( J" l" F$ E
- (princ))
4 r4 }, S$ S, f4 F* q. U! ]6 ^ - / x8 y( L; y' N3 K* X
- (defun c:ga4 ()) `. z$ B$ L" R9 J
- (setq a (getpoint "\nChon diem: "))
! b" c7 ], L3 w0 I0 t1 l4 k" D6 Q+ c - (setq b (getpoint a"\nChon diem: "))
) o: H4 ?# B- X/ M - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ q! `' v2 y, X; K1 Z - (command ".line" a c "")9 {3 Y9 x8 C% H9 O
- (command ".array" "last" "" "p" c "4" "" "")- {4 t# u, t' b
- (command ".circle" c a)2 \9 O- m) h$ i, E7 M& w' z. c3 \$ `
- (princ))
- y3 Q/ G+ p: v" t, [' x( K; m
4 \0 t1 L5 Q; G0 z- (defun c:ga6 ()
+ k% c8 I9 q- ^4 `% V - (setq a (getpoint "\nChon diem: "))" n% h4 O0 ?4 h8 F5 g
- (setq b (getpoint a"\nChon diem: "))
6 \ L7 H# w/ q8 u# [7 r$ \3 ^6 E - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ Z; y S" v3 y" h - (command ".line" a c "")
' n& W" l! r' \6 M5 X3 E7 H! H - (command ".array" "last" "" "p" c "6" "" "")0 z. _& k% j. R# v2 @ X* t
- (command ".circle" c a)
. _0 h. r# p- B; ] D( U7 c - (princ))3 H/ ?- s" S4 }' n5 N* ?! b% J
- " ]& r, T! k( |9 B
- (defun c:ga8 ()
; _+ G" l' c2 H) v7 q - (setq a (getpoint "\nChon diem: "))
) i1 E9 s& I; p" u3 _3 }; @ - (setq b (getpoint a"\nChon diem: "))
, G/ w% P' b. p# B; Q; n - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' z7 @! j& n2 D - (command ".line" a c "")
z+ A# ~9 t4 q# k: H% M2 x- x/ V* _& Z - (command ".array" "last" "" "p" c "8" "" "")
8 \1 f, ]6 `' ^ J - (command ".circle" c a)
* d1 i A2 [2 e, p$ ^, J - (princ))
+ {! f: P5 }' M+ h
2 ]4 p; g9 u$ @! r/ ?. v- (defun c:ga10 ()
, q8 E% d1 N% d, M8 I M9 s - (setq a (getpoint "\nChon diem: "))
* ^# d1 [( \3 Z3 h - (setq b (getpoint a"\nChon diem: "))
/ N7 U8 L! Q+ @+ l - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& k6 Q5 A/ N# {1 @; \ - (command ".line" a c "")
6 B4 }+ s: B B% M O7 A - (command ".array" "last" "" "p" c "10" "" "")
x% ^1 @: S) w, C. `6 E - (command ".circle" c a)
- @$ t6 ~7 x. a - (princ))5 R: K# r) |. h
- $ b( k1 Z! Y Q. H; D) G
- (defun c:ga12 ()
3 }" C8 D7 S6 L0 E4 j% w - (setq a (getpoint "\nChon diem: "))
# }8 H. o/ u( |& P) `# @# a% X2 _ - (setq b (getpoint a"\nChon diem: ")); q7 G1 N8 m& U: a2 A4 m* D7 C* P
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 s' K1 g; F$ f% Z
- (command ".line" a c "")
7 |" m" ^$ y9 x& s) E9 v - (command ".array" "last" "" "p" c "12" "" "")9 C3 ^* X6 W# Q2 |, c+ W8 i: [! \
- (command ".circle" c a)
# G* F J& h2 j4 H' ?1 a - (princ))6 g9 M" C q, o# I" u7 D$ ]+ V
- / |$ x4 l) k# f# W7 o# V
- (defun c:ga14 ()- S8 x' |6 P L' ~+ D3 Y9 \8 A
- (setq a (getpoint "\nChon diem: "))
) j0 J5 p( Q. f4 _! }: c - (setq b (getpoint a"\nChon diem: "))
+ _, Q! v1 P T; O - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' e) ?7 ~8 @! v8 V, Y( X
- (command ".line" a c "")
6 p, v0 p. r3 T - (command ".array" "last" "" "p" c "14" "" "")
9 X, T8 B; G' G% o - (command ".circle" c a)
5 l4 Z- v% y% e' {5 } - (princ))
' l5 u# b; n* z: U9 U
% }" I* [: `4 n! q$ { q. \- (defun c:ga16 ()
' h" C# X4 _, ~5 ` - (setq a (getpoint "\nChon diem: ")) Q9 @. G/ \/ b% y3 {: J
- (setq b (getpoint a"\nChon diem: "))+ p' V6 `: \- p; k- C# v x5 G
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" J$ A6 m4 ]7 e& H+ M$ A - (command ".line" a c "")1 F1 Q3 x$ a) e6 W! ?: G C+ A
- (command ".array" "last" "" "p" c "16" "" "")
; O. K$ W$ X9 Z; t$ U - (command ".circle" c a)1 r- x; X( H/ x
- (princ))
# U# {% v$ c$ O5 n8 x1 M. X, C `: U
; V: |. v9 q& h: ~" M4 U5 ^- (defun c:ga18 ()$ O" Q6 h# T1 r5 Y& R+ @# ^; W4 Z
- (setq a (getpoint "\nChon diem: ")); J2 L e3 K! Q# B
- (setq b (getpoint a"\nChon diem: "))* D: x& S" c1 a! ]% N3 ]: F- P
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ d. ?6 E" |; t+ `0 }% g# p0 z - (command ".line" a c "")3 ?3 h# u; S+ t& w( T) T; @
- (command ".array" "last" "" "p" c "18" "" "")2 e, W* H S" y3 [: H
- (command ".circle" c a)% H( }: X" a9 w$ R" V3 q
- (princ))
7 j' r7 S: a7 c
- A3 w, O( Q/ l: {7 Y8 g- (defun c:ga20 ()' P+ g: l$ M* _# \; O7 h+ ?- j
- (setq a (getpoint "\nChon diem: ")). `, B: Q' T6 J- e
- (setq b (getpoint a"\nChon diem: "))
2 L+ {9 I! h' f7 `! J0 B$ ] - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 K7 D5 S& W- B. x* F
- (command ".line" a c "")1 I1 y- @/ f8 S4 e" h: x3 S
- (command ".array" "last" "" "p" c "20" "" "")
" l! S8 {8 |& G+ s5 v2 a - (command ".circle" c a)- i: V1 V) t* b
- (princ))2 Z6 K2 y' g K
- / D5 H3 Y! [( g) G) r9 ?
- ;=====================================================================
" D; a( h9 _$ `( A' K |4 o3 R( O# M - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============' [/ P, G: k* e/ C; k' U$ }
- ;========================== 06-11-2016 ~ 18h00 =======================
1 [6 t1 _. j; v; b# @2 Q - ;=====================================================================0 a( e4 M0 [; U# I
- (defun c:ga ()
5 Q! e. |$ o$ s/ ]$ S9 f# ` - (setq a (getpoint "\nChon diem: "))
0 ]; l9 {: _ E5 V$ ~0 a7 Y - (setq b (getpoint a"\nChon diem: "))
7 [, }. X5 F/ C- p - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' j/ V6 a; t5 B9 ^. T
- (command ".circle" c a)
; a/ d. A- X! G# n2 G - (command ".line" a c "")
" i4 c9 D' L1 u# T - (command ".array" "last" "" "p" c "NUM" "" "")
# w1 H7 q& [$ Z! w3 [5 Z# Q- ` - (princ))3 Y" d* u: `0 I, b
- ; H5 f' \6 U" U" A
- ;=====================================================================) @% B8 A7 I, O$ ?
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
& M/ d' a6 t- s% D8 p - ;========================== 06-11-2016 ~ 18h40 =======================) N1 T% T8 f# \5 q8 P! X5 n- K
- ;=====================================================================& k" N5 `5 b) f3 i- h( k
( U3 T2 j- s& S6 I* Q- (defun c:hoathi ()
$ `; K: F/ g9 |( c$ O7 Q: k! d - (setq a (getpoint "\nChon diem: "))
. i8 z' a- ] H( @ - (setq b (getpoint a"\nChon diem: "))5 i) A$ R: G3 ?6 n
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), m) Z8 Q$ W$ e2 w- M3 S
- (command ".line" a c "")
: L5 Z5 y. i4 P G3 L0 N/ h: y - (command ".array" "last" "" "p" c "NUM" "" "")
9 w4 Z' w" Z( d4 U - (princ))
: \8 q2 n: i0 J2 g - 7 |9 L1 d! }( B' x5 `/ W% V
- ;=====================================================================. D- ?1 d0 m4 v4 e4 _9 M
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
" n2 t3 c( f- u+ @1 n% G - ;========================== 03-11-2024 ~ 19h33 =======================
+ d, ^; b1 ^" g - ;=====================================================================
7 G2 U; Z z& g. m( T m, p/ e, D, z
C& Z7 J, v; W# C* c4 j- (defun c:cung ()0 U, S8 j! i! d; N4 B5 K z
- (setq a (getpoint "\nChon diem: "))$ k) b7 E3 r: p5 s) l
- (setq b (getpoint a"\nChon diem: "))
( B; S; y0 e* {% a- B/ j/ | - (setq c (getpoint a"\nChon diem: "))
: `* f! R/ U; w! G( \: f1 E - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- e, H, _7 c+ T) x9 C( Q
- (command ".arc" a b c "")4 j" o9 p8 ?! d" Z
- (command ".array" "last" "" "p" c "NUM" "" "")' k: }. k+ d" w3 u9 r* W
- (princ))- C% A8 ~: S9 p$ U0 K
- 2 b, P' o! a5 \
- ;=====================================================================
7 A5 {- }5 F' U - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============6 C0 m. [$ c6 K' `
- ;========================== 03-11-2024 ~ 20h02 =======================& s' ]. |- ?4 S' i7 g* l
- ;=====================================================================
& I1 B9 e2 a; [% z* e1 n( |! u
9 b6 f0 }. c1 c" g6 f4 b% k- (defun c:hecloic ()9 _4 }2 a z+ ?) f
- (setq a (getpoint "\nChon diem: "))
. M6 B, Y7 m5 z" z# }# y - (setq b (getpoint a"\nChon diem: multi "))* l& v4 A& F( |9 u+ y9 O
- (setq c (getpoint a"\nChon diem: "))(princ)4 x/ z: A6 M. a2 R7 ^( N
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& f" E Y( T0 K
- (command ".arc" a b c "")
3 l$ H5 A+ k# u6 ] - (command ".array" "last" "" "p" c "NUM" "" "")
/ O7 W+ w Z0 M$ \8 @ - (princ))
- m h3 r A4 u- D; L! x# c
6 w- L0 x' C& e- ;=====================================================================
- X- W; p% k' a0 Y9 E4 j$ ` - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============: p" M, V0 T: J# T$ h$ e2 _
- ;========================== 03-11-2024 ~ 19h38 =======================7 w) o+ L. Z5 Q( r' S: o' P
- ;=====================================================================
! r6 H( \0 Z t% P0 O8 [ - ( p L6 s; _% a
- (defun c:gay ()7 d2 Y$ k; R8 I1 P
- (setq a (getpoint "\nChon diem: ")), o+ l5 G& ]' a+ d; ?0 C1 X- p
- (setq b (getpoint a"\nChon diem: "))5 n0 J. ]2 Y6 o7 [5 c+ V
- (setq c (getpoint a"\nChon diem: "))(princ)( F, i# Z4 j" }1 i
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 i5 |6 q! q6 D! S/ J
- (command ".pline" a b c "")
; c1 q2 Y4 Q2 ~6 h% d - (command ".array" "last" "" "p" c "NUM" "" "")
2 ~, k3 }8 K2 p% N7 c# @ - (princ))1 D! W5 d. F* M1 v" G( t. v
+ O* H" v9 G# q. N8 C2 v: s- ;=====================================================================
7 K- G2 D6 t2 y8 L9 P - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
- ]) q! M0 d- S+ h4 D - ;========================== 03-11-2024 ~ 20h02 =======================
L+ G C9 ~' N; n: X* z0 v2 y5 E - ;=====================================================================
5 @: q* U2 K3 x2 a - ; M. o2 E& t& N" w
- (defun c:hecloit ()
+ i" s& J, q/ i v* c$ t - (setq a (getpoint "\nChon diem: "))
' ~3 t* n$ Q8 s) Y - (setq b (getpoint a"\nChon diem: multi "))6 a- Z; B: M- d* a+ r0 N9 r) W
- (setq c (getpoint a"\nChon diem: "))(princ)
1 b; H7 G$ {7 R& K - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 w8 o/ B% {: q" \! K - (command ".pline" a b c "")
1 ]9 C* i- K$ R/ U5 d5 y - (command ".array" "last" "" "p" c "NUM" "" "")
& k7 h+ c* K9 I - (princ))
- M/ P9 e3 V+ A' r: a: l: t - ( k) W- [% S" T0 h
% t0 z6 o/ I! P; o( R- ;;; ============================ Merge Hatch =============================- J' P* Q7 K: @% F, G2 ~) ~
- ( E0 g/ X4 k% h5 D5 E& m8 a
- (defun c:mh (/ ss entht sl i dt dtht)' H: y$ D4 \$ I: m* b% e, {
1 S' Z5 o* d6 l9 r @. u- (princ "\nMerge Hatch - free lisp from CADViet.com")9 h* E% m3 I7 W# Z. i" h
) B! Z9 }3 M A& ^9 z+ F) L6 K( Z+ T- (setq4 \, G4 G7 ~: U3 t/ b( I8 z* j" |
- ss (ssget '((0 . "HATCH")))3 o; @8 \0 b% [7 p; `2 B
- sl (if ss, M( h& Y K- h6 h: T' f
- (sslength ss)9 o& k |* p) E
- 0
; y5 ^+ |& D6 S3 z ~7 n) B - )
( I9 D9 X+ Q( t$ y$ ]6 ^ - i 0/ o* B. F$ H. Q: f5 ^4 Z
- l 0# ?" P- x$ ~2 c7 k
- )
* g1 K- E/ C- q9 j - ( o0 O* i! ?3 Z- {$ C% `+ C
- (repeat sl
7 _3 b" P" R7 C1 k. ], _ - (setq8 ^( H8 }/ r, s! `' o) x
- entht (ssname ss i)' H- e7 i2 l& p) U( j' U3 ~/ L
- dtht (getbdata entht)7 W, P8 O: n$ g; ?$ ]4 U$ `
- dt (append dt dtht)
0 d" L% g" ]! }/ f( r - l (+ l (cdr (assoc 91 (entget entht))))6 m |2 n6 a4 |8 y& _* Q/ Y
- i (1+ i)2 x( M" K7 F9 f& _) W1 E0 y* ^
- )& k) ]1 ^/ k/ w1 x5 t! G% A) V7 w
- ). o, V( J4 t7 w2 J' q- k$ x
- 2 w" U: D% q) F' B& E; d3 a5 K
- (setq ent (ssname ss 0)
1 w0 T) q9 d/ g, q+ k, | - ss (ssdel ent ss)0 R) }2 Y6 O) X8 B& Q0 r
- tt (entget ent)$ R- h4 R0 \, ]* N4 O% j% h
- duoi (member (assoc 75 tt) tt)
% `/ e) Q: p& ]- P! e - dau (reverse (member (assoc 91 tt) (reverse tt)))& z; b# K' t; X. {4 L, T
- tt (append dau dt duoi): P) N- r; q. A" {
- tt (subst (cons 91 l) (assoc 91 tt) tt)* V3 V H3 V6 D/ T% P0 u
- )
9 @+ d. e5 {& w; L/ o/ z1 z - (entmod tt)
2 w, z5 s' |# X" G: i
( t: ?! \. Q* A) D6 F" J# _7 R- (command ".erase" ss ""); @! N, k- k6 a& e0 D+ o! o& x
- (princ)
$ w5 T% i2 h% q J+ r - )
) J; M7 Q+ s0 Z8 ~# R$ ]1 s - & O3 p J' J9 C4 r
- (defun getbdata (ent): }9 q/ @. e1 b5 X
- (setq tt (entget ent), d7 d. l! h0 S' M
- tt (cdr (member (assoc 75 tt) (reverse tt)))
* v; J& M9 W. y1 ^ - tt (cdr (member (assoc 91 tt) (reverse tt)))
0 l/ }0 a" A" [8 W - )) W4 ^. z7 L; O% J1 L" e2 E( V
- )+ t) Y% A/ [3 y3 j1 U% A
- : F8 l0 d# S! G
# h3 P) f) T/ Y) ^: L" x/ n- (princ)" ~1 t1 N$ h: X. _! t1 |6 `' f5 J
- - X/ j% }& z- ~1 w# z. _
- ;;; =========================== CAC LENH LAYER ==============================4 I2 M2 L9 S0 P5 p! [& _
- ;;; =========================== Layer hien hanh =============================
; Y0 I: c; U! Q) W) C6 n; m
+ E( \1 h5 I. d" h" i9 E- (defun layset (/ LAY) (setvar "cmdecho" 0)! G' o+ `( a& K7 q+ @/ k( O- |
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))$ @8 G' t$ i' v' c" ^2 C
- (if LAY (progn
B; a0 c$ q+ J: h/ P* G; g - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
0 [. W5 b2 b5 h$ t2 {7 k# X( c - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
% ]4 Q- p0 O. H+ X) [/ m - (progn% {) t5 L- ?, \9 K
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) / H/ s0 m& s, \9 V. P
- (progn
, W+ c6 _ J2 P6 w! Z - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )( p" c; \. _+ k6 }5 _# g! F
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))7 o! i' o$ o3 V3 ` u2 R
! o2 i+ M7 W0 |9 C0 V% q: z- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
/ F, L8 G6 {3 `$ B( U9 C
5 _+ H; B) p. ]- u9 Q- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
- o8 Z K1 K- b5 @0 a% c - (if (not (setq SS (ssget "i")))
' ]9 C, T, W" A1 P& M! Q - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
- N2 p" `4 p" P! |# ?& E1 ] - (setq SS (ssget)) ) )
/ G6 V" ~2 Z* w - (if SS (progn
4 b1 @; A+ R% Q8 [- M1 y4 v$ u - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") % ]" v. e4 ]! [/ g& A
- (if (> (getvar "cmdactive") 0) 6 K5 N2 I( y" q4 x0 g0 x- M- C8 K6 W
- (progn
# e6 I4 Y" h+ C v z# {3 Q* Z. x - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )# a0 J( ~9 P& Q, A k; x
- (setq SS nil) ) (if (> CNT 0) / `3 o. Q3 T* m G. n; G
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
9 I1 ]1 J5 C+ `( [5 Y% \) b% s - (if SS (progn
+ r% q" x- q' a6 o# A. n; z - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
) Q- J" K. |, m3 H1 T& J) E, f, }4 |. A - (if (= (sslength SS) 1)3 n+ w& `% r7 `- I) K& P
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
- `, Q, @& v' e# G4 C0 K. ] - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
: N4 z5 O& H8 W) C! X( h - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
: J! K3 [3 d0 j o9 e' o) X* w; L
3 n, z) s& P: k( ~- ;;; =========================== Layer Iso ===================================
& G4 |! o' g1 b - 7 t& `' a3 Y/ T- T% W% ]5 M
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
) p3 r( O+ B3 J. ]. r, v - (if (not (setq SS (ssget "i"))) (progn
: x2 @: v& C2 u$ E3 j - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: "); ~. T& ~3 n8 _ N6 Q% d
- (setq SS (ssget)) ) )) a. V5 `# j7 A: I$ p. _
- (if SS (progn (setq CNT 0)
8 h# v4 ~: G F& {7 x3 l - (while (setq LAY (ssname SS CNT))
) Q7 ]6 p+ B2 z' v - (setq LAY (cdr (assoc 8 (entget LAY))))8 L! U8 e9 d$ d- S! e% _
- (if (not (member LAY LAYLST))
+ J7 C+ W9 \& s3 o/ \. M/ G: i - (setq LAYLST (cons LAY LAYLST)) ): o0 o$ n( [2 X$ ?. {$ u6 [
- (setq CNT (1+ CNT)) )
, [( v! i1 R/ ?" q: o. v - (if (member (getvar "CLAYER") LAYLST)4 u7 D" K0 ^ `* \, M8 H
- (setq LAY (getvar "CLAYER"))) j' S2 y0 I5 \7 a) Y4 A
- (setvar "CLAYER" (setq LAY (last LAYLST))) )8 N5 z9 r3 {' W$ f% o
- (command "_.LAYER" "_OFF" "*" "_Y")
& z3 I" n- r9 C% z h - (foreach VAL LAYLST (command "_ON" VAL))) u' z' e. M6 F& m
- (command "") (if (= (length LAYLST) 1)
+ X" g6 V1 F( }' [6 S- z- w - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))1 y% ? Y1 s; `) [; r& e$ Y
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
+ N: X' C, j+ {. J+ `% T - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )4 f. d6 x J& e: s( Z
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))$ u$ U$ h5 h" O! t+ n
% p5 U2 P6 M) L- ;;; ========================= Layer Match ==================================9 ?( ~% g2 A: V) p! K6 E6 H( d
D/ [" {0 h6 i3 R- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)# t' f. M, _ A/ |' S
- (setvar "cmdecho" 0)8 \, M. |% r( r% f
- (if (not (setq SS (ssget "i"))) (progn. x9 l7 I/ c) s) k; ]$ V
- (prompt "\nChon doi tuong muon thay doi Layer : ")
6 z+ E: L; b0 n* b% L - (setq SS (ssget)) ) ), [" d$ u Y3 O( l( ~, r4 q" L6 a6 K
- (if SS (progn
9 h! O$ I5 P& F$ a. F - (setq CNT (sslength SS))+ E. e2 n) ?5 A k% @. F
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") ' N1 X$ e4 m& R2 ]; H
- (if (> (getvar "cmdactive") 0) (progn
3 C, Z- u3 q( e% c; \ - (command "0,0" "0,0") (setq SS (ssget "p"), ~2 ^+ p. ~0 B D' k1 S
- CNT (- CNT (sslength SS)) ) )) I7 ~& B6 `( Z* R
- (setq SS nil) ) (if (> CNT 0) 9 a4 @. m" W- i- F6 I! ]
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) ) ~. \9 i5 y2 E: p
- (if SS (progn# y) J; C8 {5 l, u
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )% N5 s2 w9 r& R6 [
- (while LOOP (cond
. M) A* t9 `. g4 k4 c* | - ((not LAY)
. m2 J5 R# f3 h# ^- A2 K- `( ^ - (prompt "\nKhong chon doi tuong.")6 D# `) X- {# X8 Z" D
- (prompt "\nSu dung layer hien hanh? <Y> ")
" {1 u. ]6 d) Q/ l, V( m' R - (setq ANS (strcase (getstring))) P5 E, g8 e A
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))- a' x8 l) G( j2 M" M9 A. x: R/ y! l
- (setq LAY (getvar "clayer") LOOP nil ) ) )
8 u* J f2 @$ j2 \0 N9 y2 h p Q - ((listp LAY) (setq LOOP nil) ): P0 S7 w7 [7 T# n g
- ((= LAY "Ten")
. a% s* G. ~3 z- W - (setq LAY (getstring "\n>Nhap ten layer: "))
d0 _7 Z, N U% G; g - (cond
# G! N. y# z: B8 ? - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
5 R2 j+ ?/ C; D+ K$ b - ((/= LAY "")5 D/ I# A8 H- {! @+ Z7 U- e
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")8 o# t& }0 C% S
- (setq ANS (strcase (getstring)))$ S# D: ? s2 a4 K
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))$ l* _. t7 |) h" p. K/ L9 x$ F$ a' V! k
- (progn, h& I4 ^& r$ n, R! E& }6 p
- (command "_.LAYER" "NEW" LAY "")
- V+ W' e2 j) Q0 A( S* X - (setq LOOP nil) )* X) F' e0 @: e' z! o0 y) m; _
- (prompt "\nLoi ten layer.") ) ) ) ) )
4 p* j" {! l! m - (if LOOP (progn (initget "Ten")
/ e5 e; {8 f# O$ d' q - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
6 _( Y7 ^7 u) B7 h0 z$ A" w - (if (listp LAY)
- t3 t7 ?' _* m9 W - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )$ d0 v( ^5 l7 y
- (command "_.chprop" SS "" "_la" LAY "")+ Y- U. d5 D" ]( K
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )2 {: m; p3 B+ B, C
- (if (= LAY (getvar "clayer"))+ ]" `6 ]9 {8 W5 }* @3 m
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
+ R3 h g4 X7 j) u' ]) g& [4 ` - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))5 w9 a4 \' I! p# h1 L" \+ b
- ( s6 n6 j1 `# O; L$ r# i0 ?' N
- ;;; ============================ Layer OFF ================================= k& C( j" f3 P* s) {3 U- D# P h
- ' j; s5 |% q/ _! _! n( A
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
! ^5 z! t% B7 A% T1 W - (SETQ SSET (SSGET)) @0 M2 m* g b
- (IF (/= NIL SSET)
2 F; [5 r7 }) v, U# q$ _# L+ n - (PROGN
- L2 G2 q: K2 g# g. k2 G - (SETQ SSL (SSLENGTH SSET))
$ |, }: x, n- w1 ]# [3 ~ g - (SETQ LAY "")
! I& q& ?( K# |+ {2 B C - (SETQ I 0)
1 l( Z2 \& U( @; h) T8 M" r; J - (SETQ MODE 0)
! {6 G/ l9 u @; f8 X' F - (WHILE (< I SSL)
I7 ~2 P) d, U$ d/ X% Q0 l' B" P" L - (SETQ ENT (ENTGET (SSNAME SSET I)))
0 }3 [- f! k( ]4 C; W - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )* J& z7 W& ]& j/ J" n9 u
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) z/ s# e7 U: v5 v2 x9 g! j' [6 \
- (SETQ I (+ I 1))) b" ?+ U# ]( r2 T( @% N3 D
- )
2 I9 ]1 j2 G9 m6 h5 _ - (COMMAND "LAYER" "OFF" LAY "")4 I$ f X# O, ]- s0 M7 p: a5 _3 T
- (IF (= MODE 1) (COMMAND "") ), O! E" ], q3 m( v' u! H
- )0 n+ k, r( V' K8 G/ U) w4 ]
- )
$ S7 I4 M0 _: O% _5 T9 ] - (PRINC)0 U" K( H2 \! e9 b$ u) J
- )
4 K" m5 w3 s l+ J- U. r - & \% H4 }& W* q. \/ q
- ;;; ================================ Layer ON ==============================7 I4 h: H. S1 b- [
- % s6 N0 k8 a# v6 u4 e' b
- (Defun LAYON () (setvar "cmdecho" 0)
8 r$ k/ \, ]1 {9 n( O1 P" D- C+ z9 m - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")7 b5 ?# a; g m7 b2 j- x' y! {
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))/ `, U; W/ z& F0 O! k# d
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
# H/ P) G0 [5 w% N! j7 c - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))! N3 X0 Q5 S) D
- . K/ _3 i* X& B6 O4 r
- ;;; ============================== Layer Freeze ===========================
0 N7 w/ q# S& D- Q$ k L+ _ - 0 [/ m) w& ^% l0 o; q4 {
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) + M' Z G4 ]. U
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
4 }6 y' P! V# @1 ]" {- ^! H5 X4 A$ R - (IF (/= NIL SSET) (PROGN! m$ T( }! } H1 F% x+ o
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
# ~: _* Y2 D* D1 O8 B! a% _ - (WHILE (< I SSL)! Q2 ?. u H+ E, c4 p
- (SETQ ENT (ENTGET (SSNAME SSET I)))
4 E: e- y; ^) k# `- V - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
( W7 P5 v, M6 @ }6 y - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
! c6 W$ V3 }6 I" ~( T, O0 {3 R0 B - (COMMAND "LAYER" "FREEZE" LAY "")8 ?& I' h# [) V- H+ ?# M8 n; ?9 A, P; a
- (IF (= MODE 1) (COMMAND ""))))
$ `5 q6 E) m* k" U" H - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
1 _) P: h) G7 F - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )% F+ P& H/ a8 P5 N* f* I
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
, Q% _; [4 \! o. L q: _ - ; a# O# F7 h6 f* ^$ j5 G4 R/ A
- ;;; ============================== Layer Thaw ===============================
|0 q7 U7 L" P9 t3 M
% U' z4 `- c9 K: q2 d! T- (Defun LAYTHW ()
8 U `( B' o z, U* h, } - (setvar "cmdecho" 0)" @1 T- x, h1 y# t1 v5 I) G
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")5 X+ t& G9 K7 b
- (Command "_.LAYER" "_THAW" LAY "")
# W/ a3 g% G" n' V: n0 [ - (princ (strcat "\n Layer : " LAY " da THAW."))7 u, k4 ]# ^7 B, L
- (princ) )
* ?- z1 Q/ A& _' a, [ - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
" M @, C3 o D6 r7 y# h1 `" z
3 d) W p6 f% }% p7 Z* B6 |# P* I8 R- ;;; ============================== Layer Lock ==============================- h# J# I" N6 i9 k: N! |% ]% N
' D2 L4 v3 j7 @% v; E- J. }( x0 R- (Defun LAYLCK (/ LAY)
6 f+ J+ F, q' w9 p& u* N+ B - (setvar "cmdecho" 0)* j. B- M0 Y* K L6 C3 Y
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))! Z5 d8 r+ Y# J
- (if LAY
. K4 e4 R3 B7 k' e' E& a3 t4 d - (progn8 H' {* Z7 P8 P
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
' r( |) H6 S$ ^- T) L! i$ R4 o: d& F - (Command "_.LAYER" "_LOCK" LAY ""), p5 C; I* W$ ~- `2 o k
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
* R7 W a: K/ l. u9 g$ r: r v - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
/ b" Q* J! g! O5 H! J; z
) P8 S7 I" p5 c0 t) }& l+ e+ t- ;;; ============================== Layer UnLock ==============================( h( Y8 K# Q) z% c3 f0 i
& r* i0 b' M: ]7 J1 A9 K5 B% t- (Defun LAYULK (/ LAY)' X+ i1 p# b1 q& M3 j
- (setvar "cmdecho" 0)
( u+ e) Z% k' {/ T2 f) C - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
# {! ~4 [- k6 f: I5 U" X3 m - (if LAY1 K, Q2 b6 q4 `8 ~* n/ H
- (progn4 e- G# P" `' D
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
$ Z- C0 \ ~! T v5 t) x - (Command "_.LAYER" "_UNLOCK" LAY "")
4 h9 l. @: }9 x% | - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
1 X. _/ t" O0 k* s9 S8 W3 b - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))/ ~7 d) b+ t. \0 r: A/ v- L
- 5 y# f/ i+ Y; ?/ M3 z6 V7 Y1 ^
- ;;;===================== Delete all objects of Layer ========================" B3 g: a; B2 o/ L' [
- - b1 F R) B/ \) {* h" x
- (defun DELAYER (/ ocmd L S) C; r4 H3 q" C) l3 k
- (setq ocmd (getvar "CMDECHO"))
! f& g7 K! p7 y0 [$ k - (setvar "CMDECHO" 0). e1 o& ~2 w. ^# y. ~- f. F; V/ H k
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))
" h8 D6 F, S# c8 d - (setq S (ssget "X" (list (cons 8 L)))) % Z- g+ a% A: o0 ?6 I
- (if S # a* z0 c: ^6 A( a3 o4 z3 T) q
- (command "ERASE" S "")
4 Z$ ^! M: [0 {8 { - (princ "Layer empty or not a valid layer name.") ) 5 G& k8 V& k6 [; I! {! E
- (setq S nil)
& n9 x$ Y$ ]+ u; g - (setvar "CMDECHO" ocmd)
! h! c* a) H" r. f+ [" G - (princ) )
5 I8 K9 c- F* l& {- V& T - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
: c: U) L+ ^) E0 f
9 i; [8 b: K% B' R- ;;; ========================= HET CAC LENH LAYER ===========================3 Y; a0 |6 K) V' \$ P) A' J, G7 _4 w
8 G/ a, p% A1 W1 x9 ~) h; I8 K' v0 m- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
2 v5 |1 d( ~. j5 }/ H - , e$ O5 z, d5 A# W2 Y7 F; n, H
- (Defun C:EET ()9 M) a: {- |; W* r0 d6 v9 Z/ ~4 v
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)3 W! |& a z/ i# g
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
/ a& B3 o2 n* M& {, t0 o - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))% ]# `) ?" x8 C% k
- (Setq I -1)
0 g6 t0 g! N, C/ V - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
; @7 D) u4 E, x0 a& m7 @# c4 h2 v - (Repeat LEN
+ l# e b0 ] K8 v* V - (Setq I (1+ I))) |: g1 h+ L+ E3 n1 q
- (Command (List(SSname SS I) SIDE)) ) (Command "") I! y1 k, K( O! B( U6 l0 k1 x
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
/ }9 h9 u5 j1 C& D$ P) h - 4 T9 C6 y5 E% [; H/ ~ }
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
8 |, T( e1 i2 q! r% Q1 K8 r - 3 {+ B" i8 o& C2 ~
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
6 ^0 [& S; `$ t# ~ - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND ")), y2 X8 L- k# h5 C
- (setvar "osmode" os)6 S. Z# B0 @, ~" E2 l- g
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
% i( [( s; A: k, [) e - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
( ` N! r* |% J4 u: r1 f, _! |! X; r - 1 d5 E. F$ n3 I
- ;; ================ Change width of polylines =========================
7 h$ o* N& k' A* y* V" v - $ ]* ~) N5 U: D q; I
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
# {* E9 Z" h1 M$ j2 ^! q - (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
! p; _# _) F( j4 p7 x$ Y5 v - (setq b (ssget)) ) f' W5 U/ o7 H) B; {3 T7 J8 m& ]# m; q
- (setq sophantu (sslength b))
+ j! i- V6 r7 b2 {; E7 j T - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))/ F. L6 p* N; b. P' e* O6 \# I
- (princ "\nDo rong polyline <")
! G* w+ [* |! o9 S0 {3 d* N - (princ ha:wid)1 j0 P& H3 M3 y
- (princ ">: ")
) ^! T! p, _6 B1 y - (initget 4)5 y0 D$ y9 \, X. W
- (setq ha:wid (getdist))( `% }6 K6 f5 V( f* _' }
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
' `- ~- ~* v1 o+ R% R# i2 ~; u - (setvar "tracewid" ha:wid)4 t0 w2 b, `, ]
- (setvar "cmdecho" 0)4 Z0 ?% `/ K1 u, E3 ~
- (setq sodem 0) 4 K8 O) z: y. c- W0 u* i7 X
- (repeat sophantu8 f: j g0 u7 ~' N. m- `
- (setq a (ssname b sodem))8 ^6 k1 i* f P+ Y# V; U7 ]
- (setq list1 (assoc 0 (entget a)))) L( ^8 U5 \& M) { H
- (cond) |9 ~0 Z8 K6 F' K: ^
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid "")). F" d. b4 P+ E& O
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) % }7 j) [$ R6 I- @5 a+ ]* P
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))% ?, Z5 U2 [6 j) k" \
- (defun c:wp () (wp)) (defun c:pw () (wp))4 i4 @7 t5 c! D* i( a1 m2 {3 K% ~- s
- 8 S, d) W% |6 }) q0 Z$ u9 m
- ;; ================ Change radius of circles ==========================8 @' s0 D P$ h. }$ p
- 6 P9 [; l0 b7 E3 K( ^$ Y, d
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
, Z7 o" S! ] A; M6 t7 v - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))/ [. h& {% I3 a F
- (IF (/= RD NIL) (PROGN (SETQ I 0)
# z @: G5 P% m4 E7 C - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )8 H* a) Y! T6 _$ `: ?* o
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN: T, z; P4 n8 u
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) ). e% m' V2 W* w1 b- o
8 b) d; H1 B+ f2 I- ;;; ============================== TEXT Hight ===============================
3 |: N, t) n* K! b
% k; k/ p6 h" @5 r. C. \- (defun texthght (/ ent hght)
. e U( J: N# o# `3 b& h8 O - (setvar "cmdecho" 1)6 T) \. O7 F- c& t+ u7 E; I
- (prompt (strcat"\nSelect text entity with required text height"))
; m' I2 G0 i( e( T) } - (prompt (strcat"\n."))* b4 [" t% N8 U
- (setq ent (entget (car (entsel))))
' |- v( L# D) J7 t0 g. j, L - (setq hght (cdr (assoc 40 ent)))' E" L' v) S' y2 n) z+ Q; k @
- (prompt (strcat"\nText height now set at "))(prin1 hght)
0 L+ } K6 g# v) [+ m! C - (prompt (strcat"\n.")) * I w X' Z' v/ \
- (setvar "cmdecho" 1), z6 @! Z* s: m; K/ G
- (command "DTEXT" PAUSE hght "") )
1 c) h2 ]# J; M& x6 q& Q8 I - (defun c:teh () (texthght)) (defun c:texthght () (texthght))
) q8 X& a0 C [; H2 `
?3 c% c5 j8 T: p- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================; N+ L+ t6 g f6 ~0 g
6 {# r6 }/ D8 C, U& V$ n6 L- (defun c:tuu () (setvar "cmdecho" 0)2 K3 h! o- |, G- S0 f ?/ S9 P
- (prompt "\nHay chon dong TEXT can gach chan ")* U) [: X6 L3 f: i( |
- (prompt "\nSelect objects: ")
2 V, N! n+ i5 q% M3 l0 H - (command "select" "au" pause)+ m: W& x# }) R0 R
- (setq sstxt (ssget "p")
+ [7 o- e# \* X9 k5 Q2 C - sslen (sslength sstxt)# x( a2 _# L+ i
- ctr 0 )
* K/ b" @5 h7 W& H/ Y - (command ".undo" "mark")
# Q) s1 A& d$ {- F) z - (while (< ctr sslen)7 d/ Y& _5 s$ I* q) K& Z+ `/ v
- (setq listxt (entget (ssname sstxt ctr))
: h3 V% K! {1 A5 S/ q+ H$ i - txttxt (cdr (assoc 1 listxt))
: S H: N& c/ ~8 \ - enttxt (cdr (assoc 0 listxt)) )
1 ~1 \% |/ |& {; V4 H - (if (= enttxt "TEXT")
5 n; {" a$ S' M) d2 H# l* u - (progn" B4 S$ E% v# v) o; `! g
- (setq testxt (substr txttxt 1 3))1 g- d& G# j, M2 b, M
- (if (or (= testxt "%%u") (= testxt "%%U"))7 h/ K: U" |' _% Q( _9 v1 ?
- (setq newtxt (substr txttxt 4))" v0 S7 A9 P! V
- (setq newtxt (strcat "%%u" txttxt)) )& b& P$ W7 P9 w' p8 Y
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))/ a% n4 P: j7 L% [
- (entmod listxt) ) )
) \* c/ y& \5 U; I% _* N. U6 l - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
2 W1 O1 j2 d" V( Z T" |
3 ]9 w: \: J/ ^9 C; p9 R. }+ m- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================. n$ W! ], }4 n) u6 C
- ! w1 e# @1 a* g# M
- (defun c:tob () (setvar "cmdecho" 0)9 F! h) ]1 H. S9 b1 x, i) |! @
- (prompt "\nHay chon dong TEXT can gach tren dau ")
7 |8 ^1 }) K: h$ B9 v5 M - (prompt "\nSelect objects: ")
4 q9 V7 @1 R; q+ L$ c' F, d; D( O - (command "select" "au" pause)3 p3 u# U) M y1 Y+ L
- (setq sstxt (ssget "p")
" [2 O3 ^( a( D - sslen (sslength sstxt)
) O& ]7 [ G! f3 U3 c4 c0 X& ~ - ctr 0 ). X5 N) l! I3 E+ S" k
- (command ".undo" "mark")- m! Q" u* @0 e% B6 Y7 l+ j2 u# r
- (while (< ctr sslen)
# K9 w) V6 K" p C* R! l3 ^ - (setq listxt (entget (ssname sstxt ctr))# I3 d# W- J. d1 l4 K# Y
- txttxt (cdr (assoc 1 listxt))
+ E; H$ E+ L/ t! D1 }2 f: N: y; K& g - enttxt (cdr (assoc 0 listxt)) )+ @, V" g! }" y3 m' g# ?
- (if (= enttxt "TEXT")9 p# r6 \8 c6 c" z2 \% i
- (progn7 Z8 e) V N& X: t
- (setq testxt (substr txttxt 1 3)), ?( @; ^ F5 o% Z9 T- `- [ d2 {& d) y* I
- (if (or (= testxt "%%o") (= testxt "%%o"))
: z7 s1 }9 N2 t; I3 U8 }3 s' R - (setq newtxt (substr txttxt 4))3 s6 Q: G+ E' [2 [: t5 Y
- (setq newtxt (strcat "%%o" txttxt)) )
5 o7 D2 C" G; S" B - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))$ N7 V* d" u7 e
- (entmod listxt) ) ) g3 B. T: f) B5 g- V" ?
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)). q7 P @0 C+ h1 ^7 m( B; E7 w& ]6 l
- 0 }" b3 ?4 p( C: R, F& B# x' ^
- ;;; ========================== Tim & thay the TEXT ==========================- y# v, d7 \, g, t. N3 ?
5 C5 ?& L4 ~/ ~* c- (defun frstring (str search replace / str1 str2 index find)- B0 G; G; }% T3 L. V$ _0 }: H
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))5 r) U/ v' {+ n$ e3 |
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
6 x* W! z- X0 @- I. n3 _# y - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
8 A3 o! M3 X$ P! i" e4 {: A0 K - (defun hai (/ dial) g" b! Y" j' N8 t% O( p
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog# A9 r8 @5 @1 T) P4 g5 b1 y
- (if (not (new_dialog "find" Dial)) (exit)) ;;. X/ {' h, f# b$ G( V7 E0 \: [
- (mode_tile "find" 2); Tao dau nhac tai hop thoai
, e( \, r" [' g - (action_tile "find" "(hai1)")% f# X4 y" b4 d/ d9 W
- (action_tile "replace" "(hai2)")3 m' z3 u4 A( b3 S+ u- V
- (action_tile "cancel" "(done_dialog) (exit)")
7 n( b2 |1 k5 }, A2 d" N - (start_dialog) 1 M! H3 z" ^5 f) o) N: O# @
- (unload_dialog dial))
& ~" K6 h" t4 h& u2 T1 G! N - (defun hai1 () (SETQ str1 (get_tile "find")))
" l5 Z' s8 |7 J/ s+ W9 A3 N - (defun hai2 () (SETQ str2 (get_tile "replace")))
- X4 R* N$ C1 z; @4 b1 w - 9 m; c7 F" M- e
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)' p: O6 M3 l6 q3 B& b
- (hai)
2 E& v0 J( O& t- u$ [% ~ - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
: Y5 P' z$ y. D& j) s4 r - (progn
# a) e: }8 l8 M9 U4 J4 } - (setq taphop (ssget '((0 . "TEXT"))))
5 }) m" h" `/ b) ^2 f, ^" L - (setq sodem 0)4 `( H" a! k1 r0 | d
- (if taphop
( w5 W2 r. W; F9 L& X3 g - (progn% p b: b+ T+ z0 b( I0 O$ k
- (Repeat (sslength taphop)( p- o, [2 Q( q0 I0 E. P
- (setq a (entget (ssname taphop sodem)))
6 |' Q; O1 g8 R6 F5 d - (setq str (cdr (assoc 1 a)))
' r5 U' `3 h$ [3 a: b9 t* O1 T! P% G - (setq newstr (frstring str str1 str2))$ F) q/ {: i: q" E; q2 n0 y; D
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))* ?1 M0 d0 ^6 ]+ s. O/ F& E1 r
- (entmod a)
1 n- T8 w7 j7 m4 e; c - (setq sodem (1+ sodem)) ) )$ H+ {6 g9 k' `5 t% j: F2 z% O4 p
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
% ^" M# R8 [" I6 P+ I+ \ - , e2 ~. l2 ]% S1 c' K
- ;;;============================= CHTEXSTY.LSP ============================= L2 s; B9 x+ M# m7 a0 J8 I# Q
- ' _9 A" P* `! t7 z- J( V
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")3 m' b+ F6 P2 o, o) A) A$ t
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
% s/ [" h+ W% B: g - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))% y e; H7 c0 ?$ M
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
& j' n8 e( s( R' V - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
B0 P6 n, |# d @9 O: R - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
8 H) q2 X" r7 x- C# J9 z8 [ - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))/ o5 ~& W) c' V n0 v
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
! N0 Q" Y9 \2 }4 x - (Initget 1) (Setq A (Strcase (Getstring# B) [. e: p: e1 [9 W1 \
- "\nEnter text style to change: "))) (Initget 1)
1 r6 i. k$ A9 p( j* o7 A8 S - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))9 R7 W% L( ^* g; q
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
) H5 |- v- J" [0 w - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
: U! e* Y& t" e( p% [ e7 S - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
$ {4 R! g; m" ?4 G! K" o. U- x7 S - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J)), J6 Q" G; T# a2 c( j/ [1 t
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
/ ]: T& m A; H - , h9 f( J2 x* B- O5 A' \
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))' W. {! a- o' [' X# K
- (Setq J (Cdr (Assoc 50 A))))8 F3 r0 q9 P; e. W/ l) f) B, z
- 0 a, X( ~( R& i" t6 n5 v4 s4 M. o
- ;;; ============================ DRAW CLOUD ============================= Z2 e' B& [" t2 J8 @
9 t/ y" p0 B c. {, s- N. c- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
* r- w) C. V2 U) J - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
n% m. t7 }( y& F - (setq la (getvar "clayer"))
3 w" p: ^, X; D( L; s - (command "layer" "m" "cloud" "c" "5" "" "")+ A, j2 i2 M3 K1 U# Y- B3 E* L
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
- g' o% K1 Y% U - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))1 Z6 y# W" `$ [
- (setq cnt 1 ss (ssadd))
+ C1 q F6 T8 c) n - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
- `$ C+ _7 V& V/ k# O - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
0 U3 S8 |- ^2 z$ z. ^/ } - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) )). `& W$ q# f4 ?- g
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
$ z$ R' x8 v8 w4 H( f - (command "pedit" arc1 "y" "j" ss "" "x")+ P+ V8 L0 M, ]. }( z; M
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)" y9 Q8 D" g+ ]% `' d* h
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
6 M. |. x0 U; `0 J5 V0 F) m - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))9 P- N9 S+ G6 X9 d: \3 ]+ R
- 8 x/ W" P1 e! ^7 L& `5 b
- ;;; ================================ Funtion-Dulieu ========================$ z5 c' C$ x% F+ L
- ;;; ================================ Funtion-Dulieu ========================
& F% \. \7 u& J* e0 q - ;;; ================================ Funtion-Dulieu ========================
7 d6 y, n/ h1 U) }) u# \8 t - + d( j/ S# c$ ^$ }" c3 F
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
; O2 n8 i* w8 \7 t1 O3 u - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))7 q k4 n# j1 v! A3 E/ b F
- (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))3 a, i5 [0 \$ M6 n! [9 T% }
- (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) )
3 ]" r/ z. Y6 F" C2 n - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
! l. z: V2 u6 t9 h5 _ - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
( v4 ~- t4 @8 ]& [7 @5 L+ m1 F - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))) u- x( |8 H/ |$ j9 z
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
" t; _& M- c' K! o( J: q; A( S, O - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))& o/ z% f& ]$ s- ~0 G
- (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)))
8 K% t5 I' @! C$ `7 S& ^ - (defun dtr (dtr) (* pi (/ dtr 180.0)))/ s* J, h* V# D: [6 B
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))
, l1 @( c2 ~# s, u; F9 ? - / M% s% ], k' L$ F6 v: T+ h
- ;;;==============================PROGRAME===============================$ c. {, ~' |" y3 g- q, V
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
( L7 |9 a2 h6 N+ x0 V+ t# A% p - ;;;==============================PROGRAME===============================
0 [% I w) d! R3 T4 W( V5 P
1 f# V. E" W) N# g- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
! L+ S: F& O, f( J - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
6 d' V. F5 \ d) o( k9 j - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
0 _) c- l: Q$ c/ U1 `+ h) ] - (Setq Oldlis (Entget (Car Chon))
3 @( j3 l4 J+ A( F) k2 H7 V - Pt10 (Cdr (Assoc 10 Oldlis))
5 B# O; j. M7 N/ s% W - Pt13 (Cdr (Assoc 13 Oldlis))
+ E4 Z5 a3 n8 Z8 | - Pt14 (Cdr (Assoc 14 Oldlis)), M) [+ \! n. v6 N0 k! u$ y, a
- St (Cdr (Assoc 70 Oldlis))
; V0 M$ A: Y; y g& _) j - Dimdefault (Cdr (Assoc 1 Oldlis)) f y X" U( E1 }$ a
- )
! a+ u, w2 S: i$ z8 e) ]& B - (Cond& z. _ Y4 K% ^) f
- ((Or (= 32 St)(= 0 St)(= 160 St))
8 ?9 }, D1 S7 I( i0 ^: m2 A - (Progn. t# F# f& D+ d% g2 u
- (Setq Ang (Cdr (Assoc 50 Oldlis)) V8 W9 _7 d4 K$ D- R
- Pt (Polar Pt13 Ang 500)
- q2 X7 V7 f# W1 y2 ]3 U9 l6 V - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)5 X# R! L a9 i, Q; Y
- Dis (Rtos (Distance Pt13 Hc))9 L; A" L$ q4 H- F# j' i
- )
1 K& r2 k5 ?, ?) }1 ~ - )6 _5 L: d$ O+ r, v8 A: }7 Q. B
- )
$ K) e2 W6 D# [% H - ((Or (= 33 St)(= 1 St))
1 ^7 T& J% E* Q$ s. W) x - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
+ N& s* ?0 Y5 o* w: v/ K! E: E - );;End Cond$ j" ^, E; {6 z: B* h, G" l
- (If (= Dimdefault "") (Setq Dimdefault "<>")): U4 N$ }6 b# n5 _$ N
- (Setq Dial (Load_Dialog "Hai.Dcl"))
/ p; U- N7 T4 D7 E. I$ f - (If (Not (New_Dialog "eddim" Dial)) (Exit))0 h) x' G8 d: F+ y
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
0 {* q6 \8 C. v( L7 z$ S. d& j9 G - (Set_Tile "text" Dis))
1 K' f# e% f2 x4 J9 c5 p+ s - (Set_Tile "ha:edim" Dimdefault)
1 C4 @; \7 i- g" r - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai0 j4 u Q6 D( q$ {
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
$ B! s6 m; j' |; A - (Setq State (Start_Dialog))(Unload_Dialog Dial)
7 V, D0 X4 I7 _: E - (If (And Str (= 3 State))
% f# k; D7 [% q; @9 T- I - (Progn
6 m$ P; Y0 N" V. f6 {" \ - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
: }: ^+ n4 T2 F: B8 K+ ? - )0 ]0 c; P+ _: O8 W% J0 k
- (Defun C:EH (/ Chon Name )+ W& i/ e' H+ F" g- ?
- (Defun *Error* (Msg). P1 O8 J4 i( J' l$ l
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
' z3 p3 b8 }: D: Z' z3 H0 ? - (Start_Dialog)(Unload_Dialog Dial)
9 W p5 \+ K" J; g8 C' U8 Y6 r1 d - (Setq *Error* Olderr)(Princ)
: @2 M! s# l. g K: e" I. ^ - )2 N: H. t5 T i/ \/ l) a
- (Setq Olderr *Error*) L+ p4 K6 u8 D S
- (Setq Chon T)
; a4 I5 ]2 E9 v, p0 T8 ~4 d - (While Chon
* M2 d [- ^: ^ - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))6 `5 D( ~! ^0 A' W
- (If Chon$ m' K* B% X" E5 I0 J. l
- (Progn- G$ B( N" T5 L# P1 c
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
3 T" a- U, _, m7 u6 R - (Cond* j. A% J. O' F o; W: t: R- V
- ((= Name "INSERT")(Command "Ddatte" Chon))
5 G" [2 e! \, M. y9 j1 o - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))8 N3 l2 e/ j5 A& q; n J( ~6 V; N# M
- ((= Name "DIMENSION") (Hai_Edim Chon))$ |! x q! x$ Y3 a2 V
- )
0 ~5 `( ]# D3 }) J4 V - );End Cond
' i2 B" x9 @& Z3 J8 r. j - );End Progn
u ?% |6 ?. j4 e - );End While$ D- I5 K# e j4 J9 L% W# p
- (Setq Olderr *Error*)(Princ)2 ~. A# v5 w( p6 i
- );End Program/ ?! }) g/ S" q( Q6 n$ ?
- % T- l7 L& \2 d- q* S
- ;;;====================DDeditDim=====================
+ R" z- K' r$ f, M! r+ C0 B - ;;;=====================Hai.DCL======================/ @2 {1 {3 T/ X2 x+ H5 G2 b8 \
- ;;;====================DDeditDim=====================
3 {; P# r" H2 U' Y3 a* Y. [ - 4 e( q, P/ g; g+ `# n
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)& b5 ]' I- s, m B
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl. [2 V1 `& v5 w/ Y; }$ t
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)5 A1 q, l9 z/ D9 H
- (Setq Oldlis (Entget (Car Chon))
; ]7 B- k+ a; ^# y& K% m( D7 b/ v# p% e - Pt10 (Cdr (Assoc 10 Oldlis))
( t5 D- U! t: X/ p- l/ B0 a1 e& ]: F - Pt13 (Cdr (Assoc 13 Oldlis)) L1 t/ f4 ]* @- M
- Pt14 (Cdr (Assoc 14 Oldlis))
T$ l" s$ r9 X1 U: S4 p - St (Cdr (Assoc 70 Oldlis))
) C$ v- ]& X' m0 q8 J, R - Dimdefault (Cdr (Assoc 1 Oldlis)): |! u" l o( h: ^3 i3 C- S
- )/ q, ]9 F: ?# O% m1 D" u% s
- (Cond
1 k K' d0 i9 d# r2 g+ J2 b - ((Or (= 32 St)(= 0 St)(= 160 St))
6 [+ W) e% h$ }4 A" Q5 N - (Progn" P, G8 ^6 p+ A) q& ]* f
- (Setq Ang (Cdr (Assoc 50 Oldlis))- f! m/ y# V1 |6 w
- Pt (Polar Pt13 Ang 500)6 \, E0 U+ l3 X) Y
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt) W, L3 g6 w2 a5 \5 a# n
- Dis (Rtos (Distance Pt13 Hc)) k1 N8 S3 `& t8 N( M
- )
6 f, O6 n6 }0 R' i: ~7 F0 Z1 h) P - )6 Z; a0 n) S% ^8 ?
- )
9 r% h! O# H/ a& f - ((Or (= 33 St)(= 1 St))% d. y) |. z0 Z {& B
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14))))). W" x# q$ S( I; W! E! y/ t
- );;End Cond& D% u l7 H8 J, M
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
) U& [: w3 w1 X9 r4 f9 R- [+ t) u1 z - (Setq Dial (Load_Dialog "Hai.Dcl"))* s. l! n% x5 |$ v* S" ?. y
- (If (Not (New_Dialog "eddim" Dial)) (Exit))5 K% q( J0 i; `: P
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St)), S Y# {: h- y) M
- (Set_Tile "text" Dis))9 a6 l' M9 P1 ^6 t& d
- (Set_Tile "ha:edim" Dimdefault)4 [: I0 W$ B8 z# r8 y$ l
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai! k" C, ?0 ?. c: h5 Y4 M! q
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)"): t, M: c: V/ M. u8 ?- D7 D
- (Setq State (Start_Dialog))(Unload_Dialog Dial)+ B, w ~# u3 W0 w6 D6 {! G/ q
- (If (And Str (= 3 State)). j4 g9 G! s4 m2 b% Q& P
- (Progn
4 b- g. L$ y W& e1 M' R8 D& ] - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
) s! M, i/ A( a! Z8 ~ - )# D% r4 R( A4 X p4 b# x' i
- (Defun C:EH (/ Chon Name )* z# t9 n+ d1 A$ q/ K% r
V" C" k1 v) T4 f% |- ;;;********************Du Lieu********************
! O( ?9 E# G/ [" `7 w$ f - ; k0 t& n$ ?% n. Y8 b( W
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
* T6 ]" ~ U7 @) H; \8 } - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
i$ h: e# |3 I/ L4 M1 w - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
/ Z' W: L2 F; C# V% _- G, H - (Progn
& q$ `9 d4 n; c$ F - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
) C1 M( j& W! j6 [) I4 G - (Setq Chon (Ssget Hacat3))
* }: o4 r5 v# v, z8 G( q - (Command "Break" Chon Hacat1 Hacat2)' l" o e% U$ E
- )4 g R0 B8 G$ n
- )/ R0 `; N/ `, j @5 ~
- (Princ)+ F) K' L8 x6 O' R0 R! A9 \$ U5 h
- )
+ c% l$ X, y. ?( a - ;;9 Y$ a( z( W8 @# i4 |
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))2 Y* q/ V7 Z. |' o5 H
- ;;% z& u+ f7 r: p/ m
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))# r8 `$ G) W5 {: E
- ;; l! `# _1 c, e3 b" d& F- j
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
) y; N, |; g2 R+ h4 ?7 l - ;;
# E) N- V' Z% | v% Z# g - (Defun Reinit ()(Setvar "Cmdecho" 1))
% a( z* Q& ` h; K' V2 i& q - ;;
/ {% x8 d2 B n/ C7 ^ - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))( E& k% T1 o2 ^4 p- N
- ;;( O. G* C0 K; V/ O+ V
- ;;Cho 2 Diem Tinh Ra Vec To Phap
8 o3 n' k$ R1 G X - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))( l2 q, a5 _0 |9 s4 t; y
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang9 F# w1 y: ]0 C) C( Z: i
- ;;Da Biet 2 Diem Thuoc Duong Thang2 K# ^) ~6 i" p a2 C& C
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
+ {! a5 s3 K3 D% q$ T* A - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
* O7 \6 ~( u$ z4 H; E' ] - Hc (Inters P1 P2 Dc1 Dc2 Nil))), R) G, \$ g; ?2 a, p
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
! y5 n* l' p+ k, K/ n2 O - ;;Da Biet 2 Diem Thuoc Duong Thang
$ d) ] g; ~5 ]# _7 ~0 J# X1 c& n. ?* M - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)7 I. c. u' q' X0 J. f) _: a% J
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)1 b: r+ G/ O% O R
- Hc (Inters P1 P2 Dc1 Dc2 Nil))* Z" r8 p( v! j+ h. B0 X
- (Distance Dc1 Hc)& Y! m4 _9 d5 w5 t
- )
: G( @; t( n% E" t0 C7 j+ d) f - (load "nhapcua.lsp")
0 j/ k6 f: N! H6 n# { - (Defun *Error* (Msg)4 E7 u- B c" U
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
5 h9 T" ^) E* Q3 V - (Start_Dialog)(Unload_Dialog Dial)( ~4 k; r# _6 l( y6 p
- (Setq *Error* Olderr)(Princ). ~! h8 X. c6 X4 O
- )& K7 r3 y# O1 u( @+ O* ]4 G. h1 r
- (Setq Olderr *Error*)0 }* ]9 d9 c1 Q& W8 r& Z- }
- (Setq Chon T)
7 J0 W: [" |7 Y - (While Chon
- f* E( t' q$ i$ ^5 v - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))2 I5 \. t I6 }/ ?& t
- (If Chon
% c" O% N9 h! P( ]% Y- T - (Progn
3 u8 q; |$ u* p/ V. v: G - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))0 d- M. q& h* X* c7 z, `7 ^: \2 v2 c
- (Cond
}; r1 m9 I# [% c7 Q - ((= Name "INSERT")(Command "Ddatte" Chon))
! C9 _- J/ j# ^% | - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
9 N4 k4 z; T U% }! m% q: c - ((= Name "DIMENSION") (Hai_Edim Chon))
; m k2 h' M: i5 T - )2 \6 P& s& y4 Z, q5 Z( u: F
- );End Cond+ w/ R% Y, j% C K/ s
- );End Progn0 q+ L# @1 L/ H- q
- );End While
6 d h: B' r3 c+ j7 r( e - (Setq Olderr *Error*)(Princ)) T3 }! V l# g. c6 d* x
- );End Program
/ ~ [9 m7 X8 ?7 R& F/ s. S* x - 7 K$ p) e( m# j. y- c
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
( o. e3 Y& I7 g+ Y1 ?* v) } - ;====================================Nhapcua.LSP====================================
1 m8 D% x6 j. b& X - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================4 S' V. z! D% D. Z0 l a, u
" ?- v1 @9 ^6 t- 3 K0 \# T( ^; Y; c4 f
- 8 V1 Y- j( F/ q
- ;*******************;*******************;*******************;*******************7 \2 T6 _. k; ~( P- g$ S
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
+ `' c! s6 V) W9 d0 U8 B# w - ;*******************;*******************;*******************;*******************! T5 ]7 @- r' i
- 3 u3 A, L* B% v. Y) i! x
- ;VE HINH BINH HANH
2 q7 ^" x, _2 L% ]% c - % l, E; x! O! A5 z: ~+ j
- (defun c:binhhanh (/ p1 p2 p3): Q) w2 e: L m1 c8 H1 D
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))
/ Y: Z+ r4 {( g2 A m; l/ b7 e - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
3 `$ O4 D6 I) ^+ Y5 H& o/ n - (setq om (getvar "osmode"))
0 s# N. v2 B3 E$ o% ^ - (setvar "osmode" 0)& l/ R2 _6 C. z2 V4 P8 ~4 S
- (command "line" p1 p2 "")
: N% J/ X. h9 |6 J$ k - (setvar "osmode" om)
8 U" Y+ r& X) z0 V2 V4 U" n2 ?4 h - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
& X% E5 ^/ @8 T% E$ h - (setq a (angle p2 p1))- Z3 A0 Q: C; l }2 M1 ]! R
- (setq d (distance p1 p2))
# j/ R& {. i0 r - (setq p4 (polar p3 a d))1 @0 v. O% |( l5 O8 ]6 Z
- (command "OSNAP" "none")& r0 Z* D/ _1 }2 g& { Q) Z
- (command "erase" "l" "")
' ^6 o& [+ y6 |1 o5 Z0 h% i - (command "pline" p1 p2 p3 p4 p1 "")$ s# t) e5 ^- T4 F. x; ^! ^
- (setvar "osmode" om)- x+ }, O+ B8 f
- )
' s1 a, w+ C) d, H4 o
# ?( b! V# I& C4 N- ;VE LUOI COT
+ s) o# W8 }) r* Y
, O+ I+ V+ p+ a# J0 |- (defun c:LuoiCot ()
# [9 H% T# I- @" L$ J - (setq om (getvar "osmode"))+ X9 U2 g! l1 D d: }1 H5 U
- (setvar "osmode" 0)0 h* {4 Z+ a5 B3 \
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
. P0 w3 t, A* o y* [ - (setq p0 (getpoint "\n Chon Basic Point:"))# u' b" r% ]3 D2 B @ [* H/ A6 {3 v
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))7 T7 ~. ?6 _ ]1 @
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))
# a' p6 D$ _ q4 K( ~# Z2 [ b - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
; W! b! l; g h$ V; R+ i - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ), l* E) q- z9 x8 g3 a4 M
- (command "rectang" p1 p2)
7 X4 g/ d% u* J o - (command "hatch" "solid" "l" "")
8 G/ h: b# T' B1 ^* I9 t# y - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
4 H/ B! q) L1 y" o# H* I - (setq nn (getint "\n So buoc cot phuong ngang : "))- B% T9 R! c* q% B
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
0 V6 E! u9 C0 `9 K - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
# N T4 S; A) s- [: R - (command "select" "w" w1 w2 "")- J. r0 U/ d. S- }
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )8 @" M% M' L, f0 j; V( b
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
- k! w J; }- T8 R3 d( U2 g - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
I, v5 Q" J! I - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))& \5 r4 C% ]' m( Q" j
- (command "zoom" "w" w1 w2)
, O9 `1 u5 @4 D: t0 r - (command "select" "w" w1 w2 "")
( h8 X3 Y, n' w, n) M2 o1 f; w - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
" ~) G2 n9 h4 }; `1 n4 ]' s7 ^ - (setq nd (getint "\n So buoc cot phuong doc : "))& ]: |0 ^& ?( ?
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
3 t; S7 O; y# i$ j! O9 P - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")3 M- o5 j1 y# S4 ]" z* ^
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )1 i% F% w% P/ H) F$ e8 {, P
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
$ ?0 w% L, e1 p N - (command "zoom" "w" w1 w2), e# u- J N! U3 z5 c* p3 }
- (setvar "osmode" om): D! w i$ Z. q8 c
- )! ^% T3 Y3 ]5 y4 i- @
7 v, j+ ^- ^, d! t! f1 X" z- ;VE CUA DI( H6 R8 G" t& i) g& s7 @- s3 Y
7 X0 e5 q2 \+ s; G0 [' N$ F7 i1 R- (defun c:cuadi ()
; W7 J% W5 a# _0 E- e% e - (setq om (getvar "osmode"))) ^4 h$ Z9 g: c% X9 N
- (setvar "osmode" 0)4 F% [& ]: o/ g
- 0 B6 e" S4 \8 ^/ j! d5 u. A" r
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))+ @# n7 O0 v- R f- l# i, U
- (setq b (getreal "\n Nhap be rong cua : "))
1 ]8 F5 N; l7 Y: O. V$ O - (setvar "osmode" om)0 X0 W, a3 r+ c$ k0 S) b
- (while (< 0 1)( K' o4 A" M! y6 }8 |
- (progn i; A& i' _/ m% o5 i
- (setq p0 (getpoint "\n Chon Basic Point:"))
1 ?6 Q1 t6 ?/ i, g, \ i - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
5 T3 j- K- ]& S - (command "osnap" "none")
, |7 d! V d! l. v" g3 ^ - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
A, p0 V$ q3 F) {- M+ o - (setq a1 (angle p0 p1))
- A E+ b- _! N ?2 r$ E, h* `! V - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))7 |* L3 ?" F8 g S: O# {. D, |! m9 u
- (setq a2 (angle p0 p2))
9 X7 q0 N( ~# C# a' g - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )+ a% v7 s: M6 C$ v- n2 n# q: [
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")2 j; a% n) E; d% \% @
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))+ f, j+ D( [3 M5 l
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
! a |5 d: @0 X: B! x- E/ k - (setvar "osmode" om)
) D- v& s$ u @/ D9 \- _+ m - ))& N( {+ H1 y" D5 m: X: _8 J
- )
" m: l, p4 b0 {: f. P
2 m( a8 ~ L3 [4 @% n4 D- ;VE CUA SO/ ^- T$ I/ V" c$ Y7 g* y
- ) Z4 s$ k1 A% |: t2 U2 v
- (defun c:cuaso (), q3 G. _0 w8 b+ f. Z1 D
- (setq om (getvar "osmode"))
' E' d @7 ~2 A4 o9 } - (setvar "osmode" 0)3 ~' i/ @0 g9 s- p0 t1 I
" M/ s U; y5 I5 n. j- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
- w$ W! Y% |( p' ?5 n( Z, m - (setvar "osmode" om)" A, {' m3 z6 q5 O, u
- (while (< 0 1)
6 B8 K7 c; N- w& D, g! @ - (progn
8 l, u: B/ T" l1 I# l - (setq p0 (getpoint "\n Chon Basic Point:"))+ m8 z- S h+ Q* F- N( }
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
5 g2 w, N" N/ T b- H% z - (command "osnap" "none")
4 Y9 y3 g) w0 C* B! W - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))) {+ M. z% _" R3 d9 e4 j
- (setq b (distance p0 p1))# w1 X& c2 Z. [9 T
- (if (< b (/ (* hstl 600) tile)) (setq du 50))7 P; ]* F% F" Q$ S4 _" \" L; u( ?
- (if (> b (/ (* hstl 600) tile)) (setq du 150))6 V4 o6 L* \, w9 G+ p1 \2 v, M$ [( U2 b
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))
; n) j7 ^9 l- L0 A3 c# A/ p - (setq a1 (angle p0 p1))# g) c% _4 e. C M* n3 F, a
- (setq a2 (angle p0 p2))3 c. f) F& p& J' X2 E
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
0 U. E; P3 |! j( k: Z- F5 B - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
1 l2 u7 t* p* i2 E' h: z4 | - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )8 Z6 Q, w" ?6 r' E
- (command "pline" p0 "w" "0" "0" p1 "")
/ g. B* y4 q c, W - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
! Q. @, F' ` K. D8 F - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")- y- R! M$ [9 h) a& q
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
: k' t, W' A1 H7 g2 n% M7 \ - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")* U9 ~3 J8 E/ }( l/ q! O
- (setvar "osmode" om)- @: C# B7 f$ B$ j- y
- ))8 t) b/ d0 |6 d" Z' R
- )
, f; \4 f' d8 E
/ i/ ?5 E5 |8 V* x8 D0 v5 q2 ?- ;;;=== General Utility Functions ===* Q# \2 @' o1 L4 Y
4 a8 k4 C( i* E8 [4 a6 V7 y0 I- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined # B, x2 n8 p, R n
- ; ADS function. Now it's a simple AutoLISP function that calls the 8 D! r7 P( a: _+ T0 ?* B) ]+ [
- ; built-in function (help). It's only purpose is R12 compatibility. 2 M+ p3 M h5 `$ _; @- h4 a" s
- ; If you are calling it for anything else, you should almost certainly ! T/ b0 P* \! ]4 E/ N
- ; be calling (help) instead.
. A q0 U2 U7 | -
, V: G# |& L/ g) @; t# k- q - (defun acad_helpdlg (helpfile topic)% }6 s# t7 ?1 e6 u# |' ?! R
- (help helpfile topic)
! y7 ~1 l+ }4 B! s% M7 r5 i - )
3 B# U. Y9 S; I6 Q! H0 @+ w - ! G6 P1 h. C+ b, T6 `+ r8 I
6 L- n9 R- Y, ]7 k% @) {- (defun *merr* (msg)
1 B! l4 \6 }( A$ R2 U - (setq *error* m:err m:err nil)+ X9 i2 O, l( C4 W, P0 X1 ~) |! `/ Q
- (princ); |5 i( s. Y2 m1 H5 x
- )2 V# l' Y. ?0 l2 N: _8 M: x
- " m: B; r( v: p8 }" m- h2 G- f
- (defun *merrmsg* (msg)
, I* w1 L6 K. t* `( Q' T' {5 z% I - (princ msg)
0 B# ]7 U0 a4 } \. s" a: [ - (setq *error* m:err m:err nil)
4 v) t, ~. ^( k6 Q W7 Z+ V: N - (princ)5 N& r% @, O! Y3 k
- )
+ `+ z/ Z+ }. }* j - / C# X+ p( T4 l$ t3 q
- ;; Loads the indicated ARX app if it isn't already loaded* l7 p0 b( q* ~+ Y0 D9 C1 X
- ;; returns nil if no load was necessary, else returns the
$ ~2 i; G- H7 s" T! F- u4 E - ;; app name if a load occurred.
, M) A7 O. O3 | u0 @/ E. X1 m - (defun verify_arxapp_loaded (app)
+ K+ ^3 B; B U; e; D1 r* @/ J+ W - (if (not (loadedp app (arx)))% a! R! E" S& q u$ D, Q3 W! D
- (arxload app f)
8 ?/ G% i# V% x$ @$ F$ h8 } - )) }$ J6 W$ `6 y- {: _+ ]
- )
" P& f/ S/ q# g/ Z - ; b: f7 v5 q p- R$ y, p5 ~5 N
- ;; determines if a given application is loaded...7 @* l8 [/ H, i* u
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....3 d0 j/ B0 f: J+ J0 \, K% Y
- ;;7 I4 N. M! c* i
- ;; app is the filename of the application to check (extension is required)
6 }$ Q/ S5 o; a/ Q, ^1 | - ;; appset is a list of applications, (such as (arx) or (ads)$ s' o. R! ^9 f& Q0 A1 N- w- m
- ;; + U6 K4 l! ]- h* `; v
- ;; returns T or nil, depending on whether app is present in the appset# m1 e$ n! K$ g' V7 r8 j; I
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
1 [* U5 q( {, x. E - ;; Also, if appset contains members that contain paths, app will right-match
1 C B1 E" o4 |7 f! k i/ E - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
. Y9 i. D$ l1 L: A4 z. P b+ ~) b - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
; l2 e/ L5 C' I+ z; {* r$ e# m$ i - (defun loadedp (app appset)
6 |# h2 v1 A+ x7 H - (cond (appset (or # W7 Y/ G! p0 A) q9 R& c9 H: S6 v4 }* R
- ;; exactly equal? (ignoring case)
) p) [; I {4 l( l' ~ w+ y" ^ - (= (strcase (car appset))4 N( k; {' ]( c! d% o# t
- (strcase app))
: h& m/ j- A- e3 J5 M% x" ]/ X& P; L - ;; right-matching? (ignoring case, but assuming that5 P/ i' f* h! v
- ;; it's a complete filename (with a backslash before it)
+ ~( H4 g) b% ?+ n4 r - (and $ d$ d8 |3 N% H7 X- N& p. |
- (> (strlen (car appset)) (strlen app))
r( p* L4 l# S" m" L! ?2 P3 V - (= (strcase (substr (car appset)
5 g) B8 P) m; _ - (- (strlen (car appset))
- ]$ M6 S# c/ \. a$ P s; q L - (strlen app) % R# x2 Y; Q4 O# ^, A7 V" I
- ) 9 D0 v' D1 N& S
- )0 v" ^/ W* a) c+ _
- )
, o5 \) i1 I8 E! {: d0 ` - (strcase (strcat "\\" app)). g) V/ y% R* `
- )" e5 e4 i& g+ ]$ ~3 k
- )/ K4 k" l0 H8 M8 d) q6 y
- ;; no match for this entry in appset, try next one....
; ~1 j6 q4 {: m% N1 p- U - (loadedp app (cdr appset)) )))2 S, q4 g8 w. A/ l5 W Z
- )- ^- ]' H) W A1 ?' j
& {! V2 u) C N- J
& E* U# w& A' W2 L% B" ~- ;;; ===== Single-line MText editor ===== c' _. @ _# n8 h5 H
- (defun LispEd (contents / fname dcl state)
, \2 U9 f) c( J3 s1 M. s - (if (not (setq fname (getvar "program")))
4 N7 v- i8 T3 J$ W/ } - (setq fname "acad")
9 b6 y: r; r+ s' l - )
! `. I( K# F( u# j! s& U - (strcat fname ".dcl")
) Y Y/ L& E6 W { - (setq dcl (load_dialog fname))
# E2 L; f1 |1 f0 R5 [ - (if (not (new_dialog "LispEd" dcl)) (exit))
5 x* Z. | [8 L N) K- C - (set_tile "contents" contents)- r7 j. ^( f6 k3 ^% |
- (mode_tile "contents" 2)
9 @9 o$ S7 ?/ Z' [ - (action_tile "contents" "(setq contents $value)")
& H* _6 k8 w6 m( S - (action_tile "accept" "(done_dialog 1)")5 r) T5 m- [) f( s9 _+ q- r( I3 U
- (action_tile "mtexted" "(done_dialog 2)" )
* v! i; k1 P# |8 ~& g9 O - (setq state (start_dialog))3 {- [" B; S6 S+ G+ @7 O' o
- (unload_dialog dcl)
+ S* a5 O4 X1 S& j5 T% L1 t! ] - (cond3 J" u, y) S& d" h/ G* k/ k
- ((= state 1) contents)
: Z/ X6 v* u, ^* \+ c - ((= state 2) -1)
8 U& n1 M% M m& E - (t 0)# V$ }7 C% y" S; p& A
- )
3 L4 ~7 D4 |/ W5 ]$ ]1 P6 @ - )
$ f% _ v4 u# m; B( M [ M P, ^ I - ) T; w3 X4 [- F7 ^
- ;;; ===== Discontinued commands =====$ m, E! Z; ^" R6 v
- (defun c:ddselect(/ cmdecho-save)6 o: p; c" R( B
- (setq cmdecho-save (getvar "CMDECHO")). A, b* x3 r3 J' t
- (setvar "CMDECHO" 0)& u9 g* F( N' d9 \
- (command "._+options" 7)
" H0 e1 v1 b* y, a; x8 x - (setvar "CMDECHO" cmdecho-save)
6 a' K$ J- q! k C. Y' N, G - (princ)
# b* b- x* A6 ^ H% M$ s. m - )4 J7 C4 i) [, e" y
- * G% K5 r8 \4 Q9 W& [2 [1 W
- (defun c:ddgrips(/ cmdecho-save)
+ y1 M- a/ H" ?1 R - (setq cmdecho-save (getvar "CMDECHO"))
: m Z' V( n2 O! F8 H - (setvar "CMDECHO" 0)
% ]- j6 ?; }/ ~' x/ R& [ - (command "._+options" 7)% R u+ U' A. T& Z7 p$ ]3 @$ D
- (setvar "CMDECHO" cmdecho-save)
( @2 t5 U9 W4 B( v - (princ)' `1 v. c( i# V( ~4 z
- )& z7 B) _" s- a! c/ x3 f
- 2 w- f. E0 C4 {' U- v. W
- (defun c:gifin ()
6 @2 t+ Y3 T) J - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")8 i, l% f/ d9 X7 N$ T3 K
- (princ)3 h6 Y1 ^) K+ Q! M8 _ S
- )( A+ P) y1 `$ L: ~% y$ s$ v
- 3 o: X( U, t- k# m
- (defun c:pcxin ()$ z o+ d% V: |. V
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
. S5 i! ^3 |- K1 L( l a& a F - (princ)2 V' t4 s+ W2 f" Y( x
- )2 f' ^0 I, U3 W2 @4 V ~, z
- 1 s' L. m4 [; s3 M) L7 ?
- (defun c:tiffin ()
9 t. w c* B) B( s: h( k: }. U7 i - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
. \+ G+ E4 O n) ?- }0 D! t# F - (princ)7 n+ S' z7 M9 b' u$ L& b3 c
- )) a; a& y& H1 x# N" A( [
/ J" M2 Z7 s7 j# Q- (defun c:ddemodes()5 ~6 x' q7 S2 j0 a# C; M& M! N
- (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.")
1 ]9 X: m+ X/ Y - (princ)! t. O/ ^7 u0 h# H
- )
# e7 l+ J! a& t5 H
6 J* `! Q2 I" c5 l9 v- (defun c:ddrmodes(/ cmdecho-save)
# u8 J' a, J9 w0 |, V- T r - (setq cmdecho-save (getvar "CMDECHO"))
/ V+ \! I# n; [$ j! J - (setvar "CMDECHO" 0)2 t3 n+ S# l3 m. W
- (command "._+dsettings" 0)
* u- P+ x8 q3 G6 p2 c1 N - (setvar "CMDECHO" cmdecho-save)
) r) I, @7 d' s9 ]; I% v6 r8 R - (princ)
5 g# \4 A3 F0 o/ r: @3 p- y - )
1 c' h! X: }6 O, Y1 n* E - ) m7 e0 ~6 e& q1 [; y1 e: z
- ;; HPCONFIG1 _; k$ E4 i, f- d4 |
- (defun c:hpconfig (/ hlppath)9 a+ G# A, m. \" [) ?/ P* ^6 X
- (if (not (setq hlppath (findfile "acad.hlp")))1 l& k# X0 Y6 Z' g6 _( ?6 l3 c. g! N) m
- (setq hlppath ""))
( s' o0 H1 D0 g4 I - (help hlppath "hpconfig")
5 ?& c+ |0 H: {0 [( J7 z9 _7 J' W& O9 \ - (princ)% S6 N9 _5 R( f, ~# i! B) K
- )
: s" o, ]: M3 W% z" k
; d" Z% R3 [, d/ I) I( ?- ;; OCECONFIG
7 @3 X: n; S! O0 A. ? C - (defun c:oceconfig (/ hlppath). V* C! o. O% }! V4 P% e! q) U
- (if (not (setq hlppath (findfile "acad.hlp")))0 S! y4 N3 k- Z5 K5 B
- (setq hlppath ""))' O+ m5 J% u9 o
- (help hlppath "oceconfig")
5 W0 n. b9 R# l - (princ)% X7 o- R! O9 F! |/ c: C
- )9 Z; ~. _% t. U8 `) P
# L$ C }4 d J5 J) j3 B- k& r- ;; CCONFIG0 ?' @3 l- |) W9 a
- (defun c:cconfig (/ hlppath)
8 L; F% E1 w$ @8 H - (if (not (setq hlppath (findfile "acad.hlp")))
* D9 W6 O( P9 m# Q" x/ }, t. ]* B - (setq hlppath "")): r8 P! K% h8 P% x* Z3 Z+ i" R
- (help hlppath "cconfig"): b1 ]2 F5 G" Z' L
- (princ)0 v% W, h$ m# \
- ); b, W Q/ J* @- P7 o
3 `. k* B! n2 o, H9 h- ;;; ===== AutoLoad =====7 W! _9 t/ e# ]) s
- ' }8 F. c# b( d- M2 B. ]6 c
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
0 O: j" h; S) [ - ;;; for the name of a certain appplication <appname>.3 R7 ^5 |: q# U, g, m7 G0 U
- ;;; Returns T if <appname> is loaded.# H$ X ]8 J2 K. z
" C* K1 j, x7 y- e: U# K1 H7 v- (defun ai_AppLoaded (appname apptype)
" j6 b, e8 e& c9 J" `1 V - (apply 'or
! C7 j* M( R* n/ B- p - (mapcar , i* J1 m9 I% Y% Z
- '(lambda (j)- C' G( c5 A# ~ t3 w7 G
- (wcmatch
3 I1 |4 ^) c1 N* M- ]5 ?. K9 h - (strcase j T)
+ P/ A- D0 k1 j' {, ^; V: q* P' @ - (strcase (strcat "*" appname "*") T)
4 K0 r- t; J$ u6 I5 E& z - ) ) q" G& ?/ w7 r* u! N
- )
. Q" }( S* A( p - (eval (list (read apptype)))! z& @; a* ]" `+ i( A8 G* s9 X
- )
: f' Y7 c) d w+ `6 Q) U$ v - ) g9 ]* ]2 S9 q$ d' b" I& ^& B
- )% s8 e2 G4 B8 v; Z0 E) O
- , K. s; N5 I9 T( B7 B- G
- ;; - w9 L# `1 Q2 m9 q$ f
- ;; Native Rx commands cannot be called with the "C:" syntax. They must
* r; S$ h+ h7 Z6 g) ^8 Q1 Y" p - ;; be called via (command). Therefore they require their own autoload
5 O8 T6 I) x0 t - ;; command.
) D4 d; c# \6 p: p
$ H3 v; I, J# l' o# _* u+ c3 z- (defun autonativeload (app cmdliste / qapp)
+ U* s7 j) q# z: b" b. \2 @ - (setq qapp (strcat "\"" app "\""))
# O* \; V u' |& c8 ? - (setq initstring "\nInitializing...")
' ?4 N$ C7 v+ k' q - (mapcar
) z# u2 ?/ d: `* W) N% b$ s4 o# P - '(lambda (cmd / nom_cmd native_cmd)
3 L" A: P, I6 m4 o( n, g4 Z - (progn8 a* x3 u+ n7 x# Z; r( v! P) D) e
- (setq nom_cmd (strcat "C:" cmd))4 G, _9 q7 K) s- a3 Y$ [! P
- (setq native_cmd (strcat "\"_" cmd "\""))
+ L. u: k8 g0 Q0 { - (if (not (eval (read nom_cmd)))
; g- V2 r& S$ k( `0 b( g& A - (eval
% U# c) k9 m- F% K5 b+ P w' C - (read (strcat
+ f" a8 d- T, e! { - "(defun " nom_cmd "()"
! |, w% E1 D B/ k1 g* s) @: e# Z7 R - "(setq m:err *error* *error* *merrmsg*)"& I& ?8 o! }9 l$ Z- m, Z# a4 u
- "(if (ai_ffile " qapp ")"
3 U6 d# U5 f# L+ X3 Q) S - "(progn (princ initstring)"$ ~$ Y+ v! i6 L& H$ m
- "(_autoarxload " qapp ") (command " native_cmd "))"+ h/ T$ j2 `" i, z
- "(ai_nofile " qapp "))" m* v6 r' k, B9 l, t( E& q& a! v1 o
- "(setq *error* m:err m:err nil))"
* a# B3 C6 q) q$ I+ x - )))))); ^, t% l z, a
- cmdliste)
! R% @3 q2 f* Y! j5 {/ r - nil3 }) [7 T; \: q4 \
- )+ P: c" v0 f# w, @4 h
4 {1 e2 Q& t4 A9 h. ~1 N- (defun _autoqload (quoi app cmdliste / qapp symnam)
) H2 o, K! i$ F) {) R& @ - (setq qapp (strcat "\"" app "\""))
0 k+ D. Q; a1 D P0 k* C - (setq initstring "\nInitializing..."): T% v% Z% e$ H/ F
- (mapcar% Y% u9 d0 J. o a0 z' a& y
- '(lambda (cmd / nom_cmd)
! V% C5 a. S# M2 T7 _% | - (progn
4 \, m$ e$ B- t; d* L - (setq nom_cmd (strcat "C:" cmd))
" | ^/ _5 N2 D0 E - (if (not (eval (read nom_cmd))) Z% ?* `: _9 \* B0 b1 {
- (eval' S* z" ]" k- F* I" C+ U( c- u
- (read (strcat# J1 p+ O1 I4 D" _
- "(defun " nom_cmd "( / rtn)"
0 m* h0 N5 v9 Q, H, A) C, g' L - "(setq m:err *error* *error* *merrmsg*)") e2 B9 p# c" |: Z
- "(if (ai_ffile " qapp ")"
6 o) q$ N8 z4 u: C# ^ - "(progn (princ initstring)"9 w+ @4 D7 t4 i! \5 a
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
3 X5 h, k# |& P3 M9 t Y - "(ai_nofile " qapp "))"5 M/ a& ~( x/ ]. Q5 N
- "(setq *error* m:err m:err nil)"8 g0 a* F9 x5 S8 U8 Y. V6 F
- "rtn)": U2 c, k6 Y+ g7 h) e( B
- ))))))% E) W4 O% m+ S
- cmdliste)) y% Y' t0 k, \" P' C. I
- nil4 y' `$ q8 L# X! J0 t
- )
6 ]7 B' ?* L, r: c+ P/ x. I8 s
4 f/ e/ Z/ N) y9 @9 f' C; g- (defun autoload (app cmdliste)
+ c0 k1 ~9 D9 c8 F5 k" P - (_autoqload "" app cmdliste)* f, E4 T+ Y0 k9 D/ {" J
- )+ K7 n7 p, P- _ W1 p! d) f
5 L9 j. q( S) g- ]& y, m0 g" b& Z- (defun autoarxload (app cmdliste)& }/ d3 {# D; e4 I! n' ~
- (_autoqload "arx" app cmdliste)
" s! s. _0 K0 @0 D+ s0 S- @3 a - )9 ^; b: n& M$ h
* H- a: O) J4 |6 g+ O- (defun autoarxacedload (app cmdliste / qapp symnam)& d) R( N. E' u( p
- (setq qapp (strcat "\"" app "\""))
7 ?/ z% M- p# H! {7 P - (setq initstring "\nInitializing...")- @2 o7 V2 `( y5 j6 i( \
- (mapcar: {: k0 @. h1 A3 f; a
- '(lambda (cmd / nom_cmd)
; G7 ?' |* R, C" g - (progn: W: s; I" z3 q/ _3 U) p
- (setq nom_cmd (strcat "C:" cmd))" Y; z4 n) u0 c
- (if (not (eval (read nom_cmd)))
7 E: ^; n4 z m8 {. Y& g. y - (eval
`: ?% l) ~* _: G - (read (strcat' \$ n4 S. u& g. P
- "(defun " nom_cmd "( / oldcmdecho)"2 M# Y# R7 J9 n+ p5 P8 E/ |, S8 e/ D7 D
- "(setq m:err *error* *error* *merrmsg*)"
z! n9 t" y& B5 ]7 [ - "(if (ai_ffile " qapp ")"
* H7 [6 r, ?. _% F - "(progn (princ initstring)": e m; a* G7 W% Q
- "(_autoarxload " qapp ")"5 D: a: ~9 m# Y( O; a& w
- "(setq oldcmdecho (getvar \"CMDECHO\"))"5 f5 q" D& ?, W' V+ W6 [+ v. _* b1 F
- "(setvar \"CMDECHO\" 0)"
' a) M) E! U# z' ~ - "(command " "\"_" cmd "\"" ")". \6 r' N$ d9 N# n& o/ D+ |
- "(setvar \"CMDECHO\" oldcmdecho))"" } M/ D1 D2 g! z+ J7 c
- "(ai_nofile " qapp "))"
8 b% j( U4 q+ C! w - "(setq *error* m:err m:err nil)"
?' r4 c8 _' H: _2 t3 Y - "(princ))"
% p% Y% \, y; x$ o" P - ))))))
' x9 [9 R% e2 r' t9 v - cmdliste)
, j; e3 T" h( \* p - nil7 v& y* \* ^4 B% Y( P8 H+ f+ K
- )
- p* k, E, ~6 Z4 A6 v# M/ }
" t w2 ^9 k- c2 F( R- r- (defun _autoload (app)# v$ D! p8 q8 j5 g
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)$ ?5 u4 P5 B9 ]9 c$ Y) g1 |
- (load app); L, F; _ t1 X
- )6 [/ W2 Q& u2 I. ? Z
$ U& P1 Z: Q$ w; N- (defun _autoarxload (app)
) T3 _+ S7 N0 {) `. q4 w3 e- B - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)% C! R+ k8 g; N9 O1 P
- (arxload app)
( q9 }$ x# T' E* v8 O - ), M8 S/ v' ~2 o5 _2 e
- : f- B5 u) p: n L
- (defun ai_ffile (app)
+ G/ y: n9 G3 [: K# a - (or (findfile (strcat app ".lsp"))
3 n+ p, J5 r; k+ A. L - (findfile (strcat app ".exp"))& T( W# N6 ~, }' `
- (findfile (strcat app ".exe")). o7 V- A$ ]) N( b" O0 k
- (findfile (strcat app ".arx"))
& k$ k* H7 h2 P3 \+ P9 z" p( u - (findfile app)4 d! y, x) }8 Q+ n* Z
- )
: u, w" A5 `( e% z - )+ t b$ O% N( i( f0 [8 y
- / r1 J3 m8 R% ]0 s/ @
- (defun ai_nofile (filename)
' k- s! e& r. W - (princ
* Q2 n/ c4 j! @( m - (strcat "\nThe file "( S" P3 |. O2 t" c5 o* Y8 F; T
- filename- R2 ]3 {( |. }4 j5 q
- "(.lsp/.exe/.arx) was not found in your search path folders."
. i% m# g# {! ~: C - )$ H$ ~$ Z2 r5 b A( h+ h3 K( c
- )2 g0 F8 J" N( H$ l
- (princ "\nCheck the installation of the support files and try again.")
- p4 Z1 N& e0 `3 i8 x5 V3 B7 |: }; z - (princ)
0 r7 g O7 I7 c2 B0 L7 [ - )6 I H5 D' |0 Q# D% V
- $ ~% e) F- A1 f! U# ~, ?# r
) b7 F0 t: H6 f7 J- ;;;===== AutoLoad LISP Applications =====
! l0 Y* r% d' t& P- U - ; Set help for those apps with a command line interface
$ B7 ~0 `0 ~6 }- P8 n - 5 x) g3 W( Y& ]' s
- (autoload "edge" '("edge"))3 l' o/ J$ |' x4 {! {
- (setfunhelp "C:edge" "" "edge")8 @' Y) {: ^# d/ E9 W& A2 P7 z! X; B
- ; x; Z% ?6 b h& Z; Y
- (autoload "filter" '("filter " "filter"))
# B/ x% H( q" G) `
( B8 p1 m# K& X- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"% P* J0 ~) o3 c9 P2 r
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
$ I; ^: B) _+ u, w - )
$ T7 N. i# y; q/ n* { - (setfunhelp "C:3d" "" "3d")
1 V! O5 T& l2 z% ]' a0 g - (setfunhelp "C:ai_box" "" "3d_box")
# x" L1 j( b2 J {+ B - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
1 x# c J6 D* s5 A5 {- x x4 t - (setfunhelp "C:ai__wedge" "" "3d_wedge")
/ @ N) R' B7 V+ u1 v9 E( H - (setfunhelp "C:ai_dome" "" "3d_dome")7 |/ ]5 Y4 m9 H) a+ w' G, Q" F
- (setfunhelp "C:ai_mesh" "" "3d_mesh")
\1 `- M) r5 \# y3 I - (setfunhelp "C:ai_sphere" "" "3d_sphere")
6 t# G/ ?$ W, t2 F" N - (setfunhelp "C:ai_cone" "" "3d_cone")
2 U) Q( u$ o1 r! B4 L! ]2 B0 e; J - (setfunhelp "C:ai_torus" "" "3d_torus")4 H6 O( Z9 T5 P/ ` \
- (setfunhelp "C:ai_dish" "" "3d_dish")
1 i3 D, R6 R0 r. \# ]) L9 t% O: V - ! W5 f( b% ^$ q' l6 c A
- (autoload "3darray" '("3darray"))' Q5 \* g z9 x
- (setfunhelp "C:3darray" "" "3darray")
$ ^0 x; E( m) Z& f. b" t, F+ o
4 b! w- W- ~2 o, F& O3 _1 T- (autoload "ddvpoint" '("ddvpoint"))
8 F, p8 Q5 D; ^% V' H+ u( Q) l, P - " }* U, u1 s5 _$ X: A, X- S" v
- (autoload "mvsetup" '("mvsetup"))8 L4 p( E+ T* c B+ C- u% n+ H
- (setfunhelp "C:mvsetup" "" "mvsetup")
$ X/ } G) W: V2 { - 6 X; I+ H3 Z: ~! g# o8 C
- (autoload "ddptype" '("ddptype"))
1 i+ C& N3 L7 y) `& }! h - 4 t& ^) c8 `2 V
- (autoload "attredef" '("attredef"))
; a) t1 F# C: J6 j - (setfunhelp "C:attredef" "" "attredef")
0 K) r' Q8 z7 q, n
0 c# V1 N/ \% y }- (autoload "xplode" '("xp" "xplode"))# r h" s7 c+ e0 l5 J
- (setfunhelp "C:xplode" "" "xplode")5 G3 }. n2 K" O! z5 a7 d
- . A2 ^* X: o) V1 J) _
- (autoload "tutorial" '("tutdemo" "tutclear"3 |7 ~0 y, I8 Q1 K* z
- "tutdemo"
" ?, l) W7 Y/ n - "tutclear"))+ t0 W9 ~4 {; `0 F
# M% ]9 W# C0 L4 l% x; I( h- ;;;===== AutoArxLoad Arx Applications =====
0 q5 b! e# ?1 D8 ?
+ f! s( C# l1 z- g- (autoarxload "geomcal" '("cal" "cal"))
! \5 ^- k3 J x6 |9 Z9 Y9 v. _
8 c6 F$ q; d& L% x! A; N1 A- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"- Q7 O F/ \# ^+ d% ]5 p
- "mirror3d" "rotate3d"
2 {0 G8 B+ y+ t1 x: ]& E - "align"))
" K% G$ T: b5 ]7 m. M7 m+ c
* N- L6 F# h; h) `6 `
/ ?; M! v& N9 d- ;;; ===== Double byte character handling functions =====
% L$ b( B6 w0 {
$ n2 H& |( v7 D+ _! h- (defun is_lead_byte(code)
( t+ G9 `% v( O+ h2 o8 ] - (setq asia_cd (getvar "dwgcodepage"))
+ V2 H6 j" n# c$ ~' Y7 a1 W, N - (cond
2 d1 Q3 B1 N8 S( G - ( (or (= asia_cd "dos932")
/ m ?, d( \3 Z! U8 k: k - (= asia_cd "ANSI_932")( y6 }+ B4 T2 m, T c. D' n
- )
- u% b/ b2 ^8 Z4 C' V9 P - (or (and (<= 129 code) (<= code 159))* ]. u8 c; r# o$ F& j
- (and (<= 224 code) (<= code 252))0 T3 p, y8 M, h) s+ J8 M/ |1 b# r
- )8 S. O' A3 @, K3 b/ o% B" ^/ @% _
- )
1 C2 g ?. w6 E. |5 p2 C/ A - ( (or (= asia_cd "big5")
$ c* K; U5 J; o9 l! o" _) ? - (= asia_cd "ANSI_950")
2 o' u! w7 |* Z2 G* \' V' _ - )+ c5 K8 A9 h$ Q& F6 F0 \. N, d
- (and (<= 129 code) (<= code 254)); a+ v9 P' y( f; O( g
- )
4 I5 n B* n+ y3 c5 y9 m9 }' e. K - ( (or (= asia_cd "gb2312")' N8 v& t4 k, h! m0 ?
- (= asia_cd "ANSI_936")8 R1 D$ s. x' ]0 D, f7 B- |( x4 d
- ): e. b& W" \) q9 b2 W9 [
- (and (<= 161 code) (<= code 254))
. ?$ R) p J) F; O5 h9 z: {6 w - )& n% P9 ?" }" b* e
- ( (or (= asia_cd "johab")/ O% U, C# I" w; B" r+ f
- (= asia_cd "ANSI_1361")5 Y( {2 n% A5 G; I" o
- )9 u1 Z _% D- M$ M- D5 \0 s
- (and (<= 132 code) (<= code 211))
3 H! t7 [, Q1 a: Q4 u1 D1 O - )+ [' J- u& }4 C b; w7 a
- ( (or (= asia_cd "ksc5601")
9 M$ Y2 S1 }+ k6 N - (= asia_cd "ANSI_949")
2 N- T4 y% i) q! S - )
% @# z) s9 D- E" E/ r! R - (and (<= 129 code) (<= code 254))
2 V0 \; A: p/ ?. N i( M - )
: f: j- F6 Q( s1 I9 ^& e W - ). r" Z+ R" {) h7 y
- )& n& a) D I Z& _# f% w
0 u& I8 @' r9 Y# }/ ?9 t- ;;; ==================================================== s0 f# J9 N1 l% f
/ b* R3 E2 g& }+ T. B4 j5 \- ! R; r% y. P/ T
- ;;;
. {1 T8 z5 K9 e- h - ;;; FITSTR2LEN: Y. h7 W: s; X. a# }
- ;;;
l: x- X& D- H3 v4 r - ;;; Truncates the given string to the given length. 7 s5 `- t/ Z, @+ L
- ;;; This function should be used to fit symbol table names, that# A7 p( A# O- d9 U9 n: r5 s
- ;;; may turn into \U+ sequences into a given size to be displayed0 d( {1 R$ C. j$ P
- ;;; inside a dialog box.
8 M c( Y( c# D I6 Y3 e7 k6 H! }# i - ;;;% ]; G( P* c( s; M5 F6 t9 ]
- ;;; Ex: the following string: 9 U" i4 S0 s2 r0 D; @
- ;;;
4 k# ` C5 ?8 d1 o - ;;; "This is a long string that will not fit into a 32 character static text box.". E0 y. V1 }5 i0 U
- ;;;8 l% f2 G6 a# ?, F j5 N
- ;;; would display as a 32 character long string as follows: K" x0 q2 `( r/ I4 |6 u( n6 |
- ;;;
% K/ G2 i0 m* q; l - ;;; "This is a long...tatic text box."
2 F" e4 r" m8 p, v* r+ ?5 L - ;;;
4 x5 V. J3 ^1 `# E) ]& O, r/ v
. U. o, K; }7 ~. M3 H# R- (defun fitstr2len (str1 maxlen)) R; _6 q5 E. m6 \
- % ^, N, R# D9 ~3 |! N, H5 A
- ;;; initialize internals8 M( Z$ P' O% L9 a- x, Y
- (setq tmpstr str1)0 n9 c) I6 A8 ^
- (setq len (strlen tmpstr)) I. n- _+ J7 I: a$ q: V
- e' a4 Y4 c7 c3 Z- (if (> len maxlen) % q6 u5 b- G4 R0 b
- (progn
- f) r! F5 l# ~# F: X' s( a - (setq maxlen2 (/ maxlen 2))( u, I3 c" h1 C7 w" Y7 m/ q
- (if (> maxlen (* maxlen2 2)), v+ f. u+ H P7 W: |( c
- (setq maxlen2 (- maxlen2 1))
9 ~: i3 d1 W: b& `/ c5 z4 J - )) _; K) f( T! g$ d7 F0 T3 E
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))! Z! d8 j0 l* v9 c; J- Z' u
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))% R! H1 ^. P6 Y
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
3 Y1 S) L" ], @+ z - )
y3 _: |. V4 z2 f& {0 K+ W - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))( h( z% s# j! s4 n
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
0 j0 J7 @) K, U - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
: [8 ]2 Z( h: j - )
* v4 F! E7 |- D - (setq str2 (strcat tmpstr1 "..." tmpstr2))
) F* ~! u4 x" A A0 s$ S" k - ) ;;; progn( m4 J- {6 _8 i0 Y! J/ ^- Q, H. K$ Z
- (setq str2 (strcat tmpstr))/ y4 j1 E$ \6 x0 F. Q+ Q F- ^
- ) ;;; if
' e% B. i( `, A' U" J7 k$ U - ) ;;; defun
; E' p, |7 b9 m- ~( r! y - * S+ s( s1 H! z: q# p( M
. n# n" N) c" b3 f6 a: N- ;;;: l. _) M @6 m, V
- ;;; If the first object in a selection set has an attached URL; t3 X+ S$ [" i. I
- ;;; Then launch browser and point to the URL.
4 J+ w% v9 ^ ^& S, a - ;;; Called by the Grips Cursor Menu8 m2 ~6 L J4 T1 q- r3 K. E- q
- ;;;
5 q8 J: W2 I% g/ N8 A! v% }; p
# R6 F0 x6 ], l/ X7 H2 m- (defun C:gotourl ( / ssurl url i)" X- [" L) l0 o6 w8 k
- (setq m:err *error* *error* *merrmsg* i 0)
3 P% k n! I, b( t - * x, p. c K+ A) r d e S
- ; if some objects are not already pickfirst selected, 1 l) Q0 l& s4 x( u1 c% `' W5 E" o. e
- ; then allow objects to be selected! u& t- W" G: z& q
6 x" P; v8 Z' N% r l% M; P- (if (not (setq ssurl (ssget "_I")))
/ ~7 L) g# U# b5 n4 S I. B, q - (setq ssurl (ssget))
. g$ t7 G6 j% u1 k* P - )& P3 A& D5 Z% d- K
- + t! B0 {0 {8 z0 Z
- ; if geturl LISP command not found then load arx application
' A$ h# Q2 S L& I" q
' x9 V; k+ a% T: h x% N# D- (if (/= (type geturl) 'EXRXSUBR)
, x" @8 e: ?- p( P4 B - (arxload "dwfout")2 w3 l' M1 `4 o- ]5 f
- )
* Y, F8 Y: x% U -
. X$ t" V3 K' k i* ]7 b - ; Search list for first object with an URL
+ D% z) A9 Y' }( }. U - (while (and (= url nil) (< i (sslength ssurl)))( c* l5 `5 C+ {" E5 }
- (setq url (geturl (ssname ssurl i))
: V- i! y. G" S; P' C) U - i (1+ i))& ~; ?" y$ f3 M
- )
- ]2 B) R+ h% y - 7 S2 m( m3 @3 K* V/ D5 K0 G
- ; If an URL has be found, open browser and point to URL
9 E5 H/ L3 i7 ] - (if (= url nil)+ I$ ], x' P% y) ^# U
- (alert "No Universal Resource Locator associated with the object.")
, z; n; t2 D, d& S; W9 K - (command "_.browser" url)" B/ v% Z' Y! `
- )
( q( e2 I% ]. t/ A4 c& |
5 A' I8 V6 `% O6 |4 K- (setq *error* m:err m:err nil)
( Y, A' p' G1 Z$ r2 d1 L, S4 y4 i - (princ)
; M c9 S$ {- M: t# a m0 D4 E
/ [# k1 {% \, n7 {- Q2 z8 ?- )
7 m1 F6 N; C3 S) w8 N* ^
+ w8 w! T( {1 T% {, [- ;; Used by the import dialog to silently load a 3ds file
$ H8 C" V: R0 `0 C - (defun import3ds (filename / filedia_old render)
% k5 |+ G* O: v* Y( C+ M# Y& v; [& x - ;; Load Render if not loaded7 h8 n& r3 x, J; D
- (setq render (findfile "acRender.arx"))
& q& [ v* j$ U ^. H - (if render/ ?( B& B+ {7 @" s$ p
- (verify_arxapp_loaded render)
* X+ `# V' r4 I4 I - (quit)3 c8 @) M* P% R: l
- )
. m4 h* _& D/ v, c+ t i
9 Y: |+ q% e- ? d/ c- ;; Save current filedia & cmdecho setting.
. x8 A5 P3 G- D/ a+ t; q - (setq filedia-save (getvar "FILEDIA"))
- I! a2 D" q7 e# a- l - (setq cmdecho-save (getvar "CMDECHO")); w3 ~0 n; M+ y+ k1 @4 H2 d' [& e
- (setvar "FILEDIA" 0)- q4 t+ ?5 H: p. s$ r8 ~0 ]* E
- (setvar "CMDECHO" 0)) U& d; w/ M: C3 ^
! Q1 S5 {* j1 [. @: u- ;; Call 3DSIN and pass in filename.
( q# Z* _5 ~$ Q' l - (c:3dsin 1 filename)+ V, E5 ]9 R8 Q8 j
- # V$ d# U6 s% b$ Q7 V R$ X
- ;; Reset filedia & cmdecho+ q8 W+ ^# _0 Q: g, Y8 x* a
- (setvar "FILEDIA" filedia-save)# G# o8 B$ U7 M
- (setvar "CMDECHO" cmdecho-save)' L" s# N9 D0 W# R$ E) p
- (princ)
3 D2 Q) `$ Y; I2 j# ~ - )/ W6 X! j5 q. n; _' [3 R
- - |+ {$ O0 Y; h a& C
- 9 s$ N$ p2 q' j
- ;;;=== Menu Functions ======================================, G6 ^* N1 ^! z0 ^$ V2 v) }* ?
- $ M3 ?; b' R3 |
- (defun ai_rootmenus ()7 k5 u; E4 f% u7 I; D2 c3 s
- (setq T_MENU 0): l1 g; O( h9 q% ?. i2 C6 M" `' q* z4 j
- (menucmd "S=S")% l) }- R1 T- r" x# j
- (menucmd "S=ACAD.S"), |" b, x3 _, t6 z9 b! X! N
- (princ)* \ S+ @$ |* m, ~* r
- )
* P7 c- I7 u$ n& q9 J
0 m$ }% M% N2 u$ G3 R7 A% l- (defun c:ai_fms ( / fmsa fmsb)- e- W9 E' [; `' j& Z9 S
- (setq m:err *error* *error* *merr*), L6 Q1 P2 k8 c4 r5 \+ s
- (ai_undo_push)
- Z& T' S$ N* j% I% U - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
, @: R/ z7 |) ~5 i- G - (setq fmsa (vports) fmsb (nth 0 fmsa))' d- f* [6 n- S' _% d8 i0 f) k9 ^& D
- (if (member 1 fmsb)9 T& V2 Z. b8 w3 T
- (if (> (length fmsa) 1)4 g7 Z) f" ]. S) U. j/ R: o
- (command "_.mspace")0 W: X; Q7 ]- \0 w8 Z/ n* `$ q
- (progn3 t. W2 }+ k5 \5 ?# N
- (ai_sysvar '("cmdecho" . 1))% G& v0 a$ b, A# n8 U
- (command "_.mview")
" f: ~6 H! D; T. P# { - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))$ \ o1 @/ J$ M4 Q
- (command pause), F3 U! ~4 B1 x: {; @5 x
- ), @; [9 O7 l+ _, q: c9 {- [
- (ai_sysvar NIL)
0 [8 W- o3 S! I- G6 m5 r - (command "_.mspace")
8 C4 w0 F) G; P# V: A/ O - )
; I" b. L9 c1 j1 F B1 F: f - )
8 s- C, D% y5 _8 ^, G0 t - ): {. ?! j8 u4 ?/ @9 q \. k2 z
- (ai_undo_pop). ]* P/ ] m" `& L; k- p
- (setq *error* m:err m:err nil)
, r: u3 I: j+ [4 y - (princ)
7 G% v! p7 U1 h - )
# Y% a" P& O) t9 n3 M8 T
# ^% k/ o3 ^; \% u9 j; k- (defun ai_onoff (var)8 e- ^# a1 L/ L% Y3 z8 w8 @
- (setvar var (abs (1- (getvar var)))), ] F( z7 s, D# E! c
- (princ)
% q/ _1 V/ q! A3 X# f9 { - )
& u6 _+ |: r5 x' y v+ w - / E1 h9 T( f& T0 g; ^
- ;;; go to paper space& l( s$ @, i% ]0 H# N( E
- (defun c:ai_pspace ()1 I, `# x4 C _; P# D* v+ [
- (ai_undo_push)! _) E" N- g2 ^+ ~! q0 t8 l
- (if (/= 0 (getvar "tilemode"))* \6 ~9 t8 O- b+ N$ z
- (command "_.tilemode" 0)3 j) G7 Q5 Z% n+ }" Q
- )
2 L. y, O, M8 C+ @% T - (if (/= 1 (getvar "cvport"))( ]5 S: F5 X# H/ ], G, }; ]
- (command "_.pspace")
[' C8 {, L5 ]* H8 { - )5 q6 f: {- |# }: K
- (ai_undo_pop)( v7 H6 Q& S2 p- R3 j2 c4 N! [3 }
- (princ)
6 U1 j X; t4 f3 v - )2 k; T \' L% |$ x5 R: Y
3 f8 s1 \% y' R* d3 a6 W- ;;; go to tilemode 1! X4 @; |* f$ [9 ?4 D* Q2 `
- (defun c:ai_tilemode1 ()
z) q) P0 ?; Y5 u# T, W) R - (ai_undo_push)
* J' a9 I" _( t1 P! F0 {6 g w - (if (/= 1 (getvar "tilemode"))1 Q2 E y7 f |5 R- q% v
- (command "_.tilemode" 1)+ @# g1 _8 } K: I' C1 K
- )3 S/ R5 O/ |0 W$ Z: k/ N1 t
- (ai_undo_pop)
+ j' x$ A* g( Q9 I - (princ)& V, L, y- ]( w- q1 b2 ^
- )! `0 A% O: J8 R( w
& V4 O4 {! m) L H- ^$ o" Z- ;;; Pop menu Draw/ Dim/ Align Text/ Centered* x5 g5 {. o$ q. ?* L
- ;;; Toolbar Dimensions/ Align Text/ Centered0 W! C0 T" U/ X; | l
- + U; R) Z, J5 b0 q
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)5 w* Z- L( |9 E* j- d6 C d
- (setq ai_sysvar (getvar "cmdecho"))5 Q* C0 i# Q: E+ [$ [
- (setvar "cmdecho" 0)
- D3 q4 z* d; A& G6 f* v' f - (cond h8 n( O4 B4 C+ `5 {$ w, D
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))4 D/ U: h+ Y9 t6 A
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
, \ D6 d5 v4 J" p' t: l* d/ | - "_.dimtedit" ai_dim_ss "_h")7 j' w3 J9 }' o4 Y) s
- )/ a! R w- R) `4 Q
- (T nil)+ D) B( A3 `2 y3 M4 v: x
- )* ~7 d* y" g1 y1 X. b0 a
- (setvar "cmdecho" ai_sysvar): N3 h4 B4 \$ N+ m I, T
- (princ)
$ a% d" d4 ?! ?/ [: Y - ), R5 L/ w2 p$ m) `9 d3 E; H
- 4 N3 C; l! ^ j! O/ C Z$ w
- ;;; Shortcut menu for Dimension Text Above 0 }: `. t$ ?9 S7 }
4 K6 m: L! u9 D1 D% L p- (defun c:ai_dim_textabove (/ ss)2 l/ W% D9 W: O* q
- (ai_sysvar '("cmdecho" . 0)) a& c6 m/ e% I# `/ ^
- (if (setq ss (ssget "_I")): U& k# G4 C1 z: |1 j5 b7 Z4 L
- (command "_.dimoverride" "_dimtad" 3 "" ss "")/ Z; ^6 q6 {0 A. u6 s8 ^/ b
- (if (setq ss (ssget))$ w- V9 m# _6 ]' O
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
2 o+ Z7 G: k( t. i' z - )
& Q0 T$ q% F# ]" ~" [ - )
- A6 G) H' H( A9 u# f0 n3 E - (ai_sysvar NIL)
8 G- g0 Z, Y9 i+ {1 ~ - (princ)
$ X3 E9 Z) g6 w2 H3 q - ), I! }% v' M, Q. @2 c
7 n' {5 N ]( k" {. e% M- ;;; Shortcut menu for Dimension Text Center
$ b+ S2 a4 x& o8 g! U+ v6 Q - " W6 ~3 b. p. L! U& b; r
- (defun c:ai_dim_textcenter (/ ss)
( a5 C8 f/ T& g0 e9 Z - (ai_sysvar '("cmdecho" . 0))
5 @1 s& r2 C, Y, C+ Y i" ? - (if (setq ss (ssget "_I"))5 I) O* `3 I) B+ a P D& c) E
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
0 J) d6 s& I" A% W& b - (if (setq ss (ssget)), O% C6 `/ s+ T
- (command "_.dimoverride" "_dimtad" 0 "" ss "") 5 ?- e& T( d5 G9 c
- )) O$ I9 j: V8 Y4 G% i
- )) z# a* H& S. K$ a, l
- (ai_sysvar NIL)
4 i B5 a8 [0 F0 M" U1 t8 @ - (princ)
* G1 \# o+ V: B! O5 q - )
: \+ [& k l5 A1 _8 j - % j# r/ @( w- k5 D# k1 ]
- ;;; Shortcut menu for Dimension Text Home
. k# x L; i Q( _/ l - 2 \- u4 F! B/ F x% A- @: v
- (defun c:ai_dim_texthome (/ ss)
+ \+ o* q! g* R; q2 S: D% n! q - (ai_sysvar '("cmdecho" . 0))
% j$ W) O s+ W0 ]1 z8 b- m - (if (setq ss (ssget "_I"))( y% g0 O; z% c9 L1 [# k- U5 l0 |0 l
- (command "_.dimedit" "_h")0 C8 n* K% F1 N+ }' }
- (if (setq ss (ssget))
6 p6 k; D, q8 t/ k, a - (command "_.dimedit" "_h" ss)
9 x7 K, U3 w. y9 X2 d3 x - )* K7 Q9 R) i0 R3 J2 K
- )* B( Q% y) a3 c3 t, Z5 w
- (ai_sysvar NIL)
/ u6 q' m! V$ D+ j5 C: E - (princ)
2 a5 ~: }7 W# L - )
( n4 S- s( K% b$ Y }
; {0 U- }0 Z& m% N5 ^- $ B6 A# l m5 |7 H6 n
- ;;; Screen menu item for CIRCLE TaTaTan option.
8 ^; |2 S1 E4 F9 ?3 B - ;;; first, get points on entities% ]- O6 b# z. t1 |" I& e/ M! g
- (defun ai_circtanstart()9 W( w* i$ i. |3 n- _0 u; Q0 o" E
- (setq m:err *error* *error* *merr*)
5 b+ o3 P; y+ i) b! }8 T2 l - (ai_sysvar
/ a* ?% z' Q7 S; E+ v - (list '("cmdecho" . 0)
7 D6 _2 L5 z, Q/ ?+ L8 X" p( }# U - ;; make sure _tan pick for CIRCLE gets same entity8 t: ~& W- Z1 S* f5 t, g
- (cons "aperture" (getvar "pickbox"))
4 ?7 E: @8 g$ u% d# A6 i5 a - )
, y8 a4 L; O( ~0 X: J+ Y6 F3 O1 K0 A - )
% i7 W9 a p/ b0 Y: x" q; |8 | - ;; prompts are the same as CIRCLE/TTR command option
- C+ K" l- \9 R l* Y: v - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
# ?# ~! R1 \) p# i& W) G - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))# Z" [% c9 L* S* a* Q
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
$ C o! ]1 X7 _; h6 J; | - )
2 X4 L5 r8 \6 ^/ P* M& W - ;;; Command-line version
2 b$ L2 G- a% i+ z - (defun c:ai_circtan (/ pt1 pt2 pt3)) ?) V+ F( N& K8 f2 {: _" {/ ]
- (ai_circtanstart)
1 v+ h7 t7 K$ G) ~" l3 G3 \) F6 A - 7 M6 n% u5 t5 S9 j. u3 C: \
- (ai_sysvar '("osmode" . 256))- I# `; I+ x7 T- k H3 O
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
% C/ t$ M$ t' q# ^3 r1 d -
4 W. d. _% @) J& l3 t - (ai_sysvar nil)* ~4 _$ k/ O3 M3 o2 C( @: O0 h
- (setq *error* m:err m:err nil)
: s# a7 i! @" f$ j. P8 O7 ? - (princ)1 y; _! k8 Q6 s/ [1 n$ L2 C
- )* J; v+ Z4 a4 a. e; ]" {
- ;;; Use this if CMDNAMES == CIRCLE2 @$ n m" c# o% e% i& f
- (defun ai_circtan (/ pt1 pt2 pt3), ?: Z9 Z# P( k' a4 l
- (ai_circtanstart)
0 z: I* d( }2 I0 _# p' n
6 Y g" _9 P$ K- (ai_sysvar '("osmode" . 256))& R& K+ J; F9 G2 Z" G6 F
- (command "_3p" pt1 pt2 pt3)) A; m6 Z) V- v8 | ]7 Q
-
$ e& ^6 N& s- d- E - (ai_sysvar nil): u( j3 ^0 o* I
- (setq *error* m:err m:err nil)- G1 F3 i3 W- Z) i2 Z8 ~5 i* o
- (princ)
, {& u7 ~! V0 s, ?( G5 y" v. | - )# C, n5 ~) q5 K$ f1 Z: l+ c. J, X
b+ X1 k# L: |3 Q+ Q: p
. ~3 x2 o( A9 i+ m! p' r- % P5 i, s- y x; ?0 b
- ;;; Shortcut menu Deselect All item.
a' }! c3 c8 e - - W+ W: z+ u0 e
- (defun ai_deselect ()
$ f1 l$ q6 y% d5 F2 \% X: H n - (if (= (getvar "cmdecho") 0) ;start if
- z. a# S; ]$ R1 U: @2 P6 ^+ w - (command "_.select" "_r" "_all" "")6 C" h. I8 T2 ~8 z. k, y! r
- (progn ;start progn for cmdecho 1) d6 a, w0 U3 I: R
- (setvar "cmdecho" 0)% d. L1 N+ P' n& d3 \
- (command "_.select" "_r" "_all" "")
7 `" w L; x! ^5 \ - (setvar "cmdecho" 1); W. Z$ x, e- E, h
- ) ;end progn for cmdecho 17 Z( k! x% [# V0 P. z3 P6 V
- ) ;end if
* i' a: e* h1 i* F( V0 E - (terpri)
3 |, a$ o7 J1 | D* p& J - (prompt "Everything has been deselected")$ i2 x6 \1 l( x4 R# ]4 h
- (princ)/ i1 H. Y! o9 [
- )
1 _' d$ l, w/ S' t6 i - 4 J. {9 c" h1 J0 |% T" {
- ;;; Command version of ai_deselect to be called from the CUI6 U3 ?" |9 B" i6 W; N
- ;;; so it gets properly recorded by the Action Recorder
' G& b/ p% d6 ` V6 G5 ^% K m - ;;;" \ f1 e* l, n) j9 e# o! |
- (defun c:ai_deselect ()8 w+ |! ?, j6 Q- E
- (ai_deselect)
# W& m; w' t" Y; U9 \6 W - (princ)
5 K8 @" \ N7 q/ h8 W7 |& K - )6 f8 z/ R% {4 V% \+ v
- 8 q: f6 Z: I E& k6 ^5 U& [
- ;;;# c/ e& A/ J4 o6 r: P
- ;;; Enable Draworder to be called from a menu* ^* }( u0 Y* @4 I: B" S/ k& I
- ;;; Checks for Pickfirst selected objects- j, G3 K4 B4 H3 J
- ;;;
- x. l$ V7 G4 _% ^! r5 P; X' Z - , _2 X# }) [9 N, P) V1 t) z
- (defun ai_draworder (option / ss )
0 B7 ?, V2 v' Z8 P7 U$ D - 8 D$ G# T9 O5 e8 ?: S8 [
- (setq m:err *error* *error* *merr*)8 h7 k5 M5 u& i1 d$ V9 {1 o
- (ai_sysvar '("cmdecho" . 0))
+ a) Q c: _8 |" R3 m
; S- \$ d3 b) b; A5 H- (if (setq ss (ssget "_I"))6 h u: x& N* j- ]6 c+ ?0 E5 H; S1 o, d
- (command "_.draworder" option)
# m% l; b$ }$ q! \ X5 j - (if (setq ss (ssget))7 f4 l# Q' R, u* T* K5 v& ~
- (command "_.draworder" ss "" option)
6 `2 n& j1 X& K, z$ U7 j7 E - )6 ?7 y: D v: U+ |
- )
# X1 P9 h0 {& i+ a - (ai_sysvar NIL)
( ]! \( G+ d; \ - (setq *error* m:err m:err nil)
* D9 O* c# b/ G) [2 W- H - * O! I$ ]8 @. `+ t) d% {5 i. K
- (princ)2 _- x$ x/ N. s$ u. G# X. B- E
- )
" w' n/ h5 q6 Y7 U- t( E+ v; q
3 J* w5 {' D6 C2 y Y$ H- ;;; Command version of ai_draworder to be called from the CUI
/ o' h5 T0 i* m' h& z - ;;; so it gets properly recorded by the Action Recorder; b; Q; m! t* l5 a6 |0 u) X1 w: N3 P$ y
- ;;;
. D: B- `# r' t0 m" I) `2 \ - (defun c:ai_draworder ()+ \& A/ @/ I( M( [* [% o
- (initget "Above Under Front Back")
' b; s. R0 u: l6 D+ V0 p) x1 p9 E8 J - (ai_draworder (strcat "_" (getkword)))
& \8 I0 M0 T9 J( i5 g7 U - (princ)* i4 v) R5 W' E/ h
- )
. q4 c8 p6 Z F0 K8 [ - 3 ?/ c2 E* l- E/ T
- (defun c:vlisp ()
- {: I6 J& X, N* h - (if (/= nil c:vlide) (c:vlide))
- }0 B. w$ k Z* O3 [+ L - )" W6 S! t" ?6 Z) R9 D3 i
; s/ O2 C- \! b+ m% ^+ Z9 C- (princ "loaded.")
) T7 e- P. b! ~9 L5 z- l8 O - 2 E: V5 O7 i P- t6 ~# S
- ;; Silent load.0 x i+ o" f9 c
- (princ)
1 I2 A% k1 i. y6 h
0 r& u8 `1 t( n- ;;;----------------------------------------------------------------------------6 D" }7 S* Y8 k/ A
- ;;;) F" Z) U8 N, i: P$ k
- ;;; DDCHPROP.LSP Version 0.5
% h9 c, Z% _* r - ;;;
/ S% d& {9 S! D/ k - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.4 W/ I' Y2 `: T* T" }$ H
- ;;;3 w( Q1 Z$ u8 @, X$ `6 {
- ;;; Permission to use, copy, modify, and distribute this software
+ H; s, t: J( c; N, t; H - ;;; for any purpose and without fee is hereby granted, provided& F& K' E ^. B0 o; F4 ?
- ;;; that the above copyright notice appears in all copies and that w1 v' \5 P: h
- ;;; both that copyright notice and this permission notice appear in
; n5 _2 p& F! ^9 `$ D( v3 r5 y* g! x - ;;; all supporting documentation.
4 N: A. Q+ E$ G" S# V" j1 h1 ~& v" Q - ;;;
: M2 N: l3 g/ l( D) I5 q- f, k7 L6 @ - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED( i2 {; x. p8 f$ D9 f( U) k
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR+ L& Z2 w h3 p! _: v- F8 A& G
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
, h+ _; i, P' e9 F% j - ;;;* x% k" Z& L, ]: \/ ?
- ;;; 2 February 1992
, u2 _! @) g' r' I - ;;;
1 v& ]2 T5 H# v8 P- g - ;;;----------------------------------------------------------------------------) w$ Q1 n7 Y5 s
- ;;; DESCRIPTION2 K; S8 G) X: P H0 g
- ;;;----------------------------------------------------------------------------+ _# [& g( S% H! p2 }, F: S/ Y
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
( e8 a' ~+ I1 @7 C/ q0 w - ;;;
& r' p9 }& P8 L; J7 p - ;;; The command looks similar to DDEMODES. The main dialogue has an image + R+ w, a3 Q+ X/ m) n5 A3 l' ?
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). # Y Q$ v& b- C6 E
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. A, H# }8 t$ B$ S" |( H
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.
/ [) B9 B# W: _ - ;;;" p. j# p0 h! t6 j! k
- ;;;; M t* ]* e8 K- Y% t B+ z
- ;;;----------------------------------------------------------------------------
6 n( [! U- N9 r- G6 v1 p/ ]7 O - ;;;----------------------------------------------------------------------------
& J2 d& [) ~2 B4 K/ R+ ~ - ;;; Prefixes in command and keyword strings:
1 F2 I4 {( B% e2 k. P - ;;; "." specifies the built-in AutoCAD command in case it has been
& Z$ T, M( G$ C9 [# O. U - ;;; redefined.4 T3 t1 G& J `8 }
- ;;; "_" denotes an AutoCAD command or keyword in the native language4 U R8 U" X4 |/ q t7 _7 g
- ;;; version, English.
( X$ {% L/ g9 Y - ;;;----------------------------------------------------------------------------$ v, z V z' L/ {& D; P
- ;;;
9 v* V% ?5 g, o. A( q1 p - ;;;
& A/ R/ c7 y3 a: Z9 {; Y - ;;; ===========================================================================
0 B, T/ h! o' U, K0 y - ;;; ===================== load-time error checking ============================/ [7 I! d! k4 K
- ;;;
" |1 u/ a: q! G5 z f2 x - 1 y, j" A$ a& Y; d$ K# ]% H) S- h
- (defun ai_abort (app msg)' W' G1 q8 T2 Y2 E w& c c
- (defun *error* (s). L9 h, u" N6 |. U9 u5 h; b& e
- (if old_error (setq *error* old_error))
. @; A8 N! m) U& K6 G - (princ) h' _- L$ G# T4 q5 h5 u+ q
- )" f( M( c" x7 L% `' e
- (if msg$ y: ?: W7 h3 N# S/ R" S
- (alert (strcat " Application error: "+ }+ A3 i6 X( j2 P
- app: {$ n7 A3 ], f' B8 s# f) y S1 b
- " \n\n "# A4 j6 X3 n' y" H
- msg
$ P/ x: B) S+ U Q$ A - " \n"
0 Q4 j: d$ Y: C2 r+ I3 x { - )8 U8 N* U. ?$ b6 c
- )
& w0 B, J, e- ^1 B+ o [' s - )# L1 N, v7 B) s$ R: s, T& K% A
- (exit)
& o* g9 W- P& v7 u2 J3 C( f - )
# L3 p2 W7 J- X - / y+ l5 e: ^9 f4 d3 s k% @
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
% J0 p/ T7 i d - ;;; and then try to load it.3 X& y2 m) k& N
- ;;;
' ^; V6 N5 y2 t: ?6 Q" e( o - ;;; If it can't be found or it can't be loaded, then abort the
7 ]% q+ m( D) ]& k - ;;; loading of this file immediately, preserving the (autoload)' I4 v$ w7 Y! v5 O& }& A. q
- ;;; stub function.
/ I5 J( g9 I9 c% I - & v* w# b9 J# w$ P
- (cond6 g1 T* u1 B; b9 X
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.) F% X, J, p r0 s3 X: j8 P
- 2 k5 A' y$ N9 [
- ( (not (findfile "ai_utils.lsp")) ; find it
: j& K; o1 Q8 S" z' g - (ai_abort "DDCHPROP" k3 H' ], M% g: h- M: y
- (strcat "Can't locate file AI_UTILS.LSP."
+ Y. ?' p# k6 E6 C6 ^1 q' i1 C - "\n Check support directory.")))
" b% ~0 }' _0 N% j) l$ }
' z6 J( E/ V6 D: r( z+ K3 Y. W- ( (eq "failed" (load "ai_utils" "failed")) ; load it; f6 a9 ?4 w6 h) f
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
' [. A! k! Z/ r: | - )* b n% A9 p% S. N7 Y6 D
# V- o- q. C$ j" H- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP; M& G, u0 U' a
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses% I* g" ]* V. I" r
- ) ; ai_abort's alert box dialog.
* u2 x8 o T. b9 U/ B/ b
4 j/ W: O# n. T# c+ K3 Z- r- ;;; ==================== end load-time operations ===========================2 r' @$ `( V S/ c' U1 R
2 F+ V" K6 o" n+ {9 l. ?- ;;; Initialize program subroutines and variables.
% T& D# t/ D! u; u - - c4 Z2 X% j" a; T) a) {" W0 P
- (defun ddchprop_init ()
4 q8 J2 A9 m" u( ~9 ~ D - 3 M4 J) O/ [9 g! ~ {% G
- ;;
. T+ h3 q" m6 ]4 u f* r - ;; Define buttons and set values in CHPROP dialogue box
1 d; a9 m3 D6 V3 X% n! V - ;;9 ?1 d( L" [8 s% V0 E) S9 ]
- (defun call_chp ()4 A! T7 k1 q3 n
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))0 j4 M. e* O7 L" P
- (set_tile "error" "")
* f& c/ z1 K+ L3 J4 k$ S - ;; Set initial dialogue tile values. F5 M) @ V, i- B0 \7 P' \) j
- (set_col_tile)
' g7 g: C& w# a6 Q1 X, J9 x3 V/ q4 s - (if (= lay-idx nil) J, |8 D: z) b) U& L
- (set_tile "t_layer" "Varies")
1 M- {0 ]- f9 k# p# b - (set_tile "t_layer" (nth lay-idx laynmlst))4 A, A" k: s3 o; r7 \7 z
- )4 @/ u; Y! X2 B4 p
- (cond & |* g/ J5 x% ^
- ((= lt-idx nil)2 O, x$ _0 w3 L' i$ _7 h/ r f/ s
- (set_tile "t_ltype" "Varies")
- e8 O- W, ], W4 I' `$ f6 X - )
- a* k" E' z# l" }" W) J. m% h( \ - ((= lt-idx 0) ; set tile "By layer & layer linetype"9 s' X9 }# S/ z/ P$ E
- (set_tile "t_ltype" (bylayer_lt))5 v: e* R8 j6 X/ X# V: L
- )
9 F# @8 e) r' T2 o& R* p - (T
5 _# z2 W$ R9 J0 Q2 i: Y$ Q2 Y! e( r - (set_tile "t_ltype" (nth lt-idx ltnmlst))
# V4 X4 |/ y4 O - )4 n o& N1 t, R5 q
- )
+ G# Z* \6 \# Y+ I+ i5 q - (if (or (= ethickness nil) (= ethickness "Varies"))
4 L( U7 H3 V! s/ u - (set_tile "eb_thickness" "Varies"); ^5 h k" K2 E3 ]7 a3 y3 C. W
- (set_tile "eb_thickness" (rtos ethickness))
+ q$ v$ o8 z7 }, Z% p; X( e, \ - )
/ K9 F8 C; y* ^ - ;; Define action for tiles! r* _. o6 W9 J4 d# C
- (action_tile "b_color" "(setq ecolor (getcolor))")
( L. Y7 p% {7 L' C0 V/ p - (action_tile "show_image" "(setq ecolor (getcolor))")9 | F/ x6 i6 ]# V4 L0 z; H0 q( w
- (action_tile "b_name" "(setq elayer (getlayer))")4 X# u, ^- T+ s! v
- (action_tile "b_line" "(setq eltype (getltype))")) z. s' H2 r A) P
- (action_tile "eb_thickness" "(getthickness $value)"); j! A+ g3 R. l
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")( S* L; u& z, P. q
- (action_tile "accept" "(test-ok)")
$ [ j1 T8 ^) |5 m' x9 u - (if (= (start_dialog) 1)
9 |8 m( r( @; r" L5 Q7 s! m - (progn
4 X7 `5 g9 c x: [ G. [8 S A$ J - (command "_.chprop" ss ""). \( h$ R5 n% X
- (if ecolor
* A3 M ?5 F3 Y; u. S - (progn5 ^3 B7 V0 B: d" }9 l
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))$ b3 D' ~ L6 @8 z2 x
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))4 }$ c5 C: y7 u( R) v" H3 @
- (command "_c" ecolor)4 B4 w8 W% @+ I p- W5 l: \" r, t
- )# a m5 Y( [. N$ [) ^1 I8 l& K
- )+ F- H5 i+ \1 g( P. {3 ^
- (if (and (/= eltype "Varies") lt-idx)
0 J7 J* n- r7 [6 z. S) Z& R - (command "_lt" eltype)( y3 Q, ~/ I1 G; p! A& O
- )
3 T% k6 c% G& \, i - (if (and (/= elayer "Varies") lay-idx)
0 M; l& q5 t' l6 C* R! Z - (command "_la" elayer)
6 k2 A$ q: Q4 J - )
0 h' Y1 I9 Y. d - (if (and (/= ethickness "Varies") ethickness)
' y% a! _3 z$ n' T7 K( N5 o - (command "_t" ethickness)
8 y$ m+ N" ^; O2 y" g% H& } - )
. o% m0 k- m# b9 T. m% h5 J - (command "")
6 t) l) H( y/ A% ` - )
- U$ O" C' X! ^ - (princ "\nProperties unchanged")0 }7 L; p* y1 t! u( m( X
- )
/ O) T+ ^' w/ I5 K( ` - (princ)
( l, `7 b: l6 g - )
) s+ q- y# y$ @5 K. |8 } - ;;/ y4 ^5 w \: t/ h. m
- ;; Function to set the Color text tile and swab to the current color value.. _+ o! W* Q5 D7 ~3 D- b4 a _, t
- ;;
4 J& f. N( x# t0 Q7 y+ y4 Y U, z - (defun set_col_tile()
$ t" C0 e& t3 A/ C/ q+ G1 l - (cond
$ }! }# Z3 |, ^ - ((= ecolor nil)
1 }( V) o" ?7 R! ?; U! r( R3 { - (set_tile "t_color" "Varies")
& I0 E7 O8 o4 Q - (col_tile "show_image" 0 nil)
/ u' A. f1 @2 T* k' O - )
# B: J3 ^2 t" h - ((= ecolor 0)7 h1 j* ]8 ^9 t& D# }) C
- (set_tile "t_color" "BYBLOCK")- v) _" K9 B1 k/ e% ]
- (col_tile "show_image" 0 nil)/ g7 C p" W) }- J( L6 T5 G$ _
- ): s* b2 E5 N5 P* I# h8 I+ l; Q
- ((= ecolor 1)! G1 I m, x9 I& [7 K5 V6 d2 u
- (set_tile "t_color" "1 red")
3 x7 k+ N( K7 M7 Y8 E5 z& P - (col_tile "show_image" 1 nil)4 f6 X# z" v0 o% w U
- ); N4 h0 e& y& s9 c6 |* ~3 u
- ((= ecolor 2)
" W/ c% l6 S9 B1 G - (set_tile "t_color" "2 yellow")2 P4 n' t7 Q% Z( s
- (col_tile "show_image" 2 nil)2 M( r' V3 r/ t% j6 R' l% D
- )5 Z6 }. K! o# \1 ~
- ((= ecolor 3)# d" M1 v. `; b) s. ?% H
- (set_tile "t_color" "3 green")
3 V2 p! R' B: p! q5 e - (col_tile "show_image" 3 nil)
2 [0 m# K ?! ^- F* t! |0 ~( r$ t0 J - )1 ~( I/ Y4 @% d4 o+ {: Z+ i- y( b
- ((= ecolor 4): Y4 D8 D& m( V
- (set_tile "t_color" "4 cyan"): V" N! V; l4 T6 C) \
- (col_tile "show_image" 4 nil)9 p0 n- X+ b m! {/ U* w
- )
+ b+ Y5 E: J6 p0 I5 D k - ((= ecolor 5): E8 h {. f6 R9 R0 H& ^
- (set_tile "t_color" "5 blue")1 W/ I4 w$ g# O
- (col_tile "show_image" 5 nil)8 h" e. t* h7 O! ~9 [- h5 @ u
- )
* y; u- d) V, C - ((= ecolor 6)
. z, m. U4 p' g: z/ j$ t! _ - (set_tile "t_color" "6 magenta")
9 k; ]( N& W) c3 z - (col_tile "show_image" 6 nil)3 E1 _' ? I4 a" F
- )- ^ w# d# j, _
- ((= ecolor 7)
: h8 y: j6 S& _. B+ p+ a5 o - (set_tile "t_color" "7 white")" P* v& t* y* \ x6 l
- (col_tile "show_image" 7 nil)
2 O' c' |7 ^! M; O+ `, T/ S - )
; w+ q/ b3 A9 s1 o7 V - ;; If the color is "BYLAYER", then set the tile to3 q4 S. l. V: w
- ;; show it's set By layer, but also indicate the) [ y0 d7 N! a u8 E
- ;; color of the layer - i.e. By layer (red). ]2 V% k7 k* l' s# d
- ((= ecolor 256): _) e$ R2 Q% g2 n6 e$ ?( t: M. f
- (set_tile "t_color" (bylayer_col))% k- O" l# k* @( b
- (col_tile "show_image" cn nil)8 L( W( T+ B p& o+ M! Z2 [8 a
- )
, M$ n/ @( I6 y4 i2 { - (T ! V1 @) b, P# Y5 b W
- (set_tile "t_color" (itoa ecolor))0 x3 |" v, g9 T
- (col_tile "show_image" ecolor nil)& e3 T# y" V! ?
- )
$ [* y, y6 x4 T - )
, D; |0 B2 @; t. m4 m7 b - )9 ` {: z! o" _" b, Z
- ;;3 j& m4 L+ w1 O' [
- ;; Function to put up the standard color dialogue.6 Z7 S7 G& [$ t$ _$ y5 m
- ;;* ?& Q) a5 V8 Z/ l
- (defun getcolor(/ col_def lay_clr temp_color)# U g' z. Q& |# j8 b, A/ v3 [
- ;; col_def is the default color used when rq_color is called. If ecolor
* ^3 c# [9 R* Y( z; s5 r5 Q - ;; is nil (varies) then set it to 1, else use the value of ecolor.
! I6 ?# r/ X: x$ h/ k - (if ecolor
/ P* v4 ]( Y* L; E! s - (setq col_def ecolor) u( I; W# L9 ?% ^; A0 ]
- (setq col_def 1)% t1 m- Q. ]0 R& h# k
- )
) g2 N; O9 ~4 ^" n- t) O1 v/ j1 ? - U% ]9 E$ S4 C/ X& ~
- ;; If we're working with a single layer, get its color
: J0 e: ~& F B1 {9 \3 B8 a. _ - ;; for use in the color swatch if the user selects color BYLAYER.
2 S. T! m I% a0 n* X+ | - (if (/= elayer "Varies"); L6 n; g8 ?! B0 H8 \- W7 y9 W2 e3 D
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
8 M0 Q9 k; _1 J6 } - (setq lay_clr 0)
) H E! s( C, B6 \2 R4 M - )
% \ \3 C3 w$ O( h6 @( c3 N - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr))). U5 V$ _9 Z( }0 C3 O! S# n
- (progn, }9 K1 V0 _2 ]3 Q( N( J
- (setq ecolor temp_color)) M, C! H4 i# n. L- q0 h8 ?
- (set_col_tile)
6 Y8 k1 k- ?: {& L - ecolor* F% m8 j: z) Z+ {; D
- )
5 V- ~8 M' |8 |+ i4 ]' }" D - ecolor/ i4 Q" Q# j3 ?* F
- )
7 L; I* C+ B3 @9 h% |! j - )# E; i _7 _2 w' {
- ;;. M& X- i8 z' u
- ;; This function pops a dialogue box consisting of a list box, image tile,
& W, G9 F% T5 [% g+ }0 W - ;; and edit box to allow the user to select or type a linetype. It returns 1 ~( l: m1 J6 N
- ;; the linetype selected.
) v6 O0 w: V. o5 b7 \ - ;;
: ^! N% N6 x9 l, u7 R6 S - (defun getltype (/ old-idx ltname)
5 V: u/ ?9 S; c8 a* U) r$ g - ;; Initialize a dialogue from dialogue file; T3 z5 R* O- m2 Z* W
- (if (not (new_dialog "setltype" dcl_id)) (exit))( P7 N: X% |6 U q% b
- (start_list "list_lt")
4 C, ], s0 b; Q3 C- f% V( A - (mapcar 'add_list ltnmlst) ; initialize list box) {, ]6 D* A4 ^$ t) b2 X% q
- (end_list)% {* {& P2 r+ c: i1 q; M
- (setq old-idx lt-idx)3 ]! c, u& m! p1 u R% P, `
- ;; Show initial ltype in image tile, list box, and edit box
! m9 l4 L7 ` n) H/ q1 P! @ - (if (/= lt-idx nil)2 U: X9 C0 ?% u5 V! Y* A) K
- (ltlist_act (itoa lt-idx))5 ]" d3 L7 C4 W6 B0 H+ w; C. {' A
- (progn. J% {) @% }) D3 B( p
- (set_tile "edit_lt" "Varies")
% _* R$ g B& g0 Y9 e4 l - (col_tile "show_image" 0 nil)2 k; C. y5 W' |& t( Q# }8 Q9 r
- )
6 G3 Q: \( a! f9 v) j - )
8 `& z( o+ R! q ?& @0 y- b: E, j - (action_tile "list_lt" "(ltlist_act $value)")
9 ` R B2 d- l3 C+ y. P7 C1 G - (action_tile "edit_lt" "(ltedit_act $value)")
/ q& Y0 f/ i/ p - (action_tile "accept" "(test-ok)"): @0 j) R0 T7 x: ~6 }5 Z
- (action_tile "cancel" "(reset-lt)")7 H! G( \; G, \8 ]
- (if (= (start_dialog) 1) ; User pressed OK
) l) E0 z1 @2 s6 n! c# M - (cond
# h3 v9 ?+ X8 j8 Q9 _) J# U( c7 p, ~" R - ((= lt-idx nil), m2 `1 @7 }2 q7 T& L
- (set_tile "t_ltype" "Varies")3 r3 v" q/ F W8 A- f7 `3 m5 B
- "Varies"3 m1 k! D' c0 @+ g- [
- ). l8 K S" q* x7 N6 ^
- ((= lt-idx 0)
v& F0 Y( r/ n/ m9 t" d# k! N - (set_tile "t_ltype" (bylayer_lt))' ]% d1 B) j- T) Q: O4 e3 E
- "BYLAYER"
+ |; }, s6 u) I! ?! S7 P - )
$ F9 [7 v& c5 t7 \. {) Y - ((= lt-idx 1)1 x# G* h9 _% l
- (set_tile "t_ltype" "BYBLOCK")
- @( l5 S; R! A+ @" z9 X( M9 v* X - "BYBLOCK"
! [3 s# G6 c$ I - )
+ [, F6 D4 S( ` - (T 3 X t1 m: o- w6 g
- (set_tile "t_ltype" ltname) ; H' G6 m. y6 ]. B' B- \
- ltname
! V1 x* B" [! G' \( m - )2 k: D: t* j$ I6 Y
- )
7 B5 E. ?2 J) i( E i P - eltype
' m( Z1 p0 C% w - )# W. u. Q0 M+ U5 a% g' [
- )5 k- v% n( V# [! b/ o4 `
- ;;9 k/ ?% s2 S! m M. P+ k
- ;; Edit box entries end up here% X( f7 O, ]: s' m/ P: r" E v
- ;;
1 g& a! I6 |1 S9 R% o5 y - (defun ltedit_act (ltvalue)
" T1 y, t% d# N/ T% E: o/ K6 | - ;; If linetype name,is valid, then clear error string, ; m9 P4 n ]' {+ p" F
- ;; call ltlist_act function, and change focus to list box.6 o1 N4 n% |/ f- J5 j
- ;; Else print error message.* |$ c1 J5 e; J! d
- (setq ltvalue (strcase ltvalue))
e( Z0 D" _# w' i, p - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))( j6 p3 H l; b# e3 P
- (setq ltvalue "BYLAYER")
6 ?8 Z) {, h: l% @7 A. _ - )
' W* [8 @0 a6 a2 T$ x6 t8 b - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))" n$ ~; u0 \# H) R# S( a3 g
- (setq ltvalue "BYBLOCK"). v4 g! T$ M# m8 U, ?9 G. [( Z. h
- )
* d4 h' q8 `& Q0 R - (if (setq lt-idx (getindex ltvalue ltnmlst))- p) n- q2 q# A) N; h* ^
- (progn' K3 g* [* x& c( ]/ n
- (set_tile "error" "")
: |+ L# \6 e! z( u$ q - (ltlist_act (itoa lt-idx)), m" q; \ {# c4 Z4 m
- (mode_tile "list_lt" 2)# a( U4 E$ [ F/ V* b) p+ F% ?
- ). @! V) x8 _8 v/ D
- (progn
$ s3 c$ S) f* O& P. A8 k9 d3 A - (if (/= ltvalue "VARIES")7 \' [, K4 _" X! G
- (set_tile "error" "Invalid linetype.")3 H0 q, J: M3 }& h. `- L" ?. y
- )1 [1 ]# W/ z2 u
- (setq lt-idx old-idx); U P4 l" v. _( |6 C5 y2 n
- ) 1 w; t+ B |2 \( x, k/ B; P
- )& p) X5 v+ T3 J, F0 J2 W0 Z) P
- )
! I1 L7 s8 |& N% G- F( \* {4 R - ;;2 D |, p- _# G1 n2 ~
- ;; List selections end up here
2 ?3 V( v! ~. Z% ~2 Z/ o0 [ - ;;
) t" J2 F! }: c; h4 C4 B - (defun ltlist_act (index / dashdata)
- y$ K+ W& V5 |2 ~7 `/ k6 W - ;; Update the list box, edit box, and color tile" j4 ]" b$ `8 q) m
- (set_tile "error" "")# m% P) `; y$ n" k3 V! T* U
- (setq lt-idx (atoi index))4 W" ?1 v6 C; F6 J) G8 C% o3 Q
- (setq ltname (nth lt-idx ltnmlst))
, e/ y* y6 J1 X4 d9 h+ _: p$ q - (setq dashdata (nth lt-idx mdashlist))% ?0 O0 I: g+ P+ _5 G# E
- (col_tile "show_image" 0 dashdata)* a3 S/ L6 Z: L+ \# A) V4 k! o+ ]
- (set_tile "list_lt" (itoa lt-idx))9 b, |- u- |" k5 _2 D8 A9 l8 @
- (set_tile "edit_lt" ltname)' V7 ^! D+ Y/ q! z# g! }
- )
1 M1 I( m0 p5 r - ;;+ k5 {) j& U' _- A1 J) u7 }0 U
- ;; Reset to original linetype when cancel it selected5 {) g' z, E9 w$ R8 Z
- ;;
( k$ `, ^6 T6 ?( o( L! V - (defun reset-lt ()
( _5 f- V3 `3 ` - (setq lt-idx old-idx)+ V0 @( x2 n+ X* N2 x" z3 @! O
- (done_dialog 0)
1 Q! A. h f4 `; b; D - )" E/ {! m1 G* ~; g+ p
- ;;
& E% L& O9 q6 C H1 f# A - ;; This function pops a dialogue box consisting of a list box and edit box to 5 N' d5 T* F5 h) f% @$ W( \
- ;; allow the user to select or type a layer name. It returns the layer name ) ]; ]* S- y. S3 C+ \) s
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
* x5 p" {1 M. x4 b; J - ;; drawing.
% Z. D {) F: ~1 _ - ;;
9 o+ y' m+ x2 ]5 E - (defun getlayer (/ old-idx layname on off frozth linetype colname)/ b, Y5 I# _# p
- ;; Load a dialogue from dialogue file& H# W8 W: d7 ^% O+ r$ E! K
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
1 X# a8 V( w, R - (start_list "list_lay")
0 ?5 F9 D5 \* N! c2 c: p: [ - (mapcar 'add_list longlist) ; initialize list box
' Y4 A7 {4 @0 `1 x) H3 V - (end_list)+ r2 j: h6 B5 W
- ;; Display current layer, show initial layer name in edit
0 |2 r% |7 M1 k' E. Q' R* x - ;; box, and highlight list box.
( M" [& p" x8 F4 e9 a7 M - (setq old-idx lay-idx)# j/ \# O5 P& q. Q n9 C1 q3 b
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
/ V: O" J# U6 E - (set_tile "cur_layer" (getvar "clayer"))
* E9 q8 v' r: T, P' \# O6 `( s - (action_tile "list_lay" "(laylist_act $value)")
+ b" I0 R0 f% v! B - (action_tile "edit_lay" "(layedit_act $value)")3 a, c6 N3 A3 J5 n0 H( O
- (action_tile "accept" "(test-ok)")
+ [7 J: B7 V* y - (action_tile "cancel" "(reset-lay)")# [: o. m& G, q& P) {2 o4 |: K
- (if (= (start_dialog) 1) ; User pressed OK
) k. I4 a$ n$ N c - (progn
: @- _" s/ ]5 |# S7 ?, ]* g - (if (= lay-idx nil) (setq layname "Varies")); U( A" T' M% Q5 ]
- (set_tile "t_layer" layname)
# L* u5 f R0 C7 O d w - ; If layer or ltype equals bylayer reset their tiles
- R* Y( D5 \( W/ |3 H - (if (= lt-idx 0)
6 ~3 g2 B$ u; p" P# g - (set_tile "t_ltype" (bylayer_lt)), t1 u& \: i/ o' ^2 L* k, E9 K
- )
6 i% G2 v' Y7 E; P4 r - (if (= ecolor 256)# V8 [9 [: m- _& e: V4 m `
- (progn
6 ?- {# q! x: H" `9 c. i5 E - (set_tile "t_color" (bylayer_col)); O6 \9 m; o9 T; m9 i
- (col_tile "show_image" cn nil)2 O7 y+ | W( Q% z- W, B% e
- )
) J; x. r; u8 L( q5 ] - )
' o) t0 r) G5 V1 c - layname
+ {6 [! u/ W4 r+ U# c0 K" q2 \ - )4 O/ H6 W2 K6 F4 ~- ]7 Z& l8 R! w
- elayer
/ j/ ~! y6 b* N! _/ \( }; K - )
7 W, D9 _5 \. z% K! | - )
* P% m( p7 t; o3 H' d& s, [7 e - ;;7 @7 E2 v* N! v+ Y
- ;; Edit box selections end up here6 I# Q$ B3 R1 o
- ;;' h8 e) p5 ~4 v9 Q2 x# A5 h% t
- (defun layedit_act (layvalue)5 a t7 @/ Z( ^7 y) W% n
- ;; Convert layer entry to upper case. If layer name is
0 \. n- A" I$ X$ S) O) M - ;; valid, clear error string, call (laylist_act) function,/ Z A! k# n4 p2 Z. H1 ]
- ;; and change focus to list box. Else print error message.9 S* ~. f4 U. l+ i, C- A' f
- (setq layvalue (strcase layvalue))
, l. Z' F& \% Z6 z - (if (setq lay-idx (getindex layvalue laynmlst))1 j' P" E v8 p7 L5 a
- (progn
1 a, _' h- A' l( k& ~ - (set_tile "error" "")
9 d/ s. ^) n# e$ [# h5 m - (laylist_act (itoa lay-idx))
& m1 p( L4 f* Z5 V- x9 o q - )
- k- D, ^% f y( c6 q1 J - (progn4 ]+ G# b4 i( ?. F0 J8 I
- (set_tile "error" "Invalid layer name.")% J/ I% X' K ~4 D: f
- (setq lay-idx old-idx)
8 l5 W8 A3 {9 d8 Q3 s+ i - )
! k1 P3 P# a! k0 ~% ?: |8 ?# e - )% s" _7 r3 K3 i" |& x7 S1 q* ?7 E+ e
- ), E& ?( n; s. e, T; ^: s6 V+ |
- ;;
! c5 Y# h2 V/ r1 U - ;; List entry selections end up here
6 E5 `" j" s; Q% ?% u# `/ X2 C7 a - ;;
. |" I* i6 H3 J0 v6 H - (defun laylist_act (index / layinfo color dashdata)* k0 J+ x! ~; A! d
- ;; Update the list box, edit box, and color tile3 \# N( g7 S5 Z" [2 n
- (set_tile "error" "")
7 v7 l# P& Q! h q% n: A - (setq lay-idx (atoi index)): a6 R( E; u! t
- (setq layname (nth lay-idx laynmlst))+ z4 Q/ V9 \$ p/ ~; e9 M
- (setq layinfo (tblsearch "layer" layname))
8 F3 M% y, F4 i' `9 b$ ~0 D/ d - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
. h) ?* X. L1 W* f% u5 S - (set_tile "error" "Cannot change entity to locked layer.")" d0 D. f7 ]1 e- W3 a
- (progn2 P# o; v) @! ^/ a. f7 w7 U( p
- (setq color (cdr (assoc 62 layinfo)))
) g" N7 T4 [0 Y# ^" i. H# Q - (setq color (abs color))9 ~- p) U( p2 w1 d
- (setq colname (colorname color)): E# u; c" I" S, V
- (set_tile "list_lay" (itoa lay-idx))
' V. H* U! u) j0 C$ h; c2 _# d2 N) Q& y - (set_tile "edit_lay" layname)" W- \# @6 D" i3 L% X7 G
- (mode_tile "list_lay" 2)
+ D$ \* d& {' b( s c2 u - )
- b2 \. H& V- |3 t, r - )" N8 p1 A0 p' g5 l8 B4 [
- ), m! S! f9 `" G M P# Y# n- `
- ;;! X2 q0 `2 w3 f2 Q
- ;; Reset to original layer when cancel is selected- `, h* Q" G/ a( ]9 D
- ;;
* S7 E, v2 m- h$ n/ o - (defun reset-lay ()
4 g R5 _ q2 a+ _ Q7 O l - (setq lay-idx old-idx)
- g; k4 E) h8 t& G; E2 \! u - (done_dialog 0). i. k# O* \) i. u
- )
# l1 I8 R, [ [* D - ;;# G" m$ S/ l0 C. n9 C# G
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a " {+ Y1 y: q4 W
- ;; string can't be converted to a real, this routine checks if the first ; N$ [" x* `0 V6 H5 H* Z
- ;; character is "0". It also checks to see if the value equals "Varies".
3 O; e. n( H) ~9 S; i - ;;
, {: W. l2 n3 J* _6 }. S - (defun getthickness (value)5 c6 r6 O5 f9 Y3 k) J) U
- (setq value (strcase value))! v$ l6 A8 }/ m A
- (if (or (= value "VARIES")" E/ s" B* H. t2 `! R4 e4 I& a" \
- (distof value)
7 z# x( H" a& O' v - )8 H. r+ W; q% k' t' _
- (progn) g1 D6 m( Z# Y. B3 w% \2 Q, h
- (set_tile "error" "")
4 J+ E/ K9 C8 q. s6 T. R3 k - (if (= value "VARIES")5 p7 z3 R4 p' F1 {! n" j. K& M
- (progn! H& S8 J$ w, N6 N& z" l
- (set_tile "eb_thickness" "Varies")
# A' o, ^3 [) x* o) j& \# x, R. Y - (setq ethickness nil)
8 a" q% }( C9 C) c - )
9 P+ D& g/ q' F - (progn$ j2 d, P/ t* `, L. Y5 S
- (setq ethickness (distof value))+ S7 `6 K; W* V) y( B
- (set_tile "eb_thickness" (rtos ethickness))$ [0 f" p* z* h6 \* T1 }
- ethickness- }& @: G" }9 u
- )
. e G3 C# ~' x3 D - )( g/ d4 s2 {; q( m5 G
- )* S L" J( S: U! H+ k6 q" f
- (progn `0 J' z3 b0 A, z6 s
- (set_tile "error" "Invalid thickness.")
3 c( K$ ]- M& V2 Z* v - nil
0 a* ]- W2 I4 U+ m/ ?# ?# @$ @ - )# ^- `8 Z/ D% ?# D) N
- )
# I: c3 i W3 s) g - )
! D$ }+ X: H) C2 v$ D - ;;
8 c" [5 K+ ]2 m - ;; This function make a list called laynmlst which consists of all the layer
( J2 [. D- J+ n0 R! C' w) T0 ~ - ;; names in the drawing. It also creates a list called longlist which
8 d) X% U9 r6 G1 h5 _- c% V - ;; consists of strings which contain the layer name, color, linetype, etc. ! b: |$ C. C/ e
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
4 ^( Q! E3 x% [% G& b5 A/ J - ;; same.+ @% A6 m$ i) E3 ] v
- ;;% ~$ s9 o$ Q9 D
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname 0 u% l" o% V! H# s, _% D) Z! f
- xdlist vpldata sortlist name templist bit-70
& x+ }5 n. z# B$ B2 Z+ } - )1 T6 h7 ]4 B: {7 A
- (if (= (setq tilemode (getvar "tilemode")) 0)
! F# T6 R* L8 n2 n2 h$ c - (progn
2 C- B1 V6 t- b# y+ i - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
L/ C7 D9 g. a' t. I6 B! A - (cons 69 (getvar "CVPORT"))
5 j @) `# ^" ?% f5 J. F# P - )
7 T3 l+ A. U+ z' [# E$ r3 ~ v( h - ). d' }) Z2 ]$ p) M& p- C
- ) * [) o; z' n5 z1 t; |& h. A
- (setq cvpname (ssname ss 0))# s$ [3 d2 |9 K/ Y/ A; Z6 }
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
2 N2 e% ~8 c- ^ - (setq vpldata (cdadr xdlist))
6 {4 S4 x7 f+ \ - )
. U5 g8 N: W" _, f - )
5 T8 y0 k f8 e - (setq sortlist nil)
J# j; ]/ }3 z% T' z9 M - (setq templist (tblnext "LAYER" T)) \( H" Q* Y5 w+ M/ L+ G
- (while templist
6 W% B7 r0 i0 @( Q' [. _# K - (setq name (cdr (assoc 2 templist)))2 K; j: t5 b1 J/ t: k! ?5 `
- (setq sortlist (cons name sortlist)); }+ T2 P: q6 d
- (setq templist (tblnext "LAYER"))4 i+ f. Q3 z$ X/ H9 f
- ) 4 n1 D3 u/ \ f" U& T8 b
- (if (>= (getvar "maxsort") (length sortlist))1 V, B: N# k( s7 `
- (setq sortlist (acad_strlsort sortlist))# W8 m8 U' Q0 ~3 U; i' p4 E5 G
- (setq sortlist (reverse sortlist))
. P3 ~2 P: z2 n( v6 d5 j - ). E6 A4 g4 d. w3 N
- (setq laynmlst sortlist)# b( b0 Z/ Y- W2 x3 d$ V) v9 P
- (setq longlist nil)
~8 l; a& c1 D3 D- G - (setq layname (car sortlist))3 r* w$ k( P b7 m# k P/ Q
- (while layname& _- u! `, m. o* K
- (setq laylist (tblsearch "LAYER" layname))
( Z, o) v# o+ \) t2 s4 r. q - (setq color (cdr (assoc 62 laylist))): a& [; v6 a0 ~
- (if (minusp color)
: }7 {2 f' T9 m7 ~. V# O - (setq onoff ".")
! q! I9 R; h' Q7 B - (setq onoff "On")
$ t$ T0 h3 x* ~6 E1 P7 } - )+ o% ]6 |1 K. `5 _" Z
- (setq color (abs color))
: M: D/ L9 j5 i - (setq colname (colorname color))& C/ x5 u7 F9 f! i: `
- (setq bit-70 (cdr (assoc 70 laylist)))
. K% E# v1 q3 Y `7 T7 g5 i2 X" n - (if (= (logand bit-70 1) 1)
2 A; |8 x) ~) c, s - (setq frozth "F" fchk laylist)& i* y- F- j8 o, C" G
- (setq frozth "."). i, P* M7 a! }! n" ]6 O) R
- )8 m" Q& ]2 j/ h0 m4 R6 u- k3 c+ w
- (if (= (logand bit-70 2) 2)
. ^1 |. b* s# j5 V G/ R - (setq vpn "N"). e. g5 A2 `$ l" U6 P# z4 u
- (setq vpn ".")2 o4 m E/ g4 j$ w0 B' [: u" p: M9 x
- )
; J! m0 G" Z7 C% U. L - (if (= (logand bit-70 4) 4)
) O8 j' R* a! a9 F, F2 F, { - (setq lock "L")
3 R: S% ^/ e, @0 G0 D - (setq lock ".")0 ~1 I( s) R# T2 z3 I
- )- M- ~8 v7 k/ u) Y+ t- a& O. t9 M
- (setq linetype (cdr (assoc 6 laylist)))
: G6 U+ [: ~5 ]; f% l8 c5 W' Z% e - (setq layname (substr layname 1 31)): t2 b8 ], F2 ?7 U# E
- (if (= tilemode 0)
6 P$ u1 B4 a" s: L - (progn
$ y: f8 F- N5 b( j2 k k - (if (member (cons 1003 layname) vpldata)
1 V3 C, L' P; o- o3 M1 j7 x - (setq vpf "C")" n% L9 w# e8 U, I3 z
- (setq vpf ".")) O8 k9 Z# f+ l" q, v' _+ I5 ]) i
- )) ~$ p( ] j8 y; i6 y
- )
1 h# Q: O* m( c* w- _ - (setq vpf ".")9 [/ M: Q ~8 {2 {/ s. ?# A* E
- )
1 K6 ?/ }/ _4 p) d - (setq ltabstr (strcat layname "\t"
( G G# h. _4 {0 [ l# d& i. `# z - onoff "\t". z" \- Y" @. K$ Z G, i( @
- frozth "\t"$ O( \; B$ h1 p; N& k; ?; ?/ o, ~2 E6 P
- lock "\t"3 E7 V0 }6 q& a! g
- vpf "\t"
% k* G4 {% x$ M3 |. @ - vpn "\t"
/ a' x# G2 F& N0 i - colname "\t"
8 Z( r2 q, V+ a/ f) a0 ]2 X, o - linetype. {. s" n g6 W4 |' H( A
- ) f* J; `. x/ O# K% ]8 q- | s
- )8 t; h2 T4 A3 _ c* U2 e
- (setq longlist (append longlist (list ltabstr))). T: g* w" z) }5 {% \- l1 ^( G; U
- (setq sortlist (cdr sortlist))
2 f* x$ L# f; F! t! N - (setq layname (car sortlist))
/ b3 e# p6 V3 z$ g h/ e& a - )+ Y7 b& c1 q2 D' a. n
- )
& V4 b8 z/ l! ]1 p& @ - ;;, e5 Y$ O* J5 l
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
/ H7 h$ N. W% x) j/ d8 W) Z4 T4 ] - ;; linetype names read from the symbol table. Mdashlist is list consisting
/ P' h- C: j* M5 B1 K% o$ X9 C - ;; of lists which define the linetype pattern - numbers that indicate dots, ! H6 A! l1 S3 b! g0 k* J
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
% j- ^$ x! |3 E - ;; order of names in ltnmlst.
% V: X( z9 `( p; B* o - ;;
2 Y: J9 b/ @' O0 I" d! _9 D. N - (defun makeltlists (/ ltlist ltname)" t; ~7 B% [) `
- (setq mdashlist nil)/ |/ |3 i) b+ V; z6 _
- (setq ltlist (tblnext "LTYPE" T)) w1 V6 @% X0 R' d) c
- (setq ltname (cdr (assoc 2 ltlist))): R) l; ]$ |8 w; L
- (setq ltnmlst (list ltname))
' y7 K0 H" f/ i; V# w2 n) d
9 J% B" Q1 O5 B# o1 H- (if (= ltname "CONTINUOUS"), V. o, d9 L& f, y* E# {& w! G
- (setq mdashlist (list "CONT"))% t1 M" J1 o- { ]: e
- (setq mdashlist
( }& ]: ~3 {7 ^; b4 N3 A: l2 j - (append mdashlist (list (add-mdash ltlist)))" C% k% w0 }5 c: l
- )* Y3 V' J. v" m* I- @$ l
- )
9 x e& k% J% K; \# h/ v& y" u - (while (setq ltlist (tblnext "LTYPE")): B% G9 m: D; ]/ T
- (setq ltname (cdr (assoc 2 ltlist)))
, _9 A) q6 U% M - (setq ltnmlst (append ltnmlst (list ltname)))7 U. g6 ~/ ~2 I2 ?5 u
- (setq mdashlist
1 [3 G6 |) [, D" H V - (append mdashlist (list (add-mdash ltlist)))
! f Q* R. U3 h) y" W( V - ), H$ i ~5 x/ }5 v8 h, T- |
- )
/ O# x) B/ C1 t/ y4 Z1 S - (setq ltnmlst (cons "BYBLOCK" ltnmlst)): f, P& R2 s# y5 _% v( r" H
- (setq mdashlist (cons nil mdashlist))
' {* D6 r4 M; A z - (setq ltnmlst (cons "BYLAYER" ltnmlst))( T+ M2 S& Q O; {. c1 {
- (setq mdashlist (cons nil mdashlist))" c/ d% @( a! `
- )
" f; D* Z9 K+ q - ;;3 \( _3 O' q' T4 X- {
- ;; Get all the group code 49 values for a linetype and put them in a list
# x" `" T" E& T& o$ z+ C - ;; (pen-up, pen-down info)
$ @- U1 C7 v" p. y - ;;
* n7 B3 _8 f; e - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)# I& C4 Z# B* i7 L! X
- (setq dashlist nil)0 I/ y& t. d$ I! c- D& P
- (while (setq assoclist (car ltlist1))
3 E) F. W% f$ |2 g7 k - (if (= (car assoclist) 49)% q3 [4 C% @- K8 D
- (progn& m% A% M `" X6 G3 h
- (setq dashsize (cdr assoclist))! u( H0 \" y- m- k3 F: x# S) _
- (setq dashlist (cons dashsize dashlist))
5 P1 v5 H( T' e6 ^ - )
: }7 i4 f# H; [& u, i% ] - )! b8 Y& G4 F* d. l. L
- (setq ltlist1 (cdr ltlist1))) f$ P! s; x& Z- }4 U
- )- `8 [' E" P/ C
- (setq dashlist (reverse dashlist))% Q: j: \) s& s4 S+ [) l
- )
2 v4 T7 E9 M3 j9 e7 ~/ A) k$ ] - ;;
. K8 ^9 I& x$ I6 b2 m5 @ - ;; Color a tile, draw linetype, and draw a border around it
0 g) g4 g' u J' u& G - ;;
6 U: J) o# J, v- D - (defun col_tile (tile color patlist / x y)
4 @7 ?& y* K3 _5 L0 s/ J; l. I# M. \# Z E - (setq x (dimx_tile tile))
/ M: @9 @. V0 n! w - (setq y (dimy_tile tile))
* `# k2 P& i' R+ ?" W6 I - (start_image tile)# b1 p( ?- Q. C3 V3 Y$ Y8 B
- (fill_image 0 0 x y color)
4 i; E6 X3 w) G7 a. E9 G - (if (= color 7)
$ s" p& Q+ `3 [ - (progn
: P' H2 @: [3 C! I Q1 Q: O - (if patlist (drawpattern x (/ y 2) patlist 0))
# ^! g! f8 y! a$ l j/ H - (tile_rect 0 0 x y 0)
) A+ `: I4 T2 D" x a( @ - )" v3 O& g9 j- u t } q1 i
- (progn
H! Q$ F: c0 ]- [1 n% J+ o. q - (if patlist (drawpattern x (/ y 2) patlist 7))
- O& n/ q. k: r0 ]5 O. h5 L - (tile_rect 0 0 x y 7)
* O* \* i* a9 L, T! m - )& r. _& z$ j4 `9 v( Z$ [3 h
- )
4 {5 ]' A7 r' Q - (end_image)9 Q. v$ E. i, s% Y: c& l* v/ D
- )
% K+ ^6 ?$ O( @" c T) J - ;;7 `. b' k/ Z6 B8 a6 r$ X( x- Q& d
- ;; Draw a border around a tile; W" U! @/ i+ h! o
- ;;+ w& `4 Z4 ?# h5 @- T- B
- (defun tile_rect (x1 y1 x2 y2 color)
6 E$ s+ Z7 I) R8 o. _0 r! b( W - (setq x2 (- x2 1))
8 j) m" k' \# s+ n7 e7 t8 L - (setq y2 (- y2 1))
" i6 T2 N X3 M& z$ ?! p; L0 @- f - (vector_image x1 y1 x2 y1 color)" R; ?0 ?8 L4 U& _1 k
- (vector_image x2 y1 x2 y2 color)/ Z* t7 N% a5 Z8 h6 P% R; ~
- (vector_image x2 y2 x1 y2 color)
( e* M( D& e/ o, s w - (vector_image x1 y2 x1 y1 color)
, q; l- @3 `4 j( m; | - )
: A; q# J9 R* Y - ;;0 u: `& H" T9 ^" y m3 R6 N4 C
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
3 ^8 v, O$ P/ v- u9 J( n/ V* u - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a ( w( \* B2 L7 h
- ;; list of numbers that define the linetype, and color is the color of the
) t" U9 {* ] c7 t - ;; tile.5 \; f8 v% \4 r* }; D% E0 ]
- ;;) }' W% H2 y3 D, d" j7 A0 r' t
- (defun drawpattern (boxlength y2 pattern color / x1 x2
3 D: T& Z/ o0 |. r9 k - patlist dash)
6 {: g' \- Z. A - (setq x1 0 x2 0)
. F. ]' o% L/ ~ D - (setq patlist pattern)
( j, Q8 X0 E: i1 T) e6 f4 @$ ^ - (if (= patlist "CONT"), x/ l, E, s4 b2 S, J: R9 U
- (progn & k5 E+ ]# j# G9 \8 Q
- (setq dash boxlength)
3 W) S7 p7 D2 c2 V - (vi)" t% n$ n" _! f F
- (setq x1 boxlength)( z/ M& ]) K* c6 ], j
- )
: R! `8 p- L1 ]3 d - )% D& h. T& {0 \: W; x2 S) M* Z
- (while (< x1 boxlength)
; V/ N* l1 r- ~! z - (if (setq dash (car patlist))+ A0 d- a @0 Z! s* ]( H
- (progn& v6 i/ a; }, q& d% N. h
- (setq dash (fix (* 30 dash)))( \( E r( L, C7 \
- (cond
8 U* y& n' j: L- s0 \1 k' o - ((= dash 0)
/ S P! V# |% G- T# z: ~ u - (setq dash 1) % X, G8 K/ q2 S0 F7 x M0 M: f
- (vi)" S+ X9 Z+ b7 q* o
- )
) a. k9 z b! c! ?4 A - ((> dash 0)
5 h( y9 d, B T' ?* R2 Z - (vi)4 Z2 g: B/ k- }, l+ z" }
- )
4 ~ R( `! B0 n' r - (T
- M8 N4 n6 \; B# Z' W7 S - (if (< (abs dash) 2) (setq dash 2))
' W: e W9 J6 |# G. e - (setq x2 (+ x2 (abs dash)))8 { C% c( R- K5 _- r7 O
- )
* H1 E% w- E- Y, D* z/ L& @ - )8 O/ _ z' B! l% y
- (setq patlist (cdr patlist))
4 o% {* X' v" S) D2 a - (setq x1 x2)0 c9 v* n) x6 C u& h/ {+ a) t
- )
5 a8 i8 g6 e* }3 R6 _% L - (setq patlist pattern)
8 t5 r8 j- f! N& x - )4 u. d* } |+ |7 f' ^) {. [ p
- )
1 S3 ~+ n$ N z% k/ ^' ]5 s - )
5 Q( f4 a4 p7 s, }! e - ;;
+ ]. U8 _0 R5 }! i - ;; Draw a dash or dot in image tile3 J, d9 i6 J8 R# c# K
- ;;
) T$ Z! h: V- M7 m m7 J - (defun vi ()
+ n' @4 C+ n% Y/ F8 q - (setq x2 (+ x2 dash))2 y8 L5 ^0 E1 d& ] l
- (vector_image x1 y2 x2 y2 color)5 n; [" @; ~! F7 ?; A% _4 J
- )% l- K$ s3 y& _+ J+ L3 p3 `% G$ @
- ;;
: R& C. z* t1 d6 b9 C - ;; This function takes a selection and returns a list of the color, linetype, * D( g$ G) Z0 y L b6 K( z6 X
- ;; layer, and thickness properties that are common to every entities in the
8 N# C( p; x+ y# J+ j. U/ ^/ Z - ;; selection set - (color linetype layer thickness). If all entities do not
: ^- ^9 r- q, t! D0 o8 G - ;; share the same property value it returns "Varies" in place of the
o& V; [7 _4 k% Q# A - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)5 A1 g: }. T5 t/ l h
- ;;1 A5 e$ j: D* N; W8 y9 d
- (defun getprops (selset / sslen elist color ltype layer& v2 S, B" |, ~& m0 n7 G5 N
- thickness go chk-col chk-lt chk-lay chk-th ctr)) A7 N- M9 _8 X8 w- z7 R
- (setq sslen (sslength selset))$ p4 J9 U7 J( o5 @
- (setq elist (entget (ssname selset 0)))- c) R) w6 Y7 Y1 \
- (setq color (cdr (assoc 62 elist)))1 Q8 W j+ @( t" O1 ]* E/ O U
- (if (not color) (setq color 256))( k* E5 g m4 l/ W
- (setq ltype (cdr (assoc 6 elist)))
8 M- f* v7 W- G - (if (not ltype) (setq ltype "BYLAYER")), @" x0 T% J- ]/ N0 a
- (setq layer (cdr (assoc 8 elist)))4 X& }9 M5 @; M6 F2 [6 u
- (setq thickness (cdr (assoc 39 elist)))# K' G% V! m+ x Q% r3 I3 W) [( u4 ^
- (if (not thickness) (setq thickness 0))3 F. C4 x7 W I- R; {# d
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)+ e6 `! g; G! V+ s4 N6 e' S
+ u) c' u& j1 b2 |0 a) E- ;; Page through the selection set. When a property" s6 B1 `9 s: @+ B2 `- i' a
- ;; does not match, stop checking for that property.
8 [! f# z' N( [8 D, Y - ;; If all properties vary, stop paging." z) e' ~( u6 q4 ?
- 2 \9 T6 T+ V {) V
- (while (and (> sslen ctr) go)
1 I$ t E, U4 Z, Y! A - (setq elist (entget (setq en (ssname selset ctr))))
& T$ ~& P0 O2 F, N y" J$ N$ g( z ?6 @ - (if chk-col (match-col))
" |1 F, h' p4 S- k3 Y& u - (if chk-lt (match-lt))
" I. a: {8 p7 p7 Q5 @6 ] - (if chk-lay (match-lay))
8 b4 z; \! p x: O; s - (if chk-th (match-th))
0 h9 q# v9 X) w: f( a5 `$ E - (setq ctr (1+ ctr))5 M4 u* O2 }$ W9 F" c) |& r! R
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))% M2 v) F% f1 ~& h* N0 f( g
- (setq go nil)
7 g2 Q9 [8 v) ` ^ - )
0 Q+ ^* Y2 j. u9 O& }: O - )- \( s( v* C% Y3 \
- (list color ltype layer thickness)
, a& F7 E$ V7 J S& X3 Z - )
( Y# Y8 H/ a2 F - ; Y$ d7 x) p- _" a H7 z+ w
- (defun match-col (/ ncolor)
! f% S! W8 M* Q3 Z( U- Z( _ - (setq ncolor (cdr (assoc 62 elist)))
7 M3 f6 Z8 B& @1 [9 X+ ^& e - (if (not ncolor) (setq ncolor 256))
B( i. d4 @& T% _, [" a7 Q$ r - (if (/= color ncolor)" h1 G" B. u8 w; D& n- I2 U
- (progn
+ h* [. \% Y# M, M8 ?* @ - (setq chk-col nil)$ ]2 U- L3 y( |9 R0 q
- (setq color nil)
4 f# `5 v6 _$ x6 [+ G( | - )
; h9 x, T( M, R) p% P5 Q$ b - )
2 T3 U2 W3 k* e# m* N$ {" m - )- S4 M, g5 L" k! Q% C
5 Y' G: y& e( y- (defun match-lt (/ nltype)- f$ w b3 F' d, E- O9 F
- (setq nltype (cdr (assoc 6 elist)))) M: ?* S2 S4 `# u5 u5 I
- (if (not nltype) (setq nltype "BYLAYER")); g" x2 {1 ^+ f6 Q9 l i
- (if (/= ltype nltype). ^7 J2 Z7 a' I+ f2 L
- (progn( I$ @8 h% |. X3 ~- H* d
- (setq chk-lt nil)
6 ^; q9 }6 _6 v6 }8 o4 A" w - (setq ltype "Varies")+ x! t# |# O( l" t# ]1 J
- )
$ q" W! S" N4 Z. n0 T5 W' R- w( W7 ^3 H - )! M! {; T* u* n% f. P7 _
- )
/ O1 w* p% j. ^ - , n/ c2 { V/ j
- (defun match-lay (/ nlayer)
( c% V; M" Z% F' _5 \9 Q4 C7 p l - (setq nlayer (cdr (assoc 8 elist))); @% B3 F5 }4 f5 |0 e, j- T
- (if (/= layer nlayer), g- r" M0 L, a
- (progn
; g; D0 d8 y# ^$ a f - (setq chk-lay nil)) p: k; n& n D2 s6 G0 x8 p
- (setq layer "Varies")! C6 v1 V, D3 C: u
- ): T! H4 W7 u0 U/ Z p0 l6 a
- )
/ |0 R/ O0 k5 p) E( h V - )
' u# b2 q! R1 |- S5 B+ u/ M
7 Q7 U2 x, b, S2 Y- (defun match-th (/ nthickness): I( N& p; H2 p& J( G
- (setq nthickness (cdr (assoc 39 elist)))
* r3 ^$ d& ^' X# i" v# B- ] - (if (not nthickness) (setq nthickness 0))$ f n+ a( J- n' o9 v* \; P
- (if (/= thickness nthickness)- o* _7 | u8 [" P- l
- (progn
% W7 Z* J w7 Q - (setq chk-th nil)
- f, x' `! k4 ^, t1 K" U& Q8 D - (setq thickness "Varies")
: @0 {7 @( E7 ?+ ?: R2 j - ), L o3 M/ c' R3 c% e7 S
- )
& |/ ?' n( m- R* e: ~! w+ Q' p! K# k - )4 \# X: @% ~+ j. H# b1 f
5 V. f9 U0 Z; H7 T- ;;
8 V: h/ Z8 I* F, b* D/ { - ;; If an item is a member of the list, then return its index number, else % y3 N/ h7 K) ]9 X3 R
- ;; return nil." o- J9 {& S, l+ O+ l3 R
- ;;
7 o3 r* n7 D! T* W - (defun getindex (item itemlist / m n)3 O0 Q5 g* j. T, f4 Z8 J& Z
- (setq n (length itemlist))
0 @, C' ^2 `, v9 Z1 i - (if (> (setq m (length (member item itemlist))) 0)/ X) \$ R- I* m/ s
- (- n m)
2 a) v# _% U3 u7 J4 O- {# D - nil
, D9 K5 I) W4 O- a5 o2 W - )# ^! P& Q: X& A1 V
- ): j0 ^8 T( @0 g1 B( L( V+ s
- ;;
2 M' v) F4 c. t! m - ;; This function is called if the linetype is set "BYLAYER". It finds the
8 x- m% x4 l! Y4 r' V) c) ^ - ;; ltype of the layer so it can be displayed beside the linetype button.
. l8 c; `- b, v - ;;
9 [9 m v8 r+ f ~3 i: r" M - (defun bylayer_lt (/ layname layinfo ltype)
6 l( n& z, {$ J1 y5 f - (if lay-idx+ x x. p- k4 E" e% n8 [
- (progn/ h s' }( c/ @4 `, Z8 Z
- (setq layname (nth lay-idx laynmlst))
, J0 B: I9 ~0 T5 s: o; v7 F - (setq layinfo (tblsearch "layer" layname))- C* \ F5 m% T* Y2 |7 B% V2 [0 U6 ~
- (setq ltype (cdr (assoc 6 layinfo)))
( q7 X; S3 S5 L. J1 @. _, s1 J - (strcat "BYLAYER (" ltype ")"): s5 F7 o/ u( L5 y H6 j! n
- )
8 N9 j% r2 Y2 e3 [4 Z( f - "BYLAYER": n# B! W8 v1 ]2 o" Q; [
- )
" A' E: W4 d) O5 D0 L7 p2 B( u2 D2 u - )
0 y7 l: y! _ L g9 D - ;;. N; b* L0 J; E7 ~* }4 ^( V1 H
- ;; This function is called if the color is set "BYLAYER". It finds the
) C- f3 m. N" `) {, f# K - ;; color of the layer so it can be displayed beside the color button.
, K' W- R' c# M - ;;9 y. R |6 G/ O* `: j' {# h
- (defun bylayer_col (/ layname layinfo color), x1 L# s+ p! P4 v$ N4 G
- (if lay-idx
( {6 X4 k U0 |. b+ b5 o - (progn$ f0 s; e0 M; D4 |/ C! Q0 [8 r
- (setq layname (nth lay-idx laynmlst))2 M" [" [* L3 ?
- (setq layinfo (tblsearch "layer" layname))& t r8 d( _9 B" ]* F
- (setq color (abs (cdr (assoc 62 layinfo))))
1 L2 D- n+ Y2 @ - (setq cn color)
; F% x0 a1 Y1 Q+ i3 X - (strcat "BYLAYER (" (colorname color) ")")
( h) h$ ?3 D( y( _ - )- D6 Y6 T( l5 l9 Y) N" R5 r- T
- (progn6 w6 @3 f: k1 s7 {8 T3 i
- (setq cn 0)' l( m* E& }1 ]# b& C
- "BYLAYER"0 L/ I4 }) ?) j W1 V
- ) I& ?: _& x0 |1 E6 |
- )4 s2 W8 v o+ G0 L3 X2 Y% u
- )
# T I0 [/ y1 j. F; N t - ;;
: [! |; e# [7 U& ~. L - ;; If there is no error message, then close the dialogue1 g$ q k' a( h8 ]" V
- ;;
6 B- f* e4 Z& N0 G* q0 _9 y. r - ;; If there is an error message, then set focus to the tile& w9 C% s5 @" R4 b& C& W4 a/ ^
- ;; that's associated with the error message.' I( F/ ^( O7 b1 b q* D* j( `; J4 M, o
- ;;+ o, l; H$ z* Z% W2 H$ D
- (defun test-ok ( / errtile)
" u+ h V( C- T* L - (setq errtile (get_tile "error"))" t" m; W( ?5 H$ ?6 ]. L
- (cond5 p% H. h# d4 G1 I' Z
- ( (= errtile ""). K: g) ^, e6 @! [; R
- (done_dialog 1))
& Q5 T4 ?3 [1 } - ( (= errtile "Invalid thickness.")
/ I" J4 [9 U" u1 u# n - (mode_tile "eb_thickness" 2))1 A7 t7 F2 V v: ]" A6 K; `( G ]
- )7 h- \" D' G# Y3 I; f0 K
- )- a' t+ y& t' `; Y
- ;;
/ p6 G8 G' d5 C0 K - ;; A color function used by getlayer.: d8 b3 z. I0 h
- ;; p t: f$ \7 d6 [6 o C8 x- t
- (defun colorname (colnum)
5 o# c* U; Z( E' V# v6 X; t8 c5 `0 B - (setq cn (abs colnum)): M- m, O: T) j
- (cond ((= cn 1) "red")2 B: U9 x- |5 _( p5 ~
- ((= cn 2) "yellow")
6 s0 _# t O8 u0 o% l - ((= cn 3) "green")- ^0 V. R, j6 ~& C/ l4 C3 k
- ((= cn 4) "cyan")
9 I7 O/ K9 a& q" K% T0 r. ` - ((= cn 5) "blue")! R" k" X0 E0 q% {, R0 d, h
- ((= cn 6) "magenta")* `0 K0 P/ D0 y4 n0 \. i" H3 d5 i; Y
- ((= cn 7) "white")
8 G9 |0 [3 l' J) {' m1 S - (T (itoa cn))& o8 {5 @- Y1 w& j: R1 M
- ) K% x6 E9 p3 p1 F
- )
# J2 N( R4 |9 a# i0 c8 J6 B
! E( P$ |- J: t2 R; f! j2 f" _8 ]- ;;; Construct layer and ltype lists and initialize all; W7 d+ m) @5 B* c2 A
- ;;; program variables:5 {; Z! o! ?% K7 a8 P
0 S c: a: x7 f3 `0 w/ j& H- (makelaylists) ; layer list - laynmlst; J. b! @7 |( _) Y0 @
- (makeltlists) ; linetype lists - ltnmlst, mdashlist+ c( R$ C' q9 a9 d! A' J
- ;; Find the property values of the selection set.! G/ }- h+ C$ i+ J8 u7 l7 {. N
- ;; (getprops ss) returns a list of properties from
: H- L9 t( h" `6 @+ \$ J- l; f - ;; a selection set - (color ltype layer thickness).
) n3 O: U8 N$ r2 G/ h- s9 X - (setq proplist (getprops ss))' e: h7 \5 K/ L) `) B
- (setq ecolor (car proplist))
, E. \$ i$ h$ J2 } - (setq eltype (cadr proplist))+ d! u7 d/ o& w) d* _! S' [ \. i
- (setq elayer (caddr proplist))! d3 k" W% Z* A F6 p" V5 a! ~
- (setq ethickness (cadddr proplist))
2 ?$ P) L# {7 v - ;; Find index of linetype, and layer lists x& @; ~; k- X1 ?: [4 J
- (cond
) W6 U; O- S K- X - ((= eltype "Varies") (setq lt-idx nil))3 @# g7 B: L& i8 i, k2 ?& \ p y
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
) a$ i* _* D- f* p5 l" g - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))9 @4 n3 s k. o+ E9 \1 K
- (T (setq lt-idx (getindex eltype ltnmlst)))6 f' u j8 }' |# r
- )
2 |8 r+ g# ~) Y1 | - (if (= elayer "Varies")
$ e% N- c" V% z4 H - (setq lay-idx nil)
; i. f( d' p2 e& `% E - (setq lay-idx (getindex elayer laynmlst))
2 r* A( [1 H) R$ O8 [( d: U - )
) J2 M1 h! r; K - (if (= ethickness "Varies")* B$ H/ Y5 O% {# I2 ~
- (setq ethickness nil)+ Q* P, K0 Y4 d- r- I, j) D2 n
- )( s% g" D, U$ f
- $ B% v9 |: k0 Q# ]. m& I/ B
- ) ; end (ddchprop_init)" K5 x* V1 V7 z$ h8 \- p
6 R# \8 h4 _1 j$ D1 G- ;;; (ddchprop_select)
6 @1 A1 x* e2 g& b# h8 ^ - ;;;* H# p+ m0 _6 h4 u
- ;;; Aquires selection set for DDCHPROP, in one of three ways:7 }3 d2 N% @4 @2 X1 e& J
- ;;;
; i3 @; o! V" [# M M4 P - ;;; 1 - Autoselected.
& K9 s! F# T( r& w0 j - ;;; 2 - Prompted for.9 [, n& u5 @! d% v7 s. q# c
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
7 _% s7 `0 r* Q4 G+ A( m& n: L - ;;;, M4 i: _. U& N, t) G+ q. J7 e# m, h, D
- ;;; The (ddchprop_select) function also sets the value of the, s2 n3 R! s5 o
- ;;; global symbol AI_SELTYPE to one of the above three values to
# _% f8 G* P9 m, P+ A - ;;; indicate the method thru which the entity was aquired.4 j- O( C H( r% b: f
- + {2 [4 R1 k+ @! }2 G5 I
- 9 h; b! m' X& ^4 L' _9 \1 M( }8 a
- (defun ddchprop_select ()
: N2 q' w3 q: c9 n& @* Q# D - (cond
$ A& p; F( v# ~1 r% R: j - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to& Q* B7 `! w. I) R J
- (cond ; (ddchprop) as argument
, }8 e: H! k( E3 g- y( o, @& H - ( (not (zerop (sslength ss))) ; If not empty, then+ W, W2 F! U" e5 }: F1 a% n
- (setq ai_seltype 3) ; then return pickset.& _# k% K1 w; c4 v; |0 {* k# z
- (ai_return ss))))! X. ?* p4 c) l8 z( |3 E, m' n& t
- 2 d% L8 ^3 y0 P# e9 X9 H) R* t6 L: X
- ( (ai_aselect)) ; Use current selection! \2 j5 I) U, @+ g4 C4 v0 W
- ; set or prompt for objects
+ K& r+ c, s$ A# R
5 ]" Z: B- J, I. p$ M: W0 s z- (t (princ "\nNothing selected.")
" C- [) T' l+ E - (ai_return nil))
' N5 T+ j: D1 i) _9 y - )
9 g; p/ I6 I$ M( Z% N - )" w1 m9 d1 `4 f
- " ^ f, u, Y$ d/ Y
- ;;; Define command function.
1 `; o" L( t- C* _- v; m7 g - 6 R- M$ ]2 v$ q$ Y# O" l
- (defun C:CH ()# J2 H* d0 M( @7 Q* w* Y0 b
- (ddchprop nil)
7 f1 I: S4 b. ^* v0 I2 P- e - (princ). s5 H2 l6 O! R# g
- )
8 R: e$ K) y9 S. O- z
/ L/ p1 |" B/ z S2 S- 7 S, }- S$ O6 |6 T" f3 @
- ;;; Main program function - callable as a subroutine.
' R0 B9 g( F* X9 _: U3 H - ;;;
6 S2 P) Q7 G# x4 d$ y! G - ;;; (ddchprop <pickset> )' k; l( ?/ G& _' o+ S( F2 \5 n
- ;;;4 \; y$ @" y% l+ c$ N0 u
- ;;; <pickset> is the selection set of objects to be changed.
) [" M u6 ^, c! l/ ? - ;;;
; d$ X; m2 U% c4 ? g8 l - ;;; If <pickset> is nil, then the current selection set is% l3 X7 S, F" L# F! J
- ;;; aquired, if one exists. Otherwise, the user is prompted
# d' Q0 h: P0 S3 {. e$ I! k y - ;;; to select the objects to be changed. r) ]" |9 t0 M' p# k/ g" I
- ;;;: @8 I" N' p2 ~- i: x5 `5 Y
- ;;; Before (ddchprop) can be called as a subroutine, it must
* a7 w' m8 j1 s. I- b# A - ;;; be loaded first. It is up to the calling application to7 H8 k& @8 Q! N/ ^, f
- ;;; first determine this, and load it if necessary.% U% V. Z A4 b, N6 z, |& J" D
5 w1 _7 V0 F. b2 u( M$ X" u8 g. I- (defun ddchprop (ss /
- U, M/ T: K/ [* x8 \1 D6 }6 z - 1 b) K7 U" c0 ? E! d9 K
- add-mdash ecolor ltedit_act s9 }: u" x; B) M/ S4 A; b
- assoclist elayer ltidx selset- q7 c" p, N* I4 @- u
- bit-70 elist ltlist set_col_tile: m! J1 D$ P: Z% c4 @
- boxlength eltype ltlist1
2 {. U# t' U8 H( [; H, u - bylayer-lt en ltlist_act sortlist8 ?5 q6 I, j" R- B2 v8 M) j9 p8 J
- bylayer_col ethickness ltname* x3 C' |& h% S8 L3 F6 L& K
- bylayer_lt fchk ltnmlst sslen
1 k! L- f3 b4 Z! T' r! f, |9 |" { - call_chp frozth ltvalue templist- E" \- F5 g8 N* l& C& y* Z8 u
- chk-col getcolor ltype temp_color
3 p, e A* y( C7 P" J. C - chk-lay getindex m test-ok6 f* K3 A: J$ v3 o/ `0 N/ T4 _
- chk-lt getlayer makelaylists testidx* u0 P. l& e# R8 g7 q6 W
- chk-th getltype makeltlists testlay
4 C' I1 K$ M! ^) v9 E - cmd getprops match-col th-value3 g4 [' ] I2 k
- cmdecho getthickness match-in thickness4 d; l/ ]+ i/ j3 r% q) |8 y
- cn globals match-lay tile( U5 r8 J) q8 K( q. c' y) h" V
- cnum go match-lt tilemode
% k+ O+ W0 x/ O3 z' d - col-idx index match-th tile_rect
/ ]% p) r; T% Z! Y2 a5 G& h - colname item match_col vi
& B- K1 I6 m% u - colnum item1 mdashlist vpf
5 \; }' U9 E4 E t$ _$ m9 I4 W - color item2 n vpldata6 V9 s+ I. m" ?" k
- colorname itemlist name vpn
, p4 b6 T! O9 R/ j, M3 P6 E - col_def lay-idx ncolor x3 r3 P3 H" A$ o" M+ t
- col_tile layedit_act nlayer x1) F* n( ~- N S
- ctr layer nltype x2
+ u* `' ~ l5 @ - cvpname layinfo nthickness xdlist9 v! B# E' y) C7 X- ~
- dash laylist off y% L, j4 x' ? R. J. z- v: `
- dashdata laylist_act old-idx y1
@$ ^( L$ k- M* l - dashlist layname olderr y21 n* [( i+ J' i: i7 [6 j7 l
- dashsize laynmlst on undo_init& h/ r# Q9 H+ F/ N' q5 k; {7 i6 v
- dcl_id layvalue onoff& A' ?3 w# Z& B0 c+ R0 V
- linetype patlist# ?5 K! m0 u; m" Q' E9 R, B0 f) i9 {$ f
- ddchprop-err list1 pattern: p7 w# R8 @5 J
- longlist proplist
9 H( [5 U* \' P/ ?0 V/ u+ \9 V - lt-idx reset-lay
4 S$ p' m. S! B5 X - drawpattern ltabstr reset-lt
; K7 e8 q. e' b( Z. H - )
6 \1 |& V) x8 @* J
8 z) r1 z8 N' Z/ j% t; f6 F( R O- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho. Q1 _0 t7 e* J1 R8 f0 C/ S
- old_error *error* ; save current error function
5 S" T' m6 y, [7 _) B8 A8 h' R - *error* ai_error ; new error function# a1 T: P7 J, d
- )2 o0 \: a+ X6 j! w
" o* D7 {$ b# K$ R6 O7 @; s- (setvar "cmdecho" 0)
6 f m" L0 z/ _' Y) X - 2 x+ @; u2 O2 u, F8 B- Z
- (cond
. b; L Z' S8 E4 t, K& {! p& I/ M - ( (not (ai_notrans))) ; Not transparent?# \- h U) _8 b# z
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?: X& _: u) c0 ^1 J3 U6 A" g
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
9 }, G* s# W: X7 F4 M8 F - ( (not (setq ss (ddchprop_select)))) ; objects to modify?. {; z7 S {( l0 f9 |
- , M; E ?( G; B
- (t (ai_undo_push)& ?2 y) u3 B, \5 D; |
- (ddchprop_init) ; Everything's cool,
# ?( q* ^/ H' f) p4 u - (call_chp) ; so proceed!7 H+ D6 v' d1 Z. w( b& t
- (ai_undo_pop)
" _# q) W6 t0 ^; |4 f; h( b - )
8 Y6 F3 m# R! s# f: f - )
% H# V) d% L7 ~! o3 n9 J0 b - 9 K' C4 l' C" `4 w
- (setq *error* old_error) % [6 w2 T0 B" C# G1 h' m" `
- (setvar "cmdecho" old_cmd)
6 Q7 Z# [ `& A - (princ)( ~. K y: H$ x
- )
4 Z1 S3 z3 k3 g1 a/ Q0 [
; \, r: k ]6 z; ]- ;;;----------------------------------------------------------------------------1 M# k0 l2 r/ ^, F ^# j
$ ^, e& p2 H( G0 e+ E' O' Q4 [3 s/ e- (princ " DDCHPROP loaded.")
) u& w( U! L9 k; u0 x3 ]# s- X - (princ)
% b+ L& u$ Q7 s' i0 |, j
: `% l3 W4 A5 c0 D- ;;;----------------------------------------------------------------------------
/ P' {) K5 J- H |
' {8 p: n' a# Q e) x3 `0 S- ;--------------------------------ddmodify.lsp----------------------------------
* z& U6 B* i1 a; I - ; Next available MSG number is 111
, e% ^0 ?/ ^4 u( j - ; MODULE_ID DDMODIFY_LSP_
6 J2 B5 s: [6 v$ a2 e) ]4 z - ;;;----------------------------------------------------------------------------
+ V' p' [) l! ?" A. B( u - ;;; DDMODIFY.LSP4 x( j- \/ Z9 p- X
- ;;;
) O9 i9 \# u G& U6 a u* C - ;;; Copyright 1997 by Autodesk, Inc.
1 F" N! }; \" L: B7 U. s% R5 q; \ - ;;;9 H; Z$ k7 \- f8 x2 h, i( I
- ;;; Permission to use, copy, modify, and distribute this software
% F9 K E% O! Y! D# F' Z/ C* ` - ;;; for any purpose and without fee is hereby granted, provided' h- X4 B* }" a( F/ i7 Z' D( N) i
- ;;; that the above copyright notice appears in all copies and: c; Q0 m7 p+ h( a/ f: y6 H( n) K$ W' X
- ;;; that both that copyright notice and the limited warranty and* X) U0 O6 x* M6 l" N
- ;;; restricted rights notice below appear in all supporting
! k4 V' a, X# V% y/ W' P/ M - ;;; documentation.- i" i4 |$ q9 Y$ h& b$ V$ |
- ;;;- T+ Y( d- | J( u
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.5 g6 J2 Y9 Y$ N& Q7 J3 y& J& q; [0 m
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
) U0 v% Z6 M7 I3 O - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
. g [# Q& J- d - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
p o) n4 D0 B) k2 i - ;;; UNINTERRUPTED OR ERROR FREE.7 T$ J0 U! @, P
- ;;;8 N9 A$ ^ a2 ^5 c$ X
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to: H# _9 j$ h5 y, i8 x6 x( _! U2 @8 X
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
j, ]0 X" q' b: ~ - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
! y+ r% c4 ^8 M n" `" o - ;;; (Rights in Technical Data and Computer Software), as applicable.3 I, D5 v4 ~& w
- ;;;
7 R8 L( D. j0 Q' e% `6 E. { - ;;;.
; }( y* E( b6 s: k" x - ;;;( s% @7 K; U9 r. |! _; |3 u
- ;;;----------------------------------------------------------------------------; d" H0 }6 H. {+ ^6 K; R) D
- ;;; DESCRIPTION
7 C; v& C# ]( w6 _9 Q) p* g' l7 K - ;;;4 \+ b; t5 ?. `* e$ j0 k, ~
- ;;; This function allows the user to get a listing comparable to the LIST0 o8 L1 t. `5 Z% a2 |
- ;;; command for most objects. In addition, most object fields in the
) }( `( h% }( d6 U7 [ - ;;; dialogue box are editable. Points can be specified dynamically by% ~: u% H! O& L5 v
- ;;; temporarily dismissing the dialogue box. Each object has a unique
" i+ I/ h" o$ v2 |& y! w/ u7 R9 Q - ;;; dialogue.* S# b2 K) t4 M
- ;;;9 g* R5 l1 O; n% c/ g! E, E
- ;;; Naming conventions$ W# N* O' w9 r# s+ I9 r m
- ;;; Long function and widget names may use an underscore "_"
8 \/ r; A2 _0 a. Z) h - ;;; in their names to make them easier to read, long variable8 h( ^- G' ]6 q
- ;;; names use a dash "-".
6 Z. ~( _5 M: d" L7 i2 u& Y - ;;;----------------------------------------------------------------------------
7 O: k- L' _0 J" {: U* h7 _5 g - ;;;----------------------------------------------------------------------------
% s# z9 A7 I) W" m& u - ;;; Prefixes in command and keyword strings:3 e2 o6 w6 ~ ]3 P2 ?& f7 U- l
- ;;; "." specifies the built-in AutoCAD command in case it has been0 l F# I. N- A6 P) c
- ;;; redefined." s! A1 ~9 L4 k( V
- ;;; "_" denotes an AutoCAD command or keyword in the native language
& T' j( {9 r5 } U - ;;; version, English.7 K7 P2 N, {/ K8 ~6 L# c/ d
- ;;;----------------------------------------------------------------------------2 d3 I/ y. a4 F9 w3 D
- ;;;) E- h2 u+ l: \$ Y* S* \9 O
- ;;; Avoid (gc)s on load to improve load time.
0 q. o+ T# R% I$ s. v - ;;; e, K% s! k% C/ C i
- (defun do_alloc (/ old_allod new_alloc)+ A2 [- I* f7 A: m# t/ m
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
! {& k4 q9 M, C7 d$ a1 K' p - (expand (1+ (/ 17000 new_alloc))), y1 ?, Z% K/ Q9 f
- (alloc old_alloc)' H$ j; l( T, H
- )6 ?. Y# S& k& p) r4 j- {9 G+ N) U
- (do_alloc)
+ h! Y) `) v0 j g0 H8 L - (setq do_alloc nil). @2 [2 h. Z4 t2 u
- / W% k5 i9 ]' E2 y
- ;;;
3 S) I4 N& D- B1 G' e - ;;;
, \3 k! N2 Y! A, _ [& K8 _' U% O - ;;; ===========================================================================, T7 E: P/ D B0 W# p7 ~
- ;;; ===================== load-time error checking ============================
6 V2 ]* P( g7 p7 j) y! p. c" j - 4 t' a& g5 `$ q2 \- W3 V, `( s
- (defun ai_abort (app msg)
2 H1 x) c9 D3 e9 H, @& ] - (defun *error* (s)
/ J; P' a, i! k6 d - (if old_error (setq *error* old_error))
! Q: N, u9 V9 I0 I) L - (princ)% O; s7 _! R; y6 J. N+ Z
- )
" Z+ {9 ~" u+ p2 ? - (if msg# l* R) ~4 l8 d- M2 V( F3 }
- (alert (strcat " Application error: "
; q; ~' A* }8 W6 N* U: x1 S - app
! Q0 D1 n, y/ c: s. X: x- [ - " \n\n "9 `3 {. i( K1 g1 F: G. a
- msg% v) b9 n3 |4 q, X; L2 C; s
- " \n"
! b! f1 G( _9 d; A! ^! m* M. A - )
- `" x% t N: f8 b {2 o7 J - )
* @* t7 I+ d2 q6 [' w- d - )* T+ ^2 Q- G) r! e7 Y
- (exit)% I$ }+ O$ w" m
- )* k. \9 f, @7 l' R& q
- 8 k4 u7 D' Q) q& k7 l c; M
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
$ k' _- C X# J- X$ ] - ;;; and then try to load it. If it can't be found or can't be
$ N0 \" W+ L4 [- @ - ;;; loaded, then abort the loading of this file immediately.
; x, v6 E7 b! u, M - 1 u: z8 D' L0 m) ]- d/ r/ {
- (cond7 A$ |1 I C* b0 p, P
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
9 d, J7 f5 d3 ]2 T
# l$ _% {( q E6 | Q- ( (not (findfile "ai_utils.lsp")) ; find it
9 m H1 B8 K/ Z9 o5 {) `- i/ K - (ai_abort "DDMODIFY"
9 W u2 n* i0 o. z9 Y$ U+ q - (strcat "Can't locate file AI_UTILS.LSP."- G$ s- _! {+ C; n8 B
- "\n Check support directory.")))
, q( A% U+ m* X" z( L6 ]
1 X4 f6 E/ J7 y! c# H6 s- ( (eq "failed" (load "ai_utils" "failed")) ; load it! r- X( R. i7 X7 c9 _* z4 {
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))" U0 c) D$ }. f' @
- )
7 o& Y# ]9 M, ~% H* X4 i1 }# S. Y
5 c5 s. [. ]6 A- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can* d$ a& t* V @
- ;;; be assumed that all functions defined therein are available.
3 y. h6 r/ O% c# J
2 f5 W4 J5 ^( W8 n# _- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort! n0 n9 }+ [ [8 C W
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP- x8 h2 [% ^' y
- ;;; does not abort the running application itself (so that it can
' e {/ [3 x& M( O - ;;; also be called from within the command without also stopping/ l$ _( g& A8 |1 e* c0 M' W
- ;;; an AutoCAD command currently in progress).
* C, s" D0 v. i3 q4 Z1 u- C% B - 6 o& J$ u9 [8 y9 ?1 f3 G$ K
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
6 z. m) b: H" _2 c7 \% ]5 I B* n - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
0 h% G c% v$ E8 y/ J - ) ; ai_abort's alert box dialog.
& p# u0 H) \& Q( {
Q/ ~( O& F; \. I- ;;; ==================== end load-time operations ===========================
3 h. a& y! g0 L3 H+ ^ - ; Y. n" ~& S m$ h) C& b/ T
- ;;; global variables! v2 O$ _9 r( e) c( y
- 4 ^4 f k7 }9 k
- (setq hatch-elist nil)- B! Z# o* X5 B! F5 t+ c0 i
- 8 L/ r; ?+ N1 N
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
3 B5 J: b8 `5 u9 h* J - ;;; assumed to be available.) D# t1 P& c; }- ]
# q$ D3 T6 S1 } x# E- ;;; Define and encapsulate all subroutines that are declared4 c& `( M; G$ P+ n+ c5 y0 g
- ;;; locals of the (ddmodify) function.8 i+ x, r2 |8 L4 [% ]6 z7 f3 @: F
5 y% l m# |2 a$ Y- (defun ddmodify_init ()$ @- V1 V; t6 G( L) \
- ;;
; v0 W% G1 C" C. M3 J - ;; These three functions modify the enitity list for common properties. Since
( Q5 u; I% m) c$ ]& a - ;; color, ltype, and thickness are absent from the object list when they are
1 o# a. N* {% s4 }+ \ - ;; set to their defaults (i.e. color = bylayer), a simple substitution using" g' {( X0 H6 V7 o3 k5 H( I
- ;; SUBST is not possible.
t! R) N2 i+ w6 D5 r - ;;1 o$ o4 _* u6 n* ^9 e( m0 p2 f
- (defun modify_properties ()
3 _1 g* u7 H Y. D% r - (emod ecolor 62)% {5 P8 f% }6 j8 v
- (emod eltype 6)
S7 g2 x6 j# i# s - (emod ethickness 39)3 x, T! E7 U$ [5 X) \ X) J
- (emod eltscale 48)+ y1 p1 \7 Y5 n7 P* f; P; N1 q. S
- (tempmod elayer 8 nil)1 d; N7 O" P# a/ N/ }
- )' X" U2 r# q# l r
- ;;% S) L' M: g% a. {5 }% i2 [
- ;; This function is used for modifying common properties of the ACIS
' E* V3 V2 W# B- F. K8 c. U* { - ;; based geometry objects. Thickness is not valid for these objects
# i5 \$ H' U& x/ ]8 X4 q - ;; so it is left out.! o, j, V& U! d3 J T( k
- ;;; `% J( Z# B+ q
- (defun modify_prop_geom ()) r4 V( s9 s* F% _- ~" P+ L# v: M
- (emod ecolor 62)' n8 O2 ]+ W+ y. e" H; [: H
- (emod eltype 6)
% `3 W$ ^0 `, F( U! L% b - (emod eltscale 48)
$ v% x$ j1 R1 c! _- o, J - (tempmod elayer 8 nil)
4 E+ ?& R. Y% h6 G3 j - )' q4 Z5 U- j0 C
; Z; n$ q7 M5 |7 F- (defun emod (value bit)* t+ K7 Y& a" N2 H; l1 z( x0 k& q
- (if (= bit 62)2 n5 c$ Q2 x8 |4 i, }2 B# E* F3 e
- (progn. E; v' P3 A! K0 i2 @* a
- (if (or (= value "BYLAYER")
: a+ a) Y3 Q7 i - (= value "BYLAYER")) (setq value 256))
! `. ?& A D! V' b; b" Y, V - (if (or (= value "BYBLOCK")8 b/ O/ t$ u5 o% h# X$ A- @" {
- (= value "BYBLOCK")) (setq value 0))
5 M: |+ V) D4 r; v - )/ t" n' Z5 W. [
- )
/ u2 `; r6 ?* ^! n5 g# Q$ W2 q - (if (setq oldlist (cdr (assoc bit elist)))
( i! |9 r( }$ A: _& O9 L - (tempmod value bit nil)1 x8 S, X9 j: [$ {) i
- (setq elist (append elist (list (cons bit value))))
6 }8 P- }/ D* l5 t, t - )1 I# I. a# @$ V" _3 L
- )
' v: [3 \+ b% x C) S. H - ;;
3 g$ Y/ _6 w, s - ;; Resets object list to original values. Called when the dialogue or7 Z0 Z) Z5 e( E* h& k0 D8 i ]
- ;; function is cancelled.
6 W. M+ N% G5 Y; L. I - ;;5 n- }$ \8 P \: h# O: ]
- (defun reset ()- [+ g4 s/ H# N+ o0 q4 j
- (setq elist old-elist# R$ v# P$ v# w$ U% `5 S
- ecolor (cdr (assoc 62 old-elist))& A$ X5 s/ _: j9 W2 T4 J, d7 {
- ethickness (cdr (assoc 39 old-elist))
( n! B. X! t7 R# K4 ` - eltype (cdr (assoc 6 old-elist))' ~; Z0 H% k; J+ H, n+ g) P5 D
- elayer (cdr (assoc 8 old-elist))% I. A7 G/ x1 F; h& h8 w( e2 {9 m" j* u
- eltscale (cdr (assoc 48 old-elist))
: ~, S9 d; [9 ^$ c - )
" r% `, j; q8 P: l* z5 o - (if (not ecolor) (setq ecolor "BYLAYER"))$ t9 f- F' y# a; L Q) r7 U
- (if (not eltype) (setq eltype "BYLAYER"))
: o {0 w! b0 m/ y# G0 l' B9 j - (if (not ethickness) (setq ethickness 0))
g- R& O5 _/ o' l - (if (not eltscale) (setq eltscale 1))
$ `7 Y4 [' {+ w; k5 q! M - (modify_properties)
1 ^) Z: ?0 F5 r* r6 M; ] - (setq reset_flag t) h& x6 l2 @7 w3 t% s8 ^
- (entmod elist). c2 W5 n# l. s1 x$ v8 g
- )
5 w& t1 h1 U% Z6 K* t! v: f* N - ;;) {- x! D, C6 M t# T
- ;; Modify object when dialogue is temporarily dismissed to reflect latest
9 u4 O7 S) E6 ?/ `+ O - ;; settings of dialogue. It converts the point from current UCS coordinates to
- l8 s( s! w# j% r+ E1 U" y- r( i& P - ;; the proper object coordinates (world or object).5 k+ m+ G) t% A% X" {, d6 o% T
- ;;# J8 r! g5 y: ~ C
- ;; Arguments: value - in current UCS coordinates* p6 ^) g2 E* X; ^! C1 l4 e0 x4 b$ F
- ;; bit - object code (i.e. 10 for start point): @1 z% q0 t! C8 s
- ;; ptype - point type 0=world 1=planar
: W. O0 w& j" H$ v - ;; H n( V) {1 n q# V9 G* U
- (defun tempmod (value bit ptype / newpoint)- |; M( t- S1 U8 I, I+ w
- (cond9 s% L0 J5 V) B1 [3 o$ o) X+ [
- ((= ptype 1) (setq value (trans value 1 ename)))+ F' U7 u4 u) |# U0 |( K6 i) z
- ((= ptype 0) (setq value (trans value 1 0))); Q1 s/ A; n! G% `, X* v
- )/ s8 O8 C9 h' X% X8 }3 W
- (setq elist (subst (cons bit value)
6 w- J( H/ s0 h4 S8 b* p0 o$ s4 B& q - (assoc bit elist)% A' A+ b* j) {$ s* v
- elist$ K, \, }2 Q# Z6 M# o
- )1 O! r4 N( K! O% ?0 u9 C7 w) D' R6 O
- )! Y' P4 L! \5 Z: Y4 @* i
- )+ Z B& x# B9 ^* v& S& W! w- T
- ;;3 B( Q1 B6 h, |5 o
- ;; The following functions are called after a dialogue has been temporarily
. @6 H1 b9 _! b% @& Z - ;; dismissed and the user is selecting a point. If a point is selected the0 I9 E3 u3 n1 D$ P, E6 U+ w2 X
- ;; object list is modified and new X,Y,Z values set. If no point is selected8 K/ B. d+ m& L& c- \
- ;; (null response), then the point is reset back to its previous values.
7 {# U( R5 n$ N" f% n, ^1 X3 n - ;;* r$ j: {. \. i3 F3 E: y) u
- (defun ver_pt1 (ptype)
7 ~! X8 T1 M6 Y) `! I7 V& ` - (if pt1: |7 ?( b# x7 \) x9 k9 L7 y. X1 ]
- (progn
, [" s9 D. r$ F( U! o; E0 Y+ t - (tempmod pt1 10 ptype)9 O+ V- [8 x; V3 n: S4 N
- (entmod elist)
" J% F" d1 j( Z - )- M( ^+ x* L) z; _
- (setq pt1 (list x1 y1 z1))# J/ N/ h$ E6 W# c. ], j1 g* |$ u
- )' W7 \* g1 W+ N
- )
" v5 O4 q. R7 \ - 1 O* {# n% T$ N
- ; (move_pt1 <ptype> )$ B4 L; F8 @* b9 n( Y1 y) M
- ; r" Q( N6 s4 I# P
- ; Called in liew of (ver_pt1) to translate block insertions which
$ D+ @* N8 Z& ^2 ~ - ; might have variable attributes attached to them. If the distance3 c+ x% S# a1 u3 J9 H1 D' ]2 e
- ; the block is to be moved is < 1e-6, the move is deferred.
. {: i6 a, B' i5 x% U. d
, \" u b1 n) Z% ]) d! y, x- (defun move_pt1 (ptype / basept hi)
; m2 J7 D. p9 g( ~+ I' A - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1)): C2 d( G; b# P) w" |
- (cond
9 y! z+ y# w1 I* b8 N. h8 v, z - ( (not pt1)
; Q+ Z$ F1 \7 T' ?* y! G0 X$ | - (setq pt1 (list x1 y1 z1)))* C! Y# T2 M) y1 ?5 T% S' K# b
- 8 @5 A4 s! @0 ]# u8 }4 n
- ( (> 1e-6 (distance pt1 basept)))
) [, K6 j4 v, _' @7 s! H4 E# I - 7 E6 y4 Y" x6 C$ c4 V1 q
- (t (tempmod pt1 10 ptype)8 T- ?5 q0 C; h+ n% @
- (setq hi (getvar "highlight"))* _1 d! }$ _3 L2 @+ ?
- (setvar "highlight" 0)
! l" y9 I9 Q: A" w - (command "._move" ename "" basept pt1)! [( T- f1 y, `! }$ T; f
- (setvar "highlight" hi))2 [# `) T$ m. \7 R0 J8 C6 w
- )
5 U$ p1 o! B/ l1 x - )
; n$ `8 n l8 r3 Y( z - 9 z! h) X3 C/ n2 l1 I
- (defun ver_pt2 (ptype)
. |! T2 u1 X3 A+ y7 f. J, C - (if pt2
! E9 W8 _" x# m, V. u - (progn( G! E: y0 k; X/ D8 C8 L1 ~2 ?
- (tempmod pt2 11 ptype)& m! `# v6 w- U) G# ^
- (entmod elist)& ?8 K4 g! m! i
- ), o' `% e% L% A4 U
- (setq pt2 (list x2 y2 z2))
) S4 {( R4 U' ?, x - )
) W& L) N6 ]0 N - )1 G! K4 N s! k
/ y+ P! b4 a( ]/ _0 |3 c" X- (defun ver_pt3 (ptype)
3 G7 D) a! k' f - (if pt3
% h1 Q. W' F% i' S$ S6 [8 M - (progn$ [, e g" j$ O2 O, V; F3 }3 D
- (tempmod pt3 12 ptype)
+ W- e+ I" c5 Y& _, E# y - (entmod elist), Z. E, p0 Q) Y
- )
; [! D/ S& M. K/ L' v& L - (setq pt3 (list x3 y3 z3))& |/ G+ x6 C. f, H) {
- )0 Q6 | u6 d% e' c$ k
- )
/ L& I+ [/ P3 v# J5 v/ G: ]
4 `: ^, A& N; j4 g% K9 \+ E" N7 {- (defun ver_pt4 (ptype)
$ U3 k, R2 h1 o* a8 T9 z4 g; e+ ` - (if pt4& ]& Y/ X3 R+ j
- (progn3 y7 q+ v4 _+ X) C/ F* z) _
- (tempmod pt4 13 ptype)& ~8 x' V9 H/ }0 N* Z
- (entmod elist)
p8 v, y) o' J4 ]6 d' } - )
; l. J3 y5 c3 T# h# Y# f - (setq pt4 (list x4 y4 z4))
! Z( M; P: h% ?: }/ _ - )2 k" U z9 l, }) A
- )
# } p1 T) h8 ?' ~. L$ N$ h$ S - ;; Xline/Ray
: f/ g# Y# ?0 Z5 r - (defun ver_xline_pt1()1 s! j: M0 K1 ]$ p: M; j$ p
- (if xline_pt1
$ ?$ g5 k9 M& e, g9 u& [6 G* x% g - (progn9 L3 r) s* z# y5 S' g4 p, l
- ;; convert to WCS.
, u% x7 `+ l! G) H- ]0 X" }& x# C - (setq value (trans xline_pt1 1 0))# y' y$ r8 X; l1 U3 ?# M
- (setq elist (subst (cons 10 value)$ F1 d$ O8 Z, L, M L% \9 G
- (assoc 10 elist)
& G$ q9 u, Q! b0 @: M# \ - elist9 N' h* M$ m) A$ {6 e
- )
8 ?' \) {. X0 j! d/ K - )
& i. q6 z2 q. \ - )# {* ~0 `8 z! u
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))& w$ f1 L' c% L: Q% K5 ~% u0 Q
- )
- N$ y( L) V- N b6 d - )6 I* D" v4 u: C- r- P3 I
- 1 H0 ^5 F% O5 M( t
- (defun ver_xline_pt2()
# O _' D! @' z) L- M* C - (if xline_pt2
# B- @' e6 G5 E f& z- r - (progn
2 j" \7 Y& {9 z8 }, ~2 s - ;;5 S" Q; J; k* a
- ;; Calculate new Direction Vector WCS
- O& E0 q& R6 B8 m$ M- A - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))1 E) z) U. L- J
- (setq temp_dir (trans xline_pt2 1 0))' K" o. ^+ b7 X; j8 L
- (setq temp_dir_x (car temp_dir))
) y9 w5 C" V. L - (setq temp_dir_y (cadr temp_dir))
6 X3 r( q# O4 G5 f/ ^* X' D% w - (setq temp_dir_z (caddr temp_dir))
; v8 |) M5 M: G - 3 L! \( u, Q) s
- (setq temp_xline_pt1 (trans xline_pt1 1 0)); r6 \4 c, S4 Y C# [* M4 x
- (setq temp_xline_x1 (car temp_xline_pt1))
! W5 U% `( h0 F - (setq temp_xline_y1 (cadr temp_xline_pt1))
3 M3 l2 e' ~7 G8 W& ] - (setq temp_xline_z1 (caddr temp_xline_pt1))
. b R! |+ V0 ^! c6 O% e
M! e6 w! K9 q4 f- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
! Q8 ]% P9 }# ?/ t& g - (expt (- temp_dir_y temp_xline_y1) 2)* T0 M0 A, C' ~+ D
- (expt (- temp_dir_z temp_xline_z1) 2)2 [! n( O- D* [7 n' {
- )))
# k2 a5 z9 A$ A" @ - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))& s* q6 ~/ n- n* h$ D
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))$ N" m9 d% P: _3 ?% g( U0 s% n: e
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
/ f8 M7 a; i/ }* S8 r/ m6 L4 s# W. D2 f - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
/ U. R& q! I3 I4 h4 p/ m$ b - (assoc 11 elist)( r* `! K/ C- B! V0 U/ u2 p
- elist9 R5 `6 g* F2 }. v- ~( ^+ k
- )
; X5 R5 M7 b2 A; F, U- _6 o - )- K t1 f& s( f1 J
- (entmod elist)2 }& O' C5 P% j+ _
- (setq xline_x2 (car xline_pt2)). |. x. N e: x4 ?. d4 P
- (setq xline_y2 (cadr xline_pt2))
7 O/ |9 A' i) p3 }+ L0 A - (setq xline_z2 (caddr xline_pt2)): F b1 d9 j5 T% {* I" Q2 w
C: I* E1 k0 Z
# ~2 }+ j# p* t" B/ _9 A- )
7 q7 Y& ]2 _; \- E4 g& B+ ]# {2 N+ U - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)) ]% o5 s* G/ b. ^ }8 F
- )
, {, O( |2 Q6 s# Q! F: v3 ` - )
& c& C6 a- o- p) z" E1 i3 v - 0 Z7 C$ X5 v" h1 u) c
- ;;
5 j, h3 G) U! b: H - ;; Common properties for all objects
, T9 L! E q& v1 A8 r& n( t4 K' O; I - ;;. h/ o; k$ q" I5 j7 @, G
- (defun set_tile_props ()9 v4 {* y9 k8 X7 h/ J& h
- (set_tile "error" "")
8 B, Z% c& s) {1 \+ R* a0 ~ - (setcolor)6 ~) ?8 q) l% D2 y# Z
- (cond: L4 k3 n) i, }
- ((= eltype "BYLAYER")
# i1 w% {8 e+ { - (set_tile "t_ltype" (bylayer_lt)))
1 e: X3 J( u! U8 B( H' v% J8 l3 q - ((= eltype "BYBLOCK")
, H1 v& L2 V' D/ u; @% C - (set_tile "t_ltype" "BYBLOCK"))2 `& B/ _3 [+ l6 D6 [1 z- x
- (T (set_tile "t_ltype" eltype))
3 B2 I* S% q6 G - )8 r+ O3 u8 j5 D6 |4 [
- (set_tile "t_layer" elayer)
. k0 E( q* }9 ] - (set_tile "eb_thickness" (ai_rtos ethickness))
2 j6 I. ]8 D2 g - (set_tile "eb_ltscale" (ai_rtos eltscale))
4 G& C' [1 h, s) ?4 W5 g - (setq which_tiles (ai_common_state etype))
3 F1 T! Y0 p3 S$ f6 h& z - ;; Disable tiles if need be...
2 U! X8 z7 S* h L, D' `/ M8 A
' J+ X! p$ d- ~! g, a- ;; Layer Button and Text Field- K4 ^ V2 I! ^9 |4 w7 t5 j( ]9 p
- (if (/= 1 (logand 1 which_tiles))
' W" c$ M2 A: `. m* y0 @- e0 U c0 l - (progn* \, z# L3 ~3 _4 Y1 ]
- (mode_tile "t_layer" 1)7 \, b# }- I( W$ a F) a
- (mode_tile "b_name" 1). @, u* }% B! W: s& H& n* Y1 X
- )
& j2 ?& ~* u$ R - )
/ W8 ]' U7 k7 C; ~/ U - ;; Color Button and Text Field
$ t* q# j5 S9 C - (if (/= 2 (logand 2 which_tiles))
. A7 x I5 U: u- g9 J9 i* E - (progn( e! P! l! U( }& X/ K+ o: F
- (mode_tile "t_color" 1)" _6 m6 _* W1 O% c* O
- (mode_tile "b_color" 1)8 ]. }# V2 ?% f: X0 K) y9 _
- (mode_tile "show_image" 1)( j6 [) ]$ ] ?; `2 [" y
- )
/ I) l6 Y( m+ I+ B! A - )
/ L) i% p! o# m$ K/ m# ^; G# u* | - ;; Linetype Button and Text Field
7 X/ U) [; _; L - (if (/= 4 (logand 4 which_tiles))' Z: l# ?, k8 Y1 A( H$ E6 o/ N
- (progn
1 p2 ~0 K% I2 o1 `2 R# X - (mode_tile "t_ltype" 1)+ O5 @# i2 g7 a( E( h" m
- (mode_tile "b_line" 1)6 M8 I1 j0 _3 P' {
- )
) {4 [# |' Z6 c0 L - )7 W: N" M- I$ W" q; _/ ]/ N1 B
- ;; Linetype Scale Edit Field4 O6 j( W5 [0 c1 \
- (if (/= 8 (logand 8 which_tiles))9 b4 f4 \3 j! r0 Z
- (progn
% B! d" Z2 p3 m) e: d2 E# X# z - (mode_tile "eb_ltscale" 1)! ^2 b9 J" ]0 C0 A9 r% b
- )
2 q0 L8 n0 O5 x; V+ k6 [7 B& v3 ^2 i- _8 y+ k - )
, z) Q$ B6 v' u& i) K - ;; Thickness Edit Field.
1 T0 C3 P1 i. d - (if (/= 16 (logand 16 which_tiles))
0 B, U0 X) G, o% N$ R3 C1 L - (progn, g+ c* f2 W% z5 \% O9 T0 n
- (mode_tile "eb_thickness" 1)9 A! i& c' e ?4 K
- )
: M/ s9 _' D2 X" l - )
0 u) z! c# W$ e( h" ^ B$ d: D$ g - ), ~5 L/ C! h/ Q! b; G, r& }
- ;;3 F2 j' t4 N5 l! w/ u
- ;; XYZ Point values for all enitites* I U, \4 `3 d7 T; b7 x
- ;;' t, v; _! h6 x
- (defun set_tile_pt1 (ptype)5 T7 G% N) R* ]; T
- (if (= ptype 0)
- y7 Z- o1 ~: C8 C. E! ? - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
- w& t3 N3 w" l& X% b - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))1 f/ |7 F5 E: g9 V' f
- ). o( |5 [) Q* ?' ~
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
* c# p/ {1 Z l6 A1 Q6 I7 V2 { - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1)))) p, X- v* l9 e z
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
/ l" {! N, D! `$ V# Y" R( _/ S, S3 t - )
& R# D& G8 p# C- y+ O- L7 h- W - (defun set_tile_pt2 (ptype)0 F+ [; _2 h( }! w/ b- k
- (if (= ptype 0)
- p0 S$ f8 Q! h% o - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
" e# Y; E2 K( Y/ I5 c- J! O' \ - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))( q$ ~1 r5 E- g2 a. Y2 o& l
- )
8 |* I9 l, P3 L- x m7 a - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))* F; e X( o+ ?0 W! J M3 O
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
, Z9 s! j# B- S8 D, r0 y - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
m( s0 M4 |6 m' l8 p - )
9 l o9 D/ i' F! Y1 l( ?. L! q# [ - (defun set_tile_pt3 (ptype)7 T( A; i! V" _3 ]( O( H2 ^
- (if (= ptype 0)
: a4 I$ e$ e% V$ B* p - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))! }! M1 q& ?" K- T% K& j
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))8 O& j5 Q3 ^" i) x% z& Z& |$ b
- )
# @* U) G" H# G - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
/ _! |- R/ B+ t - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3)))): Y* V$ y1 S% k
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))) B2 c. `4 t# ~7 ]/ r4 O
- )2 `, J! T$ G0 R% P3 r" ?! ]7 q
- (defun set_tile_pt4 (ptype)
' f" a! ?5 ^5 a, v/ W( R' @ - (if (= ptype 0)( t" y! K; Y! k4 S: H0 E2 W8 R/ v( C
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))2 k' P. ^" s, n/ @* e' A$ O! A
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))8 z5 @0 K/ A) q* ]. W9 D& I' b, t
- )
( `% [. c1 F- M3 l - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))" ^" s! P3 Z. K
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))* g! l3 g+ V: l6 ?, n- |; m4 B. Z
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))5 v0 g$ r4 r2 e2 N6 J! N
- )
( n! [) z1 M( r$ n) Y) F - ;;1 }" j5 L, O( ~9 g( [& K
- ;; Xline/Ray
; r ]" g* {. ?( q - ;;
) l: k6 v8 W$ F" B P - (defun set_tile_xline_pt1 ()
" W3 _0 }4 g: j3 z+ n8 b' f - 9 i* z @% y/ G& E/ Z. E! Y
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
7 f) m ^, j, I- W- g; e( u% | - 1 p5 y3 @9 h# h
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
& b) c8 e- y, s - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))0 i6 N4 t, h# h' X1 z. e8 }/ ^
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))0 Y* a0 [" U" _# f1 K/ q& ?5 ~
- )1 y3 H( i' H" }0 B- Z
- (defun set_tile_dirv ()8 k# |' d$ G; P
- ;; Convert 11 group to local UCS (displacement)
: Y4 R/ V- X- K* r7 m - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
; k( A6 u+ J ~ M - + `; m' Q/ Y- j$ ~) Q' s9 Q
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))& s S3 R. u3 e0 L% H5 x* R
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
! F& i. \! w1 ]/ D+ ~4 Z: j O - (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
- ^3 c4 m( k& X: B, D$ E - )+ O! \5 B/ Z8 w% f% q; _2 i: M
- (defun set_tile_xline_pt2 ()
" F) y3 \) j8 G" G D' n( h' D - (if (not xline_pt2)3 s0 t u( ~5 }0 Z2 L" g
- ;; Initial second point is Root Point + Direction Vector
/ H! t1 r$ _ F) s6 l - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
" C9 C# U/ N2 u. T - )
3 l q8 m* C+ H; C - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))0 p4 t: K, G6 T& Z# l
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
; Q; `4 r/ |* Q8 D - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
: v0 e4 n# a$ Q' D+ {( _ R- ~' K - )9 u0 p( |6 A) c; ^3 \
* H3 g, U% m; A/ a2 w7 h- ;;& X( n3 ~2 u1 @! |
- ;; Handle for all objects& M" t4 g. Z- ]6 {
- ;;* V: k/ N; a$ R1 C- Y
- (defun set_tile_handle ()
: L# R8 G) C" {0 }1 R2 I - (if (setq hand (cdr (assoc 5 elist)))6 w: L+ B' E, Y, W
- (set_tile "Handle" hand)
( E% B4 V/ T# m: @8 e! C+ O5 {* L - (set_tile "Handle" "None")6 p$ ^% C' `6 G- T
- )* O1 u3 V2 _/ Q' I% r/ V4 Q; L2 {; [ D
- )( v6 H5 J+ z. v8 N N; ~
- ;;6 V }: Q" e' {& ^
- ;; Radius for ARC and CIRCLE
( K7 n9 S2 g0 v5 A5 n8 b - ;;9 g1 y Z. M. g" Z8 i- O
- (defun set_tile_rad ()7 x. c$ H1 p% @5 N7 ^4 g9 Q) [, Q
- (setq radius (cdr (assoc 40 elist)))$ r, h1 |" V. t, ]& i
- (set_tile "radius" (ai_rtos radius))0 X8 y2 l- @0 R3 x, g) K/ D
- ); Y" b7 {& P# u" G. J% X" w3 r$ ?1 f
- ;;
$ J9 z$ U' X- n& q - ;; Start angle for ARC
- t& r9 J# s& t - ;;
& c$ ]" ~' n+ c" ] - (defun set_tile_stang ()# o# J- \7 k! ?& f g* z7 S: q
- (setq st_ang (cdr (assoc 50 elist)))
; ? ~! d3 ] W7 F - (set_tile "st_ang" (ai_angtos st_ang))
' T& A. ]0 V @6 S% }6 |4 M - )4 G8 x5 F& \* K- v
- ;;
/ }3 g4 e$ z- {( h - ;; End angle for ARC3 m( `& n+ Q- s* k
- ;;2 T. N, F" J6 |4 q, \
- (defun set_tile_endang ()
, q2 x, v: U8 [) o# @ T - (setq end_ang (cdr (assoc 51 elist)))4 O5 L& ?9 M/ l2 o) {( `
- (set_tile "end_ang" (ai_angtos end_ang))
! |$ X) b' X5 W a! J9 l9 z( U - )# S$ M5 s, G; e5 K$ ?9 w k5 b
- ;;
" w, `6 H2 e R4 d9 h* y3 r! | - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes- Q9 x+ R' @* A% U- }
- ;;
X( L* c+ _) F5 l - (defun set_tile_rot ()
! x* e9 ^% g3 X* k1 u7 n - (setq rot (cdr (assoc 50 elist)))
! _0 i7 S2 S5 c* \ - (set_tile "rot" (ai_angtos rot))
7 c3 U- Z1 F) b' b - )& N% L( N9 Z% C$ P! T: c& t
- ;;
8 @, }, U% K Q) n - ;; Height - Text, Attributes and Shapes" }$ M9 W6 \0 i4 E9 r0 T
- ;;
) D$ Z% U$ B* V - (defun set_tile_hght (). a2 C! q- c3 u9 i$ {" v% f3 w
- (setq hght (cdr (assoc 40 elist)))* x+ z# T+ ^3 o
- (set_tile "hght" (ai_rtos hght))7 t# y8 y% K! j b6 w' D
- )
9 v$ B0 x% L8 X; }7 o - ;;$ Z t B% c% P4 K; l, d
- ;; Width Factor - Text, Attributes and Shapes1 J' A9 u3 j1 J2 T# K
- ;;
3 g7 D4 V5 k- N Z - (defun set_tile_wid ()- ~5 R8 h8 P9 a4 U# ^
- (setq wid (cdr (assoc 41 elist)))
U) b8 V& k+ }0 A - (set_tile "wid" (ai_rtos wid))! P) ?$ [$ @* a$ _
- )( c( U8 a/ V" A) o6 f
- ;;& r/ s! M8 ~4 x) z! R
- ;; Obliquing Angle - Text, Attributes and Shapes, R$ Y6 h8 P6 a3 U6 F; a0 `- ?8 u8 I
- ;;; U6 Q4 Y# X. {* W* [ i0 W/ n W
- (defun set_tile_obl ()
/ K& `- D- [* J: I3 r - (setq obl (cdr (assoc 51 elist)))
- A* ^; u( l" \! u5 g9 Y+ d& ^0 N v - (set_tile "obl" (ai_angtos obl))
; E6 m4 ]7 l u1 g% e - ) D* O2 E! `! m& `# V
- ;;( u7 A5 [1 U' @, B3 f
- ;; Text string
4 Y$ }$ a1 d2 v2 Q0 B - ;;. N$ j; w7 ^5 `& M2 ~* p. w) g
- (defun set_tile_text ()
+ k$ [1 L7 n5 v4 t! i - (setq text (cdr (assoc 1 elist)))
1 q/ D/ ?/ {' I& g6 F - (set_tile "t_string" text)
) f) R* S, j9 F: d: {/ r6 [* w - )( L4 _) R5 x& h% d% A1 Q
- ;;* b; U5 y, l5 ^0 q. A( c
- ;; Attribute Tag; h* e# U6 j) H+ {
- ;;
. I* ?+ ~; J9 C( p8 U" _1 X9 n2 r+ s* Z- m - (defun set_tile_tag ()
. V0 g7 Y$ o+ b: J3 K - (if (= etype "ATTDEF")! J0 [8 K) T$ B" B0 l/ F
- (progn
7 o3 l* P. {2 \- H5 g ~ - (setq attag (cdr (assoc 2 elist)))
" @( @2 O+ k4 \9 v3 d - (set_tile "tag" attag)
7 r- R# }# R' u/ H9 Y' x; Z, [) w$ _- e - ); y0 H D$ p, G" E j% L/ g/ Y
- )5 @" j8 Q$ e4 u) Y% o; U# D5 O
- )
: ^- V+ e0 v7 E; {, s - ;;/ {, E4 {$ K8 T, Y% O/ I! F. S& N
- ;; Attribute Definition
, w5 W5 d' p0 x# h - ;;; Z9 i* Y) Z: Q# D( r
- (defun set_tile_prompt ()
: r, w u& b0 u! f8 J/ m - (if (= etype "ATTDEF")/ V+ c/ R% n; M6 c" H' M' ?
- (progn
: v# x- u' _1 Y: n( H& H2 h - (setq atprompt (cdr (assoc 3 elist)))
" C, ^$ L0 k4 k3 ^; K0 G - (set_tile "prompt" atprompt)" ]! I/ d( T8 l1 J6 {" v" q
- )
; C* g4 ~% U3 a+ l2 S6 H - ); ~0 `7 X7 @. r+ \0 c7 @
- )
3 [" @$ z0 `3 c/ n, F) s - ;;6 l- L2 u4 k. m1 P- s I$ j& q8 I5 C9 j- r
- ;; Justification setting for Attributes and Text. Initializes0 _" h3 o. @. k. D( V* Q
- ;; popup list box* c3 ~: a% X6 O. g
- ;;) z6 P4 @- ?' u* f
- (defun set_tile_just ()& I. D! }) ^& S. U5 o: M) w
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
4 C: S. B1 o( H) }# s% Q$ t# U - (setq va (cdr (assoc 73 elist))) ; vertical alignment0 C( H, {7 ?* L3 v2 {
- (setq ha-prev ha)3 s, m1 Q3 A3 w) S- D
- (if (= etype "ATTDEF")
6 V# I$ p K2 S - (setq va (cdr (assoc 74 elist))) ; vertical alignment
3 n: w" S7 d2 [ - )
+ r z) K( N, d& U: s' x/ P - (setq jlist5 E0 G. ^3 \* ?1 K% @$ v
- (list "Left" "Center" "Right"2 r% k, R: y7 C% q: K. E
- "Aligned" "Middle" "Fit"
8 g% p2 ^8 `" V E8 y - "Top left" "Top center" "Top right"0 |( Q! ^% {2 _ t- ?8 X7 ^
- "Middle left" "Middle center" "Middle right"
$ R+ r! f: Y! J - "Bottom left" "Bottom center" "Bottom right"6 l% `+ V1 R% p
- )- G1 O7 W0 I0 z6 o1 M- Z
- ): r- Z) Z2 T8 `0 K: K
- (start_list "popup_just")
% \1 `; @2 f. f9 `, ^ - (mapcar 'add_list jlist)
7 u- B/ j$ d- Q7 f - (end_list)
6 ?+ M$ z$ e( y8 V2 Q - (set_just_idx)
7 m4 h' @% g0 ~) L: O7 X& V - (set_tile "popup_just" (jlist_act just-idx))% r; ?) n6 X }: G& w
- )
* _/ N R' O, J4 I2 ^ - ;;( S) U% \" T I; m) X8 O
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
* ^3 m& ?" ~* M, H/ U - ;; box.6 d1 W8 n, J8 d4 B; j4 X
- ;;
2 r* v* f7 \. z9 l. X8 e2 _ ^ - (defun set_tile_style (/ sname style-idx tlist)
x& h2 i9 r5 t: d7 \0 C$ c F - (setq tlist (tblnext "STYLE" T)
% [3 i- V6 {! T! Y& c. I) d - slist nil)9 @; O! w3 e+ V; n- c; |: W* }
- (while tlist: k0 ?, i3 ]( A: g0 @2 X
- (setq sname (cdr (assoc 2 tlist)))
3 s, F0 j4 d! w6 L8 X% `$ j/ L: ~ - (if (and (/= sname "")
: v6 |/ ~' J6 V3 J, L - (/= (logand 16 (cdr (assoc 70 tlist))) 16))
/ G" w' w# }/ G& Y& A2 G0 | - (setq slist (cons sname slist)))
$ O8 c: g) u, Q$ f% [5 n( U - (setq tlist (tblnext "STYLE")))1 c8 F( c5 `0 g' `- e
- (if (>= (getvar "maxsort") (length slist))
: u" s. k' i. a* U1 x" T% f0 Y - (setq slist (acad_strlsort slist)) ; alphabetize style list
; k1 o/ q3 E% f8 W1 T5 Q - (setq slist (reverse slist))) ; or reverse it to put it in DB order
- N6 L- _: B- M4 U2 y. ~' h - # s$ f* V/ n; ~5 X9 Q
- (start_list "style")+ `3 X! K! {+ X- Z5 t6 a0 W
- (mapcar 'add_list slist)& O8 T/ T6 `# B- k( J9 Q8 B/ P
- (end_list)9 p+ g. z+ Y+ U( L5 I
- (setq tstyle (cdr (assoc 7 elist)))
1 X# `1 s/ M' N! E/ ?8 n# |+ v - (setq style-idx (getindex tstyle slist))
; l/ T& a: |: r( k% w - (set_tile "style" (itoa style-idx))+ h0 d! d( z' V' W1 [/ Q+ V
- ) H) T9 N* W1 h4 R7 y2 Y% y" y
- ;;5 D! r, A* ~2 _5 A' Y1 P$ n
- ;; Text and Attribute setting - upside-down, backwards
* a' C, m# a0 c4 @. ~ - ;;8 E5 q, p: L1 P& p% { g
- (defun set_tile_bk-up ()0 w: o) X# U, L' M
- (setq bk-up (cdr (assoc 71 elist)))2 |4 w& z% S( k
- (if (= (logand bk-up 2) 2)
/ [ a9 R0 C- C5 Q1 J - (set_tile "bkwd" (itoa (setq bkwd 1)))- h y- ]1 K( N8 {( I
- (set_tile "bkwd" (itoa (setq bkwd 0)))
/ B1 v! \2 z$ F9 O9 W( U - )
/ I1 p$ T0 F6 `; A - (if (= (logand bk-up 4) 4)
# Z2 Q* P( o2 }- U4 u5 J - (set_tile "upsd" (itoa (setq upsd 1)))8 n1 b+ x, _% t( p- ]+ w
- (set_tile "upsd" (itoa (setq upsd 0))). v0 u0 b5 Y, G8 K$ A% ~
- )% R6 V- I, t8 h( j6 L3 c
- )
, C- x8 g/ M8 F0 m - ;;8 C/ I3 i$ }' A1 V4 f1 Z
- ;; Attribute setting - invisible, constant, verify, preset" M0 e* u' a. }' S' v& L
- ;;* J/ M( i& Q/ {: Q. y; s0 @, A
- (defun set_tile_icvp ()1 v4 J! Z0 {# z6 Y
- (if (not (setq icvp (cdr (assoc 70 elist))))$ I: h- s. H, R" J$ _
- (setq icvp 0)8 q& s, o# g- ^% \
- )
! e2 @1 S+ @0 Q: v - (if (= (logand icvp 1) 1)
: A# a- \" @! o& }: U* W: r5 c3 A - (set_tile "inv" (itoa (setq inv 1)))
4 Z- a! ~3 C9 z" |- \" r' c* a - (set_tile "inv" (itoa (setq inv 0)))
. ~7 Q% w, I. i# W+ H - )
! [7 S' j( F8 x- b - (if (= (logand icvp 2) 2)1 |9 L4 U$ C7 r3 x( A/ U
- (set_tile "con" (itoa (setq con 1)))8 N: e7 h2 w' A. V! t
- (set_tile "con" (itoa (setq con 0)))
: r( a0 _" _* R) j2 ]& X - )
" t' n$ _- @+ n4 h1 g - (if (= (logand icvp 4) 4)1 s! D7 ?) ]* A* \* e
- (set_tile "ver" (itoa (setq vfy 1)))
' W) Q! E; j, E* @4 a - (set_tile "ver" (itoa (setq vfy 0)))1 Y U9 C; \* k9 X" k; {* M2 E
- )
- e) O; o- m2 J - (if (= (logand icvp 8) 8); f B" t* T! j" W1 b0 \5 \
- (set_tile "pre" (itoa (setq pre 1))); S2 W; \3 B: g3 E M
- (set_tile "pre" (itoa (setq pre 0)))+ C) Y/ e. \ M, K. E
- )
+ T% h/ _$ z& Z: A- G8 G - )9 x# z$ U, X0 o3 W" K6 ^! g7 S! k0 {5 f
- ;;
l/ \! D/ }$ J" x$ I0 M7 c6 B; G - ;; Scale factors for block insertions% M1 A1 F6 g b, W; t- l5 l
- ;;
g; g3 [/ s+ ` - (defun set_tile_scale (/ temp)
) B2 q. v- u i1 l - (setq temp (getvar "LUNITS"))
2 U: ]) G- \0 M. e - (setvar "LUNITS" 2)
- A% f: M& h" }6 C$ I* u - (setq xscale (cdr (assoc 41 elist)))4 r ~- p% ?4 y J/ t
- (set_tile "xscale" (ai_rtos xscale))8 p& o( S) _6 P* @$ N1 Z
- (setq yscale (cdr (assoc 42 elist)))* M7 L/ N: d8 Z6 p# v
- (set_tile "yscale" (ai_rtos yscale))0 G; x6 ~1 u% A
- (setq zscale (cdr (assoc 43 elist)))
$ [" l+ Y- a5 b# O9 H' O, } - (set_tile "zscale" (ai_rtos zscale))
* z! D+ g; Y7 p* g - (setvar "LUNITS" temp)
' R% @* R' e1 \* ~7 q; c, F: t - )
- y7 }* c8 M2 f3 V - ;;9 k/ H5 w: C/ m+ G' ^% O
- ;; Rows and columns for block insertions
/ I0 R6 O. v5 |1 I - ;;( i! q7 ]$ B" k. I
- (defun set_tile_rc ()
! f) [+ @, ^* H/ m# R - (setq columns (cdr (assoc 70 elist)))
- E; N, U2 _& j( q6 H; d2 K - (set_tile "columns" (itoa columns ))4 B" O J& A1 y( r N* L! n
- (setq rows (cdr (assoc 71 elist)))
7 D; N, }$ a! o% l# c# Z: E - (set_tile "rows" (itoa rows))
9 w0 X2 d2 H. ^7 D b - (setq col-sp (cdr (assoc 44 elist)))7 L7 {, e) I/ t
- (set_tile "col_sp" (ai_rtos col-sp)); X4 V9 C. P8 [% r0 {( T. u
- (setq row-sp (cdr (assoc 45 elist)))
+ [6 P8 [3 m9 s7 j# |: L! T - (set_tile "row_sp" (ai_rtos row-sp))- s8 l+ t' c* l. a, z
- (if (/= hasclip T), c! G! u5 v' K3 X4 V; r1 u
- (mode_tile "xcliponoff" 1)3 c/ ?0 ^& _# m V, }
- (set_tile "xcliponoff" (itoa xcliponoff))- K& Z4 ^/ |; s! X- j+ g
- )4 R5 Y I: N+ \8 C- e3 O
- )
8 C; M" d! \% l7 |% G) P6 G4 c - ;;0 g% ~/ `. H5 L1 q
- ;; Invisible edges for 3DFACE2 [1 F- X5 L# {( o5 k+ H
- ;;# L! f0 G) y9 U
- (defun set_tile_edges ()2 c4 @$ E( n! p. |8 k
- (setq f-vis (cdr (assoc 70 elist)))
( T; o# \4 ^ `$ e- C" c: Q - (if (= (logand f-vis 1) 1)
, _/ N) d* x5 G9 c T' D - (set_tile "edge_1" (setq edge1 "0"))
( v- _' ?3 J+ s# u - (set_tile "edge_1" (setq edge1 "1"))
, a3 s; D! t& e7 L - )
+ K! k, k! V3 C, } - (if (= (logand f-vis 2) 2)
& U+ |* [, l. ]/ P) [5 f+ k( E - (set_tile "edge_2" (setq edge2 "0"))8 P, \4 T! u, {" \; z0 p" y
- (set_tile "edge_2" (setq edge2 "1"))4 x* ~9 o8 Q/ z6 ]6 f8 q3 G
- )7 F6 W# q5 P4 k0 w3 O1 f3 N0 ?
- (if (= (logand f-vis 4) 4)4 z* q! s# J- x( u! F" Y( k# v
- (set_tile "edge_3" (setq edge3 "0"))
8 d1 J. U Y3 I: Q4 ] - (set_tile "edge_3" (setq edge3 "1"))1 F; D: ?$ u4 \: [
- )
/ H0 j, [" C+ t+ i$ k& D. m - (if (= (logand f-vis 8) 8)+ {) m$ F. O) H) o1 D
- (set_tile "edge_4" (setq edge4 "0"))$ x5 ]) {& Y& I, F$ K
- (set_tile "edge_4" (setq edge4 "1"))
0 w+ G* N' N" |. S6 @7 w1 N2 r8 N - )
' i$ k4 d( o' J. b7 d N - )
3 b' X* {2 b3 \5 l - ;;# f, d" W6 w4 R' }$ G# j
- ;; XYZ Point values for polyline vertex
# h8 Y% T! R" j6 m8 y! s X - ;;' [7 W+ c9 J5 W/ Z% C. D; l
- (defun set_tile_vpt (ptype)
; \" p L, f) K0 |' O- e; k: J - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")) |0 h; O) Q6 d$ X# l% C9 ~
- (progn
, M# c& j# b2 Q6 ~: K - ;; ctr is 1 based, vertices are zero based.
& V5 d# _( t2 z7 U7 a - (setq vpt (cdr (getLwVert (- ctr 1))))9 \8 t0 f' |; E' Z$ S. x
- (set_tile "xtext" (rtos (setq x1 (car vpt)))), S, f3 e- G# M5 f
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
. ~( n1 S B2 P - (set_tile "ztext" (rtos (setq z1 (caddr vpt)))). U% ~2 g$ z" F8 `% H* q( o# y# d
- )% X* | i, B6 T. s8 R/ w4 {% m/ u8 i% }
- (progn: D# R5 _8 p9 C( Q) o! V7 x2 ?2 \1 q6 Y
- (if (= ptype 0)* m6 q1 \% _. U0 b5 e
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))5 f5 o" I+ \+ @. I1 w" `
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
& z& U' I' }* ` - )
* s% o2 \9 w( C: U4 J - * P! Z: e8 U/ d0 {2 e7 S, E& K5 R
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
3 M/ G2 i+ g" S - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
7 s5 x. L1 J# C% h: i - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
. x$ K& z u. d" Y - )
) a/ d" v5 V5 O u# r9 u: S& } - )
* \5 N2 s2 A& i# Z1 Y* S- ]
2 N# H5 n% A5 N: G$ G5 D- ); j% B( q2 S' k# M7 N
- ;; This is the equivalent to doing an entnext on the heavy weight
, t! H( h6 w: a2 h - ;; polylines. The hard coded '4' below allow stepping over the
8 `- H$ b- {7 G. }4 X3 p - ;; 40 41 and 42 group code information. The while loop finds the: a0 O" _5 a* b x: D, l
- ;; first vertex which will be used as the starting assoc in the( Y- k0 Y- a1 _/ g# x$ B) `
- ;; call to nth.6 [8 e+ o( c' h% I- S
- ;; j! b- D' }& Y8 s5 F
- (defun getLwVert (tmpctr / count tmp)2 e' A6 ]/ T9 x" y
- (setq count 0)
! m; Y; X: }1 G) r - (while (/= (car (nth count vlist)) 10)# z) l. i/ A5 G0 ?8 O
- (setq count (+ count 1))4 b' n- x% U6 k' u4 _
- ); A- z2 ^, w( E# O; i( ]$ b
- ;; If the counter reaches the number of vertices,' `- b2 c* C9 p8 T1 B5 X
- ;; reset ctr and tmpctr to zero again.
+ O3 V& G1 o6 }8 ^/ { - (if (= tmpctr (cdr (assoc 90 vlist)))8 r: D' i& F" j$ q0 |+ t. _
- (progn
( V! Z2 o5 ?0 n: r6 ` - (setq ctr 0) }. W9 \- i( W* p8 `& Y4 X" B9 D/ h
- (setq tmpctr 0)
+ I3 g8 r$ q* l4 g3 C - )
4 x& }0 E/ B' ^5 M+ H1 K# s3 \ h; t - )
( D. U2 b; U8 N$ a, k - (setq tmp (nth (+ count (* tmpctr 4)) vlist))
: c, i) k2 N3 u# z8 L9 B - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))3 ^# X$ z, s: h
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))8 y# w, {. R I+ }! r) t
- (setq tmp (cons 10 pt1))
m! Z# X8 t- G8 c5 z) w2 t - (setq tmp tmp)7 U j; z/ `) z# c
- )2 g2 C: k9 V' L2 I2 i
- ;;7 Q6 D5 k% b4 w0 n5 A- }
- ;; Set tiles for Spline properties. If the spline is rational then we* P4 \ W# e9 K5 F' p( F
- ;; need to display the weight values of the control points, so set/ ]- \2 O7 R; c# O6 e# I1 B! c
- ;; flag to 1.
4 l; K) e+ j( C. y. ^, d) z+ d - ;; 1 = rational spline
5 ~% I. t7 w k0 x3 O+ ? - ;; 0 = non-rational spline
! ^ b/ Y- d: _$ J. K4 F2 H& N8 y - ;;
& r3 Q/ _& L+ T* r8 N5 ~" L - (defun set_tile_spline_props (); H; @% v4 N' `0 j8 J' h. \
- (setq rational_spl_flag 0) ;; initialize rational spline flag
" ?1 Y: {) {$ {4 B1 E - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))# Y# ~9 [3 a( D2 {3 B
- (setq bit70 (cdr (assoc 70 elist))). M& K+ d @0 N! U6 I) @
- (if (= (logand bit70 1) 1)
% Z- n/ m! O" o4 ` - (set_tile "SpProp4" "Closed")& |' a) A5 q' D+ e: ?& G% w
- (set_tile "SpProp4" " "): N3 @% X5 J0 w1 H" U0 |+ C
- )+ l. B& c6 E" P+ Q
- (if (= (logand bit70 2) 2)
8 H/ i C: Q x& i9 w# E) L - (set_tile "SpProp3" "Periodic")
2 u8 A6 B: N" T& U M8 ^) ~* j' k - (set_tile "SpProp3" "Non-Periodic")$ q8 F) e2 k8 i' `
- )9 @, P7 }$ Q+ o S
- (if (= (logand bit70 4) 4), t' Z: T2 R3 y5 T, v: @
- (progn3 W, M* U& R: h2 S" _
- (set_tile "SpProp2" "Rational")- @6 x) R% L- c7 {* g% ^
- (setq rational_spl_flag 1) ;; this is a rational spline3 `1 _( S/ S& N( ]% T/ R2 K
- )
: D/ \0 x" N2 P2 m+ u) }) v - (set_tile "SpProp2" "Non-Rational")- P5 m8 I( B* D _1 u& {
- )
. O( U9 F2 S$ {7 h/ X - (if (= (logand bit70 8) 8)! @7 f5 B! H* `+ _1 q/ O
- (set_tile "SpProp1" "Planar")* h/ ` ~ M6 d9 y. S
- (set_tile "SpProp1" "Non-Planar"). C" o) Y; }& _2 D" r. N
- )+ [8 ^- Z3 p0 `# m, b' K/ {
- (if (= (logand bit70 16) 16)
8 l j! [' k6 V+ a, u" E; j' h - (set_tile "SpProp5" "Linear")
' r3 v5 a6 u j) c5 r6 g - (set_tile "SpProp5" " ")
5 ]. j# D# p/ I7 d+ c4 Z - )
u& b* s. k! V1 n( j1 t( K - )
( o# c' T) b3 f7 A" h5 ], f - ;;
3 G( K4 k+ g' H6 X - ;; XYZ Point values for spline points
- O* o4 i0 {9 a+ {. i1 f - ;; Need to account for WCS/UCS
# T8 L& h2 \. ~. y) n - ;;
: A) @6 f+ s/ F1 M, K) g& Q' y - (defun set_tile_cntl_pt ()
8 A( s# _6 U8 K' r - (setq cntl-pt (cdr (assoc 10 elist)))3 ?: Q$ w8 K5 P
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))+ O5 c3 `; r& V2 S4 V* i8 p% A% s
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
: C$ s7 i1 j% X! t, p1 A+ k/ b- i - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))6 M4 E; m0 L$ F9 ~
- (if (= rational_spl_flag 1) ;; if rational spline( o e! a3 Q' F- S7 @5 b* H
- (progn ;; show weight
+ ~: s n4 Q8 `" s6 Y' R' P g - (setq weight (cdr (assoc 41 elist)))% Q I G( ~, ?0 H2 V: a1 b
- (set_tile "weight" (rtos weight))
3 I1 e' m3 t7 K5 s - ) ;; else
- }+ u3 l1 g: A) i) c% I, f - (mode_tile "weight_text" 1) ;; disable weight field" \. f: f: _5 ~/ g2 r; n- ^7 ?
- )$ x# o/ W& R7 I2 w8 {
- ): R" ?+ r1 r6 y. e) C& U5 f0 N9 |
- ;;) @* I: G0 }' i( r
- ;; XYZ Point values for spline points
8 x- u) ~! t* f* R/ `" E - ;; Need to account for WCS/UCS
. A g/ Y- K' |: ^8 T - ;;( T0 W0 O/ [0 S
- (defun set_tile_data_pt ()
! Z, x/ N7 S9 r - (if (not (assoc 11 elist))
5 U: }! X! g% ?, Y: a# I5 v) Z6 R - (mode_tile "data_pts" 1)! }$ Y8 u+ N3 s2 Y% S
- (progn
1 z, d. Q- w5 g. U9 T - (setq data-pt (cdr (assoc 11 elist)))
; Y+ |1 c9 S: y( F& @ - ;; display points with current precision.& H E( e! [1 W2 b. O
- (set_tile "dxtext" (rtos (setq x1 (car data-pt)))), e" p8 G% q, F' m2 q- `
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt)))). ?6 N7 N9 y( K/ o& f: r
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))+ Y; T2 x* q' B* y( x( j/ b
- )
1 E: A" A1 W7 }7 ?6 o2 K* `* k - )
. i c* a) @. V0 \5 {6 X3 i( j7 B - ). p1 S' [3 W( n. v; ]) a
- ;;
" z4 V6 g/ i; O+ `8 Z$ d5 n - ;; Fit curve, fit spline, or smooth spline surface setting- t" o- k" t4 l; {1 }% @
- ;;
' U. y* P, ?2 e% ?! g+ M* P y - (defun set_tile_fitsmooth (): I" n5 h5 l% J8 D+ V) w
- (cond [9 o; w. G2 ~( Y
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
6 p2 b, ?6 }* d3 w K5 Y - (set_tile "none" "1") k4 E, P7 X5 n1 A
- )
5 p# G& N) R% x) H0 _ ^ - ((= (logand bit70 4) 4)
: M& @! D( W- V+ D! X( G2 @ { - (cond+ U- q, S% \5 E
- ((= bit75 0)
" H8 X& O# [ l, {7 y$ Z - (set_tile "none" "1")
. ^* n3 \2 q4 ]# }9 a0 w1 R$ l% A% _ - (setq spltype 0)% O1 u6 p- h7 F7 l1 D* L
- )3 F* J6 j" `+ h# p# a6 I+ D
- ((= bit75 5)! [* R' i8 K u, O' W
- (set_tile "quad" "1")7 v Y: {+ G4 k4 c; C& I' x, ^8 p
- (setq spltype 5)0 ^. M) X1 K- _7 y; k0 ~
- )! h0 d2 e+ ]+ G' @- ~( w
- ((= bit75 6). L: _) o* [- x
- (set_tile "cubic" "1")
6 M- P. o. z' y8 e4 d' x4 b - (setq spltype 6)
* p' ]( Y5 {, [% g, A7 W; E - )
* J+ U% U7 }( n5 C" Q" [6 g" z# [ - ((= bit75 8)
- k2 m( S6 d1 p5 x - (set_tile "bezier" "1") z, G8 H e) s* A4 }& Y
- (setq spltype 8). `$ r3 \$ P! ~/ H3 a/ @+ O: g
- )
- S1 I4 n" T/ a& w1 r - )7 B+ o* f7 E$ s+ z2 M7 ]
- )
/ R, X: z. \$ A# V - ((= (logand bit70 2) 2)
; c* H7 ?3 W6 o - (set_tile "fit" "1")! J$ K) V$ |& G- c
- (setq spltype 1)( O. |2 a) d; i; L
- )4 @5 H- M* }% r2 x
- (T (set_tile "none" "1"))
* v$ }; k" S, X; W - )9 v ]* @ _# w( \, W
- )' O6 b% Y( f* R; D$ n |
- ;;, I/ w, |: Z5 @ `; m/ o+ ]
- ;; Closed or Open mesh and polyline setting
# z5 u) [+ ^+ d" p5 _2 y/ L - ;;
6 ]4 _$ g& t8 O# i7 p6 F - (defun set_tile_closed ()
% b- d0 x/ _8 n, B! @5 j - (if (= pltype "3D mesh")3 o3 w. w" R" Z7 ~0 [
- (progn
8 b9 \* v. Z+ J+ \8 e, U - (if (= (logand bit70 32) 32)# u5 g* [4 a* U/ `9 A! h
- (set_tile "closedn" (setq closedn "1")) Z/ }8 G. I/ ? _2 q" Z6 J. s( u
- (set_tile "closedn" (setq closedn "0"))
: a+ V2 `* L' D6 y3 r; p$ c- {6 V - )7 S3 d7 m- }& f& G+ H
- (if (= (logand bit70 1) 1)# j9 h" x/ u& ~% q: c( N
- (set_tile "closedm" (setq closed "1"))0 v: g$ r4 Y. n/ m7 d
- (set_tile "closedm" (setq closed "0"))( V1 K/ {1 |, w/ c9 T& @
- )6 F; U! k+ o# ?* R/ R8 N) O
- (setq old-closedm closedm old-closedn closedn). c$ ~) M. f9 T7 a, \4 I/ ~' j
- )2 T. _; z' _' b8 W! n2 m* r
- )% m8 F6 ]7 t/ s" O( w
- (if (or (= pltype "2D polyline")( b& E* v& X2 z' \: U' N
- (= pltype "3D polyline")
- M, J! R8 ~4 w& y3 S9 I - )
3 P6 i$ c' R+ z, s0 B - (progn
5 F# a1 C8 g0 d! @0 i( d4 R6 r - (if (= (logand bit70 1) 1)
( h5 N8 p$ n! Z* G - (set_tile "closed" (setq closed "1"))
, I, R3 {+ E3 K6 _ _/ x - (set_tile "closed" (setq closed "0"))$ ]- L9 d2 a$ `1 c7 W8 t
- )4 k/ I! V; {9 @" k& s
- (setq old-closed closed)/ k3 [! B5 P; e' d
- )7 f# } F9 {- b3 c& J9 [
- )7 J% a( n7 V: n% Q- g5 B
- )
b& o6 C1 S3 Q - ;; Set common action tiles! L" U5 B4 x: T3 Q
- ;;/ V# |' B3 _( [ p% |# l8 ?6 n
- ;; Defines action to be taken when pressing various widgets. It is called
5 q" ]- P, Y. q2 l - ;; for every object dialogue. Not all widgets exist for each object dialogue,4 I d5 o# s: P
- ;; but defining an action for a non-existent widget does no harm.
' j0 |/ l! r7 Q3 Z/ I% ? - (defun set_action_tiles ()
, A" a6 E+ S$ q- x3 m - (action_tile "cancel" "(dismiss_dialog 0)") m6 E" ?- \* R) c. ~& n$ R
- (action_tile "accept" "(dismiss_dialog 1)")9 n( N& \) G* g8 h, u
- (action_tile "help" "(help \"\" help_entry)")( t) n/ X) C# G
- (action_tile "b_color" "(getcolor)")
" m: K' H# x& e" n. f - (action_tile "show_image" "(getcolor)"). C: \ c9 d3 ?/ Q4 \/ \
- (action_tile "b_name" "(setq elayer (getlayer))"): T, }; @3 ?: t( m! W
- (action_tile "b_line" "(setq eltype (getltype))") Y: a" y0 w- x
- (action_tile "eb_thickness" "(getthickness $value)")/ q( d" h' @3 q# `4 _
- (action_tile "eb_ltscale" "(getltscale $value)")
+ N! M. ~/ Y/ u, f) z/ i# F
5 b& i+ n3 o2 t- (action_tile "pick_1" "(dismiss_dialog 3)")/ D+ A! |, X; r3 f( \1 P" P. t
- (action_tile "pick_2" "(dismiss_dialog 4)"), f8 N9 p: `1 X+ Y) ?) ~1 ]3 d
- (action_tile "pick_3" "(dismiss_dialog 5)")$ i3 _$ m; J+ T/ }7 V6 T2 N" ^ {
- (action_tile "pick_4" "(dismiss_dialog 6)")% S$ W& Q8 p' \* `8 z& @
- (action_tile "x1_pt" "(ver_x1 $value)")
" I, D, s; b7 l0 B) w, d4 E - (action_tile "y1_pt" "(ver_y1 $value)")
! [- U! H' t: [ - (action_tile "z1_pt" "(ver_z1 $value)")
* q/ E p: p4 I - (action_tile "x2_pt" "(ver_x2 $value)")4 T) ^$ S* n' ~) L' o
- (action_tile "y2_pt" "(ver_y2 $value)")3 e5 g( Y) p2 W7 s, R( F: T
- (action_tile "z2_pt" "(ver_z2 $value)")1 m! i1 X% o1 c/ j% j" @8 f- \ D" d
- (action_tile "x3_pt" "(ver_x3 $value)")/ o' a4 Y2 C) n
- (action_tile "y3_pt" "(ver_y3 $value)")
2 E! v5 F. F+ S8 B - (action_tile "z3_pt" "(ver_z3 $value)")
$ Y* I& d9 _- e1 q5 b4 w - (action_tile "x4_pt" "(ver_x4 $value)")7 D6 m' Q$ n" S
- (action_tile "y4_pt" "(ver_y4 $value)")! G3 s1 z$ p9 t' g! }/ K
- (action_tile "z4_pt" "(ver_4 $value)")
9 R" S4 o% o$ x4 W( z8 J3 W
' K( y2 g6 W+ {- P- ;; Action tiles for Xline & Ray: v3 u; ]9 K) a) x
- (action_tile "xline_x1" "(ver_xline_x1 $value)")
# ?& P) @2 a: n, A* E7 `' o: C - (action_tile "xline_y1" "(ver_xline_y1 $value)")
- I' A$ N0 O4 K, J' h3 Q% ] - (action_tile "xline_z1" "(ver_xline_z1 $value)")
% v7 `# X! T/ R3 e9 D - (action_tile "xline_x2" "(ver_xline_x2 $value)")# I& @! r5 U+ X4 l8 R" f# e8 a# j7 ~
- (action_tile "xline_y2" "(ver_xline_y2 $value)")
* d+ k( p; p% P - (action_tile "xline_z2" "(ver_xline_z2 $value)")
2 S) V0 g9 w0 X8 r4 s% r
4 Z. ~1 _/ K7 M$ E0 Q8 B4 I, l- (action_tile "edge_1" "(setq edge1 $value)"); ^# j6 k- ]/ S* H) x. Z+ D
- (action_tile "edge_2" "(setq edge2 $value)")
. @8 m0 y: k- |5 u1 ~ - (action_tile "edge_3" "(setq edge3 $value)")
& L9 {! Z5 {; z' L; _5 F - (action_tile "edge_4" "(setq edge4 $value)")
+ T5 L' V J8 U, }4 ?3 d - 4 y+ Y$ N' z) s6 [* z9 U
- (action_tile "radius" "(ver_rad $value)")3 L# v$ a. O3 U: @: [9 N
- (action_tile "st_ang" "(ver_ang1 $value)")
6 y! f: g; z y - (action_tile "end_ang" "(ver_ang2 $value)")! _8 A% G3 U6 K0 f& m7 K
- (action_tile "end_eang" "(ver_eang $value)")$ u% W' f: b% ~
- (action_tile "minrad" "(ver_minrad $value)")
5 v) N8 U& e8 S4 V - (action_tile "majrad" "(ver_majrad $value)")
- R$ `7 X& v" G% V( }: U. c - , k$ ]( G4 n7 _1 y# C& `+ X3 O
- (action_tile "xscale" "(ver_xscl $value)")
7 h3 f3 B) s, B& _9 D; z" s) T - (action_tile "yscale" "(ver_yscl $value)")' G# x2 W! ]: o1 x
- (action_tile "zscale" "(ver_zscl $value)")
' L2 ~; ^/ A" X' J2 u* q# r - (action_tile "rot" "(ver_rot $value)")
: y! x8 t: J0 L - (action_tile "columns" "(ver_col $value)")& N6 E8 G- ]( T
- (action_tile "rows" "(ver_row $value)")
) @7 e I4 S2 m9 T2 N0 g - (action_tile "col_sp" "(ver_colsp $value)")
9 M* P, f) Y2 C - (action_tile "row_sp" "(ver_rowsp $value)")
) V! r- d; f) Q" D) y5 H0 \; W
3 ?, Z6 y$ d1 z- (action_tile "hght" "(ver_hght $value)")$ w8 O3 g. F$ z. h; T) v A# X1 e, K& n
- (action_tile "wid" "(ver_wid $value)")) _5 P7 R2 p! q0 z6 r6 n1 B
- (action_tile "obl" "(ver_obl $value)")
9 y9 x$ A- Q: q0 L2 k1 { - (action_tile "style" "(style_act $value)")
* g9 z& U8 |% I9 s2 y1 `8 r8 s - & U6 j$ Z r N, _9 |# Q; d
- (action_tile "t_string" "(ddgettext)")
7 u _9 E( X* H; j' g - (action_tile "tag" "(ver_tag)")$ V$ f5 k1 n# R; e, X
- (action_tile "prompt" "(ddgetprompt)")" D8 [; G+ [3 q/ ^
- (action_tile "bkwd" "(setq bkwd (atoi $value))")1 ]" M) h7 j8 @, T" C" O/ b
- (action_tile "upsd" "(setq upsd (atoi $value))")0 T4 g$ s4 Z. ^4 u7 s: F
- (action_tile "inv" "(setq inv (atoi $value))")
" z) H9 r! z4 I- L, V8 p1 B - (action_tile "con" "(setq con (atoi $value))")
. J2 }' g$ a) X$ V/ _ - (action_tile "ver" "(setq vfy (atoi $value))")( Q& y) J" ]( ]! t5 S5 H: L" C# Q
- (action_tile "pre" "(setq pre (atoi $value))")3 s" N( J4 Q6 y% f/ _
- (action_tile "popup_just" "(jlist_act $value)")7 Z% q4 ~0 @+ X- [
- ! c0 K; i# C. ?' k: F; S
- (action_tile "closed" "(setq closed $value)")- W+ r1 h% S. G; n- j! d: O
- (action_tile "ltgen" "(setq ltgen $value)")6 T# @8 A+ ~. s5 O, I* M
- (action_tile "closedm" "(setq closedm $value)")1 U, m& S3 n( M( |& A# P4 O% G
- (action_tile "closedn" "(setq closedn $value)")
1 P! a: `+ J# ?, y& L - (action_tile "next_v" "(next_vertex)")4 X, ^! z5 {% o* c" H
- (action_tile "xcliponoff" "(setq xcliponoff $value)"); x5 x, X8 o! B* ?" p
, ` H% \ W2 H+ ], `! I5 t5 ^8 ^6 z- (action_tile "next_cntlpt" "(next_cntl_pt)")
( Q' s& e/ p1 K! |# L - (action_tile "next_datapt" "(next_data_pt)")
" S; \( ^9 V! c/ ?" \" U - ! t2 r$ J- O0 R G, z8 k
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
# q: @3 e" f5 E4 |9 H) M3 O* I - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
% s" |6 l7 }6 J ]' @/ r - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
+ i; W6 H4 g7 g8 U - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
9 U+ |/ B0 F5 Y0 g' Y" H9 X6 O - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))"). A# h3 E2 T# |, V4 H4 f
- d' |( g' L' \2 C6 m) G- (action_tile "u" "(ver_u $value)")
T T c: \$ Q) j" N - (action_tile "v" "(ver_v $value)")
* I. E2 a5 l" X1 ^' e6 i9 E) K" I* T - )* q r% h/ h6 G$ ~' P$ z
- 0 ~' I# Q8 f) u' T( }8 I7 B
- (defun ddgettext()
" E! d' Q- y, T6 K# c4 S1 z - (setq text (get_tile "t_string"))9 m- l% y5 s8 E8 V: x; t- [
- )
5 k$ U3 O) @& u+ G3 z4 ~6 A
$ f" U t/ F3 h" @, h5 g- (defun ddgetprompt()2 l ^( ?' S' [; N s. |
- (setq atprompt (get_tile "prompt"))$ j0 } P: F3 \0 D
- )
1 M0 O5 ^3 C, q& L9 _; {' g
% D+ M8 G4 q+ b- ;; As OW doesn't support disabling of individual radio buttons within
$ p7 J: C% G* {% c - ;; clusters, a check must be performed as to the legitimacy of the
2 g: |! A& g+ E5 S- Q4 F - ;; button pushed and reset if necessary.1 |% i( @ @/ e4 k6 M/ f' h9 [3 v
- (defun radio_gaga (pushed)4 X; f7 k0 H- \& J8 i+ _
- (cond# Y2 [3 O, F5 v6 P+ g2 K/ \2 ]1 c- T
- ((and (= pltype "3D polyline")$ `% `/ }+ m2 p4 c9 s
- (or (= pushed "fit")- _: y; D x1 ?* E5 }4 B
- (= pushed "bezier")% D; T! o- I1 m8 \( Y" ?8 \' i
- )
8 e4 c6 d1 a2 w" h - )& G# g9 V3 b+ z
- (set_tile "none" "1")" D5 P9 a# f7 Q8 k' A4 F# M0 F, Z
- nil" z! O5 g3 @8 z( X$ s8 d
- )
9 F5 N" f( Y) G, |. g9 o' s0 O - ((and (= pltype "3D mesh"): G3 P( z8 j/ O- _8 ?* m
- (= "fit" pushed)- Q+ S/ e+ ^( W/ _# `% `
- ), K. j9 T6 {! B
- (set_tile "none" "1")
" r# G7 u" b9 ?- o - nil
; c0 Y6 N! `7 t n" L - )1 C* I% r# i' Q b* m8 v
- ((= pltype "Polyface mesh")
9 V" I; U8 f2 J, I9 Y* F% G# r - (set_tile "none" "1")% ^7 h8 }9 f; Y& b' G
- nil: t! ]+ }! M* R _& m
- )
+ I: i; T) X' |- d% k1 E* b: W - ((and (= pltype "2D polyline")3 p' T5 ^! l( x& S1 c
- (= "bezier" pushed)
3 m! U+ N5 t0 l' F# x - )
u/ b; T3 J) o5 ]8 ~! w2 } - (set_tile "none" "1")
, ^" n$ h4 y2 c" I, |4 S - nil
, B$ q5 [5 Z0 T E - )4 S8 Y0 s2 g8 k# C
- (T)
8 `2 W* N _& _ }" e3 L ~ - )
8 U( T0 y* u* B - )! r, \9 O, Q5 v' v
- ;;
3 F1 j( q* T$ K% p/ ^" U5 | - (defun set_uv (type_n)
& ]+ R9 ~; H3 Y- {1 l - (setq spltype type_n)
4 S1 M) p& U0 j, a - (if (= pltype "3D mesh")
+ F& e2 L. ~& M - (if (= spltype 0)
; \* }- ]; G/ b - (progn% X! t9 B$ C# Y0 @& f
- (set_tile "u" (itoa (setq u 0)))
3 ^6 v9 V( x I0 r( v( P; { l - (set_tile "v" (itoa (setq v 0))) C3 w9 K' l. X& L
- )
( K# `3 I1 s/ I v- J - (progn
* g" n, z( O# |$ l% _ - (if (= u 0)2 N8 j0 T' ]: ?9 J- `; r
- (set_tile "u" (itoa (setq u (getvar "surfu"))))
1 G6 W* I6 l1 X! m; i N - ); k( b' p L0 U; z% ]" Q7 ]
- (if (= v 0)
& M; J( y8 j9 V/ Q5 w - (set_tile "v" (itoa (setq v (getvar "surfv"))))
. y. D. ]! C5 v* V - )
! x" b$ { P1 j2 [ - )6 m1 }( ~, Z7 R5 |5 K9 H) ]
- )$ l+ K- n, B7 D
- )
& {6 @2 a5 M4 O/ x/ u/ k! Q4 B# L - )9 P; v8 R- o. q# v5 ~1 J! a s
- : K% e8 D& k6 h* }5 f. z3 m+ p0 W
- # x* D& C. T/ L" R* Z5 v! o
- ;;
/ Q5 w( e( u, a6 I: K- l - ;; Verification functions2 A) g$ X+ g, ?6 h
- ;;
8 a; g0 O/ o/ P - ;; Verify distance function. This takes a new X, Y, or Z coordinate or
% b, W! [4 M# P& d& G# N - ;; distance value, the tile name, and the previous value as arguments.
2 I+ p, ?( X' T0 z: T% V - ;; If the distance is valid, it returns the distance and resets the tile.7 ]% Y- l# C7 ~1 o7 s& c
- ;; Otherwise, it returns the previous value, sets the error tile and keeps
" n: |9 r7 t2 H3 p+ |+ Y4 k H - ;; focus on the tile. Shifting focus to the tile with invalid value can
) l: @1 p1 Z) j - ;; trigger a callback from another tile whose value is valid. In order
0 N/ M5 x" e/ n# Q9 V d. t& _2 _ - ;; to keep the error message from being cleared by this secondary callback,5 E7 j$ |8 i% A" L0 T
- ;; the variable errchk is set and checked. The last-tile variable is set) v( m& @4 _, R/ M+ o+ l4 `' T
- ;; and checked to ensure the error message is properly cleared when the J% d4 f5 V9 k! Q+ H+ L& b) ^
- ;; user corrects the value and hits return.
M$ q' B" K! }, J8 s - ;;
5 w3 l m/ B9 D8 ?% j - (defun verify_d (tile value old-value / coord valid errmsg)% R# r% X8 i- `, T$ z
- (setq valid nil errmsg "Invalid input value.")8 s2 V$ z( `0 {+ _
- (if (setq coord (distof value)), r4 ^4 {6 g0 f
- (progn
) z3 p: z5 ~, Q4 M - (cond
" ~3 V, t: V# t) v' [3 S* Z5 g - ((or (= tile "radius")! P$ O6 g: F4 d& x% i* N% Z& f+ S3 f( e
- (= tile "hght")
% r4 M' b$ k/ h - (= tile "wid")
' U' A3 a& O3 S - (= tile "majrad")
9 h a- c# o& `2 A$ [ - (= tile "minrad")$ l7 U, w6 K5 ?
- (= tile "eb_ltscale")6 \; L3 z( b0 `% w0 m. k; C q8 [
- )" h% i: y5 h. _. E
- (if (> coord 0); \# f0 C9 E4 n9 E
- (setq valid T)
I, T% x% p, k) a; w - (setq errmsg "Value must be positive and nonzero.")* w# R1 o" z3 @/ M
- )
. E; M; ]0 ^# {" U/ K3 F - )
- ^# j# o4 H+ b0 q7 \$ V1 H1 c - ((or (= tile "xscale")3 N+ m$ {, _/ Z; a
- (= tile "yscale")
0 n& q1 s$ v6 I - (= tile "zscale")% @2 M3 h/ ?: ^
- )- P2 I6 D& P4 ~# O) G- M. W
- (if (/= coord 0)" D C* ~" h( }9 w R% J
- (setq valid T)5 v. J" Z; j( ?0 T6 x) L3 {1 I
- (setq errmsg "Value must be nonzero.")+ @' X- D+ ?$ M2 o& G* N/ Z% f/ @3 ]
- )
( X* F0 b0 U! c; S# A" `! I# B - )
4 Y4 C8 f0 J8 Z8 {, w - (T (setq valid T))
7 I2 v" q s S0 B: f - )
6 x0 Z9 A6 Q/ g. P0 r - )
: i- k4 B- U6 ]- G& Y/ { - (setq valid nil)# l) z# F5 N: u: P( E- I
- )
. H2 n) [4 I: t: M - (if valid
" n3 s2 G: ^2 p! P- d8 U - (progn
( v+ G8 o4 x0 R6 s# I9 p7 G6 N, \ - (if (or (= errchk 0) (= tile last-tile))
3 r& ~' N# f7 W! Z - (set_tile "error" "")
& r4 I. s# y5 a1 Y - )6 D1 x( y z @* B
- (set_tile tile (ai_rtos coord))
u6 e5 |3 i- J5 Q7 v4 ~ - (setq errchk 0)2 W& {! H( Z/ ^* Q
- (setq last-tile tile)3 q$ b2 u2 M7 U& ^3 y% R5 n
- coord! r6 h$ T/ |9 w, M' T1 p; H( |
- )& @9 ^# K$ {; x: J
- (progn
7 y" I5 k' N% Z2 @" P2 C - (mode_tile tile 2) ; Move focus to offending field1 H O$ `% T! ^% Q
- (mode_tile tile 3) ; Select offending text' L& F; S0 C7 ?" Q: i% ^3 o. R/ C
- (set_tile "error" errmsg)
5 I+ l5 D ]* m7 O - (setq errchk 1)* v1 U$ ]1 `% J+ [4 v' x
- (setq last-tile tile)( i* R1 i/ H4 u, z4 D+ J2 _+ T
- old-value& r: U( r. @" b/ A3 a
- )1 L# ]# h _ D2 K
- )
) z+ t3 P+ k! S4 |: ]! g: e F - )
" I; o' B j8 j! j: k - ;; Function for Xline coord edit box checking.
7 F4 Z8 h. i& Y - (defun verify_xline (tile value old-value / coord valid errmsg)
" v" E6 r+ ?; i9 u) I G1 c" y8 r - (setq valid nil errmsg "Invalid input value.")
0 B6 ~7 q! A' C/ o. J - (if (setq coord (distof value))" D; n3 ~9 K: r. y6 d. o
- (setq valid T)" C& o" u+ ]7 {
- (setq valid nil) c0 p! x% G6 B0 V. N3 N
- )
, ] F4 k% [1 a# G% d4 O6 {5 y - (if (and coord3 T( t. T" i8 f& ]9 p, `- c% {
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
* ]) [$ t- {' e$ p9 \$ W - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )8 c5 ~- h/ n$ w4 h
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
" H; |& p, c# R. u) `. r - )
. G- e$ T: C$ o3 K$ _0 V - )5 E/ k3 @* k* B" T2 J' Y" q2 L
- (progn
$ g, B! G4 p4 B. i - (setq errmsg
9 M2 }! D9 g7 ?& [8 n - "The Root point and the Second point cannot be equal.")
+ D/ S- b+ x" O: I8 ~$ k/ I( k2 o6 r - (setq valid nil)0 l! e& C8 P- T# M* l% Z
- )
0 s' B1 H t. w9 U, b) K - )0 v8 ^ A6 r4 |# h8 [6 l
- (if valid$ K7 p1 u. F5 f& }" d8 ~+ P
- (progn4 f5 \; g T; {( F2 c: r7 @
- (if (or (= errchk 0) (= tile last-tile))
) z0 Q" X/ b; j' u! X0 ^ - (set_tile "error" ""), D; q ~& G) A. G8 {! Q
- )
, a! L. {! X+ H/ d3 M - (set_tile tile (ai_rtos coord))' V; Z& B0 l0 j O- \! G9 s
- (setq errchk 0)# O2 K/ S( H1 \3 N4 O9 }& T0 A' E
- (setq last-tile tile)! W8 r/ }5 Z" o0 t
- coord9 u. s' Y" n( z, K
- )
0 i, K2 P5 `5 L5 ]( H" F. | - (progn5 o! C! ?7 U& \+ L4 r$ X* z
- (mode_tile tile 2) ; Move focus to offending field- z ?* b4 _0 z% t; E( c) k# Q: {
- (mode_tile tile 3) ; Select offending text6 S# @$ f7 T+ I1 D* C
- (set_tile "error" errmsg)
5 k) F% V* H+ M" w( c2 P - (setq errchk 1)
' X, K6 C3 D# I) U7 o/ d. o - (setq last-tile tile)
9 W% Y; Q* A# D - old-value( ^: f+ j& l. ]( e
- )% s$ u& ^, J4 x! ~. k4 i3 A: [
- ); {* A! E9 ?; |. I4 U9 V" i
- )5 ? S* G( B) U4 G1 j( t/ b/ ]
- 2 |& L# b+ ^' d$ n6 [1 [
- ;; P7 A3 Y' a4 I
- ;; Verify angle function. This takes an angle and a tile name as arguments.) c' N! _7 F( m4 B
- ;; If the angle is valid, it returns the angle and resets the tile.
( j6 t, R: h9 Y& h; I - ;; Otherwise, it sets the error tile and keeps focus on the tile.
4 ?- e0 V/ d9 o7 m9 ?5 e - ;;
* P: t- K7 M3 t - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)$ d5 T5 K8 A- D9 d: |' X6 ]
- (setq valid nil4 F$ ~+ N; [( _. g2 k
- errmsg "Illegal input value."7 }6 R& r2 d7 Z& {
- )4 d/ Y' l U/ @& d2 y8 p$ b
- (if (setq ang (angtof value))
7 C) ]2 B7 {7 E! c& {( e' _ - (cond
! k+ Y [; l2 y9 h9 x# i8 f - ((= tile "obl") ; Restrict obliquing angle; d0 [7 p: [+ R& _) Z# h' S
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
6 j/ ^3 b* g1 V* e2 y - (if (or (<= ang oblqmax)( X. A7 ]* m4 B
- (>= ang (- (* 2.0 PI) oblqmax))( ^4 |* Y! r: C1 o6 [4 J& Z% _
- )
9 h A/ u k; E/ s; i1 h1 ]/ U - (setq valid T)
4 E2 X" b X" g3 c8 y - (setq errmsg
+ g( |+ g' S. {6 }% ]0 L% b, C - "Value must be between -85 and +85 degrees."): i' t$ E$ f" y2 i7 m% }) C9 b6 D8 b
- )
" s# d2 U! E7 B9 L2 W* S+ G. N - )
- R! ^* [7 T6 W) C/ Y$ P - (T (setq valid T)) ; Other angles not restricted
+ ^$ P& \' S; e# ~" Z4 {! k - )! O3 c! x% Q2 C! M8 a- ]
- (setq valid nil) ; Invalid angle input, i! ~5 p- _. z8 O. M
- ): W7 X& f- Y% D, X( H. P
- (if valid
! t+ }( D8 A5 [) ^2 W" Y - (progn
' P9 S0 C: j; |: G) E# _ - (if (or (= errchk 0) (= tile last-tile))
- i. e j% l$ q, S; I: L - (set_tile "error" "")6 e4 ^; \3 T) K7 c b# z1 f3 X7 I
- )
+ T, c7 ]0 ~- z8 L! ]+ _. C+ B1 n) t9 Z - (set_tile tile (ai_angtos ang)), b5 `# T1 O! R/ X4 z
- (setq errchk 0)4 t; T2 M( |7 y. V; G5 X* L3 U
- (setq last-tile tile)
* E) b$ x; _( }5 n* [5 f - ang% f; K5 }! O1 ?; F1 a
- ). e ?# d0 c( N0 d0 q6 n& O
- (progn
* z% _0 l2 \/ M% ? - (mode_tile tile 2) ; Move focus to offending field
" ?% Z a, }! K! v - (mode_tile tile 3) ; Select offending text
0 `# C4 O* Y" \* |( l$ N0 i( ?, b9 ] - (setq last-tile tile)' D) s* b6 U4 @9 H
- (setq errchk 1)
' s/ T5 }( `. j6 W* V9 |4 x! d - (set_tile "error" errmsg)
. j4 c% |- y* I- K3 i! ? - old-value2 K- M+ ?5 D+ L+ l. g* V, h- @% S% p
- )8 h& {3 I+ J" g
- )
" |: U& t* h$ q- V5 K - )( l. g: c, W7 p! B$ H
- ;;
9 _! G8 ]" |2 d3 ?7 y) l - ;; Verify angle function. This takes an angle and a tile name as arguments.0 k9 S) M$ Z0 J- K! H$ b9 F
- ;; If the angle is valid, it returns the angle and resets the tile., J% p7 l' F0 n* b
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
9 W, x3 w# C/ n* j - ;; This function is specifically for the end angle of the ellipse object. If
0 o" t' a/ Q6 b* o8 h2 c - ;; the end angle resolves to zero then we want to display it as 360.
9 A$ d: ]5 }$ G$ {) [2 v - ;;. A+ y5 j' e# P4 a! }
- (defun verify_ae (tile value old-value / ang tempend)' m, v/ _0 |9 \. d; S r
- (if (setq ang (angtof value))) ?. ^; \" n; r' H* M- Q' Y
- (progn
, r0 M& u# B4 f( u" A - (if (or (= errchk 0) (= tile last-tile))1 Q/ e* X! D' A6 w
- (set_tile "error" "")5 b) d: }/ J* y/ C
- ). t: \& W% V7 e' \8 G+ ~2 K, n6 N
- (setq tempend (ai_angtos ang)), {( P1 F |6 v
- (if (= tempend "0")
$ c4 l. Z# l3 g( F s9 Z - (set_tile tile "360")
9 Q+ T8 K* U2 b' n/ b - (set_tile tile tempend)' `5 r* w1 [1 u Y8 V- y, U. S
- )
; X0 x' T) e% l# u" D( {' p - (setq errchk 0)+ t3 B1 H; [9 c7 G
- (setq last-tile tile)- e5 M! T+ C2 \( G
- ang
, {$ M9 ~1 r" t# W. O" {, F9 y - )
' ~- o& {' D. ]5 u, y - (progn) b; `! ^4 R Q0 |
- (mode_tile tile 2) ; Move focus to offending field/ |# I$ f# V4 J; B s' S
- (mode_tile tile 3) ; Select offending text6 _3 o+ ?+ r; i6 V6 C( e3 N
- (setq last-tile tile)
3 C( i, x# Z7 X' o2 d0 z! u - (setq errchk 1)
0 t) m( A5 e: |! X# K9 z) ^ - (set_tile "error" "Illegal input value."). C0 y6 m/ ]2 T! Y5 Q
- old-value
# s6 c/ x( z& k" A* I4 q6 c" z7 N - )& _# T7 [$ \+ G& N& g4 k
- )2 D( V9 ]- i l" R' {- b5 ~, b) \
- )
( U" [$ ]7 b6 p- O3 b! } - ;;
5 s9 Y+ _) f) {7 F - ;; Verify integer function. This takes an integer and a tile name as; A+ v7 V+ F1 r( @# p- Q) A
- ;; arguments. If the integer is valid, it returns the integer and resets the
1 u' @$ x* p- Q% R+ u/ p - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
% B5 z$ h/ _3 `. x - ;;8 q- e" X9 y' C2 R4 z+ h, A/ o
- (defun verify_i (tile value old-value / int valid errmsg)& i, t- M) B9 z$ M4 Z5 E8 j
- (setq valid nil)3 s/ ]" q P) q, ~, v+ C
- (setq errmsg "Value must be an integer.")( D4 T5 W; x* R, M/ b% g' U
- (setq int (atoi value))& l7 o2 ?. [# V& l+ Z$ I$ c8 c
- (if (setq intchk (distof value))) u P( r7 [1 k, n2 D3 v9 }5 m
- (cond
1 h P' Y& B5 ?9 D) m* q- v1 y/ `) q - ((or (= tile "columns") (= tile "rows"))
1 F1 F% M0 F0 W7 j& m5 o - (if (and (= int intchk)
1 U: U: N R' b, B- ` - (>= int 0)
2 X7 q; x( A* q+ \ - (<= int 32767)
, z; z( U! R4 m0 ], c2 W - )# H! p% S) B8 m6 B! r5 N/ ^$ c
- (setq valid T)
# m( s# f$ T% }" \; P( d" E - (setq errmsg "Value must be an integer between 0 and 32767.") f5 A" Q5 q; p* p5 z: g
- ); M9 e8 I8 O7 n/ j# Z
- )8 e( a/ n3 Y3 |* z! a
- ((and (or (= tile "u") (= tile "v")))5 q% [3 X% k4 J) {$ t
- (if (and (= int intchk)
0 X# N7 Q6 J4 ^$ ` - (>= int 0)3 ~& Z6 D6 t: H: o6 V7 u. U
- (< int 201)
?5 f9 c* k6 l - )
6 E9 K8 F/ b. _ - (setq valid T)& r# b% l" w4 J5 i
- (setq errmsg "Value must be an integer between 0 and 200.")
: H* U! u( {! }* z: o7 C - )
& y* y* O2 V/ R+ h4 \, v - )
K5 N$ g0 B( |0 m2 @8 H; H - )
- n: ~ v4 T# l* }2 l - )( x! Y1 b: x, \+ J" Z
- (if valid
$ m# [; z+ N9 y$ h - (progn
* ^& z/ ]! E/ {. k5 t, }. g - (if (or (= errchk 0) (= tile last-tile))
" J" C# |* |/ W% s/ | - (set_tile "error" "")9 l8 M R j6 z# Q" W
- )' K( Q! g! z0 q: U( v
- (set_tile tile (itoa int))
; i, T, S! k6 _( u' d6 R) D - (setq errchk 0)) U2 t+ o9 C; d& o, c8 t7 ]8 E5 o
- (setq last-tile tile)5 R+ m% l2 g. M
- int R$ G5 ~3 V7 ^# S8 z: x8 ~3 }7 k# z
- )
* d' }% N" q! x - (progn
# }8 d) I' X' |9 k3 U9 W - (mode_tile tile 2) ; Move focus to offending field- P, b/ D2 ~" ^+ R! j s
- (mode_tile tile 3) ; Select offending text
7 A& Q' P$ P5 @. }9 M - (set_tile "error" errmsg)
' n; V, @( a b4 Z' Y; X" a - (setq errchk 1)
) o; O0 |3 G5 s8 u, v# l - (setq last-tile tile)8 Y# x: U8 ^4 u/ t3 p. y
- old-value
0 O/ z% N& ]' L7 g/ H* `7 t: ^2 R - )1 Y4 {" w0 Z9 j, Z3 l5 u, I- J' {
- )
9 w! E. P8 B E! _6 N- w0 W! h c - ) M8 M& Z& |5 ^( U& o. C
- ;;
% o) m9 ?2 N2 w - ;; Functions that verify tile values for integers# f; {; D6 ]1 C. @1 Z
- ;;
9 r, r$ p1 }$ p* |: O) D h - (defun ver_col (value)' \5 V- ]0 \/ O, Z5 K) H* O% P9 a
- (setq columns (verify_i "columns" value columns)). C0 X3 k+ j( L6 f
- )
g/ L; f1 r, |$ T - (defun ver_row (value)
: d8 n3 E$ A0 ] k! l - (setq rows (verify_i "rows" value rows))
5 N1 I- c6 i O) K - )( d( i, R1 i6 Q
- (defun ver_u (value)7 k2 u% r8 T* k' ?6 @( h2 j
- (setq u (verify_i "u" value u))8 d% |/ k, |7 B* @
- )3 v0 b3 V, R+ ~6 Q, B. q% n/ O$ \
- (defun ver_v (value)
$ v1 K+ L/ J' H- s, c# v: z - (setq v (verify_i "v" value v))6 V) e% Y* x0 q+ m6 {# U1 @" R) v
- ) R+ r ^; W4 e; }1 ]
- ;;
4 P. F( y* b; x6 `3 g) w* E' _$ ` - ;; Functions that verify tile values for reals
# z' ~9 @0 N& N( m" Q - ;;
( S4 W9 B$ J! }; v - (defun ver_x1 (value)
8 H3 R1 m8 ?% y; V2 M' b - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))+ ^0 V& v& k' y, K0 y8 X
- )% @" T5 }2 A+ v% q0 e M; H4 d
- (defun ver_y1 (value)
) E& ~2 }' {+ o$ w. Z7 t& o# e - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
& i7 `2 u+ L* y; B0 |! ?: y - )/ K1 F) ?' k4 T1 a, \, D8 Y
- (defun ver_z1 (value)
- N/ c. g8 o5 k. x- w( ]! ^" ?5 A5 ?( t - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
; o5 P3 ^! z4 \8 O" G6 h - ): Q2 G( r" R4 U: @
- (defun ver_x2 (value). O9 q; x* C% m7 o8 }* c, x
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))2 z+ y* I3 }3 R, n* v# @& V" ]8 f
- )! ~9 _/ h7 C8 a( K
- (defun ver_y2 (value)
- r# n. ]7 } E+ u- }' { - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
8 g* ~4 M1 _0 h& C# A - ), ]: M; D/ j# a' y' ~+ c
- (defun ver_z2 (value)
3 |! t+ C8 n7 d4 y) t6 H: C" A - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))& Z3 J8 R6 ?: K
- )
- p$ w- b' [0 O0 A/ @9 O, ~ - (defun ver_x3 (value)1 e+ h! ^5 c; k
- (setq x3 (verify_d "x3_pt" value x3))! Z2 I% t2 \+ z
- )# O( I: H. M( M+ X) b
- (defun ver_y3 (value)
& U" H' P/ y* x1 s/ T1 J - (setq y3 (verify_d "y3_pt" value y3))7 v, D% J7 K& U% q5 I, ~
- )8 J1 s% F$ B* v7 [" |! R" K
- (defun ver_z3 (value)
$ e. P" Y* @9 y l. d2 U - (setq z3 (verify_d "z3_pt" value z3)): l) n; R5 _3 X, G, F
- )6 j$ {; T% P( w4 g8 Z7 T
- (defun ver_x4 (value)
& x* y- S3 V" j" y2 e - (setq x4 (verify_d "x4_pt" value x4))3 R4 K* T2 [ i, ~; e
- )
7 \, K. ]6 X; \/ t5 H! b - (defun ver_y4 (value)" V0 Y1 k1 a! i" l+ b- \
- (setq y4 (verify_d "y4_pt" value y4))
. |0 q6 T; b$ r* j - )
; M, F, @7 N4 |% |" R m/ i - (defun ver_4 (value)! K5 W- `1 b {3 M( V4 w& n
- (setq z4 (verify_d "z4_pt" value z4))
7 B. O8 ~5 L+ k M - )6 u2 X( ~7 K: l8 ~1 K# r
- (defun ver_xscl (value)
6 w+ B$ }, Q. Q$ h - (setq xscale (verify_d "xscale" value xscale))0 e) E9 N! ]- p" o/ g
- )9 m+ z5 k7 q" m1 ^2 _/ E, C- o
- (defun ver_yscl (value)* O0 P. S3 c5 I0 o
- (setq yscale (verify_d "yscale" value yscale))
W' x, V; Z4 D7 G" X2 X - )
2 s: p5 C' F% f/ s& ?' \( h - (defun ver_zscl (value)
^- D I% w: B4 _+ T) ]) q# v - (setq zscale (verify_d "zscale" value zscale))
! s& Q z$ K# I2 L - )
: H# q( @* ]" W- x0 h - (defun ver_colsp (value)4 K9 ]" m6 B& z! K4 q& h
- (setq col-sp (verify_d "col_sp" value col-sp))
, X! r/ g$ k1 `0 }9 |! C - ); i9 g- l( k Y0 ?6 v
- (defun ver_rowsp (value)
; s4 @1 A9 k+ C; z3 X4 R1 R- x# y8 N - (setq row-sp (verify_d "row_sp" value row-sp))1 r. \: Y/ L: W" T
- ), e9 E0 q3 t! L$ l0 Q& V
- (defun xclip () n+ f! m0 m2 K9 V! V/ ]
- (setq xclipmode t), B& \9 J( I; w0 _, M% e
- (if (= xcliponoff "1")
. c- v. J/ @ `/ ^ - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
, B/ [/ M# @( B - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off"), s- V" L2 ]7 V
- )* ]: r& }0 K' Y+ w& I
- )
Z- A3 @* k! k3 ?* Q f - (defun ver_rad (value)( ~, ~9 v; y/ N% H; O- c9 p) h
- (if (setq radius (verify_d "radius" value radius))! d# n9 `6 k; A' d2 c6 o( J
- (calc)* k% I, p5 e) B/ n5 r$ `/ l
- )) j9 U) c* J, I, }( k
- )5 O4 k3 u/ O! u( O2 b
- (defun ver_majrad (value)
3 I u; i8 L$ I+ S - (if (setq majrad (verify_d "majrad" value majrad))6 z8 D, L- M3 p, w
- (ell_calc_newval "majrad")* M3 s, R& A5 W# I) Q
- )
" R$ p% q! ~' U3 ^# Z - )+ B( l; j5 x' R7 R2 s
- (defun ver_minrad (value)' R; r9 o) W: k$ d2 J& j2 ~
- (if (setq minrad (verify_d "minrad" value minrad))7 J; A1 T# m8 D" q( M7 }7 L
- (ell_calc_newval "minrad")
/ t$ R' B0 w3 g1 k - )9 ?7 l' b, C, ^" t- X
- )* v$ Z. b+ k2 Q7 ^/ z
- (defun ver_hght (value)
4 n2 L/ U0 K: [ - (setq hght (verify_d "hght" value hght))
7 V6 M4 u* a9 b; M/ S - )
9 C( R) g2 _0 m - (defun ver_wid (value)) i2 j3 m5 p! H" F R! h
- (setq wid (verify_d "wid" value wid))6 Y4 ^4 p* t* d7 W4 g$ \
- )* n/ z" Y( p6 ^. l/ \
- (defun ver_xline_x1 (value / temp)( F1 ?0 j& q8 n. y U: Q5 X- L! N
- (setq temp xline_x1)
6 U( Z3 K/ q* f- Z' @6 \ - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
F% N( \! B" T1 t) g: q7 w' I - (if (/= temp xline_x1)
) x. B8 r$ H7 j4 b6 q - (progn (modify_xline 0) (set_tile_dirv) )+ c4 U. f# f; d# R
- )
1 O R9 V7 b7 M1 {9 G; W - )
' {3 Z% y- U t) N - (defun ver_xline_y1 (value / temp)9 K: q- O/ r! X( H7 J' A
- (setq temp xline_y1)
7 o* C& D1 J7 B6 M/ N - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
0 ]2 Q/ k# ^7 h - (if (/= temp xline_y1)$ t# l0 E1 O6 @5 }. e5 p
- (progn (modify_xline 0) (set_tile_dirv) )
& ] r- U% R, B w$ m - )- }2 z/ x# } `1 X2 ]
- )! U- k: t/ R3 m+ G0 [& K& ] i
- (defun ver_xline_z1 (value / temp)- s8 V4 h9 C$ o' H, r3 ~* ]% O
- (setq temp xline_z1)
: { J) _! s9 h9 G - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))# H' \/ F t* V
- (if (/= temp xline_z1)7 z7 p9 @3 o7 O7 t. g
- (progn (modify_xline 0) (set_tile_dirv) )
; w: _: C# ~/ M) e2 K* p9 |0 @ - )/ m. E& C* O' ^3 \+ k
- )6 n v4 { L$ Q7 Q6 U
- (defun ver_xline_x2 (value / temp)' |- K& b* [2 h6 j. `# v( d
- (setq temp xline_x2)% q+ A: A4 T) [8 a3 H. C( |' K
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))/ Z( j, _3 b! o, K" U1 N% \7 v5 T
- (if (/= temp xline_x2)* A1 V& x, D. G U, _8 M0 O2 U, ?( {
- (progn (modify_xline 0) (set_tile_dirv))5 w+ h* e1 W( B
- )1 N1 g/ F7 j8 {, G
- )
$ d1 r, }7 ]1 A9 N - (defun ver_xline_y2 (value / temp)6 w' J) b* c4 `! B; z
- (setq temp xline_y2)) X# `1 {$ P ^' `! Z
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
; l4 b: `' l* |4 d - (if (/= temp xline_y2)
* \4 I1 F. Y" H5 w. C! i8 z - (progn (modify_xline 0) (set_tile_dirv) ): B9 Z3 H1 w/ y0 T' O) B
- )& j; q ^8 ?; E/ |* E9 ~, d6 o
- )
$ T7 W6 ?. `8 y9 z$ s/ i - (defun ver_xline_z2 (value / temp)/ a! h4 T2 N, P+ R% o0 |4 F- ~
- (setq temp xline_z2)
! v6 a& [( j: G& ^+ y/ f7 Z - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))4 J" q% x. a0 ?
- (if (/= temp xline_z2)) D8 ^% p4 Q5 n8 C$ }6 q5 c
- (progn (modify_xline 0) (set_tile_dirv) )
* c8 k, e% K) u0 `* `* D - )) V$ K# N& [& r+ V3 z
- )
9 M1 w: q, W0 Y2 N1 ? R0 h2 d - ;;
" R3 s' |' ^7 y. F8 A - ;; Functions that verify tile values for angles
. C8 ]( e, _9 W - ;;6 o3 O v0 l; o' l: S
- (defun ver_ang1 (value)
7 K+ W' Y9 y8 [- ~. H& W& L! [ - (if (setq st_ang (verify_a "st_ang" value st_ang))- d, k3 m& z# m8 _4 D- ]7 R
- (calc)! G5 s! H5 V W$ h; r. Q
- )+ r. b' d5 l+ ^" h4 V& e% r/ B$ u/ @
- )
% e* D5 d* e; v+ {8 Q" s( d5 c$ _ - (defun ver_ang2 (value)
/ J0 u; s1 B% w: ]0 [8 }0 G& N$ D. E - (if (setq end_ang (verify_a "end_ang" value end_ang))( d- X+ s; p- p" N0 p: k5 u" I' k
- (calc)4 b9 H! T+ s1 Y! _! H( Q- j# ^
- )
! M6 O4 o2 e9 O0 g" A - )
4 G0 R' f; O0 S2 G1 D3 O - ;;0 k: Q P8 c2 U. W2 Y' }
- ;; Verify tile value for ellipse end angle. Handled slightly
6 y9 _" u/ X$ p' R1 D* m" c - ;; differently than the other angles.
. k# T( ?1 P% r - ;;% `! c% t( ?- F9 R) W0 Q
- (defun ver_eang (value)/ L+ O4 \* y# `" b9 x
- (setq end_eang (verify_ae "end_eang" value end_eang))
* i+ {5 W6 o: Z4 ]0 K - )
4 N: q- _5 R' U - (defun ver_rot (value)
- [% ?9 J. [* F5 [1 t - (setq rot (verify_a "rot" value rot))
- v3 g, ~4 S6 m* `- _! Q, v - )' ?9 D; [( v/ G x5 p
- (defun ver_obl (value)
" l% E& O5 r: y/ p z* U2 g' X - (setq obl (verify_a "obl" value obl))
7 w5 [, h. {& b* O8 b - )6 v5 k# E R8 j3 W" ~! R+ z8 y
- ;;
0 o e/ Y4 C: ?& D# h" m) q6 _2 W - ;; Function that verifies attribute tag field for null string,7 r* G" t5 L5 B. M& n }, p5 `
- ;; or a string that contains one or more spaces. Tile value p u/ K% Z8 |1 @
- ;; is also converted to upper-case as well.
9 }9 k. k* W, L* K* e - ;;
+ H3 [- U q7 \7 c2 U8 L - ;;
5 |+ [5 B' N! l0 \4 u5 N - (defun ver_tag ( / tval)
$ e7 N6 l* r. a+ Q1 T - (setq tagval (get_tile "tag"))
/ R; x x. G9 j3 M+ ^0 \7 J; I/ D - (set_tile "error" "")5 k0 _; K* o) `/ Z$ Z5 C3 R& p6 s
- (cond
+ c7 L# |9 H$ x3 V+ c" q) |8 c - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
# m% v6 K0 W5 L# B - (wcmatch tval "* *")); J2 x% |0 a1 E! N# b
- (set_tile "error" "Invalid attribute tag.")1 F# l1 }9 h/ K+ F
- (mode_tile "tag" 2)* H) M/ j4 C: ~0 c
- (mode_tile "tag" 3))9 Q6 P5 m$ q5 J! N* ^ V
- (t (set_tile "error" "")
# ]$ z8 _( R/ L- F( x+ E - (set_tile "tag" tval)
8 O: |: w+ G' P! z0 o - (setq attag tval)))
, _ m; l: O, |5 u - )
/ h5 K# j m; e7 d2 U - ;;4 M7 b* i0 R; Q: i0 L
- ;; Calculation functions% L7 D s6 w+ Y' M9 D# ]+ ~. h
- ;;. W d0 ]6 }' P/ R
- (defun calc ()
, h$ J( E$ S+ f5 Q - (if (= etype "LINE") (line_calc))
' X, W! ]. I9 D - (if (= etype "ARC") (arc_calc))1 r. _9 @5 t! V# v6 _
- (if (= etype "CIRCLE") (cir_calc)) h' G, D4 Y4 H7 t1 P$ r
- )
& i: z$ D: x! o# Z - ;;
1 q6 i- E# S4 v1 ~ - ;; Calculation functions for lines, arcs, and circles
4 @+ Q7 b3 C, B- [# V - ;;; j: z4 ]! Y/ s' Q& n
- (defun line_calc (), K/ s2 c) x P
- (setq stpt (list x1 y1 z1))
( p) h, q; k) _6 X - (setq endpt (list x2 y2 z2))
/ x: k2 W- B# p" b7 }( H - (set_tile "delta_x" (rtos (- x2 x1)))( l7 ^( M- _+ `$ R2 x
- (set_tile "delta_y" (rtos (- y2 y1))); I4 g: v" \: [6 J6 a
- (set_tile "delta_z" (rtos (- z2 z1)))# B7 P7 E# V2 K9 e
- (set_tile "l_length" (rtos (distance stpt endpt)))7 v# U0 F5 k+ U7 z3 r
- (set_tile "l_angle" (angtos (angle stpt endpt)))9 [6 S! I; i9 O; y& E ]2 H
- )" _) u7 j( m6 N1 g: D' h) l
7 \. n. g) o, A! e6 s K5 ?- (defun cir_calc ( / area units)! S& j$ i4 U. f
- (setq radtest radius)
. D/ l& ~( ~; S& E* h) A - (set_tile "Dia" (rtos (* 2 radius)))# I e' ~- _: q! a; M2 F
- (set_tile "Circum" (rtos (* 2 pi radius)))
7 @" i% h+ f( F - (setq area (* pi (* radius radius)))
( h9 a8 ~& @. \$ q* q8 P& o - (setq units (getvar "LUNITS"))
7 `+ z- N Z. J; w9 a - (if (or (= units 3) (= units 4))+ H3 w1 M' _, A9 X& J
- (progn! V! k4 x3 ^! N* W- h. C
- (setq area (/ area 144.0))
6 Z, }$ H/ d( V7 ]5 C - (set_tile "Area" (strcat (rtos area 2) " square ft"))# R& |% w# p: K: B& Y
- )
# G' K2 I C: H8 D5 O/ W - (set_tile "Area" (rtos area))$ M: [8 t- j: n$ w( h8 Y
- )" U! O+ v/ i5 V; I
- )! R( s7 r5 U% ~! L7 ^2 k
& ]$ r2 G8 i2 e5 w; s8 b! M$ ?- (defun arc_calc ()
+ ?1 `9 u' i1 E% `7 W! n - (setq totang (- end_ang st_ang))
0 f ]' v/ g6 k2 o) t: b - (while (< totang 0)
: S' e8 p3 D/ A. a - (setq totang (+ totang (* 2 pi))), k F1 {! Z0 x7 }7 h2 u* q- V
- )' t1 u M2 X+ j$ a
- (while (> totang (* 2 pi))
$ K/ W( f* I$ B* r& d4 M - (setq totang (- totang (* 2 pi)))* l8 I8 k* b/ Q/ J3 u
- )
2 B0 |8 f6 z" h0 ]. ]; e j - (set_tile "tot_angle" (angtos totang))
/ n: {. k9 r( q" B# t - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))) P F# j: F. s* D, S
- (set_tile "arclen" (rtos arclen))! y [! C- q% g+ v% B8 l: z" @/ m
- ), l' X/ K9 {' b% h$ m7 H
- ;;
4 K: z4 F6 y; v - ;; Calculate the major radius, minor radius, major axis direction. f/ T2 a; S) M) O
- ;; Get radius ratio. Convert Start, end parameters to start and end
3 z) v% I+ W: e0 ^8 e - ;; angles. Save Major Radius value in "old_majrad" in case the user
: E! D# l% Y. A$ ?/ L - ;; chooses to input a new Major Radius value later. It's needed to
' u) d0 t X: P; J9 s - ;; calculate a new Major Axis Vector value.5 }$ _6 I$ M! v! p0 r/ f3 @2 o
- ;;
. R7 | n C% ~' J. } - (defun ell_calc ()
+ a; p* e, ^, U4 N% H - ;; Get major radius from the major axis vector.4 f$ G+ e7 Q0 ?+ |" `7 P
- (setq majaxis (cdr (assoc 11 elist)))
. ^- |# [0 U, `2 N$ H - (setq xx (car majaxis))
1 B5 }$ q& X+ l: `. W - (setq yy (cadr majaxis))
* R7 @+ j8 u2 ^: i) q - (setq zz (caddr majaxis))
6 k; E2 C" _( z3 N0 ?5 D - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))/ Y% B% A6 U* _ Z; `, ~
- (set_tile "majrad" (ai_rtos majrad))
$ A1 U+ g; M) [$ r5 v& q1 ` - (setq old_majrad majrad)
8 O w$ \ e* X - ;; Get radius ratio
& l" M: h6 t7 @3 U7 o0 [ - (setq rrat (cdr (assoc 40 elist)))7 d$ k1 w; h5 J8 j$ D
- (set_tile "rratio" (rtos rrat))8 N$ g9 `/ Y4 C
- ;; Calculate minor radius$ }& k6 D! ~" |* x3 h5 G
- (setq minrad (* majrad rrat))
d, N$ [. L1 r/ l5 z* p - (set_tile "minrad" (ai_rtos minrad))
2 X! b' g4 @" P" Z2 K0 X2 J/ T - ;; display major axis vector
1 z+ R# ?% U8 J, D - (set_tile "Majraddirx" (rtos xx))+ a0 F- Q. Z6 @
- (set_tile "Majraddiry" (rtos yy))$ r" ~2 R* L: D: e- V; y g. T
- (set_tile "Majraddirz" (rtos zz))
$ {, D9 H8 r2 I8 o2 v0 Q* `9 d; K - 6 ]: c- J4 ~1 b' E6 l' }) H
- ;; Convert start parm to start angle
7 B$ E2 U: n0 |$ |8 G' _8 V( L+ Z/ | - (setq stparm (cdr (assoc 41 elist)))2 g' A& B) p4 @7 A$ L
- (setq vecx (cos stparm))
: [% t1 V6 R) e4 T4 J! N9 U9 I - (setq vecy (sin stparm))
5 L) c) v: w& {; c# p, Z$ G: h( U - (setq st_ang (atan (* rrat vecy) vecx)) ]% k/ w2 E9 |9 P1 p, m6 d
- (setq tempst_ang (ai_angtos st_ang))& b5 L0 Z: q% I3 X6 \9 l$ x4 V
- (set_tile "st_ang" tempst_ang)
5 q1 [. I( G7 I4 J- b4 L( c& ] - ;; Convert end parm to end angle. If end angle evaluates to 08 M& v; e/ ?+ @. l4 D3 e
- ;; degrees then display it as 360 degrees.
( I7 d! i9 X/ C+ Q- J: g) X - (setq endparm (cdr (assoc 42 elist)))
' x9 G& r9 O+ P0 E - (setq evecx (cos endparm))
) o0 B* R7 r/ E0 L/ k) q2 Q - (setq evecy (sin endparm))
5 Y5 k2 z _% c9 g! d8 F+ y: C& P - (setq end_eang (atan (* rrat evecy) evecx))
3 W3 Q* k( t7 ?9 t; @+ u" Y - (setq tempend_eang (ai_angtos end_eang))( q9 \. k+ V2 N' q% h" r" ] v
- (if (= tempend_eang "0")
* C6 p5 L" H7 |1 Q9 ~ - (set_tile "end_eang" "360")# g! g7 O0 j0 N) ?0 S* g, R- R
- (set_tile "end_eang" tempend_eang)# {1 l1 v/ B" z2 l
- )
) `; b, K$ @5 p - ;; Get area of the ellipse.
. u( T6 Y6 P5 J$ h) b - (ell_calc_area)4 h0 |+ B& g5 w- g
- )
) D' Z3 c& _5 y! o - ;; Calculate area of ellipse. If it is an arc then- ]% m4 W- ~6 ? X
- ;; grey out area display.) G, [; X% y, [; f& f% A7 t4 f" U
- ;;' o4 f8 i9 h5 x9 e
- (defun ell_calc_area ( / area units)9 S; Q Y% S2 P" B1 r
- (if (and (= tempst_ang "0") (= tempend_eang "0"))0 O) f b" ^- I9 R$ i4 ]0 o
- (progn
- V7 E9 H7 D3 _% B) h, ?; P% b - (setq area (* pi majrad minrad))& |9 i2 @" `' F1 [3 a
- (setq units (getvar "LUNITS"))
6 f5 p( i+ e9 M2 W/ N - (if (or (= units 3) (= units 4))
3 }. N+ Q4 i3 N+ D, k - (progn
6 F6 }$ k4 l& d" l - (setq area (/ area 144.0))
7 N2 f/ K5 D2 V6 S1 Q+ _/ o - (set_tile "Area" (strcat (rtos area 2)" square ft"))! m8 n; H5 Y# k* A5 V! T* ?
- )
1 A5 T" R! z/ o' n2 [' n - (set_tile "Area" (rtos area))
& A# K( c- c2 Z& I - )9 V f0 f3 e8 d. V+ Z" |1 b
- )
: P, ~# K |* J- ^& x - (mode_tile "Area_text" 1)0 y, e$ u$ i( G' E1 d( b! h
- ) w( e. C* f T+ g
- )$ B- m X/ ~3 m. a) f
- ;;: o2 d! F( o: J1 I) N4 x
- ;; Calculate new values for ELLIPSE+ ~1 F0 z; s9 G- E8 s, J; L
- ;; Minor Radius, Area% `! D+ u* q6 P# S, W9 n8 k
- ;;9 B8 J1 f2 j2 p! K% _- W
- (defun ell_calc_newval (ell_tile)$ ~8 b+ `$ V# M
- (if (= ell_tile "majrad"): e8 J( a" y/ P" y% l3 S2 M& \) x9 }
- (progn7 [) D' k3 F" V6 y
- (setq rrat (/ minrad majrad))
( i p- m# L9 K3 y& k( r7 G - (set_tile "rratio" (rtos rrat))
! }+ {* o" O: G4 ^ H' u - (ell_calc_area)
; t3 q( d: G' l% l* z t9 n - )
& m) [/ s$ m9 H f - )
. a% v5 B! B3 F, Z! y6 N - (if (= ell_tile "minrad"); B# g' i8 E8 E: \$ e
- (progn
; O) j+ A% S. T0 ] - (setq rrat (/ minrad majrad))
/ H" ?6 a& Y* S% R0 `$ {" W - (set_tile "rratio" (rtos rrat))% M6 y: T+ ^) r' o$ J
- (ell_calc_area)
0 V1 f4 E" V8 G/ r/ m - )
- o% ^$ E! v. h& Q6 v" F# Z - )
8 b! B' `0 z- Y2 U( Y5 s - )
0 `' U/ g( h5 s/ L) D) U - ) @, x( k4 M7 ~4 B
- (defun set_dimen_props (/ loop a stl txstyname)& | B( V7 H2 Y
3 Q0 E3 o2 f' {& G& b- (setq stname (cdr (assoc 3 elist)) ; get style name9 B1 v, u7 b) y' m7 J# a% O; v6 F
- stl (tblnext "DIMSTYLE" T)
: j; s- p |, l& u - stlist nil)* f6 G3 b' D! S: G6 k1 Q; e
- ;; Get all style names and list them in alphabetical order( H3 o2 R. Z1 V" x# P9 A; X4 U% L& J
- (while stl
' N$ J: z7 W' C$ K7 ^ - (setq sname (cdr (assoc 2 stl)))
+ f$ A. f; @9 |$ y - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)! U) \" }' |: b* D8 Z
- (setq stlist (cons sname stlist)))
5 v2 D/ Z& k) u; p9 ^; Q- u: I( \ - (setq stl (tblnext "DIMSTYLE")))
% i7 L$ J" Q3 Z$ @! Y" \; S - 3 G, G1 |3 r. k
- (setq len (length stlist)
: B# B$ [& b2 b - loop 0
5 P* w5 g8 q6 I. ?1 M - dimsty stname
9 Q) ]( A# Z) k* p - )
. q- P9 p5 V b, h% J! A B - : r( T% K( v% u E" y) b+ S
- ;; alphabetize style list, depending on maxsort' ?' z) ]9 H% G; L& a
- (if (>= (getvar "maxsort") len)
+ W* G4 V' E/ d Z5 H' M! k. c2 { - (setq stlist (acad_strlsort stlist))
* m) q: R) \+ ~9 F$ w - (setq stlist (reverse stlist)))
, |4 |9 x4 `, s5 I/ G/ N - ) Y. ^) _ r# M* }* \
- ; *UNNAMED style (dimsty = nil at this point) is replaced with& }/ W9 H) e6 X1 [% i
- ; the current style. After R13, we require dimensiosn to have a) k2 Z$ @/ z2 R) [7 R; ]5 N! h- h
- ; dimstyle, so we plug any holes where we find them.% d( C1 b0 s& V; L
- (if (null dimsty)2 v9 L `1 F/ N t d! J; c
- (setq dimsty (getvar "dimstyle"))% b5 j- u5 @8 A' z" @
- )- A. l9 \# O3 A- Y
- ; Show the styles in combo box4 H# G( Z, x g' b6 m5 c% p
- (start_list "mod_style" 2)
/ ]$ D0 i7 e, n+ B$ ~, L3 g - (while (< loop len)
; p" r5 S; X: `" t4 X - (add_list (nth loop stlist))8 m J& V$ k) W/ l( f: k
- (setq loop (1+ loop))
+ s" U; n" J( m% ^: D- j - )! c0 l4 }$ {6 i' ?! L
- 4 h$ y/ y M ]( F$ W4 n
- (end_list)
; D$ E- b1 M- v - ; v Q* g+ P" c6 ^
- ; Hilight the style name of the selected entity
& @/ K4 b/ A, I D; e - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))* n0 ^ d- i+ b- k9 U8 F# h
- (setq loop (1- loop))) b. M4 \5 j9 Q O
- ); _" }$ `* n. H6 v& M
- (set_tile "mod_style" (itoa loop))
6 A: W2 P5 I4 x5 j3 G0 E$ X" _ - ' ^% V# ?3 F, e! e. `
- ; The following is the list dimvars. It must be sorted in the same- V+ ~5 M! G0 O' e, ?
- ; order as the resfub returned from DDIM (ADS module).- V* U8 z! c/ [: `: T+ H; D
- $ ~4 s8 {' @* a( D+ _# a& j1 @
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values" h- x F4 G! r( C, I* R5 Y
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
4 U+ U' r% l) n3 [! a2 W, b/ H - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
: o- D: b& M8 `1 S1 n) Q - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"/ u, D" L' k! N0 S# [( }
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"0 m5 H, I3 b/ C
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"' z, T& G2 @& c# w' S7 u9 f; M
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
' \7 o5 r6 r$ u. P( I+ s - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
4 O) g7 `9 z: ?3 b4 L8 A- k - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"; m8 h' H) q: s0 @
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
) L% R' G5 g( d - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
1 i! O8 @1 S# B1 n4 s1 W - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"( u9 K z' O- u9 q, g
- "dimtxsty"- I. o$ g; n9 b1 x' f! {: J8 y
- ))
5 M2 A- M a# p1 D/ R - (progn, ^+ k0 W7 R* H+ I3 T6 n9 j
- (setq sv_dvlist (ddimen_getostate dimsty)+ ^6 ^: Y0 R: T, V* h6 z' m
- txstyname (assoc 340 sv_dvlist)8 S! R7 C6 ], o6 I/ W1 C! x9 r+ ?
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
4 ^' k% N5 t- @3 P - txstyname sv_dvlist)1 o5 V% d4 u. H! s$ C% T+ | N
- dimlist sv_dvlist
" O' m/ L( N& x+ Z% M: M% g7 ^ - )
. y. d8 h9 k" ~8 h2 N4 Z8 I9 i- F - )
* C* L: O) @6 ~" M - (if (= dimtype "DDLEADER")' h( I, k& t0 X/ D: H8 W, r! e0 q8 s* B
- (mode_tile "mod_format" 1)3 X/ m8 k- Q! I6 p7 a
- )5 c4 U. H# t7 h! a
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
8 f) s# h7 ~4 y4 G0 U5 a9 A0 o. h, { - (action_tile "mod_text" "(done_dialog 4)")
$ q3 }7 O# R! q% q+ O3 P - (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")8 \- F6 |% b. d0 ~
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
}- p" t4 ^4 s4 x3 v- ` - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
4 a' r2 \: T3 N - (action_tile "accept" "(done_dialog 1)")* _$ h+ Z5 l) v; s/ S
- )
' i/ C# D& ~, Y' N" j - ;;
: y, D; J& p0 j - ;; Get dimvars that have been restored.
7 _( M, O9 o }* [) M n - ;;* R1 x3 {( b0 A0 i7 K+ Z
- (defun ddimen_getvars (/ elm dvlist dv i)9 ^+ x0 Z3 T) A
- (setq i 39 T- O$ D# p) z
- dvlist (list (cons 0 "DIMSTYLE")
; |6 c! k! V1 g; H: M" P4 C7 u - (cons 2 (getvar "dimstyle")) (cons 70 0))3 \" V! }1 r( ~7 r5 E
- )
. }5 r3 E, N0 F - (while (setq dv (nth i dimtbl)), \. ?- A9 |/ p3 F
- (setq elm (getvar dv)
/ ~: | q/ S9 p' U* a! x - dvlist (append dvlist (list (cons dv elm)))7 _4 O4 u" S! C4 E7 R
- i (1+ i)
& _2 D3 P7 q5 i" C7 w - )
4 M! I; W# K9 Z# r' O2 v5 u - )
2 t4 P; Z( \6 E$ O: D* M - dvlist; c% v# H# j7 @- [ [8 Y- L/ h9 L3 ]
- )
3 `; s. `; ~5 ]# g: Y
) e( N, }% A; ~, g- _; j- ;;0 x4 Q2 g: Q. X. f( e' w
- ;; Get the original states of dimvars. This is for DIMENSION entities., ^# o W t% o. m& [4 G1 ] W9 G
- ;;1 X1 q! @$ W+ H2 E6 I( o
- (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
2 t* T+ S3 u0 \! {; v3 A3 X - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
0 R3 r0 u3 F( _ - dvvars (ddimen_getvars) ; Get dimvars for that entity
7 `8 d7 B9 l. M ?4 d, j - i 1* U2 q6 U j# \
- ) m' H' h6 I! T! ~
- 8 M0 x) f2 D( b4 s. L% u
- ; Create a list that contains values of the selected entity., o5 v/ y0 u \$ l3 u$ }6 a
M/ o3 R& A& r/ f- (while (setq elm (nth i dvlist))$ S# j8 I2 F; E- d7 y6 S8 R
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
8 `* @" m6 ^* e! G2 n$ J - i (1+ i)
3 a2 D9 `$ V6 B4 _ }' U& V - )2 M' r. [# I0 M* L+ ]/ c% K( y ?
- )' D- D8 o& [4 Y5 ?
- dvlist; `) U. l3 [7 H/ a
- )
3 [0 O% y" [; d/ E. d# `/ ` - " B. r( l/ h0 N% ?+ G
- ;;5 [! s% s/ L. g7 L: E W
- ;; Restores dimvars of the selected enity.! j) p7 U7 ?' V' r4 V ?# m
- ;;# \, R, S T4 \ f+ \
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)8 ]0 V8 E$ i4 e: x' X
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
# G3 v/ `9 F9 f& c: A - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2", H, |' r! q1 Q% K* P) L
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe") E/ b; S+ S9 e* Y# _* p
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
! x0 b* F) l6 ?% J - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
, r5 z7 O4 A& ^ - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"" L/ [$ r t6 s7 g1 e5 ~
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
# m2 @& O% c6 m - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"! @+ x0 ?" [! _$ F7 B/ h
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
2 y+ ?, v, W# ?% j6 g' x! k1 j0 p2 l3 j - "dimdec" "dimtdec" "dimaltu" "dimalttd"- k) m9 w6 T2 g( k2 r
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"4 l8 a7 N! y$ S9 t. x- Q
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
% T) [9 v; J- } - "dimtxsty"4 x, ?3 x/ I' g; l( Y% m
- ))
* [! b8 L! A! S, K3 ?3 Y - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
# e5 x4 |4 R1 j5 t0 t2 N ~- m2 Z. L - (progn
5 w" e5 m9 k* I - (setq en (cdr (assoc -1 elist)))
" p6 g, u! y( O0 | `" O: n6 A# P - (command "_.dimstyle" "" "" en)' r9 w9 z1 i8 \5 n7 ]' P8 h
- )8 B* t9 f4 V. ?- n' I! s
- dimsvcurset
c4 E- n7 t( `9 A6 h% B - )$ j1 c( M- [9 b. y' x7 \4 ^
- ;;; X) Y' G1 A; y$ S
- ;; Modify Leader
0 x& P5 d' `# C) d5 s5 ` - ;;
0 o& n* _0 n6 L% V! ` - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl# O( A, R$ n: W
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
9 l3 K& D5 W' |8 U5 Y( e% U+ \0 @ - dimtype dimsvcurset)* J* J h$ F* u" X. Z( \
- (setq dimtype "DDLEADER"0 K y4 R# u, B" W' y9 _
- dimsvcurset (ddimen_dimsty_restore) o+ S U* @/ m: G3 m
- )8 ]. c' N! v# D! q3 D
- (if (not (new_dialog "ddleader" dcl_id)) (exit))0 p; [+ N6 D" u, d1 @3 s7 P
- ;; Set initial tile values) U9 b7 o7 i6 L- j
- (set_tile_props)
1 e% `' d1 W1 K9 G# c- O5 j - (set_dimen_props)
: l- \8 o4 v; v& W - (set_tile_handle)+ O6 J/ m5 W& @* V
- ;; Define action for tiles
7 I% R( k9 E; U' l7 e - (set_action_tiles)
( Z9 u% a, w. N' X+ d z7 \. I - (mode_tile "mod_text" 1)
' q" A" ~! _7 o/ U5 H) V, G6 U ~
0 O" a7 j a w5 }* A5 A- (action_tile "mod_style" "(setq dimsty (ddimen_style))")! U( w- x; k5 b( X' x" t' R( `
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
6 j4 U/ e3 [5 ], T" o; f - ;; Get ARROW and TYPE.7 @6 w% x9 n' P4 W0 b {
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1")) l) v$ @. c( }1 f
- (if (= 1 (logand (cdr (assoc '72 elist))))
+ z) _; a E' @# k) Y) a5 @0 U - (set_tile "s-s" "spline")/ p6 {% _* N( _, a) u- W7 O' B
- (set_tile "s-s" "straight"), d$ v" _5 J5 m& n" `
- )5 e5 m( r- f9 [5 q% A0 S- O& Q
- ;; Start the dialogue.
5 E3 Y; N$ Q, J - (setq dialog-state (start_dialog))
# ?' T" t7 @/ W6 W - (if (= dialog-state 1)% c0 v- b, n. H6 e) f/ D: \9 D4 n# k1 ?. }
- (progn0 }$ |- q2 g) Q. K$ Q5 `3 P
- ;; update the style
# ~. f" W; }& |6 K - (if (/= dimsty stname)' F# v5 h! z& D+ z% V. P- X; I
- (progn
% |0 a: U; I h- M5 B+ ], ] - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
/ b: f; r, H! W" e - ; doesn't have it.3 z- n) w7 X2 s1 d1 X
- (if (null (assoc 3 elist))
' k* N1 e! g7 X) @ - (setq elist (append elist (list (cons 3 dimsty))))
( e+ v' y* [. q& C- C - ; else just replace it.
1 O) I2 w8 [# R0 Z - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))& M f6 v4 ~" v9 G& J" { a
- )
. E$ x8 |# z5 `! a - ; refresh sv_dvlist with new dimstyle.
H* j$ ?( f+ ] - (setq sv_dvlist (tblsearch "dimstyle" dimsty))5 w U, b; R2 K
- )/ A7 g5 S$ b. g+ \5 `
- ). N' b+ h% X, l! R, k
- (if (not (null dimlist)) ; attempted to change dimvars& y4 v9 Y* p7 S
- (ddimen_complist sv_dvlist dimlist dimtbl)2 A: L) u" C+ Z v/ P! L. y
- )8 t+ d3 c) v7 ^7 O" O; f& G# f
- ;; update for ARROW.+ c/ P( x' b% m: t, T- m
- (if (= "1" arrow)
$ w3 ]0 d9 I/ y* m! w! @5 f! S - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
2 u) u1 R6 K( K' Q0 W - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
, o" \3 ~" L, P. s - )7 l% N1 `8 R3 r i7 k
- ;; update the TYPE.
6 q" _7 J; f+ m4 z+ x3 U - (if (= "spline" leadtype)
7 r- Z/ C @. w. L - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
6 u5 h: n1 I% ?- e4 e - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))7 D7 \5 [$ |$ q r+ P, |2 b8 o7 S
- )1 e4 |# q) O0 Z8 V# N7 J/ v+ U, g
- (modify_prop_geom)
6 a4 z( L& P( W6 H' M; W% P - ;; update the Color
( Z" v+ V5 |3 f0 z Q- K - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))/ z7 |3 R6 S$ j+ Q
- (entmod elist)) x: l6 D+ }4 W+ e& B; T( {
- ); _/ @' H- x- f5 |& e. m2 [
- )
( J9 v8 ]5 X" p, k4 |9 i" o% A: q - (ddimen_setvars dimsvcurset) ; Prepare to exit
6 @: `% q" `6 O- l/ X y/ V - )$ g" S2 v% d5 g6 m8 J
- " [3 t* u$ S# z7 g6 D5 Q
- ;;* |6 d! c, X0 U0 b
- ;; Get dimvars of a dimstyle with overrides.
5 @% G+ e; [$ t, l$ s7 U9 a - ;;3 g9 A5 L7 X6 x& l; ~) M
- ( M! m# g" {5 a6 c
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)$ m9 J4 C8 {5 C
- # k; Y. ^! U, w- o
- ;; Get override information for the specified entity.
9 K6 T. ^9 b) @ @) D& V$ E. u - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we# V2 A3 F( G* D8 P5 l9 B) a5 }7 |
- ;; must obtain override information through this tedious operation.
3 J0 ]* z$ a2 m: z+ X - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
p1 Y" Y! k# k1 g m; m, K" h3 h - dvlist (tblsearch "dimstyle" dimsty)/ Y# ?. T! O3 P) u
- i 29 A- m1 q! E8 z+ q) w1 b* d9 i, w
- )2 t7 N) S2 q" l! q8 K O
# t- w3 ^6 V# W) l+ W" ?" ]# h- ; Update the list with overrides if overrides exist.
* U: }8 H w& Q% ]+ O - 3 M8 ^. `/ h2 j x9 Q6 [7 A. T
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
% {6 J; P+ B- ` - (progn1 i* L/ O/ J! `1 T
- (while (setq elm (cdr (nth i dimovr)))- U4 B2 E0 _0 b) y* s. M& t
- (progn( p. Y9 Q3 z: Y0 [0 m4 c8 K
- (if (or (= elm "{") (= elm "}"))
3 e! F4 R! q9 Z* E" z& P - (setq i (1+ i))9 e3 i- t& ]7 C, }# B* j/ D
- (progn$ m- y0 X8 h5 O* k
- (if (or (and (< 180 elm)
, T I# U+ f; W( b+ J - (< elm 190)% J5 P, `6 E4 m4 T# u
- )
2 A# M, v" N# ^8 e: ~; K8 T/ h3 _$ J - (and (< 80 elm)2 c* A% F! W5 M* d* l. W
- (< elm 90)
+ x' q( c! |( c - )0 w f! }7 B' s, w$ H
- )
5 b" q. U! \( `; J- `. L0 B - (setq elm (- elm 10))
~! w1 q4 l, N - )
2 W; n5 q! R$ {6 d - (setq i (1+ i)
' A+ S3 g7 {) A) Q* Q& H - elm (cons elm (cdr (nth i dimovr)))5 R4 K% q& s" v i2 ^
- dvlist (subst elm (assoc (car elm) dvlist) dvlist)" d) L; g, @8 K- n& f+ R: D5 B
- i (1+ i), f8 r- Q* e4 v8 k8 l* q! I7 y& r
- )
; E, y* ~- N9 N. t6 s - ) p: P, f; E2 E3 L, c) E& R1 e
- )0 E: H7 e- }8 h# B. [, j( X0 { i
- )
7 A# H2 j% e3 ~# \ s: j - )6 A$ z1 V: Y2 g9 {
- )0 b; r8 \. ~/ C
- )
* d2 _9 r4 v S' P8 o x - dvlist
- z0 s7 b+ t5 ? - )+ T) \$ F6 t. [
- ' |& W4 J. Z% e. C `
- ;;
# v/ n6 \: y/ `0 e2 h - ;; Modify POINT5 o* c) W5 y7 E! V5 j e
- ;;
, }; @- q9 a. L$ m \' V - (defun modify_point ()4 a+ y3 X% `; y: g# C0 k
- (modify_properties)
7 y* @0 i3 {6 t* v - (setq pt1 (list x1 y1 z1))7 S4 |( T- U: ]" C1 k
- (tempmod pt1 10 0)
L' B6 }, o8 O9 @1 Z3 H+ ? - (entmod elist)
7 N0 |6 b, e5 L3 Q8 E: S3 P+ a - )4 C3 u/ P% ^& L# G
- # d- w- }2 y, g# r5 C; K4 I+ D
- (defun ddpoint ()
[& j- m! {' ~. N5 @2 ` - (if (not (new_dialog "ddpoint" dcl_id)) (exit))( p% D+ W4 w( `: L
- ;; Set initial tile values
+ b1 r+ \( D" r& Z6 Q0 | \ - (set_tile_props)
; B+ m$ Y' r0 K# M - (set_tile_handle)
* N* b( {* F) k) Q - (set_tile_pt1 0)
8 C$ U$ y8 ^$ `2 a - ;; Define action for tiles
0 D G! |, W% ~ - (set_action_tiles)
9 N4 r( o0 M# o% R2 S& o$ J" e6 F - (setq dialog-state (start_dialog))
( H% e3 V, D9 Q8 S) B3 ^$ V - (if (= dialog-state 0)
# k5 l8 V5 U" V8 [3 W2 }5 _3 V- { - (reset)8 b! n1 Z/ f1 e" b% D
- )
0 B" q7 e R7 q( T. u. Q - (if (= dialog-state 3)
$ [, B7 @ `+ F& F: u - (progn
' _' x T% f- g' p5 \. z7 Q - (modify_point)
4 g" O f; h; T d8 t - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))9 M. I/ n' v; ~3 J; F. W
- (ver_pt1 0)
" b _ r0 M* H( P. H: ?( [ - (ddpoint)- q" t) e6 p$ g. Z
- )0 z! h& L8 E6 s6 p& u2 _- U! s( ]
- )
$ F% @- C( O# b a - (if (= dialog-state 1)+ A- \* s( C h2 {. @/ T: D* x
- (modify_point)
/ f9 U5 ?3 z- P# u9 } - )
! X* I" a) p9 U1 A3 x% E - )/ j o" B/ x9 ?
- ;;
5 ~$ h8 e3 l% }! u - ;; Modify LINE
9 Z% h" H5 g+ r% L" x" k - ;;. b1 Y5 k1 ]2 o4 h. t
- (defun modify_line ()8 \ }" E* @4 m& h& T' @) N
- (modify_properties)
" x' L3 k6 P8 [; O - (setq pt1 (list x1 y1 z1))
! [; g- Z% l0 ?: F6 j% `7 u" u - (setq pt2 (list x2 y2 z2)), C1 l) X0 B$ l
- (tempmod pt1 10 0)2 a! z' |; W$ |2 j1 O7 K
- (tempmod pt2 11 0)0 Y% ?6 Q( |2 E9 m( ?3 u. j& a" s
- (entmod elist), Q& P- y+ C4 Z1 J7 [" M) i2 m
- )
7 S! x$ W4 [# U1 k/ E! d - (defun ddline ()
# j$ J, J; H2 Q- d, C# [ - (if (not (new_dialog "ddline" dcl_id)) (exit))0 ]3 t% w9 }9 a( i# c
- ;; Set initial tile values9 g4 k$ ^2 J s' _+ g7 t; ? S
- (set_tile_props)3 c2 p Y# @4 j0 J7 p/ y
- (set_tile_handle)
0 ?! ?& H/ k$ i2 x) F X - (set_tile_pt1 0)
9 j: N8 Q4 p* L, Z# C/ x - (set_tile_pt2 0)% S, D g0 T6 o
- (line_calc)
+ B9 r C) D$ }* _# f - ;; Define action for tiles
7 v9 @. e. O, O9 K2 r+ z1 o& A' H/ ^# x9 T - (set_action_tiles)* q3 C! k% f* G( v
- (setq dialog-state (start_dialog))% c& s( m! b+ C4 h& k2 h+ l2 m% |( H
- (if (= dialog-state 0)
8 H: r3 ^# h# Q! ^ c9 G - (reset)/ w' Z9 l$ s' e
- )$ J/ ?$ {0 g; |! P; d" m5 W
- (if (= dialog-state 3)
- G n6 j1 @/ P$ B1 H" S - (progn/ Q8 `5 ]1 D( S6 B7 ^/ E
- (modify_line)
; @' q# H( C' Y; \ - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
. Y6 w4 t; J% n. Q. `8 d, L - (ver_pt1 0)3 ~/ B! o: N% b- y6 F1 o9 _& c# Y
- (ddline)
, V" w7 V3 a) j1 j" z( _9 }0 S& | - ). A. \2 ]! h! Y2 ^
- )* C6 {( U9 ^# K* ~& W0 ^2 P
- (if (= dialog-state 4)
! w& m( j% u% q9 B - (progn
4 M# V5 q2 c% p - (modify_line)
+ z- G) ~0 n# x7 H9 `4 x - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
- T. v* i) C X) Q% g - (ver_pt2 0)
/ [7 {6 d) [4 h% H3 N - (ddline)
" o( m9 a- @5 L: C - )
0 \) ^* H0 [; l6 k' }. z - )
( S9 b: M$ I3 U# y8 m6 ` - (if (= dialog-state 1)3 U8 O' u* ^3 x' b
- (modify_line)4 O( ~+ g& G( E& d2 D( r- S' Z
- )# I9 D7 w: e0 n k* x8 n& u3 W
- )
: C0 l+ Y0 p& ]9 }7 g* V1 n7 H# i - ;;
, K9 y; D- M! e2 [) f - ;; Modify MLine
# o5 g) R, F; Q - ;;! [2 n4 M5 j0 I9 K- I
- (defun modify_mline (): U g; H& d+ V2 q6 @
- (modify_properties)
7 N/ z2 I& y8 ?) }" O% r( K$ F- { - (entmod elist)9 H; E4 t3 l0 j% `
- ); c6 D; k: T) ]8 L% }# s1 f
- (defun ddmline (); Q, d8 ?! f @. Y
- (if (not (new_dialog "ddmline" dcl_id)) (exit))
( n7 f. k2 w# ~3 K+ X$ C& R' p - ;; Set initial tile values9 |: z. ?! R5 X: C e# q+ }, V
- (set_tile_props)0 [( R- L; z S+ W
- (set_tile_handle)
6 \" e- m, i( ~* g& m5 T - ;; Set mline style text field.
* P6 e* p1 {" v; S0 Y, D* C- C - (set_tile "ml_style" (cdr (assoc '2 elist)))
! y4 A8 H7 q3 I9 ?; D" g0 ^, w - : i. g* g) n0 `* l
- ;; Define action for tiles
) |0 z+ B6 ]2 A- k3 ` - (set_action_tiles)9 R- l# U' c( F% f
- (action_tile "ml_edit" "(done_dialog 3)")
6 Y% U3 P& K0 s' H: A4 l! J2 E7 Y - (setq dialog-state (start_dialog))! J" l! w Q5 `
- ;; Dialog cancelled, reset to original values.3 k- A; t( L% O4 _4 S$ ~
- (if (= dialog-state 0)
1 j+ `, ?) h. E5 n Y9 I0 ~9 k - (reset). |7 N+ c) x' `" a* A9 ]" T
- ); m9 s+ J8 m( D% Z2 l2 x2 U3 L
- ;; Dialog OKed, update the mline.5 W% `. t0 Q1 L1 o5 j( w
- (if (= dialog-state 1)
" ]" {$ z/ ]; F0 ~4 f - (modify_mline): M4 m, C+ U5 g, s
- )
$ D. t% i* \5 u1 s2 e - ;; Edit Mline, call MLEDIT.
% @1 B- _1 w+ F5 r$ r - (if (= dialog-state 3)
' P! I' c/ C/ z% R6 y3 h - (progn
6 [( x5 R/ h+ V+ g8 W - (modify_mline)9 s* L+ i+ z9 P7 p5 V/ a; r/ Y
- (command "_mledit")8 l( L- v2 `+ b! E
- (ddmline)
& o$ B; W* {' }3 K; L$ c* o# U) E - )& |# T8 {% y; D
- )
$ V; _2 A u" g* L* B' W - )
' u) ?- d/ U b1 G- w - ;;. \. V6 m3 w' \- F
- ;; Modify Xline8 A) [# C2 w8 {# Q4 p0 b; R8 C
- ;;
1 c/ R+ [7 w1 y" A - (defun modify_xline (flag)
& t6 t" {- X0 Y: C - (modify_prop_geom)
& N9 X! `9 X6 v& S - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))/ Y$ a) P2 B. R6 \6 I0 t0 ]
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)). f6 j' D& [9 h9 |
- ;; Update the Root point.
) [5 ]1 X: y- U c0 S/ o+ M4 P - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
8 h4 Z1 w7 y' ]& m! ` ^; P1 d - (assoc 10 elist) O* w0 p3 V3 P p, [$ L1 T, b
- elist* }" k9 o+ ?! C2 _/ r" `
- )
8 t/ d t; L ~. `: z* c - )+ V/ M, A5 r% i6 v8 ?% }
- ;;" [* [0 ]- D! _1 f
- ;; Calculate new Direction Vector WCS
: t; X! f# A/ ?- O4 b - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))1 p- _: O2 X" @ W$ T4 x
2 t& j7 b0 Y! O5 F% o2 {* s- (setq temp_dir (trans xline_pt2 1 0))
6 y8 U6 F2 K! q9 S+ ?2 E- O - (setq temp_dir_x (car temp_dir))# S& H" B$ r F8 ~) u5 Y, z' Q2 Z( d
- (setq temp_dir_y (cadr temp_dir))/ t; j7 j! q, y# T1 s' q# _* G5 g: x9 C
- (setq temp_dir_z (caddr temp_dir))
% m* e' y4 M1 N- h; Q8 P9 k - 8 p# Q- ~6 _# \
- (setq temp_xline_pt1 (trans xline_pt1 1 0))' _& [6 A3 y* l% y% U( X; C
- (setq temp_xline_x1 (car temp_xline_pt1))
; _! E9 F" V, e* n! i" j8 R) z, h - (setq temp_xline_y1 (cadr temp_xline_pt1))
/ W" ]; ?; V# b' N - (setq temp_xline_z1 (caddr temp_xline_pt1)) N1 v8 e7 A! m7 v: P0 y! T' s! M
$ D5 U1 D# V; y' R' W/ |9 A- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
8 N) j% N% f* j) T1 f) j - (expt (- temp_dir_y temp_xline_y1) 2)! W4 C5 e& v0 S4 f
- (expt (- temp_dir_z temp_xline_z1) 2)9 E2 B* q9 x* q. V4 ~+ t
- ))) Q+ \4 C2 p4 E( j$ ~
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom)); R+ o" z" b) s, V, v- E4 U
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
' I4 M7 |( m( M" s9 F) { - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))& A6 |7 d; y3 t5 I$ A
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))6 W$ J* V, M5 w: [$ `/ _9 i9 b
- (assoc 11 elist)" g6 \+ h: ^6 ~6 e
- elist
I3 o: F; r. D7 T) C1 J5 _% G3 c - )
+ ]- ^, }! A- r! f N( r - )
: `* m1 U8 F7 G. x/ ^! P0 Z# W T# A0 s - (if (= 1 flag)
4 W/ L8 F) \8 r% {; ~ - (entmod elist)
: m+ p V0 X* T - )3 @* i$ x5 H/ w1 ^3 O
- )
9 a; ?% \! L1 g
$ b0 C3 ]: [ w( {* T; b- (defun ddxline ()- m& m: W6 y3 K" h, M$ L
- (if (= etype "XLINE")
/ @/ U% P; ~, `6 G% k - (if (not (new_dialog "ddxline" dcl_id)) (exit))+ {. R; I; N1 a1 P! X
- (if (not (new_dialog "ddray" dcl_id)) (exit))
" Q! O( V) p ~9 E0 |3 S4 C% I1 c - )5 I* G% i: K4 c% d( E5 D" w- J; t
- ;; Set initial tile values. a$ W8 L9 q* i( t* ~. f" X
- (set_tile_props)
) t: G+ J9 O- w$ E - (set_tile_handle)
% F6 ]; \$ m( q2 q7 S% g) j - (set_tile_xline_pt1)4 j; C. A Z) ]/ Q5 M! g
- ;; Convert to UCS and post Direction vector.
8 f7 C% l. u5 a$ ~ R - (set_tile_dirv)
9 [; Z+ M) Z& U" \4 @5 V( l - ;; Calculate second point by adding Root Point + Direction Vector.0 Q- Q( n! \& i0 C) J( ~
- (set_tile_xline_pt2)
) ~- N0 |% \( Q# M - ;; Define action for tiles7 u7 J! T. w2 A
- (set_action_tiles)
# t E8 C" `6 a - (setq dialog-state (start_dialog))
2 G) K. m: ?4 ~- V" E& x - (if (= dialog-state 0)
@7 ?5 K: {& w, x& @' Y - (reset)) G$ t$ m) ` j1 m
- )! N" z! O8 ~5 X1 H' j
- (if (= dialog-state 3)
" j& L9 l$ _8 _* c - (progn. |: B* w# e& `7 ] t
- (modify_xline 1)+ I& _$ j! Z" {* P
- (while (equal xline_pt2# J/ h. h+ F) L4 W
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)- Y7 l3 i6 f4 \5 v; g
- (princ "The Root point cannot equal the Second point.")
! l. ^, h, H: Z# J - )
( n3 l, ?) d. U1 H, {- N/ X; Z - (ver_xline_pt1) v3 T' s. H, M& A! R2 h
- (ver_xline_pt2)
. O5 {. X! h: ?- W3 n+ e; L - (princ)
/ l A* b( y9 f6 s" | - (ddxline)! J* I% ?# q0 z. ]% C
- )- J# ^, k" i3 y& s8 f: ?+ l
- )) O6 ^0 D0 {' _, C, ]# F$ A
- (if (= dialog-state 4)4 i, q; b$ A, R8 ^
- (progn
& i# p: c5 Y. d1 C - (modify_xline 1)/ n. Q' R" ?0 N, m2 t
- (while (equal xline_pt1
2 o: q# P4 y3 `, o: G - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
4 W4 }; M$ ?( }2 C - (princ "The Second point cannot equal the Root point.")
7 U2 O& i& M! |. g: Q1 X - )
0 w& @! |, n1 ~7 w0 y - (ver_xline_pt2)
" N+ t' x4 l- e7 Z- X - (princ)
7 C J8 ~& I4 H4 b. l. Y2 [ - (ddxline)
' _. m' c7 f0 g/ e- C - ). A9 X e' d% \# [. S: G- K( R
- )% B2 N+ F1 F9 `, E" c
- (if (= dialog-state 1)
# _3 j: ]5 l" k! i) \. s6 Z - (modify_xline 1)0 x8 E* w7 p$ n
- )
+ A+ Q3 |4 j% c: b - )- }- a$ u' I8 L0 [6 Z
- ;;
+ m5 T* L/ |7 Q - ;; Modify ELLIPSE
& c6 p. W/ |* E+ X8 V - ;;
: m: U' H5 H$ \. l2 v - (defun modify_ellipse ()8 d8 b5 G/ i! q
- (modify_prop_geom). O' A( n2 m6 \0 \) r
- ;; Update Ellipse Center Point value." f8 _# t5 e+ D6 K; G i& [' r$ i& z
- (setq pt1 (list x1 y1 z1)). A' j; a; c% [0 w% ~. q4 ?
- (tempmod pt1 10 1)
0 W" B1 a) Q# p9 I% K6 _- E+ w# a - ;; Update Start Parameter value.
5 N; Z* M4 t6 E8 Y( Y& b - (setq y_val (sin st_ang))
' R: q: v8 o& W& y1 y4 ` - (setq x_val (* rrat (cos st_ang)))! g6 g6 i; ]2 h
- (setq stparm (atan y_val x_val))8 X3 `) R% h; Y; Q& X2 H
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
# w" r7 |5 T$ i5 M" ]! J - ;; Update End Parameter value. Normalize it, if it's less than
1 U; R' m N* Q - ;; the start parameter.
, h/ t" o! p: }" R - (setq y_eval (sin end_eang))4 _9 _7 v& g5 `4 v6 m
- (setq x_eval (* rrat (cos end_eang)))
/ y7 i! L9 i8 f# L% d$ c3 w; K- P - (setq endparm (atan y_eval x_eval))( C/ e; S( y, S" q1 E$ m# y) J* p
- (setq diffparm (- endparm stparm)). g% D! J: e. @; n
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
) N' i- _4 R o, o9 S; M - ;; Since zero length arcs are not allowed - construct the full M% q& t- r8 I5 X. B, F2 z8 ^
- ;; ellipse in this case.
& t- I$ H6 x/ s6 r- _ - (if (<= (* diffparm diffparm) 1.0e-12)- F1 s% o4 {, g/ T4 A! t& ]8 z0 ?
- (setq endparm (+ stparm (* 2 pi)))+ ~; J6 o6 a2 U( g0 M7 c
- )
, D& p9 m8 \" k/ G - (if (<= endparm stparm)
d5 T3 D' s7 w - (setq endparm (+ endparm (* 2 pi)))
( K+ [4 P1 z; g, y - )
; |: I9 J' d2 {3 q( \2 A/ E - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
% K+ i% _ a- X. r) v - ;; Calculate the Major Axis Vector by first calculating5 z7 j6 ?8 G) I9 j' v4 e) i7 ~9 L, e
- ;; a unit vector using the old Major Radius value. Then( _) p. q$ l% h0 D* T
- ;; Multiplying that by the (possibly) new Major Radius
# u! P$ N$ w6 ~+ v - ;; value to get the new Major Axis Vector value.
: D: F7 N/ u z6 W, q0 P - (setq unitxx (/ xx old_majrad))9 S% ~9 B$ Y w( K$ {3 G" |9 `& ?- V
- (setq unityy (/ yy old_majrad))
# l0 L) n3 b5 H# z6 u6 p k1 D: Q - (setq unitzz (/ zz old_majrad)); C: Z3 N3 ? P) }) q& Y' B# l( p7 Y
- (setq newvecxx (* unitxx majrad))
9 ^9 o, t/ B, J- q3 c7 T' X) T - (setq newvecyy (* unityy majrad)), ~. b7 h* {5 y2 I: `- V
- (setq newveczz (* unitzz majrad))
) s, I) o# q X. o) i - (setq newmajaxis (list newvecxx newvecyy newveczz))
2 O4 e! i. {6 B9 e' ~# s, M% m' m - ;; Update Major Axis Vector value
) Q: T' l* P% C1 ?% U" X- P - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))9 c) D4 x7 n' w/ G
- ;; Update Radius Ratio value- d! _& H2 O6 L! R
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
' r/ a, v# q0 W% c0 ? - (entmod elist)
2 c2 _- a) ?! v; _8 @' n. f, H - )3 M8 m5 [( `1 }7 d/ {1 b$ ]
- ) ?- l% N) G" s! ]: u) d
- (defun ddellipse ()( u' o9 \! i% S1 I4 k9 Q' w2 s9 Y
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))
, d( ]% @' {& q - ;; Set initial tile values
$ F0 H3 ?. k) B) n - (set_tile_props)
# q+ D" k) u w! ]0 m2 } - (set_tile_handle)) V- W! X3 f0 U6 D, c4 z- C/ }
- (set_tile_pt1 1)4 u8 L9 p [0 ]# f( v2 H, `3 N
- (ell_calc)
+ {9 ~1 {, Q/ d, a% E* {: ? f - ;; Define action for tiles
' e: m; N3 ]( c/ d5 B2 i+ ~( \, s - (set_action_tiles)
1 s! Y8 q, y: ~" n4 e - (setq dialog-state (start_dialog))9 X* m# h1 r' C- E* L
- (if (= dialog-state 0)
/ @" v' F6 d7 u* d - (reset)/ a1 E/ w- \ z: G
- )
1 C6 }9 \" P u- z, J( Z- t - (if (= dialog-state 1)4 ^& E H9 k# @) B3 `: R+ z3 n
- (modify_ellipse): _4 f( k3 O$ N8 |" n* o
- )
7 f. ]$ A# f5 [9 W. A - (if (= dialog-state 3)
+ e0 u- I: h9 k! {% p& N& y - (progn/ p- S; m* n; ]' d
- (modify_ellipse)
8 E: D& x' Z' u8 B% A+ M9 b1 f; y - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
( ^% C$ @8 K( ?7 D - (ver_pt1 1)
( a4 @% w$ m- p$ Y - (ddellipse)* N( [' |* ]5 ?6 I; I2 O, \
- )
! z# i' t" f- t: k, f - ): g% u) [! E$ l: f
- )8 F8 l( B' _3 h
- ;;
+ t1 y4 t0 a" [7 _$ a - ;; Modify REGION3 f4 G* k7 J! {7 H0 z5 W$ @
- ;;$ o- e" v. U* Z1 h% `( H8 n6 J6 ?7 c$ y
- (defun modify_region ()8 d6 l! m& W7 h, {7 m6 s
- (modify_prop_geom)6 ? R3 p- u0 a' C8 G
- (entmod elist)
8 d0 ] }: h$ c, k - )
# c0 o& r$ S, _
* p% k+ ? {( o8 O( z- (defun ddregion ()
% Y* j( m: T& g K5 B - (if (not (new_dialog "ddregion" dcl_id)) (exit)) V5 F. Y |" [2 _, D e: P9 j3 i3 ]
- ;; Set initial tile values1 |/ b o3 g' J' T: X
- (set_tile_props)
) @3 {& ^! J3 a8 X" }) W( P; X - (set_tile_handle)+ o& w& T# m& \0 |; R. w
- ;; Define action for tiles" a& i: _9 u9 Z) M! L
- (set_action_tiles)0 w) m* B/ I+ r
- (setq dialog-state (start_dialog))
: B/ b- p$ R# S - (if (= dialog-state 0), @9 S- v- p* _+ R4 J
- (reset)- a) N4 j' }2 e2 b2 D
- )
8 ~/ ~& r% ?$ e+ P# f7 I- J - (if (= dialog-state 1)
" D+ o6 t# s8 `. G: Z - (modify_region)5 l" @# R' O: Z$ J) [5 C8 i9 ?0 b
- )
1 L" Z }9 K( R+ V9 c" ] R - )
& U! t4 @ v+ ~5 Y - ;;0 _1 B# m% O6 r1 d! \3 E
- ;; Modify 3DSOLID, d% q3 T6 m% b0 p! { X$ a I: a8 L
- ;;( U% E! A# t8 {
- (defun modify_3dsolid ()5 q( `6 B/ G t+ @$ f; Z
- (modify_prop_geom)
! U) n1 p: u# a2 F N - (entmod elist)+ h4 _; k7 q; Q" x. F
- )
* `( A' F- V8 y5 S - 1 h( I# @; B( w2 S) r [
- (defun dd3dsolid ()6 o2 ~2 \% E: k$ U1 w
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
+ U. O% S9 O H3 B - ;; Set initial tile values, _0 `. s2 R' B& a5 p
- (set_tile_props)' X" X" i& h' s+ V7 H
- (set_tile_handle)6 y1 m% g P; F& t
- ;; Define action for tiles% |/ a7 @( I# T' | J! d4 a o; ?
- (set_action_tiles)& D: b* [- k9 k! A; |* v
- (setq dialog-state (start_dialog))4 f( f6 E' |5 \+ @- L' k
- (if (= dialog-state 0)8 w* z4 u0 \3 P( w3 m( q, {- k7 V
- (reset)0 \. r1 M! w: O
- )
: L: c X# l/ `# m. u - (if (= dialog-state 1)1 _2 ?* L( z9 G. s% |
- (modify_3dsolid): B1 C# W( t q6 |) K- z. k
- )1 [) W: N* |1 F3 r1 p2 v+ O% |8 E9 D
- )3 y/ ? |. u/ {& x/ ?# r) \3 ~) p
- ;;
+ Y O8 E0 f7 }5 Z) |8 y7 q5 ] - ;; Modify AcDbHatch0 M4 |1 ]* k1 `2 D; U+ O. X5 A
- ;;
5 m/ y6 _4 Z3 g - (defun modify_hatch ()
/ B6 Q* M. H, _! V - (modify_prop_geom)# U; f2 l) ?6 j8 t! t
- (entmod elist)
- ~" \; w# d8 t5 { - ); [8 |9 ?$ Z1 {% y. A; A9 E! ?. S
- " D: o6 s9 X p$ h9 E/ x' b4 i
- (defun ddnewhatch ()6 M: B! A; f( P- T+ V
- (if (equal hatch-elist nil)
% E ~4 X5 \) L% Q - (setq hatch-elist old-elist)
4 |! k1 D6 y$ j' ^6 O: z6 j - ). @4 v6 }! J: N" Z, ?4 }% H; f$ N
- 5 o! f! A' q( }3 U3 y
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))+ y; G1 p3 \+ n! F, K# @
- ! l, N6 ^2 ~7 K) J; h
- ;; disable the thickness tile5 e2 b" U2 h: F% \( X! x
- (mode_tile "eb_thickness" 1)
' r8 N X1 E/ X( U1 H& _9 g - (mode_tile "e_thickness" 1)
: ^, o6 y: Z3 L# q, [
- f0 {9 C3 S) [6 H$ B- (setq help_entry "modify_associative_hatch_dialog")) }% y# E8 P, r$ t0 C9 [9 b& S
- (set_tile_props)
- L9 A T2 O9 N$ i' U' ^: V# ] - (set_tile_handle)
; b l: u3 R6 I# r+ r - ) G1 Z2 `* q/ O K" U
- ;; Define action for tiles0 A6 J I) M- x* {
- (set_action_tiles)1 E4 t& A2 e5 f$ E$ a& {& ?- o
- (action_tile "b_hatch" "(done_dialog 2)")
. A. e3 Z9 `$ ]8 H- u6 p3 j - (setq dialog-state (start_dialog))
. ^- i* \& W2 A- w, U* e g - (cond2 P8 Q; N5 |) H; m
- ( (eq dialog-state 0) G& S, u$ h3 ~, `9 j+ D
- (setq old-elist hatch-elist)
: K6 n/ H- h9 k% v' @4 Q' a: Q - (setq hatch-elist nil)8 Y- X7 J) [6 |: Z* x
- (if (= (checkforlockedlayer ename) nil) K* k7 i' s: s
- (reset)1 ^5 k2 R2 |* J$ }: u6 F
- (progn ;;; special handling for locked layer reset
. R) s; w& g% h; Y/ @ - ;; unlock the layer
* \4 Y2 D! g7 W# T' b - (setq layername (cdr (assoc 8 (cdr (entget ename)))))% R1 P& {9 ?$ e- Y5 T
- (command "_.-LAYER" "_Unlock" layername ""). G5 M0 {+ U. N% _
- ;; reset modifiction
; P/ |6 w6 z, {) k4 U - (reset)! X( S6 |8 t) Z* I+ a# G7 J, B) L
- ;; lock the layer again& L$ x% Q! G2 F4 F, u
- (command "_.-LAYER" "_Lock" layername "")
O6 z4 q, M% g3 Q7 Y2 V* o - )
4 r, h4 o$ f; d' Q- z5 L4 [ - )
& h: n/ T* y, t1 ^; y - nil ;;; makes (ddnewhatch) return nil for Cancel
- o! l9 k( I8 d2 S - )$ @) e+ F; z2 \
- ( (eq dialog-state 1): l5 m) P [2 P% B+ U
- (setq hatch-elist nil)8 d' T# l, S- l' B( B: I3 x& g% w& m
- (modify_hatch)
" F5 Q* c: E" w! E - T ;;; makes (ddnewhatch) return T for Ok
2 y7 _6 u) g/ O4 t) H# d - )) Q% k+ L6 f. F" h( C2 V, h: |
- ( (eq dialog-state 2)# u6 V3 W' ~ b+ _/ e% T& N+ _
' o0 c! A, Y# P n: M8 ?5 z- C# h- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))0 Z$ n. `0 p8 ?( l6 e
- 47 H" i9 B0 k' r. u- W8 S
- ) 1 I8 X0 X+ q' n
- ;;; new selected layer is on a locked layer
9 Q, w" `: S+ e5 E5 ^ - ;;; we can simply modify the hatch properties) h* h) m& x& Z% g8 D% ]- A
- (modify_hatch)2 D8 `/ J; X6 R8 s& b4 ?# a( j' j
- (progn/ O9 X1 l. {( @6 @
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))- [! H. w) C! l7 f# i3 g
- 4- I5 u9 M, h V# i- |: ^" {
- ) 4 I2 x8 D# S+ V
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
4 l9 ?; e$ G9 ` s+ V# Q5 w - ;;; We have to unlock the layer forethat we can update the hatch properties.0 R# Q- E. h6 h& G
- ;;; If we don't do that (entmod) fails to update to the new layer.$ \- w# a8 W3 N) X' D6 |+ z
- (progn H* O: v" p) z! R
- (setq layername (cdr (assoc 8 (cdr elist))))
/ V1 |& n4 O# k2 b9 D. H: O: h3 D - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
: l+ F2 o5 k2 D# X: J: { - (modify_hatch) ;;; update the properties6 G/ h! ]6 A+ v7 v: z
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
+ P5 g, D/ `- M: M/ d/ x. t - ), U1 Y; ]% o8 T4 E- T
- ;;; All other cases we simply update the properties
9 `1 `5 ~. g0 a3 w- [. Z - (modify_hatch)
5 j7 O1 i; ]6 F6 @& i - )
+ q' a. u, t, |9 P6 O# W: Y2 w - )
& h4 @' T" j( J8 V7 y2 E - )
( K! k8 a9 A9 U3 M, U4 p" { - (if (= (checkforlockedlayer ename) nil)
, y/ e% M, W9 f, q( X - (command "_hatchedit" ename)
. h. ~0 c% P* Z, ~' o# S - (alert ;|MSG111|;"The hatch object is on a locked layer.")
. M) C8 n8 I n s; B9 ^3 ^ - )
: \4 Z8 p8 ^* t. S - (ddmodify ename)
5 x: ~0 I' k( j7 ?0 @) r/ A4 k3 ~ - ): G0 @; u8 }% c) e1 }
- )1 ^/ H m0 t' U$ H6 z$ O, ~
- )
) ^+ ^' Z# O/ w# g* b+ k, m - ;;
: f- e) o/ R7 B7 l# N - ;; Modify BODY
# h4 Q" c! {( b' S- t. _ - ;;- P2 i, M6 [ a$ o% x( @; N- I
- (defun modify_body ()
8 H) M* J$ j2 v; {6 e, Z6 W U - (modify_prop_geom)
0 B5 t, R$ G* c6 v1 ]8 _- D - (entmod elist)$ ~/ Z7 Y q, T5 O. K H
- )
. P' F, m, W/ i0 ^5 h1 _0 U - ! S+ v8 X6 L* ^, }0 b! h, j
- (defun ddbody ()
. m- x) F6 U! U% ? - (if (not (new_dialog "ddbody" dcl_id)) (exit))3 J6 B! P! L( ^, T; L. T
- ;; Set initial tile values- W$ c, X, V% |3 Q9 [* y2 Z
- (set_tile_props)
3 u8 {6 F; a: H - (set_tile_handle)9 L+ U0 `) E" s A7 e# d; H% ?
- ;; Define action for tiles3 h$ L6 U; F3 O! h
- (set_action_tiles)# g# e' x1 o0 c* P. A6 Z
- (setq dialog-state (start_dialog))0 c b% ]1 }9 w/ P+ l: O
- (if (= dialog-state 0)
) b9 d( b0 h' ~% ~% x - (reset)( C& v. [4 r" {. o$ ]
- )4 u- q& Y3 \4 h. [% }. R- c
- (if (= dialog-state 1)7 D+ M2 e. ~& r9 F" M! r0 n6 k
- (modify_body)
9 z5 N& j+ s$ I. t- m% p - )9 L9 c1 {# P9 X
- )( s8 y: Z! p0 ?: u7 i" B0 e2 _
- ;;, l! Q9 V5 u- M% \& b, ]8 C+ }* [
- ;; Modify CIRCLE
1 P8 e1 @' k8 t, M5 [ - ;;. t& \3 Y1 j; e, m3 ?6 X& ?
- (defun modify_circle ()
2 F& B; d) m, g, ]- r* P - (modify_properties): e" V( W$ W* ?3 A) B
- (setq pt1 (list x1 y1 z1))
. z' U1 U/ [( j" F - (tempmod pt1 10 1). j f# @; p- f
- (tempmod radius 40 nil)
( E, V% `0 W2 ]4 ?4 c5 w - (entmod elist)
6 ]* O) y2 b$ `& U6 d/ Q8 m& @9 x, h - )
9 a2 }8 k$ l1 O
0 Z5 ]' G: u- l% _/ g- (defun ddcircle ()
$ w. T$ o# j0 j9 i - (if (not (new_dialog "ddcircle" dcl_id)) (exit))# B8 H$ v4 I- ]8 j0 h5 r
- ;; Set initial tile values9 `- m% H0 p7 u6 t
- (set_tile_props) v/ N* d9 J; t" ]% F/ t- o* H* Z
- (set_tile_handle)$ z$ }8 Y* N, c- c* L3 Z6 d
- (set_tile_pt1 1)
* }9 n& S. X' j$ n, e7 c - (set_tile_rad)
* u) D" d3 F; r8 M0 _# m# c5 r - (cir_calc)9 o" ]( m. B: B. t9 E9 V) g" E7 q
- ;; Define action for tiles
2 t1 m- ~8 U3 w }* s+ X - (set_action_tiles)4 S+ e% X( ]& B9 i+ ~( ^
- (set_tile_pt1 1)2 B9 U$ \( C9 e/ V
- (setq dialog-state (start_dialog))# C- n7 T, a# Q* H" L k
- (if (= dialog-state 0); a% \! V2 M& a, L1 T
- (reset)& U m6 e( g9 s2 t* ^; j2 I
- )
/ A# v1 Y* A) D7 Q& \" Z - (if (= dialog-state 1)
5 H c3 r0 f0 ~5 ~( h. b - (modify_circle)
. P8 s' b! y- U' l5 p - )
% n8 Y) c/ U( K3 s D/ A - (if (= dialog-state 3)- ]( U' [* o2 p7 ~
- (progn3 I/ h* `" S2 Y$ R/ d
- (modify_circle): N) a) q* X+ I$ G7 P
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))5 q# t9 S! v0 z& Y" N
- (ver_pt1 1)
' n( {8 O0 K( s' F+ O, K - (ddcircle)
; [# v# v5 J& O - )' O' k3 B% a- V4 s) U
- )
5 S3 E8 k: R: `: b - )" K! z3 S0 {! e# ]; e
- ;;
4 ^3 d+ _ _& K - ;; Modify ARC1 q' _2 }, a- W) R' X
- ;;
% t2 h. c; t1 v - (defun modify_arc ()% Z8 \7 z# u" T
- (modify_properties)6 ^9 U) ~, j# M/ j2 L9 p$ D
- (setq pt1 (list x1 y1 z1))6 f5 A" r4 Q) @% e
- (tempmod pt1 10 1)/ k$ ~9 X2 d" I6 _
- (tempmod radius 40 nil)
) [, h& l; H6 r- R2 u5 v - (tempmod st_ang 50 nil)
" Q1 ]8 C ~% B- \ - (tempmod end_ang 51 nil)/ Q3 i. h' ~0 g5 P
- (entmod elist). W# l; \; y/ g+ j
- )
+ R0 m! c, H/ z- M - (defun ddarc (). a+ Q; G! f5 O" c% G* T ?/ M8 a
- (if (not (new_dialog "ddarc" dcl_id)) (exit))% m% }" M7 }0 t
- ;; Set initial tile values
9 I3 S* F! T( q0 [9 w - (set_tile_props)
# B+ `" ]' [, z, M- e - (set_tile_handle)
2 J6 ?+ k L" P' ] V5 R% S - (set_tile_pt1 1)
- l# w6 N. @5 w5 {0 } - (set_tile_rad)
. \5 w7 ^$ j) |7 k0 @" u: b - (set_tile_stang)
, g" b& Z# O- w" G - (set_tile_endang)
5 Q3 T: ~8 K0 l" v - (arc_calc)
# \5 _5 x+ Y. L) g7 i - ;; Define action for tiles* B5 }5 {% @2 N7 o, i
- (set_action_tiles)
; F2 R1 n1 R- l5 [+ O - (setq dialog-state (start_dialog))' o+ l1 h$ G4 W4 a# o* h
- (if (= dialog-state 0)- @+ a4 D g9 w8 d& }! o, I, M
- (reset): f0 N7 _7 S4 {" m
- )" F! e* B2 K5 R3 O! S' n ?! w
- (if (= dialog-state 1)# {" ~0 O- R# Y7 u
- (modify_arc)# H5 X8 g3 T- F2 z
- )' c( p' l9 s8 \. l$ q- s* w
- (if (= dialog-state 3)
$ R0 k3 P+ G7 @4 f% a3 h' _ - (progn( |6 h2 e' d: u2 i
- (modify_arc)
6 r, N* E5 G; m$ o - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
, a. U5 |9 i. W/ t" z5 ^8 U - (ver_pt1 1)7 F7 P7 R% t. C
- (ddarc)5 l: W$ c& f7 A# X: O: c, v
- )
4 K' k$ u* ^9 h9 U: Q* t, s - )
8 j% w6 M# C {6 u - )
0 Y! |8 e7 X8 { - ;;
& _! \# P1 }$ r7 I - ;; Modify SOLID or TRACE
# u* E% @0 z+ h. ~# Q, m - ;; Note the Z value of the object is determined by the Z value of the fourth
, X" F; q. e: [+ Y - ;; point - code 13. Changing the point values of a solid or trace from a UCS3 S: `7 K7 {# k; k( [' B5 Z: Z
- ;; that is nonplanar to the UCS the object was created may confuse the user.4 f! s1 R5 y, L7 }& D3 l# H
- (defun modify_solid ()
8 ^3 g/ l/ U* q, h7 l4 q - (modify_properties)
5 C8 e8 ~4 ~; A$ ?) l2 [4 a% [ - (setq pt1 (list x1 y1 z4)) [ C! a7 E3 h; o
- (setq pt2 (list x2 y2 z4))
( W0 w, ]8 {4 W: } - (setq pt3 (list x3 y3 z4))
7 C/ \8 O" n, l% a - (setq pt4 (list x4 y4 z4))
. v: w+ ^4 T H; P* ~* g9 y - (tempmod pt1 10 1). P3 s3 B& K" U8 `7 U
- (tempmod pt2 11 1)* i9 S* f9 Z! }7 P F
- (tempmod pt3 12 1)# z! u0 W b+ j* o$ a: u/ a0 g. L) J5 v
- (tempmod pt4 13 1)# p, }+ p" h+ m( ]. b1 v
- (entmod elist)
' M C4 I( I$ ~, U - )' I! [1 P) ]2 k/ v
- 7 Y* l' h! m c/ e
- (defun ddsolid ()4 F+ O8 B: i5 a/ t$ o
- (if (= etype "SOLID")8 X- |! j# \# i% A7 B0 X4 t
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
3 _9 v" U$ U" K - (if (not (new_dialog "ddtrace" dcl_id)) (exit))2 V# Z% e* J6 U+ Z0 F- m5 M! q) [
- )
) J5 }0 C8 ?3 V! X/ w) l" a - ;; Set initial tile values
B/ ?! r: S3 i - (set_tile_props)+ W/ L2 G7 t$ |4 d. n' l& u
- (set_tile_handle)
2 v. h7 V1 L$ _) c8 Q) `. R - (set_tile_pt1 1)3 W8 a; V! m* z' p
- (set_tile_pt2 1)2 q) J- b0 w) U3 r+ Y" @) n
- (set_tile_pt3 1)1 Q" N! m# U) R& L' E
- (set_tile_pt4 1)
4 i9 o" g. Y M( G2 r% X# v - ;; Define action for tiles7 u$ b7 P `) {+ Q
- (set_action_tiles)
! Q, {( L5 B4 u8 z4 Q: Z - (setq dialog-state (start_dialog))
% O( [8 ?+ O) s0 J! }1 V - (if (= dialog-state 0)% h9 W+ p- H/ i" q
- (reset)
4 ?- o+ f6 w# H7 E0 R `' x - )
9 b ~ J) r9 @, K R9 Y( J) A - (if (= dialog-state 1)
; Y$ c5 g3 u G4 U6 E2 g - (modify_solid)3 M F; A7 s) b9 T
- )
7 D3 y& B) R% z2 c% E: Z - (if (= dialog-state 3)! c! i3 q/ j) }% s( }, B
- (progn/ H Z4 U2 p, S0 i4 o
- (modify_solid)
: X N# e% p: T - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: ")), _( g% U5 E1 W$ t
- (ver_pt1 1)
+ c' w6 M4 f4 I2 b! X! }6 V - (ddsolid)
, ?. ]7 s G. f% \4 p4 U9 ] - )( m2 H }& L2 w' o& |! f
- )9 c7 x3 O( O! n2 f! x: E( _) K7 z# J
- (if (= dialog-state 4)# T0 j' w8 l& ], W. A6 g
- (progn( H& J! I l" Q: A1 D
- (modify_solid)
, W5 Z3 @' Q+ l1 M - (entmod elist): ?8 |# u$ ~' U4 ?* o
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
t' |, w' j' E' a6 q2 [/ Q - (ver_pt2 1)" K6 D$ e5 n9 |5 s
- (ddsolid); b9 i1 [# e+ H1 }" z% H
- )" ^* X5 g; ?+ D3 ]! N
- )/ D* C; k, k1 A# i& ^
- (if (= dialog-state 5)0 e, _- D/ F v8 _- Y! \/ l
- (progn; r, N" J* y, }- l, z# [ N3 I
- (modify_solid)
- l; t3 V2 }' e& T& w - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
) h* d) O3 E) y - (ver_pt3 1); W- i9 [, _; x; R+ ], [, ?
- (ddsolid)
9 G: \8 E6 P8 S9 n, | - )5 D- X7 g3 N; `$ d a( m8 H ]. t
- ) @/ C& ~1 Y% Y/ |4 r9 ~
- (if (= dialog-state 6)
. B8 J) m# f" G/ m( F) { - (progn! G0 ~; ^* Q# r
- (modify_solid)) Q0 C; s f# r9 k7 I
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: ")) ]5 R1 r$ m$ o; s( h
- (ver_pt4 1)
8 i( N7 C0 {5 ^9 x3 a# @* m - (ddsolid)+ R4 u" _- S2 s( G" }* a& v
- )# j+ Z, t A0 ], ^# @2 g! W+ x- w5 r0 x
- )5 A5 c1 F0 T) D$ f
- )& e8 k6 r; w" d7 I
- ;;! y! M8 Y6 E' ~8 s$ E. w2 o; a
- ;; Modify 3DFACE3 K( b2 `, ~. y* Q, q3 x( a) B8 m
- ;;0 {5 G7 o2 N" G" W
- ;; Check visibility of edges
6 K* a/ {8 I5 P' _8 ?8 c - ;;3 t( B4 E! o* C& C0 V" Y% ?
- (defun edgetest (/ bit1 bit2 bit3 bit4) O' q* j+ X( t& M' n( I( _! N
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
9 }! s( O4 ]$ o8 l8 y; U - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))' |( Y8 v9 c9 D, s
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))/ x. q5 f% v' @6 K3 F" ^
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))# F0 Q7 U- G# i* e8 w* c3 F
- (+ bit1 bit2 bit3 bit4)
@9 {& G; c7 p2 ]3 W! I9 z/ P - )
9 n) `7 H* `- F( g
6 d& Q% ?5 x+ \ g- (defun modify_3dface ()
- r) N0 L- q6 ]: F5 {3 { - (modify_properties), M$ K# M. x) n% e$ Y" E+ F* W
- (setq pt1 (list x1 y1 z1))
' ^) B+ K6 u6 w3 G) J5 g9 S - (setq pt2 (list x2 y2 z2))
5 J; c7 a1 T: @" L0 D1 _( | - (setq pt3 (list x3 y3 z3))+ l3 Q, p# Z3 C p ], V! v
- (setq pt4 (list x4 y4 z4))
- a% }* P, _9 u0 w3 A0 m - (tempmod pt1 10 0)8 P) r2 ]# g' }* r9 K* `0 c; n: x
- (tempmod pt2 11 0)7 Z' b e# c, u2 a9 N9 w9 a' x4 z- f8 x
- (tempmod pt3 12 0)
. h- v" k/ p+ R- C2 { - (tempmod pt4 13 0)# Z1 n2 u. i. ~; ?3 j
- (tempmod (edgetest) 70 nil)2 k8 t8 S. H% f6 C& f8 s( \- ?
- (entmod elist)# u+ {9 C2 z+ {0 z
- )$ v: X' {2 ]* r% @
& S* ?% w( u. O8 l8 p) Y- (defun dd3dface ()$ D; `- i" S5 B; p
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))8 o' N6 h$ V+ L2 t( ?9 B$ z
- (set_tile_props). d! J4 I K, W9 b, y
- (set_tile_handle)5 a4 Y# B- o5 D7 g
- (set_tile_pt1 0)3 K* L& Z! o# _6 j: d
- (set_tile_pt2 0)
" B3 A' M& j8 l, g - (set_tile_pt3 0)- a' l* m5 c/ L; H6 O* N6 Z& J
- (set_tile_pt4 0). ?% O+ \0 J8 x7 ~" ~$ E$ K# k! L L$ c
- (set_tile_edges)
3 p# z% R4 u B) T6 ~ - ;; Define action for tiles' h9 A0 O& Z5 ~4 E2 E
- (set_action_tiles)
5 C6 v: ?( a/ ~# y9 K - (setq dialog-state (start_dialog)); V% [& w2 e) O1 L; ~0 \( Y- z
- (if (= dialog-state 0)
% I6 o+ p2 `, U- q m - (reset)9 _: r4 }1 P5 ?- G6 G( J& P
- )
2 J/ T7 z4 O4 O+ x. ^+ G" ` @ - (if (= dialog-state 1)( i% p0 E; M7 p* b- a
- (modify_3dface)
. n, t: Q5 r; I" w. E& \! Y8 z - )0 A, g& B% q+ B1 Y" |
- (if (= dialog-state 3)
7 w9 g/ u- F- x$ v$ c3 l+ w - (progn6 Q* B' Y: N- Y# I6 [8 f
- (modify_3dface)
2 V# U( a$ |+ D) M - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
$ h, o$ S/ y L+ L - (ver_pt1 0)
) x7 m+ Z! ^9 H* v/ e! p i1 H4 N9 G1 z7 ` - (dd3dface)
2 i5 ^7 p% n' g' r( V- l2 V - )
" Y: A- o/ J$ R: e$ {1 H* q - )
; E+ i! x7 @' W; x5 T$ ~! R1 |$ F - (if (= dialog-state 4)% F5 d/ B$ S8 v n0 r& N2 g! s
- (progn
|+ I& B3 h* F - (modify_3dface)
8 w/ [, O) j: [" z7 m - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
& M! z H4 [) b - (ver_pt2 0)$ |" L- `1 s/ v1 `
- (dd3dface)
1 J+ b/ j2 r. i N1 Y0 n' g - )
6 N% T9 K/ `/ i8 s/ a' R1 Z- Q5 y - )
& q. H- y( O5 T - (if (= dialog-state 5)
1 g4 I& X3 _% G X9 f* m - (progn9 `9 v$ u7 V2 P/ ?8 K; P i, l
- (modify_3dface)7 x d5 J: V3 C, j
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))3 {, J3 S5 O! V4 A4 Y
- (ver_pt3 0) y# ?! H9 _$ a& M! H4 N$ g: \
- (dd3dface)
' v; G2 X# R6 m ] - )* _9 i0 w @; K& |: h# ]
- )
* b# ~6 V5 B0 ?, F - (if (= dialog-state 6)
5 d! N1 B! S$ P& `4 H" S/ T- G# B - (progn A& _6 X( p) \( [
- (modify_3dface)! d. I4 t; ?- x, ~( D3 \7 k9 O
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
, g; K+ E% d. a8 W$ f7 g' Z' d - (ver_pt4 0)
2 N/ W3 F) g9 K& X - (dd3dface)7 z5 F2 Y6 Y8 m- P0 |# U: U
- )
5 h6 t. `* N" M' K0 @' A - ), ?+ o; h% y2 T2 ` A
- )
, ?8 D; W. A# q5 f3 L; a - / f. K& } J& N+ R8 `& E( o! U0 @) w
- ;;
. R/ b f# y5 J; V' }0 o1 T1 w - ;; Image functions/ S/ i, e$ W, ~# [& ]# o
- ;;
1 x0 k) J! c! }$ D - (defun image_scale (/ upixel en n userscale temp)
6 b% Y7 W5 g3 _: C [6 `: r. G - ;; Calculate the size of an image pixel in AutoCAD units, U0 B' U, R) \/ N5 I3 d. c
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
- Z+ P9 k C/ Q$ l3 m4 {4 a6 a4 I - R' n- x- K5 F; S- C8 _& C
- ;; Retrieve the user scale2 g' ?0 ~' E: o0 b1 I! ^" I6 w
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
/ w6 @7 E2 x# c, E% B0 s
# W1 C; b" T+ @- y- ;; Next, extract the image units and pixel resolution8 o+ i+ U8 S4 q) Z4 d0 H2 v! W
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))8 l4 O1 g) R. [: i; g4 X& p7 J# }
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))$ @. f% r: r' Y5 {& x
- (progn( M2 i$ H1 V" T( J! _; v/ }
- ;; Convert the user scale to the proper word
; ?# ^- U9 b9 s# `, {! L0 Z! m - (setq n (cdr (assoc 72 en)))3 u" @ T z! t( s& K% }
- (setq temp (getvar "LUNITS"))# g4 y3 p# V& m5 I
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))* j6 t7 l l: L# S
- (if (= n 1) (setq userscale "Millimeter"))
( H5 m- l+ h- P6 y; p# e - (if (= n 2) (setq userscale "Centimeter"))
* F% O* v G2 {7 ~6 R6 y' m1 Y - (if (= n 3) (setq userscale "Meter"))
& N4 ^' n D" R: E$ |+ t+ ] - (if (= n 4) (setq userscale "Kilometer"))
9 m/ x# ?7 q7 H- R - (if (= n 5) (setq userscale "Inch"))
& t' e" I9 k6 Z - (if (= n 6) (setq userscale "Foot")) U$ @" v, D* n, K
- (if (= n 7) (setq userscale "Yard"))
- h& f) Q) M; t I8 c: f1 _( u - (if (= n 8) (setq userscale "Mile"))
0 _8 y- F! C+ y Z6 O* t - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))7 _/ s0 j# a6 s1 d: R* i
- ) J) U+ r- ]2 _8 h
- )
7 P( Y$ s$ X" V4 U: m3 ]/ \7 c - )
; G& J4 g# A$ F( [+ J4 o6 T - / M0 p' G$ Z3 y6 c
- ;;
2 }( U0 o% t/ }5 N% i, H - ;; Scale factors for block insertions
" y% A! {- b' {7 G$ m6 Q, b4 e( X - ;;* J; ~3 p6 V4 E# K4 C
- (defun image_set_tile_scale (/ temp)7 \; N' |4 U( r, \; N- b0 {3 U
- (setq temp (getvar "LUNITS"))3 D7 t6 P. }: _8 T6 f
- (setvar "LUNITS" 2)
+ @6 z! q! ?7 ]8 z0 G& k. U8 p - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
! t3 t6 j( m1 a# [2 y - (set_tile "wid" (ai_rtos (* image:width image:mult)))
( {# ^% g s* _) B2 L% r) |6 f2 v5 t) p - (set_tile "hght" (ai_rtos (* image:height image:mult)))- X: A3 o2 S) t* X& U1 q
- (setvar "LUNITS" temp)0 n3 X$ A6 I4 q, v" J& o
- )& y; h) c" `2 F
0 h' N l- R: `" Z D6 ?- ;;
5 F3 A1 Z* W8 Q/ W) u/ G; D( w - ;; Set the scale, width and height values appropriately.
5 Q% H! J, l' u# { - ;;
$ p/ S0 m& _: W# V - (defun image_update (field value / orig_value new_value mult)7 l6 d7 u8 `- ~7 C7 }1 \+ R
- (if (= field "xscale")) c9 k/ e5 p0 S) t! [
- (setq orig_value image:scale)
- e8 i$ M/ ^, G* ^7 v - )
+ p# W& h& `3 |* y9 L - (if (= field "wid")+ U( X' R8 |% Y7 d4 Z. u( ]4 W+ Q
- (setq orig_value image:width)! i& |' ^7 P: P: N- H
- )' _4 X4 q1 e: q
- (if (= field "hght")8 s7 d6 ?/ ~/ @* g. t
- (setq orig_value image:height)
: _4 f2 L1 }( y9 Z) v, B - )
# E" h0 `( p" b2 D6 ?" W - (setq new_value (verify_d field value (* image:mult orig_value)))
# y. w1 w* B# a7 y - (if (/= new_value old_value); q7 `# O* x' L
- ;; Make sure the user has entered a sufficiently large value
" G3 J/ R0 _0 l+ S( C2 `' I - (if new_value
* R" y1 p; [5 t3 c5 ?0 m - (progn
( a$ Z0 O. n2 G! ^ - (if (< new_value 1e-8)
4 l( C) l7 n- h8 i% T, H' g: s: S+ M - (setq mult image:mult)
. N8 k0 `' I9 V( ?$ q6 L - (setq mult (/ new_value orig_value)) D5 p& P8 o" Z3 x, }7 ?& b" m2 _8 x
- )& D7 N5 x& _. L# Y5 s
- (setq image:mult mult)) d+ B& q3 b" b" Q* j
- (image_set_tile_scale). q% i& h* |& F+ b% L$ }
- )
6 U" n. ~9 P8 X- a* q - )
/ u9 c* u! P9 z6 Q) ^3 ]2 ?/ |3 U - )& T9 I- D; R0 R
- )
' r; G3 ?* N% T8 }8 L; b; t7 B
9 r! D* T9 P; q6 P- (defun image_disp_opt (bit)
$ T$ Z5 r" i& e- E+ J9 t1 R - (setq image:options (Boole 6 image:options bit)): s3 {/ c: M4 ~* y2 @# {9 F
- )
/ e" f3 v" Q9 i& u) I" Y4 f
* r/ Z0 c( F: }4 h$ r2 R- (defun image_modify ()
8 [2 }! B% i S3 a* S- G - (modify_properties)% u0 }! z* w5 ~2 F
- (setq pt1 (list x1 y1 z1))# U! X. ]7 m7 x3 M: t
- (tempmod pt1 10 0)
. `2 O2 c6 a3 A3 N" U/ M - (entmod elist)/ G$ }0 ?4 s4 ?" }. Y b
- )
& E* o# Q+ J& }/ D- w - 6 m, C0 H/ x- Z; ]8 f% L
- (defun image_clean_variables ()3 S: X4 p+ x4 Y& a; T6 y- O
- ;; Clean up global variables used here0 s: m$ ]% w, L/ X
- (setq image:scale nil)
9 W. o4 f( ]7 x" @# U$ o - (setq image:angle nil)$ c* b7 e( J. X/ _8 `4 \
- (setq image:width nil)
. S' { G+ Y& W6 v - (setq image:height nil)
+ O0 I/ g7 T& b8 _# @& p# C - (setq image:options nil)' V3 V! d4 M- @ J2 T' z
- (setq image:oname nil)
& p- A0 [3 l( I1 }, y4 ?: ?9 D- Z T - (setq image:olist nil)1 b5 E5 O5 Q2 v
- (setq image:mult nil)
: i' D9 z S9 o k; _" W7 k - (setq st_ang nil)1 s; s: c# h4 B. V: ?( ~
- )
! R, l& f# P6 p8 Y4 z, E
3 b- e K1 ^* C) s* V- (defun image_scale_vector (v1 value)
. t u9 P: D+ T* L4 o - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
" ?, o* [/ W1 D# Q; [! m5 D5 w5 Y - ); V" L4 B! z9 R; v2 W
- . b4 I# M! ^/ J( C! I
- (defun image_cross_product (v1 v2 / vx vy vz); `5 g" Z/ `' l( Y6 e' T# L! L/ |
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
7 G1 s6 Q" D: @) | - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))- |8 l, O( Q6 X9 V1 F \: y
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))- ]: q1 l" U- {5 K% z+ o
- (list vx vy vz)* H/ ~4 k- c4 H9 N
- )
" d! W0 x4 X% }7 ]1 g - ; x, c7 {+ a3 i/ u! [8 p% s1 }( h
- (defun image_dot_product (v1 v2)
7 Y1 U: d; m7 o- u - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2))); B' G) l! `; A+ Q) o7 O
- )
" r8 Q" f0 c3 y9 d - ) Q3 n5 [) S8 x! C% W7 [% G$ F* P
- (defun image_add_vector (v1 v2)
, z+ n3 x: H# B2 a - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
. S# {5 `$ D" X# n) U - )- A6 z) y' u! c: L# }+ a
- 8 G- R5 g+ a8 Z' u0 a% V
- (defun image_subtract_vector (v1 v2)
' a& K8 }: ?& n: B6 E - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))( w! b+ W8 j* K6 @" i
- )
2 j; I6 r3 ~6 f+ d - Y* H9 _- u% b7 T a
- (defun image_normalize_vector (v1)% `1 b& C q! k: r3 E; Y: N' C; u
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))- _- F# d& R3 z6 M5 M( ]4 T
- )
% L0 m( x) X* u) E8 v. X' T8 n
8 R5 K5 E' J r! S. X- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)1 e- `2 V7 [1 K
- ;; Normalize the axis+ R4 }# k7 b. n+ F7 q' E
- (setq axis (image_normalize_vector axis))
& m% k! g7 x \- {! c, c - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
! C5 e+ f$ m7 I7 [* r2 s& } - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
8 z$ |1 a" H% R& r' `7 [ - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane)): L6 P( g# ^7 g* {; L S& z
- (setq in_rot_plane4 I1 E: \' k+ K+ M; d& j/ Q
- (image_add_vector
# `, c e; o) Z; I* h- c6 m( N% e - (image_scale_vector axis_x_in_rot_plane (cos angle))
% }2 H" X) J. b4 P; ?* v - (image_scale_vector axis_y_in_rot_plane (sin angle))
! e+ d2 M: q6 y* Y% d( f/ ^+ ?% z* @ - )
2 N- O6 }6 d$ i# y( _8 Z1 I% s - )
' M( P' D, O, k8 p1 A) T - (image_add_vector along_axis in_rot_plane)" X: z9 V5 J, g& \+ u& X8 C
- ): o9 z& P7 h/ o4 e( x( b# C
; ~. u: T5 m6 q- ;;& Y, Q' V! S) ?
- ;; Calculate current rotation angle if appropriate.- J) Z9 i5 z8 a$ u& m: N
- ;; If not, grey out the rotation field.5 z# H# a3 l5 X; u
- ;;1 m# M- @) _8 X4 J
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
! _7 x" Z# ]% s - ;; Determine if image normal is codirectional with
2 M5 I& _# ?" } - ;; the current UCS Z-vector.) M1 q4 X( o# \- C3 H
- ;;; p/ n+ m* A# G P9 E
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1)), p% J- z; ]+ ^; S0 p2 u+ D" v
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
9 a8 j/ R' }- [7 s& ]9 _ - (setq zlength (* (last normal) (last normal)))
. w! r* i4 @; Q# {) H - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
! W% [/ J5 F _2 a - ;;. T. ~4 S: Y$ p: f3 U. V
- ;; cos(.0001)^2
+ X; s3 ~& a' z* M. M; f - ;; Tolerance = --------------
4 T5 y4 P& q' z+ z8 D# L - ;; sin(.0001)^2
# H* A& T2 v& ?: B; V - ;;
' \6 B1 y1 s1 |; u2 H - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))7 U. l. ?. }! | E0 R) ^
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))5 d. L2 Q& O& _0 h7 {
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1))): h6 r, T. P& v+ q: G& j. h
- (progn2 c* c# t7 K. ~: ^& e k
- (mode_tile "st_ang" 1)
% t1 M( |1 ]% o8 g - (setq image:angle 0)/ d2 O4 P- e- j( V
- )
. h9 O& w) f+ J1 m - )9 y$ Y3 U0 [' {; W2 T
- )% v; _9 M# b. `, C
, G- [' q6 B0 q+ _! X8 A# K% F- ;;
, E/ c& o3 R4 o9 C2 h3 F - ;; Modify Image# ~4 |$ c( K# s. P0 l; |7 Q: a# j A
- ;;
* O, F9 ~. c8 I8 S, Y - (defun modify_image (/ u_vector v_vector z_vector)
4 v8 Y' R* s1 X* ~( w# K2 y& G# [ - (modify_properties)- [; k7 L: o9 H. Y( i! ^
- (setq pt1 (list x1 y1 z1))/ `4 T+ Q! R y' Q! K
- (tempmod pt1 10 0)
' q" L- h# ]/ [+ m/ g, o) T: v# c - ;; Make display option changes to image& L+ u4 e* l- S w x- F$ }
- (emod image:options 70)" J8 t6 r6 ^# X/ j( o0 D# R' N
- ;; Get the u and v vectors* x- q4 [- A- o. T) N v; ^
- (setq u_vector (cdr (assoc 11 elist)))$ {* p7 y7 ?0 M
- (setq v_vector (cdr (assoc 12 elist)))
% v. [# c! \9 {2 {, p) s
^# ?: W- p9 s7 x- ;; Make scale changes to the vectors
: |; O9 o4 E- a9 N, W& ^% F - (if (/= image:mult 1)
. S; e( m( ? s, e; f0 s - (progn2 B. m9 [4 j& l& ~
- (setq u_vector (image_scale_vector u_vector image:mult))7 T- [, t9 }* b# p
- (setq v_vector (image_scale_vector v_vector image:mult))
+ I9 h) h- Z# m$ n - ): q4 |4 r1 S" [* x
- )+ I3 F& c+ ?5 \ i3 a9 m% o. ~
- ;; Rotate the vectors
. R( N0 }: n; d8 H - (setq st_ang (- st_ang image:angle))! v- [ B2 P- h( N
- (if (/= st_ang 0)7 a7 b: t( M7 U0 s" t
- (progn0 Z: U; ]9 e4 e6 P I2 u
- (setq z_vector
& F+ @. q8 Q6 `2 {3 b% k9 `4 i% v3 P: U - (image_cross_product
; R0 l, M- B4 c2 f; s - (image_normalize_vector u_vector)
: N5 O' e0 g: o1 Q/ }: G - (image_normalize_vector v_vector)
" _9 Q5 b J% |+ k5 I - ). T7 C; u( ?$ W6 [ T) G4 y
- )2 _2 e: ]) i2 e9 O+ Z F
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
: @) b- e- m; d! } - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
$ C" N# v; t; u8 Z: t - )5 ?6 a+ K6 d% v+ X' H
- )
: s9 O: U3 V! A - (emod u_vector 11)0 ?* f! o1 [3 ]
- (emod v_vector 12)
( w+ {0 Q7 r* d# I* I3 [3 { - (entmod elist)
+ ]! S4 D: t4 f% z& y( l, \ - )
& L. X' h7 ?" A
* v6 ~; A+ Q. B- ;;& ~+ E. ~& R( j s1 Q6 [2 k9 f
- ;; Run imageadjust on given entity, working around possible0 W# \& w/ X Q2 ?1 h# f
- ;; re-entrancy problems/ v+ X9 W3 @+ g; m, _& j% f* ^
- ;;
" Y0 E5 w4 F/ v p+ O: o7 d: X - (defun image_adjust (ename)1 B c- `: s/ \1 K# a* p
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded.../ A7 n/ k" q k3 J
- (imageadjust ename)
/ @7 v2 Y N! J0 \+ ^ - )
. D- B: W0 n: B1 v7 l, B - / O; b" M* e% B6 A
- (defun ddimage ()
& E# g% N' a- H8 v/ I& S+ E# J - (if (not (new_dialog "ddimage" dcl_id)) (exit))$ T0 y' A2 a9 B9 P& n* S a
/ b& s' Q6 L( | P; c/ q- ;; Grey out the thickness field.
6 l" F9 s6 V/ `' O. Y- N - (mode_tile "b_thickness" 1)
' I$ r+ l9 k9 l - (mode_tile "eb_thickness" 1)
V, Y( J. i, e, @( D - ' j0 N; z, m6 P" X* x# `0 v" K
- ;; Get the associated def object.
! L) U8 y1 n2 [8 K! ]2 N- Y - (setq image:oname (cdr (assoc 340 elist)))
& p# E- l2 Q) N) I, \8 o# u( w - (setq image:olist (entget image:oname))
4 ^9 j2 h9 { Q/ Z+ r+ }/ n- p - + n" W% H8 B: a M) S0 ?9 G( s
- ;; Set initial tile values* f; K! N! I/ M, [0 c- j, E
- (set_tile_props)6 ^& \# y9 U; m+ _
- (set_tile_handle)% {6 ^* d+ m2 z7 ?. n0 U
- (set_tile_pt1 0): }8 ^9 m2 Z6 t* N, k; A+ j# A
- (setq image:scale (image_scale))
/ m. v( b: l+ w* d$ b" q6 I - (setq st_ang (image_rotation))* |, m3 J9 U% x- V3 Z
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
T( F/ ]; _, d3 D' B0 T - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))1 T2 l) Q- \4 u3 g; U
- (setq image:options (cdr (assoc 70 elist)))
3 _& t' [" M: E F - , G, z2 `5 G0 L7 F0 B
- ;; Record the last multiplier for use in image_update function
# K# b, s, E, M: J$ O3 w - (setq image:mult 1)% ?+ t" N0 b$ U8 u
- 8 J" C7 O9 Y4 Z
- ;; Retrieve the image name' l. x! l! z8 j! E! f6 T- A" J
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))' ]5 [; t5 n) a
- (setq flag 0)0 C! m; A8 w. n9 h: p4 n+ D
- (foreach n fn
4 B5 P8 U$ B0 @: t( |5 u - (if (= flag 1)6 x, \9 V% Z, C) i
- (progn
( J% N. n, T1 y1 j0 Z - ;; Display the image name6 k* m9 t* N- m1 k, ~, E' v
- (set_tile "image_name" (cdr n))- R1 N) y i, D W+ @0 T
- (setq flag 2)6 ?2 K4 e! v! f. S8 W
- )% t X. i6 o' h
- ): _" b: [! I5 {8 a/ _% w- L7 f& }0 \
- (if (= flag 0)
; K i6 I1 r7 @+ Y - (if (equal (cdr n) image:oname) (setq flag 1))
9 @1 ?* G: C. I) y; v( \ - )
( I( i" V! T) [5 V6 a' R, _ - )+ }: t' J/ k r: b$ g: F4 | X
1 Y" h7 e7 v% C( V9 L2 f- (set_tile "image_path" (cdr (assoc 1 image:olist)))+ y, ]0 e6 I2 F# @
- (set_tile "st_ang" (ai_angtos image:angle))0 u% ]# u. P0 A2 X! H$ J
- (image_set_tile_scale)
( A0 ^/ R7 D' u' C( x7 F' |
- ]+ {8 W$ m, _1 ?. X7 X# F. [- ;; Check the appropriate boxes% l7 y, G7 L( _% c
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))9 ~# W3 K7 S& c$ d2 L
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
0 `& T0 p# p0 X! p* X$ N% k; M - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
) n% D4 o# _5 D% o% V - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
2 q$ E5 o9 ~* w6 U& z - " g# l. |; e& l$ n# y7 `" H" n
- ;; Define action for tiles
0 D2 j/ d" c$ K# S - (set_action_tiles)
' {) i: O( W- D' v9 ?9 }: z8 c - (action_tile "xscale" "(image_update \"xscale\" $value)")+ ?) ^3 M' J. U2 f3 H( h
- (action_tile "st_ang" "(ver_ang1 $value)")$ `4 |, L/ W* B6 O
- (action_tile "wid" "(image_update \"wid\" $value)")
4 `) t$ y$ v$ Z$ A - (action_tile "hght" "(image_update \"hght\" $value)")3 Q; j; L- k; L; y
- (action_tile "image_show" "(image_disp_opt 1)")
, F* e9 d- j7 ?! n m' n( y0 u - (action_tile "image_non_ortho" "(image_disp_opt 2)")
+ j4 {/ Y* J3 V$ _) E - (action_tile "image_clipped" "(image_disp_opt 4)")
2 B& l5 L- R5 n/ H2 z - (action_tile "image_transparency" "(image_disp_opt 8)")( H* k+ H U- N- Z" i6 b6 M
- (action_tile "image_adjust" "(done_dialog 4)")
0 X: O" i# f6 ~ - ) ?# _( S, L' q' ]2 o
- (setq dialog-state (start_dialog))6 T6 [- L6 f8 o; Y! M
- (if (= dialog-state 0)
$ J% S B, u. |' \- k: j' S( L - (progn! r. z2 r; S4 ?9 e% S
- (reset)2 T, f2 C# p. t* j3 Y* O/ p: S
- (image_clean_variables)
1 ^4 H9 I+ w* F* S% x- n3 C8 t - )2 F8 l3 @& V8 g$ Q y% \
- )
; W* S' d; F" p. j/ m - (if (= dialog-state 1)
2 t1 ~% Q* T5 q$ o6 P# c* L - (progn
! g3 _% Q% L- {" l& t& } - (modify_image)3 x% ]0 O0 D( A! }! D
- (image_clean_variables)
/ r& D/ [/ j9 g. D0 Z0 i6 a - )7 D/ x8 r$ G' ~& w- c' u, {
- )( H6 W A+ a7 M5 I" H# }2 O5 Q
- (if (= dialog-state 3)
1 e8 M4 `$ M% i- U- m - (progn4 {9 E! F) j! v+ W/ h' H' u
- (modify_image); j+ { w* j9 s: X1 ^& S8 B
- (image_clean_variables)
% b* H! }! b1 i2 }0 ]; } - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))$ R1 f0 K4 {3 W1 O0 h# o& Y. j( ]5 O( ?
- (ver_pt1 0)" p5 o6 s+ W* z2 T3 j! g
- (ddimage)1 X" B: ]6 }% f' P- p( d7 e D: D
- )% j* J! ]/ X! s! I
- )7 ?* q* F- o1 ], L1 ^9 w! p
- (if (= dialog-state 4)
) U( b. x8 C _ - (progn
3 C e8 B3 n7 {' C8 O - (modify_image)
1 Q9 |7 _% V* U0 q4 c - (image_adjust ename)
3 b7 ~* C+ d! h, O- Z - (setq elist (entget ename))
* ? U" w* | |9 u- x - (ddimage)
3 i& g2 W' {$ f- A& L - )$ J* ]. S& v6 y% |7 L
- )
# ] x/ [' P6 F+ Y0 ~2 u/ X% q - )
7 `, u1 c2 l- R. W - 1 B7 v' b; g" D/ Y
- ;;
1 l0 {$ d) i8 E0 ~+ R - ;; Modify BLOCK (and its Attributes, if any)
9 S/ Q% K5 ^# M; Z& V$ [7 ?8 l - ;;
5 t Y/ X" i2 g8 Y - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr# D8 U% M" _4 P w
- new_wid old_wid old_rot scaling old_scale5 N3 y( R( @! L7 i0 L2 z: @
- xdelta ydelta zdelta xbase ybase zbase ipos); m, H8 e9 V: h' p: i
- (modify_properties)
' ~1 i' D( O7 H+ ` - . z6 M% p; y# k5 w0 D& V! f: ^
- ;; First, translate and scale the Attributes, if there are any.) f# J8 {1 Q( s+ U( ?: v+ {
- (setq old_rot (cdr (assoc 50 elist))+ O! n* H7 G, i# p& m
- old_scale (list (cdr (assoc 41 elist))0 x0 C& L6 f+ f
- (cdr (assoc 42 elist))8 t7 p1 `" d9 N- {$ q- K
- (cdr (assoc 43 elist))' \+ l p5 L, w' ~5 Q
- )
% p0 ]& }$ t+ U5 ?5 h$ D - scaling (or (/= xscale (car old_scale))
/ X3 a0 M& H. k8 A" a - (/= yscale (cadr old_scale))
2 \* }; w3 T: i - (/= zscale (caddr old_scale))2 d3 {0 a4 ^# h* {
- )& ~$ [! I9 H( O5 ^9 M; v
- attr nil ; No Attributes modified yet* v- ~# W; Z6 u, L2 p3 ~
- )
/ Q% i; M9 b( U/ ] - (if scaling
$ f A+ ?/ R# Z/ k$ V/ M - (progn+ O. @( c2 h4 U, T5 R' [$ B+ p
- (setq xdelta (/ xscale (car old_scale))
' g8 O3 F+ m* K: k- L/ v - ydelta (/ yscale (cadr old_scale))
1 |3 V' K' X7 I; u$ x0 e - zdelta (/ zscale (caddr old_scale))
, p; ^9 p4 k. }$ E! P, E - ipos (cdr (assoc 10 elist))
. \$ ^8 `& `! Q - xbase (car ipos)
0 Q+ g6 B6 O. x: |9 D1 k& w - ybase (cadr ipos)1 M5 P( H8 W" @) W9 d. k/ ]
- zbase (caddr ipos)
! q e- ^) f( [0 Y - en2 (entnext ename) ; First Attribute
( i3 W! e3 Q, b) Z( r& O - )
I0 w) {9 r& X- g+ q' m5 p - + N9 |: q0 H+ p8 s/ Y6 Y" `& a
- ; If the Block is rotated, temporarily un-rotate it, along, a$ s( d3 @3 J
- ; with all its Attributes, so the scaling/translation of the
2 j* q) y* ^8 e4 a$ ^1 C* O, K& a; H - ; Attributes won't have to take the Block rotation into account.( u: Q$ C# e: f0 v# [. m; G9 \
- (if (/= old_rot 0.0)
( V; H! j1 Z, H( y5 D - (progn8 m6 \. k/ Q1 n1 L% @7 \
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
, w* v: b5 Z5 g4 B* _ - (setq old_rot 0.01 v3 A" z0 ?1 {* \. W
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)
3 R V9 c# ^- n! p# H1 ` - )
. f. {4 e2 [6 Z$ D* n - )
( _. K* N: V6 R; }9 I- F5 C - )
$ d" T8 }% n0 H ]9 Q5 l+ Y8 n! T - 1 D; V0 F( o8 u/ S
- (while en2
# ~+ i; t. C4 U1 _ - (setq el (entget en2))3 Q7 J- q3 w4 t7 B. b+ J& I
- (if (= (cdr (assoc 0 el)) "ATTRIB")2 \3 {& h6 w! c; U; a
- (progn, r9 O* d" S- x/ K6 d5 |
- (setq old_hgt (cdr (assoc 40 el)) ; Height& o @: o0 a( l$ q+ Z; U# m+ d
- old_wid (cdr (assoc 41 el)) ; Width-factor* k W( }) A2 r7 w2 O9 m/ m
- oldp1 (cdr (assoc 10 el)) ; Generation start point+ l" ?/ I. f5 t0 v: Q* j8 @+ h
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt) B* |5 V }5 e- i4 a2 B
- ha (cdr (assoc 72 el)) ; Horizontal alignment
6 z; Z/ J* R5 d: d2 v# q4 v, @ - va (cdr (assoc 74 el)) ; Vertical alignment
- x6 y: Z4 E" W
+ k0 j4 |+ `6 o: ~1 L- ; Translate gen. start point
9 o) b, {0 N1 x* M# n - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase))) q' R2 q: q+ Y4 t
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))5 k5 c% b A: ]8 S) @
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))5 _" J; u& K8 \
- )
3 ~2 c& B' x7 c3 a! ? - el (subst (cons 10 p1) (assoc 10 el) el)' R- f$ D& n4 \' ~. P! F" u
- )
) F0 {8 m3 y$ p( F' n
9 o! ^) T3 C. p/ l) A7 P- ; Translate alignment pt similarly, if present and applicable" l& q0 {$ z8 u, l7 `( ~* k
- (if (and oldp2 (or (/= ha 0)
$ X V9 L. L/ ?% v - (/= va 0)
0 `/ j# i$ o6 l) T$ K' `: V& ~& _6 ` - )( I; `! d! q- W& o$ w! {' r0 C
- )
. U5 f; k* y! e8 n6 d* U- e% l - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase))); U% a- B! `- e1 `/ I0 D
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))
# ~$ y* x0 w" L8 j5 m" A - (+ zbase (* zdelta (- (caddr oldp2) zbase))), M: S0 I; f4 {3 r: q, k
- )" g$ q4 \0 }. q5 h/ i( H
- el (subst (cons 11 p2) (assoc 11 el) el)
. f( W5 k' @/ @$ P* B- H - )1 a6 V8 L, j8 p3 c6 c% ` E
- )2 k* {/ v p2 q
- 6 e9 v# Z2 i" p0 ]
- ; Each Attribute's height and width-factor were computed: M/ {' f! F; V+ ] n- C
- ; based on the Block's scale factors. Adjust them now,
\( T) M v6 M; r/ l9 D! j - ; by first reducing to values for 1x1 scale...
2 [! j( C( J8 E& L4 S6 Q - (setq new_hgt (/ old_hgt (cadr old_scale)), U! H$ w/ \0 j6 g* Q
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
1 I3 q6 U0 G% t! j, U% P& i) s - )
; P6 x2 T! L; F0 t4 t - ; ...and then rescaling.* D1 S5 K6 t. }- |
- (setq new_hgt (* new_hgt yscale)6 [& w, O: Q. @
- new_wid (* new_wid (/ xscale yscale))% C& ]1 n; ?; J0 X
- )
S% \0 @& _# y# U% a - (if (/= new_hgt old_hgt)/ B+ X- B) w0 q$ }( b# F
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
6 q3 {( Q* Y3 Y- y$ B9 c. { - )/ L5 _) b5 r# v: s" ]
- (if (/= new_wid old_wid)4 i: b$ q1 e/ z( N
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
8 [# B- q! w8 d- B" o/ W - )
" N/ ~$ G. |4 m - (entmod el)
6 q$ o. \, ~. @& { - (setq attr T ; At least one Attribute modified1 t: P* e, y# q6 c, U6 h* g9 [1 w
- en2 (entnext en2) ; Next Attribute1 A& z5 V W( J4 X2 _9 Q
- )
; {5 J8 M( l+ `# p - )
3 Y8 M% _2 I" e- Y& P - (setq en2 nil) ; No more attributes7 g1 N4 E- H$ A$ R; A
- )
: p/ @1 i! @0 H$ }/ _ a0 j - )& h7 M4 G$ a( T! Q
- )) l( ]6 S/ g. \: R7 y4 s
- )! ^7 N% N1 |8 j4 A" c/ T
I, u. p" ~- P- (setq pt1 (list x1 y1 z1))9 V7 ]) L3 K; S$ j$ R* C
- (tempmod xscale 41 nil)1 H2 i5 I3 |1 f- d Y7 n
- (tempmod yscale 42 nil)4 N5 T W$ s- V9 t6 {) k, W& E
- (tempmod zscale 43 nil)
- E5 p4 B z J S - (tempmod col-sp 44 nil)$ U) I6 h8 z7 M. C H8 X7 Q
- (tempmod row-sp 45 nil). s- S; {6 v/ p, f2 s) ]; G
- (tempmod columns 70 nil)' A) X1 I/ [+ h) |6 ?! ?
- (tempmod rows 71 nil)3 g- X% L5 S! M L, n
- (if (= xclipmode nil)/ W9 A+ f) N& m. f4 o+ L+ ^7 y
- (entmod elist)2 ]2 q- f% s" J6 E1 a3 `9 o+ Y
- (setq xclipmode nil)
7 c* d2 r, `: q# Q- F5 G - )/ S" }1 m% z7 X5 K6 M. d0 K
- (move_pt1 1), O3 t- N$ c E# b
3 l, K4 I( q& e- ;; Now do the rotation with the ROTATE command.
; q% E+ c' z" q - (if (/= old_rot rot)5 Y4 j g2 j6 e7 n }( N
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
% C8 r; z% E) ?) {: @ - (if attr ; Else, if attributes were modified,2 b" I) O+ ]- b) L
- (entupd ename) ; just regen to force attrib display: ?3 w6 z9 C2 K# f1 X
- )+ Z! s$ D8 y2 V* p
- )
2 u5 ] L& H9 f/ u* F0 _0 p9 C# \2 f - (setq elist (entget ename))5 R# t/ T* ]% r8 D2 C- y. S5 }( U
- )
( g; \5 B# Q1 r% `! E( f3 h - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
9 j5 a4 |6 S5 F. F2 x( t8 o$ p - (setq newhatch 0)
# d+ c$ q+ V9 s# }( b4 R - (setq blkname (cdr (assoc 2 elist)))+ V1 _+ r4 D. W1 v! p. _8 W
- (setq blklist (tblsearch "block" blkname))8 X _2 @; C' ~" L" J
- (setq blktype (cdr (assoc 70 blklist)))
' X6 J% A1 O c' D4 @6 o0 e/ l1 | - (setq xcliponoff 0)0 T! h& ], F: o6 [9 N0 U4 Z8 p
- (if (or (= blktype 0)(= blktype 36)): b, v( U* A4 p( O+ E: j1 I4 d- _! X
- (progn! j0 z$ t5 ]# h9 P2 K0 M
- (setq xcliponoff (xclipon elist))" t3 T6 F) P5 t; Q" _" ]+ X y
- (setq temp_xclip xcliponoff)
8 y! K, X9 B2 D' F' T2 V - )7 w) g) H! A5 ?1 L% p
- )+ t) Z& E6 F( k# G f1 p
- (if (= (logand blktype 4) 4)
6 L; [0 d1 t6 m! g+ S - (progn3 y3 I. c! M6 i H& R4 p9 q
- (setq xrefpath (cdr (assoc 1 blklist)))" c- d. ]+ O( v& E
- (setq help_entry "modify_External_Reference_dialog")# g; D0 _. R4 u; r' }
- (if (not (new_dialog "ddxref" dcl_id)) (exit))$ I9 B8 ]3 {( U9 y D
- (set_tile "Bl_name" blkname) ]6 L3 T' ^7 [( c; [
- (set_tile "path" xrefpath)
U6 T3 O3 G0 ^& Q - )0 v8 j0 ^+ p M
- (progn7 K: `: Z {4 U1 s9 ?, W- d3 g
- ;; Get program name for use as Xdata app name# h, a* _6 M$ O5 g5 C' L* F
- (if (not (setq program (getvar "program")))
7 ^3 d6 n! `3 M8 ?9 l, u - (setq program "acad")
- K8 U4 @/ [& H" E - )$ w; P( r& S+ x* |+ A
- (if (and (setq temp (assoc -3 (entget ename (list program))))4 `9 u- q8 K& F2 G, q
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
3 D: z0 d4 K7 S. d4 x4 Y Z- L! t - (assoc 1005 (cdadr temp))
2 n! _( ?1 ~& j - )% @: P, }6 r7 u9 \
- (progn
* P5 M& f+ K) m+ A2 U: y - (setq newhatch 1)% A$ F( a& y- y" E! M
- (setq help_entry "modify_Hatch_dialog")
$ h7 @% h) w$ Q$ ]/ L - ;;; convert the object into a new hatch
) G0 R6 g7 {3 q8 `* [ - (ai_undo_on) ;; enable undo5 t9 x d9 x8 U) f7 f3 ]2 W" ~
- (COMMAND "_.UNDO" "_Mark")
x0 g& f+ p: N. m: P9 C, G - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")7 u; F/ ]9 q, u5 ~
- ;;; suppress nasty message from convert command
& J H6 R( q R - (princ "\r \r")
% I' M2 S' M6 X. R6 }) s - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))3 c3 I, o. [. u; C! ]3 A. k
- (setq old-elist elist)
3 P8 ]4 b) `8 k8 _# F4 `+ \ - ;;; If we have cancelled ddmodify
1 u4 h" k* |7 T' X" M- S - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
; G( c1 O' S+ Y# F' H& y# A* J - (command "_.UNDO" "_Back")
* i3 B. D% J$ ?( X" _( L - )& M2 K4 W7 X2 P, p# H# c
- (ai_undo_off) ;; restore undo state0 d( ]1 `, |. u4 O! d
- )
+ T! s4 P; C6 E# @1 [% V - (progn: [5 x8 z1 i# ?7 h
- (if (not (new_dialog "ddblock" dcl_id)) (exit))
9 l ^: E4 f" y - (if ( = "*" (substr blkname 1 1))$ L. x; g9 c, x0 S
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))! D2 H6 ]) p6 V: P. ]
- (set_tile "Bl_name" blkname)/ j! S7 D2 }/ w* ]% m: I; `
- )7 j; f# {# R5 }+ W2 {9 \
- (setq help_entry "modify_Block_Insertion_dialog")
' f: `2 X/ k X8 i9 m - )5 S2 Q6 P3 W6 {+ D$ w$ P! @& [
- )
* g! x9 O% ]. I' U/ p( t4 z - )' n5 a: I6 @ x
- )
, `# ?6 J O( z - (if (= newhatch 0)
- m2 V1 X0 Y/ X; ]/ r - (progn( M, ~: L5 o o2 N
- (set_tile_props)+ R0 ] Z) _3 d# O" S
- (set_tile_handle)
! ^' r$ d2 j9 f) g& k1 p3 x- C+ J1 P - (set_tile_pt1 1). w( h8 n4 e4 P3 I
- (set_tile_rot)
4 O; x% N! W6 h" @ - (set_tile_scale)( F: z5 ?3 f, q/ M
- (set_tile_rc)
* H) F( \% t; P - (if (= (logand blktype 1) 1)
7 Z7 X- V! O1 p, w, h8 w7 e4 G - (progn4 q& k) J9 ?3 M1 p
- (mode_tile "xscale" 1)
( d1 @% }$ t% I8 b& F/ ^ g - (mode_tile "yscale" 1)
, j: X; {8 R: Q! j; n8 k - (mode_tile "zscale" 1)
; }+ C6 K5 C2 c3 R1 ? - (mode_tile "rot" 1)
u& i) t% ]8 x' p - (mode_tile "columns" 1)5 I# R5 {% }8 p0 m: X
- (mode_tile "rows" 1)- ?6 E) x9 e& P, z+ P. f
- (mode_tile "col_sp" 1)7 ~& k# ~' o1 ~& S4 \$ Y
- (mode_tile "row_sp" 1)
) J- b1 w! S1 D2 z7 a - )
) Z/ X* q0 A* k% V$ j7 M. w - )+ @* E( ^% q7 t5 |. h0 H5 [
- ;; Define action for tiles* k- C6 d, n F! |
- (set_action_tiles)
/ R; E* U1 C6 r. d3 s; S5 F - (setq dialog-state (start_dialog))" I; j. x; y% ?* H6 _
- (cond
5 Y& n5 u1 g/ q# b - ( (eq dialog-state 0)/ G% B8 }7 l o- k: t
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
( V F# \7 U4 _. Q. T7 L0 t- `3 S - (move_pt1 1)
0 m7 X y- R8 f9 q6 V7 V - (reset))
+ ]: w( P$ a' O3 T9 t4 M* ^" U - ( (eq dialog-state 1)8 t! f0 l0 K6 ^3 }$ D
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
# q2 {1 o/ a9 I6 b5 j h& y8 F% b% U! H - (xclip)
) Q7 O7 P3 K$ ?/ q# e - )$ O2 H+ H# o% W) }; \9 ^+ `+ h
- (modify_block))
7 ^7 T" g4 K$ {1 _3 l& s9 S4 F6 R v, t - ( (eq dialog-state 3)
: X, E4 W% g1 @/ g5 V# | - (modify_block)5 @% t8 B, T! C
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))' T ]: k6 _3 a3 G
- (move_pt1 1): S- [6 x" F- G; }
- (ddblock))# f' ]4 \# r: B& y
- ( (eq dialog-state 4)% M3 Y' i2 X3 [2 y1 Z* Y
- (modify_block)
* y# e' l* s/ S6 S6 c' j. g0 ?( o3 J2 V - ;; Get current handle.
4 i+ v5 h( Z0 W) h& U4 y0 }4 }' \ - (setq hand (cdr (assoc 5 elist)))& O/ o3 e* y* S) ~6 x
- (command "_hatchedit" ename)
/ z. P* C0 h( P( W - ;; If OK in hatchedit, a *new* entity is created and the old one' L( b: Z+ [. n% [! V ~5 b
- ;; is deleted. So if the old one exists, it must have been a( l) w5 T3 }: b4 M. n9 m
- ;; so rest the entity.2 h& z, I' f8 ]" P# d
- (if (entget (handent hand)) (reset))) P7 X' `3 O" N$ I7 R6 x ^
- )! |5 z( G4 }& k' m4 h/ N2 g+ ]/ N
- )! j" U9 G. p: M) q( g1 j
- )
0 S: h J( v2 d- e/ ^ - )- g8 ^4 |$ X5 v
- )
- N9 V# v3 O5 ~3 n - ;;
7 x) H1 a2 r, Y/ v- R - ;; Modify SHAPE5 n" z0 i( b0 z8 u: {8 V
- ;;+ O; E. p1 |6 v: |( k5 B
- (defun modify_shape ()
) }+ e+ H+ B; u( j - (modify_properties)! y& T' b8 C: ^/ s
- (setq pt1 (list x1 y1 z1))
- d1 h! q: j% h3 g! F. l5 |1 R; Z: P - (tempmod pt1 10 1)
$ n {. x! y# i' T, j - (tempmod hght 40 nil)* X5 U1 C2 ~7 Q% U( p
- (tempmod wid 41 nil) ^* x3 m$ y m, S8 f
- (tempmod rot 50 nil)
k+ N$ q. \" J7 E6 f; {: ], L' h - (tempmod obl 51 nil)
( b4 n/ h5 k* W7 g% |) g: {; w - (entmod elist)
" h: R* _ E1 K* L5 F - )
5 a7 A4 s* r" l+ _
1 m2 j2 d+ h1 u$ Y- (defun ddshape ()" |2 M4 R) @* ^, S% S$ p
- (if (not (new_dialog "ddshape" dcl_id)) (exit))+ H& W" P* s: J$ A/ }4 d1 O I
- (set_tile_props)
l7 H/ x9 ^% d9 v - (set_tile_handle)+ ^6 c9 l ^3 ]" n; d
- (set_tile_pt1 1)
2 n, v( z0 ?& W3 f U - (set_tile_rot)
0 C' s' d& v6 L5 O" Y0 a, {. C - (set_tile_hght)
B: G, |, G0 v9 ^% v - (set_tile_wid)
Q, O* L; G' P. x8 Z& r, K& m - (set_tile_obl): z6 d: h2 T- W( d- K- e2 \
- (set_tile "sh_name" (cdr (assoc 2 elist)))
7 H: M4 P4 |. a' V! y' n - ;; Define action for tiles# ]/ [9 {& U+ J. `" l5 e, k- c m
- (set_action_tiles)
1 [; O9 e& L& i - (setq dialog-state (start_dialog))- F6 S- e* c2 D2 v9 E7 B# K6 C
- (if (= dialog-state 0)
1 m) E. X5 Y4 c0 B* L8 J; s - (reset)
: H0 W5 T% H5 w4 W& h; @ G! h7 K! ] - )
3 c( q) s1 l& l - (if (= dialog-state 1)
+ f5 }; q+ E, e3 G1 A/ G Z - (modify_shape)
* ^8 X# n4 V) @ - )8 g3 g& C7 @( t: O' h: n6 o
- (if (= dialog-state 3)6 n v3 V4 ?' _" |" f
- (progn# `& A6 Y" S+ [, k7 u, |
- (modify_shape)
2 o9 Y* v- z s4 G9 g6 u - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))6 R- g+ A3 W2 E
- (ver_pt1 1)
y0 @( r( n A0 w1 Z# G! x4 S5 J& } - (ddshape)
9 z! w2 ?: m" V; k - ). B$ ~' j/ d+ }/ N+ T
- )
& ?* d- V1 }# M0 N7 t" U - )+ Y, g. C4 {- q- w
- ;;
* o L2 I$ _ y - ;; Modify TEXT or ATTDEF
- y! U' k2 }# [# N# U* O - ;;5 {% Z0 F; {4 R7 Q+ Y I6 m) d; X+ ?
- ;; Set bit code for upside-down and backwards setting3 o; ~/ Q3 f2 Z' i- M1 I ? h! X1 b
- ;;
% Z- M; \6 o8 S! K% _7 L1 \8 z - (defun code_71 ()1 @9 f/ ~# D; p# H2 t9 S
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
3 R3 n; S: n% h! _4 V* u/ _ - ((and (= bkwd "1") (= upsd "0")) 2)% ]+ r* z6 G. J1 z0 b! M( U
- ((and (= bkwd "0") (= upsd "1")) 4)
6 Y( F5 m+ Y$ M r& H. z - ((and (= bkwd "1") (= upsd "1")) 6)
2 e! U7 O4 v! c4 F4 z - )$ P4 i/ ^6 m1 }. a/ e4 r) n }, D
- )
# [8 n! _, T$ }2 d% n) _; Z' c/ f6 c - ;;! V6 B, o1 K, H S0 ^( q1 L
- ;; Style action. Reset widget values to style defaults
$ R5 z6 E% Z' h: t7 U - ;;
5 s+ `' ?) x6 f: u, n4 W- g# X5 M: b - (defun style_act (index / style-list)9 N. X1 o3 t* d( ]
- (setq style-idx (atoi index)). s5 ^4 ~9 I* i* j! K
- (setq tstyle (nth style-idx slist))
. @$ l: ^$ r- s% p* K* l* a - (setq style-idx (itoa style-idx))
/ N1 U2 C9 A" {6 Y1 x' { - (set_tile "style" style-idx)
# Y' V, S9 U+ R. Y% ~ - (setq style-list (tblsearch "style" tstyle))& c$ u5 \! {4 J [, |, o) E
- (setq shght (cdr (assoc 40 style-list)))
+ Q) N2 N7 R, Z' i; i - (if (/= shght 0)
8 |# J$ j) L% ?2 ` - (progn- A# s$ G7 @- H7 [5 Y
- (setq hght shght)
% F" P! q/ M, r2 T2 C - (set_tile "hght" (ai_rtos hght))
. h' J- q3 |0 ` - )* C1 G! K8 j3 C: F
- ), `7 k9 f0 o0 D: Z$ x# d
- (setq wid (cdr (assoc 41 style-list)))
+ a- p1 |( Y& W - (set_tile "wid" (ai_rtos wid))
7 S( X3 ?; ~, q: x - (setq obl (cdr (assoc 50 style-list)))7 o2 e( [1 @ I& N% b+ P
- (set_tile "obl" (ai_angtos obl))
: T1 h; V$ |' k" I7 y c, @' n4 e% Y - (setq bk-up (cdr (assoc 71 style-list)))
& g7 [" ]3 F- e0 | - (if (= (logand bk-up 2) 2)
0 _1 v/ H0 R4 z0 h% J1 D/ q) Z - (set_tile "bkwd" (itoa (setq bkwd 1)))2 A1 Q+ T; Q# W; p
- (set_tile "bkwd" (itoa (setq bkwd 0)))
: ^: C2 `) {0 k9 X; G6 i - )# Y5 d n0 k7 r; h
- (if (= (logand bk-up 4) 4)
N+ m1 r, `6 l4 Z3 E, z8 s - (set_tile "upsd" (itoa (setq upsd 1)))
# ^- I* m k; U% o' ~3 K - (set_tile "upsd" (itoa (setq upsd 0))). q" @7 A' J! K
- )
# Y. H5 l# f- Q, @6 Q - )& t* Q9 i P8 i- @( K
- ;;- d9 \ f9 o' u
- ;; Justification action. Set vertical and horizontal alignment variables,; H3 X6 `" Q/ Y2 Y
- ;; grey out rotation and height if alignment = "aligned", grey out rotation7 ~ n9 q& E# v6 r
- ;; if alignment = "fit".
+ Z. R2 g0 W3 Y2 H2 h. X! s - ;;$ c9 h' \6 k1 y' f% {( `! w
- (defun jlist_act (index / templist)
; C4 x4 M- \( J) k+ }5 C - (setq just-idx (atoi index))
+ Q% S3 t1 l8 Y/ i5 V- S" G" D - (cond! m$ A0 J" M4 l8 ?8 o- F# N
- ((= just-idx 0) (setq va 0 ha 0))% U& k& q* s8 O' V$ g* [
- ((= just-idx 1) (setq va 0 ha 1))* K7 b$ U+ _" z
- ((= just-idx 2) (setq va 0 ha 2))
: F4 ?! T5 |% r- L' h - ((= just-idx 3) (setq va 0 ha 3))
+ Z$ p4 v- x7 U% ] {8 A) R& } - ((= just-idx 4) (setq va 0 ha 4))2 J1 L" t. E$ z" b" v. u
- ((= just-idx 5) (setq va 0 ha 5))
! ?. w$ {; H/ ] - ((= just-idx 6) (setq va 3 ha 0))
9 B& D# _& j: I - ((= just-idx 7) (setq va 3 ha 1))
D, r. N8 J: U) H) N3 U9 f! a - ((= just-idx 8) (setq va 3 ha 2))% x- J9 h- ^& v. ?
- ((= just-idx 9) (setq va 2 ha 0))4 E& s( O$ L5 z: @% G
- ((= just-idx 10) (setq va 2 ha 1))
) J0 ^% G4 T, t: g2 F7 v - ((= just-idx 11) (setq va 2 ha 2))5 Z8 Q( G; C. ~$ I6 J! K
- ((= just-idx 12) (setq va 1 ha 0))
$ C7 `) M$ m) w2 C( S2 P8 e - ((= just-idx 13) (setq va 1 ha 1))/ ^' D( {6 j' Q/ ~' X
- ((= just-idx 14) (setq va 1 ha 2))
5 R2 e; ]2 z$ _1 F2 Q) x - )
: J4 p( u* E5 C; n% C - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
8 [" Y6 c3 z- Y5 y - (mode_tile "rot" 1)
6 z- @& R" q0 G" T* D+ V, y - (mode_tile "rot" 0)7 U( L. b# J! P( |4 r
- )" k- F/ K+ S4 p8 w, n, E3 }( Y: S
- (if (= ha 3) ; If Aligned text
" W4 L! L) N6 ? w4 {. O - (mode_tile "hght" 1)
: a4 c) e' S" x% ` - (mode_tile "hght" 0)
0 j& P( |) K+ Z! W5 L. } - )% o! M$ Z. S: o' G
- (if (= ha 5) ; If Fit text
2 E% |. J# F( w0 a! c) R- _- v; } - (mode_tile "wid" 1)0 @, [3 t& x3 y5 v, I* c/ P/ Q
- (mode_tile "wid" 0)" O' @+ F+ s# D+ N4 O6 l' ]0 s/ W
- )! J3 T6 x7 a; S0 s
- ;; Reset rotation and height if changing from aligned.' S4 t( d* m' Z
- (if (and (= ha-prev 3) (/= ha 3))4 K1 d" p, L* r# c6 d+ C+ z
- (progn+ E f# b% B( z
- (set_tile "rot" (ai_angtos (setq rot 0.0))); U9 C) y0 a5 W/ }
- (set_tile "hght" (ai_rtos (setq hght 1.0)))( I3 T4 \* {0 A- F
- )
p" o% |9 y) E( {( |7 ] - )
6 E2 G. i$ N( w5 E+ [ - ' ] F+ G' K3 C3 D9 d# ~
- ;; Reset rotation and width if changing from fit.3 c9 O+ `8 x( Q% N# d1 I
- (if (and (= ha-prev 5) (/= ha 5)); F! V) N( z' v9 P) F7 G* n
- (progn% l5 n* \* b0 B$ c" {' \
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
# F6 ?8 v2 K+ @0 @+ r: G" y9 |6 t - (set_tile "wid" (ai_rtos (setq wid 1.0)))/ G5 F* U( \% `& r# S# P4 w7 ^
- )( N9 U0 Y0 f3 l1 G. u8 Z
- )1 D& b, j% v; y* x) F+ [! r2 `( O7 \
- * q) I4 ?, b7 i, Y- I/ {
- (setq ha-prev ha) ; update ha-prev for next time
; [/ X/ ]) [4 _$ e6 z. D - (setq just-idx (itoa just-idx))* M8 o$ e7 @+ c7 @
- )- u) |( V. ^; M
- ;;, @8 `; }7 a. Q2 h
- ;; Set intitial alignment setting based on vertical and horizontal alignment
5 V D9 @5 ?2 L0 H+ g# U _ - ;; bit codes.
; i! V4 ]7 j( I5 a+ J5 h/ _& ? - ;;6 F" A/ C- M, `
- (defun set_just_idx ()
9 u' X7 Z" y2 I0 S - (cond
$ G1 M6 ^) f$ Y Z' @$ ]1 ~/ M - ((= ha 0) ; Horiz alignment = Left
$ \/ Y+ f# G$ z% e. P - (cond
$ w+ f# s' n+ i$ V' ? - ((= va 0) (setq just-idx "0"))
( W$ e9 D# L% F - ((= va 1) (setq just-idx "12"))# ?$ H- ?. I# y8 c
- ((= va 2) (setq just-idx "9")). k! T8 {! O4 n! W
- ((= va 3) (setq just-idx "6"))( h# p. Z3 p; l; z
- )
4 m3 o& R9 i8 C1 p. m$ F: h7 S - )
* {4 H* @' n+ a - ((= ha 1) ; Horiz alignment = Center
. G5 S6 R% U: _3 P0 O0 Y8 n - (cond
" h: }- B2 c) q7 t5 o - ((= va 0) (setq just-idx "1"))$ W' U7 J* p7 s2 B. H' {, [6 _
- ((= va 1) (setq just-idx "13"))9 L4 A; X5 `- l$ a0 `( v1 m
- ((= va 2) (setq just-idx "10"))
/ h$ c; e! p2 O: a* T - ((= va 3) (setq just-idx "7"))' k% J% I( y. e1 Y. n9 I$ P. b% G
- )
! r ~0 ~: L- E! u0 y - )
, S* P- `; E5 O! ^1 i - ((= ha 2) ; Horiz alignment = Right
9 d" F% S) B; t - (cond
2 o, d$ [ V/ _7 ]8 t2 l4 d6 F, F& u - ((= va 0) (setq just-idx "2"))! i# I, X# n, F6 n% [
- ((= va 1) (setq just-idx "14"))- k# p. t8 ?" F( d) H4 O9 g# V: u
- ((= va 2) (setq just-idx "11"))
! h9 S; p! h# x6 y7 Q$ |" n - ((= va 3) (setq just-idx "8"))3 h& V' L! r% W1 I8 X- w' ~
- )
; X( ]3 k8 z1 ~2 G Z - )
9 w; a, f, ], u - ((= ha 3) (setq just-idx "3")) ; Aligned* d# y* ?' }& S1 X2 Q
- ((= ha 4) (setq just-idx "4")) ; Middle
$ o/ z. M. K6 T' l+ i - ((= ha 5) (setq just-idx "5")) ; Fit6 p8 Q! M: o/ a" }- f- y( B5 x
- (T (setq just-idx "0"))
' p' n: L5 p2 a, r0 G - )
( V. }* |& j& Y5 n& ~/ N7 A - just-idx" W+ g! N; X! D
- )
; y9 G7 H( ~* ^ ^2 t
6 \3 i+ L% N+ [, t5 I" o( l- (defun modify_text ()
( B; U, _7 y. @6 Y7 l - ;; insertion point6 K- |; k9 q: ]8 Y3 F
- (setq showpt (list x1 y1 z1))
2 Q- L1 R8 G, G9 g# n - (setq bit-10 (trans showpt 1 ename))( b7 X9 @3 p1 h6 K% x4 E0 V: i2 @' F
- ;; alignment point9 K; P. \: @4 o
- ;; for 'Aligned' or 'Fit', alignment point must be different
# d4 S) F' D, W - ;; for all others, use insertion point
' Z4 ?% o a8 u* a/ G7 | - ;; (ACAD will recompute insertion point)
& o) }$ T1 t' { - (if (or (= ha 3) (= ha 5))# z! D+ |% N/ t# g4 V% l3 w7 E
- (progn& l; g" Y' ?$ ^; m! W
- ;; if no alignment point, fabricate one7 V! J- ^1 e( s; t2 L
- (if (not alipt)
: _6 m' b, G- H6 v - ;; add text width to insertion point% o/ v# Y! Z1 ?& X
- (setq alipt
+ N2 y, t s8 I; c$ M# o - (list (+ (car showpt) (car (cadr (textbox elist))))
" l6 u" m0 f5 c# y# t: R7 _ - (cadr showpt)
% t" O" b* p3 K0 {3 v - (caddr showpt)% y# X8 i3 _* b# h
- )
4 Z8 E3 a6 f) o) j: x - )( I# y! f' k9 ~6 z( |* D
- )" f1 L3 h9 W, A/ a! Z% C% L$ i0 B
- (setq bit-11 (trans alipt 1 ename)): I! e- ^6 A, {+ G! L0 B4 L2 S5 L
- )
" B9 L! p- c/ k% G - (setq bit-11 bit-10)/ f5 j$ V/ `2 |. L# G
- )
" V8 Q- z! v3 ?- A0 e - (modify_properties)
( ^) t, k8 q. z - (tempmod tstyle 7 nil)
0 P6 C* O) P& h% k, r: ]3 S. g* \0 O - (tempmod bit-10 10 nil)- Z/ c4 Z+ b& ^- F2 w" L1 @' N
- (tempmod bit-11 11 nil) w% _# `% P9 z3 Z6 z9 F
- (tempmod text 1 nil)
- w, [/ ^ _" n - (tempmod hght 40 nil). Q1 u( \3 }+ X3 G% ~ M
- (tempmod wid 41 nil)
# G0 n8 g% u# U* }: ` - (tempmod rot 50 nil)* i* O5 `5 N$ ?/ X3 y; L( c
- (tempmod obl 51 nil)
( W5 x( o# z) U* C& \ - (setq bk-up (+ (* bkwd 2) (* upsd 4))): J) F+ l5 ~( I0 c8 |! P
- (tempmod bk-up 71 nil)
7 G$ N' {# M" I - (tempmod ha 72 nil)7 |: I- G: b; S* K7 x
- ;; Attdefs use 74, text 73' [) P8 f: k% C* l \
- (if (= etype "ATTDEF")
% h/ u4 E9 z: ~% `9 g! a/ L - (progn$ |$ N% q7 Q; A) f
- (tempmod attag 2 nil)
6 w$ v! @! t) m( M - (tempmod atprompt 3 nil)
/ ~4 F e+ l" L' Z2 O - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))7 n# \8 M3 R0 ~' e: J$ _ b4 ]3 K5 {) a
- (tempmod icvp 70 nil)( V! l6 A: D/ e0 u: e6 d
- (tempmod va 74 nil): j* N* ]* \/ e+ a
- )
( B9 v/ |# z5 m+ W( D - (tempmod va 73 nil)$ @, [5 v- u- n8 J7 b
- )
8 c! q2 W7 \# p8 ~+ I j% G" s - (entmod elist)6 W; } |9 Q( i' P' E
- )% O, R; I$ ^* ^& r: @# N) y: [; i
- 2 g7 N: @* [2 _0 L7 F; k$ f( c+ }
- (defun ddtext (/ 2ndpt slist i)
* b+ V1 A8 @5 |, \$ @: ~4 U0 l3 l - (if (= etype "TEXT")$ Q+ }3 ^! c, }2 g
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
/ H0 q Q' p' | - (if (not (new_dialog "ddattdef" dcl_id)) (exit))* y( N2 @8 w6 g) }8 o, E3 @$ a
- )
# y7 x* b' L6 U* y% p - (set_tile_props)4 s. s$ A9 v% t! x% Z0 y/ ?
- (set_tile_handle)9 E3 L8 a2 K0 I$ h2 b" N
- (set_tile_text)
u4 I) A1 u8 P2 z- m - (set_tile_tag)4 P t" b: u* u8 x
- (set_tile_prompt)& z2 f% [% ~2 ?/ \. V$ H# C" f
- (set_tile_hght)
0 O X v. i' Z" F - (set_tile_wid)6 ~" y( a1 c+ x( e
- (set_tile_rot)
% n$ W3 T2 i6 Q6 F - (set_tile_obl)
1 ]! [7 T& p6 m Z, E+ { - (set_tile_bk-up)
8 [+ X" V; H! K. l8 W - (set_tile_icvp)3 F2 i# o% ~0 I. K4 O! U
- (set_tile_style); k/ n- a, ]! j9 |1 H1 C# @
- (set_tile_just)8 R, i' L7 p9 ~" u2 Q' A
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))+ J% Y# a* X* D2 z0 `; g: a* B
- (if (not (assoc 11 elist))
% n8 m7 U9 P$ d8 o9 V( J - (progn (setq pt2 pt1)
/ m6 U" e$ H) Z' [' v0 Y - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
. ?' v1 R+ T3 h" |4 |8 C8 w - )
8 ]: {/ G9 d0 a2 Y - ;;(trans '(0.0 0.0 0.0) ename 1))# F+ t# N9 r# K$ F; f) D! `
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))+ G& C; T2 i& c2 z5 E2 f+ `' R
- )& ?+ c8 c6 a+ W7 K- }5 w: @
- (if (or (and (= ha 0) (= va 0)); N* i2 h$ m: q6 b0 ~% q# ]6 G
- (= ha 3)
- d6 |7 u* i; B! k4 m) e - (= ha 5)
; w) x+ l* V8 t" F* C - )' Z2 o4 x9 _- g* f* K$ G o7 e* J
- (setq showpt pt1)
2 G3 u8 @3 Q, F - (setq showpt pt2)1 j! u- v! z# J4 h1 r
- )5 N) u8 J/ p X, x8 [+ b2 i8 i! x/ \
- (if (or (= ha 3) (= ha 5))5 @( U+ o) @( z$ u- M2 t4 E5 ?2 e
- (setq alipt pt2)
# i- X8 U/ G" M* t9 s( s+ H - (setq alipt nil)& T" j/ c6 @8 b
- )
" k) T& |, y1 o - 5 M8 c# ]- k' p3 B8 @: r
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt)))): H! [4 a# T& O9 u! N/ R# ?+ a
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
+ A3 a7 d7 m, W - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
$ ]- S8 `8 Q5 t8 V
: ~; K' J1 r+ o' K. M- ;; Define action for tiles
( H* A( e+ x4 [7 T4 x$ e) k) D+ } - (set_action_tiles)/ e' k. X( ?* S4 q- M: A( |
- ;; Set focus initially to the text edit box.
* u$ \5 H* ?( }- x0 x1 _' \* r+ a - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))4 @) K; c, ~3 w" u& m# Q' h
- (setq dialog-state (start_dialog))
4 A I; @( h$ ^# t- v7 J% p+ j - (if (= dialog-state 0)
* ]% J; B& Q% E$ f - (reset)$ d( t5 a7 D# V: s" h( X8 P7 K
- )" M3 {3 M, z' J. ^8 R2 k
- (if (= dialog-state 1)
& a" X# J5 L" M' k+ p, ]/ t$ |% b - (modify_text)
9 }" i6 |/ w& R* W$ n - )- j1 C/ m& x& u9 v# k5 j- Y, B
- (if (= dialog-state 3)$ b" n6 J, z# ]. ~
- (progn
; {2 J+ x9 l7 L6 G) N* v$ t2 P - (modify_text)( M& Y3 O2 ]' s1 b8 d
- (if (or (= ha 3) (= ha 5))
1 O' S. ? |( f3 \1 e5 B" m - (progn
* ~6 c# ^" i. I; i/ w/ p - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
/ H9 j% S/ u( K D A# W: Q - (if (not showpt)* ?/ d# e. v1 X- _# w
- (setq showpt (list x1 y1 z1))7 r: W) Q8 b2 \1 w/ e
- )
1 B9 d( l& O. J0 [5 L - (setq 2ndpt (getpoint showpt "\nSecond point: ")) X1 x5 g9 `; X- T0 ]( R
- (if 2ndpt3 Z, g0 b3 V6 d2 ^7 f, ?
- (progn! x' z- _4 `) }' u3 b( B5 u
- (setq alipt 2ndpt)1 y9 G) ]4 Q9 j" v* K" c x! p
- (tempmod showpt 10 1)
9 _& H2 k& ]5 D# w - (tempmod alipt 11 1)3 t( p/ c- {$ J$ W( x6 j
- (entmod elist); C! I$ V5 _7 h/ ~$ l; K% s7 @7 l
- )
& t. s% M/ y1 Q6 U! R - )4 w( N1 _- }+ X$ C0 ^
- (setq elist (entget ename))- W) E/ P8 p0 |9 e' _; ^
- )
5 G3 c) W% \, @9 q l- l - (progn
* n0 X, q% q) k. J2 | - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))$ e$ x% n. q, z
- (if showpt
, O1 @6 L Q$ a1 | - (progn( h2 y' g& a4 R1 f& ^& L% p! B
- (if (and (= ha 0) (= va 0))* n1 Z3 [* F# p. e! e( L
- (tempmod showpt 10 1), G! V, D$ y- `" c( F
- (tempmod showpt 11 1)
" Q( ]' f6 k8 T - )& C( c$ U3 r+ @
- (entmod elist)! B3 e6 S& `) ] ]9 @0 |$ ?
- ): c5 Z1 T( S$ a; o
- (setq showpt (list x1 y1 z1))
+ @0 R/ z7 a, n2 p9 f$ b) Z5 M: L - )
" U' M1 _4 ]. L: p3 K - )
, a+ y5 X+ U( t% o% d3 Z/ ? - )
* l. ^" j5 S* f8 w, [2 d' C" \. V; x - (ddtext)
+ ? F* h8 t7 E" D; S$ A - )& b) k0 a" ]2 l; J0 f
- )
7 N2 N* O7 t2 B; g- | - )0 q! Z `( R4 q/ f3 H2 \# S1 T
- . [# C' n6 H g2 H0 h+ v% @5 ^2 x
- ;;
/ a/ e4 J* `$ a0 b9 C - ;; Modify MTEXT
) h% I6 i4 m5 a! y/ p. Y- Q2 f - ;;
g- A' l% S6 a% o - (defun modify_mtext ()
% M; y o9 d2 b& q \ - (modify_properties)
M) y! P U; d- J9 A/ q - (setq pt1 (list x1 y1 z1))
+ e5 u6 Q* C* z# m' ^+ O - (tempmod pt1 10 0)# s, c& i; G, p" t7 w+ {
- (tempmod text 1 nil)9 E9 ~8 c) j5 g& x0 \* f4 ?
- (tempmod tstyle 7 nil), T0 k0 T9 Y; ?+ C- E
- (tempmod just-idx 71 nil)6 l2 Q. {4 b: v4 ^2 N& p; R. v
- (cond
: N$ |0 V0 w ]7 [ - ((= dir-idx 0) (setq dir-idx 1))
. [; l- x8 }( a M* v - ((= dir-idx 1) (setq dir-idx 3))# W7 l! H* K0 z6 k: C2 ]% [
- ((= dir-idx 2) (setq dir-idx 5))
O- R0 X7 n+ J% L - (T (setq dir-idx 1))
% q# E* X- z" \$ j8 k: _8 E: \. O - )
0 t, m r# p) z - (tempmod dir-idx 72 nil)0 c: M& U) D7 R" L' w [# g
- (tempmod hght 40 nil)" L3 n% a5 @- G
- (tempmod wid 41 nil)% C+ Q/ t0 f7 t4 {# I
- (tempmod rot 50 nil); q. O9 w% K& K3 D
- (entmod elist)- _6 @3 q9 D: ^# I% v
- )
1 O' ^3 W# a1 u3 o" H: a
. d) o, W6 W$ ~8 ~1 ]- F- ;; Set MText text style
! j& F1 G2 |( g5 ?0 j& i; D. Q+ v1 r - (defun MText_style (index / style-list)
- x1 ?1 K# Y; n7 M7 o1 _ - (setq style-idx (atoi index))
# h) I* y; j" o7 w' t - (setq tstyle (nth style-idx slist)). [( F0 ?2 Q3 x6 h1 R- m: E
- (setq style-idx (itoa style-idx))5 V0 g j+ P3 H- \* O
- (set_tile "style" style-idx)8 u! W; X) p. |* B! j! m. W
- (setq style-list (tblsearch "style" tstyle))
+ F; H' o) a& y2 p% U& o9 I, U - (setq shght (cdr (assoc 40 style-list)))
& l w% P0 d& l7 n7 J - (if (/= shght 0) w, w% N# s6 `8 t! L. j
- (progn
) p9 W/ i$ j% ^1 q; y - (setq hght shght)5 O, D8 }" U9 F5 X- N D' E
- (set_tile "hght" (ai_rtos hght))1 @3 X( S0 g& _
- )
7 z* \0 D' o" E& a0 c6 Z- o0 {1 Y6 x - )+ s2 i8 Q7 l. I4 S2 ]+ A1 p
- )
* y: R/ H& C0 _) y3 R
% \" | H, m$ e8 Q! U- ;; Run DDEDIT on given entity, working around possible re-entrancy
( p( s* s% s4 g. u/ m - ;; problems with MTEXTED
# J7 Q$ X K' j" [ - (defun safe_ddedit (ename / orgMTextEd work) T7 ]/ Q9 L$ x6 Y/ w6 F
- (setq orgMTextEd (getvar "MTEXTED"))3 s$ n5 g, y1 \# V! s
- (setq work orgMTextEd)
$ q. X5 ~7 b9 B% } - (if (= ":" (substr work 1 1))
& G- {/ v. [ C7 L8 [ - (progn
9 N: R, b& N9 O2 t, @ - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
4 [) J3 @# M. U9 S4 p% @ - (setq work (substr work 2))2 N* f" R6 y5 S
- )4 G, m0 G( g4 r1 \, w
- (if (= "#" (substr work 1 1))
~ u: |# k1 E - (setq work (substr work 2))
6 Y0 v! p, g! o: E: M - )
" ~( z% U. C/ j; [1 p- } - (setvar "MTEXTED" work)
0 T% N8 ]% T! v& m" I0 h - )& G; o- y+ M5 F4 Z# b3 G" j2 V
- ); _6 n# R9 a. T4 U
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
, F* q8 Y, S. f c6 T3 a - (command "_DDEDIT" ename "")
+ V' p! a$ V4 g' ?- E# }1 m% O - (setvar "MTEXTED" orgMTextEd)2 G4 u: s+ N0 v- ]7 |
- )
" q: m) x, \7 u% R G, L - 7 c) F: h5 P7 P; E
- ;; Verify MText object width
7 W0 Q) m8 s7 l4 E3 G/ A - (defun ver_MtextWidth (value)
# |; L- D: m# o# T9 P d - (setq value (distof value)) E3 ?3 r1 M8 y3 @. t3 G& D( Q
- (set_tile "MTextWidth" (ai_rtos value))
* K/ p4 r7 E" {& e, N6 y) d - (set_tile "error" "")
$ Y& }. M c9 ?) J - (if (< value 0.0)
: G4 s; @) p# H* N - (set_tile "error" "Value must be zero or positive.")( o# r! s" s4 N6 ^9 P: v9 A
- (setq wid value)! R* D8 f2 [9 s4 _! }
- )# N; ]2 @8 E7 ?" R0 H& E- Q
- )# S5 ~0 _' g1 c5 H2 u
- ( G4 H% ?, U' e8 h5 q, I( G
- (defun ddmtext ( / gc3)
8 s; g% ]3 J7 X7 D - ;; Get dialog
7 e; ^- U3 K U: R2 o$ X - (if (not (new_dialog "ddmtext" dcl_id)) (exit))
3 E4 d2 K3 E# ^) G - - A; f7 @ d& H9 E& O/ R0 _
- ;; Load list boxes
( ~, e. V+ T9 x! z* A& X0 R - (start_list "MTextJustify")
0 z: M( k1 l: `+ \5 {/ |' c - (mapcar 'add_list '(" q* Q& K `; @. ?& }, B: ^7 ^% }
- "Top Left"8 V0 P1 X7 Z$ x
- "Top Center"# G( d( C$ Y7 I: U
- "Top Right"
, p0 K# ~: A \9 R/ |) x; C+ U0 u - "Middle Left"
' E. a& A- Y# K' b7 [ - "Middle Center"* [. T6 K5 S3 a8 O
- "Middle Right"( f2 `# I& M; g# b
- "Bottom Left"
" p, y. V' } O% k" k: H* X4 D ~ - "Bottom Center": E' ?5 ?& B5 [
- "Bottom Right"
- `8 W o6 ^$ T" } - )
0 t* K9 r& D0 h2 [% }$ A2 z2 N7 } - )
$ |0 z3 q( R& P2 Q' o - (end_list)
; ]6 E0 _; ~9 x6 W
( l4 Q; e+ ]5 n! y- (start_list "MTextDirection")
2 \3 e3 p z |$ D2 {+ v - (mapcar 'add_list '(
# [( r5 |/ a; K( `( M3 f - "Horizontal") W/ h* A4 p, W; ?4 `$ [
- "Vertical"1 ~- L/ m. t1 b$ e# W, I' t2 }
- "By Style"4 }5 y9 B! D* Z P- F/ |
- )/ m* {8 N! F+ N" ]" J/ n
- )
2 Q2 d& i9 L% j4 P - (end_list)
. L& i. K% V+ A# [* a% I) [8 U. m
( z" E5 O4 y% _- ^4 V( f3 W- ;; Set initial tile values8 |* T# C% d1 ]! I6 ~! L' L" g
- (set_tile_props)
7 X; M3 C9 H- W" Z. W6 | - (set_tile_handle)" f7 Z- _& x+ E: \: @
- (set_tile_pt1 0)
! H4 K$ L" r6 G) x' l$ H - (set_tile_style)( p) _+ B' D* L5 n" {1 A
- (setq just-idx (cdr (assoc 71 elist)))6 G: B7 x& a- n* v" v* t
- (set_tile "MTextJustify" (itoa (1- just-idx))), m4 i( }4 F5 j. A( X% v- I
- (setq dir-idx (cdr (assoc 72 elist)))8 n% G: y* r( c- l, V
- (cond1 o* L- \& m* m) w
- ((= dir-idx 1) (setq dir-idx 0))
5 z7 y% I2 H# ?& N1 s" h* I+ @ - ((= dir-idx 2) (setq dir-idx 0))
2 L4 C, k( ~0 ?- O* t! Z3 P8 q! V# M - ((= dir-idx 3) (setq dir-idx 1))
) G! E1 R0 r3 d7 ] - ((= dir-idx 4) (setq dir-idx 1))
\3 C: k( J. i- @& l - ((= dir-idx 5) (setq dir-idx 2))( I4 ^7 z$ C; J& J
- (T (setq dir-idx 0))
' J8 x3 ~7 r1 L8 k4 H- f% \, \* ` - )* T/ v0 |/ u# C9 c$ E9 p Q) H
- (set_tile "MTextDirection" (itoa dir-idx))4 ?$ G: q2 F5 R$ [
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
2 E! y8 ^8 C0 b# i - (set_tile_hght)2 X7 s, s, w' d1 Y4 r
- (set_tile_rot)
0 x' F# J% V3 q
/ D* w( ^) N ^9 K( s- ;; Set edit box, disable if too long
' ~& b- j4 F3 `6 A9 g" z/ N/ A - (setq gc3 (cdr (assoc 3 elist))" [4 e% @6 _0 o2 ^" r/ `. x
- text (cdr (assoc 1 elist)))1 h R* m& ]1 y C
- (if gc3" j4 ~3 g8 G% s( I0 K
- (progn ;; Text is over 250 chars, disable edit tile
) h. M5 s% T4 `) P' j - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
% k' d: U6 {4 D1 U - (mode_tile "t_string" 1)
?* t6 w- R+ r; H3 ] - )$ R- H7 D( K$ c- q
- (if (> (strlen text) 80)
: D, C( V8 o0 a8 t2 P - (progn ;; Still too big
" r6 w: I8 W* Y1 d - (set_tile "t_string" (strcat (substr text 1 25) " ..."))" I) I2 n F% |7 T/ t
- (mode_tile "t_string" 1)7 J: K- n6 \) g/ ?
- )
7 q; s' z! M+ h- B% X - (set_tile "t_string" text)# ~1 i y' Q! G; J5 I3 q# p. C
- )4 L+ m* A( p( S* i
- )
9 l$ Z" _; y4 K' J0 P$ s+ k |/ x' q
. O Q$ W: F* p6 l0 E7 n' Z+ p/ ]7 j- ;; Define action for tiles: N/ c7 ^/ F4 j$ N: q$ W
- (set_action_tiles)
& y0 A5 @8 e( q& d& i8 D, v - (action_tile "style" "(MText_style $value)")0 o, Y, K4 i; z, C# ^+ u
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")
+ e" G) t: {$ q% Z, U - (action_tile "MTextEdit" "(done_dialog 4)")
& r4 G2 e3 V/ d5 S - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
$ y* _& E Z' S" d" u - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")$ e6 U3 T: \, e1 m
- b+ v& \1 _' w- I1 O9 M- ;; Set initial focus to text edit box.
% T- |' R% }9 H" j! `* e - (mode_tile "t_string" 2)
8 M# E* m0 {3 N9 W: v3 G6 ]9 Q
( O; Q! m, b9 }% h F5 J- ;; Run the dialog% n/ v6 `5 R5 z" N- N! P
- (setq dialog-state (start_dialog))" P+ L9 [" E$ C
- (cond
) [* W# V3 D& h6 R. m - ;; Cancelled - restore saved data- J; A1 d; X4 U- h# l
- ((= dialog-state 0) (reset))- ~) }6 [' ?. e! } A
- ;; OK - save new data
+ U6 `3 s& n U6 J/ Z - ((= dialog-state 1) (modify_mtext))
8 O) F% F5 b; ]5 o - ;; Pick new insertion point) ^6 ~& ~4 u) x5 S
- ((= dialog-state 3)/ t' @4 [, h0 S
- (modify_mtext)/ `4 E" I7 \/ E+ e
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: ")) I. Y- ?3 g% d; D% z# h1 n
- (ver_pt1 0)
. H- Z# t: h# d3 W8 S! U; _ - (ddmtext)1 \! e: X9 h/ E
- )! s) C, s+ q( t1 w! N/ R8 \
- ;; Run full editor' ~ q2 y R: ?! i. H# H. U
- ((= dialog-state 4)
8 [0 A# R$ P3 x, C2 @5 m% h - (modify_mtext)
# O p+ Z. f" G - (safe_ddedit ename)
4 o8 t5 R$ Z$ h3 Q0 C8 r5 T - (setq elist (entget ename))1 q+ k Y3 u! Y- U8 n, F( c6 Q
- (ddmtext)1 B& b1 l$ o' c- d
- ); S9 N5 {" X0 Z& x8 m; v3 v
- (T nil)
8 S5 J# C* B- r- q9 ^, ^ - )
' X# h, z V. C4 A+ S) P- u - )
7 x( w6 q) _, c8 _8 m; V( n* Z; j
- R Y/ b. o5 G6 M9 ~# `- ;;
" q/ \ p- x6 h3 N - ;; Modify VIEWPORT- a: n8 p2 U% K% l
- ;;
" L9 p& B4 A" h f - 3 }( X6 J" S% }8 j
- (defun ddvport ()% x5 Q8 f5 B' Q6 H* q) e( L+ o
- (if (not (new_dialog "ddvport" dcl_id)) (exit))* L% r: e. w/ E7 C# L: l1 _% y; i
- (set_tile_props)
0 s0 `4 T3 U F7 T- W, @ - (set_tile_handle)
; H0 X5 e/ ~; p - (setq vpt (cdr (assoc 10 elist)))
1 P7 \, [& Q" R" U - (set_tile "xtext" (rtos (setq x1 (car vpt))))
- ?1 p2 W5 e' }) i+ g$ g6 |0 G - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
% Z- |& }5 j1 e/ d4 u) Q" Y* e. u - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
% J. h* J+ n3 Q0 `; d- m - (setq wid (cdr (assoc 40 elist)))
3 ?% \) \5 \9 J. e% x8 w4 ?3 e - (set_tile "wid" (rtos wid))
6 w0 ^* F# f/ [ - (setq hght (cdr (assoc 41 elist)))9 E" k3 b- h1 |" X2 N7 z
- (set_tile "hght" (rtos hght))
& V* F* e% P: v& | - (setq vpid (cdr (assoc 69 elist)))4 \; p, ]+ A: Y! ?9 m! L9 f$ Y1 ?- |
- (set_tile "vpid" (itoa vpid)); j6 l( E+ y8 I: r3 n, U3 |/ y
- (setq on-off (cdr (assoc 68 elist)))
0 @' l9 ?0 x9 }/ w0 A7 z" C2 R - (cond+ U' S8 o% B0 k- u! z% e
- ((= on-off 0) (set_tile "on-off" "OFF"))% l; | ]7 M- r8 O' R4 L- `
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
9 y; B- }; g+ R% r - (T (set_tile "on-off" "ON and Inactive"))
- T$ d8 N# _5 S9 j) y - )
B4 p2 j: g+ C5 r; W+ o: S
: z! u% L7 p: ~- G4 l0 N* ]- ;; Define action for tiles
6 j- e, p+ Z! T) Z - (set_action_tiles)
0 @$ g' }$ o& l# m/ t" d
7 @8 }4 ?6 X1 f5 E) m2 D) F* h) V6 E7 q4 V- (setq dialog-state (start_dialog))) }4 d+ r4 [8 @+ W R+ X1 C; m
- (if (= dialog-state 0)
+ b* s0 p( J# b0 H& Y - (reset)
0 k9 [3 ] X2 A& G/ K3 A. g - )
& u, c, `& j$ a% k x3 y. `, O. G - (if (= dialog-state 1)1 P! P( `- b0 M! w6 j" h( a
- (progn
6 y& U8 d; Y$ s - (if (= ecolor 0) (setq ecolor "BYBLOCK")). \+ t+ `, g Q
- (if (= ecolor 256) (setq ecolor "BYLAYER"))/ r- u, Y& m$ [8 a/ _+ g+ C
- (command "_.chprop" ename ""
+ H. z4 P6 L J$ J7 l* i4 g% _ - "_la" elayer, R; b! }' ~! n, C3 z5 i h
- "_c" ecolor ""
5 g" _+ |6 T5 W* x# H, u - )8 j5 V4 w' [& o. x
- )2 y* ]2 _; D7 x. r. G
- )" L. ~: v( X7 t! s& m/ ?4 D, S
- )5 L8 p' I2 t' z7 q+ ~( ], A- p
- ;;
! m: C* O7 V' s - ;; Modify POLYLINE- B7 t2 f t8 t3 E1 W3 G; m
- ;;8 g( J9 ?4 @" @# x* Y
- (defun modify_polyline ()
( O* p% @# S$ n/ _ - (modify_properties)
" ]5 r5 C8 l* P8 }( R* \/ A8 Y - (if (= ltgen "1")2 m" o+ s( c: p( b
- (if (/= (logand bit70 128) 128)& S4 t0 {' A/ t( a5 S
- (setq bit70 (+ bit70 128))
9 c/ b9 R/ e( T2 r* X - )5 Z1 u4 U' V, ~. E3 c0 e% p( }
- )
1 q; B8 d( }) s$ {$ B# R3 A2 | - (if (= ltgen "0")
/ }% m [2 S5 K! @ - (if (= (logand bit70 128) 128)
& r/ k1 x, T9 Y" x$ u - (setq bit70 (- bit70 128))
% [1 e* z E* E, }1 }& @$ U - )
, @: Y! ?0 [! ? - )3 K8 B8 ~+ f9 @ D1 a5 {
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))2 Z* x+ L* n* f7 a/ I& g
- (entmod elist)
$ c( A: r* U, `2 |, m6 E. X" X" p - ;; Added to take care of updating Vertex information for color
/ u0 v, Y- w6 z, a6 R - ;; and linetype.& b6 ]8 Q. w, K2 M" I& f
- (setq save-ename ename save-elist elist)
. {) u, ]& l* v - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")8 x [& ?1 x; S; Z3 K. _7 L
- (progn
1 x" M! \1 b" M! n - (emod ecolor 62)4 T: q$ ?: H* H8 F- F M7 ?
- (emod eltype 6)
( v# u2 r# }7 n - (emod eltscale 48)
0 ]% d# K" A( V9 M. W5 i - (entmod elist)
6 O! ?! V, W$ G# L/ l - ); r, [3 N5 a! V. p- l
- (progn
5 F" v8 e2 N8 x" R - (setq ename (entnext save-ename))' \* T9 l$ K+ n
- (setq elist (entget ename))( |/ ^) C& g0 T$ ^5 n
8 s' d# L6 v# e1 x) v2 i* Y6 } ^- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
7 N2 l$ K+ \& G; p - (emod ecolor 62)
P( M+ s; f" p, L7 D - (emod eltype 6)
+ }' u- k6 K; c' N' T7 c h! [8 A - (emod eltscale 48): Q: P/ |8 D9 |
- (entmod elist)
* F0 q d2 Z! F9 C/ H1 e$ y - (setq ename (entnext ename))5 ~1 z# L: h: j, r: v. q5 I
- (setq elist (entget ename))
0 W2 t1 i$ Z# ~ - )
( s3 m: j3 X; T: G4 C- m - )6 n0 q/ @: M' K* ]6 W$ o
- )
' v# V w+ M8 T9 O. V2 j" R - ;; Update the SEQEND& f: E8 S4 W0 j" y. `, v
- (if (= (cdr (assoc 0 elist)) "SEQEND")& a. d. V' j! F% ` ?
- (progn! f! H/ \4 o5 \0 T
- (emod ecolor 62): y; O* C5 @0 |3 C) `$ }; r* L" O
- (emod eltype 6)
- |' b" J- C# F# [1 @ - (emod eltscale 48)6 ^8 J$ v2 L. s4 @1 U0 b" Z' n) A
- (entmod elist)
! w1 i* O8 b% n( n - )# m1 f. x* Q, [* [" n0 M
- )2 j% s0 T; e1 A- J# {% R
- ;; Go back to header.# o+ n8 e. \7 L5 ~7 o/ Z
- (setq ename save-ename elist save-elist); X7 y& J2 C+ Z
- $ j- F( S) Y% j3 J, }: E
- (entupd ename)
4 C1 s* e7 W3 n, e$ Q - )8 J8 u7 s4 x! g# M
. p! D& H1 a# ?5 W, U, C- ;; Increment vertex. Set tile values to next vertex
# D4 |" R( k& e4 T8 U - ;;( j5 w: A% }# ^$ R( F& z" ^4 H! L
- (defun next_vertex ()+ p/ I3 i/ Y$ F
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")3 `8 |5 B5 a+ y$ a/ n
- (progn- R' Y' C* Y6 I. j- G9 D8 X
- ;; If the counter reaches the number of vertices,3 p1 T1 {$ _' \6 ] @' F4 ^
- ;; roll it over to zero again.
. ]: b. S* V3 X# M; a+ a - (if (= ctr (cdr (assoc 90 vlist)))
( Z5 K9 ]% `% y- D - (setq ctr 0)
+ w3 N( D. U7 Z - ), l" ~7 |1 [" Z
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))) D+ n2 W2 {& }7 u9 Z" O4 f
- (set_tile_vpt pointype)
' V4 R% i2 ?+ E, l4 P$ o. e - )5 `# S. `' m* a9 x$ ?7 z# Z
- (progn
9 [4 I4 d9 u5 s$ v1 J& ~ - (setq vname (entnext vname))- F8 P+ X! _+ v& u% M+ O
- (setq vlist (entget vname))& n5 J9 V3 M. A, k& [& I2 k {: {% r
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
* F1 L' ?9 g9 G; t/ L* R4 F% n - (progn: w9 k+ v- T7 R) l
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))+ @4 h; w, @3 R6 M# M6 ^
- (set_tile_vpt pointype)
2 j! {& k: W; @ z - ): L2 {7 y: B( f
- (progn. n' d( D& Q( f8 J5 w& D( ]
- (setq vname (entnext ename)); v+ [+ P# w2 V# V5 i. x5 Y" [
- (setq vlist (entget vname))
$ _" K- d. m3 v3 I! L - (set_tile_vpt pointype)' Z: {- b/ E7 L
- (set_tile "ctr" (itoa (setq ctr 1)))$ x1 G; F4 v! c% d0 e
- )) N5 W4 b9 h! T. p/ i' [
- )
8 |6 N9 }) S' a+ `7 X# m+ x+ v - )# L. ^+ R- ~8 p, W! ?. c2 y
- )
# @4 S0 P& r% ~- U - )) V8 }3 L' Z2 }! y2 R: t; O/ I Y! D
- 8 \3 s# w h% r7 U( L) b2 B
- (defun ddpline (/ oldecho)
# E0 E( @# B' Z- q/ V - (if (not (new_dialog "ddpline" dcl_id)) (exit))
% y) D% o O U$ }) Y - (set_tile_props)
# P8 V" {0 G! m! J7 _+ x - (set_tile_handle)
8 W- y: z( o% {/ w4 C6 j' x - (setq bit70 (cdr (assoc 70 elist)))
) A( Q/ N2 c2 c0 @3 b) B - (setq bit75 (cdr (assoc 75 elist)))
9 |# T" Y5 |. M9 i. a; w - (cond
# |$ E9 a* x+ g8 b% Y( p, j - ((= (logand bit70 8) 8) ; 3DPOLY0 i% R% ]* K; L. |3 w. Y. W
- (set_tile "ptype" (setq pltype "3D polyline"))% G) L3 Z& T9 {/ ~8 |2 E3 B
- (setq pointype 0) ; WCS or ECS point values
! O8 {. @7 V9 F. v2 e - (mode_tile "fit" 1)' z, n7 u; t0 [7 F" c8 d
- (mode_tile "mesh" 1)
) z: ]! L5 x& m/ f( z - (mode_tile "bezier" 1)
/ {$ G" ^( l. P1 `2 v% O+ C; m - (mode_tile "ltgen" 1)& w4 i H3 e# o
- (set_tile "none" "1")
3 I( {$ i6 k' X$ F - (set_tile_closed)% w9 ?$ h8 a0 _; C, j1 y6 Z4 H
- (set_tile_fitsmooth)2 {* x- j. y% I
- )2 `3 O: m/ g2 |2 f- s2 S( L
- ((= (logand bit70 16) 16) ; 3DMESH8 W e3 t$ x7 j/ {5 x8 a: [
- (set_tile "ptype" (setq pltype "3D mesh"))5 P+ O a% e+ W6 ]0 W, a5 s
- (setq pointype 0)
/ P1 k$ C! s# b- ^ - (mode_tile "pline" 1)1 M- J* g( L& `! Y
- (mode_tile "fit" 1)7 e( U% I7 u1 v
- (mode_tile "ltgen" 1)
- ]- ~$ J( }2 ]! D4 y - (setq m (1- (cdr (assoc 71 elist))))( K# |( O* Q7 n0 i; D2 y
- (setq n (1-(cdr (assoc 72 elist))))
3 Q7 K4 |+ O8 g* R5 P - (setq u (1- (cdr (assoc 73 elist))))
- X+ r# a9 t! x* o# ?( \3 a& X - (if (< u 0) (setq u 0))
3 A- E1 F6 h; y; z) Y, K& M+ R5 K - (setq v (1- (cdr (assoc 74 elist))))
# \7 S+ |, T1 P1 M3 O+ ~ - (if (< v 0) (setq v 0))4 Y3 s) A: v5 K" y% P7 r
- (set_tile "m" (itoa m))" f' g+ E* N% Q2 R" ~- F/ R
- (set_tile "n" (itoa n))
, k! I, y" u+ Z+ y- K7 N) J' o - (set_tile "u" (itoa u)): T7 e0 H* E' @! C. N6 t
- (set_tile "v" (itoa v))
h+ f2 m) d* W. U - (set_tile_closed); ]) Z0 K d9 _ E) B5 _
- (set_tile_fitsmooth)
0 V3 U; J4 q. G4 c; z: k) c u8 P - ): o C8 O3 V7 o8 S9 J* v$ Q' A
- ((= (logand bit70 64) 64) ; POLYFACE MESH
+ r6 t8 ]/ ?, F* R; ]5 @ - (set_tile "ptype" (setq pltype "Polyface mesh"))/ W$ f5 E* y8 a
- (setq pointype 0)
. Y+ R1 V+ b- x4 y4 n/ P$ c - (mode_tile "f-s" 1)
1 I# u' W' J- n3 i - (mode_tile "mesh" 1)+ h& I3 B# ]9 E# C% i
- (mode_tile "pline" 1) }3 y$ [: O' _1 {
- )0 |0 U& B$ ?7 w+ W/ R: S: u
- (T ; 2D POLYLINE
) f8 X& x# Z( m - (set_tile "ptype" (setq pltype "2D polyline"))' y: r, n* J4 {3 _5 j' {
- (setq pointype 1)
* D/ K4 l. W! K - (mode_tile "bezier" 1)
4 F# v% R9 d/ q, W1 ]+ w9 p: t - (mode_tile "mesh" 1)
1 i# X/ d. [; b/ W* Z" F - (if (= (logand bit70 128) 128)
* f& }. [5 h7 [0 d - (set_tile "ltgen" (setq ltgen "1"))- f( B) C4 E8 Q& G
- ); W4 a8 T* \2 o! ~
- (set_tile_closed)1 `2 } i& \% a+ ^! j1 t3 k% g
- (set_tile_fitsmooth)
: b8 d4 v- R) u3 W9 y6 R - )
3 W- a7 ]) r6 r; J1 r/ U - )! H- G4 [0 p4 J% {- F$ s7 p: D
- ( R. B# ]; ]6 v- J$ o% r' q; Q
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
* E) }$ {& C, l9 w$ |$ q - (progn: J9 V [" V" f; y* v
- (if (not next) (setq vname ename))9 h$ c/ f* H! L d3 E Z- f
- (setq next T)3 }/ N X# k& v! f
- (set_tile "ctr" (itoa (setq ctr 1)))
+ H/ M' p6 K' v9 q - (setq vlist (entget ename))
* ^7 V, f+ f+ \' n2 l - )
5 U6 j: g* q3 k3 ^! u4 S5 q - (progn) r$ B+ j0 _3 n2 ~6 |
- (if (not next) (setq vname (entnext ename)))( P) M* a# a4 J# a6 d( v1 L$ e9 `
- (setq next T)( }$ I9 h) P+ D+ Y# y4 Z
- (set_tile "ctr" (itoa (setq ctr 1)))
* A) V+ J( l9 T/ F2 s, W, a - (setq vlist (entget vname))
& B2 p4 |: ^; n, I7 o - )
& d7 R4 o) ~( \& Y6 B2 X ` - )
5 }% X5 l4 P# _/ h! K - (set_tile_vpt pointype). }( |% F* {; G0 ?# k8 A6 C
- ;; Define action for tiles$ T T% z- a1 n7 e. @
- (set_action_tiles)7 P1 b0 x2 |& c( Z* V2 \
- (setq dialog-state (start_dialog))' G6 B" l3 A& T# W7 p. D: d1 x6 w
- # J% o) v* S5 L: N C1 Q+ k
- (if (= dialog-state 0)
2 [5 ?. W9 M% d9 O$ E - (reset)
# L# i0 p$ h' E- [! @ - )' U; p6 B0 R8 r
- (if (= dialog-state 1)
4 k; E+ l5 Z( G' \: d - (progn
6 V6 m/ |. T- L9 V: ^) f/ H - (modify_polyline), P5 Y" ^5 o$ o# `& r, |8 t
- (if (or (= pltype "2D polyline")
0 S6 z! Z, L5 C; }1 Z( q* ~% v - (= pltype "3D polyline")7 ^; C; @3 g; g) E& S
- ). |' x1 t A' q0 }* s4 h; d
- (progn
2 m1 @' ^/ p5 D) d5 k9 j7 [' h ?. x2 G - (command "_.pedit" ename)! y9 ]/ h$ s l" h' [% D4 N F3 X* N' u
- (if (= spltype 0) (command "_d"))& \7 }. H0 L( P" T
- (if (= spltype 1) (command "_f"))2 p" U v# E. Q8 T L3 d. X/ X
- (if (or (= spltype 5)
6 m* P1 z4 A2 Y* R+ D - (= spltype 6)$ t( e2 r1 M- C9 `2 w7 k
- )5 l6 G: M: q$ l" R9 z4 w# G0 S$ o
- (progn5 U4 b6 @; _1 ^, {' C o1 h
- (setvar "splinetype" spltype)
# |1 O/ f2 |5 m( b- O$ ?- F% U! p9 b - (command "_s")& O" s) u& X; J( w4 U( |$ @& `
- )1 s- |- g, M) Z+ _- U P; I
- )+ k; M; C5 i$ v, y
- (if (= closed "0")9 `9 b( L( J6 X1 q' p1 e7 c7 v" A
- (command "_o")
H& q, \) V$ W# p - (command "_c")
3 l, B3 B, }5 o - )
" {; o* R$ S2 H5 X u( d: a8 G - (command "")
7 v ~+ I5 G/ b5 c2 D/ B
( d: O8 ^8 v5 R- (if (= spltype 0)
+ L t3 a! V2 n. }+ I* Q6 S - (progn& S" `6 P- F# R
- (setq oldecho (getvar "cmdecho"))
" B; Z# }) k& A/ f# v - (command "_cmdecho" 0)
3 E3 l. w: k- }2 ~& N( Y9 } - (command "_convertpoly" "_light" ename "")9 D+ W' x. L# s8 Q
- (command "_cmdecho" oldecho)
; I" u! k, s7 e E - )
! n# y6 }3 O* j - )* q6 ]' g; B3 P" `0 Z7 t' q% }
- )
: v5 s4 Y% v8 p! G+ z9 ` - )! d& G4 D/ F; Z; S
- (if (= pltype "3D mesh"). N9 n1 Z0 D2 `, F# u
- (progn
. ]) ^6 H0 d7 W- w+ j - (command "_.pedit" ename)
; f" J2 o$ C; S* P% I; B) c4 h - (if (= spltype 0) (command "_d"))( m% f* O/ p, ?4 _. S
- (if (or (= spltype 5)
' m g+ S: J0 U) }& f" o, R - (= spltype 6)
! k' t r S" D" r9 x$ _$ a$ y - (= spltype 8)
* U* g. m1 d" w0 @& Q( o- Z8 a+ L - )
, _2 L9 L; j0 k' ~4 h% X - (progn6 y- a+ j2 P0 l7 {4 O8 v0 v
- (setvar "surftype" spltype); p- \7 p! P" e$ w @
- (setvar "surfu" u)6 h3 k1 z3 r X( }- I2 m- e
- (setvar "surfv" v)
2 B3 W* ^( C, |% E: A. ] - (command "_s")
8 ~) a. Q8 t& T6 o - )
/ k: o/ G, N4 K# u - )! ^& H; z$ B0 ?) B1 R
- (if (/= closedm old-closedm)
4 e$ `6 J% ]( s z0 b; s - (command "_m")
' D; G+ o& s) ]8 @* a - ), o; m5 Z w7 \" O k! o* L- ?
- (if (/= closedn old-closedn)
1 I: e! [* I' B: h4 H - (command "_n")
1 ~4 d1 z1 @" g - ): g3 I. Q1 M/ _( K: ~2 W
- (command "")
, @( h9 J; ^* V0 Z% C - ); N q8 y9 \% L9 ^* n9 N( l
- )* l j/ D0 T7 m
- )2 j2 u5 X' ?8 t. S$ k
- )
7 {6 W1 t+ ]1 U; D4 A; M2 R - )
: n: |! b% l6 x5 h; J5 E - ;;1 K5 y' f* W! e/ h
- ;; All the spline data is contained in a single elist. We must do some
/ _4 h) l( v5 ~" c$ ^5 ]2 m. f: b - ;; tricky list processing to loop through the elist in order to display
3 e' p- j; f4 A; r - ;; all of the control points.' l; x! i7 O# H% J. l
- ;;
. s+ g2 f. M" t4 ` - ;; The structure of the elist is different for rational and non-rational- X1 |5 }& @( h% \; m% a& M; L( ~
- ;; splines. Therefore, we check the rational spline flag.9 R8 ?* `+ x N& h6 m3 K
- ;;1 I5 c& Z1 H$ i
- (defun next_cntl_pt ()
3 |% W' r' _% Z; P/ ` - (setq elem-no 0) ;; elem-no = element counter E3 M" O; G" i; S; m$ r1 S
- (if (= first-10-time 1) ;; If first time, find location of first
$ N8 d' f% R N - (foreach list_item elist ;; cntl point element in elist4 H/ u9 P/ n* n; L I
- (progn7 y0 S! }, {; u6 t! X/ y4 K0 `
- (setq elem-no (+ 1 elem-no))
; |9 z9 [6 U/ t0 h2 k; r - (if (= (car list_item) 10)
, {5 K# B5 x/ f7 ~& m, g - (progn9 i$ X! V: d' {; [. X4 M. E' z+ e
- (if (= first-10-time 1)& m$ R/ n" ?+ r6 _+ K5 J2 u, H
- (progn" ?! f; C4 h& ?/ t' f1 i
- (setq first-10-rec (- elem-no 1))
0 j1 Z0 Z2 w8 p V& h9 E9 ] - (setq first-10-time 0)
- S- o* J; I# O* i6 W- i - (if (= rational_spl_flag 1) ;; if rational
/ X7 S! i. a$ h8 b' E7 V \9 T - (setq cur-10-rec (+ elem-no 1))( O! K6 ~1 b& N. h
- (setq cur-10-rec elem-no)7 _( d- D6 X z3 \4 E6 T) w9 t9 w
- )
9 j# v- t. E* t8 y - )- x2 \( g, w4 n- T; H7 k
- )% X7 t1 @; h. X# s# Z
- )
9 E) K0 [/ g4 P E3 S - )1 b/ J6 h y" n2 C& G2 n
- )
: h: R: o2 e- F- @, X - )
7 a# T$ A* I& }) _ d& Q! R9 R - )
3 u/ |7 G+ l2 F6 P0 d - ;; Now we know the location of the first "10" record; it's stored( x% W j3 \! g3 O* D8 q
- ;; in first-10-rec. The first 10 record was already displayed when$ @" ]* c7 |3 k7 u/ h! X
- ;; the dialog first came up so let's display the second one when4 ]; A" z; L8 f" U
- ;; the user presses the "next" button (the first time through).; T* @, z$ X+ W! @
- ;;
4 Z d" z$ _- U - (setq temprec (nth cur-10-rec elist))
( X5 f! Z# t# ~$ { - ;;: i) ^* k$ P! L( v2 k
- (if (= (car temprec) 10) ;; if 10 record
! `, R+ B1 p% u" G - (progn
. }, A+ m# R9 M F+ F) H - (if (= rational_spl_flag 1) ;; if rational spline
8 l( p3 {, C+ Z& b - (progn
+ }/ k1 T s# | - (setq tempweight (nth (+ cur-10-rec 1) elist))
% o& {0 a& n: h) V) n2 m - (setq cur-10-rec (+ 2 cur-10-rec))
0 l7 ~/ p( t' z5 b9 _& w7 e/ L - )) p3 }# F1 s5 _: r. _1 X& g
- (progn ;; else
) B5 t* t: Z" K3 y# T0 _2 ^8 S - (setq cur-10-rec (+ 1 cur-10-rec))6 m8 ? Q+ R/ F* `0 q+ q
- )' k, W+ t+ X9 b8 {# ]6 k
- )
1 J2 Y# e+ b/ L9 @ - ) ;; end if rational spline
+ Y5 ~( \5 ^, A( b7 i - (progn ;; else reset counters
$ x8 X$ {3 w J. N) I5 k - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
" \$ M' d2 V" F2 v3 y - (setq tempweight (nth (+ first-10-rec 1) elist)): _6 z5 L6 U5 \/ I; Z: a
- (setq cntl-pt-indicator 0)6 A, d- [( y. r
- (if (= rational_spl_flag 1) ;; if rational
' Y& k5 L' c) c- ?8 I, ` - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
% C# K2 v# T( Y( U' l* o - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
$ h4 ^) b& q3 M7 w" C' }1 K6 k - )- K# q/ c9 S' N6 v' n* d% E5 W
- )1 U& t+ F1 {( ]8 Z7 C1 P& \
- ) ;; end if 10 record0 R# f' J) F1 ~
- 8 ]! v' k: u. \9 \! p) {9 G
- ;; Display cntl point, weight and ctr. Increment ctr.: d$ p: B) B4 s, v2 K* C3 ]3 K
- (setq cntl-pt (cdr temprec))
' D/ n5 x/ y2 B. t - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
# m) r3 P, s1 c9 z: ^" K5 b - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
1 V7 ^- n8 Z4 {4 ~8 i- k$ [. S9 { - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))9 `1 i4 n3 [+ ^
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))0 X0 s4 S e1 m/ E6 U+ C! v& B9 V9 F
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))% _0 Q: {4 i" H+ t8 V/ N
- (if (= rational_spl_flag 1) ;; if rational
' r, s. j/ l. x, G! y - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
: Q- Y$ d$ Z; ~8 m7 V - (mode_tile "weight_text" 1) ;; disable wght+ k" W; A0 Z* k' a9 R/ _8 J! e/ o. O
- )/ z% `' }6 [; K, m0 q* Q
- ), |1 }! `. O) S/ U9 u
- ;;% R) z7 w) w) m; a4 E) @2 t6 q
- ;; All the spline info is contained in a single elist. We must do some2 E3 N; P3 W; h0 v1 E
- ;; tricky list processing to loop through the elist in order to display% \4 h8 N$ M4 n/ F/ n, ]3 g i
- ;; all of the user data points.
* K, z+ K; E: _; S - ;;( ?/ x k! H* l8 j5 r( }
- (defun next_data_pt ()+ C" u6 X' m9 \( S" ]; k, a
- (setq elem-no 0) ;; elem-no = element counter
" B- D6 b" E7 t - (if (= first-11-time 1) ;; If first time, find location of first
4 _$ ^5 p& R) _. p4 Y* R1 t5 V5 s - (foreach list_item elist ;; data point element in elist
$ U. ` E' P8 y9 {6 D/ q& u - (progn7 a& t- R0 O5 g, g: E, I5 }1 p
- (setq elem-no (+ 1 elem-no))7 O2 e) Q# Q( G: q
- (if (= (car list_item) 11)
9 o) O. f. m: ^6 B- n( _" v - (progn1 E! S/ y, W! g/ W3 F S
- (if (= first-11-time 1)
# {9 H/ E9 v* T& a+ v - (progn- d/ h7 e' P! O9 k5 p: V8 [& y* C* A3 {
- (setq first-11-rec (- elem-no 1))
4 k, d5 Z5 n3 O( l) ~0 Q5 W, \ - (setq cur-11-rec elem-no)5 j' @5 S, p0 K( Q$ q$ {
- (setq first-11-time 0)
7 V# M3 ] n& s+ A: F3 a3 v2 ` - )8 x* Y. q: X- [/ S L
- )5 Z6 g" A2 ]7 C2 ]+ h
- )& ^* O4 w$ I; l( w9 _) j5 Y, T
- )2 E/ T( u& X6 Z$ p$ Y* z9 R' [/ E8 u
- )7 [; X }5 w3 ^& k$ }, l) o
- )& N0 L; ?. p7 P9 o8 j2 a n- j
- )
4 f2 f1 `, ^0 N g- V9 [) P - (setq temprec (nth cur-11-rec elist))
( Q5 W* Z& J r8 d& S; o" x/ [$ k - ;; If it's not a DXF "11" element then we've gone past the last1 D- D) ?2 E7 O+ w
- ;; "11" element. Go back to first "11" element. Reset counters.
7 z6 ~) N7 Y; B. z2 ` - (if (= (car temprec) 11)1 y( i. K+ n) G: @
- (setq data-pt (cdr temprec)), G( @: [( \ b. O
- (progn ;; else
6 |4 m! F! N3 d# A& b& m - (setq data-pt (cdr (nth first-11-rec elist)))5 e; s' h& a0 y5 G* C' P9 ~ o* g1 }
- (setq cur-11-rec first-11-rec)& Y5 R3 T& D+ m9 D- P/ p# a
- (setq data-pt-indicator 0)
% h- @3 V% p5 _0 m! d; B& { - )4 a9 x$ X9 _# f, y+ i3 L
- )& d4 j7 D% Y2 K7 W( _9 B& `; P, y# k
- ;; Display data point and ctr. Increment counters.3 }( }3 k; x3 ~5 p
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))$ u, _; s) ^. g6 a2 h
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
# k) H, V/ m: T- y - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
' O& y% k4 S9 A7 p( x/ b4 R - (setq data-pt-indicator (+ 1 data-pt-indicator))
C: o6 A0 ?" d2 K' s/ }8 s$ W( D- ~ - (set_tile "data_ctr" (itoa data-pt-indicator))
. A2 Y* R8 z0 m& d: F+ `) } - (setq cur-11-rec (+ 1 cur-11-rec))# P) ]: ]( R& ?8 w7 i6 H2 W! Q5 Z
- )2 Y8 w. ^ \ g% h9 L5 c+ G
- ;;! r( ` i$ H% l( r9 D! b5 a
- ;; Modify SPLINE
5 p2 D \1 X% [! g+ a6 Z* S* U6 C - ;;
+ _4 [2 A5 j# e' H7 o - (defun modify_spline ()
" k; m( k7 L5 q1 K8 R5 r* e% { - (modify_prop_geom)/ v0 T) f/ `2 @
- (entmod elist)
. P5 ^# p$ t4 {/ [ n - )
' o6 K) S) L, L' _( v- A - ' w0 R2 o) ]8 Z3 k" N
- (defun ddspline ()) G# h# c% `# Y9 m
- (if (not (new_dialog "ddspline" dcl_id)) (exit)). m( k6 E2 Q, I
- (set_tile_props)7 x* F% e7 _$ }& P
- (set_tile_handle)# y, R1 `; f* e# W
- (set_tile_spline_props)* U; u' ^# X/ s4 K) r
- ;; Display first control point8 n% `( ~, x T7 N7 I1 d
- (set_tile_cntl_pt)7 @/ E, l, [6 j6 }
- ;; Display first data point" C8 ]# N _ \* j# `# J
- (set_tile_data_pt)
; n5 w8 ?6 d: @( z
7 B/ |$ z/ l2 Z6 r2 c6 D- ;; Initialize flags to indicate first time through the dialog.
$ Q, g6 Q T% ?- t F - ;; For control points and user data points the "next" buttons
# F r+ ?/ \, C$ [' E: C$ ~ - ;; in the dialog call the appropriate functions.
! k8 F6 W' D. f3 | - (setq first-10-time 1). v. X: f/ K$ G8 u2 o6 B
- (setq first-11-time 1)" N2 s9 r& e ]# v# @- T. _* C
- ;; initialize control point number counter
, m& `- u0 S7 J - (setq cntl-pt-indicator 1)
% \8 C* f0 U P1 {. @8 G8 T, H( G/ { - (setq data-pt-indicator 1)
* [4 }' w" ]/ V$ x; j: M2 C - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))/ U. K! i7 e/ q+ c3 M/ y
- (set_tile "data_ctr" (itoa data-pt-indicator))
6 j* B3 ]! ~+ x7 F - (set_action_tiles)
8 E, Y( J% f' O1 j7 d4 \; u - (setq dialog-state (start_dialog))( M, }3 t/ p* ~6 R
* E& l" }' x. O- (if (= dialog-state 0), E0 l+ D0 g) H" a1 E+ K2 `6 j9 o
- (reset)
1 p3 j8 B: ^! Z; C7 |7 O1 H - )
% e Q! l# [! c- ? - (if (= dialog-state 1)
* R! E- b+ A* Q, L1 B" c - (modify_spline)2 }! R3 P3 ^3 A' u2 a% S6 X" i( c) s
- )
: }% d% f; j: _ - )
/ x- m m' p# v - . k& S3 O" I7 d
- ;;# }( B6 N/ y# l5 R2 } L9 @
- ;; Modify DIMENSION
; \: o5 a4 r2 _2 `" `- s" T - ;;
5 Y5 ^* F4 @9 O - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
6 a2 U R5 }, G, ^, \" y8 Z" j0 X - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist4 k' Q5 h% [+ z. w; W0 b% V
- dimtype dimsvcurset) |: r/ A4 h! K
- (setq dimtype "DDIMEN"
- F( f- R9 f4 m4 I- [ - dimsvcurset (ddimen_dimsty_restore)
9 B+ Y9 U: m( s* N, ~/ l4 E - )
! h5 _# M9 d7 E# ^ - (if (not (new_dialog "ddimen" dcl_id)) (exit))
" [: @1 |' o3 r- L8 V - (set_tile_props)* M; |6 l4 M" b
- (set_dimen_props)5 H! z! K4 `2 a3 b; A
- (setq dimtext (cdr (assoc 1 elist)))
8 M! s& [! E; g1 {% r( `' z1 t - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext)) @/ U6 G) }, k8 E& O6 _
- (set_tile_handle): h- D7 ]6 \) E% b$ U r; s3 }
- ;; Define action for tiles
2 k; b! m2 v( I& n$ G2 A" s6 _ - (set_action_tiles)
9 V" i# u- i. H - ) g4 B9 z9 l4 e8 D
- ;; Set initial focus to text edit box.
2 Y( @% J$ f$ ?: h6 K - (mode_tile "t_string" 2)
- t# _; c0 F+ l" b, C - 4 j2 _( P h4 z; Q) R$ G
- (setq dialog-state (start_dialog)), s5 V3 q2 N; j7 h
- (if (= dialog-state 0)
) l& t3 l8 {0 ]) ?% r% k - (if (= ddimmt 1)" Q7 p4 |/ L, E H; l4 _0 x A9 R# s
- (reset)! ?1 j3 a* J2 ~( l; p# O
- )1 F- @) N9 _: Y0 ?
- )/ X8 _& @! v! V H( k9 R
- (if (= dialog-state 1)# E8 q$ l5 U7 w. y5 g
- (progn
2 ]' `+ Z1 ?/ `+ R6 f4 \3 n - (if (/= dimsty stname)7 \5 N( `. Z; W8 U
- (progn
! G) l* S# [! r: G - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
' I9 w% p" j. Y/ L - ; doesn't have it.
- y. m, h* t, s0 q1 B: E) E3 B - (if (null (assoc 3 elist))# g# W* e5 Y5 I! F. m
- (setq elist (append elist (list (cons 3 dimsty))))
0 K D1 ]# `1 N* o5 J - ; else just replace it.
, D" x& T' l6 U - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)) r( @% C& b$ [& Z
- )8 Q0 H4 n, b& R" K- [0 k. i
- ; refresh sv_dvlist with new dimstyle.+ T+ f1 d7 s- i( f5 ~, k4 T9 |. G
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))# s$ K( V. R% i! P e9 e D
- ), ^# y* w) s' |% G P4 S
- )* g5 Q+ m+ T% I* r9 O
- (if (not (null dimlist)) ; attempted to change dimvars7 @& @) L }& T, O* G' q# M0 n# A
- (ddimen_complist sv_dvlist dimlist dimtbl)
- n2 {% o3 ?4 a+ G: F* \ - )
S8 K0 J9 ]/ F) W+ i - ; Modify dimension text; E# z( n) p+ G5 z" b& O- g! q1 f
- (if (/= dimtext text)
$ i7 d, {0 j) _& j7 O! g" o% n - (progn# V0 r8 ^, h' l8 A, i6 J
- (setq dimtext (if (= text "<>") "" text))8 P6 c7 n m. w, x8 @
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
- ]% S! ~- k4 M& E. X; `1 P - )
% q( {/ ^7 M/ ?( }, M - )
! q+ ?6 J2 w3 v' D% R - (modify_properties)
i! w% o% I4 J+ ^+ Q4 m - (entmod elist)
/ `9 P' V, A. s2 Z9 E! h - )* X$ c! G. S9 L9 E
- )' ~2 r- Y7 R* P5 k) u
- (if (= dialog-state 4)0 C2 [' ^) q8 X; O$ `: V
- (progn
( j4 B. ^- U! c4 u7 h2 T; j - (setq ddimmt 1)7 k. F" J2 p& _* L
- (if (/= dimsty stname)
9 n! l4 _& n l/ @6 _( @& f8 i$ | - (progn
z$ E" D, n/ \# j8 ^: }% e; B; E - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case. b; X. U- e, l' w% Z4 n
- ; doesn't have it.! [# a' Q: k* e' w, j
- (if (null (assoc 3 elist)) u2 x( h2 h# {: C! |
- (setq elist (append elist (list (cons 3 dimsty))))0 v9 E% f U6 A3 { S
- ; else just replace it.) \5 ~( G+ a+ r+ f$ p( M! }0 N& z% _
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
4 z% p+ [8 S8 V - ): x' Q9 n' z) v2 N; x4 p) ~1 I7 t
- ; refresh sv_dvlist with new dimstyle.
' [" _; I& p; g8 o: c - (setq sv_dvlist (tblsearch "dimstyle" dimsty))% `* a+ B$ `9 n/ b0 s4 O
- )
3 j* q$ B: J) t: R8 R - )
5 C- Q/ i+ a, t8 v: | - (if (not (null dimlist)) ; attempted to change dimvars
( D3 Z% e( Q; J( Z* i! w - (ddimen_complist sv_dvlist dimlist dimtbl)
! O5 m" ]- Y% l" @ - ). g7 c: |2 y& b
- ; Modify dimension text2 j4 G+ n$ Z3 e
- (if (/= dimtext text)
' I# P- s$ l0 B$ \3 S - (progn8 v% u: p( o; }# R
- (setq dimtext (if (= text "<>") "" text))/ I( F3 ]6 a5 |1 M$ d
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))- X8 t' B# A. w) s% ]
- )0 [' X- f$ \, d/ u
- )
; q. X0 _" X0 ]- I4 ? - (modify_properties)
. F/ d* t' k- q - (entmod elist)2 ~# X s2 D; Y0 E) L, L
- (safe_ddedit ename)- ~6 C5 [. _) n2 @) J! f
- (setq elist (entget ename)). r0 z/ G2 X5 k
- (ddimen)
8 P: B5 V$ A/ a - )
/ v- C0 w4 @) Y/ K k! u - )
7 ]7 g! c& H3 | - (ddimen_setvars dimsvcurset) ; Prepare to exit
- q7 }* p- U% i9 w# n! X# w - )% W( z7 l& f% q& P
! Z' U4 L% u8 o0 A- ;;
0 z/ P i& u8 K# ?0 n0 v! P, \2 [ - ;; Modify TOLERANCE
! p; I( t( x7 w, n/ C4 N( d" n! n - ;;
- k: k% ^7 D5 \3 F - (defun ddtolerance (/ a stname n dimtbl
% O$ C& A& ?* L2 a) \ - dimsty dimlist dimovr sv_dvlist stlist dimtype
; V B/ N$ ~& D - dimsvcurset)
( \) i% [6 x2 a, Z - (setq dimtype "DDTOLERANCE"
8 q$ r5 V- l! p - dimsvcurset (ddimen_dimsty_restore)6 K, Z4 Q; Q3 y% O1 i
- ); B' v% G8 ]2 v2 E, i; f
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))# k2 E# w$ d9 D$ C5 W# }/ J
- (set_tile_props)
+ t6 k/ C2 x# a0 s9 L2 C - (set_dimen_props)
- p3 @, R4 Z! ^ - (set_tile_handle)( Z5 f# D( S$ `" I. o
- (set_action_tiles)
4 { K8 g+ v/ }/ B! [; |1 j4 M - (setq dialog-state (start_dialog))
- q: G+ g( \* c P7 a" P. z - (if (= dialog-state 0)5 L- U! o. H" e. F! U, H' G
- (if (= ddimmt 1)
5 y/ e# O; t' F" n4 U" R - (reset), x4 l5 Q" K/ k& ]3 h7 Z
- )
' `) C9 N4 R6 s# @ - )
$ u \+ y8 @) X$ k. j- k4 O - (if (= dialog-state 1)
& G: z+ u+ E0 {; X; C2 v1 U - (progn
2 e4 }- n& i, P( Z( x, u9 J/ ] - (if (/= dimsty stname)
5 Z' T% z6 x3 X* ]+ |1 V - (progn# X: i: D; n! X8 b6 `" o m
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
. D! T9 O2 m' b% E& G - ; doesn't have it.! w/ m) g4 [5 f" d: v' s
- (if (null (assoc 3 elist))
1 j# T ^8 ?5 W2 K& u; |8 ]# Z - (setq elist (append elist (list (cons 3 dimsty))))" p! f, p' Z4 Y" I* N3 D% I+ v
- ; else just replace it.
I/ ~, k0 X% }* Z- i: T# A5 ~ - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)) O3 N6 f3 }! A; K
- )
X* A6 k# q$ A6 E8 P" m& @ - ; refresh sv_dvlist with new dimstyle.
$ l8 l* a i! P; f- T, o - (setq sv_dvlist (tblsearch "dimstyle" dimsty))3 w& G4 m4 Z" L9 q G
- )6 N' c% k* Z7 h. F
- )
8 _3 d; Y# ], y( y# d - (if (not (null dimlist)) ; attempted to change dimvars
+ }/ V* }# k* {5 E6 [ - (ddimen_complist sv_dvlist dimlist dimtbl)
% {% K7 d) u! H$ M! c - )3 x$ j; p- T* P: M
- (modify_prop_geom)6 ?3 O0 O8 e8 h' P' `
- (entmod elist) t: ` X2 I$ z7 E1 @3 Y* }
- )
, M( F6 Q# _& a: C - )
$ d2 ?$ D& X5 \& E6 i$ X" U - (if (= dialog-state 4)
$ T c: u; y J, F' g - (progn' R2 g5 _$ j) C; v
- (setq ddimmt 1)
) F% @' G0 X4 ?/ q' [ - (if (/= dimsty stname)
5 h6 q8 z9 m9 y) U# i - (progn
$ r: y9 a- {9 K0 V - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
o2 e% Z+ a6 Z! l - ; doesn't have it.
1 o3 n( ^2 G+ f+ u7 f- t7 ^ - (if (null (assoc 3 elist))
* r9 \0 y2 n3 Q, D5 Q3 j: o - (setq elist (append elist (list (cons 3 dimsty))))
5 s% v; }+ I) p+ ?6 D4 I _ - ; else just replace it.3 T$ f |/ k8 j# e& Q
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
" _" R, [0 f L7 J) Z - )% s5 H( W* j; \3 _& a! ?
- ; refresh sv_dvlist with new dimstyle.7 Z# T' p* m( [# c1 s
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))7 z* H; L0 w$ z1 i" y5 S! d2 q
- )6 W3 M5 |2 ?! M9 T; T0 B& b
- )/ @+ R! K" |. q- I. w: U( l7 A, f
- (if (not (null dimlist)) ; attempted to change dimvars( H4 b* ]1 t6 H! f# v
- (ddimen_complist sv_dvlist dimlist dimtbl)
8 [" P- U1 e$ Y9 B6 r3 p - )
2 B+ h4 |$ e. P) _* Q2 x$ x - (modify_properties)
! ~- C; o+ l! @- m6 G3 [ - (entmod elist)% J9 ^/ p+ n- j. R* [2 ~
- (safe_ddedit ename)( I. [3 {! y, J7 |! x* ~7 A
- (setq elist (entget ename))/ V$ y8 }, f. ~& n' ~
- (ddtolerance)
: y, B5 s- w! p - )
@& H( X# j$ M' M - )
: Y- b7 P+ B, I m( X, [% N - (ddimen_setvars dimsvcurset) ; Prepare to exit
# M' v- q& a* }3 H f - )
4 v$ l( X" ~0 }$ ~
+ T& B( ?1 d& t+ f- ;;
/ r3 p/ m. _8 ^ - ;; ddimen_dlg - jump to ADS ddim module
" p+ [6 A3 H& G1 Y. M - ;;
% d/ O9 Y' u, x1 N5 z/ q' T& ^ - 9 t* P1 X- ~4 O) i F
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
5 m( _( ?; I: x7 `& _ - " G! ?# Q3 N9 z5 ?
- ; Jump to DDIM with overrides if any.4 j7 [# }" Q+ I
- (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry8 i1 L7 a4 z: B' {3 I) ~
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
$ S, i, B* R |, P/ z: A - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
1 }, T ]7 N+ n( |/ ^+ L7 G9 S) | - )- w6 }+ l' Z6 d/ a
- ), n9 n, L4 X( W1 _% v
' F, B6 m: Z+ |& _) T4 ]! B' Y) ~- ;;( u# [6 R0 I# r* b5 Y
- ;; Dimension variables updated are stored as overrides.
( x: E/ Q4 o- Y9 l/ z- W& Y$ n* e - ;;- V4 V! }4 d0 P" `- ^
- * X% r# l1 b; p
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
1 f3 N$ Y0 M5 u R; ~ - dv dime commandIssued)/ g; b! Q8 A, e; Z- B
' [* g$ U! z% _- ; Here we skip the following first three items:
3 i. `$ A* |3 ? ], r/ v8 C: T - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)% f4 _1 g! \7 Q( o1 R/ G6 F+ ]6 y
- ;
6 O3 M) ?7 L+ }3 W4 r( C- t: x - ; The list comparison immediately begins with dimvar.; a% x1 C; [# M6 f) A
- ;+ N2 P8 ]0 ?% M& N o* k( [' W
- ; dimolist - original states of dimvars
7 o2 x) N( q0 A4 t; _* ~7 K - ; dimnlist - new dimvar list which is of the resbuf's
0 q: l$ v* C' o& M% S5 C" [+ z2 O - ; dime - entity name for the dimension
1 E8 g7 D# t! T) R) e0 I0 f - ; odvar - value of dimvar for the dimolist
- B ~* x! C9 O) C - ; ndvar - value of dimvar for the dimnlist; D9 C9 {9 ~) ^9 @0 f( Q$ Y3 M
- 6 h h1 z: T: D! L
- (setq i 3
6 b4 C& e# |1 u' t4 i - dime (cdr (assoc -1 elist))# f8 _5 U1 K; I2 v; j2 \* q
- ): m$ ?; P0 G5 B3 j4 h1 ^
- (while (setq odvar (cdr (nth i dimolist)))
. K2 V$ I/ O. O" {# ~ - (progn; B' @. E# L h6 F1 i) J
- (setq ndvar (cdr (nth i dimnlist)))
) S6 v' M/ y8 { - (setq dv (nth i dimtbl))# a2 C7 L) `/ X7 j1 ^
- (if (eq dv "dimtxsty")3 Y9 Y3 b/ Y* y8 Z( r
- (setq odvar (cdr (assoc 2 (entget odvar)))
1 i. y/ `3 ?4 }/ B% c$ \ - ndvar (cdr (assoc 2 (entget ndvar))), k6 V8 p$ f p/ D
- )1 t; S( J7 S6 R
- )$ n8 K+ d8 f1 H+ [
- # I3 v" U. U: M+ Q' N$ |
- ;4 U9 D' \0 M! i U4 z9 E
- ; In order for DIMOVERRRIDE to operate correctly with string% ?0 u d+ G: R9 A
- ; based dimvars, we must pass "." versus NULL strings.: w, ?" |5 @* M0 s
- ; In this case ndvar is the new dimvar value the user wishes, {8 \; R# u8 G+ p) o6 {. k; k
- ; to update on selected dimensions.
% Y( ~+ p9 k' ~4 i9 ~! A9 H - ;3 l w1 `& y: h$ i. D& z( @
- (if (/= ndvar odvar)* [, l2 X6 L( `* [$ @! A+ I; K) A
- (if (= 'STR (type ndvar))
) Y; N4 y6 j7 B/ T1 L' U - (if (= ndvar "")4 H' J/ l6 r$ W
- (setq ndvar "."))))( d `6 H1 g) n" k) Z. `9 L$ p6 B
- ( {, i3 \/ o6 z% ?5 I% | r
- (if (/= ndvar odvar)- M9 }) g. ^. N# R: k% ? l
- (progn
- k# P' L$ M: G: r; n - (setq dv (strcat "_" dv))
+ Q/ x& I( T0 B* m+ N# [8 _ - ;! u- n, \# p. E$ r1 H5 l
- ; Start the dimoverride command
/ T( w B- p. m' v5 I/ v; K0 | - ;) }$ o3 C$ ^4 Q6 z) t) x( c
- (if (not commandIssued)4 U3 V9 U; \( X! V9 f
- (progn/ R) j2 U- j5 l6 E) S. W$ o/ z. b
- (command "_.dimoverride")
7 q8 R" K: T- g - (setq commandIssued "T")* D% I1 r' Q( P$ N. R, r! n
- )9 B* j1 I3 K+ K; o0 S# l, I2 \3 ^
- )% b2 q0 t( Q$ E Y$ L" y: C
- ;
% f+ u8 n9 ^9 P2 R - ; Issue dim overrides0 U! l& z& k) o4 w; b7 d, G$ V
- ;$ N0 l: U4 B: g5 q% d5 n2 z
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
6 \$ S) y4 A2 s+ h# E \! J3 h - (or (= ndvar 0) (= ndvar 256))
( d7 G) j5 y" u( [ a- D$ ~ - )0 a- t# H; n$ r* U3 m' q
- (progn
% |! u" k0 B1 o; h - (if (= 0 ndvar) (command dv "BYBLOCK"))& X' E F/ r- R$ {
- (if (= 256 ndvar) (command dv "BYLAYER")). R2 [, \7 S2 m. n V
- )4 o6 s+ J' N* y" j
- (command dv ndvar): E5 b) C' j1 K
- )+ j2 a7 @! ]& L/ y4 e
- ). Q- o4 l# Y1 \; S+ ^# x4 h: b) ]# U
- )
# T0 O* n+ G3 W/ ^: A - (setq i (1+ i))7 |- w+ a2 P$ l6 `$ C2 n' H
- )
2 U u7 t0 N7 Y& c - )
7 A4 @( K W+ W7 P - ;# T" K* u$ `+ F% h
- ; Select Entity and terminate command
- e8 p; `5 o! s" K# Q6 R - ;
! p' a5 u# P! f - (if commandIssued
4 T+ r" b& S( [3 E( L/ D# t - (command "" dime "")
4 N& C$ w2 m. {$ F - )8 @" @' w4 P0 P
- )2 ~/ ^) o3 \2 M# w6 h$ I
- - l" O' }) ^$ Q1 Y3 l- W
- ;;
% s5 P' g# U* O - ;; Get style name currently selected style name.) W1 m; F% r! E) Y" c+ D
- ;;
g% j! D6 z+ U- u5 ]3 | - 5 Z# {/ A9 V" ? O( z. v1 d
- (defun ddimen_style (/ dimsty)/ Z& \* X# Q2 _8 p' ~" E! Z
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)! c% H3 L# H* v B
- dimlist (ddimen_getdimvars dimsty)
0 m9 b- E- g3 i8 z5 q I7 R - )7 L2 M; p/ ~1 \; q4 E& m
- dimsty1 z# B& U4 F2 V Q0 S0 Q7 H
- )
" z7 i. a7 i' A3 V2 A# U+ T
) f: z1 d8 v5 R$ {9 z- ;;
+ C' V& Y( l F r6 J4 C - ;; Set dimvars
0 q; H0 P2 H6 k& S/ g - ;;
8 ]# t2 }/ W# B. a8 ^ - (defun ddimen_setvars (dimsvcurset / dv i)+ E5 D& K- F0 b% y
- (setq dv (cdr (nth 1 dimsvcurset)))% S5 F' {; g& J* c0 x
- (command "_.dimstyle" "" dv)7 z9 v$ c1 v- E* Y0 r1 u
- (setq i 3)
4 ^) F+ b7 e2 [; u/ Y8 w - (while (setq dv (nth i dimsvcurset))
! Y$ H5 X0 W' t( g$ E - (progn
3 U" x& A; m. l, [0 s+ a - (setvar (car dv) (cdr dv))
% g4 d5 s; O+ i8 ^ - (setq i (1+ i))- e" T, r; O! ^6 b K2 ~9 h( L" l6 t/ I
- )) F" t0 y+ g7 t0 e
- )9 v& P! W0 r: ?! s+ [% t" i
- )
5 \" w3 ?' K& h/ i/ @0 Z+ \1 R - ;;6 t# } K& ~3 T6 J* n, ^
- ;; End-of-dimension
2 y% H. e' z1 z7 [/ G. y# r c - ;; ==================
) N9 _1 o. l j+ F* j1 m
* s! C% `5 `! j7 }1 A$ x- ;;7 V4 c4 e, R0 M& t6 b: T$ M0 z
- ;; Sub-dialogues for properties. Common to all object dialogues) c1 \( h; P7 a) s( G: h
- ;;
" ~, R- J5 e6 f* J' M8 g - ;; This function pops a dialogue box consisting of a list box,image tile, and1 v: E+ E! t7 Z/ r+ U6 s; @
- ;; edit box to allow the user to select or type a color number. It returns3 {6 D8 Q: L# q. A3 L
- ;; the color number selected.
( e; i9 A8 `8 V0 E$ I# P2 o - (defun getcolor (/ old-idx colorno cname lay_clr)
- _6 H( H# Y; @! z- P l2 L: j - (if (= (get_tile "error") ""). \/ W4 {& ?3 W* {; o4 r& L* o8 H
- (progn$ w3 H/ I1 _$ e7 F
- ;; Get the color associated with this object's layer, for use
: z$ e& _1 ?& y8 M6 y3 v3 n - ;; in the color swatch if the user selects color BYLAYER.
) {1 B+ }5 Z( o9 ]6 w. @5 F& K/ n- L5 { - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
- Y: j, H" Z& \2 p6 W2 G - (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))' J/ \& y: X# L3 |
- (progn$ z3 L) z6 d+ j9 U/ p8 s
- (setq ecolor temp_color)8 X t. n/ o6 L8 V, x7 o+ Z' Y! D4 `
- (setcolor)
7 i9 s: P8 T& v. e( W- d# |7 V! D) D - )
! e- |: h- v2 ?1 x3 h - (setq testcolor temp_color)1 r0 j1 Q7 ?' W7 ?6 K
- )
* I+ N \$ H4 Z) ]; w2 y - )2 }0 n* [- c! W" D3 y% p
- )4 d; K8 F2 P$ l+ Z- ~" c
- ecolor& D3 k) q3 ?# B( U& h' y
- )4 c8 T8 o, m* L, s
- ;;
+ F1 b% p8 R0 H# @5 O - ;; Function to set the color tiles.
$ Y: U- Z8 I* b9 n - (defun setcolor()$ t9 c- E- C' `( P0 X- q' o6 }0 b4 v' a
- (cond/ E X) Y( e3 @! ~: t) w
- ((= 0 ecolor)
1 I" e9 c: d. v. w - (set_tile "t_color" "BYBLOCK")
. t0 |7 e+ E# R w" W+ E o. E - (col_tile "show_image" 7 nil) ; show BYBLOCK as white' r h8 V% M) r3 q( p
- )9 f( i9 A# ^* O9 D8 t, Z
- ((= 1 ecolor)$ b/ d, y% ]9 L
- (set_tile "t_color" "1 red")" g! r K$ G3 p V* c% v
- (col_tile "show_image" 1 nil)
- F2 E) i0 T. [ x6 O; V - )
: B2 X5 r9 g6 E) ]9 T- ` - ((= 2 ecolor)4 t: B8 c- }6 M: O0 L) Q
- (set_tile "t_color" "2 yellow")
* Z {# ^, T; P) j1 Z - (col_tile "show_image" 2 nil)! _7 y. g; ~, T8 u% ]
- )
9 J, N2 v+ Q( c: O. ] - ((= 3 ecolor)
1 j. r1 Q. e: R) R- F/ q# E" }( E - (set_tile "t_color" "3 green")8 L4 G9 M* ^3 R8 l- ~
- (col_tile "show_image" 3 nil)
' }$ W' f/ X \1 P - )" d% W/ S C) I0 P1 w% R9 k* d
- ((= 4 ecolor)
* S* E4 i; V7 E% \2 l1 }4 @ - (set_tile "t_color" "4 cyan")6 @2 d/ Q: O0 F4 o
- (col_tile "show_image" 4 nil)
/ g! Y: N2 K/ L" u" o5 \) U7 O7 u - )& y, k2 d$ {' r2 y% s8 \
- ((= 5 ecolor)
* f6 e5 k. S/ u0 d. f1 _ - (set_tile "t_color" "5 blue")
6 g$ v" ~# s9 U; x; X7 O* |) ~7 M - (col_tile "show_image" 5 nil)
; u* J. Y |# C. [* M. K - )7 ~ D/ P2 O, b5 U) [! X9 _1 m
- ((= 6 ecolor)
, v% O. S5 k+ r7 F& | - (set_tile "t_color" "6 magenta")
4 }- }$ I8 ]8 u1 V! z. ^, |6 R, U/ p - (col_tile "show_image" 6 nil)8 [8 r8 f3 p4 R6 A( M9 @
- )
. k B' h/ r F - ((= 7 ecolor). F& _! D6 Z' v. {" O r
- (set_tile "t_color" "7 white")
) I- r$ v! X/ p( g: A - (col_tile "show_image" 7 nil)3 @9 }, G: U0 y' J8 @
- ). Z2 n% H9 Q* Z$ y% X4 i8 L; ^- @, g
- ((= 256 ecolor)$ x2 i- ~) q: G" o0 `& x* T
- (set_tile "t_color" "BYLAYER")
0 N* D- Q' `5 t5 f$ x u- H( d/ a - (col_tile "show_image" (bylayer_col) nil)* |, S' z/ w; f2 U; i
- )
/ Q+ L3 q( Q$ w; [ - (T
& l0 E+ d" b& Q5 r - (set_tile "t_color" (itoa ecolor)), s/ X. ^7 n& e( i- {: M, O3 O: }
- (col_tile "show_image" ecolor nil)+ B5 M! Y# v& L
- )+ X# q$ w0 T& U x% n* J
- )
0 V0 n8 u* ?- c" E# e' s/ W8 x2 E7 q - )3 @1 d6 |& w2 s. R- c
- ;;5 P+ d# M1 T( J B
- ;; This function pops a dialogue box consisting of a list box, image tile, and) i) Z2 K. _0 I; ?
- ;; edit box to allow the user to select or type a linetype. It returns the+ I% O# t& _$ N
- ;; linetype selected.
( M3 b6 D6 O! t. H# J) r. s/ |) Q - ;;" k. a3 q9 L- X4 M) S
- (defun getltype (/ old-idx ltname)
% @* W) M0 E' s* {2 {! F - (if (not lt-idx)/ Z- W. z& o2 ~- }
- (progn
' f, i2 C" ?) I5 h: d. T! E - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
# ~. k3 m* M. g( J/ _" ~ ?' `' L+ | - (cond
$ }, ^ s( p+ ~" F, O2 q - ((= eltype "BYLAYER")$ q- i) b2 Z* M' d3 y) c+ ?
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))* C6 I0 J( X- C3 v9 {# w
- ((= eltype "BYBLOCK")
/ a# }( p/ O/ J# `) e i - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
0 `6 u1 v* T/ z% [& i5 C - (T (setq lt-idx (getindex eltype ltnmlst)))
+ Y! X0 f% z8 x' ~4 ~" w1 |) ` - )
: t5 D- X5 D# `& s- Z9 _ - )
- r; z8 p) z3 }9 ~+ J' w$ f+ E - )
# k! z$ \3 |2 o
. ~7 i4 {& U3 D2 I& I6 F- (if (= (get_tile "error") "")+ F: v, Z N& @3 q5 [6 o! ]3 J
- (progn
8 l; |9 p# ]7 P: x$ }7 a. ^0 W - (if (not (new_dialog "setltype" dcl_id)) (exit))
3 o `/ h7 J `% D% @, M - (start_list "list_lt")
$ w6 k/ T+ E4 R( ]1 B - (mapcar 'add_list ltnmlst) ; initialize list box( [9 A( \1 r1 G: a# w! z: p
- (end_list)
+ [* S- g8 ~7 F5 ~) N - (setq old-idx lt-idx)9 {: d! [% L( ]' {
- (ltlist_act (itoa lt-idx))
' R, u, e) K0 ^4 C9 \& }
8 X) s2 i1 l3 [5 X3 U& Y$ j+ s- (action_tile "list_lt" "(ltlist_act $value)")$ w2 [* K9 C: p& s
- (action_tile "edit_lt" "(ltedit_act $value)"): y" b) O) L! V- Y/ e
- (action_tile "accept" "(test_ok)")6 |( k) a7 r2 t6 q# I6 @
- (action_tile "cancel" "(reset_lt)")% D9 C9 y3 y0 ?2 m
- ( Z) m# F- q0 c4 y3 }7 B
- (if (= (start_dialog) 1) ; User pressed OK1 U3 n; s! M' i! c, @: u t+ o: z
- (cond
3 H @4 @' I' I3 @ - ((= lt-idx 0)4 {/ @2 N5 q! q* I9 _9 X' A# u) c
- (set_tile "t_ltype" (bylayer_lt))
7 f* R9 }1 R3 y9 j - "BYLAYER"
3 t6 m; N( L; A$ V4 M' A - )
% Z" I9 p- t# A1 t - ((= lt-idx 1)
. w$ H( U0 {, o: G8 q! B - (set_tile "t_ltype" "BYBLOCK")
! k4 ~# c$ Y8 o" [, H - "BYBLOCK"
) G+ M$ j3 G! u - )
- Q% d: z% L+ p6 q% | - (T (set_tile "t_ltype" ltname) ltname)
/ G8 p9 u; S; N - )
/ Y8 W6 T V( h) T - eltype
, {4 G4 V( x; v! Z7 g' h - )
5 L2 I/ K# ~1 q0 K d$ E - ) \ J' r7 w8 r/ ]
- eltype2 U) M5 t7 {, T2 m3 f& w
- )4 ^/ p3 T) [! W3 o- ]
- )
' K: \" F" O! U t. H4 L# }. ` - ;;
2 ^3 x; _2 i" B: s( } - ;; Edit box entries end up here
& S: r9 @, ?5 P- c1 y0 q( \4 B - (defun ltedit_act (ltvalue)+ C5 ~6 w1 n& `. V# W$ t+ N
- (setq ltvalue (xstrcase ltvalue))
. ]' _, g9 N& `- n; p - (if (or (= ltvalue "BYLAYER")
7 `/ }- V' f! D. x. L7 o+ y - (= ltvalue "BY LAYER"))
; s( d( v3 q! A- g1 M- p! d - (setq ltvalue "BYLAYER")- C8 T% b. O& b3 J; \. j& n( N
- )
/ ]3 g% {0 p9 t N - (if (or (= ltvalue "BYBLOCK")
2 z6 M, ?( ~; i6 g9 ^$ P( O - (= ltvalue "BY BLOCK"))
/ U, X. w" ?- i% v& }; R) t - (setq ltvalue "BYBLOCK")
) `& p" \0 x8 B3 Q& t1 j - )
( k& J- ~* p% B! q( T5 j% U - (if (setq lt-idx (getindex ltvalue ltnmlst)) l. }: b( N% E3 p! ?
- (progn
2 j- @+ m$ d- U. A) E - (set_tile "error" "")* |: w5 q& b. o# T9 S
- (ltlist_act (itoa lt-idx))' @! E+ j( f1 P! b6 W* ^
- )
S+ z" e* \: S6 _& C - (progn: M8 _" T6 R9 |; G b+ |# r& M2 x
- (set_tile "error" "Invalid linetype.")) i/ }2 U( k8 q1 Z* t! K
- (setq lt-idx old-idx)
/ h* @) t* _3 M+ B- F - ;; (mode_tile "edit_lt" 2)
: j- m( w# F x6 X: f9 ~* ? - ;; (mode_tile "edit_lt" 3)7 T2 C6 |" l* h" i; y0 u) V8 s
- )- p# d9 G6 `' j4 D
- )
( `7 k) } P1 W! [( [ - )
8 K5 f# X& g& y( ? - ;;) r' b- p" R+ L- A1 [9 w# H: E
- ;; List selections end up here. Update the list box, edit box, and color
) Y. B" K% h& q$ p j; k - ;; tile.
- y8 G- p8 p9 Y" @0 h& X; B8 l - ;;2 x& n' L' j. [& z' N( M
- (defun ltlist_act (index / dashdata)
g3 ]* x& d8 H6 ^ - (set_tile "error" ""): n: s" g( T0 L) U
- (setq lt-idx (atoi index))# n! c( m* z* t: D
- (setq ltname (nth lt-idx ltnmlst))
- p O" L- T4 z. V4 ] - (setq dashdata (nth lt-idx mdashlist))% L6 `* I% L) C m f
- (col_tile "show_image" 0 dashdata)
( M4 B7 ^* }* c - (set_tile "list_lt" (itoa lt-idx))6 E W* `5 c# N6 Z5 ^
- (set_tile "edit_lt" ltname)$ G" Z/ r8 ^$ u C
- )
8 b6 m+ V1 T4 e) A - ;;5 r* a) ^( H: i
- ;; Reset to original linetype when cancel it selected$ \7 l/ O) g, ]% L! Y( e8 ^7 U
- ;;
8 u+ x- [" _' d" a% l$ T - (defun reset_lt ()& [7 c [5 ?4 i/ [
- (setq lt-idx old-idx), o4 F. I) B5 f* M4 M' w
- (done_dialog 0)
: y6 R7 }; O, c% t2 F+ p `, d - )
; c2 y) G" u) e7 f/ q& B - ;;
3 z9 h6 R. c j6 j& q - ;; This function pops a dialogue box consisting of a list box,image tile, and
" m% `+ r4 f- |0 X* I9 ? - ;; edit box to allow the user to select or type a layer name. It returns the
- q7 o; V: ?* b5 o' u" G S' P5 N - ;; layer name selected. It also has a button to find the status (On, Off,
G5 l/ s8 Y2 s2 a. t! y1 E2 z - ;; Frozen, etc.) of any layer selected.
; V$ ]6 h. {3 G: f - ;;
2 y8 t: C! X6 E7 g2 ~( \, e+ H - (defun getlayer (/ old-idx layname on off frozth linetype)
1 k. E8 K0 R% P1 K2 ^ - ;; Create layer list the first time the layer+ ?+ r! Y% A/ W2 S# z, w0 e
- ;; dialogue is called.
1 f* y. }" [- r8 i/ e - (if (not lay-idx)
4 u/ J( Y! Y" K9 l5 g ?4 ?. U" n - (progn y' H6 f6 L2 n7 Y( }
- (make_lay_lists)% R" ?, s( L7 k! ~0 b X
- (setq lay-idx (getindex elayer laynmlst))& N6 a: l0 a9 l( E! x3 B
- )8 d$ _3 Y: W- ~* \
- )
1 r" D% v" S6 F9 M - . X& O* M- t: l
- (if (= (get_tile "error") "")# K A& m% j0 e7 j+ S8 E
- (progn/ ? R- A0 Y' l( a. N
- (if (not (new_dialog "setlayer" dcl_id)) (exit)), O$ v, E( K0 L' o
- (set_tile "cur_layer" (getvar "clayer"))
( W7 |+ h0 ^7 |1 ~ - (start_list "list_lay"): A. @: d9 h+ m0 Y k
- (mapcar 'add_list laynmlst) ; initialize list box$ D' k6 h( J3 R8 h5 e; v
- (end_list)8 {9 Q+ I/ F" @
- (setq old-idx lay-idx)
' i8 m# O& T. O0 } - (laylist_act (itoa lay-idx)), |+ C4 ^5 \, H) C8 r9 ]3 z
- (action_tile "list_lay" "(laylist_act $value)")
) T: Z, u8 B3 d5 b) D - (action_tile "edit_lay" "(layedit_act $value)")
! a8 ^4 E9 ?! Y - (action_tile "accept" "(test_ok)")
2 G4 Y1 x( a( U1 f2 R) S" o - (action_tile "cancel" "(reset_lay)")% P; E& k% ]/ M* c
- (if (= (start_dialog) 1) ; User pressed OK
$ i- R* z7 ~4 _& `4 H, x% o+ b - (progn% y3 U9 z/ Y' l' B1 ^- H
- (set_tile "t_layer" layname)9 g$ ~( g1 ?# I9 J2 F5 z3 d
- (setq elayer layname)
0 _% D$ P: c! [ - ;; If layer equals bylayer reset color tile; G) ]) g) l' r# r+ r0 z# H
- (if (= ecolor 256): q! G5 S$ t& z6 B( i. F% S% l
- (col_tile "show_image" (bylayer_col) nil)
" H- n2 S$ x3 G) E - ). ]# y% X- L/ D% X# Y
- layname, ^+ o3 S" V9 U' }3 @
- )2 e, R; c: y: \+ e
- elayer
c1 S S8 K- }- K - )0 k* `9 ^. r0 B- l
- )# u8 _: e% |7 |7 M8 [5 l* ~
- elayer1 m! [( M* @ n: O& i
- )
8 ]( q( d* y* ]! L9 x5 ]1 t - )
. U: g2 d% d! h7 |/ H, h, g0 P, e5 ~1 P - ;;7 q7 h- e- ~- K" V. {
- ;; Edit box selections end up here. Convert layer entry to upper case. If" \) v7 S) s2 W8 S( E6 p- b' |
- ;; layer name is valid, clear error string, call (laylist_act) function.+ p) P4 W( J( W: Z
- ;; Else print error message.0 b+ G6 u0 j* H8 b4 F
- ;;' D. [8 M; X0 |, D. p% D! `
- (defun layedit_act (layvalue)
4 V& f2 J) \1 Q8 Q+ Y# N - (setq layvalue (xstrcase layvalue))' P \3 P- L6 D) |. u+ v. F
- (if (setq lay-idx (getindex layvalue laynmlst))
' @& } F( h4 X - (progn8 C, p) Y! ~: G) |) C( Q" \' s
- (set_tile "error" "")4 w! G [) X( d# l. \
- (laylist_act (itoa lay-idx))
6 k2 _( j1 P2 {8 } @& c; V - )
: E: B6 y" p( z1 l, p - (progn0 \ b( v; z* _
- (set_tile "error" "Invalid layer name.")
6 A" }( b# U0 B( m - ;; (mode_tile "edit_lay" 2)- S3 |9 y! \9 n, O: y
- ;; (mode_tile "edit_lay" 3)3 f; X. p8 }9 E" S7 N8 @
- (setq lay-idx old-idx)
, B' l. G/ \7 x% Z" O6 N" ?+ w - )
" K8 r M; }5 Y: B/ I0 U - )
" m4 F+ B8 c- ~( k) [ - )
% v1 d, M' `8 Q- j - ;;
7 l a w3 Q5 O* o* S - ;; List entry selections end up here.! v# {* X8 d2 V6 E) U/ {
- ;;
7 e+ Y: x7 @: V1 m3 b' O - (defun laylist_act (index / layinfo color dashdata)/ K- S3 a' {& d: V9 j
- ;; Update the list box, edit box, and color tile.$ s2 \( Y) ~& x2 L
- (set_tile "error" "")
5 u! c8 l2 P% B0 d3 ^/ H5 x& ~ - (setq lay-idx (atoi index))% J- b, K& h: I- [9 U
- (setq layname (nth lay-idx laynmlst))* b$ `7 {) z1 y5 [/ b; T
- (setq layinfo (tblsearch "layer" layname))
- l. t8 O2 p; q - (setq color (cdr (assoc 62 layinfo)))
& L7 d- Q( ^ S5 m3 G - (setq color (abs color)), v- V( o# R3 l
- (setq colname (colorname color))
8 u' K8 |3 T d - (set_tile "list_lay" (itoa lay-idx))4 |/ m& @% e$ }& P1 K
- (set_tile "edit_lay" layname)
4 z; A. H1 g' T; b - )
/ g" W9 t" _) X - ;;, ~. S7 j; i" s, Y$ ^
- ;; Reset to original layer when cancel is selected.
1 H D' B' a0 ~, F - ;;+ |# ]% d* y: f
- (defun reset_lay ()
6 r4 x: x; J8 n7 P. W" E' M - (setq lay-idx old-idx)
' ~1 b4 i- t. O# L - (done_dialog 0)1 ~2 U4 J/ s; K T( E1 }. L
- )0 d: f" N- v0 S+ N
- ;;
+ C4 f4 g2 e, ^; A - ;; Checks validity of thickness from edit box.1 P: `+ o% Y, m6 o
- (defun getthickness (value)
6 Z+ y5 t; u8 X( C4 o' \5 w' F+ l - (setq ethickness (verify_d "eb_thickness" value ethickness))) M" X/ p+ {; y! `
- )/ T: v, Y. p# ]0 O0 V! a- m/ G" p
- ;;. i. [3 g0 {. b9 J, {+ z
- ;; Copy of (getthickness) for ltscale. If more, make this function
! _$ {0 J0 d0 S7 s, O - ;; generic.5 J/ I( A! v2 B, n2 i; Y
- (defun getltscale (value)
" N8 n0 q2 G& H - (setq eltscale (verify_d "eb_ltscale" value eltscale))
4 k- P0 s$ ~8 E* N- d5 | - )/ w2 Q9 H2 j5 P0 R/ A1 V
- ;;
3 ~ |& x, ]0 K4 j. E2 H. {1 e - ;; This function makes a list called laynmlst which consists of all the layer9 N$ ~' R( A, H- f
- ;; names in the drawing. It also creates a list called longlist which
3 m8 s2 ?$ N$ K% w - ;; consists of strings which contain the layer name, color, linetype, etc.
" \. [# L. c6 Z - ;; Longlist is later mapped into the layer listbox. Both are ordered the& V0 l6 A) Q' p* E- X: {2 [
- ;; same." X: o: Q5 L& @+ @: l6 Z) E
- ;;) t5 p* i/ K7 p* s
- (defun make_lay_lists (/ layname sortlist name templist layer_number)
" `6 w/ l$ o6 p* i d! E - (setq sortlist nil)
5 _) Z0 G1 t# w Q; r& l6 z - (setq templist (tblnext "LAYER" T))
' r7 a7 q! u o+ ] - (setq layer_number 1)
* p7 T1 } b6 \( V1 D: n0 O/ r, V - (while templist0 @3 Z; h4 t' F$ ?; O% s
- ;; No xref dependent layers, please.7 O% C7 N& j+ A
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
& m8 C# X$ a: Q& ]$ R4 Z9 X" Y) H9 B - (progn/ z+ H% } U: b' c6 o7 d
- (setq name (cdr (assoc 2 templist)))) J/ M" ~0 {1 F R( w
- (setq sortlist (cons name sortlist))* {: P, l1 `9 W
- )# J j' z# I1 w
- )3 [% q& \7 o, R8 r
- ; Get the next layer.6 \: Y$ X f( S: C
- (setq templist (tblnext "LAYER"))
% l0 r" C/ K9 o. B$ Y! z - ;; Not dead message...( ?( Q' T) Z9 c* a9 b
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))2 ?, ]. u/ a# M( h
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
7 w( c7 [( u0 `* ^0 @/ K5 a6 n - )8 \; z+ `! g1 \3 L% k0 @. U- {
- (setq layer_number (1+ layer_number))
8 E# ^/ D: p; D+ h, p - )
, H9 r1 t a( b; p% a/ j - (set_tile "error" "")
, R) {; j6 G+ f) O6 a - (if (>= (getvar "maxsort") (length sortlist))6 c! ~; c' r9 a
- (progn
, V$ Q0 h& |. N" F' I5 S$ _1 f - (if (> layer_number 50)
6 }2 {0 s/ `/ z" T - (set_tile "error" "Sorting...")% u! q. s" f, I% d* Q; F8 h
- )
# y& U* ^! O: T+ `2 B: P - (setq sortlist (acad_strlsort sortlist))
. \" j8 X' Z) p) |2 g - )
0 Z" O! m t# N0 _6 Q0 `. G - (setq sortlist (reverse sortlist))6 _+ p$ H; q$ A
- )
- `9 U. l+ m, V% l% l$ {6 W ] - (set_tile "error" "")
; @; }$ g/ x a" X0 } - (setq laynmlst sortlist)
* F8 h; j% c. e2 T# k( j - )
* f# q7 |) O, p3 U2 E- v* D- m6 n7 q - ;;- ]! B! W; D, b! A& j' q( I
- ;; This function makes 2 list - ltnmlst & mdashlist.& n/ @' P' d7 Z3 j
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
5 a7 o) \/ l! w* P8 U - ;; is list consisting of lists which define the linetype pattern - numbers5 M& G: O) H9 g) [( k
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list) }! e; f8 l3 w0 s
- ;; corresponds to the order of names in ltnmlst.
9 v& O3 V! R9 n g3 X, g - ;;! J$ o0 ?6 g, I5 t5 I( \2 m6 B
- (defun make_lt_lists (/ ltlist ltname)
$ F' e9 ?8 X0 M! D - (setq mdashlist nil)
* F0 h- e2 N9 { - (setq sortlist nil). y! F3 t( S# [! B
- (setq ltype_number 1)) B8 \1 {& H& f* [1 ]
- (setq ltlist (tblnext "LTYPE" T))( o) U0 o4 d7 F$ D' [" l& a
- ;;(setq ltname (cdr (assoc 2 ltlist)))% \! y, F e/ [
- ;;(setq ltnmlst (list ltname))
% r: x% u& O; ~ - (while ltlist8 E3 u& `, T$ w u" z7 E" p2 X1 f
- ;; No xref dependent linetypes, please.1 F& x& ~* ^. x; `, I5 V9 n" A
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
; l) _2 |- ]! c) r3 R# {% D! Z - (progn
8 m4 q- S8 A' ?8 a - (setq ltname (cdr (assoc 2 ltlist)))
/ H* h5 l2 o- a" ~5 z! \ - (setq sortlist (cons ltname sortlist))
0 o1 n" g* j; Y; j/ X* \ - )
! @0 V/ o% c6 g! [0 @" [. Z- [2 r - )
* \" p& N, `5 v( j - ;; Get the next linetype.* }5 d, W9 K$ J$ q/ {" V% B
- (setq ltlist (tblnext "LTYPE"))9 y# E y. _/ B+ |# h8 B
- , x+ J3 T# A9 h8 ]
- ;; Not dead message...2 @! {2 G/ j# f9 n. g, `: F3 Z8 k! Q7 O/ p
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
9 g! p6 x8 {4 y: p4 Z$ q - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))! B5 W; _* W6 u3 }1 R+ \4 e4 ^ Q
- )
' X. G- C" i! P6 J4 H, ^! } - (setq ltype_number (1+ ltype_number))3 S# X ^# S F) |7 |3 a0 `
% S R) G6 O8 B7 l- )6 O( O: ]4 n8 @+ D2 h7 I
$ \) G9 }- }8 |- P- c% c3 K- ;; Remove Collecting message.
' w+ K3 _) C' e( } - (set_tile "error" "")
4 K1 H+ }: J' ~; c7 ]
/ D4 k) o+ ^- C- ;; Sort based on maxsort.
& l; O: `1 i; X3 {2 r$ c - (if (>= (getvar "maxsort") (length sortlist))) V0 b, L8 N6 K2 C# }
- (progn
/ c: j5 Y* _' n2 ? - (if (> ltype_number 50)
$ I* s" Y# J: {* c- }# J0 z5 T - (set_tile "error" "Sorting...")" ^8 N/ m7 H. m/ |" s+ T6 `
- )4 Z! N; F- `2 E( c
- (setq sortlist (acad_strlsort sortlist))
9 C$ n7 O4 O2 ]! C - )
7 M( L h" M- Q8 o8 `3 W% m - (setq sortlist (reverse sortlist))
9 U3 t% k/ x% M - )
/ E" T9 n5 R- Y - (set_tile "error" "")
. g- h: s; |* B6 B: E- a - (setq ltnmlst sortlist)
# I s* B; E5 D: g* H - . ?/ O( W5 {. L
- (foreach ltname ltnmlst
/ Y7 T6 ^1 c6 |, `& | - (setq ltlist (tblsearch "LTYPE" ltname))0 H6 ], O+ d% l. O1 J/ V
- (if (= ltname "CONTINUOUS")
, Z; M$ ^% ~1 H - (setq mdashlist (append mdashlist (list "CONT"))); B+ h& |3 E" s5 Q8 S2 n& r
- (setq mdashlist
( w$ t+ E2 S4 u - (append mdashlist (list (add_mdash ltlist)))- T9 {3 F. t; P6 {* h
- )% x: S, `) M2 T& Z8 a# ~8 \$ Y
- )
. y8 F9 M6 R) l - )
% Y, K+ X0 }: q& T3 u& n/ Y0 [$ m! Q- | - (setq ltnmlst (cons "BYBLOCK" ltnmlst))4 A) B+ s) K4 w2 a2 q6 X; U
- (setq mdashlist (cons nil mdashlist))
; @9 W4 y+ Z7 L0 K; g - (setq ltnmlst (cons "BYLAYER" ltnmlst))
+ ?- P- W$ k4 i# c( x7 Q - (setq mdashlist (cons nil mdashlist)), I4 ^! C8 d# G& d* T& p" x
- )
4 d+ P& `0 o8 ]5 y' j( I' M - ;;
1 s, M, j0 ]- u& y! M$ ^ - ;; Get all the group code 49 values for a linetype and put them in a list3 l# y; N5 p# B. v- h, S$ u
- ;; (pen-up, pen-down info).
: E, y$ }1 F- s - ;;
" j) L% S& ?+ C2 ?$ |9 V - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)! G7 C% }" k+ [" M& x! S" r2 u
- (setq dashlist nil)$ @- p1 j2 y) Y8 e! ]
- (while (setq assoclist (car ltlist1))2 h; |8 F7 }" F, x' {
- (if (= (car assoclist) 49)
5 B2 u! N# r: K - (progn' C- w* C8 v3 P- H* Z- i. S
- (setq dashsize (cdr assoclist))
" e9 L# b1 V3 b4 J; ^8 a - (setq dashlist (cons dashsize dashlist)). {+ P% A2 s* M1 H
- )- j: s2 [5 ~' z3 j
- )) n+ w1 j1 s& f B! z2 B; ?
- (setq ltlist1 (cdr ltlist1))
+ F7 s/ i& D, V( `: c3 N - )
3 c8 \" G; N" Q2 K+ Y - (setq dashlist (reverse dashlist))
! M; u; U# u/ w* s& t7 i - )
/ X) C2 s1 g5 |$ a- B8 q - ;;/ |6 l: N8 K; U1 `; H, w" G
- ;; Color a tile, draw linetype, and draw a border around it2 }; q" Y8 b* Y) s# g
- ;;
+ S1 d1 @$ W- C - (defun col_tile (tile color patlist / x y); O" ?" u7 j9 T% Z
- (setq x (dimx_tile tile))6 Y) ]' g1 J0 @1 o
- (setq y (dimy_tile tile))! P5 {$ w, o9 O' O' K
- (start_image tile)
+ ~6 l3 T/ b( U$ \: a# ` - (fill_image 0 0 x y color)7 S& |6 T# `( [9 m' m
- (if (= color 7)/ j; U; `! R# O3 h0 o1 Y$ ~- y
- (progn$ U9 m2 h7 n$ Q
- (if patlist (drawpattern x (/ y 2) patlist 0))
( Y8 H# X8 e b/ J7 B - (tile_rect 0 0 x y 0), s4 B2 e9 }9 ?
- )6 I+ T7 N- J% i( `( \; Z' ?
- (progn
8 Q) S8 a5 W/ t4 @" l: ^ - (if patlist (drawpattern x (/ y 2) patlist 7))( e$ C! ?9 f! }% H2 o/ c( m- |
- (tile_rect 0 0 x y 7)
% g8 p+ y! y5 j+ o' g5 C( T - )
7 q! c1 F4 n; B& t - )
$ y+ _. X. P, ^1 u( R; O8 A - (end_image)7 w5 G, Z& u4 M% z) f
- )2 U2 F3 C: h: p
- ;;5 i# x: y; Q& }
- ;; Draw a border around a tile# H- _9 m% C# X6 z) J3 V
- ;;$ c- l$ f$ }* ?9 W
- (defun tile_rect (x1 y1 x2 y2 color): D% Q# U+ W: M! b% z
- (setq x2 (- x2 1))
6 C4 f- ]* t1 h2 \2 h - (setq y2 (- y2 1))
4 [ V7 @' S* O& t# |2 ~+ X X - (vector_image x1 y1 x2 y1 color)% l* Z* _7 o5 g, P" j
- (vector_image x2 y1 x2 y2 color) }, l# R% R( s* k% b% n2 C# o; g
- (vector_image x2 y2 x1 y2 color)1 q; n6 D- p" T- [/ d9 O6 t
- (vector_image x1 y2 x1 y1 color)
5 s' v8 g/ G) }% l1 a2 f' H0 C - )
* C! k2 o% E" e6 Q4 @' Y - ;;
+ [' K7 W6 Q3 J4 v9 q# V0 P! ?( W - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image2 t; P1 S% \; f8 W1 T' O6 O+ g4 _
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
5 ^$ `9 O Y' R - ;; list of numbers that define the linetype, and color is the color of the
6 ^- N+ `4 J6 ^% o: Z - ;; tile.6 y: f# b$ r: O$ ^6 b
- ;;! ]. B9 J3 w/ Y' b* o
- (defun drawpattern (boxlength y2 pattern color / x1 x2+ \3 m3 e/ n$ J0 M4 H) [& r5 o
- patlist dash)' C, ^( w- [5 b
- (setq x1 0 x2 0); c( u; u' e: m6 N3 Y- g( v
- (setq patlist pattern)/ ~5 U/ C% o4 ?9 w/ Z
- (setq fx 30)
% s0 f+ j% W/ p2 y* {8 _% L - (if (= patlist "CONT")
/ B, [7 p. ^; c - (progn (setq dash boxlength)
. t$ c7 A/ f5 k& ?# T( i! ~( Y - (vi)
- k& x; s; K7 i - (setq x1 boxlength): }% Q4 Z5 T0 m& f7 n ]& m
- )7 R2 O+ V2 b9 p0 i
- (foreach dash patlist
! V, A1 C! L' y3 V) `' _0 e: W - (if (> (abs dash) 2.5)
5 p- T, g0 B( L - (setq fx 2)3 C2 ~6 n& L) A* D
- )
! j* b' J. A9 C( y0 m; W - )% E; g& C0 d# N
- )
1 j& Q; j7 Q5 v* d7 b H - (while (< x1 boxlength), e# F: X5 W3 T3 |$ V
- (if (setq dash (car patlist))
4 ]. Y; g( R# ]: m q - (progn
; P$ @( Q! D* f - (setq dash (fix (* fx dash)))
2 w( U( y) @/ s- H0 G8 w - (cond
$ @* B5 t6 I0 N3 H - ((= dash 0) (setq dash 1) (vi))
# v1 [6 F4 i* R9 s# z - ((> dash 0) (vi))9 K+ A9 F! l' r% E5 @
- (T+ K5 {( Z: e% g/ A( x
- (if (< (abs dash) 2)
! d, r: }3 n8 I. f - (setq dash 2)! s( ]3 a# X3 @. i
- )
- L4 Y& t- h& ~- o" e* P \7 X - (setq x2 (+ x2 (abs dash)))
; ?( h% u. Z, L% Q - )
) ~7 p% s. S2 ^7 \$ x - )
- r/ ?: m% G& v* Z0 G, J4 v- V$ g - (setq patlist (cdr patlist))
; a6 V* u+ p. N& L- |0 v7 ?8 ` r% l - (setq x1 x2)
% N+ @( m& d2 v3 n0 R ^ - )
( M; Q- ?# Q! s, @+ h5 _ - (setq patlist pattern): o; D6 x# [9 R3 p% T' o
- )# g# m& X6 a3 L6 n
- )
/ Y; G$ [3 E8 e( c8 ^2 @ - )
y) X2 O0 c6 C. C+ \, e6 o - ;;
6 b3 \5 V9 P+ h0 `, G4 y; G6 p - ;; Determain state of xclip
/ h5 l, X& i1 G4 K/ Q1 a, P - ;; Returns the group 71 value of the spacial filter dictionary.6 S& E+ k7 F& j2 t
- ;; If the entity doesn't have a spacial filter dictionary, this
* M: p) \* F( _ - ;; returns 0. If it does it will return 0 or 1 depending on the
' B) }, d9 k) I& o - ;; current setting of the state of the clipping visibility.
1 u% ?) V- ` L) q4 f) B - ;;
1 C# n* w7 U- I) @' T+ X - (defun xclipon(elist)
1 \- T8 v$ G2 a! p - (setq hasclip T)
/ K7 R1 _( r2 Y+ B' k5 Z/ o - (if (/= (assoc 360 elist) nil)# \% u1 b6 s; N% M
- (progn
! E i' i% ~' P# R - (setq tmp (entget(cdr(assoc 360 elist))))
8 m# l" m4 Q; l" t' J9 C% m0 H" R4 y - (if (/= nil (assoc 360 tmp))
& N2 r0 A* ] B) o' P% y - (progn+ T8 m) V# z8 ~" y9 X3 Z
- (setq tmp (entget(cdr(assoc 360 tmp))))" M H1 ~. U/ r2 X: n
- (if (/= nil (assoc 360 tmp))
9 E) P+ N1 }4 N - (progn; {. o) Z8 D0 ^- e$ j% ]
- (setq tmp (entget(cdr(assoc 360 tmp))))
0 o* g. U4 P3 A. ?; o - (if (/= nil (assoc 71 tmp))( x# @/ p7 u; H
- (cdr(assoc 71 tmp))7 p& B q, R2 h& _
- (progn 7 g4 r n' D O: Q% e( L3 p: Z
- (setq hasclip nil)
5 G0 t0 Y! F6 y9 U; l - (eval 0)& [5 C0 N% f! K; O
- )* w8 V* l3 s2 S0 F* U6 H
- )
2 b* G! O8 w; }3 r" I* y6 t r7 _ - )" C a' m" A! f3 f; b1 D
- (progn
/ V: ]6 p$ ~; ]' R- ` - (setq hasclip nil)( N1 t! G; D' L1 i9 N( K
- (eval 0)
. X% k2 ` a, t5 ^9 [ - )
( y" Z V: g5 n - )
) B; w2 s) I+ W - )
; _5 F _& @% { _6 q4 M: s1 T& c - (progn
/ O/ a# I6 [- _$ y" r - (setq hasclip nil)
% Y$ I% n4 b, D6 `( L' J - (eval 0)4 x# j9 f O( K. e+ o J L
- )
8 n3 ~% ]/ G6 L - )# u6 O; i V. M2 x8 [! v
- )$ m" B# ^5 V7 M- S9 V% m$ m
- (progn ; C/ A+ f; x( \) S
- (setq hasclip nil)6 T' Z. A+ ?* @/ I& P' a8 a
- (eval 0)9 _) T* J$ ^, m* A8 [- w
- )
4 N3 M" H4 D c# l6 _ - ); l; G8 e4 P3 Q) j' u8 u7 e3 m
- )9 H; ?% g$ p3 D* Z" D
- ;;
0 o: ?; O: A0 t - ;; Draw a dash or dot in image tile7 D; y* {. T; B/ a' A
- ;;
# i- Q9 R. Z# X' k6 @ - (defun vi ()
6 K% |5 t- A1 ^+ e - (setq x2 (+ x2 dash))
3 J8 N S, [- n. U% |% k/ f - (vector_image x1 y2 x2 y2 color)9 {8 s+ ~7 H( s9 t* y% U
- )
! g) [/ [9 m; n/ t - ;;
, J7 {: |$ P- H: h% t9 k - ;; If an item is a member of the list, then return its index number, else' ~- `( p8 U. ?( L: m& S" C7 Q
- ;; return nil.
1 X3 L! t! b) @$ Z. V- K% ` - ;;
5 ]. ~8 U! T$ L - (defun getindex (item itemlist / m n)
* e- z7 g' F3 h# o) [ - (setq n (length itemlist))
4 W& Z& G: l( [8 G& ?4 j+ o - (if (> (setq m (length (member item itemlist))) 0)/ g% ?2 i+ v* }* E
- (- n m)
0 l7 E, T9 x( p5 v) ]0 M( o - nil" Q$ n/ Y' O8 H
- )
# Z' r7 b0 ]/ b- P2 `! @ - )
; O0 G7 M, f4 _" q - ;;
/ e- h! t5 O; a - ;; This function is called if the linetype is set "BYLAYER". It finds the8 J9 j T+ W; K, l; A
- ;; ltype of the layer so it can be displayed beside the linetype button.
* N8 r8 l* t; G. g# Z( M - ;;
8 V) R# @; p" c- r, f+ d - (defun bylayer_lt (/ layname layinfo ltype)
0 T- T5 C$ K* a6 @8 j! w - (if lay-idx& \, y* Q, `( f" ?& S8 U3 n
- (progn
. A$ R. j2 e7 G! b% ?0 h% E - (setq layname (nth lay-idx laynmlst))# f& |/ m, Q1 }
- (setq layinfo (tblsearch "layer" layname))7 }, H \: v3 q1 _& A0 C* w
- (setq ltype (cdr (assoc 6 layinfo)))
8 D" ?& B6 `$ W! w - "BYLAYER": N5 c ~& _+ n0 B5 [' U
- )5 |# P( M8 v: A: |0 v9 f5 j
- "BYLAYER"
5 q& h; U) l, g- D9 S% U - )
% |0 {3 K4 j; O - )) @% |8 ]4 `1 ^9 T2 ]. }0 I
- ;;
& `8 w9 R# Q% D& x. Y1 ~6 A0 Z - ;; This function is called if the color is set "BYLAYER". It finds the color
, ], }! {9 i! ~8 {3 U - ;; of the layer so it can be displayed beside the color button.
8 z9 ^; }# H( L1 h* g# j - ;;
$ |: u* j" ?4 m* P- s - (defun bylayer_col (/ layname layinfo color)
# o6 W3 P' V2 r/ m. u! J8 s, R - (setq layinfo (tblsearch "layer" elayer))
0 }7 d, d- L' p& ~' p3 w& \. _ - (setq color (abs (cdr (assoc 62 layinfo)))); K3 Q' x: j. I4 T
- )
+ r; l" U1 T* O$ b3 Z - ;;. u- i3 }. N( x0 `/ R4 t& o9 v5 I
- ;; Used to set the color name in layer subdialogue.
. n/ c$ ?- D8 [1 F3 U9 \ - ;;# g) J" X! R3 ]- a4 }+ G3 H
- (defun colorname (colnum / cn)* L# n& q: {' e. A* k
- (setq cn (abs colnum))- n; ?+ ]0 T! M. Z
- (cond ((= cn 1) "red")1 N1 t* D0 f9 S5 Y3 ~! D
- ((= cn 2) "yellow")9 I6 A( O" n/ @
- ((= cn 3) "green"): T: s: B; s9 ?3 h( \
- ((= cn 4) "cyan")- W" l. S% q, ]" R& A7 Q0 U
- ((= cn 5) "blue")
% U$ q3 u! j9 H - ((= cn 6) "magenta")
% ^# A" R6 ?- k" B - ((= cn 7) "white")5 j" }# l' w, G
- (T (itoa cn))9 }- H7 i5 Z, M# J! T2 q% S: ~# D& Z
- )
8 }. ~; \9 _5 I0 x, L9 h* R4 f - ): w% i/ x5 @: T+ z7 |4 s C
- ;;0 {/ v& s% _8 i& s
- ;; If their is no error message, then close the dialogue. j# l1 T9 Y- S1 p9 b
- ;;
5 a6 e) s( ?2 a# q. ^5 \. `9 T# I - (defun dismiss_dialog (action)
0 v, D8 F5 V9 x. |2 d% `0 a2 y1 k - (if (= action 0)2 c G2 B7 c, c4 A: W4 \/ o% D
- (done_dialog 0)) X3 h4 Q$ e' s, F6 R, G' k
- (if (= (get_tile "error") "")
2 O+ k* `7 j. N - (done_dialog action)' {- b9 p: e; a, P
- )$ ]6 a- }+ G+ k
- )" B) j# v) l) H* e$ b+ a
- )8 [% C2 ~, e; b$ P* Z
: a+ b. @2 Z# J% b6 G* B1 |- (defun test_ok ()7 @/ w$ }; p# ?) d
- (if (= (get_tile "error") "")
' q9 Q/ f }8 I* @' S( _ - (done_dialog 1)
8 Z8 Y1 m0 y4 B$ ?& J2 y2 O - )1 j& S# d# G" P- I9 |! S9 h3 ^
- ): W* y1 ?( l8 t
- 6 P' g b% h6 W3 h) F
- (defun cancel ()
( Q* h/ K; x" k% }0 f$ y, ]2 i - (done_dialog 0)2 D3 Q+ c; J6 U( s- J
- )7 G: `, l+ s4 z0 n6 J
7 B! w; t) t3 {4 D( V' V- ;;; =======================================================================
1 U" A& L0 Y' h - ;;; SETUP layer and linetype lists for application, and initialize all
) {3 z: c5 w# y: u$ n - ;;; program variables.
) Y* B4 Z+ T/ V; z9 Z - 1 y7 E, {8 M+ ?3 ~9 z1 u
- (setq elist (entget ename)
9 @; f: Y$ c3 b - old-elist elist
. Q+ V0 `4 [$ b; B7 I - modlist elist
$ \) @3 J& T- `3 D: |% K5 T3 I - etype (strcase (cdr (assoc 0 elist)))$ k8 h7 L9 _4 ~$ |
- ecolor (cdr (assoc 62 elist))3 u5 v# m/ g7 z# A
- elayer (cdr (assoc 8 elist))
! R' [) F9 M z) G- o - eltscale (cdr (assoc 48 elist))
+ e5 R9 ]/ Y9 {* ` - ethickness (cdr (assoc 39 elist))- E f. x' |0 H! M. m) u& j- L* q# {
- eltype (cdr (assoc 6 elist))$ h+ I- b: b8 H' P6 |( S% r
- )
6 |' r) r' B+ K - (if (= (assoc 210 elist) nil)
+ i( L1 n: F# [, @* \4 m; Y- h0 V3 K - (setq extru (list 0.0 0.0 1.0))5 M% i0 C4 i2 `9 D: o" `
- (setq extru (cdr (assoc 210 elist)))( M3 S/ _" k* }& |3 u
- )
% D: g' B7 l& D4 C) k - : o9 D4 z, Y( ]1 F0 Q' z& S
- (if (not ecolor) (setq ecolor 256))
+ e9 _4 C( e& N1 b( q - (if (not eltype) (setq eltype "BYLAYER"))4 Z% q! I3 L! U- Z
- (if (not ethickness) (setq ethickness 0)); C0 |6 J9 [. t1 F2 F3 O6 r4 U
- (if (not eltscale) (setq eltscale 1))
0 ~ N* Q, V% B# h, R- H) g - ) ; end ddmodify_init9 M: R) F* g& s7 x! J g/ @' {
- u T3 v6 n+ [$ i3 ]- ;;; --------------------------------------------------------------------------0 I+ @: G. c; H* H) `# p8 g( Y# w
- ;;; Function: DDMODIFY_SELECT
4 M, d! d$ h/ S, P* v5 X% n - ;;;
6 ?. ~: e+ _2 ?" I - ;;; Object aquisition function.
' B; s; b; e. b% n* ]6 t - ;;;
# w2 V- l, I3 O - ;;; (ddmodify_select)" `9 V4 |& L# S2 B. G4 Y5 {
- ;;;: [: m {# k- f
- ;;; Obtains object to be modified, in one of three ways:
% _: H( y: u* |: s0 c. |. d: O) N - ;;;3 s, t: z+ v& r/ O+ ` s- g& g
- ;;; 1 - Autoselected.& Q% s; ~3 |$ t. d2 E8 I1 B7 N
- ;;; 2 - Prompted for.
7 s8 z& w- I4 s$ Z) o - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
& S( E) |. f3 n3 R, V- q - ;;;
3 g& `# E9 G7 C5 g - ;;; The (ddmodify_select) function also sets the value of the
( N6 w$ `% D0 u, j% f! y - ;;; global symbol AI_SELTYPE to one of the above three values to
$ |' V! D- [) w+ x. |( ^: R - ;;; indicate the method thru which the object was aquired.- Y9 _( X2 J; T- z( x
- ;;;% S! f# F$ a9 W3 M
- ;;; This value can be useful to applications that want to RESTORE" y( R# _ _, e7 }
- ;;; an object that was autoselected to its previous selected state' u- ?/ `8 j( }1 o; M2 W# a6 r
- ;;; when they terminate, although there doesn't appear to be any
* u. t2 t9 a2 x/ O, H9 h - ;;; way to do this right now.
" y1 R6 ~9 L0 R/ R! i1 S9 F$ G8 L - 0 M# E& w" W9 r% u# W
- (defun ddmodify_select ()
/ f$ U% o5 N' x9 `6 w, U - (cond
5 N9 [0 y- l. w9 f - ( ename ; (ddmodify) was called n7 [6 v* F! w: }) M
- (cond ; with an <ename> argument: R" G1 o$ B3 z* r. K% _
- ( (entget ename) ; If object is non-deleted
& f& j& ]' q4 D5 e - (setq ai_seltype 3) ; then return its ename.0 j& z# o9 s& C* w# ^# m
- (ai_return ename))))
: H. O, w3 G/ s
5 [% j/ u# K& w6 |- ;; return auto-selected , see ai_utils.lsp
1 \/ S& a8 p+ C# I3 L' @2 D6 ^ - ( (ai_autossget1 "\nSelect one object to modify: "))* O) w ]+ u3 Q- y* l( {; ?, o; e" U! C
7 I3 f! D5 ?3 Y. o- (t (princ "\nNothing selected.")
9 K. s% G; i5 h. Y - (ai_return nil))+ u% W! g( E7 j8 q& Y
- )
& |: z- R6 y0 q - )+ x0 a$ L( m# q9 J( s' |+ M' s" p
- 7 ~ o3 w- W3 x2 E+ ? |
- ;;; ============= Command line interface function =======================# r1 V( j% U3 i
7 g% J8 I* O" k* X8 O7 x) a. }9 i4 r- (defun C:MMO ()
" Y; _ b- h a5 ^7 w6 p - (ddmodify nil)# Y/ h1 | D* X$ ?9 M, V
- (princ)
' a0 ~4 f b. j P/ | - )" j. P/ q: B2 S$ U' j* L
- ; K; n- j( A( S6 K7 K
- ;;; ================== (ddmodify) - Main program ========================
: ?( m/ t7 V1 N2 c: q( a9 l$ P - ;;;0 H8 K; E* _. C; P }
- ;;; (ddmodify <ename> )
7 p4 x- H3 J- P: i* `4 Z8 d - ;;;
: C0 g8 }; L; x3 t7 l; B7 g - ;;; Main program function, callable as a subroutine.9 W$ o/ {" f+ ?! p4 v- \, x8 j
- ;;;1 d0 ~. R* i9 {. ~
- ;;; <ename> = object name of the object to modify., E% z8 e7 l& n h6 v7 @
- ;;;
( G) k( \5 q: x. z$ \9 v% B - ;;; If <ename> is nil, then user is prompted to select
: ~! J3 A- d3 i. ~7 W - ;;; the object interactively.
4 b, n1 x% G# Y2 o - ;;;
% ?6 j/ T$ f! c. ]% d8 h - ;;; Before (ddmodify) can be called as a subroutine, it must
) D# X& i Z8 d - ;;; be loaded first. It is up to the calling application to
7 R3 P& R* ?+ y Y$ N3 g - ;;; first determine this, and load it if necessary. l6 P g; `# E1 G" c
: f0 R, D9 o$ Q: |" i- 2 k6 J0 \# {) N, N. G3 Q
- (defun ddmodify (ename /2 \! e' j. W! d0 J3 w" \" Z
- 2ndpt ell_calc_area move_pt1 templist
$ h7 s4 ^ b6 M$ s - add_mdash ell_tile n tempmod( c4 F+ \& T* V
- alipt eltscale name tempst_ang
0 i) C$ `' m3 n2 j, D8 F - ang eltype newpoint test_ok
$ [9 T& t; [6 i# b% O; D& W& h - arc_calc emod next text' @1 z8 x. S- U& g
- arclen end_ang next_vertex th-value/ V! I; V7 Q4 O0 _6 `# H
- assoclist endpt obl tile3 }& r6 b* h% L' h
- atprompt errchk off tile_rect' u4 e5 C, K! E7 ?0 ]" w
- attag ethickness old_majrad tilemode
- T) _ g+ j$ k5 S1 Y2 v8 I" p - attprompt etype old-closed totang' S* N r ]/ P1 M! }, B E# }( S" S
- bit extru old-closedm tstyle2 |/ V, H5 R- u8 J9 Y4 J# @
- bit1 fchk old-closedn u
; m$ l n& J% C" ]! q" i/ T9 v - bit-10 first-10-rec old-elist undo_init
: i. \8 d* `( y3 h e* a' Z | - bit-11 first-10-time olderr upsd
) {+ p/ _! W4 }0 u - bit2 first-11-rec old-fit v
9 l0 p E3 t/ t. n- k `% l" P. l - bit3 first-11-time old-idx va
4 y: E4 T! ]* P0 k% Q - bit4 fit oldlist value
! j( N0 t( g& N2 o - bit70 frozth old-spltype ver_4
6 e8 K) D: D- C7 j) O$ o, G - bit-70 f-vis old-u ver_ang1- r2 D6 Z! a( d
- bit75 fx old-v ver_ang2
6 `/ m/ s, {- d' V* k - bk-up get_color on ver_col
6 i3 `; \# D6 L4 m - bkwd getcolor onoff ver_colsp
7 h2 u7 s5 N6 V6 {* w/ H# t: F - boxlength getindex on-off ver_eangle
" @0 w2 I+ e! s5 B9 ] - bylayer_col getlayer patlist ver_hght
" w$ I0 \% L3 |$ {$ E# c- j - bylayer_lt getltype pattern ver_majrad
3 j1 \8 B+ U5 ^" `/ q# q# n - calc getthickness pltype ver_obl3 b% T8 U: ? V5 _: o
- cancel globals polytype ver_pt1
6 ^, r" f1 w8 H9 r$ Z) U - cir_calc ha pre ver_pt2& m; s. E0 X( i) Q! ?
- closed ha-prev proplist ver_pt3
: K, z) P& X# b1 [6 f0 L# @6 K' D - closedm help_entry pt ver_pt47 X: ^. z0 U. y! S" x% t9 G
- closedn hght pt1 ver_rad
( ]5 C# }" V& T& x" G; F0 q- G7 J - cmd icvp pt1_eq_pt2 ver_rot
6 `( ^* a" l8 i! d - cn image_add_vector pt2 ver_row% [, K) O$ x+ `/ q6 O: q
- cname image_clean_variables pt3 ver_rowsp
) \& Q7 U4 s9 P7 M* I* U, T8 H - cntl-pt-indicator image_cross_product pt4 ver_tag# p+ y* _+ x" l2 [" R2 `) w
- code_71 image_disp_opt ptype ver_u
6 F8 ^( w/ Z9 O, _/ g9 U! Y4 | - col_tile image_dot_product radius ver_v
4 O6 d; o; ~( T8 I9 v - col-idx image_normalize_vector rational_spl_flag ver_wid
$ Z, \& w8 G( x+ V3 R- L( ? - colname image_rotate_vector reset ver_x1
, }. ` d+ M( z: V; X* e6 M7 [ - colnmlst image_scale reset_flag ver_x2
4 I' }+ q( X' M% g$ V8 s! b9 ]* t - colnolst image_scale_vector reset_lay ver_x39 Y: C% G/ z" G- G _
- colnum image_update reset_lt ver_x4) N# l1 M- M l9 `& ~( C$ x; w* Z0 H
- color index reset_uv ver_xline_pt1
" S; _# Q4 ~8 _7 E% C - colorname inv rot ver_xline_pt2
! R( T# T' t+ G+ T, w - colorno item rows ver_xline_x16 A! w. S$ v: [9 g& a2 W
- col-sp item1 row-sp ver_xline_x2$ R+ A! I( |' Q) _# `% t
- columns item2 rrat ver_xline_y18 k y* U3 {: E( D; }3 `3 N2 m5 y
- con itemlist s ver_xline_y2# s! @, A/ O9 a- g1 k) S2 q
- coord jlist set_action_tiles ver_xline_z1
k5 ]5 O, O, K0 [1 f, h5 @& l - ctr jlist_act set_just_idx ver_xline_z22 _* t* C T& [1 ~0 q+ A% h) j" n
- cur-10-rec just-idx set_tile_bk-up ver_xscl
$ {* S/ C2 r0 ?/ k( u" U3 {3 | - cur-11-rec layedit_act set_tile_cntl_pt ver_y1" `0 A( w, ?) F A* M6 t
- cvpname lay-idx set_tile_data_pt ver_y2
, w1 @0 [! ?. x& U { - dash layinfo set_tile_dirv ver_y3
4 \" ]/ K1 l ?+ x - dashdata laylist set_tile_edges ver_y4
& v% L; j5 z* W4 U& j; s - dashlist laylist_act set_tile_endang ver_yscl
( C( A1 `8 s. y6 N% o( d* ^ - dashsize layname set_tile_hght ver_z18 Q) L: @; p- n e" N- }0 `
- data-pt-indicator laynmlst set_tile_icvp ver_z2
4 o+ ^( H) Z0 _( s: g - dcl_id layvalue set_tile_just ver_z3
! L8 }$ R5 A! [ - dd3dface line_calc set_tile_obl ver_zscl8 k( ~. a% I2 O" \* O5 @: I v7 c* e
- dd3dsolid linetype set_tile_prompt verify_a9 \( Y$ J6 z% P" z/ o# O
- ddarc list1 set_tile_props verify_d* l6 A/ J: I! ]
- ddblock longlist set_tile_pt1 verify_i% h9 Y* X! e3 o* M0 }5 o
- ddbody ltabstr set_tile_pt2 verify_xline
- Z7 A( {, }2 M2 y' N0 D - ddcircle ltedit_act set_tile_pt3 vfy
" O M5 j% L( @- `, | - ddellipse ltidx set_tile_pt4 vi
+ E) g- H( F8 h& W' {0 X2 q% V - ddgetprompt lt-idx set_tile_rad vlist
h) T0 F* T, M) V& e9 o( X" |$ O$ k - ddgettext ltlist set_tile_rc vname
, Z& V$ b* @) | - ddimage ltlist_act set_tile_rot vpf
# d7 F! O* y G, t4 `- N - ddimen ltlist1 set_tile_scale vpid
7 Y% E. l7 A4 f. n! x" | - ddleader ltname set_tile_spline_props vpldata
$ Z5 A! t1 k* m; @ r - ddline ltnmlst set_tile_stang vpn
- q: Y" }0 J+ W& J0 [5 P& y - ddlist ltvalue set_tile_style vpt
1 S0 M( W, E: B5 u - ddmline ltype set_tile_tag which_tiles
5 [% Z# n0 N- L% T3 {$ \. q" x - ddmodify_err m set_tile_text wid( z, W: F w- J, y* o3 [1 b
- ddmtext majrad set_tile_vpt x }7 k4 J& O$ s/ {
- ddpline make_lay_lists set_tile_wid x1
8 i0 z$ o5 i& P% g& n+ y - ddpoint make_lt_lists set_tile_xline_pt1 x2/ j# T' y1 R6 J
- ddray mdashlist set_tile_xline_pt2 x3
Z3 V7 W. v" Z3 Y7 K* G o4 c5 p - ddregion minrad setcolor x4 ]3 U4 a" M, Y6 [( f* j
- ddshape modify_3dface shght xdlist- o* v6 J _- c' R8 V
- ddsolid modify_3dsolid showpt xline_pt1- r; V8 ]$ D- ]8 L- E1 V# l( F; N3 y
- ddspline modify_arc size xline_pt2
, |, d& b6 P# c - ddtext modify_block slist xline_x1
6 d# r7 J7 a# s ` - ddvport modify_body sname xline_x2
. e7 ?2 g2 I, l' e* u2 l - ddxline modify_circle sortlist xline_y1/ l; D8 p% y! f4 B/ Y
- denom modify_ellipse spltype xline_y2+ Y" x9 J; V7 g! D( D w6 U2 X, \4 u
- dialog-state modify_image ss xline_z1
# t' g( F$ c( T" k3 a+ g) C' p9 x - dir_pt modify_line st_ang xline_z24 V2 W- a( \' S6 N; Q0 q
- dir_ptx modify_mline stpt xscale/ { I* M) n" O m$ z
- dir_pty modify_mtext style_act xx' X8 M$ i- l* q) }' \' q
- dir_ptz modify_point style-idx y
- v( ~6 i! q; k8 l$ Q' i - dismiss_dialog modify_polyline style-list y12 Z) y% w/ G+ P) u; [5 E) w
- drawpattern modify_prop_geom tagval y2
3 G! b" D0 m' E: [ - echo modify_properties temp y3( a/ d! I! w, U6 _
- ecolor modify_ray temp_color y4. W! X0 t* N7 W1 J
- edge1 modify_region temp_dir_x yscale# |/ m. n6 H$ M; h5 v$ m' `. B
- edge2 modify_shape temp_dir_y yy" y4 w# m5 p' h6 r2 u. M
- edge3 modify_solid temp_dir_z z1, {: i) |* C, i
- edge4 modify_spline temp_xline_pt1 z2" V: G" t) t# Y& K! O/ H
- edgetest modify_text temp_xline_x1 z3( `6 J8 n# m+ l% p @( l- ?
- elayer modify_vport temp_xline_y1 z43 F( X& A' |, i" q! ?! N
- elist modify_xline temp_xline_z1 zscale
4 J0 |( d. @' T# J0 J& i( |( E0 w - ell_calc modlist tempend_eang zz
( x6 j6 t+ U5 n. ~ Y - dir-idx safe_ddedit ver_MtextWidth xcliponoff& F3 {3 C8 j1 n6 R
- MText_style
; w. @ R, F) V7 E3 A - )
2 b( x( e3 n. i+ ^/ P' K
) }! v* R8 Q& y- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho4 G7 m% Z8 g& Y- T/ N
- old_error *error* ; save current error function
8 v% R4 p5 t4 ?! j! a! {% k3 c - *error* ai_error ; new error function! @1 w" ~/ T: M1 \7 ]# E
- )# l3 B! J/ H$ o, V8 L: g
9 [0 X! T6 t/ G0 n* z4 r. c# x- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
1 [" u! c5 B# b" ]) ~4 I# ?! c/ v9 o - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
$ V2 Q! y8 h1 G - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
H7 p6 E e2 c& n1 H" l. _& k$ O - $ T- A% t, ~ C
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0) q+ P% T0 n" s7 M/ g8 ]+ x
- (t 1)))2 w% C; r% g% r6 w6 [
- (cond
: G$ M. F& F, ], Z [ - ( (not (ai_notrans))) ; Not transparent?
2 B" w/ s6 {$ a( [ - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
3 e' c4 @4 [7 ^7 h - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
" A+ K8 |& M$ U& q$ Z - ( (not (setq ename (ddmodify_select)))) ; object to modify?
8 p, u# U* S$ \ - - i9 Y* {# O7 ~0 B
- (t (ai_undo_push)2 t- A! V5 y6 i6 E; y# ]
- (ddmodify_init) ; everything okay, proceed., h1 [( P% |6 f N5 z( R
- (cond) v. R' d! G7 R( K; j+ z, m' M6 a
- ((= etype "LEADER")
3 ~8 {1 E8 ?1 f& [ O" k# U - (setq help_entry "modify_Leader_dialog")
4 i$ p% u! D2 U. ?2 A5 l - (ddleader)& f& ]4 w/ r+ O4 x' z7 [
- ): H$ Q; v% i+ ]! L1 g) R) q
- ((= etype "ARC")* f/ ?/ y8 \9 @/ t9 F% I
- (setq help_entry "modify_Arc_dialog")
" h- I0 r l" ~ - (ddarc)9 Q5 N3 K0 e4 A e. c* S" t& X+ V
- )
b& M5 o# h$ s9 }3 m7 {/ x( _ - ((= etype "ATTDEF")5 o5 `+ b$ \! e% i: U
- (setq help_entry "modify_Attribute_Definition_dialog")
) U5 [- H1 @" Y4 j8 G# J. e4 p - (ddtext)! |" P6 s# K0 F5 p! u
- )
- m6 ^& |0 y5 M2 }7 y" X2 f9 A - ((= etype "CIRCLE")
4 A) }8 E* [% j" H0 l) {1 ^! _ - (setq help_entry "modify_Circle_dialog")
! M* M0 U1 C, U& | - (ddcircle)& i5 X3 G3 Y) I7 a1 ~
- )! a u' s' R/ ^9 S, H$ I- I' W* _' S
- ((= etype "ELLIPSE")
3 j5 T. Y+ g% G - (setq help_entry "modify_Ellipse_dialog")( a- l% W0 B/ }
- (ddellipse); T8 a1 p% Z( e0 Z3 S3 ?9 B4 {
- )' b% e$ A8 w: d. ~% o" p4 D4 ~5 Q
- ((= etype "3DSOLID")4 u1 q# \5 I' u
- (setq help_entry "modify_3d_Solid_dialog")1 p( y/ }9 z# ~
- (dd3dsolid)
) ?! U+ a) v& _9 L' a8 T - )" }8 x! \- O# A/ ]' l
- ((= etype "BODY")% k; Q6 d* P, w; v" d' \
- (setq help_entry "modify_Body_dialog")
5 e% V/ v7 b9 w/ r/ { - (ddbody)1 o3 Z- @3 G7 y4 B2 R" ] G& Y
- )
6 C4 ^8 n$ C7 ~" [: p2 E+ [ - ((= etype "REGION")1 b/ `( F% C& w9 w
- (setq help_entry "modify_Region_dialog")5 l. y l' S, A. |# a8 j
- (ddregion)
l6 _1 e5 }9 e8 @+ g6 G - )- v) l! ]5 C$ ?# r1 y) J
- ((= etype "HATCH")) i' \7 @0 W U- s* `
- (setq help_entry "modify_Hatch_dialog")
R( o6 x9 I* ? t3 R. [! s) ~7 q, X - (ddnewhatch)9 l; `2 m& D; @3 Q( F/ q
- )
9 U3 J+ f; x7 d$ } - ((= etype "SPLINE")
1 N* A% Z: ], s. v3 f - (setq help_entry "modify_Spline_dialog"). I' R9 @+ R3 K
- (ddspline)- ~8 W" R# I% V" V; G' _2 r: o
- )6 j) s& @: `& _
- ((= etype "INSERT") ; see ddblock for help_entry3 m; U/ s& v; t' {
- (ddblock)2 ^. d" P% v2 T& k* `- @; J' ~) |
- ): b. @4 O3 c$ h/ M2 L- O
- ((= etype "LINE")4 h6 u9 Q' J8 ~5 @$ M/ q
- (setq help_entry "modify_Line_dialog")6 ~6 a+ Z& J- A4 q. B
- (ddline)- S' ?8 R9 u; K# k% G
- )6 _ ]0 D8 C& a6 x# `
- ((= etype "MLINE")8 n1 @/ J2 P4 W; C
- (setq help_entry "modify_multiLine_dialog")
( v$ e) i) n4 [) O/ y - (ddmline)9 D* _, Y: ?4 O: d) b) `
- )
/ I- P3 S: ^, s' s# W+ q) n - ((= etype "RAY")
2 |) O" c E( W - (setq help_entry "modify_Ray_dialog")
0 J: t: P( g) \ - (ddxline) \; {, P, l! ~
- )% x/ {8 g2 n' Y1 C5 ]1 N% t
- ((= etype "XLINE")
7 V! h" }0 |, c7 |* T- F5 T) q - (setq help_entry "modify_Xline_dialog")/ R# P R P: ?0 q) a: ]
- (ddxline)8 ]* U$ g# w! p
- )2 r" @* i p2 h& [
- ((= etype "POINT")
- M5 b, J7 ?3 O& h! p8 p - (setq help_entry "modify_Point_dialog")1 O* t. N% Z1 l5 Z
- (ddpoint)
- n) W3 x+ b1 Z3 Q1 d% |+ Y$ X8 p - )" V- ] L* M; U$ h
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
6 L6 @* `+ X( f: ]- w - (setq help_entry "modify_Polyline_dialog")- V# {3 D1 \( Y# v
- ;; If a 2D pline, check to see if it is planar to the current
0 f- `2 [" F( C$ ?6 V7 i7 a - ;; UCS, reject if not. To see if the pline is parallel,8 y4 N7 p" v. r1 }
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)
7 l9 |) ^4 C% W$ t3 B$ I* i4 K7 U2 K - ;; and then converted to the current UCS and checked to see if1 A! v; M [4 r/ Z" e
- ;; it is equal to (0,0,1).. U6 g9 B2 f+ T
/ C- }. v+ V6 G- ;; Incase the 210 is default and not in the dxf list." _6 P2 j6 j V; K! P% ^
- (if (= (assoc 210 (entget ename)) nil)
3 J! U) c, o& ~& W - (ddpline)
7 K( A1 Z9 M5 h6 n% ]- a: ^* j - (progn, ]1 D1 ~, V# y' I3 V5 |
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
7 T( R: H/ Y2 D - (not (equal '(0.0 0.0 1.0)
1 e% q/ P* r4 m' J+ F+ {( X3 } - (trans (mapcar '+
Y: I. \# c9 P5 X1 I# G/ {, |" b - (cdr (assoc 210 (entget ename)))
0 ?- b) o$ n& y8 S5 l& M9 x/ ?! w - (trans '(0.0 0.0 0.0) 1 0)+ C. \ w) ]2 @; i7 }
- )
' r# g. [- N1 t, ]' Q. O8 A - 0 15 D! q, b: W2 l9 X
- )
) Z; }! Q; A3 s( b - 0.0000000001 ; fuzz
; \3 W' ^: l) a1 ?$ ] - )7 }+ F* f6 P' l9 g2 d
- )" n4 F3 L' S2 u* X
- )+ u; N) j' |% ^; q( B9 H8 k
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
% y# `& K. ]4 x0 s5 i* b8 R0 a - (ddpline)0 p& O8 ^8 L. I5 q7 M, u. j
- )
4 B: G% ~9 t2 H" `. A6 v% A - )9 l v5 @ N( u6 H
- )
0 h/ F% x. a, n3 Q, ~ - )0 a5 L5 @( S- |
- / y. d5 v2 ?$ }" R: k2 r
- ((= etype "SHAPE")
0 E+ ^' N4 H+ S7 ?3 F - (setq help_entry "modify_Shape_dialog")
; J% j. W8 t l* s - (ddshape)7 i+ d+ o% B$ ]) o3 _% C4 G! F% m
- )
0 }0 u6 o( p' e) z% A6 z$ r! \ - ((= etype "SOLID")
, t( @2 M) D1 L% J+ M! ~ - (setq help_entry "modify_Solid_dialog")
$ v3 O) a- `. Y7 [8 u& ?$ F2 M - (ddsolid)
5 q9 i4 @- `0 W1 L9 a2 z3 G - ), P; u5 K( b, J: Y
- ((= etype "TEXT"), |' H% c6 F2 Y
- (setq help_entry "modify_Text_dialog")
- S1 L7 L# v+ m) O1 m8 j! k - (ddtext); Y* T/ s r* g+ K/ @1 o
- )! w/ X1 H; N3 _3 ?/ i
- ((= etype "MTEXT"); {. d$ }2 E! h
- (setq help_entry "modify_MText_dialog")
" [* g) v, S/ h4 e - (ddmtext)
* O! Q, t) p9 L. s3 p - )& E; R, ]: b6 |
- ((= etype "TRACE")+ R N1 H) h. ]) i
- (setq help_entry "modify_Trace_dialog")
6 v: f6 {! h% G- }2 T, P - (ddsolid)
7 _: w' W2 G8 Q+ C' N* @- ^' H( ? - ); Q$ j0 @! n% c; L& ]% _
- ((= etype "VIEWPORT")
N, q$ |2 Z P; _6 h; \ D - (setq help_entry "modify_Viewport_dialog"): t8 G1 Z" C6 ^# L; g+ M
- (ddvport)1 T% b. w. c% J; S# R5 B
- )- w) {* n8 o) S$ `# I1 }" B
- ((= etype "IMAGE")* X( ~3 [# o$ @2 D' m9 Z
- (setq help_entry "modify_Image_dialog"); K& h9 v, r. s
- (ddimage)5 z! W ]% y) Q# ~
- )% d; }' u3 L9 O% W" c
- ((= etype "3DFACE")
$ m; R. J5 k1 y. C( ?' E - (setq help_entry "modify_3D_Face_dialog")7 b; Q+ `% ]# K0 G7 ]/ s3 X- n
- (dd3dface)" i4 [% o& E8 M* [# e
- )
# F- _. |1 Z. ` - ((= etype "DIMENSION")2 v* |1 U- I/ G( g4 j: J
- (setq help_entry "modify_Dimension_dialog")
7 S# p* `% U1 ^, F - (ddimen)4 ^% _4 j' G% c- D
- )
# ^- n8 t% V- c' E* c5 i - ((= etype "TOLERANCE")9 H! j `, k1 ^5 A4 |7 Y3 G
- (setq help_entry "modify_Tolerance_dialog")
3 J! u4 e' E- q; {9 G8 w3 c - (ddtolerance)0 q2 ]0 v: }; U9 x* I2 j
- )
7 b0 v- w' Z7 @* c2 K" d! U0 R7 Z9 o) s - ;; Fall-through condition changed by MCAD for MDT 1.1 release.4 ?+ J' Z1 R5 B) ^1 e# b
- ;; This allows DDMODIFY to work on any custom object or any new object type) L8 V' m" g2 z0 J1 _" _
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.5 M# C7 |; g; x
- (t
1 w, I5 ]6 o1 _) Y- f J6 ] - (if (and (not ddchprop) (not (load "ddchprop" nil)))6 E2 ]+ @( e! f$ \* V7 D
- (princ (strcat "No dialog support for object type: " etype ".")))
0 | |! u2 s) O; L1 g6 T' W) u - (progn
3 z0 m4 @8 D* n& I: n% U - (setq tempss (ssadd ename)) p4 Q; D( S4 J7 Q" w3 [
- (ddchprop tempss)
9 s& o( D& `" H1 b - (setq tempss nil)
# e# q# f' u& _' c/ r( s& f) L - )- [; }+ H2 D& D
- )& \! r$ v! N$ Q, S; ^
- )
: Y; ^5 K; [" D2 i - ;; Previous fall-through condition.4 q e% q/ @( M* ~0 T+ A
- ;; (t (princ (strcat "No dialog support for object type: "
6 w( M+ m; c) Q0 A - ;; etype ".". u- b# F: i! E
- ;; )
1 K9 g v ]6 t4 Q" a - ;; ), G/ f8 ]2 b% k; i6 m% ?
- ;; )
' R2 W& z3 \# U1 \! y - ;; )
! q, [$ H R; z' s: p/ v" S" p - (ai_undo_pop)0 f2 m& c& D# Q
- )8 o# O2 h# k% e- M! j+ Y
- )
( N# A8 p1 ]' l4 U2 N. F h
( T% v: l7 {8 p0 S! H- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
4 Q# E) G4 K3 v/ Y - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back6 ]7 S" Q8 {3 \( W5 w* c
- ) ; to what we started with5 i, U4 S2 R& k3 X* B9 h
- 2 @: l# B" W) R' x0 o, {$ V
- (setq *error* old_error)
0 P. p8 }. X( O" \ - (setvar "cmdecho" old_cmd)
- P! V/ Z l6 ^% k - (if (not reset_flag) ; if object was modified, then; y# n6 `1 T& h
- (ai_return ename) ; return it's ename to caller/ o# f' b$ B2 b$ \1 L& S$ i
- )9 D c _! |. \% V, ?2 e3 ^
- )- `: L3 d+ j( e0 @9 X4 z; e8 \
- 2 ^; U" I1 h; x% A0 W
- (defun checkForLockedLayer (ename)0 B- a/ p' Q; }+ s4 q
- (setq layername (cdr (assoc 8 (cdr (entget ename))))): u( g+ I) e9 R3 Q0 f) {
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))! f, ^1 _, b" {9 E6 `
- (if (= layerflag 4)
$ s9 G: f& u$ Q" x: a; g - T
* _# o9 a9 h0 f. ]/ n* @: K - nil
/ G# ^4 U) I, I0 t8 s( r - )* A& c, Y/ m5 p& X
- )- f7 o6 l/ X+ Y* u5 V
- # q2 A& |' D* m2 X1 j) F
- (princ " DDMODIFY loaded. ")) z8 C g1 `: \0 Z8 b5 W
- (princ)& l$ N7 M5 Q5 F* u
- ;;;???;;;---------------------------------------------------------------------------------------4 M; @/ t) h" J* b0 X
2 |( U( |' N. d# D- ; Next available MSG number is 8
6 A; e$ |7 a" D+ b- c$ { - ; MODULE_ID DDUCSP_LSP_9 S, K* s p0 A0 ~ T4 j
- ;;;
+ D) d! v/ P. Q, f9 O3 l. f - ;;; dducsp.lsp4 j/ I3 R Z0 v6 x) _
- ;;;* f/ j5 m5 t: \9 F3 h
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.3 ~ [) `8 y% G7 s
- ;;;
# L, ^, l# g! c - ;;; Permission to use, copy, modify, and distribute this software' [$ N4 o- I% s9 {$ i
- ;;; for any purpose and without fee is hereby granted, provided
- `1 k9 ?9 a+ j& j1 ~- x3 c - ;;; that the above copyright notice appears in all copies and3 x2 s; l( N# c1 o ^5 O
- ;;; that both that copyright notice and the limited warranty and2 s4 \* Y, \/ M% e1 \+ Y* I6 S
- ;;; restricted rights notice below appear in all supporting
$ F q* k* Z+ z5 ^- R n0 C; b - ;;; documentation.- o% V) Q( O W" z9 [6 U! ]
- ;;;
$ N- f& q$ w" s5 q( U' f) U, O3 c! h" i - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.9 W* B3 z5 x! {
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ~' Z! C! Y7 E( w; [
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
0 ]9 W# V; o: f& R) J- f( m - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
& c) T& i6 d9 x! a2 d - ;;; UNINTERRUPTED OR ERROR FREE." f+ N+ z1 Y, \1 ]
- ;;;: A6 b* \+ e4 z, Z) B
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
1 p. Q( z4 J- f2 {5 w - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer5 |/ a8 i/ D3 @& b
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
7 {- z+ v# O) h' A. e - ;;; (Rights in Technical Data and Computer Software), as applicable.
( a/ ?$ C" W8 U( _ - ;;;
- M/ o* N% m* e9 v- V# i3 M - ;;;.
4 k' Q0 }6 F7 E% Y - ;;; C:DDUCSP - User Coordinate System presets dialogue.
+ V4 M. _% W* G' ]: e' _! c2 Z j, Y - ;;;
! y H; N r# b2 F2 h. ^ - ;;; Uses DDUCSP.DCL for the dialogue definition. The
: o! E }0 s" G7 C: U - ;;; slide images are in ACAD.SLB.1 M/ J8 W; b' z( a1 ]. q
- ;;;; n1 d1 v* e8 Y0 e$ c, u
- ;;; ===========================================================================" [( x' w9 u6 f& `! w) [
- ;;; ===================== load-time error checking ============================
6 N7 f+ \7 Y8 \8 |% e% P4 H - ;;;
8 i* i5 F' {. z) x
y* j% i6 Z! E8 V' Q; C9 e- (defun ai_abort (app msg) B$ j& S- Q- f- n* U
- (defun *error* (s)7 W+ t/ K, I2 h1 I
- (if old_error (setq *error* old_error))) Y5 W& E6 ?: `' N
- (princ)' A& i* _2 o) D X2 d: k1 C
- )
( }: [) Z2 `4 c6 n$ z' O$ r - (if msg2 A" V& N9 D, x' m& J1 x4 E9 S; n$ i& o
- (alert (strcat " Application error: "
8 W7 w% x" l/ ^4 ? - app
# |. s' a- j- ] - " \n\n "
- e+ r. W; D: d% N2 q( ]1 [$ o( H - msg" m) u! W$ ?9 A5 X+ A8 w
- " \n"
2 u; l4 y3 Z2 c- \ - )
; l& h4 N- q8 z3 @; r2 o0 Y2 f1 n! [ - )
; x( e3 l2 T8 `. p6 i3 F - )* [- a8 x; D! B$ Q5 | g; m9 A a" {
- (exit)2 I: Z |/ f4 `* c6 U; l
- )
; |: i( W" e% h$ K* Z
0 M9 ^' q( c% n/ d- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
+ H; g* C Q( s9 S - ;;; and then try to load it.
4 v, D. X- O7 W8 L - ;;;
' }/ |7 e, n' b6 G/ V - ;;; If it can't be found or it can't be loaded, then abort the! g+ ^7 F) e& n% A% d' H
- ;;; loading of this file immediately, preserving the (autoload)
( g* ]- V( h4 W& `- y( |# d9 d - ;;; stub function.# W& S5 j" X$ u& X
9 t( M7 ~+ n! A+ @- (cond4 `. P$ \8 e( F- _) n( L* w+ U
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
5 e1 ]* L! i j
2 Z0 J, r* v4 s7 ?! l- ( (not (findfile "ai_utils.lsp")) ; find it, ^7 B4 i9 ~& b( J/ e
- (ai_abort "DDUCSP"4 g5 _, E" J9 U* L
- (strcat "Can't locate file AI_UTILS.LSP.") e; l! I) f. I# w0 n' L
- "\n Check support directory.")))
4 R2 f- |1 G% z- k5 w3 w1 ]4 _ - ! Y6 v* R7 ~( J* f1 W: a, B1 X
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
g& U3 z4 g' q1 Z" U7 s( r - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
. z& o6 T- |" ] - )9 e8 w+ \: o4 N7 y- `) ?+ s4 M, i
- ' u. p p+ v7 \. {, l
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP8 `# n4 X- M5 j7 \2 e' z
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
; o j; F+ E+ ?5 f - ) ; ai_abort's alert box dialog.
7 N. t+ A7 m! v8 ?% g- E/ W
" t, F- F7 h/ ^$ e' I' y- ;;; ==================== end load-time operations ===========================
7 d. {$ Z9 Q# ]* \3 p7 c' a - 3 Q% K9 B0 _9 q
- (defun ai_ucsp_start ( / program)
4 z% L( A l1 {+ T! K - ;; Get program name
3 v4 ?, A2 Z- f$ U' ~5 O - (if (not (setq program (getvar "program")))1 w- J* o W2 Y. Z/ g" z
- (setq program "acad")$ j8 o$ r/ m. T0 e5 O/ |
- ); s. y$ O) A. S
- (foreach v0 '("world" "left" "cview" "top" "front" , M* f$ k! Y& I) s4 D
- "bottom" "back" "right" "prev")
! ]* {) X4 k* f5 w. a* ] - (start_image (strcat "ucsp_" v0))
6 E1 ]1 a2 }% ?( _ h% v/ g; H - (slide_image
( u2 d2 @ M" A) @% ?( S2 H* I1 z& i, | - 0 0
% t; q' x V, C, b0 N- m) e: \' ]( z - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)* e" ]) f. c: j! V
- (strcat program "(u-" v0 ")")
) e8 V" q" P, `' z - )* _4 m. q: U1 P* T+ \7 N) N
- (end_image)
: y7 ]- ]' M8 o* l7 B* H - )5 h) s# A! Z) ^
- )* r) D. g7 C* ]2 d( d, i) j; \
- 4 A; d3 r+ Q$ w' z
- (defun ai_ucsp_set ()2 s* z \9 ~' } k3 h+ Y
- (if ai_ucsp_sv
( @/ @1 ?0 D& I! ^7 P - (command "_.UCS" "_V")
9 g ^ L. u( N# [) v, j) U/ [/ z0 g - (if ai_ucsp_prevs. `. ~) B C- {% q" g
- (command "_.UCS" "_P")# l9 t7 [0 Y3 ~% ^
- (if ai_ucsp_chg
: F6 G( v% ^ e" E h* B - (progn
! j& t" X+ j+ }% v - (if (/= ai_ucsp_a "*")
4 L) w( S" j$ q! O6 U6 M5 D - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
" n/ ?2 d1 i, ^ - )
" ]" D# @8 z% c$ e( i1 D9 {& F+ z4 Y+ X( o - (if (< ai_ucsp_pick 6)& E. E0 W9 X, m2 w) p8 `& R0 W
- (setq ai_ucsp_set0 "@")
" ~ F" g: U# q6 U) q - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*"). X; o4 D: P) V/ E
- )# O1 g: X4 G2 o( F
- (cond ((= ai_ucsp_pick 0)
2 e* d. i6 x) l - (setq ai_ucsp_set1 "0,-1,0"
" Z* C- C0 Y: e( h% ~ - ai_ucsp_set2 "0,0,1"
' Y, \% ]2 j. S* z+ _ - )
5 i3 w" }* n! u2 U - )7 y3 Q3 z. ^1 ?/ e- B. J- ?
- ((= ai_ucsp_pick 2)( {" s; F: v4 e
- (setq ai_ucsp_set1 "1,0,0"- y: l" q9 K, _- [
- ai_ucsp_set2 "0,0,1"6 C( B! a2 c+ ], M) x; K6 z- i
- )
+ E" {9 w$ y$ f7 A) z% b' T" n - )
3 W3 u8 K% D; k5 y* Q$ Q$ y- m - ((= ai_ucsp_pick 3)
& M/ R1 B* G/ A8 D - (setq ai_ucsp_set1 "1,0,0"0 y' j. B2 g9 Q3 Y( @
- ai_ucsp_set2 "0,-1,0"6 Q& p0 U: H. ~* ]7 T' f
- )
2 c9 I( O5 [( ]; c - )
) U9 g( Y$ U6 X - ((= ai_ucsp_pick 4)
0 @& [) I( B! S4 C5 ^( x$ P/ i - (setq ai_ucsp_set1 "-1,0,0"
) f R) W3 E# _3 A% | - ai_ucsp_set2 "0,0,1"
3 n, @% h; V# ]3 B5 l) J - )
2 e9 l7 M- ?, V! ]! c5 D! \ - )
6 ^( u4 D9 {6 W- R - ((= ai_ucsp_pick 5)
2 a# b; u' Q A5 p- S - (setq ai_ucsp_set1 "0,1,0"
" Q+ S0 U" h) c5 W - ai_ucsp_set2 "0,0,1"
4 F. N$ ^/ `* ]9 O - )
, e. K" w/ f8 n2 e" U8 } - )0 t2 |! [" {9 _6 f' ^. a+ H
- (T2 t8 Z! s$ ]+ p
- (setq ai_ucsp_set1 "1,0,0"9 ]# m ^4 H6 _( v
- ai_ucsp_set2 "0,1,0"
7 i# D- _4 Z# p& v; Z - ), w# q8 {) E# o$ ^
- ), H+ A0 R9 v' I! e$ V
- )5 [2 ?1 [+ k9 Z! `7 i
- (command "_.UCS" "_3P" ai_ucsp_set0
' _5 V1 D" M0 C0 @ - (strcat ai_ucsp_a ai_ucsp_set1)
4 y: c) I" q6 z* n0 J" i - (strcat ai_ucsp_a ai_ucsp_set2)
8 M' A3 H' _9 s! C - )
6 k- x- d# t; E5 d - )! K( g3 T4 {5 B
- )
2 q- N* Z9 u9 `+ O* x - )
0 |% X3 ~4 t0 z/ j& F5 W$ O - )
* [4 T4 S2 z6 j% u6 m* D - )
! F( k* _9 v: j - . J4 ~+ ?7 \8 e" j2 F
- (defun ai_ucsp_p (val currtile)
) m* \5 O( g% } U6 _: ` - (mode_tile ai_ucsp_currtile 4)6 n5 e1 ]. k- M3 M6 n+ D, U T) W
- (setq ai_ucsp_pick val, E, ^; {. s( s2 L, x* p
- ai_ucsp_sv nil
' o+ `5 ]6 _6 l; B% Y3 f, x1 Q l - ai_ucsp_currtile currtile/ F" L7 P3 O/ v6 S9 g
- )
" C9 {5 ?# A$ L. J G+ C; v# b - (if (/= val 1)
* |) W( l9 e4 F# N4 M - (setq ai_ucsp_chg T): X7 S; ~' b7 r. \
- )
7 e% _ C$ b# C - (mode_tile ai_ucsp_currtile 4)
$ R1 ~8 l3 | h* @/ Q! n+ j - )
% Q# H! Q! z5 Y - - C/ P* J; d2 s7 `8 m
- (defun ai_ucsp_swcs ()! R, p; N+ I( @/ r2 z) d# b4 M) Y
- (mode_tile ai_ucsp_currtile 4): _- D1 t8 p* _$ f
- (set_tile "ucsp_a_wcs" "1")
/ v7 I. u# f* g' m9 ]3 x - (setq ai_ucsp_pick 68 D. e7 P" ?, I4 M% U' Y* f8 J: G% M1 c
- ai_ucsp_sv nil
0 u$ D2 J% J" ]; | - ai_ucsp_currtile "ucsp_world": _' z3 c1 j; t* M( F+ w
- )
6 [7 `: X6 J' d9 z4 e" ] - (if (/= 1 (getvar "WORLDUCS"))
$ O2 R* v9 S; s" r - (setq ai_ucsp_chg T)
$ |, F1 h* J- {& m+ h - (setq ai_ucsp_chg nil)+ t6 d* ~" u) r0 E6 T
- )
+ b5 V9 p) t5 e' x7 \% q* U! | - (mode_tile ai_ucsp_currtile 4)9 ]3 Z9 h: l( J% r
- )
9 w5 S' `, L0 ~/ F
7 o7 }" t# s5 S- k- (defun ai_ucsp_cview ()
5 K8 s& b& V. o8 o# A7 | - (mode_tile ai_ucsp_currtile 4)) U7 c: v( n3 |
- (setq ai_ucsp_sv T
9 _3 \+ l7 _2 `* s/ u& K" U- Y8 q - ai_ucsp_chg nil
' W9 k5 @8 o' K: F V! m - ai_ucsp_currtile "ucsp_cview"
5 a/ d+ \; t# W1 z% G/ @ - )
0 {/ j3 s6 P$ W; G0 t5 p - (set_tile "ucsp_a_wcs" "1")
2 P7 h9 x) p B* J' Y# {% e - (mode_tile ai_ucsp_currtile 4)
0 Q6 }, n- x' I - )
# K+ l! _8 Y* E; A" e7 c - ) [4 L" ^4 o4 a$ }8 g7 P
- (defun ai_ucsp_rucs (typ)
3 O/ ^' S. _+ E# B0 `7 @ - (setq ai_ucsp_a typ)
( G( {3 ]$ U2 w3 X% i! c - (mode_tile ai_ucsp_currtile 2)5 b2 S( l7 B1 Y! m7 k: d1 g
- )+ t, k c9 z" k6 K; z: o3 {
- 5 V, L! \! f- i7 L
- (defun ai_ucsp_prev ()! y: b% N* j. w
- (mode_tile ai_ucsp_currtile 4)
! K+ z- q% `2 _1 Y0 m6 R/ M9 g - (setq ai_ucsp_prevs T9 I; K5 k9 q; g
- ai_ucsp_currtile "ucsp_prev"
: A4 C' s, t, S - )
5 R; U0 N& y# |" C - (mode_tile ai_ucsp_currtile 4)% W" C% j) m0 w
- )- S1 ^; E8 g) J( r1 S, w& s
- + ^; j5 T' ?8 S: C& E! e4 m b
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)8 G+ Z' @& M/ ]. [6 h
- (if (not (new_dialog "dducsp" dcl_id))3 Y$ e3 h2 M" F2 K5 m% |# [
- (exit)4 i, V, y+ E1 v: J, k H: ~
- )8 G: q9 l3 t7 e+ c& t! |9 R; u. _. b
- 5 [7 v2 f, M; v$ z3 s
- (ai_ucsp_start)
! u) n8 @/ N+ O) B8 K+ n5 ~( E - (setq ai_ucsp_a "@"
7 W; c) L) k: T; K - ai_ucsp_pick 24 q3 `/ b* v4 p7 H. q3 C2 R5 M
- ai_ucsp_currtile "ucsp_top") U# Y) ^. {5 y+ ?% b
- )* b+ I0 L/ [, o5 i9 C+ Y5 V& E7 E
- (if (= 1 (getvar "WORLDUCS"))
! M' L9 t& c/ `9 ]& T2 A8 P$ J( J - (progn, N: n& h. [' J1 s0 W
- (set_tile "ucsp_a_wcs" "1")& T: P' b! }2 g7 z2 n: l- J* q" b
- (setq ai_ucsp_currtile "ucsp_world")
9 E4 H9 X1 k0 I/ d% T! E+ M' j - )
9 N8 d) D' v7 C/ H+ P* K7 |( l9 t - (set_tile "ucsp_r_ucs" "1")
4 f' Y' r. n- b2 }, w - )% C' \6 S# ]3 a- k
- (mode_tile ai_ucsp_currtile 2)% D$ k0 W+ l8 P7 H1 i+ s0 t2 c
- (mode_tile ai_ucsp_currtile 4)* l9 F+ [5 M4 _
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")
6 ?5 n, ~1 Z& ~4 F/ C% O1 C - (action_tile "ucsp_cview" "(ai_ucsp_cview)")
: c0 X5 ~) Y: v - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")* r9 k/ S) l9 U* V9 k7 h% m
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")+ S \8 i8 X3 s. f" r4 V
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)") x/ G, {6 S0 L
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")2 L9 ]" S2 r% v% ]) @4 Y) v* |
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")! ^# `6 A, \* Y
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
9 Y6 Z& e" S; v4 S, j8 D - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
9 F0 R4 v6 y: k3 g - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
o6 \! b2 }3 r q3 L - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")) C) ]! [ z$ u" u/ V
- (action_tile "accept" "(done_dialog 1)")
* z( f# f6 f; }/ f - (action_tile "cancel" "(done_dialog 0)")+ V9 h& C+ t$ u; D
- (action_tile "help" "(help \"\" \"DDUCSP\")")
: f/ v& r7 G! Z2 g0 j - (if (= (start_dialog) 1)
: [+ d; `. l; T U$ M2 @ - (ai_ucsp_set)1 H* l/ e. ]) W4 O
- )& }8 n% G6 w6 g/ y4 ]: Y
- )2 ~- b& L8 a# `
- s' s* u8 n& C' X$ q" J4 z
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs * g9 s! ^4 I( D8 _+ v. v s& D/ w8 z
- ai_ucsp_sw undo_init)
1 C; a7 o! B7 q - - J6 D5 N, e( }
- ;; Set up error function.
$ U- {, i" B5 R& I. N* W/ |9 @ - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
: ^3 G9 j) f) e! v- [2 t8 k# { - old_error *error* ; save current error function* q2 Y' r% f0 d. I' z# ]
- *error* ai_error ; new error function
7 U7 N/ Z: u7 y9 ^6 B - old_osmode (getvar "OSMODE") ; disable OSNAP for duration9 i+ {; r: b9 _
- )
% n# s; H9 T) c, c9 a3 s u
" }) f3 u+ W3 G9 h/ N- (setvar "CMDECHO" 0) R8 F# j7 E( X3 a, {
/ D# }2 j2 r' u6 W- (cond$ o/ I" ^# t4 E, u; a8 d
- ( (not (ai_notrans))) ; transparent not OK5 Q& A# D4 H8 [2 Y) g
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
8 ?- l7 i0 j' v, @$ x. c- X0 t - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?* n' r# v8 _# ?- d0 F; u" g" y5 O+ w
- (T (ai_undo_push)
( u8 u+ _2 g0 g+ o3 a2 k: V - (setvar "OSMODE" 0)" U; a, B* [+ M. Z. H
- (ai_ucsp_main)
) V5 r% A# w* k) f% _ G D$ h5 f! A - (setvar "OSMODE" old_osmode)
1 X& E) R4 M0 f+ e- P& K, A - (ai_undo_pop)5 X* @" N& o# Z' p% m/ i
- )
; _+ A0 v1 Z0 ?9 X! h4 K - )
" z: ]2 Q( i/ o1 y' f
! M/ i' {. T X$ u2 ~- (setq *error* old_error) 8 b$ o' T7 d. q: l/ x+ M
- (setvar "cmdecho" old_cmd)
$ D" E ^+ K, n y, O) @1 f0 Z5 c/ C
( s5 p( W+ C+ I W- (princ)
& N0 D, L; ?9 W1 E8 e! V - )+ Y6 m) X D3 m
- 7 ~" v* j5 ^2 ]5 B g9 K
- (princ " DDUCSP loaded. ")
2 n1 O5 ]0 x y' L, i2 N% O) t; F5 D, ? - (princ)
' K% t* _# x7 L L/ h
/ [8 p7 t( b6 D y8 B8 e. Y- ;;;???;;;---------------------------------------------------------------------------------------5 n2 N6 L" l, o* r' ]2 {0 u
- 8 p! s; Y4 \# l7 R
- ;;;----------------------------------------------------------------------------! M9 n' M/ O# T+ P7 R8 m
- ;;;
, \5 h B/ N# Q' D) D$ h% q6 f - ;;; EXCHPROP.LSP
4 j+ a8 j `1 |4 @ - ;;; Polyline and text modification capabilities added by - c7 h( G2 h/ R# r8 {6 h' c. \
- ;;; Randy Kintzley
4 I6 H7 M$ M% C1 S! l2 K - ;;;
1 W7 }* @; Z' d' n5 ^( g4 U1 J$ C - ;;; Copyright (C) 1997 by Autodesk, Inc.
D' b( o: B4 R - ;;;* u5 R5 ]& S/ O# U$ M% k8 l' {
- ;;; Permission to use, copy, modify, and distribute this software
! y2 R% W X7 X7 x5 z - ;;; for any purpose and without fee is hereby granted, provided
# |+ O0 H0 \6 U( \ - ;;; that the above copyright notice appears in all copies and
% b$ T5 y- x( m: w - ;;; that both that copyright notice and the limited warranty and
9 B/ ^: j- _5 e$ g, A4 h" l' d5 l - ;;; restricted rights notice below appear in all supporting
! U6 P0 v* H% f( X( T% N! r/ d9 L - ;;; documentation.
* I. J2 p0 @6 T" t6 W0 y' _ - ;;;
3 X. W/ l7 Q9 v2 O9 L - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS., ]! I. [5 |) g
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
) F [4 e# f0 C% l - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
+ S/ {/ h3 B- h( ^8 x$ j2 k+ i - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
+ p; P2 J+ {) i+ y - ;;; UNINTERRUPTED OR ERROR FREE.
/ ]0 H$ \0 m. F. u$ g$ M: m - ;;;, j- M2 z( Z. ^2 O. \: Y! [- q
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to/ r" F, r# K2 A3 a1 b
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer- ]% Y/ g9 B# z8 ^
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)5 D5 j/ r/ N4 k0 H) O
- ;;; (Rights in Technical Data and Computer Software), as applicable.
6 f% }, y- p- H5 I# e1 z6 g0 Q - ;;;8 ?, `; j2 o3 I1 D- U: j3 a
- ;;;.. ?1 z) m6 M0 {, r$ m( a8 `
- ;;; 28 February 19971 p- {1 R2 L" s* A
- ;;;
- o h$ f0 r ]% @$ r2 ? - ;;;
9 T5 O! h8 A% }9 Y7 t - ;;;----------------------------------------------------------------------------
& K) H5 N% N+ Q$ O& z# a6 P - ;;; DESCRIPTION
# r1 _/ Q4 v. p5 d! H; T - ;;;----------------------------------------------------------------------------
1 _ ~1 B) f# x3 j: }4 q2 Q4 Z/ m - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
7 @0 h: h% D: S3 C" a3 r. Y - ;;; command gives the user the abilitie to change several characteristics
& n% R3 w0 A7 j* W4 {# q - ;;; of selected polyline and text objects.
- E! D- v8 J$ I4 [ A - ;;; The style and height of selectected text objects can be modified
( D) o9 q# E- s3 P/ { - ;;; (including text, mtext and attribute definitions) as well as, width and
4 \5 @% P, L V) v1 d - ;;; elevation characteristics of selected polylines (includes lightweight and
2 [( F$ t( {2 B S8 t* B( l - ;;; traditional polylines.)7 h8 g! W' B+ G
- ;;;----------------------------------------------------------------------------& B( W: n( s$ C/ o _3 L# i
- ;;;---------------------------------------------------------------------------- ^2 L7 X- P( ]' `4 v( D0 B1 K* t8 X1 O
- ;;; Prefixes in command and keyword strings:/ q5 U( Q P. s
- ;;; "." specifies the built-in AutoCAD command in case it has been
# X; ?( t% Y" n( b7 M! f - ;;; redefined. J) v+ h+ n& O! }- H( r {
- ;;; "_" denotes an AutoCAD command or keyword in the native language
$ b. f! k3 P8 `. ? - ;;; version, English.7 D2 w; i2 K2 i" S
- ;;;----------------------------------------------------------------------------
# J( T8 Z( ^$ u- N h - ;;;5 S G: q2 A. c; @2 v% ~
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
# }' n4 W1 \; z5 M; g - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1 C5 j% ]. l! G+ k6 V - ;Functions created as result of loading file: exchprop.lsp
; H4 y5 N# V( ^8 a8 u3 ^ - ; DDCHPROP2% |5 l) _" M, u* X) ]5 X8 V
- ; DDCHPROP2_INIT
! w! T0 N+ E/ @ - ; DDCHPROP2_SELECT# t1 J5 {5 _7 k* k
- ;
7 d0 R v* |0 x' _# y* P _9 i1 | - ;Variables created as result of loading file: exchprop.lsp0 V9 v7 k, j. L
- ; OLD_ALLOC. L1 d z! R$ `3 m
- ;
! T7 \1 y7 y4 O) T - ;Functions created as a result of executing the commands in: exchprop.lsp1 }7 C, P( X9 S& C/ A: n
- ;
: U/ q0 q" v" Z - ;Variables created as a result of executing the commands in: exchprop.lsp
) Q, E+ D; }) L6 X5 B5 e# k - ; AI_SELTYPE5 p! j4 B( F! R$ ?& Q
- ; BONUS_ALIVE
+ J9 ?! O6 X" U" { - ; BONUS_OLD_ERROR
( M$ w8 B4 Q6 }8 n/ s6 Q7 ~; S& f - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
/ b% k8 l: H) O - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; v+ [) J+ M4 _0 J
( E$ p' }* C/ }3 f! O2 ^4 l2 b- ;;;
' C" [( }1 Z2 Q R* G7 i w - ;;; Avoid (gc)s on load to improve load time.) n R6 W/ n0 D" ]7 C. `
- ;;;
4 ?% S" v$ Q* a - (defun do_alloc (/ old_allod new_alloc) @* m5 b+ e+ z! d7 ~
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
* [& \& m' L+ P5 X$ t - (expand (1+ (/ 4750 new_alloc)))
$ u6 H8 N5 {( x! z6 e - (alloc old_alloc)
# r2 [& ?/ O D! t- I9 W - );defun
' p8 C# R# u: S. x
+ X% B6 I( [5 }5 A* D1 K- ;runs at load time - rk
1 U/ P0 ~' g! c& T. Z3 @& v# x - (do_alloc)
, A$ e& H0 M' X8 f - (setq do_alloc nil)" }8 ]# f8 e6 ~* ~9 `
- ;;;, d, o$ s+ i, }: [$ L8 Q3 R
- ;;; ===========================================================================
8 Z. {6 z1 G# Y - ;;; ===================== load-time error checking ============================( D$ n L# @" k6 z7 V8 f# ~" b0 w
- ;;;+ o0 M1 S0 r l. f) W5 Q
- 7 x$ B8 p* Q# R5 l* \4 G, a$ c
- (defun ai_abort (app msg)
0 e5 r1 p4 t8 ^! L% u5 v5 P - (defun *error* (s)2 ]. p0 ]5 V8 i$ k G
- (if old_error (setq *error* old_error))5 S) b, t& U# H$ r1 g
- (princ)5 f2 e0 G* t) ?
- );defun
+ x; U' N' p6 x5 X/ |9 ^. u - (if msg. @8 T5 l: J! a( `( T1 C
- (alert (strcat " Application error: "7 Y. `% B0 I4 W! n& U: d% e+ e. L+ h
- app
! n' _: D) C1 h% r - " \n\n "
( @( x. k U$ \ b* `/ ` - msg
) `( Z% f2 d: Q0 N5 i4 x - " \n"2 e2 @( B! Y/ n8 F% [
- )' B9 d& q4 T. t6 t+ \2 }+ v# \+ j8 G
- );alert& r0 B( z' Z' e1 P8 u
- );if
7 b, U/ Q6 S0 b& e" S- y - ;(*error* msg)
7 F! _& r1 ^& B& \ - (exit)
; l! q8 [" p z( p) b1 n* d) O - );defun ai_abort
* W, Q/ v+ Z- K7 Z3 W; q - % u- K; w" j4 T) K8 Z; k
- ;runs at load time - rk. E6 S+ n T& B
- ;(if (and *error* ;added the if wrapper around this - rk.
F/ T5 }+ t9 i - ; (not old_error)
' o0 K: u3 Z3 B: B- |( n8 z - ; );and . p! P6 L5 O- D7 M$ f2 k
- ; (setq old_error *error*);setq1 w. m5 p. o! Q; k
- ;);if. K; O& W/ {. g, L
! k% K2 T( h% m1 h, Q8 Y; c
6 B! o# \7 C( s# Q- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,& r- [, `8 R6 X0 B; }4 U9 u' z& u* b
- ;;; and then try to load it.
3 V/ M- c6 g o& v) B1 @0 g - ;;;
% r' n3 A9 |* F- g) M1 C - ;;; If it can't be found or it can't be loaded, then abort the
/ ~2 Z% V. B+ C6 f0 S8 u - ;;; loading of this file immediately, preserving the (autoload)( P! m% s7 R: a, R- f2 F1 O
- ;;; stub function.
/ m3 `2 J+ \9 w% f& z - # ~* S, p% s; ~4 d% A) P. r L0 {
- ;runs at load time - rk.. [0 ~5 H+ j) F- `( ?2 J5 m: V8 W
- (cond
, B; R9 l! q% F6 b% R; c/ A - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( s$ Q1 O6 I; G3 X' C
- ( (not (findfile "ai_utils.lsp")) ; find it
) r/ x: ~% V( Z8 H6 p) D2 Z - (ai_abort "EXCHPROP"- I7 y/ q: f6 I2 ?6 c
- (strcat "Can't locate file AI_UTILS.LSP."4 s# S" Y. L1 t a6 n x
- "\n Check support directory.")
# r0 B2 ]6 r# S5 H6 r - );ai_abort
/ `) N# _ i* T+ w0 ? - )
0 j, V7 b4 ~6 f - ( (eq "failed" (load "ai_utils" "failed")) ; load it& C3 T( F% O+ F2 b. \
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
; K! m; e. S2 l3 K5 D8 _3 G/ w U( S - )
3 l. H$ y, H+ K4 b4 f% ?# f2 u - );cond close
% J& b+ X0 I5 M1 u
0 N* T" L5 T% w* [. T5 Q- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP! M$ C3 C/ U$ w/ P2 o3 J
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
) q4 s* k4 c0 `/ a; j d) B J, u - );if ; ai_abort's alert box dialog.
" d# f7 L, f$ B0 G3 r) f0 S- U
1 W" \# ^0 f4 V8 G8 H. _# g% y7 s* i- ;;; ==================== end load-time operations ===========================
) [4 x0 O3 B% p Q6 M$ s: c6 v - . L" U b ]$ h' g1 j2 m9 w1 V
- ;;; Initialize program subroutines and variables. H) p# {: k+ j' P0 ^: N) w
- 4 I8 N! }4 \/ \- j8 ^) o
- (defun ddchprop2_init(); ]3 ~$ A' u! \' S$ ]
* R" h$ i+ T! R5 Z
5 {3 p3 l4 M+ k/ k3 i- . h2 ~9 \7 [& S' u0 [" c4 c
- ;;
7 k( X" l& E# W* K - ;; Define buttons and set values in CHPROP dialogue box
! z. B7 s' G+ w( p& S) s - ;;
. @2 [( t* H' P' K( l8 b' b3 { - (defun call_chp2 (/ cmdact p1 p2) r8 H3 i5 W: f; ]1 X1 @
% f8 T0 c2 Z. t; W' h: S- (if (not (new_dialog "ch_prop" dcl_id)) ) z5 I4 u: G1 ^" s# O$ U# V
- (exit)
- s9 v6 j; O Q& g - )4 a% B% u2 [) I2 O7 e2 y* o
- h+ |% \, A! S2 k: N
- (set_tile "error" ""), |& @; v+ [8 d
- ;; Set initial dialogue tile values
: s$ h S+ b, W4 d' H - (set_col_tile)& i" f) `" E X7 Q6 m0 ^
- (set_tile "t_layer" elayer)
% K3 o; M; n) s- [
, [2 q6 X9 O& D2 H8 _- (cond
5 |& c/ t4 T( Q7 k6 _/ |# x - ((= lt-idx nil)
3 {8 _$ a& j: M7 P1 X0 B& |7 O" f6 N - (set_tile "t_ltype" "Varies")
* d3 G4 y2 }# ]# R t& r& v9 v - )9 H$ {5 S& j: K
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
1 s& w0 P6 S; M - (set_tile "t_ltype" (bylayer_lt))6 H) R, ~, E+ B8 D8 {5 i6 q
- )* [2 m3 x, c0 B9 _" Q5 d+ `# d+ E) k
- (T
' I( b, J, m, U9 I/ F: s0 @ - (set_tile "t_ltype" (nth lt-idx ltnmlst))
0 U3 k1 k& l! \9 [ - )* q7 |) X' B9 I L
- )- b' K2 ^, }9 B0 `$ U
- - {: f+ R- y& c
- (if (or (= ethickness nil)
2 K, n8 X0 F" g$ a2 D - (= ethickness "")
P& [' c2 K/ `! ^" }( D4 d7 _5 k - (= ethickness "Varies") 5 }$ O. v/ q- h+ E* w. _+ [' ~( ~0 r2 `
- );or
7 b; k3 U: z6 d: A - (set_tile "eb_thickness" "")7 t8 A: M. C$ R# y3 I1 |, F
- (set_tile "eb_thickness" (ai_rtos ethickness))
9 m; Z' ]4 d; k5 r - );if
4 _0 M* T, |6 @1 A- z - (if (or (= eltscale nil)
* T" g& W1 x& E0 D2 A/ X u - (= eltscale "")+ D4 x. U i8 `, Z+ G2 ^& C$ T
- (= eltscale "Varies"); c3 D5 A# `( r1 |
- ; z. d b6 i! f
- )( R% H4 w2 w$ _7 Z/ \
- (set_tile "eb_ltscale" "") L& f) b, n! Q2 l* \& L% O
- (set_tile "eb_ltscale" (ai_rtos eltscale))3 B8 l, X* n: {" @1 q" P2 b
- )
\' N5 c& r) {4 }+ i) A$ i - (if
/ x: d8 p' q( u+ X& J* T* f: p/ a - (numberp ewidth)
1 I( W, y% w" J+ l' v+ F - (set_tile "poly_wid" (ai_rtos ewidth))
$ r% j& U: ~/ Y" c, Y4 X! q - (set_tile "poly_wid" ewidth)3 [( |* O* b2 {& e. Q/ s
- ) W5 K/ r) w. s0 M4 s: U
- (if
7 n' n3 H3 o' T2 Z1 f1 a - (numberp eelevation)4 z. x4 P/ z0 V' p8 M t
- (set_tile "poly_elev" (ai_rtos eelevation))
5 M# t$ F: q8 Q% Z( Z - (set_tile "poly_elev" eelevation)2 \3 ~2 X, r0 ?& R
- )9 O8 ^* U6 M. Y; B
- (if
; b* t7 K; v2 J0 V$ T' Z1 {. F - (numberp eheight)
* P; N( d6 q5 `8 [ - (set_tile "text_hgt" (ai_rtos eheight))- m. I) _# m# E
- (set_tile "text_hgt" eheight)9 G$ a: v( P* G' B
- )
* d3 m% T' R1 v2 k0 [$ m G. K - (if (not estyle)- o$ B1 y0 E2 ~+ v5 n" G
- (setq estyle "")" A7 s' w q1 T( i: |
- );if 0 T4 y9 t6 f7 R% W' I: _* f) ~. g
- (setq hair_style_list (tnlist '("style" 16)));setq
0 v5 @0 I; g4 G8 H# U; D( q' c - (if (not (member estyle hair_style_list))
# Y& g3 ~3 X. O% C - (setq hair_style_list (append hair_style_list (list estyle)));setq
8 g6 }$ m. J4 R - );if / z9 d7 p9 q% t2 u: ]$ w' m3 j
- 6 x; @3 X7 a7 ~4 B
- (setq hair_style_list (acad_strlsort hair_style_list));setq* r& x4 E9 \: E5 H2 ]1 \
- (mpoplst "text_style" hair_style_list)
0 Q' U [( _! A: j5 U3 l - (set_tile "text_style" + {9 @$ K+ u" K1 ?+ ^7 \
- (itoa (position estyle hair_style_list))
3 x: ]" ]8 o/ T8 d$ a7 Z - );set_tile
, M% n5 G* c1 {& O a: m. a! C - ) _- D* t- q- }, T
- ;; Disable tiles if need be... ;@RK
. H; e0 V& H& `: h" F3 Z - (setq a 0)
0 y# @8 G% f C. K2 e% k - (while ( < a (sslength ss))
: o/ K: Z- E( j& k# t" ]1 z - (setq which_tiles$ Y2 d V) q; N4 J
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
- }8 ~. C3 B" Z' @! V - ' u8 a# s& @7 ~9 i, i$ ~
- ;; If all fields are enabled, don't bother checking anymore.
- X7 `) `" m5 O) n7 @* {. N- G - (if (/= which_tiles (logior 1 2 4 8 16))7 Q- a0 L# ]4 l. u# F
- (setq a (1+ a))' [" ~# I k) H2 H# N6 k
- (setq a (sslength ss)) j4 W$ l. U) N- q; I. C3 a/ j
- )
5 v0 `2 \+ B+ V5 I8 V$ ~0 U! m: R - )
- l6 ^& o0 N Z5 x - ;; Layer Button and Text Field4 t5 A4 f; g$ M7 s
( ^, R; P/ O0 d6 D; a6 ]- (if (/= 1 (logand 1 which_tiles))
* o, M) ~! h/ `" B0 d6 C1 V - (progn/ s6 a! M, s }( S2 ?/ ~+ }
- (mode_tile "t_layer" 1)
" m3 P2 V. ?' F# R/ } - (mode_tile "b_name" 1)
& L$ H7 M! l* h( c. t. @ - ), y1 q: a0 h4 G* p
- )
4 ]' B7 K, r2 U( c" l
* O8 q1 i ~! z' i) v- ;; Color Button and Text Field: Q4 W8 U2 c# z& z+ A; W6 l4 P% S
- (if (/= 2 (logand 2 which_tiles))
+ ]! }/ z1 d. Q5 i# y/ _3 E8 O - (progn/ _9 R8 i/ A4 `5 i$ _! W
- (mode_tile "t_color" 1)
& ^8 n: k9 d% e/ [ w* f - (mode_tile "b_color" 1)6 Q8 ]% p/ m! k
- (mode_tile "show_image" 1): T r% ]' g- M1 |: I
- )
7 Z- J" c) F3 C5 ^) j# R - ): N. Y8 \: J' k1 \0 w
- ;; Linetype Button and Text Field
5 f ^/ R( L y/ [6 l - (if (/= 4 (logand 4 which_tiles))# r7 F3 s- y8 ?
- (progn
0 N# a& U2 A& S! C: q' j( x' M4 Z9 Y( J - (mode_tile "t_ltype" 1)
* z& G: T! ^6 x7 ] - (mode_tile "b_line" 1)" F1 o. O- @/ ^+ E
- )! _! p3 Y1 N# L3 y: F# D
- )
- K, X6 B3 J6 U; T8 ]7 j7 z' A, L - ;; Linetype Scale Edit Field5 e0 i+ S( \8 j! t0 K
- (if (/= 8 (logand 8 which_tiles)), S; x* a- m" a9 [
- (progn9 q4 F7 C( _: l n7 y. B' B
- (mode_tile "eb_ltscale" 1)
) @8 k3 J. n% M+ Z - )* L0 `. ^( {% d( b5 ?/ d
- )
' H/ I# S- f1 x7 m; E - ;; Thickness Edit Field.) \6 n: M: T$ _+ H6 c1 e8 J5 M+ @
- (if (/= 16 (logand 16 which_tiles))
. P9 e& s2 c! z% R0 o0 h1 K - (progn
5 x: V! [/ [ e3 }- L7 W8 T - (mode_tile "eb_thickness" 1)0 i, B6 ~- H. @# H3 T* w
- )$ M s- }$ s# M- v% m" \8 D
- )$ _- B/ P/ e7 X9 |! s1 [5 {5 d9 K
- 0 p: d. @ ]" f% C/ {4 t+ A
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
, X* t& ?( J& S7 k - (if (not (= 2 (logand 2 eflag)))
! s9 M/ f5 \, M `/ Z6 c9 P - (progn
+ c7 D& r7 ^& {" b$ l$ X - (mode_tile "text_hgt" 1)
; A! X2 U' f V! e - (mode_tile "text_style" 1)- _& X- R6 _/ l7 A4 A
- );progn% i( e2 H3 `2 z
- );if
( |7 @6 ^- p3 V. B3 N1 p - (if (not (= 1 (logand 1 eflag)))2 U8 J) G2 G% T: ^9 J, O
- (progn 0 b/ Q# O! a9 H, K# c
- (mode_tile "poly_wid" 1)0 y( N8 t: a& u& U; r
- (mode_tile "poly_elev" 1)
" U' _8 W/ T4 D* }0 t, P- | - );progn then disable polyline fields& q! X6 v o. D6 I5 k3 C
- );if
3 b; i: A) F l3 |$ c b! d8 Z
2 s! D6 P! {8 M$ t- l( R. }: u# ^- ;; Define action for tiles2 ~: L; O) N; n
- (action_tile "b_color" "(setq ecolor (getcolor))")# Z/ L; d+ q7 o# R- F& C
- (action_tile "show_image" "(setq ecolor (getcolor))")
' |. }6 ^" Z% s9 r' o; b - (action_tile "b_name" "(setq elayer (getlayer))"). S5 k1 a4 y) H, W; T: F! x
- (action_tile "b_line" "(setq eltype (getltype))")
! l3 c# Q3 p% d - (action_tile "eb_ltscale" "(getscale $value)"): e) j9 q8 z. c
- (action_tile "eb_thickness" "(getthickness $value)") F2 r2 ~7 D( S( Y/ K& V
- (action_tile "poly_wid" "(getwidth $value)")0 O$ v6 y8 Y. j& h9 m; y: v1 y7 j
- (action_tile "poly_elev" "(getelevation $value)")
+ ^- q& {1 b* d( }0 W( f - (action_tile "text_hgt" "(getheight $value)")* ?, I2 _9 o7 A$ C3 q$ A
- (action_tile "text_style" "(getstyle $value hair_style_list)") 3 K. g6 Y, _( m3 z% e( \; `
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")"), t1 {0 @% d% N: {& F
- (action_tile "accept" "(test-main-ok)"); b/ A( \+ R5 X: j. P! [- E
# y8 Y. ?) c" D/ ^4 K/ C7 x- (if (= (start_dialog) 1)
9 c' f4 F! T' c4 a' k - (progn2 x1 @3 A3 j2 d3 R) p) n
- ; Update special properties for polyline and text selection-sets.7 ~) [+ n( z6 V9 ?6 w
-
1 I. M% I! p8 S+ s# K8 A, d* y - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop/ O% ~2 H/ K# @ V! Y0 `1 p$ \* o
- (or ewidth
; f8 J2 I2 S4 t9 V b( ^6 R - eelevation
# t+ L" W/ M8 p4 A# y - );or+ Y" a- P; `0 v4 Z1 S5 `
- );and
) Y$ ]( y9 o9 ?3 F, v0 b/ M6 ] - (progn
i$ G) f* a, a3 V - (setq ss-index 0
1 G7 t" _7 T- K# h. T - ss-length (sslength poly_ss)/ [, `: k, k# q0 f" h! [# ^
- );setq
& H2 z4 k) t7 H. P' w - (while (< ss-index ss-length)
* i# h7 k) j* j4 j - (setq ename (ssname poly_ss ss-index)
% k4 E8 z* }% I3 O" m - elist (entget ename)
( B1 _% ~ _3 a% ? - );setq& @8 F7 @8 N. M& T0 M, I& d
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp- G+ i6 h( Z: u+ w; c
- (if ewidth
, H G5 I- t( \: z' A - (command "_.pedit" ename "_W" ewidth "_x")
. u: m8 L, X) r- O - );if / @, w6 e! j1 D( S" v
- (if eelevation ) E2 W* i$ B( |" _8 K& w4 f* j# `
- (progn
- c; K; |) j' K1 X$ K- b - (setq p2 (list 0.0 0.0 eelevation));setq, k, V- b, M$ T+ B: q! J
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")
- E/ d$ t; M( r/ y% A0 A9 D - (setq p1 (list 0.0 0.0- R5 x; Y. b( [6 n5 K# P4 _: N( N
- (caddr (cdr (assoc 10 elist)))6 g; |- j9 Z2 Y8 l" q! _
- );list8 `& X. C' }7 C# K% D
- );setq5 n8 g0 p, u' R, I$ _
- (progn" w# _/ _- [; k% B @
- (if (assoc 38 elist)
& [ N# E5 J3 y - (setq p1 (list 0.0 0.0
; j7 b9 b. c; J$ X! ] - (cdr (assoc 38 elist))1 W: L# X; C6 g; B
- );list2 c( @' o4 c/ W: Y; z
- );setq
( K1 ~9 Z5 r w* z* O - (setq p1 '(0.0 0.0 0.0))
6 \) |% B1 L7 }5 S, G" J% z+ E - );if2 y/ w8 _$ `* D d5 V! M$ C+ O( N! A( W
- );progn # b: U( [3 X- Y4 ^
- );if1 c6 U1 ^- Z: V! B
- (command "_.move" ename "" p1 p2)
( s, q8 \1 V: E( X7 H - );progn then change the elevation of the polyline% W2 Y- j, _1 ?5 h8 u( D+ X
- );if1 T% s6 g: b" P
- (command "_.ucs" "_p")
- ]9 z$ S$ ^4 ?. y F - (setq ss-index (1+ ss-index))& _7 }. u4 W- C0 s
- );while' c& I; T; q* e, V% Y# M
- );progn then polylines are in the selset
5 n# }8 V( q0 E - );if, a' k/ i- e1 h# Y/ b" s# e
- (if (and (= 2 (logand 2 eflag)) ; text
" Y5 r1 a. J' `8 U! F; s - (or eheight $ U8 _# [5 h! K% c& ?0 s/ r! c& b0 }' F
- estyle+ ]2 l4 e$ ~$ @
- );or6 E$ B) h1 y# X& ?) e- h
- );and4 ~6 a6 H! H- c! F9 k
- (progn
! u2 D/ f6 q% `/ c5 F1 T2 l - (setq ss-index 0 ss-length (sslength txt_ss))& j8 o/ C0 ^% R
- (while0 W# G" v" F) y9 n
- (< ss-index ss-length); a9 ~0 s1 k4 l
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))
: r0 K5 C9 h; T9 G- L, J8 I9 h - (if (numberp eheight)7 ~% V& E: X1 X# u! q3 Z# K1 Q
- (setq elist (subst (cons 40 eheight) M# K& R4 E, X2 J1 [6 a9 }
- (assoc 40 elist)
1 S5 k! t C" @+ b - elist, n% M$ M7 l8 n) f: b
- );subst
* k1 l/ A( G( Z( }( q& u1 d& T - );setq
2 j, J6 D5 L. X- ] - );if4 O9 N; P7 f8 j
- (if (and estyle ;(not (equal estyle ""))
8 I+ i! F: O* X7 I1 S% J - (not (equal estyle (cdr (assoc 7 elist)))); ?: \+ G% s' P) w. l( C* Z, x
- );and- c5 y. J1 v! b1 D% p( z! {5 B
- (progn
) _6 Y/ b @ l: p' v - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt ! r$ `* l' U4 T0 M. B3 u" I
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
, Z2 z, u0 d, \3 C! v - ; (setq elist (fix_mtext_fonts estyle
( ^6 y/ k5 B6 b$ b/ f* n - ; elist
" w+ ~ Z9 R* w8 D" S - ; )
8 Y- e4 }* \9 X - ; );setq then
. j' N% j: U: w, c* e - (setq elist (subst (cons 7 estyle)7 |! p1 w8 x* Y6 T( q' H0 @
- (assoc 7 elist)
3 a0 U. C* W( J4 N( o; v4 A - elist, }* O/ F$ X8 ]# E
- );subst
! A, J& w/ J# {4 z) E, P1 D. b: | - );setq else9 m O4 N* u3 k0 k G/ a
- ;);if 2 `7 o' M/ @* N: a
- );progn
: w' x1 V5 ~/ N: Q% n, |- W - );if
3 Q% X% ]8 l- l8 [7 { - (entmod elist)
; T# m3 k9 h3 J5 J H - (setq ss-index (1+ ss-index))- K! N+ a. A9 E5 ? Q! i% D1 a$ W) G) [
- );while8 A: f% E% e+ Q2 L# ~7 M. n
- );progn then
' j7 B& S C, H) ]/ }1 e& I - );if. c" }6 v# E9 l" O1 z% t
9 F0 B8 n9 W1 t+ p d1 O& j6 S2 t- (setq cmdact (getvar "cmdactive"))
# W/ J1 M9 G/ r2 n X - (command "_.chprop" ss "")6 H/ O" U/ A# a3 ^7 z7 p0 c
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
& \: i6 R- ?! [& n* Q9 ^: o - (progn
. M( _' ^! ^8 y8 `& f2 r' g - (if ecolor
1 S1 R- }) }" t" I* t! @2 _ - (progn1 d! [8 K& _6 ^' W
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
* j& }! K/ p5 P* r9 f1 ?; g4 H4 V - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
% v) o8 v7 w( M8 d - (command "_c" ecolor). Y/ Q. O4 K2 f1 v! A; N
- );progn then% v r F3 P/ [
- ): p' S3 A% S+ k& w/ @2 W I. u
- (if (and lt-idx
* G$ d# }$ i, ] - (/= eltype ;|MSG0|;"Varies")
! z9 e) P. W( o1 a: n - ) T( _7 |6 F2 e& V" ~4 O
- (command "_lt" eltype)
% N# _7 |5 s( W9 Q4 C - )! j0 v; s4 O& O( v0 T/ W
- (if (and lay-idx + }. G( a$ l& O. O/ U
- (/= elayer ;|MSG0|;"Varies")
( o# S, [7 ^0 q4 G" ]4 c% U: W/ P Q& s* Q7 N - )5 N4 a' L+ c7 H
- (command "_la" elayer)
5 z5 d5 G* s! r$ x - )! w$ {: |3 K) d% k8 J: o
- (if (and ethickness
' u$ q3 ^ E* t% K# s5 a - (/= ethickness "")
3 F5 l: Z! t3 |) H, A. Y/ Q - (/= ethickness "Varies") ; H9 s/ q3 `1 w! Z; D
- )
! s7 I3 t4 q& e0 h6 k& x - (command "_t" ethickness)
- c* H5 M5 ^1 Y n* W: c1 F; S - )2 r* ?9 t: p( y9 }1 m9 s O
- (if (and eltscale (/= eltscale ""))* R# O; Q% L- I+ A; }" S6 P
- (command "_lts" eltscale)
6 m/ C* d+ X. O- F - );if
: t; @- P' B6 c: j n1 h0 v" S- C - (command "")) Z6 Y/ H: _( O0 z0 G7 N( S) A
- ) _0 Q" O7 H7 S
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set1 R/ }1 R8 B6 ]' r/ Z8 s# a( X1 x$ J3 V
- )
5 x1 ?5 u3 C& E L - 0 d$ H$ _9 @! e# q1 f
- );progn then OK was picked in the dialog.
& z4 I Z# E% T& n* {+ o -
. j- k0 P* E$ V- S, l- d - ;; Fred GERBER - 25-AUG-944 w+ q0 z* B0 o2 N+ ^& l) B0 U
- ;; Don't print the "Properties unchanged" message when the user cancels# ~& |: u; B0 }" _
- ;; the dialog because he knows that already (otherwise he would have
! d8 C7 w( u- c( P1 Z# E - ;; hit the "OK" button). Display the message only if CHPROP fails for
& ]3 E z( r5 W" Z0 I9 e - ;; some reason, because it is not the expected behavior of the command.4 Y3 M" ^# t& Y( m& D/ A* U
- ;;
8 Q* S5 K: l3 g. F+ v+ u: q) ^ - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
6 I' Y1 g# J l; }# \: p - );if) `5 K( Z3 y+ q8 C R
- (princ)/ c! t% G1 E7 q, v" Y. c) R
- );defun call_chp2
- q- z4 C0 E4 Q - ;;- |7 K+ o8 V. H' R2 i
- ;; Function to set the Color text tile and swab to the current color value.
! N" V$ e, G1 M% T& p- ]# b# x - ;;* h7 q; r4 U. `4 b% H7 s
- (defun set_col_tile()4 v! y6 k3 s! _6 I
- (cond# Y. z% G C! x* y. W) \
- ((= ecolor nil)
3 p3 z, Y2 w* e0 c) N: f7 _$ v - (set_tile "t_color" "Varies")
) w" Y) n* Z; T! w- \ - (col_tile "show_image" 0 nil)/ v. e2 s7 r" X0 z. G0 C; a+ ~8 y
- )
" x% c- K6 n1 z( E - ((= ecolor 0), K( v% d: l9 h. I: Q `: E
- (set_tile "t_color" "BYBLOCK"); M/ I! _* o+ J c, P
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
% }+ w' E5 J$ }8 f& z" I$ q - )
8 Z1 _ I3 [- G# W+ q7 [) r - ((= ecolor 1)
* j2 V" b2 W" {, p, g - (set_tile "t_color" "1 red")5 U) v& U( W2 `6 Q; ~; k
- (col_tile "show_image" 1 nil)$ k. {: j1 p& w% q
- )0 ]: F3 r; J9 S# \8 O/ } \
- ((= ecolor 2)
& a( B) c8 x( Q- e% ]+ j6 H - (set_tile "t_color" "2 yellow")
4 q- t$ B5 I7 m: }/ }2 o5 G- d - (col_tile "show_image" 2 nil)5 p" y2 v$ z/ a, M1 M9 @# u# d
- )9 {6 t' h6 M$ t# A6 f
- ((= ecolor 3)* T. S! x3 ]2 G7 W
- (set_tile "t_color" "3 green")
. M/ `! }' m5 V! ^" K - (col_tile "show_image" 3 nil)" @2 g, @5 E# e
- )
, B1 b( _/ D) N8 h& c7 H - ((= ecolor 4)) W9 K0 W8 k. b/ i. Z$ E' w( R
- (set_tile "t_color" "4 cyan")
$ Q2 B. `2 X) w - (col_tile "show_image" 4 nil)
6 q/ U) W. ~( k* ^6 x0 P: X- Y - )" y' w7 i% V& Z2 O4 X* O
- ((= ecolor 5)9 w1 M8 S- g1 c6 i: A2 }
- (set_tile "t_color" "5 blue")
9 g0 R% u5 `6 D9 U4 v. C' z6 H - (col_tile "show_image" 5 nil)3 I$ S z- ^+ ], r. O) h% u8 P
- )
0 T$ g6 R; U- G - ((= ecolor 6)
/ P! F U6 E5 }! H3 L5 N/ W( ` - (set_tile "t_color" "6 magenta")) o4 ^ j+ B3 `# M* H4 |" c
- (col_tile "show_image" 6 nil)) h: A) H- C. j- f2 p0 P- M! r
- ): ]# b' G; [% @6 }
- ((= ecolor 7)8 R" k0 p% e! z5 y8 u% M
- (set_tile "t_color" "7 white")( c; S3 f O8 x9 g& S0 i' {
- (col_tile "show_image" 7 nil)5 D' \5 u6 {# v6 f1 Y
- )5 X8 C _; q7 p0 N! o' H
- ;; If the color is "BYLAYER", then set the tile to' |$ i, X8 z# P% ]) ?$ K2 ^& f
- ;; show it's set By layer, but also indicate the
1 I9 r) _: ~& l2 c - ;; color of the layer - i.e. By layer (red)( }# t$ U9 q2 [9 t G
- ((= ecolor 256)
/ {5 H l. [3 `0 Z9 d# [' @/ y - (set_tile "t_color" (bylayer_col))
+ {0 ~6 y6 S! f* r8 \+ r - (col_tile "show_image" cn nil)
. l4 s( o$ i# ]0 \ - )9 D9 \/ ~( l. E" r
- (T
( J& g% ]+ n" p$ V - (set_tile "t_color" (itoa ecolor))
+ H) Q: q2 T: x. r( Y. Z7 m: [ - (col_tile "show_image" ecolor nil)5 f( ]! V! M9 J( D* @ c2 I
- )6 q0 }6 \0 O1 g! S6 Q/ G
- )
. X) A: M/ j1 B+ }9 M+ g - )
0 K( X, ]8 J& k* C) O, Y( ^ - ;;+ I y$ a. {& G5 l& p$ Z5 W
- ;; Function to put up the standard color dialogue.8 ?, R5 f$ M6 @# n
- ;;
/ ~: V+ z k" i6 M+ Q# u% w - (defun getcolor(/ col_def lay_clr temp_color): Z+ j. V% ~3 A* h3 R \' L- k' n/ K
- ;; col_def is the default color used when rq_color is called. If ecolor! g/ Z/ q N$ P
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
& `4 s3 Q. J3 d7 T9 U; Y - (if ecolor( @! w) \% U; \: D8 v( V
- (setq col_def ecolor); i$ ?+ C7 S! x2 @
- (setq col_def 1)" n, X8 E7 m, J2 W! y" N
- ); G, O; E; O; F. X
+ B: _+ L1 Z, `2 `5 j# M- l. z- ;; If we're working with a single layer, get its color
/ {. J6 | ^+ r4 y1 N0 y- z) ~ - ;; for use in the color swatch if the user selects color BYLAYER./ O. w; r* f2 ~0 d* D$ X- {7 h
- (if (/= elayer ;|MSG0|;"Varies")
, Z, k3 a. I7 r" ] - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
( u2 X7 }& X$ o, p; F* k6 V - (setq lay_clr 0)$ o" T3 S' J/ P7 N
- )* ?! g: u& }! [
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
/ b" ~8 t& b* f" L - (progn
. g9 T2 f0 f+ O+ P. N* J+ M: j; a - (setq ecolor temp_color), J0 O1 k$ x- O( x% e
- (set_col_tile)* f6 R* ~1 f, O; w/ a- i% p# g! [3 J
- ecolor3 T# b4 v4 T1 o9 q' O2 k
- )
- t* J# N& B9 Q2 G4 ~; p4 i - ecolor! [) F' n1 O: U; z
- )
; o4 F7 s- s0 {4 C2 o; y - )
- D& Q! ^0 t8 p! Z - ;;
/ K9 z. {4 f ^ - ;; This function pops a dialogue box consisting of a list box, image tile,
1 t# ]0 q) j4 w/ m+ b: l - ;; and edit box to allow the user to select or type a linetype. It returns" y" O3 d1 Z: f, D/ `
- ;; the linetype selected.
0 B* \1 o. w- W+ K0 o n - ;;) e9 [. j! b2 Q8 b+ J% w+ k* K. O3 U
- (defun getltype (/ old-idx ltname)
' a$ K) a. H+ Z! r# x* u - ;; Initialize a dialogue from dialogue file
1 N) ]$ S# ?9 u0 q ~ c u( n - (if (not (new_dialog "setltype" dcl_id)) (exit))+ R& L; x) `/ a! T! O4 c/ d
- (start_list "list_lt")
/ P7 t7 @# Z0 | - (mapcar 'add_list ltnmlst) ; initialize list box# p4 v, `8 R, T' t
- (end_list)( h1 \- u, t1 I
- (setq old-idx lt-idx)
' \2 T" m+ I* [2 w& O! w) T - ;; Show initial ltype in image tile, list box, and edit box+ C+ F, T0 e( P( x
- (if (/= lt-idx nil)
; z& T* g9 t$ b5 [) Z - (ltlist_act (itoa lt-idx))
q) Z* p2 {" U! P1 j e" i - (progn
1 ^! ]# z3 D+ J: z - (set_tile "edit_lt" ""): l! v2 ]* o, ]1 @6 ]
- (col_tile "show_image" 0 nil)
# }+ e+ l' C3 t2 A6 E, U- i4 Q) A" U - );progn else6 `0 j& B9 k) i/ H9 a3 s
- );if
4 l7 Y$ R: L. R. i( Z' z' e% B - (action_tile "list_lt" "(ltlist_act $value)")
* y/ Y% u7 ~0 H$ i1 A: ]( | - (action_tile "edit_lt" "(ltedit_act)") e& D* E/ ^5 e- F0 B( K
- (action_tile "accept" "(test-ok)")
: X6 Z5 i9 L% ?' B( P% i - (action_tile "cancel" "(reset-lt)")7 w/ P! B+ q8 j R0 U; @
- (if (= (start_dialog) 1) ; User pressed OK
; x# @' ^; r) M- L! ?+ q - (cond5 c U8 l# J9 Z& Z
- ((or (= lt-idx nil)2 [1 O8 e6 n& D8 ?0 E* }
- (= lt-idx (1- (length ltnmlst)))
' |9 Y7 f% u1 @) V# ]( h - );or9 }; h7 J9 _$ e6 J: s
- (set_tile "t_ltype" "Varies")
& ^3 F( N0 W3 S; _ - ;|MSG0|;"Varies"* |) N+ S! ^6 w+ {! T( X. H5 x
- )7 e) b9 z# `' M& h& ^: \
- ((= lt-idx 0)
* x2 N& \( B+ n; C% {5 s - (set_tile "t_ltype" (bylayer_lt)) ?% S% b! `& @) {/ A! d
- ;|MSG0|;"BYLAYER"
) c3 v& [+ V5 |, N9 g - )
+ l& q' w3 b3 U; W6 b: q$ R: Z3 b* ~ - ((= lt-idx 1)+ ^3 q, G0 x% ~1 Z9 z' ~' M8 ?
- (set_tile "t_ltype" "BYBLOCK")/ o7 \! f" N4 a, G; E9 y
- ;|MSG0|;"BYBLOCK"$ J' Y6 @6 S3 q/ v7 j
- )7 N! m" S3 \ N
- (T
/ j) S1 ^# i$ f) E w - (set_tile "t_ltype" ltname)+ h& r/ m& I; |7 |2 }
- ltname5 Y8 ^, p8 k, B% P' G
- ): P1 X( L j L9 p0 Z {! W) D
- );cond then
O# ]7 k3 u* ^ - eltype
( Q1 [/ I8 x' z/ W( A& u9 P - );if
( k! c7 l, ^1 G* G+ E, B$ ? - );defun
8 Q2 o. s+ x Y, Z - ;;. W- C5 Z6 O# P3 P2 _$ J# N
- ;; Edit box entries end up here2 Q; c# G7 t S% }- ^0 ?
- ;;4 n% m0 {- Z, p, q/ m
- (defun ltedit_act ( / flag)) T# g: J* I7 q' Z3 `
- ;; If linetype name,is valid, then clear error string,7 G) E( B: U$ Z4 a7 {
- ;; call ltlist_act function, and change focus to list box.
# E$ J) d* H, D - ;; Else print error message.
7 X5 c$ g; Z) m" _ b8 M" z. } -
7 _3 K! k, p1 W+ V - (setq ltvalue (xstrcase (get_tile "edit_lt")))
1 }7 U$ s5 g3 d7 \0 e - (if (or (= ltvalue ;|MSG0|;"BYLAYER")" ^ m2 M. U# J0 E
- (= ltvalue "BY LAYER")7 j* F6 r$ p; P: s! X( n* I
- )" O/ O/ l3 H7 b* r
- (setq ltvalue "BYLAYER")
6 X1 C8 r# G3 v! G% b2 x - )
/ e0 q! N8 v7 {8 `. [ - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
" L( l& k6 G* V: P - (= ltvalue "BY BLOCK")
5 Z( j& d) ^% i. v0 h1 [ - ). V+ p2 p3 ^, [+ m# i( L# e
- (setq ltvalue "BYBLOCK")) w$ e4 ~1 t- J4 B" U( D2 b# \2 f
- )
6 o2 B. p: }0 X8 a6 |7 o! i - (if (setq lt-idx (getindex ltvalue ltnmlst))
& @* O: M1 |6 w5 Q) |) ` - (progn
: l# c; N- {0 [" ^5 d. Z# k( X - (set_tile "error" "")
$ Z) b6 r6 H( u8 |, [, z - (ltlist_act (itoa lt-idx))
" a: o* g+ ?; |8 k' X0 W$ O5 w; q - ;(mode_tile "list_lt" 2)
) ]1 v& ~- o3 l$ `$ j+ z! }, B - );progn then# G6 M1 P+ v, ]+ T% s6 @9 w
- (progn
; Y0 |9 E) x o2 ]; U( m - (if (/= ltvalue "")9 a/ @4 _5 s/ T. t
- (progn
, K# N# q) n- t9 p: A) l - (set_tile "error" "Invalid linetype.")
- `6 I# @8 d: b/ s& T) i8 C - (setq flag T), v' n- z$ y# b& r; J
- );progn6 }5 E2 U& Z) Y
- )
7 \, @8 N, I- K0 G% v# G5 j - (setq lt-idx old-idx)0 o# C, Y7 t0 U3 K8 Y9 F- \
- );progn else/ Q. ^0 n: y# y6 M
- );if
2 F& E# u* v" l- c) h1 o8 r - (if (and (not flag) ;added so a return will take you out of the dialog.
J7 R' `0 K% p - (= $reason 1)/ d0 ~$ I- q0 S& G" L9 n1 g6 m- o
- );and
$ [* E/ o) l5 T+ s4 ]' S5 n - (done_dialog 1) 9 ~6 s) _# R5 f6 n C P
- );if
$ ^* w5 x2 m o. b" X - );defun ltedit_act
" N% g7 w7 s2 {9 R - ;;8 U7 Q# A+ h" A( ^
- ;; List selections end up here, O. l9 n' h7 F8 Z$ ~% k: n1 k! W
- ;;" z; B' `* g8 N( E5 P* ]' v( b C
- (defun ltlist_act (index / dashdata)
' u8 K% m r( l5 R6 ~ - ;; Update the list box, edit box, and color tile7 C" u3 D: z3 ~) A
- (set_tile "error" "")+ m1 S- v8 g$ H$ w4 k
- (setq lt-idx (atoi index))0 {+ [; `* x3 H A' Q
- (setq ltname (nth lt-idx ltnmlst))
$ k6 P& k; {) M: H! ?" c - (setq dashdata (nth lt-idx mdashlist)). ]4 ?9 F. v$ O' q
- (col_tile "show_image" 0 dashdata)
7 ~( I9 y, j4 T# G0 k/ @4 y: R! n - (set_tile "list_lt" (itoa lt-idx))- C- W/ ~* f" R; U' @: g
- (set_tile "edit_lt" ltname)
% v$ g2 ]; `+ k$ {$ j. u, t4 h - )" n/ C3 Y* z4 d/ l
- ;;$ D; \2 K' b3 M8 `4 D
- ;; Reset to original linetype when cancel it selected/ { L; [6 y- t
- ;;# n. I( C; o6 W; O+ @
- (defun reset-lt ()
: _8 S# a( h2 B: o8 r/ ] - (setq lt-idx old-idx)
) x d4 A6 X/ L- ~2 n. j% ^ j - (done_dialog 0)
. l1 C* d, O) l: i - )2 U. D) o/ n% O' b1 u
- ;;
# I9 M' M+ s, \4 V - ;; This function pops a dialogue box consisting of a list box and edit box to
5 I) d2 q% W/ l5 ?5 p9 R' J - ;; allow the user to select or type a layer name. It returns the layer name7 D5 Q# U, _& @+ l( b" K
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
9 a6 W+ W' P5 Y. k7 S2 m) j - ;; drawing.) J# u# w$ G! p r2 E; @0 ~- t- l9 |, ?
- ;;
7 V1 e2 \9 t& w; t# u! ] - (defun getlayer (/ old-idx layname on off frozth linetype colname)+ {9 ~( A; x/ ?8 d( r5 O$ J
- ;; Create layer list the first time the layer
) v! t/ ~1 X0 T+ d7 Z4 { - ;; dialogue is called.( K2 g g4 k6 T: J) ]- i$ i
- (if (not lay-idx)5 C% @% l, j4 i% l% d
- (progn, _0 ^% R! T+ Y! F, Z; E
- (makelaylists) ; layer list - laynmlst
1 c+ s# m3 T! B - ;rk: t. k; C5 K0 A8 V8 n
- (setq lay-idx (getindex elayer laynmlst))! v. L" U; l6 t8 a: K* f
- );progn. w# p$ h6 I4 V6 R- B' s% H
- );if
2 K- l. l$ N. C& Y - 4 n/ X* x; S1 ?" i+ M1 [
- ;; Load a dialogue from dialogue file
( O/ p; M* o; p - (if (not (new_dialog "setlayer" dcl_id)) (exit))# [( B# C1 T5 p2 L+ f$ `
- (start_list "list_lay")
) d1 H" F. n9 I3 _ - (mapcar 'add_list longlist) ; initialize list box
1 N7 c9 L& n; l - (end_list)
2 m: e$ r7 d4 z* v, m, { - ;; Display current layer, show initial layer name in edit: x4 M) ~) H: H+ u2 K" H
- ;; box, and highlight list box.
- N2 r, K0 h, {3 {* C4 q - (setq old-idx lay-idx)- ^! ^9 e, \+ x7 I% F
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))' b) Z2 M1 G+ r. s2 i8 q
- (set_tile "cur_layer" (getvar "clayer")); I/ k# Z+ q$ X+ K5 M3 Q4 h
- (action_tile "list_lay" "(laylist_act $value)")1 I, e( W. M b2 p( b- k& S
- (action_tile "edit_lay" "(layedit_act)")' p0 z C3 W& k
- (action_tile "accept" "(test-ok)")6 j$ h! ? ]) d5 \. G
- (action_tile "cancel" "(reset-lay)")' ~6 c9 V- O! U/ w# H, c/ P
- (if (= (start_dialog) 1) ; User pressed OK3 `# w5 P& @: M: b: w) W3 o: N" {) t+ A
- (progn
/ X6 u0 G1 Q/ d. @ - (if (or (= lay-idx nil)
6 C9 t" Q5 I* _: k. T8 J. b& U. G - (= lay-idx (1- (length laynmlst)))
s( K$ Q1 A) S4 V - );or
0 m9 @: `$ g1 C$ W9 v - (progn
* T% r, x( l% U; h$ p" s& ` - (setq lay-idx nil)
( @7 v& {( z) y' ` R - (setq layname ;|MSG0|;"VARIES"). b+ \3 J8 w9 C! F/ \$ x8 Z0 B
- (set_tile "t_layer" "Varies")
, k4 Z. d6 P- Z4 |2 R - (setq layname "")
3 N8 [3 L: J! O. x* S8 } - );progn& v# `/ n& K- n1 C: n5 g. |
- (set_tile "t_layer" layname)
3 h' }/ \9 P' }& m2 ~ - );if
- X* [. d1 q4 o5 { - ; If layer or ltype equals bylayer reset their tiles1 Z% A3 e$ ?9 J4 U
- (if (= lt-idx 0)
) u, h* S/ m. J% X* N - (set_tile "t_ltype" (bylayer_lt))5 z, u" \ Z) D, o$ ?. u& `! z
- );if
. H) r& p9 [& Y6 u- E - (if (= ecolor 256)4 R: [- ?. P3 s3 B9 i0 v4 }& U
- (progn2 j {: P6 `/ X3 g' Q
- (set_tile "t_color" (bylayer_col))! e% @% h' N3 P: U) m
- (col_tile "show_image" cn nil)
! U6 z' y; o2 g - )
+ F. ~% C8 A- o - );if) b, ?- z4 l/ C, b" R
- layname
/ V. _9 E$ g' s! M* F7 A" j8 t - );progn- J1 z: k8 `; H# I L9 k3 W8 P
- elayer
7 Z0 q2 S. @: }, ~$ J - );if
+ J7 n: `. x* b5 O - )1 ?- J) g ~7 r0 o, [! ?
- ;;9 ^6 U+ F S0 @4 z5 J. R& l0 W& Y) o; |
- ;; Edit box selections end up here
c9 ]/ `" t- t" C4 Y - ;;8 U8 m& E; E$ s4 x
- (defun layedit_act()8 j- r7 M2 r" ^- M: W& B# F
- ;; Convert layer entry to upper case. If layer name is8 Z! J; L# f$ w
- ;; valid, clear error string, call (laylist_act) function,) \; Z& o% a" h6 Q! C) H' I
- ;; and change focus to list box. Else print error message.
: ]6 B T: ]+ p" m" |5 ~ - (setq layvalue (xstrcase (get_tile "edit_lay")))2 W: q8 ?8 H! s* R% |
- (if (setq lay-idx (getindex layvalue laynmlst))
$ k, N/ B y/ L b9 c - (progn
|3 S6 A+ {' A$ S: ~. u! p( y - (set_tile "error" "")
7 o" t E) W% k3 |: N- K7 K - (laylist_act (itoa lay-idx))3 Y7 m5 j0 `2 S+ [+ ?# F6 q7 b
- )
3 j: H/ M+ V0 b* v9 f - (progn
( S# v* V w3 ^* r - (set_tile "error" "Invalid layer name.")
- G8 ?' ?" R4 o; h/ Y; E - (mode_tile "edit_lay" 2)
* k/ K7 I, o, `4 y" a2 _( F0 V - (setq lay-idx old-idx)0 s# \) h2 Q& g$ \
- ), x9 E. Z0 @- K2 g3 H
- );if
c7 H0 ]! d3 b! Q6 F$ D - );defun$ e4 E7 T. Q( u/ a4 a( l- Z+ H( V
- ;;
0 p9 ]& s$ N1 h% Z - ;; List entry selections end up here
. L; j3 Y& e7 C; H. o6 y! h* p - ;;
7 N c7 ?1 l. c) h" t - (defun laylist_act (index / layinfo color dashdata)
1 i4 `4 o# P5 @# ? - ;; Update the list box, edit box, and color tile2 q0 J H- x3 H/ _! G
- (set_tile "error" "")# d# v; h! q# d- [
- (setq lay-idx (atoi index))0 D* `8 ^. [& D( p7 F
- (if (not (equal lay-idx (1- (length laynmlst))))6 M9 F5 [9 f: }8 D! ~$ |
- (progn
. K: T' J+ ]3 G - (setq layname (nth lay-idx laynmlst))1 t' L: X7 e" _
- (setq layinfo (tblsearch "layer" layname))
1 \( J. M F( Q7 C+ a' Z - (setq color (cdr (assoc 62 layinfo)))9 n6 |- X! p7 C5 ?4 x
- (setq color (abs color))9 [8 D' i, x& r% m
- (setq colname (colorname color))* w/ Y3 B1 o6 L; s
- (set_tile "list_lay" (itoa lay-idx))
( R* n; }; D7 y - (set_tile "edit_lay" layname)
) s/ _0 _3 N( A7 \- `6 C3 b - ;(mode_tile "list_lay" 2)
6 p, @8 u& T1 A" X - );progn then 9 V% V, b5 ? B5 e* n) g& t
- (set_tile "edit_lay" "")
3 o& b/ J: W6 `+ S- Q - );if + [1 ?4 m3 J- o9 `
- );defun laylist_act! Z9 o* d5 O3 F( m4 ~. o1 c" V
- ;;) t9 H, e+ G( W% t( q2 ~) _
- ;; Reset to original layer when cancel is selected5 [+ H7 e' b! T$ r J$ a. \( z
- ;;# P2 w& u7 ?. T: E
- (defun reset-lay ()
7 j% X3 W4 N6 v3 }' v - (setq lay-idx old-idx). y0 z0 w" u$ l2 z: P; Q
- (done_dialog 0)% _& s: I2 \% {* _9 q9 b
- )
3 ~. e% ^* {0 [: | - 3 u' a) q5 X! D) w! p% z
- ;; Checks validity of linetype scale from edit box. It checks to
" ?' w% T9 A3 ^3 W- }1 h7 { - ;; see if the value equals "Varies".
' d+ K' U5 P% G* B, t. U, i) c - 2 E. Z7 a9 x- [7 u" ]/ T
- (defun getscale (value / rval)
4 R" ?3 N1 F3 E; z - (setq value (strcase value)
. z8 q% |9 m8 Z/ Q4 y- J% G O. c - rval (distof value)
. @4 b3 h3 G' S; W% U3 L0 q% u - );setq; ]! d) |! n% k" Q& [* q* k) n% G h
- (if (or (= value "")
- Q4 U! j A R* T. y7 I0 D - (> rval 0.0)
r$ S: ~9 h+ v- c - )
& k4 O5 d9 A. c5 d$ n; K$ a* d - (progn
3 x4 c6 M) M* y' T; L$ E* U; s - (set_tile "error" "")
& u; I3 K8 G5 F' _5 h - (if (= value "")" z- }" ?( Z+ p8 t" Z
- (progn
/ b! e/ a, {. I3 s - (set_tile "eb_ltscale" ""); ?, w8 Q, p- }( C) {
- (setq eltscale nil)$ l; _% ^* c/ C t! A
- );progn then
& _' ^; k- }1 ^* ~- ?; \ - (progn
. a5 |+ q/ i4 o - (setq eltscale (distof value))0 B- ~/ D! n9 Z* X
- (set_tile "eb_ltscale" (ai_rtos eltscale))
/ c B; B; ^! X5 g- b, q - eltscale
" T& J0 j/ E6 @( l6 h - );progn else
3 @6 y. B$ B/ J+ w - );if
. _! s% R2 A' Z6 v) B3 D+ m& w - );progn
4 v3 i" D1 Y6 C/ [) e - (progn
$ ^3 o# p- n) j: p1 t - (set_tile "error" "Invalid ltscale.")0 x/ Q( _0 b3 w; h! Y: M" A# C- Z) o
- nil
# v: G# v) J1 y- m. W: l2 ? - );progn else6 Y+ }5 c& M6 o+ g+ `0 a! }4 m0 o
- );if
+ h4 e3 U3 R1 b5 z - );defun
6 t# n$ x. P, }3 v9 I - ;;
& i/ \, e6 h: M2 s8 @ - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a; l& g5 I3 y3 f! a( C
- ;; string can't be converted to a real, this routine checks if the first
N7 M, y4 g' ^) f$ X! Q" B0 p! L. @! O - ;; character is "0". It also checks to see if the value equals "Varies"./ s0 _- G" I6 z9 z2 g
- ;;
& a9 n! f" C& w% l- ^# { D+ v - (defun getthickness (value)) W6 J9 G. ]2 [3 n& e% `4 R* W! g
- (setq value (strcase value))
" C: ~2 i5 s9 S) E1 n6 k# `5 q - (if (or (= value "")
. `! h5 j+ N) [. f - (distof value)
- R. e7 c5 P( P3 c+ y - );or! B+ ~2 m) a' G0 U1 k
- (progn5 w) Q/ |! F D0 r% @" e* v9 \
- (set_tile "error" "")
4 @$ b) O, E- B' j1 M - (if (= value "")6 m( L5 _* F8 \2 s }
- (progn
`! o1 l* u4 t, | - (set_tile "eb_thickness" "")
' p/ N! I/ u6 R- c* L$ e+ A - (setq ethickness nil)
9 j1 e6 B5 G4 _$ p. [ - );progn
G% ?' b# Z" i - (progn
. J+ l+ \/ d. M2 B% f( X6 p- j - (setq ethickness (distof value))
, X3 L' q; d& _9 ^# e - (set_tile "eb_thickness" (ai_rtos ethickness))$ [; E+ M' N; t2 x* I. `
- ethickness6 ^" }" f: S0 B8 t) q
- );progn
- ?" E7 r( r1 u - );if$ Q, V& d$ v6 V" e5 \! L2 Q, x
- );progn
9 q/ i9 m' A( V( a2 D - (progn
" {" }' h0 v6 c9 T; s - (set_tile "error" "Invalid thickness.")
" {; Q9 B' C+ ]; f - nil" z: F, ]. W2 {: W8 O9 _$ S
- );progn2 O5 g% |; B( ~5 l# X' m% W2 N
- );if0 N4 t& W J: X
- );defun $ |4 K" g2 |/ e& {
- ;;. ^' Y0 _0 N, y* { y* ?
- ;; Checks validity of polyline elevation from edit box.' e- \" G& \# d4 n4 S
- ;;
/ p3 m9 x" k6 N& G8 Y2 @& d, o# u - (defun getelevation (value)0 U1 p) c0 E, d( C1 r8 Y, O
- (setq value (strcase value))
6 K" q+ ]: d5 L; x - (if (or (= value "")
7 y* L, J- w3 p8 p6 u - (distof value)
+ w& Z+ j/ _2 {# V3 L3 v - )
+ x$ F8 P( z; b: r: ?- m8 `) S - (progn
1 _. Z' f' {& L0 Z) C - (set_tile "error" "")1 z; I- L6 T, r- ^. f
- (if (= value "")! n {4 p3 r. Q5 Q; k9 h% W
- (progn
4 O/ |3 n; B6 H2 A - (set_tile "poly_elev" "")
0 C! G8 B& W, v. u( u f - (setq eelevation nil)
. Y/ l& O3 X2 s) E0 O' z - );progn
9 Z3 [ i; A1 x: X - (progn# t- D) w: U. t( N
- (setq eelevation (distof value))8 s- @0 }: a- R1 `# `
- (set_tile "poly_elev" (ai_rtos eelevation))4 c j0 g3 G0 Z
- eelevation" H% j k4 a! T9 C; N9 L
- );progn: F9 I( g% c: l6 d4 d& A0 b* Z
- );if
2 x2 l5 i2 m0 m5 _3 \3 Z. h - );progn
* f1 U' n: ]; ~7 d- @ - (progn" I& ~* I$ i! ^# Z6 w2 V% V
- (set_tile "error" "Invalid elevation.")$ l8 K9 {, W @- l7 n
- nil
) M5 J& L5 e& ~ - );progn, B" j( \9 b" `
- );if
E/ l' d+ ~' ^. t' G5 I1 z - );defun
. H9 i6 m0 c0 K1 m - ;;" p9 Y3 E4 d, ]& K1 I& k+ T
- ;; Checks validity of polyline width from edit box.8 F/ d7 R$ H# p7 Z( C
- ;;2 P3 @) t$ a2 T0 `9 d2 e4 J& g) ]
- (defun getwidth (value / rval)1 Y$ f+ k* r4 q9 F( V3 Z; Q
- (setq value (strcase value)" y0 g3 k- m: c; a& _! {6 J
- rval (distof value)1 k& p3 k# M9 E8 O) N% X
- )
: L; d8 Z; z. T, k! V - (if (or (= value "")
l- w& ]3 Z- w( g1 d - (>= rval 0.0). L/ q/ ~7 ^- u9 x
- )3 N9 x. p$ H: Z' k' @* D7 L; o& E
- (progn; \2 f4 Z& m% C2 e5 a
- (set_tile "error" "")8 u. V3 h/ P5 C( Z! G6 T# y1 G# ^
- (if (= value "")% ]: Z3 M" R! K( i0 M5 p
- (progn9 a! |$ f+ t! ^6 o
- (set_tile "poly_wid" "")7 b& D6 C# T. y# N1 _; k* M
- (setq ewidth nil)
* |7 f1 l2 [$ d7 F - );progn
5 Y/ b, R0 ^* {1 C) q0 M - (progn( w5 Q s2 B0 Y( Z% I1 r
- (setq ewidth (distof value))% `, u9 T7 `" h, o8 x6 e% v* ], O
- (set_tile "poly_wid" (ai_rtos ewidth))* I5 l5 M6 v+ g/ Y
- ;width
% L+ E& q/ x4 S V! {6 X! e - );progn1 F6 l: y, @; T& z2 s1 n
- );if# }: T8 ^# N& e$ g. ?, Y7 A6 y* T( P4 h
- );progn1 @0 y. _6 c4 F+ p2 ]. @
- (progn% E8 t5 S G4 j4 b
- (set_tile "error" "Invalid width.")
2 M# T' [3 }( z7 ~: V( f8 ~. \ - ;(setq ewidth nil)0 q/ e A# |! n4 U( Q. D
- nil ! e( g# z0 {0 T. o5 Z' i( ]4 A
- );progn9 [ `2 }3 l9 X P& W; y1 K
- );if% t; s0 Q# w* S( m' r6 d# ?4 d
- );defun
`- [( ~& g8 U) }9 X- m - ;;
8 _; K" i+ Z8 Z - ;; Checks validity of text height from edit box.2 H' d& k* \, o2 A1 M) Y# ?3 A
- ;;5 V4 i# x, }& m4 I, ^+ I/ D
- (defun getheight (value / rval)
J: m, M1 p$ f1 i& |9 L. A - (setq value (strcase value)
. f6 p: }/ [& b - rval (distof value)
# U6 i3 m) m2 J4 Q# ?3 j, G - )
2 `9 o' u9 W+ n - (if (or (= value "")
* `$ }0 ]+ b% y/ k4 k) ` - (> rval 0.0)
- X0 e: X. G* E9 { - )8 {% n) X- T3 t0 ]5 S. c
- (progn
0 Y# J& P4 @- D8 Q" w5 c* ]3 u& f - (set_tile "error" "") U! n0 m* [& |
- (if (= value "") p9 k4 C& F: ~" n( q& u
- (progn
# N1 ]; L! s- o. O7 k4 o& ^ - (set_tile "text_hgt" "")
, S6 P E& Q3 c; i - (setq eheight nil)
+ Q# Y/ P r7 N* ?, ~! B8 c - );progn G7 \ N$ B' U8 D2 }; C/ ~
- (progn
1 @" y( `' R n" u% c - (setq eheight (distof value))
. a( h. b; f: T9 A" g2 s- t - (set_tile "text_hgt" (ai_rtos eheight)), y0 j b( A M
- eheight5 Y2 C% U# F7 A* _4 d( R. d5 B
- );progn, H" d" J9 t9 ~$ F3 D
- );if8 Y3 B' j5 d' K3 Y) t% x9 S) o
- );progn1 }- C5 J. S w0 R5 `9 _) Y7 K1 J
- (progn
8 q* `9 Y# ]2 ^: k. ] - (set_tile "error" "Invalid height.")
8 H7 g' k% U; s8 G - nil. E$ x7 e$ d; c
- );progn% ?4 j& ?6 F( J( n" L C
- );if, a5 f B; Q/ L' [. y
- );defun
+ i9 }. E) V F" B* V' D( ` - . k: U) |/ B' M1 y, A( f+ ]& A
- (defun getstyle (value lst / rval)9 A w" d$ |/ ?: D9 X
- ;(setq value (strcase value))
5 `# [* \/ N: z6 |" V+ V* y - (set_tile "error" "")3 {9 S( _+ I5 N: {1 Q
- (setq estyle (nth (atoi value) lst))
" M( t4 h$ T4 R+ H6 l) ^9 u - (if (equal estyle "")! X% F' s7 u3 z4 G; [7 Q$ n" c ]: `
- (setq estyle nil)9 v5 [5 _8 t+ x" L! s2 n" ^: c
- );if6 [- ~& o3 P& f7 Y8 g
- . g; S9 l- n/ i8 |8 [
- );defun getstyle5 e- T# E$ A/ v9 B1 @3 ]' G
- 1 h' G; _- f8 b }2 m' J1 c. Z
- ;;
* N6 }0 s7 e J& f G+ H - ;; This function make a list called laynmlst which consists of all the layer# y/ h$ o7 j- H1 y' R- N+ F
- ;; names in the drawing. It also creates a list called longlist which. J. W6 u) n L: ]
- ;; consists of strings which contain the layer name, color, linetype, etc.
9 C+ w7 I; ?* A8 A# i) I7 Y3 H- s - ;; Longlist is later mapped into the layer listbox. Both are ordered the! S; s& k- b9 d c# E( I
- ;; same. c0 W* C* P; j+ G$ F% b
- ;;" H$ f7 R( [* }# ^4 D5 s* L
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
) U ^0 Q+ l; T) O/ w' i - xdlist vpldata sortlist name templist bit-702 C" j! Z- n q* a0 ?
- layer_number
# v5 |) g' Y# D. ]& r - )/ [5 e' x/ |+ j5 D
- (if (= (setq tilemode (getvar "tilemode")) 0)1 \! q B- e M& Z( s( E) k
- (progn
4 i( m" Q- c0 _. {# [ b - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
/ e5 Z& ^; |6 Z - (cons 69 (getvar "CVPORT"))
4 L8 \/ S- L4 M2 x! K" G - )
& [. v2 h6 g+ M! N) p6 Q7 A% P5 m5 ` - )+ s3 x$ E, X; z1 {
- )1 ]7 b% V8 {7 X* Y4 [/ A6 Q3 I
- (setq cvpname (ssname ss 0))* j& \( k+ c: ~# h
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))" ?; _) ]9 ^' s U& T
- (setq vpldata (cdadr xdlist))
5 c! |. T! v, F8 w* K e2 J7 ~ - )
* j2 d+ p9 |3 z% j; } - )
2 F# w; ^# P& D4 r# }9 m - (setq sortlist nil)1 H3 T# S, S5 L5 a2 q+ M+ W( a( C
- (setq templist (tblnext "LAYER" T))
! V: } R- x+ N6 \! T4 {; n - (setq layer_number 1)1 W& S" x6 Q; ]( z4 f1 H; K* L
- (while templist
4 [; |1 _! q3 A; d6 V+ ~9 |6 A' q! E( ` - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist))))), d7 o, d# }0 m) e. P
- (progn
2 g; F& [. c1 W1 p/ W* _ - (setq name (cdr (assoc 2 templist)))
7 |! n9 s" k- p' X* k8 T( k4 r - (setq sortlist (cons name sortlist))6 z/ X; o# {& x
- ;; Not dead message...
: M2 z$ E( N/ j! d& b/ k - (setq layer_number (1+ layer_number))" |; o- _9 M2 L
- );progn: a/ m* S( v4 i0 w( _2 C, G
- );if. E0 X: K9 g! [
- (setq templist (tblnext "LAYER"))
* K) G, P$ K& @8 g - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))" K1 A9 n. e( i% {+ D/ s
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
7 Y3 I( R' q8 T m! q9 d. G9 W - );if
0 o) c9 T" S* s6 a6 ~ - )" k8 q) J0 g$ L+ Z- d8 b3 l( Y2 x5 Y) j) I
- (set_tile "error" "")! w& u4 ~( o) K" }$ l. V6 G' e5 J
- (if (>= (getvar "maxsort") (length sortlist)): w) v+ z; ~# I! W& _
- (progn( o9 j8 O0 m( P% t7 L
- (if (> layer_number 50)" S, m( d/ u. k+ W* a
- (set_tile "error" "Sorting...")0 `6 [0 f* e% F* f; ^7 C2 h- v% J0 r
- )8 q/ R: R8 C2 V9 y& Y5 i. G
- (setq sortlist (acad_strlsort sortlist))( f' L0 }5 x6 @6 |
- )$ i& ]" j4 q, Y; d5 S( U
- (setq sortlist (reverse sortlist))6 p& V' Z# |! B/ t
- )
% v0 ?, z4 b( N! Q: V) Y - (set_tile "error" "")9 o l& X1 K! O" |
- (setq laynmlst sortlist)+ {7 c( \* w/ [
- ;rk 3 ?- Z; v# w: V( h
- (setq laynmlst (append laynmlst (list "")))
& f2 N) X4 U, e7 k9 b* @0 F- G* t
0 J& `2 {- Z, z. k" p% i7 ~- (setq longlist nil)
3 k5 P- @! C0 O% C$ |0 `+ A - (setq layname (car sortlist))$ u9 ], E+ E: Z2 M. t
- (setq layer_number 1)6 Z& m6 C) G7 I+ P" F4 _9 Z% ?0 R
- (while layname1 i" e% c3 A7 I2 `8 g; j& o8 J( |; n, P
- (if (= (/ layer_number 50.0) $ z2 w* ?0 r. b+ j9 H& o
- (fix (/ layer_number 50.0))& ^9 Q2 q) y- L7 ~
- ): `+ S( g5 ]2 c( S
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
$ h/ {. {0 ?1 V7 W - );if& _2 E6 ~! d6 c( J3 ]
- (setq layer_number (1+ layer_number))
% e8 E5 D2 W* O2 j7 l - (setq laylist (tblsearch "LAYER" layname))
' i* l+ `6 \% O - (setq color (cdr (assoc 62 laylist)))
H' A+ h7 b" b7 O - (if (minusp color)
; s- h. f" D5 C3 Z" g - (setq onoff ".")
/ K% g" }, G% j) y - (setq onoff "On")& N1 w5 M" T# F; O7 l* k+ _: K
- )5 |/ U2 ^1 F; c0 v9 u
- (setq color (abs color))
% ~2 e$ n3 D/ I2 }$ N2 E - (setq colname (colorname color))7 \- w! m: Q o! k- ?7 P, s
- (setq bit-70 (cdr (assoc 70 laylist)))( p" ?$ [1 P: [0 N" e' ?
- (if (= (logand bit-70 1) 1)
9 w3 C- ~( s2 z/ {& J, ?1 f - (setq frozth "F" fchk laylist)+ ^; v& M6 V- R; |1 A2 B
- (setq frozth ".")
, x; P* w& A5 H# q) u2 o+ o - )! V3 Y$ ^# q: Y9 a2 F/ A
- (if (= (logand bit-70 2) 2)
. N4 c# c1 O1 ^. ^" ?1 q4 c1 o - (setq vpn "N")1 Z: Z9 r3 |/ X4 _* b h y
- (setq vpn ".")
- J0 ]+ O4 n" f - ) f* I; e+ Y* e1 @! y
- (if (= (logand bit-70 4) 4)
7 Q5 \# N9 V: O" r Q7 N5 E& c - (setq lock "L")
/ N) v( d' a* f' g1 ]6 O& L8 ~ - (setq lock ".")
( [) t1 a1 j# C3 U( f; v& f - ): f8 ^5 X( ^1 h! p2 s- B% j" u& s3 P
- (setq linetype (cdr (assoc 6 laylist)))9 v) c7 @3 d0 i9 ]9 [+ u! ?# A# J
- (setq layname (substr layname 1 31)) e8 p2 c/ U+ ?' F) C' i# F
- (if (= tilemode 0)
# R1 {( c& l5 K; r; t) _ - (progn. l% h( X1 F! y$ _$ x- E' _
- (if (member (cons 1003 layname) vpldata)
" h5 o! }/ C8 d) a) v. C; k - (setq vpf "C")" L& W1 ~1 Q& O# ~6 M# Z% X& ~
- (setq vpf ".")
4 C1 G+ v' o( h( t4 Z# p - )
# Y d- k/ I, ]' M; k - )
, o0 d3 ]9 x6 d, a: y# e - (setq vpf ".")
& }; g# D# {0 j1 F' V - )
7 n- y& S2 `# d% f ^9 L" L - (setq ltabstr (strcat layname "\t"
* S+ V) S% n& x' }3 U - onoff "\t"
# b. P( n( d/ E1 G5 @4 o - frozth "\t"
( ^& h w; A7 V. a# L5 o% t - lock "\t"
3 [* c$ f. D% P# G- X$ v: y - vpf "\t"
: V; `+ R5 k! w" w - vpn "\t"
) ^$ t4 _: Q' C" y ? - colname "\t"' |* t) k& `5 m$ d
- linetype
. ~/ T. Q3 |: p& r) S4 l - )
% J6 v; C/ w# }( K. y( w8 f - )- ?: V9 r+ [( E0 c! u0 L+ L4 o5 g+ O
- (setq longlist (append longlist (list ltabstr)))
& x9 G4 v' M0 v0 L8 a, g. l - (setq sortlist (cdr sortlist))
" w8 n4 C! G" F3 w0 ^ - (setq layname (car sortlist))0 ^3 q N" U/ {! ~: Q, f
- );while2 X( k u- ~; |5 ~! i
- (setq longlist (append longlist (list ""))) Y/ X" F" \0 E/ D9 [
- (set_tile "error" "")
7 s$ D) d2 g' A& P# H - )
- W7 `! Z' |7 S4 m3 J - ;;
$ w8 i0 @. V A2 s8 _2 T$ d5 Z - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
/ F3 j' s6 }7 Q4 P+ z3 | n - ;; linetype names read from the symbol table. Mdashlist is list consisting
* Q7 ~$ o! k3 z% I0 y) z - ;; of lists which define the linetype pattern - numbers that indicate dots,) q2 g0 d2 ]) j: ~) w! z8 C, S" D
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
; m w2 r# D H; \: f0 y - ;; order of names in ltnmlst.1 Z& @6 |* i! f. @
- ;;
2 T+ K8 E1 l' ^3 R5 L9 m( ` - (defun makeltlists (/ ltlist ltname)
( X* d( u& g+ h0 [ - (setq mdashlist nil); h$ b9 k6 @1 o! O% u5 f; o$ G
- (setq ltlist (tblnext "LTYPE" T))
0 ~/ T( {0 O+ t0 g/ u3 e3 f* z$ z - (setq ltname (cdr (assoc 2 ltlist)))
6 T) Y& G. G, J* r - (setq ltnmlst (list ltname)). c0 N! t; e3 Y- h4 t; p
- (while (setq ltlist (tblnext "LTYPE"))
. `/ R2 w7 `- o - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
* R4 l9 }5 L# w& P6 t - (progn
/ }. u- O: A; ^! ~7 {- h$ b! p - (setq ltname (cdr (assoc 2 ltlist)))
% ^% p# `. w2 o1 o% S - (setq ltnmlst (append ltnmlst (list ltname)))
X+ [* l& n4 }) T5 f - );progn9 E' h+ y, T8 W2 ?/ V
- );if
; u' N1 B) o( ^" N. ] - );while$ ^4 M9 B& I+ A+ i& h( _* a
- (setq ltnmlst (acad_strlsort ltnmlst))4 O6 N9 H0 e3 c
- (setq ltnmlst (append ltnmlst (list "")));add by rk
% G/ d& W2 L+ S- @/ x7 O `) _ - (foreach ltname ltnmlst
* k) d2 W3 ^* }2 g - (setq ltlist (tblsearch "LTYPE" ltname))3 w q+ G: J7 L) Y/ ?* u Y" p
- (if (= ltname "CONTINUOUS")3 s4 O6 }$ N1 B
- (setq mdashlist (append mdashlist (list "CONT")))5 Y V; n# k2 Z7 f
- (setq mdashlist" f- X, v2 W! m }1 {# r
- (append mdashlist (list (add-mdash ltlist))): A: Y4 q9 e( D
- )* `' }, l- s/ m
- )) X8 e* }, \/ H* q$ s
- )1 U8 L# W; d" k5 L, N
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
' B* `3 d( W0 V5 `4 m1 @4 F+ } - (setq mdashlist (cons nil mdashlist))
/ r/ [; q7 \& Z+ B) J - (setq ltnmlst (cons "BYLAYER" ltnmlst))
8 A" Y! D9 Z% S - (setq mdashlist (cons nil mdashlist))& `6 o' c! j. w& w# }8 Z) g. U5 P+ ?; [& S
- )/ d8 F0 }0 H0 O, _ G2 }7 Z
- ;;
2 H3 e6 X' |' g - ;; Get all the group code 49 values for a linetype and put them in a list0 T" x5 L* D+ \- L7 z
- ;; (pen-up, pen-down info)! V4 t5 v) ?2 L4 T/ U3 u
- ;;
' U; I: N: s8 F2 I/ K. N( h, \- z - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)& w/ ?. I, h. B$ Q$ d5 ]4 ~8 d
- (setq dashlist nil)
- L+ M- `6 z+ U+ Z# q+ o* K - (while (setq assoclist (car ltlist1))6 v2 U/ H, b# E6 A; r: i G
- (if (= (car assoclist) 49)0 ^! }) e# `' U& }& ?. B0 N
- (progn
6 t7 F" u( J1 ], D0 c - (setq dashsize (cdr assoclist))
- O2 b6 y5 g! @0 x$ L0 u - (setq dashlist (cons dashsize dashlist))
9 `, P6 I1 p+ j+ H2 W - )/ M4 t# T" ]/ Y$ A" C b2 {* o
- )
# O* I0 D* O# {6 G+ D - (setq ltlist1 (cdr ltlist1)), j! Y* v# e% o2 h' r
- )) a7 x, C {2 w& q; U2 _
- (setq dashlist (reverse dashlist)). [- [/ Q% j: y
- ), t9 b' k7 N0 N
- ;;
* s1 c- H' S" p7 ^3 q# E - ;; Color a tile, draw linetype, and draw a border around it1 u# h$ q; ~$ y9 K6 `% _) T
- ;;
, O. @ M0 i7 a8 g: {+ E# h - (defun col_tile (tile color patlist / x y)
. i$ m: h- N, z* q7 F: `- ^# { - (setq x (dimx_tile tile))! Y9 c D( E+ ]" f/ \6 R# Z
- (setq y (dimy_tile tile))5 q' G& G" j. w& }) S
- (start_image tile)) N6 B/ F; v2 k2 h
- (fill_image 0 0 x y color)0 K$ N X+ f! H& j
- (if (= color 7), [. J" N; r) g6 q6 o4 ~
- (progn' S$ s9 W( E9 ]/ U
- (if patlist (drawpattern x (/ y 2) patlist 0))
2 x: l$ B+ o7 p/ Y; f* ]6 i% L - (tile_rect 0 0 x y 0)6 [ a8 T2 P+ Z! |; `; E* A: @
- )
! h) Z, p/ K0 T8 {" b1 N - (progn
/ H7 m s+ {: c# o. |% y4 Z - (if patlist (drawpattern x (/ y 2) patlist 7))8 I8 B) h: n# D# B
- (tile_rect 0 0 x y 7)* j. N; [; U( j% G$ W
- )
4 G; a. e# b0 s. @ - )
~, j0 m3 a: D) X3 `' ~ - (end_image)
$ B& @& s$ c4 i9 n" R) } - )
( S3 o9 _& m% O2 y7 v% q0 f+ i2 Q - ;;% n! f6 N1 I6 L
- ;; Draw a border around a tile3 p9 s" t, H5 R
- ;;2 e/ `8 k1 r: B
- (defun tile_rect (x1 y1 x2 y2 color)
5 V8 z( n6 n+ x* y. I8 d - (setq x2 (- x2 1))1 z& ^* a- F( b3 a
- (setq y2 (- y2 1))
! g T! }, P* `3 U - (vector_image x1 y1 x2 y1 color)
( D! h6 [/ m8 v - (vector_image x2 y1 x2 y2 color)2 @8 N, M* P Z! F* ?# H# |/ a
- (vector_image x2 y2 x1 y2 color)
- A- d+ p2 d S |* w. ?# i" Z- Z - (vector_image x1 y2 x1 y1 color)
% c, P" d) B, F- u; I - )
, L$ M$ a: G! D) R1 d& X) ` - ;;
3 y1 x( v1 F3 z( N$ Q8 i0 S, d - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
6 ?% v+ N4 Q4 {& _ - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a: G" P' Z# w# C
- ;; list of numbers that define the linetype, and color is the color of the
4 s, f1 y+ z8 J% `! [# ~+ h - ;; tile., c* B; J( ?9 A/ i
- ;;; J& P4 j- ]2 c& [& v" J' G, @. {
- (defun drawpattern (boxlength y2 pattern color / x1 x2; G R6 e+ O5 U! n- O
- patlist dash)$ c o- K) t: ~2 H& R3 D
- (setq x1 0 x2 0) U" h3 \% I8 p7 l8 T4 q, X
- (setq patlist pattern)! Z; ?% B4 T: L, v, r/ I
- (setq fx 30)! @- S1 ?7 N3 }- w7 C# r0 c6 l
- (if (= patlist "CONT")
) X; ]5 k. K* F! f8 m - (progn
z9 y) g) Z. I7 z& ^) ?6 V - (setq dash boxlength)1 Y6 }( x& a' i( K
- (vi)
_0 J# b7 @2 C3 M9 t% i - (setq x1 boxlength)
6 ?; ]; n5 M j" D# A! b - )
$ f8 [9 D( h$ N% N; \* D3 z1 X4 D, S; | - (foreach dash patlist
8 f& H: L* Q) Q/ i1 }4 u) ~ - (if (> (abs dash) 2.5)6 D, U2 V" n) T% r G: ?
- (setq fx 2): ]2 U& k1 g, l& }# t
- ): K% m9 `: |# |
- ): @$ A* N, ~( C* w6 H: @: i
- )5 t$ A% H$ R- g
- (while (< x1 boxlength)
1 f1 r X, K& |; }. k# k# D - (if (setq dash (car patlist))( a0 Y [" n b2 ^
- (progn
2 G/ f5 H5 L* W' G - (setq dash (fix (* fx dash)))
1 G' a5 P: h, a+ v+ R; o - (cond" P7 o& j* Y# E8 I* c
- ((= dash 0)
" h* H7 S7 P0 F2 D - (setq dash 1)
- b. x) k! x: }, s - (vi)
! p9 q; ]- z; {" l: l+ \7 [* p6 c' f - )! \% B& C( L8 t; V" ^4 y
- ((> dash 0)
* X2 z! s/ S: ?! _ - (vi)
/ P. Z" `% N) c! L4 O - )( u0 y3 }* e1 N- J: o( z4 j# A( j
- (T1 a2 p$ E( `, f$ S6 a
- (if (< (abs dash) 2) (setq dash 2))
# I* f+ `* D1 O' T6 ? - (setq x2 (+ x2 (abs dash)))
) F$ Z' Z: l `' n8 G4 b - )
8 ?* x! ~1 T; f - )
- f# R' h, D& A: [; B3 b - (setq patlist (cdr patlist))
3 S0 I [4 {" \ - (setq x1 x2)# G6 B1 `9 x5 [$ b: D: ^6 j
- )
8 e1 u) w9 @. E3 @; X- y - (setq patlist pattern)
% `# W4 |, D3 l' G4 |- q - )$ ]- G, n7 H* W C7 h& |
- ): L* }. Q3 i# x8 L6 D: s" E* m
- )% T i3 k& i+ \: ?& ~' }
- ;;5 o( a* q: y T( u H5 G8 a! @
- ;; Draw a dash or dot in image tile7 b9 C7 q! k- s/ c' R8 ~
- ;;# K a6 e2 p* z
- (defun vi ()
% p2 N1 R# S+ Q2 m& ^ - (setq x2 (+ x2 dash))
+ w$ F. f) C& _9 t. _ - (vector_image x1 y2 x2 y2 color)# N8 y6 ^: w1 s/ f7 G
- )7 b6 t3 o8 b: r+ n
- 8 Q( ~' T. X5 W
- ;; This function takes a selection and returns a list of the color,+ i! d/ L( b. a+ P# W% {/ _, U
- ;; linetype, layer, linetype scale, and thickness properties that
' k+ u: O- h9 L3 Y+ K$ ?0 R - ;; are common to every entities in the selection set - (color
# _; g8 j$ [+ H) l7 T3 {4 u - ;; linetype layer thickness). If all entities do not share the same
9 H- K* t/ ^8 L" l5 e - ;; property value it returns "Varies" in place of the property+ m" V1 K2 C' j0 J9 G7 Z6 a1 j+ ^
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)9 u$ o$ T) @" P/ u1 @. |
- ;; The last item in the return list is an integer flag for the
. A, z$ V# v/ D ^! o - ;; homegenity of the selection-set object types.8 [% B3 g% q0 [3 y J) C0 a. ~
- ;; 1 = All polylines
! }' f; i3 V( f/ m - ;; 2 = All text or mtext or attdef, or a combination of the three
# }# v$ d8 x# w) {" _ - ;; -1 = Any other mix of objects' D5 }7 M. [ d2 c2 @4 J
- 8 B4 T" i( w% I. `
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness! C, }4 B. j3 ~0 t. u$ N6 j4 o. ^2 o; [
- width elevation height go ctr
4 Q3 g# s) ]5 M; t: v2 T7 }: s6 `+ |( Z - eflag 4 B" ?% ~, K% p2 _' ^" K ~, P5 H- }
- etype temp ( {, n' N) R, Q. K, l+ u
- txt_ss ;;;;rk 11:24 AM 1/30/97# I6 M% j* g7 ^$ ]6 I
- tmp
7 ?( D* F! L1 W4 D" j; x! B: r( A - poly_ss
! [2 M9 y6 p/ g8 @ - style* R1 k8 O. ^! s
- )
" U' u2 e. Z( O: x- N
& C! i6 C* _, I* ?
, a5 K( Z3 V7 |& L1 _6 T& s- (setq sslen (sslength selset)9 S0 n" g- z3 c! b- g4 P# u
- elist (entget (ssname selset 0))
1 t& G' ~+ K @& @9 p7 C - etype (strcase (cdr (assoc 0 elist)))
) X2 Z. C8 N% r+ \3 C - color (cdr (assoc 62 elist))' G! Q3 t$ x7 @3 S% a4 o. x. I+ r
- ltype (cdr (assoc 6 elist))0 u! x2 P% L' a: R+ B) k# t/ o
- layer (cdr (assoc 8 elist))+ i; G( b& G3 K5 X$ T$ f- e
- thickness (cdr (assoc 39 elist))
3 H& ~* n6 S2 b9 v- q - ltscale (cdr (assoc 48 elist))
# R: n3 t5 t, i2 U% [2 y7 o' i - );setq
8 `! X( r% K' K
$ c; W7 l7 `/ }0 l, s+ V- (if (not color) (setq color 256))! K! K5 s9 U8 u2 c
- (if (not ltype) (setq ltype "BYLAYER")) d* f7 j0 g! T0 g
- (if (not thickness) (setq thickness 0))
+ h+ j1 Z9 U- K! x3 {$ w7 u. z - (if (not ltscale) (setq ltscale 1))
" v4 b2 z9 S7 u$ k( q4 }
) S. N, u. ~( Y: q" j- (if (not width) (setq width ""))
9 \! `- c! m9 Z+ {5 }$ j4 q$ p' s - (if (not elevation) (setq elevation ""))/ k+ W& c9 U$ ]" i6 A, x8 i8 p
- (if (not height) (setq height ""))6 s7 ]! G8 f- K7 V
2 K- G$ m# S3 a% \! L& L+ _3 `- (setq go T
) s' f* p* N2 z$ P. j1 a l - chk-col T
6 h* r+ j* ~' u+ m; f - chk-lt T ! X( s: r& U8 s6 `' w
- chk-lay T & v/ K* Z- T. q) L" N
- chk-lts T
# ]' J; i' ^/ q# G - chk-th T
4 Y& y. R! Z( u% g - ctr 0+ |5 a" o1 {3 i3 }2 ^
- );setq
6 E, g, d) a4 \9 M3 M! K0 v- V
8 T- d! C+ u2 b- ;; Page through the selection set. When a property
1 n X% x) p& }& g* J/ l - ;; does not match, stop checking for that property.5 {/ O* ?* w& O2 o, l. A: \
- ;; When the selection set is not homogenous, stop checking.) i) S, X+ P _# N% v9 x9 K( S8 J
- ;; If all properties vary and the set is not a type 1
3 E; M0 `' D0 S! u3 a8 R - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
7 R; O5 i+ Y/ M. r# _* q - ; X% w J% J2 X) R# X
- ;Lets set the eflag so we know if the selection set includes any * Y/ `0 s- \0 d* Y5 h1 u7 h
- ;combination of polylines, lwpolylines, text, mtext or attdefs.+ f# ^% M( U) q
- # H9 Q f$ u+ \
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97! v# H0 d# ?" a0 E- @( w
- (setq eflag 0), H' B$ d- L8 L1 m! A
- (if (setq poly_ss
E9 E. C; ]* s3 y6 a - (ssget "P" (list '(0 . "*POLYLINE")8 t9 O+ f" H. Z, u3 p
- '(-4 . "<AND") & e, }) H j& M
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
' C# g+ ]& @3 c% g4 e5 h. q& n3 |" L - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")7 y+ | e2 X+ L ]8 A* J
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>") y7 s; }+ [& z$ W
- '(-4 . "AND>") ( U' {- T H: e+ K& T% h
- );list5 L" ?( [( C2 ?
- );ssget get 2d polylines (legacy and lw). M. ?! X3 N3 a1 ~7 y6 i
- );setq
+ B' M& \$ Z1 n7 c$ ?: T! X/ O. x - (progn
( [# W2 w$ q( Z) t F - (setq eflag (+ eflag 1))
# Q3 m0 q- n# l- \ -
8 a; e- ?! D7 t# F - (setq tmp (entget (ssname poly_ss 0)));setq
! Z$ H' Y7 }: T* W( Z - $ D3 f/ w5 Q5 E
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
/ U, i2 k, C( `6 @$ e+ K - (setq elevation (last (cdr (assoc 10 tmp))))6 `% E( e: ~8 x
- (setq elevation (cdr (assoc 38 tmp)))
, f( l( l# J5 r) |2 o# u - );if( e. N% z' V9 W, W
- (if (not elevation)
" w; ^6 ~+ g; L4 H: I$ g6 v$ } - (setq elevation 0.0);setq, B' \! w4 \/ D( {
- );if( O. d) t" }# m/ d2 v
- 6 J7 ]: y* p, W' N" x! x6 N
- (setq tmp (ssget "P"
: e8 f) P3 k2 s1 D% D - (list - ^4 h" O7 ^0 f
- '(-4 . "<OR")! d; K S6 P1 _$ |
- '(-4 . "<AND") 0 ]. N* Z/ S* [- J) r; u6 D) l
- '(0 . "LWPOLYLINE")
* _' E2 ^; Y* c- `/ D/ l - (cons 38 elevation)
" }3 W4 o# l6 J: ~, f2 ~$ K& ]* t - '(-4 . "AND>")% w! N) J! D# b7 y5 _5 {* F
- '(-4 . "<AND") j1 U1 }/ ]8 V O) U
- '(0 . "POLYLINE")8 W* v# e4 ^4 v1 N) b$ J2 T( ?
- '(-4 . "*,*,=")
$ D8 P9 D% N l7 B6 m4 r3 a - (cons 10 (list 1.0 1.0 elevation))8 l9 n; n8 Y2 B2 d
- '(-4 . "AND>") 3 @ z6 t: v6 n2 g* Z; l
- '(-4 . "OR>"); [5 G2 \% Q2 y) j& |' n. Z
- );list
- Q" |% B1 a: F! o/ F5 u8 E* Q - );ssget
]. R l3 }+ I4 F - );setq
) l% N* i3 y& Q( ]" z. v) o( w6 Y - * |9 V; h/ |2 ^4 j" ~# q: m" U, {+ f9 Q
- (if (and tmp
# s) R, v8 v) ^$ X - (equal (sslength tmp) (sslength poly_ss))% W ~! ?( [4 T6 C6 C x
- );and
$ w- x) [8 f* a" \$ B1 b - (setq elevation (ai_rtos elevation));setq
% X U! ?$ I, J9 @: v8 u - (setq elevation "")& _- L' h$ [5 h$ _: g* p
- );if+ f9 ^+ n) B4 W, ~1 O: a
- ! [$ y% x/ p* N* F
- (setq width (pl_width_getter poly_ss));setq; R; P( u, w0 d4 R# d5 ^# I# f
-
: D7 v2 G" `/ y; {" M$ | - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!- W/ x9 D+ X% i* N3 j
- );if6 O! P+ B+ X4 i8 _1 M
- (command "_.select" selset "")
M8 @* ]: O$ X$ ?! B6 u' l3 t -
3 k7 d; e' {: o1 W3 j. Z# R: K. Z- ^ - (if (setq txt_ss 6 k/ m v/ `0 f/ Z) g: Y1 G
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") + N: v4 i" p3 j- I
- (0 . "ATTDEF") (-4 . "OR>"))
2 x2 Q) g2 K( K9 Y - ) : d: U' G) d( l. ], p
- );setq
: B% F7 P$ F+ R. ], A( R4 x - (progn1 b/ v0 v' ^5 ?( ~
- (setq eflag (+ eflag 2))
' V% { p7 t4 w% L9 {/ U - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
8 }' Y! Y1 T% O - tmp (ssget "P" (list (cons 40 height)))
0 y1 h3 X" X- ?; d- O* O% ] - );setq
8 M; O" x9 z+ Q( t2 h! _5 q - (if (and tmp3 H0 d0 n- o8 i/ z% m
- (equal (sslength txt_ss) (sslength tmp)) : ?# @" p9 z( B& [- c3 ^4 {5 z$ s$ X
- );and2 P( V1 J7 l$ D) Q) [
- (setq height (ai_rtos height));setq ;@rk need to translate from float ) O; ?" F z6 ~6 ?" O4 W5 @7 l
- ;to string and back again easily* r+ ]: Y, N1 D( q5 e7 ?9 s
- (setq height "");setq else the height varies
" M3 {! }( @, [* U/ y - );if
5 P0 ^8 k+ \& e$ P6 v - (command "_.select" txt_ss "") . y' s/ G, p u0 d7 {+ r% F/ G
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0)))) H' t. Q" `- X$ t: l
- tmp (ssget "P" (list (cons 7 style)))
. M- U! D) x, ^* V3 L - );setq
* ?& p1 F6 r; }) o% \; q2 i - (if (not (and tmp" m9 U% u( ^, T0 o
- (equal (sslength txt_ss) (sslength tmp)) 1 ~+ I+ A$ ]8 e3 o; v9 T
- );and8 P) }$ D6 g' s; G: [
- );not
/ J" T; u, f6 y - (setq style "");setq then the style varies + E; d# B2 T5 _' Z9 p' E4 P
- );if2 w; G3 `8 v2 [+ s$ s8 J
- );progn the text type objects are in the selection set
7 h$ W: L5 X5 Y$ n# {: C$ N/ S - );if0 I3 B; [, @% k4 H3 g/ E
- (command "_.select" selset "")
. V" b% {8 q* E& O1 V( V" g" J -
: g0 n( b$ | e2 L - (while (and (> sslen ctr) " p& R6 X3 a/ ]: S9 h
- go
: G% t- m# B5 r+ ^9 q - );and% @" `2 }# K- o4 z. ^
- (setq elist (entget (setq en (ssname selset ctr))))
5 F% }( _7 w4 f6 X4 l - / u5 C" {; n1 V
- (if chk-col (match-col))
* V- e {6 |, }; x - (if chk-lt (match-lt))& W4 m, F3 m- W8 y! w
- (if chk-lay (match-lay))' u+ M- R n$ `% B: i# k% O# b
- (if chk-lts (match-lts))
0 `$ l5 T e- m* t0 X3 v - (if chk-th (match-th)); U/ T& D# R0 H# b- e( e
- l: A8 N2 K/ o8 j Y
- ;(if chk-etype (match-etype))
' b# Z% U& U9 I3 L) C7 X' t
' ^/ {1 i9 B9 S, u, o- (setq ctr (1+ ctr))/ L6 y5 i. {' }! _6 o0 L2 n3 Y
- (if (and (not chk-col)5 o$ t p) @& x& \5 F9 X& C. T
- (not chk-lt)
3 K# E0 D, d+ m( T - (not chk-lay)
/ U0 v7 D$ t) y3 C0 D - (not chk-lts)4 M, ^6 a8 l4 {- }5 F
- (not chk-th)
( V; A! c# c v+ J1 t - ;(not chk-etype)
, l2 l7 Z. _: X- u1 L% A9 c3 [. ` - );and
3 N* |& |; T, z3 ` I( r- v6 `" E - (setq go nil)2 h/ w1 Q* x2 v+ V7 O6 z# A
- );if8 D) D$ y9 F: ~7 l t" O7 j
- );while
2 c: W0 L7 j' p3 i' Y& G' h$ b# L9 p - : H7 x2 c! |1 H5 z, A5 O0 f4 ?& N
- (list color ltype layer thickness ltscale* b* w& v) o5 w3 k9 ]" l; Y, s+ j
- width elevation height eflag 3 \* x' s: q# N9 c! N$ J
- style poly_ss txt_ss
; Y1 p! b( ~9 D; A7 n0 V - )# Z# {6 @+ z1 \: u) k% u6 {
- );defun getprops: n' _, W+ Z% J9 C
- ! P4 K% R' l, g- i: B2 T
- ; This is a speedy little routine to tell whether the polylines in & u N; x' k. C
- ;the selection set argument are of varying width or a constant value.
, @# h: O, g: z H0 Q - ;Looping through the vertex's has to be done for old polylines when / @1 B& o4 h& e3 D! G! y- n
- ;the polyline header has width values of 0.0. Basically, in this case,
; u$ i+ u2 ^3 a8 W6 _ I - ;information in the polyline entity header is abmiguous. Width values $ Z/ H) g( K' G6 b( x
- ;of 0.0 in the header entity could mean the polyline has a constant
( m$ p2 b' W+ k z$ o. m* V+ W - ;width of 0.0 or it could mean that the polyline has vertex's of varying
% o; K) @5 ~4 ]& c& K - ;width.1 N6 p, J( |1 l; O
- ;
$ |/ \& F1 Z0 N0 K& G4 | - ; It's all in wrist. Err a.., I mean it's all in the 'if'
( [* I) M, A- K* H8 ? - ;;
|4 O- l& N/ G1 D( A2 W# A - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
1 G* }( u- v- Q8 o1 B - ) L2 w) U. R- r/ X- r
- (if ss
) R& l+ n% @4 E+ x+ F) e" t5 h - (command "_.select" ss ""). K7 z k& o$ m0 K. G
- );if4 J9 M* E% K( G9 @
- (setq width ""( Z* n' ]$ y% {9 `% d" I( P% u
- flag nil- S" y; \9 @8 `
- flag2 nil# t, R" L; {0 e! c1 t" \- p( W) R
- );setq- N, A! U# C" X! J
- (if (not
, ]' Q4 l& G; o# L! d - (and ss- X1 Z# u; ^. J; _" F- t
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
, E1 O; H* O1 I( \$ L+ x8 E - (setq na (ssname ss2 0)
6 O$ s! `" t/ R5 K2 L - width (cdr (assoc 43 (entget na)))
1 L7 x9 F( u$ ?- n - );setq, v% {) C" T1 v' p; p3 q! F/ A; X
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
^0 `5 U; A- U0 N% |; | - (cons 43 width)8 i" J+ d* ]! s" V# g, {) P
- );list
- [ L7 l" D: P! R3 I# Y - );ssget) K- P9 f* Y$ ?, a0 b8 |
- );setq
& j6 |: h2 M: T% U% [) g - (setq flag T) ( @- F) q2 c+ Q) s+ V; Z
- (equal (sslength ss2) (sslength ss3)); k# C- H3 G& m; Q' Y
- );and M" q$ C; a' M9 L7 \- m+ D- h
- );not1 [6 D/ W# e- {9 N J
- (progn* T, V8 m7 v; l" {! T/ @8 | k
- (if flag
( z/ ]$ w/ {6 J3 ?4 R - (setq width nil)
2 U+ M0 O' {' @& w - );if$ B/ Z' d9 {6 p7 z( \/ T" f
- );progn
5 [$ x5 R- Z8 o4 S! l - );if 1 m; N- y) V m& h, C+ T6 ~$ C$ ^
- 6 g8 U; X4 O7 n
- (if (not # E6 j9 a% q5 a- N# b( d
- (and 8 J- O) O$ m$ K* Q
- ss6 j: V9 e2 b- c. `5 V
- (progn (command "_.select" ss "")
/ c6 J9 y$ u( ~) n - (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq# S* T1 r* T: b1 q% y: r$ X$ g3 {
- )
* ~# U& P% ], z! F1 P - (setq na (ssname ss2 0)+ s! l* O7 u+ l; B8 |
- e1 (entget na)
& ~' ` U' R% c' @8 B1 v - width_a (cdr (assoc 40 e1)) `' V9 {+ N9 A5 D
- width_b (cdr (assoc 41 e1))
1 z7 W( A# @! @/ Y! ? - );setq
- M" s# M; c# q. L# D: `7 H b4 z - (equal width_a width_b)1 ^( N r: H7 @$ Q1 \9 q2 n: ^
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")' P/ Q- n( g# W* |. W
- (cons 40 width_a)
7 ?( Y/ ]/ q* n8 Z - (cons 41 width_b)1 ?& @7 ^- e6 c# E0 c3 e
- );list. u) o# T! C) ~. ~
- );ssget
) v$ Z X# V* I# [' R - );setq/ B& O7 |; V, c
- (setq flag2 T) w/ i! `& L& D3 q9 _; d% v6 H; h
- (equal (sslength ss2) (sslength ss3))% X/ h* v( y t5 u1 @6 K
- );and
) l$ ~) S5 M( F( F; { - );not 0 ]3 W4 j+ N5 F/ Z
- (progn
3 M( G* ?5 u [1 h3 G - (if flag2
3 d$ `4 S* A* N1 J6 d# Q$ u - (setq width nil);setq
- E3 f3 B$ L& `# H - );if
- y' |6 ^& U! w% S - );progn then
$ I2 O, I% @# H1 G" T6 z - (progn$ B! @' q, o6 o j r8 F v; M1 j
- (if (or (equal width "")* N7 v/ j$ \9 Y
- (not flag)
1 }5 l7 {# m, { - );or
! F% j P9 I& Q1 s% X/ Q2 O - (setq width width_a)! {% V' O" z$ N$ R
- (progn
2 b4 S0 p m& ]5 g, }* Z) E - (if (not (equal width width_a))
$ p# Y; Y! |/ l" M% f2 w( Y8 I% T2 _5 R - (setq width "") ^" Z: E6 c. q/ l! H
- );if
: `; t: p# L/ I/ d$ _( z! E* } - );progn( K2 H" R/ f$ W5 v5 A: r
- );if! |+ J! F2 p7 X0 q l0 ^
- );progn, l3 ?8 W+ e2 ` S4 {
- );if U; s' M' j. c' z; K8 c. w
-
8 U+ O, Z6 S+ |. O/ m
) T* {" D8 g5 j# w8 h4 N# F5 t: X) R- ;now for the special handling for old polylines
, x8 R8 w: C- s7 Y4 ^* ~ - (if (and width / U: l; ~1 `6 M$ U; T g
- (equal width 0.0)$ k4 A( b9 v+ b- j) D5 K: \! l; M
- flag2" \1 x# ^* ?3 _" L* J* R+ t
- );and ( f0 ?' {) D: L9 Q6 K
- (progn2 H8 ]6 U; E' G' @
-
& @& i, ^3 r1 ]# { D - (setq n 0);setq' z; p; n2 R) o* X" w/ _% O5 G3 a
- (while (and (equal width 0.0)1 c) ]' u! V* k$ O6 }! t& b" f
- (< n (sslength ss3))( R; _. |) z0 l0 k& b' n- K
- );and
* z2 c* {- o+ {% f, ]% e - (setq flag nil
2 g7 e: _% ]% T* T% s - na (ssname ss3 n)
, y0 b: o; P( F' K* Q1 [3 d - na (entnext na)
& w' S' b3 e0 _8 \ - e1 (entget na) _# C) C8 l# t( m9 u, }
- );setq$ A1 }) ?: L$ P& H' ~8 p
- (while (not flag)
$ T6 x* F. g# ~& _$ t4 J - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
5 e3 G! j/ y A6 f - (not (equal (cdr (assoc 40 e1)) 0.0))
; y/ J6 A( j' X - (not (equal (cdr (assoc 41 e1)) 0.0))
! s2 A4 h$ J1 w - );or5 f( b7 S3 p; s) u
- (progn
) v4 b2 T' ~0 u$ s1 B3 G - (setq flag T);" N3 y* b, L4 W! v% t
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))* N# y! ?& U4 {/ u* q; y) z
- (setq width nil) 3 ], H! `# m, b% R! {% ^. U
- );if( F, X; B% K+ B+ x8 p$ R1 g
- );progn then jump out of the loop
2 q) a! _* A |0 { - (setq na (entnext na)
. Y6 V: d: h7 Z* P; x - e1 (entget na)
. U% a% L: G R( D7 y - );setq
" K+ M$ e- |; N* x4 A - );if & ^: V0 V' y. o! t3 j! ]0 g7 v
- );while
}' q! F, {: L: W - (setq n (+ n 1));setq
+ i( I- T& @' | - );while n8 K& y0 ?5 s% r
- & j" k- ]: z1 g+ \ p) O: m
- );progn then it's a legacy + k# J9 q4 a* V. o4 m, T; N
- );if ;legacy polylines that may have varying widths ( b3 s! L0 m7 Y# `
4 U w7 `9 p) I ?7 t- (if (not width)" t/ n+ H0 o& z/ `) C. @
- (setq width "");setq( p( Q. k. ~( g
- );if
5 E O6 c9 J+ [, \5 H - (if (not (equal 'STR (type width)))
* z K3 J! Z( j6 Z2 L3 n - (setq width (ai_rtos width));setq ; z8 R( h& |8 C* C
- );if
3 z9 {5 \! @% N/ G W -
4 z% X" V. Q6 [0 w6 { - width
' a: X2 u& N, I% ^& f: I# ?6 i - );defun pl_width_getter
& y7 D% s& W% M* z - f8 p$ o- E4 D1 T% H" s
-
3 f9 O2 N# B; C8 |$ C% y* i - (defun match-col (/ ncolor)
+ g. d Z, Y* U8 h: Y7 [1 y - (setq ncolor (cdr (assoc 62 elist)))
4 t, ?# S$ C* M. B" m- N. E1 ]/ B - (if (not ncolor) (setq ncolor 256))
- g) h9 h. Z: Z2 J3 |; l- N - (if (/= color ncolor)
$ V! y8 R6 H" L. ~ - (progn
# _3 T( j" w$ ` R) t - (setq chk-col nil)
4 j* |( c: y6 s( Y( V - (setq color nil); v `/ C$ j: Z# g. O
- )
$ G) a/ b/ X. W) l4 Z - ): [! R$ I* R: n) j+ Q
- )
+ S5 K4 H1 T* H) q0 |4 c - 1 j; E, R# n/ l' h
- (defun match-lt (/ nltype)3 l9 a0 s- ?0 S; A- X; f- e
- (setq nltype (cdr (assoc 6 elist)))
2 w0 k- u2 {) p6 a1 v - (if (not nltype) (setq nltype "BYLAYER"))) Y/ b- V. |# P% i
- (if (/= ltype nltype). \& C- h' _9 ^3 Y4 f! r
- (progn
) l% i4 w& L( v: T6 P - (setq chk-lt nil)
7 {- O& Z, a! i5 R. X9 ^1 u9 j - (setq ltype ;|MSG0|;"Varies")" ~& ^9 H# `+ d+ g S; K3 _0 D. T
- )
& i& V# H, {8 J1 n- T4 ` - )5 |3 ]0 [1 s y0 K7 E
- )5 I) K% U+ _' M1 a6 J
- 1 m5 k1 D1 Y2 I" V* @( ^) v4 a
- (defun match-lay (/ nlayer)! o1 Q: `, w0 y. y" H2 U n
- (setq nlayer (cdr (assoc 8 elist)))9 R# S! ?! U1 U* t5 r7 G
- (if (/= layer nlayer)3 B: K7 l* ?2 n. o
- (progn
: e9 n* F4 V; d- n3 M - (setq chk-lay nil)
- d! p6 A9 E3 q4 H - (setq layer ;|MSG0|;"Varies")
: Y1 n5 V5 _: @6 k& | - )4 H) h* b" q- m2 ]& V0 [
- )
* |7 u, u: ]: I - )! b4 P {' E. N( g8 d& b
- ' N2 q/ `2 J- x4 x: a6 M5 G
- (defun match-th (/ nthickness)
! e6 }2 }1 Y1 \5 O' \( B4 F0 T - (setq nthickness (cdr (assoc 39 elist)))+ A# h' d& K, n3 P2 n
- (if (not nthickness) (setq nthickness 0))7 @. ^/ K, T) F
- (if (/= thickness nthickness)" W5 q% n5 w) F/ C8 H0 S; W
- (progn( r7 Z, y0 {! r; x7 u
- (setq chk-th nil)9 B! B( [' c. a7 i0 `
- (setq thickness ;|MSG0|;"Varies")0 Z4 Y* c7 s$ p0 B5 d
- )
9 l; B1 ?$ e8 g! q$ l+ H - )
4 U8 K2 T; M3 U9 @ - )
$ {! o( I: v O$ N+ T: S/ q - ; e4 t- ~8 J) u6 L; `
- (defun match-lts (/ nltscale)/ m) Z9 Z0 P: u/ n8 e9 G( R# p
- (setq nltscale (cdr (assoc 48 elist)))
6 a0 s- k: s, ^& P" l* O - (if (not nltscale) (setq nltscale 1))
! h6 q/ u. z. Y3 o6 u - (if (/= ltscale nltscale)' v" Z+ w8 L/ y/ o! t, [( _
- (progn
6 \/ ]5 P# c% n& k% z5 F. L% j - (setq chk-lts nil)
. x5 }; W+ f' N" t; D% z. B( y - (setq ltscale ;|MSG0|;"Varies")2 m: E+ D* X6 b0 Z$ a
- )
{ }! ~0 t7 |7 q7 N' C5 ^ - )
5 a0 ~" E2 I4 k - )* n1 i6 C! B3 ~- |6 J8 }+ V f
- 7 }( M* e& u: A; ~+ b a# W: J
- ;;
2 f* I% [: z) a0 L( v$ b# K( P - ;; If an item is a member of the list, then return its index number, else1 R" T2 e5 f6 T$ Q8 q: D; f
- ;; return nil.4 C" p( U- r+ Q/ i
- ;;
% z/ C6 y$ U& B* r. N - (defun getindex (item itemlist / m n)
& D% {: x5 p( ^/ K# n0 A+ i- s - (setq n (length itemlist))
) U! ?! M4 `) M3 k: D3 y - (if (> (setq m (length (member item itemlist))) 0): M' ?2 f4 t8 K- x# H0 W) n/ Z
- (- n m)
% s* q% Z- n K - nil
8 j# U' I! h% A4 g" F - )
! X/ T9 q8 R# a8 Y6 } - )* \- m# Z$ h8 B. t
- ;;
# Y' I4 e4 t% }5 c7 ` - ;; This function is called if the linetype is set "BYLAYER". It finds the
9 A& ~1 a/ o7 \5 m5 U% @ - ;; ltype of the layer so it can be displayed beside the linetype button.3 f* l( u/ s: P, F1 Y
- ;;, C9 D5 O* I% r- ^+ D/ X3 v
- (defun bylayer_lt (/ layname layinfo ltype)
7 r( O3 l4 ~0 K# f - (if lay-idx8 t3 B$ |. F' i# o' _; L$ j
- (progn
$ y3 y4 L: @. Q0 E - (setq layname (nth lay-idx laynmlst))
: L% ~1 L, s4 M, A7 R7 I' R - (setq layinfo (tblsearch "layer" layname)): p' O* W/ B! `( n
- (setq ltype (cdr (assoc 6 layinfo))); a: v1 J' s! E S
- (strcat "BYLAYER" " (" ltype ")")( {4 v8 V+ D: C- T8 L& B
- )
: H+ p2 U; I3 r W& \$ X7 a3 ~ - "BYLAYER"" Z# N/ g3 V* g- g( m7 f9 V7 G
- )
1 a! u2 Y/ r: {& d - )# ?9 ?+ B; ~, q. y% C
- ;;
$ `6 T6 A! ]) g( |. J - ;; This function is called if the color is set "BYLAYER". It finds the( u+ d* [! T3 a) q3 j
- ;; color of the layer so it can be displayed beside the color button.
! ~" z0 n& y$ |5 K3 t( }+ d2 E - ;;
- z6 ^6 P; _/ J E( { - (defun bylayer_col (/ layname layinfo color)
- D/ l S% A7 \5 C; a - (if lay-idx" o2 G, o6 Y3 a$ n( v5 ~
- (progn4 @& W+ J4 ` F
- (setq layname (nth lay-idx laynmlst))
" d) t& r# q8 L* _ - (setq layinfo (tblsearch "layer" layname))
5 G6 A% \/ H# j2 C' y. K/ F8 Z - (setq color (abs (cdr (assoc 62 layinfo))))2 I6 A& b: F* Q0 r. t2 m4 h; U
- (setq cn color)
$ n# h! H% e" N9 Y3 u3 q - (strcat "BYLAYER" " (" (colorname color) ")")
) H: _* E. J& x& G. q9 B" }( ^" ~ - )3 F# Q4 t: f, }0 O) x4 r0 \
- (progn
" Y2 L0 j# }4 R7 Z+ L - (setq layname elayer)
8 ?8 |1 d9 I4 \# x/ z5 T& p: |; q - (if (and (/= elayer ""); e0 i# ^ u5 ?* m
- (/= elayer "Varies")- m* v+ Z2 }% E: |: k
- );and
1 e" B& p/ J1 p# [3 j) s* h - (progn
. O6 U4 q- c0 K& |! o6 { - (setq layinfo (tblsearch "layer" elayer))
. ^8 i* d! z2 s6 O9 A7 B - (setq color (abs (cdr (assoc 62 layinfo))))9 v& e9 e) ?" E! d4 \7 t
- (setq cn color)
, k6 m2 u# a1 l - (strcat "BYLAYER" " (" (colorname color) ")")5 b7 `+ v6 M% _4 p6 s
- )
% p# w1 d, C: H3 o, s7 m0 r - (progn
. F# O0 ?6 W, e1 x% a& h - (setq cn 0)
, O7 R5 m/ U+ [( a; F. P - "BYLAYER"! n2 ?* L, o/ Z7 R- T/ N
- )
/ a4 Q+ y8 j0 h- Y( _! J4 ` - );if
6 x: \; q# R$ z - );progn
. J4 O' _' c9 [ - );if; M) \- Z' i, l! D' K$ M6 D
- )! n% N3 L6 W; ^$ y, R
- ;;; ?3 ~- ?5 s) x; ^/ i- E" C$ A' k
- ;; If there is no error message, then close the dialogue
% J: e) M8 ]* M8 i; U, h- h - ;;7 Y, I! Z6 x: ]) [& P# s7 [1 I
- ;; If there is an error message, then set focus to the tile
- A( H @8 O4 d) u- L# ~ - ;; that's associated with the error message., ^/ G% J( p' j' I1 |
- ;;4 V$ W6 G9 l, W. H! c4 A, n E
- (defun test-ok ( / errtile)
1 }$ w! ~4 z, H+ @# K - (setq errtile (get_tile "error"))
# E2 L7 u- j: ?) f - (cond
8 H* M3 `7 f' ^ - ( (= errtile "")" j) E3 M* Z: U
- (done_dialog 1))
( w5 M) g2 o! P# T* R5 k8 W - ( (= errtile "Invalid thickness.")2 T( |2 t7 C, v, R3 s
- (mode_tile "eb_thickness" 2))3 n* G; L4 ?1 Y7 w# F
- )
4 J+ ^" \( C" g- D6 y' V - )! Y" }, Z9 J+ k4 y$ {. }
- ;;' X6 j/ B2 q" U+ ]' |7 P6 Z# z
- ;; OK in main dialogue.5 ~) w1 E) G3 c( m
- ;;
* E5 i1 u* ^& ~$ [0 R - (defun test-main-ok ( / flag)
( k9 U0 A- N# i$ E4 {9 S# ?7 U: n7 j - (setq flag T)
" r. h9 E. v$ ^2 k! N9 k* J: F* B5 r, { - (if (not (or (distof (get_tile "eb_thickness")); r2 i! Z1 L2 K- w8 Y$ c. I
- (= "" (get_tile "eb_thickness"))7 E, y9 Q6 v; x. n- j
- );or# b8 u8 ]+ r+ S/ `" B5 A8 Q+ ^. |
- );not0 ^" c' W. I1 M) r' E* a
- (progn, m6 k L0 m1 J* y1 ]
- (set_tile "error" "Invalid thickness.")
) ^; G* i& w6 h; R - (mode_tile "eb_thickness" 2)
+ N7 L' q+ z3 i( R" p( h - (setq flag nil);setq
$ T; @9 k8 z+ Z( c" Q8 s( B) Y - );progn
' |9 j# C+ w& g/ F! t% }5 X - );if
+ ~- X2 e9 p# g3 N+ ~ - (if (and flag& q9 H) [( v* I4 S9 V
- (not (or (< 0 (distof (get_tile "eb_ltscale")))* e0 B J% y1 D# A9 D
- (= "" (get_tile "eb_ltscale"))8 T4 I7 {1 P; d% z5 l
- );or
9 s1 z" e! H3 S - );not
1 Z& U9 z, b" l. {! \- k" H( B - );and
: o+ X, F! a# R# s0 a/ @ - (progn2 I, B* z2 F% v* E. p( g
- (set_tile "error" "Invalid ltscale.")
* i4 v# K0 @/ H; o# o+ a, f - (mode_tile "eb_ltscale" 2)! m, `5 Q& ~- t" N
- (setq flag nil);
) ?8 p% i4 s0 f - );progn then
% y0 a- a6 Q1 s2 X; j' y - );if
+ {$ J" Q' c* V2 p1 _ - (if (and flag
$ b6 E3 U; x" A( H& p: q - ; Don't test the tile's value unless it's enabled.8 ~8 l; h& I% k: r( G v7 p, _
- ; We're not set up for the display-only value
: f% k6 U+ D3 e1 ~& V+ k& \+ ? - ; of "" here in the error handler.
" B0 T. \. V$ c' v: f8 [ - (= 2 (logand 2 eflag))
: V5 C+ q& l2 f7 g/ _! S2 S& n D$ M' U# ? - (not (or (< 0 (distof (get_tile "text_hgt")))+ b- M7 O$ H* Y& h5 r$ `) [- w
- (= "" (get_tile "text_hgt"))
, x$ ^; U( G. f3 U1 d. T9 O - );or
9 S7 _6 w7 M ~4 c5 [: u& O {, a - );not& n9 d/ ~$ I0 X1 H2 Q
- );and
& \7 z# |$ c0 g- m - (progn
7 J S( z9 l+ c) q - (set_tile "error" "Invalid height."): k/ D0 I; `/ M0 `% m: F
- (mode_tile "text_hgt" 2), ^9 w0 I1 g2 t) t
- (setq flag nil);
1 a& P/ r/ s* R8 l+ _' k - );progn then2 W3 M, m1 V& o# n) K9 F, w
- );if
: o8 e4 y# j J5 ~ - (if (and flag
) c; G% ~! t" m+ n3 b - (= 1 (logand 1 eflag))( Z5 ]# m" t _/ h
- (not (or (<= 0 (distof (get_tile "poly_wid")))5 x7 H; B: I# `5 |0 E5 U! Y
- (= "" (get_tile "poly_wid"))
. Y* ?8 W( \1 ]3 M - );or9 B A% p& X) f; y" L
- );not
- |7 d$ L. d& T0 X) z3 w - );and
' `/ G7 R+ m' h$ ^8 x2 ` - (progn4 B% h* h$ z3 c
- (set_tile "error" "Invalid width.")2 b- C- M) n% e/ F; J% F! ~0 ]
- (mode_tile "poly_wid" 2)
' X. \2 j/ `: v3 U. @6 h - (setq flag nil)
- k; Y6 ^6 ]$ _' w o$ C - );progn then
}( ]' }! I m5 d" F - );if
: ~5 M$ M$ k4 ~: N9 Y - (if (and flag
, A0 M2 K6 n: |4 y - (= 1 (logand 1 eflag)); }% l5 j( u" T, j4 }+ p
- (not (or (distof (get_tile "poly_elev"))
0 t& S* D3 e9 }, C* M - (= "" (get_tile "poly_elev"))0 Q0 }$ I" w0 ?! ~, R
- );or
, g3 z6 S- P2 O% G - );not' Q7 V# X$ l! {. U
- );and$ c7 l) G o, J/ |( y
- (progn, Z, s/ x. w" s
- (set_tile "error" "Invalid elevation.")7 K+ `! \9 G/ h, ?/ H
- (mode_tile "poly_elev" 2)! L* [, I5 i/ j; m/ g
- (setq flag nil)
7 L9 ?/ b% C8 W( U( o7 e5 @* X( S - );progn then( C4 S: D' Z6 T! J. I& \' D5 y
- );if / O0 ~* [. i1 |) X
- (if flag
# _ N5 a- J$ G" X7 O; ~ - (done_dialog 1)
8 ?& h/ Q$ S" z- W - );if% y, Z# W1 A: q! \7 S* @3 \% U% ]( |8 q
- );defun test-main-ok
4 K- _, Z* H/ y3 t3 X8 L: G9 U - . b( f3 o& ]7 T8 w% H- _, E0 R9 K
- ;;& l. v: X, ^1 I8 {% ?' F
- ;; A color function used by getlayer.) G! H' l( |$ I2 [9 e# o1 J5 N
- ;;
4 F9 E. h& Q+ A3 w+ L! ~; b5 Z - (defun colorname (colnum)
: e$ m7 z/ H9 b) i: L c - (setq cn (abs colnum))
8 v, o ~ B/ k# a - (cond ((= cn 1) "red")
4 |% }" ]# y! ]" | - ((= cn 2) "yellow")0 B' e# N. ^- T, e7 l: U" u. }
- ((= cn 3) "green")* i' s; z2 N/ T# u) u
- ((= cn 4) "cyan") G8 V3 f/ E+ D3 v5 B
- ((= cn 5) "blue")
' S. F* }( y: Z5 D4 K6 ^8 } - ((= cn 6) "magenta")4 F' G$ R) J: s; U: \
- ((= cn 7) "white")
: e1 v) X: W7 x7 s - (T (itoa cn))/ S. s3 J: c+ r" M" | O* k& ?
- ) N5 S4 A) t$ q3 j% E. g
- );defun
3 e( ?: [) I& y/ B - + n9 v1 L7 @6 U" e- [/ D' V
- ;;; Construct layer and ltype lists and initialize all1 F0 q8 S1 K4 B4 O5 ?8 o, A9 d e
- ;;; program variables:
8 Y$ r' C+ t& b/ B
8 Q" F" J& ?6 C% T! g- ; (makelaylists) ; layer list - laynmlst; A. U; L" i, b' i4 s1 H
- 6 S' E' x0 {' V5 a5 p+ L
- ; v$ w: c6 A. @# Y D/ I! y) v7 P
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
4 T. O5 O7 \5 l- v; O, x/ j - # {' P6 e- b1 ~. W$ ?4 m
- ;; Find the property values of the selection set.! b* P" D/ G E: I
- ;; (getprops ss) returns a list of properties from- G2 O4 p! y3 F9 M0 z
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).0 k# F, ?2 o# [2 s5 q0 I
- ! K8 r. J$ }: Y8 o' S$ ~
- (setq proplist (getprops ss));@rk interesting things happen here1 s0 T& P5 |7 U7 d
- / r# B6 c3 r: N1 m7 b# x
- (setq V9 k4 A! g/ n
- ecolor (car proplist)
2 R) K9 r& n2 s - eltype (nth 1 proplist)1 A( S" W" z5 k0 s) m
- elayer (nth 2 proplist)8 o) s; U+ W) o1 N) ?. T ~% |
- ethickness (nth 3 proplist)
& x0 u! k. C; D i, U u4 K - eltscale (nth 4 proplist)
$ a! ]# ~) F! A. i5 R - ewidth (nth 5 proplist)( K$ z" b- C: q: M/ P7 t
- eelevation (nth 6 proplist)* F5 j4 P( Q6 [
- eheight (nth 7 proplist)
; q* T0 J0 S0 W/ w' y* u% p+ a( W - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.- ]: Z4 D( V f" v7 V
- eflag (nth 8 proplist)9 D) V) [" g' k& F
- estyle (nth 9 proplist)
0 M6 g& y* q0 J& Y) e2 E" m/ I - poly_ss (nth 10 proplist)% p; t2 w( X& c- y9 w4 n
- txt_ss (nth 11 proplist)- {5 J4 Q% \4 q! g
- );setq
; D0 `, q8 B* { `
: C4 m! V, ]3 o4 E, ?+ S9 k- ;; Find index of linetype, and layer lists
% C& D5 @, h* o, y5 S0 y/ P - (cond
D; h7 }# m. \ - ((= eltype "Varies") (setq lt-idx nil))
) L4 g2 I7 ?8 e- b; N0 \9 X - ((= eltype "BYLAYER")5 E) `8 P3 e3 N( H" [
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
( C- H; ^0 C- X! I2 b. U1 m: Z9 q; g - ((= eltype "BYBLOCK")2 O& |4 {+ b, m) a
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))% C: M- u& `6 b
- (T (setq lt-idx (getindex eltype ltnmlst)))
0 y7 U) ~: a+ B6 W) w# ~6 S - )# t( e$ [2 K3 g! R
- (if (= elayer "Varies")
) J: o; |4 M% l1 Y - (setq lay-idx nil)
6 a- T, S# A. g8 w - (setq lay-idx (getindex elayer laynmlst))
4 v; Z* s) v' z1 V - );if
* U. f/ r& T' ` - (if (= ethickness "")0 n4 y. K1 B: T4 N
- (setq ethickness nil), v x2 R# r: F
- );if
. R: F: G, H4 k/ Y - (if (= eltscale "")
$ A) x' Y$ U( N f; g - (setq eltscale nil)) p& H8 }5 x/ _1 F/ q- ?4 Z R& v
- );if9 u8 \! D" ?; W
- 0 u+ G) k7 z) e8 ~
- );defun ddchprop2_init ; end (ddchprop2_init)
- n: y* d o! ]! }) i6 N/ f
4 G' Y; U* N8 O6 t& H) u- ;;; (ddchprop2_select)
+ d( |- _3 Q0 j0 I3 s - ;;;
$ M m: l, B0 p; G: m1 g/ q7 K - ;;; Aquires selection set for DDCHPROP2, in one of three ways:" b, R- p5 b) @, n0 M* Q. m
- ;;; s6 _+ B* G1 d& v$ _6 K) {) Q
- ;;; 1 - Autoselected.
; y$ u" A: ~ F1 N8 G6 q/ h! Y - ;;; 2 - Prompted for.. ~" L4 [ i* y0 |" e6 U S
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> ); f- U9 e8 g, ?+ f/ z3 w
- ;;;- r8 {- }+ K/ I9 ]+ i
- ;;; The (ddchprop2_select) function also sets the value of the
* {6 k7 d6 {! m! p; E! ~ - ;;; global symbol AI_SELTYPE to one of the above three values to
5 i" p3 k, G) i f7 D* w/ F1 Z: `2 F - ;;; indicate the method thru which the entity was aquired.. }2 X( t- M3 Q: N8 c- P
- ) ?/ S3 M$ O# m' x" L7 n& y
( D* ]( O% |& r0 Q- (defun ddchprop2_select ( / )
, S( k \9 M# [: S+ x5 \. n( r |+ } - 1 A# q& y; {# d
-
4 y" Y; k3 { E5 L D, u* c- w' K - ;returns only entities in ss that are in the current space. ) U, m( l$ _+ d e
- (defun ss_in_current_space ( ss / a cur_space ss2)) \8 ~" c; c; P
- $ K. N/ U0 Z0 [+ Y T5 E
- (if ss, X( q/ ?) f$ e i/ n
- (progn
* w, x- Y, }- s% r - (if (and (equal (getvar "tilemode") 0)
3 A+ ]7 C7 f# f* G - (equal (getvar "cvport") 1)2 }" E$ G! a$ Z8 U, q$ B0 H
- );and
/ t; e# f0 ~- p# Y9 k; V4 R - (setq cur_space 1);then paper space is where we are.
$ R6 ^5 b4 z9 E+ p% l7 i+ P# g2 u - (setq cur_space 0);else model space.
2 \' j* T3 G( R& d! e6 W. Y - );if
1 S( E; G' ^# s1 K! \. H - (command "_.select" ss ""); N, F) k, k2 K1 h, d
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
/ s( w _% s5 y" M - (cond ;;;;;tell the user what's going on.+ b9 q S6 j& N& T0 g
- ((not ss2) (princ "\nNo objects found in current space.")), w3 B2 s+ t! O6 ]8 |. L3 ?7 z7 G
- ((not (equal (sslength ss) (sslength ss2)))
1 o) a5 |$ v( w8 H- ~, I. N - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))+ m% p7 P! {+ O6 \- ?. @: c
- " object(s) were not in current space."% l0 H7 u x8 ?% }- u5 |
- )4 w9 r. L. K f. ~
- )
( @9 N# ?) T% A9 ^ - )
( Q3 U9 N- \5 p1 S9 A9 ?5 D$ c - );cond # s6 _ _; E$ }3 B. u2 A: }1 G
- );progn then
9 \3 m1 `0 G/ ?6 Q+ d1 ~' ~ - );if
, f$ G, E) U; u) t. A - ss2
! h* L6 [* \7 F - );defun ss_in_current_space
, b4 {: H: ?% C, L1 Z
0 Z# @" e6 u& |: c) O# q
8 r* z8 O$ S; m& l8 K8 x' C" b) A- ;;;begin the work of ddchprop2_select+ b6 p6 I& p( G. b. e
- . h0 G+ u; x) W4 _: ~& Q; \4 G( C+ D2 `
- ;; temporarily restore original highlight setting.
- I) r% @6 ~1 P! B v3 }/ W1 p - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist))): i6 @2 G$ S! m7 _
- (cond
+ w" {. r( }7 _0 e8 s4 V - ((and ss
$ j# X& m5 e1 m; U, f - (eq (type ss) 'pickset)
7 k" C4 A M( h+ t. y. l: h - ) ; selection set passed to
$ w- O4 @, @ u/ a, R! d5 M+ D - (cond ; (ddchprop2) as argument5 d+ J. ~/ p0 x9 |& o/ H3 C
- ((not (zerop (sslength ss))) ; If not empty, then
) y) f+ D, R) F- l* j - (setq ai_seltype 3) ; then return pickset.
+ v( P) h4 i1 p7 i - (ai_return ss). x+ P: U3 r* G! N! S
- )! i' i4 L( Z7 \( o) j/ K+ \. l
- );cond close
- B, Q- j& T2 O" y% S+ Z - );cond #1
7 X' y |+ F( f2 H2 o$ ?' q6 o - ((setq ss (ai_aselect))) ; Use current selection
. M+ q. B& l0 d$ M9 h - ; set or prompt for objects
6 G* s0 l1 A# }5 [. K n- s7 Y - (T (princ "\nNothing selected.")
: z9 K9 N: M. T4 p% [2 _6 Z4 u - (ai_return nil)/ b4 B5 z; m7 O/ ]8 M3 p c
- )
% a& x- M$ Z6 g# y5 ` - );cond close
& L% ~( F4 k2 g' R/ W - (b_restore_sysvars)
8 m# ^: @& s/ c) v - 8 }+ @* m% O6 W1 r6 n5 A. E! w
- ;(if ss3 {3 q! ~5 T0 A k$ k
- ; (setq ss (ss_remove_locked ss))
' \" J7 h( N |! d# L' O* s - ;);if! x3 s5 _% h A# I' {. k/ H7 H! B
- (if ss
4 t) K) T& b. N* z" L) T- y; N - (setq ss (ss_in_current_space ss)) 8 ?: `$ f% I# b3 H3 N; F0 M7 K o
- );if6 u' n: Q! E8 M
- 5 b5 H2 F4 v) O3 Q( {8 w8 H
- ss
6 ]2 @6 k8 B: Q3 N% r) P! ^ - );defun ddchprop2_select
" ?3 R! d, o9 |6 `1 G7 F6 L - & X, k: A8 B: [
- / l9 y$ L- d1 w) i1 T, t2 U( t) e
- ;;; Define command function.( X& K6 a( f( d. C4 |2 s
- (defun C:CCH ()
% {# f' I4 K% \3 t) _/ a m* ]% M! r - (ddchprop2 nil)
1 v7 H0 @. B6 o' s3 Z' ?, | - (princ)
3 i) E6 P: R$ a" Z8 |8 z2 s& X' P - );defun- x( g& @1 y( A; l+ `
. [$ j# v8 e$ n. E- ]- |7 p- 5 E" ]0 X) j/ M, \3 |$ \0 B) Q2 Y
- ;;; Main program function - callable as a subroutine.- N% _ ?, ]# d
- ;;; b1 R! Y- `( T( y9 L+ r$ u
- ;;; (ddchprop2 <pickset> )
3 r# U8 S3 D) I. k C( _ - ;;;
8 T, q$ m% \5 z; \) y( k9 g7 A - ;;; <pickset> is the selection set of objects to be changed.
. [% x! t6 L S/ O/ X! A - ;;;
9 m4 z( w/ k' R4 Z# } - ;;; If <pickset> is nil, then the current selection set is
1 @9 n: u* w2 w& J- L3 l - ;;; aquired, if one exists. Otherwise, the user is prompted4 Q7 ^5 X& @2 Q2 N. Y6 U
- ;;; to select the objects to be changed.
5 m% O2 x3 f- j+ s/ A9 S4 g( {8 o - ;;;! U& v+ a" F2 A7 ^7 S9 |: O
- ;;; Before (ddchprop2) can be called as a subroutine, it must
* ?) C3 H/ o& n. P' P - ;;; be loaded first. It is up to the calling application to% y" ?, F5 L" {1 `! F" `3 N l& M
- ;;; first determine this, and load it if necessary./ p0 O' z: N) a y- x
- ! q0 ?4 s: t8 D& G
- (defun ddchprop2 (ss /
- k6 N z n* t z - ; ]5 F& |* U5 Y3 z. {* S$ ]/ T
- a$ i% i0 S# j( H5 {
- add-mdash
, ?1 z$ w R% a: R; e; H* S - assoclist: k2 |; D: f( s: b
- bit-70) w3 V x, t( Q/ g6 z5 W
- boxlength0 H+ x* R8 `0 t- x. F! b p+ r; p
- bylayer-lt
% r( p8 N+ r0 T! g4 g1 r3 u ` O - bylayer_col" B1 N, ^" W5 R* F' ?6 |
- bylayer_lt
5 A) O" H3 [# G9 L - call_chp2
4 Y/ z- R6 ~7 Q$ @6 T, D* D8 A - chk-col2 [ g) k# A& k3 M5 {
- ;chk-etype ;var removed by rk ) c8 l0 I! E1 P3 Z5 S
- chk-lay
/ ]9 x8 g3 l# l9 L( x1 l - chk-lt
1 u0 \" [& g) R1 \5 s& P6 F - chk-lts ;var added by rk # t7 ]9 S9 ]5 N
- chk-th* |" O0 t+ Z: L' Z) T; _7 q! p) r
- cmd
6 i/ [' E' x: H+ M H% f5 x E - cmdecho" f* U" Z( B0 `, X% F
- cn
8 S* A" Y' n! e* q: g - cnum
1 a S: l! b# A' O% Y( ~ - col-idx" T5 `! ^1 w& |: @) d: X L
- col_def
8 c/ p8 A0 b, J6 h1 s' n - col_tile: r$ m" ]4 _! F& i5 W3 ]! x
- colname
4 W( I+ E9 A2 U/ T9 O - colnum
; J+ _$ d' v, I0 q - color( i7 [( u3 ^( n! p- J
- colorname) i- _8 s) J. V2 _/ [- |# z
- cvpname, F, w& _- B) ? H
- dash
9 p" l" A/ Q0 ` y- E0 l - dashdata
3 e6 U' W5 u/ w" @ - dashlist
- ]1 P! I1 y" u1 H0 o% e - dashsize9 I- P. z U& I* t+ j* o3 w0 u
- dcl_id
2 D" b& h$ {% y; m - ddchprop-err( B9 b* N) p0 C& M9 I1 i1 C
- drawpattern
4 v" [+ Y ?% ~0 e8 j - ecolor" Y0 S) t' |, k# F5 s! d4 A
- eelevation
5 j: z# t: u) f0 ~ - eflag
. O- X/ l6 Q! C# ~7 k+ F& f8 `) C: P - eheight
6 Y3 u1 h. k# z8 z, l - elayer' \! n3 _+ t' ?$ M2 Z
- elevation/ s R4 a0 ]; O1 Z9 j
- elist' B! M( B. ^; ~7 n
- eltscale! `( i% M8 \" a" g: ~/ J
- eltype, ?. r$ J$ G/ ]
- en9 @9 ?+ e3 t+ L K3 @
- ename8 H5 v( I" b- j" C
- ESTYLE ;var added by rk2 G' r! u2 L) E& M4 g
- ethickness
! p. v0 k" A# g! { - ;etype ;var removed by rk
( p, k- i2 h) k" F; I- j) z - ewidth0 t3 b0 [ N3 r, f A
- fchk/ B% L% C0 A7 v' _+ g
- frozth
) w: h7 I- x; v7 X$ K+ Y - fx
- G5 o4 w6 o% u3 Q5 u - getcolor
, y, L% I- Y% P7 c+ @/ _# h - GETELEVATION ;function added by rk
8 Y j2 B; p- A& Y. ^& t5 ]3 E - GETHEIGHT ;function added by rk
! V6 N) c( T) ?5 o% _' b) ~5 Q - getindex: I. ^$ _, p: `3 y1 S D/ V% D
- getlayer
/ m7 f8 h. J, Z& @ - ;get_locked_layers ;function added and then removed by rk
8 O, R; F1 ~4 e/ B: M - getltype
6 j2 J" h* Z N( p7 ^ - getprops0 e0 D% L5 y, j. E* e
- getscale ;function added by rk
: J* e- w+ L& Z& j - GETSTYLE ;function added by rk
6 v0 \- B P+ ^- a2 w0 u' ^ - getthickness4 b J, V( y* p% a) A
- GETWIDTH ;function added by rk
9 t( r& a+ X" q9 c" L; o - globals
7 D) G- z; m6 w4 K, D - HAIR_STYLE_LIST ;var added by rk
/ Q- [) b' `; J - height
9 [2 M! i; ?9 } - index* E& ^+ r2 }! f/ W, A1 z
- item. R: J V5 D0 }% \# F
- item1
- R; J: H! {* s, X( v - item2* \* ]' N. L) N- N1 k# ?7 V/ L
- itemlist
3 Y. W& y% K k - lay-idx: d9 U; O) k, Y4 v2 a1 X( P
- layedit_act- q) i' ~% v( L6 n. Z
- layer
. V/ S, c( A' D+ W - layinfo1 ]' Q) o$ R6 [
- laylist
5 O( ]& W% A& K, ?; D' \ - laylist_act# N; C- z; G% y: q I$ F
- layname
" O/ n* [3 W# B - laynmlst) q; ^3 E; V6 Q5 ]' w/ l; r# H
- layvalue
5 [& \. V0 b& @# R" {& g( q- D - linetype
3 |, p: Z4 q5 c' t2 D - list17 }% |/ O6 ?1 ]+ O; Q8 d& B3 t/ L
- longlist' v$ F) Q& ]. q
- lt-idx: N& }5 k, [$ U5 Y% x) `) O
- ltabstr
4 \4 @* K( S k5 V - ltedit_act
- q1 Y( n# a/ z/ V" N G9 @2 P. w - ltidx" `+ j& _6 ?$ Y( b. X' Q
- ltlist9 b2 S' Z, L+ ?' M8 X/ N g9 R
- ltlist1
& p9 Q7 U) ~/ C, G& H; F - ltlist_act9 l4 S) {* i1 X* {
- ltname% g# h* j9 y* U# \
- ltnmlst
. w1 K9 M/ d3 m; W - ltvalue3 V# \2 A6 c j+ d4 v, _/ ^, K
- ltype0 y( q$ A9 r9 d+ W2 G% |
- m
' k' k* l' ?! }/ n& |- y/ [ - makelaylists2 e6 @3 C2 b6 r/ N+ t6 d+ P
- makeltlists
2 O$ T% v+ Y6 }- e) T& x5 d4 | - match-col) G0 t8 d0 T9 C. ?: ]
- ;match-etype ;function removed by rk
& D* T" J& I: j3 K8 R: P# r - match-in
' c5 @" `5 Z/ p' f7 ~1 R9 ?; x8 k" L - match-lay
! t9 B% e5 t% c+ U% L; a | - match-lt
" n1 F# F/ E; X/ `) u) U" H6 o& \" e - match-lts/ }' A' ?: t A, D9 C6 R
- match-th A: i9 b5 ~& Z* J4 }* k5 P# w
- match_col
& H. b; h* C1 J R! u - mdashlist
1 R8 |3 ]- q5 w2 R1 o- v - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
8 _: k# g" m5 Q6 o) e - n8 d3 V( N2 N g4 L6 ~0 I
- name
+ `, L3 t" r1 a1 _2 _% ] - ncolor/ V# j+ l+ ?+ f! o' `
- nlayer8 G3 d) L/ R0 b- t7 z3 G9 ?& r
- nltype
% [4 \! f, j7 f, ~/ \6 \. b - nthickness
6 Y G5 B/ y, \- `. X, O' W - off
4 ^( i5 `! i5 j - old-idx
- r- j9 Y: Y8 D7 c3 q+ R" d% ` - olderr
# m6 k' ~5 k# x' f5 A' A& E' W4 d - on
$ V# s: @. z0 L: z" \0 g o1 A - onoff S+ }# ~9 f$ W, N7 r
- patlist+ ^0 w& ]) X, f7 X" h
- pattern
7 x, k3 E$ h7 U) i( O$ l - PL_WIDTH_GETTER ;function added by rk9 F Z0 x9 A V- Q4 p% W
- POLY_SS ;var added by rk
- k: u6 F. I7 E - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
6 A0 \; j2 ^* o' ] - proplist
& F4 V9 M' M+ b4 O. |3 ` - reset-lay" Q. C& D. ^5 @$ A: ]( g2 U
- reset-lt
6 [$ k" J+ t9 S5 f. E- U9 S - s% k6 x0 M1 x4 ]# w' X) W) N
- selset
' B5 a) c- Q9 z) j' c* A+ z - set_col_tile' u9 W' `1 K+ I
- sortlist0 a; F7 J# ^4 _. E
- ss. z6 \- k. ]: s. B, ^3 [$ |6 v0 {
- ss_in_current_space ;function add by rk.' ?7 k+ ?: N' v. \# M
- ss-index2 r5 K, a- Q% }: T5 D9 O4 R- N5 H
- ss-length$ m ^6 u' N* |8 t5 T1 Z1 S G
- ;ss_remove_locked ;function added and then removed by rk./ i: v/ c) [0 f: {6 v+ X
- sslen
; e I7 U5 S- C; { - temp_color& ^. K# k- h: S) B/ N9 W
- templist+ k+ L# P2 \' z; h- d
- test-main-ok
. ^- l/ O5 ^! ^ - test-ok
8 ~" }5 S4 o3 z" \. ?9 R7 p - testidx
# R; b6 f( V: a$ O - testlay5 @; E1 e* e4 D' _
- th-value" Q9 ?9 s9 o) f' A
- thickness
$ I. q( L+ t* J* M ~ - tile
y u6 B( r, R- x, U - tile_rect( Y' Q+ d& `0 b) R0 K
- tilemode
7 {" p9 M6 L7 ]3 p& f1 r - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
9 n- Z0 ], y9 |/ G. N0 @ - TXT_SS ;var added by rk2 {# A; ]" l4 T" l, U& B& H
- ;undo_init ;removed by rk.+ a) r7 V6 m" H1 [$ q$ {
- vi. i- I; r7 N9 I- C4 ~7 f3 W- c9 p
- vpf- h$ w1 F# b, G! y
- vpldata( ^/ m, k$ I3 W
- vpn2 g" G( b, Y* h( ?9 p
- which_tiles
) D3 L: K7 `' }+ W - width0 l% A4 [3 }2 J& o1 T
- x i) F2 ?: y$ F6 L3 L( i
- x1
, W9 i" [" X, B- U - x2
. Q+ ^$ Y9 D) m+ `+ Z - xdlist
- z$ v/ [) N4 V; Q& ^ - y; T) {4 v* u% r# Q# P; q3 Y
- y1
( @; s6 |/ [- H H9 t, A8 U - y2. v% t3 o7 n+ y( J5 [2 y
- ), A2 e" L: {3 D/ G) u+ h, i+ @+ a0 `
8 ]. G& c& Q( B! K; ]# t1 P" Q- (if (and (not init_bonus_error) / h4 [ z. ?' o2 n, L
- (equal -1 (load "ac_bonus.lsp" -1)) 9 P( b8 q* x% u l! q- Y8 y& c9 m q
- );and# h5 t8 i! ]& k4 \# o7 I
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))$ S$ V5 ~. F9 g, ]/ V. ]# J
- );if
* |1 W7 F$ ?& i! l& n2 T - (init_bonus_error (list
3 N1 I7 Y5 {0 H% [ ` - (list "cmdecho" 0
$ s/ @+ R/ C. H* B( n - "highlight" 0
: @8 c+ Q( Q! k7 B - "regenmode" 1; E6 V1 Y" F( Q' E i/ ~0 V _) Q4 G
- "ucsicon" 0
7 `3 w) v5 U" W - ) 5 c6 o n4 H8 k2 ?7 I, H( o
- T ;flag. True means use undo for error clean up.
. o# w1 ]% J1 |# C - );list
- u! v5 e. Q# }2 O - );init_bonus_error6 j& ^% @" ~2 W4 b" n- Q) `& _2 ?6 a2 q
+ o: u( G- f# p3 H6 G: c- (cond
5 |6 Y" p' ` f8 R( b - ( (not (ai_notrans))) ; Not transparent?
7 P$ C, B( C2 a0 a - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?% _2 A# ^9 i' \: t
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
+ T$ T1 f) z* R - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?$ b* P0 w- j9 i6 R9 i
- (t
5 c: }! U: F$ g e - ;(ai_undo_push)
2 b# m, d: y/ ~0 y' ^& u: @ - (ddchprop2_init) ; Everything's cool,
2 }4 Q& N8 o6 W- W. f - (call_chp2) ; so proceed!% ?" K, _6 v8 O8 [/ m. |
- ;(ai_undo_pop)# A" Q* k1 t7 f
- )8 P/ u4 j+ |+ P
- );cond close
6 }: o; E8 ~' G/ A
4 ]% n' P" e2 C/ y$ N$ \" D5 P7 ^: F- (restore_old_error)% @7 Y( m( ~$ E: N: X
1 l5 X: f3 i% V! p0 D- (princ)5 o7 {! y, u* I: E
- );defun ddchprop2& T" ^ `3 ]0 f
- / L) L* E; `# Q5 f% I2 a; B1 U
- ;;;----------------------------------------------------------------------------
1 Q; h* T0 i) |! v' |' Z8 s - 3 ^% k0 V. [9 A9 O; R; Q. N1 }, H3 @( u) K
- (princ " EXCHPROP loaded.")
5 g/ m1 F" p" g7 i' b - (princ)8 Y; w8 F4 ]/ V7 ?/ w* l. `
- 7 C% G) K2 {# `! e/ ]5 S4 m( n
- ;;;----------------------------------------------------------------------------. F9 S6 E$ u. X% V
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
/ n1 p0 f$ p5 ]7 g9 U! P9 e - ;;;----------------------------------------------------------------------------
5 g# L% j1 f1 e4 j# T: y5 c
4 _, W! w$ ?6 K4 d: _0 Z& Z! k- ; Next available MSG number is 24 0 K5 R0 u/ C7 j. N4 w; f
- ; MODULE_ID DDCOLOR_LSP_0 T/ i1 u; l, ^) g' m+ r$ \" \& @
- ;;;
. g9 [; a+ e4 W' V* a* G1 n - ;;; ddcolor.lsp; ?9 i, U0 A3 ]2 \* U4 W
- ;;; 2 n0 ]1 i4 b7 G/ V/ z
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
0 ?5 L. J# a1 t' V - ;;;6 I! F! h! z" u7 x H
- ;;; Permission to use, copy, modify, and distribute this software
7 B" f& S8 E, A3 Y - ;;; for any purpose and without fee is hereby granted, provided
6 G, o: q0 H% K b - ;;; that the above copyright notice appears in all copies and
2 n8 ?2 w) u2 M/ B - ;;; that both that copyright notice and the limited warranty and
+ P: M: G; q0 `3 Z4 n# |) j4 n - ;;; restricted rights notice below appear in all supporting
" w1 V& O- a: i8 O - ;;; documentation.+ J6 Y& j( O$ O
- ;;;
1 ]0 \) \, N6 r/ S6 R - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.6 r1 h& l$ d5 j% F' i
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
4 \1 u: q+ ~& C+ W$ V1 q2 A - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.1 X a5 h3 b, o. P
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE" h5 E/ N( G. W5 i
- ;;; UNINTERRUPTED OR ERROR FREE.8 G5 I0 q+ \# }6 V! d: A
- ;;;
' p" E# \# m2 ~' T4 R! d8 i6 e' ~$ Y - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
4 D# ?: J+ g4 k: K2 G% C - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer' F4 U' y1 D+ K2 Z" d
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
0 x8 f, Y1 Z. ^$ A% F' ?) g - ;;; (Rights in Technical Data and Computer Software), as applicable.7 X1 d3 i7 v8 V$ x; b& k
- ;;;
8 u1 r# M' U+ f - ;;;.
# S. t$ E" A( ?; e- U - ;;;- E& l: O& q: D2 s s5 C6 a$ Z
- ;;;----------------------------------------------------------------------------' V& z5 |' Z& o: F# v
- ;;; DESCRIPTION
* G* A$ Q# ~ m5 R9 C8 d/ z - ;;; + X# k/ V) e3 c4 \
- ;;; Chromatic Pallete style color selection dialog.
5 ?. B9 Q- C/ e6 G U1 A - ;;;
" q9 l- G$ {8 U' o8 b; G; `! t5 R - ;;; Globals:7 y5 p' R& P: x# [
- ;;;
n6 a$ f0 p! @ - ;;; chroma_color - Integer color index. The last value selected
8 S' H) U9 _; ?0 E5 y3 @ - ;;; by the user in chroma dialog. It is not cleared or reset$ u( i' S( f% P1 ~+ d7 h* s
- ;;; by a cancel. Only used for communication between callback
4 G0 F6 y+ N% } Z9 x9 _ - ;;; functions and the (chroma) funciton.) }, F1 j2 c; U m0 i3 G
- ;;;
; l, s4 n( f. } - ;;; Depends on the definitions for the dialog provided in chroma.dcl.4 Y* g2 W: [9 E# Q- y7 s2 t
- ;;; / t2 F @6 `8 N7 M' Q
- ;;;
- e5 [5 l7 h0 a; b' Z - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma ; e- Z8 s7 P# |
- ;;; pallete style color selector.
# |% x! s8 C0 A# n - ;;;7 J& y( ?, `+ L ~. X4 [
- ;;; ===========================================================================3 K" f" c; X; R+ I [9 |
- ;;; ===================== load-time error checking ============================
. R/ ]2 Y. q2 D/ b6 k" T |" C7 C9 x - ;;;
0 x9 X6 G* V* Q( R# o- E& F9 D. r, z - $ A7 k/ U T2 \' }% n/ M
- (defun ai_abort (app msg)
Q$ o/ F* h$ b- P$ N- L$ q r - (defun *error* (s)! g* f- F5 t, Z' C* }7 @
- (if old_error (setq *error* old_error))7 c8 b9 d7 ~! H+ j3 N% ]! R1 R; Z
- (princ)- O! b4 g0 j/ M
- )
, C% I0 ~1 F6 G! q9 h6 J - (if msg& Z9 R5 u+ f+ o
- (alert (strcat " Application error: "
& |7 u, ?. L# H g- [ [ - app. X K/ h$ P3 z& i ?
- " \n\n "
; W7 K. Q+ T. x3 L* L - msg# c8 O9 I' a! o- W2 q* g# p% r2 z' i j
- " \n"
- `, A' i& b9 ^+ h6 |/ D @# ]" d W - )$ `1 p; [+ b$ V* S
- )9 r8 g2 J& P, h5 J* A
- )2 D8 Q/ w1 V+ c4 |$ t: u# I$ d
- (exit)
3 ~" x9 m3 b5 Q g - )1 f2 ~# L- ?+ z0 [3 O. H ~
- D! f4 f8 f6 j- I4 l. t1 y- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
& j% m+ m+ I u - ;;; and then try to load it.3 [" g, D* A: C/ `' p4 I+ C
- ;;;
3 j- m+ I7 e( m0 M - ;;; If it can't be found or it can't be loaded, then abort the
, ?+ |( [9 p# f# i - ;;; loading of this file immediately, preserving the (autoload)
' E- f' O# Z8 |9 _! e2 P - ;;; stub function.
' V J* ~* X |+ }4 s2 ]% m - Y7 u+ a! S; k6 B7 V7 H
- (cond
) ^+ }) t2 i; A8 g+ r3 D - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.% A0 K% C5 k! Z+ i. }
- * d! r, d5 X1 ]& j- u9 A7 g$ K, y# R
- ( (not (findfile "ai_utils.lsp")) ; find it$ x; g2 g, v/ f: `
- (ai_abort "DDCOLOR"
7 O/ n0 ?9 x9 s - (strcat "Can't locate file AI_UTILS.LSP."
8 \: H: M7 Y" F - "\n Check support directory.")))5 V: w. y# K! I( Q7 C
- ; _+ r4 y1 V5 S0 U
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
( X( t3 D+ I: J. @; g1 c( _ - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
" b+ x6 h `( W7 E - )
4 L) l) q1 X1 i$ M$ O& y) ?# s5 A - 4 D- k( o+ |# ^+ ?: ?
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP( k0 k1 o1 {$ b3 Q
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses3 `$ U2 l$ C$ d9 F9 E' N
- ) ; ai_abort's alert box dialog.& G- d) K) K. y. a! j! w
) E1 f. ]- _! S2 f" \- ;;; ==================== end load-time operations ===========================% z# e) t, Y, m: G7 A' O& N$ @
) T1 c! Y3 V) l! ?% x+ D8 e- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
* S3 c3 x/ g# P* ]3 g8 N/ t4 l - ) b) w' ^2 u r
- ;; Main Color function, called by setup code.8 n, ` x! V! d; k3 Y8 Q5 l$ N8 z
- (defun ddcolor_main()! b% A* o3 X3 D: A3 l. h2 l9 D
, m5 \2 P1 x7 A0 b- (graphscr)
5 o- M- K3 f9 r, q( {0 M- q% A -
; Z4 s5 j F! \5 M) ~5 s - ;; Get the color of the current layer, for possible BYLAYER color swatch.) I+ m0 r) X+ ?4 @) |
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))% c. o. Y0 N# G7 e# S% o- N
- u4 i8 i0 [$ |1 p7 H
- ;; Call the dialog here...
" n% T$ T3 g1 R7 { W/ D - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
& L9 ~- _. i: \) G( ^! ]8 Y: } - 7 C% B9 O4 M1 ?9 y" J& |% j
- (if clr3 p1 o" f8 D& f
- (setvar "CECOLOR" (citocs clr)))" U, }) N& ~; I
- )
" D! s1 i7 x n
1 I C, f. V3 v0 |- ;;;
5 q* M7 X3 n) x& H - ;;; CSTOCI -- Color string to color index# s- T8 _& X& ?. G+ g( t, G
- ;;; Convert an arbitrary case string into a color index.
! N8 {- I7 r! M - ;;; Returns nil if string is not a valid color.) K, }& p% q. ? \
- ;;;1 Z, a, z- A' _& Y# d4 J& L7 n* k
- (defun cstoci (str), G5 B1 R& y1 c7 f& ]" A. c
- (setq str (strcase str))3 q U, n4 z& h6 [- T' X
- (cond& P/ N; t; }* y/ }$ N. k9 C0 {$ ]4 B
- ((= str "RED") 1)- y. d% o) X# v9 ?4 i
- ((= str "YELLOW") 2)
, i6 y6 o( ~- u/ z" z - ((= str "GREEN") 3)6 Q" y# B" Y, o' ~: D, W, [; c, S
- ((= str "CYAN") 4)
5 F" b& u) @3 S& ]- R - ((= str "BLUE") 5)6 F4 a) R- P7 w* W8 \! f
- ((= str "MAGENTA") 6)% @6 |' {9 m- p X7 y
- ((= str "WHITE") 7)
; _9 h9 d& g2 C; d9 D - ((= str "BYLAYER") 256)
& d" c5 U* O7 Z! |- K, A+ g - ((= str "BYBLOCK") 0)
7 z9 Q7 K. ]( B! B v& q" A6 k - ((= str "BY LAYER") 256)" i, b- x% _2 a, ]; F
- ((= str "BY BLOCK") 0). K& c9 t: h, ]
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))) n5 `( y; m! _ p4 M
- (nil))
" v. U% ~6 a$ p6 S- D - )# r2 u* r& h% _3 R( I$ }3 ^0 v, [
& \) w7 A: V# c7 s% D1 c0 a
* a/ b9 x. O. E& Y0 X- ;;;+ R7 q7 `$ `, i6 w8 J
- ;;; CITOCS -- Convert color index into standard color name.
& y" g3 n' w; N( I9 {& e! c' J: @ - ;;; Will return the standard and logical color names as text: O2 M& ?2 v! D: g( Z
- ;;; strings. Returns nil for out-of-range color indicies.
; {' b1 T8 O& s6 m - ;;;0 o2 F( O. O$ v$ N; {; W
- (defun citocs(i)
- y3 c1 _1 s# Q, D2 P4 J/ O0 M - (cond
- j- R- _( p r8 M4 m - ((= i 0) "BYBLOCK") M* K$ }9 N" k# k1 U
- ((= i 1) "red"); w) X9 n) C$ }7 K. R
- ((= i 2) "yellow")( [3 \1 _ Z. Y _& g2 o
- ((= i 3) "green")- X, d, t; C; L0 f5 R/ e
- ((= i 4) "cyan")
! m; ?2 j3 Y. r3 N: l - ((= i 5) "blue")
5 J# i! B O" p: k8 c - ((= i 6) "magenta")( T2 E3 h# t5 _8 ]
- ((= i 7) "white")* l9 }# I! U& I0 ^% o9 U' v! l
- ((= i 256) "BYLAYER")
. n% o# q2 q$ |) {. e, S0 C - ((and (< 0 i) (> 256 i)) (itoa i))
3 T2 b- W( h7 T3 F+ { n2 k - (nil)): a' X2 m4 a$ I) [8 W
- )3 r6 K9 n! j. ]5 H2 o8 f
: S/ W$ B( g& A9 ~& j4 E- ;; Start of ddcolor+ L& k h! h" G0 b
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
) j, {4 a, m1 j \+ C8 [" \$ P( I - old_error *error* ; save current error function9 {& O! {; t( d' g+ [) t
- *error* ai_error ; new error function% |% N. A, c% W
- )1 E* k8 S& U! o# T5 h
- " F+ g% I, k5 \$ _# |
- (setvar "cmdecho" 0); P8 n% f4 k, {, u- K" {
- 9 E9 f! A( V% E f0 a6 z
- (cond+ J K$ J) \% b% F: M$ m' U
- ( (not (ai_trans))) ; transparent OK6 J. v9 v8 n7 U1 {
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?7 |$ \4 ^8 n9 q2 a, i$ z* ~% l
- 8 u# e* ~. ~! | l7 K& u" C
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
' m5 G6 U5 \" v - (/= 8 (logand 8 (getvar "cmdactive")))
- _5 Q& L& T) P, J - ); p- `& ?7 @6 j( x7 [6 I ~! o5 B, r
- (ai_undo_push)
( p. \% q% D: p# n3 J - )0 u; H3 m5 {4 P, F0 M1 ~. B6 @! e
+ R8 l0 w" w( N( `* K- (ddcolor_main) ; proceed!, w$ N+ d; P. \ B6 ?( j
- L2 F: S3 o9 p" R; L& N" G- (if (and (/= 1 (logand 1 (getvar "cmdactive")))0 m$ L2 U- w7 n
- (/= 8 (logand 8 (getvar "cmdactive")))
; B' C5 h' T3 y Z9 z - ): `/ B- c9 _& o4 b# c8 O
- (ai_undo_pop)
+ y1 T6 J% M- S+ A3 V - )' I" ]' M- W( j' n! }
- )2 e3 Q2 i. t3 L
- )
+ _2 |* [( V2 J7 H1 A# O
; l) f2 }3 M( z$ R2 \- (setq *error* old_error) 9 M" ?3 `8 a" a# u6 S$ j) h
- (setvar "cmdecho" old_cmd)2 | i5 m1 ]5 L' a, n
- (princ)# I0 ^! s* a5 x. S% ?6 _ H$ Z ?1 Q$ K
8 j% b1 {0 P4 Q) z+ x- )) j- `- n- k( B; o# j
5 P$ o G* v! _6 ~ {2 @% e1 t- ;;;----------------------------------------------------------------------------3 U) y( l9 _! e: c- ^' N: a& j1 C: o
% _ S* O$ Y- [4 T5 f$ R- (princ " DDCOLOR loaded. ")$ P6 H0 A, N; _( b1 [
- (princ)2 y/ l5 e% b9 ^- Z
4 ?( J/ g- O! l9 D2 ^- ;;;--------------------------------------------------------------------------;
' _8 }; X! S7 {6 ^3 ~) w7 p7 X& U6 ?7 F - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;, ~$ Z5 N& F$ u0 S9 r. L
- ;;;--------------------------------------------------------------------------;0 \0 i! h7 k3 E2 s: Q3 [1 ~
- ;;; ssx.lsp& Q0 A9 R0 q$ c5 R1 P
- ;;; Copyright (C) 1990 by Autodesk, Inc.
% ^. I8 A$ e) O - ;;; Copyright (C) 1991 by Control Systems, Inc.3 ~& f3 R1 N" {" p( n- d, {
- ;;;
! Y) O; L% d2 }* Y1 h o, ^ e - ;;; Permission to use, copy, modify, and distribute this software and its
/ y2 C8 w4 ]: l" O# W - ;;; documentation for any purpose and without fee is hereby granted.- v: R( P3 u# F
- ;;;& q; u8 M) h! j% J6 H; i
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.& Y+ Z0 E7 n3 x
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
2 {! R* ^5 ?6 a/ ?1 B1 N1 E - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED." F! V5 S5 i9 s* u; C, {% Y
- ;;;
# H) K4 A# }& @2 S4 S0 p$ ~$ D - ;;; Larry Knott Version 2.0 7/18/889 D" R% G0 _2 ^4 X6 k9 X
- ;;; Carl Bethea & Jan S. Yoder Version 3.0
+ |: Y: A, u& _: q. a2 ~ - ;;; Enhancements to (ssx).8 z- j \. q# n
- ;;; 15 March 1990 . ^4 ` C" Z4 ^# Z- q6 E" {+ J
- ;;;
d7 m U) R. E6 Z - ;;; ARTIST Software, Inc Version 4.0 December 1991
# X( L* M* ?9 O3 S - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
, y; M: H' q2 G - ;;; use Flexicon menus1 b W/ ^- d- h
- ;;;+ D8 i5 H' K6 h% n& u; R# Z! {/ j
- ;;;--------------------------------------------------------------------------;
8 E8 a& J# i h+ b - ;;; DESCRIPTION
( J% T) \, ?5 Q2 e3 D - ;;; SSX.LSP ; X' x! S" d2 ]+ l! d( |) A5 E
- ;;;
" U* z! R; ^* }2 R7 j - ;;; "(SSX)" - Easy SSGET filter routine. ( W2 u7 x# ^. B, j6 y: r6 O; m
- ;;; 3 j0 c7 I6 @6 ~% p
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
3 C% ] M" Y A( o! X - ;;; to create a "previous" selection set or type "(SSX)" in response to
# T- N3 [, A) l9 t, C6 f - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add / X4 U, U2 Z1 d3 Z, N
- ;;; entities and "(R)" to remove entities from a selection set during
3 r' Q# Q2 r+ e' m8 H% f6 H - ;;; object selection. More than one filter criteria can be used at a
& l7 }4 g o$ t" N - ;;; time.
8 G$ o/ A& g& v o1 }; m; q" H- S - ;;; 2 K/ P; j- \, \( w' f
- ;;; SSX returns a selection set either exactly like a selected
( w0 ]) f: C% X# r - ;;; entity or, by adjusting the filter list, similar to it.
+ P; _7 ~+ n7 Y; ^4 Y/ H$ q$ s - ;;;
' U( v+ A1 p2 ?0 [ - ;;; The initial prompt is this:2 q7 l! O- I& s% B8 f+ b$ p
- ;;; . |2 J% t! Y# R2 l( H
- ;;; Command: ssx2 t) E4 |* O; q
- ;;; Select object/<None>: (RETURN)
/ v- s% o" }6 C. z0 E, r; p - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 8 M5 z7 H, N y H! ?3 o( ?
- ;;;
5 `& S$ d2 ^, h5 z1 n6 G - ;;; Pressing RETURN at the initial prompt gives you a null selection ! O) a4 v* t6 p
- ;;; mechanism just as (ssx) did in Release 10, but you may select an
1 g+ V7 t, Y5 r. |+ H - ;;; entity if you desire. If you do so, then the list of valid types
* r1 a0 N3 |$ v% n/ v1 c0 b9 b - ;;; allowed by (ssget "x") are presented on the command line.
% S3 Y/ d3 R: X8 q+ n - ;;; 1 ?2 f4 A5 c; E& C: n% |) l
- ;;; Select object/<None>: (a LINE selected)& @- \& x q- q ~
- ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 3 k) _5 o7 a: ^6 S2 [3 m
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
4 N' c& `( I7 E - ;;;
6 \5 e, i/ c6 U/ o - ;;; At this point any of these filters may be removed by selecting the $ `( G$ t I" M7 ~. w
- ;;; option keyword, then pressing RETURN.
2 p [' N" q6 p' i - ;;;
4 I- K9 B7 z$ X; F1 h - ;;; >>Layer name to add/<RETURN to remove>: (RETURN), ~4 h! j, ]$ @5 L5 G
- ;;;
7 r6 J* P, @! V* q1 [- e" w( u; X1 ? - ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))' d9 k) r2 x! `! _% k
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
7 Z" T/ }$ a7 N7 D9 E8 ^% o$ u" D - ;;;
6 i. y' J+ W \" `4 o - ;;; If an item exists in the filter list and you elect to add a new item, 4 h, P- W) g* a7 ?
- ;;; the old value is overwritten by the new value, as you can have only
$ h& F7 r& k! s+ n7 j/ } - ;;; one of each type in a single (ssget "x") call.
$ h5 ~. t, T; [/ m( m - ;;;6 P3 P6 _0 ~6 t6 P) j( G
- ;;;--------------------------------------------------------------------------;
# ?: n' j5 V4 H! L# q: ] - ;;;
! o- b" ?6 }) \; ]( p - ;;; Find the dotted pairs that are valid filters for ssget7 a0 C: R2 ? p( D! ?% s* F) U1 d6 l& J( Y/ @
- ;;; in entity named "ent".0 R: D' b/ Z3 |
- ;;;
% U0 z q: ` I( b8 Y - ;;; ssx_fe == SSX_Find_Entity+ R# |4 N) T3 T. ]
- ;;;4 R: N2 ?6 v# D7 N
- (defun ssx_fe (/ x data fltr ent)
. Q' t. ]4 y* c6 V) _ - (if (and (= flexvar 1)(/= t2 "Pick"))' c! v s, S# t5 G. N
- (setq ent nil)' p$ a0 A; [: G" o$ i- k7 \$ Q
- (setq ent (car (entsel "\nSelect object/<None>: ")))
/ t! h) o2 O. I2 Z2 y% ]& c - )* p4 r" p; K0 T& H5 J# z+ X
- (if ent- m) g7 \$ U$ ~5 _+ T
- (progn
; U: z, q2 u* w k1 i; A - (setq data (entget ent))3 E. F* V8 {( `: b# r
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
2 L/ E& o/ u7 E/ ~ - (if (assoc x data)
" g: v7 q7 ^* i) R& Z/ W - (setq fltr
& y7 h. N% Q1 `# j% N - (cons (assoc x data) fltr)
& C. W& T6 q4 `2 a7 C: Y1 B - )
$ g6 U) o9 \/ P- H - )3 H0 J% S( C7 p w! N
- ) : J; A0 ]# a+ R7 r! j
- (reverse fltr)2 \0 ?" i! _) C7 A+ |
- )
; D1 G8 W+ v& ?% W - )
$ E) t0 L( ]! T6 q! x - )9 I4 s. ^# y4 d- ^
- ;;;
' {5 h% W- ~- C. F! ~# p - ;;; Remove "element" from "alist".) |8 y+ d; i" x6 A# n
- ;;;
/ H, _0 K2 h- f/ Q - ;;; ssx_re == SSX_Remove_Element$ h! ?. `' [ r5 B" N3 t; t
- ;;;4 E0 l7 W" D) j5 B$ `
- (defun ssx_re (element alist)
: q6 A$ L' ~2 {. u" ?2 F - (append
5 {2 e/ l* U" w9 J2 k2 B; a - (reverse (cdr (member element (reverse alist))))* ]/ g9 t$ _; L6 j/ ]5 J) X
- (cdr (member element alist))
+ u) X7 E0 j1 e7 A: P- M - )
8 ]! C! U1 M0 W - )
2 M8 V s7 ~; ? - ;;;
8 p- X1 X$ A8 m& F3 K7 y8 L - ;;; INTERNAL ERROR HANDLER
8 K) t5 E: C/ A5 ~ - ;;;
: E+ Y6 q& ?1 ]$ | - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs& @7 f: T7 E" f6 C, T8 V) ~% k5 d9 t
- ; while this command is active...
: G" w2 w. P! x u& Q - (if (/= s "Function cancelled")5 s) W. l/ }: w' v& u
- (princ (strcat "\nError: " s))
6 A, q+ N$ \" S2 S - )
" M& L( ~ v( D1 L" |0 ?5 X - (if olderr (setq *error* olderr)) ; Restore old *error* handler) G1 B- n5 {3 Z& P m3 {6 w, m
- (setq flexvar 0)+ C2 |" V' S1 e& ^
- (princ)
/ }8 Z0 k* n0 B - )4 l, g2 a6 m! k) k, a# Y5 H: Y
- ;;;
: m5 w/ D( t* ?. ]# y L - ;;; Flexicon call routine
6 ]9 |. ]) l- U( q( [: s( M* O - ;;;
" X* r; P7 t, E* ` - (defun flexmnu (a)
t: D1 O- n, W; {5 x# o0 V" T0 e - (if (= flexvar 1)8 ^4 |) {! K, t; h! l1 r
- (command "FLEXICON" (strcat "FLEX" a))3 y7 C6 W H! e
- ). Z* O. r* b9 Q8 \# G7 e3 D' P' s
- )9 q- Y( A& K8 S# f# J5 w, [$ v
- + ?% O, ^3 h4 a8 d& K
- ;;;
$ V: \8 d. D# q# Z' P - ;;; Get the filtered sel-set.0 A/ S. O p' u
- ;;;
/ o1 Y$ l% ^0 c; K3 q. _1 |* s - ;;;
, a2 y* i0 U$ y/ V2 g+ \2 c5 a - (defun ssx (/ olderr)
- Z0 F- \! a' k4 ?; G% h; t - (gc) ; close any sel-sets
2 H0 l8 ~' X( ^, o/ S/ a0 Y, z7 u - (setq olderr *error*
' ^0 k" |% E8 }% m* N3 U! X) ]1 B% J - *error* ssx_er
% A3 [0 Y6 d% g; `1 F$ w - )
9 ?$ f% j9 P2 s1 ]2 z - (setq fltr (ssx_fe)) 2 d9 z3 l* \- t6 H2 n4 J v J
- (ssx_gf fltr) ' h0 }( z1 w$ o
- (if (= flexvar 1)9 U& i' B' K8 M6 T* `. T& Y
- (progn6 l+ U& y" a) L3 F Z
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
- [& o/ k0 z" t9 ?4 r - (flexmnu "EDIT")
" u5 V, I ]0 g8 H- r - )
+ d) ]+ t/ P( h/ w/ z+ k4 L - (command "p")
$ e2 U+ b. e5 \) Z) q - )
' H2 R: \4 e( C: r$ q - (princ)% X( |! l6 E c1 r, z2 q4 f
- )
e- L- Y% A) y2 N& C4 u& k- C - ;;;
2 `: h) C* U3 {, r - ;;; Build the filter list up by picking, selecting an item to add,
' q9 ~! T4 }9 j5 f4 W& }- N - ;;; or remove an item from the list by selecting it and pressing RETURN.2 q8 \# K B: P' s. P8 k9 u
- ;;;
; p7 m7 O }' _' p& V, `1 L( I - ;;; ssx_gf == SSX_Get_Filters
( A" a L x# ?; H* _5 f7 d - ;;;
- B7 Y1 c( F I2 T# e2 I/ a% o - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
* D6 L N; |0 x& ^4 R3 @ - (while ! F- D2 G1 G* A" Q" n& p* E7 f/ q& ~5 u
- (progn3 Y( R5 j& H( t0 D, K- R5 S* k9 F
- (flexmnu "SSX")
/ f7 n6 ?) N0 u/ M' G8 \9 X - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
6 v- e2 f+ c$ K - (initget 0 E6 }6 F7 t" o
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
! ^5 c; ]1 ~6 Z/ h! C6 E! D - (setq t1 (getkword (strcat- _9 \" ?5 p/ O. R
- "\n>>Block name/Color/Entity/Flag/"7 N& Z; a! L# _. l3 k0 R& R
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
. S/ h" r. ^3 ^4 Z - )
; g6 |: W0 o" d! Z' V$ l+ V - (setq t2
4 S( x/ Z2 C9 B/ g; M) z3 k7 B+ Y - (cond# a6 _( C3 U2 {
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)
e5 _2 r, b5 ~ B8 U - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)* r4 \8 T" n$ D: f/ _
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)* y7 n7 L6 ^- A9 N3 b& A; F' u
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)5 T4 l/ _. ` R" a' G
- ((eq t1 "Vector") 210)
- D0 u. [' z# m4 H8 N - (T t1)
' p( u" P# V, @/ P) W3 D - )! D4 V! N) R+ W3 W: F- w1 A
- )) x- h; C3 h, p. D% X* W
- (setq t3
h# p+ S5 f, _ - (cond/ d+ ] G' n8 C+ v3 d3 ]
- ((= t2 2)
- K! @; Z1 X2 _ - (if (= flexvar gtads 1)3 }: q/ e. d ~0 S5 k
- (progn
& Q& u% a3 X% X4 W - (prompt "\n>>Block name to add/<RETURN to remove>: ")3 G1 @7 K* I& k, c9 r
- (gttable "BLOCK")
5 T+ c( T M# a+ B! X5 [4 N - )
+ ]6 E: d/ U% B4 R# I1 w5 z7 \ - (getstring "\n>>Block name to add/<RETURN to remove>: ")) p- \3 G; V2 n; ~
- )
3 c( n0 _4 y- t4 s% u9 _ - )3 d' g, X. b$ [/ y% g
- ((= t2 62) (initget 4 "?")- n' J6 u; a, v2 v' Q+ Y5 C
- (cond9 M& J6 O. ^! Z; O. K5 y: }- k
- ((or (eq (setq t3 (getint - U% K3 ^8 @! |7 p% |
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") 6 Y- I: i* Z0 H& s9 d
- (> t3 256))
( P7 y8 O! O$ y, L8 G$ Q( G - (ssx_pc) ; Print color values.
- D. G4 Y, B: L2 Q8 b - nil
& a0 n8 g) L4 C( l$ \: x4 u - )2 Y4 H. |5 J/ K& y8 h# S$ e
- (T
' {; y1 h5 ^$ P/ T# o - t3 ; Return t3.
9 B/ z% h1 g, G1 i1 H0 P/ y - )" t8 p8 e, S5 k
- )& {) _ ^; `0 @4 g7 Q/ R! C) d8 y9 {
- )
+ T1 w- j" N1 }& s) p. s) J5 M - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))2 U' |. h+ z1 I2 H1 ~
- ((= t2 8)
9 @& a5 r, c( T# I. J7 m# s+ Y/ r6 V - (if (= flexvar gtads 1)2 h7 ~ p( |& K7 X* H8 n% `
- (progn
+ w- B5 Y9 { O - (prompt "\n>>Layer name to add/<RETURN to remove>: "). ~; Y* J$ |7 Z5 b
- (gttable "LAYER")( C: T, W6 k. F- ?
- )
" k7 O# g+ Q. W0 |6 b3 w - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
( c5 K; J7 B4 C# O9 W: c* j! { - )
6 }& |7 K; M2 ?! a d% S - )- v1 @& m6 |; x
- ((= t2 6)
: g. n8 H( @# Q9 ]0 A2 c - (if (= flexvar gtads 1)/ _1 k, Z3 G3 a h% V. o9 o
- (progn1 @0 Z# `- Y- d% p8 D8 R
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
, w" r5 v5 a0 p - (gttable "LTYPE")& z, V X& M8 E3 ]! D" S1 e
- )
! T; b3 f3 N! q% r0 @% Y- G - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
( \2 M. l. C Q7 C - )6 u3 g8 Y" J. a8 G& k" l, L
- )! m4 v* x6 @ N+ H
- ((= t2 7)
) p- B1 I/ j" X7 W9 j9 T a - (if (= flexvar gtads 1)
" y& G0 n% m" w$ a D - (progn
% o+ s; s+ N: u" E% w, } - (prompt "\n>>Text style name to add/<RETURN to remove>: ")
$ g3 i+ [! x: A: [6 D - (gttable "STYLE")
) W7 Y3 E) P% c, }9 M - )- j8 |1 t2 D! }# J2 ^" X) x8 V
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")! g% G' E7 t3 }% c
- )( D! D# r8 V; y1 Q4 j# L5 ]/ V
- )% J8 a z, G8 _+ g7 O
- ((= t2 39)
; g. q3 ~, ]* \0 F& h9 H2 N& D- q - (prompt "\n>>Thickness to add/<RETURN to remove>: ")
# g- @% Y$ o; n, [ - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
% i* y7 ?/ R& K0 A" K - )0 V) |, A, G# y% `/ m% p+ @
- ((= t2 66) (if (assoc 66 f1) nil 1)) [6 c' D( f1 L* z' O( `! W: g, {& `
- ((= t2 210)
( k( p1 B; q8 c5 w0 h! C - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
6 ]$ J3 Y* V5 I, B - )
4 q* v, M) S/ K, o/ ~ - (T nil)
: j0 a; }4 e4 ~' q4 y - ): H, n8 L' } Y
- )
" g- n0 F) i; O; `! X - (cond
+ ^& L, H* y) ~: X" c" ~* Y - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
& G; T, m# u+ C - ((and f1 (assoc t2 f1)) ; already in the list
5 _4 D$ i& x/ c - (if (and t3 (/= t3 ""))
+ X9 c3 T6 r6 U: N - ;; Replace with a new value... 3 g* x% z. Y) s5 M" W7 b
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) ' ?3 b- K4 j) v
- ;; Remove it from filter list...
: _9 V* j( c, t1 Q - (setq f1 (ssx_re (assoc t2 f1) f1))
$ u' U1 c5 e9 B4 Z5 Q p* ~ - ) * o* t: f5 S* y2 l
- )
* T* q: b& w" p' y# e - ((and t3 (/= t3 ""))( ?( W, @& x, y7 S% u' Y% |
- (setq f1 (cons (cons t2 t3) f1))
1 c1 a0 U+ \* U& E: [2 |! l - )' F( s8 P$ \; R, l- {* a
- (T nil)
2 v( ~) m: f1 Q' g - )
9 l1 j. A5 L' d2 U. r; W) r" z: p - )4 N6 Y. J& Z& f; F0 E
- (if f1 (setq f2 (ssget "x" f1)))" A' H' G. v1 W
- (setq *error* olderr)7 z" `( {" L! f* g; H, n2 c' G
- (if (and f1 f2) " S* k# y. b4 V: m9 ?5 P
- (progn
9 T' ]* y/ J3 m6 X8 ^$ e& { - (princ (strcat "\n" (itoa (sslength f2)) " found. "))3 L5 w: n6 C% E4 |
- f2 0 @. O8 O& n# a' V' n0 n# R
- )+ ^2 T+ B5 U6 _* c
- (progn (princ "\n0 found.") (prin1)); P: \% I( O! O# R! m, W4 M
- )/ m4 ?& u. D& Y1 Q q0 V0 v, ~( G
- )
1 {4 ]5 A/ l9 ^ - ;;;
9 T# c: y K) }) C6 w - ;;; Print the standard color assignments.
) b9 n K1 p- H% L+ Q; y* E# G; J - ;;;) c! F, c4 {; g) W! |+ J
- ;;;& L+ o4 u [, a- j8 }
- (defun ssx_pc ()
) F) G; E$ u# [* F; E& y - (if textpage (textpage) (textscr))
2 z8 [5 w/ w9 r; K, L - (princ "\n ")9 u* y3 q/ G' Y
- (princ "\n Color number | Standard meaning ")
4 }4 Q7 U. r9 s( [2 t( s4 i" ~ - (princ "\n ________________|____________________")
: l: G8 X- p: q( j9 Q) c! c - (princ "\n | ")6 }4 j. C9 ?; z& E0 D$ f$ @
- (princ "\n 0 | <BYBLOCK> ")
% j& ^4 w m$ ]7 H' o- K) Y - (princ "\n 1 | Red ")
" U _/ Q+ [0 a9 i; X - (princ "\n 2 | Yellow ")9 M( v3 U- ]0 P" }1 t6 k) x
- (princ "\n 3 | Green "): B' Z- G9 }& n7 M( n/ s
- (princ "\n 4 | Cyan ")
/ h! q4 r! p0 K$ S2 I6 E - (princ "\n 5 | Blue ")
: O ]$ k: w& s, o/ l* N - (princ "\n 6 | Magenta ")
4 f2 Y# ]- _( P# `) `& t - (princ "\n 7 | White ")3 c! _ O7 C- ]8 O
- (princ "\n 8...255 | -Varies- ")/ z9 D9 T+ `9 k: l6 z# R" ]. [
- (princ "\n 256 | <BYLAYER> ")+ g- s6 D m, @* S$ g* z t7 U
- (princ "\n \n\n\n")) W/ X9 M* e4 _3 F" t
- )% B) f5 ^( ~8 n
- ;;;! q2 ~/ [: `% c6 _7 q
- ;;; C: function definition.
0 h0 w, k* w/ X; k - ;;;( c' s7 h+ t( ~; {
- (defun c:ssx () (ssx)(princ))
/ i& X H' R3 R6 M; G8 B Y- ~, J - (princ "\n\tType \"ssx\" at a Command: prompt or "): z& X; K' i( v- O: @% V
- (princ "\n\t(ssx) at any object selection prompt. ")
# B* g( F8 x$ ]" k8 g) P - (princ)2 I" T8 T% M1 q- C# B
" y2 l4 D4 \ m& F5 {2 M- ;;;--------------------------------------------------------------------------;
0 P* \: C+ d. o x7 k, Z - ;;;--------------------------------------------------------------------------;
/ |, q% ^+ R8 V# h - ;;;--------------------------------------------------------------------------;
# C0 ~- }6 _3 i ~/ t% @ - (defun S::STARTUP ()! H4 i( g V1 b' B# k% m
- (setvar "cmdecho" 0)# [0 Z; n) d6 a' J0 W6 @% J
- (setvar "cmdecho" 1)
/ D- o+ t& r" y% {' z - (setvar "LTSCALE" 10)
0 Z# g5 F* `7 s) k7 R* X8 p/ | - ' x I+ j5 `) i x- ]
- ;(command "_load" "chenKH.fas")
1 z: r' B b0 G" _- w) ] - ;(command "_load" "ctcot.fas")% B) X# G/ D8 c# W% X2 B4 R: H' ?- n
- ;(command "_load" "damdoc.fas")
; H6 i, G! @( Y0 Y; ~ - ;(command "_load" "ghichu.fas")
' p# Z- K: { M% B2 s9 @ - ;(command "_load" "hamtutao.lsp")7 j1 g* N; E$ ? v4 Q" I
- ;(command "_load" "KHOITAO.fas"); {1 ], l, D7 r4 d$ C2 }8 P
- ;(command "_load" "KHthep.fas") }/ M9 h1 b r; @1 u* A
- ;(command "_load" "mbmong.dcl")7 t/ q } |! w- ?5 w; I" c
- ;(command "_load" "mbmong.fas")
3 t4 |+ q$ F8 P5 `/ M/ W9 w( { - ;(command "_load" "mccot.fas")
3 v0 C2 }! V2 j. T% C' [% Z5 [ - ;(command "_load" "mcdam.fas")
! N* L* `" w5 w, G - ;(command "_load" "mcmong1.dcl")6 t. f$ D- l! O4 p6 u6 m0 z
- ;(command "_load" "mcmong1.fas"): ~( {: F [/ s) @8 |' s
- ;(command "_load" "mcmong2.dcl")8 t: U3 C6 w, }* |
- ;(command "_load" "mcmong2.fas")
/ L5 l0 k, c0 e9 l( P8 J" A - ;(command "_load" "mcmong3.dcl")
2 y* E3 N1 } R' Z6 V4 @2 g - ;(command "_load" "mcmong3.fas")9 N* ~$ ?5 D' R) o8 o; O
- ;(command "_load" "mcsan.fas")
- a) U2 I9 f8 I1 j7 ^ - ;(command "_load" "thepdai.fas")% G& v* @, W" _6 N! f5 G. [3 X
- ;(command "_load" "thepdoc.fas")2 P$ K8 ]1 T$ _5 F6 R4 j
- ;(command "_load" "thepmb.fas")1 N) U7 m! ]& j8 }
- ;(command "_load" "thepphbo.fas")) h% ~- Q; a% H3 S/ B, ^
- (command "_script" "thongso.scr")6 r5 }$ R% Y/ n4 G% J ^
- ;(command "_load" "thongso1.dcl")
2 L0 [* I, S# u8 y - ;(command "_load" "thongso1.fas")
8 u5 p# v% Z5 ?5 u - ;(command "_load" "thongso2.dcl")/ n! h+ ]7 N" J0 K5 R6 L6 q
- ;(command "_load" "thongso2.fas") f2 r9 a9 Y3 g9 E2 m$ u
- ;(command "_load" "tietdien.fas")+ G8 |9 E& D/ Q" R9 k) n
- ;(command "_load" "vehan.fas")0 w" X$ [$ A3 }8 }. i
- (command "_load" "phamDuy782006_TKT.lsp")0 e/ O; g8 p8 \4 D) ^
- (command "_load" "phamduy782006ganhtd.lsp")+ _6 i5 N3 [7 ?8 X( D
- (command "_load" "phamduy782006ganhtds.lsp")
0 r9 E2 l2 j$ \- R. s4 @ - (command "_load" "phamduy782006htd.dcl")
' R2 H) |+ c9 S Q, \6 k0 d$ I - (princ)6 \# U @- F$ A
- )
: G. x6 n/ }! }6 W4 y5 t$ R$ @
O' A! R7 V0 `) X3 {- ;; Silent load.# \3 _% a0 X8 b$ u8 e/ @/ @; R/ w
- (princ)
6 m4 _3 e, D6 Q; i; Z- }0 A: j
: ^( W5 O; ?; f0 T; x6 f- `, O9 M2 V8 \& L
- ;; Silent load for the Express Tools.
0 B1 Y' ?5 Q/ t3 Y/ B4 D8 }% W2 ~ B# T1 S - ;; Altering this line will affect Express Tools functionality
1 C; D* t! N- I, p - (load "acettest.fas" (princ)): j/ D! q9 B% p5 v6 P, N
- �32
Sao chép mã 9 }/ u, a& _; n8 }$ c2 b
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ3 `# c2 J0 ]4 {. m# G
|
|